kernel-Nat.lor_zero_left
- Kind
- kernel-term
- Status
- checked
Supports: lor(0, n) = n
test "$(cargo run -q -p axeyum-lean-kernel --example nat_theorem_inventory -- lor_zero_left 2>/dev/null | grep -Ec '^Nat\.lor_zero_left[[: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.lor m n := Nat.lorAux m m n` (fuel `m`); at `m = 0` the outer `Nat.rec` on the fuel argument is already at its base case, which -- unlike `Nat.landAux`'s constant-`0` base case -- is `lorAux`'s CORRECTED base case returning `n` (see `nat_prelude::lor`'s module doc for why OR, having no absorbing zero the way AND does, needs this), so `lorAux 0 0 n` iota-reduces directly to `n` regardless of `n`'s shape -- the proof is `Eq.refl`, no induction and no case-split combinator. `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\.lor_zero_left[[:space:]]` (verified exactly 1 row) so a future sibling name sharing the `lor_zero_left` prefix cannot inflate the count.