rat-nullity-zero-rows-1
- Kind
- kernel-term
- Status
- checked
Supports: `Rat.nullity_zero_rows` is a checked `Declaration::Theorem` with an EMPTY axiom footprint in all four preludes, and its rendered type shows the row count instantiated at `AxNat.zero` with the answer being `x1` -- the column count itself, NOT zero. That distinction is the entire discriminating content: a `Rat.nullity` that returned `0` identically would still be admitted with the right type at every other degenerate lemma in the family, and would fail exactly here.
out=$(target/release/examples/kernel_declaration_projection 2>/dev/null | grep -cE '^(rat|creal|complex|cpoint)[[:space:]]+theorem[[:space:]]+Rat\.nullity_zero_rows[[:space:]]+0[[:space:]].*Eq\.\{1\} AxNat \(Rat\.nullity x0 AxNat\.zero x1\) x1\)\)$' 2>&1) && test "$(printf "%s\n" "$out" | grep -cE '^4$')" = 1 Evidence notes
Run 2026-09-02: exactly four rows match name, kind, axiom count `0` and the rendered conclusion `Eq.{1} AxNat (Rat.nullity x0 AxNat.zero x1) x1`; the checker requires exactly 4. `scripts/new-fact.py` verified the pattern fails on mutated output. The anchor includes the literal `AxNat.zero` in argument position, so a version stated at a symbolic row count -- which would be FALSE -- does not match.