kernel-Nat.land_zero_right
- Kind
- kernel-term
- Status
- checked
Supports: land(m, 0) = 0
test "$(cargo run -q -p axeyum-lean-kernel --example nat_theorem_inventory -- land_zero_right 2>/dev/null | grep -Ec '^Nat\.land_zero_right[[: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. Unlike `land_zero_left`, `land m 0 = 0` is not `refl` at symbolic `m` -- the outer `Nat.rec` on the fuel (which is `m` itself) is stuck until `m`'s constructor shape is exposed -- so the proof is by induction on `m`. Both the base and step case close by `Eq.refl`, with the induction hypothesis unused in the step: the `n = 0` guard is tested OUTERMOST in `landAux`'s succ case (see `nat_prelude::land`'s module doc), so it collapses the whole term to `0` regardless of the (possibly symbolic) fuel predecessor. `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. Anchored with `^Nat\.land_zero_right[[:space:]]` (verified exactly 1 row).