Skip to content

Commit e5b06c0

Browse files
committed
docs(math-foundry): record the two P0 gates as closed for linear E1
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
1 parent 11ca3fe commit e5b06c0

1 file changed

Lines changed: 17 additions & 0 deletions

File tree

‎crates/egglog-r2il-probe/REVIEW_GATES.md‎

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,3 +61,20 @@ For #1691, reuse the typed **three-state physical oracle** only after independen
6161
## Admission decision
6262

6363
**Do not auto-merge.** This review enables a real integration diff and a missing CI gate; it does **not** certify the semantic counterexamples above as fixed. Maintain `egglog -> proof/rewrite` strictly cold and `R2IL -> FoldDialect -> mask-risc execute_into` as the permitted execution chain. Promote only after P0 invariants are either proven by witnesses/tests or explicitly restricted to the synthetic E1 admitted input domain.
64+
65+
## Status after rebase onto main (2026-10-22, #1696 merged)
66+
67+
Both P0 gates are now closed **for the linear E1 language**, each with a test that fails when its guard is removed. The P1 gates are unchanged.
68+
69+
- **E-PREMISE: closed.**
70+
- Reproduced first: `[z=2c, z=3c]` at c=7 certified 14, and 21 with the premises swapped; the oracle agreed both times.
71+
- `oracle::coefficients` now checks every premise:
72+
- a second definition must agree;
73+
- a cycle such as `c = 2c` is inconsistent;
74+
- a premise the target cannot reach is refused.
75+
- `ReplayCapsule::certify` refuses such systems with `InvalidPremises` before egglog runs.
76+
- **E-OVERFLOW-CANCEL: closed by an input-range witness.**
77+
- Reproduced first: `a = -1*c; z = -1*a` returned `Ok(i64::MIN)` on a hit where the eager checked baseline overflows (the codex P2), and `a = MAX*c; z = 0*a` returned 0 at c=2.
78+
- `Catalogue::promote` records `CheckedRange`: the inputs on which every premise's intermediate `k * x` fits i64.
79+
- `execute_or` falls back outside it (`OutsideCheckedRange`).
80+
- The witness covers only the eager baseline that evaluates every premise, and only premises linear in the target. A non-linear language needs a new witness.

0 commit comments

Comments
 (0)