kernel-Nat.bit_true_pos
- Kind
- kernel-term
- Status
- checked
Supports: 0 < bit(true, n), for every n
test "$(cargo run -q -p axeyum-lean-kernel --example nat_theorem_inventory -- bit_true_pos 2>/dev/null | grep -Ec '^Nat\.bit_true_pos[[: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. The proof term is `zero_lt_succ (mul 2 n)` -- the already-proved generic lemma `0 < succ m` instantiated at `m := mul 2 n` -- accepted directly by the kernel's definitional-equality check, because `bit true n` unfolds (delta on `Nat.bit`, iota on the inner `Bool.rec`, iota again on `Nat.add`'s successor case) to exactly `succ (mul 2 n)`. No case-split combinator and no induction were needed for this theorem specifically; the case split is already paid for by `Nat.bit`'s own construction. `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.