rat-rank-eq-rank-cols-1
- Kind
- kernel-term
- Status
- checked
Supports: A checked, axiom-free theorem in all four rational preludes, population pinned at four. The regex requires the type to have NO hypothesis between the three binders and the conclusion, which is the whole difference from F:rat-rank-eq-rank-cols-of-pivot-section: it pins the conclusion immediately after `(x2 : AxNat) ->` with the closers of exactly three binders, so the conditional form does not match. It also pins the axiom-footprint column at 0.
out=$(target/release/examples/kernel_declaration_projection 2>&1) && test "$(printf "%s\n" "$out" | grep -cE '^[a-z]+[[:space:]]+theorem[[:space:]]+Rat\.rank_eq_rankCols[[:space:]]+0[[:space:]].*Eq\.\{1\} AxNat \(Rat\.rank x0 x1 x2\) \(Rat\.rankCols x0 x1 x2\)\)\)\)$')" = 4 Evidence notes
Run 2026-09-02: four rows, mutation-checked by `scripts/new-fact.py`. The registered evaluation test in `rat_prelude/echelon_section_tests.rs` reduces `Rat.rank` and `Rat.rankCols` at `[[1,2],[2,4]]` (both 1) and `[[0,1],[2,3]]` (both 2, and the reduction needs the pivot swap), each against a hand-computed numeral with a control that must NOT be `def_eq` -- so a `rank` that always answered `rows`, or always `0`, fails one of the pair. The theorem is then applied at fully free arguments with no hypothesis.