kernel-Nat.dvd_lcm_of_dvd_right
- Kind
- kernel-term
- Status
- checked
Supports: ∀ {a b : ℕ}, a ∣ b → ∀ (c : ℕ), a ∣ c.lcm b
test "$(cargo run -q --release -p axeyum-lean-kernel --example nat_theorem_inventory -- dvd_lcm_of_dvd_right 2>/dev/null | grep -Ec '^Nat\.dvd_lcm_of_dvd_right[[:space:]]')" -ge 1 Evidence notes
This mirror was ALREADY PROVED in this ledger under a different name: `Nat.dvd_lcm_of_dvd_right` (nat_prelude/primes.rs, `declare_dvd_lcm_of_dvd`) states `dvd a b -> dvd a (lcm c b)` for universally quantified `a b c`, which is exactly Mathlib's `a ∣ b → ∀ c, a ∣ c.lcm b` up to Pi-binder order (the `c` sits before the hypothesis here rather than after, which does not change the proposition). `nat_theorem_inventory`'s rendered type is `((x0 : AxNat) -> ((x1 : AxNat) -> ((x2 : AxNat) -> ((x3 : AxNat.dvd x0 x1) -> AxNat.dvd x0 (AxNat.lcm x2 x1)))))` -- reading `x0=a, x1=b, x2=c`, this is `dvd a b -> dvd a (lcm c b)`, matching `formal.statement` verbatim. No new Rust was needed; `draw11-theorems-b` lane confirmed the existing declaration's rendered type and wrote this evidence. `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.