algebra.gcd_monoid.finsetMathlib.Algebra.GCDMonoid.Finset

This file has been ported!

Changes since the initial port

The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Aaron Anderson
 -/
 import Data.Finset.Fold
-import Algebra.GcdMonoid.Multiset
+import Algebra.GCDMonoid.Multiset
 
 #align_import algebra.gcd_monoid.finset from "leanprover-community/mathlib"@"cc70d9141824ea8982d1562ce009952f2c3ece30"
 
Diff
@@ -283,7 +283,7 @@ theorem gcd_eq_zero_iff : s.gcd f = 0 ↔ ∀ x : β, x ∈ s → f x = 0 :=
     use b
     simp [mem_def.1 bs]
   · intro a as
-    rw [Multiset.mem_map] at as 
+    rw [Multiset.mem_map] at as
     rcases as with ⟨b, ⟨bs, rfl⟩⟩
     apply h b (mem_def.1 bs)
 #align finset.gcd_eq_zero_iff Finset.gcd_eq_zero_iff
@@ -345,7 +345,7 @@ theorem extract_gcd (f : β → α) (hs : s.Nonempty) :
   · refine' ⟨fun b => 1, fun b hb => by rw [h b hb, gcd_eq_zero_iff.2 h, mul_one], _⟩
     rw [gcd_eq_gcd_image, image_const hs, gcd_singleton, id, normalize_one]
   · choose g' hg using @gcd_dvd _ _ _ _ s f
-    have := fun b hb => _; push_neg at h 
+    have := fun b hb => _; push_neg at h
     refine' ⟨fun b => if hb : b ∈ s then g' hb else 0, this, extract_gcd' f _ h this⟩
     rw [dif_pos hb, hg hb]
 #align finset.extract_gcd Finset.extract_gcd
Diff
@@ -142,7 +142,7 @@ theorem lcm_mono (h : s₁ ⊆ s₂) : s₁.lcm f ∣ s₂.lcm f :=
 
 #print Finset.lcm_image /-
 theorem lcm_image [DecidableEq β] {g : γ → β} (s : Finset γ) : (s.image g).lcm f = s.lcm (f ∘ g) :=
-  by classical
+  by classical induction' s using Finset.induction with c s hc ih <;> simp [*]
 #align finset.lcm_image Finset.lcm_image
 -/
 
@@ -262,7 +262,7 @@ theorem gcd_mono (h : s₁ ⊆ s₂) : s₂.gcd f ∣ s₁.gcd f :=
 
 #print Finset.gcd_image /-
 theorem gcd_image [DecidableEq β] {g : γ → β} (s : Finset γ) : (s.image g).gcd f = s.gcd (f ∘ g) :=
-  by classical
+  by classical induction' s using Finset.induction with c s hc ih <;> simp [*]
 #align finset.gcd_image Finset.gcd_image
 -/
 
@@ -291,17 +291,40 @@ theorem gcd_eq_zero_iff : s.gcd f = 0 ↔ ∀ x : β, x ∈ s → f x = 0 :=
 
 #print Finset.gcd_eq_gcd_filter_ne_zero /-
 theorem gcd_eq_gcd_filter_ne_zero [DecidablePred fun x : β => f x = 0] :
-    s.gcd f = (s.filterₓ fun x => f x ≠ 0).gcd f := by classical
+    s.gcd f = (s.filterₓ fun x => f x ≠ 0).gcd f := by
+  classical
+  trans ((s.filter fun x => f x = 0) ∪ s.filter fun x => f x ≠ 0).gcd f
+  · rw [filter_union_filter_neg_eq]
+  rw [gcd_union]
+  trans GCDMonoid.gcd (0 : α) _
+  · refine' congr (congr rfl _) rfl
+    apply s.induction_on; · simp
+    intro a s has h
+    rw [filter_insert]
+    split_ifs with h1 <;> simp [h, h1]
+  simp [gcd_zero_left, normalize_gcd]
 #align finset.gcd_eq_gcd_filter_ne_zero Finset.gcd_eq_gcd_filter_ne_zero
 -/
 
 #print Finset.gcd_mul_left /-
-theorem gcd_mul_left {a : α} : (s.gcd fun x => a * f x) = normalize a * s.gcd f := by classical
+theorem gcd_mul_left {a : α} : (s.gcd fun x => a * f x) = normalize a * s.gcd f := by
+  classical
+  apply s.induction_on
+  · simp
+  intro b t hbt h
+  rw [gcd_insert, gcd_insert, h, ← gcd_mul_left]
+  apply ((normalize_associated a).mulRight _).gcd_eq_right
 #align finset.gcd_mul_left Finset.gcd_mul_left
 -/
 
 #print Finset.gcd_mul_right /-
-theorem gcd_mul_right {a : α} : (s.gcd fun x => f x * a) = s.gcd f * normalize a := by classical
+theorem gcd_mul_right {a : α} : (s.gcd fun x => f x * a) = s.gcd f * normalize a := by
+  classical
+  apply s.induction_on
+  · simp
+  intro b t hbt h
+  rw [gcd_insert, gcd_insert, h, ← gcd_mul_right]
+  apply ((normalize_associated a).mulLeft _).gcd_eq_right
 #align finset.gcd_mul_right Finset.gcd_mul_right
 -/
 
@@ -316,7 +339,15 @@ theorem extract_gcd' (f g : β → α) (hs : ∃ x, x ∈ s ∧ f x ≠ 0) (hg :
 
 #print Finset.extract_gcd /-
 theorem extract_gcd (f : β → α) (hs : s.Nonempty) :
-    ∃ g : β → α, (∀ b ∈ s, f b = s.gcd f * g b) ∧ s.gcd g = 1 := by classical
+    ∃ g : β → α, (∀ b ∈ s, f b = s.gcd f * g b) ∧ s.gcd g = 1 := by
+  classical
+  by_cases h : ∀ x ∈ s, f x = (0 : α)
+  · refine' ⟨fun b => 1, fun b hb => by rw [h b hb, gcd_eq_zero_iff.2 h, mul_one], _⟩
+    rw [gcd_eq_gcd_image, image_const hs, gcd_singleton, id, normalize_one]
+  · choose g' hg using @gcd_dvd _ _ _ _ s f
+    have := fun b hb => _; push_neg at h 
+    refine' ⟨fun b => if hb : b ∈ s then g' hb else 0, this, extract_gcd' f _ h this⟩
+    rw [dif_pos hb, hg hb]
 #align finset.extract_gcd Finset.extract_gcd
 -/
 
@@ -333,7 +364,16 @@ variable [CommRing α] [IsDomain α] [NormalizedGCDMonoid α]
 #print Finset.gcd_eq_of_dvd_sub /-
 theorem gcd_eq_of_dvd_sub {s : Finset β} {f g : β → α} {a : α}
     (h : ∀ x : β, x ∈ s → a ∣ f x - g x) : GCDMonoid.gcd a (s.gcd f) = GCDMonoid.gcd a (s.gcd g) :=
-  by classical
+  by
+  classical
+  revert h
+  apply s.induction_on
+  · simp
+  intro b s bs hi h
+  rw [gcd_insert, gcd_insert, gcd_comm (f b), ← gcd_assoc,
+    hi fun x hx => h _ (mem_insert_of_mem hx), gcd_comm a, gcd_assoc,
+    gcd_comm a (GCDMonoid.gcd _ _), gcd_comm (g b), gcd_assoc _ _ a, gcd_comm _ a]
+  exact congr_arg _ (gcd_eq_of_dvd_sub_right (h _ (mem_insert_self _ _)))
 #align finset.gcd_eq_of_dvd_sub Finset.gcd_eq_of_dvd_sub
 -/
 
Diff
@@ -142,7 +142,7 @@ theorem lcm_mono (h : s₁ ⊆ s₂) : s₁.lcm f ∣ s₂.lcm f :=
 
 #print Finset.lcm_image /-
 theorem lcm_image [DecidableEq β] {g : γ → β} (s : Finset γ) : (s.image g).lcm f = s.lcm (f ∘ g) :=
-  by classical induction' s using Finset.induction with c s hc ih <;> simp [*]
+  by classical
 #align finset.lcm_image Finset.lcm_image
 -/
 
@@ -262,7 +262,7 @@ theorem gcd_mono (h : s₁ ⊆ s₂) : s₂.gcd f ∣ s₁.gcd f :=
 
 #print Finset.gcd_image /-
 theorem gcd_image [DecidableEq β] {g : γ → β} (s : Finset γ) : (s.image g).gcd f = s.gcd (f ∘ g) :=
-  by classical induction' s using Finset.induction with c s hc ih <;> simp [*]
+  by classical
 #align finset.gcd_image Finset.gcd_image
 -/
 
@@ -291,40 +291,17 @@ theorem gcd_eq_zero_iff : s.gcd f = 0 ↔ ∀ x : β, x ∈ s → f x = 0 :=
 
 #print Finset.gcd_eq_gcd_filter_ne_zero /-
 theorem gcd_eq_gcd_filter_ne_zero [DecidablePred fun x : β => f x = 0] :
-    s.gcd f = (s.filterₓ fun x => f x ≠ 0).gcd f := by
-  classical
-  trans ((s.filter fun x => f x = 0) ∪ s.filter fun x => f x ≠ 0).gcd f
-  · rw [filter_union_filter_neg_eq]
-  rw [gcd_union]
-  trans GCDMonoid.gcd (0 : α) _
-  · refine' congr (congr rfl _) rfl
-    apply s.induction_on; · simp
-    intro a s has h
-    rw [filter_insert]
-    split_ifs with h1 <;> simp [h, h1]
-  simp [gcd_zero_left, normalize_gcd]
+    s.gcd f = (s.filterₓ fun x => f x ≠ 0).gcd f := by classical
 #align finset.gcd_eq_gcd_filter_ne_zero Finset.gcd_eq_gcd_filter_ne_zero
 -/
 
 #print Finset.gcd_mul_left /-
-theorem gcd_mul_left {a : α} : (s.gcd fun x => a * f x) = normalize a * s.gcd f := by
-  classical
-  apply s.induction_on
-  · simp
-  intro b t hbt h
-  rw [gcd_insert, gcd_insert, h, ← gcd_mul_left]
-  apply ((normalize_associated a).mulRight _).gcd_eq_right
+theorem gcd_mul_left {a : α} : (s.gcd fun x => a * f x) = normalize a * s.gcd f := by classical
 #align finset.gcd_mul_left Finset.gcd_mul_left
 -/
 
 #print Finset.gcd_mul_right /-
-theorem gcd_mul_right {a : α} : (s.gcd fun x => f x * a) = s.gcd f * normalize a := by
-  classical
-  apply s.induction_on
-  · simp
-  intro b t hbt h
-  rw [gcd_insert, gcd_insert, h, ← gcd_mul_right]
-  apply ((normalize_associated a).mulLeft _).gcd_eq_right
+theorem gcd_mul_right {a : α} : (s.gcd fun x => f x * a) = s.gcd f * normalize a := by classical
 #align finset.gcd_mul_right Finset.gcd_mul_right
 -/
 
@@ -339,15 +316,7 @@ theorem extract_gcd' (f g : β → α) (hs : ∃ x, x ∈ s ∧ f x ≠ 0) (hg :
 
 #print Finset.extract_gcd /-
 theorem extract_gcd (f : β → α) (hs : s.Nonempty) :
-    ∃ g : β → α, (∀ b ∈ s, f b = s.gcd f * g b) ∧ s.gcd g = 1 := by
-  classical
-  by_cases h : ∀ x ∈ s, f x = (0 : α)
-  · refine' ⟨fun b => 1, fun b hb => by rw [h b hb, gcd_eq_zero_iff.2 h, mul_one], _⟩
-    rw [gcd_eq_gcd_image, image_const hs, gcd_singleton, id, normalize_one]
-  · choose g' hg using @gcd_dvd _ _ _ _ s f
-    have := fun b hb => _; push_neg at h 
-    refine' ⟨fun b => if hb : b ∈ s then g' hb else 0, this, extract_gcd' f _ h this⟩
-    rw [dif_pos hb, hg hb]
+    ∃ g : β → α, (∀ b ∈ s, f b = s.gcd f * g b) ∧ s.gcd g = 1 := by classical
 #align finset.extract_gcd Finset.extract_gcd
 -/
 
@@ -364,16 +333,7 @@ variable [CommRing α] [IsDomain α] [NormalizedGCDMonoid α]
 #print Finset.gcd_eq_of_dvd_sub /-
 theorem gcd_eq_of_dvd_sub {s : Finset β} {f g : β → α} {a : α}
     (h : ∀ x : β, x ∈ s → a ∣ f x - g x) : GCDMonoid.gcd a (s.gcd f) = GCDMonoid.gcd a (s.gcd g) :=
-  by
-  classical
-  revert h
-  apply s.induction_on
-  · simp
-  intro b s bs hi h
-  rw [gcd_insert, gcd_insert, gcd_comm (f b), ← gcd_assoc,
-    hi fun x hx => h _ (mem_insert_of_mem hx), gcd_comm a, gcd_assoc,
-    gcd_comm a (GCDMonoid.gcd _ _), gcd_comm (g b), gcd_assoc _ _ a, gcd_comm _ a]
-  exact congr_arg _ (gcd_eq_of_dvd_sub_right (h _ (mem_insert_self _ _)))
+  by classical
 #align finset.gcd_eq_of_dvd_sub Finset.gcd_eq_of_dvd_sub
 -/
 
Diff
@@ -3,8 +3,8 @@ Copyright (c) 2020 Aaron Anderson. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Aaron Anderson
 -/
-import Mathbin.Data.Finset.Fold
-import Mathbin.Algebra.GcdMonoid.Multiset
+import Data.Finset.Fold
+import Algebra.GcdMonoid.Multiset
 
 #align_import algebra.gcd_monoid.finset from "leanprover-community/mathlib"@"cc70d9141824ea8982d1562ce009952f2c3ece30"
 
Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2020 Aaron Anderson. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Aaron Anderson
-
-! This file was ported from Lean 3 source module algebra.gcd_monoid.finset
-! leanprover-community/mathlib commit cc70d9141824ea8982d1562ce009952f2c3ece30
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Data.Finset.Fold
 import Mathbin.Algebra.GcdMonoid.Multiset
 
+#align_import algebra.gcd_monoid.finset from "leanprover-community/mathlib"@"cc70d9141824ea8982d1562ce009952f2c3ece30"
+
 /-!
 # GCD and LCM operations on finsets
 
Diff
@@ -57,15 +57,20 @@ def lcm (s : Finset β) (f : β → α) : α :=
 
 variable {s s₁ s₂ : Finset β} {f : β → α}
 
+#print Finset.lcm_def /-
 theorem lcm_def : s.lcm f = (s.1.map f).lcm :=
   rfl
 #align finset.lcm_def Finset.lcm_def
+-/
 
+#print Finset.lcm_empty /-
 @[simp]
 theorem lcm_empty : (∅ : Finset β).lcm f = 1 :=
   fold_empty
 #align finset.lcm_empty Finset.lcm_empty
+-/
 
+#print Finset.lcm_dvd_iff /-
 @[simp]
 theorem lcm_dvd_iff {a : α} : s.lcm f ∣ a ↔ ∀ b ∈ s, f b ∣ a :=
   by
@@ -73,6 +78,7 @@ theorem lcm_dvd_iff {a : α} : s.lcm f ∣ a ↔ ∀ b ∈ s, f b ∣ a :=
   simp only [Multiset.mem_map, and_imp, exists_imp]
   exact ⟨fun k b hb => k _ _ hb rfl, fun k a' b hb h => h ▸ k _ hb⟩
 #align finset.lcm_dvd_iff Finset.lcm_dvd_iff
+-/
 
 #print Finset.lcm_dvd /-
 theorem lcm_dvd {a : α} : (∀ b ∈ s, f b ∣ a) → s.lcm f ∣ a :=
@@ -99,14 +105,18 @@ theorem lcm_insert [DecidableEq β] {b : β} :
 #align finset.lcm_insert Finset.lcm_insert
 -/
 
