- traceExec7 : ExecTraceTypes.Has (LongTermKeys.ExecEntryT "SignedDHKEM PKI")
- traceProof : ProofTraceTypes
- traceProof0 : ProofTraceTypes.Has Network.ProofEntryT
- traceProof1 : ProofTraceTypes.Has Random.ProofEntryT
- traceProof2 : ProofTraceTypes.Has (ProtocolEvent.ProofEntryT SignedDHKEMEvent)
- traceProof7 : ProofTraceTypes.Has (LongTermKeys.ProofEntryT "SignedDHKEM PKI")
- traceProof8 : ProofTraceTypes.Has KEM.Broken.ProofEntryT
- traceProof9 : ProofTraceTypes.Has DiffieHellman'.Broken.ProofEntryT
- traceProof10 : ProofTraceTypes.Has Signature'.Broken.ProofEntryT
Instances
Equations
- DY.Example.SignedDHKEM.clientDhLabel me xPk = { isCorrupt := fun (tr : DY.ExecTrace) => DY.Example.SignedDHKEM.ClientEphemeralDHStateCompromised me xPk tr, isCorruptLater := ⋯ }
Instances For
Equations
- DY.Example.SignedDHKEM.clientKemLabel me zPk = { isCorrupt := fun (tr : DY.ExecTrace) => DY.Example.SignedDHKEM.ClientEphemeralKEMStateCompromised me zPk tr, isCorruptLater := ⋯ }
Instances For
Equations
- DY.Example.SignedDHKEM.serverLabel me xPk yPk zPk = { isCorrupt := fun (tr : DY.ExecTrace) => DY.Example.SignedDHKEM.ServerEphemeralStateCompromised me xPk yPk zPk tr, isCorruptLater := ⋯ }
Instances For
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
Equations
- DY.Example.SignedDHKEM.mkLongTermUsage me = { type := "SigKey", tag := "SignedDHKEM PKI", data := some (DY.Comparse.serialize { principal := me }) }
Instances For
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
- traceExec7 : ExecTraceTypes.Has (LongTermKeys.ExecEntryT "SignedDHKEM PKI")
- traceProof7 : ProofTraceTypes.Has (LongTermKeys.ProofEntryT "SignedDHKEM PKI")
- bytesInv : BytesInvariants
- bytesInvProof : BytesInvariantsProofs
- bytesInv0 : BytesInvariants.Has Random.invariants
- bytesInv1 : BytesInvariants.Has Literal.invariants
- bytesInv2 : BytesInvariants.Has Concat.invariants
- bytesInv3 : BytesInvariants.Has Hash.invariants
- bytesInv4 : BytesInvariants.Has Signature'.invariants
- bytesInv5 : BytesInvariants.Has DiffieHellman'.invariants
- bytesInv6 : BytesInvariants.Has KEM.invariants
Instances
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
theorem
DY.Example.SignedDHKEM.ClientInitiateDHStateInv_imp_Invariant
[HasBytesInvariants]
{tr : ProofTrace}
(participant : Participant)
(st : ClientInitiateDHState)
:
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
theorem
DY.Example.SignedDHKEM.ClientInitiateKEMStateInv_imp_Invariant
[HasBytesInvariants]
{tr : ProofTrace}
(participant : Participant)
(st : ClientInitiateKEMState)
:
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
Equations
- DY.Example.SignedDHKEM.mkLongTermLabel p vk = (DY.LongTermKeys.label "SignedDHKEM PKI" p vk).join (DY.Signature'.Broken.label vk)
Instances For
@[instance_reducible]
instance
DY.Example.SignedDHKEM.instProofConfigMkLongTermUsageMkLongTermLabel
[HasBytesInvariants]
:
LongTermKeys.ProofConfig "SignedDHKEM PKI" mkLongTermUsage mkLongTermLabel
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
class
DY.Example.SignedDHKEM.HasTraceInvariantextends DY.Example.SignedDHKEM.HasBytesInvariants :
Type 1
- traceExec7 : ExecTraceTypes.Has (LongTermKeys.ExecEntryT "SignedDHKEM PKI")
- traceProof7 : ProofTraceTypes.Has (LongTermKeys.ProofEntryT "SignedDHKEM PKI")
- traceInv : TraceInvariant
- traceInv0 : TraceInvariant.Has Network.ProofEntryT
- traceInv1 : TraceInvariant.Has Random.ProofEntryT
- traceInv2 : TraceInvariant.Has (ProtocolEvent.ProofEntryT SignedDHKEMEvent)
- traceInv7 : TraceInvariant.Has (LongTermKeys.ProofEntryT "SignedDHKEM PKI")
- traceInv8 : TraceInvariant.Has KEM.Broken.ProofEntryT
- traceInv9 : TraceInvariant.Has DiffieHellman'.Broken.ProofEntryT
- traceInv10 : TraceInvariant.Has Signature'.Broken.ProofEntryT
- attBaseThm : BaseAttackerKnowledgeTheorem
- attThm : AttackerKnowledgeTheorem
Instances
instance
DY.Example.SignedDHKEM.Client.initiate.spec
[HasTraceInvariant]
(me : Participant)
:
HoareTriple (initiate me) (fun (x : ProofTrace) => True) fun (x : Nat × Nat × Nat) (x_1 : ProofTrace) => True
instance
DY.Example.SignedDHKEM.instHoareTriplePureBytesConcatAndInvariantEqLabelLabelMeet_examples
[HasTraceInvariant]
(lhs rhs : Bytes)
:
HoareTriplePure (Concat.concat lhs rhs) (fun (tr : ProofTrace) => lhs.Invariant tr ∧ rhs.Invariant tr)
fun (res : Bytes) (tr : ProofTrace) => res.Invariant tr ∧ res.label tr = (lhs.label tr).meet (rhs.label tr)
instance
DY.Example.SignedDHKEM.Server.receive.spec
[HasTraceInvariant]
(me : Participant)
(skHandle msgHandle : Nat)
:
HoareTriple (receive me skHandle msgHandle) (fun (x : ProofTrace) => True) fun (x : Nat × Nat) (x_1 : ProofTrace) =>
True
instance
DY.Example.SignedDHKEM.Client.finish.spec
[HasTraceInvariant]
(me server : Participant)
(pkHandle msgHandle dhStHandle kemStHandle : Nat)
:
HoareTriple (finish me server pkHandle msgHandle dhStHandle kemStHandle) (fun (x : ProofTrace) => True)
fun (x : Nat) (x_1 : ProofTrace) => True
instance
DY.Example.SignedDHKEM.ClientInitiateDHState.compromise.spec
[HasTraceInvariant]
(stHandle : Nat)
:
HoareTriple (compromise stHandle) (fun (x : ProofTrace) => True) fun (x : Nat) (x_1 : ProofTrace) => True
instance
DY.Example.SignedDHKEM.ClientInitiateKEMState.compromise.spec
[HasTraceInvariant]
(stHandle : Nat)
:
HoareTriple (compromise stHandle) (fun (x : ProofTrace) => True) fun (x : Nat) (x_1 : ProofTrace) => True
instance
DY.Example.SignedDHKEM.ClientFinishState.compromise.spec
[HasTraceInvariant]
(stHandle : Nat)
:
HoareTriple (compromise stHandle) (fun (x : ProofTrace) => True) fun (x : Nat) (x_1 : ProofTrace) => True
instance
DY.Example.SignedDHKEM.ServerFinishState.compromise.spec
[HasTraceInvariant]
(stHandle : Nat)
:
HoareTriple (compromise stHandle) (fun (x : ProofTrace) => True) fun (x : Nat) (x_1 : ProofTrace) => True