Module recursion

Module recursion 

Source
Available on non-target_os="zkvm" and crate feature prove only.
Expand description

Prover implementation for the recursion VM.

This module contains the recursion programs used with the zkVM. As examples, the lift, join, and resolve programs are used oto compress a collection of STARK receipts for a composition into a single succinct receipt.

Structs§

MerkleGroup
Merkle tree implementation used in the recursion system to commit to a set of recursion programs, and to verify the inclusion of a given program in the set.
MerkleProof
An inclusion proof for the MerkleGroup. Used to verify inclusion of a given recursion program in the committed set.
Program
A Program for the recursion circuit (e.g. lift_20 or join).
Prover
Prover for zkVM use of the recursion circuit.

Constants§

ALLOWED_CONTROL_IDS
Control IDs allowed in the default set of recursion programs. Includes control IDs for the base set of recursion programs, and each power-of-two of the rv32im circuit, using Poseidon2.
ALLOWED_CONTROL_ROOT
Root of the Merkle tree constructed from ALLOWED_CONTROL_IDS, using Poseidon2.
RECURSION_PO2
Number of rows to use for the recursion circuit witness as a power of 2.

Functions§

identity_p254
Prove the verification of a recursion receipt using the Poseidon254 hash function for FRI.
join
Run the join program to compress two receipts of the same session into one.
lift
Run the lift program to transform an rv32im segment receipt into a recursion receipt.
resolve
Run the resolve program to remove an assumption from a conditional receipt upon verifying a receipt proving the validity of the assumption.