+#print Finset.lcm_singleton /-
 @[simp]
 theorem lcm_singleton {b : β} : ({b} : Finset β).lcm f = normalize (f b) :=
   Multiset.lcm_singleton
 #align finset.lcm_singleton Finset.lcm_singleton
+-/
 
+#print Finset.normalize_lcm /-
 @[simp]
 theorem normalize_lcm : normalize (s.lcm f) = s.lcm f := by simp [lcm_def]
 #align finset.normalize_lcm Finset.normalize_lcm
+-/
 
 #print Finset.lcm_union /-
 theorem lcm_union [DecidableEq β] : (s₁ ∪ s₂).lcm f = GCDMonoid.lcm (s₁.lcm f) (s₂.lcm f) :=
@@ -133,18 +143,24 @@ theorem lcm_mono (h : s₁ ⊆ s₂) : s₁.lcm f ∣ s₂.lcm f :=
 #align finset.lcm_mono Finset.lcm_mono
 -/
 
+#print Finset.lcm_image /-
 theorem lcm_image [DecidableEq β] {g : γ → β} (s : Finset γ) : (s.image g).lcm f = s.lcm (f ∘ g) :=
   by classical induction' s using Finset.induction with c s hc ih <;> simp [*]
 #align finset.lcm_image Finset.lcm_image
+-/
 
+#print Finset.lcm_eq_lcm_image /-
 theorem lcm_eq_lcm_image [DecidableEq α] : s.lcm f = (s.image f).lcm id :=
   Eq.symm <| lcm_image _
 #align finset.lcm_eq_lcm_image Finset.lcm_eq_lcm_image
+-/
 
+#print Finset.lcm_eq_zero_iff /-
 theorem lcm_eq_zero_iff [Nontrivial α] : s.lcm f = 0 ↔ 0 ∈ f '' s := by
   simp only [Multiset.mem_map, lcm_def, Multiset.lcm_eq_zero_iff, Set.mem_image, mem_coe, ←
     Finset.mem_def]
 #align finset.lcm_eq_zero_iff Finset.lcm_eq_zero_iff
+-/
 
 end Lcm
 
@@ -162,21 +178,27 @@ def gcd (s : Finset β) (f : β → α) : α :=
 
 variable {s s₁ s₂ : Finset β} {f : β → α}
 
+#print Finset.gcd_def /-
 theorem gcd_def : s.gcd f = (s.1.map f).gcd :=
   rfl
 #align finset.gcd_def Finset.gcd_def
+-/
 
+#print Finset.gcd_empty /-
 @[simp]
 theorem gcd_empty : (∅ : Finset β).gcd f = 0 :=
   fold_empty
 #align finset.gcd_empty Finset.gcd_empty
+-/
 
+#print Finset.dvd_gcd_iff /-
 theorem dvd_gcd_iff {a : α} : a ∣ s.gcd f ↔ ∀ b ∈ s, a ∣ f b :=
   by
   apply Iff.trans Multiset.dvd_gcd
   simp only [Multiset.mem_map, and_imp, exists_imp]
   exact ⟨fun k b hb => k _ _ hb rfl, fun k a' b hb h => h ▸ k _ hb⟩
 #align finset.dvd_gcd_iff Finset.dvd_gcd_iff
+-/
 
 #print Finset.gcd_dvd /-
 theorem gcd_dvd {b : β} (hb : b ∈ s) : s.gcd f ∣ f b :=
@@ -203,14 +225,18 @@ theorem gcd_insert [DecidableEq β] {b : β} :
 #align finset.gcd_insert Finset.gcd_insert
 -/
 
+#print Finset.gcd_singleton /-
 @[simp]
 theorem gcd_singleton {b : β} : ({b} : Finset β).gcd f = normalize (f b) :=
   Multiset.gcd_singleton
 #align finset.gcd_singleton Finset.gcd_singleton
+-/
 
+#print Finset.normalize_gcd /-
 @[simp]
 theorem normalize_gcd : normalize (s.gcd f) = s.gcd f := by simp [gcd_def]
 #align finset.normalize_gcd Finset.normalize_gcd
+-/
 
 #print Finset.gcd_union /-
 theorem gcd_union [DecidableEq β] : (s₁ ∪ s₂).gcd f = GCDMonoid.gcd (s₁.gcd f) (s₂.gcd f) :=
@@ -237,14 +263,19 @@ theorem gcd_mono (h : s₁ ⊆ s₂) : s₂.gcd f ∣ s₁.gcd f :=
 #align finset.gcd_mono Finset.gcd_mono
 -/
 
+#print Finset.gcd_image /-
 theorem gcd_image [DecidableEq β] {g : γ → β} (s : Finset γ) : (s.image g).gcd f = s.gcd (f ∘ g) :=
   by classical induction' s using Finset.induction with c s hc ih <;> simp [*]
 #align finset.gcd_image Finset.gcd_image
+-/
 
+#print Finset.gcd_eq_gcd_image /-
 theorem gcd_eq_gcd_image [DecidableEq α] : s.gcd f = (s.image f).gcd id :=
   Eq.symm <| gcd_image _
 #align finset.gcd_eq_gcd_image Finset.gcd_eq_gcd_image
+-/
 
+#print Finset.gcd_eq_zero_iff /-
 theorem gcd_eq_zero_iff : s.gcd f = 0 ↔ ∀ x : β, x ∈ s → f x = 0 :=
   by
   rw [gcd_def, Multiset.gcd_eq_zero_iff]
@@ -259,7 +290,9 @@ theorem gcd_eq_zero_iff : s.gcd f = 0 ↔ ∀ x : β, x ∈ s → f x = 0 :=
     rcases as with ⟨b, ⟨bs, rfl⟩⟩
     apply h b (mem_def.1 bs)
 #align finset.gcd_eq_zero_iff Finset.gcd_eq_zero_iff
+-/
 
+#print Finset.gcd_eq_gcd_filter_ne_zero /-
 theorem gcd_eq_gcd_filter_ne_zero [DecidablePred fun x : β => f x = 0] :
     s.gcd f = (s.filterₓ fun x => f x ≠ 0).gcd f := by
   classical
@@ -274,7 +307,9 @@ theorem gcd_eq_gcd_filter_ne_zero [DecidablePred fun x : β => f x = 0] :
     split_ifs with h1 <;> simp [h, h1]
   simp [gcd_zero_left, normalize_gcd]
 #align finset.gcd_eq_gcd_filter_ne_zero Finset.gcd_eq_gcd_filter_ne_zero
+-/
 
+#print Finset.gcd_mul_left /-
 theorem gcd_mul_left {a : α} : (s.gcd fun x => a * f x) = normalize a * s.gcd f := by
   classical
   apply s.induction_on
@@ -283,7 +318,9 @@ theorem gcd_mul_left {a : α} : (s.gcd fun x => a * f x) = normalize a * s.gcd f
   rw [gcd_insert, gcd_insert, h, ← gcd_mul_left]
   apply ((normalize_associated a).mulRight _).gcd_eq_right
 #align finset.gcd_mul_left Finset.gcd_mul_left
+-/
 
+#print Finset.gcd_mul_right /-
 theorem gcd_mul_right {a : α} : (s.gcd fun x => f x * a) = s.gcd f * normalize a := by
   classical
   apply s.induction_on
@@ -292,14 +329,18 @@ theorem gcd_mul_right {a : α} : (s.gcd fun x => f x * a) = s.gcd f * normalize
   rw [gcd_insert, gcd_insert, h, ← gcd_mul_right]
   apply ((normalize_associated a).mulLeft _).gcd_eq_right
 #align finset.gcd_mul_right Finset.gcd_mul_right
+-/
 
+#print Finset.extract_gcd' /-
 theorem extract_gcd' (f g : β → α) (hs : ∃ x, x ∈ s ∧ f x ≠ 0) (hg : ∀ b ∈ s, f b = s.gcd f * g b) :
     s.gcd g = 1 :=
   ((@mul_right_eq_self₀ _ _ (s.gcd f) _).1 <| by
         conv_lhs => rw [← normalize_gcd, ← gcd_mul_left, ← gcd_congr rfl hg]).resolve_right <|
     by contrapose! hs; exact gcd_eq_zero_iff.1 hs
 #align finset.extract_gcd' Finset.extract_gcd'
+-/
 
+#print Finset.extract_gcd /-
 theorem extract_gcd (f : β → α) (hs : s.Nonempty) :
     ∃ g : β → α, (∀ b ∈ s, f b = s.gcd f * g b) ∧ s.gcd g = 1 := by
   classical
@@ -311,6 +352,7 @@ theorem extract_gcd (f : β → α) (hs : s.Nonempty) :
     refine' ⟨fun b => if hb : b ∈ s then g' hb else 0, this, extract_gcd' f _ h this⟩
     rw [dif_pos hb, hg hb]
 #align finset.extract_gcd Finset.extract_gcd
+-/
 
 end Gcd
 
@@ -322,6 +364,7 @@ section IsDomain
 
 variable [CommRing α] [IsDomain α] [NormalizedGCDMonoid α]
 
+#print Finset.gcd_eq_of_dvd_sub /-
 theorem gcd_eq_of_dvd_sub {s : Finset β} {f g : β → α} {a : α}
     (h : ∀ x : β, x ∈ s → a ∣ f x - g x) : GCDMonoid.gcd a (s.gcd f) = GCDMonoid.gcd a (s.gcd g) :=
   by
@@ -335,6 +378,7 @@ theorem gcd_eq_of_dvd_sub {s : Finset β} {f g : β → α} {a : α}
     gcd_comm a (GCDMonoid.gcd _ _), gcd_comm (g b), gcd_assoc _ _ a, gcd_comm _ a]
   exact congr_arg _ (gcd_eq_of_dvd_sub_right (h _ (mem_insert_self _ _)))
 #align finset.gcd_eq_of_dvd_sub Finset.gcd_eq_of_dvd_sub
+-/
 
 end IsDomain
 
Diff
@@ -263,34 +263,34 @@ theorem gcd_eq_zero_iff : s.gcd f = 0 ↔ ∀ x : β, x ∈ s → f x = 0 :=
 theorem gcd_eq_gcd_filter_ne_zero [DecidablePred fun x : β => f x = 0] :
     s.gcd f = (s.filterₓ fun x => f x ≠ 0).gcd f := by
   classical
-    trans ((s.filter fun x => f x = 0) ∪ s.filter fun x => f x ≠ 0).gcd f
-    · rw [filter_union_filter_neg_eq]
-    rw [gcd_union]
-    trans GCDMonoid.gcd (0 : α) _
-    · refine' congr (congr rfl _) rfl
-      apply s.induction_on; · simp
-      intro a s has h
-      rw [filter_insert]
-      split_ifs with h1 <;> simp [h, h1]
-    simp [gcd_zero_left, normalize_gcd]
+  trans ((s.filter fun x => f x = 0) ∪ s.filter fun x => f x ≠ 0).gcd f
+  · rw [filter_union_filter_neg_eq]
+  rw [gcd_union]
+  trans GCDMonoid.gcd (0 : α) _
+  · refine' congr (congr rfl _) rfl
+    apply s.induction_on; · simp
+    intro a s has h
+    rw [filter_insert]
+    split_ifs with h1 <;> simp [h, h1]
+  simp [gcd_zero_left, normalize_gcd]
 #align finset.gcd_eq_gcd_filter_ne_zero Finset.gcd_eq_gcd_filter_ne_zero
 
 theorem gcd_mul_left {a : α} : (s.gcd fun x => a * f x) = normalize a * s.gcd f := by
   classical
-    apply s.induction_on
-    · simp
-    intro b t hbt h
-    rw [gcd_insert, gcd_insert, h, ← gcd_mul_left]
-    apply ((normalize_associated a).mulRight _).gcd_eq_right
+  apply s.induction_on
+  · simp
+  intro b t hbt h
+  rw [gcd_insert, gcd_insert, h, ← gcd_mul_left]
+  apply ((normalize_associated a).mulRight _).gcd_eq_right
 #align finset.gcd_mul_left Finset.gcd_mul_left
 
 theorem gcd_mul_right {a : α} : (s.gcd fun x => f x * a) = s.gcd f * normalize a := by
   classical
-    apply s.induction_on
-    · simp
-    intro b t hbt h
-    rw [gcd_insert, gcd_insert, h, ← gcd_mul_right]
-    apply ((normalize_associated a).mulLeft _).gcd_eq_right
+  apply s.induction_on
+  · simp
+  intro b t hbt h
+  rw [gcd_insert, gcd_insert, h, ← gcd_mul_right]
+  apply ((normalize_associated a).mulLeft _).gcd_eq_right
 #align finset.gcd_mul_right Finset.gcd_mul_right
 
 theorem extract_gcd' (f g : β → α) (hs : ∃ x, x ∈ s ∧ f x ≠ 0) (hg : ∀ b ∈ s, f b = s.gcd f * g b) :
@@ -303,13 +303,13 @@ theorem extract_gcd' (f g : β → α) (hs : ∃ x, x ∈ s ∧ f x ≠ 0) (hg :
 theorem extract_gcd (f : β → α) (hs : s.Nonempty) :
     ∃ g : β → α, (∀ b ∈ s, f b = s.gcd f * g b) ∧ s.gcd g = 1 := by
   classical
-    by_cases h : ∀ x ∈ s, f x = (0 : α)
-    · refine' ⟨fun b => 1, fun b hb => by rw [h b hb, gcd_eq_zero_iff.2 h, mul_one], _⟩
-      rw [gcd_eq_gcd_image, image_const hs, gcd_singleton, id, normalize_one]
-    · choose g' hg using @gcd_dvd _ _ _ _ s f
-      have := fun b hb => _; push_neg  at h 
-      refine' ⟨fun b => if hb : b ∈ s then g' hb else 0, this, extract_gcd' f _ h this⟩
-      rw [dif_pos hb, hg hb]
+  by_cases h : ∀ x ∈ s, f x = (0 : α)
+  · refine' ⟨fun b => 1, fun b hb => by rw [h b hb, gcd_eq_zero_iff.2 h, mul_one], _⟩
+    rw [gcd_eq_gcd_image, image_const hs, gcd_singleton, id, normalize_one]
+  · choose g' hg using @gcd_dvd _ _ _ _ s f
+    have := fun b hb => _; push_neg at h 
+    refine' ⟨fun b => if hb : b ∈ s then g' hb else 0, this, extract_gcd' f _ h this⟩
+    rw [dif_pos hb, hg hb]
 #align finset.extract_gcd Finset.extract_gcd
 
 end Gcd
@@ -326,14 +326,14 @@ theorem gcd_eq_of_dvd_sub {s : Finset β} {f g : β → α} {a : α}
     (h : ∀ x : β, x ∈ s → a ∣ f x - g x) : GCDMonoid.gcd a (s.gcd f) = GCDMonoid.gcd a (s.gcd g) :=
   by
   classical
-    revert h
-    apply s.induction_on
-    · simp
-    intro b s bs hi h
-    rw [gcd_insert, gcd_insert, gcd_comm (f b), ← gcd_assoc,
-      hi fun x hx => h _ (mem_insert_of_mem hx), gcd_comm a, gcd_assoc,
-      gcd_comm a (GCDMonoid.gcd _ _), gcd_comm (g b), gcd_assoc _ _ a, gcd_comm _ a]
-    exact congr_arg _ (gcd_eq_of_dvd_sub_right (h _ (mem_insert_self _ _)))
+  revert h
+  apply s.induction_on
+  · simp
+  intro b s bs hi h
+  rw [gcd_insert, gcd_insert, gcd_comm (f b), ← gcd_assoc,
+    hi fun x hx => h _ (mem_insert_of_mem hx), gcd_comm a, gcd_assoc,
+    gcd_comm a (GCDMonoid.gcd _ _), gcd_comm (g b), gcd_assoc _ _ a, gcd_comm _ a]
+  exact congr_arg _ (gcd_eq_of_dvd_sub_right (h _ (mem_insert_self _ _)))
 #align finset.gcd_eq_of_dvd_sub Finset.gcd_eq_of_dvd_sub
 
 end IsDomain
