rat-rank-le-cols-of-pivot-section-1
- Kind
- kernel-term
- Status
- checked
Supports: `Rat.rank_le_cols_of_pivotSection` is a checked `Declaration::Theorem` with an EMPTY axiom footprint in all four preludes, and the pattern pins the CONCLUSION to `AxNat.le (Rat.rank x0 x1 x2) x2` anchored to end of line. `x2` is the COLUMN binder and `x1` the row binder, so the already-free `rank <= rows` (`Rat.rank_le_rows`, bounding by `x1`) does not match this pattern -- which is the distinction the fact is about, and the one a name alone cannot make.
out=$(target/release/examples/kernel_declaration_projection 2>&1) && test "$(printf "%s\n" "$out" | grep -cE '^(rat|creal|complex|cpoint)[[:space:]]+theorem[[:space:]]+Rat\.rank_le_cols_of_pivotSection[[:space:]]+0[[:space:]].*-> AxNat\.le \(Rat\.rank x0 x1 x2\) x2\)\)\)\)$')" = 4 Evidence notes
Run 2026-09-02: the pattern matches the real output at exactly the required count. `scripts/new-fact.py` verified it FAILS on mutated output (digits perturbed, true -> false, 0 -> 1) before this file was written, so a pattern anchored on the surrounding prose rather than on the finding would have been rejected there.