kernel-Nat.ascFactorial_zero
- Kind
- kernel-term
- Status
- checked
Supports: n.ascFactorial 0 = 1
test "$(cargo run -q -p axeyum-lean-kernel --example nat_theorem_inventory -- ascFactorial_zero 2>/dev/null | grep -Ec '^Nat\.ascFactorial_zero[[:space:]]')" -ge 1 Evidence notes
`build_nat_prelude` admits this theorem 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. `Nat.ascFactorial` is declared by structural recursion on its SECOND argument via `NatOps::define_binary` (`nat_prelude/asc_factorial.rs`), mirroring `Nat.descFactorial` but climbing with `Nat.add` instead of descending with `Nat.sub`, so `ascFactorial n zero` iota-reduces to the base case, `1`, directly -- the proof is `Eq.refl`, no induction or case split. `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.