Diff
@@ -255,7 +255,7 @@ theorem gcd_eq_zero_iff : s.gcd f = 0 ↔ ∀ x : β, x ∈ s → f x = 0 :=
     use b
     simp [mem_def.1 bs]
   · intro a as
-    rw [Multiset.mem_map] at as
+    rw [Multiset.mem_map] at as 
     rcases as with ⟨b, ⟨bs, rfl⟩⟩
     apply h b (mem_def.1 bs)
 #align finset.gcd_eq_zero_iff Finset.gcd_eq_zero_iff
@@ -307,7 +307,7 @@ theorem extract_gcd (f : β → α) (hs : s.Nonempty) :
     · refine' ⟨fun b => 1, fun b hb => by rw [h b hb, gcd_eq_zero_iff.2 h, mul_one], _⟩
       rw [gcd_eq_gcd_image, image_const hs, gcd_singleton, id, normalize_one]
     · choose g' hg using @gcd_dvd _ _ _ _ s f
-      have := fun b hb => _; push_neg  at h
+      have := fun b hb => _; push_neg  at h 
       refine' ⟨fun b => if hb : b ∈ s then g' hb else 0, this, extract_gcd' f _ h this⟩
       rw [dif_pos hb, hg hb]
 #align finset.extract_gcd Finset.extract_gcd
Diff
@@ -57,33 +57,15 @@ def lcm (s : Finset β) (f : β → α) : α :=
 
 variable {s s₁ s₂ : Finset β} {f : β → α}
 
-/- warning: finset.lcm_def -> Finset.lcm_def is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CancelCommMonoidWithZero.{u1} α] [_inst_2 : NormalizedGCDMonoid.{u1} α _inst_1] {s : Finset.{u2} β} {f : β -> α}, Eq.{succ u1} α (Finset.lcm.{u1, u2} α β _inst_1 _inst_2 s f) (Multiset.lcm.{u1} α _inst_1 _inst_2 (Multiset.map.{u2, u1} β α f (Finset.val.{u2} β s)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {s : Finset.{u1} β} {f : β -> α}, Eq.{succ u2} α (Finset.lcm.{u2, u1} α β _inst_1 _inst_2 s f) (Multiset.lcm.{u2} α _inst_1 _inst_2 (Multiset.map.{u1, u2} β α f (Finset.val.{u1} β s)))
-Case conversion may be inaccurate. Consider using '#align finset.lcm_def Finset.lcm_defₓ'. -/
 theorem lcm_def : s.lcm f = (s.1.map f).lcm :=
   rfl
 #align finset.lcm_def Finset.lcm_def
 
-/- warning: finset.lcm_empty -> Finset.lcm_empty is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CancelCommMonoidWithZero.{u1} α] [_inst_2 : NormalizedGCDMonoid.{u1} α _inst_1] {f : β -> α}, Eq.{succ u1} α (Finset.lcm.{u1, u2} α β _inst_1 _inst_2 (EmptyCollection.emptyCollection.{u2} (Finset.{u2} β) (Finset.hasEmptyc.{u2} β)) f) (OfNat.ofNat.{u1} α 1 (OfNat.mk.{u1} α 1 (One.one.{u1} α (MulOneClass.toHasOne.{u1} α (MulZeroOneClass.toMulOneClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))))))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {f : β -> α}, Eq.{succ u2} α (Finset.lcm.{u2, u1} α β _inst_1 _inst_2 (EmptyCollection.emptyCollection.{u1} (Finset.{u1} β) (Finset.instEmptyCollectionFinset.{u1} β)) f) (OfNat.ofNat.{u2} α 1 (One.toOfNat1.{u2} α (Monoid.toOne.{u2} α (MonoidWithZero.toMonoid.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))))
-Case conversion may be inaccurate. Consider using '#align finset.lcm_empty Finset.lcm_emptyₓ'. -/
 @[simp]
 theorem lcm_empty : (∅ : Finset β).lcm f = 1 :=
   fold_empty
 #align finset.lcm_empty Finset.lcm_empty
 
-/- warning: finset.lcm_dvd_iff -> Finset.lcm_dvd_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CancelCommMonoidWithZero.{u1} α] [_inst_2 : NormalizedGCDMonoid.{u1} α _inst_1] {s : Finset.{u2} β} {f : β -> α} {a : α}, Iff (Dvd.Dvd.{u1} α (semigroupDvd.{u1} α (SemigroupWithZero.toSemigroup.{u1} α (MonoidWithZero.toSemigroupWithZero.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))))) (Finset.lcm.{u1, u2} α β _inst_1 _inst_2 s f) a) (forall (b : β), (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) b s) -> (Dvd.Dvd.{u1} α (semigroupDvd.{u1} α (SemigroupWithZero.toSemigroup.{u1} α (MonoidWithZero.toSemigroupWithZero.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))))) (f b) a))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {s : Finset.{u1} β} {f : β -> α} {a : α}, Iff (Dvd.dvd.{u2} α (semigroupDvd.{u2} α (SemigroupWithZero.toSemigroup.{u2} α (MonoidWithZero.toSemigroupWithZero.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (Finset.lcm.{u2, u1} α β _inst_1 _inst_2 s f) a) (forall (b : β), (Membership.mem.{u1, u1} β (Finset.{u1} β) (Finset.instMembershipFinset.{u1} β) b s) -> (Dvd.dvd.{u2} α (semigroupDvd.{u2} α (SemigroupWithZero.toSemigroup.{u2} α (MonoidWithZero.toSemigroupWithZero.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (f b) a))
-Case conversion may be inaccurate. Consider using '#align finset.lcm_dvd_iff Finset.lcm_dvd_iffₓ'. -/
 @[simp]
 theorem lcm_dvd_iff {a : α} : s.lcm f ∣ a ↔ ∀ b ∈ s, f b ∣ a :=
   by
@@ -117,23 +99,11 @@ theorem lcm_insert [DecidableEq β] {b : β} :
 #align finset.lcm_insert Finset.lcm_insert
 -/
 
-/- warning: finset.lcm_singleton -> Finset.lcm_singleton is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CancelCommMonoidWithZero.{u1} α] [_inst_2 : NormalizedGCDMonoid.{u1} α _inst_1] {f : β -> α} {b : β}, Eq.{succ u1} α (Finset.lcm.{u1, u2} α β _inst_1 _inst_2 (Singleton.singleton.{u2, u2} β (Finset.{u2} β) (Finset.hasSingleton.{u2} β) b) f) (coeFn.{succ u1, succ u1} (MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (fun (_x : MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) => α -> α) (MonoidWithZeroHom.hasCoeToFun.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (normalize.{u1} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u1} α _inst_1 _inst_2)) (f b))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {f : β -> α} {b : β}, Eq.{succ u2} α (Finset.lcm.{u2, u1} α β _inst_1 _inst_2 (Singleton.singleton.{u1, u1} β (Finset.{u1} β) (Finset.instSingletonFinset.{u1} β) b) f) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => α) _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))))) (normalize.{u2} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u2} α _inst_1 _inst_2)) (f b))
-Case conversion may be inaccurate. Consider using '#align finset.lcm_singleton Finset.lcm_singletonₓ'. -/
 @[simp]
 theorem lcm_singleton {b : β} : ({b} : Finset β).lcm f = normalize (f b) :=
   Multiset.lcm_singleton
 #align finset.lcm_singleton Finset.lcm_singleton
 
-/- warning: finset.normalize_lcm -> Finset.normalize_lcm is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CancelCommMonoidWithZero.{u1} α] [_inst_2 : NormalizedGCDMonoid.{u1} α _inst_1] {s : Finset.{u2} β} {f : β -> α}, Eq.{succ u1} α (coeFn.{succ u1, succ u1} (MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (fun (_x : MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) => α -> α) (MonoidWithZeroHom.hasCoeToFun.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (normalize.{u1} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u1} α _inst_1 _inst_2)) (Finset.lcm.{u1, u2} α β _inst_1 _inst_2 s f)) (Finset.lcm.{u1, u2} α β _inst_1 _inst_2 s f)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {s : Finset.{u1} β} {f : β -> α}, Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => α) (Finset.lcm.{u2, u1} α β _inst_1 _inst_2 s f)) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => α) _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))))) (normalize.{u2} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u2} α _inst_1 _inst_2)) (Finset.lcm.{u2, u1} α β _inst_1 _inst_2 s f)) (Finset.lcm.{u2, u1} α β _inst_1 _inst_2 s f)
-Case conversion may be inaccurate. Consider using '#align finset.normalize_lcm Finset.normalize_lcmₓ'. -/
 @[simp]
 theorem normalize_lcm : normalize (s.lcm f) = s.lcm f := by simp [lcm_def]
 #align finset.normalize_lcm Finset.normalize_lcm
@@ -163,32 +133,14 @@ theorem lcm_mono (h : s₁ ⊆ s₂) : s₁.lcm f ∣ s₂.lcm f :=
 #align finset.lcm_mono Finset.lcm_mono
 -/
 
-/- warning: finset.lcm_image -> Finset.lcm_image is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : CancelCommMonoidWithZero.{u1} α] [_inst_2 : NormalizedGCDMonoid.{u1} α _inst_1] {f : β -> α} [_inst_3 : DecidableEq.{succ u2} β] {g : γ -> β} (s : Finset.{u3} γ), Eq.{succ u1} α (Finset.lcm.{u1, u2} α β _inst_1 _inst_2 (Finset.image.{u3, u2} γ β (fun (a : β) (b : β) => _inst_3 a b) g s) f) (Finset.lcm.{u1, u3} α γ _inst_1 _inst_2 s (Function.comp.{succ u3, succ u2, succ u1} γ β α f g))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} [_inst_1 : CancelCommMonoidWithZero.{u1} α] [_inst_2 : NormalizedGCDMonoid.{u1} α _inst_1] {f : β -> α} [_inst_3 : DecidableEq.{succ u3} β] {g : γ -> β} (s : Finset.{u2} γ), Eq.{succ u1} α (Finset.lcm.{u1, u3} α β _inst_1 _inst_2 (Finset.image.{u2, u3} γ β (fun (a : β) (b : β) => _inst_3 a b) g s) f) (Finset.lcm.{u1, u2} α γ _inst_1 _inst_2 s (Function.comp.{succ u2, succ u3, succ u1} γ β α f g))
-Case conversion may be inaccurate. Consider using '#align finset.lcm_image Finset.lcm_imageₓ'. -/
 theorem lcm_image [DecidableEq β] {g : γ → β} (s : Finset γ) : (s.image g).lcm f = s.lcm (f ∘ g) :=
   by classical induction' s using Finset.induction with c s hc ih <;> simp [*]
 #align finset.lcm_image Finset.lcm_image
 
-/- warning: finset.lcm_eq_lcm_image -> Finset.lcm_eq_lcm_image is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CancelCommMonoidWithZero.{u1} α] [_inst_2 : NormalizedGCDMonoid.{u1} α _inst_1] {s : Finset.{u2} β} {f : β -> α} [_inst_3 : DecidableEq.{succ u1} α], Eq.{succ u1} α (Finset.lcm.{u1, u2} α β _inst_1 _inst_2 s f) (Finset.lcm.{u1, u1} α α _inst_1 _inst_2 (Finset.image.{u2, u1} β α (fun (a : α) (b : α) => _inst_3 a b) f s) (id.{succ u1} α))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {s : Finset.{u1} β} {f : β -> α} [_inst_3 : DecidableEq.{succ u2} α], Eq.{succ u2} α (Finset.lcm.{u2, u1} α β _inst_1 _inst_2 s f) (Finset.lcm.{u2, u2} α α _inst_1 _inst_2 (Finset.image.{u1, u2} β α (fun (a : α) (b : α) => _inst_3 a b) f s) (id.{succ u2} α))
-Case conversion may be inaccurate. Consider using '#align finset.lcm_eq_lcm_image Finset.lcm_eq_lcm_imageₓ'. -/
 theorem lcm_eq_lcm_image [DecidableEq α] : s.lcm f = (s.image f).lcm id :=
   Eq.symm <| lcm_image _
 #align finset.lcm_eq_lcm_image Finset.lcm_eq_lcm_image
 
-/- warning: finset.lcm_eq_zero_iff -> Finset.lcm_eq_zero_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CancelCommMonoidWithZero.{u1} α] [_inst_2 : NormalizedGCDMonoid.{u1} α _inst_1] {s : Finset.{u2} β} {f : β -> α} [_inst_3 : Nontrivial.{u1} α], Iff (Eq.{succ u1} α (Finset.lcm.{u1, u2} α β _inst_1 _inst_2 s f) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))))))))) (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))))))) (Set.image.{u2, u1} β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} β) (Set.{u2} β) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} β) (Set.{u2} β) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} β) (Set.{u2} β) (Finset.Set.hasCoeT.{u2} β))) s)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {s : Finset.{u1} β} {f : β -> α} [_inst_3 : Nontrivial.{u2} α], Iff (Eq.{succ u2} α (Finset.lcm.{u2, u1} α β _inst_1 _inst_2 s f) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (CommMonoidWithZero.toZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (CommMonoidWithZero.toZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (Set.image.{u1, u2} β α f (Finset.toSet.{u1} β s)))
-Case conversion may be inaccurate. Consider using '#align finset.lcm_eq_zero_iff Finset.lcm_eq_zero_iffₓ'. -/
 theorem lcm_eq_zero_iff [Nontrivial α] : s.lcm f = 0 ↔ 0 ∈ f '' s := by
   simp only [Multiset.mem_map, lcm_def, Multiset.lcm_eq_zero_iff, Set.mem_image, mem_coe, ←
     Finset.mem_def]
@@ -210,33 +162,15 @@ def gcd (s : Finset β) (f : β → α) : α :=
 
 variable {s s₁ s₂ : Finset β} {f : β → α}
 
-/- warning: finset.gcd_def -> Finset.gcd_def is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CancelCommMonoidWithZero.{u1} α] [_inst_2 : NormalizedGCDMonoid.{u1} α _inst_1] {s : Finset.{u2} β} {f : β -> α}, Eq.{succ u1} α (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 s f) (Multiset.gcd.{u1} α _inst_1 _inst_2 (Multiset.map.{u2, u1} β α f (Finset.val.{u2} β s)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {s : Finset.{u1} β} {f : β -> α}, Eq.{succ u2} α (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s f) (Multiset.gcd.{u2} α _inst_1 _inst_2 (Multiset.map.{u1, u2} β α f (Finset.val.{u1} β s)))
-Case conversion may be inaccurate. Consider using '#align finset.gcd_def Finset.gcd_defₓ'. -/
 theorem gcd_def : s.gcd f = (s.1.map f).gcd :=
   rfl
 #align finset.gcd_def Finset.gcd_def
 
-/- warning: finset.gcd_empty -> Finset.gcd_empty is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CancelCommMonoidWithZero.{u1} α] [_inst_2 : NormalizedGCDMonoid.{u1} α _inst_1] {f : β -> α}, Eq.{succ u1} α (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 (EmptyCollection.emptyCollection.{u2} (Finset.{u2} β) (Finset.hasEmptyc.{u2} β)) f) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))))))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {f : β -> α}, Eq.{succ u2} α (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 (EmptyCollection.emptyCollection.{u1} (Finset.{u1} β) (Finset.instEmptyCollectionFinset.{u1} β)) f) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (CommMonoidWithZero.toZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))
-Case conversion may be inaccurate. Consider using '#align finset.gcd_empty Finset.gcd_emptyₓ'. -/
 @[simp]
 theorem gcd_empty : (∅ : Finset β).gcd f = 0 :=
   fold_empty
 #align finset.gcd_empty Finset.gcd_empty
 
