- participant : Participant
- state : StateT
Instances For
theorem DY.PersistentLocalState.LocalState.IsWellFormed_eq {τ : Sort u_1} [BytesFunctor] [BytesLength] [BytesFunctor.Has Literal.SubF] [BytesLength.Has Literal.SubF.length] [BytesFunctor.Has Concat.SubF] [BytesLength.Has Concat.SubF.length] {StateT : Type} [Comparse.ParseableSerializeable StateT] (pre : Bytes → τ → Prop) [Comparse.BytesCompatibleTracePred pre] (x : LocalState StateT) (tr : τ) :
def DY.PersistentLocalState.State.baseAttackerKnowledge.internal [BytesFunctor] [ExecTraceTypes] (StateT : Type) (id✝ : Fin 1) :
SubBaseAttackerKnowledge (ExecEntryT.internal StateT id✝)
Equations
Instances For
Equations
Instances For
@[instance_reducible]
def DY.PersistentLocalState.State.baseAttackerKnowledge [BytesFunctor] [ExecTraceTypes] (StateT : Type) :
SubBaseAttackerKnowledge (ExecEntryT StateT)
Equations
Instances For
@[instance_reducible]
Equations
Instances For
def DY.PersistentLocalState.storeLocalState {StateT : Type} [ExecTraceTypes] [ExecTraceTypes.Has (State.ExecEntryT StateT)] (participant : Participant) (state : StateT) :
Equations
- DY.PersistentLocalState.storeLocalState participant state = DY.PersistentGlobalState.storeGlobalState { participant := participant, state := state }
Instances For
def DY.PersistentLocalState.getLocalState {StateT : Type} [ExecTraceTypes] [ExecTraceTypes.Has (State.ExecEntryT StateT)] (participant : Participant) (handle : Nat) :
Traceful StateT
Equations
- DY.PersistentLocalState.getLocalState participant handle = do let st ← DY.PersistentGlobalState.getGlobalState handle guard (st.participant = participant) pure st.state
Instances For
- invariant : Participant → StateT → ProofTrace → Prop
- invariant_later (p : Participant) (st : StateT) (tr1 tr2 : ProofTrace) : tr1 ≤ tr2 → invariant p st tr1 → invariant p st tr2
Instances
@[instance_reducible]
instance DY.PersistentLocalState.State.instGlobalStateInvLocalStateOfLocalStateInv [ExecTraceTypes] [ProofTraceTypes] (StateT : Type) [LocalStateInv StateT] :
Equations
- One or more equations did not get rendered due to their size.
Equations
Instances For
@[instance_reducible]
Equations
Instances For
instance DY.PersistentLocalState.storeLocalState.proof {StateT : Type} [ExecTraceTypes] [ProofTraceTypes] [TraceInvariant] [LocalStateInv StateT] [ExecTraceTypes.Has (State.ExecEntryT StateT)] [ProofTraceTypes.Has (State.ProofEntryT StateT)] [TraceInvariant.Has (State.ProofEntryT StateT)] (participant : Participant) (state : StateT) :
HoareTriple (storeLocalState participant state) (fun (tr : ProofTrace) => LocalStateInv.invariant participant state tr)
fun (x : Nat) (x_1 : ProofTrace) => True
instance DY.PersistentLocalState.getLocalState.proof {StateT : Type} [ExecTraceTypes] [ProofTraceTypes] [TraceInvariant] [LocalStateInv StateT] [ExecTraceTypes.Has (State.ExecEntryT StateT)] [ProofTraceTypes.Has (State.ProofEntryT StateT)] [TraceInvariant.Has (State.ProofEntryT StateT)] (participant : Participant) (handle : Nat) :
HoareTriple (getLocalState participant handle) (fun (x : ProofTrace) => True) fun (st : StateT) (tr : ProofTrace) =>
LocalStateInv.invariant participant st tr
@[instance_reducible]
Equations
Instances For
def DY.PersistentLocalState.Compromise.baseAttackerKnowledge.internal [BytesFunctor] [ExecTraceTypes] (StateT : Type) (id✝ : Fin 1) :
SubBaseAttackerKnowledge (ExecEntryT.internal StateT id✝)
Equations
Instances For
Equations
Instances For
@[instance_reducible]
def DY.PersistentLocalState.Compromise.baseAttackerKnowledge [BytesFunctor] [ExecTraceTypes] (StateT : Type) :
SubBaseAttackerKnowledge (ExecEntryT StateT)
Equations
Instances For
def DY.PersistentLocalState.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
- DY.PersistentLocalState.compromise StateT handle = DY.PersistentGlobalState.compromise (DY.PersistentLocalState.LocalState StateT) handle
Instances For
def DY.PersistentLocalState.LocalStateCompromised {StateT : Type} [ExecTraceTypes] [ExecTraceTypes.Has (Compromise.ExecEntryT StateT)] (participant : Participant) (state : StateT) (tr : ExecTrace) :
Equations
- DY.PersistentLocalState.LocalStateCompromised participant state tr = DY.PersistentGlobalState.GlobalStateCompromised { participant := participant, state := state } tr
Instances For
theorem DY.PersistentLocalState.LocalStateCompromised_le {StateT : Type} [ExecTraceTypes] [ExecTraceTypes.Has (Compromise.ExecEntryT StateT)] (participant : Participant) (state : StateT) (tr1 tr2 : ExecTrace) :
tr1 ≤ tr2 → LocalStateCompromised participant state tr1 → LocalStateCompromised participant state tr2
@[instance_reducible]
Equations
Instances For
Equations
Instances For
def DY.PersistentLocalState.label {StateT : Type} [ExecTraceTypes] [ExecTraceTypes.Has (Compromise.ExecEntryT StateT)] (participant : Participant) (state : StateT) :
Equations
- DY.PersistentLocalState.label participant state = DY.PersistentGlobalState.label { participant := participant, state := state }
Instances For
theorem DY.PersistentLocalState.label_isCorrupt {StateT : Type} [ExecTraceTypes] [ExecTraceTypes.Has (Compromise.ExecEntryT StateT)] (participant : Participant) (state : StateT) (tr : ExecTrace) :
class DY.PersistentLocalState.CompromisableLocalStateInv (StateT : Type) [ExecTraceTypes] [ProofTraceTypes] [BytesFunctor] [BytesInvariants] [BytesLength] [BytesFunctor.Has Literal.SubF] [BytesLength.Has Literal.SubF.length] [BytesFunctor.Has Concat.SubF] [BytesLength.Has Concat.SubF.length] [Comparse.ParseableSerializeable StateT] [ExecTraceTypes.Has (Compromise.ExecEntryT StateT)] extends DY.PersistentLocalState.LocalStateInv StateT :
- invariant : Participant → StateT → ProofTrace → Prop
- invariant_later (p : Participant) (st : StateT) (tr1 tr2 : ProofTrace) : tr1 ≤ tr2 → invariant p st tr1 → invariant p st tr2
- invariant_implies_KnowableBy (participant : Participant) (state : StateT) (tr : ProofTrace) : LocalStateInv.invariant participant state tr → Comparse.IsWellFormed (Bytes.KnowableBy (label participant state)) state tr
Instances
instance DY.PersistentLocalState.compromise.proof {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] [BytesInvariants.Has Literal.invariants] [BytesInvariants.Has Concat.invariants] [Comparse.ParseableSerializeable StateT] [CompromisableLocalStateInv 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.PersistentLocalState.CompromisableState.ExecEntryT.internal StateT 0 = DY.PersistentLocalState.State.ExecEntryT StateT
- DY.PersistentLocalState.CompromisableState.ExecEntryT.internal StateT 1 = DY.PersistentLocalState.Compromise.ExecEntryT StateT
- DY.PersistentLocalState.CompromisableState.ExecEntryT.internal StateT ⟨n.succ.succ, isLt⟩ = ⋯.elim
Instances For
@[instance_reducible]
Equations
Instances For
@[instance_reducible]
def DY.PersistentLocalState.CompromisableState.baseAttackerKnowledge [BytesFunctor] [ExecTraceTypes] (StateT : Type) :
SubBaseAttackerKnowledge (ExecEntryT StateT)
Equations
Instances For
def DY.PersistentLocalState.CompromisableState.baseAttackerKnowledge.internal [BytesFunctor] [ExecTraceTypes] (StateT : Type) (id✝ : Fin 2) :
SubBaseAttackerKnowledge (ExecEntryT.internal StateT id✝)
Equations
- DY.PersistentLocalState.CompromisableState.baseAttackerKnowledge.internal StateT 0 = DY.PersistentLocalState.State.baseAttackerKnowledge StateT
- DY.PersistentLocalState.CompromisableState.baseAttackerKnowledge.internal StateT 1 = DY.PersistentLocalState.Compromise.baseAttackerKnowledge StateT
- DY.PersistentLocalState.CompromisableState.baseAttackerKnowledge.internal StateT ⟨n.succ.succ, isLt⟩ = ⋯.elim
Instances For
Equations
- DY.PersistentLocalState.CompromisableState.ProofEntryT.internal StateT 0 = DY.PersistentLocalState.State.ProofEntryT StateT
- DY.PersistentLocalState.CompromisableState.ProofEntryT.internal StateT 1 = DY.PersistentLocalState.Compromise.ProofEntryT StateT
- DY.PersistentLocalState.CompromisableState.ProofEntryT.internal StateT ⟨n.succ.succ, isLt⟩ = ⋯.elim
Instances For
@[instance_reducible]