kernel-Nat.add_factorial_succ_le_factorial_add_succ
- Kind
- kernel-term
- Status
- checked
Supports: ∀ (i n : ℕ), i + (n + 1).factorial ≤ (i + (n + 1)).factorial
test "$(cargo run -q -p axeyum-lean-kernel --example nat_theorem_inventory -- add_factorial_succ_le_factorial_add_succ 2>/dev/null | /usr/bin/grep -Ec '^Nat\.add_factorial_succ_le_factorial_add_succ[[:space:]]')" -ge 1 Evidence notes
`build_nat_prelude` admits `Nat.add_factorial_succ_le_factorial_add_succ` through the trusted `Kernel::add_declaration` gate, declared in new module `nat_prelude/add_factorial_le.rs`. Immediate corollary of `Nat.add_factorial_le_factorial_add` (`F:ml430-nat-add-factorial-le-factorial-add-b0400cf6`) at `n := succ n`, discharging its `Le 1 (succ n)` hypothesis with the `zero_lt_succ` helper (`Le 1 (succ n)` from `zero_le n` plus `le_succ_succ`) -- no induction needed here. `nat_theorem_inventory`'s rendered type is `((x0 : AxNat) -> ((x1 : AxNat) -> AxNat.le (AxNat.add x0 (AxNat.factorial (AxNat.succ x1))) (AxNat.factorial (AxNat.add x0 (AxNat.succ x1)))))`, matching this fact's `formal.statement` (`AxNat.succ x1` is `n+1`). The `-ge 1` count-based test (not `grep -q`) requires the admitted declaration to actually be printed; grepping a made-up name greps to `0`.