program recursive_verifier

// Recursive STARK Verifier โ€” Configurable FRI Rounds
//
// Verifies a single inner proof with a configurable number of FRI
// rounds read from public input. This is the general-purpose version;
// proof_relay.tri hardcodes 4 rounds for production use.
//
// Public input:
//   1. num_fri_rounds (security parameter, typically 3-5)
//   2. Inner program's Claim (program digest + I/O counts)
//   3. Inner program's public I/O values
//
// Secret input:
//   STARK proof data (FRI layers, Merkle paths, OOD values)
//   supplied via divine/divine5.
//
// Public output:
//   Verified inner program's digest (5 fields).
use os.neptune.proof

fn main() {
    let num_fri_rounds: Field = pub_read()
    proof.verify_inner_proof(num_fri_rounds)
}

Local Graph