kernel-Nat.bitwise_and_eq_land_three_five
- Kind
- kernel-term
- Status
- checked
Supports: bitwise and_fn 3 5 = land 3 5
test "$(cargo run -q -p axeyum-lean-kernel --example nat_theorem_inventory -- bitwise_and_eq_land_three_five 2>/dev/null | grep -Ec '^Nat\.bitwise_and_eq_land_three_five[[: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. `and_fn` (`bitwise.rs`) is built inline via a local `Bool.rec`-based select (this prelude declares no top-level `Bool.and`) as `fun a b => if a then b else false`. Both `bitwise and_fn 3 5` and `land 3 5` fully compute (every argument is a concrete numeral) to `1`, from two INDEPENDENTLY constructed `Nat.rec` bodies (`bitwiseAux`'s general per-bit `bool_select_nat (f (beq _ 1) (beq _ 1)) 1 0` step vs `landAux`'s direct `mul` step), so the proof is `Eq.refl` between two terms with no shared head symbol until full reduction -- a genuine, if non-universal, check that the general definition specializes correctly at a witness where `land`'s own sanity check (`F:nat-land-three-five`) already discriminates a wrong-way per-bit step. `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_and_eq_land_three_five[[:space:]]` (verified exactly 1 row).