class
DY.LongTermKeys.ExecConfig
[BytesFunctor]
(name : String)
(skToPk : outParam (Bytes → Bytes))
:
Instances
- sk : Bytes
Instances For
theorem
DY.LongTermKeys.SecretKeyState.IsWellFormed_eq
{τ : Sort u_1}
{name : String}
[BytesFunctor]
[BytesLength]
[BytesFunctor.Has Literal.SubF]
[BytesLength.Has Literal.SubF.length]
[BytesFunctor.Has Concat.SubF]
[BytesLength.Has Concat.SubF.length]
(pre : Bytes → τ → Prop)
[Comparse.BytesCompatibleTracePred pre]
(x : SecretKeyState name)
(tr : τ)
:
- p : Participant
- pk : Bytes
Instances For
theorem
DY.LongTermKeys.PublicKeyState.IsWellFormed_eq
{τ : Sort u_1}
{name : String}
[BytesFunctor]
[BytesLength]
[BytesFunctor.Has Literal.SubF]
[BytesLength.Has Literal.SubF.length]
[BytesFunctor.Has Concat.SubF]
[BytesLength.Has Concat.SubF.length]
(pre : Bytes → τ → Prop)
[Comparse.BytesCompatibleTracePred pre]
(x : PublicKeyState name)
(tr : τ)
:
def
DY.LongTermKeys.baseAttackerKnowledge.internal
[BytesFunctor]
[ExecTraceTypes]
[BytesFunctor]
(name : String)
(id✝ : Fin 2)
:
SubBaseAttackerKnowledge (ExecEntryT.internal name id✝)
Equations
- DY.LongTermKeys.baseAttackerKnowledge.internal name 0 = DY.PersistentLocalState.CompromisableState.baseAttackerKnowledge (DY.LongTermKeys.SecretKeyState name)
- DY.LongTermKeys.baseAttackerKnowledge.internal name 1 = DY.PersistentGlobalState.CompromisableState.baseAttackerKnowledge (DY.LongTermKeys.PublicKeyState name)
- DY.LongTermKeys.baseAttackerKnowledge.internal name ⟨n.succ.succ, isLt⟩ = ⋯.elim
Instances For
@[instance_reducible]
def
DY.LongTermKeys.baseAttackerKnowledge
[BytesFunctor]
[ExecTraceTypes]
[BytesFunctor]
(name : String)
:
Equations
Instances For
@[instance_reducible]
Equations
Instances For
Equations
- DY.LongTermKeys.ExecEntryT.internal name 0 = DY.PersistentLocalState.CompromisableState.ExecEntryT (DY.LongTermKeys.SecretKeyState name)
- DY.LongTermKeys.ExecEntryT.internal name 1 = DY.PersistentGlobalState.CompromisableState.ExecEntryT (DY.LongTermKeys.PublicKeyState name)
- DY.LongTermKeys.ExecEntryT.internal name ⟨n.succ.succ, isLt⟩ = ⋯.elim
Instances For
def
DY.LongTermKeys.generateKeyPair
[BytesFunctor]
(name : String)
{skToPk : Bytes → Bytes}
[ExecConfig name skToPk]
[ExecTraceTypes]
[BytesFunctor.Has Random.SubF]
[ExecTraceTypes.Has Random.ExecEntryT]
[ExecTraceTypes.Has Network.ExecEntryT]
[ExecTraceTypes.Has (ExecEntryT name)]
(p : Participant)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
DY.LongTermKeys.getPublicKey
[BytesFunctor]
(name : String)
[ExecTraceTypes]
[ExecTraceTypes.Has (ExecEntryT name)]
(p : Participant)
(pkHandle : Nat)
:
Equations
- DY.LongTermKeys.getPublicKey name p pkHandle = do let st ← DY.PersistentGlobalState.getGlobalState pkHandle guard (st.p = p) pure st.pk
Instances For
def
DY.LongTermKeys.getPrivateKey
[BytesFunctor]
(name : String)
[ExecTraceTypes]
[ExecTraceTypes.Has (ExecEntryT name)]
(p : Participant)
(skHandle : Nat)
:
Equations
- DY.LongTermKeys.getPrivateKey name p skHandle = do let st ← DY.PersistentLocalState.getLocalState p skHandle pure st.sk
Instances For
def
DY.LongTermKeys.compromisePrivateKey
[BytesFunctor]
(name : String)
[ExecTraceTypes]
[ExecTraceTypes.Has (ExecEntryT name)]
[BytesLength]
[BytesFunctor.Has Literal.SubF]
[BytesLength.Has Literal.SubF.length]
[BytesFunctor.Has Concat.SubF]
[BytesLength.Has Concat.SubF.length]
[ExecTraceTypes.Has Network.ExecEntryT]
(skHandle : Nat)
:
Equations
- DY.LongTermKeys.compromisePrivateKey name skHandle = DY.PersistentLocalState.compromise (DY.LongTermKeys.SecretKeyState name) skHandle
Instances For
def
DY.LongTermKeys.LongTermKeyCompromised
[BytesFunctor]
(name : String)
{skToPk : Bytes → Bytes}
[ExecConfig name skToPk]
[ExecTraceTypes]
[ExecTraceTypes.Has (ExecEntryT name)]
(participant : Participant)
(pk : Bytes)
(tr : ExecTrace)
:
Equations
Instances For
theorem
DY.LongTermKeys.LongTermKeyCompromised_le
[BytesFunctor]
(name : String)
{skToPk : Bytes → Bytes}
[ExecConfig name skToPk]
[ExecTraceTypes]
[ExecTraceTypes.Has (ExecEntryT name)]
(participant : Participant)
(pk : Bytes)
(tr1 tr2 : ExecTrace)
:
tr1 ≤ tr2 → LongTermKeyCompromised name participant pk tr1 → LongTermKeyCompromised name participant pk tr2
def
DY.LongTermKeys.label
[BytesFunctor]
(name : String)
{skToPk : Bytes → Bytes}
[ExecConfig name skToPk]
[ExecTraceTypes]
[ExecTraceTypes.Has (ExecEntryT name)]
(participant : Participant)
(pk : Bytes)
:
Equations
- DY.LongTermKeys.label name participant pk = { isCorrupt := DY.LongTermKeys.LongTermKeyCompromised name participant pk, isCorruptLater := ⋯ }
Instances For
class
DY.LongTermKeys.ProofConfig
[BytesFunctor]
[ExecTraceTypes]
[ProofTraceTypes]
[BytesInvariants]
(name : String)
{skToPk : outParam (Bytes → Bytes)}
(usage : outParam (Participant → Usage))
(lab : outParam (Participant → Bytes → Label))
[ExecConfig name skToPk]
[ExecTraceTypes.Has (ExecEntryT name)]
:
- IsLongTermPublicKey : Participant → Bytes → ProofTrace → Prop
- label_canFlow (p : Participant) (b : Bytes) (tr : ExecTrace) : (lab p b).canFlow (label name p b) tr
- IsLongTermPublicKey_le (p : Participant) (b : Bytes) (tr1 tr2 : ProofTrace) : tr1 ≤ tr2 → IsLongTermPublicKey name p b tr1 → IsLongTermPublicKey name p b tr2
- IsLongTermPublicKey_implied (p : Participant) (b : Bytes) (tr : ProofTrace) : b.Invariant tr → b.label tr = lab p (skToPk b) → b.HasUsage (usage p) tr → IsLongTermPublicKey name p (skToPk b) tr
- IsLongTermPublicKey_implies (p : Participant) (b : Bytes) (tr : ProofTrace) : IsLongTermPublicKey name p b tr → b.Publishable tr
Instances
theorem
DY.LongTermKeys.IsLongTermPublicKey_implies_Invariant
[BytesFunctor]
[ExecTraceTypes]
[ProofTraceTypes]
[BytesInvariants]
(name : String)
{skToPk : Bytes → Bytes}
(usage : Participant → Usage)
(lab : Participant → Bytes → Label)
[ExecTraceTypes.Has (ExecEntryT name)]
[ExecConfig name skToPk]
[ProofConfig name usage lab]
(p : Participant)
(b : Bytes)
(tr : ProofTrace)
:
IsLongTermPublicKey name p b tr → b.Invariant tr
def
DY.LongTermKeys.IsLongTermSecretKey
[BytesFunctor]
[ExecTraceTypes]
[ProofTraceTypes]
[BytesInvariants]
(name : String)
{skToPk : Bytes → Bytes}
{usage : Participant → Usage}
{lab : Participant → Bytes → Label}
[ExecTraceTypes.Has (ExecEntryT name)]
[ExecConfig name skToPk]
[ProofConfig name usage lab]
(p : Participant)
(b : Bytes)
(tr : ProofTrace)
:
Equations
Instances For
theorem
DY.LongTermKeys.IsLongTermSecretKey_later
[BytesFunctor]
[ExecTraceTypes]
[ProofTraceTypes]
[BytesInvariants]
[BytesInvariantsProofs]
(name : String)
{skToPk : Bytes → Bytes}
{usage : Participant → Usage}
{lab : Participant → Bytes → Label}
[ExecTraceTypes.Has (ExecEntryT name)]
[ExecConfig name skToPk]
[ProofConfig name usage lab]
(p : Participant)
(b : Bytes)
(tr1 tr2 : ProofTrace)
:
tr1 ≤ tr2 → IsLongTermSecretKey name p b tr1 → IsLongTermSecretKey name p b tr2
@[instance_reducible]
instance
DY.LongTermKeys.instCompromisableLocalStateInvSecretKeyState
[BytesFunctor]
[BytesLength]
[ExecTraceTypes]
[ProofTraceTypes]
[BytesInvariants]
[BytesInvariantsProofs]
[BytesFunctor.Has Literal.SubF]
[BytesLength.Has Literal.SubF.length]
[BytesFunctor.Has Concat.SubF]
[BytesLength.Has Concat.SubF.length]
[BytesInvariants.Has Literal.invariants]
[BytesInvariants.Has Concat.invariants]
(name : String)
[ExecTraceTypes.Has (ExecEntryT name)]
{skToPk : Bytes → Bytes}
{usage : Participant → Usage}
{lab : Participant → Bytes → Label}
[ExecConfig name skToPk]
[ProofConfig name usage lab]
:
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
instance
DY.LongTermKeys.instCompromisableGlobalStateInvPublicKeyState
[BytesFunctor]
[BytesLength]
[ExecTraceTypes]
[ProofTraceTypes]
[BytesInvariants]
[BytesFunctor.Has Literal.SubF]
[BytesLength.Has Literal.SubF.length]
[BytesFunctor.Has Concat.SubF]
[BytesLength.Has Concat.SubF.length]
[BytesInvariants.Has Literal.invariants]
[BytesInvariants.Has Concat.invariants]
(name : String)
[ExecTraceTypes.Has (ExecEntryT name)]
{skToPk : Bytes → Bytes}
{usage : Participant → Usage}
{lab : Participant → Bytes → Label}
[ExecConfig name skToPk]
[ProofConfig name usage lab]
:
Equations
- One or more equations did not get rendered due to their size.
Equations
- DY.LongTermKeys.ProofEntryT.internal name 0 = DY.PersistentLocalState.CompromisableState.ProofEntryT (DY.LongTermKeys.SecretKeyState name)
- DY.LongTermKeys.ProofEntryT.internal name 1 = DY.PersistentGlobalState.CompromisableState.ProofEntryT (DY.LongTermKeys.PublicKeyState name)
- DY.LongTermKeys.ProofEntryT.internal name ⟨n.succ.succ, isLt⟩ = ⋯.elim
Instances For
@[instance_reducible]
Equations
Instances For
instance
DY.LongTermKeys.generateKeyPair.spec
[BytesFunctor]
[ExecTraceTypes]
[ProofTraceTypes]
[TraceInvariant]
[BytesInvariants]
[BytesInvariantsProofs]
[BytesLength]
[BytesFunctor.Has Literal.SubF]
[BytesLength.Has Literal.SubF.length]
[BytesFunctor.Has Concat.SubF]
[BytesLength.Has Concat.SubF.length]
[BytesInvariants.Has Literal.invariants]
[BytesInvariants.Has Concat.invariants]
(name : String)
{skToPk : Bytes → Bytes}
{usage : Participant → Usage}
{lab : Participant → Bytes → Label}
[BytesFunctor.Has Random.SubF]
[ExecTraceTypes.Has Random.ExecEntryT]
[ProofTraceTypes.Has Random.ProofEntryT]
[ExecTraceTypes.Has Network.ExecEntryT]
[ProofTraceTypes.Has Network.ProofEntryT]
[ExecTraceTypes.Has (ExecEntryT name)]
[ProofTraceTypes.Has (ProofEntryT name)]
[BytesInvariants.Has Random.invariants]
[ExecConfig name skToPk]
[ProofConfig name usage lab]
[TraceInvariant.Has Random.ProofEntryT]
[TraceInvariant.Has Network.ProofEntryT]
[TraceInvariant.Has (ProofEntryT name)]
(p : Participant)
:
HoareTriple (generateKeyPair name p) (fun (x : ProofTrace) => True) fun (x : Nat × Nat × Nat) (x_1 : ProofTrace) => True
instance
DY.LongTermKeys.getPublicKey.spec
[BytesFunctor]
[ExecTraceTypes]
[ProofTraceTypes]
[TraceInvariant]
[BytesInvariants]
[BytesInvariantsProofs]
[BytesLength]
[BytesFunctor.Has Literal.SubF]
[BytesLength.Has Literal.SubF.length]
[BytesFunctor.Has Concat.SubF]
[BytesLength.Has Concat.SubF.length]
[BytesInvariants.Has Literal.invariants]
[BytesInvariants.Has Concat.invariants]
(name : String)
{skToPk : Bytes → Bytes}
{usage : Participant → Usage}
{lab : Participant → Bytes → Label}
[BytesFunctor.Has Random.SubF]
[ExecTraceTypes.Has (ExecEntryT name)]
[ProofTraceTypes.Has (ProofEntryT name)]
[ExecConfig name skToPk]
[ProofConfig name usage lab]
[TraceInvariant.Has (ProofEntryT name)]
(p : Participant)
(pkHandle : Nat)
:
HoareTriple (getPublicKey name p pkHandle) (fun (x : ProofTrace) => True) fun (res : Bytes) (tr : ProofTrace) =>
IsLongTermPublicKey name p res tr
instance
DY.LongTermKeys.getPrivateKey.spec
[BytesFunctor]
[ExecTraceTypes]
[ProofTraceTypes]
[TraceInvariant]
[BytesInvariants]
[BytesInvariantsProofs]
[BytesLength]
[BytesFunctor.Has Literal.SubF]
[BytesLength.Has Literal.SubF.length]
[BytesFunctor.Has Concat.SubF]
[BytesLength.Has Concat.SubF.length]
[BytesInvariants.Has Literal.invariants]
[BytesInvariants.Has Concat.invariants]
(name : String)
{skToPk : Bytes → Bytes}
{usage : Participant → Usage}
{lab : Participant → Bytes → Label}
[BytesFunctor.Has Random.SubF]
[ExecTraceTypes.Has (ExecEntryT name)]
[ProofTraceTypes.Has (ProofEntryT name)]
[ExecConfig name skToPk]
[ProofConfig name usage lab]
[TraceInvariant.Has (ProofEntryT name)]
(p : Participant)
(skHandle : Nat)
:
HoareTriple (getPrivateKey name p skHandle) (fun (x : ProofTrace) => True) fun (res : Bytes) (tr : ProofTrace) =>
IsLongTermSecretKey name p res tr
instance
DY.LongTermKeys.compromisePrivateKey.spec
[BytesFunctor]
[ExecTraceTypes]
[ProofTraceTypes]
[TraceInvariant]
[BytesInvariants]
[BytesInvariantsProofs]
[BytesLength]
[BytesFunctor.Has Literal.SubF]
[BytesLength.Has Literal.SubF.length]
[BytesFunctor.Has Concat.SubF]
[BytesLength.Has Concat.SubF.length]
[BytesInvariants.Has Literal.invariants]
[BytesInvariants.Has Concat.invariants]
(name : String)
{skToPk : Bytes → Bytes}
{usage : Participant → Usage}
{lab : Participant → Bytes → Label}
[BytesFunctor.Has Random.SubF]
[ExecTraceTypes.Has (ExecEntryT name)]
[ProofTraceTypes.Has (ProofEntryT name)]
[ExecConfig name skToPk]
[ProofConfig name usage lab]
[TraceInvariant.Has (ProofEntryT name)]
[ExecTraceTypes.Has Network.ExecEntryT]
[ProofTraceTypes.Has Network.ProofEntryT]
[TraceInvariant.Has Network.ProofEntryT]
(skHandle : Nat)
:
HoareTriple (compromisePrivateKey name skHandle) (fun (x : ProofTrace) => True) fun (x : Nat) (x_1 : ProofTrace) => True
def
DY.LongTermKeys.generateKeyPair.reachability
[BytesFunctor]
(name : String)
{skToPk : Bytes → Bytes}
[ExecConfig name skToPk]
[ExecTraceTypes]
[BytesFunctor.Has Random.SubF]
[ExecTraceTypes.Has Random.ExecEntryT]
[ExecTraceTypes.Has Network.ExecEntryT]
[ExecTraceTypes.Has (ExecEntryT name)]
:
Equations
- DY.LongTermKeys.generateKeyPair.reachability name = DY.ReachabilityConfig.make fun (p : DY.Participant) => DY.LongTermKeys.generateKeyPair name p
Instances For
def
DY.LongTermKeys.compromisePrivateKey.reachability
[BytesFunctor]
(name : String)
[ExecTraceTypes]
[ExecTraceTypes.Has Network.ExecEntryT]
[ExecTraceTypes.Has (ExecEntryT name)]
[BytesLength]
[BytesFunctor.Has Literal.SubF]
[BytesLength.Has Literal.SubF.length]
[BytesFunctor.Has Concat.SubF]
[BytesLength.Has Concat.SubF.length]
:
Equations
- DY.LongTermKeys.compromisePrivateKey.reachability name = DY.ReachabilityConfig.make fun (skHandle : Nat) => DY.LongTermKeys.compromisePrivateKey name skHandle
Instances For
def
DY.LongTermKeys.reachability.internal
[BytesFunctor]
(name : String)
{skToPk : Bytes → Bytes}
[ExecConfig name skToPk]
[ExecTraceTypes]
[BytesFunctor.Has Random.SubF]
[ExecTraceTypes.Has Random.ExecEntryT]
[ExecTraceTypes.Has Network.ExecEntryT]
[ExecTraceTypes.Has (ExecEntryT name)]
[BytesLength]
[BytesFunctor.Has Literal.SubF]
[BytesLength.Has Literal.SubF.length]
[BytesFunctor.Has Concat.SubF]
[BytesLength.Has Concat.SubF.length]
:
Equations
Instances For
def
DY.LongTermKeys.reachability
[BytesFunctor]
(name : String)
{skToPk : Bytes → Bytes}
[ExecConfig name skToPk]
[ExecTraceTypes]
[BytesFunctor.Has Random.SubF]
[ExecTraceTypes.Has Random.ExecEntryT]
[ExecTraceTypes.Has Network.ExecEntryT]
[ExecTraceTypes.Has (ExecEntryT name)]
[BytesLength]
[BytesFunctor.Has Literal.SubF]
[BytesLength.Has Literal.SubF.length]
[BytesFunctor.Has Concat.SubF]
[BytesLength.Has Concat.SubF.length]
:
Equations
Instances For
@[instance_reducible]
instance
DY.LongTermKeys.instHasStepReachabilityReachability
[BytesFunctor]
(name : String)
{skToPk : Bytes → Bytes}
[ExecConfig name skToPk]
[ExecTraceTypes]
[BytesFunctor.Has Random.SubF]
[ExecTraceTypes.Has Random.ExecEntryT]
[ExecTraceTypes.Has Network.ExecEntryT]
[ExecTraceTypes.Has (ExecEntryT name)]
[BytesLength]
[BytesFunctor.Has Literal.SubF]
[BytesLength.Has Literal.SubF.length]
[BytesFunctor.Has Concat.SubF]
[BytesLength.Has Concat.SubF.length]
:
(generateKeyPair.reachability name).HasStep (reachability name)
Equations
- DY.LongTermKeys.instHasStepReachabilityReachability name = { inj := DY.LongTermKeys.instHasStepReachabilityReachability._aux_1 name, pf_pre := ⋯, pf_step := ⋯ }
@[instance_reducible]
instance
DY.LongTermKeys.instHasStepReachabilityReachability_1
[BytesFunctor]
(name : String)
{skToPk : Bytes → Bytes}
[ExecConfig name skToPk]
[ExecTraceTypes]
[BytesFunctor.Has Random.SubF]
[ExecTraceTypes.Has Random.ExecEntryT]
[ExecTraceTypes.Has Network.ExecEntryT]
[ExecTraceTypes.Has (ExecEntryT name)]
[BytesLength]
[BytesFunctor.Has Literal.SubF]
[BytesLength.Has Literal.SubF.length]
[BytesFunctor.Has Concat.SubF]
[BytesLength.Has Concat.SubF.length]
:
(compromisePrivateKey.reachability name).HasStep (reachability name)
Equations
- DY.LongTermKeys.instHasStepReachabilityReachability_1 name = { inj := DY.LongTermKeys.instHasStepReachabilityReachability_1._aux_1 name, pf_pre := ⋯, pf_step := ⋯ }
instance
DY.LongTermKeys.instReachableImpliesInvariantReachability
[BytesFunctor]
(name : String)
{skToPk : Bytes → Bytes}
[ExecConfig name skToPk]
[ExecTraceTypes]
[BytesFunctor.Has Random.SubF]
[ExecTraceTypes.Has Random.ExecEntryT]
[ExecTraceTypes.Has Network.ExecEntryT]
[ExecTraceTypes.Has (ExecEntryT name)]
[ProofTraceTypes]
[TraceInvariant]
[BytesInvariants]
[BytesInvariantsProofs]
[BytesLength]
[BytesFunctor.Has Literal.SubF]
[BytesLength.Has Literal.SubF.length]
[BytesFunctor.Has Concat.SubF]
[BytesLength.Has Concat.SubF.length]
[BytesInvariants.Has Literal.invariants]
[BytesInvariants.Has Concat.invariants]
{usage : Participant → Usage}
{lab : Participant → Bytes → Label}
[ProofTraceTypes.Has Random.ProofEntryT]
[ProofTraceTypes.Has Network.ProofEntryT]
[ProofTraceTypes.Has (ProofEntryT name)]
[BytesInvariants.Has Random.invariants]
[ProofConfig name usage lab]
[TraceInvariant.Has Random.ProofEntryT]
[TraceInvariant.Has Network.ProofEntryT]
[TraceInvariant.Has (ProofEntryT name)]
:
instance
DY.LongTermKeys.instReachableImpliesInvariantReachability_1
[BytesFunctor]
(name : String)
{skToPk : Bytes → Bytes}
[ExecConfig name skToPk]
[ExecTraceTypes]
[BytesFunctor.Has Random.SubF]
[ExecTraceTypes.Has Network.ExecEntryT]
[ExecTraceTypes.Has (ExecEntryT name)]
[ProofTraceTypes]
[TraceInvariant]
[BytesInvariants]
[BytesInvariantsProofs]
[BytesLength]
[BytesFunctor.Has Literal.SubF]
[BytesLength.Has Literal.SubF.length]
[BytesFunctor.Has Concat.SubF]
[BytesLength.Has Concat.SubF.length]
[BytesInvariants.Has Literal.invariants]
[BytesInvariants.Has Concat.invariants]
{usage : Participant → Usage}
{lab : Participant → Bytes → Label}
[ProofTraceTypes.Has Network.ProofEntryT]
[ProofTraceTypes.Has (ProofEntryT name)]
[ProofConfig name usage lab]
[TraceInvariant.Has Network.ProofEntryT]
[TraceInvariant.Has (ProofEntryT name)]
:
instance
DY.LongTermKeys.instReachableImpliesInvariantInternal
[BytesFunctor]
(name : String)
{skToPk : Bytes → Bytes}
[ExecConfig name skToPk]
[ExecTraceTypes]
[BytesFunctor.Has Random.SubF]
[ExecTraceTypes.Has Random.ExecEntryT]
[ExecTraceTypes.Has Network.ExecEntryT]
[ExecTraceTypes.Has (ExecEntryT name)]
[ProofTraceTypes]
[TraceInvariant]
[BytesInvariants]
[BytesInvariantsProofs]
[BytesLength]
[BytesFunctor.Has Literal.SubF]
[BytesLength.Has Literal.SubF.length]
[BytesFunctor.Has Concat.SubF]
[BytesLength.Has Concat.SubF.length]
[BytesInvariants.Has Literal.invariants]
[BytesInvariants.Has Concat.invariants]
{usage : Participant → Usage}
{lab : Participant → Bytes → Label}
[ProofTraceTypes.Has Random.ProofEntryT]
[ProofTraceTypes.Has Network.ProofEntryT]
[ProofTraceTypes.Has (ProofEntryT name)]
[BytesInvariants.Has Random.invariants]
[ProofConfig name usage lab]
[TraceInvariant.Has Random.ProofEntryT]
[TraceInvariant.Has Network.ProofEntryT]
[TraceInvariant.Has (ProofEntryT name)]
(id : Fin 2)
:
instance
DY.LongTermKeys.instReachableImpliesInvariantReachability_2
[BytesFunctor]
(name : String)
{skToPk : Bytes → Bytes}
[ExecConfig name skToPk]
[ExecTraceTypes]
[BytesFunctor.Has Random.SubF]
[ExecTraceTypes.Has Random.ExecEntryT]
[ExecTraceTypes.Has Network.ExecEntryT]
[ExecTraceTypes.Has (ExecEntryT name)]
[ProofTraceTypes]
[TraceInvariant]
[BytesInvariants]
[BytesInvariantsProofs]
[BytesLength]
[BytesFunctor.Has Literal.SubF]
[BytesLength.Has Literal.SubF.length]
[BytesFunctor.Has Concat.SubF]
[BytesLength.Has Concat.SubF.length]
[BytesInvariants.Has Literal.invariants]
[BytesInvariants.Has Concat.invariants]
{usage : Participant → Usage}
{lab : Participant → Bytes → Label}
[ProofTraceTypes.Has Random.ProofEntryT]
[ProofTraceTypes.Has Network.ProofEntryT]
[ProofTraceTypes.Has (ProofEntryT name)]
[BytesInvariants.Has Random.invariants]
[ProofConfig name usage lab]
[TraceInvariant.Has Random.ProofEntryT]
[TraceInvariant.Has Network.ProofEntryT]
[TraceInvariant.Has (ProofEntryT name)]
: