kernel-Nat.ascFactorial_one
- Kind
- kernel-term
- Status
- checked
Supports: n.ascFactorial 1 = n
test "$(cargo run -q -p axeyum-lean-kernel --example nat_theorem_inventory -- ascFactorial_one 2>/dev/null | grep -Ec '^Nat\.ascFactorial_one[[:space:]]')" -ge 1 Evidence notes
`build_nat_prelude` admits this theorem through the trusted `Kernel::add_declaration` gate. `n.ascFactorial 1` is defeq (via `ascFactorial_succ` at `k := 0`, itself definitional) to `(n + 0) * n.ascFactorial 0`, and `n + 0 ≡ n` is itself definitional (`Nat.add`'s own base case, right-recursive, holds for any `n`). So the stated goal is defeq to `n * 1 = n`, and this theorem's proof term is literally `Nat.mul_one`'s own proof, applied at `n` -- the kernel accepts it by unifying the stated type against `mul_one`'s inferred type up to full defeq, with no explicit rewrite combinator, exactly mirroring `F:nat-desc-factorial-one`. `nat_theorem_inventory` exits non-zero for a name that does not exist, and `grep -Ec` consumes the pipe and the count is tested, so the exit status depends on what the run found.