kernel-Nat.multichoose_one
- Kind
- kernel-term
- Status
- checked
Supports: Nat.multichoose 1 k = 1
test "$(cargo run -q -p axeyum-lean-kernel --example nat_theorem_inventory -- multichoose_one 2>/dev/null | grep -Ec '^Nat\.multichoose_one[[:space:]]')" -ge 1 Evidence notes
`build_nat_prelude` admits this theorem through the trusted `Kernel::add_declaration` gate. `1.multichoose k` reduces to `choose (pred (add 1 k)) k`; `Nat.add` recurses on its RIGHT argument, so the literal `1` on the LEFT leaves `add 1 k` stuck for symbolic `k` -- bridged via `Nat.succ_add (0, k) : add (succ 0) k = succ (add 0 k)` then `Nat.zero_add k : add 0 k = k`, giving `add 1 k = succ k` propositionally (a `congr`/`trans` chain, not defeq). `pred (succ k)` then reduces to `k` by ι alone once that rewrite is in hand, and `Nat.choose_self : choose k k = 1` closes it. This is the one boundary lemma of the three that genuinely needs propositional rewriting rather than pure reduction, since the literal sits on `add`'s non-recursive side. `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.