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.HasTraceInvariantextends 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