machine_cat/lib.rs
1//! machine-cat: generic AIR chip framework built on proof-cat.
2//!
3//! Generalizes from plonkish-cat's wire-indexed constraints to
4//! **execution trace tables** where constraint polynomials must
5//! hold at every consecutive row pair. This is the standard
6//! STARK/AIR (Algebraic Intermediate Representation) model.
7//!
8//! # Architecture
9//!
10//! ```text
11//! Air::generate_trace(input) -> Trace<F>
12//! |
13//! bridge::air_prove(air, trace) -> AirProof<F>
14//! |
15//! bridge::air_verify(air, proof) -> Ok(true)
16//! ```
17//!
18//! The [`Air`] trait defines columns and transition constraints.
19//! [`Trace`] is the 2D execution witness. The [`bridge`] module
20//! converts constraint satisfaction into a sumcheck proof via
21//! proof-cat.
22//!
23//! # Modules
24//!
25//! - [`column`] -- `Column`, `ColumnCount`, `ColumnRef` newtypes
26//! - [`air_expr`] -- `AirExpr<F>`: constraint expressions with row-relative addressing
27//! - [`trace`] -- `Trace<F>`: 2D table of field elements
28//! - [`air`] -- `Air<F>` trait: the core abstraction
29//! - [`fibonacci`] -- `FibonacciAir`: a concrete example
30//! - [`bridge`] -- `air_prove` / `air_verify`: trace-to-sumcheck bridge
31
32pub mod air;
33pub mod air_expr;
34pub mod bridge;
35pub mod column;
36pub mod error;
37pub mod fibonacci;
38pub mod trace;
39
40pub use air::Air;
41pub use air_expr::AirExpr;
42pub use column::{Column, ColumnCount, ColumnRef};
43pub use error::Error;
44pub use fibonacci::{FibonacciAir, FibonacciInput, StepCount};
45pub use trace::{RowCount, Trace};