-/- warning: finset.dvd_gcd_iff -> Finset.dvd_gcd_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CancelCommMonoidWithZero.{u1} α] [_inst_2 : NormalizedGCDMonoid.{u1} α _inst_1] {s : Finset.{u2} β} {f : β -> α} {a : α}, Iff (Dvd.Dvd.{u1} α (semigroupDvd.{u1} α (SemigroupWithZero.toSemigroup.{u1} α (MonoidWithZero.toSemigroupWithZero.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))))) a (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 s f)) (forall (b : β), (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) b s) -> (Dvd.Dvd.{u1} α (semigroupDvd.{u1} α (SemigroupWithZero.toSemigroup.{u1} α (MonoidWithZero.toSemigroupWithZero.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))))) a (f b)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {s : Finset.{u1} β} {f : β -> α} {a : α}, Iff (Dvd.dvd.{u2} α (semigroupDvd.{u2} α (SemigroupWithZero.toSemigroup.{u2} α (MonoidWithZero.toSemigroupWithZero.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) a (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s f)) (forall (b : β), (Membership.mem.{u1, u1} β (Finset.{u1} β) (Finset.instMembershipFinset.{u1} β) b s) -> (Dvd.dvd.{u2} α (semigroupDvd.{u2} α (SemigroupWithZero.toSemigroup.{u2} α (MonoidWithZero.toSemigroupWithZero.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) a (f b)))
-Case conversion may be inaccurate. Consider using '#align finset.dvd_gcd_iff Finset.dvd_gcd_iffₓ'. -/
 theorem dvd_gcd_iff {a : α} : a ∣ s.gcd f ↔ ∀ b ∈ s, a ∣ f b :=
   by
   apply Iff.trans Multiset.dvd_gcd
@@ -269,23 +203,11 @@ theorem gcd_insert [DecidableEq β] {b : β} :
 #align finset.gcd_insert Finset.gcd_insert
 -/
 
-/- warning: finset.gcd_singleton -> Finset.gcd_singleton is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CancelCommMonoidWithZero.{u1} α] [_inst_2 : NormalizedGCDMonoid.{u1} α _inst_1] {f : β -> α} {b : β}, Eq.{succ u1} α (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 (Singleton.singleton.{u2, u2} β (Finset.{u2} β) (Finset.hasSingleton.{u2} β) b) f) (coeFn.{succ u1, succ u1} (MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (fun (_x : MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) => α -> α) (MonoidWithZeroHom.hasCoeToFun.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (normalize.{u1} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u1} α _inst_1 _inst_2)) (f b))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {f : β -> α} {b : β}, Eq.{succ u2} α (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 (Singleton.singleton.{u1, u1} β (Finset.{u1} β) (Finset.instSingletonFinset.{u1} β) b) f) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => α) _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))))) (normalize.{u2} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u2} α _inst_1 _inst_2)) (f b))
-Case conversion may be inaccurate. Consider using '#align finset.gcd_singleton Finset.gcd_singletonₓ'. -/
 @[simp]
 theorem gcd_singleton {b : β} : ({b} : Finset β).gcd f = normalize (f b) :=
   Multiset.gcd_singleton
 #align finset.gcd_singleton Finset.gcd_singleton
 
-/- warning: finset.normalize_gcd -> Finset.normalize_gcd is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CancelCommMonoidWithZero.{u1} α] [_inst_2 : NormalizedGCDMonoid.{u1} α _inst_1] {s : Finset.{u2} β} {f : β -> α}, Eq.{succ u1} α (coeFn.{succ u1, succ u1} (MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (fun (_x : MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) => α -> α) (MonoidWithZeroHom.hasCoeToFun.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (normalize.{u1} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u1} α _inst_1 _inst_2)) (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 s f)) (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 s f)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {s : Finset.{u1} β} {f : β -> α}, Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => α) (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s f)) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => α) _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))))) (normalize.{u2} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u2} α _inst_1 _inst_2)) (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s f)) (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s f)
-Case conversion may be inaccurate. Consider using '#align finset.normalize_gcd Finset.normalize_gcdₓ'. -/
 @[simp]
 theorem normalize_gcd : normalize (s.gcd f) = s.gcd f := by simp [gcd_def]
 #align finset.normalize_gcd Finset.normalize_gcd
@@ -315,32 +237,14 @@ theorem gcd_mono (h : s₁ ⊆ s₂) : s₂.gcd f ∣ s₁.gcd f :=
 #align finset.gcd_mono Finset.gcd_mono
 -/
 
-/- warning: finset.gcd_image -> Finset.gcd_image is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : CancelCommMonoidWithZero.{u1} α] [_inst_2 : NormalizedGCDMonoid.{u1} α _inst_1] {f : β -> α} [_inst_3 : DecidableEq.{succ u2} β] {g : γ -> β} (s : Finset.{u3} γ), Eq.{succ u1} α (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 (Finset.image.{u3, u2} γ β (fun (a : β) (b : β) => _inst_3 a b) g s) f) (Finset.gcd.{u1, u3} α γ _inst_1 _inst_2 s (Function.comp.{succ u3, succ u2, succ u1} γ β α f g))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} [_inst_1 : CancelCommMonoidWithZero.{u1} α] [_inst_2 : NormalizedGCDMonoid.{u1} α _inst_1] {f : β -> α} [_inst_3 : DecidableEq.{succ u3} β] {g : γ -> β} (s : Finset.{u2} γ), Eq.{succ u1} α (Finset.gcd.{u1, u3} α β _inst_1 _inst_2 (Finset.image.{u2, u3} γ β (fun (a : β) (b : β) => _inst_3 a b) g s) f) (Finset.gcd.{u1, u2} α γ _inst_1 _inst_2 s (Function.comp.{succ u2, succ u3, succ u1} γ β α f g))
-Case conversion may be inaccurate. Consider using '#align finset.gcd_image Finset.gcd_imageₓ'. -/
 theorem gcd_image [DecidableEq β] {g : γ → β} (s : Finset γ) : (s.image g).gcd f = s.gcd (f ∘ g) :=
   by classical induction' s using Finset.induction with c s hc ih <;> simp [*]
 #align finset.gcd_image Finset.gcd_image
 
-/- warning: finset.gcd_eq_gcd_image -> Finset.gcd_eq_gcd_image is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CancelCommMonoidWithZero.{u1} α] [_inst_2 : NormalizedGCDMonoid.{u1} α _inst_1] {s : Finset.{u2} β} {f : β -> α} [_inst_3 : DecidableEq.{succ u1} α], Eq.{succ u1} α (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 s f) (Finset.gcd.{u1, u1} α α _inst_1 _inst_2 (Finset.image.{u2, u1} β α (fun (a : α) (b : α) => _inst_3 a b) f s) (id.{succ u1} α))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {s : Finset.{u1} β} {f : β -> α} [_inst_3 : DecidableEq.{succ u2} α], Eq.{succ u2} α (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s f) (Finset.gcd.{u2, u2} α α _inst_1 _inst_2 (Finset.image.{u1, u2} β α (fun (a : α) (b : α) => _inst_3 a b) f s) (id.{succ u2} α))
-Case conversion may be inaccurate. Consider using '#align finset.gcd_eq_gcd_image Finset.gcd_eq_gcd_imageₓ'. -/
 theorem gcd_eq_gcd_image [DecidableEq α] : s.gcd f = (s.image f).gcd id :=
   Eq.symm <| gcd_image _
 #align finset.gcd_eq_gcd_image Finset.gcd_eq_gcd_image
 
-/- warning: finset.gcd_eq_zero_iff -> Finset.gcd_eq_zero_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CancelCommMonoidWithZero.{u1} α] [_inst_2 : NormalizedGCDMonoid.{u1} α _inst_1] {s : Finset.{u2} β} {f : β -> α}, Iff (Eq.{succ u1} α (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 s f) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))))))))) (forall (x : β), (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s) -> (Eq.{succ u1} α (f x) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))))))))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {s : Finset.{u1} β} {f : β -> α}, Iff (Eq.{succ u2} α (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s f) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (CommMonoidWithZero.toZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (forall (x : β), (Membership.mem.{u1, u1} β (Finset.{u1} β) (Finset.instMembershipFinset.{u1} β) x s) -> (Eq.{succ u2} α (f x) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (CommMonoidWithZero.toZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))))
-Case conversion may be inaccurate. Consider using '#align finset.gcd_eq_zero_iff Finset.gcd_eq_zero_iffₓ'. -/
 theorem gcd_eq_zero_iff : s.gcd f = 0 ↔ ∀ x : β, x ∈ s → f x = 0 :=
   by
   rw [gcd_def, Multiset.gcd_eq_zero_iff]
@@ -356,12 +260,6 @@ theorem gcd_eq_zero_iff : s.gcd f = 0 ↔ ∀ x : β, x ∈ s → f x = 0 :=
     apply h b (mem_def.1 bs)
 #align finset.gcd_eq_zero_iff Finset.gcd_eq_zero_iff
 
-/- warning: finset.gcd_eq_gcd_filter_ne_zero -> Finset.gcd_eq_gcd_filter_ne_zero is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CancelCommMonoidWithZero.{u1} α] [_inst_2 : NormalizedGCDMonoid.{u1} α _inst_1] {s : Finset.{u2} β} {f : β -> α} [_inst_3 : DecidablePred.{succ u2} β (fun (x : β) => Eq.{succ u1} α (f x) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))))))))], Eq.{succ u1} α (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 s f) (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 (Finset.filter.{u2} β (fun (x : β) => Ne.{succ u1} α (f x) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))))))))) (fun (a : β) => Not.decidable (Eq.{succ u1} α (f a) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))))))))) (_inst_3 a)) s) f)
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CancelCommMonoidWithZero.{u1} α] [_inst_2 : NormalizedGCDMonoid.{u1} α _inst_1] {s : Finset.{u2} β} {f : β -> α} [_inst_3 : DecidablePred.{succ u2} β (fun (x : β) => Eq.{succ u1} α (f x) (OfNat.ofNat.{u1} α 0 (Zero.toOfNat0.{u1} α (CommMonoidWithZero.toZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))))], Eq.{succ u1} α (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 s f) (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 (Finset.filter.{u2} β (fun (x : β) => Ne.{succ u1} α (f x) (OfNat.ofNat.{u1} α 0 (Zero.toOfNat0.{u1} α (CommMonoidWithZero.toZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))))) (fun (a : β) => instDecidableNot (Eq.{succ u1} α (f a) (OfNat.ofNat.{u1} α 0 (Zero.toOfNat0.{u1} α (CommMonoidWithZero.toZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))))) (_inst_3 a)) s) f)
-Case conversion may be inaccurate. Consider using '#align finset.gcd_eq_gcd_filter_ne_zero Finset.gcd_eq_gcd_filter_ne_zeroₓ'. -/
 theorem gcd_eq_gcd_filter_ne_zero [DecidablePred fun x : β => f x = 0] :
     s.gcd f = (s.filterₓ fun x => f x ≠ 0).gcd f := by
   classical
@@ -377,12 +275,6 @@ theorem gcd_eq_gcd_filter_ne_zero [DecidablePred fun x : β => f x = 0] :
     simp [gcd_zero_left, normalize_gcd]
 #align finset.gcd_eq_gcd_filter_ne_zero Finset.gcd_eq_gcd_filter_ne_zero
 
-/- warning: finset.gcd_mul_left -> Finset.gcd_mul_left is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CancelCommMonoidWithZero.{u1} α] [_inst_2 : NormalizedGCDMonoid.{u1} α _inst_1] {s : Finset.{u2} β} {f : β -> α} {a : α}, Eq.{succ u1} α (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 s (fun (x : β) => HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulZeroClass.toHasMul.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))))) a (f x))) (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulZeroClass.toHasMul.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))))) (coeFn.{succ u1, succ u1} (MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (fun (_x : MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) => α -> α) (MonoidWithZeroHom.hasCoeToFun.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (normalize.{u1} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u1} α _inst_1 _inst_2)) a) (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 s f))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {s : Finset.{u1} β} {f : β -> α} {a : α}, Eq.{succ u2} α (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s (fun (x : β) => HMul.hMul.{u2, u2, u2} α α α (instHMul.{u2} α (MulZeroClass.toMul.{u2} α (MulZeroOneClass.toMulZeroClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))))) a (f x))) (HMul.hMul.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => α) a) α ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => α) a) (instHMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => α) a) (MulZeroClass.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => α) a) (MulZeroOneClass.toMulZeroClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => α) a) (MonoidWithZero.toMulZeroOneClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => α) a) (CommMonoidWithZero.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => α) a) (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => α) a) _inst_1)))))) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => α) _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))))) (normalize.{u2} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u2} α _inst_1 _inst_2)) a) (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s f))
-Case conversion may be inaccurate. Consider using '#align finset.gcd_mul_left Finset.gcd_mul_leftₓ'. -/
 theorem gcd_mul_left {a : α} : (s.gcd fun x => a * f x) = normalize a * s.gcd f := by
   classical
     apply s.induction_on
@@ -392,12 +284,6 @@ theorem gcd_mul_left {a : α} : (s.gcd fun x => a * f x) = normalize a * s.gcd f
     apply ((normalize_associated a).mulRight _).gcd_eq_right
 #align finset.gcd_mul_left Finset.gcd_mul_left
 
-/- warning: finset.gcd_mul_right -> Finset.gcd_mul_right is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CancelCommMonoidWithZero.{u1} α] [_inst_2 : NormalizedGCDMonoid.{u1} α _inst_1] {s : Finset.{u2} β} {f : β -> α} {a : α}, Eq.{succ u1} α (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 s (fun (x : β) => HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulZeroClass.toHasMul.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))))) (f x) a)) (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulZeroClass.toHasMul.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))))) (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 s f) (coeFn.{succ u1, succ u1} (MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (fun (_x : MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) => α -> α) (MonoidWithZeroHom.hasCoeToFun.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (normalize.{u1} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u1} α _inst_1 _inst_2)) a))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {s : Finset.{u1} β} {f : β -> α} {a : α}, Eq.{succ u2} α (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s (fun (x : β) => HMul.hMul.{u2, u2, u2} α α α (instHMul.{u2} α (MulZeroClass.toMul.{u2} α (MulZeroOneClass.toMulZeroClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))))) (f x) a)) (HMul.hMul.{u2, u2, u2} α ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => α) a) α (instHMul.{u2} α (MulZeroClass.toMul.{u2} α (MulZeroOneClass.toMulZeroClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))))) (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s f) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => α) _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))))) (normalize.{u2} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u2} α _inst_1 _inst_2)) a))
-Case conversion may be inaccurate. Consider using '#align finset.gcd_mul_right Finset.gcd_mul_rightₓ'. -/
 theorem gcd_mul_right {a : α} : (s.gcd fun x => f x * a) = s.gcd f * normalize a := by
   classical
     apply s.induction_on
@@ -407,12 +293,6 @@ theorem gcd_mul_right {a : α} : (s.gcd fun x => f x * a) = s.gcd f * normalize
     apply ((normalize_associated a).mulLeft _).gcd_eq_right
 #align finset.gcd_mul_right Finset.gcd_mul_right
 
