- st : StateT
Instances For
def
DY.PersistentGlobalState.State.baseAttackerKnowledge
[BytesFunctor]
[ExecTraceTypes]
(StateT : Type)
:
SubBaseAttackerKnowledge (ExecEntryT StateT)
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
DY.PersistentGlobalState.storeGlobalState
{StateT : Type}
[ExecTraceTypes]
[ExecTraceTypes.Has (State.ExecEntryT StateT)]
(st : StateT)
:
Equations
- DY.PersistentGlobalState.storeGlobalState st = DY.appendEntry { st := st }
Instances For
def
DY.PersistentGlobalState.getGlobalState
{StateT : Type}
[ExecTraceTypes]
[ExecTraceTypes.Has (State.ExecEntryT StateT)]
(handle : Nat)
:
Traceful StateT
Equations
- DY.PersistentGlobalState.getGlobalState handle = do let e ← DY.getEntry handle pure e.st
Instances For
- invariant : StateT → ProofTrace → Prop
- invariant_later (st : StateT) (tr1 tr2 : ProofTrace) : tr1 ≤ tr2 → invariant st tr1 → invariant st tr2
Instances
@[reducible, inline]
Equations
Instances For
@[instance_reducible]
instance
DY.PersistentGlobalState.State.instErasableProofEntryExecEntryTProofEntryT
(StateT : Type)
:
ErasableProofEntry (ExecEntryT StateT) (ProofEntryT StateT)
@[instance_reducible]
instance
DY.PersistentGlobalState.State.instExecEntryAssociatedWithProofEntryExecEntryTProofEntryT
(StateT : Type)
:
ExecEntryAssociatedWithProofEntry (ExecEntryT StateT) (ProofEntryT StateT)
@[instance_reducible]
instance
DY.PersistentGlobalState.State.instSubTraceInvariantExecEntryTProofEntryTOfGlobalStateInv
[ExecTraceTypes]
[ProofTraceTypes]
(StateT : Type)
[GlobalStateInv StateT]
:
SubTraceInvariant (ProofEntryT StateT)
Equations
- One or more equations did not get rendered due to their size.
instance
DY.PersistentGlobalState.State.baseAttackerKnowledgeTheorem
[ExecTraceTypes]
[ProofTraceTypes]
[TraceInvariant]
[BytesFunctor]
[BytesInvariants]
(StateT : Type)
[ExecTraceTypes.Has (ExecEntryT StateT)]
[ProofTraceTypes.Has (ProofEntryT StateT)]
[GlobalStateInv StateT]
[TraceInvariant.Has (ProofEntryT StateT)]
:
SubBaseAttackerKnowledgeTheorem (ProofEntryT StateT) (baseAttackerKnowledge StateT)
instance
DY.PersistentGlobalState.storeGlobalState.spec
{StateT : Type}
[ExecTraceTypes]
[ProofTraceTypes]
[TraceInvariant]
[GlobalStateInv StateT]
[ExecTraceTypes.Has (State.ExecEntryT StateT)]
[ProofTraceTypes.Has (State.ProofEntryT StateT)]
[TraceInvariant.Has (State.ProofEntryT StateT)]
(st : StateT)
:
HoareTriple (storeGlobalState st) (fun (tr : ProofTrace) => GlobalStateInv.invariant st tr)
fun (x : Nat) (x_1 : ProofTrace) => True
instance
DY.PersistentGlobalState.getGlobalState.spec
{StateT : Type}
[ExecTraceTypes]
[ProofTraceTypes]
[TraceInvariant]
[GlobalStateInv StateT]
[ExecTraceTypes.Has (State.ExecEntryT StateT)]
[ProofTraceTypes.Has (State.ProofEntryT StateT)]
[TraceInvariant.Has (State.ProofEntryT StateT)]
(handle : Nat)
:
HoareTriple (getGlobalState handle) (fun (x : ProofTrace) => True) fun (st : StateT) (tr : ProofTrace) =>
GlobalStateInv.invariant st tr
- state : StateT
Instances For
@[instance_reducible]
def
DY.PersistentGlobalState.Compromise.baseAttackerKnowledge
[BytesFunctor]
[ExecTraceTypes]
(StateT : Type)
:
SubBaseAttackerKnowledge (ExecEntryT StateT)
Equations
Instances For
Equations
Instances For
def
DY.PersistentGlobalState.Compromise.baseAttackerKnowledge.internal
[BytesFunctor]
[ExecTraceTypes]
(StateT : Type)
(id✝ : Fin 1)
:
SubBaseAttackerKnowledge (ExecEntryT.internal StateT id✝)
Equations
Instances For
@[instance_reducible]
Equations
Instances For
def
DY.PersistentGlobalState.compromise
(StateT : Type)
[BytesFunctor]
[BytesLength]
[BytesFunctor.Has Literal.SubF]
[BytesLength.Has Literal.SubF.length]
[BytesFunctor.Has Concat.SubF]
[BytesLength.Has Concat.SubF.length]
[Comparse.ParseableSerializeable StateT]
[ExecTraceTypes]
[ExecTraceTypes.Has Network.ExecEntryT]
[ExecTraceTypes.Has (State.ExecEntryT StateT)]
[ExecTraceTypes.Has (Compromise.ExecEntryT StateT)]
(handle : Nat)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
DY.PersistentGlobalState.GlobalStateCompromised
{StateT : Type}
[ExecTraceTypes]
[ExecTraceTypes.Has (Compromise.ExecEntryT StateT)]
(state : StateT)
(tr : ExecTrace)
:
Equations
- DY.PersistentGlobalState.GlobalStateCompromised state tr = DY.Trace.EventLogged { state := state } tr
Instances For
theorem
DY.PersistentGlobalState.GlobalStateCompromised_le
{StateT : Type}
[ExecTraceTypes]
[ExecTraceTypes.Has (Compromise.ExecEntryT StateT)]
(state : StateT)
(tr1 tr2 : ExecTrace)
:
tr1 ≤ tr2 → GlobalStateCompromised state tr1 → GlobalStateCompromised state tr2
@[instance_reducible]
instance
DY.PersistentGlobalState.Compromise.instEventInvCompromiseEvent
{StateT : Type}
[ExecTraceTypes]
[ProofTraceTypes]
:
ProtocolEvent.EventInv (CompromiseEvent StateT)
Equations
- DY.PersistentGlobalState.Compromise.instEventInvCompromiseEvent = { invariant := fun (x : DY.ProofTrace) (x_1 : DY.PersistentGlobalState.Compromise.CompromiseEvent StateT) => True }
@[instance_reducible]
Equations
Instances For
Equations
Instances For
def
DY.PersistentGlobalState.label
{StateT : Type}
[ExecTraceTypes]
[ExecTraceTypes.Has (Compromise.ExecEntryT StateT)]
(state : StateT)
:
Equations
- DY.PersistentGlobalState.label state = DY.ProtocolEvent.label { state := state }
Instances For
theorem
DY.PersistentGlobalState.label_isCorrupt
{StateT : Type}
[ExecTraceTypes]
[ExecTraceTypes.Has (Compromise.ExecEntryT StateT)]
(state : StateT)
(tr : ExecTrace)
:
class
DY.PersistentGlobalState.CompromisableGlobalStateInv
(StateT : Type)
[ExecTraceTypes]
[ProofTraceTypes]
[BytesFunctor]
[BytesLength]
[BytesFunctor.Has Literal.SubF]
[BytesLength.Has Literal.SubF.length]
[BytesFunctor.Has Concat.SubF]
[BytesLength.Has Concat.SubF.length]
[BytesInvariants]
[Comparse.ParseableSerializeable StateT]
[ExecTraceTypes.Has (Compromise.ExecEntryT StateT)]
extends DY.PersistentGlobalState.GlobalStateInv StateT :
- invariant : StateT → ProofTrace → Prop
- invariant_later (st : StateT) (tr1 tr2 : ProofTrace) : tr1 ≤ tr2 → invariant st tr1 → invariant st tr2
- invariant_implies_KnowableBy (state : StateT) (tr : ProofTrace) : GlobalStateInv.invariant state tr → Comparse.IsWellFormed (Bytes.KnowableBy (label state)) state tr
Instances
instance
DY.PersistentGlobalState.compromise.spec
{StateT : Type}
[BytesFunctor]
[BytesLength]
[BytesFunctor.Has Literal.SubF]
[BytesLength.Has Literal.SubF.length]
[BytesFunctor.Has Concat.SubF]
[BytesLength.Has Concat.SubF.length]
[Comparse.ParseableSerializeable StateT]
[ExecTraceTypes]
[ProofTraceTypes]
[TraceInvariant]
[ExecTraceTypes.Has Network.ExecEntryT]
[ProofTraceTypes.Has Network.ProofEntryT]
[ExecTraceTypes.Has (State.ExecEntryT StateT)]
[ProofTraceTypes.Has (State.ProofEntryT StateT)]
[ExecTraceTypes.Has (Compromise.ExecEntryT StateT)]
[ProofTraceTypes.Has (Compromise.ProofEntryT StateT)]
[BytesInvariants]
[BytesInvariantsProofs]
[Comparse.ParseableSerializeable StateT]
[CompromisableGlobalStateInv StateT]
[TraceInvariant.Has Network.ProofEntryT]
[TraceInvariant.Has (State.ProofEntryT StateT)]
[TraceInvariant.Has (Compromise.ProofEntryT StateT)]
(handle : Nat)
:
HoareTriple (compromise StateT handle) (fun (x : ProofTrace) => True) fun (x : Nat) (x_1 : ProofTrace) => True
Equations
- DY.PersistentGlobalState.CompromisableState.ExecEntryT.internal StateT 0 = DY.PersistentGlobalState.State.ExecEntryT StateT
- DY.PersistentGlobalState.CompromisableState.ExecEntryT.internal StateT 1 = DY.PersistentGlobalState.Compromise.ExecEntryT StateT
- DY.PersistentGlobalState.CompromisableState.ExecEntryT.internal StateT ⟨n.succ.succ, isLt⟩ = ⋯.elim
Instances For
def
DY.PersistentGlobalState.CompromisableState.baseAttackerKnowledge.internal
[BytesFunctor]
[ExecTraceTypes]
(StateT : Type)
(id✝ : Fin 2)
:
SubBaseAttackerKnowledge (ExecEntryT.internal StateT id✝)
Equations
- DY.PersistentGlobalState.CompromisableState.baseAttackerKnowledge.internal StateT 0 = DY.PersistentGlobalState.State.baseAttackerKnowledge StateT
- DY.PersistentGlobalState.CompromisableState.baseAttackerKnowledge.internal StateT 1 = DY.PersistentGlobalState.Compromise.baseAttackerKnowledge StateT
- DY.PersistentGlobalState.CompromisableState.baseAttackerKnowledge.internal StateT ⟨n.succ.succ, isLt⟩ = ⋯.elim
Instances For
@[instance_reducible]
def
DY.PersistentGlobalState.CompromisableState.baseAttackerKnowledge
[BytesFunctor]
[ExecTraceTypes]
(StateT : Type)
:
SubBaseAttackerKnowledge (ExecEntryT StateT)
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[instance_reducible]
Equations
Instances For
@[instance_reducible]
Equations
Instances For
Equations
- DY.PersistentGlobalState.CompromisableState.ProofEntryT.internal StateT 0 = DY.PersistentGlobalState.State.ProofEntryT StateT
- DY.PersistentGlobalState.CompromisableState.ProofEntryT.internal StateT 1 = DY.PersistentGlobalState.Compromise.ProofEntryT StateT
- DY.PersistentGlobalState.CompromisableState.ProofEntryT.internal StateT ⟨n.succ.succ, isLt⟩ = ⋯.elim