data.set.pointwise.smulMathlib.Data.Set.Pointwise.SMul

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)

(last sync)

feat(data/{set,finset}/pointwise): a • t ⊆ s • t (#18697)

Eta expansion in the lemma statements is deliberate, to make the left and right lemmas more similar and allow further rewrites.

Also additivise finset.bUnion_smul_finset, fix the name of finset.smul_finset_mem_smul_finset to finset.smul_mem_smul_finset, move image2_swap/image₂_swap further up the file to let them be used in earlier proofs.

Diff
@@ -38,7 +38,7 @@ Appropriate definitions and results are also transported to the additive theory
 
 -/
 
-open function
+open function mul_opposite
 
 variables {F α β γ : Type*}
 
@@ -108,6 +108,12 @@ attribute [mono] vadd_subset_vadd
 @[to_additive] lemma inter_smul_subset : (s₁ ∩ s₂) • t ⊆ s₁ • t ∩ s₂ • t := image2_inter_subset_left
 @[to_additive] lemma smul_inter_subset : s • (t₁ ∩ t₂) ⊆ s • t₁ ∩ s • t₂ :=
 image2_inter_subset_right
+@[to_additive] lemma inter_smul_union_subset_union :
+  (s₁ ∩ s₂) • (t₁ ∪ t₂) ⊆ (s₁ • t₁) ∪ (s₂ • t₂) :=
+image2_inter_union_subset_union
+@[to_additive] lemma union_smul_inter_subset_union :
+  (s₁ ∪ s₂) • (t₁ ∩ t₂) ⊆ (s₁ • t₁) ∪ (s₂ • t₂) :=
+image2_union_inter_subset_union
 
 @[to_additive] lemma Union_smul_left_image : (⋃ a ∈ s, a • t) = s • t := Union_image_left _
 @[to_additive] lemma Union_smul_right_image : (⋃ a ∈ t, (• a) '' s) = s • t := Union_image_right _
@@ -143,6 +149,9 @@ lemma smul_Inter₂_subset (s : set α) (t : Π i, κ i → set β) :
   s • (⋂ i j, t i j) ⊆ ⋂ i j, s • t i j :=
 image2_Inter₂_subset_right _ _ _
 
+@[to_additive] lemma smul_set_subset_smul {s : set α} : a ∈ s → a • t ⊆ s • t :=
+image_subset_image2_right
+
 @[simp, to_additive] lemma bUnion_smul_set (s : set α) (t : set β) :
   (⋃ a ∈ s, a • t) = s • t :=
 Union_image_left _
@@ -192,12 +201,22 @@ image_Inter₂_subset _ _
 
 end has_smul_set
 
-variables {s s₁ s₂ : set α} {t t₁ t₂ : set β} {a : α} {b : β}
+section has_mul
+variables [has_mul α] {s t u : set α} {a : α}
 
-@[simp, to_additive] lemma bUnion_op_smul_set [has_mul α] (s t : set α) :
-  (⋃ a ∈ t, mul_opposite.op a • s) = s * t :=
+@[to_additive] lemma op_smul_set_subset_mul : a ∈ t → op a • s ⊆ s * t := image_subset_image2_left
+
+@[simp, to_additive] lemma bUnion_op_smul_set (s t : set α) : (⋃ a ∈ t, op a • s) = s * t :=
 Union_image_right _
 
+@[to_additive] lemma mul_subset_iff_left : s * t ⊆ u ↔ ∀ a ∈ s, a • t ⊆ u := image2_subset_iff_left
+@[to_additive] lemma mul_subset_iff_right : s * t ⊆ u ↔ ∀ b ∈ t, op b • s ⊆ u :=
+image2_subset_iff_right
+
+end has_mul
+
+variables {s s₁ s₂ : set α} {t t₁ t₂ : set β} {a : α} {b : β}
+
 @[to_additive]
 theorem range_smul_range {ι κ : Type*} [has_smul α β] (b : ι → α) (c : κ → β) :
   range b • range c = range (λ p : ι × κ, b p.1 • c p.2) :=
@@ -345,6 +364,10 @@ lemma union_vsub : (s₁ ∪ s₂) -ᵥ t = s₁ -ᵥ t ∪ (s₂ -ᵥ t) := ima
 lemma vsub_union : s -ᵥ (t₁ ∪ t₂) = s -ᵥ t₁ ∪ (s -ᵥ t₂) := image2_union_right
 lemma inter_vsub_subset : s₁ ∩ s₂ -ᵥ t ⊆ (s₁ -ᵥ t) ∩ (s₂ -ᵥ t) := image2_inter_subset_left
 lemma vsub_inter_subset : s -ᵥ t₁ ∩ t₂ ⊆ (s -ᵥ t₁) ∩ (s -ᵥ t₂) := image2_inter_subset_right
+lemma inter_vsub_union_subset_union : (s₁ ∩ s₂) -ᵥ (t₁ ∪ t₂) ⊆ (s₁ -ᵥ t₁) ∪ (s₂ -ᵥ t₂) :=
+image2_inter_union_subset_union
+lemma union_vsub_inter_subset_union : (s₁ ∪ s₂) -ᵥ (t₁ ∩ t₂) ⊆ (s₁ -ᵥ t₁) ∪ (s₂ -ᵥ t₂) :=
+image2_union_inter_subset_union
 
 lemma Union_vsub_left_image : (⋃ a ∈ s, ((-ᵥ) a) '' t) = s -ᵥ t := Union_image_left _
 lemma Union_vsub_right_image : (⋃ a ∈ t, (-ᵥ a) '' s) = s -ᵥ t := Union_image_right _
@@ -388,6 +411,17 @@ image_comm
   f '' (a • s) = f a • f '' s :=
 image_comm $ map_mul _ _
 
+section has_smul
+variables[has_smul αᵐᵒᵖ β] [has_smul β γ] [has_smul α γ]
+
+-- TODO: replace hypothesis and conclusion with a typeclass
+@[to_additive] lemma op_smul_set_smul_eq_smul_smul_set (a : α) (s : set β) (t : set γ)
+  (h : ∀ (a : α) (b : β) (c : γ), (op a • b) • c = b • a • c) :
+  (op a • s) • t = s • a • t :=
+by { ext, simp [mem_smul, mem_smul_set, h] }
+
+end has_smul
+
 section smul_with_zero
 variables [has_zero α] [has_zero β] [smul_with_zero α β] {s : set α} {t : set β}
 
@@ -441,6 +475,15 @@ end
 
 end smul_with_zero
 
+section semigroup
+variables [semigroup α]
+
+@[to_additive] lemma op_smul_set_mul_eq_mul_smul_set (a : α) (s : set α) (t : set α) :
+  (op a • s) * t = s * a • t :=
+op_smul_set_smul_eq_smul_smul_set _ _ _ $ λ _ _ _, mul_assoc _ _ _
+
+end semigroup
+
 section left_cancel_semigroup
 variables [left_cancel_semigroup α] {s t : set α}
 

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

feat(data/finset/pointwise): a • (s ∩ t) = a • s ∩ a • t (#18682)

I added the corresponding set lemmas a while back, but forgot about their finset counterpart. Also additivise finset.is_central_scalar/set.is_central_scalar.

Diff
@@ -243,6 +243,7 @@ instance is_scalar_tower'' [has_smul α β] [has_smul α γ] [has_smul β γ] [i
   is_scalar_tower (set α) (set β) (set γ) :=
 { smul_assoc := λ T T' T'', image2_assoc smul_assoc }
 
+@[to_additive]
 instance is_central_scalar [has_smul α β] [has_smul αᵐᵒᵖ β] [is_central_scalar α β] :
   is_central_scalar α (set β) :=
 ⟨λ a S, congr_arg (λ f, f '' S) $ by exact funext (λ _, op_smul_eq_smul _ _)⟩

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

chore(data/set/pairwise): split (#17880)

This PR will split most of the lemmas in data.set.pairwise which are independent of the data.set.lattice. It makes a lot of files no longer depend on data.set.lattice.

Zulip

mathlib4 PR: https://github.com/leanprover-community/mathlib4/pull/1184

Co-authored-by: Yaël Dillies <yael.dillies@gmail.com>

Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johan Commelin, Floris van Doorn
 -/
 import algebra.module.basic
-import data.set.pairwise
+import data.set.pairwise.lattice
 import data.set.pointwise.basic
 import tactic.by_contra
 

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

feat(data/finset/pointwise): s ∩ t * s ∪ t ⊆ s * t (#17961)

and distributivity of set.to_finset/set.finite.to_finset over algebraic operations.

Diff
@@ -378,6 +378,15 @@ end vsub
 
 open_locale pointwise
 
+@[to_additive] lemma image_smul_comm [has_smul α β] [has_smul α γ] (f : β → γ) (a : α) (s : set β) :
+  (∀ b, f (a • b) = a • f b) → f '' (a • s) = a • f '' s :=
+image_comm
+
+@[to_additive] lemma image_smul_distrib [mul_one_class α] [mul_one_class β] [monoid_hom_class F α β]
+  (f : F) (a : α) (s : set α) :
+  f '' (a • s) = f a • f '' s :=
+image_comm $ map_mul _ _
+
 section smul_with_zero
 variables [has_zero α] [has_zero β] [smul_with_zero α β] {s : set α} {t : set β}
 

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(first ported)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -717,7 +717,7 @@ instance [Zero α] [Zero β] [SMul α β] [NoZeroSMulDivisors α β] :
     by_contra! H
     have hst : (s • t).Nonempty := h.symm.subst zero_nonempty
     simp_rw [← hst.of_smul_left.subset_zero_iff, ← hst.of_smul_right.subset_zero_iff, not_subset,
-      mem_zero] at H 
+      mem_zero] at H
     obtain ⟨⟨a, hs, ha⟩, b, ht, hb⟩ := H
     exact (eq_zero_or_eq_zero_of_smul_eq_zero <| h.subset <| smul_mem_smul hs ht).elim ha hb⟩
 
@@ -727,7 +727,7 @@ instance noZeroSMulDivisors_set [Zero α] [Zero β] [SMul α β] [NoZeroSMulDivi
   ⟨fun a s h => by
     by_contra! H
     have hst : (a • s).Nonempty := h.symm.subst zero_nonempty
-    simp_rw [← hst.of_image.subset_zero_iff, not_subset, mem_zero] at H 
+    simp_rw [← hst.of_image.subset_zero_iff, not_subset, mem_zero] at H
     obtain ⟨ha, b, ht, hb⟩ := H
     exact (eq_zero_or_eq_zero_of_smul_eq_zero <| h.subset <| smul_mem_smul_set ht).elim ha hb⟩
 #align set.no_zero_smul_divisors_set Set.noZeroSMulDivisors_set
@@ -1097,7 +1097,7 @@ theorem zero_mem_smul_set_iff (ha : a ≠ 0) : (0 : β) ∈ a • t ↔ (0 : β)
   by
   refine' ⟨_, zero_mem_smul_set⟩
   rintro ⟨b, hb, h⟩
-  rwa [(eq_zero_or_eq_zero_of_smul_eq_zero h).resolve_left ha] at hb 
+  rwa [(eq_zero_or_eq_zero_of_smul_eq_zero h).resolve_left ha] at hb
 #align set.zero_mem_smul_set_iff Set.zero_mem_smul_set_iff
 -/
 
Diff
@@ -435,7 +435,7 @@ theorem smul_set_eq_empty : a • s = ∅ ↔ s = ∅ :=
 #print Set.smul_set_nonempty /-
 @[simp, to_additive]
 theorem smul_set_nonempty : (a • s).Nonempty ↔ s.Nonempty :=
-  nonempty_image_iff
+  image_nonempty
 #align set.smul_set_nonempty Set.smul_set_nonempty
 #align set.vadd_set_nonempty Set.vadd_set_nonempty
 -/
Diff
@@ -632,7 +632,7 @@ instance isScalarTower [SMul α β] [SMul α γ] [SMul β γ] [IsScalarTower α
     IsScalarTower α β (Set γ)
     where smul_assoc a b T := by simp only [← image_smul, image_image, smul_assoc]
 #align set.is_scalar_tower Set.isScalarTower
-#align set.vadd_assoc_class Set.vAddAssocClass
+#align set.vadd_assoc_class Set.vaddAssocClass
 -/
 
 #print Set.isScalarTower' /-
@@ -641,7 +641,7 @@ instance isScalarTower' [SMul α β] [SMul α γ] [SMul β γ] [IsScalarTower α
     IsScalarTower α (Set β) (Set γ) :=
   ⟨fun _ _ _ => image2_image_left_comm <| smul_assoc _⟩
 #align set.is_scalar_tower' Set.isScalarTower'
-#align set.vadd_assoc_class' Set.vAddAssocClass'
+#align set.vadd_assoc_class' Set.vaddAssocClass'
 -/
 
 #print Set.isScalarTower'' /-
@@ -649,7 +649,7 @@ instance isScalarTower' [SMul α β] [SMul α γ] [SMul β γ] [IsScalarTower α
 instance isScalarTower'' [SMul α β] [SMul α γ] [SMul β γ] [IsScalarTower α β γ] :
     IsScalarTower (Set α) (Set β) (Set γ) where smul_assoc T T' T'' := image2_assoc smul_assoc
 #align set.is_scalar_tower'' Set.isScalarTower''
-#align set.vadd_assoc_class'' Set.vAddAssocClass''
+#align set.vadd_assoc_class'' Set.vaddAssocClass''
 -/
 
 #print Set.isCentralScalar /-
Diff
@@ -714,7 +714,7 @@ scoped[Pointwise] attribute [instance] Set.distribMulActionSet Set.mulDistribMul
 instance [Zero α] [Zero β] [SMul α β] [NoZeroSMulDivisors α β] :
     NoZeroSMulDivisors (Set α) (Set β) :=
   ⟨fun s t h => by
-    by_contra' H
+    by_contra! H
     have hst : (s • t).Nonempty := h.symm.subst zero_nonempty
     simp_rw [← hst.of_smul_left.subset_zero_iff, ← hst.of_smul_right.subset_zero_iff, not_subset,
       mem_zero] at H 
@@ -725,7 +725,7 @@ instance [Zero α] [Zero β] [SMul α β] [NoZeroSMulDivisors α β] :
 instance noZeroSMulDivisors_set [Zero α] [Zero β] [SMul α β] [NoZeroSMulDivisors α β] :
     NoZeroSMulDivisors α (Set β) :=
   ⟨fun a s h => by
-    by_contra' H
+    by_contra! H
     have hst : (a • s).Nonempty := h.symm.subst zero_nonempty
     simp_rw [← hst.of_image.subset_zero_iff, not_subset, mem_zero] at H 
     obtain ⟨ha, b, ht, hb⟩ := H
Diff
@@ -98,7 +98,6 @@ theorem image2_smul : image2 SMul.smul s t = s • t :=
 theorem image_smul_prod : (fun x : α × β => x.fst • x.snd) '' s ×ˢ t = s • t :=
   image_prod _
 #align set.image_smul_prod Set.image_smul_prod
-#align set.add_image_prod Set.add_image_prod
 -/
 
 #print Set.mem_smul /-
Diff
@@ -481,12 +481,12 @@ theorem smul_set_inter_subset : a • (t₁ ∩ t₂) ⊆ a • t₁ ∩ a • t
 #align set.vadd_set_inter_subset Set.vadd_set_inter_subset
 -/
 
-#print Set.smul_set_Union /-
+#print Set.smul_set_iUnion /-
 @[to_additive]
-theorem smul_set_Union (a : α) (s : ι → Set β) : (a • ⋃ i, s i) = ⋃ i, a • s i :=
+theorem smul_set_iUnion (a : α) (s : ι → Set β) : (a • ⋃ i, s i) = ⋃ i, a • s i :=
   image_iUnion
-#align set.smul_set_Union Set.smul_set_Union
-#align set.vadd_set_Union Set.vadd_set_Union
+#align set.smul_set_Union Set.smul_set_iUnion
+#align set.vadd_set_Union Set.vadd_set_iUnion
 -/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
Diff
@@ -3,10 +3,10 @@ Copyright (c) 2019 Johan Commelin. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johan Commelin, Floris van Doorn
 -/
-import Mathbin.Algebra.Module.Basic
-import Mathbin.Data.Set.Pairwise.Lattice
-import Mathbin.Data.Set.Pointwise.Basic
-import Mathbin.Tactic.ByContra
+import Algebra.Module.Basic
+import Data.Set.Pairwise.Lattice
+import Data.Set.Pointwise.Basic
+import Tactic.ByContra
 
 #align_import data.set.pointwise.smul from "leanprover-community/mathlib"@"5e526d18cea33550268dcbbddcb822d5cde40654"
 
Diff
@@ -669,7 +669,7 @@ on `set β`. -/
       "An additive action of an additive monoid `α` on a type `β` gives an additive action\nof `set α` on `set β`"]
 protected def mulAction [Monoid α] [MulAction α β] : MulAction (Set α) (Set β)
     where
-  mul_smul _ _ _ := image2_assoc mul_smul
+  hMul_smul _ _ _ := image2_assoc hMul_smul
   one_smul s := image2_singleton_left.trans <| by simp_rw [one_smul, image_id']
 #align set.mul_action Set.mulAction
 #align set.add_action Set.addAction
@@ -681,7 +681,7 @@ protected def mulAction [Monoid α] [MulAction α β] : MulAction (Set α) (Set
       "An additive action of an additive monoid on a type `β` gives an additive action\non `set β`."]
 protected def mulActionSet [Monoid α] [MulAction α β] : MulAction α (Set β)
     where
-  mul_smul := by intros; simp only [← image_smul, image_image, ← mul_smul]
+  hMul_smul := by intros; simp only [← image_smul, image_image, ← mul_smul]
   one_smul := by intros; simp only [← image_smul, one_smul, image_id']
 #align set.mul_action_set Set.mulActionSet
 #align set.add_action_set Set.addActionSet
@@ -705,7 +705,7 @@ protected def distribMulActionSet [Monoid α] [AddMonoid β] [DistribMulAction 
 protected def mulDistribMulActionSet [Monoid α] [Monoid β] [MulDistribMulAction α β] :
     MulDistribMulAction α (Set β)
     where
-  smul_mul _ _ _ := image_image2_distrib <| smul_mul' _
+  smul_hMul _ _ _ := image_image2_distrib <| smul_mul' _
   smul_one _ := image_singleton.trans <| by rw [smul_one, singleton_one]
 #align set.mul_distrib_mul_action_set Set.mulDistribMulActionSet
 -/
Diff
@@ -1222,12 +1222,12 @@ theorem smul_set_sdiff : a • (s \ t) = a • s \ a • t :=
 #align set.vadd_set_sdiff Set.vadd_set_sdiff
 -/
 
-#print Set.smul_set_symm_diff /-
+#print Set.smul_set_symmDiff /-
 @[to_additive]
-theorem smul_set_symm_diff : a • s ∆ t = (a • s) ∆ (a • t) :=
-  image_symm_diff (MulAction.injective a) _ _
-#align set.smul_set_symm_diff Set.smul_set_symm_diff
-#align set.vadd_set_symm_diff Set.vadd_set_symm_diff
+theorem smul_set_symmDiff : a • s ∆ t = (a • s) ∆ (a • t) :=
+  image_symmDiff (MulAction.injective a) _ _
+#align set.smul_set_symm_diff Set.smul_set_symmDiff
+#align set.vadd_set_symm_diff Set.vadd_set_symmDiff
 -/
 
 #print Set.smul_set_univ /-
@@ -1373,10 +1373,10 @@ theorem smul_set_sdiff₀ (ha : a ≠ 0) : a • (s \ t) = a • s \ a • t :=
 #align set.smul_set_sdiff₀ Set.smul_set_sdiff₀
 -/
 
-#print Set.smul_set_symm_diff₀ /-
-theorem smul_set_symm_diff₀ (ha : a ≠ 0) : a • s ∆ t = (a • s) ∆ (a • t) :=
-  image_symm_diff (MulAction.injective₀ ha) _ _
-#align set.smul_set_symm_diff₀ Set.smul_set_symm_diff₀
+#print Set.smul_set_symmDiff₀ /-
+theorem smul_set_symmDiff₀ (ha : a ≠ 0) : a • s ∆ t = (a • s) ∆ (a • t) :=
+  image_symmDiff (MulAction.injective₀ ha) _ _
+#align set.smul_set_symm_diff₀ Set.smul_set_symmDiff₀
 -/
 
 #print Set.smul_set_univ₀ /-
Diff
@@ -2,17 +2,14 @@
 Copyright (c) 2019 Johan Commelin. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johan Commelin, Floris van Doorn
-
-! This file was ported from Lean 3 source module data.set.pointwise.smul
-! leanprover-community/mathlib commit 5e526d18cea33550268dcbbddcb822d5cde40654
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Algebra.Module.Basic
 import Mathbin.Data.Set.Pairwise.Lattice
 import Mathbin.Data.Set.Pointwise.Basic
 import Mathbin.Tactic.ByContra
 
+#align_import data.set.pointwise.smul from "leanprover-community/mathlib"@"5e526d18cea33550268dcbbddcb822d5cde40654"
+
 /-!
 # Pointwise operations of sets
 
Diff
@@ -112,11 +112,13 @@ theorem mem_smul : b ∈ s • t ↔ ∃ x y, x ∈ s ∧ y ∈ t ∧ x • y =
 #align set.mem_vadd Set.mem_vadd
 -/
 
+#print Set.smul_mem_smul /-
 @[to_additive]
 theorem smul_mem_smul : a ∈ s → b ∈ t → a • b ∈ s • t :=
   mem_image2_of_mem
 #align set.smul_mem_smul Set.smul_mem_smul
 #align set.vadd_mem_vadd Set.vadd_mem_vadd
+-/
 
 #print Set.empty_smul /-
 @[simp, to_additive]
@@ -150,11 +152,13 @@ theorem smul_nonempty : (s • t).Nonempty ↔ s.Nonempty ∧ t.Nonempty :=
 #align set.vadd_nonempty Set.vadd_nonempty
 -/
 
+#print Set.Nonempty.smul /-
 @[to_additive]
 theorem Nonempty.smul : s.Nonempty → t.Nonempty → (s • t).Nonempty :=
   Nonempty.image2
 #align set.nonempty.smul Set.Nonempty.smul
 #align set.nonempty.vadd Set.Nonempty.vadd
+-/
 
 #print Set.Nonempty.of_smul_left /-
 @[to_additive]
@@ -196,11 +200,13 @@ theorem singleton_smul_singleton : ({a} : Set α) • ({b} : Set β) = {a • b}
 #align set.singleton_vadd_singleton Set.singleton_vadd_singleton
 -/
 
+#print Set.smul_subset_smul /-
 @[to_additive, mono]
 theorem smul_subset_smul : s₁ ⊆ s₂ → t₁ ⊆ t₂ → s₁ • t₁ ⊆ s₂ • t₂ :=
   image2_subset
 #align set.smul_subset_smul Set.smul_subset_smul
 #align set.vadd_subset_vadd Set.vadd_subset_vadd
+-/
 
 #print Set.smul_subset_smul_left /-
 @[to_additive]
@@ -210,11 +216,13 @@ theorem smul_subset_smul_left : t₁ ⊆ t₂ → s • t₁ ⊆ s • t₂ :=
 #align set.vadd_subset_vadd_left Set.vadd_subset_vadd_left
 -/
 
+#print Set.smul_subset_smul_right /-
 @[to_additive]
 theorem smul_subset_smul_right : s₁ ⊆ s₂ → s₁ • t ⊆ s₂ • t :=
   image2_subset_right
 #align set.smul_subset_smul_right Set.smul_subset_smul_right
 #align set.vadd_subset_vadd_right Set.vadd_subset_vadd_right
+-/
 
 #print Set.smul_subset_iff /-
 @[to_additive]
@@ -226,41 +234,53 @@ theorem smul_subset_iff : s • t ⊆ u ↔ ∀ a ∈ s, ∀ b ∈ t, a • b 
 
 attribute [mono] vadd_subset_vadd
 
+#print Set.union_smul /-
 @[to_additive]
 theorem union_smul : (s₁ ∪ s₂) • t = s₁ • t ∪ s₂ • t :=
   image2_union_left
 #align set.union_smul Set.union_smul
 #align set.union_vadd Set.union_vadd
+-/
 
+#print Set.smul_union /-
 @[to_additive]
 theorem smul_union : s • (t₁ ∪ t₂) = s • t₁ ∪ s • t₂ :=
   image2_union_right
 #align set.smul_union Set.smul_union
 #align set.vadd_union Set.vadd_union
+-/
 
+#print Set.inter_smul_subset /-
 @[to_additive]
 theorem inter_smul_subset : (s₁ ∩ s₂) • t ⊆ s₁ • t ∩ s₂ • t :=
   image2_inter_subset_left
 #align set.inter_smul_subset Set.inter_smul_subset
 #align set.inter_vadd_subset Set.inter_vadd_subset
+-/
 
+#print Set.smul_inter_subset /-
 @[to_additive]
 theorem smul_inter_subset : s • (t₁ ∩ t₂) ⊆ s • t₁ ∩ s • t₂ :=
   image2_inter_subset_right
 #align set.smul_inter_subset Set.smul_inter_subset
 #align set.vadd_inter_subset Set.vadd_inter_subset
+-/
 
+#print Set.inter_smul_union_subset_union /-
 @[to_additive]
 theorem inter_smul_union_subset_union : (s₁ ∩ s₂) • (t₁ ∪ t₂) ⊆ s₁ • t₁ ∪ s₂ • t₂ :=
   image2_inter_union_subset_union
 #align set.inter_smul_union_subset_union Set.inter_smul_union_subset_union
 #align set.inter_vadd_union_subset_union Set.inter_vadd_union_subset_union
+-/
 
+#print Set.union_smul_inter_subset_union /-
 @[to_additive]
 theorem union_smul_inter_subset_union : (s₁ ∪ s₂) • (t₁ ∩ t₂) ⊆ s₁ • t₁ ∪ s₂ • t₂ :=
   image2_union_inter_subset_union
 #align set.union_smul_inter_subset_union Set.union_smul_inter_subset_union
 #align set.union_vadd_inter_subset_union Set.union_vadd_inter_subset_union
+-/
 
 #print Set.iUnion_smul_left_image /-
 @[to_additive]
@@ -278,77 +298,97 @@ theorem iUnion_smul_right_image : (⋃ a ∈ t, (· • a) '' s) = s • t :=
 #align set.Union_vadd_right_image Set.iUnion_vadd_right_image
 -/
 
+#print Set.iUnion_smul /-
 @[to_additive]
 theorem iUnion_smul (s : ι → Set α) (t : Set β) : (⋃ i, s i) • t = ⋃ i, s i • t :=
   image2_iUnion_left _ _ _
 #align set.Union_smul Set.iUnion_smul
 #align set.Union_vadd Set.iUnion_vadd
+-/
 
+#print Set.smul_iUnion /-
 @[to_additive]
 theorem smul_iUnion (s : Set α) (t : ι → Set β) : (s • ⋃ i, t i) = ⋃ i, s • t i :=
   image2_iUnion_right _ _ _
 #align set.smul_Union Set.smul_iUnion
 #align set.vadd_Union Set.vadd_iUnion
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
+#print Set.iUnion₂_smul /-
 @[to_additive]
 theorem iUnion₂_smul (s : ∀ i, κ i → Set α) (t : Set β) :
     (⋃ (i) (j), s i j) • t = ⋃ (i) (j), s i j • t :=
   image2_iUnion₂_left _ _ _
 #align set.Union₂_smul Set.iUnion₂_smul
 #align set.Union₂_vadd Set.iUnion₂_vadd
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
+#print Set.smul_iUnion₂ /-
 @[to_additive]
 theorem smul_iUnion₂ (s : Set α) (t : ∀ i, κ i → Set β) :
     (s • ⋃ (i) (j), t i j) = ⋃ (i) (j), s • t i j :=
   image2_iUnion₂_right _ _ _
 #align set.smul_Union₂ Set.smul_iUnion₂
 #align set.vadd_Union₂ Set.vadd_iUnion₂
+-/
 
+#print Set.iInter_smul_subset /-
 @[to_additive]
 theorem iInter_smul_subset (s : ι → Set α) (t : Set β) : (⋂ i, s i) • t ⊆ ⋂ i, s i • t :=
   image2_iInter_subset_left _ _ _
 #align set.Inter_smul_subset Set.iInter_smul_subset
 #align set.Inter_vadd_subset Set.iInter_vadd_subset
+-/
 
+#print Set.smul_iInter_subset /-
 @[to_additive]
 theorem smul_iInter_subset (s : Set α) (t : ι → Set β) : (s • ⋂ i, t i) ⊆ ⋂ i, s • t i :=
   image2_iInter_subset_right _ _ _
 #align set.smul_Inter_subset Set.smul_iInter_subset
 #align set.vadd_Inter_subset Set.vadd_iInter_subset
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
+#print Set.iInter₂_smul_subset /-
 @[to_additive]
 theorem iInter₂_smul_subset (s : ∀ i, κ i → Set α) (t : Set β) :
     (⋂ (i) (j), s i j) • t ⊆ ⋂ (i) (j), s i j • t :=
   image2_iInter₂_subset_left _ _ _
 #align set.Inter₂_smul_subset Set.iInter₂_smul_subset
 #align set.Inter₂_vadd_subset Set.iInter₂_vadd_subset
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
+#print Set.smul_iInter₂_subset /-
 @[to_additive]
 theorem smul_iInter₂_subset (s : Set α) (t : ∀ i, κ i → Set β) :
     (s • ⋂ (i) (j), t i j) ⊆ ⋂ (i) (j), s • t i j :=
   image2_iInter₂_subset_right _ _ _
 #align set.smul_Inter₂_subset Set.smul_iInter₂_subset
 #align set.vadd_Inter₂_subset Set.vadd_iInter₂_subset
+-/
 
+#print Set.smul_set_subset_smul /-
 @[to_additive]
 theorem smul_set_subset_smul {s : Set α} : a ∈ s → a • t ⊆ s • t :=
   image_subset_image2_right
 #align set.smul_set_subset_smul Set.smul_set_subset_smul
 #align set.vadd_set_subset_vadd Set.vadd_set_subset_vadd
+-/
 
+#print Set.iUnion_smul_set /-
 @[simp, to_additive]
 theorem iUnion_smul_set (s : Set α) (t : Set β) : (⋃ a ∈ s, a • t) = s • t :=
   iUnion_image_left _
 #align set.bUnion_smul_set Set.iUnion_smul_set
 #align set.bUnion_vadd_set Set.iUnion_vadd_set
+-/
 
 end SMul
 
@@ -428,47 +468,59 @@ theorem smul_set_subset_iff : a • s ⊆ t ↔ ∀ ⦃b⦄, b ∈ s → a • b
 #align set.vadd_set_subset_iff Set.vadd_set_subset_iff
 -/
 
+#print Set.smul_set_union /-
 @[to_additive]
 theorem smul_set_union : a • (t₁ ∪ t₂) = a • t₁ ∪ a • t₂ :=
   image_union _ _ _
 #align set.smul_set_union Set.smul_set_union
 #align set.vadd_set_union Set.vadd_set_union
+-/
 
+#print Set.smul_set_inter_subset /-
 @[to_additive]
 theorem smul_set_inter_subset : a • (t₁ ∩ t₂) ⊆ a • t₁ ∩ a • t₂ :=
   image_inter_subset _ _ _
 #align set.smul_set_inter_subset Set.smul_set_inter_subset
 #align set.vadd_set_inter_subset Set.vadd_set_inter_subset
+-/
 
+#print Set.smul_set_Union /-
 @[to_additive]
 theorem smul_set_Union (a : α) (s : ι → Set β) : (a • ⋃ i, s i) = ⋃ i, a • s i :=
   image_iUnion
 #align set.smul_set_Union Set.smul_set_Union
 #align set.vadd_set_Union Set.vadd_set_Union
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
+#print Set.smul_set_iUnion₂ /-
 @[to_additive]
 theorem smul_set_iUnion₂ (a : α) (s : ∀ i, κ i → Set β) :
     (a • ⋃ (i) (j), s i j) = ⋃ (i) (j), a • s i j :=
   image_iUnion₂ _ _
 #align set.smul_set_Union₂ Set.smul_set_iUnion₂
 #align set.vadd_set_Union₂ Set.vadd_set_iUnion₂
+-/
 
+#print Set.smul_set_iInter_subset /-
 @[to_additive]
 theorem smul_set_iInter_subset (a : α) (t : ι → Set β) : (a • ⋂ i, t i) ⊆ ⋂ i, a • t i :=
   image_iInter_subset _ _
 #align set.smul_set_Inter_subset Set.smul_set_iInter_subset
 #align set.vadd_set_Inter_subset Set.vadd_set_iInter_subset
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
+#print Set.smul_set_iInter₂_subset /-
 @[to_additive]
 theorem smul_set_iInter₂_subset (a : α) (t : ∀ i, κ i → Set β) :
     (a • ⋂ (i) (j), t i j) ⊆ ⋂ (i) (j), a • t i j :=
   image_iInter₂_subset _ _
 #align set.smul_set_Inter₂_subset Set.smul_set_iInter₂_subset
 #align set.vadd_set_Inter₂_subset Set.vadd_set_iInter₂_subset
+-/
 
 #print Set.Nonempty.smul_set /-
 @[to_additive]
@@ -520,6 +572,7 @@ end Mul
 
 variable {s s₁ s₂ : Set α} {t t₁ t₂ : Set β} {a : α} {b : β}
 
+#print Set.range_smul_range /-
 @[to_additive]
 theorem range_smul_range {ι κ : Type _} [SMul α β] (b : ι → α) (c : κ → β) :
     range b • range c = range fun p : ι × κ => b p.1 • c p.2 :=
@@ -530,12 +583,15 @@ theorem range_smul_range {ι κ : Type _} [SMul α β] (b : ι → α) (c : κ 
       fun ⟨⟨i, j⟩, h⟩ => Set.mem_smul.2 ⟨b i, c j, ⟨i, rfl⟩, ⟨j, rfl⟩, h⟩⟩
 #align set.range_smul_range Set.range_smul_range
 #align set.range_vadd_range Set.range_vadd_range
+-/
 
+#print Set.smul_set_range /-
 @[to_additive]
 theorem smul_set_range [SMul α β] {ι : Sort _} {f : ι → β} : a • range f = range fun i => a • f i :=
   (range_comp _ _).symm
 #align set.smul_set_range Set.smul_set_range
 #align set.vadd_set_range Set.vadd_set_range
+-/
 
 #print Set.smulCommClass_set /-
 @[to_additive]
@@ -691,27 +747,31 @@ section Vsub
 variable {ι : Sort _} {κ : ι → Sort _} [VSub α β] {s s₁ s₂ t t₁ t₂ : Set β} {u : Set α} {a : α}
   {b c : β}
 
-include α
-
 #print Set.vsub /-
 instance vsub : VSub (Set α) (Set β) :=
   ⟨image2 (· -ᵥ ·)⟩
 #align set.has_vsub Set.vsub
 -/
 
+#print Set.image2_vsub /-
 @[simp]
 theorem image2_vsub : (image2 VSub.vsub s t : Set α) = s -ᵥ t :=
   rfl
 #align set.image2_vsub Set.image2_vsub
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print Set.image_vsub_prod /-
 theorem image_vsub_prod : (fun x : β × β => x.fst -ᵥ x.snd) '' s ×ˢ t = s -ᵥ t :=
   image_prod _
 #align set.image_vsub_prod Set.image_vsub_prod
+-/
 
+#print Set.mem_vsub /-
 theorem mem_vsub : a ∈ s -ᵥ t ↔ ∃ x y, x ∈ s ∧ y ∈ t ∧ x -ᵥ y = a :=
   Iff.rfl
 #align set.mem_vsub Set.mem_vsub
+-/
 
 #print Set.vsub_mem_vsub /-
 theorem vsub_mem_vsub (hb : b ∈ s) (hc : c ∈ t) : b -ᵥ c ∈ s -ᵥ t :=
@@ -733,15 +793,19 @@ theorem vsub_empty (s : Set β) : s -ᵥ ∅ = ∅ :=
 #align set.vsub_empty Set.vsub_empty
 -/
 
+#print Set.vsub_eq_empty /-
 @[simp]
 theorem vsub_eq_empty : s -ᵥ t = ∅ ↔ s = ∅ ∨ t = ∅ :=
   image2_eq_empty_iff
 #align set.vsub_eq_empty Set.vsub_eq_empty
+-/
 
+#print Set.vsub_nonempty /-
 @[simp]
 theorem vsub_nonempty : (s -ᵥ t : Set α).Nonempty ↔ s.Nonempty ∧ t.Nonempty :=
   image2_nonempty_iff
 #align set.vsub_nonempty Set.vsub_nonempty
+-/
 
 #print Set.Nonempty.vsub /-
 theorem Nonempty.vsub : s.Nonempty → t.Nonempty → (s -ᵥ t : Set α).Nonempty :=
@@ -749,13 +813,17 @@ theorem Nonempty.vsub : s.Nonempty → t.Nonempty → (s -ᵥ t : Set α).Nonemp
 #align set.nonempty.vsub Set.Nonempty.vsub
 -/
 
+#print Set.Nonempty.of_vsub_left /-
 theorem Nonempty.of_vsub_left : (s -ᵥ t : Set α).Nonempty → s.Nonempty :=
   Nonempty.of_image2_left
 #align set.nonempty.of_vsub_left Set.Nonempty.of_vsub_left
+-/
 
+#print Set.Nonempty.of_vsub_right /-
 theorem Nonempty.of_vsub_right : (s -ᵥ t : Set α).Nonempty → t.Nonempty :=
   Nonempty.of_image2_right
 #align set.nonempty.of_vsub_right Set.Nonempty.of_vsub_right
+-/
 
 #print Set.vsub_singleton /-
 @[simp]
@@ -771,10 +839,12 @@ theorem singleton_vsub (t : Set β) (b : β) : {b} -ᵥ t = (· -ᵥ ·) b '' t
 #align set.singleton_vsub Set.singleton_vsub
 -/
 
+#print Set.singleton_vsub_singleton /-
 @[simp]
 theorem singleton_vsub_singleton : ({b} : Set β) -ᵥ {c} = {b -ᵥ c} :=
   image2_singleton
 #align set.singleton_vsub_singleton Set.singleton_vsub_singleton
+-/
 
 #print Set.vsub_subset_vsub /-
 @[mono]
@@ -795,9 +865,11 @@ theorem vsub_subset_vsub_right : s₁ ⊆ s₂ → s₁ -ᵥ t ⊆ s₂ -ᵥ t :
 #align set.vsub_subset_vsub_right Set.vsub_subset_vsub_right
 -/
 
+#print Set.vsub_subset_iff /-
 theorem vsub_subset_iff : s -ᵥ t ⊆ u ↔ ∀ x ∈ s, ∀ y ∈ t, x -ᵥ y ∈ u :=
   image2_subset_iff
 #align set.vsub_subset_iff Set.vsub_subset_iff
+-/
 
 #print Set.vsub_self_mono /-
 theorem vsub_self_mono (h : s ⊆ t) : s -ᵥ s ⊆ t -ᵥ t :=
@@ -805,104 +877,141 @@ theorem vsub_self_mono (h : s ⊆ t) : s -ᵥ s ⊆ t -ᵥ t :=
 #align set.vsub_self_mono Set.vsub_self_mono
 -/
 
+#print Set.union_vsub /-
 theorem union_vsub : s₁ ∪ s₂ -ᵥ t = s₁ -ᵥ t ∪ (s₂ -ᵥ t) :=
   image2_union_left
 #align set.union_vsub Set.union_vsub
+-/
 
+#print Set.vsub_union /-
 theorem vsub_union : s -ᵥ (t₁ ∪ t₂) = s -ᵥ t₁ ∪ (s -ᵥ t₂) :=
   image2_union_right
 #align set.vsub_union Set.vsub_union
+-/
 
+#print Set.inter_vsub_subset /-
 theorem inter_vsub_subset : s₁ ∩ s₂ -ᵥ t ⊆ (s₁ -ᵥ t) ∩ (s₂ -ᵥ t) :=
   image2_inter_subset_left
 #align set.inter_vsub_subset Set.inter_vsub_subset
+-/
 
+#print Set.vsub_inter_subset /-
 theorem vsub_inter_subset : s -ᵥ t₁ ∩ t₂ ⊆ (s -ᵥ t₁) ∩ (s -ᵥ t₂) :=
   image2_inter_subset_right
 #align set.vsub_inter_subset Set.vsub_inter_subset
+-/
 
+#print Set.inter_vsub_union_subset_union /-
 theorem inter_vsub_union_subset_union : s₁ ∩ s₂ -ᵥ (t₁ ∪ t₂) ⊆ s₁ -ᵥ t₁ ∪ (s₂ -ᵥ t₂) :=
   image2_inter_union_subset_union
 #align set.inter_vsub_union_subset_union Set.inter_vsub_union_subset_union
+-/
 
+#print Set.union_vsub_inter_subset_union /-
 theorem union_vsub_inter_subset_union : s₁ ∪ s₂ -ᵥ t₁ ∩ t₂ ⊆ s₁ -ᵥ t₁ ∪ (s₂ -ᵥ t₂) :=
   image2_union_inter_subset_union
 #align set.union_vsub_inter_subset_union Set.union_vsub_inter_subset_union
+-/
 
+#print Set.iUnion_vsub_left_image /-
 theorem iUnion_vsub_left_image : (⋃ a ∈ s, (· -ᵥ ·) a '' t) = s -ᵥ t :=
   iUnion_image_left _
 #align set.Union_vsub_left_image Set.iUnion_vsub_left_image
+-/
 
+#print Set.iUnion_vsub_right_image /-
 theorem iUnion_vsub_right_image : (⋃ a ∈ t, (· -ᵥ a) '' s) = s -ᵥ t :=
   iUnion_image_right _
 #align set.Union_vsub_right_image Set.iUnion_vsub_right_image
+-/
 
+#print Set.iUnion_vsub /-
 theorem iUnion_vsub (s : ι → Set β) (t : Set β) : (⋃ i, s i) -ᵥ t = ⋃ i, s i -ᵥ t :=
   image2_iUnion_left _ _ _
 #align set.Union_vsub Set.iUnion_vsub
+-/
 
+#print Set.vsub_iUnion /-
 theorem vsub_iUnion (s : Set β) (t : ι → Set β) : (s -ᵥ ⋃ i, t i) = ⋃ i, s -ᵥ t i :=
   image2_iUnion_right _ _ _
 #align set.vsub_Union Set.vsub_iUnion
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
+#print Set.iUnion₂_vsub /-
 theorem iUnion₂_vsub (s : ∀ i, κ i → Set β) (t : Set β) :
     (⋃ (i) (j), s i j) -ᵥ t = ⋃ (i) (j), s i j -ᵥ t :=
   image2_iUnion₂_left _ _ _
 #align set.Union₂_vsub Set.iUnion₂_vsub
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
+#print Set.vsub_iUnion₂ /-
 theorem vsub_iUnion₂ (s : Set β) (t : ∀ i, κ i → Set β) :
     (s -ᵥ ⋃ (i) (j), t i j) = ⋃ (i) (j), s -ᵥ t i j :=
   image2_iUnion₂_right _ _ _
 #align set.vsub_Union₂ Set.vsub_iUnion₂
+-/
 
+#print Set.iInter_vsub_subset /-
 theorem iInter_vsub_subset (s : ι → Set β) (t : Set β) : (⋂ i, s i) -ᵥ t ⊆ ⋂ i, s i -ᵥ t :=
   image2_iInter_subset_left _ _ _
 #align set.Inter_vsub_subset Set.iInter_vsub_subset
+-/
 
+#print Set.vsub_iInter_subset /-
 theorem vsub_iInter_subset (s : Set β) (t : ι → Set β) : (s -ᵥ ⋂ i, t i) ⊆ ⋂ i, s -ᵥ t i :=
   image2_iInter_subset_right _ _ _
 #align set.vsub_Inter_subset Set.vsub_iInter_subset
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
+#print Set.iInter₂_vsub_subset /-
 theorem iInter₂_vsub_subset (s : ∀ i, κ i → Set β) (t : Set β) :
     (⋂ (i) (j), s i j) -ᵥ t ⊆ ⋂ (i) (j), s i j -ᵥ t :=
   image2_iInter₂_subset_left _ _ _
 #align set.Inter₂_vsub_subset Set.iInter₂_vsub_subset
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
+#print Set.vsub_iInter₂_subset /-
 theorem vsub_iInter₂_subset (s : Set β) (t : ∀ i, κ i → Set β) :
     (s -ᵥ ⋂ (i) (j), t i j) ⊆ ⋂ (i) (j), s -ᵥ t i j :=
   image2_iInter₂_subset_right _ _ _
 #align set.vsub_Inter₂_subset Set.vsub_iInter₂_subset
+-/
 
 end Vsub
 
 open scoped Pointwise
 
+#print Set.image_smul_comm /-
 @[to_additive]
 theorem image_smul_comm [SMul α β] [SMul α γ] (f : β → γ) (a : α) (s : Set β) :
     (∀ b, f (a • b) = a • f b) → f '' (a • s) = a • f '' s :=
   image_comm
 #align set.image_smul_comm Set.image_smul_comm
 #align set.image_vadd_comm Set.image_vadd_comm
+-/
 
+#print Set.image_smul_distrib /-
 @[to_additive]
 theorem image_smul_distrib [MulOneClass α] [MulOneClass β] [MonoidHomClass F α β] (f : F) (a : α)
     (s : Set α) : f '' (a • s) = f a • f '' s :=
   image_comm <| map_mul _ _
 #align set.image_smul_distrib Set.image_smul_distrib
 #align set.image_vadd_distrib Set.image_vadd_distrib
+-/
 
 section SMul
 
 variable [SMul αᵐᵒᵖ β] [SMul β γ] [SMul α γ]
 
+#print Set.op_smul_set_smul_eq_smul_smul_set /-
 -- TODO: replace hypothesis and conclusion with a typeclass
 @[to_additive]
 theorem op_smul_set_smul_eq_smul_smul_set (a : α) (s : Set β) (t : Set γ)
@@ -910,6 +1019,7 @@ theorem op_smul_set_smul_eq_smul_smul_set (a : α) (s : Set β) (t : Set γ)
   ext; simp [mem_smul, mem_smul_set, h]
 #align set.op_smul_set_smul_eq_smul_smul_set Set.op_smul_set_smul_eq_smul_smul_set
 #align set.op_vadd_set_vadd_eq_vadd_vadd_set Set.op_vadd_set_vadd_eq_vadd_vadd_set
+-/
 
 end SMul
 
@@ -923,17 +1033,21 @@ because `0 * ∅ ≠ 0`.
 -/
 
 
+#print Set.smul_zero_subset /-
 theorem smul_zero_subset (s : Set α) : s • (0 : Set β) ⊆ 0 := by simp [subset_def, mem_smul]
 #align set.smul_zero_subset Set.smul_zero_subset
+-/
 
 #print Set.zero_smul_subset /-
 theorem zero_smul_subset (t : Set β) : (0 : Set α) • t ⊆ 0 := by simp [subset_def, mem_smul]
 #align set.zero_smul_subset Set.zero_smul_subset
 -/
 
+#print Set.Nonempty.smul_zero /-
 theorem Nonempty.smul_zero (hs : s.Nonempty) : s • (0 : Set β) = 0 :=
   s.smul_zero_subset.antisymm <| by simpa [mem_smul] using hs
 #align set.nonempty.smul_zero Set.Nonempty.smul_zero
+-/
 
 #print Set.Nonempty.zero_smul /-
 theorem Nonempty.zero_smul (ht : t.Nonempty) : (0 : Set α) • t = 0 :=
@@ -982,12 +1096,14 @@ theorem zero_mem_smul_iff : (0 : β) ∈ s • t ↔ (0 : α) ∈ s ∧ t.Nonemp
 #align set.zero_mem_smul_iff Set.zero_mem_smul_iff
 -/
 
+#print Set.zero_mem_smul_set_iff /-
 theorem zero_mem_smul_set_iff (ha : a ≠ 0) : (0 : β) ∈ a • t ↔ (0 : β) ∈ t :=
   by
   refine' ⟨_, zero_mem_smul_set⟩
   rintro ⟨b, hb, h⟩
   rwa [(eq_zero_or_eq_zero_of_smul_eq_zero h).resolve_left ha] at hb 
 #align set.zero_mem_smul_set_iff Set.zero_mem_smul_set_iff
+-/
 
 end SMulWithZero
 
@@ -995,12 +1111,14 @@ section Semigroup
 
 variable [Semigroup α]
 
+#print Set.op_smul_set_mul_eq_mul_smul_set /-
 @[to_additive]
 theorem op_smul_set_mul_eq_mul_smul_set (a : α) (s : Set α) (t : Set α) :
     op a • s * t = s * a • t :=
   op_smul_set_smul_eq_smul_smul_set _ _ _ fun _ _ _ => mul_assoc _ _ _
 #align set.op_smul_set_mul_eq_mul_smul_set Set.op_smul_set_mul_eq_mul_smul_set
 #align set.op_vadd_set_add_eq_add_vadd_set Set.op_vadd_set_add_eq_add_vadd_set
+-/
 
 end Semigroup
 
@@ -1009,12 +1127,14 @@ section LeftCancelSemigroup
 variable [LeftCancelSemigroup α] {s t : Set α}
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print Set.pairwiseDisjoint_smul_iff /-
 @[to_additive]
 theorem pairwiseDisjoint_smul_iff :
     s.PairwiseDisjoint (· • t) ↔ (s ×ˢ t).InjOn fun p => p.1 * p.2 :=
   pairwiseDisjoint_image_right_iff fun _ _ => mul_right_injective _
 #align set.pairwise_disjoint_smul_iff Set.pairwiseDisjoint_smul_iff
 #align set.pairwise_disjoint_vadd_iff Set.pairwiseDisjoint_vadd_iff
+-/
 
 end LeftCancelSemigroup
 
@@ -1030,29 +1150,37 @@ theorem smul_mem_smul_set_iff : a • x ∈ a • s ↔ x ∈ s :=
 #align set.vadd_mem_vadd_set_iff Set.vadd_mem_vadd_set_iff
 -/
 
+#print Set.mem_smul_set_iff_inv_smul_mem /-
 @[to_additive]
 theorem mem_smul_set_iff_inv_smul_mem : x ∈ a • A ↔ a⁻¹ • x ∈ A :=
   show x ∈ MulAction.toPerm a '' A ↔ _ from mem_image_equiv
 #align set.mem_smul_set_iff_inv_smul_mem Set.mem_smul_set_iff_inv_smul_mem
 #align set.mem_vadd_set_iff_neg_vadd_mem Set.mem_vadd_set_iff_neg_vadd_mem
+-/
 
+#print Set.mem_inv_smul_set_iff /-
 @[to_additive]
 theorem mem_inv_smul_set_iff : x ∈ a⁻¹ • A ↔ a • x ∈ A := by
   simp only [← image_smul, mem_image, inv_smul_eq_iff, exists_eq_right]
 #align set.mem_inv_smul_set_iff Set.mem_inv_smul_set_iff
 #align set.mem_neg_vadd_set_iff Set.mem_neg_vadd_set_iff
+-/
 
+#print Set.preimage_smul /-
 @[to_additive]
 theorem preimage_smul (a : α) (t : Set β) : (fun x => a • x) ⁻¹' t = a⁻¹ • t :=
   ((MulAction.toPerm a).symm.image_eq_preimage _).symm
 #align set.preimage_smul Set.preimage_smul
 #align set.preimage_vadd Set.preimage_vadd
+-/
 
+#print Set.preimage_smul_inv /-
 @[to_additive]
 theorem preimage_smul_inv (a : α) (t : Set β) : (fun x => a⁻¹ • x) ⁻¹' t = a • t :=
   preimage_smul (toUnits a)⁻¹ t
 #align set.preimage_smul_inv Set.preimage_smul_inv
 #align set.preimage_vadd_neg Set.preimage_vadd_neg
+-/
 
 #print Set.set_smul_subset_set_smul_iff /-
 @[simp, to_additive]
@@ -1062,13 +1190,16 @@ theorem set_smul_subset_set_smul_iff : a • A ⊆ a • B ↔ A ⊆ B :=
 #align set.set_vadd_subset_set_vadd_iff Set.set_vadd_subset_set_vadd_iff
 -/
 
+#print Set.set_smul_subset_iff /-
 @[to_additive]
 theorem set_smul_subset_iff : a • A ⊆ B ↔ A ⊆ a⁻¹ • B :=
   image_subset_iff.trans <|
     iff_of_eq <| congr_arg _ <| preimage_equiv_eq_image_symm _ <| MulAction.toPerm _
 #align set.set_smul_subset_iff Set.set_smul_subset_iff
 #align set.set_vadd_subset_iff Set.set_vadd_subset_iff
+-/
 
+#print Set.subset_set_smul_iff /-
 @[to_additive]
 theorem subset_set_smul_iff : A ⊆ a • B ↔ a⁻¹ • A ⊆ B :=
   Iff.symm <|
@@ -1076,24 +1207,31 @@ theorem subset_set_smul_iff : A ⊆ a • B ↔ a⁻¹ • A ⊆ B :=
       Iff.symm <| iff_of_eq <| congr_arg _ <| image_equiv_eq_preimage_symm _ <| MulAction.toPerm _
 #align set.subset_set_smul_iff Set.subset_set_smul_iff
 #align set.subset_set_vadd_iff Set.subset_set_vadd_iff
+-/
 
+#print Set.smul_set_inter /-
 @[to_additive]
 theorem smul_set_inter : a • (s ∩ t) = a • s ∩ a • t :=
   image_inter <| MulAction.injective a
 #align set.smul_set_inter Set.smul_set_inter
 #align set.vadd_set_inter Set.vadd_set_inter
+-/
 
+#print Set.smul_set_sdiff /-
 @[to_additive]
 theorem smul_set_sdiff : a • (s \ t) = a • s \ a • t :=
   image_diff (MulAction.injective a) _ _
 #align set.smul_set_sdiff Set.smul_set_sdiff
 #align set.vadd_set_sdiff Set.vadd_set_sdiff
+-/
 
+#print Set.smul_set_symm_diff /-
 @[to_additive]
 theorem smul_set_symm_diff : a • s ∆ t = (a • s) ∆ (a • t) :=
   image_symm_diff (MulAction.injective a) _ _
 #align set.smul_set_symm_diff Set.smul_set_symm_diff
 #align set.vadd_set_symm_diff Set.vadd_set_symm_diff
+-/
 
 #print Set.smul_set_univ /-
 @[simp, to_additive]
@@ -1103,13 +1241,16 @@ theorem smul_set_univ : a • (univ : Set β) = univ :=
 #align set.vadd_set_univ Set.vadd_set_univ
 -/
 
+#print Set.smul_univ /-
 @[simp, to_additive]
 theorem smul_univ {s : Set α} (hs : s.Nonempty) : s • (univ : Set β) = univ :=
   let ⟨a, ha⟩ := hs
   eq_univ_of_forall fun b => ⟨a, a⁻¹ • b, ha, trivial, smul_inv_smul _ _⟩
 #align set.smul_univ Set.smul_univ
 #align set.vadd_univ Set.vadd_univ
+-/
 
+#print Set.smul_inter_ne_empty_iff /-
 @[to_additive]
 theorem smul_inter_ne_empty_iff {s t : Set α} {x : α} :
     x • s ∩ t ≠ ∅ ↔ ∃ a b, (a ∈ t ∧ b ∈ s) ∧ a * b⁻¹ = x :=
@@ -1123,14 +1264,18 @@ theorem smul_inter_ne_empty_iff {s t : Set α} {x : α} :
     exact ⟨a, mem_inter (mem_smul_set.mpr ⟨b, hb, by simp⟩) ha⟩
 #align set.smul_inter_ne_empty_iff Set.smul_inter_ne_empty_iff
 #align set.vadd_inter_ne_empty_iff Set.vadd_inter_ne_empty_iff
+-/
 
+#print Set.smul_inter_ne_empty_iff' /-
 @[to_additive]
 theorem smul_inter_ne_empty_iff' {s t : Set α} {x : α} :
     x • s ∩ t ≠ ∅ ↔ ∃ a b, (a ∈ t ∧ b ∈ s) ∧ a / b = x := by
   simp_rw [smul_inter_ne_empty_iff, div_eq_mul_inv]
 #align set.smul_inter_ne_empty_iff' Set.smul_inter_ne_empty_iff'
 #align set.vadd_inter_ne_empty_iff' Set.vadd_inter_ne_empty_iff'
+-/
 
+#print Set.op_smul_inter_ne_empty_iff /-
 @[to_additive]
 theorem op_smul_inter_ne_empty_iff {s t : Set α} {x : αᵐᵒᵖ} :
     x • s ∩ t ≠ ∅ ↔ ∃ a b, (a ∈ s ∧ b ∈ t) ∧ a⁻¹ * b = MulOpposite.unop x :=
@@ -1145,12 +1290,15 @@ theorem op_smul_inter_ne_empty_iff {s t : Set α} {x : αᵐᵒᵖ} :
     exact ⟨b, mem_inter (mem_smul_set.mpr ⟨a, ha, by simp [← this]⟩) hb⟩
 #align set.op_smul_inter_ne_empty_iff Set.op_smul_inter_ne_empty_iff
 #align set.op_vadd_inter_ne_empty_iff Set.op_vadd_inter_ne_empty_iff
+-/
 
+#print Set.iUnion_inv_smul /-
 @[simp, to_additive]
 theorem iUnion_inv_smul : (⋃ g : α, g⁻¹ • s) = ⋃ g : α, g • s :=
   Function.Surjective.iSup_congr _ inv_surjective fun g => rfl
 #align set.Union_inv_smul Set.iUnion_inv_smul
 #align set.Union_neg_vadd Set.iUnion_neg_vadd
+-/
 
 #print Set.iUnion_smul_eq_setOf_exists /-
 @[to_additive]
@@ -1166,64 +1314,92 @@ section GroupWithZero
 
 variable [GroupWithZero α] [MulAction α β] {s t : Set β} {a : α}
 
+#print Set.smul_mem_smul_set_iff₀ /-
 @[simp]
 theorem smul_mem_smul_set_iff₀ (ha : a ≠ 0) (A : Set β) (x : β) : a • x ∈ a • A ↔ x ∈ A :=
   show Units.mk0 a ha • _ ∈ _ ↔ _ from smul_mem_smul_set_iff
 #align set.smul_mem_smul_set_iff₀ Set.smul_mem_smul_set_iff₀
+-/
 
+#print Set.mem_smul_set_iff_inv_smul_mem₀ /-
 theorem mem_smul_set_iff_inv_smul_mem₀ (ha : a ≠ 0) (A : Set β) (x : β) : x ∈ a • A ↔ a⁻¹ • x ∈ A :=
   show _ ∈ Units.mk0 a ha • _ ↔ _ from mem_smul_set_iff_inv_smul_mem
 #align set.mem_smul_set_iff_inv_smul_mem₀ Set.mem_smul_set_iff_inv_smul_mem₀
+-/
 
+#print Set.mem_inv_smul_set_iff₀ /-
 theorem mem_inv_smul_set_iff₀ (ha : a ≠ 0) (A : Set β) (x : β) : x ∈ a⁻¹ • A ↔ a • x ∈ A :=
   show _ ∈ (Units.mk0 a ha)⁻¹ • _ ↔ _ from mem_inv_smul_set_iff
 #align set.mem_inv_smul_set_iff₀ Set.mem_inv_smul_set_iff₀
+-/
 
+#print Set.preimage_smul₀ /-
 theorem preimage_smul₀ (ha : a ≠ 0) (t : Set β) : (fun x => a • x) ⁻¹' t = a⁻¹ • t :=
   preimage_smul (Units.mk0 a ha) t
 #align set.preimage_smul₀ Set.preimage_smul₀
+-/
 
+#print Set.preimage_smul_inv₀ /-
 theorem preimage_smul_inv₀ (ha : a ≠ 0) (t : Set β) : (fun x => a⁻¹ • x) ⁻¹' t = a • t :=
   preimage_smul (Units.mk0 a ha)⁻¹ t
 #align set.preimage_smul_inv₀ Set.preimage_smul_inv₀
+-/
 
+#print Set.set_smul_subset_set_smul_iff₀ /-
 @[simp]
 theorem set_smul_subset_set_smul_iff₀ (ha : a ≠ 0) {A B : Set β} : a • A ⊆ a • B ↔ A ⊆ B :=
   show Units.mk0 a ha • _ ⊆ _ ↔ _ from set_smul_subset_set_smul_iff
 #align set.set_smul_subset_set_smul_iff₀ Set.set_smul_subset_set_smul_iff₀
+-/
 
+#print Set.set_smul_subset_iff₀ /-
 theorem set_smul_subset_iff₀ (ha : a ≠ 0) {A B : Set β} : a • A ⊆ B ↔ A ⊆ a⁻¹ • B :=
   show Units.mk0 a ha • _ ⊆ _ ↔ _ from set_smul_subset_iff
 #align set.set_smul_subset_iff₀ Set.set_smul_subset_iff₀
+-/
 
+#print Set.subset_set_smul_iff₀ /-
 theorem subset_set_smul_iff₀ (ha : a ≠ 0) {A B : Set β} : A ⊆ a • B ↔ a⁻¹ • A ⊆ B :=
   show _ ⊆ Units.mk0 a ha • _ ↔ _ from subset_set_smul_iff
 #align set.subset_set_smul_iff₀ Set.subset_set_smul_iff₀
+-/
 
+#print Set.smul_set_inter₀ /-
 theorem smul_set_inter₀ (ha : a ≠ 0) : a • (s ∩ t) = a • s ∩ a • t :=
   show Units.mk0 a ha • _ = _ from smul_set_inter
 #align set.smul_set_inter₀ Set.smul_set_inter₀
+-/
 
+#print Set.smul_set_sdiff₀ /-
 theorem smul_set_sdiff₀ (ha : a ≠ 0) : a • (s \ t) = a • s \ a • t :=
   image_diff (MulAction.injective₀ ha) _ _
 #align set.smul_set_sdiff₀ Set.smul_set_sdiff₀
+-/
 
+#print Set.smul_set_symm_diff₀ /-
 theorem smul_set_symm_diff₀ (ha : a ≠ 0) : a • s ∆ t = (a • s) ∆ (a • t) :=
   image_symm_diff (MulAction.injective₀ ha) _ _
 #align set.smul_set_symm_diff₀ Set.smul_set_symm_diff₀
+-/
 
+#print Set.smul_set_univ₀ /-
 theorem smul_set_univ₀ (ha : a ≠ 0) : a • (univ : Set β) = univ :=
   image_univ_of_surjective <| MulAction.surjective₀ ha
 #align set.smul_set_univ₀ Set.smul_set_univ₀
+-/
 
+#print Set.smul_univ₀ /-
 theorem smul_univ₀ {s : Set α} (hs : ¬s ⊆ 0) : s • (univ : Set β) = univ :=
   let ⟨a, ha, ha₀⟩ := not_subset.1 hs
   eq_univ_of_forall fun b => ⟨a, a⁻¹ • b, ha, trivial, smul_inv_smul₀ ha₀ _⟩
 #align set.smul_univ₀ Set.smul_univ₀
+-/
 
+#print Set.smul_univ₀' /-
 theorem smul_univ₀' {s : Set α} (hs : s.Nontrivial) : s • (univ : Set β) = univ :=
   smul_univ₀ hs.not_subset_singleton
 #align set.smul_univ₀' Set.smul_univ₀'
+-/
 
 end GroupWithZero
 
@@ -1231,15 +1407,19 @@ section Monoid
 
 variable [Monoid α] [AddGroup β] [DistribMulAction α β] (a : α) (s : Set α) (t : Set β)
 
+#print Set.smul_set_neg /-
 @[simp]
 theorem smul_set_neg : a • -t = -(a • t) := by
   simp_rw [← image_smul, ← image_neg, image_image, smul_neg]
 #align set.smul_set_neg Set.smul_set_neg
+-/
 
+#print Set.smul_neg /-
 @[simp]
 protected theorem smul_neg : s • -t = -(s • t) := by simp_rw [← image_neg];
   exact image_image2_right_comm smul_neg
 #align set.smul_neg Set.smul_neg
+-/
 
 end Monoid
 
@@ -1247,15 +1427,19 @@ section Ring
 
 variable [Ring α] [AddCommGroup β] [Module α β] (a : α) (s : Set α) (t : Set β)
 
+#print Set.neg_smul_set /-
 @[simp]
 theorem neg_smul_set : -a • t = -(a • t) := by
   simp_rw [← image_smul, ← image_neg, image_image, neg_smul]
 #align set.neg_smul_set Set.neg_smul_set
+-/
 
+#print Set.neg_smul /-
 @[simp]
 protected theorem neg_smul : -s • t = -(s • t) := by simp_rw [← image_neg];
   exact image2_image_left_comm neg_smul
 #align set.neg_smul Set.neg_smul
+-/
 
 end Ring
 
Diff
@@ -1154,8 +1154,8 @@ theorem iUnion_inv_smul : (⋃ g : α, g⁻¹ • s) = ⋃ g : α, g • s :=
 
 #print Set.iUnion_smul_eq_setOf_exists /-
 @[to_additive]
-theorem iUnion_smul_eq_setOf_exists {s : Set β} : (⋃ g : α, g • s) = { a | ∃ g : α, g • a ∈ s } :=
-  by simp_rw [← Union_set_of, ← Union_inv_smul, ← preimage_smul, preimage]
+theorem iUnion_smul_eq_setOf_exists {s : Set β} : (⋃ g : α, g • s) = {a | ∃ g : α, g • a ∈ s} := by
+  simp_rw [← Union_set_of, ← Union_inv_smul, ← preimage_smul, preimage]
 #align set.Union_smul_eq_set_of_exists Set.iUnion_smul_eq_setOf_exists
 #align set.Union_vadd_eq_set_of_exists Set.iUnion_vadd_eq_setOf_exists
 -/
Diff
@@ -628,8 +628,8 @@ protected def mulAction [Monoid α] [MulAction α β] : MulAction (Set α) (Set
       "An additive action of an additive monoid on a type `β` gives an additive action\non `set β`."]
 protected def mulActionSet [Monoid α] [MulAction α β] : MulAction α (Set β)
     where
-  mul_smul := by intros ; simp only [← image_smul, image_image, ← mul_smul]
-  one_smul := by intros ; simp only [← image_smul, one_smul, image_id']
+  mul_smul := by intros; simp only [← image_smul, image_image, ← mul_smul]
+  one_smul := by intros; simp only [← image_smul, one_smul, image_id']
 #align set.mul_action_set Set.mulActionSet
 #align set.add_action_set Set.addActionSet
 -/
@@ -665,7 +665,7 @@ instance [Zero α] [Zero β] [SMul α β] [NoZeroSMulDivisors α β] :
     by_contra' H
     have hst : (s • t).Nonempty := h.symm.subst zero_nonempty
     simp_rw [← hst.of_smul_left.subset_zero_iff, ← hst.of_smul_right.subset_zero_iff, not_subset,
-      mem_zero] at H
+      mem_zero] at H 
     obtain ⟨⟨a, hs, ha⟩, b, ht, hb⟩ := H
     exact (eq_zero_or_eq_zero_of_smul_eq_zero <| h.subset <| smul_mem_smul hs ht).elim ha hb⟩
 
@@ -675,7 +675,7 @@ instance noZeroSMulDivisors_set [Zero α] [Zero β] [SMul α β] [NoZeroSMulDivi
   ⟨fun a s h => by
     by_contra' H
     have hst : (a • s).Nonempty := h.symm.subst zero_nonempty
-    simp_rw [← hst.of_image.subset_zero_iff, not_subset, mem_zero] at H
+    simp_rw [← hst.of_image.subset_zero_iff, not_subset, mem_zero] at H 
     obtain ⟨ha, b, ht, hb⟩ := H
     exact (eq_zero_or_eq_zero_of_smul_eq_zero <| h.subset <| smul_mem_smul_set ht).elim ha hb⟩
 #align set.no_zero_smul_divisors_set Set.noZeroSMulDivisors_set
@@ -986,7 +986,7 @@ theorem zero_mem_smul_set_iff (ha : a ≠ 0) : (0 : β) ∈ a • t ↔ (0 : β)
   by
   refine' ⟨_, zero_mem_smul_set⟩
   rintro ⟨b, hb, h⟩
-  rwa [(eq_zero_or_eq_zero_of_smul_eq_zero h).resolve_left ha] at hb
+  rwa [(eq_zero_or_eq_zero_of_smul_eq_zero h).resolve_left ha] at hb 
 #align set.zero_mem_smul_set_iff Set.zero_mem_smul_set_iff
 
 end SMulWithZero
Diff
@@ -50,7 +50,7 @@ variable {F α β γ : Type _}
 
 namespace Set
 
-open Pointwise
+open scoped Pointwise
 
 /-! ### Translation/scaling of sets -/
 
@@ -883,7 +883,7 @@ theorem vsub_iInter₂_subset (s : Set β) (t : ∀ i, κ i → Set β) :
 
 end Vsub
 
-open Pointwise
+open scoped Pointwise
 
 @[to_additive]
 theorem image_smul_comm [SMul α β] [SMul α γ] (f : β → γ) (a : α) (s : Set β) :
Diff
@@ -112,12 +112,6 @@ theorem mem_smul : b ∈ s • t ↔ ∃ x y, x ∈ s ∧ y ∈ t ∧ x • y =
 #align set.mem_vadd Set.mem_vadd
 -/
 
-/- warning: set.smul_mem_smul -> Set.smul_mem_smul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SMul.{u1, u2} α β] {s : Set.{u1} α} {t : Set.{u2} β} {a : α} {b : β}, (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) a s) -> (Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) b t) -> (Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) (SMul.smul.{u1, u2} α β _inst_1 a b) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s t))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : SMul.{u2, u1} α β] {s : Set.{u2} α} {t : Set.{u1} β} {a : α} {b : β}, (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) a s) -> (Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) b t) -> (Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) (HSMul.hSMul.{u2, u1, u1} α β β (instHSMul.{u2, u1} α β _inst_1) a b) (HSMul.hSMul.{u2, u1, u1} (Set.{u2} α) (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.smul.{u2, u1} α β _inst_1)) s t))
-Case conversion may be inaccurate. Consider using '#align set.smul_mem_smul Set.smul_mem_smulₓ'. -/
 @[to_additive]
 theorem smul_mem_smul : a ∈ s → b ∈ t → a • b ∈ s • t :=
   mem_image2_of_mem
@@ -156,12 +150,6 @@ theorem smul_nonempty : (s • t).Nonempty ↔ s.Nonempty ∧ t.Nonempty :=
 #align set.vadd_nonempty Set.vadd_nonempty
 -/
 
-/- warning: set.nonempty.smul -> Set.Nonempty.smul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SMul.{u1, u2} α β] {s : Set.{u1} α} {t : Set.{u2} β}, (Set.Nonempty.{u1} α s) -> (Set.Nonempty.{u2} β t) -> (Set.Nonempty.{u2} β (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s t))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : SMul.{u2, u1} α β] {s : Set.{u2} α} {t : Set.{u1} β}, (Set.Nonempty.{u2} α s) -> (Set.Nonempty.{u1} β t) -> (Set.Nonempty.{u1} β (HSMul.hSMul.{u2, u1, u1} (Set.{u2} α) (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.smul.{u2, u1} α β _inst_1)) s t))
-Case conversion may be inaccurate. Consider using '#align set.nonempty.smul Set.Nonempty.smulₓ'. -/
 @[to_additive]
 theorem Nonempty.smul : s.Nonempty → t.Nonempty → (s • t).Nonempty :=
   Nonempty.image2
@@ -208,12 +196,6 @@ theorem singleton_smul_singleton : ({a} : Set α) • ({b} : Set β) = {a • b}
 #align set.singleton_vadd_singleton Set.singleton_vadd_singleton
 -/
 
-/- warning: set.smul_subset_smul -> Set.smul_subset_smul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SMul.{u1, u2} α β] {s₁ : Set.{u1} α} {s₂ : Set.{u1} α} {t₁ : Set.{u2} β} {t₂ : Set.{u2} β}, (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) s₁ s₂) -> (HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) t₁ t₂) -> (HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s₁ t₁) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s₂ t₂))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : SMul.{u2, u1} α β] {s₁ : Set.{u2} α} {s₂ : Set.{u2} α} {t₁ : Set.{u1} β} {t₂ : Set.{u1} β}, (HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) s₁ s₂) -> (HasSubset.Subset.{u1} (Set.{u1} β) (Set.instHasSubsetSet.{u1} β) t₁ t₂) -> (HasSubset.Subset.{u1} (Set.{u1} β) (Set.instHasSubsetSet.{u1} β) (HSMul.hSMul.{u2, u1, u1} (Set.{u2} α) (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.smul.{u2, u1} α β _inst_1)) s₁ t₁) (HSMul.hSMul.{u2, u1, u1} (Set.{u2} α) (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.smul.{u2, u1} α β _inst_1)) s₂ t₂))
-Case conversion may be inaccurate. Consider using '#align set.smul_subset_smul Set.smul_subset_smulₓ'. -/
 @[to_additive, mono]
 theorem smul_subset_smul : s₁ ⊆ s₂ → t₁ ⊆ t₂ → s₁ • t₁ ⊆ s₂ • t₂ :=
   image2_subset
@@ -228,12 +210,6 @@ theorem smul_subset_smul_left : t₁ ⊆ t₂ → s • t₁ ⊆ s • t₂ :=
 #align set.vadd_subset_vadd_left Set.vadd_subset_vadd_left
 -/
 
-/- warning: set.smul_subset_smul_right -> Set.smul_subset_smul_right is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SMul.{u1, u2} α β] {s₁ : Set.{u1} α} {s₂ : Set.{u1} α} {t : Set.{u2} β}, (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) s₁ s₂) -> (HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s₁ t) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s₂ t))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : SMul.{u2, u1} α β] {s₁ : Set.{u2} α} {s₂ : Set.{u2} α} {t : Set.{u1} β}, (HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) s₁ s₂) -> (HasSubset.Subset.{u1} (Set.{u1} β) (Set.instHasSubsetSet.{u1} β) (HSMul.hSMul.{u2, u1, u1} (Set.{u2} α) (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.smul.{u2, u1} α β _inst_1)) s₁ t) (HSMul.hSMul.{u2, u1, u1} (Set.{u2} α) (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.smul.{u2, u1} α β _inst_1)) s₂ t))
-Case conversion may be inaccurate. Consider using '#align set.smul_subset_smul_right Set.smul_subset_smul_rightₓ'. -/
 @[to_additive]
 theorem smul_subset_smul_right : s₁ ⊆ s₂ → s₁ • t ⊆ s₂ • t :=
   image2_subset_right
@@ -250,72 +226,36 @@ theorem smul_subset_iff : s • t ⊆ u ↔ ∀ a ∈ s, ∀ b ∈ t, a • b 
 
 attribute [mono] vadd_subset_vadd
 
-/- warning: set.union_smul -> Set.union_smul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SMul.{u1, u2} α β] {s₁ : Set.{u1} α} {s₂ : Set.{u1} α} {t : Set.{u2} β}, Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) (Union.union.{u1} (Set.{u1} α) (Set.hasUnion.{u1} α) s₁ s₂) t) (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s₁ t) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s₂ t))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SMul.{u1, u2} α β] {s₁ : Set.{u1} α} {s₂ : Set.{u1} α} {t : Set.{u2} β}, Eq.{succ u2} (Set.{u2} β) (HSMul.hSMul.{u1, u2, u2} (Set.{u1} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1)) (Union.union.{u1} (Set.{u1} α) (Set.instUnionSet.{u1} α) s₁ s₂) t) (Union.union.{u2} (Set.{u2} β) (Set.instUnionSet.{u2} β) (HSMul.hSMul.{u1, u2, u2} (Set.{u1} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1)) s₁ t) (HSMul.hSMul.{u1, u2, u2} (Set.{u1} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1)) s₂ t))
-Case conversion may be inaccurate. Consider using '#align set.union_smul Set.union_smulₓ'. -/
 @[to_additive]
 theorem union_smul : (s₁ ∪ s₂) • t = s₁ • t ∪ s₂ • t :=
   image2_union_left
 #align set.union_smul Set.union_smul
 #align set.union_vadd Set.union_vadd
 
-/- warning: set.smul_union -> Set.smul_union is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SMul.{u1, u2} α β] {s : Set.{u1} α} {t₁ : Set.{u2} β} {t₂ : Set.{u2} β}, Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) t₁ t₂)) (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s t₁) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s t₂))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SMul.{u1, u2} α β] {s : Set.{u1} α} {t₁ : Set.{u2} β} {t₂ : Set.{u2} β}, Eq.{succ u2} (Set.{u2} β) (HSMul.hSMul.{u1, u2, u2} (Set.{u1} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1)) s (Union.union.{u2} (Set.{u2} β) (Set.instUnionSet.{u2} β) t₁ t₂)) (Union.union.{u2} (Set.{u2} β) (Set.instUnionSet.{u2} β) (HSMul.hSMul.{u1, u2, u2} (Set.{u1} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1)) s t₁) (HSMul.hSMul.{u1, u2, u2} (Set.{u1} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1)) s t₂))
-Case conversion may be inaccurate. Consider using '#align set.smul_union Set.smul_unionₓ'. -/
 @[to_additive]
 theorem smul_union : s • (t₁ ∪ t₂) = s • t₁ ∪ s • t₂ :=
   image2_union_right
 #align set.smul_union Set.smul_union
 #align set.vadd_union Set.vadd_union
 
-/- warning: set.inter_smul_subset -> Set.inter_smul_subset is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SMul.{u1, u2} α β] {s₁ : Set.{u1} α} {s₂ : Set.{u1} α} {t : Set.{u2} β}, HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) (Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) s₁ s₂) t) (Inter.inter.{u2} (Set.{u2} β) (Set.hasInter.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s₁ t) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s₂ t))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SMul.{u1, u2} α β] {s₁ : Set.{u1} α} {s₂ : Set.{u1} α} {t : Set.{u2} β}, HasSubset.Subset.{u2} (Set.{u2} β) (Set.instHasSubsetSet.{u2} β) (HSMul.hSMul.{u1, u2, u2} (Set.{u1} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1)) (Inter.inter.{u1} (Set.{u1} α) (Set.instInterSet.{u1} α) s₁ s₂) t) (Inter.inter.{u2} (Set.{u2} β) (Set.instInterSet.{u2} β) (HSMul.hSMul.{u1, u2, u2} (Set.{u1} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1)) s₁ t) (HSMul.hSMul.{u1, u2, u2} (Set.{u1} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1)) s₂ t))
-Case conversion may be inaccurate. Consider using '#align set.inter_smul_subset Set.inter_smul_subsetₓ'. -/
 @[to_additive]
 theorem inter_smul_subset : (s₁ ∩ s₂) • t ⊆ s₁ • t ∩ s₂ • t :=
   image2_inter_subset_left
 #align set.inter_smul_subset Set.inter_smul_subset
 #align set.inter_vadd_subset Set.inter_vadd_subset
 
-/- warning: set.smul_inter_subset -> Set.smul_inter_subset is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SMul.{u1, u2} α β] {s : Set.{u1} α} {t₁ : Set.{u2} β} {t₂ : Set.{u2} β}, HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s (Inter.inter.{u2} (Set.{u2} β) (Set.hasInter.{u2} β) t₁ t₂)) (Inter.inter.{u2} (Set.{u2} β) (Set.hasInter.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s t₁) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s t₂))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SMul.{u1, u2} α β] {s : Set.{u1} α} {t₁ : Set.{u2} β} {t₂ : Set.{u2} β}, HasSubset.Subset.{u2} (Set.{u2} β) (Set.instHasSubsetSet.{u2} β) (HSMul.hSMul.{u1, u2, u2} (Set.{u1} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1)) s (Inter.inter.{u2} (Set.{u2} β) (Set.instInterSet.{u2} β) t₁ t₂)) (Inter.inter.{u2} (Set.{u2} β) (Set.instInterSet.{u2} β) (HSMul.hSMul.{u1, u2, u2} (Set.{u1} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1)) s t₁) (HSMul.hSMul.{u1, u2, u2} (Set.{u1} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1)) s t₂))
-Case conversion may be inaccurate. Consider using '#align set.smul_inter_subset Set.smul_inter_subsetₓ'. -/
 @[to_additive]
 theorem smul_inter_subset : s • (t₁ ∩ t₂) ⊆ s • t₁ ∩ s • t₂ :=
   image2_inter_subset_right
 #align set.smul_inter_subset Set.smul_inter_subset
 #align set.vadd_inter_subset Set.vadd_inter_subset
 
-/- warning: set.inter_smul_union_subset_union -> Set.inter_smul_union_subset_union is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SMul.{u1, u2} α β] {s₁ : Set.{u1} α} {s₂ : Set.{u1} α} {t₁ : Set.{u2} β} {t₂ : Set.{u2} β}, HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) (Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) s₁ s₂) (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) t₁ t₂)) (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s₁ t₁) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s₂ t₂))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SMul.{u1, u2} α β] {s₁ : Set.{u1} α} {s₂ : Set.{u1} α} {t₁ : Set.{u2} β} {t₂ : Set.{u2} β}, HasSubset.Subset.{u2} (Set.{u2} β) (Set.instHasSubsetSet.{u2} β) (HSMul.hSMul.{u1, u2, u2} (Set.{u1} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1)) (Inter.inter.{u1} (Set.{u1} α) (Set.instInterSet.{u1} α) s₁ s₂) (Union.union.{u2} (Set.{u2} β) (Set.instUnionSet.{u2} β) t₁ t₂)) (Union.union.{u2} (Set.{u2} β) (Set.instUnionSet.{u2} β) (HSMul.hSMul.{u1, u2, u2} (Set.{u1} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1)) s₁ t₁) (HSMul.hSMul.{u1, u2, u2} (Set.{u1} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1)) s₂ t₂))
-Case conversion may be inaccurate. Consider using '#align set.inter_smul_union_subset_union Set.inter_smul_union_subset_unionₓ'. -/
 @[to_additive]
 theorem inter_smul_union_subset_union : (s₁ ∩ s₂) • (t₁ ∪ t₂) ⊆ s₁ • t₁ ∪ s₂ • t₂ :=
   image2_inter_union_subset_union
 #align set.inter_smul_union_subset_union Set.inter_smul_union_subset_union
 #align set.inter_vadd_union_subset_union Set.inter_vadd_union_subset_union
 
-/- warning: set.union_smul_inter_subset_union -> Set.union_smul_inter_subset_union is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SMul.{u1, u2} α β] {s₁ : Set.{u1} α} {s₂ : Set.{u1} α} {t₁ : Set.{u2} β} {t₂ : Set.{u2} β}, HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) (Union.union.{u1} (Set.{u1} α) (Set.hasUnion.{u1} α) s₁ s₂) (Inter.inter.{u2} (Set.{u2} β) (Set.hasInter.{u2} β) t₁ t₂)) (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s₁ t₁) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s₂ t₂))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SMul.{u1, u2} α β] {s₁ : Set.{u1} α} {s₂ : Set.{u1} α} {t₁ : Set.{u2} β} {t₂ : Set.{u2} β}, HasSubset.Subset.{u2} (Set.{u2} β) (Set.instHasSubsetSet.{u2} β) (HSMul.hSMul.{u1, u2, u2} (Set.{u1} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1)) (Union.union.{u1} (Set.{u1} α) (Set.instUnionSet.{u1} α) s₁ s₂) (Inter.inter.{u2} (Set.{u2} β) (Set.instInterSet.{u2} β) t₁ t₂)) (Union.union.{u2} (Set.{u2} β) (Set.instUnionSet.{u2} β) (HSMul.hSMul.{u1, u2, u2} (Set.{u1} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1)) s₁ t₁) (HSMul.hSMul.{u1, u2, u2} (Set.{u1} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1)) s₂ t₂))
-Case conversion may be inaccurate. Consider using '#align set.union_smul_inter_subset_union Set.union_smul_inter_subset_unionₓ'. -/
 @[to_additive]
 theorem union_smul_inter_subset_union : (s₁ ∪ s₂) • (t₁ ∩ t₂) ⊆ s₁ • t₁ ∪ s₂ • t₂ :=
   image2_union_inter_subset_union
@@ -338,36 +278,18 @@ theorem iUnion_smul_right_image : (⋃ a ∈ t, (· • a) '' s) = s • t :=
 #align set.Union_vadd_right_image Set.iUnion_vadd_right_image
 -/
 
-/- warning: set.Union_smul -> Set.iUnion_smul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} [_inst_1 : SMul.{u1, u2} α β] (s : ι -> (Set.{u1} α)) (t : Set.{u2} β), Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) (Set.iUnion.{u1, u3} α ι (fun (i : ι) => s i)) t) (Set.iUnion.{u2, u3} β ι (fun (i : ι) => SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) (s i) t))
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {ι : Sort.{u1}} [_inst_1 : SMul.{u3, u2} α β] (s : ι -> (Set.{u3} α)) (t : Set.{u2} β), Eq.{succ u2} (Set.{u2} β) (HSMul.hSMul.{u3, u2, u2} (Set.{u3} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u3, u2} (Set.{u3} α) (Set.{u2} β) (Set.smul.{u3, u2} α β _inst_1)) (Set.iUnion.{u3, u1} α ι (fun (i : ι) => s i)) t) (Set.iUnion.{u2, u1} β ι (fun (i : ι) => HSMul.hSMul.{u3, u2, u2} (Set.{u3} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u3, u2} (Set.{u3} α) (Set.{u2} β) (Set.smul.{u3, u2} α β _inst_1)) (s i) t))
-Case conversion may be inaccurate. Consider using '#align set.Union_smul Set.iUnion_smulₓ'. -/
 @[to_additive]
 theorem iUnion_smul (s : ι → Set α) (t : Set β) : (⋃ i, s i) • t = ⋃ i, s i • t :=
   image2_iUnion_left _ _ _
 #align set.Union_smul Set.iUnion_smul
 #align set.Union_vadd Set.iUnion_vadd
 
-/- warning: set.smul_Union -> Set.smul_iUnion is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} [_inst_1 : SMul.{u1, u2} α β] (s : Set.{u1} α) (t : ι -> (Set.{u2} β)), Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s (Set.iUnion.{u2, u3} β ι (fun (i : ι) => t i))) (Set.iUnion.{u2, u3} β ι (fun (i : ι) => SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s (t i)))
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {ι : Sort.{u1}} [_inst_1 : SMul.{u3, u2} α β] (s : Set.{u3} α) (t : ι -> (Set.{u2} β)), Eq.{succ u2} (Set.{u2} β) (HSMul.hSMul.{u3, u2, u2} (Set.{u3} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u3, u2} (Set.{u3} α) (Set.{u2} β) (Set.smul.{u3, u2} α β _inst_1)) s (Set.iUnion.{u2, u1} β ι (fun (i : ι) => t i))) (Set.iUnion.{u2, u1} β ι (fun (i : ι) => HSMul.hSMul.{u3, u2, u2} (Set.{u3} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u3, u2} (Set.{u3} α) (Set.{u2} β) (Set.smul.{u3, u2} α β _inst_1)) s (t i)))
-Case conversion may be inaccurate. Consider using '#align set.smul_Union Set.smul_iUnionₓ'. -/
 @[to_additive]
 theorem smul_iUnion (s : Set α) (t : ι → Set β) : (s • ⋃ i, t i) = ⋃ i, s • t i :=
   image2_iUnion_right _ _ _
 #align set.smul_Union Set.smul_iUnion
 #align set.vadd_Union Set.vadd_iUnion
 
-/- warning: set.Union₂_smul -> Set.iUnion₂_smul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {κ : ι -> Sort.{u4}} [_inst_1 : SMul.{u1, u2} α β] (s : forall (i : ι), (κ i) -> (Set.{u1} α)) (t : Set.{u2} β), Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) (Set.iUnion.{u1, u3} α ι (fun (i : ι) => Set.iUnion.{u1, u4} α (κ i) (fun (j : κ i) => s i j))) t) (Set.iUnion.{u2, u3} β ι (fun (i : ι) => Set.iUnion.{u2, u4} β (κ i) (fun (j : κ i) => SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) (s i j) t)))
-but is expected to have type
-  forall {α : Type.{u4}} {β : Type.{u3}} {ι : Sort.{u2}} {κ : ι -> Sort.{u1}} [_inst_1 : SMul.{u4, u3} α β] (s : forall (i : ι), (κ i) -> (Set.{u4} α)) (t : Set.{u3} β), Eq.{succ u3} (Set.{u3} β) (HSMul.hSMul.{u4, u3, u3} (Set.{u4} α) (Set.{u3} β) (Set.{u3} β) (instHSMul.{u4, u3} (Set.{u4} α) (Set.{u3} β) (Set.smul.{u4, u3} α β _inst_1)) (Set.iUnion.{u4, u2} α ι (fun (i : ι) => Set.iUnion.{u4, u1} α (κ i) (fun (j : κ i) => s i j))) t) (Set.iUnion.{u3, u2} β ι (fun (i : ι) => Set.iUnion.{u3, u1} β (κ i) (fun (j : κ i) => HSMul.hSMul.{u4, u3, u3} (Set.{u4} α) (Set.{u3} β) (Set.{u3} β) (instHSMul.{u4, u3} (Set.{u4} α) (Set.{u3} β) (Set.smul.{u4, u3} α β _inst_1)) (s i j) t)))
-Case conversion may be inaccurate. Consider using '#align set.Union₂_smul Set.iUnion₂_smulₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 @[to_additive]
@@ -377,12 +299,6 @@ theorem iUnion₂_smul (s : ∀ i, κ i → Set α) (t : Set β) :
 #align set.Union₂_smul Set.iUnion₂_smul
 #align set.Union₂_vadd Set.iUnion₂_vadd
 
-/- warning: set.smul_Union₂ -> Set.smul_iUnion₂ is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {κ : ι -> Sort.{u4}} [_inst_1 : SMul.{u1, u2} α β] (s : Set.{u1} α) (t : forall (i : ι), (κ i) -> (Set.{u2} β)), Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s (Set.iUnion.{u2, u3} β ι (fun (i : ι) => Set.iUnion.{u2, u4} β (κ i) (fun (j : κ i) => t i j)))) (Set.iUnion.{u2, u3} β ι (fun (i : ι) => Set.iUnion.{u2, u4} β (κ i) (fun (j : κ i) => SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s (t i j))))
-but is expected to have type
-  forall {α : Type.{u4}} {β : Type.{u3}} {ι : Sort.{u2}} {κ : ι -> Sort.{u1}} [_inst_1 : SMul.{u4, u3} α β] (s : Set.{u4} α) (t : forall (i : ι), (κ i) -> (Set.{u3} β)), Eq.{succ u3} (Set.{u3} β) (HSMul.hSMul.{u4, u3, u3} (Set.{u4} α) (Set.{u3} β) (Set.{u3} β) (instHSMul.{u4, u3} (Set.{u4} α) (Set.{u3} β) (Set.smul.{u4, u3} α β _inst_1)) s (Set.iUnion.{u3, u2} β ι (fun (i : ι) => Set.iUnion.{u3, u1} β (κ i) (fun (j : κ i) => t i j)))) (Set.iUnion.{u3, u2} β ι (fun (i : ι) => Set.iUnion.{u3, u1} β (κ i) (fun (j : κ i) => HSMul.hSMul.{u4, u3, u3} (Set.{u4} α) (Set.{u3} β) (Set.{u3} β) (instHSMul.{u4, u3} (Set.{u4} α) (Set.{u3} β) (Set.smul.{u4, u3} α β _inst_1)) s (t i j))))
-Case conversion may be inaccurate. Consider using '#align set.smul_Union₂ Set.smul_iUnion₂ₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 @[to_additive]
@@ -392,36 +308,18 @@ theorem smul_iUnion₂ (s : Set α) (t : ∀ i, κ i → Set β) :
 #align set.smul_Union₂ Set.smul_iUnion₂
 #align set.vadd_Union₂ Set.vadd_iUnion₂
 
-/- warning: set.Inter_smul_subset -> Set.iInter_smul_subset is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} [_inst_1 : SMul.{u1, u2} α β] (s : ι -> (Set.{u1} α)) (t : Set.{u2} β), HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) (Set.iInter.{u1, u3} α ι (fun (i : ι) => s i)) t) (Set.iInter.{u2, u3} β ι (fun (i : ι) => SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) (s i) t))
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {ι : Sort.{u1}} [_inst_1 : SMul.{u3, u2} α β] (s : ι -> (Set.{u3} α)) (t : Set.{u2} β), HasSubset.Subset.{u2} (Set.{u2} β) (Set.instHasSubsetSet.{u2} β) (HSMul.hSMul.{u3, u2, u2} (Set.{u3} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u3, u2} (Set.{u3} α) (Set.{u2} β) (Set.smul.{u3, u2} α β _inst_1)) (Set.iInter.{u3, u1} α ι (fun (i : ι) => s i)) t) (Set.iInter.{u2, u1} β ι (fun (i : ι) => HSMul.hSMul.{u3, u2, u2} (Set.{u3} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u3, u2} (Set.{u3} α) (Set.{u2} β) (Set.smul.{u3, u2} α β _inst_1)) (s i) t))
-Case conversion may be inaccurate. Consider using '#align set.Inter_smul_subset Set.iInter_smul_subsetₓ'. -/
 @[to_additive]
 theorem iInter_smul_subset (s : ι → Set α) (t : Set β) : (⋂ i, s i) • t ⊆ ⋂ i, s i • t :=
   image2_iInter_subset_left _ _ _
 #align set.Inter_smul_subset Set.iInter_smul_subset
 #align set.Inter_vadd_subset Set.iInter_vadd_subset
 
-/- warning: set.smul_Inter_subset -> Set.smul_iInter_subset is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} [_inst_1 : SMul.{u1, u2} α β] (s : Set.{u1} α) (t : ι -> (Set.{u2} β)), HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s (Set.iInter.{u2, u3} β ι (fun (i : ι) => t i))) (Set.iInter.{u2, u3} β ι (fun (i : ι) => SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s (t i)))
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {ι : Sort.{u1}} [_inst_1 : SMul.{u3, u2} α β] (s : Set.{u3} α) (t : ι -> (Set.{u2} β)), HasSubset.Subset.{u2} (Set.{u2} β) (Set.instHasSubsetSet.{u2} β) (HSMul.hSMul.{u3, u2, u2} (Set.{u3} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u3, u2} (Set.{u3} α) (Set.{u2} β) (Set.smul.{u3, u2} α β _inst_1)) s (Set.iInter.{u2, u1} β ι (fun (i : ι) => t i))) (Set.iInter.{u2, u1} β ι (fun (i : ι) => HSMul.hSMul.{u3, u2, u2} (Set.{u3} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u3, u2} (Set.{u3} α) (Set.{u2} β) (Set.smul.{u3, u2} α β _inst_1)) s (t i)))
-Case conversion may be inaccurate. Consider using '#align set.smul_Inter_subset Set.smul_iInter_subsetₓ'. -/
 @[to_additive]
 theorem smul_iInter_subset (s : Set α) (t : ι → Set β) : (s • ⋂ i, t i) ⊆ ⋂ i, s • t i :=
   image2_iInter_subset_right _ _ _
 #align set.smul_Inter_subset Set.smul_iInter_subset
 #align set.vadd_Inter_subset Set.vadd_iInter_subset
 
-/- warning: set.Inter₂_smul_subset -> Set.iInter₂_smul_subset is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {κ : ι -> Sort.{u4}} [_inst_1 : SMul.{u1, u2} α β] (s : forall (i : ι), (κ i) -> (Set.{u1} α)) (t : Set.{u2} β), HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) (Set.iInter.{u1, u3} α ι (fun (i : ι) => Set.iInter.{u1, u4} α (κ i) (fun (j : κ i) => s i j))) t) (Set.iInter.{u2, u3} β ι (fun (i : ι) => Set.iInter.{u2, u4} β (κ i) (fun (j : κ i) => SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) (s i j) t)))
-but is expected to have type
-  forall {α : Type.{u4}} {β : Type.{u3}} {ι : Sort.{u2}} {κ : ι -> Sort.{u1}} [_inst_1 : SMul.{u4, u3} α β] (s : forall (i : ι), (κ i) -> (Set.{u4} α)) (t : Set.{u3} β), HasSubset.Subset.{u3} (Set.{u3} β) (Set.instHasSubsetSet.{u3} β) (HSMul.hSMul.{u4, u3, u3} (Set.{u4} α) (Set.{u3} β) (Set.{u3} β) (instHSMul.{u4, u3} (Set.{u4} α) (Set.{u3} β) (Set.smul.{u4, u3} α β _inst_1)) (Set.iInter.{u4, u2} α ι (fun (i : ι) => Set.iInter.{u4, u1} α (κ i) (fun (j : κ i) => s i j))) t) (Set.iInter.{u3, u2} β ι (fun (i : ι) => Set.iInter.{u3, u1} β (κ i) (fun (j : κ i) => HSMul.hSMul.{u4, u3, u3} (Set.{u4} α) (Set.{u3} β) (Set.{u3} β) (instHSMul.{u4, u3} (Set.{u4} α) (Set.{u3} β) (Set.smul.{u4, u3} α β _inst_1)) (s i j) t)))
-Case conversion may be inaccurate. Consider using '#align set.Inter₂_smul_subset Set.iInter₂_smul_subsetₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 @[to_additive]
@@ -431,12 +329,6 @@ theorem iInter₂_smul_subset (s : ∀ i, κ i → Set α) (t : Set β) :
 #align set.Inter₂_smul_subset Set.iInter₂_smul_subset
 #align set.Inter₂_vadd_subset Set.iInter₂_vadd_subset
 
-/- warning: set.smul_Inter₂_subset -> Set.smul_iInter₂_subset is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {κ : ι -> Sort.{u4}} [_inst_1 : SMul.{u1, u2} α β] (s : Set.{u1} α) (t : forall (i : ι), (κ i) -> (Set.{u2} β)), HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s (Set.iInter.{u2, u3} β ι (fun (i : ι) => Set.iInter.{u2, u4} β (κ i) (fun (j : κ i) => t i j)))) (Set.iInter.{u2, u3} β ι (fun (i : ι) => Set.iInter.{u2, u4} β (κ i) (fun (j : κ i) => SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s (t i j))))
-but is expected to have type
-  forall {α : Type.{u4}} {β : Type.{u3}} {ι : Sort.{u2}} {κ : ι -> Sort.{u1}} [_inst_1 : SMul.{u4, u3} α β] (s : Set.{u4} α) (t : forall (i : ι), (κ i) -> (Set.{u3} β)), HasSubset.Subset.{u3} (Set.{u3} β) (Set.instHasSubsetSet.{u3} β) (HSMul.hSMul.{u4, u3, u3} (Set.{u4} α) (Set.{u3} β) (Set.{u3} β) (instHSMul.{u4, u3} (Set.{u4} α) (Set.{u3} β) (Set.smul.{u4, u3} α β _inst_1)) s (Set.iInter.{u3, u2} β ι (fun (i : ι) => Set.iInter.{u3, u1} β (κ i) (fun (j : κ i) => t i j)))) (Set.iInter.{u3, u2} β ι (fun (i : ι) => Set.iInter.{u3, u1} β (κ i) (fun (j : κ i) => HSMul.hSMul.{u4, u3, u3} (Set.{u4} α) (Set.{u3} β) (Set.{u3} β) (instHSMul.{u4, u3} (Set.{u4} α) (Set.{u3} β) (Set.smul.{u4, u3} α β _inst_1)) s (t i j))))
-Case conversion may be inaccurate. Consider using '#align set.smul_Inter₂_subset Set.smul_iInter₂_subsetₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 @[to_additive]
@@ -446,24 +338,12 @@ theorem smul_iInter₂_subset (s : Set α) (t : ∀ i, κ i → Set β) :
 #align set.smul_Inter₂_subset Set.smul_iInter₂_subset
 #align set.vadd_Inter₂_subset Set.vadd_iInter₂_subset
 
-/- warning: set.smul_set_subset_smul -> Set.smul_set_subset_smul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SMul.{u1, u2} α β] {t : Set.{u2} β} {a : α} {s : Set.{u1} α}, (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) a s) -> (HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1) a t) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s t))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : SMul.{u2, u1} α β] {t : Set.{u1} β} {a : α} {s : Set.{u2} α}, (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) a s) -> (HasSubset.Subset.{u1} (Set.{u1} β) (Set.instHasSubsetSet.{u1} β) (HSMul.hSMul.{u2, u1, u1} α (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} α (Set.{u1} β) (Set.smulSet.{u2, u1} α β _inst_1)) a t) (HSMul.hSMul.{u2, u1, u1} (Set.{u2} α) (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.smul.{u2, u1} α β _inst_1)) s t))
-Case conversion may be inaccurate. Consider using '#align set.smul_set_subset_smul Set.smul_set_subset_smulₓ'. -/
 @[to_additive]
 theorem smul_set_subset_smul {s : Set α} : a ∈ s → a • t ⊆ s • t :=
   image_subset_image2_right
 #align set.smul_set_subset_smul Set.smul_set_subset_smul
 #align set.vadd_set_subset_vadd Set.vadd_set_subset_vadd
 
-/- warning: set.bUnion_smul_set -> Set.iUnion_smul_set is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SMul.{u1, u2} α β] (s : Set.{u1} α) (t : Set.{u2} β), Eq.{succ u2} (Set.{u2} β) (Set.iUnion.{u2, succ u1} β α (fun (a : α) => Set.iUnion.{u2, 0} β (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) a s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) a s) => SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1) a t))) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s t)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : SMul.{u2, u1} α β] (s : Set.{u2} α) (t : Set.{u1} β), Eq.{succ u1} (Set.{u1} β) (Set.iUnion.{u1, succ u2} β α (fun (a : α) => Set.iUnion.{u1, 0} β (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) a s) (fun (H : Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) a s) => HSMul.hSMul.{u2, u1, u1} α (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} α (Set.{u1} β) (Set.smulSet.{u2, u1} α β _inst_1)) a t))) (HSMul.hSMul.{u2, u1, u1} (Set.{u2} α) (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.smul.{u2, u1} α β _inst_1)) s t)
-Case conversion may be inaccurate. Consider using '#align set.bUnion_smul_set Set.iUnion_smul_setₓ'. -/
 @[simp, to_additive]
 theorem iUnion_smul_set (s : Set α) (t : Set β) : (⋃ a ∈ s, a • t) = s • t :=
   iUnion_image_left _
@@ -548,48 +428,24 @@ theorem smul_set_subset_iff : a • s ⊆ t ↔ ∀ ⦃b⦄, b ∈ s → a • b
 #align set.vadd_set_subset_iff Set.vadd_set_subset_iff
 -/
 
-/- warning: set.smul_set_union -> Set.smul_set_union is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SMul.{u1, u2} α β] {t₁ : Set.{u2} β} {t₂ : Set.{u2} β} {a : α}, Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1) a (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) t₁ t₂)) (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1) a t₁) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1) a t₂))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SMul.{u1, u2} α β] {t₁ : Set.{u2} β} {t₂ : Set.{u2} β} {a : α}, Eq.{succ u2} (Set.{u2} β) (HSMul.hSMul.{u1, u2, u2} α (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1)) a (Union.union.{u2} (Set.{u2} β) (Set.instUnionSet.{u2} β) t₁ t₂)) (Union.union.{u2} (Set.{u2} β) (Set.instUnionSet.{u2} β) (HSMul.hSMul.{u1, u2, u2} α (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1)) a t₁) (HSMul.hSMul.{u1, u2, u2} α (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1)) a t₂))
-Case conversion may be inaccurate. Consider using '#align set.smul_set_union Set.smul_set_unionₓ'. -/
 @[to_additive]
 theorem smul_set_union : a • (t₁ ∪ t₂) = a • t₁ ∪ a • t₂ :=
   image_union _ _ _
 #align set.smul_set_union Set.smul_set_union
 #align set.vadd_set_union Set.vadd_set_union
 
-/- warning: set.smul_set_inter_subset -> Set.smul_set_inter_subset is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SMul.{u1, u2} α β] {t₁ : Set.{u2} β} {t₂ : Set.{u2} β} {a : α}, HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1) a (Inter.inter.{u2} (Set.{u2} β) (Set.hasInter.{u2} β) t₁ t₂)) (Inter.inter.{u2} (Set.{u2} β) (Set.hasInter.{u2} β) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1) a t₁) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1) a t₂))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SMul.{u1, u2} α β] {t₁ : Set.{u2} β} {t₂ : Set.{u2} β} {a : α}, HasSubset.Subset.{u2} (Set.{u2} β) (Set.instHasSubsetSet.{u2} β) (HSMul.hSMul.{u1, u2, u2} α (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1)) a (Inter.inter.{u2} (Set.{u2} β) (Set.instInterSet.{u2} β) t₁ t₂)) (Inter.inter.{u2} (Set.{u2} β) (Set.instInterSet.{u2} β) (HSMul.hSMul.{u1, u2, u2} α (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1)) a t₁) (HSMul.hSMul.{u1, u2, u2} α (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1)) a t₂))
-Case conversion may be inaccurate. Consider using '#align set.smul_set_inter_subset Set.smul_set_inter_subsetₓ'. -/
 @[to_additive]
 theorem smul_set_inter_subset : a • (t₁ ∩ t₂) ⊆ a • t₁ ∩ a • t₂ :=
   image_inter_subset _ _ _
 #align set.smul_set_inter_subset Set.smul_set_inter_subset
 #align set.vadd_set_inter_subset Set.vadd_set_inter_subset
 
-/- warning: set.smul_set_Union -> Set.smul_set_Union is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} [_inst_1 : SMul.{u1, u2} α β] (a : α) (s : ι -> (Set.{u2} β)), Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1) a (Set.iUnion.{u2, u3} β ι (fun (i : ι) => s i))) (Set.iUnion.{u2, u3} β ι (fun (i : ι) => SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1) a (s i)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} {ι : Sort.{u1}} [_inst_1 : SMul.{u2, u3} α β] (a : α) (s : ι -> (Set.{u3} β)), Eq.{succ u3} (Set.{u3} β) (HSMul.hSMul.{u2, u3, u3} α (Set.{u3} β) (Set.{u3} β) (instHSMul.{u2, u3} α (Set.{u3} β) (Set.smulSet.{u2, u3} α β _inst_1)) a (Set.iUnion.{u3, u1} β ι (fun (i : ι) => s i))) (Set.iUnion.{u3, u1} β ι (fun (i : ι) => HSMul.hSMul.{u2, u3, u3} α (Set.{u3} β) (Set.{u3} β) (instHSMul.{u2, u3} α (Set.{u3} β) (Set.smulSet.{u2, u3} α β _inst_1)) a (s i)))
-Case conversion may be inaccurate. Consider using '#align set.smul_set_Union Set.smul_set_Unionₓ'. -/
 @[to_additive]
 theorem smul_set_Union (a : α) (s : ι → Set β) : (a • ⋃ i, s i) = ⋃ i, a • s i :=
   image_iUnion
 #align set.smul_set_Union Set.smul_set_Union
 #align set.vadd_set_Union Set.vadd_set_Union
 
-/- warning: set.smul_set_Union₂ -> Set.smul_set_iUnion₂ is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {κ : ι -> Sort.{u4}} [_inst_1 : SMul.{u1, u2} α β] (a : α) (s : forall (i : ι), (κ i) -> (Set.{u2} β)), Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1) a (Set.iUnion.{u2, u3} β ι (fun (i : ι) => Set.iUnion.{u2, u4} β (κ i) (fun (j : κ i) => s i j)))) (Set.iUnion.{u2, u3} β ι (fun (i : ι) => Set.iUnion.{u2, u4} β (κ i) (fun (j : κ i) => SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1) a (s i j))))
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u4}} {ι : Sort.{u2}} {κ : ι -> Sort.{u1}} [_inst_1 : SMul.{u3, u4} α β] (a : α) (s : forall (i : ι), (κ i) -> (Set.{u4} β)), Eq.{succ u4} (Set.{u4} β) (HSMul.hSMul.{u3, u4, u4} α (Set.{u4} β) (Set.{u4} β) (instHSMul.{u3, u4} α (Set.{u4} β) (Set.smulSet.{u3, u4} α β _inst_1)) a (Set.iUnion.{u4, u2} β ι (fun (i : ι) => Set.iUnion.{u4, u1} β (κ i) (fun (j : κ i) => s i j)))) (Set.iUnion.{u4, u2} β ι (fun (i : ι) => Set.iUnion.{u4, u1} β (κ i) (fun (j : κ i) => HSMul.hSMul.{u3, u4, u4} α (Set.{u4} β) (Set.{u4} β) (instHSMul.{u3, u4} α (Set.{u4} β) (Set.smulSet.{u3, u4} α β _inst_1)) a (s i j))))
-Case conversion may be inaccurate. Consider using '#align set.smul_set_Union₂ Set.smul_set_iUnion₂ₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 @[to_additive]
@@ -599,24 +455,12 @@ theorem smul_set_iUnion₂ (a : α) (s : ∀ i, κ i → Set β) :
 #align set.smul_set_Union₂ Set.smul_set_iUnion₂
 #align set.vadd_set_Union₂ Set.vadd_set_iUnion₂
 
-/- warning: set.smul_set_Inter_subset -> Set.smul_set_iInter_subset is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} [_inst_1 : SMul.{u1, u2} α β] (a : α) (t : ι -> (Set.{u2} β)), HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1) a (Set.iInter.{u2, u3} β ι (fun (i : ι) => t i))) (Set.iInter.{u2, u3} β ι (fun (i : ι) => SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1) a (t i)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} {ι : Sort.{u1}} [_inst_1 : SMul.{u2, u3} α β] (a : α) (t : ι -> (Set.{u3} β)), HasSubset.Subset.{u3} (Set.{u3} β) (Set.instHasSubsetSet.{u3} β) (HSMul.hSMul.{u2, u3, u3} α (Set.{u3} β) (Set.{u3} β) (instHSMul.{u2, u3} α (Set.{u3} β) (Set.smulSet.{u2, u3} α β _inst_1)) a (Set.iInter.{u3, u1} β ι (fun (i : ι) => t i))) (Set.iInter.{u3, u1} β ι (fun (i : ι) => HSMul.hSMul.{u2, u3, u3} α (Set.{u3} β) (Set.{u3} β) (instHSMul.{u2, u3} α (Set.{u3} β) (Set.smulSet.{u2, u3} α β _inst_1)) a (t i)))
-Case conversion may be inaccurate. Consider using '#align set.smul_set_Inter_subset Set.smul_set_iInter_subsetₓ'. -/
 @[to_additive]
 theorem smul_set_iInter_subset (a : α) (t : ι → Set β) : (a • ⋂ i, t i) ⊆ ⋂ i, a • t i :=
   image_iInter_subset _ _
 #align set.smul_set_Inter_subset Set.smul_set_iInter_subset
 #align set.vadd_set_Inter_subset Set.vadd_set_iInter_subset
 
-/- warning: set.smul_set_Inter₂_subset -> Set.smul_set_iInter₂_subset is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {κ : ι -> Sort.{u4}} [_inst_1 : SMul.{u1, u2} α β] (a : α) (t : forall (i : ι), (κ i) -> (Set.{u2} β)), HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1) a (Set.iInter.{u2, u3} β ι (fun (i : ι) => Set.iInter.{u2, u4} β (κ i) (fun (j : κ i) => t i j)))) (Set.iInter.{u2, u3} β ι (fun (i : ι) => Set.iInter.{u2, u4} β (κ i) (fun (j : κ i) => SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1) a (t i j))))
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u4}} {ι : Sort.{u2}} {κ : ι -> Sort.{u1}} [_inst_1 : SMul.{u3, u4} α β] (a : α) (t : forall (i : ι), (κ i) -> (Set.{u4} β)), HasSubset.Subset.{u4} (Set.{u4} β) (Set.instHasSubsetSet.{u4} β) (HSMul.hSMul.{u3, u4, u4} α (Set.{u4} β) (Set.{u4} β) (instHSMul.{u3, u4} α (Set.{u4} β) (Set.smulSet.{u3, u4} α β _inst_1)) a (Set.iInter.{u4, u2} β ι (fun (i : ι) => Set.iInter.{u4, u1} β (κ i) (fun (j : κ i) => t i j)))) (Set.iInter.{u4, u2} β ι (fun (i : ι) => Set.iInter.{u4, u1} β (κ i) (fun (j : κ i) => HSMul.hSMul.{u3, u4, u4} α (Set.{u4} β) (Set.{u4} β) (instHSMul.{u3, u4} α (Set.{u4} β) (Set.smulSet.{u3, u4} α β _inst_1)) a (t i j))))
-Case conversion may be inaccurate. Consider using '#align set.smul_set_Inter₂_subset Set.smul_set_iInter₂_subsetₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 @[to_additive]
@@ -676,12 +520,6 @@ end Mul
 
 variable {s s₁ s₂ : Set α} {t t₁ t₂ : Set β} {a : α} {b : β}
 
-/- warning: set.range_smul_range -> Set.range_smul_range is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} {κ : Type.{u4}} [_inst_1 : SMul.{u1, u2} α β] (b : ι -> α) (c : κ -> β), Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) (Set.range.{u1, succ u3} α ι b) (Set.range.{u2, succ u4} β κ c)) (Set.range.{u2, max (succ u3) (succ u4)} β (Prod.{u3, u4} ι κ) (fun (p : Prod.{u3, u4} ι κ) => SMul.smul.{u1, u2} α β _inst_1 (b (Prod.fst.{u3, u4} ι κ p)) (c (Prod.snd.{u3, u4} ι κ p))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {ι : Type.{u4}} {κ : Type.{u3}} [_inst_1 : SMul.{u2, u1} α β] (b : ι -> α) (c : κ -> β), Eq.{succ u1} (Set.{u1} β) (HSMul.hSMul.{u2, u1, u1} (Set.{u2} α) (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.smul.{u2, u1} α β _inst_1)) (Set.range.{u2, succ u4} α ι b) (Set.range.{u1, succ u3} β κ c)) (Set.range.{u1, max (succ u4) (succ u3)} β (Prod.{u4, u3} ι κ) (fun (p : Prod.{u4, u3} ι κ) => HSMul.hSMul.{u2, u1, u1} α β β (instHSMul.{u2, u1} α β _inst_1) (b (Prod.fst.{u4, u3} ι κ p)) (c (Prod.snd.{u4, u3} ι κ p))))
-Case conversion may be inaccurate. Consider using '#align set.range_smul_range Set.range_smul_rangeₓ'. -/
 @[to_additive]
 theorem range_smul_range {ι κ : Type _} [SMul α β] (b : ι → α) (c : κ → β) :
     range b • range c = range fun p : ι × κ => b p.1 • c p.2 :=
@@ -693,12 +531,6 @@ theorem range_smul_range {ι κ : Type _} [SMul α β] (b : ι → α) (c : κ 
 #align set.range_smul_range Set.range_smul_range
 #align set.range_vadd_range Set.range_vadd_range
 
-/- warning: set.smul_set_range -> Set.smul_set_range is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {a : α} [_inst_1 : SMul.{u1, u2} α β] {ι : Sort.{u3}} {f : ι -> β}, Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1) a (Set.range.{u2, u3} β ι f)) (Set.range.{u2, u3} β ι (fun (i : ι) => SMul.smul.{u1, u2} α β _inst_1 a (f i)))
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {a : α} [_inst_1 : SMul.{u3, u2} α β] {ι : Sort.{u1}} {f : ι -> β}, Eq.{succ u2} (Set.{u2} β) (HSMul.hSMul.{u3, u2, u2} α (Set.{u2} β) (Set.{u2} β) (instHSMul.{u3, u2} α (Set.{u2} β) (Set.smulSet.{u3, u2} α β _inst_1)) a (Set.range.{u2, u1} β ι f)) (Set.range.{u2, u1} β ι (fun (i : ι) => HSMul.hSMul.{u3, u2, u2} α β β (instHSMul.{u3, u2} α β _inst_1) a (f i)))
-Case conversion may be inaccurate. Consider using '#align set.smul_set_range Set.smul_set_rangeₓ'. -/
 @[to_additive]
 theorem smul_set_range [SMul α β] {ι : Sort _} {f : ι → β} : a • range f = range fun i => a • f i :=
   (range_comp _ _).symm
@@ -867,34 +699,16 @@ instance vsub : VSub (Set α) (Set β) :=
 #align set.has_vsub Set.vsub
 -/
 
-/- warning: set.image2_vsub -> Set.image2_vsub is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : VSub.{u1, u2} α β] {s : Set.{u2} β} {t : Set.{u2} β}, Eq.{succ u1} (Set.{u1} α) (Set.image2.{u2, u2, u1} β β α (VSub.vsub.{u1, u2} α β _inst_1) s t) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s t)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : VSub.{u2, u1} α β] {s : Set.{u1} β} {t : Set.{u1} β}, Eq.{succ u2} (Set.{u2} α) (Set.image2.{u1, u1, u2} β β α (VSub.vsub.{u2, u1} α β _inst_1) s t) (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) s t)
-Case conversion may be inaccurate. Consider using '#align set.image2_vsub Set.image2_vsubₓ'. -/
 @[simp]
 theorem image2_vsub : (image2 VSub.vsub s t : Set α) = s -ᵥ t :=
   rfl
 #align set.image2_vsub Set.image2_vsub
 
-/- warning: set.image_vsub_prod -> Set.image_vsub_prod is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : VSub.{u1, u2} α β] {s : Set.{u2} β} {t : Set.{u2} β}, Eq.{succ u1} (Set.{u1} α) (Set.image.{u2, u1} (Prod.{u2, u2} β β) α (fun (x : Prod.{u2, u2} β β) => VSub.vsub.{u1, u2} α β _inst_1 (Prod.fst.{u2, u2} β β x) (Prod.snd.{u2, u2} β β x)) (Set.prod.{u2, u2} β β s t)) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s t)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : VSub.{u2, u1} α β] {s : Set.{u1} β} {t : Set.{u1} β}, Eq.{succ u2} (Set.{u2} α) (Set.image.{u1, u2} (Prod.{u1, u1} β β) α (fun (x : Prod.{u1, u1} β β) => VSub.vsub.{u2, u1} α β _inst_1 (Prod.fst.{u1, u1} β β x) (Prod.snd.{u1, u1} β β x)) (Set.prod.{u1, u1} β β s t)) (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) s t)
-Case conversion may be inaccurate. Consider using '#align set.image_vsub_prod Set.image_vsub_prodₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 theorem image_vsub_prod : (fun x : β × β => x.fst -ᵥ x.snd) '' s ×ˢ t = s -ᵥ t :=
   image_prod _
 #align set.image_vsub_prod Set.image_vsub_prod
 
-/- warning: set.mem_vsub -> Set.mem_vsub is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : VSub.{u1, u2} α β] {s : Set.{u2} β} {t : Set.{u2} β} {a : α}, Iff (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) a (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s t)) (Exists.{succ u2} β (fun (x : β) => Exists.{succ u2} β (fun (y : β) => And (Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s) (And (Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) y t) (Eq.{succ u1} α (VSub.vsub.{u1, u2} α β _inst_1 x y) a)))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : VSub.{u2, u1} α β] {s : Set.{u1} β} {t : Set.{u1} β} {a : α}, Iff (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) a (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) s t)) (Exists.{succ u1} β (fun (x : β) => Exists.{succ u1} β (fun (y : β) => And (Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x s) (And (Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) y t) (Eq.{succ u2} α (VSub.vsub.{u2, u1} α β _inst_1 x y) a)))))
-Case conversion may be inaccurate. Consider using '#align set.mem_vsub Set.mem_vsubₓ'. -/
 theorem mem_vsub : a ∈ s -ᵥ t ↔ ∃ x y, x ∈ s ∧ y ∈ t ∧ x -ᵥ y = a :=
   Iff.rfl
 #align set.mem_vsub Set.mem_vsub
@@ -919,23 +733,11 @@ theorem vsub_empty (s : Set β) : s -ᵥ ∅ = ∅ :=
 #align set.vsub_empty Set.vsub_empty
 -/
 
-/- warning: set.vsub_eq_empty -> Set.vsub_eq_empty is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : VSub.{u1, u2} α β] {s : Set.{u2} β} {t : Set.{u2} β}, Iff (Eq.{succ u1} (Set.{u1} α) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s t) (EmptyCollection.emptyCollection.{u1} (Set.{u1} α) (Set.hasEmptyc.{u1} α))) (Or (Eq.{succ u2} (Set.{u2} β) s (EmptyCollection.emptyCollection.{u2} (Set.{u2} β) (Set.hasEmptyc.{u2} β))) (Eq.{succ u2} (Set.{u2} β) t (EmptyCollection.emptyCollection.{u2} (Set.{u2} β) (Set.hasEmptyc.{u2} β))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : VSub.{u2, u1} α β] {s : Set.{u1} β} {t : Set.{u1} β}, Iff (Eq.{succ u2} (Set.{u2} α) (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) s t) (EmptyCollection.emptyCollection.{u2} (Set.{u2} α) (Set.instEmptyCollectionSet.{u2} α))) (Or (Eq.{succ u1} (Set.{u1} β) s (EmptyCollection.emptyCollection.{u1} (Set.{u1} β) (Set.instEmptyCollectionSet.{u1} β))) (Eq.{succ u1} (Set.{u1} β) t (EmptyCollection.emptyCollection.{u1} (Set.{u1} β) (Set.instEmptyCollectionSet.{u1} β))))
-Case conversion may be inaccurate. Consider using '#align set.vsub_eq_empty Set.vsub_eq_emptyₓ'. -/
 @[simp]
 theorem vsub_eq_empty : s -ᵥ t = ∅ ↔ s = ∅ ∨ t = ∅ :=
   image2_eq_empty_iff
 #align set.vsub_eq_empty Set.vsub_eq_empty
 
-/- warning: set.vsub_nonempty -> Set.vsub_nonempty is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : VSub.{u1, u2} α β] {s : Set.{u2} β} {t : Set.{u2} β}, Iff (Set.Nonempty.{u1} α (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s t)) (And (Set.Nonempty.{u2} β s) (Set.Nonempty.{u2} β t))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : VSub.{u2, u1} α β] {s : Set.{u1} β} {t : Set.{u1} β}, Iff (Set.Nonempty.{u2} α (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) s t)) (And (Set.Nonempty.{u1} β s) (Set.Nonempty.{u1} β t))
-Case conversion may be inaccurate. Consider using '#align set.vsub_nonempty Set.vsub_nonemptyₓ'. -/
 @[simp]
 theorem vsub_nonempty : (s -ᵥ t : Set α).Nonempty ↔ s.Nonempty ∧ t.Nonempty :=
   image2_nonempty_iff
@@ -947,22 +749,10 @@ theorem Nonempty.vsub : s.Nonempty → t.Nonempty → (s -ᵥ t : Set α).Nonemp
 #align set.nonempty.vsub Set.Nonempty.vsub
 -/
 
-/- warning: set.nonempty.of_vsub_left -> Set.Nonempty.of_vsub_left is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : VSub.{u1, u2} α β] {s : Set.{u2} β} {t : Set.{u2} β}, (Set.Nonempty.{u1} α (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s t)) -> (Set.Nonempty.{u2} β s)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : VSub.{u2, u1} α β] {s : Set.{u1} β} {t : Set.{u1} β}, (Set.Nonempty.{u2} α (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) s t)) -> (Set.Nonempty.{u1} β s)
-Case conversion may be inaccurate. Consider using '#align set.nonempty.of_vsub_left Set.Nonempty.of_vsub_leftₓ'. -/
 theorem Nonempty.of_vsub_left : (s -ᵥ t : Set α).Nonempty → s.Nonempty :=
   Nonempty.of_image2_left
 #align set.nonempty.of_vsub_left Set.Nonempty.of_vsub_left
 
-/- warning: set.nonempty.of_vsub_right -> Set.Nonempty.of_vsub_right is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : VSub.{u1, u2} α β] {s : Set.{u2} β} {t : Set.{u2} β}, (Set.Nonempty.{u1} α (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s t)) -> (Set.Nonempty.{u2} β t)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : VSub.{u2, u1} α β] {s : Set.{u1} β} {t : Set.{u1} β}, (Set.Nonempty.{u2} α (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) s t)) -> (Set.Nonempty.{u1} β t)
-Case conversion may be inaccurate. Consider using '#align set.nonempty.of_vsub_right Set.Nonempty.of_vsub_rightₓ'. -/
 theorem Nonempty.of_vsub_right : (s -ᵥ t : Set α).Nonempty → t.Nonempty :=
   Nonempty.of_image2_right
 #align set.nonempty.of_vsub_right Set.Nonempty.of_vsub_right
@@ -981,12 +771,6 @@ theorem singleton_vsub (t : Set β) (b : β) : {b} -ᵥ t = (· -ᵥ ·) b '' t
 #align set.singleton_vsub Set.singleton_vsub
 -/
 
-/- warning: set.singleton_vsub_singleton -> Set.singleton_vsub_singleton is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : VSub.{u1, u2} α β] {b : β} {c : β}, Eq.{succ u1} (Set.{u1} α) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) (Singleton.singleton.{u2, u2} β (Set.{u2} β) (Set.hasSingleton.{u2} β) b) (Singleton.singleton.{u2, u2} β (Set.{u2} β) (Set.hasSingleton.{u2} β) c)) (Singleton.singleton.{u1, u1} α (Set.{u1} α) (Set.hasSingleton.{u1} α) (VSub.vsub.{u1, u2} α β _inst_1 b c))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : VSub.{u2, u1} α β] {b : β} {c : β}, Eq.{succ u2} (Set.{u2} α) (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) (Singleton.singleton.{u1, u1} β (Set.{u1} β) (Set.instSingletonSet.{u1} β) b) (Singleton.singleton.{u1, u1} β (Set.{u1} β) (Set.instSingletonSet.{u1} β) c)) (Singleton.singleton.{u2, u2} α (Set.{u2} α) (Set.instSingletonSet.{u2} α) (VSub.vsub.{u2, u1} α β _inst_1 b c))
-Case conversion may be inaccurate. Consider using '#align set.singleton_vsub_singleton Set.singleton_vsub_singletonₓ'. -/
 @[simp]
 theorem singleton_vsub_singleton : ({b} : Set β) -ᵥ {c} = {b -ᵥ c} :=
   image2_singleton
@@ -1011,12 +795,6 @@ theorem vsub_subset_vsub_right : s₁ ⊆ s₂ → s₁ -ᵥ t ⊆ s₂ -ᵥ t :
 #align set.vsub_subset_vsub_right Set.vsub_subset_vsub_right
 -/
 
-/- warning: set.vsub_subset_iff -> Set.vsub_subset_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : VSub.{u1, u2} α β] {s : Set.{u2} β} {t : Set.{u2} β} {u : Set.{u1} α}, Iff (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s t) u) (forall (x : β), (Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s) -> (forall (y : β), (Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) y t) -> (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) (VSub.vsub.{u1, u2} α β _inst_1 x y) u)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : VSub.{u2, u1} α β] {s : Set.{u1} β} {t : Set.{u1} β} {u : Set.{u2} α}, Iff (HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) s t) u) (forall (x : β), (Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x s) -> (forall (y : β), (Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) y t) -> (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) (VSub.vsub.{u2, u1} α β _inst_1 x y) u)))
-Case conversion may be inaccurate. Consider using '#align set.vsub_subset_iff Set.vsub_subset_iffₓ'. -/
 theorem vsub_subset_iff : s -ᵥ t ⊆ u ↔ ∀ x ∈ s, ∀ y ∈ t, x -ᵥ y ∈ u :=
   image2_subset_iff
 #align set.vsub_subset_iff Set.vsub_subset_iff
@@ -1027,112 +805,46 @@ theorem vsub_self_mono (h : s ⊆ t) : s -ᵥ s ⊆ t -ᵥ t :=
 #align set.vsub_self_mono Set.vsub_self_mono
 -/
 
-/- warning: set.union_vsub -> Set.union_vsub is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : VSub.{u1, u2} α β] {s₁ : Set.{u2} β} {s₂ : Set.{u2} β} {t : Set.{u2} β}, Eq.{succ u1} (Set.{u1} α) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) s₁ s₂) t) (Union.union.{u1} (Set.{u1} α) (Set.hasUnion.{u1} α) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s₁ t) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s₂ t))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : VSub.{u2, u1} α β] {s₁ : Set.{u1} β} {s₂ : Set.{u1} β} {t : Set.{u1} β}, Eq.{succ u2} (Set.{u2} α) (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) (Union.union.{u1} (Set.{u1} β) (Set.instUnionSet.{u1} β) s₁ s₂) t) (Union.union.{u2} (Set.{u2} α) (Set.instUnionSet.{u2} α) (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) s₁ t) (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) s₂ t))
-Case conversion may be inaccurate. Consider using '#align set.union_vsub Set.union_vsubₓ'. -/
 theorem union_vsub : s₁ ∪ s₂ -ᵥ t = s₁ -ᵥ t ∪ (s₂ -ᵥ t) :=
   image2_union_left
 #align set.union_vsub Set.union_vsub
 
-/- warning: set.vsub_union -> Set.vsub_union is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : VSub.{u1, u2} α β] {s : Set.{u2} β} {t₁ : Set.{u2} β} {t₂ : Set.{u2} β}, Eq.{succ u1} (Set.{u1} α) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) t₁ t₂)) (Union.union.{u1} (Set.{u1} α) (Set.hasUnion.{u1} α) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s t₁) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s t₂))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : VSub.{u2, u1} α β] {s : Set.{u1} β} {t₁ : Set.{u1} β} {t₂ : Set.{u1} β}, Eq.{succ u2} (Set.{u2} α) (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) s (Union.union.{u1} (Set.{u1} β) (Set.instUnionSet.{u1} β) t₁ t₂)) (Union.union.{u2} (Set.{u2} α) (Set.instUnionSet.{u2} α) (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) s t₁) (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) s t₂))
-Case conversion may be inaccurate. Consider using '#align set.vsub_union Set.vsub_unionₓ'. -/
 theorem vsub_union : s -ᵥ (t₁ ∪ t₂) = s -ᵥ t₁ ∪ (s -ᵥ t₂) :=
   image2_union_right
 #align set.vsub_union Set.vsub_union
 
-/- warning: set.inter_vsub_subset -> Set.inter_vsub_subset is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : VSub.{u1, u2} α β] {s₁ : Set.{u2} β} {s₂ : Set.{u2} β} {t : Set.{u2} β}, HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) (Inter.inter.{u2} (Set.{u2} β) (Set.hasInter.{u2} β) s₁ s₂) t) (Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s₁ t) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s₂ t))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : VSub.{u2, u1} α β] {s₁ : Set.{u1} β} {s₂ : Set.{u1} β} {t : Set.{u1} β}, HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) (Inter.inter.{u1} (Set.{u1} β) (Set.instInterSet.{u1} β) s₁ s₂) t) (Inter.inter.{u2} (Set.{u2} α) (Set.instInterSet.{u2} α) (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) s₁ t) (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) s₂ t))
-Case conversion may be inaccurate. Consider using '#align set.inter_vsub_subset Set.inter_vsub_subsetₓ'. -/
 theorem inter_vsub_subset : s₁ ∩ s₂ -ᵥ t ⊆ (s₁ -ᵥ t) ∩ (s₂ -ᵥ t) :=
   image2_inter_subset_left
 #align set.inter_vsub_subset Set.inter_vsub_subset
 
-/- warning: set.vsub_inter_subset -> Set.vsub_inter_subset is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : VSub.{u1, u2} α β] {s : Set.{u2} β} {t₁ : Set.{u2} β} {t₂ : Set.{u2} β}, HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s (Inter.inter.{u2} (Set.{u2} β) (Set.hasInter.{u2} β) t₁ t₂)) (Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s t₁) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s t₂))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : VSub.{u2, u1} α β] {s : Set.{u1} β} {t₁ : Set.{u1} β} {t₂ : Set.{u1} β}, HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) s (Inter.inter.{u1} (Set.{u1} β) (Set.instInterSet.{u1} β) t₁ t₂)) (Inter.inter.{u2} (Set.{u2} α) (Set.instInterSet.{u2} α) (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) s t₁) (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) s t₂))
-Case conversion may be inaccurate. Consider using '#align set.vsub_inter_subset Set.vsub_inter_subsetₓ'. -/
 theorem vsub_inter_subset : s -ᵥ t₁ ∩ t₂ ⊆ (s -ᵥ t₁) ∩ (s -ᵥ t₂) :=
   image2_inter_subset_right
 #align set.vsub_inter_subset Set.vsub_inter_subset
 
-/- warning: set.inter_vsub_union_subset_union -> Set.inter_vsub_union_subset_union is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : VSub.{u1, u2} α β] {s₁ : Set.{u2} β} {s₂ : Set.{u2} β} {t₁ : Set.{u2} β} {t₂ : Set.{u2} β}, HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) (Inter.inter.{u2} (Set.{u2} β) (Set.hasInter.{u2} β) s₁ s₂) (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) t₁ t₂)) (Union.union.{u1} (Set.{u1} α) (Set.hasUnion.{u1} α) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s₁ t₁) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s₂ t₂))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : VSub.{u2, u1} α β] {s₁ : Set.{u1} β} {s₂ : Set.{u1} β} {t₁ : Set.{u1} β} {t₂ : Set.{u1} β}, HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) (Inter.inter.{u1} (Set.{u1} β) (Set.instInterSet.{u1} β) s₁ s₂) (Union.union.{u1} (Set.{u1} β) (Set.instUnionSet.{u1} β) t₁ t₂)) (Union.union.{u2} (Set.{u2} α) (Set.instUnionSet.{u2} α) (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) s₁ t₁) (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) s₂ t₂))
-Case conversion may be inaccurate. Consider using '#align set.inter_vsub_union_subset_union Set.inter_vsub_union_subset_unionₓ'. -/
 theorem inter_vsub_union_subset_union : s₁ ∩ s₂ -ᵥ (t₁ ∪ t₂) ⊆ s₁ -ᵥ t₁ ∪ (s₂ -ᵥ t₂) :=
   image2_inter_union_subset_union
 #align set.inter_vsub_union_subset_union Set.inter_vsub_union_subset_union
 
-/- warning: set.union_vsub_inter_subset_union -> Set.union_vsub_inter_subset_union is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : VSub.{u1, u2} α β] {s₁ : Set.{u2} β} {s₂ : Set.{u2} β} {t₁ : Set.{u2} β} {t₂ : Set.{u2} β}, HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) s₁ s₂) (Inter.inter.{u2} (Set.{u2} β) (Set.hasInter.{u2} β) t₁ t₂)) (Union.union.{u1} (Set.{u1} α) (Set.hasUnion.{u1} α) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s₁ t₁) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s₂ t₂))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : VSub.{u2, u1} α β] {s₁ : Set.{u1} β} {s₂ : Set.{u1} β} {t₁ : Set.{u1} β} {t₂ : Set.{u1} β}, HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) (Union.union.{u1} (Set.{u1} β) (Set.instUnionSet.{u1} β) s₁ s₂) (Inter.inter.{u1} (Set.{u1} β) (Set.instInterSet.{u1} β) t₁ t₂)) (Union.union.{u2} (Set.{u2} α) (Set.instUnionSet.{u2} α) (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) s₁ t₁) (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) s₂ t₂))
-Case conversion may be inaccurate. Consider using '#align set.union_vsub_inter_subset_union Set.union_vsub_inter_subset_unionₓ'. -/
 theorem union_vsub_inter_subset_union : s₁ ∪ s₂ -ᵥ t₁ ∩ t₂ ⊆ s₁ -ᵥ t₁ ∪ (s₂ -ᵥ t₂) :=
   image2_union_inter_subset_union
 #align set.union_vsub_inter_subset_union Set.union_vsub_inter_subset_union
 
-/- warning: set.Union_vsub_left_image -> Set.iUnion_vsub_left_image is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : VSub.{u1, u2} α β] {s : Set.{u2} β} {t : Set.{u2} β}, Eq.{succ u1} (Set.{u1} α) (Set.iUnion.{u1, succ u2} α β (fun (a : β) => Set.iUnion.{u1, 0} α (Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) a s) (fun (H : Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) a s) => Set.image.{u2, u1} β α (VSub.vsub.{u1, u2} α β _inst_1 a) t))) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s t)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : VSub.{u2, u1} α β] {s : Set.{u1} β} {t : Set.{u1} β}, Eq.{succ u2} (Set.{u2} α) (Set.iUnion.{u2, succ u1} α β (fun (a : β) => Set.iUnion.{u2, 0} α (Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) a s) (fun (H : Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) a s) => Set.image.{u1, u2} β α ((fun (x._@.Mathlib.Data.Set.Pointwise.SMul._hyg.6866 : β) (x._@.Mathlib.Data.Set.Pointwise.SMul._hyg.6868 : β) => VSub.vsub.{u2, u1} α β _inst_1 x._@.Mathlib.Data.Set.Pointwise.SMul._hyg.6866 x._@.Mathlib.Data.Set.Pointwise.SMul._hyg.6868) a) t))) (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) s t)
-Case conversion may be inaccurate. Consider using '#align set.Union_vsub_left_image Set.iUnion_vsub_left_imageₓ'. -/
 theorem iUnion_vsub_left_image : (⋃ a ∈ s, (· -ᵥ ·) a '' t) = s -ᵥ t :=
   iUnion_image_left _
 #align set.Union_vsub_left_image Set.iUnion_vsub_left_image
 
-/- warning: set.Union_vsub_right_image -> Set.iUnion_vsub_right_image is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : VSub.{u1, u2} α β] {s : Set.{u2} β} {t : Set.{u2} β}, Eq.{succ u1} (Set.{u1} α) (Set.iUnion.{u1, succ u2} α β (fun (a : β) => Set.iUnion.{u1, 0} α (Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) a t) (fun (H : Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) a t) => Set.image.{u2, u1} β α (fun (_x : β) => VSub.vsub.{u1, u2} α β _inst_1 _x a) s))) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s t)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : VSub.{u2, u1} α β] {s : Set.{u1} β} {t : Set.{u1} β}, Eq.{succ u2} (Set.{u2} α) (Set.iUnion.{u2, succ u1} α β (fun (a : β) => Set.iUnion.{u2, 0} α (Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) a t) (fun (H : Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) a t) => Set.image.{u1, u2} β α (fun (_x : β) => VSub.vsub.{u2, u1} α β _inst_1 _x a) s))) (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) s t)
-Case conversion may be inaccurate. Consider using '#align set.Union_vsub_right_image Set.iUnion_vsub_right_imageₓ'. -/
 theorem iUnion_vsub_right_image : (⋃ a ∈ t, (· -ᵥ a) '' s) = s -ᵥ t :=
   iUnion_image_right _
 #align set.Union_vsub_right_image Set.iUnion_vsub_right_image
 
-/- warning: set.Union_vsub -> Set.iUnion_vsub is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} [_inst_1 : VSub.{u1, u2} α β] (s : ι -> (Set.{u2} β)) (t : Set.{u2} β), Eq.{succ u1} (Set.{u1} α) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) (Set.iUnion.{u2, u3} β ι (fun (i : ι) => s i)) t) (Set.iUnion.{u1, u3} α ι (fun (i : ι) => VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) (s i) t))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} {ι : Sort.{u1}} [_inst_1 : VSub.{u2, u3} α β] (s : ι -> (Set.{u3} β)) (t : Set.{u3} β), Eq.{succ u2} (Set.{u2} α) (VSub.vsub.{u2, u3} (Set.{u2} α) (Set.{u3} β) (Set.vsub.{u2, u3} α β _inst_1) (Set.iUnion.{u3, u1} β ι (fun (i : ι) => s i)) t) (Set.iUnion.{u2, u1} α ι (fun (i : ι) => VSub.vsub.{u2, u3} (Set.{u2} α) (Set.{u3} β) (Set.vsub.{u2, u3} α β _inst_1) (s i) t))
-Case conversion may be inaccurate. Consider using '#align set.Union_vsub Set.iUnion_vsubₓ'. -/
 theorem iUnion_vsub (s : ι → Set β) (t : Set β) : (⋃ i, s i) -ᵥ t = ⋃ i, s i -ᵥ t :=
   image2_iUnion_left _ _ _
 #align set.Union_vsub Set.iUnion_vsub
 
-/- warning: set.vsub_Union -> Set.vsub_iUnion is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} [_inst_1 : VSub.{u1, u2} α β] (s : Set.{u2} β) (t : ι -> (Set.{u2} β)), Eq.{succ u1} (Set.{u1} α) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s (Set.iUnion.{u2, u3} β ι (fun (i : ι) => t i))) (Set.iUnion.{u1, u3} α ι (fun (i : ι) => VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s (t i)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} {ι : Sort.{u1}} [_inst_1 : VSub.{u2, u3} α β] (s : Set.{u3} β) (t : ι -> (Set.{u3} β)), Eq.{succ u2} (Set.{u2} α) (VSub.vsub.{u2, u3} (Set.{u2} α) (Set.{u3} β) (Set.vsub.{u2, u3} α β _inst_1) s (Set.iUnion.{u3, u1} β ι (fun (i : ι) => t i))) (Set.iUnion.{u2, u1} α ι (fun (i : ι) => VSub.vsub.{u2, u3} (Set.{u2} α) (Set.{u3} β) (Set.vsub.{u2, u3} α β _inst_1) s (t i)))
-Case conversion may be inaccurate. Consider using '#align set.vsub_Union Set.vsub_iUnionₓ'. -/
 theorem vsub_iUnion (s : Set β) (t : ι → Set β) : (s -ᵥ ⋃ i, t i) = ⋃ i, s -ᵥ t i :=
   image2_iUnion_right _ _ _
 #align set.vsub_Union Set.vsub_iUnion
 
-/- warning: set.Union₂_vsub -> Set.iUnion₂_vsub is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {κ : ι -> Sort.{u4}} [_inst_1 : VSub.{u1, u2} α β] (s : forall (i : ι), (κ i) -> (Set.{u2} β)) (t : Set.{u2} β), Eq.{succ u1} (Set.{u1} α) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) (Set.iUnion.{u2, u3} β ι (fun (i : ι) => Set.iUnion.{u2, u4} β (κ i) (fun (j : κ i) => s i j))) t) (Set.iUnion.{u1, u3} α ι (fun (i : ι) => Set.iUnion.{u1, u4} α (κ i) (fun (j : κ i) => VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) (s i j) t)))
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u4}} {ι : Sort.{u2}} {κ : ι -> Sort.{u1}} [_inst_1 : VSub.{u3, u4} α β] (s : forall (i : ι), (κ i) -> (Set.{u4} β)) (t : Set.{u4} β), Eq.{succ u3} (Set.{u3} α) (VSub.vsub.{u3, u4} (Set.{u3} α) (Set.{u4} β) (Set.vsub.{u3, u4} α β _inst_1) (Set.iUnion.{u4, u2} β ι (fun (i : ι) => Set.iUnion.{u4, u1} β (κ i) (fun (j : κ i) => s i j))) t) (Set.iUnion.{u3, u2} α ι (fun (i : ι) => Set.iUnion.{u3, u1} α (κ i) (fun (j : κ i) => VSub.vsub.{u3, u4} (Set.{u3} α) (Set.{u4} β) (Set.vsub.{u3, u4} α β _inst_1) (s i j) t)))
-Case conversion may be inaccurate. Consider using '#align set.Union₂_vsub Set.iUnion₂_vsubₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 theorem iUnion₂_vsub (s : ∀ i, κ i → Set β) (t : Set β) :
@@ -1140,12 +852,6 @@ theorem iUnion₂_vsub (s : ∀ i, κ i → Set β) (t : Set β) :
   image2_iUnion₂_left _ _ _
 #align set.Union₂_vsub Set.iUnion₂_vsub
 
-/- warning: set.vsub_Union₂ -> Set.vsub_iUnion₂ is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {κ : ι -> Sort.{u4}} [_inst_1 : VSub.{u1, u2} α β] (s : Set.{u2} β) (t : forall (i : ι), (κ i) -> (Set.{u2} β)), Eq.{succ u1} (Set.{u1} α) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s (Set.iUnion.{u2, u3} β ι (fun (i : ι) => Set.iUnion.{u2, u4} β (κ i) (fun (j : κ i) => t i j)))) (Set.iUnion.{u1, u3} α ι (fun (i : ι) => Set.iUnion.{u1, u4} α (κ i) (fun (j : κ i) => VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s (t i j))))
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u4}} {ι : Sort.{u2}} {κ : ι -> Sort.{u1}} [_inst_1 : VSub.{u3, u4} α β] (s : Set.{u4} β) (t : forall (i : ι), (κ i) -> (Set.{u4} β)), Eq.{succ u3} (Set.{u3} α) (VSub.vsub.{u3, u4} (Set.{u3} α) (Set.{u4} β) (Set.vsub.{u3, u4} α β _inst_1) s (Set.iUnion.{u4, u2} β ι (fun (i : ι) => Set.iUnion.{u4, u1} β (κ i) (fun (j : κ i) => t i j)))) (Set.iUnion.{u3, u2} α ι (fun (i : ι) => Set.iUnion.{u3, u1} α (κ i) (fun (j : κ i) => VSub.vsub.{u3, u4} (Set.{u3} α) (Set.{u4} β) (Set.vsub.{u3, u4} α β _inst_1) s (t i j))))
-Case conversion may be inaccurate. Consider using '#align set.vsub_Union₂ Set.vsub_iUnion₂ₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 theorem vsub_iUnion₂ (s : Set β) (t : ∀ i, κ i → Set β) :
@@ -1153,32 +859,14 @@ theorem vsub_iUnion₂ (s : Set β) (t : ∀ i, κ i → Set β) :
   image2_iUnion₂_right _ _ _
 #align set.vsub_Union₂ Set.vsub_iUnion₂
 
-/- warning: set.Inter_vsub_subset -> Set.iInter_vsub_subset is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} [_inst_1 : VSub.{u1, u2} α β] (s : ι -> (Set.{u2} β)) (t : Set.{u2} β), HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) (Set.iInter.{u2, u3} β ι (fun (i : ι) => s i)) t) (Set.iInter.{u1, u3} α ι (fun (i : ι) => VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) (s i) t))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} {ι : Sort.{u1}} [_inst_1 : VSub.{u2, u3} α β] (s : ι -> (Set.{u3} β)) (t : Set.{u3} β), HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) (VSub.vsub.{u2, u3} (Set.{u2} α) (Set.{u3} β) (Set.vsub.{u2, u3} α β _inst_1) (Set.iInter.{u3, u1} β ι (fun (i : ι) => s i)) t) (Set.iInter.{u2, u1} α ι (fun (i : ι) => VSub.vsub.{u2, u3} (Set.{u2} α) (Set.{u3} β) (Set.vsub.{u2, u3} α β _inst_1) (s i) t))
-Case conversion may be inaccurate. Consider using '#align set.Inter_vsub_subset Set.iInter_vsub_subsetₓ'. -/
 theorem iInter_vsub_subset (s : ι → Set β) (t : Set β) : (⋂ i, s i) -ᵥ t ⊆ ⋂ i, s i -ᵥ t :=
   image2_iInter_subset_left _ _ _
 #align set.Inter_vsub_subset Set.iInter_vsub_subset
 
-/- warning: set.vsub_Inter_subset -> Set.vsub_iInter_subset is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} [_inst_1 : VSub.{u1, u2} α β] (s : Set.{u2} β) (t : ι -> (Set.{u2} β)), HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s (Set.iInter.{u2, u3} β ι (fun (i : ι) => t i))) (Set.iInter.{u1, u3} α ι (fun (i : ι) => VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s (t i)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} {ι : Sort.{u1}} [_inst_1 : VSub.{u2, u3} α β] (s : Set.{u3} β) (t : ι -> (Set.{u3} β)), HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) (VSub.vsub.{u2, u3} (Set.{u2} α) (Set.{u3} β) (Set.vsub.{u2, u3} α β _inst_1) s (Set.iInter.{u3, u1} β ι (fun (i : ι) => t i))) (Set.iInter.{u2, u1} α ι (fun (i : ι) => VSub.vsub.{u2, u3} (Set.{u2} α) (Set.{u3} β) (Set.vsub.{u2, u3} α β _inst_1) s (t i)))
-Case conversion may be inaccurate. Consider using '#align set.vsub_Inter_subset Set.vsub_iInter_subsetₓ'. -/
 theorem vsub_iInter_subset (s : Set β) (t : ι → Set β) : (s -ᵥ ⋂ i, t i) ⊆ ⋂ i, s -ᵥ t i :=
   image2_iInter_subset_right _ _ _
 #align set.vsub_Inter_subset Set.vsub_iInter_subset
 
-/- warning: set.Inter₂_vsub_subset -> Set.iInter₂_vsub_subset is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {κ : ι -> Sort.{u4}} [_inst_1 : VSub.{u1, u2} α β] (s : forall (i : ι), (κ i) -> (Set.{u2} β)) (t : Set.{u2} β), HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) (Set.iInter.{u2, u3} β ι (fun (i : ι) => Set.iInter.{u2, u4} β (κ i) (fun (j : κ i) => s i j))) t) (Set.iInter.{u1, u3} α ι (fun (i : ι) => Set.iInter.{u1, u4} α (κ i) (fun (j : κ i) => VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) (s i j) t)))
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u4}} {ι : Sort.{u2}} {κ : ι -> Sort.{u1}} [_inst_1 : VSub.{u3, u4} α β] (s : forall (i : ι), (κ i) -> (Set.{u4} β)) (t : Set.{u4} β), HasSubset.Subset.{u3} (Set.{u3} α) (Set.instHasSubsetSet.{u3} α) (VSub.vsub.{u3, u4} (Set.{u3} α) (Set.{u4} β) (Set.vsub.{u3, u4} α β _inst_1) (Set.iInter.{u4, u2} β ι (fun (i : ι) => Set.iInter.{u4, u1} β (κ i) (fun (j : κ i) => s i j))) t) (Set.iInter.{u3, u2} α ι (fun (i : ι) => Set.iInter.{u3, u1} α (κ i) (fun (j : κ i) => VSub.vsub.{u3, u4} (Set.{u3} α) (Set.{u4} β) (Set.vsub.{u3, u4} α β _inst_1) (s i j) t)))
-Case conversion may be inaccurate. Consider using '#align set.Inter₂_vsub_subset Set.iInter₂_vsub_subsetₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 theorem iInter₂_vsub_subset (s : ∀ i, κ i → Set β) (t : Set β) :
@@ -1186,12 +874,6 @@ theorem iInter₂_vsub_subset (s : ∀ i, κ i → Set β) (t : Set β) :
   image2_iInter₂_subset_left _ _ _
 #align set.Inter₂_vsub_subset Set.iInter₂_vsub_subset
 
-/- warning: set.vsub_Inter₂_subset -> Set.vsub_iInter₂_subset is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {κ : ι -> Sort.{u4}} [_inst_1 : VSub.{u1, u2} α β] (s : Set.{u2} β) (t : forall (i : ι), (κ i) -> (Set.{u2} β)), HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s (Set.iInter.{u2, u3} β ι (fun (i : ι) => Set.iInter.{u2, u4} β (κ i) (fun (j : κ i) => t i j)))) (Set.iInter.{u1, u3} α ι (fun (i : ι) => Set.iInter.{u1, u4} α (κ i) (fun (j : κ i) => VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s (t i j))))
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u4}} {ι : Sort.{u2}} {κ : ι -> Sort.{u1}} [_inst_1 : VSub.{u3, u4} α β] (s : Set.{u4} β) (t : forall (i : ι), (κ i) -> (Set.{u4} β)), HasSubset.Subset.{u3} (Set.{u3} α) (Set.instHasSubsetSet.{u3} α) (VSub.vsub.{u3, u4} (Set.{u3} α) (Set.{u4} β) (Set.vsub.{u3, u4} α β _inst_1) s (Set.iInter.{u4, u2} β ι (fun (i : ι) => Set.iInter.{u4, u1} β (κ i) (fun (j : κ i) => t i j)))) (Set.iInter.{u3, u2} α ι (fun (i : ι) => Set.iInter.{u3, u1} α (κ i) (fun (j : κ i) => VSub.vsub.{u3, u4} (Set.{u3} α) (Set.{u4} β) (Set.vsub.{u3, u4} α β _inst_1) s (t i j))))
-Case conversion may be inaccurate. Consider using '#align set.vsub_Inter₂_subset Set.vsub_iInter₂_subsetₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 theorem vsub_iInter₂_subset (s : Set β) (t : ∀ i, κ i → Set β) :
@@ -1203,12 +885,6 @@ end Vsub
 
 open Pointwise
 
-/- warning: set.image_smul_comm -> Set.image_smul_comm is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : SMul.{u1, u2} α β] [_inst_2 : SMul.{u1, u3} α γ] (f : β -> γ) (a : α) (s : Set.{u2} β), (forall (b : β), Eq.{succ u3} γ (f (SMul.smul.{u1, u2} α β _inst_1 a b)) (SMul.smul.{u1, u3} α γ _inst_2 a (f b))) -> (Eq.{succ u3} (Set.{u3} γ) (Set.image.{u2, u3} β γ f (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1) a s)) (SMul.smul.{u1, u3} α (Set.{u3} γ) (Set.smulSet.{u1, u3} α γ _inst_2) a (Set.image.{u2, u3} β γ f s)))
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u1}} [_inst_1 : SMul.{u3, u2} α β] [_inst_2 : SMul.{u3, u1} α γ] (f : β -> γ) (a : α) (s : Set.{u2} β), (forall (b : β), Eq.{succ u1} γ (f (HSMul.hSMul.{u3, u2, u2} α β β (instHSMul.{u3, u2} α β _inst_1) a b)) (HSMul.hSMul.{u3, u1, u1} α γ γ (instHSMul.{u3, u1} α γ _inst_2) a (f b))) -> (Eq.{succ u1} (Set.{u1} γ) (Set.image.{u2, u1} β γ f (HSMul.hSMul.{u3, u2, u2} α (Set.{u2} β) (Set.{u2} β) (instHSMul.{u3, u2} α (Set.{u2} β) (Set.smulSet.{u3, u2} α β _inst_1)) a s)) (HSMul.hSMul.{u3, u1, u1} α (Set.{u1} γ) (Set.{u1} γ) (instHSMul.{u3, u1} α (Set.{u1} γ) (Set.smulSet.{u3, u1} α γ _inst_2)) a (Set.image.{u2, u1} β γ f s)))
-Case conversion may be inaccurate. Consider using '#align set.image_smul_comm Set.image_smul_commₓ'. -/
 @[to_additive]
 theorem image_smul_comm [SMul α β] [SMul α γ] (f : β → γ) (a : α) (s : Set β) :
     (∀ b, f (a • b) = a • f b) → f '' (a • s) = a • f '' s :=
@@ -1216,12 +892,6 @@ theorem image_smul_comm [SMul α β] [SMul α γ] (f : β → γ) (a : α) (s :
 #align set.image_smul_comm Set.image_smul_comm
 #align set.image_vadd_comm Set.image_vadd_comm
 
-/- warning: set.image_smul_distrib -> Set.image_smul_distrib is a dubious translation:
-lean 3 declaration is
-  forall {F : Type.{u1}} {α : Type.{u2}} {β : Type.{u3}} [_inst_1 : MulOneClass.{u2} α] [_inst_2 : MulOneClass.{u3} β] [_inst_3 : MonoidHomClass.{u1, u2, u3} F α β _inst_1 _inst_2] (f : F) (a : α) (s : Set.{u2} α), Eq.{succ u3} (Set.{u3} β) (Set.image.{u2, u3} α β (coeFn.{succ u1, max (succ u2) (succ u3)} F (fun (_x : F) => α -> β) (FunLike.hasCoeToFun.{succ u1, succ u2, succ u3} F α (fun (_x : α) => β) (MulHomClass.toFunLike.{u1, u2, u3} F α β (MulOneClass.toHasMul.{u2} α _inst_1) (MulOneClass.toHasMul.{u3} β _inst_2) (MonoidHomClass.toMulHomClass.{u1, u2, u3} F α β _inst_1 _inst_2 _inst_3))) f) (SMul.smul.{u2, u2} α (Set.{u2} α) (Set.smulSet.{u2, u2} α α (Mul.toSMul.{u2} α (MulOneClass.toHasMul.{u2} α _inst_1))) a s)) (SMul.smul.{u3, u3} β (Set.{u3} β) (Set.smulSet.{u3, u3} β β (Mul.toSMul.{u3} β (MulOneClass.toHasMul.{u3} β _inst_2))) (coeFn.{succ u1, max (succ u2) (succ u3)} F (fun (_x : F) => α -> β) (FunLike.hasCoeToFun.{succ u1, succ u2, succ u3} F α (fun (_x : α) => β) (MulHomClass.toFunLike.{u1, u2, u3} F α β (MulOneClass.toHasMul.{u2} α _inst_1) (MulOneClass.toHasMul.{u3} β _inst_2) (MonoidHomClass.toMulHomClass.{u1, u2, u3} F α β _inst_1 _inst_2 _inst_3))) f a) (Set.image.{u2, u3} α β (coeFn.{succ u1, max (succ u2) (succ u3)} F (fun (_x : F) => α -> β) (FunLike.hasCoeToFun.{succ u1, succ u2, succ u3} F α (fun (_x : α) => β) (MulHomClass.toFunLike.{u1, u2, u3} F α β (MulOneClass.toHasMul.{u2} α _inst_1) (MulOneClass.toHasMul.{u3} β _inst_2) (MonoidHomClass.toMulHomClass.{u1, u2, u3} F α β _inst_1 _inst_2 _inst_3))) f) s))
-but is expected to have type
-  forall {F : Type.{u1}} {α : Type.{u3}} {β : Type.{u2}} [_inst_1 : MulOneClass.{u3} α] [_inst_2 : MulOneClass.{u2} β] [_inst_3 : MonoidHomClass.{u1, u3, u2} F α β _inst_1 _inst_2] (f : F) (a : α) (s : Set.{u3} α), Eq.{succ u2} (Set.{u2} β) (Set.image.{u3, u2} α β (FunLike.coe.{succ u1, succ u3, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => β) _x) (MulHomClass.toFunLike.{u1, u3, u2} F α β (MulOneClass.toMul.{u3} α _inst_1) (MulOneClass.toMul.{u2} β _inst_2) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F α β _inst_1 _inst_2 _inst_3)) f) (HSMul.hSMul.{u3, u3, u3} α (Set.{u3} α) (Set.{u3} α) (instHSMul.{u3, u3} α (Set.{u3} α) (Set.smulSet.{u3, u3} α α (Mul.toSMul.{u3} α (MulOneClass.toMul.{u3} α _inst_1)))) a s)) (HSMul.hSMul.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => β) a) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => β) a) (Set.{u2} β) (Set.smulSet.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => β) a) β (Mul.toSMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => β) a) (MulOneClass.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => β) a) _inst_2)))) (FunLike.coe.{succ u1, succ u3, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => β) _x) (MulHomClass.toFunLike.{u1, u3, u2} F α β (MulOneClass.toMul.{u3} α _inst_1) (MulOneClass.toMul.{u2} β _inst_2) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F α β _inst_1 _inst_2 _inst_3)) f a) (Set.image.{u3, u2} α β (FunLike.coe.{succ u1, succ u3, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => β) _x) (MulHomClass.toFunLike.{u1, u3, u2} F α β (MulOneClass.toMul.{u3} α _inst_1) (MulOneClass.toMul.{u2} β _inst_2) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F α β _inst_1 _inst_2 _inst_3)) f) s))
-Case conversion may be inaccurate. Consider using '#align set.image_smul_distrib Set.image_smul_distribₓ'. -/
 @[to_additive]
 theorem image_smul_distrib [MulOneClass α] [MulOneClass β] [MonoidHomClass F α β] (f : F) (a : α)
     (s : Set α) : f '' (a • s) = f a • f '' s :=
@@ -1233,12 +903,6 @@ section SMul
 
 variable [SMul αᵐᵒᵖ β] [SMul β γ] [SMul α γ]
 
-/- warning: set.op_smul_set_smul_eq_smul_smul_set -> Set.op_smul_set_smul_eq_smul_smul_set is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : SMul.{u1, u2} (MulOpposite.{u1} α) β] [_inst_2 : SMul.{u2, u3} β γ] [_inst_3 : SMul.{u1, u3} α γ] (a : α) (s : Set.{u2} β) (t : Set.{u3} γ), (forall (a : α) (b : β) (c : γ), Eq.{succ u3} γ (SMul.smul.{u2, u3} β γ _inst_2 (SMul.smul.{u1, u2} (MulOpposite.{u1} α) β _inst_1 (MulOpposite.op.{u1} α a) b) c) (SMul.smul.{u2, u3} β γ _inst_2 b (SMul.smul.{u1, u3} α γ _inst_3 a c))) -> (Eq.{succ u3} (Set.{u3} γ) (SMul.smul.{u2, u3} (Set.{u2} β) (Set.{u3} γ) (Set.smul.{u2, u3} β γ _inst_2) (SMul.smul.{u1, u2} (MulOpposite.{u1} α) (Set.{u2} β) (Set.smulSet.{u1, u2} (MulOpposite.{u1} α) β _inst_1) (MulOpposite.op.{u1} α a) s) t) (SMul.smul.{u2, u3} (Set.{u2} β) (Set.{u3} γ) (Set.smul.{u2, u3} β γ _inst_2) s (SMul.smul.{u1, u3} α (Set.{u3} γ) (Set.smulSet.{u1, u3} α γ _inst_3) a t)))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} [_inst_1 : SMul.{u1, u3} (MulOpposite.{u1} α) β] [_inst_2 : SMul.{u3, u2} β γ] [_inst_3 : SMul.{u1, u2} α γ] (a : α) (s : Set.{u3} β) (t : Set.{u2} γ), (forall (a : α) (b : β) (c : γ), Eq.{succ u2} γ (HSMul.hSMul.{u3, u2, u2} β γ γ (instHSMul.{u3, u2} β γ _inst_2) (HSMul.hSMul.{u1, u3, u3} (MulOpposite.{u1} α) β β (instHSMul.{u1, u3} (MulOpposite.{u1} α) β _inst_1) (MulOpposite.op.{u1} α a) b) c) (HSMul.hSMul.{u3, u2, u2} β γ γ (instHSMul.{u3, u2} β γ _inst_2) b (HSMul.hSMul.{u1, u2, u2} α γ γ (instHSMul.{u1, u2} α γ _inst_3) a c))) -> (Eq.{succ u2} (Set.{u2} γ) (HSMul.hSMul.{u3, u2, u2} (Set.{u3} β) (Set.{u2} γ) (Set.{u2} γ) (instHSMul.{u3, u2} (Set.{u3} β) (Set.{u2} γ) (Set.smul.{u3, u2} β γ _inst_2)) (HSMul.hSMul.{u1, u3, u3} (MulOpposite.{u1} α) (Set.{u3} β) (Set.{u3} β) (instHSMul.{u1, u3} (MulOpposite.{u1} α) (Set.{u3} β) (Set.smulSet.{u1, u3} (MulOpposite.{u1} α) β _inst_1)) (MulOpposite.op.{u1} α a) s) t) (HSMul.hSMul.{u3, u2, u2} (Set.{u3} β) (Set.{u2} γ) (Set.{u2} γ) (instHSMul.{u3, u2} (Set.{u3} β) (Set.{u2} γ) (Set.smul.{u3, u2} β γ _inst_2)) s (HSMul.hSMul.{u1, u2, u2} α (Set.{u2} γ) (Set.{u2} γ) (instHSMul.{u1, u2} α (Set.{u2} γ) (Set.smulSet.{u1, u2} α γ _inst_3)) a t)))
-Case conversion may be inaccurate. Consider using '#align set.op_smul_set_smul_eq_smul_smul_set Set.op_smul_set_smul_eq_smul_smul_setₓ'. -/
 -- TODO: replace hypothesis and conclusion with a typeclass
 @[to_additive]
 theorem op_smul_set_smul_eq_smul_smul_set (a : α) (s : Set β) (t : Set γ)
@@ -1259,12 +923,6 @@ because `0 * ∅ ≠ 0`.
 -/
 
 
-/- warning: set.smul_zero_subset -> Set.smul_zero_subset is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Zero.{u1} α] [_inst_2 : Zero.{u2} β] [_inst_3 : SMulWithZero.{u1, u2} α β _inst_1 _inst_2] (s : Set.{u1} α), HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β _inst_2 (SMulWithZero.toSmulZeroClass.{u1, u2} α β _inst_1 _inst_2 _inst_3))) s (OfNat.ofNat.{u2} (Set.{u2} β) 0 (OfNat.mk.{u2} (Set.{u2} β) 0 (Zero.zero.{u2} (Set.{u2} β) (Set.zero.{u2} β _inst_2))))) (OfNat.ofNat.{u2} (Set.{u2} β) 0 (OfNat.mk.{u2} (Set.{u2} β) 0 (Zero.zero.{u2} (Set.{u2} β) (Set.zero.{u2} β _inst_2))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : Zero.{u2} α] [_inst_2 : Zero.{u1} β] [_inst_3 : SMulWithZero.{u2, u1} α β _inst_1 _inst_2] (s : Set.{u2} α), HasSubset.Subset.{u1} (Set.{u1} β) (Set.instHasSubsetSet.{u1} β) (HSMul.hSMul.{u2, u1, u1} (Set.{u2} α) (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.smul.{u2, u1} α β (SMulZeroClass.toSMul.{u2, u1} α β _inst_2 (SMulWithZero.toSMulZeroClass.{u2, u1} α β _inst_1 _inst_2 _inst_3)))) s (OfNat.ofNat.{u1} (Set.{u1} β) 0 (Zero.toOfNat0.{u1} (Set.{u1} β) (Set.zero.{u1} β _inst_2)))) (OfNat.ofNat.{u1} (Set.{u1} β) 0 (Zero.toOfNat0.{u1} (Set.{u1} β) (Set.zero.{u1} β _inst_2)))
-Case conversion may be inaccurate. Consider using '#align set.smul_zero_subset Set.smul_zero_subsetₓ'. -/
 theorem smul_zero_subset (s : Set α) : s • (0 : Set β) ⊆ 0 := by simp [subset_def, mem_smul]
 #align set.smul_zero_subset Set.smul_zero_subset
 
@@ -1273,12 +931,6 @@ theorem zero_smul_subset (t : Set β) : (0 : Set α) • t ⊆ 0 := by simp [sub
 #align set.zero_smul_subset Set.zero_smul_subset
 -/
 
-/- warning: set.nonempty.smul_zero -> Set.Nonempty.smul_zero is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Zero.{u1} α] [_inst_2 : Zero.{u2} β] [_inst_3 : SMulWithZero.{u1, u2} α β _inst_1 _inst_2] {s : Set.{u1} α}, (Set.Nonempty.{u1} α s) -> (Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β _inst_2 (SMulWithZero.toSmulZeroClass.{u1, u2} α β _inst_1 _inst_2 _inst_3))) s (OfNat.ofNat.{u2} (Set.{u2} β) 0 (OfNat.mk.{u2} (Set.{u2} β) 0 (Zero.zero.{u2} (Set.{u2} β) (Set.zero.{u2} β _inst_2))))) (OfNat.ofNat.{u2} (Set.{u2} β) 0 (OfNat.mk.{u2} (Set.{u2} β) 0 (Zero.zero.{u2} (Set.{u2} β) (Set.zero.{u2} β _inst_2)))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : Zero.{u2} α] [_inst_2 : Zero.{u1} β] [_inst_3 : SMulWithZero.{u2, u1} α β _inst_1 _inst_2] {s : Set.{u2} α}, (Set.Nonempty.{u2} α s) -> (Eq.{succ u1} (Set.{u1} β) (HSMul.hSMul.{u2, u1, u1} (Set.{u2} α) (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.smul.{u2, u1} α β (SMulZeroClass.toSMul.{u2, u1} α β _inst_2 (SMulWithZero.toSMulZeroClass.{u2, u1} α β _inst_1 _inst_2 _inst_3)))) s (OfNat.ofNat.{u1} (Set.{u1} β) 0 (Zero.toOfNat0.{u1} (Set.{u1} β) (Set.zero.{u1} β _inst_2)))) (OfNat.ofNat.{u1} (Set.{u1} β) 0 (Zero.toOfNat0.{u1} (Set.{u1} β) (Set.zero.{u1} β _inst_2))))
-Case conversion may be inaccurate. Consider using '#align set.nonempty.smul_zero Set.Nonempty.smul_zeroₓ'. -/
 theorem Nonempty.smul_zero (hs : s.Nonempty) : s • (0 : Set β) = 0 :=
   s.smul_zero_subset.antisymm <| by simpa [mem_smul] using hs
 #align set.nonempty.smul_zero Set.Nonempty.smul_zero
@@ -1330,12 +982,6 @@ theorem zero_mem_smul_iff : (0 : β) ∈ s • t ↔ (0 : α) ∈ s ∧ t.Nonemp
 #align set.zero_mem_smul_iff Set.zero_mem_smul_iff
 -/
 
-/- warning: set.zero_mem_smul_set_iff -> Set.zero_mem_smul_set_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Zero.{u1} α] [_inst_2 : Zero.{u2} β] [_inst_3 : SMulWithZero.{u1, u2} α β _inst_1 _inst_2] {t : Set.{u2} β} [_inst_4 : NoZeroSMulDivisors.{u1, u2} α β _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} α β _inst_2 (SMulWithZero.toSmulZeroClass.{u1, u2} α β _inst_1 _inst_2 _inst_3))] {a : α}, (Ne.{succ u1} α a (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α _inst_1)))) -> (Iff (Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) (OfNat.ofNat.{u2} β 0 (OfNat.mk.{u2} β 0 (Zero.zero.{u2} β _inst_2))) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β _inst_2 (SMulWithZero.toSmulZeroClass.{u1, u2} α β _inst_1 _inst_2 _inst_3))) a t)) (Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) (OfNat.ofNat.{u2} β 0 (OfNat.mk.{u2} β 0 (Zero.zero.{u2} β _inst_2))) t))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : Zero.{u2} α] [_inst_2 : Zero.{u1} β] [_inst_3 : SMulWithZero.{u2, u1} α β _inst_1 _inst_2] {t : Set.{u1} β} [_inst_4 : NoZeroSMulDivisors.{u2, u1} α β _inst_1 _inst_2 (SMulZeroClass.toSMul.{u2, u1} α β _inst_2 (SMulWithZero.toSMulZeroClass.{u2, u1} α β _inst_1 _inst_2 _inst_3))] {a : α}, (Ne.{succ u2} α a (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α _inst_1))) -> (Iff (Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) (OfNat.ofNat.{u1} β 0 (Zero.toOfNat0.{u1} β _inst_2)) (HSMul.hSMul.{u2, u1, u1} α (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} α (Set.{u1} β) (Set.smulSet.{u2, u1} α β (SMulZeroClass.toSMul.{u2, u1} α β _inst_2 (SMulWithZero.toSMulZeroClass.{u2, u1} α β _inst_1 _inst_2 _inst_3)))) a t)) (Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) (OfNat.ofNat.{u1} β 0 (Zero.toOfNat0.{u1} β _inst_2)) t))
-Case conversion may be inaccurate. Consider using '#align set.zero_mem_smul_set_iff Set.zero_mem_smul_set_iffₓ'. -/
 theorem zero_mem_smul_set_iff (ha : a ≠ 0) : (0 : β) ∈ a • t ↔ (0 : β) ∈ t :=
   by
   refine' ⟨_, zero_mem_smul_set⟩
@@ -1349,12 +995,6 @@ section Semigroup
 
 variable [Semigroup α]
 
-/- warning: set.op_smul_set_mul_eq_mul_smul_set -> Set.op_smul_set_mul_eq_mul_smul_set is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : Semigroup.{u1} α] (a : α) (s : Set.{u1} α) (t : Set.{u1} α), Eq.{succ u1} (Set.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (Semigroup.toHasMul.{u1} α _inst_1))) (SMul.smul.{u1, u1} (MulOpposite.{u1} α) (Set.{u1} α) (Set.smulSet.{u1, u1} (MulOpposite.{u1} α) α (Mul.toHasOppositeSMul.{u1} α (Semigroup.toHasMul.{u1} α _inst_1))) (MulOpposite.op.{u1} α a) s) t) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (Semigroup.toHasMul.{u1} α _inst_1))) s (SMul.smul.{u1, u1} α (Set.{u1} α) (Set.smulSet.{u1, u1} α α (Mul.toSMul.{u1} α (Semigroup.toHasMul.{u1} α _inst_1))) a t))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : Semigroup.{u1} α] (a : α) (s : Set.{u1} α) (t : Set.{u1} α), Eq.{succ u1} (Set.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (Semigroup.toMul.{u1} α _inst_1))) (HSMul.hSMul.{u1, u1, u1} (MulOpposite.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHSMul.{u1, u1} (MulOpposite.{u1} α) (Set.{u1} α) (Set.smulSet.{u1, u1} (MulOpposite.{u1} α) α (Mul.toHasOppositeSMul.{u1} α (Semigroup.toMul.{u1} α _inst_1)))) (MulOpposite.op.{u1} α a) s) t) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (Semigroup.toMul.{u1} α _inst_1))) s (HSMul.hSMul.{u1, u1, u1} α (Set.{u1} α) (Set.{u1} α) (instHSMul.{u1, u1} α (Set.{u1} α) (Set.smulSet.{u1, u1} α α (Mul.toSMul.{u1} α (Semigroup.toMul.{u1} α _inst_1)))) a t))
-Case conversion may be inaccurate. Consider using '#align set.op_smul_set_mul_eq_mul_smul_set Set.op_smul_set_mul_eq_mul_smul_setₓ'. -/
 @[to_additive]
 theorem op_smul_set_mul_eq_mul_smul_set (a : α) (s : Set α) (t : Set α) :
     op a • s * t = s * a • t :=
@@ -1368,12 +1008,6 @@ section LeftCancelSemigroup
 
 variable [LeftCancelSemigroup α] {s t : Set α}
 
-/- warning: set.pairwise_disjoint_smul_iff -> Set.pairwiseDisjoint_smul_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : LeftCancelSemigroup.{u1} α] {s : Set.{u1} α} {t : Set.{u1} α}, Iff (Set.PairwiseDisjoint.{u1, u1} (Set.{u1} α) α (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} α) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α))) s (fun (_x : α) => SMul.smul.{u1, u1} α (Set.{u1} α) (Set.smulSet.{u1, u1} α α (Mul.toSMul.{u1} α (Semigroup.toHasMul.{u1} α (LeftCancelSemigroup.toSemigroup.{u1} α _inst_1)))) _x t)) (Set.InjOn.{u1, u1} (Prod.{u1, u1} α α) α (fun (p : Prod.{u1, u1} α α) => HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (Semigroup.toHasMul.{u1} α (LeftCancelSemigroup.toSemigroup.{u1} α _inst_1))) (Prod.fst.{u1, u1} α α p) (Prod.snd.{u1, u1} α α p)) (Set.prod.{u1, u1} α α s t))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : LeftCancelSemigroup.{u1} α] {s : Set.{u1} α} {t : Set.{u1} α}, Iff (Set.PairwiseDisjoint.{u1, u1} (Set.{u1} α) α (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α)))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} α) (Preorder.toLE.{u1} (Set.{u1} α) (PartialOrder.toPreorder.{u1} (Set.{u1} α) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α)))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α)))))) s (fun (_x : α) => HSMul.hSMul.{u1, u1, u1} α (Set.{u1} α) (Set.{u1} α) (instHSMul.{u1, u1} α (Set.{u1} α) (Set.smulSet.{u1, u1} α α (Mul.toSMul.{u1} α (Semigroup.toMul.{u1} α (LeftCancelSemigroup.toSemigroup.{u1} α _inst_1))))) _x t)) (Set.InjOn.{u1, u1} (Prod.{u1, u1} α α) α (fun (p : Prod.{u1, u1} α α) => HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (Semigroup.toMul.{u1} α (LeftCancelSemigroup.toSemigroup.{u1} α _inst_1))) (Prod.fst.{u1, u1} α α p) (Prod.snd.{u1, u1} α α p)) (Set.prod.{u1, u1} α α s t))
-Case conversion may be inaccurate. Consider using '#align set.pairwise_disjoint_smul_iff Set.pairwiseDisjoint_smul_iffₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 @[to_additive]
 theorem pairwiseDisjoint_smul_iff :
@@ -1396,48 +1030,24 @@ theorem smul_mem_smul_set_iff : a • x ∈ a • s ↔ x ∈ s :=
 #align set.vadd_mem_vadd_set_iff Set.vadd_mem_vadd_set_iff
 -/
 
-/- warning: set.mem_smul_set_iff_inv_smul_mem -> Set.mem_smul_set_iff_inv_smul_mem is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Group.{u1} α] [_inst_2 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))] {A : Set.{u2} β} {a : α} {x : β}, Iff (Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2)) a A)) (Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2) (Inv.inv.{u1} α (DivInvMonoid.toHasInv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) a) x) A)
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Group.{u1} α] [_inst_2 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))] {A : Set.{u2} β} {a : α} {x : β}, Iff (Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (HSMul.hSMul.{u1, u2, u2} α (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2))) a A)) (Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) (HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2)) (Inv.inv.{u1} α (InvOneClass.toInv.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_1)))) a) x) A)
-Case conversion may be inaccurate. Consider using '#align set.mem_smul_set_iff_inv_smul_mem Set.mem_smul_set_iff_inv_smul_memₓ'. -/
 @[to_additive]
 theorem mem_smul_set_iff_inv_smul_mem : x ∈ a • A ↔ a⁻¹ • x ∈ A :=
   show x ∈ MulAction.toPerm a '' A ↔ _ from mem_image_equiv
 #align set.mem_smul_set_iff_inv_smul_mem Set.mem_smul_set_iff_inv_smul_mem
 #align set.mem_vadd_set_iff_neg_vadd_mem Set.mem_vadd_set_iff_neg_vadd_mem
 
-/- warning: set.mem_inv_smul_set_iff -> Set.mem_inv_smul_set_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Group.{u1} α] [_inst_2 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))] {A : Set.{u2} β} {a : α} {x : β}, Iff (Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2)) (Inv.inv.{u1} α (DivInvMonoid.toHasInv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) a) A)) (Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2) a x) A)
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Group.{u1} α] [_inst_2 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))] {A : Set.{u2} β} {a : α} {x : β}, Iff (Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (HSMul.hSMul.{u1, u2, u2} α (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2))) (Inv.inv.{u1} α (InvOneClass.toInv.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_1)))) a) A)) (Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) (HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2)) a x) A)
-Case conversion may be inaccurate. Consider using '#align set.mem_inv_smul_set_iff Set.mem_inv_smul_set_iffₓ'. -/
 @[to_additive]
 theorem mem_inv_smul_set_iff : x ∈ a⁻¹ • A ↔ a • x ∈ A := by
   simp only [← image_smul, mem_image, inv_smul_eq_iff, exists_eq_right]
 #align set.mem_inv_smul_set_iff Set.mem_inv_smul_set_iff
 #align set.mem_neg_vadd_set_iff Set.mem_neg_vadd_set_iff
 
-/- warning: set.preimage_smul -> Set.preimage_smul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Group.{u1} α] [_inst_2 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))] (a : α) (t : Set.{u2} β), Eq.{succ u2} (Set.{u2} β) (Set.preimage.{u2, u2} β β (fun (x : β) => SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2) a x) t) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2)) (Inv.inv.{u1} α (DivInvMonoid.toHasInv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) a) t)
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Group.{u1} α] [_inst_2 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))] (a : α) (t : Set.{u2} β), Eq.{succ u2} (Set.{u2} β) (Set.preimage.{u2, u2} β β (fun (x : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2)) a x) t) (HSMul.hSMul.{u1, u2, u2} α (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2))) (Inv.inv.{u1} α (InvOneClass.toInv.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_1)))) a) t)
-Case conversion may be inaccurate. Consider using '#align set.preimage_smul Set.preimage_smulₓ'. -/
 @[to_additive]
 theorem preimage_smul (a : α) (t : Set β) : (fun x => a • x) ⁻¹' t = a⁻¹ • t :=
   ((MulAction.toPerm a).symm.image_eq_preimage _).symm
 #align set.preimage_smul Set.preimage_smul
 #align set.preimage_vadd Set.preimage_vadd
 
-/- warning: set.preimage_smul_inv -> Set.preimage_smul_inv is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Group.{u1} α] [_inst_2 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))] (a : α) (t : Set.{u2} β), Eq.{succ u2} (Set.{u2} β) (Set.preimage.{u2, u2} β β (fun (x : β) => SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2) (Inv.inv.{u1} α (DivInvMonoid.toHasInv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) a) x) t) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2)) a t)
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Group.{u1} α] [_inst_2 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))] (a : α) (t : Set.{u2} β), Eq.{succ u2} (Set.{u2} β) (Set.preimage.{u2, u2} β β (fun (x : β) => HSMul.hSMul.{u1, u2, u2} α β β (instHSMul.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2)) (Inv.inv.{u1} α (InvOneClass.toInv.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_1)))) a) x) t) (HSMul.hSMul.{u1, u2, u2} α (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2))) a t)
-Case conversion may be inaccurate. Consider using '#align set.preimage_smul_inv Set.preimage_smul_invₓ'. -/
 @[to_additive]
 theorem preimage_smul_inv (a : α) (t : Set β) : (fun x => a⁻¹ • x) ⁻¹' t = a • t :=
   preimage_smul (toUnits a)⁻¹ t
@@ -1452,12 +1062,6 @@ theorem set_smul_subset_set_smul_iff : a • A ⊆ a • B ↔ A ⊆ B :=
 #align set.set_vadd_subset_set_vadd_iff Set.set_vadd_subset_set_vadd_iff
 -/
 
-/- warning: set.set_smul_subset_iff -> Set.set_smul_subset_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Group.{u1} α] [_inst_2 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))] {A : Set.{u2} β} {B : Set.{u2} β} {a : α}, Iff (HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2)) a A) B) (HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) A (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2)) (Inv.inv.{u1} α (DivInvMonoid.toHasInv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) a) B))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Group.{u1} α] [_inst_2 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))] {A : Set.{u2} β} {B : Set.{u2} β} {a : α}, Iff (HasSubset.Subset.{u2} (Set.{u2} β) (Set.instHasSubsetSet.{u2} β) (HSMul.hSMul.{u1, u2, u2} α (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2))) a A) B) (HasSubset.Subset.{u2} (Set.{u2} β) (Set.instHasSubsetSet.{u2} β) A (HSMul.hSMul.{u1, u2, u2} α (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2))) (Inv.inv.{u1} α (InvOneClass.toInv.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_1)))) a) B))
-Case conversion may be inaccurate. Consider using '#align set.set_smul_subset_iff Set.set_smul_subset_iffₓ'. -/
 @[to_additive]
 theorem set_smul_subset_iff : a • A ⊆ B ↔ A ⊆ a⁻¹ • B :=
   image_subset_iff.trans <|
@@ -1465,12 +1069,6 @@ theorem set_smul_subset_iff : a • A ⊆ B ↔ A ⊆ a⁻¹ • B :=
 #align set.set_smul_subset_iff Set.set_smul_subset_iff
 #align set.set_vadd_subset_iff Set.set_vadd_subset_iff
 
-/- warning: set.subset_set_smul_iff -> Set.subset_set_smul_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Group.{u1} α] [_inst_2 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))] {A : Set.{u2} β} {B : Set.{u2} β} {a : α}, Iff (HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) A (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2)) a B)) (HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2)) (Inv.inv.{u1} α (DivInvMonoid.toHasInv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) a) A) B)
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Group.{u1} α] [_inst_2 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))] {A : Set.{u2} β} {B : Set.{u2} β} {a : α}, Iff (HasSubset.Subset.{u2} (Set.{u2} β) (Set.instHasSubsetSet.{u2} β) A (HSMul.hSMul.{u1, u2, u2} α (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2))) a B)) (HasSubset.Subset.{u2} (Set.{u2} β) (Set.instHasSubsetSet.{u2} β) (HSMul.hSMul.{u1, u2, u2} α (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2))) (Inv.inv.{u1} α (InvOneClass.toInv.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_1)))) a) A) B)
-Case conversion may be inaccurate. Consider using '#align set.subset_set_smul_iff Set.subset_set_smul_iffₓ'. -/
 @[to_additive]
 theorem subset_set_smul_iff : A ⊆ a • B ↔ a⁻¹ • A ⊆ B :=
   Iff.symm <|
@@ -1479,36 +1077,18 @@ theorem subset_set_smul_iff : A ⊆ a • B ↔ a⁻¹ • A ⊆ B :=
 #align set.subset_set_smul_iff Set.subset_set_smul_iff
 #align set.subset_set_vadd_iff Set.subset_set_vadd_iff
 
-/- warning: set.smul_set_inter -> Set.smul_set_inter is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Group.{u1} α] [_inst_2 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))] {s : Set.{u2} β} {t : Set.{u2} β} {a : α}, Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2)) a (Inter.inter.{u2} (Set.{u2} β) (Set.hasInter.{u2} β) s t)) (Inter.inter.{u2} (Set.{u2} β) (Set.hasInter.{u2} β) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2)) a s) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2)) a t))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Group.{u1} α] [_inst_2 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))] {s : Set.{u2} β} {t : Set.{u2} β} {a : α}, Eq.{succ u2} (Set.{u2} β) (HSMul.hSMul.{u1, u2, u2} α (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2))) a (Inter.inter.{u2} (Set.{u2} β) (Set.instInterSet.{u2} β) s t)) (Inter.inter.{u2} (Set.{u2} β) (Set.instInterSet.{u2} β) (HSMul.hSMul.{u1, u2, u2} α (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2))) a s) (HSMul.hSMul.{u1, u2, u2} α (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2))) a t))
-Case conversion may be inaccurate. Consider using '#align set.smul_set_inter Set.smul_set_interₓ'. -/
 @[to_additive]
 theorem smul_set_inter : a • (s ∩ t) = a • s ∩ a • t :=
   image_inter <| MulAction.injective a
 #align set.smul_set_inter Set.smul_set_inter
 #align set.vadd_set_inter Set.vadd_set_inter
 
-/- warning: set.smul_set_sdiff -> Set.smul_set_sdiff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Group.{u1} α] [_inst_2 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))] {s : Set.{u2} β} {t : Set.{u2} β} {a : α}, Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2)) a (SDiff.sdiff.{u2} (Set.{u2} β) (BooleanAlgebra.toHasSdiff.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s t)) (SDiff.sdiff.{u2} (Set.{u2} β) (BooleanAlgebra.toHasSdiff.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2)) a s) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2)) a t))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Group.{u1} α] [_inst_2 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))] {s : Set.{u2} β} {t : Set.{u2} β} {a : α}, Eq.{succ u2} (Set.{u2} β) (HSMul.hSMul.{u1, u2, u2} α (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2))) a (SDiff.sdiff.{u2} (Set.{u2} β) (Set.instSDiffSet.{u2} β) s t)) (SDiff.sdiff.{u2} (Set.{u2} β) (Set.instSDiffSet.{u2} β) (HSMul.hSMul.{u1, u2, u2} α (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2))) a s) (HSMul.hSMul.{u1, u2, u2} α (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2))) a t))
-Case conversion may be inaccurate. Consider using '#align set.smul_set_sdiff Set.smul_set_sdiffₓ'. -/
 @[to_additive]
 theorem smul_set_sdiff : a • (s \ t) = a • s \ a • t :=
   image_diff (MulAction.injective a) _ _
 #align set.smul_set_sdiff Set.smul_set_sdiff
 #align set.vadd_set_sdiff Set.vadd_set_sdiff
 
-/- warning: set.smul_set_symm_diff -> Set.smul_set_symm_diff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Group.{u1} α] [_inst_2 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))] {s : Set.{u2} β} {t : Set.{u2} β} {a : α}, Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2)) a (symmDiff.{u2} (Set.{u2} β) (SemilatticeSup.toHasSup.{u2} (Set.{u2} β) (Lattice.toSemilatticeSup.{u2} (Set.{u2} β) (CompleteLattice.toLattice.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (BooleanAlgebra.toHasSdiff.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s t)) (symmDiff.{u2} (Set.{u2} β) (SemilatticeSup.toHasSup.{u2} (Set.{u2} β) (Lattice.toSemilatticeSup.{u2} (Set.{u2} β) (CompleteLattice.toLattice.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (BooleanAlgebra.toHasSdiff.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2)) a s) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2)) a t))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Group.{u1} α] [_inst_2 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))] {s : Set.{u2} β} {t : Set.{u2} β} {a : α}, Eq.{succ u2} (Set.{u2} β) (HSMul.hSMul.{u1, u2, u2} α (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2))) a (symmDiff.{u2} (Set.{u2} β) (SemilatticeSup.toSup.{u2} (Set.{u2} β) (Lattice.toSemilatticeSup.{u2} (Set.{u2} β) (CompleteLattice.toLattice.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) (Set.instSDiffSet.{u2} β) s t)) (symmDiff.{u2} (Set.{u2} β) (SemilatticeSup.toSup.{u2} (Set.{u2} β) (Lattice.toSemilatticeSup.{u2} (Set.{u2} β) (CompleteLattice.toLattice.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) (Set.instSDiffSet.{u2} β) (HSMul.hSMul.{u1, u2, u2} α (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2))) a s) (HSMul.hSMul.{u1, u2, u2} α (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2))) a t))
-Case conversion may be inaccurate. Consider using '#align set.smul_set_symm_diff Set.smul_set_symm_diffₓ'. -/
 @[to_additive]
 theorem smul_set_symm_diff : a • s ∆ t = (a • s) ∆ (a • t) :=
   image_symm_diff (MulAction.injective a) _ _
@@ -1523,12 +1103,6 @@ theorem smul_set_univ : a • (univ : Set β) = univ :=
 #align set.vadd_set_univ Set.vadd_set_univ
 -/
 
-/- warning: set.smul_univ -> Set.smul_univ is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Group.{u1} α] [_inst_2 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))] {s : Set.{u1} α}, (Set.Nonempty.{u1} α s) -> (Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2)) s (Set.univ.{u2} β)) (Set.univ.{u2} β))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : Group.{u2} α] [_inst_2 : MulAction.{u2, u1} α β (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_1))] {s : Set.{u2} α}, (Set.Nonempty.{u2} α s) -> (Eq.{succ u1} (Set.{u1} β) (HSMul.hSMul.{u2, u1, u1} (Set.{u2} α) (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.smul.{u2, u1} α β (MulAction.toSMul.{u2, u1} α β (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_1)) _inst_2))) s (Set.univ.{u1} β)) (Set.univ.{u1} β))
-Case conversion may be inaccurate. Consider using '#align set.smul_univ Set.smul_univₓ'. -/
 @[simp, to_additive]
 theorem smul_univ {s : Set α} (hs : s.Nonempty) : s • (univ : Set β) = univ :=
   let ⟨a, ha⟩ := hs
@@ -1536,12 +1110,6 @@ theorem smul_univ {s : Set α} (hs : s.Nonempty) : s • (univ : Set β) = univ
 #align set.smul_univ Set.smul_univ
 #align set.vadd_univ Set.vadd_univ
 
-/- warning: set.smul_inter_ne_empty_iff -> Set.smul_inter_ne_empty_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α] {s : Set.{u1} α} {t : Set.{u1} α} {x : α}, Iff (Ne.{succ u1} (Set.{u1} α) (Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) (SMul.smul.{u1, u1} α (Set.{u1} α) (Set.smulSet.{u1, u1} α α (Mul.toSMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)))))) x s) t) (EmptyCollection.emptyCollection.{u1} (Set.{u1} α) (Set.hasEmptyc.{u1} α))) (Exists.{succ u1} α (fun (a : α) => Exists.{succ u1} α (fun (b : α) => And (And (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) a t) (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) b s)) (Eq.{succ u1} α (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))))) a (Inv.inv.{u1} α (DivInvMonoid.toHasInv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) b)) x))))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α] {s : Set.{u1} α} {t : Set.{u1} α} {x : α}, Iff (Ne.{succ u1} (Set.{u1} α) (Inter.inter.{u1} (Set.{u1} α) (Set.instInterSet.{u1} α) (HSMul.hSMul.{u1, u1, u1} α (Set.{u1} α) (Set.{u1} α) (instHSMul.{u1, u1} α (Set.{u1} α) (Set.smulSet.{u1, u1} α α (MulAction.toSMul.{u1, u1} α α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) (Monoid.toMulAction.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)))))) x s) t) (EmptyCollection.emptyCollection.{u1} (Set.{u1} α) (Set.instEmptyCollectionSet.{u1} α))) (Exists.{succ u1} α (fun (a : α) => Exists.{succ u1} α (fun (b : α) => And (And (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) a t) (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) b s)) (Eq.{succ u1} α (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))))) a (Inv.inv.{u1} α (InvOneClass.toInv.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_1)))) b)) x))))
-Case conversion may be inaccurate. Consider using '#align set.smul_inter_ne_empty_iff Set.smul_inter_ne_empty_iffₓ'. -/
 @[to_additive]
 theorem smul_inter_ne_empty_iff {s t : Set α} {x : α} :
     x • s ∩ t ≠ ∅ ↔ ∃ a b, (a ∈ t ∧ b ∈ s) ∧ a * b⁻¹ = x :=
@@ -1556,12 +1124,6 @@ theorem smul_inter_ne_empty_iff {s t : Set α} {x : α} :
 #align set.smul_inter_ne_empty_iff Set.smul_inter_ne_empty_iff
 #align set.vadd_inter_ne_empty_iff Set.vadd_inter_ne_empty_iff
 
-/- warning: set.smul_inter_ne_empty_iff' -> Set.smul_inter_ne_empty_iff' is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α] {s : Set.{u1} α} {t : Set.{u1} α} {x : α}, Iff (Ne.{succ u1} (Set.{u1} α) (Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) (SMul.smul.{u1, u1} α (Set.{u1} α) (Set.smulSet.{u1, u1} α α (Mul.toSMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)))))) x s) t) (EmptyCollection.emptyCollection.{u1} (Set.{u1} α) (Set.hasEmptyc.{u1} α))) (Exists.{succ u1} α (fun (a : α) => Exists.{succ u1} α (fun (b : α) => And (And (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) a t) (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) b s)) (Eq.{succ u1} α (HDiv.hDiv.{u1, u1, u1} α α α (instHDiv.{u1} α (DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))) a b) x))))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α] {s : Set.{u1} α} {t : Set.{u1} α} {x : α}, Iff (Ne.{succ u1} (Set.{u1} α) (Inter.inter.{u1} (Set.{u1} α) (Set.instInterSet.{u1} α) (HSMul.hSMul.{u1, u1, u1} α (Set.{u1} α) (Set.{u1} α) (instHSMul.{u1, u1} α (Set.{u1} α) (Set.smulSet.{u1, u1} α α (MulAction.toSMul.{u1, u1} α α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) (Monoid.toMulAction.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)))))) x s) t) (EmptyCollection.emptyCollection.{u1} (Set.{u1} α) (Set.instEmptyCollectionSet.{u1} α))) (Exists.{succ u1} α (fun (a : α) => Exists.{succ u1} α (fun (b : α) => And (And (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) a t) (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) b s)) (Eq.{succ u1} α (HDiv.hDiv.{u1, u1, u1} α α α (instHDiv.{u1} α (DivInvMonoid.toDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))) a b) x))))
-Case conversion may be inaccurate. Consider using '#align set.smul_inter_ne_empty_iff' Set.smul_inter_ne_empty_iff'ₓ'. -/
 @[to_additive]
 theorem smul_inter_ne_empty_iff' {s t : Set α} {x : α} :
     x • s ∩ t ≠ ∅ ↔ ∃ a b, (a ∈ t ∧ b ∈ s) ∧ a / b = x := by
@@ -1569,12 +1131,6 @@ theorem smul_inter_ne_empty_iff' {s t : Set α} {x : α} :
 #align set.smul_inter_ne_empty_iff' Set.smul_inter_ne_empty_iff'
 #align set.vadd_inter_ne_empty_iff' Set.vadd_inter_ne_empty_iff'
 
-/- warning: set.op_smul_inter_ne_empty_iff -> Set.op_smul_inter_ne_empty_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α] {s : Set.{u1} α} {t : Set.{u1} α} {x : MulOpposite.{u1} α}, Iff (Ne.{succ u1} (Set.{u1} α) (Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) (SMul.smul.{u1, u1} (MulOpposite.{u1} α) (Set.{u1} α) (Set.smulSet.{u1, u1} (MulOpposite.{u1} α) α (Mul.toHasOppositeSMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)))))) x s) t) (EmptyCollection.emptyCollection.{u1} (Set.{u1} α) (Set.hasEmptyc.{u1} α))) (Exists.{succ u1} α (fun (a : α) => Exists.{succ u1} α (fun (b : α) => And (And (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) a s) (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) b t)) (Eq.{succ u1} α (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))))) (Inv.inv.{u1} α (DivInvMonoid.toHasInv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) a) b) (MulOpposite.unop.{u1} α x)))))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α] {s : Set.{u1} α} {t : Set.{u1} α} {x : MulOpposite.{u1} α}, Iff (Ne.{succ u1} (Set.{u1} α) (Inter.inter.{u1} (Set.{u1} α) (Set.instInterSet.{u1} α) (HSMul.hSMul.{u1, u1, u1} (MulOpposite.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHSMul.{u1, u1} (MulOpposite.{u1} α) (Set.{u1} α) (Set.smulSet.{u1, u1} (MulOpposite.{u1} α) α (Mul.toHasOppositeSMul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))))))) x s) t) (EmptyCollection.emptyCollection.{u1} (Set.{u1} α) (Set.instEmptyCollectionSet.{u1} α))) (Exists.{succ u1} α (fun (a : α) => Exists.{succ u1} α (fun (b : α) => And (And (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) a s) (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) b t)) (Eq.{succ u1} α (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))))) (Inv.inv.{u1} α (InvOneClass.toInv.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_1)))) a) b) (MulOpposite.unop.{u1} α x)))))
-Case conversion may be inaccurate. Consider using '#align set.op_smul_inter_ne_empty_iff Set.op_smul_inter_ne_empty_iffₓ'. -/
 @[to_additive]
 theorem op_smul_inter_ne_empty_iff {s t : Set α} {x : αᵐᵒᵖ} :
     x • s ∩ t ≠ ∅ ↔ ∃ a b, (a ∈ s ∧ b ∈ t) ∧ a⁻¹ * b = MulOpposite.unop x :=
@@ -1590,12 +1146,6 @@ theorem op_smul_inter_ne_empty_iff {s t : Set α} {x : αᵐᵒᵖ} :
 #align set.op_smul_inter_ne_empty_iff Set.op_smul_inter_ne_empty_iff
 #align set.op_vadd_inter_ne_empty_iff Set.op_vadd_inter_ne_empty_iff
 
-/- warning: set.Union_inv_smul -> Set.iUnion_inv_smul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Group.{u1} α] [_inst_2 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))] {s : Set.{u2} β}, Eq.{succ u2} (Set.{u2} β) (Set.iUnion.{u2, succ u1} β α (fun (g : α) => SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2)) (Inv.inv.{u1} α (DivInvMonoid.toHasInv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) g) s)) (Set.iUnion.{u2, succ u1} β α (fun (g : α) => SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2)) g s))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Group.{u1} α] [_inst_2 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))] {s : Set.{u2} β}, Eq.{succ u2} (Set.{u2} β) (Set.iUnion.{u2, succ u1} β α (fun (g : α) => HSMul.hSMul.{u1, u2, u2} α (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2))) (Inv.inv.{u1} α (InvOneClass.toInv.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_1)))) g) s)) (Set.iUnion.{u2, succ u1} β α (fun (g : α) => HSMul.hSMul.{u1, u2, u2} α (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2))) g s))
-Case conversion may be inaccurate. Consider using '#align set.Union_inv_smul Set.iUnion_inv_smulₓ'. -/
 @[simp, to_additive]
 theorem iUnion_inv_smul : (⋃ g : α, g⁻¹ • s) = ⋃ g : α, g • s :=
   Function.Surjective.iSup_congr _ inv_surjective fun g => rfl
@@ -1616,145 +1166,61 @@ section GroupWithZero
 
 variable [GroupWithZero α] [MulAction α β] {s t : Set β} {a : α}
 
-/- warning: set.smul_mem_smul_set_iff₀ -> Set.smul_mem_smul_set_iff₀ is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : GroupWithZero.{u1} α] [_inst_2 : MulAction.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1))] {a : α}, (Ne.{succ u1} α a (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)))))))) -> (forall (A : Set.{u2} β) (x : β), Iff (Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)) _inst_2) a x) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)) _inst_2)) a A)) (Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x A))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : GroupWithZero.{u2} α] [_inst_2 : MulAction.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1))] {a : α}, (Ne.{succ u2} α a (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (MonoidWithZero.toZero.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1))))) -> (forall (A : Set.{u1} β) (x : β), Iff (Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) (HSMul.hSMul.{u2, u1, u1} α β β (instHSMul.{u2, u1} α β (MulAction.toSMul.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1)) _inst_2)) a x) (HSMul.hSMul.{u2, u1, u1} α (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} α (Set.{u1} β) (Set.smulSet.{u2, u1} α β (MulAction.toSMul.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1)) _inst_2))) a A)) (Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x A))
-Case conversion may be inaccurate. Consider using '#align set.smul_mem_smul_set_iff₀ Set.smul_mem_smul_set_iff₀ₓ'. -/
 @[simp]
 theorem smul_mem_smul_set_iff₀ (ha : a ≠ 0) (A : Set β) (x : β) : a • x ∈ a • A ↔ x ∈ A :=
   show Units.mk0 a ha • _ ∈ _ ↔ _ from smul_mem_smul_set_iff
 #align set.smul_mem_smul_set_iff₀ Set.smul_mem_smul_set_iff₀
 
-/- warning: set.mem_smul_set_iff_inv_smul_mem₀ -> Set.mem_smul_set_iff_inv_smul_mem₀ is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : GroupWithZero.{u1} α] [_inst_2 : MulAction.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1))] {a : α}, (Ne.{succ u1} α a (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)))))))) -> (forall (A : Set.{u2} β) (x : β), Iff (Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)) _inst_2)) a A)) (Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)) _inst_2) (Inv.inv.{u1} α (DivInvMonoid.toHasInv.{u1} α (GroupWithZero.toDivInvMonoid.{u1} α _inst_1)) a) x) A))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : GroupWithZero.{u2} α] [_inst_2 : MulAction.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1))] {a : α}, (Ne.{succ u2} α a (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (MonoidWithZero.toZero.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1))))) -> (forall (A : Set.{u1} β) (x : β), Iff (Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (HSMul.hSMul.{u2, u1, u1} α (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} α (Set.{u1} β) (Set.smulSet.{u2, u1} α β (MulAction.toSMul.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1)) _inst_2))) a A)) (Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) (HSMul.hSMul.{u2, u1, u1} α β β (instHSMul.{u2, u1} α β (MulAction.toSMul.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1)) _inst_2)) (Inv.inv.{u2} α (GroupWithZero.toInv.{u2} α _inst_1) a) x) A))
-Case conversion may be inaccurate. Consider using '#align set.mem_smul_set_iff_inv_smul_mem₀ Set.mem_smul_set_iff_inv_smul_mem₀ₓ'. -/
 theorem mem_smul_set_iff_inv_smul_mem₀ (ha : a ≠ 0) (A : Set β) (x : β) : x ∈ a • A ↔ a⁻¹ • x ∈ A :=
   show _ ∈ Units.mk0 a ha • _ ↔ _ from mem_smul_set_iff_inv_smul_mem
 #align set.mem_smul_set_iff_inv_smul_mem₀ Set.mem_smul_set_iff_inv_smul_mem₀
 
-/- warning: set.mem_inv_smul_set_iff₀ -> Set.mem_inv_smul_set_iff₀ is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : GroupWithZero.{u1} α] [_inst_2 : MulAction.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1))] {a : α}, (Ne.{succ u1} α a (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)))))))) -> (forall (A : Set.{u2} β) (x : β), Iff (Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)) _inst_2)) (Inv.inv.{u1} α (DivInvMonoid.toHasInv.{u1} α (GroupWithZero.toDivInvMonoid.{u1} α _inst_1)) a) A)) (Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) (SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)) _inst_2) a x) A))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : GroupWithZero.{u2} α] [_inst_2 : MulAction.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1))] {a : α}, (Ne.{succ u2} α a (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (MonoidWithZero.toZero.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1))))) -> (forall (A : Set.{u1} β) (x : β), Iff (Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (HSMul.hSMul.{u2, u1, u1} α (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} α (Set.{u1} β) (Set.smulSet.{u2, u1} α β (MulAction.toSMul.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1)) _inst_2))) (Inv.inv.{u2} α (GroupWithZero.toInv.{u2} α _inst_1) a) A)) (Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) (HSMul.hSMul.{u2, u1, u1} α β β (instHSMul.{u2, u1} α β (MulAction.toSMul.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1)) _inst_2)) a x) A))
-Case conversion may be inaccurate. Consider using '#align set.mem_inv_smul_set_iff₀ Set.mem_inv_smul_set_iff₀ₓ'. -/
 theorem mem_inv_smul_set_iff₀ (ha : a ≠ 0) (A : Set β) (x : β) : x ∈ a⁻¹ • A ↔ a • x ∈ A :=
   show _ ∈ (Units.mk0 a ha)⁻¹ • _ ↔ _ from mem_inv_smul_set_iff
 #align set.mem_inv_smul_set_iff₀ Set.mem_inv_smul_set_iff₀
 
-/- warning: set.preimage_smul₀ -> Set.preimage_smul₀ is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : GroupWithZero.{u1} α] [_inst_2 : MulAction.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1))] {a : α}, (Ne.{succ u1} α a (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)))))))) -> (forall (t : Set.{u2} β), Eq.{succ u2} (Set.{u2} β) (Set.preimage.{u2, u2} β β (fun (x : β) => SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)) _inst_2) a x) t) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)) _inst_2)) (Inv.inv.{u1} α (DivInvMonoid.toHasInv.{u1} α (GroupWithZero.toDivInvMonoid.{u1} α _inst_1)) a) t))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : GroupWithZero.{u2} α] [_inst_2 : MulAction.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1))] {a : α}, (Ne.{succ u2} α a (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (MonoidWithZero.toZero.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1))))) -> (forall (t : Set.{u1} β), Eq.{succ u1} (Set.{u1} β) (Set.preimage.{u1, u1} β β (fun (x : β) => HSMul.hSMul.{u2, u1, u1} α β β (instHSMul.{u2, u1} α β (MulAction.toSMul.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1)) _inst_2)) a x) t) (HSMul.hSMul.{u2, u1, u1} α (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} α (Set.{u1} β) (Set.smulSet.{u2, u1} α β (MulAction.toSMul.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1)) _inst_2))) (Inv.inv.{u2} α (GroupWithZero.toInv.{u2} α _inst_1) a) t))
-Case conversion may be inaccurate. Consider using '#align set.preimage_smul₀ Set.preimage_smul₀ₓ'. -/
 theorem preimage_smul₀ (ha : a ≠ 0) (t : Set β) : (fun x => a • x) ⁻¹' t = a⁻¹ • t :=
   preimage_smul (Units.mk0 a ha) t
 #align set.preimage_smul₀ Set.preimage_smul₀
 
-/- warning: set.preimage_smul_inv₀ -> Set.preimage_smul_inv₀ is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : GroupWithZero.{u1} α] [_inst_2 : MulAction.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1))] {a : α}, (Ne.{succ u1} α a (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)))))))) -> (forall (t : Set.{u2} β), Eq.{succ u2} (Set.{u2} β) (Set.preimage.{u2, u2} β β (fun (x : β) => SMul.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)) _inst_2) (Inv.inv.{u1} α (DivInvMonoid.toHasInv.{u1} α (GroupWithZero.toDivInvMonoid.{u1} α _inst_1)) a) x) t) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)) _inst_2)) a t))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : GroupWithZero.{u2} α] [_inst_2 : MulAction.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1))] {a : α}, (Ne.{succ u2} α a (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (MonoidWithZero.toZero.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1))))) -> (forall (t : Set.{u1} β), Eq.{succ u1} (Set.{u1} β) (Set.preimage.{u1, u1} β β (fun (x : β) => HSMul.hSMul.{u2, u1, u1} α β β (instHSMul.{u2, u1} α β (MulAction.toSMul.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1)) _inst_2)) (Inv.inv.{u2} α (GroupWithZero.toInv.{u2} α _inst_1) a) x) t) (HSMul.hSMul.{u2, u1, u1} α (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} α (Set.{u1} β) (Set.smulSet.{u2, u1} α β (MulAction.toSMul.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1)) _inst_2))) a t))
-Case conversion may be inaccurate. Consider using '#align set.preimage_smul_inv₀ Set.preimage_smul_inv₀ₓ'. -/
 theorem preimage_smul_inv₀ (ha : a ≠ 0) (t : Set β) : (fun x => a⁻¹ • x) ⁻¹' t = a • t :=
   preimage_smul (Units.mk0 a ha)⁻¹ t
 #align set.preimage_smul_inv₀ Set.preimage_smul_inv₀
 
-/- warning: set.set_smul_subset_set_smul_iff₀ -> Set.set_smul_subset_set_smul_iff₀ is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : GroupWithZero.{u1} α] [_inst_2 : MulAction.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1))] {a : α}, (Ne.{succ u1} α a (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)))))))) -> (forall {A : Set.{u2} β} {B : Set.{u2} β}, Iff (HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)) _inst_2)) a A) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)) _inst_2)) a B)) (HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) A B))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : GroupWithZero.{u2} α] [_inst_2 : MulAction.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1))] {a : α}, (Ne.{succ u2} α a (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (MonoidWithZero.toZero.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1))))) -> (forall {A : Set.{u1} β} {B : Set.{u1} β}, Iff (HasSubset.Subset.{u1} (Set.{u1} β) (Set.instHasSubsetSet.{u1} β) (HSMul.hSMul.{u2, u1, u1} α (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} α (Set.{u1} β) (Set.smulSet.{u2, u1} α β (MulAction.toSMul.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1)) _inst_2))) a A) (HSMul.hSMul.{u2, u1, u1} α (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} α (Set.{u1} β) (Set.smulSet.{u2, u1} α β (MulAction.toSMul.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1)) _inst_2))) a B)) (HasSubset.Subset.{u1} (Set.{u1} β) (Set.instHasSubsetSet.{u1} β) A B))
-Case conversion may be inaccurate. Consider using '#align set.set_smul_subset_set_smul_iff₀ Set.set_smul_subset_set_smul_iff₀ₓ'. -/
 @[simp]
 theorem set_smul_subset_set_smul_iff₀ (ha : a ≠ 0) {A B : Set β} : a • A ⊆ a • B ↔ A ⊆ B :=
   show Units.mk0 a ha • _ ⊆ _ ↔ _ from set_smul_subset_set_smul_iff
 #align set.set_smul_subset_set_smul_iff₀ Set.set_smul_subset_set_smul_iff₀
 
-/- warning: set.set_smul_subset_iff₀ -> Set.set_smul_subset_iff₀ is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : GroupWithZero.{u1} α] [_inst_2 : MulAction.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1))] {a : α}, (Ne.{succ u1} α a (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)))))))) -> (forall {A : Set.{u2} β} {B : Set.{u2} β}, Iff (HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)) _inst_2)) a A) B) (HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) A (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)) _inst_2)) (Inv.inv.{u1} α (DivInvMonoid.toHasInv.{u1} α (GroupWithZero.toDivInvMonoid.{u1} α _inst_1)) a) B)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : GroupWithZero.{u2} α] [_inst_2 : MulAction.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1))] {a : α}, (Ne.{succ u2} α a (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (MonoidWithZero.toZero.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1))))) -> (forall {A : Set.{u1} β} {B : Set.{u1} β}, Iff (HasSubset.Subset.{u1} (Set.{u1} β) (Set.instHasSubsetSet.{u1} β) (HSMul.hSMul.{u2, u1, u1} α (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} α (Set.{u1} β) (Set.smulSet.{u2, u1} α β (MulAction.toSMul.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1)) _inst_2))) a A) B) (HasSubset.Subset.{u1} (Set.{u1} β) (Set.instHasSubsetSet.{u1} β) A (HSMul.hSMul.{u2, u1, u1} α (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} α (Set.{u1} β) (Set.smulSet.{u2, u1} α β (MulAction.toSMul.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1)) _inst_2))) (Inv.inv.{u2} α (GroupWithZero.toInv.{u2} α _inst_1) a) B)))
-Case conversion may be inaccurate. Consider using '#align set.set_smul_subset_iff₀ Set.set_smul_subset_iff₀ₓ'. -/
 theorem set_smul_subset_iff₀ (ha : a ≠ 0) {A B : Set β} : a • A ⊆ B ↔ A ⊆ a⁻¹ • B :=
   show Units.mk0 a ha • _ ⊆ _ ↔ _ from set_smul_subset_iff
 #align set.set_smul_subset_iff₀ Set.set_smul_subset_iff₀
 
-/- warning: set.subset_set_smul_iff₀ -> Set.subset_set_smul_iff₀ is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : GroupWithZero.{u1} α] [_inst_2 : MulAction.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1))] {a : α}, (Ne.{succ u1} α a (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)))))))) -> (forall {A : Set.{u2} β} {B : Set.{u2} β}, Iff (HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) A (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)) _inst_2)) a B)) (HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)) _inst_2)) (Inv.inv.{u1} α (DivInvMonoid.toHasInv.{u1} α (GroupWithZero.toDivInvMonoid.{u1} α _inst_1)) a) A) B))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : GroupWithZero.{u2} α] [_inst_2 : MulAction.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1))] {a : α}, (Ne.{succ u2} α a (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (MonoidWithZero.toZero.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1))))) -> (forall {A : Set.{u1} β} {B : Set.{u1} β}, Iff (HasSubset.Subset.{u1} (Set.{u1} β) (Set.instHasSubsetSet.{u1} β) A (HSMul.hSMul.{u2, u1, u1} α (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} α (Set.{u1} β) (Set.smulSet.{u2, u1} α β (MulAction.toSMul.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1)) _inst_2))) a B)) (HasSubset.Subset.{u1} (Set.{u1} β) (Set.instHasSubsetSet.{u1} β) (HSMul.hSMul.{u2, u1, u1} α (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} α (Set.{u1} β) (Set.smulSet.{u2, u1} α β (MulAction.toSMul.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1)) _inst_2))) (Inv.inv.{u2} α (GroupWithZero.toInv.{u2} α _inst_1) a) A) B))
-Case conversion may be inaccurate. Consider using '#align set.subset_set_smul_iff₀ Set.subset_set_smul_iff₀ₓ'. -/
 theorem subset_set_smul_iff₀ (ha : a ≠ 0) {A B : Set β} : A ⊆ a • B ↔ a⁻¹ • A ⊆ B :=
   show _ ⊆ Units.mk0 a ha • _ ↔ _ from subset_set_smul_iff
 #align set.subset_set_smul_iff₀ Set.subset_set_smul_iff₀
 
-/- warning: set.smul_set_inter₀ -> Set.smul_set_inter₀ is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : GroupWithZero.{u1} α] [_inst_2 : MulAction.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1))] {s : Set.{u2} β} {t : Set.{u2} β} {a : α}, (Ne.{succ u1} α a (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)))))))) -> (Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)) _inst_2)) a (Inter.inter.{u2} (Set.{u2} β) (Set.hasInter.{u2} β) s t)) (Inter.inter.{u2} (Set.{u2} β) (Set.hasInter.{u2} β) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)) _inst_2)) a s) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)) _inst_2)) a t)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : GroupWithZero.{u2} α] [_inst_2 : MulAction.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1))] {s : Set.{u1} β} {t : Set.{u1} β} {a : α}, (Ne.{succ u2} α a (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (MonoidWithZero.toZero.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1))))) -> (Eq.{succ u1} (Set.{u1} β) (HSMul.hSMul.{u2, u1, u1} α (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} α (Set.{u1} β) (Set.smulSet.{u2, u1} α β (MulAction.toSMul.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1)) _inst_2))) a (Inter.inter.{u1} (Set.{u1} β) (Set.instInterSet.{u1} β) s t)) (Inter.inter.{u1} (Set.{u1} β) (Set.instInterSet.{u1} β) (HSMul.hSMul.{u2, u1, u1} α (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} α (Set.{u1} β) (Set.smulSet.{u2, u1} α β (MulAction.toSMul.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1)) _inst_2))) a s) (HSMul.hSMul.{u2, u1, u1} α (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} α (Set.{u1} β) (Set.smulSet.{u2, u1} α β (MulAction.toSMul.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1)) _inst_2))) a t)))
-Case conversion may be inaccurate. Consider using '#align set.smul_set_inter₀ Set.smul_set_inter₀ₓ'. -/
 theorem smul_set_inter₀ (ha : a ≠ 0) : a • (s ∩ t) = a • s ∩ a • t :=
   show Units.mk0 a ha • _ = _ from smul_set_inter
 #align set.smul_set_inter₀ Set.smul_set_inter₀
 
-/- warning: set.smul_set_sdiff₀ -> Set.smul_set_sdiff₀ is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : GroupWithZero.{u1} α] [_inst_2 : MulAction.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1))] {s : Set.{u2} β} {t : Set.{u2} β} {a : α}, (Ne.{succ u1} α a (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)))))))) -> (Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)) _inst_2)) a (SDiff.sdiff.{u2} (Set.{u2} β) (BooleanAlgebra.toHasSdiff.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s t)) (SDiff.sdiff.{u2} (Set.{u2} β) (BooleanAlgebra.toHasSdiff.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)) _inst_2)) a s) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)) _inst_2)) a t)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : GroupWithZero.{u2} α] [_inst_2 : MulAction.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1))] {s : Set.{u1} β} {t : Set.{u1} β} {a : α}, (Ne.{succ u2} α a (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (MonoidWithZero.toZero.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1))))) -> (Eq.{succ u1} (Set.{u1} β) (HSMul.hSMul.{u2, u1, u1} α (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} α (Set.{u1} β) (Set.smulSet.{u2, u1} α β (MulAction.toSMul.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1)) _inst_2))) a (SDiff.sdiff.{u1} (Set.{u1} β) (Set.instSDiffSet.{u1} β) s t)) (SDiff.sdiff.{u1} (Set.{u1} β) (Set.instSDiffSet.{u1} β) (HSMul.hSMul.{u2, u1, u1} α (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} α (Set.{u1} β) (Set.smulSet.{u2, u1} α β (MulAction.toSMul.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1)) _inst_2))) a s) (HSMul.hSMul.{u2, u1, u1} α (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} α (Set.{u1} β) (Set.smulSet.{u2, u1} α β (MulAction.toSMul.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1)) _inst_2))) a t)))
-Case conversion may be inaccurate. Consider using '#align set.smul_set_sdiff₀ Set.smul_set_sdiff₀ₓ'. -/
 theorem smul_set_sdiff₀ (ha : a ≠ 0) : a • (s \ t) = a • s \ a • t :=
   image_diff (MulAction.injective₀ ha) _ _
 #align set.smul_set_sdiff₀ Set.smul_set_sdiff₀
 
-/- warning: set.smul_set_symm_diff₀ -> Set.smul_set_symm_diff₀ is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : GroupWithZero.{u1} α] [_inst_2 : MulAction.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1))] {s : Set.{u2} β} {t : Set.{u2} β} {a : α}, (Ne.{succ u1} α a (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)))))))) -> (Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)) _inst_2)) a (symmDiff.{u2} (Set.{u2} β) (SemilatticeSup.toHasSup.{u2} (Set.{u2} β) (Lattice.toSemilatticeSup.{u2} (Set.{u2} β) (CompleteLattice.toLattice.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (BooleanAlgebra.toHasSdiff.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s t)) (symmDiff.{u2} (Set.{u2} β) (SemilatticeSup.toHasSup.{u2} (Set.{u2} β) (Lattice.toSemilatticeSup.{u2} (Set.{u2} β) (CompleteLattice.toLattice.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (BooleanAlgebra.toHasSdiff.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)) _inst_2)) a s) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)) _inst_2)) a t)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : GroupWithZero.{u2} α] [_inst_2 : MulAction.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1))] {s : Set.{u1} β} {t : Set.{u1} β} {a : α}, (Ne.{succ u2} α a (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (MonoidWithZero.toZero.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1))))) -> (Eq.{succ u1} (Set.{u1} β) (HSMul.hSMul.{u2, u1, u1} α (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} α (Set.{u1} β) (Set.smulSet.{u2, u1} α β (MulAction.toSMul.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1)) _inst_2))) a (symmDiff.{u1} (Set.{u1} β) (SemilatticeSup.toSup.{u1} (Set.{u1} β) (Lattice.toSemilatticeSup.{u1} (Set.{u1} β) (CompleteLattice.toLattice.{u1} (Set.{u1} β) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} β) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} β) (Set.instCompleteBooleanAlgebraSet.{u1} β))))))) (Set.instSDiffSet.{u1} β) s t)) (symmDiff.{u1} (Set.{u1} β) (SemilatticeSup.toSup.{u1} (Set.{u1} β) (Lattice.toSemilatticeSup.{u1} (Set.{u1} β) (CompleteLattice.toLattice.{u1} (Set.{u1} β) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} β) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} β) (Set.instCompleteBooleanAlgebraSet.{u1} β))))))) (Set.instSDiffSet.{u1} β) (HSMul.hSMul.{u2, u1, u1} α (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} α (Set.{u1} β) (Set.smulSet.{u2, u1} α β (MulAction.toSMul.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1)) _inst_2))) a s) (HSMul.hSMul.{u2, u1, u1} α (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} α (Set.{u1} β) (Set.smulSet.{u2, u1} α β (MulAction.toSMul.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1)) _inst_2))) a t)))
-Case conversion may be inaccurate. Consider using '#align set.smul_set_symm_diff₀ Set.smul_set_symm_diff₀ₓ'. -/
 theorem smul_set_symm_diff₀ (ha : a ≠ 0) : a • s ∆ t = (a • s) ∆ (a • t) :=
   image_symm_diff (MulAction.injective₀ ha) _ _
 #align set.smul_set_symm_diff₀ Set.smul_set_symm_diff₀
 
-/- warning: set.smul_set_univ₀ -> Set.smul_set_univ₀ is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : GroupWithZero.{u1} α] [_inst_2 : MulAction.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1))] {a : α}, (Ne.{succ u1} α a (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)))))))) -> (Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)) _inst_2)) a (Set.univ.{u2} β)) (Set.univ.{u2} β))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : GroupWithZero.{u2} α] [_inst_2 : MulAction.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1))] {a : α}, (Ne.{succ u2} α a (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (MonoidWithZero.toZero.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1))))) -> (Eq.{succ u1} (Set.{u1} β) (HSMul.hSMul.{u2, u1, u1} α (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} α (Set.{u1} β) (Set.smulSet.{u2, u1} α β (MulAction.toSMul.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1)) _inst_2))) a (Set.univ.{u1} β)) (Set.univ.{u1} β))
-Case conversion may be inaccurate. Consider using '#align set.smul_set_univ₀ Set.smul_set_univ₀ₓ'. -/
 theorem smul_set_univ₀ (ha : a ≠ 0) : a • (univ : Set β) = univ :=
   image_univ_of_surjective <| MulAction.surjective₀ ha
 #align set.smul_set_univ₀ Set.smul_set_univ₀
 
-/- warning: set.smul_univ₀ -> Set.smul_univ₀ is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : GroupWithZero.{u1} α] [_inst_2 : MulAction.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1))] {s : Set.{u1} α}, (Not (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) s (OfNat.ofNat.{u1} (Set.{u1} α) 0 (OfNat.mk.{u1} (Set.{u1} α) 0 (Zero.zero.{u1} (Set.{u1} α) (Set.zero.{u1} α (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)))))))))) -> (Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)) _inst_2)) s (Set.univ.{u2} β)) (Set.univ.{u2} β))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : GroupWithZero.{u2} α] [_inst_2 : MulAction.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1))] {s : Set.{u2} α}, (Not (HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) s (OfNat.ofNat.{u2} (Set.{u2} α) 0 (Zero.toOfNat0.{u2} (Set.{u2} α) (Set.zero.{u2} α (MonoidWithZero.toZero.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1))))))) -> (Eq.{succ u1} (Set.{u1} β) (HSMul.hSMul.{u2, u1, u1} (Set.{u2} α) (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.smul.{u2, u1} α β (MulAction.toSMul.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1)) _inst_2))) s (Set.univ.{u1} β)) (Set.univ.{u1} β))
-Case conversion may be inaccurate. Consider using '#align set.smul_univ₀ Set.smul_univ₀ₓ'. -/
 theorem smul_univ₀ {s : Set α} (hs : ¬s ⊆ 0) : s • (univ : Set β) = univ :=
   let ⟨a, ha, ha₀⟩ := not_subset.1 hs
   eq_univ_of_forall fun b => ⟨a, a⁻¹ • b, ha, trivial, smul_inv_smul₀ ha₀ _⟩
 #align set.smul_univ₀ Set.smul_univ₀
 
-/- warning: set.smul_univ₀' -> Set.smul_univ₀' is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : GroupWithZero.{u1} α] [_inst_2 : MulAction.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1))] {s : Set.{u1} α}, (Set.Nontrivial.{u1} α s) -> (Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)) _inst_2)) s (Set.univ.{u2} β)) (Set.univ.{u2} β))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : GroupWithZero.{u2} α] [_inst_2 : MulAction.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1))] {s : Set.{u2} α}, (Set.Nontrivial.{u2} α s) -> (Eq.{succ u1} (Set.{u1} β) (HSMul.hSMul.{u2, u1, u1} (Set.{u2} α) (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.smul.{u2, u1} α β (MulAction.toSMul.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1)) _inst_2))) s (Set.univ.{u1} β)) (Set.univ.{u1} β))
-Case conversion may be inaccurate. Consider using '#align set.smul_univ₀' Set.smul_univ₀'ₓ'. -/
 theorem smul_univ₀' {s : Set α} (hs : s.Nontrivial) : s • (univ : Set β) = univ :=
   smul_univ₀ hs.not_subset_singleton
 #align set.smul_univ₀' Set.smul_univ₀'
@@ -1765,23 +1231,11 @@ section Monoid
 
 variable [Monoid α] [AddGroup β] [DistribMulAction α β] (a : α) (s : Set α) (t : Set β)
 
-/- warning: set.smul_set_neg -> Set.smul_set_neg is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Monoid.{u1} α] [_inst_2 : AddGroup.{u2} β] [_inst_3 : DistribMulAction.{u1, u2} α β _inst_1 (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β _inst_2))] (a : α) (t : Set.{u2} β), Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β _inst_2)))) (DistribSMul.toSmulZeroClass.{u1, u2} α β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β _inst_2))) (DistribMulAction.toDistribSMul.{u1, u2} α β _inst_1 (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β _inst_2)) _inst_3)))) a (Neg.neg.{u2} (Set.{u2} β) (Set.neg.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β _inst_2))) t)) (Neg.neg.{u2} (Set.{u2} β) (Set.neg.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β _inst_2))) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β _inst_2)))) (DistribSMul.toSmulZeroClass.{u1, u2} α β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β _inst_2))) (DistribMulAction.toDistribSMul.{u1, u2} α β _inst_1 (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β _inst_2)) _inst_3)))) a t))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Monoid.{u1} α] [_inst_2 : AddGroup.{u2} β] [_inst_3 : DistribMulAction.{u1, u2} α β _inst_1 (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β _inst_2))] (a : α) (t : Set.{u2} β), Eq.{succ u2} (Set.{u2} β) (HSMul.hSMul.{u1, u2, u2} α (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (SMulZeroClass.toSMul.{u1, u2} α β (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (AddGroup.toSubtractionMonoid.{u2} β _inst_2)))) (DistribSMul.toSMulZeroClass.{u1, u2} α β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β _inst_2))) (DistribMulAction.toDistribSMul.{u1, u2} α β _inst_1 (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β _inst_2)) _inst_3))))) a (Neg.neg.{u2} (Set.{u2} β) (Set.neg.{u2} β (NegZeroClass.toNeg.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (AddGroup.toSubtractionMonoid.{u2} β _inst_2))))) t)) (Neg.neg.{u2} (Set.{u2} β) (Set.neg.{u2} β (NegZeroClass.toNeg.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (AddGroup.toSubtractionMonoid.{u2} β _inst_2))))) (HSMul.hSMul.{u1, u2, u2} α (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (SMulZeroClass.toSMul.{u1, u2} α β (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (AddGroup.toSubtractionMonoid.{u2} β _inst_2)))) (DistribSMul.toSMulZeroClass.{u1, u2} α β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β _inst_2))) (DistribMulAction.toDistribSMul.{u1, u2} α β _inst_1 (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β _inst_2)) _inst_3))))) a t))
-Case conversion may be inaccurate. Consider using '#align set.smul_set_neg Set.smul_set_negₓ'. -/
 @[simp]
 theorem smul_set_neg : a • -t = -(a • t) := by
   simp_rw [← image_smul, ← image_neg, image_image, smul_neg]
 #align set.smul_set_neg Set.smul_set_neg
 
-/- warning: set.smul_neg -> Set.smul_neg is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Monoid.{u1} α] [_inst_2 : AddGroup.{u2} β] [_inst_3 : DistribMulAction.{u1, u2} α β _inst_1 (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β _inst_2))] (s : Set.{u1} α) (t : Set.{u2} β), Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β _inst_2)))) (DistribSMul.toSmulZeroClass.{u1, u2} α β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β _inst_2))) (DistribMulAction.toDistribSMul.{u1, u2} α β _inst_1 (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β _inst_2)) _inst_3)))) s (Neg.neg.{u2} (Set.{u2} β) (Set.neg.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β _inst_2))) t)) (Neg.neg.{u2} (Set.{u2} β) (Set.neg.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β _inst_2))) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β _inst_2)))) (DistribSMul.toSmulZeroClass.{u1, u2} α β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β _inst_2))) (DistribMulAction.toDistribSMul.{u1, u2} α β _inst_1 (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β _inst_2)) _inst_3)))) s t))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Monoid.{u1} α] [_inst_2 : AddGroup.{u2} β] [_inst_3 : DistribMulAction.{u1, u2} α β _inst_1 (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β _inst_2))] (s : Set.{u1} α) (t : Set.{u2} β), Eq.{succ u2} (Set.{u2} β) (HSMul.hSMul.{u1, u2, u2} (Set.{u1} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β (SMulZeroClass.toSMul.{u1, u2} α β (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (AddGroup.toSubtractionMonoid.{u2} β _inst_2)))) (DistribSMul.toSMulZeroClass.{u1, u2} α β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β _inst_2))) (DistribMulAction.toDistribSMul.{u1, u2} α β _inst_1 (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β _inst_2)) _inst_3))))) s (Neg.neg.{u2} (Set.{u2} β) (Set.neg.{u2} β (NegZeroClass.toNeg.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (AddGroup.toSubtractionMonoid.{u2} β _inst_2))))) t)) (Neg.neg.{u2} (Set.{u2} β) (Set.neg.{u2} β (NegZeroClass.toNeg.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (AddGroup.toSubtractionMonoid.{u2} β _inst_2))))) (HSMul.hSMul.{u1, u2, u2} (Set.{u1} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β (SMulZeroClass.toSMul.{u1, u2} α β (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (AddGroup.toSubtractionMonoid.{u2} β _inst_2)))) (DistribSMul.toSMulZeroClass.{u1, u2} α β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β _inst_2))) (DistribMulAction.toDistribSMul.{u1, u2} α β _inst_1 (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β _inst_2)) _inst_3))))) s t))
-Case conversion may be inaccurate. Consider using '#align set.smul_neg Set.smul_negₓ'. -/
 @[simp]
 protected theorem smul_neg : s • -t = -(s • t) := by simp_rw [← image_neg];
   exact image_image2_right_comm smul_neg
@@ -1793,23 +1247,11 @@ section Ring
 
 variable [Ring α] [AddCommGroup β] [Module α β] (a : α) (s : Set α) (t : Set β)
 
-/- warning: set.neg_smul_set -> Set.neg_smul_set is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Ring.{u1} α] [_inst_2 : AddCommGroup.{u2} β] [_inst_3 : Module.{u1, u2} α β (Ring.toSemiring.{u1} α _inst_1) (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)] (a : α) (t : Set.{u2} β), Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α _inst_1)) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α _inst_1) (AddCommGroup.toAddCommMonoid.{u2} β _inst_2) _inst_3))))) (Neg.neg.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α _inst_1))))) a) t) (Neg.neg.{u2} (Set.{u2} β) (Set.neg.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_2)))) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α _inst_1)) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α _inst_1) (AddCommGroup.toAddCommMonoid.{u2} β _inst_2) _inst_3))))) a t))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Ring.{u1} α] [_inst_2 : AddCommGroup.{u2} β] [_inst_3 : Module.{u1, u2} α β (Ring.toSemiring.{u1} α _inst_1) (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)] (a : α) (t : Set.{u2} β), Eq.{succ u2} (Set.{u2} β) (HSMul.hSMul.{u1, u2, u2} α (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (SMulZeroClass.toSMul.{u1, u2} α β (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} α β (MonoidWithZero.toZero.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α _inst_1))) (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α _inst_1)) (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α _inst_1) (AddCommGroup.toAddCommMonoid.{u2} β _inst_2) _inst_3)))))) (Neg.neg.{u1} α (Ring.toNeg.{u1} α _inst_1) a) t) (Neg.neg.{u2} (Set.{u2} β) (Set.neg.{u2} β (NegZeroClass.toNeg.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β _inst_2)))))) (HSMul.hSMul.{u1, u2, u2} α (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (SMulZeroClass.toSMul.{u1, u2} α β (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} α β (MonoidWithZero.toZero.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α _inst_1))) (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α _inst_1)) (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α _inst_1) (AddCommGroup.toAddCommMonoid.{u2} β _inst_2) _inst_3)))))) a t))
-Case conversion may be inaccurate. Consider using '#align set.neg_smul_set Set.neg_smul_setₓ'. -/
 @[simp]
 theorem neg_smul_set : -a • t = -(a • t) := by
   simp_rw [← image_smul, ← image_neg, image_image, neg_smul]
 #align set.neg_smul_set Set.neg_smul_set
 
-/- warning: set.neg_smul -> Set.neg_smul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Ring.{u1} α] [_inst_2 : AddCommGroup.{u2} β] [_inst_3 : Module.{u1, u2} α β (Ring.toSemiring.{u1} α _inst_1) (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)] (s : Set.{u1} α) (t : Set.{u2} β), Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α _inst_1)) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α _inst_1) (AddCommGroup.toAddCommMonoid.{u2} β _inst_2) _inst_3))))) (Neg.neg.{u1} (Set.{u1} α) (Set.neg.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α _inst_1)))))) s) t) (Neg.neg.{u2} (Set.{u2} β) (Set.neg.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_2)))) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α _inst_1)) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α _inst_1) (AddCommGroup.toAddCommMonoid.{u2} β _inst_2) _inst_3))))) s t))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Ring.{u1} α] [_inst_2 : AddCommGroup.{u2} β] [_inst_3 : Module.{u1, u2} α β (Ring.toSemiring.{u1} α _inst_1) (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)] (s : Set.{u1} α) (t : Set.{u2} β), Eq.{succ u2} (Set.{u2} β) (HSMul.hSMul.{u1, u2, u2} (Set.{u1} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β (SMulZeroClass.toSMul.{u1, u2} α β (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} α β (MonoidWithZero.toZero.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α _inst_1))) (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α _inst_1)) (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α _inst_1) (AddCommGroup.toAddCommMonoid.{u2} β _inst_2) _inst_3)))))) (Neg.neg.{u1} (Set.{u1} α) (Set.neg.{u1} α (Ring.toNeg.{u1} α _inst_1)) s) t) (Neg.neg.{u2} (Set.{u2} β) (Set.neg.{u2} β (NegZeroClass.toNeg.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β _inst_2)))))) (HSMul.hSMul.{u1, u2, u2} (Set.{u1} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β (SMulZeroClass.toSMul.{u1, u2} α β (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} α β (MonoidWithZero.toZero.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α _inst_1))) (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α _inst_1)) (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α _inst_1) (AddCommGroup.toAddCommMonoid.{u2} β _inst_2) _inst_3)))))) s t))
-Case conversion may be inaccurate. Consider using '#align set.neg_smul Set.neg_smulₓ'. -/
 @[simp]
 protected theorem neg_smul : -s • t = -(s • t) := by simp_rw [← image_neg];
   exact image2_image_left_comm neg_smul
Diff
@@ -796,12 +796,8 @@ protected def mulAction [Monoid α] [MulAction α β] : MulAction (Set α) (Set
       "An additive action of an additive monoid on a type `β` gives an additive action\non `set β`."]
 protected def mulActionSet [Monoid α] [MulAction α β] : MulAction α (Set β)
     where
-  mul_smul := by
-    intros
-    simp only [← image_smul, image_image, ← mul_smul]
-  one_smul := by
-    intros
-    simp only [← image_smul, one_smul, image_id']
+  mul_smul := by intros ; simp only [← image_smul, image_image, ← mul_smul]
+  one_smul := by intros ; simp only [← image_smul, one_smul, image_id']
 #align set.mul_action_set Set.mulActionSet
 #align set.add_action_set Set.addActionSet
 -/
@@ -1246,10 +1242,8 @@ Case conversion may be inaccurate. Consider using '#align set.op_smul_set_smul_e
 -- TODO: replace hypothesis and conclusion with a typeclass
 @[to_additive]
 theorem op_smul_set_smul_eq_smul_smul_set (a : α) (s : Set β) (t : Set γ)
-    (h : ∀ (a : α) (b : β) (c : γ), (op a • b) • c = b • a • c) : (op a • s) • t = s • a • t :=
-  by
-  ext
-  simp [mem_smul, mem_smul_set, h]
+    (h : ∀ (a : α) (b : β) (c : γ), (op a • b) • c = b • a • c) : (op a • s) • t = s • a • t := by
+  ext; simp [mem_smul, mem_smul_set, h]
 #align set.op_smul_set_smul_eq_smul_smul_set Set.op_smul_set_smul_eq_smul_smul_set
 #align set.op_vadd_set_vadd_eq_vadd_vadd_set Set.op_vadd_set_vadd_eq_vadd_vadd_set
 
@@ -1789,9 +1783,7 @@ but is expected to have type
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Monoid.{u1} α] [_inst_2 : AddGroup.{u2} β] [_inst_3 : DistribMulAction.{u1, u2} α β _inst_1 (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β _inst_2))] (s : Set.{u1} α) (t : Set.{u2} β), Eq.{succ u2} (Set.{u2} β) (HSMul.hSMul.{u1, u2, u2} (Set.{u1} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β (SMulZeroClass.toSMul.{u1, u2} α β (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (AddGroup.toSubtractionMonoid.{u2} β _inst_2)))) (DistribSMul.toSMulZeroClass.{u1, u2} α β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β _inst_2))) (DistribMulAction.toDistribSMul.{u1, u2} α β _inst_1 (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β _inst_2)) _inst_3))))) s (Neg.neg.{u2} (Set.{u2} β) (Set.neg.{u2} β (NegZeroClass.toNeg.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (AddGroup.toSubtractionMonoid.{u2} β _inst_2))))) t)) (Neg.neg.{u2} (Set.{u2} β) (Set.neg.{u2} β (NegZeroClass.toNeg.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (AddGroup.toSubtractionMonoid.{u2} β _inst_2))))) (HSMul.hSMul.{u1, u2, u2} (Set.{u1} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β (SMulZeroClass.toSMul.{u1, u2} α β (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (AddGroup.toSubtractionMonoid.{u2} β _inst_2)))) (DistribSMul.toSMulZeroClass.{u1, u2} α β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β _inst_2))) (DistribMulAction.toDistribSMul.{u1, u2} α β _inst_1 (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β _inst_2)) _inst_3))))) s t))
 Case conversion may be inaccurate. Consider using '#align set.smul_neg Set.smul_negₓ'. -/
 @[simp]
-protected theorem smul_neg : s • -t = -(s • t) :=
-  by
-  simp_rw [← image_neg]
+protected theorem smul_neg : s • -t = -(s • t) := by simp_rw [← image_neg];
   exact image_image2_right_comm smul_neg
 #align set.smul_neg Set.smul_neg
 
@@ -1819,9 +1811,7 @@ but is expected to have type
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Ring.{u1} α] [_inst_2 : AddCommGroup.{u2} β] [_inst_3 : Module.{u1, u2} α β (Ring.toSemiring.{u1} α _inst_1) (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)] (s : Set.{u1} α) (t : Set.{u2} β), Eq.{succ u2} (Set.{u2} β) (HSMul.hSMul.{u1, u2, u2} (Set.{u1} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β (SMulZeroClass.toSMul.{u1, u2} α β (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} α β (MonoidWithZero.toZero.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α _inst_1))) (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α _inst_1)) (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α _inst_1) (AddCommGroup.toAddCommMonoid.{u2} β _inst_2) _inst_3)))))) (Neg.neg.{u1} (Set.{u1} α) (Set.neg.{u1} α (Ring.toNeg.{u1} α _inst_1)) s) t) (Neg.neg.{u2} (Set.{u2} β) (Set.neg.{u2} β (NegZeroClass.toNeg.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β _inst_2)))))) (HSMul.hSMul.{u1, u2, u2} (Set.{u1} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β (SMulZeroClass.toSMul.{u1, u2} α β (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} α β (MonoidWithZero.toZero.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α _inst_1))) (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α _inst_1)) (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α _inst_1) (AddCommGroup.toAddCommMonoid.{u2} β _inst_2) _inst_3)))))) s t))
 Case conversion may be inaccurate. Consider using '#align set.neg_smul Set.neg_smulₓ'. -/
 @[simp]
-protected theorem neg_smul : -s • t = -(s • t) :=
-  by
-  simp_rw [← image_neg]
+protected theorem neg_smul : -s • t = -(s • t) := by simp_rw [← image_neg];
   exact image2_image_left_comm neg_smul
 #align set.neg_smul Set.neg_smul
 
Diff
@@ -1095,7 +1095,7 @@ theorem union_vsub_inter_subset_union : s₁ ∪ s₂ -ᵥ t₁ ∩ t₂ ⊆ s
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : VSub.{u1, u2} α β] {s : Set.{u2} β} {t : Set.{u2} β}, Eq.{succ u1} (Set.{u1} α) (Set.iUnion.{u1, succ u2} α β (fun (a : β) => Set.iUnion.{u1, 0} α (Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) a s) (fun (H : Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) a s) => Set.image.{u2, u1} β α (VSub.vsub.{u1, u2} α β _inst_1 a) t))) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s t)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : VSub.{u2, u1} α β] {s : Set.{u1} β} {t : Set.{u1} β}, Eq.{succ u2} (Set.{u2} α) (Set.iUnion.{u2, succ u1} α β (fun (a : β) => Set.iUnion.{u2, 0} α (Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) a s) (fun (H : Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) a s) => Set.image.{u1, u2} β α ((fun (x._@.Mathlib.Data.Set.Pointwise.SMul._hyg.6862 : β) (x._@.Mathlib.Data.Set.Pointwise.SMul._hyg.6864 : β) => VSub.vsub.{u2, u1} α β _inst_1 x._@.Mathlib.Data.Set.Pointwise.SMul._hyg.6862 x._@.Mathlib.Data.Set.Pointwise.SMul._hyg.6864) a) t))) (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) s t)
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : VSub.{u2, u1} α β] {s : Set.{u1} β} {t : Set.{u1} β}, Eq.{succ u2} (Set.{u2} α) (Set.iUnion.{u2, succ u1} α β (fun (a : β) => Set.iUnion.{u2, 0} α (Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) a s) (fun (H : Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) a s) => Set.image.{u1, u2} β α ((fun (x._@.Mathlib.Data.Set.Pointwise.SMul._hyg.6866 : β) (x._@.Mathlib.Data.Set.Pointwise.SMul._hyg.6868 : β) => VSub.vsub.{u2, u1} α β _inst_1 x._@.Mathlib.Data.Set.Pointwise.SMul._hyg.6866 x._@.Mathlib.Data.Set.Pointwise.SMul._hyg.6868) a) t))) (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) s t)
 Case conversion may be inaccurate. Consider using '#align set.Union_vsub_left_image Set.iUnion_vsub_left_imageₓ'. -/
 theorem iUnion_vsub_left_image : (⋃ a ∈ s, (· -ᵥ ·) a '' t) = s -ᵥ t :=
   iUnion_image_left _
Diff
@@ -1224,7 +1224,7 @@ theorem image_smul_comm [SMul α β] [SMul α γ] (f : β → γ) (a : α) (s :
 lean 3 declaration is
   forall {F : Type.{u1}} {α : Type.{u2}} {β : Type.{u3}} [_inst_1 : MulOneClass.{u2} α] [_inst_2 : MulOneClass.{u3} β] [_inst_3 : MonoidHomClass.{u1, u2, u3} F α β _inst_1 _inst_2] (f : F) (a : α) (s : Set.{u2} α), Eq.{succ u3} (Set.{u3} β) (Set.image.{u2, u3} α β (coeFn.{succ u1, max (succ u2) (succ u3)} F (fun (_x : F) => α -> β) (FunLike.hasCoeToFun.{succ u1, succ u2, succ u3} F α (fun (_x : α) => β) (MulHomClass.toFunLike.{u1, u2, u3} F α β (MulOneClass.toHasMul.{u2} α _inst_1) (MulOneClass.toHasMul.{u3} β _inst_2) (MonoidHomClass.toMulHomClass.{u1, u2, u3} F α β _inst_1 _inst_2 _inst_3))) f) (SMul.smul.{u2, u2} α (Set.{u2} α) (Set.smulSet.{u2, u2} α α (Mul.toSMul.{u2} α (MulOneClass.toHasMul.{u2} α _inst_1))) a s)) (SMul.smul.{u3, u3} β (Set.{u3} β) (Set.smulSet.{u3, u3} β β (Mul.toSMul.{u3} β (MulOneClass.toHasMul.{u3} β _inst_2))) (coeFn.{succ u1, max (succ u2) (succ u3)} F (fun (_x : F) => α -> β) (FunLike.hasCoeToFun.{succ u1, succ u2, succ u3} F α (fun (_x : α) => β) (MulHomClass.toFunLike.{u1, u2, u3} F α β (MulOneClass.toHasMul.{u2} α _inst_1) (MulOneClass.toHasMul.{u3} β _inst_2) (MonoidHomClass.toMulHomClass.{u1, u2, u3} F α β _inst_1 _inst_2 _inst_3))) f a) (Set.image.{u2, u3} α β (coeFn.{succ u1, max (succ u2) (succ u3)} F (fun (_x : F) => α -> β) (FunLike.hasCoeToFun.{succ u1, succ u2, succ u3} F α (fun (_x : α) => β) (MulHomClass.toFunLike.{u1, u2, u3} F α β (MulOneClass.toHasMul.{u2} α _inst_1) (MulOneClass.toHasMul.{u3} β _inst_2) (MonoidHomClass.toMulHomClass.{u1, u2, u3} F α β _inst_1 _inst_2 _inst_3))) f) s))
 but is expected to have type
-  forall {F : Type.{u1}} {α : Type.{u3}} {β : Type.{u2}} [_inst_1 : MulOneClass.{u3} α] [_inst_2 : MulOneClass.{u2} β] [_inst_3 : MonoidHomClass.{u1, u3, u2} F α β _inst_1 _inst_2] (f : F) (a : α) (s : Set.{u3} α), Eq.{succ u2} (Set.{u2} β) (Set.image.{u3, u2} α β (FunLike.coe.{succ u1, succ u3, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => β) _x) (MulHomClass.toFunLike.{u1, u3, u2} F α β (MulOneClass.toMul.{u3} α _inst_1) (MulOneClass.toMul.{u2} β _inst_2) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F α β _inst_1 _inst_2 _inst_3)) f) (HSMul.hSMul.{u3, u3, u3} α (Set.{u3} α) (Set.{u3} α) (instHSMul.{u3, u3} α (Set.{u3} α) (Set.smulSet.{u3, u3} α α (Mul.toSMul.{u3} α (MulOneClass.toMul.{u3} α _inst_1)))) a s)) (HSMul.hSMul.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => β) a) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => β) a) (Set.{u2} β) (Set.smulSet.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => β) a) β (Mul.toSMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => β) a) (MulOneClass.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => β) a) _inst_2)))) (FunLike.coe.{succ u1, succ u3, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => β) _x) (MulHomClass.toFunLike.{u1, u3, u2} F α β (MulOneClass.toMul.{u3} α _inst_1) (MulOneClass.toMul.{u2} β _inst_2) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F α β _inst_1 _inst_2 _inst_3)) f a) (Set.image.{u3, u2} α β (FunLike.coe.{succ u1, succ u3, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => β) _x) (MulHomClass.toFunLike.{u1, u3, u2} F α β (MulOneClass.toMul.{u3} α _inst_1) (MulOneClass.toMul.{u2} β _inst_2) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F α β _inst_1 _inst_2 _inst_3)) f) s))
+  forall {F : Type.{u1}} {α : Type.{u3}} {β : Type.{u2}} [_inst_1 : MulOneClass.{u3} α] [_inst_2 : MulOneClass.{u2} β] [_inst_3 : MonoidHomClass.{u1, u3, u2} F α β _inst_1 _inst_2] (f : F) (a : α) (s : Set.{u3} α), Eq.{succ u2} (Set.{u2} β) (Set.image.{u3, u2} α β (FunLike.coe.{succ u1, succ u3, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => β) _x) (MulHomClass.toFunLike.{u1, u3, u2} F α β (MulOneClass.toMul.{u3} α _inst_1) (MulOneClass.toMul.{u2} β _inst_2) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F α β _inst_1 _inst_2 _inst_3)) f) (HSMul.hSMul.{u3, u3, u3} α (Set.{u3} α) (Set.{u3} α) (instHSMul.{u3, u3} α (Set.{u3} α) (Set.smulSet.{u3, u3} α α (Mul.toSMul.{u3} α (MulOneClass.toMul.{u3} α _inst_1)))) a s)) (HSMul.hSMul.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => β) a) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => β) a) (Set.{u2} β) (Set.smulSet.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => β) a) β (Mul.toSMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => β) a) (MulOneClass.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => β) a) _inst_2)))) (FunLike.coe.{succ u1, succ u3, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => β) _x) (MulHomClass.toFunLike.{u1, u3, u2} F α β (MulOneClass.toMul.{u3} α _inst_1) (MulOneClass.toMul.{u2} β _inst_2) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F α β _inst_1 _inst_2 _inst_3)) f a) (Set.image.{u3, u2} α β (FunLike.coe.{succ u1, succ u3, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => β) _x) (MulHomClass.toFunLike.{u1, u3, u2} F α β (MulOneClass.toMul.{u3} α _inst_1) (MulOneClass.toMul.{u2} β _inst_2) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F α β _inst_1 _inst_2 _inst_3)) f) s))
 Case conversion may be inaccurate. Consider using '#align set.image_smul_distrib Set.image_smul_distribₓ'. -/
 @[to_additive]
 theorem image_smul_distrib [MulOneClass α] [MulOneClass β] [MonoidHomClass F α β] (f : F) (a : α)
Diff
@@ -322,129 +322,129 @@ theorem union_smul_inter_subset_union : (s₁ ∪ s₂) • (t₁ ∩ t₂) ⊆
 #align set.union_smul_inter_subset_union Set.union_smul_inter_subset_union
 #align set.union_vadd_inter_subset_union Set.union_vadd_inter_subset_union
 
-#print Set.unionᵢ_smul_left_image /-
+#print Set.iUnion_smul_left_image /-
 @[to_additive]
-theorem unionᵢ_smul_left_image : (⋃ a ∈ s, a • t) = s • t :=
-  unionᵢ_image_left _
-#align set.Union_smul_left_image Set.unionᵢ_smul_left_image
-#align set.Union_vadd_left_image Set.unionᵢ_vadd_left_image
+theorem iUnion_smul_left_image : (⋃ a ∈ s, a • t) = s • t :=
+  iUnion_image_left _
+#align set.Union_smul_left_image Set.iUnion_smul_left_image
+#align set.Union_vadd_left_image Set.iUnion_vadd_left_image
 -/
 
-#print Set.unionᵢ_smul_right_image /-
+#print Set.iUnion_smul_right_image /-
 @[to_additive]
-theorem unionᵢ_smul_right_image : (⋃ a ∈ t, (· • a) '' s) = s • t :=
-  unionᵢ_image_right _
-#align set.Union_smul_right_image Set.unionᵢ_smul_right_image
-#align set.Union_vadd_right_image Set.unionᵢ_vadd_right_image
+theorem iUnion_smul_right_image : (⋃ a ∈ t, (· • a) '' s) = s • t :=
+  iUnion_image_right _
+#align set.Union_smul_right_image Set.iUnion_smul_right_image
+#align set.Union_vadd_right_image Set.iUnion_vadd_right_image
 -/
 
-/- warning: set.Union_smul -> Set.unionᵢ_smul is a dubious translation:
+/- warning: set.Union_smul -> Set.iUnion_smul is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} [_inst_1 : SMul.{u1, u2} α β] (s : ι -> (Set.{u1} α)) (t : Set.{u2} β), Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) (Set.unionᵢ.{u1, u3} α ι (fun (i : ι) => s i)) t) (Set.unionᵢ.{u2, u3} β ι (fun (i : ι) => SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) (s i) t))
+  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} [_inst_1 : SMul.{u1, u2} α β] (s : ι -> (Set.{u1} α)) (t : Set.{u2} β), Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) (Set.iUnion.{u1, u3} α ι (fun (i : ι) => s i)) t) (Set.iUnion.{u2, u3} β ι (fun (i : ι) => SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) (s i) t))
 but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {ι : Sort.{u1}} [_inst_1 : SMul.{u3, u2} α β] (s : ι -> (Set.{u3} α)) (t : Set.{u2} β), Eq.{succ u2} (Set.{u2} β) (HSMul.hSMul.{u3, u2, u2} (Set.{u3} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u3, u2} (Set.{u3} α) (Set.{u2} β) (Set.smul.{u3, u2} α β _inst_1)) (Set.unionᵢ.{u3, u1} α ι (fun (i : ι) => s i)) t) (Set.unionᵢ.{u2, u1} β ι (fun (i : ι) => HSMul.hSMul.{u3, u2, u2} (Set.{u3} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u3, u2} (Set.{u3} α) (Set.{u2} β) (Set.smul.{u3, u2} α β _inst_1)) (s i) t))
-Case conversion may be inaccurate. Consider using '#align set.Union_smul Set.unionᵢ_smulₓ'. -/
+  forall {α : Type.{u3}} {β : Type.{u2}} {ι : Sort.{u1}} [_inst_1 : SMul.{u3, u2} α β] (s : ι -> (Set.{u3} α)) (t : Set.{u2} β), Eq.{succ u2} (Set.{u2} β) (HSMul.hSMul.{u3, u2, u2} (Set.{u3} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u3, u2} (Set.{u3} α) (Set.{u2} β) (Set.smul.{u3, u2} α β _inst_1)) (Set.iUnion.{u3, u1} α ι (fun (i : ι) => s i)) t) (Set.iUnion.{u2, u1} β ι (fun (i : ι) => HSMul.hSMul.{u3, u2, u2} (Set.{u3} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u3, u2} (Set.{u3} α) (Set.{u2} β) (Set.smul.{u3, u2} α β _inst_1)) (s i) t))
+Case conversion may be inaccurate. Consider using '#align set.Union_smul Set.iUnion_smulₓ'. -/
 @[to_additive]
-theorem unionᵢ_smul (s : ι → Set α) (t : Set β) : (⋃ i, s i) • t = ⋃ i, s i • t :=
-  image2_unionᵢ_left _ _ _
-#align set.Union_smul Set.unionᵢ_smul
-#align set.Union_vadd Set.unionᵢ_vadd
+theorem iUnion_smul (s : ι → Set α) (t : Set β) : (⋃ i, s i) • t = ⋃ i, s i • t :=
+  image2_iUnion_left _ _ _
+#align set.Union_smul Set.iUnion_smul
+#align set.Union_vadd Set.iUnion_vadd
 
-/- warning: set.smul_Union -> Set.smul_unionᵢ is a dubious translation:
+/- warning: set.smul_Union -> Set.smul_iUnion is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} [_inst_1 : SMul.{u1, u2} α β] (s : Set.{u1} α) (t : ι -> (Set.{u2} β)), Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s (Set.unionᵢ.{u2, u3} β ι (fun (i : ι) => t i))) (Set.unionᵢ.{u2, u3} β ι (fun (i : ι) => SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s (t i)))
+  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} [_inst_1 : SMul.{u1, u2} α β] (s : Set.{u1} α) (t : ι -> (Set.{u2} β)), Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s (Set.iUnion.{u2, u3} β ι (fun (i : ι) => t i))) (Set.iUnion.{u2, u3} β ι (fun (i : ι) => SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s (t i)))
 but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {ι : Sort.{u1}} [_inst_1 : SMul.{u3, u2} α β] (s : Set.{u3} α) (t : ι -> (Set.{u2} β)), Eq.{succ u2} (Set.{u2} β) (HSMul.hSMul.{u3, u2, u2} (Set.{u3} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u3, u2} (Set.{u3} α) (Set.{u2} β) (Set.smul.{u3, u2} α β _inst_1)) s (Set.unionᵢ.{u2, u1} β ι (fun (i : ι) => t i))) (Set.unionᵢ.{u2, u1} β ι (fun (i : ι) => HSMul.hSMul.{u3, u2, u2} (Set.{u3} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u3, u2} (Set.{u3} α) (Set.{u2} β) (Set.smul.{u3, u2} α β _inst_1)) s (t i)))
-Case conversion may be inaccurate. Consider using '#align set.smul_Union Set.smul_unionᵢₓ'. -/
+  forall {α : Type.{u3}} {β : Type.{u2}} {ι : Sort.{u1}} [_inst_1 : SMul.{u3, u2} α β] (s : Set.{u3} α) (t : ι -> (Set.{u2} β)), Eq.{succ u2} (Set.{u2} β) (HSMul.hSMul.{u3, u2, u2} (Set.{u3} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u3, u2} (Set.{u3} α) (Set.{u2} β) (Set.smul.{u3, u2} α β _inst_1)) s (Set.iUnion.{u2, u1} β ι (fun (i : ι) => t i))) (Set.iUnion.{u2, u1} β ι (fun (i : ι) => HSMul.hSMul.{u3, u2, u2} (Set.{u3} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u3, u2} (Set.{u3} α) (Set.{u2} β) (Set.smul.{u3, u2} α β _inst_1)) s (t i)))
+Case conversion may be inaccurate. Consider using '#align set.smul_Union Set.smul_iUnionₓ'. -/
 @[to_additive]
-theorem smul_unionᵢ (s : Set α) (t : ι → Set β) : (s • ⋃ i, t i) = ⋃ i, s • t i :=
-  image2_unionᵢ_right _ _ _
-#align set.smul_Union Set.smul_unionᵢ
-#align set.vadd_Union Set.vadd_unionᵢ
+theorem smul_iUnion (s : Set α) (t : ι → Set β) : (s • ⋃ i, t i) = ⋃ i, s • t i :=
+  image2_iUnion_right _ _ _
+#align set.smul_Union Set.smul_iUnion
+#align set.vadd_Union Set.vadd_iUnion
 
-/- warning: set.Union₂_smul -> Set.unionᵢ₂_smul is a dubious translation:
+/- warning: set.Union₂_smul -> Set.iUnion₂_smul is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {κ : ι -> Sort.{u4}} [_inst_1 : SMul.{u1, u2} α β] (s : forall (i : ι), (κ i) -> (Set.{u1} α)) (t : Set.{u2} β), Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) (Set.unionᵢ.{u1, u3} α ι (fun (i : ι) => Set.unionᵢ.{u1, u4} α (κ i) (fun (j : κ i) => s i j))) t) (Set.unionᵢ.{u2, u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, u4} β (κ i) (fun (j : κ i) => SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) (s i j) t)))
+  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {κ : ι -> Sort.{u4}} [_inst_1 : SMul.{u1, u2} α β] (s : forall (i : ι), (κ i) -> (Set.{u1} α)) (t : Set.{u2} β), Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) (Set.iUnion.{u1, u3} α ι (fun (i : ι) => Set.iUnion.{u1, u4} α (κ i) (fun (j : κ i) => s i j))) t) (Set.iUnion.{u2, u3} β ι (fun (i : ι) => Set.iUnion.{u2, u4} β (κ i) (fun (j : κ i) => SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) (s i j) t)))
 but is expected to have type
-  forall {α : Type.{u4}} {β : Type.{u3}} {ι : Sort.{u2}} {κ : ι -> Sort.{u1}} [_inst_1 : SMul.{u4, u3} α β] (s : forall (i : ι), (κ i) -> (Set.{u4} α)) (t : Set.{u3} β), Eq.{succ u3} (Set.{u3} β) (HSMul.hSMul.{u4, u3, u3} (Set.{u4} α) (Set.{u3} β) (Set.{u3} β) (instHSMul.{u4, u3} (Set.{u4} α) (Set.{u3} β) (Set.smul.{u4, u3} α β _inst_1)) (Set.unionᵢ.{u4, u2} α ι (fun (i : ι) => Set.unionᵢ.{u4, u1} α (κ i) (fun (j : κ i) => s i j))) t) (Set.unionᵢ.{u3, u2} β ι (fun (i : ι) => Set.unionᵢ.{u3, u1} β (κ i) (fun (j : κ i) => HSMul.hSMul.{u4, u3, u3} (Set.{u4} α) (Set.{u3} β) (Set.{u3} β) (instHSMul.{u4, u3} (Set.{u4} α) (Set.{u3} β) (Set.smul.{u4, u3} α β _inst_1)) (s i j) t)))
-Case conversion may be inaccurate. Consider using '#align set.Union₂_smul Set.unionᵢ₂_smulₓ'. -/
+  forall {α : Type.{u4}} {β : Type.{u3}} {ι : Sort.{u2}} {κ : ι -> Sort.{u1}} [_inst_1 : SMul.{u4, u3} α β] (s : forall (i : ι), (κ i) -> (Set.{u4} α)) (t : Set.{u3} β), Eq.{succ u3} (Set.{u3} β) (HSMul.hSMul.{u4, u3, u3} (Set.{u4} α) (Set.{u3} β) (Set.{u3} β) (instHSMul.{u4, u3} (Set.{u4} α) (Set.{u3} β) (Set.smul.{u4, u3} α β _inst_1)) (Set.iUnion.{u4, u2} α ι (fun (i : ι) => Set.iUnion.{u4, u1} α (κ i) (fun (j : κ i) => s i j))) t) (Set.iUnion.{u3, u2} β ι (fun (i : ι) => Set.iUnion.{u3, u1} β (κ i) (fun (j : κ i) => HSMul.hSMul.{u4, u3, u3} (Set.{u4} α) (Set.{u3} β) (Set.{u3} β) (instHSMul.{u4, u3} (Set.{u4} α) (Set.{u3} β) (Set.smul.{u4, u3} α β _inst_1)) (s i j) t)))
+Case conversion may be inaccurate. Consider using '#align set.Union₂_smul Set.iUnion₂_smulₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 @[to_additive]
-theorem unionᵢ₂_smul (s : ∀ i, κ i → Set α) (t : Set β) :
+theorem iUnion₂_smul (s : ∀ i, κ i → Set α) (t : Set β) :
     (⋃ (i) (j), s i j) • t = ⋃ (i) (j), s i j • t :=
-  image2_unionᵢ₂_left _ _ _
-#align set.Union₂_smul Set.unionᵢ₂_smul
-#align set.Union₂_vadd Set.unionᵢ₂_vadd
+  image2_iUnion₂_left _ _ _
+#align set.Union₂_smul Set.iUnion₂_smul
+#align set.Union₂_vadd Set.iUnion₂_vadd
 
-/- warning: set.smul_Union₂ -> Set.smul_unionᵢ₂ is a dubious translation:
+/- warning: set.smul_Union₂ -> Set.smul_iUnion₂ is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {κ : ι -> Sort.{u4}} [_inst_1 : SMul.{u1, u2} α β] (s : Set.{u1} α) (t : forall (i : ι), (κ i) -> (Set.{u2} β)), Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s (Set.unionᵢ.{u2, u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, u4} β (κ i) (fun (j : κ i) => t i j)))) (Set.unionᵢ.{u2, u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, u4} β (κ i) (fun (j : κ i) => SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s (t i j))))
+  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {κ : ι -> Sort.{u4}} [_inst_1 : SMul.{u1, u2} α β] (s : Set.{u1} α) (t : forall (i : ι), (κ i) -> (Set.{u2} β)), Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s (Set.iUnion.{u2, u3} β ι (fun (i : ι) => Set.iUnion.{u2, u4} β (κ i) (fun (j : κ i) => t i j)))) (Set.iUnion.{u2, u3} β ι (fun (i : ι) => Set.iUnion.{u2, u4} β (κ i) (fun (j : κ i) => SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s (t i j))))
 but is expected to have type
-  forall {α : Type.{u4}} {β : Type.{u3}} {ι : Sort.{u2}} {κ : ι -> Sort.{u1}} [_inst_1 : SMul.{u4, u3} α β] (s : Set.{u4} α) (t : forall (i : ι), (κ i) -> (Set.{u3} β)), Eq.{succ u3} (Set.{u3} β) (HSMul.hSMul.{u4, u3, u3} (Set.{u4} α) (Set.{u3} β) (Set.{u3} β) (instHSMul.{u4, u3} (Set.{u4} α) (Set.{u3} β) (Set.smul.{u4, u3} α β _inst_1)) s (Set.unionᵢ.{u3, u2} β ι (fun (i : ι) => Set.unionᵢ.{u3, u1} β (κ i) (fun (j : κ i) => t i j)))) (Set.unionᵢ.{u3, u2} β ι (fun (i : ι) => Set.unionᵢ.{u3, u1} β (κ i) (fun (j : κ i) => HSMul.hSMul.{u4, u3, u3} (Set.{u4} α) (Set.{u3} β) (Set.{u3} β) (instHSMul.{u4, u3} (Set.{u4} α) (Set.{u3} β) (Set.smul.{u4, u3} α β _inst_1)) s (t i j))))
-Case conversion may be inaccurate. Consider using '#align set.smul_Union₂ Set.smul_unionᵢ₂ₓ'. -/
+  forall {α : Type.{u4}} {β : Type.{u3}} {ι : Sort.{u2}} {κ : ι -> Sort.{u1}} [_inst_1 : SMul.{u4, u3} α β] (s : Set.{u4} α) (t : forall (i : ι), (κ i) -> (Set.{u3} β)), Eq.{succ u3} (Set.{u3} β) (HSMul.hSMul.{u4, u3, u3} (Set.{u4} α) (Set.{u3} β) (Set.{u3} β) (instHSMul.{u4, u3} (Set.{u4} α) (Set.{u3} β) (Set.smul.{u4, u3} α β _inst_1)) s (Set.iUnion.{u3, u2} β ι (fun (i : ι) => Set.iUnion.{u3, u1} β (κ i) (fun (j : κ i) => t i j)))) (Set.iUnion.{u3, u2} β ι (fun (i : ι) => Set.iUnion.{u3, u1} β (κ i) (fun (j : κ i) => HSMul.hSMul.{u4, u3, u3} (Set.{u4} α) (Set.{u3} β) (Set.{u3} β) (instHSMul.{u4, u3} (Set.{u4} α) (Set.{u3} β) (Set.smul.{u4, u3} α β _inst_1)) s (t i j))))
+Case conversion may be inaccurate. Consider using '#align set.smul_Union₂ Set.smul_iUnion₂ₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 @[to_additive]
-theorem smul_unionᵢ₂ (s : Set α) (t : ∀ i, κ i → Set β) :
+theorem smul_iUnion₂ (s : Set α) (t : ∀ i, κ i → Set β) :
     (s • ⋃ (i) (j), t i j) = ⋃ (i) (j), s • t i j :=
-  image2_unionᵢ₂_right _ _ _
-#align set.smul_Union₂ Set.smul_unionᵢ₂
-#align set.vadd_Union₂ Set.vadd_unionᵢ₂
+  image2_iUnion₂_right _ _ _
+#align set.smul_Union₂ Set.smul_iUnion₂
+#align set.vadd_Union₂ Set.vadd_iUnion₂
 
-/- warning: set.Inter_smul_subset -> Set.interᵢ_smul_subset is a dubious translation:
+/- warning: set.Inter_smul_subset -> Set.iInter_smul_subset is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} [_inst_1 : SMul.{u1, u2} α β] (s : ι -> (Set.{u1} α)) (t : Set.{u2} β), HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) (Set.interᵢ.{u1, u3} α ι (fun (i : ι) => s i)) t) (Set.interᵢ.{u2, u3} β ι (fun (i : ι) => SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) (s i) t))
+  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} [_inst_1 : SMul.{u1, u2} α β] (s : ι -> (Set.{u1} α)) (t : Set.{u2} β), HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) (Set.iInter.{u1, u3} α ι (fun (i : ι) => s i)) t) (Set.iInter.{u2, u3} β ι (fun (i : ι) => SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) (s i) t))
 but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {ι : Sort.{u1}} [_inst_1 : SMul.{u3, u2} α β] (s : ι -> (Set.{u3} α)) (t : Set.{u2} β), HasSubset.Subset.{u2} (Set.{u2} β) (Set.instHasSubsetSet.{u2} β) (HSMul.hSMul.{u3, u2, u2} (Set.{u3} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u3, u2} (Set.{u3} α) (Set.{u2} β) (Set.smul.{u3, u2} α β _inst_1)) (Set.interᵢ.{u3, u1} α ι (fun (i : ι) => s i)) t) (Set.interᵢ.{u2, u1} β ι (fun (i : ι) => HSMul.hSMul.{u3, u2, u2} (Set.{u3} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u3, u2} (Set.{u3} α) (Set.{u2} β) (Set.smul.{u3, u2} α β _inst_1)) (s i) t))
-Case conversion may be inaccurate. Consider using '#align set.Inter_smul_subset Set.interᵢ_smul_subsetₓ'. -/
+  forall {α : Type.{u3}} {β : Type.{u2}} {ι : Sort.{u1}} [_inst_1 : SMul.{u3, u2} α β] (s : ι -> (Set.{u3} α)) (t : Set.{u2} β), HasSubset.Subset.{u2} (Set.{u2} β) (Set.instHasSubsetSet.{u2} β) (HSMul.hSMul.{u3, u2, u2} (Set.{u3} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u3, u2} (Set.{u3} α) (Set.{u2} β) (Set.smul.{u3, u2} α β _inst_1)) (Set.iInter.{u3, u1} α ι (fun (i : ι) => s i)) t) (Set.iInter.{u2, u1} β ι (fun (i : ι) => HSMul.hSMul.{u3, u2, u2} (Set.{u3} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u3, u2} (Set.{u3} α) (Set.{u2} β) (Set.smul.{u3, u2} α β _inst_1)) (s i) t))
+Case conversion may be inaccurate. Consider using '#align set.Inter_smul_subset Set.iInter_smul_subsetₓ'. -/
 @[to_additive]
-theorem interᵢ_smul_subset (s : ι → Set α) (t : Set β) : (⋂ i, s i) • t ⊆ ⋂ i, s i • t :=
-  image2_interᵢ_subset_left _ _ _
-#align set.Inter_smul_subset Set.interᵢ_smul_subset
-#align set.Inter_vadd_subset Set.interᵢ_vadd_subset
+theorem iInter_smul_subset (s : ι → Set α) (t : Set β) : (⋂ i, s i) • t ⊆ ⋂ i, s i • t :=
+  image2_iInter_subset_left _ _ _
+#align set.Inter_smul_subset Set.iInter_smul_subset
+#align set.Inter_vadd_subset Set.iInter_vadd_subset
 
-/- warning: set.smul_Inter_subset -> Set.smul_interᵢ_subset is a dubious translation:
+/- warning: set.smul_Inter_subset -> Set.smul_iInter_subset is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} [_inst_1 : SMul.{u1, u2} α β] (s : Set.{u1} α) (t : ι -> (Set.{u2} β)), HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s (Set.interᵢ.{u2, u3} β ι (fun (i : ι) => t i))) (Set.interᵢ.{u2, u3} β ι (fun (i : ι) => SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s (t i)))
+  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} [_inst_1 : SMul.{u1, u2} α β] (s : Set.{u1} α) (t : ι -> (Set.{u2} β)), HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s (Set.iInter.{u2, u3} β ι (fun (i : ι) => t i))) (Set.iInter.{u2, u3} β ι (fun (i : ι) => SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s (t i)))
 but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {ι : Sort.{u1}} [_inst_1 : SMul.{u3, u2} α β] (s : Set.{u3} α) (t : ι -> (Set.{u2} β)), HasSubset.Subset.{u2} (Set.{u2} β) (Set.instHasSubsetSet.{u2} β) (HSMul.hSMul.{u3, u2, u2} (Set.{u3} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u3, u2} (Set.{u3} α) (Set.{u2} β) (Set.smul.{u3, u2} α β _inst_1)) s (Set.interᵢ.{u2, u1} β ι (fun (i : ι) => t i))) (Set.interᵢ.{u2, u1} β ι (fun (i : ι) => HSMul.hSMul.{u3, u2, u2} (Set.{u3} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u3, u2} (Set.{u3} α) (Set.{u2} β) (Set.smul.{u3, u2} α β _inst_1)) s (t i)))
-Case conversion may be inaccurate. Consider using '#align set.smul_Inter_subset Set.smul_interᵢ_subsetₓ'. -/
+  forall {α : Type.{u3}} {β : Type.{u2}} {ι : Sort.{u1}} [_inst_1 : SMul.{u3, u2} α β] (s : Set.{u3} α) (t : ι -> (Set.{u2} β)), HasSubset.Subset.{u2} (Set.{u2} β) (Set.instHasSubsetSet.{u2} β) (HSMul.hSMul.{u3, u2, u2} (Set.{u3} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u3, u2} (Set.{u3} α) (Set.{u2} β) (Set.smul.{u3, u2} α β _inst_1)) s (Set.iInter.{u2, u1} β ι (fun (i : ι) => t i))) (Set.iInter.{u2, u1} β ι (fun (i : ι) => HSMul.hSMul.{u3, u2, u2} (Set.{u3} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u3, u2} (Set.{u3} α) (Set.{u2} β) (Set.smul.{u3, u2} α β _inst_1)) s (t i)))
+Case conversion may be inaccurate. Consider using '#align set.smul_Inter_subset Set.smul_iInter_subsetₓ'. -/
 @[to_additive]
-theorem smul_interᵢ_subset (s : Set α) (t : ι → Set β) : (s • ⋂ i, t i) ⊆ ⋂ i, s • t i :=
-  image2_interᵢ_subset_right _ _ _
-#align set.smul_Inter_subset Set.smul_interᵢ_subset
-#align set.vadd_Inter_subset Set.vadd_interᵢ_subset
+theorem smul_iInter_subset (s : Set α) (t : ι → Set β) : (s • ⋂ i, t i) ⊆ ⋂ i, s • t i :=
+  image2_iInter_subset_right _ _ _
+#align set.smul_Inter_subset Set.smul_iInter_subset
+#align set.vadd_Inter_subset Set.vadd_iInter_subset
 
-/- warning: set.Inter₂_smul_subset -> Set.interᵢ₂_smul_subset is a dubious translation:
+/- warning: set.Inter₂_smul_subset -> Set.iInter₂_smul_subset is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {κ : ι -> Sort.{u4}} [_inst_1 : SMul.{u1, u2} α β] (s : forall (i : ι), (κ i) -> (Set.{u1} α)) (t : Set.{u2} β), HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) (Set.interᵢ.{u1, u3} α ι (fun (i : ι) => Set.interᵢ.{u1, u4} α (κ i) (fun (j : κ i) => s i j))) t) (Set.interᵢ.{u2, u3} β ι (fun (i : ι) => Set.interᵢ.{u2, u4} β (κ i) (fun (j : κ i) => SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) (s i j) t)))
+  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {κ : ι -> Sort.{u4}} [_inst_1 : SMul.{u1, u2} α β] (s : forall (i : ι), (κ i) -> (Set.{u1} α)) (t : Set.{u2} β), HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) (Set.iInter.{u1, u3} α ι (fun (i : ι) => Set.iInter.{u1, u4} α (κ i) (fun (j : κ i) => s i j))) t) (Set.iInter.{u2, u3} β ι (fun (i : ι) => Set.iInter.{u2, u4} β (κ i) (fun (j : κ i) => SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) (s i j) t)))
 but is expected to have type
-  forall {α : Type.{u4}} {β : Type.{u3}} {ι : Sort.{u2}} {κ : ι -> Sort.{u1}} [_inst_1 : SMul.{u4, u3} α β] (s : forall (i : ι), (κ i) -> (Set.{u4} α)) (t : Set.{u3} β), HasSubset.Subset.{u3} (Set.{u3} β) (Set.instHasSubsetSet.{u3} β) (HSMul.hSMul.{u4, u3, u3} (Set.{u4} α) (Set.{u3} β) (Set.{u3} β) (instHSMul.{u4, u3} (Set.{u4} α) (Set.{u3} β) (Set.smul.{u4, u3} α β _inst_1)) (Set.interᵢ.{u4, u2} α ι (fun (i : ι) => Set.interᵢ.{u4, u1} α (κ i) (fun (j : κ i) => s i j))) t) (Set.interᵢ.{u3, u2} β ι (fun (i : ι) => Set.interᵢ.{u3, u1} β (κ i) (fun (j : κ i) => HSMul.hSMul.{u4, u3, u3} (Set.{u4} α) (Set.{u3} β) (Set.{u3} β) (instHSMul.{u4, u3} (Set.{u4} α) (Set.{u3} β) (Set.smul.{u4, u3} α β _inst_1)) (s i j) t)))
-Case conversion may be inaccurate. Consider using '#align set.Inter₂_smul_subset Set.interᵢ₂_smul_subsetₓ'. -/
+  forall {α : Type.{u4}} {β : Type.{u3}} {ι : Sort.{u2}} {κ : ι -> Sort.{u1}} [_inst_1 : SMul.{u4, u3} α β] (s : forall (i : ι), (κ i) -> (Set.{u4} α)) (t : Set.{u3} β), HasSubset.Subset.{u3} (Set.{u3} β) (Set.instHasSubsetSet.{u3} β) (HSMul.hSMul.{u4, u3, u3} (Set.{u4} α) (Set.{u3} β) (Set.{u3} β) (instHSMul.{u4, u3} (Set.{u4} α) (Set.{u3} β) (Set.smul.{u4, u3} α β _inst_1)) (Set.iInter.{u4, u2} α ι (fun (i : ι) => Set.iInter.{u4, u1} α (κ i) (fun (j : κ i) => s i j))) t) (Set.iInter.{u3, u2} β ι (fun (i : ι) => Set.iInter.{u3, u1} β (κ i) (fun (j : κ i) => HSMul.hSMul.{u4, u3, u3} (Set.{u4} α) (Set.{u3} β) (Set.{u3} β) (instHSMul.{u4, u3} (Set.{u4} α) (Set.{u3} β) (Set.smul.{u4, u3} α β _inst_1)) (s i j) t)))
+Case conversion may be inaccurate. Consider using '#align set.Inter₂_smul_subset Set.iInter₂_smul_subsetₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 @[to_additive]
-theorem interᵢ₂_smul_subset (s : ∀ i, κ i → Set α) (t : Set β) :
+theorem iInter₂_smul_subset (s : ∀ i, κ i → Set α) (t : Set β) :
     (⋂ (i) (j), s i j) • t ⊆ ⋂ (i) (j), s i j • t :=
-  image2_interᵢ₂_subset_left _ _ _
-#align set.Inter₂_smul_subset Set.interᵢ₂_smul_subset
-#align set.Inter₂_vadd_subset Set.interᵢ₂_vadd_subset
+  image2_iInter₂_subset_left _ _ _
+#align set.Inter₂_smul_subset Set.iInter₂_smul_subset
+#align set.Inter₂_vadd_subset Set.iInter₂_vadd_subset
 
-/- warning: set.smul_Inter₂_subset -> Set.smul_interᵢ₂_subset is a dubious translation:
+/- warning: set.smul_Inter₂_subset -> Set.smul_iInter₂_subset is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {κ : ι -> Sort.{u4}} [_inst_1 : SMul.{u1, u2} α β] (s : Set.{u1} α) (t : forall (i : ι), (κ i) -> (Set.{u2} β)), HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s (Set.interᵢ.{u2, u3} β ι (fun (i : ι) => Set.interᵢ.{u2, u4} β (κ i) (fun (j : κ i) => t i j)))) (Set.interᵢ.{u2, u3} β ι (fun (i : ι) => Set.interᵢ.{u2, u4} β (κ i) (fun (j : κ i) => SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s (t i j))))
+  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {κ : ι -> Sort.{u4}} [_inst_1 : SMul.{u1, u2} α β] (s : Set.{u1} α) (t : forall (i : ι), (κ i) -> (Set.{u2} β)), HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s (Set.iInter.{u2, u3} β ι (fun (i : ι) => Set.iInter.{u2, u4} β (κ i) (fun (j : κ i) => t i j)))) (Set.iInter.{u2, u3} β ι (fun (i : ι) => Set.iInter.{u2, u4} β (κ i) (fun (j : κ i) => SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s (t i j))))
 but is expected to have type
-  forall {α : Type.{u4}} {β : Type.{u3}} {ι : Sort.{u2}} {κ : ι -> Sort.{u1}} [_inst_1 : SMul.{u4, u3} α β] (s : Set.{u4} α) (t : forall (i : ι), (κ i) -> (Set.{u3} β)), HasSubset.Subset.{u3} (Set.{u3} β) (Set.instHasSubsetSet.{u3} β) (HSMul.hSMul.{u4, u3, u3} (Set.{u4} α) (Set.{u3} β) (Set.{u3} β) (instHSMul.{u4, u3} (Set.{u4} α) (Set.{u3} β) (Set.smul.{u4, u3} α β _inst_1)) s (Set.interᵢ.{u3, u2} β ι (fun (i : ι) => Set.interᵢ.{u3, u1} β (κ i) (fun (j : κ i) => t i j)))) (Set.interᵢ.{u3, u2} β ι (fun (i : ι) => Set.interᵢ.{u3, u1} β (κ i) (fun (j : κ i) => HSMul.hSMul.{u4, u3, u3} (Set.{u4} α) (Set.{u3} β) (Set.{u3} β) (instHSMul.{u4, u3} (Set.{u4} α) (Set.{u3} β) (Set.smul.{u4, u3} α β _inst_1)) s (t i j))))
-Case conversion may be inaccurate. Consider using '#align set.smul_Inter₂_subset Set.smul_interᵢ₂_subsetₓ'. -/
+  forall {α : Type.{u4}} {β : Type.{u3}} {ι : Sort.{u2}} {κ : ι -> Sort.{u1}} [_inst_1 : SMul.{u4, u3} α β] (s : Set.{u4} α) (t : forall (i : ι), (κ i) -> (Set.{u3} β)), HasSubset.Subset.{u3} (Set.{u3} β) (Set.instHasSubsetSet.{u3} β) (HSMul.hSMul.{u4, u3, u3} (Set.{u4} α) (Set.{u3} β) (Set.{u3} β) (instHSMul.{u4, u3} (Set.{u4} α) (Set.{u3} β) (Set.smul.{u4, u3} α β _inst_1)) s (Set.iInter.{u3, u2} β ι (fun (i : ι) => Set.iInter.{u3, u1} β (κ i) (fun (j : κ i) => t i j)))) (Set.iInter.{u3, u2} β ι (fun (i : ι) => Set.iInter.{u3, u1} β (κ i) (fun (j : κ i) => HSMul.hSMul.{u4, u3, u3} (Set.{u4} α) (Set.{u3} β) (Set.{u3} β) (instHSMul.{u4, u3} (Set.{u4} α) (Set.{u3} β) (Set.smul.{u4, u3} α β _inst_1)) s (t i j))))
+Case conversion may be inaccurate. Consider using '#align set.smul_Inter₂_subset Set.smul_iInter₂_subsetₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 @[to_additive]
-theorem smul_interᵢ₂_subset (s : Set α) (t : ∀ i, κ i → Set β) :
+theorem smul_iInter₂_subset (s : Set α) (t : ∀ i, κ i → Set β) :
     (s • ⋂ (i) (j), t i j) ⊆ ⋂ (i) (j), s • t i j :=
-  image2_interᵢ₂_subset_right _ _ _
-#align set.smul_Inter₂_subset Set.smul_interᵢ₂_subset
-#align set.vadd_Inter₂_subset Set.vadd_interᵢ₂_subset
+  image2_iInter₂_subset_right _ _ _
+#align set.smul_Inter₂_subset Set.smul_iInter₂_subset
+#align set.vadd_Inter₂_subset Set.vadd_iInter₂_subset
 
 /- warning: set.smul_set_subset_smul -> Set.smul_set_subset_smul is a dubious translation:
 lean 3 declaration is
@@ -458,17 +458,17 @@ theorem smul_set_subset_smul {s : Set α} : a ∈ s → a • t ⊆ s • t :=
 #align set.smul_set_subset_smul Set.smul_set_subset_smul
 #align set.vadd_set_subset_vadd Set.vadd_set_subset_vadd
 
-/- warning: set.bUnion_smul_set -> Set.unionᵢ_smul_set is a dubious translation:
+/- warning: set.bUnion_smul_set -> Set.iUnion_smul_set is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SMul.{u1, u2} α β] (s : Set.{u1} α) (t : Set.{u2} β), Eq.{succ u2} (Set.{u2} β) (Set.unionᵢ.{u2, succ u1} β α (fun (a : α) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) a s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) a s) => SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1) a t))) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s t)
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SMul.{u1, u2} α β] (s : Set.{u1} α) (t : Set.{u2} β), Eq.{succ u2} (Set.{u2} β) (Set.iUnion.{u2, succ u1} β α (fun (a : α) => Set.iUnion.{u2, 0} β (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) a s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) a s) => SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1) a t))) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s t)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : SMul.{u2, u1} α β] (s : Set.{u2} α) (t : Set.{u1} β), Eq.{succ u1} (Set.{u1} β) (Set.unionᵢ.{u1, succ u2} β α (fun (a : α) => Set.unionᵢ.{u1, 0} β (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) a s) (fun (H : Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) a s) => HSMul.hSMul.{u2, u1, u1} α (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} α (Set.{u1} β) (Set.smulSet.{u2, u1} α β _inst_1)) a t))) (HSMul.hSMul.{u2, u1, u1} (Set.{u2} α) (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.smul.{u2, u1} α β _inst_1)) s t)
-Case conversion may be inaccurate. Consider using '#align set.bUnion_smul_set Set.unionᵢ_smul_setₓ'. -/
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : SMul.{u2, u1} α β] (s : Set.{u2} α) (t : Set.{u1} β), Eq.{succ u1} (Set.{u1} β) (Set.iUnion.{u1, succ u2} β α (fun (a : α) => Set.iUnion.{u1, 0} β (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) a s) (fun (H : Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) a s) => HSMul.hSMul.{u2, u1, u1} α (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} α (Set.{u1} β) (Set.smulSet.{u2, u1} α β _inst_1)) a t))) (HSMul.hSMul.{u2, u1, u1} (Set.{u2} α) (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.smul.{u2, u1} α β _inst_1)) s t)
+Case conversion may be inaccurate. Consider using '#align set.bUnion_smul_set Set.iUnion_smul_setₓ'. -/
 @[simp, to_additive]
-theorem unionᵢ_smul_set (s : Set α) (t : Set β) : (⋃ a ∈ s, a • t) = s • t :=
-  unionᵢ_image_left _
-#align set.bUnion_smul_set Set.unionᵢ_smul_set
-#align set.bUnion_vadd_set Set.unionᵢ_vadd_set
+theorem iUnion_smul_set (s : Set α) (t : Set β) : (⋃ a ∈ s, a • t) = s • t :=
+  iUnion_image_left _
+#align set.bUnion_smul_set Set.iUnion_smul_set
+#align set.bUnion_vadd_set Set.iUnion_vadd_set
 
 end SMul
 
@@ -574,57 +574,57 @@ theorem smul_set_inter_subset : a • (t₁ ∩ t₂) ⊆ a • t₁ ∩ a • t
 
 /- warning: set.smul_set_Union -> Set.smul_set_Union is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} [_inst_1 : SMul.{u1, u2} α β] (a : α) (s : ι -> (Set.{u2} β)), Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1) a (Set.unionᵢ.{u2, u3} β ι (fun (i : ι) => s i))) (Set.unionᵢ.{u2, u3} β ι (fun (i : ι) => SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1) a (s i)))
+  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} [_inst_1 : SMul.{u1, u2} α β] (a : α) (s : ι -> (Set.{u2} β)), Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1) a (Set.iUnion.{u2, u3} β ι (fun (i : ι) => s i))) (Set.iUnion.{u2, u3} β ι (fun (i : ι) => SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1) a (s i)))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} {ι : Sort.{u1}} [_inst_1 : SMul.{u2, u3} α β] (a : α) (s : ι -> (Set.{u3} β)), Eq.{succ u3} (Set.{u3} β) (HSMul.hSMul.{u2, u3, u3} α (Set.{u3} β) (Set.{u3} β) (instHSMul.{u2, u3} α (Set.{u3} β) (Set.smulSet.{u2, u3} α β _inst_1)) a (Set.unionᵢ.{u3, u1} β ι (fun (i : ι) => s i))) (Set.unionᵢ.{u3, u1} β ι (fun (i : ι) => HSMul.hSMul.{u2, u3, u3} α (Set.{u3} β) (Set.{u3} β) (instHSMul.{u2, u3} α (Set.{u3} β) (Set.smulSet.{u2, u3} α β _inst_1)) a (s i)))
+  forall {α : Type.{u2}} {β : Type.{u3}} {ι : Sort.{u1}} [_inst_1 : SMul.{u2, u3} α β] (a : α) (s : ι -> (Set.{u3} β)), Eq.{succ u3} (Set.{u3} β) (HSMul.hSMul.{u2, u3, u3} α (Set.{u3} β) (Set.{u3} β) (instHSMul.{u2, u3} α (Set.{u3} β) (Set.smulSet.{u2, u3} α β _inst_1)) a (Set.iUnion.{u3, u1} β ι (fun (i : ι) => s i))) (Set.iUnion.{u3, u1} β ι (fun (i : ι) => HSMul.hSMul.{u2, u3, u3} α (Set.{u3} β) (Set.{u3} β) (instHSMul.{u2, u3} α (Set.{u3} β) (Set.smulSet.{u2, u3} α β _inst_1)) a (s i)))
 Case conversion may be inaccurate. Consider using '#align set.smul_set_Union Set.smul_set_Unionₓ'. -/
 @[to_additive]
 theorem smul_set_Union (a : α) (s : ι → Set β) : (a • ⋃ i, s i) = ⋃ i, a • s i :=
-  image_unionᵢ
+  image_iUnion
 #align set.smul_set_Union Set.smul_set_Union
 #align set.vadd_set_Union Set.vadd_set_Union
 
-/- warning: set.smul_set_Union₂ -> Set.smul_set_unionᵢ₂ is a dubious translation:
+/- warning: set.smul_set_Union₂ -> Set.smul_set_iUnion₂ is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {κ : ι -> Sort.{u4}} [_inst_1 : SMul.{u1, u2} α β] (a : α) (s : forall (i : ι), (κ i) -> (Set.{u2} β)), Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1) a (Set.unionᵢ.{u2, u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, u4} β (κ i) (fun (j : κ i) => s i j)))) (Set.unionᵢ.{u2, u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, u4} β (κ i) (fun (j : κ i) => SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1) a (s i j))))
+  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {κ : ι -> Sort.{u4}} [_inst_1 : SMul.{u1, u2} α β] (a : α) (s : forall (i : ι), (κ i) -> (Set.{u2} β)), Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1) a (Set.iUnion.{u2, u3} β ι (fun (i : ι) => Set.iUnion.{u2, u4} β (κ i) (fun (j : κ i) => s i j)))) (Set.iUnion.{u2, u3} β ι (fun (i : ι) => Set.iUnion.{u2, u4} β (κ i) (fun (j : κ i) => SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1) a (s i j))))
 but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u4}} {ι : Sort.{u2}} {κ : ι -> Sort.{u1}} [_inst_1 : SMul.{u3, u4} α β] (a : α) (s : forall (i : ι), (κ i) -> (Set.{u4} β)), Eq.{succ u4} (Set.{u4} β) (HSMul.hSMul.{u3, u4, u4} α (Set.{u4} β) (Set.{u4} β) (instHSMul.{u3, u4} α (Set.{u4} β) (Set.smulSet.{u3, u4} α β _inst_1)) a (Set.unionᵢ.{u4, u2} β ι (fun (i : ι) => Set.unionᵢ.{u4, u1} β (κ i) (fun (j : κ i) => s i j)))) (Set.unionᵢ.{u4, u2} β ι (fun (i : ι) => Set.unionᵢ.{u4, u1} β (κ i) (fun (j : κ i) => HSMul.hSMul.{u3, u4, u4} α (Set.{u4} β) (Set.{u4} β) (instHSMul.{u3, u4} α (Set.{u4} β) (Set.smulSet.{u3, u4} α β _inst_1)) a (s i j))))
-Case conversion may be inaccurate. Consider using '#align set.smul_set_Union₂ Set.smul_set_unionᵢ₂ₓ'. -/
+  forall {α : Type.{u3}} {β : Type.{u4}} {ι : Sort.{u2}} {κ : ι -> Sort.{u1}} [_inst_1 : SMul.{u3, u4} α β] (a : α) (s : forall (i : ι), (κ i) -> (Set.{u4} β)), Eq.{succ u4} (Set.{u4} β) (HSMul.hSMul.{u3, u4, u4} α (Set.{u4} β) (Set.{u4} β) (instHSMul.{u3, u4} α (Set.{u4} β) (Set.smulSet.{u3, u4} α β _inst_1)) a (Set.iUnion.{u4, u2} β ι (fun (i : ι) => Set.iUnion.{u4, u1} β (κ i) (fun (j : κ i) => s i j)))) (Set.iUnion.{u4, u2} β ι (fun (i : ι) => Set.iUnion.{u4, u1} β (κ i) (fun (j : κ i) => HSMul.hSMul.{u3, u4, u4} α (Set.{u4} β) (Set.{u4} β) (instHSMul.{u3, u4} α (Set.{u4} β) (Set.smulSet.{u3, u4} α β _inst_1)) a (s i j))))
+Case conversion may be inaccurate. Consider using '#align set.smul_set_Union₂ Set.smul_set_iUnion₂ₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 @[to_additive]
-theorem smul_set_unionᵢ₂ (a : α) (s : ∀ i, κ i → Set β) :
+theorem smul_set_iUnion₂ (a : α) (s : ∀ i, κ i → Set β) :
     (a • ⋃ (i) (j), s i j) = ⋃ (i) (j), a • s i j :=
-  image_unionᵢ₂ _ _
-#align set.smul_set_Union₂ Set.smul_set_unionᵢ₂
-#align set.vadd_set_Union₂ Set.vadd_set_unionᵢ₂
+  image_iUnion₂ _ _
+#align set.smul_set_Union₂ Set.smul_set_iUnion₂
+#align set.vadd_set_Union₂ Set.vadd_set_iUnion₂
 
-/- warning: set.smul_set_Inter_subset -> Set.smul_set_interᵢ_subset is a dubious translation:
+/- warning: set.smul_set_Inter_subset -> Set.smul_set_iInter_subset is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} [_inst_1 : SMul.{u1, u2} α β] (a : α) (t : ι -> (Set.{u2} β)), HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1) a (Set.interᵢ.{u2, u3} β ι (fun (i : ι) => t i))) (Set.interᵢ.{u2, u3} β ι (fun (i : ι) => SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1) a (t i)))
+  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} [_inst_1 : SMul.{u1, u2} α β] (a : α) (t : ι -> (Set.{u2} β)), HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1) a (Set.iInter.{u2, u3} β ι (fun (i : ι) => t i))) (Set.iInter.{u2, u3} β ι (fun (i : ι) => SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1) a (t i)))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} {ι : Sort.{u1}} [_inst_1 : SMul.{u2, u3} α β] (a : α) (t : ι -> (Set.{u3} β)), HasSubset.Subset.{u3} (Set.{u3} β) (Set.instHasSubsetSet.{u3} β) (HSMul.hSMul.{u2, u3, u3} α (Set.{u3} β) (Set.{u3} β) (instHSMul.{u2, u3} α (Set.{u3} β) (Set.smulSet.{u2, u3} α β _inst_1)) a (Set.interᵢ.{u3, u1} β ι (fun (i : ι) => t i))) (Set.interᵢ.{u3, u1} β ι (fun (i : ι) => HSMul.hSMul.{u2, u3, u3} α (Set.{u3} β) (Set.{u3} β) (instHSMul.{u2, u3} α (Set.{u3} β) (Set.smulSet.{u2, u3} α β _inst_1)) a (t i)))
-Case conversion may be inaccurate. Consider using '#align set.smul_set_Inter_subset Set.smul_set_interᵢ_subsetₓ'. -/
+  forall {α : Type.{u2}} {β : Type.{u3}} {ι : Sort.{u1}} [_inst_1 : SMul.{u2, u3} α β] (a : α) (t : ι -> (Set.{u3} β)), HasSubset.Subset.{u3} (Set.{u3} β) (Set.instHasSubsetSet.{u3} β) (HSMul.hSMul.{u2, u3, u3} α (Set.{u3} β) (Set.{u3} β) (instHSMul.{u2, u3} α (Set.{u3} β) (Set.smulSet.{u2, u3} α β _inst_1)) a (Set.iInter.{u3, u1} β ι (fun (i : ι) => t i))) (Set.iInter.{u3, u1} β ι (fun (i : ι) => HSMul.hSMul.{u2, u3, u3} α (Set.{u3} β) (Set.{u3} β) (instHSMul.{u2, u3} α (Set.{u3} β) (Set.smulSet.{u2, u3} α β _inst_1)) a (t i)))
+Case conversion may be inaccurate. Consider using '#align set.smul_set_Inter_subset Set.smul_set_iInter_subsetₓ'. -/
 @[to_additive]
-theorem smul_set_interᵢ_subset (a : α) (t : ι → Set β) : (a • ⋂ i, t i) ⊆ ⋂ i, a • t i :=
-  image_interᵢ_subset _ _
-#align set.smul_set_Inter_subset Set.smul_set_interᵢ_subset
-#align set.vadd_set_Inter_subset Set.vadd_set_interᵢ_subset
+theorem smul_set_iInter_subset (a : α) (t : ι → Set β) : (a • ⋂ i, t i) ⊆ ⋂ i, a • t i :=
+  image_iInter_subset _ _
+#align set.smul_set_Inter_subset Set.smul_set_iInter_subset
+#align set.vadd_set_Inter_subset Set.vadd_set_iInter_subset
 
-/- warning: set.smul_set_Inter₂_subset -> Set.smul_set_interᵢ₂_subset is a dubious translation:
+/- warning: set.smul_set_Inter₂_subset -> Set.smul_set_iInter₂_subset is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {κ : ι -> Sort.{u4}} [_inst_1 : SMul.{u1, u2} α β] (a : α) (t : forall (i : ι), (κ i) -> (Set.{u2} β)), HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1) a (Set.interᵢ.{u2, u3} β ι (fun (i : ι) => Set.interᵢ.{u2, u4} β (κ i) (fun (j : κ i) => t i j)))) (Set.interᵢ.{u2, u3} β ι (fun (i : ι) => Set.interᵢ.{u2, u4} β (κ i) (fun (j : κ i) => SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1) a (t i j))))
+  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {κ : ι -> Sort.{u4}} [_inst_1 : SMul.{u1, u2} α β] (a : α) (t : forall (i : ι), (κ i) -> (Set.{u2} β)), HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1) a (Set.iInter.{u2, u3} β ι (fun (i : ι) => Set.iInter.{u2, u4} β (κ i) (fun (j : κ i) => t i j)))) (Set.iInter.{u2, u3} β ι (fun (i : ι) => Set.iInter.{u2, u4} β (κ i) (fun (j : κ i) => SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1) a (t i j))))
 but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u4}} {ι : Sort.{u2}} {κ : ι -> Sort.{u1}} [_inst_1 : SMul.{u3, u4} α β] (a : α) (t : forall (i : ι), (κ i) -> (Set.{u4} β)), HasSubset.Subset.{u4} (Set.{u4} β) (Set.instHasSubsetSet.{u4} β) (HSMul.hSMul.{u3, u4, u4} α (Set.{u4} β) (Set.{u4} β) (instHSMul.{u3, u4} α (Set.{u4} β) (Set.smulSet.{u3, u4} α β _inst_1)) a (Set.interᵢ.{u4, u2} β ι (fun (i : ι) => Set.interᵢ.{u4, u1} β (κ i) (fun (j : κ i) => t i j)))) (Set.interᵢ.{u4, u2} β ι (fun (i : ι) => Set.interᵢ.{u4, u1} β (κ i) (fun (j : κ i) => HSMul.hSMul.{u3, u4, u4} α (Set.{u4} β) (Set.{u4} β) (instHSMul.{u3, u4} α (Set.{u4} β) (Set.smulSet.{u3, u4} α β _inst_1)) a (t i j))))
-Case conversion may be inaccurate. Consider using '#align set.smul_set_Inter₂_subset Set.smul_set_interᵢ₂_subsetₓ'. -/
+  forall {α : Type.{u3}} {β : Type.{u4}} {ι : Sort.{u2}} {κ : ι -> Sort.{u1}} [_inst_1 : SMul.{u3, u4} α β] (a : α) (t : forall (i : ι), (κ i) -> (Set.{u4} β)), HasSubset.Subset.{u4} (Set.{u4} β) (Set.instHasSubsetSet.{u4} β) (HSMul.hSMul.{u3, u4, u4} α (Set.{u4} β) (Set.{u4} β) (instHSMul.{u3, u4} α (Set.{u4} β) (Set.smulSet.{u3, u4} α β _inst_1)) a (Set.iInter.{u4, u2} β ι (fun (i : ι) => Set.iInter.{u4, u1} β (κ i) (fun (j : κ i) => t i j)))) (Set.iInter.{u4, u2} β ι (fun (i : ι) => Set.iInter.{u4, u1} β (κ i) (fun (j : κ i) => HSMul.hSMul.{u3, u4, u4} α (Set.{u4} β) (Set.{u4} β) (instHSMul.{u3, u4} α (Set.{u4} β) (Set.smulSet.{u3, u4} α β _inst_1)) a (t i j))))
+Case conversion may be inaccurate. Consider using '#align set.smul_set_Inter₂_subset Set.smul_set_iInter₂_subsetₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 @[to_additive]
-theorem smul_set_interᵢ₂_subset (a : α) (t : ∀ i, κ i → Set β) :
+theorem smul_set_iInter₂_subset (a : α) (t : ∀ i, κ i → Set β) :
     (a • ⋂ (i) (j), t i j) ⊆ ⋂ (i) (j), a • t i j :=
-  image_interᵢ₂_subset _ _
-#align set.smul_set_Inter₂_subset Set.smul_set_interᵢ₂_subset
-#align set.vadd_set_Inter₂_subset Set.vadd_set_interᵢ₂_subset
+  image_iInter₂_subset _ _
+#align set.smul_set_Inter₂_subset Set.smul_set_iInter₂_subset
+#align set.vadd_set_Inter₂_subset Set.vadd_set_iInter₂_subset
 
 #print Set.Nonempty.smul_set /-
 @[to_additive]
@@ -648,12 +648,12 @@ theorem op_smul_set_subset_mul : a ∈ t → op a • s ⊆ s * t :=
 #align set.op_vadd_set_subset_add Set.op_vadd_set_subset_add
 -/
 
-#print Set.unionᵢ_op_smul_set /-
+#print Set.iUnion_op_smul_set /-
 @[simp, to_additive]
-theorem unionᵢ_op_smul_set (s t : Set α) : (⋃ a ∈ t, op a • s) = s * t :=
-  unionᵢ_image_right _
-#align set.bUnion_op_smul_set Set.unionᵢ_op_smul_set
-#align set.bUnion_op_vadd_set Set.unionᵢ_op_vadd_set
+theorem iUnion_op_smul_set (s t : Set α) : (⋃ a ∈ t, op a • s) = s * t :=
+  iUnion_image_right _
+#align set.bUnion_op_smul_set Set.iUnion_op_smul_set
+#align set.bUnion_op_vadd_set Set.iUnion_op_vadd_set
 -/
 
 #print Set.mul_subset_iff_left /-
@@ -1091,117 +1091,117 @@ theorem union_vsub_inter_subset_union : s₁ ∪ s₂ -ᵥ t₁ ∩ t₂ ⊆ s
   image2_union_inter_subset_union
 #align set.union_vsub_inter_subset_union Set.union_vsub_inter_subset_union
 
-/- warning: set.Union_vsub_left_image -> Set.unionᵢ_vsub_left_image is a dubious translation:
+/- warning: set.Union_vsub_left_image -> Set.iUnion_vsub_left_image is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : VSub.{u1, u2} α β] {s : Set.{u2} β} {t : Set.{u2} β}, Eq.{succ u1} (Set.{u1} α) (Set.unionᵢ.{u1, succ u2} α β (fun (a : β) => Set.unionᵢ.{u1, 0} α (Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) a s) (fun (H : Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) a s) => Set.image.{u2, u1} β α (VSub.vsub.{u1, u2} α β _inst_1 a) t))) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s t)
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : VSub.{u1, u2} α β] {s : Set.{u2} β} {t : Set.{u2} β}, Eq.{succ u1} (Set.{u1} α) (Set.iUnion.{u1, succ u2} α β (fun (a : β) => Set.iUnion.{u1, 0} α (Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) a s) (fun (H : Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) a s) => Set.image.{u2, u1} β α (VSub.vsub.{u1, u2} α β _inst_1 a) t))) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s t)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : VSub.{u2, u1} α β] {s : Set.{u1} β} {t : Set.{u1} β}, Eq.{succ u2} (Set.{u2} α) (Set.unionᵢ.{u2, succ u1} α β (fun (a : β) => Set.unionᵢ.{u2, 0} α (Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) a s) (fun (H : Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) a s) => Set.image.{u1, u2} β α ((fun (x._@.Mathlib.Data.Set.Pointwise.SMul._hyg.6862 : β) (x._@.Mathlib.Data.Set.Pointwise.SMul._hyg.6864 : β) => VSub.vsub.{u2, u1} α β _inst_1 x._@.Mathlib.Data.Set.Pointwise.SMul._hyg.6862 x._@.Mathlib.Data.Set.Pointwise.SMul._hyg.6864) a) t))) (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) s t)
-Case conversion may be inaccurate. Consider using '#align set.Union_vsub_left_image Set.unionᵢ_vsub_left_imageₓ'. -/
-theorem unionᵢ_vsub_left_image : (⋃ a ∈ s, (· -ᵥ ·) a '' t) = s -ᵥ t :=
-  unionᵢ_image_left _
-#align set.Union_vsub_left_image Set.unionᵢ_vsub_left_image
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : VSub.{u2, u1} α β] {s : Set.{u1} β} {t : Set.{u1} β}, Eq.{succ u2} (Set.{u2} α) (Set.iUnion.{u2, succ u1} α β (fun (a : β) => Set.iUnion.{u2, 0} α (Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) a s) (fun (H : Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) a s) => Set.image.{u1, u2} β α ((fun (x._@.Mathlib.Data.Set.Pointwise.SMul._hyg.6862 : β) (x._@.Mathlib.Data.Set.Pointwise.SMul._hyg.6864 : β) => VSub.vsub.{u2, u1} α β _inst_1 x._@.Mathlib.Data.Set.Pointwise.SMul._hyg.6862 x._@.Mathlib.Data.Set.Pointwise.SMul._hyg.6864) a) t))) (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) s t)
+Case conversion may be inaccurate. Consider using '#align set.Union_vsub_left_image Set.iUnion_vsub_left_imageₓ'. -/
+theorem iUnion_vsub_left_image : (⋃ a ∈ s, (· -ᵥ ·) a '' t) = s -ᵥ t :=
+  iUnion_image_left _
+#align set.Union_vsub_left_image Set.iUnion_vsub_left_image
 
-/- warning: set.Union_vsub_right_image -> Set.unionᵢ_vsub_right_image is a dubious translation:
+/- warning: set.Union_vsub_right_image -> Set.iUnion_vsub_right_image is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : VSub.{u1, u2} α β] {s : Set.{u2} β} {t : Set.{u2} β}, Eq.{succ u1} (Set.{u1} α) (Set.unionᵢ.{u1, succ u2} α β (fun (a : β) => Set.unionᵢ.{u1, 0} α (Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) a t) (fun (H : Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) a t) => Set.image.{u2, u1} β α (fun (_x : β) => VSub.vsub.{u1, u2} α β _inst_1 _x a) s))) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s t)
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : VSub.{u1, u2} α β] {s : Set.{u2} β} {t : Set.{u2} β}, Eq.{succ u1} (Set.{u1} α) (Set.iUnion.{u1, succ u2} α β (fun (a : β) => Set.iUnion.{u1, 0} α (Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) a t) (fun (H : Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) a t) => Set.image.{u2, u1} β α (fun (_x : β) => VSub.vsub.{u1, u2} α β _inst_1 _x a) s))) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s t)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : VSub.{u2, u1} α β] {s : Set.{u1} β} {t : Set.{u1} β}, Eq.{succ u2} (Set.{u2} α) (Set.unionᵢ.{u2, succ u1} α β (fun (a : β) => Set.unionᵢ.{u2, 0} α (Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) a t) (fun (H : Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) a t) => Set.image.{u1, u2} β α (fun (_x : β) => VSub.vsub.{u2, u1} α β _inst_1 _x a) s))) (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) s t)
-Case conversion may be inaccurate. Consider using '#align set.Union_vsub_right_image Set.unionᵢ_vsub_right_imageₓ'. -/
-theorem unionᵢ_vsub_right_image : (⋃ a ∈ t, (· -ᵥ a) '' s) = s -ᵥ t :=
-  unionᵢ_image_right _
-#align set.Union_vsub_right_image Set.unionᵢ_vsub_right_image
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : VSub.{u2, u1} α β] {s : Set.{u1} β} {t : Set.{u1} β}, Eq.{succ u2} (Set.{u2} α) (Set.iUnion.{u2, succ u1} α β (fun (a : β) => Set.iUnion.{u2, 0} α (Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) a t) (fun (H : Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) a t) => Set.image.{u1, u2} β α (fun (_x : β) => VSub.vsub.{u2, u1} α β _inst_1 _x a) s))) (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) s t)
+Case conversion may be inaccurate. Consider using '#align set.Union_vsub_right_image Set.iUnion_vsub_right_imageₓ'. -/
+theorem iUnion_vsub_right_image : (⋃ a ∈ t, (· -ᵥ a) '' s) = s -ᵥ t :=
+  iUnion_image_right _
+#align set.Union_vsub_right_image Set.iUnion_vsub_right_image
 
-/- warning: set.Union_vsub -> Set.unionᵢ_vsub is a dubious translation:
+/- warning: set.Union_vsub -> Set.iUnion_vsub is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} [_inst_1 : VSub.{u1, u2} α β] (s : ι -> (Set.{u2} β)) (t : Set.{u2} β), Eq.{succ u1} (Set.{u1} α) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) (Set.unionᵢ.{u2, u3} β ι (fun (i : ι) => s i)) t) (Set.unionᵢ.{u1, u3} α ι (fun (i : ι) => VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) (s i) t))
+  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} [_inst_1 : VSub.{u1, u2} α β] (s : ι -> (Set.{u2} β)) (t : Set.{u2} β), Eq.{succ u1} (Set.{u1} α) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) (Set.iUnion.{u2, u3} β ι (fun (i : ι) => s i)) t) (Set.iUnion.{u1, u3} α ι (fun (i : ι) => VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) (s i) t))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} {ι : Sort.{u1}} [_inst_1 : VSub.{u2, u3} α β] (s : ι -> (Set.{u3} β)) (t : Set.{u3} β), Eq.{succ u2} (Set.{u2} α) (VSub.vsub.{u2, u3} (Set.{u2} α) (Set.{u3} β) (Set.vsub.{u2, u3} α β _inst_1) (Set.unionᵢ.{u3, u1} β ι (fun (i : ι) => s i)) t) (Set.unionᵢ.{u2, u1} α ι (fun (i : ι) => VSub.vsub.{u2, u3} (Set.{u2} α) (Set.{u3} β) (Set.vsub.{u2, u3} α β _inst_1) (s i) t))
-Case conversion may be inaccurate. Consider using '#align set.Union_vsub Set.unionᵢ_vsubₓ'. -/
-theorem unionᵢ_vsub (s : ι → Set β) (t : Set β) : (⋃ i, s i) -ᵥ t = ⋃ i, s i -ᵥ t :=
-  image2_unionᵢ_left _ _ _
-#align set.Union_vsub Set.unionᵢ_vsub
+  forall {α : Type.{u2}} {β : Type.{u3}} {ι : Sort.{u1}} [_inst_1 : VSub.{u2, u3} α β] (s : ι -> (Set.{u3} β)) (t : Set.{u3} β), Eq.{succ u2} (Set.{u2} α) (VSub.vsub.{u2, u3} (Set.{u2} α) (Set.{u3} β) (Set.vsub.{u2, u3} α β _inst_1) (Set.iUnion.{u3, u1} β ι (fun (i : ι) => s i)) t) (Set.iUnion.{u2, u1} α ι (fun (i : ι) => VSub.vsub.{u2, u3} (Set.{u2} α) (Set.{u3} β) (Set.vsub.{u2, u3} α β _inst_1) (s i) t))
+Case conversion may be inaccurate. Consider using '#align set.Union_vsub Set.iUnion_vsubₓ'. -/
+theorem iUnion_vsub (s : ι → Set β) (t : Set β) : (⋃ i, s i) -ᵥ t = ⋃ i, s i -ᵥ t :=
+  image2_iUnion_left _ _ _
+#align set.Union_vsub Set.iUnion_vsub
 
-/- warning: set.vsub_Union -> Set.vsub_unionᵢ is a dubious translation:
+/- warning: set.vsub_Union -> Set.vsub_iUnion is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} [_inst_1 : VSub.{u1, u2} α β] (s : Set.{u2} β) (t : ι -> (Set.{u2} β)), Eq.{succ u1} (Set.{u1} α) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s (Set.unionᵢ.{u2, u3} β ι (fun (i : ι) => t i))) (Set.unionᵢ.{u1, u3} α ι (fun (i : ι) => VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s (t i)))
+  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} [_inst_1 : VSub.{u1, u2} α β] (s : Set.{u2} β) (t : ι -> (Set.{u2} β)), Eq.{succ u1} (Set.{u1} α) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s (Set.iUnion.{u2, u3} β ι (fun (i : ι) => t i))) (Set.iUnion.{u1, u3} α ι (fun (i : ι) => VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s (t i)))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} {ι : Sort.{u1}} [_inst_1 : VSub.{u2, u3} α β] (s : Set.{u3} β) (t : ι -> (Set.{u3} β)), Eq.{succ u2} (Set.{u2} α) (VSub.vsub.{u2, u3} (Set.{u2} α) (Set.{u3} β) (Set.vsub.{u2, u3} α β _inst_1) s (Set.unionᵢ.{u3, u1} β ι (fun (i : ι) => t i))) (Set.unionᵢ.{u2, u1} α ι (fun (i : ι) => VSub.vsub.{u2, u3} (Set.{u2} α) (Set.{u3} β) (Set.vsub.{u2, u3} α β _inst_1) s (t i)))
-Case conversion may be inaccurate. Consider using '#align set.vsub_Union Set.vsub_unionᵢₓ'. -/
-theorem vsub_unionᵢ (s : Set β) (t : ι → Set β) : (s -ᵥ ⋃ i, t i) = ⋃ i, s -ᵥ t i :=
-  image2_unionᵢ_right _ _ _
-#align set.vsub_Union Set.vsub_unionᵢ
+  forall {α : Type.{u2}} {β : Type.{u3}} {ι : Sort.{u1}} [_inst_1 : VSub.{u2, u3} α β] (s : Set.{u3} β) (t : ι -> (Set.{u3} β)), Eq.{succ u2} (Set.{u2} α) (VSub.vsub.{u2, u3} (Set.{u2} α) (Set.{u3} β) (Set.vsub.{u2, u3} α β _inst_1) s (Set.iUnion.{u3, u1} β ι (fun (i : ι) => t i))) (Set.iUnion.{u2, u1} α ι (fun (i : ι) => VSub.vsub.{u2, u3} (Set.{u2} α) (Set.{u3} β) (Set.vsub.{u2, u3} α β _inst_1) s (t i)))
+Case conversion may be inaccurate. Consider using '#align set.vsub_Union Set.vsub_iUnionₓ'. -/
+theorem vsub_iUnion (s : Set β) (t : ι → Set β) : (s -ᵥ ⋃ i, t i) = ⋃ i, s -ᵥ t i :=
+  image2_iUnion_right _ _ _
+#align set.vsub_Union Set.vsub_iUnion
 
-/- warning: set.Union₂_vsub -> Set.unionᵢ₂_vsub is a dubious translation:
+/- warning: set.Union₂_vsub -> Set.iUnion₂_vsub is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {κ : ι -> Sort.{u4}} [_inst_1 : VSub.{u1, u2} α β] (s : forall (i : ι), (κ i) -> (Set.{u2} β)) (t : Set.{u2} β), Eq.{succ u1} (Set.{u1} α) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) (Set.unionᵢ.{u2, u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, u4} β (κ i) (fun (j : κ i) => s i j))) t) (Set.unionᵢ.{u1, u3} α ι (fun (i : ι) => Set.unionᵢ.{u1, u4} α (κ i) (fun (j : κ i) => VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) (s i j) t)))
+  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {κ : ι -> Sort.{u4}} [_inst_1 : VSub.{u1, u2} α β] (s : forall (i : ι), (κ i) -> (Set.{u2} β)) (t : Set.{u2} β), Eq.{succ u1} (Set.{u1} α) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) (Set.iUnion.{u2, u3} β ι (fun (i : ι) => Set.iUnion.{u2, u4} β (κ i) (fun (j : κ i) => s i j))) t) (Set.iUnion.{u1, u3} α ι (fun (i : ι) => Set.iUnion.{u1, u4} α (κ i) (fun (j : κ i) => VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) (s i j) t)))
 but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u4}} {ι : Sort.{u2}} {κ : ι -> Sort.{u1}} [_inst_1 : VSub.{u3, u4} α β] (s : forall (i : ι), (κ i) -> (Set.{u4} β)) (t : Set.{u4} β), Eq.{succ u3} (Set.{u3} α) (VSub.vsub.{u3, u4} (Set.{u3} α) (Set.{u4} β) (Set.vsub.{u3, u4} α β _inst_1) (Set.unionᵢ.{u4, u2} β ι (fun (i : ι) => Set.unionᵢ.{u4, u1} β (κ i) (fun (j : κ i) => s i j))) t) (Set.unionᵢ.{u3, u2} α ι (fun (i : ι) => Set.unionᵢ.{u3, u1} α (κ i) (fun (j : κ i) => VSub.vsub.{u3, u4} (Set.{u3} α) (Set.{u4} β) (Set.vsub.{u3, u4} α β _inst_1) (s i j) t)))
-Case conversion may be inaccurate. Consider using '#align set.Union₂_vsub Set.unionᵢ₂_vsubₓ'. -/
+  forall {α : Type.{u3}} {β : Type.{u4}} {ι : Sort.{u2}} {κ : ι -> Sort.{u1}} [_inst_1 : VSub.{u3, u4} α β] (s : forall (i : ι), (κ i) -> (Set.{u4} β)) (t : Set.{u4} β), Eq.{succ u3} (Set.{u3} α) (VSub.vsub.{u3, u4} (Set.{u3} α) (Set.{u4} β) (Set.vsub.{u3, u4} α β _inst_1) (Set.iUnion.{u4, u2} β ι (fun (i : ι) => Set.iUnion.{u4, u1} β (κ i) (fun (j : κ i) => s i j))) t) (Set.iUnion.{u3, u2} α ι (fun (i : ι) => Set.iUnion.{u3, u1} α (κ i) (fun (j : κ i) => VSub.vsub.{u3, u4} (Set.{u3} α) (Set.{u4} β) (Set.vsub.{u3, u4} α β _inst_1) (s i j) t)))
+Case conversion may be inaccurate. Consider using '#align set.Union₂_vsub Set.iUnion₂_vsubₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
-theorem unionᵢ₂_vsub (s : ∀ i, κ i → Set β) (t : Set β) :
+theorem iUnion₂_vsub (s : ∀ i, κ i → Set β) (t : Set β) :
     (⋃ (i) (j), s i j) -ᵥ t = ⋃ (i) (j), s i j -ᵥ t :=
-  image2_unionᵢ₂_left _ _ _
-#align set.Union₂_vsub Set.unionᵢ₂_vsub
+  image2_iUnion₂_left _ _ _
+#align set.Union₂_vsub Set.iUnion₂_vsub
 
-/- warning: set.vsub_Union₂ -> Set.vsub_unionᵢ₂ is a dubious translation:
+/- warning: set.vsub_Union₂ -> Set.vsub_iUnion₂ is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {κ : ι -> Sort.{u4}} [_inst_1 : VSub.{u1, u2} α β] (s : Set.{u2} β) (t : forall (i : ι), (κ i) -> (Set.{u2} β)), Eq.{succ u1} (Set.{u1} α) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s (Set.unionᵢ.{u2, u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, u4} β (κ i) (fun (j : κ i) => t i j)))) (Set.unionᵢ.{u1, u3} α ι (fun (i : ι) => Set.unionᵢ.{u1, u4} α (κ i) (fun (j : κ i) => VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s (t i j))))
+  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {κ : ι -> Sort.{u4}} [_inst_1 : VSub.{u1, u2} α β] (s : Set.{u2} β) (t : forall (i : ι), (κ i) -> (Set.{u2} β)), Eq.{succ u1} (Set.{u1} α) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s (Set.iUnion.{u2, u3} β ι (fun (i : ι) => Set.iUnion.{u2, u4} β (κ i) (fun (j : κ i) => t i j)))) (Set.iUnion.{u1, u3} α ι (fun (i : ι) => Set.iUnion.{u1, u4} α (κ i) (fun (j : κ i) => VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s (t i j))))
 but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u4}} {ι : Sort.{u2}} {κ : ι -> Sort.{u1}} [_inst_1 : VSub.{u3, u4} α β] (s : Set.{u4} β) (t : forall (i : ι), (κ i) -> (Set.{u4} β)), Eq.{succ u3} (Set.{u3} α) (VSub.vsub.{u3, u4} (Set.{u3} α) (Set.{u4} β) (Set.vsub.{u3, u4} α β _inst_1) s (Set.unionᵢ.{u4, u2} β ι (fun (i : ι) => Set.unionᵢ.{u4, u1} β (κ i) (fun (j : κ i) => t i j)))) (Set.unionᵢ.{u3, u2} α ι (fun (i : ι) => Set.unionᵢ.{u3, u1} α (κ i) (fun (j : κ i) => VSub.vsub.{u3, u4} (Set.{u3} α) (Set.{u4} β) (Set.vsub.{u3, u4} α β _inst_1) s (t i j))))
-Case conversion may be inaccurate. Consider using '#align set.vsub_Union₂ Set.vsub_unionᵢ₂ₓ'. -/
+  forall {α : Type.{u3}} {β : Type.{u4}} {ι : Sort.{u2}} {κ : ι -> Sort.{u1}} [_inst_1 : VSub.{u3, u4} α β] (s : Set.{u4} β) (t : forall (i : ι), (κ i) -> (Set.{u4} β)), Eq.{succ u3} (Set.{u3} α) (VSub.vsub.{u3, u4} (Set.{u3} α) (Set.{u4} β) (Set.vsub.{u3, u4} α β _inst_1) s (Set.iUnion.{u4, u2} β ι (fun (i : ι) => Set.iUnion.{u4, u1} β (κ i) (fun (j : κ i) => t i j)))) (Set.iUnion.{u3, u2} α ι (fun (i : ι) => Set.iUnion.{u3, u1} α (κ i) (fun (j : κ i) => VSub.vsub.{u3, u4} (Set.{u3} α) (Set.{u4} β) (Set.vsub.{u3, u4} α β _inst_1) s (t i j))))
+Case conversion may be inaccurate. Consider using '#align set.vsub_Union₂ Set.vsub_iUnion₂ₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
-theorem vsub_unionᵢ₂ (s : Set β) (t : ∀ i, κ i → Set β) :
+theorem vsub_iUnion₂ (s : Set β) (t : ∀ i, κ i → Set β) :
     (s -ᵥ ⋃ (i) (j), t i j) = ⋃ (i) (j), s -ᵥ t i j :=
-  image2_unionᵢ₂_right _ _ _
-#align set.vsub_Union₂ Set.vsub_unionᵢ₂
+  image2_iUnion₂_right _ _ _
+#align set.vsub_Union₂ Set.vsub_iUnion₂
 
-/- warning: set.Inter_vsub_subset -> Set.interᵢ_vsub_subset is a dubious translation:
+/- warning: set.Inter_vsub_subset -> Set.iInter_vsub_subset is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} [_inst_1 : VSub.{u1, u2} α β] (s : ι -> (Set.{u2} β)) (t : Set.{u2} β), HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) (Set.interᵢ.{u2, u3} β ι (fun (i : ι) => s i)) t) (Set.interᵢ.{u1, u3} α ι (fun (i : ι) => VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) (s i) t))
+  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} [_inst_1 : VSub.{u1, u2} α β] (s : ι -> (Set.{u2} β)) (t : Set.{u2} β), HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) (Set.iInter.{u2, u3} β ι (fun (i : ι) => s i)) t) (Set.iInter.{u1, u3} α ι (fun (i : ι) => VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) (s i) t))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} {ι : Sort.{u1}} [_inst_1 : VSub.{u2, u3} α β] (s : ι -> (Set.{u3} β)) (t : Set.{u3} β), HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) (VSub.vsub.{u2, u3} (Set.{u2} α) (Set.{u3} β) (Set.vsub.{u2, u3} α β _inst_1) (Set.interᵢ.{u3, u1} β ι (fun (i : ι) => s i)) t) (Set.interᵢ.{u2, u1} α ι (fun (i : ι) => VSub.vsub.{u2, u3} (Set.{u2} α) (Set.{u3} β) (Set.vsub.{u2, u3} α β _inst_1) (s i) t))
-Case conversion may be inaccurate. Consider using '#align set.Inter_vsub_subset Set.interᵢ_vsub_subsetₓ'. -/
-theorem interᵢ_vsub_subset (s : ι → Set β) (t : Set β) : (⋂ i, s i) -ᵥ t ⊆ ⋂ i, s i -ᵥ t :=
-  image2_interᵢ_subset_left _ _ _
-#align set.Inter_vsub_subset Set.interᵢ_vsub_subset
+  forall {α : Type.{u2}} {β : Type.{u3}} {ι : Sort.{u1}} [_inst_1 : VSub.{u2, u3} α β] (s : ι -> (Set.{u3} β)) (t : Set.{u3} β), HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) (VSub.vsub.{u2, u3} (Set.{u2} α) (Set.{u3} β) (Set.vsub.{u2, u3} α β _inst_1) (Set.iInter.{u3, u1} β ι (fun (i : ι) => s i)) t) (Set.iInter.{u2, u1} α ι (fun (i : ι) => VSub.vsub.{u2, u3} (Set.{u2} α) (Set.{u3} β) (Set.vsub.{u2, u3} α β _inst_1) (s i) t))
+Case conversion may be inaccurate. Consider using '#align set.Inter_vsub_subset Set.iInter_vsub_subsetₓ'. -/
+theorem iInter_vsub_subset (s : ι → Set β) (t : Set β) : (⋂ i, s i) -ᵥ t ⊆ ⋂ i, s i -ᵥ t :=
+  image2_iInter_subset_left _ _ _
+#align set.Inter_vsub_subset Set.iInter_vsub_subset
 
-/- warning: set.vsub_Inter_subset -> Set.vsub_interᵢ_subset is a dubious translation:
+/- warning: set.vsub_Inter_subset -> Set.vsub_iInter_subset is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} [_inst_1 : VSub.{u1, u2} α β] (s : Set.{u2} β) (t : ι -> (Set.{u2} β)), HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s (Set.interᵢ.{u2, u3} β ι (fun (i : ι) => t i))) (Set.interᵢ.{u1, u3} α ι (fun (i : ι) => VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s (t i)))
+  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} [_inst_1 : VSub.{u1, u2} α β] (s : Set.{u2} β) (t : ι -> (Set.{u2} β)), HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s (Set.iInter.{u2, u3} β ι (fun (i : ι) => t i))) (Set.iInter.{u1, u3} α ι (fun (i : ι) => VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s (t i)))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} {ι : Sort.{u1}} [_inst_1 : VSub.{u2, u3} α β] (s : Set.{u3} β) (t : ι -> (Set.{u3} β)), HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) (VSub.vsub.{u2, u3} (Set.{u2} α) (Set.{u3} β) (Set.vsub.{u2, u3} α β _inst_1) s (Set.interᵢ.{u3, u1} β ι (fun (i : ι) => t i))) (Set.interᵢ.{u2, u1} α ι (fun (i : ι) => VSub.vsub.{u2, u3} (Set.{u2} α) (Set.{u3} β) (Set.vsub.{u2, u3} α β _inst_1) s (t i)))
-Case conversion may be inaccurate. Consider using '#align set.vsub_Inter_subset Set.vsub_interᵢ_subsetₓ'. -/
-theorem vsub_interᵢ_subset (s : Set β) (t : ι → Set β) : (s -ᵥ ⋂ i, t i) ⊆ ⋂ i, s -ᵥ t i :=
-  image2_interᵢ_subset_right _ _ _
-#align set.vsub_Inter_subset Set.vsub_interᵢ_subset
+  forall {α : Type.{u2}} {β : Type.{u3}} {ι : Sort.{u1}} [_inst_1 : VSub.{u2, u3} α β] (s : Set.{u3} β) (t : ι -> (Set.{u3} β)), HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) (VSub.vsub.{u2, u3} (Set.{u2} α) (Set.{u3} β) (Set.vsub.{u2, u3} α β _inst_1) s (Set.iInter.{u3, u1} β ι (fun (i : ι) => t i))) (Set.iInter.{u2, u1} α ι (fun (i : ι) => VSub.vsub.{u2, u3} (Set.{u2} α) (Set.{u3} β) (Set.vsub.{u2, u3} α β _inst_1) s (t i)))
+Case conversion may be inaccurate. Consider using '#align set.vsub_Inter_subset Set.vsub_iInter_subsetₓ'. -/
+theorem vsub_iInter_subset (s : Set β) (t : ι → Set β) : (s -ᵥ ⋂ i, t i) ⊆ ⋂ i, s -ᵥ t i :=
+  image2_iInter_subset_right _ _ _
+#align set.vsub_Inter_subset Set.vsub_iInter_subset
 
-/- warning: set.Inter₂_vsub_subset -> Set.interᵢ₂_vsub_subset is a dubious translation:
+/- warning: set.Inter₂_vsub_subset -> Set.iInter₂_vsub_subset is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {κ : ι -> Sort.{u4}} [_inst_1 : VSub.{u1, u2} α β] (s : forall (i : ι), (κ i) -> (Set.{u2} β)) (t : Set.{u2} β), HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) (Set.interᵢ.{u2, u3} β ι (fun (i : ι) => Set.interᵢ.{u2, u4} β (κ i) (fun (j : κ i) => s i j))) t) (Set.interᵢ.{u1, u3} α ι (fun (i : ι) => Set.interᵢ.{u1, u4} α (κ i) (fun (j : κ i) => VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) (s i j) t)))
+  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {κ : ι -> Sort.{u4}} [_inst_1 : VSub.{u1, u2} α β] (s : forall (i : ι), (κ i) -> (Set.{u2} β)) (t : Set.{u2} β), HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) (Set.iInter.{u2, u3} β ι (fun (i : ι) => Set.iInter.{u2, u4} β (κ i) (fun (j : κ i) => s i j))) t) (Set.iInter.{u1, u3} α ι (fun (i : ι) => Set.iInter.{u1, u4} α (κ i) (fun (j : κ i) => VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) (s i j) t)))
 but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u4}} {ι : Sort.{u2}} {κ : ι -> Sort.{u1}} [_inst_1 : VSub.{u3, u4} α β] (s : forall (i : ι), (κ i) -> (Set.{u4} β)) (t : Set.{u4} β), HasSubset.Subset.{u3} (Set.{u3} α) (Set.instHasSubsetSet.{u3} α) (VSub.vsub.{u3, u4} (Set.{u3} α) (Set.{u4} β) (Set.vsub.{u3, u4} α β _inst_1) (Set.interᵢ.{u4, u2} β ι (fun (i : ι) => Set.interᵢ.{u4, u1} β (κ i) (fun (j : κ i) => s i j))) t) (Set.interᵢ.{u3, u2} α ι (fun (i : ι) => Set.interᵢ.{u3, u1} α (κ i) (fun (j : κ i) => VSub.vsub.{u3, u4} (Set.{u3} α) (Set.{u4} β) (Set.vsub.{u3, u4} α β _inst_1) (s i j) t)))
-Case conversion may be inaccurate. Consider using '#align set.Inter₂_vsub_subset Set.interᵢ₂_vsub_subsetₓ'. -/
+  forall {α : Type.{u3}} {β : Type.{u4}} {ι : Sort.{u2}} {κ : ι -> Sort.{u1}} [_inst_1 : VSub.{u3, u4} α β] (s : forall (i : ι), (κ i) -> (Set.{u4} β)) (t : Set.{u4} β), HasSubset.Subset.{u3} (Set.{u3} α) (Set.instHasSubsetSet.{u3} α) (VSub.vsub.{u3, u4} (Set.{u3} α) (Set.{u4} β) (Set.vsub.{u3, u4} α β _inst_1) (Set.iInter.{u4, u2} β ι (fun (i : ι) => Set.iInter.{u4, u1} β (κ i) (fun (j : κ i) => s i j))) t) (Set.iInter.{u3, u2} α ι (fun (i : ι) => Set.iInter.{u3, u1} α (κ i) (fun (j : κ i) => VSub.vsub.{u3, u4} (Set.{u3} α) (Set.{u4} β) (Set.vsub.{u3, u4} α β _inst_1) (s i j) t)))
+Case conversion may be inaccurate. Consider using '#align set.Inter₂_vsub_subset Set.iInter₂_vsub_subsetₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
-theorem interᵢ₂_vsub_subset (s : ∀ i, κ i → Set β) (t : Set β) :
+theorem iInter₂_vsub_subset (s : ∀ i, κ i → Set β) (t : Set β) :
     (⋂ (i) (j), s i j) -ᵥ t ⊆ ⋂ (i) (j), s i j -ᵥ t :=
-  image2_interᵢ₂_subset_left _ _ _
-#align set.Inter₂_vsub_subset Set.interᵢ₂_vsub_subset
+  image2_iInter₂_subset_left _ _ _
+#align set.Inter₂_vsub_subset Set.iInter₂_vsub_subset
 
-/- warning: set.vsub_Inter₂_subset -> Set.vsub_interᵢ₂_subset is a dubious translation:
+/- warning: set.vsub_Inter₂_subset -> Set.vsub_iInter₂_subset is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {κ : ι -> Sort.{u4}} [_inst_1 : VSub.{u1, u2} α β] (s : Set.{u2} β) (t : forall (i : ι), (κ i) -> (Set.{u2} β)), HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s (Set.interᵢ.{u2, u3} β ι (fun (i : ι) => Set.interᵢ.{u2, u4} β (κ i) (fun (j : κ i) => t i j)))) (Set.interᵢ.{u1, u3} α ι (fun (i : ι) => Set.interᵢ.{u1, u4} α (κ i) (fun (j : κ i) => VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s (t i j))))
+  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {κ : ι -> Sort.{u4}} [_inst_1 : VSub.{u1, u2} α β] (s : Set.{u2} β) (t : forall (i : ι), (κ i) -> (Set.{u2} β)), HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s (Set.iInter.{u2, u3} β ι (fun (i : ι) => Set.iInter.{u2, u4} β (κ i) (fun (j : κ i) => t i j)))) (Set.iInter.{u1, u3} α ι (fun (i : ι) => Set.iInter.{u1, u4} α (κ i) (fun (j : κ i) => VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s (t i j))))
 but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u4}} {ι : Sort.{u2}} {κ : ι -> Sort.{u1}} [_inst_1 : VSub.{u3, u4} α β] (s : Set.{u4} β) (t : forall (i : ι), (κ i) -> (Set.{u4} β)), HasSubset.Subset.{u3} (Set.{u3} α) (Set.instHasSubsetSet.{u3} α) (VSub.vsub.{u3, u4} (Set.{u3} α) (Set.{u4} β) (Set.vsub.{u3, u4} α β _inst_1) s (Set.interᵢ.{u4, u2} β ι (fun (i : ι) => Set.interᵢ.{u4, u1} β (κ i) (fun (j : κ i) => t i j)))) (Set.interᵢ.{u3, u2} α ι (fun (i : ι) => Set.interᵢ.{u3, u1} α (κ i) (fun (j : κ i) => VSub.vsub.{u3, u4} (Set.{u3} α) (Set.{u4} β) (Set.vsub.{u3, u4} α β _inst_1) s (t i j))))
-Case conversion may be inaccurate. Consider using '#align set.vsub_Inter₂_subset Set.vsub_interᵢ₂_subsetₓ'. -/
+  forall {α : Type.{u3}} {β : Type.{u4}} {ι : Sort.{u2}} {κ : ι -> Sort.{u1}} [_inst_1 : VSub.{u3, u4} α β] (s : Set.{u4} β) (t : forall (i : ι), (κ i) -> (Set.{u4} β)), HasSubset.Subset.{u3} (Set.{u3} α) (Set.instHasSubsetSet.{u3} α) (VSub.vsub.{u3, u4} (Set.{u3} α) (Set.{u4} β) (Set.vsub.{u3, u4} α β _inst_1) s (Set.iInter.{u4, u2} β ι (fun (i : ι) => Set.iInter.{u4, u1} β (κ i) (fun (j : κ i) => t i j)))) (Set.iInter.{u3, u2} α ι (fun (i : ι) => Set.iInter.{u3, u1} α (κ i) (fun (j : κ i) => VSub.vsub.{u3, u4} (Set.{u3} α) (Set.{u4} β) (Set.vsub.{u3, u4} α β _inst_1) s (t i j))))
+Case conversion may be inaccurate. Consider using '#align set.vsub_Inter₂_subset Set.vsub_iInter₂_subsetₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
-theorem vsub_interᵢ₂_subset (s : Set β) (t : ∀ i, κ i → Set β) :
+theorem vsub_iInter₂_subset (s : Set β) (t : ∀ i, κ i → Set β) :
     (s -ᵥ ⋂ (i) (j), t i j) ⊆ ⋂ (i) (j), s -ᵥ t i j :=
-  image2_interᵢ₂_subset_right _ _ _
-#align set.vsub_Inter₂_subset Set.vsub_interᵢ₂_subset
+  image2_iInter₂_subset_right _ _ _
+#align set.vsub_Inter₂_subset Set.vsub_iInter₂_subset
 
 end Vsub
 
@@ -1596,24 +1596,24 @@ theorem op_smul_inter_ne_empty_iff {s t : Set α} {x : αᵐᵒᵖ} :
 #align set.op_smul_inter_ne_empty_iff Set.op_smul_inter_ne_empty_iff
 #align set.op_vadd_inter_ne_empty_iff Set.op_vadd_inter_ne_empty_iff
 
-/- warning: set.Union_inv_smul -> Set.unionᵢ_inv_smul is a dubious translation:
+/- warning: set.Union_inv_smul -> Set.iUnion_inv_smul is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Group.{u1} α] [_inst_2 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))] {s : Set.{u2} β}, Eq.{succ u2} (Set.{u2} β) (Set.unionᵢ.{u2, succ u1} β α (fun (g : α) => SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2)) (Inv.inv.{u1} α (DivInvMonoid.toHasInv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) g) s)) (Set.unionᵢ.{u2, succ u1} β α (fun (g : α) => SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2)) g s))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Group.{u1} α] [_inst_2 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))] {s : Set.{u2} β}, Eq.{succ u2} (Set.{u2} β) (Set.iUnion.{u2, succ u1} β α (fun (g : α) => SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2)) (Inv.inv.{u1} α (DivInvMonoid.toHasInv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) g) s)) (Set.iUnion.{u2, succ u1} β α (fun (g : α) => SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2)) g s))
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Group.{u1} α] [_inst_2 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))] {s : Set.{u2} β}, Eq.{succ u2} (Set.{u2} β) (Set.unionᵢ.{u2, succ u1} β α (fun (g : α) => HSMul.hSMul.{u1, u2, u2} α (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2))) (Inv.inv.{u1} α (InvOneClass.toInv.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_1)))) g) s)) (Set.unionᵢ.{u2, succ u1} β α (fun (g : α) => HSMul.hSMul.{u1, u2, u2} α (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2))) g s))
-Case conversion may be inaccurate. Consider using '#align set.Union_inv_smul Set.unionᵢ_inv_smulₓ'. -/
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Group.{u1} α] [_inst_2 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))] {s : Set.{u2} β}, Eq.{succ u2} (Set.{u2} β) (Set.iUnion.{u2, succ u1} β α (fun (g : α) => HSMul.hSMul.{u1, u2, u2} α (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2))) (Inv.inv.{u1} α (InvOneClass.toInv.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_1)))) g) s)) (Set.iUnion.{u2, succ u1} β α (fun (g : α) => HSMul.hSMul.{u1, u2, u2} α (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2))) g s))
+Case conversion may be inaccurate. Consider using '#align set.Union_inv_smul Set.iUnion_inv_smulₓ'. -/
 @[simp, to_additive]
-theorem unionᵢ_inv_smul : (⋃ g : α, g⁻¹ • s) = ⋃ g : α, g • s :=
-  Function.Surjective.supᵢ_congr _ inv_surjective fun g => rfl
-#align set.Union_inv_smul Set.unionᵢ_inv_smul
-#align set.Union_neg_vadd Set.unionᵢ_neg_vadd
+theorem iUnion_inv_smul : (⋃ g : α, g⁻¹ • s) = ⋃ g : α, g • s :=
+  Function.Surjective.iSup_congr _ inv_surjective fun g => rfl
+#align set.Union_inv_smul Set.iUnion_inv_smul
+#align set.Union_neg_vadd Set.iUnion_neg_vadd
 
-#print Set.unionᵢ_smul_eq_setOf_exists /-
+#print Set.iUnion_smul_eq_setOf_exists /-
 @[to_additive]
-theorem unionᵢ_smul_eq_setOf_exists {s : Set β} : (⋃ g : α, g • s) = { a | ∃ g : α, g • a ∈ s } :=
+theorem iUnion_smul_eq_setOf_exists {s : Set β} : (⋃ g : α, g • s) = { a | ∃ g : α, g • a ∈ s } :=
   by simp_rw [← Union_set_of, ← Union_inv_smul, ← preimage_smul, preimage]
-#align set.Union_smul_eq_set_of_exists Set.unionᵢ_smul_eq_setOf_exists
-#align set.Union_vadd_eq_set_of_exists Set.unionᵢ_vadd_eq_setOf_exists
+#align set.Union_smul_eq_set_of_exists Set.iUnion_smul_eq_setOf_exists
+#align set.Union_vadd_eq_set_of_exists Set.iUnion_vadd_eq_setOf_exists
 -/
 
 end Group
Diff
@@ -1095,7 +1095,7 @@ theorem union_vsub_inter_subset_union : s₁ ∪ s₂ -ᵥ t₁ ∩ t₂ ⊆ s
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : VSub.{u1, u2} α β] {s : Set.{u2} β} {t : Set.{u2} β}, Eq.{succ u1} (Set.{u1} α) (Set.unionᵢ.{u1, succ u2} α β (fun (a : β) => Set.unionᵢ.{u1, 0} α (Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) a s) (fun (H : Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) a s) => Set.image.{u2, u1} β α (VSub.vsub.{u1, u2} α β _inst_1 a) t))) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s t)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : VSub.{u2, u1} α β] {s : Set.{u1} β} {t : Set.{u1} β}, Eq.{succ u2} (Set.{u2} α) (Set.unionᵢ.{u2, succ u1} α β (fun (a : β) => Set.unionᵢ.{u2, 0} α (Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) a s) (fun (H : Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) a s) => Set.image.{u1, u2} β α ((fun (x._@.Mathlib.Data.Set.Pointwise.SMul._hyg.6864 : β) (x._@.Mathlib.Data.Set.Pointwise.SMul._hyg.6866 : β) => VSub.vsub.{u2, u1} α β _inst_1 x._@.Mathlib.Data.Set.Pointwise.SMul._hyg.6864 x._@.Mathlib.Data.Set.Pointwise.SMul._hyg.6866) a) t))) (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) s t)
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : VSub.{u2, u1} α β] {s : Set.{u1} β} {t : Set.{u1} β}, Eq.{succ u2} (Set.{u2} α) (Set.unionᵢ.{u2, succ u1} α β (fun (a : β) => Set.unionᵢ.{u2, 0} α (Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) a s) (fun (H : Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) a s) => Set.image.{u1, u2} β α ((fun (x._@.Mathlib.Data.Set.Pointwise.SMul._hyg.6862 : β) (x._@.Mathlib.Data.Set.Pointwise.SMul._hyg.6864 : β) => VSub.vsub.{u2, u1} α β _inst_1 x._@.Mathlib.Data.Set.Pointwise.SMul._hyg.6862 x._@.Mathlib.Data.Set.Pointwise.SMul._hyg.6864) a) t))) (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) s t)
 Case conversion may be inaccurate. Consider using '#align set.Union_vsub_left_image Set.unionᵢ_vsub_left_imageₓ'. -/
 theorem unionᵢ_vsub_left_image : (⋃ a ∈ s, (· -ᵥ ·) a '' t) = s -ᵥ t :=
   unionᵢ_image_left _
Diff
@@ -298,12 +298,24 @@ theorem smul_inter_subset : s • (t₁ ∩ t₂) ⊆ s • t₁ ∩ s • t₂
 #align set.smul_inter_subset Set.smul_inter_subset
 #align set.vadd_inter_subset Set.vadd_inter_subset
 
+/- warning: set.inter_smul_union_subset_union -> Set.inter_smul_union_subset_union is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SMul.{u1, u2} α β] {s₁ : Set.{u1} α} {s₂ : Set.{u1} α} {t₁ : Set.{u2} β} {t₂ : Set.{u2} β}, HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) (Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) s₁ s₂) (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) t₁ t₂)) (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s₁ t₁) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s₂ t₂))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SMul.{u1, u2} α β] {s₁ : Set.{u1} α} {s₂ : Set.{u1} α} {t₁ : Set.{u2} β} {t₂ : Set.{u2} β}, HasSubset.Subset.{u2} (Set.{u2} β) (Set.instHasSubsetSet.{u2} β) (HSMul.hSMul.{u1, u2, u2} (Set.{u1} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1)) (Inter.inter.{u1} (Set.{u1} α) (Set.instInterSet.{u1} α) s₁ s₂) (Union.union.{u2} (Set.{u2} β) (Set.instUnionSet.{u2} β) t₁ t₂)) (Union.union.{u2} (Set.{u2} β) (Set.instUnionSet.{u2} β) (HSMul.hSMul.{u1, u2, u2} (Set.{u1} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1)) s₁ t₁) (HSMul.hSMul.{u1, u2, u2} (Set.{u1} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1)) s₂ t₂))
+Case conversion may be inaccurate. Consider using '#align set.inter_smul_union_subset_union Set.inter_smul_union_subset_unionₓ'. -/
 @[to_additive]
 theorem inter_smul_union_subset_union : (s₁ ∩ s₂) • (t₁ ∪ t₂) ⊆ s₁ • t₁ ∪ s₂ • t₂ :=
   image2_inter_union_subset_union
 #align set.inter_smul_union_subset_union Set.inter_smul_union_subset_union
 #align set.inter_vadd_union_subset_union Set.inter_vadd_union_subset_union
 
+/- warning: set.union_smul_inter_subset_union -> Set.union_smul_inter_subset_union is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SMul.{u1, u2} α β] {s₁ : Set.{u1} α} {s₂ : Set.{u1} α} {t₁ : Set.{u2} β} {t₂ : Set.{u2} β}, HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) (Union.union.{u1} (Set.{u1} α) (Set.hasUnion.{u1} α) s₁ s₂) (Inter.inter.{u2} (Set.{u2} β) (Set.hasInter.{u2} β) t₁ t₂)) (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s₁ t₁) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s₂ t₂))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SMul.{u1, u2} α β] {s₁ : Set.{u1} α} {s₂ : Set.{u1} α} {t₁ : Set.{u2} β} {t₂ : Set.{u2} β}, HasSubset.Subset.{u2} (Set.{u2} β) (Set.instHasSubsetSet.{u2} β) (HSMul.hSMul.{u1, u2, u2} (Set.{u1} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1)) (Union.union.{u1} (Set.{u1} α) (Set.instUnionSet.{u1} α) s₁ s₂) (Inter.inter.{u2} (Set.{u2} β) (Set.instInterSet.{u2} β) t₁ t₂)) (Union.union.{u2} (Set.{u2} β) (Set.instUnionSet.{u2} β) (HSMul.hSMul.{u1, u2, u2} (Set.{u1} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1)) s₁ t₁) (HSMul.hSMul.{u1, u2, u2} (Set.{u1} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1)) s₂ t₂))
+Case conversion may be inaccurate. Consider using '#align set.union_smul_inter_subset_union Set.union_smul_inter_subset_unionₓ'. -/
 @[to_additive]
 theorem union_smul_inter_subset_union : (s₁ ∪ s₂) • (t₁ ∩ t₂) ⊆ s₁ • t₁ ∪ s₂ • t₂ :=
   image2_union_inter_subset_union
@@ -434,6 +446,12 @@ theorem smul_interᵢ₂_subset (s : Set α) (t : ∀ i, κ i → Set β) :
 #align set.smul_Inter₂_subset Set.smul_interᵢ₂_subset
 #align set.vadd_Inter₂_subset Set.vadd_interᵢ₂_subset
 
+/- warning: set.smul_set_subset_smul -> Set.smul_set_subset_smul is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SMul.{u1, u2} α β] {t : Set.{u2} β} {a : α} {s : Set.{u1} α}, (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) a s) -> (HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1) a t) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s t))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : SMul.{u2, u1} α β] {t : Set.{u1} β} {a : α} {s : Set.{u2} α}, (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) a s) -> (HasSubset.Subset.{u1} (Set.{u1} β) (Set.instHasSubsetSet.{u1} β) (HSMul.hSMul.{u2, u1, u1} α (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} α (Set.{u1} β) (Set.smulSet.{u2, u1} α β _inst_1)) a t) (HSMul.hSMul.{u2, u1, u1} (Set.{u2} α) (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.smul.{u2, u1} α β _inst_1)) s t))
+Case conversion may be inaccurate. Consider using '#align set.smul_set_subset_smul Set.smul_set_subset_smulₓ'. -/
 @[to_additive]
 theorem smul_set_subset_smul {s : Set α} : a ∈ s → a • t ⊆ s • t :=
   image_subset_image2_right
@@ -622,11 +640,13 @@ section Mul
 
 variable [Mul α] {s t u : Set α} {a : α}
 
+#print Set.op_smul_set_subset_mul /-
 @[to_additive]
 theorem op_smul_set_subset_mul : a ∈ t → op a • s ⊆ s * t :=
   image_subset_image2_left
 #align set.op_smul_set_subset_mul Set.op_smul_set_subset_mul
 #align set.op_vadd_set_subset_add Set.op_vadd_set_subset_add
+-/
 
 #print Set.unionᵢ_op_smul_set /-
 @[simp, to_additive]
@@ -636,17 +656,21 @@ theorem unionᵢ_op_smul_set (s t : Set α) : (⋃ a ∈ t, op a • s) = s * t
 #align set.bUnion_op_vadd_set Set.unionᵢ_op_vadd_set
 -/
 
+#print Set.mul_subset_iff_left /-
 @[to_additive]
 theorem mul_subset_iff_left : s * t ⊆ u ↔ ∀ a ∈ s, a • t ⊆ u :=
   image2_subset_iff_left
 #align set.mul_subset_iff_left Set.mul_subset_iff_left
 #align set.add_subset_iff_left Set.add_subset_iff_left
+-/
 
+#print Set.mul_subset_iff_right /-
 @[to_additive]
 theorem mul_subset_iff_right : s * t ⊆ u ↔ ∀ b ∈ t, op b • s ⊆ u :=
   image2_subset_iff_right
 #align set.mul_subset_iff_right Set.mul_subset_iff_right
 #align set.add_subset_iff_right Set.add_subset_iff_right
+-/
 
 end Mul
 
@@ -1047,10 +1071,22 @@ theorem vsub_inter_subset : s -ᵥ t₁ ∩ t₂ ⊆ (s -ᵥ t₁) ∩ (s -ᵥ t
   image2_inter_subset_right
 #align set.vsub_inter_subset Set.vsub_inter_subset
 
+/- warning: set.inter_vsub_union_subset_union -> Set.inter_vsub_union_subset_union is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : VSub.{u1, u2} α β] {s₁ : Set.{u2} β} {s₂ : Set.{u2} β} {t₁ : Set.{u2} β} {t₂ : Set.{u2} β}, HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) (Inter.inter.{u2} (Set.{u2} β) (Set.hasInter.{u2} β) s₁ s₂) (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) t₁ t₂)) (Union.union.{u1} (Set.{u1} α) (Set.hasUnion.{u1} α) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s₁ t₁) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s₂ t₂))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : VSub.{u2, u1} α β] {s₁ : Set.{u1} β} {s₂ : Set.{u1} β} {t₁ : Set.{u1} β} {t₂ : Set.{u1} β}, HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) (Inter.inter.{u1} (Set.{u1} β) (Set.instInterSet.{u1} β) s₁ s₂) (Union.union.{u1} (Set.{u1} β) (Set.instUnionSet.{u1} β) t₁ t₂)) (Union.union.{u2} (Set.{u2} α) (Set.instUnionSet.{u2} α) (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) s₁ t₁) (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) s₂ t₂))
+Case conversion may be inaccurate. Consider using '#align set.inter_vsub_union_subset_union Set.inter_vsub_union_subset_unionₓ'. -/
 theorem inter_vsub_union_subset_union : s₁ ∩ s₂ -ᵥ (t₁ ∪ t₂) ⊆ s₁ -ᵥ t₁ ∪ (s₂ -ᵥ t₂) :=
   image2_inter_union_subset_union
 #align set.inter_vsub_union_subset_union Set.inter_vsub_union_subset_union
 
+/- warning: set.union_vsub_inter_subset_union -> Set.union_vsub_inter_subset_union is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : VSub.{u1, u2} α β] {s₁ : Set.{u2} β} {s₂ : Set.{u2} β} {t₁ : Set.{u2} β} {t₂ : Set.{u2} β}, HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) s₁ s₂) (Inter.inter.{u2} (Set.{u2} β) (Set.hasInter.{u2} β) t₁ t₂)) (Union.union.{u1} (Set.{u1} α) (Set.hasUnion.{u1} α) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s₁ t₁) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s₂ t₂))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : VSub.{u2, u1} α β] {s₁ : Set.{u1} β} {s₂ : Set.{u1} β} {t₁ : Set.{u1} β} {t₂ : Set.{u1} β}, HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) (Union.union.{u1} (Set.{u1} β) (Set.instUnionSet.{u1} β) s₁ s₂) (Inter.inter.{u1} (Set.{u1} β) (Set.instInterSet.{u1} β) t₁ t₂)) (Union.union.{u2} (Set.{u2} α) (Set.instUnionSet.{u2} α) (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) s₁ t₁) (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) s₂ t₂))
+Case conversion may be inaccurate. Consider using '#align set.union_vsub_inter_subset_union Set.union_vsub_inter_subset_unionₓ'. -/
 theorem union_vsub_inter_subset_union : s₁ ∪ s₂ -ᵥ t₁ ∩ t₂ ⊆ s₁ -ᵥ t₁ ∪ (s₂ -ᵥ t₂) :=
   image2_union_inter_subset_union
 #align set.union_vsub_inter_subset_union Set.union_vsub_inter_subset_union
@@ -1059,7 +1095,7 @@ theorem union_vsub_inter_subset_union : s₁ ∪ s₂ -ᵥ t₁ ∩ t₂ ⊆ s
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : VSub.{u1, u2} α β] {s : Set.{u2} β} {t : Set.{u2} β}, Eq.{succ u1} (Set.{u1} α) (Set.unionᵢ.{u1, succ u2} α β (fun (a : β) => Set.unionᵢ.{u1, 0} α (Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) a s) (fun (H : Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) a s) => Set.image.{u2, u1} β α (VSub.vsub.{u1, u2} α β _inst_1 a) t))) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s t)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : VSub.{u2, u1} α β] {s : Set.{u1} β} {t : Set.{u1} β}, Eq.{succ u2} (Set.{u2} α) (Set.unionᵢ.{u2, succ u1} α β (fun (a : β) => Set.unionᵢ.{u2, 0} α (Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) a s) (fun (H : Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) a s) => Set.image.{u1, u2} β α ((fun (x._@.Mathlib.Data.Set.Pointwise.SMul._hyg.6395 : β) (x._@.Mathlib.Data.Set.Pointwise.SMul._hyg.6397 : β) => VSub.vsub.{u2, u1} α β _inst_1 x._@.Mathlib.Data.Set.Pointwise.SMul._hyg.6395 x._@.Mathlib.Data.Set.Pointwise.SMul._hyg.6397) a) t))) (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) s t)
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : VSub.{u2, u1} α β] {s : Set.{u1} β} {t : Set.{u1} β}, Eq.{succ u2} (Set.{u2} α) (Set.unionᵢ.{u2, succ u1} α β (fun (a : β) => Set.unionᵢ.{u2, 0} α (Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) a s) (fun (H : Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) a s) => Set.image.{u1, u2} β α ((fun (x._@.Mathlib.Data.Set.Pointwise.SMul._hyg.6864 : β) (x._@.Mathlib.Data.Set.Pointwise.SMul._hyg.6866 : β) => VSub.vsub.{u2, u1} α β _inst_1 x._@.Mathlib.Data.Set.Pointwise.SMul._hyg.6864 x._@.Mathlib.Data.Set.Pointwise.SMul._hyg.6866) a) t))) (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) s t)
 Case conversion may be inaccurate. Consider using '#align set.Union_vsub_left_image Set.unionᵢ_vsub_left_imageₓ'. -/
 theorem unionᵢ_vsub_left_image : (⋃ a ∈ s, (· -ᵥ ·) a '' t) = s -ᵥ t :=
   unionᵢ_image_left _
@@ -1201,6 +1237,12 @@ section SMul
 
 variable [SMul αᵐᵒᵖ β] [SMul β γ] [SMul α γ]
 
+/- warning: set.op_smul_set_smul_eq_smul_smul_set -> Set.op_smul_set_smul_eq_smul_smul_set is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : SMul.{u1, u2} (MulOpposite.{u1} α) β] [_inst_2 : SMul.{u2, u3} β γ] [_inst_3 : SMul.{u1, u3} α γ] (a : α) (s : Set.{u2} β) (t : Set.{u3} γ), (forall (a : α) (b : β) (c : γ), Eq.{succ u3} γ (SMul.smul.{u2, u3} β γ _inst_2 (SMul.smul.{u1, u2} (MulOpposite.{u1} α) β _inst_1 (MulOpposite.op.{u1} α a) b) c) (SMul.smul.{u2, u3} β γ _inst_2 b (SMul.smul.{u1, u3} α γ _inst_3 a c))) -> (Eq.{succ u3} (Set.{u3} γ) (SMul.smul.{u2, u3} (Set.{u2} β) (Set.{u3} γ) (Set.smul.{u2, u3} β γ _inst_2) (SMul.smul.{u1, u2} (MulOpposite.{u1} α) (Set.{u2} β) (Set.smulSet.{u1, u2} (MulOpposite.{u1} α) β _inst_1) (MulOpposite.op.{u1} α a) s) t) (SMul.smul.{u2, u3} (Set.{u2} β) (Set.{u3} γ) (Set.smul.{u2, u3} β γ _inst_2) s (SMul.smul.{u1, u3} α (Set.{u3} γ) (Set.smulSet.{u1, u3} α γ _inst_3) a t)))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} [_inst_1 : SMul.{u1, u3} (MulOpposite.{u1} α) β] [_inst_2 : SMul.{u3, u2} β γ] [_inst_3 : SMul.{u1, u2} α γ] (a : α) (s : Set.{u3} β) (t : Set.{u2} γ), (forall (a : α) (b : β) (c : γ), Eq.{succ u2} γ (HSMul.hSMul.{u3, u2, u2} β γ γ (instHSMul.{u3, u2} β γ _inst_2) (HSMul.hSMul.{u1, u3, u3} (MulOpposite.{u1} α) β β (instHSMul.{u1, u3} (MulOpposite.{u1} α) β _inst_1) (MulOpposite.op.{u1} α a) b) c) (HSMul.hSMul.{u3, u2, u2} β γ γ (instHSMul.{u3, u2} β γ _inst_2) b (HSMul.hSMul.{u1, u2, u2} α γ γ (instHSMul.{u1, u2} α γ _inst_3) a c))) -> (Eq.{succ u2} (Set.{u2} γ) (HSMul.hSMul.{u3, u2, u2} (Set.{u3} β) (Set.{u2} γ) (Set.{u2} γ) (instHSMul.{u3, u2} (Set.{u3} β) (Set.{u2} γ) (Set.smul.{u3, u2} β γ _inst_2)) (HSMul.hSMul.{u1, u3, u3} (MulOpposite.{u1} α) (Set.{u3} β) (Set.{u3} β) (instHSMul.{u1, u3} (MulOpposite.{u1} α) (Set.{u3} β) (Set.smulSet.{u1, u3} (MulOpposite.{u1} α) β _inst_1)) (MulOpposite.op.{u1} α a) s) t) (HSMul.hSMul.{u3, u2, u2} (Set.{u3} β) (Set.{u2} γ) (Set.{u2} γ) (instHSMul.{u3, u2} (Set.{u3} β) (Set.{u2} γ) (Set.smul.{u3, u2} β γ _inst_2)) s (HSMul.hSMul.{u1, u2, u2} α (Set.{u2} γ) (Set.{u2} γ) (instHSMul.{u1, u2} α (Set.{u2} γ) (Set.smulSet.{u1, u2} α γ _inst_3)) a t)))
+Case conversion may be inaccurate. Consider using '#align set.op_smul_set_smul_eq_smul_smul_set Set.op_smul_set_smul_eq_smul_smul_setₓ'. -/
 -- TODO: replace hypothesis and conclusion with a typeclass
 @[to_additive]
 theorem op_smul_set_smul_eq_smul_smul_set (a : α) (s : Set β) (t : Set γ)
@@ -1313,6 +1355,12 @@ section Semigroup
 
 variable [Semigroup α]
 
+/- warning: set.op_smul_set_mul_eq_mul_smul_set -> Set.op_smul_set_mul_eq_mul_smul_set is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : Semigroup.{u1} α] (a : α) (s : Set.{u1} α) (t : Set.{u1} α), Eq.{succ u1} (Set.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (Semigroup.toHasMul.{u1} α _inst_1))) (SMul.smul.{u1, u1} (MulOpposite.{u1} α) (Set.{u1} α) (Set.smulSet.{u1, u1} (MulOpposite.{u1} α) α (Mul.toHasOppositeSMul.{u1} α (Semigroup.toHasMul.{u1} α _inst_1))) (MulOpposite.op.{u1} α a) s) t) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (Semigroup.toHasMul.{u1} α _inst_1))) s (SMul.smul.{u1, u1} α (Set.{u1} α) (Set.smulSet.{u1, u1} α α (Mul.toSMul.{u1} α (Semigroup.toHasMul.{u1} α _inst_1))) a t))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : Semigroup.{u1} α] (a : α) (s : Set.{u1} α) (t : Set.{u1} α), Eq.{succ u1} (Set.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (Semigroup.toMul.{u1} α _inst_1))) (HSMul.hSMul.{u1, u1, u1} (MulOpposite.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHSMul.{u1, u1} (MulOpposite.{u1} α) (Set.{u1} α) (Set.smulSet.{u1, u1} (MulOpposite.{u1} α) α (Mul.toHasOppositeSMul.{u1} α (Semigroup.toMul.{u1} α _inst_1)))) (MulOpposite.op.{u1} α a) s) t) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (Semigroup.toMul.{u1} α _inst_1))) s (HSMul.hSMul.{u1, u1, u1} α (Set.{u1} α) (Set.{u1} α) (instHSMul.{u1, u1} α (Set.{u1} α) (Set.smulSet.{u1, u1} α α (Mul.toSMul.{u1} α (Semigroup.toMul.{u1} α _inst_1)))) a t))
+Case conversion may be inaccurate. Consider using '#align set.op_smul_set_mul_eq_mul_smul_set Set.op_smul_set_mul_eq_mul_smul_setₓ'. -/
 @[to_additive]
 theorem op_smul_set_mul_eq_mul_smul_set (a : α) (s : Set α) (t : Set α) :
     op a • s * t = s * a • t :=
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johan Commelin, Floris van Doorn
 
 ! This file was ported from Lean 3 source module data.set.pointwise.smul
-! leanprover-community/mathlib commit b685f506164f8d17a6404048bc4d696739c5d976
+! leanprover-community/mathlib commit 5e526d18cea33550268dcbbddcb822d5cde40654
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -44,7 +44,7 @@ Appropriate definitions and results are also transported to the additive theory
 -/
 
 
-open Function
+open Function MulOpposite
 
 variable {F α β γ : Type _}
 
@@ -298,6 +298,18 @@ theorem smul_inter_subset : s • (t₁ ∩ t₂) ⊆ s • t₁ ∩ s • t₂
 #align set.smul_inter_subset Set.smul_inter_subset
 #align set.vadd_inter_subset Set.vadd_inter_subset
 
+@[to_additive]
+theorem inter_smul_union_subset_union : (s₁ ∩ s₂) • (t₁ ∪ t₂) ⊆ s₁ • t₁ ∪ s₂ • t₂ :=
+  image2_inter_union_subset_union
+#align set.inter_smul_union_subset_union Set.inter_smul_union_subset_union
+#align set.inter_vadd_union_subset_union Set.inter_vadd_union_subset_union
+
+@[to_additive]
+theorem union_smul_inter_subset_union : (s₁ ∪ s₂) • (t₁ ∩ t₂) ⊆ s₁ • t₁ ∪ s₂ • t₂ :=
+  image2_union_inter_subset_union
+#align set.union_smul_inter_subset_union Set.union_smul_inter_subset_union
+#align set.union_vadd_inter_subset_union Set.union_vadd_inter_subset_union
+
 #print Set.unionᵢ_smul_left_image /-
 @[to_additive]
 theorem unionᵢ_smul_left_image : (⋃ a ∈ s, a • t) = s • t :=
@@ -422,6 +434,12 @@ theorem smul_interᵢ₂_subset (s : Set α) (t : ∀ i, κ i → Set β) :
 #align set.smul_Inter₂_subset Set.smul_interᵢ₂_subset
 #align set.vadd_Inter₂_subset Set.vadd_interᵢ₂_subset
 
+@[to_additive]
+theorem smul_set_subset_smul {s : Set α} : a ∈ s → a • t ⊆ s • t :=
+  image_subset_image2_right
+#align set.smul_set_subset_smul Set.smul_set_subset_smul
+#align set.vadd_set_subset_vadd Set.vadd_set_subset_vadd
+
 /- warning: set.bUnion_smul_set -> Set.unionᵢ_smul_set is a dubious translation:
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SMul.{u1, u2} α β] (s : Set.{u1} α) (t : Set.{u2} β), Eq.{succ u2} (Set.{u2} β) (Set.unionᵢ.{u2, succ u1} β α (fun (a : α) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) a s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) a s) => SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1) a t))) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) s t)
@@ -600,16 +618,40 @@ theorem Nonempty.smul_set : s.Nonempty → (a • s).Nonempty :=
 
 end HasSmulSet
 
-variable {s s₁ s₂ : Set α} {t t₁ t₂ : Set β} {a : α} {b : β}
+section Mul
+
+variable [Mul α] {s t u : Set α} {a : α}
+
+@[to_additive]
+theorem op_smul_set_subset_mul : a ∈ t → op a • s ⊆ s * t :=
+  image_subset_image2_left
+#align set.op_smul_set_subset_mul Set.op_smul_set_subset_mul
+#align set.op_vadd_set_subset_add Set.op_vadd_set_subset_add
 
 #print Set.unionᵢ_op_smul_set /-
 @[simp, to_additive]
-theorem unionᵢ_op_smul_set [Mul α] (s t : Set α) : (⋃ a ∈ t, MulOpposite.op a • s) = s * t :=
+theorem unionᵢ_op_smul_set (s t : Set α) : (⋃ a ∈ t, op a • s) = s * t :=
   unionᵢ_image_right _
 #align set.bUnion_op_smul_set Set.unionᵢ_op_smul_set
 #align set.bUnion_op_vadd_set Set.unionᵢ_op_vadd_set
 -/
 
+@[to_additive]
+theorem mul_subset_iff_left : s * t ⊆ u ↔ ∀ a ∈ s, a • t ⊆ u :=
+  image2_subset_iff_left
+#align set.mul_subset_iff_left Set.mul_subset_iff_left
+#align set.add_subset_iff_left Set.add_subset_iff_left
+
+@[to_additive]
+theorem mul_subset_iff_right : s * t ⊆ u ↔ ∀ b ∈ t, op b • s ⊆ u :=
+  image2_subset_iff_right
+#align set.mul_subset_iff_right Set.mul_subset_iff_right
+#align set.add_subset_iff_right Set.add_subset_iff_right
+
+end Mul
+
+variable {s s₁ s₂ : Set α} {t t₁ t₂ : Set β} {a : α} {b : β}
+
 /- warning: set.range_smul_range -> Set.range_smul_range is a dubious translation:
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} {κ : Type.{u4}} [_inst_1 : SMul.{u1, u2} α β] (b : ι -> α) (c : κ -> β), Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β _inst_1) (Set.range.{u1, succ u3} α ι b) (Set.range.{u2, succ u4} β κ c)) (Set.range.{u2, max (succ u3) (succ u4)} β (Prod.{u3, u4} ι κ) (fun (p : Prod.{u3, u4} ι κ) => SMul.smul.{u1, u2} α β _inst_1 (b (Prod.fst.{u3, u4} ι κ p)) (c (Prod.snd.{u3, u4} ι κ p))))
@@ -1005,6 +1047,14 @@ theorem vsub_inter_subset : s -ᵥ t₁ ∩ t₂ ⊆ (s -ᵥ t₁) ∩ (s -ᵥ t
   image2_inter_subset_right
 #align set.vsub_inter_subset Set.vsub_inter_subset
 
+theorem inter_vsub_union_subset_union : s₁ ∩ s₂ -ᵥ (t₁ ∪ t₂) ⊆ s₁ -ᵥ t₁ ∪ (s₂ -ᵥ t₂) :=
+  image2_inter_union_subset_union
+#align set.inter_vsub_union_subset_union Set.inter_vsub_union_subset_union
+
+theorem union_vsub_inter_subset_union : s₁ ∪ s₂ -ᵥ t₁ ∩ t₂ ⊆ s₁ -ᵥ t₁ ∪ (s₂ -ᵥ t₂) :=
+  image2_union_inter_subset_union
+#align set.union_vsub_inter_subset_union Set.union_vsub_inter_subset_union
+
 /- warning: set.Union_vsub_left_image -> Set.unionᵢ_vsub_left_image is a dubious translation:
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : VSub.{u1, u2} α β] {s : Set.{u2} β} {t : Set.{u2} β}, Eq.{succ u1} (Set.{u1} α) (Set.unionᵢ.{u1, succ u2} α β (fun (a : β) => Set.unionᵢ.{u1, 0} α (Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) a s) (fun (H : Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) a s) => Set.image.{u2, u1} β α (VSub.vsub.{u1, u2} α β _inst_1 a) t))) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s t)
@@ -1147,6 +1197,22 @@ theorem image_smul_distrib [MulOneClass α] [MulOneClass β] [MonoidHomClass F 
 #align set.image_smul_distrib Set.image_smul_distrib
 #align set.image_vadd_distrib Set.image_vadd_distrib
 
+section SMul
+
+variable [SMul αᵐᵒᵖ β] [SMul β γ] [SMul α γ]
+
+-- TODO: replace hypothesis and conclusion with a typeclass
+@[to_additive]
+theorem op_smul_set_smul_eq_smul_smul_set (a : α) (s : Set β) (t : Set γ)
+    (h : ∀ (a : α) (b : β) (c : γ), (op a • b) • c = b • a • c) : (op a • s) • t = s • a • t :=
+  by
+  ext
+  simp [mem_smul, mem_smul_set, h]
+#align set.op_smul_set_smul_eq_smul_smul_set Set.op_smul_set_smul_eq_smul_smul_set
+#align set.op_vadd_set_vadd_eq_vadd_vadd_set Set.op_vadd_set_vadd_eq_vadd_vadd_set
+
+end SMul
+
 section SMulWithZero
 
 variable [Zero α] [Zero β] [SMulWithZero α β] {s : Set α} {t : Set β}
@@ -1243,6 +1309,19 @@ theorem zero_mem_smul_set_iff (ha : a ≠ 0) : (0 : β) ∈ a • t ↔ (0 : β)
 
 end SMulWithZero
 
+section Semigroup
+
+variable [Semigroup α]
+
+@[to_additive]
+theorem op_smul_set_mul_eq_mul_smul_set (a : α) (s : Set α) (t : Set α) :
+    op a • s * t = s * a • t :=
+  op_smul_set_smul_eq_smul_smul_set _ _ _ fun _ _ _ => mul_assoc _ _ _
+#align set.op_smul_set_mul_eq_mul_smul_set Set.op_smul_set_mul_eq_mul_smul_set
+#align set.op_vadd_set_add_eq_add_vadd_set Set.op_vadd_set_add_eq_add_vadd_set
+
+end Semigroup
+
 section LeftCancelSemigroup
 
 variable [LeftCancelSemigroup α] {s t : Set α}
Diff
@@ -708,7 +708,7 @@ instance isCentralScalar [SMul α β] [SMul αᵐᵒᵖ β] [IsCentralScalar α
     IsCentralScalar α (Set β) :=
   ⟨fun a S => (congr_arg fun f => f '' S) <| funext fun _ => op_smul_eq_smul _ _⟩
 #align set.is_central_scalar Set.isCentralScalar
-#align set.is_central_vadd Set.is_central_vadd
+#align set.is_central_vadd Set.isCentralVAdd
 -/
 
 #print Set.mulAction /-
@@ -1009,7 +1009,7 @@ theorem vsub_inter_subset : s -ᵥ t₁ ∩ t₂ ⊆ (s -ᵥ t₁) ∩ (s -ᵥ t
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : VSub.{u1, u2} α β] {s : Set.{u2} β} {t : Set.{u2} β}, Eq.{succ u1} (Set.{u1} α) (Set.unionᵢ.{u1, succ u2} α β (fun (a : β) => Set.unionᵢ.{u1, 0} α (Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) a s) (fun (H : Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) a s) => Set.image.{u2, u1} β α (VSub.vsub.{u1, u2} α β _inst_1 a) t))) (VSub.vsub.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.vsub.{u1, u2} α β _inst_1) s t)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : VSub.{u2, u1} α β] {s : Set.{u1} β} {t : Set.{u1} β}, Eq.{succ u2} (Set.{u2} α) (Set.unionᵢ.{u2, succ u1} α β (fun (a : β) => Set.unionᵢ.{u2, 0} α (Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) a s) (fun (H : Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) a s) => Set.image.{u1, u2} β α ((fun (x._@.Mathlib.Data.Set.Pointwise.SMul._hyg.6394 : β) (x._@.Mathlib.Data.Set.Pointwise.SMul._hyg.6396 : β) => VSub.vsub.{u2, u1} α β _inst_1 x._@.Mathlib.Data.Set.Pointwise.SMul._hyg.6394 x._@.Mathlib.Data.Set.Pointwise.SMul._hyg.6396) a) t))) (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) s t)
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : VSub.{u2, u1} α β] {s : Set.{u1} β} {t : Set.{u1} β}, Eq.{succ u2} (Set.{u2} α) (Set.unionᵢ.{u2, succ u1} α β (fun (a : β) => Set.unionᵢ.{u2, 0} α (Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) a s) (fun (H : Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) a s) => Set.image.{u1, u2} β α ((fun (x._@.Mathlib.Data.Set.Pointwise.SMul._hyg.6395 : β) (x._@.Mathlib.Data.Set.Pointwise.SMul._hyg.6397 : β) => VSub.vsub.{u2, u1} α β _inst_1 x._@.Mathlib.Data.Set.Pointwise.SMul._hyg.6395 x._@.Mathlib.Data.Set.Pointwise.SMul._hyg.6397) a) t))) (VSub.vsub.{u2, u1} (Set.{u2} α) (Set.{u1} β) (Set.vsub.{u2, u1} α β _inst_1) s t)
 Case conversion may be inaccurate. Consider using '#align set.Union_vsub_left_image Set.unionᵢ_vsub_left_imageₓ'. -/
 theorem unionᵢ_vsub_left_image : (⋃ a ∈ s, (· -ᵥ ·) a '' t) = s -ᵥ t :=
   unionᵢ_image_left _
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johan Commelin, Floris van Doorn
 
 ! This file was ported from Lean 3 source module data.set.pointwise.smul
-! leanprover-community/mathlib commit c227d107bbada5d0d9d20287e3282c0a7f1651a0
+! leanprover-community/mathlib commit b685f506164f8d17a6404048bc4d696739c5d976
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -703,10 +703,12 @@ instance isScalarTower'' [SMul α β] [SMul α γ] [SMul β γ] [IsScalarTower 
 -/
 
 #print Set.isCentralScalar /-
+@[to_additive]
 instance isCentralScalar [SMul α β] [SMul αᵐᵒᵖ β] [IsCentralScalar α β] :
     IsCentralScalar α (Set β) :=
   ⟨fun a S => (congr_arg fun f => f '' S) <| funext fun _ => op_smul_eq_smul _ _⟩
 #align set.is_central_scalar Set.isCentralScalar
+#align set.is_central_vadd Set.is_central_vadd
 -/
 
 #print Set.mulAction /-
Diff
@@ -1119,6 +1119,12 @@ end Vsub
 
 open Pointwise
 
+/- warning: set.image_smul_comm -> Set.image_smul_comm is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : SMul.{u1, u2} α β] [_inst_2 : SMul.{u1, u3} α γ] (f : β -> γ) (a : α) (s : Set.{u2} β), (forall (b : β), Eq.{succ u3} γ (f (SMul.smul.{u1, u2} α β _inst_1 a b)) (SMul.smul.{u1, u3} α γ _inst_2 a (f b))) -> (Eq.{succ u3} (Set.{u3} γ) (Set.image.{u2, u3} β γ f (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_1) a s)) (SMul.smul.{u1, u3} α (Set.{u3} γ) (Set.smulSet.{u1, u3} α γ _inst_2) a (Set.image.{u2, u3} β γ f s)))
+but is expected to have type
+  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u1}} [_inst_1 : SMul.{u3, u2} α β] [_inst_2 : SMul.{u3, u1} α γ] (f : β -> γ) (a : α) (s : Set.{u2} β), (forall (b : β), Eq.{succ u1} γ (f (HSMul.hSMul.{u3, u2, u2} α β β (instHSMul.{u3, u2} α β _inst_1) a b)) (HSMul.hSMul.{u3, u1, u1} α γ γ (instHSMul.{u3, u1} α γ _inst_2) a (f b))) -> (Eq.{succ u1} (Set.{u1} γ) (Set.image.{u2, u1} β γ f (HSMul.hSMul.{u3, u2, u2} α (Set.{u2} β) (Set.{u2} β) (instHSMul.{u3, u2} α (Set.{u2} β) (Set.smulSet.{u3, u2} α β _inst_1)) a s)) (HSMul.hSMul.{u3, u1, u1} α (Set.{u1} γ) (Set.{u1} γ) (instHSMul.{u3, u1} α (Set.{u1} γ) (Set.smulSet.{u3, u1} α γ _inst_2)) a (Set.image.{u2, u1} β γ f s)))
+Case conversion may be inaccurate. Consider using '#align set.image_smul_comm Set.image_smul_commₓ'. -/
 @[to_additive]
 theorem image_smul_comm [SMul α β] [SMul α γ] (f : β → γ) (a : α) (s : Set β) :
     (∀ b, f (a • b) = a • f b) → f '' (a • s) = a • f '' s :=
@@ -1126,6 +1132,12 @@ theorem image_smul_comm [SMul α β] [SMul α γ] (f : β → γ) (a : α) (s :
 #align set.image_smul_comm Set.image_smul_comm
 #align set.image_vadd_comm Set.image_vadd_comm
 
+/- warning: set.image_smul_distrib -> Set.image_smul_distrib is a dubious translation:
+lean 3 declaration is
+  forall {F : Type.{u1}} {α : Type.{u2}} {β : Type.{u3}} [_inst_1 : MulOneClass.{u2} α] [_inst_2 : MulOneClass.{u3} β] [_inst_3 : MonoidHomClass.{u1, u2, u3} F α β _inst_1 _inst_2] (f : F) (a : α) (s : Set.{u2} α), Eq.{succ u3} (Set.{u3} β) (Set.image.{u2, u3} α β (coeFn.{succ u1, max (succ u2) (succ u3)} F (fun (_x : F) => α -> β) (FunLike.hasCoeToFun.{succ u1, succ u2, succ u3} F α (fun (_x : α) => β) (MulHomClass.toFunLike.{u1, u2, u3} F α β (MulOneClass.toHasMul.{u2} α _inst_1) (MulOneClass.toHasMul.{u3} β _inst_2) (MonoidHomClass.toMulHomClass.{u1, u2, u3} F α β _inst_1 _inst_2 _inst_3))) f) (SMul.smul.{u2, u2} α (Set.{u2} α) (Set.smulSet.{u2, u2} α α (Mul.toSMul.{u2} α (MulOneClass.toHasMul.{u2} α _inst_1))) a s)) (SMul.smul.{u3, u3} β (Set.{u3} β) (Set.smulSet.{u3, u3} β β (Mul.toSMul.{u3} β (MulOneClass.toHasMul.{u3} β _inst_2))) (coeFn.{succ u1, max (succ u2) (succ u3)} F (fun (_x : F) => α -> β) (FunLike.hasCoeToFun.{succ u1, succ u2, succ u3} F α (fun (_x : α) => β) (MulHomClass.toFunLike.{u1, u2, u3} F α β (MulOneClass.toHasMul.{u2} α _inst_1) (MulOneClass.toHasMul.{u3} β _inst_2) (MonoidHomClass.toMulHomClass.{u1, u2, u3} F α β _inst_1 _inst_2 _inst_3))) f a) (Set.image.{u2, u3} α β (coeFn.{succ u1, max (succ u2) (succ u3)} F (fun (_x : F) => α -> β) (FunLike.hasCoeToFun.{succ u1, succ u2, succ u3} F α (fun (_x : α) => β) (MulHomClass.toFunLike.{u1, u2, u3} F α β (MulOneClass.toHasMul.{u2} α _inst_1) (MulOneClass.toHasMul.{u3} β _inst_2) (MonoidHomClass.toMulHomClass.{u1, u2, u3} F α β _inst_1 _inst_2 _inst_3))) f) s))
+but is expected to have type
+  forall {F : Type.{u1}} {α : Type.{u3}} {β : Type.{u2}} [_inst_1 : MulOneClass.{u3} α] [_inst_2 : MulOneClass.{u2} β] [_inst_3 : MonoidHomClass.{u1, u3, u2} F α β _inst_1 _inst_2] (f : F) (a : α) (s : Set.{u3} α), Eq.{succ u2} (Set.{u2} β) (Set.image.{u3, u2} α β (FunLike.coe.{succ u1, succ u3, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => β) _x) (MulHomClass.toFunLike.{u1, u3, u2} F α β (MulOneClass.toMul.{u3} α _inst_1) (MulOneClass.toMul.{u2} β _inst_2) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F α β _inst_1 _inst_2 _inst_3)) f) (HSMul.hSMul.{u3, u3, u3} α (Set.{u3} α) (Set.{u3} α) (instHSMul.{u3, u3} α (Set.{u3} α) (Set.smulSet.{u3, u3} α α (Mul.toSMul.{u3} α (MulOneClass.toMul.{u3} α _inst_1)))) a s)) (HSMul.hSMul.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => β) a) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => β) a) (Set.{u2} β) (Set.smulSet.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => β) a) β (Mul.toSMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => β) a) (MulOneClass.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => β) a) _inst_2)))) (FunLike.coe.{succ u1, succ u3, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => β) _x) (MulHomClass.toFunLike.{u1, u3, u2} F α β (MulOneClass.toMul.{u3} α _inst_1) (MulOneClass.toMul.{u2} β _inst_2) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F α β _inst_1 _inst_2 _inst_3)) f a) (Set.image.{u3, u2} α β (FunLike.coe.{succ u1, succ u3, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => β) _x) (MulHomClass.toFunLike.{u1, u3, u2} F α β (MulOneClass.toMul.{u3} α _inst_1) (MulOneClass.toMul.{u2} β _inst_2) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F α β _inst_1 _inst_2 _inst_3)) f) s))
+Case conversion may be inaccurate. Consider using '#align set.image_smul_distrib Set.image_smul_distribₓ'. -/
 @[to_additive]
 theorem image_smul_distrib [MulOneClass α] [MulOneClass β] [MonoidHomClass F α β] (f : F) (a : α)
     (s : Set α) : f '' (a • s) = f a • f '' s :=
Diff
@@ -4,12 +4,12 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johan Commelin, Floris van Doorn
 
 ! This file was ported from Lean 3 source module data.set.pointwise.smul
-! leanprover-community/mathlib commit 517cc149e0b515d2893baa376226ed10feb319c7
+! leanprover-community/mathlib commit c227d107bbada5d0d9d20287e3282c0a7f1651a0
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
 import Mathbin.Algebra.Module.Basic
-import Mathbin.Data.Set.Pairwise
+import Mathbin.Data.Set.Pairwise.Lattice
 import Mathbin.Data.Set.Pointwise.Basic
 import Mathbin.Tactic.ByContra
 
@@ -1662,7 +1662,7 @@ variable [Ring α] [AddCommGroup β] [Module α β] (a : α) (s : Set α) (t : S
 
 /- warning: set.neg_smul_set -> Set.neg_smul_set is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Ring.{u1} α] [_inst_2 : AddCommGroup.{u2} β] [_inst_3 : Module.{u1, u2} α β (Ring.toSemiring.{u1} α _inst_1) (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)] (a : α) (t : Set.{u2} β), Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α _inst_1)) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α _inst_1) (AddCommGroup.toAddCommMonoid.{u2} β _inst_2) _inst_3))))) (Neg.neg.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (NonAssocRing.toAddGroupWithOne.{u1} α (Ring.toNonAssocRing.{u1} α _inst_1))))) a) t) (Neg.neg.{u2} (Set.{u2} β) (Set.neg.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_2)))) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α _inst_1)) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α _inst_1) (AddCommGroup.toAddCommMonoid.{u2} β _inst_2) _inst_3))))) a t))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Ring.{u1} α] [_inst_2 : AddCommGroup.{u2} β] [_inst_3 : Module.{u1, u2} α β (Ring.toSemiring.{u1} α _inst_1) (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)] (a : α) (t : Set.{u2} β), Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α _inst_1)) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α _inst_1) (AddCommGroup.toAddCommMonoid.{u2} β _inst_2) _inst_3))))) (Neg.neg.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α _inst_1))))) a) t) (Neg.neg.{u2} (Set.{u2} β) (Set.neg.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_2)))) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α _inst_1)) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α _inst_1) (AddCommGroup.toAddCommMonoid.{u2} β _inst_2) _inst_3))))) a t))
 but is expected to have type
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Ring.{u1} α] [_inst_2 : AddCommGroup.{u2} β] [_inst_3 : Module.{u1, u2} α β (Ring.toSemiring.{u1} α _inst_1) (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)] (a : α) (t : Set.{u2} β), Eq.{succ u2} (Set.{u2} β) (HSMul.hSMul.{u1, u2, u2} α (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (SMulZeroClass.toSMul.{u1, u2} α β (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} α β (MonoidWithZero.toZero.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α _inst_1))) (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α _inst_1)) (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α _inst_1) (AddCommGroup.toAddCommMonoid.{u2} β _inst_2) _inst_3)))))) (Neg.neg.{u1} α (Ring.toNeg.{u1} α _inst_1) a) t) (Neg.neg.{u2} (Set.{u2} β) (Set.neg.{u2} β (NegZeroClass.toNeg.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β _inst_2)))))) (HSMul.hSMul.{u1, u2, u2} α (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (SMulZeroClass.toSMul.{u1, u2} α β (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} α β (MonoidWithZero.toZero.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α _inst_1))) (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α _inst_1)) (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α _inst_1) (AddCommGroup.toAddCommMonoid.{u2} β _inst_2) _inst_3)))))) a t))
 Case conversion may be inaccurate. Consider using '#align set.neg_smul_set Set.neg_smul_setₓ'. -/
@@ -1673,7 +1673,7 @@ theorem neg_smul_set : -a • t = -(a • t) := by
 
 /- warning: set.neg_smul -> Set.neg_smul is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Ring.{u1} α] [_inst_2 : AddCommGroup.{u2} β] [_inst_3 : Module.{u1, u2} α β (Ring.toSemiring.{u1} α _inst_1) (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)] (s : Set.{u1} α) (t : Set.{u2} β), Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α _inst_1)) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α _inst_1) (AddCommGroup.toAddCommMonoid.{u2} β _inst_2) _inst_3))))) (Neg.neg.{u1} (Set.{u1} α) (Set.neg.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (NonAssocRing.toAddGroupWithOne.{u1} α (Ring.toNonAssocRing.{u1} α _inst_1)))))) s) t) (Neg.neg.{u2} (Set.{u2} β) (Set.neg.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_2)))) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α _inst_1)) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α _inst_1) (AddCommGroup.toAddCommMonoid.{u2} β _inst_2) _inst_3))))) s t))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Ring.{u1} α] [_inst_2 : AddCommGroup.{u2} β] [_inst_3 : Module.{u1, u2} α β (Ring.toSemiring.{u1} α _inst_1) (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)] (s : Set.{u1} α) (t : Set.{u2} β), Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α _inst_1)) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α _inst_1) (AddCommGroup.toAddCommMonoid.{u2} β _inst_2) _inst_3))))) (Neg.neg.{u1} (Set.{u1} α) (Set.neg.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α _inst_1)))))) s) t) (Neg.neg.{u2} (Set.{u2} β) (Set.neg.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_2)))) (SMul.smul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α _inst_1)) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α _inst_1) (AddCommGroup.toAddCommMonoid.{u2} β _inst_2) _inst_3))))) s t))
 but is expected to have type
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Ring.{u1} α] [_inst_2 : AddCommGroup.{u2} β] [_inst_3 : Module.{u1, u2} α β (Ring.toSemiring.{u1} α _inst_1) (AddCommGroup.toAddCommMonoid.{u2} β _inst_2)] (s : Set.{u1} α) (t : Set.{u2} β), Eq.{succ u2} (Set.{u2} β) (HSMul.hSMul.{u1, u2, u2} (Set.{u1} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β (SMulZeroClass.toSMul.{u1, u2} α β (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} α β (MonoidWithZero.toZero.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α _inst_1))) (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α _inst_1)) (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α _inst_1) (AddCommGroup.toAddCommMonoid.{u2} β _inst_2) _inst_3)))))) (Neg.neg.{u1} (Set.{u1} α) (Set.neg.{u1} α (Ring.toNeg.{u1} α _inst_1)) s) t) (Neg.neg.{u2} (Set.{u2} β) (Set.neg.{u2} β (NegZeroClass.toNeg.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β _inst_2)))))) (HSMul.hSMul.{u1, u2, u2} (Set.{u1} α) (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} (Set.{u1} α) (Set.{u2} β) (Set.smul.{u1, u2} α β (SMulZeroClass.toSMul.{u1, u2} α β (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} α β (MonoidWithZero.toZero.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α _inst_1))) (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α _inst_1)) (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α _inst_1) (AddCommGroup.toAddCommMonoid.{u2} β _inst_2) _inst_3)))))) s t))
 Case conversion may be inaccurate. Consider using '#align set.neg_smul Set.neg_smulₓ'. -/
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johan Commelin, Floris van Doorn
 
 ! This file was ported from Lean 3 source module data.set.pointwise.smul
-! leanprover-community/mathlib commit f2f413b9d4be3a02840d0663dace76e8fe3da053
+! leanprover-community/mathlib commit 517cc149e0b515d2893baa376226ed10feb319c7
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -1119,6 +1119,20 @@ end Vsub
 
 open Pointwise
 
+@[to_additive]
+theorem image_smul_comm [SMul α β] [SMul α γ] (f : β → γ) (a : α) (s : Set β) :
+    (∀ b, f (a • b) = a • f b) → f '' (a • s) = a • f '' s :=
+  image_comm
+#align set.image_smul_comm Set.image_smul_comm
+#align set.image_vadd_comm Set.image_vadd_comm
+
+@[to_additive]
+theorem image_smul_distrib [MulOneClass α] [MulOneClass β] [MonoidHomClass F α β] (f : F) (a : α)
+    (s : Set α) : f '' (a • s) = f a • f '' s :=
+  image_comm <| map_mul _ _
+#align set.image_smul_distrib Set.image_smul_distrib
+#align set.image_vadd_distrib Set.image_vadd_distrib
+
 section SMulWithZero
 
 variable [Zero α] [Zero β] [SMulWithZero α β] {s : Set α} {t : Set β}
Diff
@@ -1358,7 +1358,7 @@ theorem smul_set_sdiff : a • (s \ t) = a • s \ a • t :=
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Group.{u1} α] [_inst_2 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))] {s : Set.{u2} β} {t : Set.{u2} β} {a : α}, Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2)) a (symmDiff.{u2} (Set.{u2} β) (SemilatticeSup.toHasSup.{u2} (Set.{u2} β) (Lattice.toSemilatticeSup.{u2} (Set.{u2} β) (CompleteLattice.toLattice.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (BooleanAlgebra.toHasSdiff.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s t)) (symmDiff.{u2} (Set.{u2} β) (SemilatticeSup.toHasSup.{u2} (Set.{u2} β) (Lattice.toSemilatticeSup.{u2} (Set.{u2} β) (CompleteLattice.toLattice.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (BooleanAlgebra.toHasSdiff.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2)) a s) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2)) a t))
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Group.{u1} α] [_inst_2 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))] {s : Set.{u2} β} {t : Set.{u2} β} {a : α}, Eq.{succ u2} (Set.{u2} β) (HSMul.hSMul.{u1, u2, u2} α (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2))) a (symmDiff.{u2} (Set.{u2} β) (SemilatticeSup.toHasSup.{u2} (Set.{u2} β) (Lattice.toSemilatticeSup.{u2} (Set.{u2} β) (CompleteLattice.toLattice.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) (Set.instSDiffSet.{u2} β) s t)) (symmDiff.{u2} (Set.{u2} β) (SemilatticeSup.toHasSup.{u2} (Set.{u2} β) (Lattice.toSemilatticeSup.{u2} (Set.{u2} β) (CompleteLattice.toLattice.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) (Set.instSDiffSet.{u2} β) (HSMul.hSMul.{u1, u2, u2} α (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2))) a s) (HSMul.hSMul.{u1, u2, u2} α (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2))) a t))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Group.{u1} α] [_inst_2 : MulAction.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))] {s : Set.{u2} β} {t : Set.{u2} β} {a : α}, Eq.{succ u2} (Set.{u2} β) (HSMul.hSMul.{u1, u2, u2} α (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2))) a (symmDiff.{u2} (Set.{u2} β) (SemilatticeSup.toSup.{u2} (Set.{u2} β) (Lattice.toSemilatticeSup.{u2} (Set.{u2} β) (CompleteLattice.toLattice.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) (Set.instSDiffSet.{u2} β) s t)) (symmDiff.{u2} (Set.{u2} β) (SemilatticeSup.toSup.{u2} (Set.{u2} β) (Lattice.toSemilatticeSup.{u2} (Set.{u2} β) (CompleteLattice.toLattice.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) (Set.instSDiffSet.{u2} β) (HSMul.hSMul.{u1, u2, u2} α (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2))) a s) (HSMul.hSMul.{u1, u2, u2} α (Set.{u2} β) (Set.{u2} β) (instHSMul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toSMul.{u1, u2} α β (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)) _inst_2))) a t))
 Case conversion may be inaccurate. Consider using '#align set.smul_set_symm_diff Set.smul_set_symm_diffₓ'. -/
 @[to_additive]
 theorem smul_set_symm_diff : a • s ∆ t = (a • s) ∆ (a • t) :=
@@ -1573,7 +1573,7 @@ theorem smul_set_sdiff₀ (ha : a ≠ 0) : a • (s \ t) = a • s \ a • t :=
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : GroupWithZero.{u1} α] [_inst_2 : MulAction.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1))] {s : Set.{u2} β} {t : Set.{u2} β} {a : α}, (Ne.{succ u1} α a (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)))))))) -> (Eq.{succ u2} (Set.{u2} β) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)) _inst_2)) a (symmDiff.{u2} (Set.{u2} β) (SemilatticeSup.toHasSup.{u2} (Set.{u2} β) (Lattice.toSemilatticeSup.{u2} (Set.{u2} β) (CompleteLattice.toLattice.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (BooleanAlgebra.toHasSdiff.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s t)) (symmDiff.{u2} (Set.{u2} β) (SemilatticeSup.toHasSup.{u2} (Set.{u2} β) (Lattice.toSemilatticeSup.{u2} (Set.{u2} β) (CompleteLattice.toLattice.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (BooleanAlgebra.toHasSdiff.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)) _inst_2)) a s) (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β (MulAction.toHasSmul.{u1, u2} α β (MonoidWithZero.toMonoid.{u1} α (GroupWithZero.toMonoidWithZero.{u1} α _inst_1)) _inst_2)) a t)))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : GroupWithZero.{u2} α] [_inst_2 : MulAction.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1))] {s : Set.{u1} β} {t : Set.{u1} β} {a : α}, (Ne.{succ u2} α a (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (MonoidWithZero.toZero.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1))))) -> (Eq.{succ u1} (Set.{u1} β) (HSMul.hSMul.{u2, u1, u1} α (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} α (Set.{u1} β) (Set.smulSet.{u2, u1} α β (MulAction.toSMul.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1)) _inst_2))) a (symmDiff.{u1} (Set.{u1} β) (SemilatticeSup.toHasSup.{u1} (Set.{u1} β) (Lattice.toSemilatticeSup.{u1} (Set.{u1} β) (CompleteLattice.toLattice.{u1} (Set.{u1} β) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} β) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} β) (Set.instCompleteBooleanAlgebraSet.{u1} β))))))) (Set.instSDiffSet.{u1} β) s t)) (symmDiff.{u1} (Set.{u1} β) (SemilatticeSup.toHasSup.{u1} (Set.{u1} β) (Lattice.toSemilatticeSup.{u1} (Set.{u1} β) (CompleteLattice.toLattice.{u1} (Set.{u1} β) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} β) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} β) (Set.instCompleteBooleanAlgebraSet.{u1} β))))))) (Set.instSDiffSet.{u1} β) (HSMul.hSMul.{u2, u1, u1} α (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} α (Set.{u1} β) (Set.smulSet.{u2, u1} α β (MulAction.toSMul.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1)) _inst_2))) a s) (HSMul.hSMul.{u2, u1, u1} α (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} α (Set.{u1} β) (Set.smulSet.{u2, u1} α β (MulAction.toSMul.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1)) _inst_2))) a t)))
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : GroupWithZero.{u2} α] [_inst_2 : MulAction.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1))] {s : Set.{u1} β} {t : Set.{u1} β} {a : α}, (Ne.{succ u2} α a (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (MonoidWithZero.toZero.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1))))) -> (Eq.{succ u1} (Set.{u1} β) (HSMul.hSMul.{u2, u1, u1} α (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} α (Set.{u1} β) (Set.smulSet.{u2, u1} α β (MulAction.toSMul.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1)) _inst_2))) a (symmDiff.{u1} (Set.{u1} β) (SemilatticeSup.toSup.{u1} (Set.{u1} β) (Lattice.toSemilatticeSup.{u1} (Set.{u1} β) (CompleteLattice.toLattice.{u1} (Set.{u1} β) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} β) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} β) (Set.instCompleteBooleanAlgebraSet.{u1} β))))))) (Set.instSDiffSet.{u1} β) s t)) (symmDiff.{u1} (Set.{u1} β) (SemilatticeSup.toSup.{u1} (Set.{u1} β) (Lattice.toSemilatticeSup.{u1} (Set.{u1} β) (CompleteLattice.toLattice.{u1} (Set.{u1} β) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} β) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} β) (Set.instCompleteBooleanAlgebraSet.{u1} β))))))) (Set.instSDiffSet.{u1} β) (HSMul.hSMul.{u2, u1, u1} α (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} α (Set.{u1} β) (Set.smulSet.{u2, u1} α β (MulAction.toSMul.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1)) _inst_2))) a s) (HSMul.hSMul.{u2, u1, u1} α (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} α (Set.{u1} β) (Set.smulSet.{u2, u1} α β (MulAction.toSMul.{u2, u1} α β (MonoidWithZero.toMonoid.{u2} α (GroupWithZero.toMonoidWithZero.{u2} α _inst_1)) _inst_2))) a t)))
 Case conversion may be inaccurate. Consider using '#align set.smul_set_symm_diff₀ Set.smul_set_symm_diff₀ₓ'. -/
 theorem smul_set_symm_diff₀ (ha : a ≠ 0) : a • s ∆ t = (a • s) ∆ (a • t) :=
   image_symm_diff (MulAction.injective₀ ha) _ _

Changes in mathlib4

mathlib3
mathlib4
chore: split Algebra.Module.Basic (#12501)

Similar to #12486, which did this for Algebra.Algebra.Basic.

Splits Algebra.Module.Defs off Algebra.Module.Basic. Most imports only need the Defs file, which has significantly smaller imports. The remaining Algebra.Module.Basic is now a grab-bag of unrelated results, and should probably be split further or rehomed.

This is mostly motivated by the wasted effort during minimization upon encountering Algebra.Module.Basic.

Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com>

Diff
@@ -3,9 +3,10 @@ Copyright (c) 2019 Johan Commelin. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johan Commelin, Floris van Doorn
 -/
-import Mathlib.Algebra.Module.Basic
+import Mathlib.Algebra.Module.Defs
 import Mathlib.Data.Set.Image
 import Mathlib.Data.Set.Pointwise.Basic
+import Mathlib.GroupTheory.GroupAction.Group
 
 #align_import data.set.pointwise.smul from "leanprover-community/mathlib"@"5e526d18cea33550268dcbbddcb822d5cde40654"
 
chore: avoid Ne.def (adaptation for nightly-2024-03-27) (#11801)
Diff
@@ -573,7 +573,7 @@ instance [Zero α] [Zero β] [SMul α β] [NoZeroSMulDivisors α β] :
   ⟨fun {s t} h ↦ by
     by_contra! H
     have hst : (s • t).Nonempty := h.symm.subst zero_nonempty
-    rw [Ne.def, ← hst.of_smul_left.subset_zero_iff, Ne.def,
+    rw [Ne, ← hst.of_smul_left.subset_zero_iff, Ne,
       ← hst.of_smul_right.subset_zero_iff] at H
     simp only [not_subset, mem_zero] at H
     obtain ⟨⟨a, hs, ha⟩, b, ht, hb⟩ := H
@@ -584,7 +584,7 @@ instance noZeroSMulDivisors_set [Zero α] [Zero β] [SMul α β] [NoZeroSMulDivi
   ⟨fun {a s} h ↦ by
     by_contra! H
     have hst : (a • s).Nonempty := h.symm.subst zero_nonempty
-    rw [Ne.def, Ne.def, ← hst.of_image.subset_zero_iff, not_subset] at H
+    rw [Ne, Ne, ← hst.of_image.subset_zero_iff, not_subset] at H
     obtain ⟨ha, b, ht, hb⟩ := H
     exact (eq_zero_or_eq_zero_of_smul_eq_zero <| h.subset <| smul_mem_smul_set ht).elim ha hb⟩
 #align set.no_zero_smul_divisors_set Set.noZeroSMulDivisors_set
chore: classify new lemma porting notes (#11217)

Classifies by adding issue number #10756 to porting notes claiming anything semantically equivalent to:

  • "new lemma"
  • "added lemma"
Diff
@@ -1135,7 +1135,7 @@ section Semiring
 
 variable [Semiring α] [AddCommMonoid β] [Module α β]
 
--- Porting note: new lemma
+-- Porting note (#10756): new lemma
 theorem add_smul_subset (a b : α) (s : Set β) : (a + b) • s ⊆ a • s + b • s := by
   rintro _ ⟨x, hx, rfl⟩
   simpa only [add_smul] using add_mem_add (smul_mem_smul_set hx) (smul_mem_smul_set hx)
style: homogenise porting notes (#11145)

Homogenises porting notes via capitalisation and addition of whitespace.

It makes the following changes:

  • converts "--porting note" into "-- Porting note";
  • converts "porting note" into "Porting note".
Diff
@@ -1135,7 +1135,7 @@ section Semiring
 
 variable [Semiring α] [AddCommMonoid β] [Module α β]
 
--- porting note: new lemma
+-- Porting note: new lemma
 theorem add_smul_subset (a b : α) (s : Set β) : (a + b) • s ⊆ a • s + b • s := by
   rintro _ ⟨x, hx, rfl⟩
   simpa only [add_smul] using add_mem_add (smul_mem_smul_set hx) (smul_mem_smul_set hx)
feat: smul_set_disjoint_iff (#10703)

Add a simp lemma about the group action on a set: Disjoint (a • s) (a • t) ↔ Disjoint s t.

From AperiodicMonotilesLean.

Diff
@@ -1030,6 +1030,10 @@ lemma inv_smul_set_distrib (a : α) (s : Set α) : (a • s)⁻¹ = op a⁻¹ 
 lemma inv_op_smul_set_distrib (a : α) (s : Set α) : (op a • s)⁻¹ = a⁻¹ • s⁻¹ := by
   ext; simp [mem_smul_set_iff_inv_smul_mem]
 
+@[to_additive (attr := simp)]
+lemma smul_set_disjoint_iff : Disjoint (a • s) (a • t) ↔ Disjoint s t := by
+  simp [disjoint_iff, ← smul_set_inter]
+
 end Group
 
 section GroupWithZero
feat(GroupTheory/GroupAction): new FixedPoints module with a few basic properties of fixedBy (#9477)

Introduces a new module, Mathlib.GroupTheory.GroupAction.FixedPoints, which contains some properties of MulAction.fixedBy that wouldn't quite belong to Mathlib.GroupTheory.GroupAction.Basic.

Diff
@@ -972,6 +972,10 @@ theorem smul_univ {s : Set α} (hs : s.Nonempty) : s • (univ : Set β) = univ
 #align set.smul_univ Set.smul_univ
 #align set.vadd_univ Set.vadd_univ
 
+@[to_additive]
+theorem smul_set_compl : a • sᶜ = (a • s)ᶜ := by
+  simp_rw [Set.compl_eq_univ_diff, smul_set_sdiff, smul_set_univ]
+
 @[to_additive]
 theorem smul_inter_ne_empty_iff {s t : Set α} {x : α} :
     x • s ∩ t ≠ ∅ ↔ ∃ a b, (a ∈ t ∧ b ∈ s) ∧ a * b⁻¹ = x := by
refactor(Data/FunLike): use unbundled inheritance from FunLike (#8386)

The FunLike hierarchy is very big and gets scanned through each time we need a coercion (via the CoeFun instance). It looks like unbundled inheritance suits Lean 4 better here. The only class that still extends FunLike is EquivLike, since that has a custom coe_injective' field that is easier to implement. All other classes should take FunLike or EquivLike as a parameter.

Zulip thread

Important changes

Previously, morphism classes would be Type-valued and extend FunLike:

/-- `MyHomClass F A B` states that `F` is a type of `MyClass.op`-preserving morphisms.
You should extend this class when you extend `MyHom`. -/
class MyHomClass (F : Type*) (A B : outParam <| Type*) [MyClass A] [MyClass B]
  extends FunLike F A B :=
(map_op : ∀ (f : F) (x y : A), f (MyClass.op x y) = MyClass.op (f x) (f y))

After this PR, they should be Prop-valued and take FunLike as a parameter:

/-- `MyHomClass F A B` states that `F` is a type of `MyClass.op`-preserving morphisms.
You should extend this class when you extend `MyHom`. -/
class MyHomClass (F : Type*) (A B : outParam <| Type*) [MyClass A] [MyClass B]
  [FunLike F A B] : Prop :=
(map_op : ∀ (f : F) (x y : A), f (MyClass.op x y) = MyClass.op (f x) (f y))

(Note that A B stay marked as outParam even though they are not purely required to be so due to the FunLike parameter already filling them in. This is required to see through type synonyms, which is important in the category theory library. Also, I think keeping them as outParam is slightly faster.)

Similarly, MyEquivClass should take EquivLike as a parameter.

As a result, every mention of [MyHomClass F A B] should become [FunLike F A B] [MyHomClass F A B].

Remaining issues

Slower (failing) search

While overall this gives some great speedups, there are some cases that are noticeably slower. In particular, a failing application of a lemma such as map_mul is more expensive. This is due to suboptimal processing of arguments. For example:

variable [FunLike F M N] [Mul M] [Mul N] (f : F) (x : M) (y : M)

theorem map_mul [MulHomClass F M N] : f (x * y) = f x * f y

example [AddHomClass F A B] : f (x * y) = f x * f y := map_mul f _ _

Before this PR, applying map_mul f gives the goals [Mul ?M] [Mul ?N] [MulHomClass F ?M ?N]. Since M and N are out_params, [MulHomClass F ?M ?N] is synthesized first, supplies values for ?M and ?N and then the Mul M and Mul N instances can be found.

After this PR, the goals become [FunLike F ?M ?N] [Mul ?M] [Mul ?N] [MulHomClass F ?M ?N]. Now [FunLike F ?M ?N] is synthesized first, supplies values for ?M and ?N and then the Mul M and Mul N instances can be found, before trying MulHomClass F M N which fails. Since the Mul hierarchy is very big, this can be slow to fail, especially when there is no such Mul instance.

A long-term but harder to achieve solution would be to specify the order in which instance goals get solved. For example, we'd like to change the arguments to map_mul to look like [FunLike F M N] [Mul M] [Mul N] [highPriority <| MulHomClass F M N] because MulHomClass fails or succeeds much faster than the others.

As a consequence, the simpNF linter is much slower since by design it tries and fails to apply many map_ lemmas. The same issue occurs a few times in existing calls to simp [map_mul], where map_mul is tried "too soon" and fails. Thanks to the speedup of leanprover/lean4#2478 the impact is very limited, only in files that already were close to the timeout.

simp not firing sometimes

This affects map_smulₛₗ and related definitions. For simp lemmas Lean apparently uses a slightly different mechanism to find instances, so that rw can find every argument to map_smulₛₗ successfully but simp can't: leanprover/lean4#3701.

Missing instances due to unification failing

Especially in the category theory library, we might sometimes have a type A which is also accessible as a synonym (Bundled A hA).1. Instance synthesis doesn't always work if we have f : A →* B but x * y : (Bundled A hA).1 or vice versa. This seems to be mostly fixed by keeping A B as outParams in MulHomClass F A B. (Presumably because Lean will do a definitional check A =?= (Bundled A hA).1 instead of using the syntax in the discrimination tree.)

Workaround for issues

The timeouts can be worked around for now by specifying which map_mul we mean, either as map_mul f for some explicit f, or as e.g. MonoidHomClass.map_mul.

map_smulₛₗ not firing as simp lemma can be worked around by going back to the pre-FunLike situation and making LinearMap.map_smulₛₗ a simp lemma instead of the generic map_smulₛₗ. Writing simp [map_smulₛₗ _] also works.

Co-authored-by: Matthew Ballard <matt@mrb.email> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Scott Morrison <scott@tqft.net> Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>

Diff
@@ -768,8 +768,9 @@ theorem image_smul_comm [SMul α β] [SMul α γ] (f : β → γ) (a : α) (s :
 #align set.image_vadd_comm Set.image_vadd_comm
 
 @[to_additive]
-theorem image_smul_distrib [MulOneClass α] [MulOneClass β] [MonoidHomClass F α β] (f : F) (a : α)
-    (s : Set α) : f '' (a • s) = f a • f '' s :=
+theorem image_smul_distrib [MulOneClass α] [MulOneClass β] [FunLike F α β] [MonoidHomClass F α β]
+    (f : F) (a : α) (s : Set α) :
+    f '' (a • s) = f a • f '' s :=
   image_comm <| map_mul _ _
 #align set.image_smul_distrib Set.image_smul_distrib
 #align set.image_vadd_distrib Set.image_vadd_distrib
chore: scope symmDiff notations (#9844)

Those notations are not scoped whereas the file is very low in the import hierarchy.

Diff
@@ -951,6 +951,7 @@ theorem smul_set_sdiff : a • (s \ t) = a • s \ a • t :=
 #align set.smul_set_sdiff Set.smul_set_sdiff
 #align set.vadd_set_sdiff Set.vadd_set_sdiff
 
+open scoped symmDiff in
 @[to_additive]
 theorem smul_set_symmDiff : a • s ∆ t = (a • s) ∆ (a • t) :=
   image_symmDiff (MulAction.injective a) _ _
@@ -1072,6 +1073,7 @@ theorem smul_set_sdiff₀ (ha : a ≠ 0) : a • (s \ t) = a • s \ a • t :=
   image_diff (MulAction.injective₀ ha) _ _
 #align set.smul_set_sdiff₀ Set.smul_set_sdiff₀
 
+open scoped symmDiff in
 theorem smul_set_symmDiff₀ (ha : a ≠ 0) : a • s ∆ t = (a • s) ∆ (a • t) :=
   image_symmDiff (MulAction.injective₀ ha) _ _
 #align set.smul_set_symm_diff₀ Set.smul_set_symmDiff₀
chore: reduce imports (#9830)

This uses the improved shake script from #9772 to reduce imports across mathlib. The corresponding noshake.json file has been added to #9772.

Co-authored-by: Mario Carneiro <di.gama@gmail.com>

Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johan Commelin, Floris van Doorn
 -/
 import Mathlib.Algebra.Module.Basic
-import Mathlib.Data.Set.Pairwise.Lattice
+import Mathlib.Data.Set.Image
 import Mathlib.Data.Set.Pointwise.Basic
 
 #align_import data.set.pointwise.smul from "leanprover-community/mathlib"@"5e526d18cea33550268dcbbddcb822d5cde40654"
chore(Data/Finset): drop some Nonempty arguments (#9377)
  • rename Finset.Nonempty.image_iff to Finset.image_nonempty, deprecate the old version;
  • rename Set.nonempty_image_iff to Set.image_nonempty, deprecate the old version;
  • drop unneeded Finset.Nonempty arguments here and there;
  • add versions of some lemmas that assume Nonempty s instead of Nonempty (s.image f) or Nonempty (s.map f).
Diff
@@ -337,7 +337,7 @@ theorem smul_set_eq_empty : a • s = ∅ ↔ s = ∅ :=
 
 @[to_additive (attr := simp)]
 theorem smul_set_nonempty : (a • s).Nonempty ↔ s.Nonempty :=
-  nonempty_image_iff
+  image_nonempty
 #align set.smul_set_nonempty Set.smul_set_nonempty
 #align set.vadd_set_nonempty Set.vadd_set_nonempty
 
feat(*/Pointwise): generalize some lemmas to SMulZeroClass (#9243)
Diff
@@ -789,6 +789,30 @@ theorem op_smul_set_smul_eq_smul_smul_set (a : α) (s : Set β) (t : Set γ)
 
 end SMul
 
+section SMulZeroClass
+
+variable [Zero β] [SMulZeroClass α β] {s : Set α} {t : Set β} {a : α}
+
+theorem smul_zero_subset (s : Set α) : s • (0 : Set β) ⊆ 0 := by simp [subset_def, mem_smul]
+#align set.smul_zero_subset Set.smul_zero_subset
+
+theorem Nonempty.smul_zero (hs : s.Nonempty) : s • (0 : Set β) = 0 :=
+  s.smul_zero_subset.antisymm <| by simpa [mem_smul] using hs
+#align set.nonempty.smul_zero Set.Nonempty.smul_zero
+
+theorem zero_mem_smul_set (h : (0 : β) ∈ t) : (0 : β) ∈ a • t := ⟨0, h, smul_zero _⟩
+#align set.zero_mem_smul_set Set.zero_mem_smul_set
+
+variable [Zero α] [NoZeroSMulDivisors α β]
+
+theorem zero_mem_smul_set_iff (ha : a ≠ 0) : (0 : β) ∈ a • t ↔ (0 : β) ∈ t := by
+  refine' ⟨_, zero_mem_smul_set⟩
+  rintro ⟨b, hb, h⟩
+  rwa [(eq_zero_or_eq_zero_of_smul_eq_zero h).resolve_left ha] at hb
+#align set.zero_mem_smul_set_iff Set.zero_mem_smul_set_iff
+
+end SMulZeroClass
+
 section SMulWithZero
 
 variable [Zero α] [Zero β] [SMulWithZero α β] {s : Set α} {t : Set β}
@@ -798,17 +822,9 @@ Note that we have neither `SMulWithZero α (Set β)` nor `SMulWithZero (Set α)
 because `0 * ∅ ≠ 0`.
 -/
 
-
-theorem smul_zero_subset (s : Set α) : s • (0 : Set β) ⊆ 0 := by simp [subset_def, mem_smul]
-#align set.smul_zero_subset Set.smul_zero_subset
-
 theorem zero_smul_subset (t : Set β) : (0 : Set α) • t ⊆ 0 := by simp [subset_def, mem_smul]
 #align set.zero_smul_subset Set.zero_smul_subset
 
-theorem Nonempty.smul_zero (hs : s.Nonempty) : s • (0 : Set β) = 0 :=
-  s.smul_zero_subset.antisymm <| by simpa [mem_smul] using hs
-#align set.nonempty.smul_zero Set.Nonempty.smul_zero
-
 theorem Nonempty.zero_smul (ht : t.Nonempty) : (0 : Set α) • t = 0 :=
   t.zero_smul_subset.antisymm <| by simpa [mem_smul] using ht
 #align set.nonempty.zero_smul Set.Nonempty.zero_smul
@@ -826,10 +842,6 @@ theorem subsingleton_zero_smul_set (s : Set β) : ((0 : α) • s).Subsingleton
   subsingleton_singleton.anti <| zero_smul_set_subset s
 #align set.subsingleton_zero_smul_set Set.subsingleton_zero_smul_set
 
-theorem zero_mem_smul_set {t : Set β} {a : α} (h : (0 : β) ∈ t) : (0 : β) ∈ a • t :=
-  ⟨0, h, smul_zero _⟩
-#align set.zero_mem_smul_set Set.zero_mem_smul_set
-
 variable [NoZeroSMulDivisors α β] {a : α}
 
 theorem zero_mem_smul_iff :
@@ -844,12 +856,6 @@ theorem zero_mem_smul_iff :
     · exact ⟨a, ha, 0, ht, smul_zero _⟩
 #align set.zero_mem_smul_iff Set.zero_mem_smul_iff
 
-theorem zero_mem_smul_set_iff (ha : a ≠ 0) : (0 : β) ∈ a • t ↔ (0 : β) ∈ t := by
-  refine' ⟨_, zero_mem_smul_set⟩
-  rintro ⟨b, hb, h⟩
-  rwa [(eq_zero_or_eq_zero_of_smul_eq_zero h).resolve_left ha] at hb
-#align set.zero_mem_smul_set_iff Set.zero_mem_smul_set_iff
-
 end SMulWithZero
 
 section Semigroup
refactor(*): change definition of Set.image2 etc (#9275)
  • Redefine Set.image2 to use ∃ a ∈ s, ∃ b ∈ t, f a b = c instead of ∃ a b, a ∈ s ∧ b ∈ t ∧ f a b = c.
  • Redefine Set.seq as Set.image2. The new definition is equal to the old one but rw [Set.seq] gives a different result.
  • Redefine Filter.map₂ to use ∃ u ∈ f, ∃ v ∈ g, image2 m u v ⊆ s instead of ∃ u v, u ∈ f ∧ v ∈ g ∧ ...
  • Update lemmas like Set.mem_image2, Finset.mem_image₂, Set.mem_mul, Finset.mem_div etc

The two reasons to make the change are:

  • ∃ a ∈ s, ∃ b ∈ t, _ is a simp-normal form, and
  • it looks a bit nicer.
Diff
@@ -89,7 +89,7 @@ theorem image_smul_prod : (fun x : α × β ↦ x.fst • x.snd) '' s ×ˢ t = s
 #align set.image_smul_prod Set.image_smul_prod
 
 @[to_additive]
-theorem mem_smul : b ∈ s • t ↔ ∃ x y, x ∈ s ∧ y ∈ t ∧ x • y = b :=
+theorem mem_smul : b ∈ s • t ↔ ∃ x ∈ s, ∃ y ∈ t, x • y = b :=
   Iff.rfl
 #align set.mem_smul Set.mem_smul
 #align set.mem_vadd Set.mem_vadd
@@ -612,7 +612,7 @@ theorem image_vsub_prod : (fun x : β × β ↦ x.fst -ᵥ x.snd) '' s ×ˢ t =
   image_prod _
 #align set.image_vsub_prod Set.image_vsub_prod
 
-theorem mem_vsub : a ∈ s -ᵥ t ↔ ∃ x y, x ∈ s ∧ y ∈ t ∧ x -ᵥ y = a :=
+theorem mem_vsub : a ∈ s -ᵥ t ↔ ∃ x ∈ s, ∃ y ∈ t, x -ᵥ y = a :=
   Iff.rfl
 #align set.mem_vsub Set.mem_vsub
 
@@ -835,13 +835,13 @@ variable [NoZeroSMulDivisors α β] {a : α}
 theorem zero_mem_smul_iff :
     (0 : β) ∈ s • t ↔ (0 : α) ∈ s ∧ t.Nonempty ∨ (0 : β) ∈ t ∧ s.Nonempty := by
   constructor
-  · rintro ⟨a, b, ha, hb, h⟩
+  · rintro ⟨a, ha, b, hb, h⟩
     obtain rfl | rfl := eq_zero_or_eq_zero_of_smul_eq_zero h
     · exact Or.inl ⟨ha, b, hb⟩
     · exact Or.inr ⟨hb, a, ha⟩
   · rintro (⟨hs, b, hb⟩ | ⟨ht, a, ha⟩)
-    · exact ⟨0, b, hs, hb, zero_smul _ _⟩
-    · exact ⟨a, 0, ha, ht, smul_zero _⟩
+    · exact ⟨0, hs, b, hb, zero_smul _ _⟩
+    · exact ⟨a, ha, 0, ht, smul_zero _⟩
 #align set.zero_mem_smul_iff Set.zero_mem_smul_iff
 
 theorem zero_mem_smul_set_iff (ha : a ≠ 0) : (0 : β) ∈ a • t ↔ (0 : β) ∈ t := by
@@ -960,7 +960,7 @@ theorem smul_set_univ : a • (univ : Set β) = univ :=
 @[to_additive (attr := simp)]
 theorem smul_univ {s : Set α} (hs : s.Nonempty) : s • (univ : Set β) = univ :=
   let ⟨a, ha⟩ := hs
-  eq_univ_of_forall fun b ↦ ⟨a, a⁻¹ • b, ha, trivial, smul_inv_smul _ _⟩
+  eq_univ_of_forall fun b ↦ ⟨a, ha, a⁻¹ • b, trivial, smul_inv_smul _ _⟩
 #align set.smul_univ Set.smul_univ
 #align set.vadd_univ Set.vadd_univ
 
@@ -1076,7 +1076,7 @@ theorem smul_set_univ₀ (ha : a ≠ 0) : a • (univ : Set β) = univ :=
 
 theorem smul_univ₀ {s : Set α} (hs : ¬s ⊆ 0) : s • (univ : Set β) = univ :=
   let ⟨a, ha, ha₀⟩ := not_subset.1 hs
-  eq_univ_of_forall fun b ↦ ⟨a, a⁻¹ • b, ha, trivial, smul_inv_smul₀ ha₀ _⟩
+  eq_univ_of_forall fun b ↦ ⟨a, ha, a⁻¹ • b, trivial, smul_inv_smul₀ ha₀ _⟩
 #align set.smul_univ₀ Set.smul_univ₀
 
 theorem smul_univ₀' {s : Set α} (hs : s.Nontrivial) : s • (univ : Set β) = univ :=
feat: (a • s)⁻¹ = s⁻¹ • a⁻¹ (#9199)

and other simple pointwise lemmas for Set and Finset. Also add supporting Fintype.piFinset lemmas and fix the names of two lemmas.

From LeanAPAP and LeanCamCombi

Diff
@@ -814,7 +814,7 @@ theorem Nonempty.zero_smul (ht : t.Nonempty) : (0 : Set α) • t = 0 :=
 #align set.nonempty.zero_smul Set.Nonempty.zero_smul
 
 /-- A nonempty set is scaled by zero to the singleton set containing 0. -/
-theorem zero_smul_set {s : Set β} (h : s.Nonempty) : (0 : α) • s = (0 : Set β) := by
+@[simp] theorem zero_smul_set {s : Set β} (h : s.Nonempty) : (0 : α) • s = (0 : Set β) := by
   simp only [← image_smul, image_eta, zero_smul, h.image_const, singleton_zero]
 #align set.zero_smul_set Set.zero_smul_set
 
@@ -1010,6 +1010,14 @@ theorem iUnion_smul_eq_setOf_exists {s : Set β} : ⋃ g : α, g • s = { a | 
 #align set.Union_smul_eq_set_of_exists Set.iUnion_smul_eq_setOf_exists
 #align set.Union_vadd_eq_set_of_exists Set.iUnion_vadd_eq_setOf_exists
 
+@[to_additive (attr := simp)]
+lemma inv_smul_set_distrib (a : α) (s : Set α) : (a • s)⁻¹ = op a⁻¹ • s⁻¹ := by
+  ext; simp [mem_smul_set_iff_inv_smul_mem]
+
+@[to_additive (attr := simp)]
+lemma inv_op_smul_set_distrib (a : α) (s : Set α) : (op a • s)⁻¹ = a⁻¹ • s⁻¹ := by
+  ext; simp [mem_smul_set_iff_inv_smul_mem]
+
 end Group
 
 section GroupWithZero
@@ -1075,6 +1083,18 @@ theorem smul_univ₀' {s : Set α} (hs : s.Nontrivial) : s • (univ : Set β) =
   smul_univ₀ hs.not_subset_singleton
 #align set.smul_univ₀' Set.smul_univ₀'
 
+@[simp] protected lemma inv_zero : (0 : Set α)⁻¹ = 0 := by ext; simp
+
+@[simp] lemma inv_smul_set_distrib₀ (a : α) (s : Set α) : (a • s)⁻¹ = op a⁻¹ • s⁻¹ := by
+  obtain rfl | ha := eq_or_ne a 0
+  · obtain rfl | hs := s.eq_empty_or_nonempty <;> simp [*]
+  · ext; simp [mem_smul_set_iff_inv_smul_mem₀, *]
+
+@[simp] lemma inv_op_smul_set_distrib₀ (a : α) (s : Set α) : (op a • s)⁻¹ = a⁻¹ • s⁻¹ := by
+  obtain rfl | ha := eq_or_ne a 0
+  · obtain rfl | hs := s.eq_empty_or_nonempty <;> simp [*]
+  · ext; simp [mem_smul_set_iff_inv_smul_mem₀, *]
+
 end GroupWithZero
 
 section Monoid
feat(Set/NAry): add Set.image2_range (#9220)

Generalize Set.range_smul_range to any Set.image2.

Diff
@@ -445,11 +445,7 @@ variable {s s₁ s₂ : Set α} {t t₁ t₂ : Set β} {a : α} {b : β}
 @[to_additive]
 theorem range_smul_range {ι κ : Type*} [SMul α β] (b : ι → α) (c : κ → β) :
     range b • range c = range fun p : ι × κ ↦ b p.1 • c p.2 :=
-  ext fun _x ↦
-    ⟨fun hx ↦
-      let ⟨_p, _q, ⟨i, hi⟩, ⟨j, hj⟩, hpq⟩ := Set.mem_smul.1 hx
-      ⟨(i, j), hpq ▸ hi ▸ hj ▸ rfl⟩,
-      fun ⟨⟨i, j⟩, h⟩ ↦ Set.mem_smul.2 ⟨b i, c j, ⟨i, rfl⟩, ⟨j, rfl⟩, h⟩⟩
+  image2_range ..
 #align set.range_smul_range Set.range_smul_range
 #align set.range_vadd_range Set.range_vadd_range
 
chore: Nsmul -> NSMul, Zpow -> ZPow, etc (#9067)

Normalising to naming convention rule number 6.

Diff
@@ -489,26 +489,26 @@ instance smulCommClass [SMul α γ] [SMul β γ] [SMulCommClass α β γ] :
 #align set.smul_comm_class Set.smulCommClass
 #align set.vadd_comm_class Set.vaddCommClass
 
-@[to_additive vAddAssocClass]
+@[to_additive vaddAssocClass]
 instance isScalarTower [SMul α β] [SMul α γ] [SMul β γ] [IsScalarTower α β γ] :
     IsScalarTower α β (Set γ) where
   smul_assoc a b T := by simp only [← image_smul, image_image, smul_assoc]
 #align set.is_scalar_tower Set.isScalarTower
-#align set.vadd_assoc_class Set.vAddAssocClass
+#align set.vadd_assoc_class Set.vaddAssocClass
 
-@[to_additive vAddAssocClass']
+@[to_additive vaddAssocClass']
 instance isScalarTower' [SMul α β] [SMul α γ] [SMul β γ] [IsScalarTower α β γ] :
     IsScalarTower α (Set β) (Set γ) :=
   ⟨fun _ _ _ ↦ image2_image_left_comm <| smul_assoc _⟩
 #align set.is_scalar_tower' Set.isScalarTower'
-#align set.vadd_assoc_class' Set.vAddAssocClass'
+#align set.vadd_assoc_class' Set.vaddAssocClass'
 
-@[to_additive vAddAssocClass'']
+@[to_additive vaddAssocClass'']
 instance isScalarTower'' [SMul α β] [SMul α γ] [SMul β γ] [IsScalarTower α β γ] :
     IsScalarTower (Set α) (Set β) (Set γ) where
   smul_assoc _ _ _ := image2_assoc smul_assoc
 #align set.is_scalar_tower'' Set.isScalarTower''
-#align set.vadd_assoc_class'' Set.vAddAssocClass''
+#align set.vadd_assoc_class'' Set.vaddAssocClass''
 
 @[to_additive]
 instance isCentralScalar [SMul α β] [SMul αᵐᵒᵖ β] [IsCentralScalar α β] :
chore: Replace (· op ·) a by (a op ·) (#8843)

I used the regex \(\(· (.) ·\) (.)\), replacing with ($2 $1 ·).

Diff
@@ -662,7 +662,7 @@ theorem vsub_singleton (s : Set β) (b : β) : s -ᵥ {b} = (· -ᵥ b) '' s :=
 #align set.vsub_singleton Set.vsub_singleton
 
 @[simp low+1]
-theorem singleton_vsub (t : Set β) (b : β) : {b} -ᵥ t = (· -ᵥ ·) b '' t :=
+theorem singleton_vsub (t : Set β) (b : β) : {b} -ᵥ t = (b -ᵥ ·) '' t :=
   image2_singleton_left
 #align set.singleton_vsub Set.singleton_vsub
 
@@ -716,7 +716,7 @@ theorem union_vsub_inter_subset_union : s₁ ∪ s₂ -ᵥ t₁ ∩ t₂ ⊆ s
   image2_union_inter_subset_union
 #align set.union_vsub_inter_subset_union Set.union_vsub_inter_subset_union
 
-theorem iUnion_vsub_left_image : ⋃ a ∈ s, (· -ᵥ ·) a '' t = s -ᵥ t :=
+theorem iUnion_vsub_left_image : ⋃ a ∈ s, (a -ᵥ ·) '' t = s -ᵥ t :=
   iUnion_image_left _
 #align set.Union_vsub_left_image Set.iUnion_vsub_left_image
 
feat(Set/Pointwise/SMul): add 2 missing instances (#8856)
Diff
@@ -532,23 +532,35 @@ protected def mulAction [Monoid α] [MulAction α β] : MulAction (Set α) (Set
 @[to_additive
       "An additive action of an additive monoid on a type `β` gives an additive action on `Set β`."]
 protected def mulActionSet [Monoid α] [MulAction α β] : MulAction α (Set β) where
-  mul_smul := by
-    intros
-    simp only [← image_smul, image_image, ← mul_smul]
-  one_smul := by
-    intros
-    simp only [← image_smul, one_smul, image_id']
+  mul_smul _ _ _ := by simp only [← image_smul, image_image, ← mul_smul]
+  one_smul _ := by simp only [← image_smul, one_smul, image_id']
 #align set.mul_action_set Set.mulActionSet
 #align set.add_action_set Set.addActionSet
 
 scoped[Pointwise] attribute [instance] Set.mulActionSet Set.addActionSet Set.mulAction Set.addAction
 
+/-- If scalar multiplication by elements of `α` sends `(0 : β)` to zero,
+then the same is true for `(0 : Set β)`. -/
+protected def smulZeroClassSet [Zero β] [SMulZeroClass α β] :
+    SMulZeroClass α (Set β) where
+  smul_zero _ := image_singleton.trans <| by rw [smul_zero, singleton_zero]
+
+scoped[Pointwise] attribute [instance] Set.smulZeroClassSet
+
+/-- If the scalar multiplication `(· • ·) : α → β → β` is distributive,
+then so is `(· • ·) : α → Set β → Set β`. -/
+protected def distribSMulSet [AddZeroClass β] [DistribSMul α β] :
+    DistribSMul α (Set β) where
+  smul_add _ _ _ := image_image2_distrib <| smul_add _
+
+scoped[Pointwise] attribute [instance] Set.distribSMulSet
+
 /-- A distributive multiplicative action of a monoid on an additive monoid `β` gives a distributive
 multiplicative action on `Set β`. -/
 protected def distribMulActionSet [Monoid α] [AddMonoid β] [DistribMulAction α β] :
     DistribMulAction α (Set β) where
-  smul_add _ _ _ := image_image2_distrib <| smul_add _
-  smul_zero _ := image_singleton.trans <| by rw [smul_zero, singleton_zero]
+  smul_add := smul_add
+  smul_zero := smul_zero
 #align set.distrib_mul_action_set Set.distribMulActionSet
 
 /-- A multiplicative action of a monoid on a monoid `β` gives a multiplicative action on `Set β`. -/
chore: rename by_contra' to by_contra! (#8797)

To fit with the "please try harder" convention of ! tactics.

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -563,7 +563,7 @@ scoped[Pointwise] attribute [instance] Set.distribMulActionSet Set.mulDistribMul
 instance [Zero α] [Zero β] [SMul α β] [NoZeroSMulDivisors α β] :
     NoZeroSMulDivisors (Set α) (Set β) :=
   ⟨fun {s t} h ↦ by
-    by_contra' H
+    by_contra! H
     have hst : (s • t).Nonempty := h.symm.subst zero_nonempty
     rw [Ne.def, ← hst.of_smul_left.subset_zero_iff, Ne.def,
       ← hst.of_smul_right.subset_zero_iff] at H
@@ -574,7 +574,7 @@ instance [Zero α] [Zero β] [SMul α β] [NoZeroSMulDivisors α β] :
 instance noZeroSMulDivisors_set [Zero α] [Zero β] [SMul α β] [NoZeroSMulDivisors α β] :
     NoZeroSMulDivisors α (Set β) :=
   ⟨fun {a s} h ↦ by
-    by_contra' H
+    by_contra! H
     have hst : (a • s).Nonempty := h.symm.subst zero_nonempty
     rw [Ne.def, Ne.def, ← hst.of_image.subset_zero_iff, not_subset] at H
     obtain ⟨ha, b, ht, hb⟩ := H
chore(Algebra/Regular/Basic): generalize to IsCancelMul (#8428)

This lets lemmas about cancellative monoids work for cancellative semigroups

Some docstrings have been rewritten, as adjusting the wording was too awkward.

The new .all names are intended to match Commute.all.

Diff
@@ -857,9 +857,9 @@ theorem op_smul_set_mul_eq_mul_smul_set (a : α) (s : Set α) (t : Set α) :
 
 end Semigroup
 
-section LeftCancelSemigroup
+section IsLeftCancelMul
 
-variable [LeftCancelSemigroup α] {s t : Set α}
+variable [Mul α] [IsLeftCancelMul α] {s t : Set α}
 
 @[to_additive]
 theorem pairwiseDisjoint_smul_iff :
@@ -868,7 +868,7 @@ theorem pairwiseDisjoint_smul_iff :
 #align set.pairwise_disjoint_smul_iff Set.pairwiseDisjoint_smul_iff
 #align set.pairwise_disjoint_vadd_iff Set.pairwiseDisjoint_vadd_iff
 
-end LeftCancelSemigroup
+end IsLeftCancelMul
 
 section Group
 
fix: fixes of 3 PRs (#8248)

Fixes mistake introduced in #7976 (ping to @alreadydone that you should use @[to_additive (attr := simp)] and not @[to_additive, simp]) and some namespacing mistakes from my own PRs #7337 and #7755

Diff
@@ -77,9 +77,6 @@ section SMul
 variable {ι : Sort*} {κ : ι → Sort*} [SMul α β] {s s₁ s₂ : Set α} {t t₁ t₂ u : Set β} {a : α}
   {b : β}
 
-/- Porting note: Could `@[simp, to_additive]` be automatically changed to
-`@[to_additive (attr := simp)]`?
--/
 @[to_additive (attr := simp)]
 theorem image2_smul : image2 SMul.smul s t = s • t :=
   rfl
feat: multiplication by closure {1} in topological groups does not change closed and open subsets (#7858)
Diff
@@ -86,7 +86,7 @@ theorem image2_smul : image2 SMul.smul s t = s • t :=
 #align set.image2_smul Set.image2_smul
 #align set.image2_vadd Set.image2_vadd
 
--- @[to_additive add_image_prod] -- Porting note: bug in mathlib3
+@[to_additive vadd_image_prod]
 theorem image_smul_prod : (fun x : α × β ↦ x.fst • x.snd) '' s ×ˢ t = s • t :=
   image_prod _
 #align set.image_smul_prod Set.image_smul_prod
chore: clean up names with iUnion instead of Union (#7550)
Diff
@@ -375,10 +375,10 @@ theorem smul_set_inter_subset : a • (t₁ ∩ t₂) ⊆ a • t₁ ∩ a • t
 #align set.vadd_set_inter_subset Set.vadd_set_inter_subset
 
 @[to_additive]
-theorem smul_set_Union (a : α) (s : ι → Set β) : (a • ⋃ i, s i) = ⋃ i, a • s i :=
+theorem smul_set_iUnion (a : α) (s : ι → Set β) : (a • ⋃ i, s i) = ⋃ i, a • s i :=
   image_iUnion
-#align set.smul_set_Union Set.smul_set_Union
-#align set.vadd_set_Union Set.vadd_set_Union
+#align set.smul_set_Union Set.smul_set_iUnion
+#align set.vadd_set_Union Set.vadd_set_iUnion
 
 @[to_additive]
 theorem smul_set_iUnion₂ (a : α) (s : ∀ i, κ i → Set β) :
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
@@ -38,7 +38,7 @@ Appropriate definitions and results are also transported to the additive theory
 
 open Function MulOpposite
 
-variable {F α β γ : Type _}
+variable {F α β γ : Type*}
 
 namespace Set
 
@@ -74,7 +74,7 @@ scoped[Pointwise] attribute [instance] Set.vaddSet Set.vadd
 
 section SMul
 
-variable {ι : Sort _} {κ : ι → Sort _} [SMul α β] {s s₁ s₂ : Set α} {t t₁ t₂ u : Set β} {a : α}
+variable {ι : Sort*} {κ : ι → Sort*} [SMul α β] {s s₁ s₂ : Set α} {t t₁ t₂ u : Set β} {a : α}
   {b : β}
 
 /- Porting note: Could `@[simp, to_additive]` be automatically changed to
@@ -304,7 +304,7 @@ end SMul
 
 section SMulSet
 
-variable {ι : Sort _} {κ : ι → Sort _} [SMul α β] {s t t₁ t₂ : Set β} {a : α} {b : β} {x y : β}
+variable {ι : Sort*} {κ : ι → Sort*} [SMul α β] {s t t₁ t₂ : Set β} {a : α} {b : β} {x y : β}
 
 @[to_additive]
 theorem image_smul : (fun x ↦ a • x) '' t = a • t :=
@@ -446,7 +446,7 @@ end Mul
 variable {s s₁ s₂ : Set α} {t t₁ t₂ : Set β} {a : α} {b : β}
 
 @[to_additive]
-theorem range_smul_range {ι κ : Type _} [SMul α β] (b : ι → α) (c : κ → β) :
+theorem range_smul_range {ι κ : Type*} [SMul α β] (b : ι → α) (c : κ → β) :
     range b • range c = range fun p : ι × κ ↦ b p.1 • c p.2 :=
   ext fun _x ↦
     ⟨fun hx ↦
@@ -457,7 +457,7 @@ theorem range_smul_range {ι κ : Type _} [SMul α β] (b : ι → α) (c : κ 
 #align set.range_vadd_range Set.range_vadd_range
 
 @[to_additive]
-theorem smul_set_range [SMul α β] {ι : Sort _} {f : ι → β} :
+theorem smul_set_range [SMul α β] {ι : Sort*} {f : ι → β} :
     a • range f = range fun i ↦ a • f i :=
   (range_comp _ _).symm
 #align set.smul_set_range Set.smul_set_range
@@ -591,7 +591,7 @@ end SMul
 
 section VSub
 
-variable {ι : Sort _} {κ : ι → Sort _} [VSub α β] {s s₁ s₂ t t₁ t₂ : Set β} {u : Set α} {a : α}
+variable {ι : Sort*} {κ : ι → Sort*} [VSub α β] {s s₁ s₂ t t₁ t₂ : Set β} {u : Set α} {a : α}
   {b c : β}
 
 instance vsub : VSub (Set α) (Set β) :=
feat: add MeasureTheory.MeasurePreserving.measure_symmDiff_preimage_iterate_le (#6175)

Also some minor loosely-related other changes.

Diff
@@ -941,10 +941,10 @@ theorem smul_set_sdiff : a • (s \ t) = a • s \ a • t :=
 #align set.vadd_set_sdiff Set.vadd_set_sdiff
 
 @[to_additive]
-theorem smul_set_symm_diff : a • s ∆ t = (a • s) ∆ (a • t) :=
-  image_symm_diff (MulAction.injective a) _ _
-#align set.smul_set_symm_diff Set.smul_set_symm_diff
-#align set.vadd_set_symm_diff Set.vadd_set_symm_diff
+theorem smul_set_symmDiff : a • s ∆ t = (a • s) ∆ (a • t) :=
+  image_symmDiff (MulAction.injective a) _ _
+#align set.smul_set_symm_diff Set.smul_set_symmDiff
+#align set.vadd_set_symm_diff Set.vadd_set_symmDiff
 
 @[to_additive (attr := simp)]
 theorem smul_set_univ : a • (univ : Set β) = univ :=
@@ -1053,9 +1053,9 @@ theorem smul_set_sdiff₀ (ha : a ≠ 0) : a • (s \ t) = a • s \ a • t :=
   image_diff (MulAction.injective₀ ha) _ _
 #align set.smul_set_sdiff₀ Set.smul_set_sdiff₀
 
-theorem smul_set_symm_diff₀ (ha : a ≠ 0) : a • s ∆ t = (a • s) ∆ (a • t) :=
-  image_symm_diff (MulAction.injective₀ ha) _ _
-#align set.smul_set_symm_diff₀ Set.smul_set_symm_diff₀
+theorem smul_set_symmDiff₀ (ha : a ≠ 0) : a • s ∆ t = (a • s) ∆ (a • t) :=
+  image_symmDiff (MulAction.injective₀ ha) _ _
+#align set.smul_set_symm_diff₀ Set.smul_set_symmDiff₀
 
 theorem smul_set_univ₀ (ha : a ≠ 0) : a • (univ : Set β) = univ :=
   image_univ_of_surjective <| MulAction.surjective₀ ha
chore: use · instead of . (#6085)
Diff
@@ -54,7 +54,7 @@ section SMul
       "The translation of set `x +ᵥ s` is defined as `{x +ᵥ y | y ∈ s}` in
       locale `Pointwise`."]
 protected def smulSet [SMul α β] : SMul α (Set β) :=
-  ⟨fun a ↦ image (a • .)⟩
+  ⟨fun a ↦ image (a • ·)⟩
 #align set.has_smul_set Set.smulSet
 #align set.has_vadd_set Set.vaddSet
 
@@ -64,7 +64,7 @@ locale `Pointwise`. -/
       "The pointwise scalar addition of sets `s +ᵥ t` is defined as
       `{x +ᵥ y | x ∈ s, y ∈ t}` in locale `Pointwise`."]
 protected def smul [SMul α β] : SMul (Set α) (Set β) :=
-  ⟨image2 (. • .)⟩
+  ⟨image2 (· • ·)⟩
 #align set.has_smul Set.smul
 #align set.has_vadd Set.vadd
 
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,16 +2,13 @@
 Copyright (c) 2019 Johan Commelin. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johan Commelin, Floris van Doorn
-
-! This file was ported from Lean 3 source module data.set.pointwise.smul
-! leanprover-community/mathlib commit 5e526d18cea33550268dcbbddcb822d5cde40654
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Algebra.Module.Basic
 import Mathlib.Data.Set.Pairwise.Lattice
 import Mathlib.Data.Set.Pointwise.Basic
 
+#align_import data.set.pointwise.smul from "leanprover-community/mathlib"@"5e526d18cea33550268dcbbddcb822d5cde40654"
+
 /-!
 # Pointwise operations of sets
 
fix: precedences of ⨆⋃⋂⨅ (#5614)
Diff
@@ -228,13 +228,13 @@ theorem union_smul_inter_subset_union : (s₁ ∪ s₂) • (t₁ ∩ t₂) ⊆
 #align set.union_vadd_inter_subset_union Set.union_vadd_inter_subset_union
 
 @[to_additive]
-theorem iUnion_smul_left_image : (⋃ a ∈ s, a • t) = s • t :=
+theorem iUnion_smul_left_image : ⋃ a ∈ s, a • t = s • t :=
   iUnion_image_left _
 #align set.Union_smul_left_image Set.iUnion_smul_left_image
 #align set.Union_vadd_left_image Set.iUnion_vadd_left_image
 
 @[to_additive]
-theorem iUnion_smul_right_image : (⋃ a ∈ t, (· • a) '' s) = s • t :=
+theorem iUnion_smul_right_image : ⋃ a ∈ t, (· • a) '' s = s • t :=
   iUnion_image_right _
 #align set.Union_smul_right_image Set.iUnion_smul_right_image
 #align set.Union_vadd_right_image Set.iUnion_vadd_right_image
@@ -298,7 +298,7 @@ theorem smul_set_subset_smul {s : Set α} : a ∈ s → a • t ⊆ s • t :=
 #align set.vadd_set_subset_vadd Set.vadd_set_subset_vadd
 
 @[to_additive (attr := simp)]
-theorem iUnion_smul_set (s : Set α) (t : Set β) : (⋃ a ∈ s, a • t) = s • t :=
+theorem iUnion_smul_set (s : Set α) (t : Set β) : ⋃ a ∈ s, a • t = s • t :=
   iUnion_image_left _
 #align set.bUnion_smul_set Set.iUnion_smul_set
 #align set.bUnion_vadd_set Set.iUnion_vadd_set
@@ -427,7 +427,7 @@ theorem image_op_smul : (op '' s) • t = t * s := by
   rfl
 
 @[to_additive (attr := simp)]
-theorem iUnion_op_smul_set (s t : Set α) : (⋃ a ∈ t, MulOpposite.op a • s) = s * t :=
+theorem iUnion_op_smul_set (s t : Set α) : ⋃ a ∈ t, MulOpposite.op a • s = s * t :=
   iUnion_image_right _
 #align set.bUnion_op_smul_set Set.iUnion_op_smul_set
 #align set.bUnion_op_vadd_set Set.iUnion_op_vadd_set
@@ -710,11 +710,11 @@ theorem union_vsub_inter_subset_union : s₁ ∪ s₂ -ᵥ t₁ ∩ t₂ ⊆ s
   image2_union_inter_subset_union
 #align set.union_vsub_inter_subset_union Set.union_vsub_inter_subset_union
 
-theorem iUnion_vsub_left_image : (⋃ a ∈ s, (· -ᵥ ·) a '' t) = s -ᵥ t :=
+theorem iUnion_vsub_left_image : ⋃ a ∈ s, (· -ᵥ ·) a '' t = s -ᵥ t :=
   iUnion_image_left _
 #align set.Union_vsub_left_image Set.iUnion_vsub_left_image
 
-theorem iUnion_vsub_right_image : (⋃ a ∈ t, (· -ᵥ a) '' s) = s -ᵥ t :=
+theorem iUnion_vsub_right_image : ⋃ a ∈ t, (· -ᵥ a) '' s = s -ᵥ t :=
   iUnion_image_right _
 #align set.Union_vsub_right_image Set.iUnion_vsub_right_image
 
@@ -997,13 +997,13 @@ theorem op_smul_inter_ne_empty_iff {s t : Set α} {x : αᵐᵒᵖ} :
 #align set.op_vadd_inter_ne_empty_iff Set.op_vadd_inter_ne_empty_iff
 
 @[to_additive (attr := simp)]
-theorem iUnion_inv_smul : (⋃ g : α, g⁻¹ • s) = ⋃ g : α, g • s :=
+theorem iUnion_inv_smul : ⋃ g : α, g⁻¹ • s = ⋃ g : α, g • s :=
   (Function.Surjective.iSup_congr _ inv_surjective) fun _ ↦ rfl
 #align set.Union_inv_smul Set.iUnion_inv_smul
 #align set.Union_neg_vadd Set.iUnion_neg_vadd
 
 @[to_additive]
-theorem iUnion_smul_eq_setOf_exists {s : Set β} : (⋃ g : α, g • s) = { a | ∃ g : α, g • a ∈ s } :=
+theorem iUnion_smul_eq_setOf_exists {s : Set β} : ⋃ g : α, g • s = { a | ∃ g : α, g • a ∈ s } :=
   by simp_rw [← iUnion_setOf, ← iUnion_inv_smul, ← preimage_smul, preimage]
 #align set.Union_smul_eq_set_of_exists Set.iUnion_smul_eq_setOf_exists
 #align set.Union_vadd_eq_set_of_exists Set.iUnion_vadd_eq_setOf_exists
feat(Topology/Algebra/Group/Basic): product of compact set and closed set is closed (#5471)

Also adds the version for group actions, and the consequence that if we quotient by a compact subgroup then the quotient map is closed.

I also made some syntax tweaks in some places, mainly making use of our great new implicit functions.

Diff
@@ -421,6 +421,11 @@ theorem op_smul_set_subset_mul : a ∈ t → op a • s ⊆ s * t :=
 #align set.op_smul_set_subset_mul Set.op_smul_set_subset_mul
 #align set.op_vadd_set_subset_add Set.op_vadd_set_subset_add
 
+@[to_additive]
+theorem image_op_smul : (op '' s) • t = t * s := by
+  rw [← image2_smul, ← image2_mul, image2_image_left, image2_swap]
+  rfl
+
 @[to_additive (attr := simp)]
 theorem iUnion_op_smul_set (s t : Set α) : (⋃ a ∈ t, MulOpposite.op a • s) = s * t :=
   iUnion_image_right _
feat: port Analysis.Convex.Between (#3790)

Co-authored-by: Yaël Dillies <yael.dillies@gmail.com> Co-authored-by: ADedecker <anatolededecker@gmail.com> Co-authored-by: Alex J Best <alex.j.best@gmail.com>

Diff
@@ -309,12 +309,14 @@ section SMulSet
 
 variable {ι : Sort _} {κ : ι → Sort _} [SMul α β] {s t t₁ t₂ : Set β} {a : α} {b : β} {x y : β}
 
-@[to_additive (attr := simp)]
+@[to_additive]
 theorem image_smul : (fun x ↦ a • x) '' t = a • t :=
   rfl
 #align set.image_smul Set.image_smul
 #align set.image_vadd Set.image_vadd
 
+scoped[Pointwise] attribute [simp] Set.image_smul Set.image_vadd
+
 @[to_additive]
 theorem mem_smul_set : x ∈ a • t ↔ ∃ y, y ∈ t ∧ a • y = x :=
   Iff.rfl
feat: add Mathlib.Tactic.Common, and import (#4056)

This makes a mathlib4 version of mathlib3's tactic.basic, now called Mathlib.Tactic.Common, which imports all tactics which do not have significant theory requirements, and then is imported all across the base of the hierarchy.

This ensures that all common tactics are available nearly everywhere in the library, rather than having to be imported one-by-one as you need them.

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -11,7 +11,6 @@ Authors: Johan Commelin, Floris van Doorn
 import Mathlib.Algebra.Module.Basic
 import Mathlib.Data.Set.Pairwise.Lattice
 import Mathlib.Data.Set.Pointwise.Basic
-import Mathlib.Tactic.ByContra
 
 /-!
 # Pointwise operations of sets
chore: Rename to sSup/iSup (#3938)

As discussed on Zulip

Renames

  • supₛsSup
  • infₛsInf
  • supᵢiSup
  • infᵢiInf
  • bsupₛbsSup
  • binfₛbsInf
  • bsupᵢbiSup
  • binfᵢbiInf
  • csupₛcsSup
  • cinfₛcsInf
  • csupᵢciSup
  • cinfᵢciInf
  • unionₛsUnion
  • interₛsInter
  • unionᵢiUnion
  • interᵢiInter
  • bunionₛbsUnion
  • binterₛbsInter
  • bunionᵢbiUnion
  • binterᵢbiInter

Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>

Diff
@@ -229,68 +229,68 @@ theorem union_smul_inter_subset_union : (s₁ ∪ s₂) • (t₁ ∩ t₂) ⊆
 #align set.union_vadd_inter_subset_union Set.union_vadd_inter_subset_union
 
 @[to_additive]
-theorem unionᵢ_smul_left_image : (⋃ a ∈ s, a • t) = s • t :=
-  unionᵢ_image_left _
-#align set.Union_smul_left_image Set.unionᵢ_smul_left_image
-#align set.Union_vadd_left_image Set.unionᵢ_vadd_left_image
+theorem iUnion_smul_left_image : (⋃ a ∈ s, a • t) = s • t :=
+  iUnion_image_left _
+#align set.Union_smul_left_image Set.iUnion_smul_left_image
+#align set.Union_vadd_left_image Set.iUnion_vadd_left_image
 
 @[to_additive]
-theorem unionᵢ_smul_right_image : (⋃ a ∈ t, (· • a) '' s) = s • t :=
-  unionᵢ_image_right _
-#align set.Union_smul_right_image Set.unionᵢ_smul_right_image
-#align set.Union_vadd_right_image Set.unionᵢ_vadd_right_image
+theorem iUnion_smul_right_image : (⋃ a ∈ t, (· • a) '' s) = s • t :=
+  iUnion_image_right _
+#align set.Union_smul_right_image Set.iUnion_smul_right_image
+#align set.Union_vadd_right_image Set.iUnion_vadd_right_image
 
 @[to_additive]
-theorem unionᵢ_smul (s : ι → Set α) (t : Set β) : (⋃ i, s i) • t = ⋃ i, s i • t :=
-  image2_unionᵢ_left _ _ _
-#align set.Union_smul Set.unionᵢ_smul
-#align set.Union_vadd Set.unionᵢ_vadd
+theorem iUnion_smul (s : ι → Set α) (t : Set β) : (⋃ i, s i) • t = ⋃ i, s i • t :=
+  image2_iUnion_left _ _ _
+#align set.Union_smul Set.iUnion_smul
+#align set.Union_vadd Set.iUnion_vadd
 
 @[to_additive]
-theorem smul_unionᵢ (s : Set α) (t : ι → Set β) : (s • ⋃ i, t i) = ⋃ i, s • t i :=
-  image2_unionᵢ_right _ _ _
-#align set.smul_Union Set.smul_unionᵢ
-#align set.vadd_Union Set.vadd_unionᵢ
+theorem smul_iUnion (s : Set α) (t : ι → Set β) : (s • ⋃ i, t i) = ⋃ i, s • t i :=
+  image2_iUnion_right _ _ _
+#align set.smul_Union Set.smul_iUnion
+#align set.vadd_Union Set.vadd_iUnion
 
 @[to_additive]
-theorem unionᵢ₂_smul (s : ∀ i, κ i → Set α) (t : Set β) :
+theorem iUnion₂_smul (s : ∀ i, κ i → Set α) (t : Set β) :
     (⋃ (i) (j), s i j) • t = ⋃ (i) (j), s i j • t :=
-  image2_unionᵢ₂_left _ _ _
-#align set.Union₂_smul Set.unionᵢ₂_smul
-#align set.Union₂_vadd Set.unionᵢ₂_vadd
+  image2_iUnion₂_left _ _ _
+#align set.Union₂_smul Set.iUnion₂_smul
+#align set.Union₂_vadd Set.iUnion₂_vadd
 
 @[to_additive]
-theorem smul_unionᵢ₂ (s : Set α) (t : ∀ i, κ i → Set β) :
+theorem smul_iUnion₂ (s : Set α) (t : ∀ i, κ i → Set β) :
     (s • ⋃ (i) (j), t i j) = ⋃ (i) (j), s • t i j :=
-  image2_unionᵢ₂_right _ _ _
-#align set.smul_Union₂ Set.smul_unionᵢ₂
-#align set.vadd_Union₂ Set.vadd_unionᵢ₂
+  image2_iUnion₂_right _ _ _
+#align set.smul_Union₂ Set.smul_iUnion₂
+#align set.vadd_Union₂ Set.vadd_iUnion₂
 
 @[to_additive]
-theorem interᵢ_smul_subset (s : ι → Set α) (t : Set β) : (⋂ i, s i) • t ⊆ ⋂ i, s i • t :=
-  image2_interᵢ_subset_left _ _ _
-#align set.Inter_smul_subset Set.interᵢ_smul_subset
-#align set.Inter_vadd_subset Set.interᵢ_vadd_subset
+theorem iInter_smul_subset (s : ι → Set α) (t : Set β) : (⋂ i, s i) • t ⊆ ⋂ i, s i • t :=
+  image2_iInter_subset_left _ _ _
+#align set.Inter_smul_subset Set.iInter_smul_subset
+#align set.Inter_vadd_subset Set.iInter_vadd_subset
 
 @[to_additive]
-theorem smul_interᵢ_subset (s : Set α) (t : ι → Set β) : (s • ⋂ i, t i) ⊆ ⋂ i, s • t i :=
-  image2_interᵢ_subset_right _ _ _
-#align set.smul_Inter_subset Set.smul_interᵢ_subset
-#align set.vadd_Inter_subset Set.vadd_interᵢ_subset
+theorem smul_iInter_subset (s : Set α) (t : ι → Set β) : (s • ⋂ i, t i) ⊆ ⋂ i, s • t i :=
+  image2_iInter_subset_right _ _ _
+#align set.smul_Inter_subset Set.smul_iInter_subset
+#align set.vadd_Inter_subset Set.vadd_iInter_subset
 
 @[to_additive]
-theorem interᵢ₂_smul_subset (s : ∀ i, κ i → Set α) (t : Set β) :
+theorem iInter₂_smul_subset (s : ∀ i, κ i → Set α) (t : Set β) :
     (⋂ (i) (j), s i j) • t ⊆ ⋂ (i) (j), s i j • t :=
-  image2_interᵢ₂_subset_left _ _ _
-#align set.Inter₂_smul_subset Set.interᵢ₂_smul_subset
-#align set.Inter₂_vadd_subset Set.interᵢ₂_vadd_subset
+  image2_iInter₂_subset_left _ _ _
+#align set.Inter₂_smul_subset Set.iInter₂_smul_subset
+#align set.Inter₂_vadd_subset Set.iInter₂_vadd_subset
 
 @[to_additive]
-theorem smul_interᵢ₂_subset (s : Set α) (t : ∀ i, κ i → Set β) :
+theorem smul_iInter₂_subset (s : Set α) (t : ∀ i, κ i → Set β) :
     (s • ⋂ (i) (j), t i j) ⊆ ⋂ (i) (j), s • t i j :=
-  image2_interᵢ₂_subset_right _ _ _
-#align set.smul_Inter₂_subset Set.smul_interᵢ₂_subset
-#align set.vadd_Inter₂_subset Set.vadd_interᵢ₂_subset
+  image2_iInter₂_subset_right _ _ _
+#align set.smul_Inter₂_subset Set.smul_iInter₂_subset
+#align set.vadd_Inter₂_subset Set.vadd_iInter₂_subset
 
 @[to_additive]
 theorem smul_set_subset_smul {s : Set α} : a ∈ s → a • t ⊆ s • t :=
@@ -299,10 +299,10 @@ theorem smul_set_subset_smul {s : Set α} : a ∈ s → a • t ⊆ s • t :=
 #align set.vadd_set_subset_vadd Set.vadd_set_subset_vadd
 
 @[to_additive (attr := simp)]
-theorem unionᵢ_smul_set (s : Set α) (t : Set β) : (⋃ a ∈ s, a • t) = s • t :=
-  unionᵢ_image_left _
-#align set.bUnion_smul_set Set.unionᵢ_smul_set
-#align set.bUnion_vadd_set Set.unionᵢ_vadd_set
+theorem iUnion_smul_set (s : Set α) (t : Set β) : (⋃ a ∈ s, a • t) = s • t :=
+  iUnion_image_left _
+#align set.bUnion_smul_set Set.iUnion_smul_set
+#align set.bUnion_vadd_set Set.iUnion_vadd_set
 
 end SMul
 
@@ -378,29 +378,29 @@ theorem smul_set_inter_subset : a • (t₁ ∩ t₂) ⊆ a • t₁ ∩ a • t
 
 @[to_additive]
 theorem smul_set_Union (a : α) (s : ι → Set β) : (a • ⋃ i, s i) = ⋃ i, a • s i :=
-  image_unionᵢ
+  image_iUnion
 #align set.smul_set_Union Set.smul_set_Union
 #align set.vadd_set_Union Set.vadd_set_Union
 
 @[to_additive]
-theorem smul_set_unionᵢ₂ (a : α) (s : ∀ i, κ i → Set β) :
+theorem smul_set_iUnion₂ (a : α) (s : ∀ i, κ i → Set β) :
     (a • ⋃ (i) (j), s i j) = ⋃ (i) (j), a • s i j :=
-  image_unionᵢ₂ _ _
-#align set.smul_set_Union₂ Set.smul_set_unionᵢ₂
-#align set.vadd_set_Union₂ Set.vadd_set_unionᵢ₂
+  image_iUnion₂ _ _
+#align set.smul_set_Union₂ Set.smul_set_iUnion₂
+#align set.vadd_set_Union₂ Set.vadd_set_iUnion₂
 
 @[to_additive]
-theorem smul_set_interᵢ_subset (a : α) (t : ι → Set β) : (a • ⋂ i, t i) ⊆ ⋂ i, a • t i :=
-  image_interᵢ_subset _ _
-#align set.smul_set_Inter_subset Set.smul_set_interᵢ_subset
-#align set.vadd_set_Inter_subset Set.vadd_set_interᵢ_subset
+theorem smul_set_iInter_subset (a : α) (t : ι → Set β) : (a • ⋂ i, t i) ⊆ ⋂ i, a • t i :=
+  image_iInter_subset _ _
+#align set.smul_set_Inter_subset Set.smul_set_iInter_subset
+#align set.vadd_set_Inter_subset Set.vadd_set_iInter_subset
 
 @[to_additive]
-theorem smul_set_interᵢ₂_subset (a : α) (t : ∀ i, κ i → Set β) :
+theorem smul_set_iInter₂_subset (a : α) (t : ∀ i, κ i → Set β) :
     (a • ⋂ (i) (j), t i j) ⊆ ⋂ (i) (j), a • t i j :=
-  image_interᵢ₂_subset _ _
-#align set.smul_set_Inter₂_subset Set.smul_set_interᵢ₂_subset
-#align set.vadd_set_Inter₂_subset Set.vadd_set_interᵢ₂_subset
+  image_iInter₂_subset _ _
+#align set.smul_set_Inter₂_subset Set.smul_set_iInter₂_subset
+#align set.vadd_set_Inter₂_subset Set.vadd_set_iInter₂_subset
 
 @[to_additive]
 theorem Nonempty.smul_set : s.Nonempty → (a • s).Nonempty :=
@@ -421,10 +421,10 @@ theorem op_smul_set_subset_mul : a ∈ t → op a • s ⊆ s * t :=
 #align set.op_vadd_set_subset_add Set.op_vadd_set_subset_add
 
 @[to_additive (attr := simp)]
-theorem unionᵢ_op_smul_set (s t : Set α) : (⋃ a ∈ t, MulOpposite.op a • s) = s * t :=
-  unionᵢ_image_right _
-#align set.bUnion_op_smul_set Set.unionᵢ_op_smul_set
-#align set.bUnion_op_vadd_set Set.unionᵢ_op_vadd_set
+theorem iUnion_op_smul_set (s t : Set α) : (⋃ a ∈ t, MulOpposite.op a • s) = s * t :=
+  iUnion_image_right _
+#align set.bUnion_op_smul_set Set.iUnion_op_smul_set
+#align set.bUnion_op_vadd_set Set.iUnion_op_vadd_set
 
 @[to_additive]
 theorem mul_subset_iff_left : s * t ⊆ u ↔ ∀ a ∈ s, a • t ⊆ u :=
@@ -704,49 +704,49 @@ theorem union_vsub_inter_subset_union : s₁ ∪ s₂ -ᵥ t₁ ∩ t₂ ⊆ s
   image2_union_inter_subset_union
 #align set.union_vsub_inter_subset_union Set.union_vsub_inter_subset_union
 
-theorem unionᵢ_vsub_left_image : (⋃ a ∈ s, (· -ᵥ ·) a '' t) = s -ᵥ t :=
-  unionᵢ_image_left _
-#align set.Union_vsub_left_image Set.unionᵢ_vsub_left_image
+theorem iUnion_vsub_left_image : (⋃ a ∈ s, (· -ᵥ ·) a '' t) = s -ᵥ t :=
+  iUnion_image_left _
+#align set.Union_vsub_left_image Set.iUnion_vsub_left_image
 
-theorem unionᵢ_vsub_right_image : (⋃ a ∈ t, (· -ᵥ a) '' s) = s -ᵥ t :=
-  unionᵢ_image_right _
-#align set.Union_vsub_right_image Set.unionᵢ_vsub_right_image
+theorem iUnion_vsub_right_image : (⋃ a ∈ t, (· -ᵥ a) '' s) = s -ᵥ t :=
+  iUnion_image_right _
+#align set.Union_vsub_right_image Set.iUnion_vsub_right_image
 
-theorem unionᵢ_vsub (s : ι → Set β) (t : Set β) : (⋃ i, s i) -ᵥ t = ⋃ i, s i -ᵥ t :=
-  image2_unionᵢ_left _ _ _
-#align set.Union_vsub Set.unionᵢ_vsub
+theorem iUnion_vsub (s : ι → Set β) (t : Set β) : (⋃ i, s i) -ᵥ t = ⋃ i, s i -ᵥ t :=
+  image2_iUnion_left _ _ _
+#align set.Union_vsub Set.iUnion_vsub
 
-theorem vsub_unionᵢ (s : Set β) (t : ι → Set β) : (s -ᵥ ⋃ i, t i) = ⋃ i, s -ᵥ t i :=
-  image2_unionᵢ_right _ _ _
-#align set.vsub_Union Set.vsub_unionᵢ
+theorem vsub_iUnion (s : Set β) (t : ι → Set β) : (s -ᵥ ⋃ i, t i) = ⋃ i, s -ᵥ t i :=
+  image2_iUnion_right _ _ _
+#align set.vsub_Union Set.vsub_iUnion
 
-theorem unionᵢ₂_vsub (s : ∀ i, κ i → Set β) (t : Set β) :
+theorem iUnion₂_vsub (s : ∀ i, κ i → Set β) (t : Set β) :
     (⋃ (i) (j), s i j) -ᵥ t = ⋃ (i) (j), s i j -ᵥ t :=
-  image2_unionᵢ₂_left _ _ _
-#align set.Union₂_vsub Set.unionᵢ₂_vsub
+  image2_iUnion₂_left _ _ _
+#align set.Union₂_vsub Set.iUnion₂_vsub
 
-theorem vsub_unionᵢ₂ (s : Set β) (t : ∀ i, κ i → Set β) :
+theorem vsub_iUnion₂ (s : Set β) (t : ∀ i, κ i → Set β) :
     (s -ᵥ ⋃ (i) (j), t i j) = ⋃ (i) (j), s -ᵥ t i j :=
-  image2_unionᵢ₂_right _ _ _
-#align set.vsub_Union₂ Set.vsub_unionᵢ₂
+  image2_iUnion₂_right _ _ _
+#align set.vsub_Union₂ Set.vsub_iUnion₂
 
-theorem interᵢ_vsub_subset (s : ι → Set β) (t : Set β) : (⋂ i, s i) -ᵥ t ⊆ ⋂ i, s i -ᵥ t :=
-  image2_interᵢ_subset_left _ _ _
-#align set.Inter_vsub_subset Set.interᵢ_vsub_subset
+theorem iInter_vsub_subset (s : ι → Set β) (t : Set β) : (⋂ i, s i) -ᵥ t ⊆ ⋂ i, s i -ᵥ t :=
+  image2_iInter_subset_left _ _ _
+#align set.Inter_vsub_subset Set.iInter_vsub_subset
 
-theorem vsub_interᵢ_subset (s : Set β) (t : ι → Set β) : (s -ᵥ ⋂ i, t i) ⊆ ⋂ i, s -ᵥ t i :=
-  image2_interᵢ_subset_right _ _ _
-#align set.vsub_Inter_subset Set.vsub_interᵢ_subset
+theorem vsub_iInter_subset (s : Set β) (t : ι → Set β) : (s -ᵥ ⋂ i, t i) ⊆ ⋂ i, s -ᵥ t i :=
+  image2_iInter_subset_right _ _ _
+#align set.vsub_Inter_subset Set.vsub_iInter_subset
 
-theorem interᵢ₂_vsub_subset (s : ∀ i, κ i → Set β) (t : Set β) :
+theorem iInter₂_vsub_subset (s : ∀ i, κ i → Set β) (t : Set β) :
     (⋂ (i) (j), s i j) -ᵥ t ⊆ ⋂ (i) (j), s i j -ᵥ t :=
-  image2_interᵢ₂_subset_left _ _ _
-#align set.Inter₂_vsub_subset Set.interᵢ₂_vsub_subset
+  image2_iInter₂_subset_left _ _ _
+#align set.Inter₂_vsub_subset Set.iInter₂_vsub_subset
 
-theorem vsub_interᵢ₂_subset (s : Set β) (t : ∀ i, κ i → Set β) :
+theorem vsub_iInter₂_subset (s : Set β) (t : ∀ i, κ i → Set β) :
     (s -ᵥ ⋂ (i) (j), t i j) ⊆ ⋂ (i) (j), s -ᵥ t i j :=
-  image2_interᵢ₂_subset_right _ _ _
-#align set.vsub_Inter₂_subset Set.vsub_interᵢ₂_subset
+  image2_iInter₂_subset_right _ _ _
+#align set.vsub_Inter₂_subset Set.vsub_iInter₂_subset
 
 end VSub
 
@@ -991,16 +991,16 @@ theorem op_smul_inter_ne_empty_iff {s t : Set α} {x : αᵐᵒᵖ} :
 #align set.op_vadd_inter_ne_empty_iff Set.op_vadd_inter_ne_empty_iff
 
 @[to_additive (attr := simp)]
-theorem unionᵢ_inv_smul : (⋃ g : α, g⁻¹ • s) = ⋃ g : α, g • s :=
-  (Function.Surjective.supᵢ_congr _ inv_surjective) fun _ ↦ rfl
-#align set.Union_inv_smul Set.unionᵢ_inv_smul
-#align set.Union_neg_vadd Set.unionᵢ_neg_vadd
+theorem iUnion_inv_smul : (⋃ g : α, g⁻¹ • s) = ⋃ g : α, g • s :=
+  (Function.Surjective.iSup_congr _ inv_surjective) fun _ ↦ rfl
+#align set.Union_inv_smul Set.iUnion_inv_smul
+#align set.Union_neg_vadd Set.iUnion_neg_vadd
 
 @[to_additive]
-theorem unionᵢ_smul_eq_setOf_exists {s : Set β} : (⋃ g : α, g • s) = { a | ∃ g : α, g • a ∈ s } :=
-  by simp_rw [← unionᵢ_setOf, ← unionᵢ_inv_smul, ← preimage_smul, preimage]
-#align set.Union_smul_eq_set_of_exists Set.unionᵢ_smul_eq_setOf_exists
-#align set.Union_vadd_eq_set_of_exists Set.unionᵢ_vadd_eq_setOf_exists
+theorem iUnion_smul_eq_setOf_exists {s : Set β} : (⋃ g : α, g • s) = { a | ∃ g : α, g • a ∈ s } :=
+  by simp_rw [← iUnion_setOf, ← iUnion_inv_smul, ← preimage_smul, preimage]
+#align set.Union_smul_eq_set_of_exists Set.iUnion_smul_eq_setOf_exists
+#align set.Union_vadd_eq_set_of_exists Set.iUnion_vadd_eq_setOf_exists
 
 end Group
 
chore: bye-bye, solo bys! (#3825)

This PR puts, with one exception, every single remaining by that lies all by itself on its own line to the previous line, thus matching the current behaviour of start-port.sh. The exception is when the by begins the second or later argument to a tuple or anonymous constructor; see https://github.com/leanprover-community/mathlib4/pull/3825#discussion_r1186702599.

Essentially this is s/\n *by$/ by/g, but with manual editing to satisfy the linter's max-100-char-line requirement. The Python style linter is also modified to catch these "isolated bys".

Diff
@@ -773,8 +773,7 @@ variable [SMul αᵐᵒᵖ β] [SMul β γ] [SMul α γ]
 -- TODO: replace hypothesis and conclusion with a typeclass
 @[to_additive]
 theorem op_smul_set_smul_eq_smul_smul_set (a : α) (s : Set β) (t : Set γ)
-    (h : ∀ (a : α) (b : β) (c : γ), (op a • b) • c = b • a • c) : (op a • s) • t = s • a • t :=
-  by
+    (h : ∀ (a : α) (b : β) (c : γ), (op a • b) • c = b • a • c) : (op a • s) • t = s • a • t := by
   ext
   simp [mem_smul, mem_smul_set, h]
 #align set.op_smul_set_smul_eq_smul_smul_set Set.op_smul_set_smul_eq_smul_smul_set
feat: port Analysis.Convex.Join (#3633)
Diff
@@ -1087,6 +1087,17 @@ protected theorem smul_neg : s • -t = -(s • t) := by
 
 end Monoid
 
+section Semiring
+
+variable [Semiring α] [AddCommMonoid β] [Module α β]
+
+-- porting note: new lemma
+theorem add_smul_subset (a b : α) (s : Set β) : (a + b) • s ⊆ a • s + b • s := by
+  rintro _ ⟨x, hx, rfl⟩
+  simpa only [add_smul] using add_mem_add (smul_mem_smul_set hx) (smul_mem_smul_set hx)
+
+end Semiring
+
 section Ring
 
 variable [Ring α] [AddCommGroup β] [Module α β] (a : α) (s : Set α) (t : Set β)
feat: a • t ⊆ s • t (#3227)

Match https://github.com/leanprover-community/mathlib/pull/18697

Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com>

Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johan Commelin, Floris van Doorn
 
 ! This file was ported from Lean 3 source module data.set.pointwise.smul
-! leanprover-community/mathlib commit b685f506164f8d17a6404048bc4d696739c5d976
+! leanprover-community/mathlib commit 5e526d18cea33550268dcbbddcb822d5cde40654
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -40,7 +40,7 @@ Appropriate definitions and results are also transported to the additive theory
 
 -/
 
-open Function
+open Function MulOpposite
 
 variable {F α β γ : Type _}
 
@@ -216,6 +216,18 @@ theorem smul_inter_subset : s • (t₁ ∩ t₂) ⊆ s • t₁ ∩ s • t₂
 #align set.smul_inter_subset Set.smul_inter_subset
 #align set.vadd_inter_subset Set.vadd_inter_subset
 
+@[to_additive]
+theorem inter_smul_union_subset_union : (s₁ ∩ s₂) • (t₁ ∪ t₂) ⊆ s₁ • t₁ ∪ s₂ • t₂ :=
+  image2_inter_union_subset_union
+#align set.inter_smul_union_subset_union Set.inter_smul_union_subset_union
+#align set.inter_vadd_union_subset_union Set.inter_vadd_union_subset_union
+
+@[to_additive]
+theorem union_smul_inter_subset_union : (s₁ ∪ s₂) • (t₁ ∩ t₂) ⊆ s₁ • t₁ ∪ s₂ • t₂ :=
+  image2_union_inter_subset_union
+#align set.union_smul_inter_subset_union Set.union_smul_inter_subset_union
+#align set.union_vadd_inter_subset_union Set.union_vadd_inter_subset_union
+
 @[to_additive]
 theorem unionᵢ_smul_left_image : (⋃ a ∈ s, a • t) = s • t :=
   unionᵢ_image_left _
@@ -280,6 +292,12 @@ theorem smul_interᵢ₂_subset (s : Set α) (t : ∀ i, κ i → Set β) :
 #align set.smul_Inter₂_subset Set.smul_interᵢ₂_subset
 #align set.vadd_Inter₂_subset Set.vadd_interᵢ₂_subset
 
+@[to_additive]
+theorem smul_set_subset_smul {s : Set α} : a ∈ s → a • t ⊆ s • t :=
+  image_subset_image2_right
+#align set.smul_set_subset_smul Set.smul_set_subset_smul
+#align set.vadd_set_subset_vadd Set.vadd_set_subset_vadd
+
 @[to_additive (attr := simp)]
 theorem unionᵢ_smul_set (s : Set α) (t : Set β) : (⋃ a ∈ s, a • t) = s • t :=
   unionᵢ_image_left _
@@ -392,14 +410,38 @@ theorem Nonempty.smul_set : s.Nonempty → (a • s).Nonempty :=
 
 end SMulSet
 
-variable {s s₁ s₂ : Set α} {t t₁ t₂ : Set β} {a : α} {b : β}
+section Mul
+
+variable [Mul α] {s t u : Set α} {a : α}
+
+@[to_additive]
+theorem op_smul_set_subset_mul : a ∈ t → op a • s ⊆ s * t :=
+  image_subset_image2_left
+#align set.op_smul_set_subset_mul Set.op_smul_set_subset_mul
+#align set.op_vadd_set_subset_add Set.op_vadd_set_subset_add
 
 @[to_additive (attr := simp)]
-theorem unionᵢ_op_smul_set [Mul α] (s t : Set α) : (⋃ a ∈ t, MulOpposite.op a • s) = s * t :=
+theorem unionᵢ_op_smul_set (s t : Set α) : (⋃ a ∈ t, MulOpposite.op a • s) = s * t :=
   unionᵢ_image_right _
 #align set.bUnion_op_smul_set Set.unionᵢ_op_smul_set
 #align set.bUnion_op_vadd_set Set.unionᵢ_op_vadd_set
 
+@[to_additive]
+theorem mul_subset_iff_left : s * t ⊆ u ↔ ∀ a ∈ s, a • t ⊆ u :=
+  image2_subset_iff_left
+#align set.mul_subset_iff_left Set.mul_subset_iff_left
+#align set.add_subset_iff_left Set.add_subset_iff_left
+
+@[to_additive]
+theorem mul_subset_iff_right : s * t ⊆ u ↔ ∀ b ∈ t, op b • s ⊆ u :=
+  image2_subset_iff_right
+#align set.mul_subset_iff_right Set.mul_subset_iff_right
+#align set.add_subset_iff_right Set.add_subset_iff_right
+
+end Mul
+
+variable {s s₁ s₂ : Set α} {t t₁ t₂ : Set β} {a : α} {b : β}
+
 @[to_additive]
 theorem range_smul_range {ι κ : Type _} [SMul α β] (b : ι → α) (c : κ → β) :
     range b • range c = range fun p : ι × κ ↦ b p.1 • c p.2 :=
@@ -654,6 +696,14 @@ theorem vsub_inter_subset : s -ᵥ t₁ ∩ t₂ ⊆ (s -ᵥ t₁) ∩ (s -ᵥ t
   image2_inter_subset_right
 #align set.vsub_inter_subset Set.vsub_inter_subset
 
+theorem inter_vsub_union_subset_union : s₁ ∩ s₂ -ᵥ (t₁ ∪ t₂) ⊆ s₁ -ᵥ t₁ ∪ (s₂ -ᵥ t₂) :=
+  image2_inter_union_subset_union
+#align set.inter_vsub_union_subset_union Set.inter_vsub_union_subset_union
+
+theorem union_vsub_inter_subset_union : s₁ ∪ s₂ -ᵥ t₁ ∩ t₂ ⊆ s₁ -ᵥ t₁ ∪ (s₂ -ᵥ t₂) :=
+  image2_union_inter_subset_union
+#align set.union_vsub_inter_subset_union Set.union_vsub_inter_subset_union
+
 theorem unionᵢ_vsub_left_image : (⋃ a ∈ s, (· -ᵥ ·) a '' t) = s -ᵥ t :=
   unionᵢ_image_left _
 #align set.Union_vsub_left_image Set.unionᵢ_vsub_left_image
@@ -716,6 +766,22 @@ theorem image_smul_distrib [MulOneClass α] [MulOneClass β] [MonoidHomClass F 
 #align set.image_smul_distrib Set.image_smul_distrib
 #align set.image_vadd_distrib Set.image_vadd_distrib
 
+section SMul
+
+variable [SMul αᵐᵒᵖ β] [SMul β γ] [SMul α γ]
+
+-- TODO: replace hypothesis and conclusion with a typeclass
+@[to_additive]
+theorem op_smul_set_smul_eq_smul_smul_set (a : α) (s : Set β) (t : Set γ)
+    (h : ∀ (a : α) (b : β) (c : γ), (op a • b) • c = b • a • c) : (op a • s) • t = s • a • t :=
+  by
+  ext
+  simp [mem_smul, mem_smul_set, h]
+#align set.op_smul_set_smul_eq_smul_smul_set Set.op_smul_set_smul_eq_smul_smul_set
+#align set.op_vadd_set_vadd_eq_vadd_vadd_set Set.op_vadd_set_vadd_eq_vadd_vadd_set
+
+end SMul
+
 section SMulWithZero
 
 variable [Zero α] [Zero β] [SMulWithZero α β] {s : Set α} {t : Set β}
@@ -779,6 +845,19 @@ theorem zero_mem_smul_set_iff (ha : a ≠ 0) : (0 : β) ∈ a • t ↔ (0 : β)
 
 end SMulWithZero
 
+section Semigroup
+
+variable [Semigroup α]
+
+@[to_additive]
+theorem op_smul_set_mul_eq_mul_smul_set (a : α) (s : Set α) (t : Set α) :
+    op a • s * t = s * a • t :=
+  op_smul_set_smul_eq_smul_smul_set _ _ _ fun _ _ _ => mul_assoc _ _ _
+#align set.op_smul_set_mul_eq_mul_smul_set Set.op_smul_set_mul_eq_mul_smul_set
+#align set.op_vadd_set_add_eq_add_vadd_set Set.op_vadd_set_add_eq_add_vadd_set
+
+end Semigroup
+
 section LeftCancelSemigroup
 
 variable [LeftCancelSemigroup α] {s t : Set α}
chore: forward-port mathlib #18682 (#3200)
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johan Commelin, Floris van Doorn
 
 ! This file was ported from Lean 3 source module data.set.pointwise.smul
-! leanprover-community/mathlib commit c227d107bbada5d0d9d20287e3282c0a7f1651a0
+! leanprover-community/mathlib commit b685f506164f8d17a6404048bc4d696739c5d976
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -468,10 +468,12 @@ instance isScalarTower'' [SMul α β] [SMul α γ] [SMul β γ] [IsScalarTower 
 #align set.is_scalar_tower'' Set.isScalarTower''
 #align set.vadd_assoc_class'' Set.vAddAssocClass''
 
+@[to_additive]
 instance isCentralScalar [SMul α β] [SMul αᵐᵒᵖ β] [IsCentralScalar α β] :
     IsCentralScalar α (Set β) :=
   ⟨fun _ S ↦ (congr_arg fun f ↦ f '' S) <| funext fun _ ↦ op_smul_eq_smul _ _⟩
 #align set.is_central_scalar Set.isCentralScalar
+#align set.is_central_vadd Set.isCentralVAdd
 
 /-- A multiplicative action of a monoid `α` on a type `β` gives a multiplicative action of `Set α`
 on `Set β`. -/
chore: Split data.set.pairwise (#3117)

Match https://github.com/leanprover-community/mathlib/pull/17880

The new import of Mathlib.Data.Set.Lattice in Mathlib.Data.Finset.Basic was implied transitively from tactic imports present in Lean 3.

Co-authored-by: Parcly Taxel <reddeloostw@gmail.com> Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com>

Diff
@@ -4,12 +4,12 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johan Commelin, Floris van Doorn
 
 ! This file was ported from Lean 3 source module data.set.pointwise.smul
-! leanprover-community/mathlib commit 517cc149e0b515d2893baa376226ed10feb319c7
+! leanprover-community/mathlib commit c227d107bbada5d0d9d20287e3282c0a7f1651a0
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
 import Mathlib.Algebra.Module.Basic
-import Mathlib.Data.Set.Pairwise
+import Mathlib.Data.Set.Pairwise.Lattice
 import Mathlib.Data.Set.Pointwise.Basic
 import Mathlib.Tactic.ByContra
 
feat: s ∩ t * s ∪ t ⊆ s * t (#1619)

Match https://github.com/leanprover-community/mathlib/pull/17961

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com> Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>

Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johan Commelin, Floris van Doorn
 
 ! This file was ported from Lean 3 source module data.set.pointwise.smul
-! leanprover-community/mathlib commit 7b78d1776212a91ecc94cf601f83bdcc46b04213
+! leanprover-community/mathlib commit 517cc149e0b515d2893baa376226ed10feb319c7
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -700,6 +700,20 @@ end VSub
 
 open Pointwise
 
+@[to_additive]
+theorem image_smul_comm [SMul α β] [SMul α γ] (f : β → γ) (a : α) (s : Set β) :
+    (∀ b, f (a • b) = a • f b) → f '' (a • s) = a • f '' s :=
+  image_comm
+#align set.image_smul_comm Set.image_smul_comm
+#align set.image_vadd_comm Set.image_vadd_comm
+
+@[to_additive]
+theorem image_smul_distrib [MulOneClass α] [MulOneClass β] [MonoidHomClass F α β] (f : F) (a : α)
+    (s : Set α) : f '' (a • s) = f a • f '' s :=
+  image_comm <| map_mul _ _
+#align set.image_smul_distrib Set.image_smul_distrib
+#align set.image_vadd_distrib Set.image_vadd_distrib
+
 section SMulWithZero
 
 variable [Zero α] [Zero β] [SMulWithZero α β] {s : Set α} {t : Set β}
chore: Restore most of the mono attribute (#2491)

Restore most of the mono attribute now that #1740 is merged.

I think I got all of the monos.

Diff
@@ -167,8 +167,7 @@ theorem singleton_smul_singleton : ({a} : Set α) • ({b} : Set β) = {a • b}
 #align set.singleton_smul_singleton Set.singleton_smul_singleton
 #align set.singleton_vadd_singleton Set.singleton_vadd_singleton
 
---Porting note: no [mono]
-@[to_additive]
+@[to_additive (attr := mono)]
 theorem smul_subset_smul : s₁ ⊆ s₂ → t₁ ⊆ t₂ → s₁ • t₁ ⊆ s₂ • t₂ :=
   image2_subset
 #align set.smul_subset_smul Set.smul_subset_smul
@@ -192,8 +191,6 @@ theorem smul_subset_iff : s • t ⊆ u ↔ ∀ a ∈ s, ∀ b ∈ t, a • b 
 #align set.smul_subset_iff Set.smul_subset_iff
 #align set.vadd_subset_iff Set.vadd_subset_iff
 
--- Porting note: no [mono]
--- attribute [mono] vadd_subset_vadd
 
 @[to_additive]
 theorem union_smul : (s₁ ∪ s₂) • t = s₁ • t ∪ s₂ • t :=
feat: quick version of mono tactic (#1740)

This is an extremely partial port of the mono* tactic from Lean 3, implemented as a macro on top of solve_by_elim. The original mono had many configuration options and no documentation, so quite a bit is missing (and almost all the Lean 3 tests fail). Nonetheless I think it's worth merging this, because

  • it will get rid of errors in mathport output which come from lemmas being tagged with a nonexistent attribute @[mono]
  • in most mathlib3 uses of mono, only the basic version was used, not the various configuration options; thus I would guess that this version of mono will succeed fairly often in the port even though it fails nearly all the tests

Co-authored-by: thorimur <68410468+thorimur@users.noreply.github.com>

Diff
@@ -618,7 +618,7 @@ theorem singleton_vsub_singleton : ({b} : Set β) -ᵥ {c} = {b -ᵥ c} :=
   image2_singleton
 #align set.singleton_vsub_singleton Set.singleton_vsub_singleton
 
--- @[mono] Porting note: mono not implemented yet
+@[mono]
 theorem vsub_subset_vsub : s₁ ⊆ s₂ → t₁ ⊆ t₂ → s₁ -ᵥ t₁ ⊆ s₂ -ᵥ t₂ :=
   image2_subset
 #align set.vsub_subset_vsub Set.vsub_subset_vsub
fix: remove stray LibrarySearch imports (#2275)

import Mathlib.Tactic.LibrarySearch is often useful to include while porting a theory file, but should be deleted before committing. This PR cleans up some cases where it did not get deleted:

Diff
@@ -12,7 +12,6 @@ import Mathlib.Algebra.Module.Basic
 import Mathlib.Data.Set.Pairwise
 import Mathlib.Data.Set.Pointwise.Basic
 import Mathlib.Tactic.ByContra
-import Mathlib.Tactic.LibrarySearch
 
 /-!
 # Pointwise operations of sets
chore: fix casing errors per naming scheme (#1670)
Diff
@@ -504,7 +504,7 @@ protected def mulActionSet [Monoid α] [MulAction α β] : MulAction α (Set β)
 scoped[Pointwise] attribute [instance] Set.mulActionSet Set.addActionSet Set.mulAction Set.addAction
 
 /-- A distributive multiplicative action of a monoid on an additive monoid `β` gives a distributive
-multiplicative action on `set β`. -/
+multiplicative action on `Set β`. -/
 protected def distribMulActionSet [Monoid α] [AddMonoid β] [DistribMulAction α β] :
     DistribMulAction α (Set β) where
   smul_add _ _ _ := image_image2_distrib <| smul_add _
chore: add #align statements for to_additive decls (#1816)

Co-authored-by: Floris van Doorn <fpvdoorn@gmail.com>

Diff
@@ -61,6 +61,7 @@ section SMul
 protected def smulSet [SMul α β] : SMul α (Set β) :=
   ⟨fun a ↦ image (a • .)⟩
 #align set.has_smul_set Set.smulSet
+#align set.has_vadd_set Set.vaddSet
 
 /-- The pointwise scalar multiplication of sets `s • t` is defined as `{x • y | x ∈ s, y ∈ t}` in
 locale `Pointwise`. -/
@@ -70,6 +71,7 @@ locale `Pointwise`. -/
 protected def smul [SMul α β] : SMul (Set α) (Set β) :=
   ⟨image2 (. • .)⟩
 #align set.has_smul Set.smul
+#align set.has_vadd Set.vadd
 
 scoped[Pointwise] attribute [instance] Set.smulSet Set.smul
 
@@ -87,8 +89,9 @@ variable {ι : Sort _} {κ : ι → Sort _} [SMul α β] {s s₁ s₂ : Set α}
 theorem image2_smul : image2 SMul.smul s t = s • t :=
   rfl
 #align set.image2_smul Set.image2_smul
+#align set.image2_vadd Set.image2_vadd
 
-@[to_additive add_image_prod]
+-- @[to_additive add_image_prod] -- Porting note: bug in mathlib3
 theorem image_smul_prod : (fun x : α × β ↦ x.fst • x.snd) '' s ×ˢ t = s • t :=
   image_prod _
 #align set.image_smul_prod Set.image_smul_prod
@@ -97,82 +100,98 @@ theorem image_smul_prod : (fun x : α × β ↦ x.fst • x.snd) '' s ×ˢ t = s
 theorem mem_smul : b ∈ s • t ↔ ∃ x y, x ∈ s ∧ y ∈ t ∧ x • y = b :=
   Iff.rfl
 #align set.mem_smul Set.mem_smul
+#align set.mem_vadd Set.mem_vadd
 
 @[to_additive]
 theorem smul_mem_smul : a ∈ s → b ∈ t → a • b ∈ s • t :=
   mem_image2_of_mem
 #align set.smul_mem_smul Set.smul_mem_smul
+#align set.vadd_mem_vadd Set.vadd_mem_vadd
 
 @[to_additive (attr := simp)]
 theorem empty_smul : (∅ : Set α) • t = ∅ :=
   image2_empty_left
 #align set.empty_smul Set.empty_smul
+#align set.empty_vadd Set.empty_vadd
 
 @[to_additive (attr := simp)]
 theorem smul_empty : s • (∅ : Set β) = ∅ :=
   image2_empty_right
 #align set.smul_empty Set.smul_empty
+#align set.vadd_empty Set.vadd_empty
 
 @[to_additive (attr := simp)]
 theorem smul_eq_empty : s • t = ∅ ↔ s = ∅ ∨ t = ∅ :=
   image2_eq_empty_iff
 #align set.smul_eq_empty Set.smul_eq_empty
+#align set.vadd_eq_empty Set.vadd_eq_empty
 
 @[to_additive (attr := simp)]
 theorem smul_nonempty : (s • t).Nonempty ↔ s.Nonempty ∧ t.Nonempty :=
   image2_nonempty_iff
 #align set.smul_nonempty Set.smul_nonempty
+#align set.vadd_nonempty Set.vadd_nonempty
 
 @[to_additive]
 theorem Nonempty.smul : s.Nonempty → t.Nonempty → (s • t).Nonempty :=
   Nonempty.image2
 #align set.nonempty.smul Set.Nonempty.smul
+#align set.nonempty.vadd Set.Nonempty.vadd
 
 @[to_additive]
 theorem Nonempty.of_smul_left : (s • t).Nonempty → s.Nonempty :=
   Nonempty.of_image2_left
 #align set.nonempty.of_smul_left Set.Nonempty.of_smul_left
+#align set.nonempty.of_vadd_left Set.Nonempty.of_vadd_left
 
 @[to_additive]
 theorem Nonempty.of_smul_right : (s • t).Nonempty → t.Nonempty :=
   Nonempty.of_image2_right
 #align set.nonempty.of_smul_right Set.Nonempty.of_smul_right
+#align set.nonempty.of_vadd_right Set.Nonempty.of_vadd_right
 
 @[to_additive (attr := simp low+1)]
 theorem smul_singleton : s • ({b} : Set β) = (· • b) '' s :=
   image2_singleton_right
 #align set.smul_singleton Set.smul_singleton
+#align set.vadd_singleton Set.vadd_singleton
 
 @[to_additive (attr := simp low+1)]
 theorem singleton_smul : ({a} : Set α) • t = a • t :=
   image2_singleton_left
 #align set.singleton_smul Set.singleton_smul
+#align set.singleton_vadd Set.singleton_vadd
 
 @[to_additive (attr := simp high)]
 theorem singleton_smul_singleton : ({a} : Set α) • ({b} : Set β) = {a • b} :=
   image2_singleton
 #align set.singleton_smul_singleton Set.singleton_smul_singleton
+#align set.singleton_vadd_singleton Set.singleton_vadd_singleton
 
 --Porting note: no [mono]
 @[to_additive]
 theorem smul_subset_smul : s₁ ⊆ s₂ → t₁ ⊆ t₂ → s₁ • t₁ ⊆ s₂ • t₂ :=
   image2_subset
 #align set.smul_subset_smul Set.smul_subset_smul
+#align set.vadd_subset_vadd Set.vadd_subset_vadd
 
 @[to_additive]
 theorem smul_subset_smul_left : t₁ ⊆ t₂ → s • t₁ ⊆ s • t₂ :=
   image2_subset_left
 #align set.smul_subset_smul_left Set.smul_subset_smul_left
+#align set.vadd_subset_vadd_left Set.vadd_subset_vadd_left
 
 @[to_additive]
 theorem smul_subset_smul_right : s₁ ⊆ s₂ → s₁ • t ⊆ s₂ • t :=
   image2_subset_right
 #align set.smul_subset_smul_right Set.smul_subset_smul_right
+#align set.vadd_subset_vadd_right Set.vadd_subset_vadd_right
 
 @[to_additive]
 theorem smul_subset_iff : s • t ⊆ u ↔ ∀ a ∈ s, ∀ b ∈ t, a • b ∈ u :=
   image2_subset_iff
 #align set.smul_subset_iff Set.smul_subset_iff
+#align set.vadd_subset_iff Set.vadd_subset_iff
 
 -- Porting note: no [mono]
 -- attribute [mono] vadd_subset_vadd
@@ -181,80 +200,95 @@ theorem smul_subset_iff : s • t ⊆ u ↔ ∀ a ∈ s, ∀ b ∈ t, a • b 
 theorem union_smul : (s₁ ∪ s₂) • t = s₁ • t ∪ s₂ • t :=
   image2_union_left
 #align set.union_smul Set.union_smul
+#align set.union_vadd Set.union_vadd
 
 @[to_additive]
 theorem smul_union : s • (t₁ ∪ t₂) = s • t₁ ∪ s • t₂ :=
   image2_union_right
 #align set.smul_union Set.smul_union
+#align set.vadd_union Set.vadd_union
 
 @[to_additive]
 theorem inter_smul_subset : (s₁ ∩ s₂) • t ⊆ s₁ • t ∩ s₂ • t :=
   image2_inter_subset_left
 #align set.inter_smul_subset Set.inter_smul_subset
+#align set.inter_vadd_subset Set.inter_vadd_subset
 
 @[to_additive]
 theorem smul_inter_subset : s • (t₁ ∩ t₂) ⊆ s • t₁ ∩ s • t₂ :=
   image2_inter_subset_right
 #align set.smul_inter_subset Set.smul_inter_subset
+#align set.vadd_inter_subset Set.vadd_inter_subset
 
 @[to_additive]
 theorem unionᵢ_smul_left_image : (⋃ a ∈ s, a • t) = s • t :=
   unionᵢ_image_left _
 #align set.Union_smul_left_image Set.unionᵢ_smul_left_image
+#align set.Union_vadd_left_image Set.unionᵢ_vadd_left_image
 
 @[to_additive]
 theorem unionᵢ_smul_right_image : (⋃ a ∈ t, (· • a) '' s) = s • t :=
   unionᵢ_image_right _
 #align set.Union_smul_right_image Set.unionᵢ_smul_right_image
+#align set.Union_vadd_right_image Set.unionᵢ_vadd_right_image
 
 @[to_additive]
 theorem unionᵢ_smul (s : ι → Set α) (t : Set β) : (⋃ i, s i) • t = ⋃ i, s i • t :=
   image2_unionᵢ_left _ _ _
 #align set.Union_smul Set.unionᵢ_smul
+#align set.Union_vadd Set.unionᵢ_vadd
 
 @[to_additive]
 theorem smul_unionᵢ (s : Set α) (t : ι → Set β) : (s • ⋃ i, t i) = ⋃ i, s • t i :=
   image2_unionᵢ_right _ _ _
 #align set.smul_Union Set.smul_unionᵢ
+#align set.vadd_Union Set.vadd_unionᵢ
 
 @[to_additive]
 theorem unionᵢ₂_smul (s : ∀ i, κ i → Set α) (t : Set β) :
     (⋃ (i) (j), s i j) • t = ⋃ (i) (j), s i j • t :=
   image2_unionᵢ₂_left _ _ _
 #align set.Union₂_smul Set.unionᵢ₂_smul
+#align set.Union₂_vadd Set.unionᵢ₂_vadd
 
 @[to_additive]
 theorem smul_unionᵢ₂ (s : Set α) (t : ∀ i, κ i → Set β) :
     (s • ⋃ (i) (j), t i j) = ⋃ (i) (j), s • t i j :=
   image2_unionᵢ₂_right _ _ _
 #align set.smul_Union₂ Set.smul_unionᵢ₂
+#align set.vadd_Union₂ Set.vadd_unionᵢ₂
 
 @[to_additive]
 theorem interᵢ_smul_subset (s : ι → Set α) (t : Set β) : (⋂ i, s i) • t ⊆ ⋂ i, s i • t :=
   image2_interᵢ_subset_left _ _ _
 #align set.Inter_smul_subset Set.interᵢ_smul_subset
+#align set.Inter_vadd_subset Set.interᵢ_vadd_subset
 
 @[to_additive]
 theorem smul_interᵢ_subset (s : Set α) (t : ι → Set β) : (s • ⋂ i, t i) ⊆ ⋂ i, s • t i :=
   image2_interᵢ_subset_right _ _ _
 #align set.smul_Inter_subset Set.smul_interᵢ_subset
+#align set.vadd_Inter_subset Set.vadd_interᵢ_subset
 
 @[to_additive]
 theorem interᵢ₂_smul_subset (s : ∀ i, κ i → Set α) (t : Set β) :
     (⋂ (i) (j), s i j) • t ⊆ ⋂ (i) (j), s i j • t :=
   image2_interᵢ₂_subset_left _ _ _
 #align set.Inter₂_smul_subset Set.interᵢ₂_smul_subset
+#align set.Inter₂_vadd_subset Set.interᵢ₂_vadd_subset
 
 @[to_additive]
 theorem smul_interᵢ₂_subset (s : Set α) (t : ∀ i, κ i → Set β) :
     (s • ⋂ (i) (j), t i j) ⊆ ⋂ (i) (j), s • t i j :=
   image2_interᵢ₂_subset_right _ _ _
 #align set.smul_Inter₂_subset Set.smul_interᵢ₂_subset
+#align set.vadd_Inter₂_subset Set.vadd_interᵢ₂_subset
 
 @[to_additive (attr := simp)]
 theorem unionᵢ_smul_set (s : Set α) (t : Set β) : (⋃ a ∈ s, a • t) = s • t :=
   unionᵢ_image_left _
 #align set.bUnion_smul_set Set.unionᵢ_smul_set
+#align set.bUnion_vadd_set Set.unionᵢ_vadd_set
 
 end SMul
 
@@ -266,83 +300,99 @@ variable {ι : Sort _} {κ : ι → Sort _} [SMul α β] {s t t₁ t₂ : Set β
 theorem image_smul : (fun x ↦ a • x) '' t = a • t :=
   rfl
 #align set.image_smul Set.image_smul
+#align set.image_vadd Set.image_vadd
 
 @[to_additive]
 theorem mem_smul_set : x ∈ a • t ↔ ∃ y, y ∈ t ∧ a • y = x :=
   Iff.rfl
 #align set.mem_smul_set Set.mem_smul_set
+#align set.mem_vadd_set Set.mem_vadd_set
 
 @[to_additive]
 theorem smul_mem_smul_set : b ∈ s → a • b ∈ a • s :=
   mem_image_of_mem _
 #align set.smul_mem_smul_set Set.smul_mem_smul_set
+#align set.vadd_mem_vadd_set Set.vadd_mem_vadd_set
 
 @[to_additive (attr := simp)]
 theorem smul_set_empty : a • (∅ : Set β) = ∅ :=
   image_empty _
 #align set.smul_set_empty Set.smul_set_empty
+#align set.vadd_set_empty Set.vadd_set_empty
 
 @[to_additive (attr := simp)]
 theorem smul_set_eq_empty : a • s = ∅ ↔ s = ∅ :=
   image_eq_empty
 #align set.smul_set_eq_empty Set.smul_set_eq_empty
+#align set.vadd_set_eq_empty Set.vadd_set_eq_empty
 
 @[to_additive (attr := simp)]
 theorem smul_set_nonempty : (a • s).Nonempty ↔ s.Nonempty :=
   nonempty_image_iff
 #align set.smul_set_nonempty Set.smul_set_nonempty
+#align set.vadd_set_nonempty Set.vadd_set_nonempty
 
 @[to_additive (attr := simp)]
 theorem smul_set_singleton : a • ({b} : Set β) = {a • b} :=
   image_singleton
 #align set.smul_set_singleton Set.smul_set_singleton
+#align set.vadd_set_singleton Set.vadd_set_singleton
 
 @[to_additive]
 theorem smul_set_mono : s ⊆ t → a • s ⊆ a • t :=
   image_subset _
 #align set.smul_set_mono Set.smul_set_mono
+#align set.vadd_set_mono Set.vadd_set_mono
 
 @[to_additive]
 theorem smul_set_subset_iff : a • s ⊆ t ↔ ∀ ⦃b⦄, b ∈ s → a • b ∈ t :=
   image_subset_iff
 #align set.smul_set_subset_iff Set.smul_set_subset_iff
+#align set.vadd_set_subset_iff Set.vadd_set_subset_iff
 
 @[to_additive]
 theorem smul_set_union : a • (t₁ ∪ t₂) = a • t₁ ∪ a • t₂ :=
   image_union _ _ _
 #align set.smul_set_union Set.smul_set_union
+#align set.vadd_set_union Set.vadd_set_union
 
 @[to_additive]
 theorem smul_set_inter_subset : a • (t₁ ∩ t₂) ⊆ a • t₁ ∩ a • t₂ :=
   image_inter_subset _ _ _
 #align set.smul_set_inter_subset Set.smul_set_inter_subset
+#align set.vadd_set_inter_subset Set.vadd_set_inter_subset
 
 @[to_additive]
 theorem smul_set_Union (a : α) (s : ι → Set β) : (a • ⋃ i, s i) = ⋃ i, a • s i :=
   image_unionᵢ
 #align set.smul_set_Union Set.smul_set_Union
+#align set.vadd_set_Union Set.vadd_set_Union
 
 @[to_additive]
 theorem smul_set_unionᵢ₂ (a : α) (s : ∀ i, κ i → Set β) :
     (a • ⋃ (i) (j), s i j) = ⋃ (i) (j), a • s i j :=
   image_unionᵢ₂ _ _
 #align set.smul_set_Union₂ Set.smul_set_unionᵢ₂
+#align set.vadd_set_Union₂ Set.vadd_set_unionᵢ₂
 
 @[to_additive]
 theorem smul_set_interᵢ_subset (a : α) (t : ι → Set β) : (a • ⋂ i, t i) ⊆ ⋂ i, a • t i :=
   image_interᵢ_subset _ _
 #align set.smul_set_Inter_subset Set.smul_set_interᵢ_subset
+#align set.vadd_set_Inter_subset Set.vadd_set_interᵢ_subset
 
 @[to_additive]
 theorem smul_set_interᵢ₂_subset (a : α) (t : ∀ i, κ i → Set β) :
     (a • ⋂ (i) (j), t i j) ⊆ ⋂ (i) (j), a • t i j :=
   image_interᵢ₂_subset _ _
 #align set.smul_set_Inter₂_subset Set.smul_set_interᵢ₂_subset
+#align set.vadd_set_Inter₂_subset Set.vadd_set_interᵢ₂_subset
 
 @[to_additive]
 theorem Nonempty.smul_set : s.Nonempty → (a • s).Nonempty :=
   Nonempty.image _
 #align set.nonempty.smul_set Set.Nonempty.smul_set
+#align set.nonempty.vadd_set Set.Nonempty.vadd_set
 
 end SMulSet
 
@@ -352,6 +402,7 @@ variable {s s₁ s₂ : Set α} {t t₁ t₂ : Set β} {a : α} {b : β}
 theorem unionᵢ_op_smul_set [Mul α] (s t : Set α) : (⋃ a ∈ t, MulOpposite.op a • s) = s * t :=
   unionᵢ_image_right _
 #align set.bUnion_op_smul_set Set.unionᵢ_op_smul_set
+#align set.bUnion_op_vadd_set Set.unionᵢ_op_vadd_set
 
 @[to_additive]
 theorem range_smul_range {ι κ : Type _} [SMul α β] (b : ι → α) (c : κ → β) :
@@ -362,24 +413,28 @@ theorem range_smul_range {ι κ : Type _} [SMul α β] (b : ι → α) (c : κ 
       ⟨(i, j), hpq ▸ hi ▸ hj ▸ rfl⟩,
       fun ⟨⟨i, j⟩, h⟩ ↦ Set.mem_smul.2 ⟨b i, c j, ⟨i, rfl⟩, ⟨j, rfl⟩, h⟩⟩
 #align set.range_smul_range Set.range_smul_range
+#align set.range_vadd_range Set.range_vadd_range
 
 @[to_additive]
 theorem smul_set_range [SMul α β] {ι : Sort _} {f : ι → β} :
     a • range f = range fun i ↦ a • f i :=
   (range_comp _ _).symm
 #align set.smul_set_range Set.smul_set_range
+#align set.vadd_set_range Set.vadd_set_range
 
 @[to_additive]
 instance smulCommClass_set [SMul α γ] [SMul β γ] [SMulCommClass α β γ] :
     SMulCommClass α β (Set γ) :=
   ⟨fun _ _ ↦ Commute.set_image <| smul_comm _ _⟩
 #align set.smul_comm_class_set Set.smulCommClass_set
+#align set.vadd_comm_class_set Set.vaddCommClass_set
 
 @[to_additive]
 instance smulCommClass_set' [SMul α γ] [SMul β γ] [SMulCommClass α β γ] :
     SMulCommClass α (Set β) (Set γ) :=
   ⟨fun _ _ _ ↦ image_image2_distrib_right <| smul_comm _⟩
 #align set.smul_comm_class_set' Set.smulCommClass_set'
+#align set.vadd_comm_class_set' Set.vaddCommClass_set'
 
 @[to_additive]
 instance smulCommClass_set'' [SMul α γ] [SMul β γ] [SMulCommClass α β γ] :
@@ -387,12 +442,14 @@ instance smulCommClass_set'' [SMul α γ] [SMul β γ] [SMulCommClass α β γ]
   haveI := SMulCommClass.symm α β γ
   SMulCommClass.symm _ _ _
 #align set.smul_comm_class_set'' Set.smulCommClass_set''
+#align set.vadd_comm_class_set'' Set.vaddCommClass_set''
 
 @[to_additive]
 instance smulCommClass [SMul α γ] [SMul β γ] [SMulCommClass α β γ] :
     SMulCommClass (Set α) (Set β) (Set γ) :=
   ⟨fun _ _ _ ↦ image2_left_comm smul_comm⟩
 #align set.smul_comm_class Set.smulCommClass
+#align set.vadd_comm_class Set.vaddCommClass
 
 @[to_additive vAddAssocClass]
 instance isScalarTower [SMul α β] [SMul α γ] [SMul β γ] [IsScalarTower α β γ] :
@@ -429,6 +486,7 @@ protected def mulAction [Monoid α] [MulAction α β] : MulAction (Set α) (Set
   mul_smul _ _ _ := image2_assoc mul_smul
   one_smul s := image2_singleton_left.trans <| by simp_rw [one_smul, image_id']
 #align set.mul_action Set.mulAction
+#align set.add_action Set.addAction
 
 /-- A multiplicative action of a monoid on a type `β` gives a multiplicative action on `Set β`. -/
 @[to_additive
@@ -441,6 +499,7 @@ protected def mulActionSet [Monoid α] [MulAction α β] : MulAction α (Set β)
     intros
     simp only [← image_smul, one_smul, image_id']
 #align set.mul_action_set Set.mulActionSet
+#align set.add_action_set Set.addActionSet
 
 scoped[Pointwise] attribute [instance] Set.mulActionSet Set.addActionSet Set.mulAction Set.addAction
 
@@ -717,6 +776,7 @@ theorem pairwiseDisjoint_smul_iff :
     s.PairwiseDisjoint (· • t) ↔ (s ×ˢ t).InjOn fun p ↦ p.1 * p.2 :=
   pairwiseDisjoint_image_right_iff fun _ _ ↦ mul_right_injective _
 #align set.pairwise_disjoint_smul_iff Set.pairwiseDisjoint_smul_iff
+#align set.pairwise_disjoint_vadd_iff Set.pairwiseDisjoint_vadd_iff
 
 end LeftCancelSemigroup
 
@@ -728,37 +788,44 @@ variable [Group α] [MulAction α β] {s t A B : Set β} {a : α} {x : β}
 theorem smul_mem_smul_set_iff : a • x ∈ a • s ↔ x ∈ s :=
   (MulAction.injective _).mem_set_image
 #align set.smul_mem_smul_set_iff Set.smul_mem_smul_set_iff
+#align set.vadd_mem_vadd_set_iff Set.vadd_mem_vadd_set_iff
 
 @[to_additive]
 theorem mem_smul_set_iff_inv_smul_mem : x ∈ a • A ↔ a⁻¹ • x ∈ A :=
   show x ∈ MulAction.toPerm a '' A ↔ _ from mem_image_equiv
 #align set.mem_smul_set_iff_inv_smul_mem Set.mem_smul_set_iff_inv_smul_mem
+#align set.mem_vadd_set_iff_neg_vadd_mem Set.mem_vadd_set_iff_neg_vadd_mem
 
 @[to_additive]
 theorem mem_inv_smul_set_iff : x ∈ a⁻¹ • A ↔ a • x ∈ A := by
   simp only [← image_smul, mem_image, inv_smul_eq_iff, exists_eq_right]
 #align set.mem_inv_smul_set_iff Set.mem_inv_smul_set_iff
+#align set.mem_neg_vadd_set_iff Set.mem_neg_vadd_set_iff
 
 @[to_additive]
 theorem preimage_smul (a : α) (t : Set β) : (fun x ↦ a • x) ⁻¹' t = a⁻¹ • t :=
   ((MulAction.toPerm a).symm.image_eq_preimage _).symm
 #align set.preimage_smul Set.preimage_smul
+#align set.preimage_vadd Set.preimage_vadd
 
 @[to_additive]
 theorem preimage_smul_inv (a : α) (t : Set β) : (fun x ↦ a⁻¹ • x) ⁻¹' t = a • t :=
   preimage_smul (toUnits a)⁻¹ t
 #align set.preimage_smul_inv Set.preimage_smul_inv
+#align set.preimage_vadd_neg Set.preimage_vadd_neg
 
 @[to_additive (attr := simp)]
 theorem set_smul_subset_set_smul_iff : a • A ⊆ a • B ↔ A ⊆ B :=
   image_subset_image_iff <| MulAction.injective _
 #align set.set_smul_subset_set_smul_iff Set.set_smul_subset_set_smul_iff
+#align set.set_vadd_subset_set_vadd_iff Set.set_vadd_subset_set_vadd_iff
 
 @[to_additive]
 theorem set_smul_subset_iff : a • A ⊆ B ↔ A ⊆ a⁻¹ • B :=
   image_subset_iff.trans <|
     iff_of_eq <| congr_arg _ <| preimage_equiv_eq_image_symm _ <| MulAction.toPerm _
 #align set.set_smul_subset_iff Set.set_smul_subset_iff
+#align set.set_vadd_subset_iff Set.set_vadd_subset_iff
 
 @[to_additive]
 theorem subset_set_smul_iff : A ⊆ a • B ↔ a⁻¹ • A ⊆ B :=
@@ -766,32 +833,38 @@ theorem subset_set_smul_iff : A ⊆ a • B ↔ a⁻¹ • A ⊆ B :=
     image_subset_iff.trans <|
       Iff.symm <| iff_of_eq <| congr_arg _ <| image_equiv_eq_preimage_symm _ <| MulAction.toPerm _
 #align set.subset_set_smul_iff Set.subset_set_smul_iff
+#align set.subset_set_vadd_iff Set.subset_set_vadd_iff
 
 @[to_additive]
 theorem smul_set_inter : a • (s ∩ t) = a • s ∩ a • t :=
   image_inter <| MulAction.injective a
 #align set.smul_set_inter Set.smul_set_inter
+#align set.vadd_set_inter Set.vadd_set_inter
 
 @[to_additive]
 theorem smul_set_sdiff : a • (s \ t) = a • s \ a • t :=
   image_diff (MulAction.injective a) _ _
 #align set.smul_set_sdiff Set.smul_set_sdiff
+#align set.vadd_set_sdiff Set.vadd_set_sdiff
 
 @[to_additive]
 theorem smul_set_symm_diff : a • s ∆ t = (a • s) ∆ (a • t) :=
   image_symm_diff (MulAction.injective a) _ _
 #align set.smul_set_symm_diff Set.smul_set_symm_diff
+#align set.vadd_set_symm_diff Set.vadd_set_symm_diff
 
 @[to_additive (attr := simp)]
 theorem smul_set_univ : a • (univ : Set β) = univ :=
   image_univ_of_surjective <| MulAction.surjective a
 #align set.smul_set_univ Set.smul_set_univ
+#align set.vadd_set_univ Set.vadd_set_univ
 
 @[to_additive (attr := simp)]
 theorem smul_univ {s : Set α} (hs : s.Nonempty) : s • (univ : Set β) = univ :=
   let ⟨a, ha⟩ := hs
   eq_univ_of_forall fun b ↦ ⟨a, a⁻¹ • b, ha, trivial, smul_inv_smul _ _⟩
 #align set.smul_univ Set.smul_univ
+#align set.vadd_univ Set.vadd_univ
 
 @[to_additive]
 theorem smul_inter_ne_empty_iff {s t : Set α} {x : α} :
@@ -804,12 +877,14 @@ theorem smul_inter_ne_empty_iff {s t : Set α} {x : α} :
   · rintro ⟨a, b, ⟨ha, hb⟩, rfl⟩
     exact ⟨a, mem_inter (mem_smul_set.mpr ⟨b, hb, by simp⟩) ha⟩
 #align set.smul_inter_ne_empty_iff Set.smul_inter_ne_empty_iff
+#align set.vadd_inter_ne_empty_iff Set.vadd_inter_ne_empty_iff
 
 @[to_additive]
 theorem smul_inter_ne_empty_iff' {s t : Set α} {x : α} :
     x • s ∩ t ≠ ∅ ↔ ∃ a b, (a ∈ t ∧ b ∈ s) ∧ a / b = x := by
   simp_rw [smul_inter_ne_empty_iff, div_eq_mul_inv]
 #align set.smul_inter_ne_empty_iff' Set.smul_inter_ne_empty_iff'
+#align set.vadd_inter_ne_empty_iff' Set.vadd_inter_ne_empty_iff'
 
 @[to_additive]
 theorem op_smul_inter_ne_empty_iff {s t : Set α} {x : αᵐᵒᵖ} :
@@ -823,16 +898,19 @@ theorem op_smul_inter_ne_empty_iff {s t : Set α} {x : αᵐᵒᵖ} :
     have : MulOpposite.op (a⁻¹ * b) = x := congr_arg MulOpposite.op H
     exact ⟨b, mem_inter (mem_smul_set.mpr ⟨a, ha, by simp [← this]⟩) hb⟩
 #align set.op_smul_inter_ne_empty_iff Set.op_smul_inter_ne_empty_iff
+#align set.op_vadd_inter_ne_empty_iff Set.op_vadd_inter_ne_empty_iff
 
 @[to_additive (attr := simp)]
 theorem unionᵢ_inv_smul : (⋃ g : α, g⁻¹ • s) = ⋃ g : α, g • s :=
   (Function.Surjective.supᵢ_congr _ inv_surjective) fun _ ↦ rfl
 #align set.Union_inv_smul Set.unionᵢ_inv_smul
+#align set.Union_neg_vadd Set.unionᵢ_neg_vadd
 
 @[to_additive]
 theorem unionᵢ_smul_eq_setOf_exists {s : Set β} : (⋃ g : α, g • s) = { a | ∃ g : α, g • a ∈ s } :=
   by simp_rw [← unionᵢ_setOf, ← unionᵢ_inv_smul, ← preimage_smul, preimage]
 #align set.Union_smul_eq_set_of_exists Set.unionᵢ_smul_eq_setOf_exists
+#align set.Union_vadd_eq_set_of_exists Set.unionᵢ_vadd_eq_setOf_exists
 
 end Group
 
chore: format by line breaks with long lines (#1529)

This was done semi-automatically with some regular expressions in vim in contrast to the fully automatic https://github.com/leanprover-community/mathlib4/pull/1523.

Co-authored-by: Moritz Firsching <firsching@google.com>

Diff
@@ -688,8 +688,8 @@ theorem zero_mem_smul_set {t : Set β} {a : α} (h : (0 : β) ∈ t) : (0 : β)
 
 variable [NoZeroSMulDivisors α β] {a : α}
 
-theorem zero_mem_smul_iff : (0 : β) ∈ s • t ↔ (0 : α) ∈ s ∧ t.Nonempty ∨ (0 : β) ∈ t ∧ s.Nonempty :=
-  by
+theorem zero_mem_smul_iff :
+    (0 : β) ∈ s • t ↔ (0 : α) ∈ s ∧ t.Nonempty ∨ (0 : β) ∈ t ∧ s.Nonempty := by
   constructor
   · rintro ⟨a, b, ha, hb, h⟩
     obtain rfl | rfl := eq_zero_or_eq_zero_of_smul_eq_zero h
chore: format by line breaks (#1523)

During porting, I usually fix the desired format we seem to want for the line breaks around by with

awk '{do {{if (match($0, "^  by$") && length(p) < 98) {p=p " by";} else {if (NR!=1) {print p}; p=$0}}} while (getline == 1) if (getline==0) print p}' Mathlib/File/Im/Working/On.lean

I noticed there are some more files that slipped through.

This pull request is the result of running this command:

grep -lr "^  by\$" Mathlib | xargs -n 1 awk -i inplace '{do {{if (match($0, "^  by$") && length(p) < 98 && not (match(p, "^[ \t]*--"))) {p=p " by";} else {if (NR!=1) {print p}; p=$0}}} while (getline == 1) if (getline==0) print p}'

Co-authored-by: Moritz Firsching <firsching@google.com>

Diff
@@ -700,8 +700,7 @@ theorem zero_mem_smul_iff : (0 : β) ∈ s • t ↔ (0 : α) ∈ s ∧ t.Nonemp
     · exact ⟨a, 0, ha, ht, smul_zero _⟩
 #align set.zero_mem_smul_iff Set.zero_mem_smul_iff
 
-theorem zero_mem_smul_set_iff (ha : a ≠ 0) : (0 : β) ∈ a • t ↔ (0 : β) ∈ t :=
-  by
+theorem zero_mem_smul_set_iff (ha : a ≠ 0) : (0 : β) ∈ a • t ↔ (0 : β) ∈ t := by
   refine' ⟨_, zero_mem_smul_set⟩
   rintro ⟨b, hb, h⟩
   rwa [(eq_zero_or_eq_zero_of_smul_eq_zero h).resolve_left ha] at hb
chore: Fixed occurences of 'Smul' (#1570)
Diff
@@ -650,7 +650,7 @@ section SMulWithZero
 variable [Zero α] [Zero β] [SMulWithZero α β] {s : Set α} {t : Set β}
 
 /-!
-Note that we have neither `SmulWithZero α (Set β)` nor `SmulWithZero (Set α) (Set β)`
+Note that we have neither `SMulWithZero α (Set β)` nor `SMulWithZero (Set α) (Set β)`
 because `0 * ∅ ≠ 0`.
 -/
 
feat: port Data.Set.Pointwise.SMul (#1473)

Co-authored-by: ChrisHughes24 <chrishughes24@gmail.com> Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com>

Dependencies 3 + 155

156 files ported (98.1%)
65082 lines ported (98.4%)
Show graph

The unported dependencies are