- 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
- DY.Example.MerkleTree.instDecidableCheckInclusionProof mf proof leaf i rootHash length = DY.Example.MerkleTree.instDecidableCheckInclusionProof._aux_1✝ mf proof leaf i rootHash length
- 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