kernel-Int.dvd_mul_gcd_iff_dvd_mul
- Kind
- kernel-term
- Status
- checked
Supports: ∀ {k n m : ℤ}, k ∣ n * ↑(k.gcd m) ↔ k ∣ n * m
test "$(cargo run -q -p axeyum-lean-kernel --example int_theorem_inventory -- dvd_mul_gcd_iff_dvd_mul 2>/dev/null | /usr/bin/grep -cE '^theorem[[:space:]]+Int\.dvd_mul_gcd_iff_dvd_mul[[:space:]]')" -ge 1 Evidence notes
build_int_prelude admits Int.dvd_mul_gcd_iff_dvd_mul through the trusted Kernel::add_declaration gate, so producing this row at all is a machine-checked proof. New proof, lane int-gcd-mul-transport: int_prelude/gcd_scaled_mirrors.rs. Built by applying the same shape as Int.dvd_gcd_mul_iff_dvd_mul at (b,c) := (m,n) (scaling factor on the left) and commuting both sides into place with Int.mul_comm, mirroring nat_prelude/gcd_mul_right_mirrors.rs's dvd_mul_gcd_iff_dvd_mul one layer up. int_theorem_inventory's rendered type is `(x0:Int)->(x1:Int)->(x2:Int)->Iff (Int.dvd x0 (Int.mul x1 (Int.ofNat (Int.gcd x0 x2)))) (Int.dvd x0 (Int.mul x1 x2))`, matching this fact's formal.statement character for character (x0/x1/x2 = k/n/m). int_theorem_inventory exits non-zero for a name that does not exist (verified: dvd_mul_gcd_iff_dvd_mul_bogus_xyz -> exit 1, "no Int declaration matches"), and the anchored grep -c (tested -ge 1, not piped through grep -q) requires the exact name followed by whitespace, so it does not also match Int.dvd_gcd_mul_iff_dvd_mul or Int.dvd_gcd_mul_gcd_iff_dvd_mul.