- bytesFunc : BytesFunctor
- bytesFunc0 : BytesFunctor.Has Random.SubF
- bytesFunc1 : BytesFunctor.Has Literal.SubF
- bytesFunc2 : BytesFunctor.Has Concat.SubF
- bytesFunc3 : BytesFunctor.Has Signature.SubF
- bytesLen : BytesLength
- bytesLen0 : BytesLength.Has Random.SubF.length
- bytesLen1 : BytesLength.Has Literal.SubF.length
- bytesLen2 : BytesLength.Has Concat.SubF.length
- bytesLen3 : BytesLength.Has Signature.SubF.length
- att : AttackerKnowledge
Instances
@[instance_reducible]
instance
DY.Example.ACME.WithoutDEO.instHasExecBytesOfHasExecBytesWithoutDEO
[HasExecBytesWithoutDEO]
:
Equations
- One or more equations did not get rendered due to their size.
class
DY.Example.ACME.WithoutDEO.HasExecTraceWithoutDEOextends DY.Example.ACME.WithoutDEO.HasExecBytesWithoutDEO :
Type 1
- traceExec : ExecTraceTypes
- traceExec0 : ExecTraceTypes.Has Network.ExecEntryT
- traceExec1 : ExecTraceTypes.Has Random.ExecEntryT
- traceExec2 : ExecTraceTypes.Has (ProtocolEvent.ExecEntryT ACMEEvent)
- traceExec7 : ExecTraceTypes.Has (LongTermKeys.ExecEntryT "ACME PKI")
- attBase : BaseAttackerKnowledge
Instances
@[instance_reducible]
instance
DY.Example.ACME.WithoutDEO.instHasExecTraceOfHasExecTraceWithoutDEO
[HasExecTraceWithoutDEO]
:
Equations
- One or more equations did not get rendered due to their size.
class
DY.Example.ACME.WithoutDEO.HasProofTraceextends DY.Example.ACME.WithoutDEO.HasExecTraceWithoutDEO :
Type 1
- traceExec7 : ExecTraceTypes.Has (LongTermKeys.ExecEntryT "ACME PKI")
- traceProof : ProofTraceTypes
- traceProof0 : ProofTraceTypes.Has Network.ProofEntryT
- traceProof1 : ProofTraceTypes.Has Random.ProofEntryT
- traceProof2 : ProofTraceTypes.Has (ProtocolEvent.ProofEntryT ACMEEvent)
- traceProof7 : ProofTraceTypes.Has (LongTermKeys.ProofEntryT "ACME PKI")
Instances
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
class
DY.Example.ACME.WithoutDEO.HasBytesInvariantsextends DY.Example.ACME.WithoutDEO.HasProofTrace :
Type 1
- traceExec7 : ExecTraceTypes.Has (LongTermKeys.ExecEntryT "ACME PKI")
- traceProof7 : ProofTraceTypes.Has (LongTermKeys.ProofEntryT "ACME PKI")
- bytesInv : BytesInvariants
- bytesInvProof : BytesInvariantsProofs
- bytesInv0 : BytesInvariants.Has Random.invariants
- bytesInv1 : BytesInvariants.Has Literal.invariants
- bytesInv2 : BytesInvariants.Has Concat.invariants
- bytesInv3 : BytesInvariants.Has Signature.invariants
Instances
Equations
- DY.Example.ACME.WithoutDEO.sigAcmeUsage = { type := "SigKey", tag := "ACME PKI", data := none }
Instances For
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
theorem
DY.Example.ACME.WithoutDEO.OwnerKeyStateInv_imp_Invariant
[HasBytesInvariants]
(participant : Participant)
(st : OwnerKeyState)
(tr : ProofTrace)
:
PersistentLocalState.LocalStateInv.invariant participant st tr → st.oSk.Invariant tr
@[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.
theorem
DY.Example.ACME.WithoutDEO.LetsEncryptPendingChallengeStateInv_imp_Invariant
[HasBytesInvariants]
(participant : Participant)
(st : LetsEncryptPendingChallengeState)
(tr : ProofTrace)
:
PersistentLocalState.LocalStateInv.invariant participant st tr → st.token.Invariant tr
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
instance
DY.Example.ACME.WithoutDEO.instProofConfigSigAcmeUsageLabel
[HasBytesInvariants]
:
LongTermKeys.ProofConfig "ACME PKI" (fun (x : Participant) => sigAcmeUsage) (LongTermKeys.label "ACME PKI")
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.ACME.WithoutDEO.HasTraceInvariantextends DY.Example.ACME.WithoutDEO.HasBytesInvariants :
Type 1
- traceExec7 : ExecTraceTypes.Has (LongTermKeys.ExecEntryT "ACME PKI")
- traceProof7 : ProofTraceTypes.Has (LongTermKeys.ProofEntryT "ACME PKI")
- traceInv : TraceInvariant
- traceInv0 : TraceInvariant.Has Network.ProofEntryT
- traceInv1 : TraceInvariant.Has Random.ProofEntryT
- traceInv2 : TraceInvariant.Has (ProtocolEvent.ProofEntryT ACMEEvent)
- traceInv7 : TraceInvariant.Has (LongTermKeys.ProofEntryT "ACME PKI")
- attBaseThm : BaseAttackerKnowledgeTheorem
- attThm : AttackerKnowledgeTheorem
Instances
instance
DY.Example.ACME.WithoutDEO.Owner.generateKeyPair.spec
[HasTraceInvariant]
(owner : Participant)
:
HoareTriple (Owner.generateKeyPair owner) (fun (x : ProofTrace) => True) fun (x : Nat × Nat) (x_1 : ProofTrace) => True
instance
DY.Example.ACME.WithoutDEO.Owner.claimAddress.spec
[HasTraceInvariant]
(owner : Participant)
(address : String)
(oSkHandle : Nat)
:
HoareTriple (Owner.claimAddress owner address oSkHandle) (fun (x : ProofTrace) => True)
fun (x : Nat) (x_1 : ProofTrace) => True
instance
DY.Example.ACME.WithoutDEO.LetsEncrypt.initiate.spec
[HasTraceInvariant]
(server : Participant)
(address : String)
(skHandle : Nat)
:
HoareTriple (LetsEncrypt.initiate server address skHandle) (fun (x : ProofTrace) => True)
fun (x : Nat × Nat) (x_1 : ProofTrace) => True
instance
DY.Example.ACME.WithoutDEO.Owner.respond.spec
[HasTraceInvariant]
(owner server : Participant)
(msgHandle lePkHandle stHandle : Nat)
:
HoareTriple (Owner.respond owner server msgHandle lePkHandle stHandle) (fun (x : ProofTrace) => True)
fun (x : Nat × Nat) (x_1 : ProofTrace) => True
theorem
DY.Example.ACME.WithoutDEO.instHoareTriplePureGhostBoolUsageVerifyBytesTrueEqOfBytesInvariants_examples
[HasTraceInvariant]
{skUsg : Usage}
[ExecTraceTypes]
[ProofTraceTypes]
[BytesInvariants]
(vkey msg sig : Bytes)
:
HoareTriplePureGhost (Signature.verify vkey msg sig) skUsg (fun (_tr : ProofTrace) => True)
fun (res : Bool) (_tr : ProofTrace) => res = Signature.verify vkey msg sig
theorem
DY.Example.ACME.WithoutDEO.verify_implies_signature
[HasTraceInvariant]
(vkey msg sig : Bytes)
:
theorem
DY.Example.ACME.WithoutDEO.sign_injective
[HasTraceInvariant]
(sk1 sk2 nonce1 nonce2 msg1 msg2 : Bytes)
:
Signature.sign sk1 nonce1 msg1 = Signature.sign sk2 nonce2 msg2 → sk1 = sk2
instance
DY.Example.ACME.WithoutDEO.LetsEncrypt.finish.spec
[HasTraceInvariant]
(server : Participant)
(msgHandle pendingStHandle dnsEntryHandle : Nat)
:
HoareTriple (LetsEncrypt.finish server msgHandle pendingStHandle dnsEntryHandle) (fun (x : ProofTrace) => True)
fun (x : Unit) (x_1 : ProofTrace) => True
instance
DY.Example.ACME.WithoutDEO.OwnerKeyState.compromise.spec
[HasTraceInvariant]
(stHandle : Nat)
:
HoareTriple (OwnerKeyState.compromise stHandle) (fun (x : ProofTrace) => True) fun (x : Nat) (x_1 : ProofTrace) => True
instance
DY.Example.ACME.WithoutDEO.OwnerAddressState.compromise.spec
[HasTraceInvariant]
(stHandle : Nat)
:
HoareTriple (OwnerAddressState.compromise stHandle) (fun (x : ProofTrace) => True) fun (x : Nat) (x_1 : ProofTrace) =>
True
instance
DY.Example.ACME.WithoutDEO.LetsEncryptPendingChallengeState.compromise.spec
[HasTraceInvariant]
(stHandle : Nat)
:
HoareTriple (LetsEncryptPendingChallengeState.compromise stHandle) (fun (x : ProofTrace) => True)
fun (x : Nat) (x_1 : ProofTrace) => True
instance
DY.Example.ACME.WithoutDEO.DNSEntry.compromise.spec
[HasTraceInvariant]
(stHandle : Nat)
:
HoareTriple (DNSEntry.compromise stHandle) (fun (x : ProofTrace) => True) fun (x : Nat) (x_1 : ProofTrace) => True