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 350 research declarations. Search 10,000 more complete Mathlib declarations.

1 topic

350 results

Clear filters
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
Project-declaredLean 4.32.0

Simulate Q build Merkle Tree

InductiveMerkleTree.simulateQ_buildMerkleTree

Plain-language statement

Running the monadic version of buildMerkleTree with an oracle function f is equivalent to running the functional version of buildMerkleTreeWithHash with the same oracle function.

program verificationseparation logiccryptography

Source project: VCVio

Person-level attribution pending.

View proof record