-/- warning: finset.extract_gcd' -> Finset.extract_gcd' is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CancelCommMonoidWithZero.{u1} α] [_inst_2 : NormalizedGCDMonoid.{u1} α _inst_1] {s : Finset.{u2} β} (f : β -> α) (g : β -> α), (Exists.{succ u2} β (fun (x : β) => And (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s) (Ne.{succ u1} α (f x) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))))))))))) -> (forall (b : β), (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) b s) -> (Eq.{succ u1} α (f b) (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulZeroClass.toHasMul.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))))) (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 s f) (g b)))) -> (Eq.{succ u1} α (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 s g) (OfNat.ofNat.{u1} α 1 (OfNat.mk.{u1} α 1 (One.one.{u1} α (MulOneClass.toHasOne.{u1} α (MulZeroOneClass.toMulOneClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))))))))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CancelCommMonoidWithZero.{u1} α] [_inst_2 : NormalizedGCDMonoid.{u1} α _inst_1] {s : Finset.{u2} β} (f : β -> α) (g : β -> α), (Exists.{succ u2} β (fun (x : β) => And (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) x s) (Ne.{succ u1} α (f x) (OfNat.ofNat.{u1} α 0 (Zero.toOfNat0.{u1} α (CommMonoidWithZero.toZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))))))) -> (forall (b : β), (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) b s) -> (Eq.{succ u1} α (f b) (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulZeroClass.toMul.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))))) (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 s f) (g b)))) -> (Eq.{succ u1} α (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 s g) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (Monoid.toOne.{u1} α (MonoidWithZero.toMonoid.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))))))
-Case conversion may be inaccurate. Consider using '#align finset.extract_gcd' Finset.extract_gcd'ₓ'. -/
 theorem extract_gcd' (f g : β → α) (hs : ∃ x, x ∈ s ∧ f x ≠ 0) (hg : ∀ b ∈ s, f b = s.gcd f * g b) :
     s.gcd g = 1 :=
   ((@mul_right_eq_self₀ _ _ (s.gcd f) _).1 <| by
@@ -420,12 +300,6 @@ theorem extract_gcd' (f g : β → α) (hs : ∃ x, x ∈ s ∧ f x ≠ 0) (hg :
     by contrapose! hs; exact gcd_eq_zero_iff.1 hs
 #align finset.extract_gcd' Finset.extract_gcd'
 
-/- warning: finset.extract_gcd -> Finset.extract_gcd is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CancelCommMonoidWithZero.{u1} α] [_inst_2 : NormalizedGCDMonoid.{u1} α _inst_1] {s : Finset.{u2} β} (f : β -> α), (Finset.Nonempty.{u2} β s) -> (Exists.{max (succ u2) (succ u1)} (β -> α) (fun (g : β -> α) => And (forall (b : β), (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) b s) -> (Eq.{succ u1} α (f b) (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulZeroClass.toHasMul.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))))) (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 s f) (g b)))) (Eq.{succ u1} α (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 s g) (OfNat.ofNat.{u1} α 1 (OfNat.mk.{u1} α 1 (One.one.{u1} α (MulOneClass.toHasOne.{u1} α (MulZeroOneClass.toMulOneClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))))))))))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CancelCommMonoidWithZero.{u1} α] [_inst_2 : NormalizedGCDMonoid.{u1} α _inst_1] {s : Finset.{u2} β} (f : β -> α), (Finset.Nonempty.{u2} β s) -> (Exists.{max (succ u1) (succ u2)} (β -> α) (fun (g : β -> α) => And (forall (b : β), (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) b s) -> (Eq.{succ u1} α (f b) (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulZeroClass.toMul.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))))) (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 s f) (g b)))) (Eq.{succ u1} α (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 s g) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (Monoid.toOne.{u1} α (MonoidWithZero.toMonoid.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))))))))
-Case conversion may be inaccurate. Consider using '#align finset.extract_gcd Finset.extract_gcdₓ'. -/
 theorem extract_gcd (f : β → α) (hs : s.Nonempty) :
     ∃ g : β → α, (∀ b ∈ s, f b = s.gcd f * g b) ∧ s.gcd g = 1 := by
   classical
@@ -448,12 +322,6 @@ section IsDomain
 
 variable [CommRing α] [IsDomain α] [NormalizedGCDMonoid α]
 
-/- warning: finset.gcd_eq_of_dvd_sub -> Finset.gcd_eq_of_dvd_sub is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CommRing.{u1} α] [_inst_2 : IsDomain.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_1))] [_inst_3 : NormalizedGCDMonoid.{u1} α (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2)] {s : Finset.{u2} β} {f : β -> α} {g : β -> α} {a : α}, (forall (x : β), (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s) -> (Dvd.Dvd.{u1} α (semigroupDvd.{u1} α (SemigroupWithZero.toSemigroup.{u1} α (NonUnitalSemiring.toSemigroupWithZero.{u1} α (NonUnitalRing.toNonUnitalSemiring.{u1} α (NonUnitalCommRing.toNonUnitalRing.{u1} α (CommRing.toNonUnitalCommRing.{u1} α _inst_1)))))) a (HSub.hSub.{u1, u1, u1} α α α (instHSub.{u1} α (SubNegMonoid.toHasSub.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (CommRing.toRing.{u1} α _inst_1))))))) (f x) (g x)))) -> (Eq.{succ u1} α (GCDMonoid.gcd.{u1} α (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) (NormalizedGCDMonoid.toGcdMonoid.{u1} α (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) _inst_3) a (Finset.gcd.{u1, u2} α β (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) _inst_3 s f)) (GCDMonoid.gcd.{u1} α (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) (NormalizedGCDMonoid.toGcdMonoid.{u1} α (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) _inst_3) a (Finset.gcd.{u1, u2} α β (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) _inst_3 s g)))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CommRing.{u1} α] [_inst_2 : IsDomain.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1))] [_inst_3 : NormalizedGCDMonoid.{u1} α (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2)] {s : Finset.{u2} β} {f : β -> α} {g : β -> α} {a : α}, (forall (x : β), (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) x s) -> (Dvd.dvd.{u1} α (semigroupDvd.{u1} α (SemigroupWithZero.toSemigroup.{u1} α (NonUnitalSemiring.toSemigroupWithZero.{u1} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} α (CommRing.toNonUnitalCommRing.{u1} α _inst_1)))))) a (HSub.hSub.{u1, u1, u1} α α α (instHSub.{u1} α (Ring.toSub.{u1} α (CommRing.toRing.{u1} α _inst_1))) (f x) (g x)))) -> (Eq.{succ u1} α (GCDMonoid.gcd.{u1} α (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) (NormalizedGCDMonoid.toGCDMonoid.{u1} α (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) _inst_3) a (Finset.gcd.{u1, u2} α β (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) _inst_3 s f)) (GCDMonoid.gcd.{u1} α (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) (NormalizedGCDMonoid.toGCDMonoid.{u1} α (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) _inst_3) a (Finset.gcd.{u1, u2} α β (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) _inst_3 s g)))
-Case conversion may be inaccurate. Consider using '#align finset.gcd_eq_of_dvd_sub Finset.gcd_eq_of_dvd_subₓ'. -/
 theorem gcd_eq_of_dvd_sub {s : Finset β} {f g : β → α} {a : α}
     (h : ∀ x : β, x ∈ s → a ∣ f x - g x) : GCDMonoid.gcd a (s.gcd f) = GCDMonoid.gcd a (s.gcd g) :=
   by
Diff
@@ -147,9 +147,7 @@ theorem lcm_union [DecidableEq β] : (s₁ ∪ s₂).lcm f = GCDMonoid.lcm (s₁
 
 #print Finset.lcm_congr /-
 theorem lcm_congr {f g : β → α} (hs : s₁ = s₂) (hfg : ∀ a ∈ s₂, f a = g a) : s₁.lcm f = s₂.lcm g :=
-  by
-  subst hs
-  exact Finset.fold_congr hfg
+  by subst hs; exact Finset.fold_congr hfg
 #align finset.lcm_congr Finset.lcm_congr
 -/
 
@@ -301,9 +299,7 @@ theorem gcd_union [DecidableEq β] : (s₁ ∪ s₂).gcd f = GCDMonoid.gcd (s₁
 
 #print Finset.gcd_congr /-
 theorem gcd_congr {f g : β → α} (hs : s₁ = s₂) (hfg : ∀ a ∈ s₂, f a = g a) : s₁.gcd f = s₂.gcd g :=
-  by
-  subst hs
-  exact Finset.fold_congr hfg
+  by subst hs; exact Finset.fold_congr hfg
 #align finset.gcd_congr Finset.gcd_congr
 -/
 
@@ -374,8 +370,7 @@ theorem gcd_eq_gcd_filter_ne_zero [DecidablePred fun x : β => f x = 0] :
     rw [gcd_union]
     trans GCDMonoid.gcd (0 : α) _
     · refine' congr (congr rfl _) rfl
-      apply s.induction_on
-      · simp
+      apply s.induction_on; · simp
       intro a s has h
       rw [filter_insert]
       split_ifs with h1 <;> simp [h, h1]
@@ -422,9 +417,7 @@ theorem extract_gcd' (f g : β → α) (hs : ∃ x, x ∈ s ∧ f x ≠ 0) (hg :
     s.gcd g = 1 :=
   ((@mul_right_eq_self₀ _ _ (s.gcd f) _).1 <| by
         conv_lhs => rw [← normalize_gcd, ← gcd_mul_left, ← gcd_congr rfl hg]).resolve_right <|
-    by
-    contrapose! hs
-    exact gcd_eq_zero_iff.1 hs
+    by contrapose! hs; exact gcd_eq_zero_iff.1 hs
 #align finset.extract_gcd' Finset.extract_gcd'
 
 /- warning: finset.extract_gcd -> Finset.extract_gcd is a dubious translation:
@@ -440,8 +433,7 @@ theorem extract_gcd (f : β → α) (hs : s.Nonempty) :
     · refine' ⟨fun b => 1, fun b hb => by rw [h b hb, gcd_eq_zero_iff.2 h, mul_one], _⟩
       rw [gcd_eq_gcd_image, image_const hs, gcd_singleton, id, normalize_one]
     · choose g' hg using @gcd_dvd _ _ _ _ s f
-      have := fun b hb => _
-      push_neg  at h
+      have := fun b hb => _; push_neg  at h
       refine' ⟨fun b => if hb : b ∈ s then g' hb else 0, this, extract_gcd' f _ h this⟩
       rw [dif_pos hb, hg hb]
 #align finset.extract_gcd Finset.extract_gcd
Diff
@@ -121,7 +121,7 @@ theorem lcm_insert [DecidableEq β] {b : β} :
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CancelCommMonoidWithZero.{u1} α] [_inst_2 : NormalizedGCDMonoid.{u1} α _inst_1] {f : β -> α} {b : β}, Eq.{succ u1} α (Finset.lcm.{u1, u2} α β _inst_1 _inst_2 (Singleton.singleton.{u2, u2} β (Finset.{u2} β) (Finset.hasSingleton.{u2} β) b) f) (coeFn.{succ u1, succ u1} (MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (fun (_x : MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) => α -> α) (MonoidWithZeroHom.hasCoeToFun.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (normalize.{u1} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u1} α _inst_1 _inst_2)) (f b))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {f : β -> α} {b : β}, Eq.{succ u2} α (Finset.lcm.{u2, u1} α β _inst_1 _inst_2 (Singleton.singleton.{u1, u1} β (Finset.{u1} β) (Finset.instSingletonFinset.{u1} β) b) f) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => α) _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))))) (normalize.{u2} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u2} α _inst_1 _inst_2)) (f b))
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {f : β -> α} {b : β}, Eq.{succ u2} α (Finset.lcm.{u2, u1} α β _inst_1 _inst_2 (Singleton.singleton.{u1, u1} β (Finset.{u1} β) (Finset.instSingletonFinset.{u1} β) b) f) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => α) _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))))) (normalize.{u2} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u2} α _inst_1 _inst_2)) (f b))
 Case conversion may be inaccurate. Consider using '#align finset.lcm_singleton Finset.lcm_singletonₓ'. -/
 @[simp]
 theorem lcm_singleton {b : β} : ({b} : Finset β).lcm f = normalize (f b) :=
@@ -132,7 +132,7 @@ theorem lcm_singleton {b : β} : ({b} : Finset β).lcm f = normalize (f b) :=
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CancelCommMonoidWithZero.{u1} α] [_inst_2 : NormalizedGCDMonoid.{u1} α _inst_1] {s : Finset.{u2} β} {f : β -> α}, Eq.{succ u1} α (coeFn.{succ u1, succ u1} (MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (fun (_x : MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) => α -> α) (MonoidWithZeroHom.hasCoeToFun.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (normalize.{u1} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u1} α _inst_1 _inst_2)) (Finset.lcm.{u1, u2} α β _inst_1 _inst_2 s f)) (Finset.lcm.{u1, u2} α β _inst_1 _inst_2 s f)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {s : Finset.{u1} β} {f : β -> α}, Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => α) (Finset.lcm.{u2, u1} α β _inst_1 _inst_2 s f)) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => α) _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))))) (normalize.{u2} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u2} α _inst_1 _inst_2)) (Finset.lcm.{u2, u1} α β _inst_1 _inst_2 s f)) (Finset.lcm.{u2, u1} α β _inst_1 _inst_2 s f)
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {s : Finset.{u1} β} {f : β -> α}, Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => α) (Finset.lcm.{u2, u1} α β _inst_1 _inst_2 s f)) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => α) _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))))) (normalize.{u2} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u2} α _inst_1 _inst_2)) (Finset.lcm.{u2, u1} α β _inst_1 _inst_2 s f)) (Finset.lcm.{u2, u1} α β _inst_1 _inst_2 s f)
 Case conversion may be inaccurate. Consider using '#align finset.normalize_lcm Finset.normalize_lcmₓ'. -/
 @[simp]
 theorem normalize_lcm : normalize (s.lcm f) = s.lcm f := by simp [lcm_def]
@@ -275,7 +275,7 @@ theorem gcd_insert [DecidableEq β] {b : β} :
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CancelCommMonoidWithZero.{u1} α] [_inst_2 : NormalizedGCDMonoid.{u1} α _inst_1] {f : β -> α} {b : β}, Eq.{succ u1} α (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 (Singleton.singleton.{u2, u2} β (Finset.{u2} β) (Finset.hasSingleton.{u2} β) b) f) (coeFn.{succ u1, succ u1} (MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (fun (_x : MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) => α -> α) (MonoidWithZeroHom.hasCoeToFun.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (normalize.{u1} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u1} α _inst_1 _inst_2)) (f b))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {f : β -> α} {b : β}, Eq.{succ u2} α (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 (Singleton.singleton.{u1, u1} β (Finset.{u1} β) (Finset.instSingletonFinset.{u1} β) b) f) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => α) _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))))) (normalize.{u2} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u2} α _inst_1 _inst_2)) (f b))
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {f : β -> α} {b : β}, Eq.{succ u2} α (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 (Singleton.singleton.{u1, u1} β (Finset.{u1} β) (Finset.instSingletonFinset.{u1} β) b) f) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => α) _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))))) (normalize.{u2} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u2} α _inst_1 _inst_2)) (f b))
 Case conversion may be inaccurate. Consider using '#align finset.gcd_singleton Finset.gcd_singletonₓ'. -/
 @[simp]
 theorem gcd_singleton {b : β} : ({b} : Finset β).gcd f = normalize (f b) :=
@@ -286,7 +286,7 @@ theorem gcd_singleton {b : β} : ({b} : Finset β).gcd f = normalize (f b) :=
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CancelCommMonoidWithZero.{u1} α] [_inst_2 : NormalizedGCDMonoid.{u1} α _inst_1] {s : Finset.{u2} β} {f : β -> α}, Eq.{succ u1} α (coeFn.{succ u1, succ u1} (MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (fun (_x : MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) => α -> α) (MonoidWithZeroHom.hasCoeToFun.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (normalize.{u1} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u1} α _inst_1 _inst_2)) (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 s f)) (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 s f)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {s : Finset.{u1} β} {f : β -> α}, Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => α) (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s f)) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => α) _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))))) (normalize.{u2} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u2} α _inst_1 _inst_2)) (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s f)) (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s f)
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {s : Finset.{u1} β} {f : β -> α}, Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => α) (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s f)) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => α) _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))))) (normalize.{u2} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u2} α _inst_1 _inst_2)) (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s f)) (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s f)
 Case conversion may be inaccurate. Consider using '#align finset.normalize_gcd Finset.normalize_gcdₓ'. -/
 @[simp]
 theorem normalize_gcd : normalize (s.gcd f) = s.gcd f := by simp [gcd_def]
