kernel-Nat.bitwise_zero_right
- Kind
- kernel-term
- Status
- checked
Supports: forall f m, bitwise f m 0 = if f true false then m else 0
test "$(cargo run -q -p axeyum-lean-kernel --example nat_theorem_inventory -- bitwise_zero_right 2>/dev/null | grep -Ec '^Nat\.bitwise_zero_right[[: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. Universally quantified over `f : Bool -> Bool -> Bool` and `m : Nat`, holds unconditionally. Proved by induction on `m`: every step is `Eq.refl` (the `n = 0` guard, tested outermost with the theorem's own literal `0`, collapses the whole succ-step term regardless of the fuel predecessor -- exactly `land_zero_right`'s shape). The BASE case is the one piece of proof content beyond `land`/`lor`/`ldiff`'s zero-right theorems: at `m = 0` the LHS reduces to `bitwiseAux`'s fuel-exhaustion row conditioned on `f false true` while the RHS is conditioned on `f true false` -- two different, generally non-defeq `Bool` terms for symbolic `f` -- both provably `0` there via a small `Bool`-case-split lemma (`bool_select_same`, `bitwise.rs`) rather than by `refl` alone. `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\.bitwise_zero_right[[:space:]]` (verified exactly 1 row).