kernel-Nat.choose_le_add
- Kind
- kernel-term
- Status
- checked
Supports: ∀ (a b c : ℕ), a.choose c ≤ (a + b).choose c
test "$(cargo run -q -p axeyum-lean-kernel --example nat_theorem_inventory -- choose_le_add 2>/dev/null | grep -Ec '^Nat\.choose_le_add[[:space:]]')" -ge 1 Evidence notes
`build_nat_prelude` admits `Nat.choose_le_add` 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_theorem_inventory` exits non-zero for a name that does not exist, and the `grep -c` count (tested `-ge 1`, not piped into `grep -q`) requires the admitted declaration to actually be printed. By induction on `b`: `b = 0` closes by `le_refl` since `add a zero` reduces to `a` definitionally; `b = succ b'` chains the induction hypothesis with `choose_le_succ (a+b') c` via `le_trans`, since `add a (succ b')` reduces to `succ (add a b')` definitionally.