rat-rank-nullity-rows-of-pivot-section-1
- Kind
- kernel-term
- Status
- checked
Supports: `Rat.rank_nullity_rows_of_pivotSection` is a checked `Declaration::Theorem` with an EMPTY axiom footprint in all four preludes, and the pattern pins the summands: `AxNat.add (Rat.rank x0 x1 x2) (Rat.nullity x0 x1 x2)` equal to `x2`, anchored to end of line. `Rat.rank_nullity` -- the column form, which was already proved and is UNCONDITIONAL -- adds `Rat.rankCols` instead and does not match, so this checker cannot be satisfied by the pre-existing theorem under a new name.
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_nullity_rows_of_pivotSection[[:space:]]+0[[:space:]].*-> Eq\.\{1\} AxNat \(AxNat\.add \(Rat\.rank x0 x1 x2\) \(Rat\.nullity 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.