@@ -386,7 +386,7 @@ theorem gcd_eq_gcd_filter_ne_zero [DecidablePred fun x : β => f x = 0] :
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CancelCommMonoidWithZero.{u1} α] [_inst_2 : NormalizedGCDMonoid.{u1} α _inst_1] {s : Finset.{u2} β} {f : β -> α} {a : α}, Eq.{succ u1} α (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 s (fun (x : β) => HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulZeroClass.toHasMul.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))))) a (f x))) (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulZeroClass.toHasMul.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))))) (coeFn.{succ u1, succ u1} (MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (fun (_x : MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) => α -> α) (MonoidWithZeroHom.hasCoeToFun.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (normalize.{u1} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u1} α _inst_1 _inst_2)) a) (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 s f))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {s : Finset.{u1} β} {f : β -> α} {a : α}, Eq.{succ u2} α (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s (fun (x : β) => HMul.hMul.{u2, u2, u2} α α α (instHMul.{u2} α (MulZeroClass.toMul.{u2} α (MulZeroOneClass.toMulZeroClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))))) a (f x))) (HMul.hMul.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => α) a) α ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => α) a) (instHMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => α) a) (MulZeroClass.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => α) a) (MulZeroOneClass.toMulZeroClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => α) a) (MonoidWithZero.toMulZeroOneClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => α) a) (CommMonoidWithZero.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => α) a) (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => α) a) _inst_1)))))) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => α) _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))))) (normalize.{u2} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u2} α _inst_1 _inst_2)) a) (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s f))
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {s : Finset.{u1} β} {f : β -> α} {a : α}, Eq.{succ u2} α (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s (fun (x : β) => HMul.hMul.{u2, u2, u2} α α α (instHMul.{u2} α (MulZeroClass.toMul.{u2} α (MulZeroOneClass.toMulZeroClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))))) a (f x))) (HMul.hMul.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => α) a) α ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => α) a) (instHMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => α) a) (MulZeroClass.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => α) a) (MulZeroOneClass.toMulZeroClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => α) a) (MonoidWithZero.toMulZeroOneClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => α) a) (CommMonoidWithZero.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => α) a) (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => α) a) _inst_1)))))) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => α) _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))))) (normalize.{u2} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u2} α _inst_1 _inst_2)) a) (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s f))
 Case conversion may be inaccurate. Consider using '#align finset.gcd_mul_left Finset.gcd_mul_leftₓ'. -/
 theorem gcd_mul_left {a : α} : (s.gcd fun x => a * f x) = normalize a * s.gcd f := by
   classical
@@ -401,7 +401,7 @@ theorem gcd_mul_left {a : α} : (s.gcd fun x => a * f x) = normalize a * s.gcd f
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CancelCommMonoidWithZero.{u1} α] [_inst_2 : NormalizedGCDMonoid.{u1} α _inst_1] {s : Finset.{u2} β} {f : β -> α} {a : α}, Eq.{succ u1} α (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 s (fun (x : β) => HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulZeroClass.toHasMul.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))))) (f x) a)) (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulZeroClass.toHasMul.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))))) (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 s f) (coeFn.{succ u1, succ u1} (MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (fun (_x : MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) => α -> α) (MonoidWithZeroHom.hasCoeToFun.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (normalize.{u1} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u1} α _inst_1 _inst_2)) a))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {s : Finset.{u1} β} {f : β -> α} {a : α}, Eq.{succ u2} α (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s (fun (x : β) => HMul.hMul.{u2, u2, u2} α α α (instHMul.{u2} α (MulZeroClass.toMul.{u2} α (MulZeroOneClass.toMulZeroClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))))) (f x) a)) (HMul.hMul.{u2, u2, u2} α ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => α) a) α (instHMul.{u2} α (MulZeroClass.toMul.{u2} α (MulZeroOneClass.toMulZeroClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))))) (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s f) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => α) _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))))) (normalize.{u2} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u2} α _inst_1 _inst_2)) a))
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {s : Finset.{u1} β} {f : β -> α} {a : α}, Eq.{succ u2} α (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s (fun (x : β) => HMul.hMul.{u2, u2, u2} α α α (instHMul.{u2} α (MulZeroClass.toMul.{u2} α (MulZeroOneClass.toMulZeroClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))))) (f x) a)) (HMul.hMul.{u2, u2, u2} α ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => α) a) α (instHMul.{u2} α (MulZeroClass.toMul.{u2} α (MulZeroOneClass.toMulZeroClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))))) (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s f) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => α) _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))))) (normalize.{u2} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u2} α _inst_1 _inst_2)) a))
 Case conversion may be inaccurate. Consider using '#align finset.gcd_mul_right Finset.gcd_mul_rightₓ'. -/
 theorem gcd_mul_right {a : α} : (s.gcd fun x => f x * a) = s.gcd f * normalize a := by
   classical
Diff
@@ -460,7 +460,7 @@ variable [CommRing α] [IsDomain α] [NormalizedGCDMonoid α]
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CommRing.{u1} α] [_inst_2 : IsDomain.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_1))] [_inst_3 : NormalizedGCDMonoid.{u1} α (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2)] {s : Finset.{u2} β} {f : β -> α} {g : β -> α} {a : α}, (forall (x : β), (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s) -> (Dvd.Dvd.{u1} α (semigroupDvd.{u1} α (SemigroupWithZero.toSemigroup.{u1} α (NonUnitalSemiring.toSemigroupWithZero.{u1} α (NonUnitalRing.toNonUnitalSemiring.{u1} α (NonUnitalCommRing.toNonUnitalRing.{u1} α (CommRing.toNonUnitalCommRing.{u1} α _inst_1)))))) a (HSub.hSub.{u1, u1, u1} α α α (instHSub.{u1} α (SubNegMonoid.toHasSub.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (CommRing.toRing.{u1} α _inst_1))))))) (f x) (g x)))) -> (Eq.{succ u1} α (GCDMonoid.gcd.{u1} α (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) (NormalizedGCDMonoid.toGcdMonoid.{u1} α (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) _inst_3) a (Finset.gcd.{u1, u2} α β (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) _inst_3 s f)) (GCDMonoid.gcd.{u1} α (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) (NormalizedGCDMonoid.toGcdMonoid.{u1} α (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) _inst_3) a (Finset.gcd.{u1, u2} α β (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) _inst_3 s g)))
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CommRing.{u1} α] [_inst_2 : IsDomain.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_1))] [_inst_3 : NormalizedGCDMonoid.{u1} α (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2)] {s : Finset.{u2} β} {f : β -> α} {g : β -> α} {a : α}, (forall (x : β), (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) x s) -> (Dvd.dvd.{u1} α (semigroupDvd.{u1} α (SemigroupWithZero.toSemigroup.{u1} α (NonUnitalSemiring.toSemigroupWithZero.{u1} α (NonUnitalRing.toNonUnitalSemiring.{u1} α (NonUnitalCommRing.toNonUnitalRing.{u1} α (CommRing.toNonUnitalCommRing.{u1} α _inst_1)))))) a (HSub.hSub.{u1, u1, u1} α α α (instHSub.{u1} α (Ring.toSub.{u1} α (CommRing.toRing.{u1} α _inst_1))) (f x) (g x)))) -> (Eq.{succ u1} α (GCDMonoid.gcd.{u1} α (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) (NormalizedGCDMonoid.toGCDMonoid.{u1} α (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) _inst_3) a (Finset.gcd.{u1, u2} α β (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) _inst_3 s f)) (GCDMonoid.gcd.{u1} α (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) (NormalizedGCDMonoid.toGCDMonoid.{u1} α (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) _inst_3) a (Finset.gcd.{u1, u2} α β (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) _inst_3 s g)))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CommRing.{u1} α] [_inst_2 : IsDomain.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1))] [_inst_3 : NormalizedGCDMonoid.{u1} α (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2)] {s : Finset.{u2} β} {f : β -> α} {g : β -> α} {a : α}, (forall (x : β), (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) x s) -> (Dvd.dvd.{u1} α (semigroupDvd.{u1} α (SemigroupWithZero.toSemigroup.{u1} α (NonUnitalSemiring.toSemigroupWithZero.{u1} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} α (CommRing.toNonUnitalCommRing.{u1} α _inst_1)))))) a (HSub.hSub.{u1, u1, u1} α α α (instHSub.{u1} α (Ring.toSub.{u1} α (CommRing.toRing.{u1} α _inst_1))) (f x) (g x)))) -> (Eq.{succ u1} α (GCDMonoid.gcd.{u1} α (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) (NormalizedGCDMonoid.toGCDMonoid.{u1} α (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) _inst_3) a (Finset.gcd.{u1, u2} α β (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) _inst_3 s f)) (GCDMonoid.gcd.{u1} α (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) (NormalizedGCDMonoid.toGCDMonoid.{u1} α (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) _inst_3) a (Finset.gcd.{u1, u2} α β (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) _inst_3 s g)))
 Case conversion may be inaccurate. Consider using '#align finset.gcd_eq_of_dvd_sub Finset.gcd_eq_of_dvd_subₓ'. -/
 theorem gcd_eq_of_dvd_sub {s : Finset β} {f g : β → α} {a : α}
     (h : ∀ x : β, x ∈ s → a ∣ f x - g x) : GCDMonoid.gcd a (s.gcd f) = GCDMonoid.gcd a (s.gcd g) :=
Diff
@@ -458,7 +458,7 @@ variable [CommRing α] [IsDomain α] [NormalizedGCDMonoid α]
 
 /- warning: finset.gcd_eq_of_dvd_sub -> Finset.gcd_eq_of_dvd_sub is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CommRing.{u1} α] [_inst_2 : IsDomain.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_1))] [_inst_3 : NormalizedGCDMonoid.{u1} α (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2)] {s : Finset.{u2} β} {f : β -> α} {g : β -> α} {a : α}, (forall (x : β), (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s) -> (Dvd.Dvd.{u1} α (semigroupDvd.{u1} α (SemigroupWithZero.toSemigroup.{u1} α (NonUnitalSemiring.toSemigroupWithZero.{u1} α (NonUnitalRing.toNonUnitalSemiring.{u1} α (NonUnitalCommRing.toNonUnitalRing.{u1} α (CommRing.toNonUnitalCommRing.{u1} α _inst_1)))))) a (HSub.hSub.{u1, u1, u1} α α α (instHSub.{u1} α (SubNegMonoid.toHasSub.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (NonAssocRing.toAddGroupWithOne.{u1} α (Ring.toNonAssocRing.{u1} α (CommRing.toRing.{u1} α _inst_1))))))) (f x) (g x)))) -> (Eq.{succ u1} α (GCDMonoid.gcd.{u1} α (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) (NormalizedGCDMonoid.toGcdMonoid.{u1} α (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) _inst_3) a (Finset.gcd.{u1, u2} α β (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) _inst_3 s f)) (GCDMonoid.gcd.{u1} α (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) (NormalizedGCDMonoid.toGcdMonoid.{u1} α (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) _inst_3) a (Finset.gcd.{u1, u2} α β (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) _inst_3 s g)))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CommRing.{u1} α] [_inst_2 : IsDomain.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_1))] [_inst_3 : NormalizedGCDMonoid.{u1} α (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2)] {s : Finset.{u2} β} {f : β -> α} {g : β -> α} {a : α}, (forall (x : β), (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s) -> (Dvd.Dvd.{u1} α (semigroupDvd.{u1} α (SemigroupWithZero.toSemigroup.{u1} α (NonUnitalSemiring.toSemigroupWithZero.{u1} α (NonUnitalRing.toNonUnitalSemiring.{u1} α (NonUnitalCommRing.toNonUnitalRing.{u1} α (CommRing.toNonUnitalCommRing.{u1} α _inst_1)))))) a (HSub.hSub.{u1, u1, u1} α α α (instHSub.{u1} α (SubNegMonoid.toHasSub.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (CommRing.toRing.{u1} α _inst_1))))))) (f x) (g x)))) -> (Eq.{succ u1} α (GCDMonoid.gcd.{u1} α (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) (NormalizedGCDMonoid.toGcdMonoid.{u1} α (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) _inst_3) a (Finset.gcd.{u1, u2} α β (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) _inst_3 s f)) (GCDMonoid.gcd.{u1} α (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) (NormalizedGCDMonoid.toGcdMonoid.{u1} α (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) _inst_3) a (Finset.gcd.{u1, u2} α β (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) _inst_3 s g)))
 but is expected to have type
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CommRing.{u1} α] [_inst_2 : IsDomain.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_1))] [_inst_3 : NormalizedGCDMonoid.{u1} α (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2)] {s : Finset.{u2} β} {f : β -> α} {g : β -> α} {a : α}, (forall (x : β), (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) x s) -> (Dvd.dvd.{u1} α (semigroupDvd.{u1} α (SemigroupWithZero.toSemigroup.{u1} α (NonUnitalSemiring.toSemigroupWithZero.{u1} α (NonUnitalRing.toNonUnitalSemiring.{u1} α (NonUnitalCommRing.toNonUnitalRing.{u1} α (CommRing.toNonUnitalCommRing.{u1} α _inst_1)))))) a (HSub.hSub.{u1, u1, u1} α α α (instHSub.{u1} α (Ring.toSub.{u1} α (CommRing.toRing.{u1} α _inst_1))) (f x) (g x)))) -> (Eq.{succ u1} α (GCDMonoid.gcd.{u1} α (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) (NormalizedGCDMonoid.toGCDMonoid.{u1} α (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) _inst_3) a (Finset.gcd.{u1, u2} α β (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) _inst_3 s f)) (GCDMonoid.gcd.{u1} α (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) (NormalizedGCDMonoid.toGCDMonoid.{u1} α (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) _inst_3) a (Finset.gcd.{u1, u2} α β (IsDomain.toCancelCommMonoidWithZero.{u1} α (CommRing.toCommSemiring.{u1} α _inst_1) _inst_2) _inst_3 s g)))
 Case conversion may be inaccurate. Consider using '#align finset.gcd_eq_of_dvd_sub Finset.gcd_eq_of_dvd_subₓ'. -/
Diff
@@ -121,7 +121,7 @@ theorem lcm_insert [DecidableEq β] {b : β} :
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CancelCommMonoidWithZero.{u1} α] [_inst_2 : NormalizedGCDMonoid.{u1} α _inst_1] {f : β -> α} {b : β}, Eq.{succ u1} α (Finset.lcm.{u1, u2} α β _inst_1 _inst_2 (Singleton.singleton.{u2, u2} β (Finset.{u2} β) (Finset.hasSingleton.{u2} β) b) f) (coeFn.{succ u1, succ u1} (MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (fun (_x : MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) => α -> α) (MonoidWithZeroHom.hasCoeToFun.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (normalize.{u1} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u1} α _inst_1 _inst_2)) (f b))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {f : β -> α} {b : β}, Eq.{succ u2} α (Finset.lcm.{u2, u1} α β _inst_1 _inst_2 (Singleton.singleton.{u1, u1} β (Finset.{u1} β) (Finset.instSingletonFinset.{u1} β) b) f) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => α) _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))))) (normalize.{u2} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u2} α _inst_1 _inst_2)) (f b))
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {f : β -> α} {b : β}, Eq.{succ u2} α (Finset.lcm.{u2, u1} α β _inst_1 _inst_2 (Singleton.singleton.{u1, u1} β (Finset.{u1} β) (Finset.instSingletonFinset.{u1} β) b) f) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => α) _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))))) (normalize.{u2} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u2} α _inst_1 _inst_2)) (f b))
 Case conversion may be inaccurate. Consider using '#align finset.lcm_singleton Finset.lcm_singletonₓ'. -/
 @[simp]
 theorem lcm_singleton {b : β} : ({b} : Finset β).lcm f = normalize (f b) :=
@@ -132,7 +132,7 @@ theorem lcm_singleton {b : β} : ({b} : Finset β).lcm f = normalize (f b) :=
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CancelCommMonoidWithZero.{u1} α] [_inst_2 : NormalizedGCDMonoid.{u1} α _inst_1] {s : Finset.{u2} β} {f : β -> α}, Eq.{succ u1} α (coeFn.{succ u1, succ u1} (MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (fun (_x : MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) => α -> α) (MonoidWithZeroHom.hasCoeToFun.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (normalize.{u1} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u1} α _inst_1 _inst_2)) (Finset.lcm.{u1, u2} α β _inst_1 _inst_2 s f)) (Finset.lcm.{u1, u2} α β _inst_1 _inst_2 s f)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {s : Finset.{u1} β} {f : β -> α}, Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => α) (Finset.lcm.{u2, u1} α β _inst_1 _inst_2 s f)) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => α) _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))))) (normalize.{u2} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u2} α _inst_1 _inst_2)) (Finset.lcm.{u2, u1} α β _inst_1 _inst_2 s f)) (Finset.lcm.{u2, u1} α β _inst_1 _inst_2 s f)
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {s : Finset.{u1} β} {f : β -> α}, Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => α) (Finset.lcm.{u2, u1} α β _inst_1 _inst_2 s f)) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => α) _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))))) (normalize.{u2} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u2} α _inst_1 _inst_2)) (Finset.lcm.{u2, u1} α β _inst_1 _inst_2 s f)) (Finset.lcm.{u2, u1} α β _inst_1 _inst_2 s f)
 Case conversion may be inaccurate. Consider using '#align finset.normalize_lcm Finset.normalize_lcmₓ'. -/
 @[simp]
 theorem normalize_lcm : normalize (s.lcm f) = s.lcm f := by simp [lcm_def]
