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

Recorded description

For every natural a, b, c: land(land(a, b), c) = land(a, land(b, c)).

Formal statement
theorem Nat.land_assoc : ((x0 : AxNat) -> ((x1 : AxNat) -> ((x2 : AxNat) -> Eq.{1} AxNat (AxNat.land (AxNat.land x0 x1) x2) (AxNat.land x0 (AxNat.land x1 x2)))))

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. Addition on the naturals is com land is commutative n is <= n plus anything <= on the naturals is transitiv Mathlib v4.30 source propositio Mathlib v4.30 source propositio Current fact
6 direct dependencies 0 direct dependents

Evidence

kernel-Nat.land_assoc

Kind
kernel-term
Status
checked

Supports: Nat.land_assoc is admitted by the trusted kernel gate with the type recorded in formal.statement.

Checker command
test "$(cargo run -q --release -p axeyum-lean-kernel --example nat_theorem_inventory -- land_assoc 2>/dev/null | grep -Ec '^Nat\.land_assoc[[:space:]]')" -ge 1
Evidence notes

`build_nat_prelude` admits this theorem only through the trusted `Kernel::add_declaration` gate, which re-checks the proof term against the stated type -- producing this row at all is a machine-checked proof. `nat_theorem_inventory` exits non-zero for a name that does not exist, and `grep -Ec` consumes the pipe so the tested count decides the exit status. Anchored with `^Nat\.land_assoc[[:space:]]` so a sibling name cannot satisfy this row. Run `--release` -- the debug build of this inventory example SIGABRTs on stack depth (unrelated to this proof).

compute-Nat.land_assoc

Kind
kernel-term
Status
checked

Supports: land(land(3, 7), 5) = land(3, land(7, 5)) = 1, with BOTH intermediate values (land(3,7)=3, land(7,5)=5) genuinely NONZERO -- the fully-generic sub-case of the hard leaf (both nested landAux applications stuck, neither settling for the easy zero-corner), not a degenerate instance a wrong proof of the easy leaves alone could pass.

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

Applies `Nat.land_assoc` symbolically (against free `a`, `b`, `c`) and at the concrete instance `(a, b, c) = (3, 7, 5)`, confirming the admitted type matches `Eq (land (land 3 7) 5) (land 3 (land 7 5))`, that `land 3 7` and `land 7 5` are each nonzero (non-vacuity of the hard-leaf exercise), and that both sides compute to `1`.

footprint-Nat.land_assoc

Kind
instance-pin
Status
checked

Supports: axiom_footprint: [] -- the Nat environment admits no trusted declaration

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

Reports `nat: axiom=0 opaque=0 quotient=0 total_trusted=0`, over the FULL trusted surface rather than `Declaration::Axiom` alone. The enumeration is per-environment, not per-theorem; it bounds this theorem's footprint because a proof cannot depend on a trusted declaration the environment does not contain.

Provenance

{
  "date": "2026-08-29",
  "established_by": "axeyum-lean-kernel build_nat_prelude, lane nat-land-assoc-finish",
  "source": "theorem name and canonical type read directly via nat_theorem_inventory, which prints render_lean of the admitted type."
}