kernel-Nat.factorial_lt_of_lt
- Kind
- kernel-term
- Status
- checked
Supports: ∀ {m n : ℕ}, 0 < n → n < m → n.factorial < m.factorial
test "$(cargo run -q -p axeyum-lean-kernel --example nat_theorem_inventory -- factorial_lt_of_lt 2>/dev/null | grep -Ec '^Nat\.factorial_lt_of_lt[[:space:]]')" -ge 1 Evidence notes
`build_nat_prelude` admits `Nat.factorial_lt_of_lt` through the trusted `Kernel::add_declaration` gate, which re-checks the proof term against the stated type, so producing this row at all is a machine-checked proof. Chains `n! < (succ n)!` (from `Nat.one_le_mul` against `0 < n` making `n! * n >= 1`, so `add_lt_add_left` strictly grows `n!` past itself once the `mul`-recursion expansion of `(succ n)!` is reoriented by `add_comm`) with `(succ n)! <= m!` (`Nat.factorial_le` at `succ n <= m`) via `Nat.lt_of_lt_of_le`. `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.