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