kernel-Nat.lcm_comm
- Kind
- kernel-term
- Status
- checked
Supports: ∀ (m n : ℕ), m.lcm n = n.lcm m
test "$(cargo run -q -p axeyum-lean-kernel --example nat_theorem_inventory -- lcm_comm 2>/dev/null | grep -Ec '^Nat\.lcm_comm[[:space:]]')" -ge 1 Evidence notes
`build_nat_prelude` admits `Nat.lcm_comm` through the trusted `Kernel::add_declaration` gate (declared in `nat_prelude/lcm.rs`'s `declare_lcm_comm`, landed before this session). Route: each of `lcm a b`/`lcm b a` divides the other (`dvd_lcm_left`/`dvd_lcm_right` fed into `lcm_dvd` with the endpoints swapped), and `dvd_antisymm` closes the equality. `nat_theorem_inventory`'s rendered type for `Nat.lcm_comm` is `((x0 : AxNat) -> ((x1 : AxNat) -> Eq.{1} AxNat (AxNat.lcm x0 x1) (AxNat.lcm x1 x0)))`, matching this fact's `formal.statement` verbatim (`x0`/`x1`/`x2` are the universally quantified variables in order). `nat_theorem_inventory` exits non-zero for a name that does not exist, and the `grep -c` count (tested `-ge 1`, not piped into `grep -q`) requires the admitted declaration to actually be printed.