rat-rank-cols-le-cols-1
- Kind
- kernel-term
- Status
- checked
Supports: `Rat.rankCols_le_cols` is a checked `Declaration::Theorem` with an EMPTY axiom footprint in all four preludes, and its rendered type bounds the count by `x2` -- the SECOND dimension argument, the column count. Reading that is the whole content: the same declaration bounding by `x1` would be a row bound and a different claim, and the point of this fact is precisely which dimension the free bound is against.
out=$(target/release/examples/kernel_declaration_projection 2>/dev/null | grep -cE '^(rat|creal|complex|cpoint)[[:space:]]+theorem[[:space:]]+Rat\.rankCols_le_cols[[:space:]]+0[[:space:]].*AxNat\.le \(Rat\.rankCols x0 x1 x2\) x2\)\)\)$' 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 `AxNat.le (Rat.rankCols x0 x1 x2) x2`; the checker requires exactly 4 and exits 1 otherwise. `scripts/new-fact.py` verified the pattern fails on mutated output.