@@ -275,7 +275,7 @@ theorem gcd_insert [DecidableEq β] {b : β} :
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CancelCommMonoidWithZero.{u1} α] [_inst_2 : NormalizedGCDMonoid.{u1} α _inst_1] {f : β -> α} {b : β}, Eq.{succ u1} α (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 (Singleton.singleton.{u2, u2} β (Finset.{u2} β) (Finset.hasSingleton.{u2} β) b) f) (coeFn.{succ u1, succ u1} (MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (fun (_x : MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) => α -> α) (MonoidWithZeroHom.hasCoeToFun.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (normalize.{u1} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u1} α _inst_1 _inst_2)) (f b))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {f : β -> α} {b : β}, Eq.{succ u2} α (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 (Singleton.singleton.{u1, u1} β (Finset.{u1} β) (Finset.instSingletonFinset.{u1} β) b) f) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => α) _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))))) (normalize.{u2} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u2} α _inst_1 _inst_2)) (f b))
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {f : β -> α} {b : β}, Eq.{succ u2} α (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 (Singleton.singleton.{u1, u1} β (Finset.{u1} β) (Finset.instSingletonFinset.{u1} β) b) f) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => α) _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))))) (normalize.{u2} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u2} α _inst_1 _inst_2)) (f b))
 Case conversion may be inaccurate. Consider using '#align finset.gcd_singleton Finset.gcd_singletonₓ'. -/
 @[simp]
 theorem gcd_singleton {b : β} : ({b} : Finset β).gcd f = normalize (f b) :=
@@ -286,7 +286,7 @@ theorem gcd_singleton {b : β} : ({b} : Finset β).gcd f = normalize (f b) :=
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CancelCommMonoidWithZero.{u1} α] [_inst_2 : NormalizedGCDMonoid.{u1} α _inst_1] {s : Finset.{u2} β} {f : β -> α}, Eq.{succ u1} α (coeFn.{succ u1, succ u1} (MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (fun (_x : MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) => α -> α) (MonoidWithZeroHom.hasCoeToFun.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (normalize.{u1} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u1} α _inst_1 _inst_2)) (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 s f)) (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 s f)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {s : Finset.{u1} β} {f : β -> α}, Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => α) (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s f)) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => α) _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))))) (normalize.{u2} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u2} α _inst_1 _inst_2)) (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s f)) (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s f)
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {s : Finset.{u1} β} {f : β -> α}, Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => α) (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s f)) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => α) _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))))) (normalize.{u2} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u2} α _inst_1 _inst_2)) (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s f)) (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s f)
 Case conversion may be inaccurate. Consider using '#align finset.normalize_gcd Finset.normalize_gcdₓ'. -/
 @[simp]
 theorem normalize_gcd : normalize (s.gcd f) = s.gcd f := by simp [gcd_def]
@@ -386,7 +386,7 @@ theorem gcd_eq_gcd_filter_ne_zero [DecidablePred fun x : β => f x = 0] :
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CancelCommMonoidWithZero.{u1} α] [_inst_2 : NormalizedGCDMonoid.{u1} α _inst_1] {s : Finset.{u2} β} {f : β -> α} {a : α}, Eq.{succ u1} α (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 s (fun (x : β) => HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulZeroClass.toHasMul.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))))) a (f x))) (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulZeroClass.toHasMul.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))))) (coeFn.{succ u1, succ u1} (MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (fun (_x : MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) => α -> α) (MonoidWithZeroHom.hasCoeToFun.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (normalize.{u1} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u1} α _inst_1 _inst_2)) a) (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 s f))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {s : Finset.{u1} β} {f : β -> α} {a : α}, Eq.{succ u2} α (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s (fun (x : β) => HMul.hMul.{u2, u2, u2} α α α (instHMul.{u2} α (MulZeroClass.toMul.{u2} α (MulZeroOneClass.toMulZeroClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))))) a (f x))) (HMul.hMul.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => α) a) α ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => α) a) (instHMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => α) a) (MulZeroClass.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => α) a) (MulZeroOneClass.toMulZeroClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => α) a) (MonoidWithZero.toMulZeroOneClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => α) a) (CommMonoidWithZero.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => α) a) (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => α) a) _inst_1)))))) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => α) _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))))) (normalize.{u2} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u2} α _inst_1 _inst_2)) a) (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s f))
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {s : Finset.{u1} β} {f : β -> α} {a : α}, Eq.{succ u2} α (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s (fun (x : β) => HMul.hMul.{u2, u2, u2} α α α (instHMul.{u2} α (MulZeroClass.toMul.{u2} α (MulZeroOneClass.toMulZeroClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))))) a (f x))) (HMul.hMul.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => α) a) α ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => α) a) (instHMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => α) a) (MulZeroClass.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => α) a) (MulZeroOneClass.toMulZeroClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => α) a) (MonoidWithZero.toMulZeroOneClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => α) a) (CommMonoidWithZero.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => α) a) (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => α) a) _inst_1)))))) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => α) _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))))) (normalize.{u2} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u2} α _inst_1 _inst_2)) a) (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s f))
 Case conversion may be inaccurate. Consider using '#align finset.gcd_mul_left Finset.gcd_mul_leftₓ'. -/
 theorem gcd_mul_left {a : α} : (s.gcd fun x => a * f x) = normalize a * s.gcd f := by
   classical
@@ -401,7 +401,7 @@ theorem gcd_mul_left {a : α} : (s.gcd fun x => a * f x) = normalize a * s.gcd f
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CancelCommMonoidWithZero.{u1} α] [_inst_2 : NormalizedGCDMonoid.{u1} α _inst_1] {s : Finset.{u2} β} {f : β -> α} {a : α}, Eq.{succ u1} α (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 s (fun (x : β) => HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulZeroClass.toHasMul.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))))) (f x) a)) (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulZeroClass.toHasMul.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))))) (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 s f) (coeFn.{succ u1, succ u1} (MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (fun (_x : MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) => α -> α) (MonoidWithZeroHom.hasCoeToFun.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (normalize.{u1} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u1} α _inst_1 _inst_2)) a))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {s : Finset.{u1} β} {f : β -> α} {a : α}, Eq.{succ u2} α (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s (fun (x : β) => HMul.hMul.{u2, u2, u2} α α α (instHMul.{u2} α (MulZeroClass.toMul.{u2} α (MulZeroOneClass.toMulZeroClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))))) (f x) a)) (HMul.hMul.{u2, u2, u2} α ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => α) a) α (instHMul.{u2} α (MulZeroClass.toMul.{u2} α (MulZeroOneClass.toMulZeroClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))))) (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s f) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => α) _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))))) (normalize.{u2} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u2} α _inst_1 _inst_2)) a))
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {s : Finset.{u1} β} {f : β -> α} {a : α}, Eq.{succ u2} α (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s (fun (x : β) => HMul.hMul.{u2, u2, u2} α α α (instHMul.{u2} α (MulZeroClass.toMul.{u2} α (MulZeroOneClass.toMulZeroClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))))) (f x) a)) (HMul.hMul.{u2, u2, u2} α ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => α) a) α (instHMul.{u2} α (MulZeroClass.toMul.{u2} α (MulZeroOneClass.toMulZeroClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))))) (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s f) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => α) _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))))) (normalize.{u2} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u2} α _inst_1 _inst_2)) a))
 Case conversion may be inaccurate. Consider using '#align finset.gcd_mul_right Finset.gcd_mul_rightₓ'. -/
 theorem gcd_mul_right {a : α} : (s.gcd fun x => f x * a) = s.gcd f * normalize a := by
   classical
Diff
@@ -121,7 +121,7 @@ theorem lcm_insert [DecidableEq β] {b : β} :
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CancelCommMonoidWithZero.{u1} α] [_inst_2 : NormalizedGCDMonoid.{u1} α _inst_1] {f : β -> α} {b : β}, Eq.{succ u1} α (Finset.lcm.{u1, u2} α β _inst_1 _inst_2 (Singleton.singleton.{u2, u2} β (Finset.{u2} β) (Finset.hasSingleton.{u2} β) b) f) (coeFn.{succ u1, succ u1} (MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (fun (_x : MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) => α -> α) (MonoidWithZeroHom.hasCoeToFun.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (normalize.{u1} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u1} α _inst_1 _inst_2)) (f b))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {f : β -> α} {b : β}, Eq.{succ u2} α (Finset.lcm.{u2, u1} α β _inst_1 _inst_2 (Singleton.singleton.{u1, u1} β (Finset.{u1} β) (Finset.instSingletonFinset.{u1} β) b) f) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : α) => α) _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))))) (normalize.{u2} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u2} α _inst_1 _inst_2)) (f b))
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {f : β -> α} {b : β}, Eq.{succ u2} α (Finset.lcm.{u2, u1} α β _inst_1 _inst_2 (Singleton.singleton.{u1, u1} β (Finset.{u1} β) (Finset.instSingletonFinset.{u1} β) b) f) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => α) _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))))) (normalize.{u2} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u2} α _inst_1 _inst_2)) (f b))
 Case conversion may be inaccurate. Consider using '#align finset.lcm_singleton Finset.lcm_singletonₓ'. -/
 @[simp]
 theorem lcm_singleton {b : β} : ({b} : Finset β).lcm f = normalize (f b) :=
@@ -132,7 +132,7 @@ theorem lcm_singleton {b : β} : ({b} : Finset β).lcm f = normalize (f b) :=
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CancelCommMonoidWithZero.{u1} α] [_inst_2 : NormalizedGCDMonoid.{u1} α _inst_1] {s : Finset.{u2} β} {f : β -> α}, Eq.{succ u1} α (coeFn.{succ u1, succ u1} (MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (fun (_x : MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) => α -> α) (MonoidWithZeroHom.hasCoeToFun.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (normalize.{u1} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u1} α _inst_1 _inst_2)) (Finset.lcm.{u1, u2} α β _inst_1 _inst_2 s f)) (Finset.lcm.{u1, u2} α β _inst_1 _inst_2 s f)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {s : Finset.{u1} β} {f : β -> α}, Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : α) => α) (Finset.lcm.{u2, u1} α β _inst_1 _inst_2 s f)) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : α) => α) _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))))) (normalize.{u2} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u2} α _inst_1 _inst_2)) (Finset.lcm.{u2, u1} α β _inst_1 _inst_2 s f)) (Finset.lcm.{u2, u1} α β _inst_1 _inst_2 s f)
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {s : Finset.{u1} β} {f : β -> α}, Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => α) (Finset.lcm.{u2, u1} α β _inst_1 _inst_2 s f)) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => α) _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))))) (normalize.{u2} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u2} α _inst_1 _inst_2)) (Finset.lcm.{u2, u1} α β _inst_1 _inst_2 s f)) (Finset.lcm.{u2, u1} α β _inst_1 _inst_2 s f)
 Case conversion may be inaccurate. Consider using '#align finset.normalize_lcm Finset.normalize_lcmₓ'. -/
 @[simp]
 theorem normalize_lcm : normalize (s.lcm f) = s.lcm f := by simp [lcm_def]
@@ -275,7 +275,7 @@ theorem gcd_insert [DecidableEq β] {b : β} :
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CancelCommMonoidWithZero.{u1} α] [_inst_2 : NormalizedGCDMonoid.{u1} α _inst_1] {f : β -> α} {b : β}, Eq.{succ u1} α (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 (Singleton.singleton.{u2, u2} β (Finset.{u2} β) (Finset.hasSingleton.{u2} β) b) f) (coeFn.{succ u1, succ u1} (MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (fun (_x : MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) => α -> α) (MonoidWithZeroHom.hasCoeToFun.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (normalize.{u1} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u1} α _inst_1 _inst_2)) (f b))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {f : β -> α} {b : β}, Eq.{succ u2} α (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 (Singleton.singleton.{u1, u1} β (Finset.{u1} β) (Finset.instSingletonFinset.{u1} β) b) f) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : α) => α) _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))))) (normalize.{u2} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u2} α _inst_1 _inst_2)) (f b))
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {f : β -> α} {b : β}, Eq.{succ u2} α (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 (Singleton.singleton.{u1, u1} β (Finset.{u1} β) (Finset.instSingletonFinset.{u1} β) b) f) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => α) _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))))) (normalize.{u2} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u2} α _inst_1 _inst_2)) (f b))
 Case conversion may be inaccurate. Consider using '#align finset.gcd_singleton Finset.gcd_singletonₓ'. -/
 @[simp]
 theorem gcd_singleton {b : β} : ({b} : Finset β).gcd f = normalize (f b) :=
@@ -286,7 +286,7 @@ theorem gcd_singleton {b : β} : ({b} : Finset β).gcd f = normalize (f b) :=
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CancelCommMonoidWithZero.{u1} α] [_inst_2 : NormalizedGCDMonoid.{u1} α _inst_1] {s : Finset.{u2} β} {f : β -> α}, Eq.{succ u1} α (coeFn.{succ u1, succ u1} (MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (fun (_x : MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) => α -> α) (MonoidWithZeroHom.hasCoeToFun.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (normalize.{u1} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u1} α _inst_1 _inst_2)) (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 s f)) (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 s f)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {s : Finset.{u1} β} {f : β -> α}, Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : α) => α) (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s f)) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : α) => α) _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))))) (normalize.{u2} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u2} α _inst_1 _inst_2)) (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s f)) (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s f)
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {s : Finset.{u1} β} {f : β -> α}, Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => α) (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s f)) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => α) _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))))) (normalize.{u2} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u2} α _inst_1 _inst_2)) (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s f)) (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s f)
 Case conversion may be inaccurate. Consider using '#align finset.normalize_gcd Finset.normalize_gcdₓ'. -/
 @[simp]
 theorem normalize_gcd : normalize (s.gcd f) = s.gcd f := by simp [gcd_def]
@@ -386,7 +386,7 @@ theorem gcd_eq_gcd_filter_ne_zero [DecidablePred fun x : β => f x = 0] :
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CancelCommMonoidWithZero.{u1} α] [_inst_2 : NormalizedGCDMonoid.{u1} α _inst_1] {s : Finset.{u2} β} {f : β -> α} {a : α}, Eq.{succ u1} α (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 s (fun (x : β) => HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulZeroClass.toHasMul.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))))) a (f x))) (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulZeroClass.toHasMul.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))))) (coeFn.{succ u1, succ u1} (MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (fun (_x : MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) => α -> α) (MonoidWithZeroHom.hasCoeToFun.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (normalize.{u1} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u1} α _inst_1 _inst_2)) a) (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 s f))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {s : Finset.{u1} β} {f : β -> α} {a : α}, Eq.{succ u2} α (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s (fun (x : β) => HMul.hMul.{u2, u2, u2} α α α (instHMul.{u2} α (MulZeroClass.toMul.{u2} α (MulZeroOneClass.toMulZeroClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))))) a (f x))) (HMul.hMul.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : α) => α) a) α ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : α) => α) a) (instHMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : α) => α) a) (MulZeroClass.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : α) => α) a) (MulZeroOneClass.toMulZeroClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : α) => α) a) (MonoidWithZero.toMulZeroOneClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : α) => α) a) (CommMonoidWithZero.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : α) => α) a) (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : α) => α) a) _inst_1)))))) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : α) => α) _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))))) (normalize.{u2} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u2} α _inst_1 _inst_2)) a) (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s f))
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {s : Finset.{u1} β} {f : β -> α} {a : α}, Eq.{succ u2} α (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s (fun (x : β) => HMul.hMul.{u2, u2, u2} α α α (instHMul.{u2} α (MulZeroClass.toMul.{u2} α (MulZeroOneClass.toMulZeroClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))))) a (f x))) (HMul.hMul.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => α) a) α ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => α) a) (instHMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => α) a) (MulZeroClass.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => α) a) (MulZeroOneClass.toMulZeroClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => α) a) (MonoidWithZero.toMulZeroOneClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => α) a) (CommMonoidWithZero.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => α) a) (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => α) a) _inst_1)))))) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => α) _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))))) (normalize.{u2} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u2} α _inst_1 _inst_2)) a) (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s f))
 Case conversion may be inaccurate. Consider using '#align finset.gcd_mul_left Finset.gcd_mul_leftₓ'. -/
 theorem gcd_mul_left {a : α} : (s.gcd fun x => a * f x) = normalize a * s.gcd f := by
   classical
