Module docstring
{"# Lemmas about coprimality with big products.
These lemmas are kept separate from Data.Nat.GCD.Basic in order to minimize imports.
"}
{"# Lemmas about coprimality with big products.
These lemmas are kept separate from Data.Nat.GCD.Basic in order to minimize imports.
"}
Nat.coprime_list_prod_left_iff
theorem
{l : List ℕ} {k : ℕ} : Coprime l.prod k ↔ ∀ n ∈ l, Coprime n k
theorem coprime_list_prod_left_iff {l : List ℕ} {k : ℕ} :
CoprimeCoprime l.prod k ↔ ∀ n ∈ l, Coprime n k := by
induction l <;> simp [Nat.coprime_mul_iff_left, *]
Nat.coprime_list_prod_right_iff
theorem
{k : ℕ} {l : List ℕ} : Coprime k l.prod ↔ ∀ n ∈ l, Coprime k n
theorem coprime_list_prod_right_iff {k : ℕ} {l : List ℕ} :
CoprimeCoprime k l.prod ↔ ∀ n ∈ l, Coprime k n := by
simp_rw [coprime_comm (n := k), coprime_list_prod_left_iff]
Nat.coprime_multiset_prod_left_iff
theorem
{m : Multiset ℕ} {k : ℕ} : Coprime m.prod k ↔ ∀ n ∈ m, Coprime n k
theorem coprime_multiset_prod_left_iff {m : Multiset ℕ} {k : ℕ} :
CoprimeCoprime m.prod k ↔ ∀ n ∈ m, Coprime n k := by
induction m using Quotient.inductionOn; simpa using coprime_list_prod_left_iff
Nat.coprime_multiset_prod_right_iff
theorem
{k : ℕ} {m : Multiset ℕ} : Coprime k m.prod ↔ ∀ n ∈ m, Coprime k n
theorem coprime_multiset_prod_right_iff {k : ℕ} {m : Multiset ℕ} :
CoprimeCoprime k m.prod ↔ ∀ n ∈ m, Coprime k n := by
induction m using Quotient.inductionOn; simpa using coprime_list_prod_right_iff
Nat.coprime_prod_left_iff
theorem
{t : Finset ι} {s : ι → ℕ} {x : ℕ} : Coprime (∏ i ∈ t, s i) x ↔ ∀ i ∈ t, Coprime (s i) x
theorem coprime_prod_left_iff {t : Finset ι} {s : ι → ℕ} {x : ℕ} :
CoprimeCoprime (∏ i ∈ t, s i) x ↔ ∀ i ∈ t, Coprime (s i) x := by
simpa using coprime_multiset_prod_left_iff (m := t.val.map s)
Nat.coprime_prod_right_iff
theorem
{x : ℕ} {t : Finset ι} {s : ι → ℕ} : Coprime x (∏ i ∈ t, s i) ↔ ∀ i ∈ t, Coprime x (s i)
theorem coprime_prod_right_iff {x : ℕ} {t : Finset ι} {s : ι → ℕ} :
CoprimeCoprime x (∏ i ∈ t, s i) ↔ ∀ i ∈ t, Coprime x (s i) := by
simpa using coprime_multiset_prod_right_iff (m := t.val.map s)
Nat.coprime_fintype_prod_left_iff
theorem
[Fintype ι] {s : ι → ℕ} {x : ℕ} : Coprime (∏ i, s i) x ↔ ∀ i, Coprime (s i) x
theorem coprime_fintype_prod_left_iff [Fintype ι] {s : ι → ℕ} {x : ℕ} :
CoprimeCoprime (∏ i, s i) x ↔ ∀ i, Coprime (s i) x := by
simp [coprime_prod_left_iff]
Nat.coprime_fintype_prod_right_iff
theorem
[Fintype ι] {x : ℕ} {s : ι → ℕ} : Coprime x (∏ i, s i) ↔ ∀ i, Coprime x (s i)
theorem coprime_fintype_prod_right_iff [Fintype ι] {x : ℕ} {s : ι → ℕ} :
CoprimeCoprime x (∏ i, s i) ↔ ∀ i, Coprime x (s i) := by
simp [coprime_prod_right_iff]