rat-clear-below-preserves-zero-1
- Kind
- kernel-term
- Status
- checked
Supports: Both forms are checked, axiom-free theorems in all four rational preludes, populations pinned separately at four. The wrapper's regex is anchored on `Rat.clearBelow x0 x1 x2 x3 x5 x4`, whose LAST argument is `x4` -- the arbitrary column -- and not `x2`, the pivot column: confusing the two would turn this into F:rat-clear-below-zero's statement, and the loop invariant needs both. The statement pin in `clear_below_tests.rs` additionally forbids `AxNat.add` anywhere in the type, so a copied fuel bound fails.
out=$(target/release/examples/kernel_declaration_projection 2>&1) && test "$(printf "%s\n" "$out" | grep -cE '^[a-z]+[[:space:]]+theorem[[:space:]]+Rat\.clearBelow_preserves_zero[[:space:]]+0[[:space:]].*-> Eq\.\{1\} Rat \(Rat\.clearBelow x0 x1 x2 x3 x5 x4\) Rat\.zero\)\)\)\)\)\)\)\)\)$')" = 4 Evidence notes
Run 2026-09-02: four rows each, mutation-checked by `scripts/new-fact.py`. Reduced at `[[1,7,0],[2,0,0],[3,0,0]]` swept from pivot (1,0), where column 1 is zero at rows 1 and 2 but NOT at row 0 -- so a version whose hypothesis quantified over every row would be unusable there while this one applies -- and where the same sweep changes row 2's column-0 entry from 3 to 0, so `preserved` is shown not to mean `untouched`.