Identifier
F:nat-land-zero-right
Proof route
kernel-lean
External status
proved
Axiom footprint
Empty

Recorded description

The bitwise AND of any natural number m with 0 is 0.

Formal statement
theorem Nat.land_zero_right : ((x0 : AxNat) -> Eq.{1} AxNat (AxNat.land x0 AxNat.zero) AxNat.zero)

Dependencies

The graph shows direct ledger edges. Follow a node to open its artifact page.

Direct dependencies appear to the left. The current fact is in the center. Facts that depend directly on it appear to the right. land(0, n) = 0 Current fact Mathlib v4.30 source propositio land decodes through a bit-appe each bit of a bitwise AND is th
1 direct dependencies 3 direct dependents

Evidence

kernel-Nat.land_zero_right

Kind
kernel-term
Status
checked

Supports: land(m, 0) = 0

Checker command
test "$(cargo run -q -p axeyum-lean-kernel --example nat_theorem_inventory -- land_zero_right 2>/dev/null | grep -Ec '^Nat\.land_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. Unlike `land_zero_left`, `land m 0 = 0` is not `refl` at symbolic `m` -- the outer `Nat.rec` on the fuel (which is `m` itself) is stuck until `m`'s constructor shape is exposed -- so the proof is by induction on `m`. Both the base and step case close by `Eq.refl`, with the induction hypothesis unused in the step: the `n = 0` guard is tested OUTERMOST in `landAux`'s succ case (see `nat_prelude::land`'s module doc), so it collapses the whole term to `0` regardless of the (possibly symbolic) fuel predecessor. `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\.land_zero_right[[:space:]]` (verified exactly 1 row).

compute-Nat.land_zero_right

Kind
kernel-term
Status
checked

Supports: the equation instantiates correctly and states the value 0, not an arbitrary one

Checker command
cargo test -p axeyum-lean-kernel --lib nat_prelude::nat_prelude_tests::land_computes_and_its_boundary_theorems_apply
Evidence notes

`Kernel::def_eq` reduces `land m 0` at m in {5, 1} to 0 directly (definition unfolding, no boundary theorem invoked), and separately confirms `Nat.land_zero_right`'s ADMITTED TYPE (via `Kernel::infer`, instantiated at m = 9) is exactly `Eq (land 9 0) 0` -- with a negative control asserting the inferred type must NOT def_eq `Eq (land 9 0) 1`, so this cannot pass on a statement claiming the wrong value.

footprint-Nat.land_zero_right

Kind
exhaustive-enumeration
Status
checked

Supports: axiom_footprint: [] -- the Nat prelude's trusted surface is empty

Checker command
cargo run -q -p axeyum-lean-kernel --example nat_axiom_inventory -- --require-axiom-free nat
Evidence notes

`nat_axiom_inventory --require-axiom-free nat` enumerates the built Nat environment and exits non-zero unless it admits no Axiom, Opaque or Quotient declaration. The induction used here is ordinary `Nat.rec` over `Prop`, the same combinator every other induction in this prelude uses; this command is what makes the axiom-freedom claim falsifiable rather than asserted.

Provenance

{
  "date": "2026-08-28",
  "established_by": "axeyum-lean-kernel build_nat_prelude, lane 215-nat-bitwise-2",
  "source": "one of four boundary/sanity theorems `declare_land_all` (`crates/axeyum-lean-kernel/src/nat_prelude/land.rs`) admits alongside the `Nat.land`/`Nat.landAux` definitions"
}