kernel-Nat.descFactorial_of_lt
- Kind
- kernel-term
- Status
- checked
Supports: ∀ {n k : ℕ}, n < k → n.descFactorial k = 0
test "$(cargo run -q -p axeyum-lean-kernel --example nat_theorem_inventory -- descFactorial_of_lt 2>/dev/null | grep -Ec '^Nat\.descFactorial_of_lt[[:space:]]')" -ge 1 Evidence notes
`build_nat_prelude` admits `Nat.descFactorial_of_lt` through the trusted `Kernel::add_declaration` gate. Route (`desc_factorial.rs`, `declare_desc_factorial_of_lt`): induction on `k` with `n` held fixed; `k = 0` is `not_lt_zero`; `k = succ j` splits `n < succ j` (`le_of_lt_succ` then `lt_or_eq_of_le`) into `n < j` (the IH collapses the product via `mul_zero`) and `n = j` (transport to the diagonal `descFactorial n (succ n) = (n-n)*descFactorial n n`, collapsed via `sub_self`/`zero_mul`) -- the truncated-`Nat.sub` boundary that gives this declaration its own module doc comment ("this definition's highest-risk seam"). This declaration predates the current session; the source-controlled construction is what `nat_theorem_inventory` reports admitted, not new proof work. `nat_theorem_inventory` exits non-zero for a name that does not exist, and the `grep -c` count (tested `-ge 1`, not piped into `grep -q`) requires the admitted declaration to actually be printed.