Definitions and properties of gcd
, lcm
, and coprime
#
@[reducible]
m
and n
are coprime, or relatively prime, if their gcd
is 1.
Equations
- Nat.Coprime m n = (Nat.gcd m n = 1)
Instances For
lcm
#
Equations
- Nat.instDecidableCoprime m n = inferInstanceAs (Decidable (Nat.gcd m n = 1))
theorem
Nat.Coprime.dvd_of_dvd_mul_right
{k : Nat}
{n : Nat}
{m : Nat}
(H1 : Nat.Coprime k n)
(H2 : k ∣ m * n)
:
k ∣ m
theorem
Nat.Coprime.dvd_of_dvd_mul_left
{k : Nat}
{m : Nat}
{n : Nat}
(H1 : Nat.Coprime k m)
(H2 : k ∣ m * n)
:
k ∣ n
theorem
Nat.Coprime.gcd_mul_right_cancel_right
{k : Nat}
{m : Nat}
(n : Nat)
(H : Nat.Coprime k m)
:
theorem
Nat.not_coprime_of_dvd_of_dvd
{d : Nat}
{m : Nat}
{n : Nat}
(dgt1 : 1 < d)
(Hm : d ∣ m)
(Hn : d ∣ n)
:
¬Nat.Coprime m n
theorem
Nat.Coprime.mul
{m : Nat}
{k : Nat}
{n : Nat}
(H1 : Nat.Coprime m k)
(H2 : Nat.Coprime n k)
:
Nat.Coprime (m * n) k
theorem
Nat.Coprime.mul_right
{k : Nat}
{m : Nat}
{n : Nat}
(H1 : Nat.Coprime k m)
(H2 : Nat.Coprime k n)
:
Nat.Coprime k (m * n)
theorem
Nat.Coprime.coprime_dvd_left
{m : Nat}
{k : Nat}
{n : Nat}
(H1 : m ∣ k)
(H2 : Nat.Coprime k n)
:
Nat.Coprime m n
theorem
Nat.Coprime.coprime_dvd_right
{n : Nat}
{m : Nat}
{k : Nat}
(H1 : n ∣ m)
(H2 : Nat.Coprime k m)
:
Nat.Coprime k n
theorem
Nat.Coprime.coprime_mul_left
{k : Nat}
{m : Nat}
{n : Nat}
(H : Nat.Coprime (k * m) n)
:
Nat.Coprime m n
theorem
Nat.Coprime.coprime_mul_right
{m : Nat}
{k : Nat}
{n : Nat}
(H : Nat.Coprime (m * k) n)
:
Nat.Coprime m n
theorem
Nat.Coprime.coprime_mul_left_right
{m : Nat}
{k : Nat}
{n : Nat}
(H : Nat.Coprime m (k * n))
:
Nat.Coprime m n
theorem
Nat.Coprime.coprime_mul_right_right
{m : Nat}
{n : Nat}
{k : Nat}
(H : Nat.Coprime m (n * k))
:
Nat.Coprime m n
theorem
Nat.Coprime.coprime_div_left
{m : Nat}
{n : Nat}
{a : Nat}
(cmn : Nat.Coprime m n)
(dvd : a ∣ m)
:
Nat.Coprime (m / a) n
theorem
Nat.Coprime.coprime_div_right
{m : Nat}
{n : Nat}
{a : Nat}
(cmn : Nat.Coprime m n)
(dvd : a ∣ n)
:
Nat.Coprime m (n / a)
theorem
Nat.coprime_mul_iff_left
{m : Nat}
{n : Nat}
{k : Nat}
:
Nat.Coprime (m * n) k ↔ Nat.Coprime m k ∧ Nat.Coprime n k
theorem
Nat.coprime_mul_iff_right
{k : Nat}
{m : Nat}
{n : Nat}
:
Nat.Coprime k (m * n) ↔ Nat.Coprime k m ∧ Nat.Coprime k n
theorem
Nat.Coprime.gcd_left
{m : Nat}
{n : Nat}
(k : Nat)
(hmn : Nat.Coprime m n)
:
Nat.Coprime (Nat.gcd k m) n
theorem
Nat.Coprime.gcd_right
{m : Nat}
{n : Nat}
(k : Nat)
(hmn : Nat.Coprime m n)
:
Nat.Coprime m (Nat.gcd k n)
theorem
Nat.Coprime.gcd_both
{m : Nat}
{n : Nat}
(k : Nat)
(l : Nat)
(hmn : Nat.Coprime m n)
:
Nat.Coprime (Nat.gcd k m) (Nat.gcd l n)
theorem
Nat.Coprime.mul_dvd_of_dvd_of_dvd
{m : Nat}
{n : Nat}
{a : Nat}
(hmn : Nat.Coprime m n)
(hm : m ∣ a)
(hn : n ∣ a)
:
theorem
Nat.Coprime.pow_left
{m : Nat}
{k : Nat}
(n : Nat)
(H1 : Nat.Coprime m k)
:
Nat.Coprime (m ^ n) k
theorem
Nat.Coprime.pow_right
{k : Nat}
{m : Nat}
(n : Nat)
(H1 : Nat.Coprime k m)
:
Nat.Coprime k (m ^ n)
theorem
Nat.Coprime.pow
{k : Nat}
{l : Nat}
(m : Nat)
(n : Nat)
(H1 : Nat.Coprime k l)
:
Nat.Coprime (k ^ m) (l ^ n)