kernel-Nat.add_pos_right
- Kind
- kernel-term
- Status
- checked
Supports: `Nat.add_pos_right` is admitted as a Theorem with EXACTLY the stated shape, pinned verbatim via the kernel's own renderer: `Nat.add_pos_right\t3\t((x0 : AxNat) -> ((x1 : AxNat) -> ((x2 : AxNat.lt AxNat.zero x0) -> AxNat.lt AxNat.zero (AxNat.add x1 x0))))` (binders `b a` -- Mathlib's `{b}`-implicit then explicit `a`; content-identical, argument order not observable in a Prop). A case split on `b` (NatOps::induct, ih unused): at `zero` the hypothesis `Lt zero zero` is impossible, discharged by `Nat.not_lt_zero` at `zero`; at `succ k`, `add a (succ k)` is definitionally `succ (add a k)` (`Nat.add` recurses on its RIGHT argument), so the conclusion is exactly `NatOps::zero_lt_succ` applied to `add a k`, independent of the hypothesis. Built in a new file, nat_prelude/add_pos.rs.
test "$(cargo run -q --release -p axeyum-lean-kernel --example nat_theorem_inventory -- add_pos_right 2>/dev/null | grep -xFc $'Nat.add_pos_right\t3\t((x0 : AxNat) -> ((x1 : AxNat) -> ((x2 : AxNat.lt AxNat.zero x0) -> AxNat.lt AxNat.zero (AxNat.add x1 x0))))')" -ge 1