@@ -401,7 +401,7 @@ theorem gcd_mul_left {a : α} : (s.gcd fun x => a * f x) = normalize a * s.gcd f
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : CancelCommMonoidWithZero.{u1} α] [_inst_2 : NormalizedGCDMonoid.{u1} α _inst_1] {s : Finset.{u2} β} {f : β -> α} {a : α}, Eq.{succ u1} α (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 s (fun (x : β) => HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulZeroClass.toHasMul.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))))) (f x) a)) (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulZeroClass.toHasMul.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))))) (Finset.gcd.{u1, u2} α β _inst_1 _inst_2 s f) (coeFn.{succ u1, succ u1} (MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (fun (_x : MonoidWithZeroHom.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) => α -> α) (MonoidWithZeroHom.hasCoeToFun.{u1, u1} α α (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} α (CommMonoidWithZero.toMonoidWithZero.{u1} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} α _inst_1)))) (normalize.{u1} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u1} α _inst_1 _inst_2)) a))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {s : Finset.{u1} β} {f : β -> α} {a : α}, Eq.{succ u2} α (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s (fun (x : β) => HMul.hMul.{u2, u2, u2} α α α (instHMul.{u2} α (MulZeroClass.toMul.{u2} α (MulZeroOneClass.toMulZeroClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))))) (f x) a)) (HMul.hMul.{u2, u2, u2} α ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : α) => α) a) α (instHMul.{u2} α (MulZeroClass.toMul.{u2} α (MulZeroOneClass.toMulZeroClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))))) (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s f) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : α) => α) _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))))) (normalize.{u2} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u2} α _inst_1 _inst_2)) a))
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : CancelCommMonoidWithZero.{u2} α] [_inst_2 : NormalizedGCDMonoid.{u2} α _inst_1] {s : Finset.{u1} β} {f : β -> α} {a : α}, Eq.{succ u2} α (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s (fun (x : β) => HMul.hMul.{u2, u2, u2} α α α (instHMul.{u2} α (MulZeroClass.toMul.{u2} α (MulZeroOneClass.toMulZeroClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))))) (f x) a)) (HMul.hMul.{u2, u2, u2} α ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => α) a) α (instHMul.{u2} α (MulZeroClass.toMul.{u2} α (MulZeroOneClass.toMulZeroClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))))) (Finset.gcd.{u2, u1} α β _inst_1 _inst_2 s f) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => α) _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MulOneClass.toMul.{u2} α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{u2, u2, u2} (MonoidWithZeroHom.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1)))) α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u2} α α (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} α (CommMonoidWithZero.toMonoidWithZero.{u2} α (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} α _inst_1))))))) (normalize.{u2} α _inst_1 (NormalizedGCDMonoid.toNormalizationMonoid.{u2} α _inst_1 _inst_2)) a))
 Case conversion may be inaccurate. Consider using '#align finset.gcd_mul_right Finset.gcd_mul_rightₓ'. -/
 theorem gcd_mul_right {a : α} : (s.gcd fun x => f x * a) = s.gcd f * normalize a := by
   classical

Changes in mathlib4

mathlib3
mathlib4
chore: adapt to multiple goal linter 1 (#12338)

A PR accompanying #12339.

Zulip discussion

Diff
@@ -275,7 +275,7 @@ theorem extract_gcd (f : β → α) (hs : s.Nonempty) :
       push_neg at h
       refine' ⟨fun b ↦ if hb : b ∈ s then g' hb else 0, fun b hb ↦ _,
           extract_gcd' f _ h fun b hb ↦ _⟩
-      simp only [hb, hg, dite_true]
+      · simp only [hb, hg, dite_true]
       rw [dif_pos hb, hg hb]
 #align finset.extract_gcd Finset.extract_gcd
 
feat: Axiomatise b ≠ 0 → a * b / b = a (#12424)

This lets us unify a few lemmas between GroupWithZero and EuclideanDomain and two lemmas that were previously proved separately for Nat, Int, Polynomial.

Diff
@@ -7,6 +7,7 @@ import Mathlib.Data.Finset.Fold
 import Mathlib.Algebra.GCDMonoid.Multiset
 
 #align_import algebra.gcd_monoid.finset from "leanprover-community/mathlib"@"9003f28797c0664a49e4179487267c494477d853"
+#align_import algebra.gcd_monoid.div from "leanprover-community/mathlib"@"b537794f8409bc9598febb79cd510b1df5f4539d"
 
 /-!
 # GCD and LCM operations on finsets
@@ -28,8 +29,7 @@ TODO: simplify with a tactic and `Data.Finset.Lattice`
 finset, gcd
 -/
 
-
-variable {α β γ : Type*}
+variable {ι α β γ : Type*}
 
 namespace Finset
 
@@ -279,6 +279,25 @@ theorem extract_gcd (f : β → α) (hs : s.Nonempty) :
       rw [dif_pos hb, hg hb]
 #align finset.extract_gcd Finset.extract_gcd
 
+variable [Div α] [MulDivCancelClass α] {f : ι → α} {s : Finset ι} {i : ι}
+
+/-- Given a nonempty Finset `s` and a function `f` from `s` to `ℕ`, if `d = s.gcd`,
+then the `gcd` of `(f i) / d` is equal to `1`. -/
+lemma gcd_div_eq_one (his : i ∈ s) (hfi : f i ≠ 0) : s.gcd (fun j ↦ f j / s.gcd f) = 1 := by
+  obtain ⟨g, he, hg⟩ := Finset.extract_gcd f ⟨i, his⟩
+  refine' (Finset.gcd_congr rfl fun a ha ↦ _).trans hg
+  rw [he a ha, mul_div_cancel_left₀]
+  exact mt Finset.gcd_eq_zero_iff.1 fun h ↦ hfi <| h i his
+#align finset.nat.gcd_div_eq_one Finset.gcd_div_eq_one
+#align finset.int.gcd_div_eq_one Finset.gcd_div_eq_one
+#align finset.polynomial.gcd_div_eq_one Finset.gcd_div_eq_one
+
+lemma gcd_div_id_eq_one {s : Finset α} {a : α} (has : a ∈ s) (ha : a ≠ 0) :
+    s.gcd (fun b ↦ b / s.gcd id) = 1 := gcd_div_eq_one has ha
+#align finset.nat.gcd_div_id_eq_one Finset.gcd_div_id_eq_one
+#align finset.int.gcd_div_id_eq_one Finset.gcd_div_id_eq_one
+#align finset.polynomial.gcd_div_id_eq_one Finset.gcd_div_id_eq_one
+
 end gcd
 
 end Finset
chore(*): drop $/<| before fun (#9361)

Subset of #9319

Diff
@@ -274,7 +274,7 @@ theorem extract_gcd (f : β → α) (hs : s.Nonempty) :
     · choose g' hg using @gcd_dvd _ _ _ _ s f
       push_neg at h
       refine' ⟨fun b ↦ if hb : b ∈ s then g' hb else 0, fun b hb ↦ _,
-          extract_gcd' f _ h <| fun b hb ↦ _⟩
+          extract_gcd' f _ h fun b hb ↦ _⟩
       simp only [hb, hg, dite_true]
       rw [dif_pos hb, hg hb]
 #align finset.extract_gcd Finset.extract_gcd
style: a linter for colons (#6761)

A linter that throws on seeing a colon at the start of a line, according to the style guideline that says these operators should go before linebreaks.

Diff
@@ -185,8 +185,8 @@ theorem gcd_union [DecidableEq β] : (s₁ ∪ s₂).gcd f = GCDMonoid.gcd (s₁
     fun a s _ ih ↦ by rw [insert_union, gcd_insert, gcd_insert, ih, gcd_assoc]
 #align finset.gcd_union Finset.gcd_union
 
-theorem gcd_congr {f g : β → α} (hs : s₁ = s₂) (hfg : ∀ a ∈ s₂, f a = g a)
-    : s₁.gcd f = s₂.gcd g := by
+theorem gcd_congr {f g : β → α} (hs : s₁ = s₂) (hfg : ∀ a ∈ s₂, f a = g a) :
+    s₁.gcd f = s₂.gcd g := by
   subst hs
   exact Finset.fold_congr hfg
 #align finset.gcd_congr Finset.gcd_congr
chore: banish Type _ and Sort _ (#6499)

We remove all possible occurences of Type _ and Sort _ in favor of Type* and Sort*.

This has nice performance benefits.

Diff
@@ -29,7 +29,7 @@ finset, gcd
 -/
 
 
-variable {α β γ : Type _}
+variable {α β γ : Type*}
 
 namespace Finset
 
chore: tidy various files (#5999)
Diff
@@ -97,8 +97,8 @@ theorem lcm_union [DecidableEq β] : (s₁ ∪ s₂).lcm f = GCDMonoid.lcm (s₁
     fun a s _ ih ↦ by rw [insert_union, lcm_insert, lcm_insert, ih, lcm_assoc]
 #align finset.lcm_union Finset.lcm_union
 
-theorem lcm_congr {f g : β → α} (hs : s₁ = s₂) (hfg : ∀ a ∈ s₂, f a = g a)
-    : s₁.lcm f = s₂.lcm g := by
+theorem lcm_congr {f g : β → α} (hs : s₁ = s₂) (hfg : ∀ a ∈ s₂, f a = g a) :
+    s₁.lcm f = s₂.lcm g := by
   subst hs
   exact Finset.fold_congr hfg
 #align finset.lcm_congr Finset.lcm_congr
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2020 Aaron Anderson. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Aaron Anderson
-
-! This file was ported from Lean 3 source module algebra.gcd_monoid.finset
-! leanprover-community/mathlib commit 9003f28797c0664a49e4179487267c494477d853
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Data.Finset.Fold
 import Mathlib.Algebra.GCDMonoid.Multiset
 
+#align_import algebra.gcd_monoid.finset from "leanprover-community/mathlib"@"9003f28797c0664a49e4179487267c494477d853"
+
 /-!
 # GCD and LCM operations on finsets
 
chore: fix focusing dots (#5708)

This PR is the result of running

find . -type f -name "*.lean" -exec sed -i -E 's/^( +)\. /\1· /' {} \;
find . -type f -name "*.lean" -exec sed -i -E 'N;s/^( +·)\n +(.*)$/\1 \2/;P;D' {} \;

which firstly replaces . focusing dots with · and secondly removes isolated instances of such dots, unifying them with the following line. A new rule is placed in the style linter to verify this.

Diff
@@ -168,8 +168,7 @@ theorem dvd_gcd {a : α} : (∀ b ∈ s, a ∣ f b) → a ∣ s.gcd f :=
 theorem gcd_insert [DecidableEq β] {b : β} :
     (insert b s : Finset β).gcd f = GCDMonoid.gcd (f b) (s.gcd f) := by
   by_cases h : b ∈ s
-  ·
-    rw [insert_eq_of_mem h,
+  · rw [insert_eq_of_mem h,
       (gcd_eq_right_iff (f b) (s.gcd f) (Multiset.normalize_gcd (s.1.map f))).2 (gcd_dvd h)]
   apply fold_insert h
 #align finset.gcd_insert Finset.gcd_insert
chore: clean up spacing around at and goals (#5387)

Changes are of the form

  • some_tactic at h⊢ -> some_tactic at h ⊢
  • some_tactic at h -> some_tactic at h
Diff
@@ -276,7 +276,7 @@ theorem extract_gcd (f : β → α) (hs : s.Nonempty) :
     · refine' ⟨fun _ ↦ 1, fun b hb ↦ by rw [h b hb, gcd_eq_zero_iff.2 h, mul_one], _⟩
       rw [gcd_eq_gcd_image, image_const hs, gcd_singleton, id, normalize_one]
     · choose g' hg using @gcd_dvd _ _ _ _ s f
-      push_neg  at h
+      push_neg at h
       refine' ⟨fun b ↦ if hb : b ∈ s then g' hb else 0, fun b hb ↦ _,
           extract_gcd' f _ h <| fun b hb ↦ _⟩
       simp only [hb, hg, dite_true]
chore: fix casing errors per naming scheme (#1670)
Diff
@@ -43,7 +43,7 @@ variable [CancelCommMonoidWithZero α] [NormalizedGCDMonoid α]
 /-! ### lcm -/
 
 
-section Lcm
+section lcm
 
 /-- Least common multiple of a finite set -/
 def lcm (s : Finset β) (f : β → α) : α :=
@@ -127,12 +127,12 @@ theorem lcm_eq_zero_iff [Nontrivial α] : s.lcm f = 0 ↔ 0 ∈ f '' s := by
     Finset.mem_def]
 #align finset.lcm_eq_zero_iff Finset.lcm_eq_zero_iff
 
-end Lcm
+end lcm
 
 /-! ### gcd -/
 
 
-section Gcd
+section gcd
 
 /-- Greatest common divisor of a finite set -/
 def gcd (s : Finset β) (f : β → α) : α :=
@@ -283,7 +283,7 @@ theorem extract_gcd (f : β → α) (hs : s.Nonempty) :
       rw [dif_pos hb, hg hb]
 #align finset.extract_gcd Finset.extract_gcd
 
-end Gcd
+end gcd
 
 end Finset
 
chore: revert Multiset and Finset API to use Prop instead of Bool (#1652)

Co-authored-by: Reid Barton <rwbarton@gmail.com>

Diff
@@ -230,18 +230,16 @@ all the `decide`s around. -/
 theorem gcd_eq_gcd_filter_ne_zero [DecidablePred fun x : β ↦ f x = 0] :
     s.gcd f = (s.filter fun x ↦ f x ≠ 0).gcd f := by
   classical
-    trans ((s.filter fun x ↦ f x = 0) ∪ s.filter fun x ↦ (¬decide (f x = 0) = true)).gcd f
+    trans ((s.filter fun x ↦ f x = 0) ∪ s.filter fun x ↦ (f x ≠ 0)).gcd f
     · rw [filter_union_filter_neg_eq]
     rw [gcd_union]
     refine' Eq.trans (_ : _ = GCDMonoid.gcd (0 : α) _) (_ : GCDMonoid.gcd (0 : α) _ = _)
-    · exact (gcd (filter (fun x => decide (f x ≠ 0)) s) f)
+    · exact (gcd (filter (fun x => (f x ≠ 0)) s) f)
     · refine' congr (congr rfl <| s.induction_on _ _) (by simp)
       · simp
       · intro a s _ h
         rw [filter_insert]
-        split_ifs with h1 <;>
-        · simp only [decide_eq_true_eq] at h1
-          simp [h, h1]
+        split_ifs with h1 <;> simp [h, h1]
     simp only [gcd_zero_left, normalize_gcd]
 #align finset.gcd_eq_gcd_filter_ne_zero Finset.gcd_eq_gcd_filter_ne_zero
 
feat: port Algebra.GCDMonoid.Finset (#1612)

Co-authored-by: maxwell-thum <119913396+maxwell-thum@users.noreply.github.com> Co-authored-by: ChrisHughes24 <chrishughes24@gmail.com>

Dependencies 3 + 170

171 files ported (98.3%)
77185 lines ported (98.7%)
Show graph

The unported dependencies are