Source-pinned research

Research proof index

Search theorem names, mathematical ideas, modules, topics, projects, and role-labelled researchers. Open a result for its complete indexed Lean declaration and source record.

This index contains 150 research declarations. Search 10,000 more complete Mathlib declarations.

All topics

150 results

Clear filters
Project-declaredLean 4.32.0

Get Putative Batch Root With Hash unique

InductiveMerkleTree.getPutativeBatchRootWithHash_unique

Plain-language statement

Batch opening uniqueness. When hashFn is injective, two batch openings for the same selector that produce the same putative root must agree on both the claimed selected values and the entire pruned authentication data.

program verificationseparation logiccryptography

Source project: VCVio

Person-level attribution pending.

View proof record
Project-declaredLean 4.32.0

Get Putative Root is Total Query Bound

InductiveMerkleTree.getPutativeRoot_isTotalQueryBound

Plain-language statement

getPutativeRoot makes one oracle query per level of idx, so it has total query bound idx.depth.

program verificationseparation logiccryptography

Source project: VCVio

Person-level attribution pending.

View proof record
Project-declaredLean 4.32.0

Get Putative Root With Hash batch To Single Proof

InductiveMerkleTree.getPutativeRootWithHash_batchToSingleProof

Plain-language statement

Root preservation. The single-index opening extracted from a batch opening at any selected leaf recomputes exactly the batch opening's putative root. Consequently a batch opening that verifies against a root yields, at every selected leaf, a single-index opening that verifies against the same root.

program verificationseparation logiccryptography

Source project: VCVio

Person-level attribution pending.

View proof record
Project-declaredLean 4.32.0

Get Putative Root With Hash binding

InductiveMerkleTree.getPutativeRootWithHash_binding

Plain-language statement

Merkle binding: from two distinct leaf values x ≠ y that produce the same putative root at the same leaf index under (possibly different) sibling proofs, the constructive search findCollision returns some. Note that idx is shared , this is binding at a fixed position. The distinct-position case requires walking down both paths to the lowest comm...

program verificationseparation logiccryptography

Source project: VCVio

Person-level attribution pending.

View proof record
Project-declaredLean 4.32.0

Get Putative Root With Hash unique

InductiveMerkleTree.getPutativeRootWithHash_unique

Plain-language statement

Merkle opening uniqueness. When h is injective, two openings at the same leaf index that produce the same root must agree on both the leaf value and the entire authentication path. Proof: induction on the index. At each internal node, injectivity of h forces both hash arguments to agree , the sibling (proof head) and the recursive subtree root. Th...

program verificationseparation logiccryptography

Source project: VCVio

Person-level attribution pending.

View proof record
Project-declaredLean 4.32.0

Log Has Collision of chain In Log of ne

InductiveMerkleTree.logHasCollision_of_chainInLog_of_ne

Plain-language statement

Log-level binding (Collision Lemma at the log level). Log-formalized analog of getPutativeRootWithHash_binding_collision: two distinct openings (x, proof₁) ≠ (y, proof₂) of the same root at the same index, both witnessed by hash chains ChainInLog in the same log, force log to contain a hash collision (two log entries with equal responses b...

program verificationseparation logiccryptography

Source project: VCVio

Person-level attribution pending.

View proof record