rat-pivot-search-column-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. Each regex pins the exhaustion hypothesis and the conclusion together: `Eq.{1} AxNat (Rat.pivotSearch x0 x1 x2 x3) x3` followed by `Eq.{1} Rat (x0 x4 x1) Rat.zero`, where `x4` is the ARBITRARY in-range row and `x1` the column searched. A version concluding about the START row `x2` would be strictly weaker, would not supply the loop invariant, and would not match.
out=$(target/release/examples/kernel_declaration_projection 2>&1) && test "$(printf "%s\n" "$out" | grep -cE '^[a-z]+[[:space:]]+theorem[[:space:]]+Rat\.pivotSearch_column_zero[[:space:]]+0[[:space:]].*\(Rat\.pivotSearch x0 x1 x2 x3\) x3\) -> Eq\.\{1\} Rat \(x0 x4 x1\) Rat\.zero\)\)\)\)\)\)\)\)$')" = 4 Evidence notes
Run 2026-09-02: four rows each, mutation-checked by `scripts/new-fact.py`. The hypothesis is shown SATISFIABLE and the conclusion OBSERVABLE at `[[0,1],[0,2]]`, where column 0 is all zero so the scan answers `rows` by reduction and the conclusion is checked at BOTH rows it passed. The control is the same matrix's column 1, where the scan lands on row 0, the hypothesis is unavailable, and the entries are nonzero -- so the conclusion would be FALSE there.