class
DY.SubAttackerKnowledgeTheorem
[BytesFunctor]
[ExecTraceTypes]
[ProofTraceTypes]
[TraceInvariant]
[BytesInvariants]
{SubF : Type → Type}
(att : SubAttackerKnowledge SubF)
:
- pf (b : Bytes) (tr : ProofTrace) : Trace.Invariant tr → att.pred (fun (x : Bytes) => x.Publishable tr) b → b.Publishable tr
Instances
instance
DY.instSubAttackerKnowledgeTheoremCombine'
[BytesFunctor]
[ExecTraceTypes]
[ProofTraceTypes]
[TraceInvariant]
[BytesInvariants]
{SubF : Type → Type}
{t : Type}
(atts : t → SubAttackerKnowledge SubF)
[pfs : ∀ (id : t), SubAttackerKnowledgeTheorem (atts id)]
:
instance
DY.instSubAttackerKnowledgeTheoremCombineCombine
[BytesFunctor]
[ExecTraceTypes]
[ProofTraceTypes]
[TraceInvariant]
[BytesInvariants]
{t : Type}
{SubFs : t → Type → Type}
(atts : (id : t) → SubAttackerKnowledge (SubFs id))
[pfs : ∀ (id : t), SubAttackerKnowledgeTheorem (atts id)]
:
theorem
DY.Bytes.AttackerKnows_implies_Publishable
[BytesFunctor]
[ExecTraceTypes]
[ProofTraceTypes]
[TraceInvariant]
[BytesInvariants]
[BytesInvariantsProofs]
[AttackerKnowledge]
[BaseAttackerKnowledge]
[inst : AttackerKnowledgeTheorem]
[BaseAttackerKnowledgeTheorem]
(b : Bytes)
(tr : ProofTrace)
:
Trace.Invariant tr → b.AttackerKnows (Trace.erase tr) → b.Publishable tr