Instances For
- attackerKnows : SubBaseAttackerKnowledge ExecTrace.Entry
Instances
class
DY.BaseAttackerKnowledge.Has
[BytesFunctor]
[ExecTraceTypes]
[BaseAttackerKnowledge]
{ExecEntryT : Type}
[ExecTraceTypes.Has ExecEntryT]
(sub : SubBaseAttackerKnowledge ExecEntryT)
:
- pf (tr : ExecTrace) (entry : ExecEntryT) (b : Bytes) : sub.attackerKnows tr entry b → attackerKnows.attackerKnows tr (TraceEntryHas.inj entry) b
Instances
class
DY.BaseAttackerKnowledge.HasStep
[BytesFunctor]
[ExecTraceTypes]
{ExecEntryT1 : Type}
{ExecEntryT2 : semiOutParam Type}
[ExecTraceTypes.HasStep ExecEntryT1 ExecEntryT2]
(sub1 : SubBaseAttackerKnowledge ExecEntryT1)
(sub2 : semiOutParam (SubBaseAttackerKnowledge ExecEntryT2))
:
- pf (tr : ExecTrace) (entry : ExecEntryT1) (b : Bytes) : sub1.attackerKnows tr entry b → sub2.attackerKnows tr (ExecTraceTypes.HasStep.inj entry) b
Instances
instance
DY.instBaseAttackerKnowledgeHasStep
[BytesFunctor]
[ExecTraceTypes]
[BaseAttackerKnowledge]
{ExecEntryT1 ExecEntryT2 : Type}
[ExecTraceTypes.HasStep ExecEntryT1 ExecEntryT2]
[ExecTraceTypes.Has ExecEntryT2]
(sub1 : SubBaseAttackerKnowledge ExecEntryT1)
(sub2 : SubBaseAttackerKnowledge ExecEntryT2)
[BaseAttackerKnowledge.HasStep sub1 sub2]
[BaseAttackerKnowledge.Has sub2]
:
def
DY.SubBaseAttackerKnowledge.combine
[BytesFunctor]
[ExecTraceTypes]
{n : Nat}
{Types : Fin n → Type}
(subs : (id : Fin n) → SubBaseAttackerKnowledge (Types id))
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
instance
DY.instBaseAttackerKnowledgeCombineHasStep
[BytesFunctor]
[ExecTraceTypes]
{n : Nat}
{Types : Fin n → Type}
(subs : (id : Fin n) → SubBaseAttackerKnowledge (Types id))
(id : Fin n)
:
BaseAttackerKnowledge.HasStep (subs id) (SubBaseAttackerKnowledge.combine subs)
def
DY.Trace.BaseAttackerKnows
[BytesFunctor]
[ExecTraceTypes]
[BaseAttackerKnowledge]
(tr : ExecTrace)
(b : Bytes)
:
Equations
- DY.Trace.nil.BaseAttackerKnows b = False
- (trBefore.snoc entry).BaseAttackerKnows b = (DY.BaseAttackerKnowledge.attackerKnows.attackerKnows trBefore entry b ∨ trBefore.BaseAttackerKnows b)
Instances For
theorem
DY.Trace.BaseAttackerKnows_le
[BytesFunctor]
[ExecTraceTypes]
[BaseAttackerKnowledge]
(b : Bytes)
(tr1 tr2 : ExecTrace)
:
tr1 ≤ tr2 → BaseAttackerKnows tr1 b → BaseAttackerKnows tr2 b
theorem
DY.Trace.prove_BaseAttackerKnows
[BytesFunctor]
[ExecTraceTypes]
[BaseAttackerKnowledge]
{ExecEntryT : Type}
[ExecTraceTypes.Has ExecEntryT]
(sub : SubBaseAttackerKnowledge ExecEntryT)
[BaseAttackerKnowledge.Has sub]
(tr : ExecTrace)
(entry : ExecEntryT)
(b : Bytes)
(time : Nat)
:
at? tr time = some entry → sub.attackerKnows («prefix» tr time) entry b → BaseAttackerKnows tr b