- Empty {Bytes α : Type} : MerkleTreeNode Bytes α
- Leaf {Bytes α : Type} : α → MerkleTreeNode Bytes α
- Internal {Bytes α : Type} : Bytes → Bytes → MerkleTreeNode Bytes α
Instances For
@[instance_reducible]
instance DY.Example.MerkleTree.instDecidableEqMerkleTreeNode {Bytes✝ α✝ : Type} [DecidableEq Bytes✝] [DecidableEq α✝] :
DecidableEq (MerkleTreeNode Bytes✝ α✝)
def DY.Example.MerkleTree.instDecidableEqMerkleTreeNode.decEq {Bytes✝ α✝ : Type} [DecidableEq Bytes✝] [DecidableEq α✝] (x✝ x✝¹ : MerkleTreeNode Bytes✝ α✝) :
Equations
- One or more equations did not get rendered due to their size.
- DY.Example.MerkleTree.instDecidableEqMerkleTreeNode.decEq DY.Example.MerkleTree.MerkleTreeNode.Empty DY.Example.MerkleTree.MerkleTreeNode.Empty = isTrue ⋯
- DY.Example.MerkleTree.instDecidableEqMerkleTreeNode.decEq DY.Example.MerkleTree.MerkleTreeNode.Empty (DY.Example.MerkleTree.MerkleTreeNode.Leaf a) = isFalse ⋯
- DY.Example.MerkleTree.instDecidableEqMerkleTreeNode.decEq DY.Example.MerkleTree.MerkleTreeNode.Empty (DY.Example.MerkleTree.MerkleTreeNode.Internal a a_1) = isFalse ⋯
- DY.Example.MerkleTree.instDecidableEqMerkleTreeNode.decEq (DY.Example.MerkleTree.MerkleTreeNode.Leaf a) DY.Example.MerkleTree.MerkleTreeNode.Empty = isFalse ⋯
- DY.Example.MerkleTree.instDecidableEqMerkleTreeNode.decEq (DY.Example.MerkleTree.MerkleTreeNode.Leaf a) (DY.Example.MerkleTree.MerkleTreeNode.Internal a_1 a_2) = isFalse ⋯
- DY.Example.MerkleTree.instDecidableEqMerkleTreeNode.decEq (DY.Example.MerkleTree.MerkleTreeNode.Internal a a_1) DY.Example.MerkleTree.MerkleTreeNode.Empty = isFalse ⋯
- DY.Example.MerkleTree.instDecidableEqMerkleTreeNode.decEq (DY.Example.MerkleTree.MerkleTreeNode.Internal a a_1) (DY.Example.MerkleTree.MerkleTreeNode.Leaf a_2) = isFalse ⋯
Instances For
@[irreducible]
def DY.Example.MerkleTree.merkleTreeHash {Bytes : Type} [Comparse.BytesLike Bytes] [Hash.CanHash Bytes] {α : Type} (mf : Comparse.ExtensibleMessageFormat Bytes α) (l : List α) :
Bytes
Equations
Instances For
@[irreducible]
def DY.Example.MerkleTree.mkInclusionProof {Bytes : Type} [Comparse.BytesLike Bytes] [Hash.CanHash Bytes] {α : Type} (mf : Comparse.ExtensibleMessageFormat Bytes α) (l : List α) (i : Nat) (h_i : i < l.length) :
List Bytes
Equations
Instances For
def DY.Example.MerkleTree.checkInclusionProof {Bytes : Type} [DecidableEq Bytes] [Comparse.BytesLike Bytes] [Hash.CanHash Bytes] {α : Type} (mf : Comparse.ExtensibleMessageFormat Bytes α) (proof : List Bytes) (leaf : α) (i : Nat) (rootHash : Bytes) (length : Nat) :
Equations
- DY.Example.MerkleTree.checkInclusionProof mf proof leaf i rootHash length = (DY.Example.MerkleTree.inclusionProofToRootHash✝ mf proof leaf i length = rootHash ∧ i < length)
Instances For
@[instance_reducible]
instance DY.Example.MerkleTree.instDecidableCheckInclusionProof {Bytes : Type} [DecidableEq Bytes] [Comparse.BytesLike Bytes] [Hash.CanHash Bytes] {α : Type} (mf : Comparse.ExtensibleMessageFormat Bytes α) (proof : List Bytes) (leaf : α) (i : Nat) (rootHash : Bytes) (length : Nat) :
Decidable (checkInclusionProof mf proof leaf i rootHash length)
Equations
- One or more equations did not get rendered due to their size.
- bytesFunc : BytesFunctor
- bytesFunc0 : BytesFunctor.Has Literal.SubF
- bytesFunc1 : BytesFunctor.Has Concat.SubF
- bytesFunc2 : BytesFunctor.Has Hash.SubF
- bytesFunc3 : BytesFunctor.Has Signature.SubF
- bytesFunc4 : BytesFunctor.Has Random.SubF
- bytesLen : BytesLength
- bytesLen0 : BytesLength.Has Literal.SubF.length
- bytesLen1 : BytesLength.Has Concat.SubF.length
- bytesLen2 : BytesLength.Has Hash.SubF.length
- bytesLen3 : BytesLength.Has Signature.SubF.length
- bytesLen4 : BytesLength.Has Random.SubF.length
- att : AttackerKnowledge
Instances
Instances For
- tbs : SignedRootHashTBS
- sig : Bytes
Instances For
Instances For
Instances For
- ServerAuthenticated [HasExecBytes] (server : Participant) (msg : Bytes) : TheEvent
- ClientAccept [HasExecBytes] (server : Participant) (msg : Bytes) : TheEvent
Instances For
@[instance_reducible]
def DY.Example.MerkleTree.instDecidableEqTheEvent.decEq {inst✝ : HasExecBytes} (x✝ x✝¹ : TheEvent) :
Equations
- One or more equations did not get rendered due to their size.
- DY.Example.MerkleTree.instDecidableEqTheEvent.decEq (DY.Example.MerkleTree.TheEvent.ServerAuthenticated server msg) (DY.Example.MerkleTree.TheEvent.ClientAccept server_1 msg_1) = isFalse ⋯
- DY.Example.MerkleTree.instDecidableEqTheEvent.decEq (DY.Example.MerkleTree.TheEvent.ClientAccept server msg) (DY.Example.MerkleTree.TheEvent.ServerAuthenticated server_1 msg_1) = isFalse ⋯
Instances For
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
theorem DY.Example.MerkleTree.SignedRootHashTBS.IsWellFormed_eq [HasExecBytes] {τ : Sort u_1} (pre : Bytes → τ → Prop) [Comparse.BytesCompatibleTracePred pre] (x : SignedRootHashTBS) (tr : τ) :
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
theorem DY.Example.MerkleTree.SignedRootHash.IsWellFormed_eq [HasExecBytes] {τ : Sort u_1} (pre : Bytes → τ → Prop) [Comparse.BytesCompatibleTracePred pre] (x : SignedRootHash) (tr : τ) :
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
theorem DY.Example.MerkleTree.ElementAndInclusionProof.IsWellFormed_eq [HasExecBytes] {τ : Sort u_1} (pre : Bytes → τ → Prop) [Comparse.BytesCompatibleTracePred pre] (x : ElementAndInclusionProof) (tr : τ) :
Comparse.IsWellFormed pre x tr = (pre x.element tr ∧ ∀ (b : Bytes), b ∈ x.inclusionProof → pre b tr)
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
theorem DY.Example.MerkleTree.ServerState.IsWellFormed_eq [HasExecBytes] {τ : Sort u_1} (pre : Bytes → τ → Prop) [Comparse.BytesCompatibleTracePred pre] (x : ServerState) (tr : τ) :
- traceExec : ExecTraceTypes
- traceExec0 : ExecTraceTypes.Has Network.ExecEntryT
- traceExec1 : ExecTraceTypes.Has Random.ExecEntryT
- traceExec2 : ExecTraceTypes.Has (ProtocolEvent.ExecEntryT TheEvent)
- traceExec3 : ExecTraceTypes.Has (LongTermKeys.ExecEntryT "MerkleTree PKI")
- attBase : BaseAttackerKnowledge
Instances
@[instance_reducible]
instance DY.Example.MerkleTree.instExecConfigVkBytes_examples [HasExecTrace] :
LongTermKeys.ExecConfig "MerkleTree PKI" Signature.vk
def DY.Example.MerkleTree.Server.authenticate [HasExecTrace] (server : Participant) (msgHandles : List Nat) (skHandle : Nat) :
Equations
- One or more equations did not get rendered due to their size.
Instances For
def DY.Example.MerkleTree.Server.proveInclusion [HasExecTrace] (server : Participant) (i stHandle : Nat) :
Equations
- One or more equations did not get rendered due to their size.
Instances For
def DY.Example.MerkleTree.Client.checkInclusion [HasExecTrace] (server : Participant) (msgSigHandle msgInclHandle pkHandle : Nat) :
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- DY.Example.MerkleTree.ServerState.compromise.reachability = DY.ReachabilityConfig.make fun (stHandle : Nat) => DY.Example.MerkleTree.ServerState.compromise stHandle
Instances For
@[instance_reducible]
Equations
Instances For
Equations
- DY.Example.MerkleTree.reachability.internal 0 = DY.Network.reachability
- DY.Example.MerkleTree.reachability.internal 1 = DY.LongTermKeys.reachability "MerkleTree PKI"
- DY.Example.MerkleTree.reachability.internal 2 = DY.Example.MerkleTree.Server.authenticate.reachability
- DY.Example.MerkleTree.reachability.internal 3 = DY.Example.MerkleTree.Server.proveInclusion.reachability
- DY.Example.MerkleTree.reachability.internal 4 = DY.Example.MerkleTree.Client.checkInclusion.reachability
- DY.Example.MerkleTree.reachability.internal 5 = DY.Example.MerkleTree.ServerState.compromise.reachability
- DY.Example.MerkleTree.reachability.internal ⟨n.succ.succ.succ.succ.succ.succ, isLt⟩ = ⋯.elim