zorch.prove¶
Scheme-agnostic multi-round proving driver.
fold_rounds runs a folding Round a fixed number of times, threading the
(state, transcript) carry and collecting each round's message into a list — the
state and message types are opaque to the driver, so any scheme reuses it: a
Basefold round (univariate + commitment message), a multilinear sumcheck round, a
future univariate / FFT round. It stays a Python loop: its per-round message
shapes need not be round-invariant, so it is not lax.scan-shaped.
The homogeneous multilinear sumcheck specialization — one lax.scan over the
hypercube variables, with the optional zorch.sumcheck register-resident marker —
lives in zorch.sumcheck.prover, not here: it is multilinear-specific, where this
driver is basis-agnostic.
fold_rounds ¶
fold_rounds(
rnd: ProverRound[Any, Any, TranscriptT],
state: Any,
transcript: TranscriptT,
rounds: int,
) -> tuple[Any, TranscriptT, list[Any]]
Run rnd exactly rounds times; return (state, transcript, list[msg]).
Source code in zorch/prove.py
26 27 28 29 30 31 32 33 34 35 36 37 | |