Expand description
Synthetic AIR generator.
Reads a shape atlas (produced by scripts/analyze_profile.py from a
profile JSONL captured by the SHADOW_BENCH_PROFILE_PATH probe) and
provides SyntheticAir, a parametric AIR matching captured shape
statistics: trace height, common-main width, num_constraints,
max_constraint_degree, num_interactions, num_distinct_buses.
§Trick
Column 0 of the trace is treated as a “kill column”: it is filled with zeros. Every constraint multiplies by it (so the constraint is trivially zero everywhere), and every interaction uses it as the count column (so multiplicities are zero, making the interactions trivially balanced regardless of send/receive distribution). The prover still iterates the same number of trace cells and constraint / interaction terms as the real AIR, so kernel timing is preserved.
v1 limitations: ignores preprocessed columns, cached_main partitions, and after-challenge widths. The captured profile distribution is dominated by AIRs with these set to small or zero values, so this is sufficient to start. Extend if validation shows drift.
Structs§
- Shape
Atlas - Synthetic
Air - A parametric AIR that matches the prover-observable shape of a captured AIR record. See module docs for the construction trick.
- Synthetic
Shape - One entry in a shape atlas — shape statistics for a single AIR
observed in the captured profile, deduplicated and counted by
scripts/analyze_profile.py.