kernel-Nat.land_mod_two_eq_one
- Kind
- kernel-term
- Status
- checked
Supports: ∀ {a b : ℕ}, (a &&& b) % 2 = 1 ↔ a % 2 = 1 ∧ b % 2 = 1
test "$(cargo run -q --release -p axeyum-lean-kernel --example nat_theorem_inventory -- land_mod_two_eq_one 2>/dev/null | grep -Ec '^Nat\.land_mod_two_eq_one[[:space:]]')" -ge 1 Evidence notes
`build_nat_prelude` admits `Nat.land_mod_two_eq_one` (`nat_prelude/land_low_bit.rs`) through the trusted `Kernel::add_declaration` gate. `nat_theorem_inventory`'s rendered type is `(x0 x1 : AxNat) -> Iff (Eq (mod (land x0 x1) 2) 1) (And (Eq (mod x0 2) 1) (Eq (mod x1 2) 1))`, matching this fact's `formal.statement` up to variable naming. Anchored with `^Nat\.land_mod_two_eq_one[[:space:]]` so a sibling name (e.g. `land_mod_two_eq_mul`) cannot satisfy this row; `grep -Ec` consumes the pipe so the tested count decides the exit status. Run `--release` -- the debug build of this inventory example SIGABRTs on stack depth (unrelated to this proof). Mathlib's `&&&` for `Nat` is the SAME function as `Nat.land`, so reconciling this mirror against a NEW `Nat.land_mod_two_eq_one` theorem is honest under the mirror-flip criterion in CLAUDE.md.