kernel-Nat.mod_lcm
- Kind
- kernel-term
- Status
- checked
Supports: a ≡ b [MOD n] and a ≡ b [MOD m] together imply a ≡ b [MOD lcm n m], unconditionally in n and m
test "$(cargo run -q -p axeyum-lean-kernel --example nat_theorem_inventory -- mod_lcm 2>/dev/null | grep -Ec '^Nat\.mod_lcm[[:space:]]')" -ge 1 Evidence notes
`build_nat_prelude` admits this theorem through the trusted `Kernel::add_declaration` gate. Unlike `Nat.crt_unique` (this prelude's other congruence-combination theorem), no `gcd n m = 1` hypothesis is needed: the divisibility combination step is `Nat.lcm_dvd : dvd n c -> dvd m c -> dvd (lcm n m) c`, which is already unconditional (unlike `coprime_mul_dvd`, which needs coprimality to rewrite `lcm n m` down to `n*m`). Route: `le_total x y` splits into the two orders; each order extracts `dvd n (sub y x)` and `dvd m (sub y x)` from the two congruences (the same `gap_dvd` step `crt_unique` uses), combines them with `lcm_dvd`, and repackages the result as `modEq (lcm n m) x y` (`crt_unique`'s `modeq_of_dvd_gap`); the `y <= x` branch flips both hypotheses and the conclusion through `mod_eq_symm`. `nat_theorem_inventory` exits non-zero for a name that does not exist, and the `grep -c` requires the admitted declaration to be printed.