Equations
- DY.Example.MerkleTree.IsHashCollision (b1, b2) = (b1 ≠ b2 ∧ DY.Hash.hash b1 = DY.Hash.hash b2)
Instances For
@[irreducible]
def DY.Example.MerkleTree.merkleTreeHash_reduceCollision {Bytes : Type} [Comparse.BytesLike Bytes] [Hash.CanHash Bytes] {α : Type} (mf : Comparse.ExtensibleMessageFormat Bytes α) [DecidableEq Bytes] [DecidableEq α] (l1 l2 : List α) :
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem DY.Example.MerkleTree.merkleTreeHash_reduceCollision_correct {Bytes : Type} [Comparse.BytesLike Bytes] [Hash.CanHash Bytes] {α : Type} (mf : Comparse.ExtensibleMessageFormat Bytes α) [DecidableEq Bytes] [DecidableEq α] [mf.IsNonAmbiguous] (l1 l2 : List α) (h : merkleTreeHash mf l1 = merkleTreeHash mf l2) :
def DY.Example.MerkleTree.checkInclusionProof_reduceHashCollision {Bytes : Type} [Comparse.BytesLike Bytes] [Hash.CanHash Bytes] {α : Type} (mf : Comparse.ExtensibleMessageFormat Bytes α) [DecidableEq Bytes] [DecidableEq α] (proof : List Bytes) (leaf : α) (i : Nat) (l : List α) :
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem DY.Example.MerkleTree.checkInclusionProof_reduceHashCollision_correct {Bytes : Type} [Comparse.BytesLike Bytes] [Hash.CanHash Bytes] {α : Type} (mf : Comparse.ExtensibleMessageFormat Bytes α) [DecidableEq Bytes] [DecidableEq α] [mf.IsNonAmbiguous] (proof : List Bytes) (leaf : α) (i : Nat) (l : List α) (h : checkInclusionProof mf proof leaf i (merkleTreeHash mf l) l.length) :
- traceExec3 : ExecTraceTypes.Has (LongTermKeys.ExecEntryT "MerkleTree PKI")
- traceProof : ProofTraceTypes
- traceProof0 : ProofTraceTypes.Has Network.ProofEntryT
- traceProof1 : ProofTraceTypes.Has Random.ProofEntryT
- traceProof2 : ProofTraceTypes.Has (ProtocolEvent.ProofEntryT TheEvent)
- traceProof3 : ProofTraceTypes.Has (LongTermKeys.ProofEntryT "MerkleTree PKI")
Instances
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
Equations
- DY.Example.MerkleTree.mkLongTermKeyUsage me = { type := "SigKey", tag := "SignedDH 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.
- traceExec3 : ExecTraceTypes.Has (LongTermKeys.ExecEntryT "MerkleTree PKI")
- traceProof3 : ProofTraceTypes.Has (LongTermKeys.ProofEntryT "MerkleTree PKI")
- bytesInv : BytesInvariants
- bytesInv0 : BytesInvariantsProofs
- bytesInv1 : BytesInvariants.Has Literal.invariants
- bytesInv2 : BytesInvariants.Has Concat.invariants
- bytesInv3 : BytesInvariants.Has Hash.invariants
- bytesInv4 : BytesInvariants.Has Signature.invariants
- bytesInv5 : BytesInvariants.Has Random.invariants
Instances
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
instance DY.Example.MerkleTree.instProofConfigMkLongTermKeyUsageLabel [HasBytesInvariants] :
LongTermKeys.ProofConfig "MerkleTree PKI" mkLongTermKeyUsage (LongTermKeys.label "MerkleTree 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.MerkleTree.HasTraceInvariant extends DY.Example.MerkleTree.HasBytesInvariants :
Type 1
- traceExec3 : ExecTraceTypes.Has (LongTermKeys.ExecEntryT "MerkleTree PKI")
- traceProof3 : ProofTraceTypes.Has (LongTermKeys.ProofEntryT "MerkleTree PKI")
- traceInv : TraceInvariant
- traceInv0 : TraceInvariant.Has Network.ProofEntryT
- traceInv1 : TraceInvariant.Has Random.ProofEntryT
- traceInv2 : TraceInvariant.Has (ProtocolEvent.ProofEntryT TheEvent)
- traceInv3 : TraceInvariant.Has (LongTermKeys.ProofEntryT "MerkleTree PKI")
- attBaseThm : BaseAttackerKnowledgeTheorem
- attThm : AttackerKnowledgeTheorem