//! Uniform AIRs: one fixed set of row constraints over a trace of `N = 2^n`
//! rows, with next-row references (cyclic), public columns the verifier
//! evaluates itself, and an optional second phase of columns committed
//! after verifier challenges (lookup arguments).
//!
//! The verifier's work is independent of the program: it evaluates the
//! row constraints once at a random point (`O(constraints)`), the public
//! columns (`O(public data · log N)`), the successor polynomial
//! (`O(log N)`) and runs `O(log N)` sumcheck rounds. Nothing of size `N` —
//! no matrix — is touched; this replaces the unstructured Spartan matrix
//! evaluation of the per-program relation.
//!
//! Protocol (`specs/machine.md` § proving):
//! 1. commit `W1` (column-major, padded to `2^c` columns, so a table index
//! is `col·N + row`); draw the AIR's challenges;
//! 2. commit `W2` (same padding);
//! 3. zerocheck `Σ_x eq(τ,x)·Σ_k μ^k C_k(W(x), W(x+1), P(x)) = 0`;
//! the prover sends every column at `ρ` and at `ρ`'s successor;
//! 4. `γ1, γ2, β, ζ`; one product sumcheck reduces
//! `Σ_y (eq(ρ,y) + β·nxt(ρ,y))·(W̃1(y,γ1) + ζ·W̃2(y,γ2))` to a point
//! `ρ'`; the prover sends `W̃1(ρ',γ1)`, `W̃2(ρ',γ2)`.
//!
//! The output is two evaluation claims on the committed words — instances
//! for [`crate::accumulate`] (or a direct decider).
pub use ;
pub use Public;
pub use prove as shift_prove;
pub use interpolate as zerocheck_interpolate;
pub use prove as zerocheck_prove;
pub use ;
use ;
/// Dimensions of an AIR.
/// Column values at one row (or one point): `local = W1 ‖ W2`.
/// A uniform AIR.
/// A row-major trace of base-field cells.
/// Check every constraint on every row of a full trace (`W1 ‖ W2`) — a
/// debugging aid and the definition the protocol enforces.
Homonyms
cyb/evy/forks/naga/src/back/hlsl/mod.rs
struct Baz { m: mat3x2, } struct Baz { float2 m_0; float2 m_1; float2 m_2; }; float3x2 GetMatmOnBaz(Baz obj) { return float3x2(obj.m_0, obj.m_1, obj.m_2); }