rat-det-mat-mul-1
- Kind
- kernel-term
- Status
- checked
Supports: `Rat.det_matMul` is in the environment as a checked `Declaration::Theorem` (not a `Definition`, not an axiom) with an EMPTY `Kernel::axiom_footprint`, in all four preludes that carry the rationals. The `formal.statement` above is the row's own `canonical_type` -- `Kernel::render_lean` of the admitted type -- not a paraphrase of the Rust source or of a doc comment. Reading it confirms the dimension is a single universally quantified `AxNat` shared by `Rat.matMul` and all three `Rat.det`s, which is what distinguishes this from `Rat.det_matMul_2`.
out=$(target/release/examples/kernel_declaration_projection --require-declaration Rat.det_matMul --require-kind theorem 2>&1) && test "$(printf "%s\n" "$out" | grep -cE 'found[[:space:]]+(rat|creal|complex|cpoint)[[:space:]]+theorem[[:space:]]+Rat\.det_matMul[[:space:]]+0$')" = 4 Evidence notes
Run 2026-09-02: prints four `found ... theorem Rat.det_matMul 0` rows (rat, creal, complex, cpoint) and exits 0. The checker counts those rows and requires exactly 4, so a deletion, a rename, a demotion to a `Definition`, a nonzero axiom footprint, or the declaration failing to survive into a downstream prelude each make the count differ and the command exit 1. `scripts/new-fact.py` verified the pattern fails on mutated output before this file was written.