data.set.intervals.piMathlib.Data.Set.Intervals.Pi

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)

(last sync)

feat(data/set/intervals/pi): f.update i '' Icc a b = Icc (f.update i a) (f.update i b) (#18892)

and corresponding lemmas for pi.single

Diff
@@ -3,6 +3,7 @@ Copyright (c) 2020 Yury Kudryashov. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov
 -/
+import data.pi.algebra
 import data.set.intervals.basic
 import data.set.intervals.unordered_interval
 import data.set.lattice
@@ -106,12 +107,172 @@ end
 
 end pi_preorder
 
+section pi_partial_order
+variables [decidable_eq ι] [Π i, partial_order (α i)]
+
+lemma image_update_Icc (f : Π i, α i) (i : ι) (a b : α i) :
+  f.update i '' Icc a b = Icc (f.update i a) (f.update i b) :=
+begin
+  ext,
+  rw ←set.pi_univ_Icc,
+  refine ⟨_, λ h, ⟨x i, _, _⟩⟩,
+  { rintro ⟨c, hc, rfl⟩,
+    simpa [update_le_update_iff] },
+  { simpa only [function.update_same] using h i (mem_univ i) },
+  { ext j,
+    obtain rfl | hij := eq_or_ne i j,
+    { exact function.update_same _ _ _ },
+    { simpa only [function.update_noteq hij.symm, le_antisymm_iff] using h j (mem_univ j) } }
+end
+
+lemma image_update_Ico (f : Π i, α i) (i : ι) (a b : α i) :
+  f.update i '' Ico a b = Ico (f.update i a) (f.update i b) :=
+by rw [←Icc_diff_right, ←Icc_diff_right, image_diff (f.update_injective _), image_singleton,
+  image_update_Icc]
+
+lemma image_update_Ioc (f : Π i, α i) (i : ι) (a b : α i) :
+  f.update i '' Ioc a b = Ioc (f.update i a) (f.update i b) :=
+by rw [←Icc_diff_left, ←Icc_diff_left, image_diff (f.update_injective _), image_singleton,
+  image_update_Icc]
+
+lemma image_update_Ioo (f : Π i, α i) (i : ι) (a b : α i) :
+  f.update i '' Ioo a b = Ioo (f.update i a) (f.update i b) :=
+by rw [←Ico_diff_left, ←Ico_diff_left, image_diff (f.update_injective _), image_singleton,
+  image_update_Ico]
+
+lemma image_update_Icc_left (f : Π i, α i) (i : ι) (a : α i) :
+  f.update i '' Icc a (f i) = Icc (f.update i a) f :=
+by simpa using image_update_Icc f i a (f i)
+
+lemma image_update_Ico_left (f : Π i, α i) (i : ι) (a : α i) :
+  f.update i '' Ico a (f i) = Ico (f.update i a) f :=
+by simpa using image_update_Ico f i a (f i)
+
+lemma image_update_Ioc_left (f : Π i, α i) (i : ι) (a : α i) :
+  f.update i '' Ioc a (f i) = Ioc (f.update i a) f :=
+by simpa using image_update_Ioc f i a (f i)
+
+lemma image_update_Ioo_left (f : Π i, α i) (i : ι) (a : α i) :
+  f.update i '' Ioo a (f i) = Ioo (f.update i a) f :=
+by simpa using image_update_Ioo f i a (f i)
+
+lemma image_update_Icc_right (f : Π i, α i) (i : ι) (b : α i) :
+  f.update i '' Icc (f i) b = Icc f (f.update i b) :=
+by simpa using image_update_Icc f i (f i) b
+
+lemma image_update_Ico_right (f : Π i, α i) (i : ι) (b : α i) :
+  f.update i '' Ico (f i) b = Ico f (f.update i b) :=
+by simpa using image_update_Ico f i (f i) b
+
+lemma image_update_Ioc_right (f : Π i, α i) (i : ι) (b : α i) :
+  f.update i '' Ioc (f i) b = Ioc f (f.update i b) :=
+by simpa using image_update_Ioc f i (f i) b
+
+lemma image_update_Ioo_right (f : Π i, α i) (i : ι) (b : α i) :
+  f.update i '' Ioo (f i) b = Ioo f (f.update i b) :=
+by simpa using image_update_Ioo f i (f i) b
+
+variables [Π i, has_one (α i)]
+
+@[to_additive]
+lemma image_mul_single_Icc (i : ι) (a b : α i) :
+  pi.mul_single i '' Icc a b = Icc (pi.mul_single i a) (pi.mul_single i b) :=
+image_update_Icc _ _ _ _
+
+@[to_additive]
+lemma image_mul_single_Ico (i : ι) (a b : α i) :
+  pi.mul_single i '' Ico a b = Ico (pi.mul_single i a) (pi.mul_single i b) :=
+image_update_Ico _ _ _ _
+
+@[to_additive]
+lemma image_mul_single_Ioc (i : ι) (a b : α i) :
+  pi.mul_single i '' Ioc a b = Ioc (pi.mul_single i a) (pi.mul_single i b) :=
+image_update_Ioc _ _ _ _
+
+@[to_additive]
+lemma image_mul_single_Ioo (i : ι) (a b : α i) :
+  pi.mul_single i '' Ioo a b = Ioo (pi.mul_single i a) (pi.mul_single i b) :=
+image_update_Ioo _ _ _ _
+
+@[to_additive]
+lemma image_mul_single_Icc_left (i : ι) (a : α i) :
+  pi.mul_single i '' Icc a 1 = Icc (pi.mul_single i a) 1 :=
+image_update_Icc_left _ _ _
+
+@[to_additive]
+lemma image_mul_single_Ico_left (i : ι) (a : α i) :
+  pi.mul_single i '' Ico a 1 = Ico (pi.mul_single i a) 1 :=
+image_update_Ico_left _ _ _
+
+@[to_additive]
+lemma image_mul_single_Ioc_left (i : ι) (a : α i) :
+  pi.mul_single i '' Ioc a 1 = Ioc (pi.mul_single i a) 1 :=
+image_update_Ioc_left _ _ _
+
+@[to_additive]
+lemma image_mul_single_Ioo_left (i : ι) (a : α i) :
+  pi.mul_single i '' Ioo a 1 = Ioo (pi.mul_single i a) 1 :=
+image_update_Ioo_left _ _ _
+
+@[to_additive]
+lemma image_mul_single_Icc_right (i : ι) (b : α i) :
+  pi.mul_single i '' Icc 1 b = Icc 1 (pi.mul_single i b) :=
+image_update_Icc_right _ _ _
+
+@[to_additive]
+lemma image_mul_single_Ico_right (i : ι) (b : α i) :
+  pi.mul_single i '' Ico 1 b = Ico 1 (pi.mul_single i b) :=
+image_update_Ico_right _ _ _
+
+@[to_additive]
+lemma image_mul_single_Ioc_right (i : ι) (b : α i) :
+  pi.mul_single i '' Ioc 1 b = Ioc 1 (pi.mul_single i b) :=
+image_update_Ioc_right _ _ _
+
+@[to_additive]
+lemma image_mul_single_Ioo_right (i : ι) (b : α i) :
+  pi.mul_single i '' Ioo 1 b = Ioo 1 (pi.mul_single i b) :=
+image_update_Ioo_right _ _ _
+
+end pi_partial_order
+
 section pi_lattice
 variables [Π i, lattice (α i)]
 
 @[simp] lemma pi_univ_uIcc (a b : Π i, α i) : pi univ (λ i, uIcc (a i) (b i)) = uIcc a b :=
 pi_univ_Icc _ _
 
+variables [decidable_eq ι]
+
+lemma image_update_uIcc (f : Π i, α i) (i : ι) (a b : α i) :
+  f.update i '' uIcc a b = uIcc (f.update i a) (f.update i b) :=
+(image_update_Icc _ _ _ _).trans $ by simp_rw [uIcc, f.update_sup, f.update_inf]
+
+lemma image_update_uIcc_left (f : Π i, α i) (i : ι) (a : α i) :
+  f.update i '' uIcc a (f i) = uIcc (f.update i a) f :=
+by simpa using image_update_uIcc f i a (f i)
+
+lemma image_update_uIcc_right (f : Π i, α i) (i : ι) (b : α i) :
+  f.update i '' uIcc (f i) b = uIcc f (f.update i b) :=
+by simpa using image_update_uIcc f i (f i) b
+
+variables [Π i, has_one (α i)]
+
+@[to_additive]
+lemma image_mul_single_uIcc (i : ι) (a b : α i) :
+  pi.mul_single i '' uIcc a b = uIcc (pi.mul_single i a) (pi.mul_single i b) :=
+image_update_uIcc _ _ _ _
+
+@[to_additive]
+lemma image_mul_single_uIcc_left (i : ι) (a : α i) :
+  pi.mul_single i '' uIcc a 1 = uIcc (pi.mul_single i a) 1 :=
+image_update_uIcc_left _ _ _
+
+@[to_additive]
+lemma image_mul_single_uIcc_right (i : ι) (b : α i) :
+  pi.mul_single i '' uIcc 1 b = uIcc 1 (pi.mul_single i b) :=
+image_update_uIcc_right _ _ _
+
 end pi_lattice
 
 variables [decidable_eq ι] [Π i, linear_order (α i)]

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(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/set/intervals/unordered_interval): prod and pi lemmas (#18835)
Diff
@@ -4,6 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov
 -/
 import data.set.intervals.basic
+import data.set.intervals.unordered_interval
 import data.set.lattice
 
 /-!
@@ -105,6 +106,14 @@ end
 
 end pi_preorder
 
+section pi_lattice
+variables [Π i, lattice (α i)]
+
+@[simp] lemma pi_univ_uIcc (a b : Π i, α i) : pi univ (λ i, uIcc (a i) (b i)) = uIcc a b :=
+pi_univ_Icc _ _
+
+end pi_lattice
+
 variables [decidable_eq ι] [Π i, linear_order (α i)]
 
 open function (update)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(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
@@ -4,8 +4,8 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov
 -/
 import Algebra.Group.Pi.Basic
-import Data.Set.Intervals.Basic
-import Data.Set.Intervals.UnorderedInterval
+import Order.Interval.Set.Basic
+import Order.Interval.Set.UnorderedInterval
 import Data.Set.Lattice
 
 #align_import data.set.intervals.pi from "leanprover-community/mathlib"@"e4bc74cbaf429d706cb9140902f7ca6c431e75a4"
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2020 Yury Kudryashov. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov
 -/
-import Data.Pi.Algebra
+import Algebra.Group.Pi.Basic
 import Data.Set.Intervals.Basic
 import Data.Set.Intervals.UnorderedInterval
 import Data.Set.Lattice
@@ -51,7 +51,7 @@ theorem pi_univ_Icc : (pi univ fun i => Icc (x i) (y i)) = Icc x y :=
 #align set.pi_univ_Icc Set.pi_univ_Icc
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (i «expr ∉ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:642:2: warning: expanding binder collection (i «expr ∉ » s) -/
 #print Set.piecewise_mem_Icc /-
 theorem piecewise_mem_Icc {s : Set ι} [∀ j, Decidable (j ∈ s)] {f₁ f₂ g₁ g₂ : ∀ i, α i}
     (h₁ : ∀ i ∈ s, f₁ i ∈ Icc (g₁ i) (g₂ i)) (h₂ : ∀ (i) (_ : i ∉ s), f₂ i ∈ Icc (g₁ i) (g₂ i)) :
Diff
@@ -3,10 +3,10 @@ Copyright (c) 2020 Yury Kudryashov. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov
 -/
-import Mathbin.Data.Pi.Algebra
-import Mathbin.Data.Set.Intervals.Basic
-import Mathbin.Data.Set.Intervals.UnorderedInterval
-import Mathbin.Data.Set.Lattice
+import Data.Pi.Algebra
+import Data.Set.Intervals.Basic
+import Data.Set.Intervals.UnorderedInterval
+import Data.Set.Lattice
 
 #align_import data.set.intervals.pi from "leanprover-community/mathlib"@"e4bc74cbaf429d706cb9140902f7ca6c431e75a4"
 
@@ -51,7 +51,7 @@ theorem pi_univ_Icc : (pi univ fun i => Icc (x i) (y i)) = Icc x y :=
 #align set.pi_univ_Icc Set.pi_univ_Icc
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (i «expr ∉ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (i «expr ∉ » s) -/
 #print Set.piecewise_mem_Icc /-
 theorem piecewise_mem_Icc {s : Set ι} [∀ j, Decidable (j ∈ s)] {f₁ f₂ g₁ g₂ : ∀ i, α i}
     (h₁ : ∀ i ∈ s, f₁ i ∈ Icc (g₁ i) (g₂ i)) (h₂ : ∀ (i) (_ : i ∉ s), f₂ i ∈ Icc (g₁ i) (g₂ i)) :
Diff
@@ -2,17 +2,14 @@
 Copyright (c) 2020 Yury Kudryashov. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov
-
-! This file was ported from Lean 3 source module data.set.intervals.pi
-! leanprover-community/mathlib commit e4bc74cbaf429d706cb9140902f7ca6c431e75a4
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Data.Pi.Algebra
 import Mathbin.Data.Set.Intervals.Basic
 import Mathbin.Data.Set.Intervals.UnorderedInterval
 import Mathbin.Data.Set.Lattice
 
+#align_import data.set.intervals.pi from "leanprover-community/mathlib"@"e4bc74cbaf429d706cb9140902f7ca6c431e75a4"
+
 /-!
 # Intervals in `pi`-space
 
@@ -54,7 +51,7 @@ theorem pi_univ_Icc : (pi univ fun i => Icc (x i) (y i)) = Icc x y :=
 #align set.pi_univ_Icc Set.pi_univ_Icc
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (i «expr ∉ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (i «expr ∉ » s) -/
 #print Set.piecewise_mem_Icc /-
 theorem piecewise_mem_Icc {s : Set ι} [∀ j, Decidable (j ∈ s)] {f₁ f₂ g₁ g₂ : ∀ i, α i}
     (h₁ : ∀ i ∈ s, f₁ i ∈ Icc (g₁ i) (g₂ i)) (h₂ : ∀ (i) (_ : i ∉ s), f₂ i ∈ Icc (g₁ i) (g₂ i)) :
Diff
@@ -33,33 +33,43 @@ section PiPreorder
 
 variable [∀ i, Preorder (α i)] (x y : ∀ i, α i)
 
+#print Set.pi_univ_Ici /-
 @[simp]
 theorem pi_univ_Ici : (pi univ fun i => Ici (x i)) = Ici x :=
   ext fun y => by simp [Pi.le_def]
 #align set.pi_univ_Ici Set.pi_univ_Ici
+-/
 
+#print Set.pi_univ_Iic /-
 @[simp]
 theorem pi_univ_Iic : (pi univ fun i => Iic (x i)) = Iic x :=
   ext fun y => by simp [Pi.le_def]
 #align set.pi_univ_Iic Set.pi_univ_Iic
+-/
 
+#print Set.pi_univ_Icc /-
 @[simp]
 theorem pi_univ_Icc : (pi univ fun i => Icc (x i) (y i)) = Icc x y :=
   ext fun y => by simp [Pi.le_def, forall_and]
 #align set.pi_univ_Icc Set.pi_univ_Icc
+-/
 
 /- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (i «expr ∉ » s) -/
+#print Set.piecewise_mem_Icc /-
 theorem piecewise_mem_Icc {s : Set ι} [∀ j, Decidable (j ∈ s)] {f₁ f₂ g₁ g₂ : ∀ i, α i}
     (h₁ : ∀ i ∈ s, f₁ i ∈ Icc (g₁ i) (g₂ i)) (h₂ : ∀ (i) (_ : i ∉ s), f₂ i ∈ Icc (g₁ i) (g₂ i)) :
     s.piecewise f₁ f₂ ∈ Icc g₁ g₂ :=
   ⟨le_piecewise (fun i hi => (h₁ i hi).1) fun i hi => (h₂ i hi).1,
     piecewise_le (fun i hi => (h₁ i hi).2) fun i hi => (h₂ i hi).2⟩
 #align set.piecewise_mem_Icc Set.piecewise_mem_Icc
+-/
 
+#print Set.piecewise_mem_Icc' /-
 theorem piecewise_mem_Icc' {s : Set ι} [∀ j, Decidable (j ∈ s)] {f₁ f₂ g₁ g₂ : ∀ i, α i}
     (h₁ : f₁ ∈ Icc g₁ g₂) (h₂ : f₂ ∈ Icc g₁ g₂) : s.piecewise f₁ f₂ ∈ Icc g₁ g₂ :=
   piecewise_mem_Icc (fun i hi => ⟨h₁.1 _, h₁.2 _⟩) fun i hi => ⟨h₂.1 _, h₂.2 _⟩
 #align set.piecewise_mem_Icc' Set.piecewise_mem_Icc'
+-/
 
 section Nonempty
 
@@ -102,6 +112,7 @@ variable [DecidableEq ι]
 
 open Function (update)
 
+#print Set.pi_univ_Ioc_update_left /-
 theorem pi_univ_Ioc_update_left {x y : ∀ i, α i} {i₀ : ι} {m : α i₀} (hm : x i₀ ≤ m) :
     (pi univ fun i => Ioc (update x i₀ m i) (y i)) =
       {z | m < z i₀} ∩ pi univ fun i => Ioc (x i) (y i) :=
@@ -113,7 +124,9 @@ theorem pi_univ_Ioc_update_left {x y : ∀ i, α i} {i₀ : ι} {m : α i₀} (h
     singleton_pi', ← inter_assoc, this]
   rfl
 #align set.pi_univ_Ioc_update_left Set.pi_univ_Ioc_update_left
+-/
 
+#print Set.pi_univ_Ioc_update_right /-
 theorem pi_univ_Ioc_update_right {x y : ∀ i, α i} {i₀ : ι} {m : α i₀} (hm : m ≤ y i₀) :
     (pi univ fun i => Ioc (x i) (update y i₀ m i)) =
       {z | z i₀ ≤ m} ∩ pi univ fun i => Ioc (x i) (y i) :=
@@ -125,7 +138,9 @@ theorem pi_univ_Ioc_update_right {x y : ∀ i, α i} {i₀ : ι} {m : α i₀} (
     singleton_pi', ← inter_assoc, this]
   rfl
 #align set.pi_univ_Ioc_update_right Set.pi_univ_Ioc_update_right
+-/
 
+#print Set.disjoint_pi_univ_Ioc_update_left_right /-
 theorem disjoint_pi_univ_Ioc_update_left_right {x y : ∀ i, α i} {i₀ : ι} {m : α i₀} :
     Disjoint (pi univ fun i => Ioc (x i) (update y i₀ m i))
       (pi univ fun i => Ioc (update x i₀ m i) (y i)) :=
@@ -135,6 +150,7 @@ theorem disjoint_pi_univ_Ioc_update_left_right {x y : ∀ i, α i} {i₀ : ι} {
   refine' (h₁ i₀ (mem_univ _)).2.not_lt _
   simpa only [Function.update_same] using (h₂ i₀ (mem_univ _)).1
 #align set.disjoint_pi_univ_Ioc_update_left_right Set.disjoint_pi_univ_Ioc_update_left_right
+-/
 
 end PiPreorder
 
@@ -142,6 +158,7 @@ section PiPartialOrder
 
 variable [DecidableEq ι] [∀ i, PartialOrder (α i)]
 
+#print Set.image_update_Icc /-
 theorem image_update_Icc (f : ∀ i, α i) (i : ι) (a b : α i) :
     f.update i '' Icc a b = Icc (f.update i a) (f.update i b) :=
   by
@@ -156,142 +173,189 @@ theorem image_update_Icc (f : ∀ i, α i) (i : ι) (a b : α i) :
     · exact Function.update_same _ _ _
     · simpa only [Function.update_noteq hij.symm, le_antisymm_iff] using h j (mem_univ j)
 #align set.image_update_Icc Set.image_update_Icc
+-/
 
+#print Set.image_update_Ico /-
 theorem image_update_Ico (f : ∀ i, α i) (i : ι) (a b : α i) :
     f.update i '' Ico a b = Ico (f.update i a) (f.update i b) := by
   rw [← Icc_diff_right, ← Icc_diff_right, image_diff (f.update_injective _), image_singleton,
     image_update_Icc]
 #align set.image_update_Ico Set.image_update_Ico
+-/
 
+#print Set.image_update_Ioc /-
 theorem image_update_Ioc (f : ∀ i, α i) (i : ι) (a b : α i) :
     f.update i '' Ioc a b = Ioc (f.update i a) (f.update i b) := by
   rw [← Icc_diff_left, ← Icc_diff_left, image_diff (f.update_injective _), image_singleton,
     image_update_Icc]
 #align set.image_update_Ioc Set.image_update_Ioc
+-/
 
+#print Set.image_update_Ioo /-
 theorem image_update_Ioo (f : ∀ i, α i) (i : ι) (a b : α i) :
     f.update i '' Ioo a b = Ioo (f.update i a) (f.update i b) := by
   rw [← Ico_diff_left, ← Ico_diff_left, image_diff (f.update_injective _), image_singleton,
     image_update_Ico]
 #align set.image_update_Ioo Set.image_update_Ioo
+-/
 
+#print Set.image_update_Icc_left /-
 theorem image_update_Icc_left (f : ∀ i, α i) (i : ι) (a : α i) :
     f.update i '' Icc a (f i) = Icc (f.update i a) f := by simpa using image_update_Icc f i a (f i)
 #align set.image_update_Icc_left Set.image_update_Icc_left
+-/
 
+#print Set.image_update_Ico_left /-
 theorem image_update_Ico_left (f : ∀ i, α i) (i : ι) (a : α i) :
     f.update i '' Ico a (f i) = Ico (f.update i a) f := by simpa using image_update_Ico f i a (f i)
 #align set.image_update_Ico_left Set.image_update_Ico_left
+-/
 
+#print Set.image_update_Ioc_left /-
 theorem image_update_Ioc_left (f : ∀ i, α i) (i : ι) (a : α i) :
     f.update i '' Ioc a (f i) = Ioc (f.update i a) f := by simpa using image_update_Ioc f i a (f i)
 #align set.image_update_Ioc_left Set.image_update_Ioc_left
+-/
 
+#print Set.image_update_Ioo_left /-
 theorem image_update_Ioo_left (f : ∀ i, α i) (i : ι) (a : α i) :
     f.update i '' Ioo a (f i) = Ioo (f.update i a) f := by simpa using image_update_Ioo f i a (f i)
 #align set.image_update_Ioo_left Set.image_update_Ioo_left
+-/
 
+#print Set.image_update_Icc_right /-
 theorem image_update_Icc_right (f : ∀ i, α i) (i : ι) (b : α i) :
     f.update i '' Icc (f i) b = Icc f (f.update i b) := by simpa using image_update_Icc f i (f i) b
 #align set.image_update_Icc_right Set.image_update_Icc_right
+-/
 
+#print Set.image_update_Ico_right /-
 theorem image_update_Ico_right (f : ∀ i, α i) (i : ι) (b : α i) :
     f.update i '' Ico (f i) b = Ico f (f.update i b) := by simpa using image_update_Ico f i (f i) b
 #align set.image_update_Ico_right Set.image_update_Ico_right
+-/
 
+#print Set.image_update_Ioc_right /-
 theorem image_update_Ioc_right (f : ∀ i, α i) (i : ι) (b : α i) :
     f.update i '' Ioc (f i) b = Ioc f (f.update i b) := by simpa using image_update_Ioc f i (f i) b
 #align set.image_update_Ioc_right Set.image_update_Ioc_right
+-/
 
+#print Set.image_update_Ioo_right /-
 theorem image_update_Ioo_right (f : ∀ i, α i) (i : ι) (b : α i) :
     f.update i '' Ioo (f i) b = Ioo f (f.update i b) := by simpa using image_update_Ioo f i (f i) b
 #align set.image_update_Ioo_right Set.image_update_Ioo_right
+-/
 
 variable [∀ i, One (α i)]
 
+#print Set.image_mulSingle_Icc /-
 @[to_additive]
 theorem image_mulSingle_Icc (i : ι) (a b : α i) :
     Pi.mulSingle i '' Icc a b = Icc (Pi.mulSingle i a) (Pi.mulSingle i b) :=
   image_update_Icc _ _ _ _
 #align set.image_mul_single_Icc Set.image_mulSingle_Icc
 #align set.image_single_Icc Set.image_single_Icc
+-/
 
+#print Set.image_mulSingle_Ico /-
 @[to_additive]
 theorem image_mulSingle_Ico (i : ι) (a b : α i) :
     Pi.mulSingle i '' Ico a b = Ico (Pi.mulSingle i a) (Pi.mulSingle i b) :=
   image_update_Ico _ _ _ _
 #align set.image_mul_single_Ico Set.image_mulSingle_Ico
 #align set.image_single_Ico Set.image_single_Ico
+-/
 
+#print Set.image_mulSingle_Ioc /-
 @[to_additive]
 theorem image_mulSingle_Ioc (i : ι) (a b : α i) :
     Pi.mulSingle i '' Ioc a b = Ioc (Pi.mulSingle i a) (Pi.mulSingle i b) :=
   image_update_Ioc _ _ _ _
 #align set.image_mul_single_Ioc Set.image_mulSingle_Ioc
 #align set.image_single_Ioc Set.image_single_Ioc
+-/
 
+#print Set.image_mulSingle_Ioo /-
 @[to_additive]
 theorem image_mulSingle_Ioo (i : ι) (a b : α i) :
     Pi.mulSingle i '' Ioo a b = Ioo (Pi.mulSingle i a) (Pi.mulSingle i b) :=
   image_update_Ioo _ _ _ _
 #align set.image_mul_single_Ioo Set.image_mulSingle_Ioo
 #align set.image_single_Ioo Set.image_single_Ioo
+-/
 
+#print Set.image_mulSingle_Icc_left /-
 @[to_additive]
 theorem image_mulSingle_Icc_left (i : ι) (a : α i) :
     Pi.mulSingle i '' Icc a 1 = Icc (Pi.mulSingle i a) 1 :=
   image_update_Icc_left _ _ _
 #align set.image_mul_single_Icc_left Set.image_mulSingle_Icc_left
 #align set.image_single_Icc_left Set.image_single_Icc_left
+-/
 
+#print Set.image_mulSingle_Ico_left /-
 @[to_additive]
 theorem image_mulSingle_Ico_left (i : ι) (a : α i) :
     Pi.mulSingle i '' Ico a 1 = Ico (Pi.mulSingle i a) 1 :=
   image_update_Ico_left _ _ _
 #align set.image_mul_single_Ico_left Set.image_mulSingle_Ico_left
 #align set.image_single_Ico_left Set.image_single_Ico_left
+-/
 
+#print Set.image_mulSingle_Ioc_left /-
 @[to_additive]
 theorem image_mulSingle_Ioc_left (i : ι) (a : α i) :
     Pi.mulSingle i '' Ioc a 1 = Ioc (Pi.mulSingle i a) 1 :=
   image_update_Ioc_left _ _ _
 #align set.image_mul_single_Ioc_left Set.image_mulSingle_Ioc_left
 #align set.image_single_Ioc_left Set.image_single_Ioc_left
+-/
 
+#print Set.image_mulSingle_Ioo_left /-
 @[to_additive]
 theorem image_mulSingle_Ioo_left (i : ι) (a : α i) :
     Pi.mulSingle i '' Ioo a 1 = Ioo (Pi.mulSingle i a) 1 :=
   image_update_Ioo_left _ _ _
 #align set.image_mul_single_Ioo_left Set.image_mulSingle_Ioo_left
 #align set.image_single_Ioo_left Set.image_single_Ioo_left
+-/
 
+#print Set.image_mulSingle_Icc_right /-
 @[to_additive]
 theorem image_mulSingle_Icc_right (i : ι) (b : α i) :
     Pi.mulSingle i '' Icc 1 b = Icc 1 (Pi.mulSingle i b) :=
   image_update_Icc_right _ _ _
 #align set.image_mul_single_Icc_right Set.image_mulSingle_Icc_right
 #align set.image_single_Icc_right Set.image_single_Icc_right
+-/
 
+#print Set.image_mulSingle_Ico_right /-
 @[to_additive]
 theorem image_mulSingle_Ico_right (i : ι) (b : α i) :
     Pi.mulSingle i '' Ico 1 b = Ico 1 (Pi.mulSingle i b) :=
   image_update_Ico_right _ _ _
 #align set.image_mul_single_Ico_right Set.image_mulSingle_Ico_right
 #align set.image_single_Ico_right Set.image_single_Ico_right
+-/
 
+#print Set.image_mulSingle_Ioc_right /-
 @[to_additive]
 theorem image_mulSingle_Ioc_right (i : ι) (b : α i) :
     Pi.mulSingle i '' Ioc 1 b = Ioc 1 (Pi.mulSingle i b) :=
   image_update_Ioc_right _ _ _
 #align set.image_mul_single_Ioc_right Set.image_mulSingle_Ioc_right
 #align set.image_single_Ioc_right Set.image_single_Ioc_right
+-/
 
+#print Set.image_mulSingle_Ioo_right /-
 @[to_additive]
 theorem image_mulSingle_Ioo_right (i : ι) (b : α i) :
     Pi.mulSingle i '' Ioo 1 b = Ioo 1 (Pi.mulSingle i b) :=
   image_update_Ioo_right _ _ _
 #align set.image_mul_single_Ioo_right Set.image_mulSingle_Ioo_right
 #align set.image_single_Ioo_right Set.image_single_Ioo_right
+-/
 
 end PiPartialOrder
 
@@ -299,50 +363,64 @@ section PiLattice
 
 variable [∀ i, Lattice (α i)]
 
+#print Set.pi_univ_uIcc /-
 @[simp]
 theorem pi_univ_uIcc (a b : ∀ i, α i) : (pi univ fun i => uIcc (a i) (b i)) = uIcc a b :=
   pi_univ_Icc _ _
 #align set.pi_univ_uIcc Set.pi_univ_uIcc
+-/
 
 variable [DecidableEq ι]
 
+#print Set.image_update_uIcc /-
 theorem image_update_uIcc (f : ∀ i, α i) (i : ι) (a b : α i) :
     f.update i '' uIcc a b = uIcc (f.update i a) (f.update i b) :=
   (image_update_Icc _ _ _ _).trans <| by simp_rw [uIcc, f.update_sup, f.update_inf]
 #align set.image_update_uIcc Set.image_update_uIcc
+-/
 
+#print Set.image_update_uIcc_left /-
 theorem image_update_uIcc_left (f : ∀ i, α i) (i : ι) (a : α i) :
     f.update i '' uIcc a (f i) = uIcc (f.update i a) f := by
   simpa using image_update_uIcc f i a (f i)
 #align set.image_update_uIcc_left Set.image_update_uIcc_left
+-/
 
+#print Set.image_update_uIcc_right /-
 theorem image_update_uIcc_right (f : ∀ i, α i) (i : ι) (b : α i) :
     f.update i '' uIcc (f i) b = uIcc f (f.update i b) := by
   simpa using image_update_uIcc f i (f i) b
 #align set.image_update_uIcc_right Set.image_update_uIcc_right
+-/
 
 variable [∀ i, One (α i)]
 
+#print Set.image_mulSingle_uIcc /-
 @[to_additive]
 theorem image_mulSingle_uIcc (i : ι) (a b : α i) :
     Pi.mulSingle i '' uIcc a b = uIcc (Pi.mulSingle i a) (Pi.mulSingle i b) :=
   image_update_uIcc _ _ _ _
 #align set.image_mul_single_uIcc Set.image_mulSingle_uIcc
 #align set.image_single_uIcc Set.image_single_uIcc
+-/
 
+#print Set.image_mulSingle_uIcc_left /-
 @[to_additive]
 theorem image_mulSingle_uIcc_left (i : ι) (a : α i) :
     Pi.mulSingle i '' uIcc a 1 = uIcc (Pi.mulSingle i a) 1 :=
   image_update_uIcc_left _ _ _
 #align set.image_mul_single_uIcc_left Set.image_mulSingle_uIcc_left
 #align set.image_single_uIcc_left Set.image_single_uIcc_left
+-/
 
+#print Set.image_mulSingle_uIcc_right /-
 @[to_additive]
 theorem image_mulSingle_uIcc_right (i : ι) (b : α i) :
     Pi.mulSingle i '' uIcc 1 b = uIcc 1 (Pi.mulSingle i b) :=
   image_update_uIcc_right _ _ _
 #align set.image_mul_single_uIcc_right Set.image_mulSingle_uIcc_right
 #align set.image_single_uIcc_right Set.image_single_uIcc_right
+-/
 
 end PiLattice
 
@@ -350,6 +428,7 @@ variable [DecidableEq ι] [∀ i, LinearOrder (α i)]
 
 open Function (update)
 
+#print Set.pi_univ_Ioc_update_union /-
 theorem pi_univ_Ioc_update_union (x y : ∀ i, α i) (i₀ : ι) (m : α i₀) (hm : m ∈ Icc (x i₀) (y i₀)) :
     ((pi univ fun i => Ioc (x i) (update y i₀ m i)) ∪
         pi univ fun i => Ioc (update x i₀ m i) (y i)) =
@@ -358,7 +437,9 @@ theorem pi_univ_Ioc_update_union (x y : ∀ i, α i) (i₀ : ι) (m : α i₀) (
   simp_rw [pi_univ_Ioc_update_left hm.1, pi_univ_Ioc_update_right hm.2, ← union_inter_distrib_right,
     ← set_of_or, le_or_lt, set_of_true, univ_inter]
 #align set.pi_univ_Ioc_update_union Set.pi_univ_Ioc_update_union
+-/
 
+#print Set.Icc_diff_pi_univ_Ioo_subset /-
 /-- If `x`, `y`, `x'`, and `y'` are functions `Π i : ι, α i`, then
 the set difference between the box `[x, y]` and the product of the open intervals `(x' i, y' i)`
 is covered by the union of the following boxes: for each `i : ι`, we take
@@ -374,7 +455,9 @@ theorem Icc_diff_pi_univ_Ioo_subset (x y x' y' : ∀ i, α i) :
   rintro a ⟨⟨hxa, hay⟩, ha'⟩
   simpa [le_update_iff, update_le_iff, hxa, hay, hxa _, hay _, ← exists_or, not_and_or] using ha'
 #align set.Icc_diff_pi_univ_Ioo_subset Set.Icc_diff_pi_univ_Ioo_subset
+-/
 
+#print Set.Icc_diff_pi_univ_Ioc_subset /-
 /-- If `x`, `y`, `z` are functions `Π i : ι, α i`, then
 the set difference between the box `[x, z]` and the product of the intervals `(y i, z i]`
 is covered by the union of the boxes `[x, update z i (y i)]`.
@@ -388,6 +471,7 @@ theorem Icc_diff_pi_univ_Ioc_subset (x y z : ∀ i, α i) :
   rintro a ⟨⟨hax, haz⟩, hay⟩
   simpa [not_and_or, hax, le_update_iff, haz _] using hay
 #align set.Icc_diff_pi_univ_Ioc_subset Set.Icc_diff_pi_univ_Ioc_subset
+-/
 
 end Set
 
Diff
@@ -48,7 +48,7 @@ theorem pi_univ_Icc : (pi univ fun i => Icc (x i) (y i)) = Icc x y :=
   ext fun y => by simp [Pi.le_def, forall_and]
 #align set.pi_univ_Icc Set.pi_univ_Icc
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (i «expr ∉ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (i «expr ∉ » s) -/
 theorem piecewise_mem_Icc {s : Set ι} [∀ j, Decidable (j ∈ s)] {f₁ f₂ g₁ g₂ : ∀ i, α i}
     (h₁ : ∀ i ∈ s, f₁ i ∈ Icc (g₁ i) (g₂ i)) (h₂ : ∀ (i) (_ : i ∉ s), f₂ i ∈ Icc (g₁ i) (g₂ i)) :
     s.piecewise f₁ f₂ ∈ Icc g₁ g₂ :=
Diff
@@ -104,7 +104,7 @@ open Function (update)
 
 theorem pi_univ_Ioc_update_left {x y : ∀ i, α i} {i₀ : ι} {m : α i₀} (hm : x i₀ ≤ m) :
     (pi univ fun i => Ioc (update x i₀ m i) (y i)) =
-      { z | m < z i₀ } ∩ pi univ fun i => Ioc (x i) (y i) :=
+      {z | m < z i₀} ∩ pi univ fun i => Ioc (x i) (y i) :=
   by
   have : Ioc m (y i₀) = Ioi m ∩ Ioc (x i₀) (y i₀) := by
     rw [← Ioi_inter_Iic, ← Ioi_inter_Iic, ← inter_assoc,
@@ -116,7 +116,7 @@ theorem pi_univ_Ioc_update_left {x y : ∀ i, α i} {i₀ : ι} {m : α i₀} (h
 
 theorem pi_univ_Ioc_update_right {x y : ∀ i, α i} {i₀ : ι} {m : α i₀} (hm : m ≤ y i₀) :
     (pi univ fun i => Ioc (x i) (update y i₀ m i)) =
-      { z | z i₀ ≤ m } ∩ pi univ fun i => Ioc (x i) (y i) :=
+      {z | z i₀ ≤ m} ∩ pi univ fun i => Ioc (x i) (y i) :=
   by
   have : Ioc (x i₀) m = Iic m ∩ Ioc (x i₀) (y i₀) := by
     rw [← Ioi_inter_Iic, ← Ioi_inter_Iic, inter_left_comm,
Diff
@@ -33,45 +33,21 @@ section PiPreorder
 
 variable [∀ i, Preorder (α i)] (x y : ∀ i, α i)
 
-/- warning: set.pi_univ_Ici -> Set.pi_univ_Ici is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : forall (i : ι), Preorder.{u2} (α i)] (x : forall (i : ι), α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.pi.{u1, u2} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => Set.Ici.{u2} (α i) (_inst_1 i) (x i))) (Set.Ici.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_1 i)) x)
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : forall (i : ι), Preorder.{u1} (α i)] (x : forall (i : ι), α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.pi.{u2, u1} ι (fun (i : ι) => α i) (Set.univ.{u2} ι) (fun (i : ι) => Set.Ici.{u1} (α i) (_inst_1 i) (x i))) (Set.Ici.{max u2 u1} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_1 i)) x)
-Case conversion may be inaccurate. Consider using '#align set.pi_univ_Ici Set.pi_univ_Iciₓ'. -/
 @[simp]
 theorem pi_univ_Ici : (pi univ fun i => Ici (x i)) = Ici x :=
   ext fun y => by simp [Pi.le_def]
 #align set.pi_univ_Ici Set.pi_univ_Ici
 
-/- warning: set.pi_univ_Iic -> Set.pi_univ_Iic is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : forall (i : ι), Preorder.{u2} (α i)] (x : forall (i : ι), α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.pi.{u1, u2} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => Set.Iic.{u2} (α i) (_inst_1 i) (x i))) (Set.Iic.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_1 i)) x)
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : forall (i : ι), Preorder.{u1} (α i)] (x : forall (i : ι), α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.pi.{u2, u1} ι (fun (i : ι) => α i) (Set.univ.{u2} ι) (fun (i : ι) => Set.Iic.{u1} (α i) (_inst_1 i) (x i))) (Set.Iic.{max u2 u1} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_1 i)) x)
-Case conversion may be inaccurate. Consider using '#align set.pi_univ_Iic Set.pi_univ_Iicₓ'. -/
 @[simp]
 theorem pi_univ_Iic : (pi univ fun i => Iic (x i)) = Iic x :=
   ext fun y => by simp [Pi.le_def]
 #align set.pi_univ_Iic Set.pi_univ_Iic
 
-/- warning: set.pi_univ_Icc -> Set.pi_univ_Icc is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : forall (i : ι), Preorder.{u2} (α i)] (x : forall (i : ι), α i) (y : forall (i : ι), α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.pi.{u1, u2} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => Set.Icc.{u2} (α i) (_inst_1 i) (x i) (y i))) (Set.Icc.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_1 i)) x y)
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : forall (i : ι), Preorder.{u1} (α i)] (x : forall (i : ι), α i) (y : forall (i : ι), α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.pi.{u2, u1} ι (fun (i : ι) => α i) (Set.univ.{u2} ι) (fun (i : ι) => Set.Icc.{u1} (α i) (_inst_1 i) (x i) (y i))) (Set.Icc.{max u2 u1} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_1 i)) x y)
-Case conversion may be inaccurate. Consider using '#align set.pi_univ_Icc Set.pi_univ_Iccₓ'. -/
 @[simp]
 theorem pi_univ_Icc : (pi univ fun i => Icc (x i) (y i)) = Icc x y :=
   ext fun y => by simp [Pi.le_def, forall_and]
 #align set.pi_univ_Icc Set.pi_univ_Icc
 
-/- warning: set.piecewise_mem_Icc -> Set.piecewise_mem_Icc is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : forall (i : ι), Preorder.{u2} (α i)] {s : Set.{u1} ι} [_inst_2 : forall (j : ι), Decidable (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) j s)] {f₁ : forall (i : ι), α i} {f₂ : forall (i : ι), α i} {g₁ : forall (i : ι), α i} {g₂ : forall (i : ι), α i}, (forall (i : ι), (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) -> (Membership.Mem.{u2, u2} (α i) (Set.{u2} (α i)) (Set.hasMem.{u2} (α i)) (f₁ i) (Set.Icc.{u2} (α i) (_inst_1 i) (g₁ i) (g₂ i)))) -> (forall (i : ι), (Not (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s)) -> (Membership.Mem.{u2, u2} (α i) (Set.{u2} (α i)) (Set.hasMem.{u2} (α i)) (f₂ i) (Set.Icc.{u2} (α i) (_inst_1 i) (g₁ i) (g₂ i)))) -> (Membership.Mem.{max u1 u2, max u1 u2} (forall (i : ι), α i) (Set.{max u1 u2} (forall (i : ι), α i)) (Set.hasMem.{max u1 u2} (forall (i : ι), α i)) (Set.piecewise.{u1, succ u2} ι (fun (i : ι) => α i) s f₁ f₂ (fun (j : ι) => _inst_2 j)) (Set.Icc.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_1 i)) g₁ g₂))
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : forall (i : ι), Preorder.{u1} (α i)] {s : Set.{u2} ι} [_inst_2 : forall (j : ι), Decidable (Membership.mem.{u2, u2} ι (Set.{u2} ι) (Set.instMembershipSet.{u2} ι) j s)] {f₁ : forall (i : ι), α i} {f₂ : forall (i : ι), α i} {g₁ : forall (i : ι), α i} {g₂ : forall (i : ι), α i}, (forall (i : ι), (Membership.mem.{u2, u2} ι (Set.{u2} ι) (Set.instMembershipSet.{u2} ι) i s) -> (Membership.mem.{u1, u1} (α i) (Set.{u1} (α i)) (Set.instMembershipSet.{u1} (α i)) (f₁ i) (Set.Icc.{u1} (α i) (_inst_1 i) (g₁ i) (g₂ i)))) -> (forall (i : ι), (Not (Membership.mem.{u2, u2} ι (Set.{u2} ι) (Set.instMembershipSet.{u2} ι) i s)) -> (Membership.mem.{u1, u1} (α i) (Set.{u1} (α i)) (Set.instMembershipSet.{u1} (α i)) (f₂ i) (Set.Icc.{u1} (α i) (_inst_1 i) (g₁ i) (g₂ i)))) -> (Membership.mem.{max u2 u1, max u2 u1} (forall (i : ι), α i) (Set.{max u2 u1} (forall (i : ι), α i)) (Set.instMembershipSet.{max u2 u1} (forall (i : ι), α i)) (Set.piecewise.{u2, succ u1} ι (fun (i : ι) => α i) s f₁ f₂ (fun (j : ι) => _inst_2 j)) (Set.Icc.{max u2 u1} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_1 i)) g₁ g₂))
-Case conversion may be inaccurate. Consider using '#align set.piecewise_mem_Icc Set.piecewise_mem_Iccₓ'. -/
 /- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (i «expr ∉ » s) -/
 theorem piecewise_mem_Icc {s : Set ι} [∀ j, Decidable (j ∈ s)] {f₁ f₂ g₁ g₂ : ∀ i, α i}
     (h₁ : ∀ i ∈ s, f₁ i ∈ Icc (g₁ i) (g₂ i)) (h₂ : ∀ (i) (_ : i ∉ s), f₂ i ∈ Icc (g₁ i) (g₂ i)) :
@@ -80,12 +56,6 @@ theorem piecewise_mem_Icc {s : Set ι} [∀ j, Decidable (j ∈ s)] {f₁ f₂ g
     piecewise_le (fun i hi => (h₁ i hi).2) fun i hi => (h₂ i hi).2⟩
 #align set.piecewise_mem_Icc Set.piecewise_mem_Icc
 
-/- warning: set.piecewise_mem_Icc' -> Set.piecewise_mem_Icc' is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : forall (i : ι), Preorder.{u2} (α i)] {s : Set.{u1} ι} [_inst_2 : forall (j : ι), Decidable (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) j s)] {f₁ : forall (i : ι), α i} {f₂ : forall (i : ι), α i} {g₁ : forall (i : ι), α i} {g₂ : forall (i : ι), α i}, (Membership.Mem.{max u1 u2, max u1 u2} (forall (i : ι), α i) (Set.{max u1 u2} (forall (i : ι), α i)) (Set.hasMem.{max u1 u2} (forall (i : ι), α i)) f₁ (Set.Icc.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_1 i)) g₁ g₂)) -> (Membership.Mem.{max u1 u2, max u1 u2} (forall (i : ι), α i) (Set.{max u1 u2} (forall (i : ι), α i)) (Set.hasMem.{max u1 u2} (forall (i : ι), α i)) f₂ (Set.Icc.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_1 i)) g₁ g₂)) -> (Membership.Mem.{max u1 u2, max u1 u2} (forall (i : ι), α i) (Set.{max u1 u2} (forall (i : ι), α i)) (Set.hasMem.{max u1 u2} (forall (i : ι), α i)) (Set.piecewise.{u1, succ u2} ι (fun (i : ι) => α i) s f₁ f₂ (fun (j : ι) => _inst_2 j)) (Set.Icc.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_1 i)) g₁ g₂))
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : forall (i : ι), Preorder.{u1} (α i)] {s : Set.{u2} ι} [_inst_2 : forall (j : ι), Decidable (Membership.mem.{u2, u2} ι (Set.{u2} ι) (Set.instMembershipSet.{u2} ι) j s)] {f₁ : forall (i : ι), α i} {f₂ : forall (i : ι), α i} {g₁ : forall (i : ι), α i} {g₂ : forall (i : ι), α i}, (Membership.mem.{max u2 u1, max u2 u1} (forall (i : ι), α i) (Set.{max u2 u1} (forall (i : ι), α i)) (Set.instMembershipSet.{max u2 u1} (forall (i : ι), α i)) f₁ (Set.Icc.{max u2 u1} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_1 i)) g₁ g₂)) -> (Membership.mem.{max u2 u1, max u2 u1} (forall (i : ι), α i) (Set.{max u2 u1} (forall (i : ι), α i)) (Set.instMembershipSet.{max u2 u1} (forall (i : ι), α i)) f₂ (Set.Icc.{max u2 u1} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_1 i)) g₁ g₂)) -> (Membership.mem.{max u2 u1, max u2 u1} (forall (i : ι), α i) (Set.{max u2 u1} (forall (i : ι), α i)) (Set.instMembershipSet.{max u2 u1} (forall (i : ι), α i)) (Set.piecewise.{u2, succ u1} ι (fun (i : ι) => α i) s f₁ f₂ (fun (j : ι) => _inst_2 j)) (Set.Icc.{max u2 u1} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_1 i)) g₁ g₂))
-Case conversion may be inaccurate. Consider using '#align set.piecewise_mem_Icc' Set.piecewise_mem_Icc'ₓ'. -/
 theorem piecewise_mem_Icc' {s : Set ι} [∀ j, Decidable (j ∈ s)] {f₁ f₂ g₁ g₂ : ∀ i, α i}
     (h₁ : f₁ ∈ Icc g₁ g₂) (h₂ : f₂ ∈ Icc g₁ g₂) : s.piecewise f₁ f₂ ∈ Icc g₁ g₂ :=
   piecewise_mem_Icc (fun i hi => ⟨h₁.1 _, h₁.2 _⟩) fun i hi => ⟨h₂.1 _, h₂.2 _⟩
@@ -132,12 +102,6 @@ variable [DecidableEq ι]
 
 open Function (update)
 
-/- warning: set.pi_univ_Ioc_update_left -> Set.pi_univ_Ioc_update_left is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : forall (i : ι), Preorder.{u2} (α i)] [_inst_2 : DecidableEq.{succ u1} ι] {x : forall (i : ι), α i} {y : forall (i : ι), α i} {i₀ : ι} {m : α i₀}, (LE.le.{u2} (α i₀) (Preorder.toHasLe.{u2} (α i₀) (_inst_1 i₀)) (x i₀) m) -> (Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.pi.{u1, u2} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => Set.Ioc.{u2} (α i) (_inst_1 i) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) x i₀ m i) (y i))) (Inter.inter.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.hasInter.{max u1 u2} (forall (i : ι), α i)) (setOf.{max u1 u2} (forall (i : ι), α i) (fun (z : forall (i : ι), α i) => LT.lt.{u2} (α i₀) (Preorder.toHasLt.{u2} (α i₀) (_inst_1 i₀)) m (z i₀))) (Set.pi.{u1, u2} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => Set.Ioc.{u2} (α i) (_inst_1 i) (x i) (y i)))))
-but is expected to have type
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : forall (i : ι), Preorder.{u2} (α i)] [_inst_2 : DecidableEq.{succ u1} ι] {x : forall (i : ι), α i} {y : forall (i : ι), α i} {i₀ : ι} {m : α i₀}, (LE.le.{u2} (α i₀) (Preorder.toLE.{u2} (α i₀) (_inst_1 i₀)) (x i₀) m) -> (Eq.{max (succ u1) (succ u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.pi.{u1, u2} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => Set.Ioc.{u2} (α i) (_inst_1 i) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) x i₀ m i) (y i))) (Inter.inter.{max u2 u1} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.instInterSet.{max u1 u2} (forall (i : ι), α i)) (setOf.{max u2 u1} (forall (i : ι), α i) (fun (z : forall (i : ι), α i) => LT.lt.{u2} (α i₀) (Preorder.toLT.{u2} (α i₀) (_inst_1 i₀)) m (z i₀))) (Set.pi.{u1, u2} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => Set.Ioc.{u2} (α i) (_inst_1 i) (x i) (y i)))))
-Case conversion may be inaccurate. Consider using '#align set.pi_univ_Ioc_update_left Set.pi_univ_Ioc_update_leftₓ'. -/
 theorem pi_univ_Ioc_update_left {x y : ∀ i, α i} {i₀ : ι} {m : α i₀} (hm : x i₀ ≤ m) :
     (pi univ fun i => Ioc (update x i₀ m i) (y i)) =
       { z | m < z i₀ } ∩ pi univ fun i => Ioc (x i) (y i) :=
@@ -150,12 +114,6 @@ theorem pi_univ_Ioc_update_left {x y : ∀ i, α i} {i₀ : ι} {m : α i₀} (h
   rfl
 #align set.pi_univ_Ioc_update_left Set.pi_univ_Ioc_update_left
 
-/- warning: set.pi_univ_Ioc_update_right -> Set.pi_univ_Ioc_update_right is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : forall (i : ι), Preorder.{u2} (α i)] [_inst_2 : DecidableEq.{succ u1} ι] {x : forall (i : ι), α i} {y : forall (i : ι), α i} {i₀ : ι} {m : α i₀}, (LE.le.{u2} (α i₀) (Preorder.toHasLe.{u2} (α i₀) (_inst_1 i₀)) m (y i₀)) -> (Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.pi.{u1, u2} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => Set.Ioc.{u2} (α i) (_inst_1 i) (x i) (Function.update.{succ u1, succ u2} ι α (fun (a : ι) (b : ι) => _inst_2 a b) y i₀ m i))) (Inter.inter.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.hasInter.{max u1 u2} (forall (i : ι), α i)) (setOf.{max u1 u2} (forall (i : ι), α i) (fun (z : forall (i : ι), α i) => LE.le.{u2} (α i₀) (Preorder.toHasLe.{u2} (α i₀) (_inst_1 i₀)) (z i₀) m)) (Set.pi.{u1, u2} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => Set.Ioc.{u2} (α i) (_inst_1 i) (x i) (y i)))))
-but is expected to have type
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : forall (i : ι), Preorder.{u2} (α i)] [_inst_2 : DecidableEq.{succ u1} ι] {x : forall (i : ι), α i} {y : forall (i : ι), α i} {i₀ : ι} {m : α i₀}, (LE.le.{u2} (α i₀) (Preorder.toLE.{u2} (α i₀) (_inst_1 i₀)) m (y i₀)) -> (Eq.{max (succ u1) (succ u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.pi.{u1, u2} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => Set.Ioc.{u2} (α i) (_inst_1 i) (x i) (Function.update.{succ u1, succ u2} ι (fun (a : ι) => α a) (fun (a : ι) (b : ι) => _inst_2 a b) y i₀ m i))) (Inter.inter.{max u2 u1} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.instInterSet.{max u1 u2} (forall (i : ι), α i)) (setOf.{max u2 u1} (forall (i : ι), α i) (fun (z : forall (i : ι), α i) => LE.le.{u2} (α i₀) (Preorder.toLE.{u2} (α i₀) (_inst_1 i₀)) (z i₀) m)) (Set.pi.{u1, u2} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => Set.Ioc.{u2} (α i) (_inst_1 i) (x i) (y i)))))
-Case conversion may be inaccurate. Consider using '#align set.pi_univ_Ioc_update_right Set.pi_univ_Ioc_update_rightₓ'. -/
 theorem pi_univ_Ioc_update_right {x y : ∀ i, α i} {i₀ : ι} {m : α i₀} (hm : m ≤ y i₀) :
     (pi univ fun i => Ioc (x i) (update y i₀ m i)) =
       { z | z i₀ ≤ m } ∩ pi univ fun i => Ioc (x i) (y i) :=
@@ -168,12 +126,6 @@ theorem pi_univ_Ioc_update_right {x y : ∀ i, α i} {i₀ : ι} {m : α i₀} (
   rfl
 #align set.pi_univ_Ioc_update_right Set.pi_univ_Ioc_update_right
 
-/- warning: set.disjoint_pi_univ_Ioc_update_left_right -> Set.disjoint_pi_univ_Ioc_update_left_right is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : forall (i : ι), Preorder.{u2} (α i)] [_inst_2 : DecidableEq.{succ u1} ι] {x : forall (i : ι), α i} {y : forall (i : ι), α i} {i₀ : ι} {m : α i₀}, Disjoint.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (CompleteSemilatticeInf.toPartialOrder.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (CompleteLattice.toCompleteSemilatticeInf.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (Order.Coframe.toCompleteLattice.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (CompleteDistribLattice.toCoframe.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.completeBooleanAlgebra.{max u1 u2} (forall (i : ι), α i))))))) (GeneralizedBooleanAlgebra.toOrderBot.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.booleanAlgebra.{max u1 u2} (forall (i : ι), α i)))) (Set.pi.{u1, u2} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => Set.Ioc.{u2} (α i) (_inst_1 i) (x i) (Function.update.{succ u1, succ u2} ι α (fun (a : ι) (b : ι) => _inst_2 a b) y i₀ m i))) (Set.pi.{u1, u2} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => Set.Ioc.{u2} (α i) (_inst_1 i) (Function.update.{succ u1, succ u2} ι α (fun (a : ι) (b : ι) => _inst_2 a b) x i₀ m i) (y i)))
-but is expected to have type
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : forall (i : ι), Preorder.{u2} (α i)] [_inst_2 : DecidableEq.{succ u1} ι] {x : forall (i : ι), α i} {y : forall (i : ι), α i} {i₀ : ι} {m : α i₀}, Disjoint.{max u2 u1} (Set.{max u1 u2} (forall (i : ι), α i)) (CompleteSemilatticeInf.toPartialOrder.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (CompleteLattice.toCompleteSemilatticeInf.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (Order.Coframe.toCompleteLattice.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (CompleteDistribLattice.toCoframe.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.instCompleteBooleanAlgebraSet.{max u1 u2} (forall (i : ι), α i))))))) (BoundedOrder.toOrderBot.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (Preorder.toLE.{max u2 u1} (Set.{max u1 u2} (forall (i : ι), α i)) (PartialOrder.toPreorder.{max u2 u1} (Set.{max u1 u2} (forall (i : ι), α i)) (CompleteSemilatticeInf.toPartialOrder.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (CompleteLattice.toCompleteSemilatticeInf.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (Order.Coframe.toCompleteLattice.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (CompleteDistribLattice.toCoframe.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.instCompleteBooleanAlgebraSet.{max u1 u2} (forall (i : ι), α i))))))))) (CompleteLattice.toBoundedOrder.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (Order.Coframe.toCompleteLattice.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (CompleteDistribLattice.toCoframe.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.instCompleteBooleanAlgebraSet.{max u1 u2} (forall (i : ι), α i))))))) (Set.pi.{u1, u2} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => Set.Ioc.{u2} (α i) (_inst_1 i) (x i) (Function.update.{succ u1, succ u2} ι (fun (a : ι) => α a) (fun (a : ι) (b : ι) => _inst_2 a b) y i₀ m i))) (Set.pi.{u1, u2} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => Set.Ioc.{u2} (α i) (_inst_1 i) (Function.update.{succ u1, succ u2} ι (fun (a : ι) => α a) (fun (a : ι) (b : ι) => _inst_2 a b) x i₀ m i) (y i)))
-Case conversion may be inaccurate. Consider using '#align set.disjoint_pi_univ_Ioc_update_left_right Set.disjoint_pi_univ_Ioc_update_left_rightₓ'. -/
 theorem disjoint_pi_univ_Ioc_update_left_right {x y : ∀ i, α i} {i₀ : ι} {m : α i₀} :
     Disjoint (pi univ fun i => Ioc (x i) (update y i₀ m i))
       (pi univ fun i => Ioc (update x i₀ m i) (y i)) :=
@@ -190,12 +142,6 @@ section PiPartialOrder
 
 variable [DecidableEq ι] [∀ i, PartialOrder (α i)]
 
-/- warning: set.image_update_Icc -> Set.image_update_Icc is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] (f : forall (i : ι), α i) (i : ι) (a : α i) (b : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (a : ι), α a)) (Set.image.{u2, max u1 u2} (α i) (forall (a : ι), α a) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Icc.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) a b)) (Set.Icc.{max u1 u2} (forall (a : ι), α a) (Pi.preorder.{u1, u2} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i a) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i b))
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] (f : forall (i : ι), α i) (i : ι) (a : α i) (b : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (a : ι), α a)) (Set.image.{u1, max u2 u1} (α i) (forall (a : ι), α a) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Icc.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) a b)) (Set.Icc.{max u2 u1} (forall (a : ι), α a) (Pi.preorder.{u2, u1} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i a) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i b))
-Case conversion may be inaccurate. Consider using '#align set.image_update_Icc Set.image_update_Iccₓ'. -/
 theorem image_update_Icc (f : ∀ i, α i) (i : ι) (a b : α i) :
     f.update i '' Icc a b = Icc (f.update i a) (f.update i b) :=
   by
@@ -211,130 +157,58 @@ theorem image_update_Icc (f : ∀ i, α i) (i : ι) (a b : α i) :
     · simpa only [Function.update_noteq hij.symm, le_antisymm_iff] using h j (mem_univ j)
 #align set.image_update_Icc Set.image_update_Icc
 
-/- warning: set.image_update_Ico -> Set.image_update_Ico is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] (f : forall (i : ι), α i) (i : ι) (a : α i) (b : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (a : ι), α a)) (Set.image.{u2, max u1 u2} (α i) (forall (a : ι), α a) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Ico.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) a b)) (Set.Ico.{max u1 u2} (forall (a : ι), α a) (Pi.preorder.{u1, u2} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i a) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i b))
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] (f : forall (i : ι), α i) (i : ι) (a : α i) (b : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (a : ι), α a)) (Set.image.{u1, max u2 u1} (α i) (forall (a : ι), α a) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Ico.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) a b)) (Set.Ico.{max u2 u1} (forall (a : ι), α a) (Pi.preorder.{u2, u1} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i a) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i b))
-Case conversion may be inaccurate. Consider using '#align set.image_update_Ico Set.image_update_Icoₓ'. -/
 theorem image_update_Ico (f : ∀ i, α i) (i : ι) (a b : α i) :
     f.update i '' Ico a b = Ico (f.update i a) (f.update i b) := by
   rw [← Icc_diff_right, ← Icc_diff_right, image_diff (f.update_injective _), image_singleton,
     image_update_Icc]
 #align set.image_update_Ico Set.image_update_Ico
 
-/- warning: set.image_update_Ioc -> Set.image_update_Ioc is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] (f : forall (i : ι), α i) (i : ι) (a : α i) (b : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (a : ι), α a)) (Set.image.{u2, max u1 u2} (α i) (forall (a : ι), α a) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Ioc.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) a b)) (Set.Ioc.{max u1 u2} (forall (a : ι), α a) (Pi.preorder.{u1, u2} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i a) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i b))
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] (f : forall (i : ι), α i) (i : ι) (a : α i) (b : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (a : ι), α a)) (Set.image.{u1, max u2 u1} (α i) (forall (a : ι), α a) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Ioc.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) a b)) (Set.Ioc.{max u2 u1} (forall (a : ι), α a) (Pi.preorder.{u2, u1} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i a) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i b))
-Case conversion may be inaccurate. Consider using '#align set.image_update_Ioc Set.image_update_Iocₓ'. -/
 theorem image_update_Ioc (f : ∀ i, α i) (i : ι) (a b : α i) :
     f.update i '' Ioc a b = Ioc (f.update i a) (f.update i b) := by
   rw [← Icc_diff_left, ← Icc_diff_left, image_diff (f.update_injective _), image_singleton,
     image_update_Icc]
 #align set.image_update_Ioc Set.image_update_Ioc
 
-/- warning: set.image_update_Ioo -> Set.image_update_Ioo is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] (f : forall (i : ι), α i) (i : ι) (a : α i) (b : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (a : ι), α a)) (Set.image.{u2, max u1 u2} (α i) (forall (a : ι), α a) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Ioo.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) a b)) (Set.Ioo.{max u1 u2} (forall (a : ι), α a) (Pi.preorder.{u1, u2} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i a) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i b))
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] (f : forall (i : ι), α i) (i : ι) (a : α i) (b : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (a : ι), α a)) (Set.image.{u1, max u2 u1} (α i) (forall (a : ι), α a) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Ioo.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) a b)) (Set.Ioo.{max u2 u1} (forall (a : ι), α a) (Pi.preorder.{u2, u1} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i a) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i b))
-Case conversion may be inaccurate. Consider using '#align set.image_update_Ioo Set.image_update_Iooₓ'. -/
 theorem image_update_Ioo (f : ∀ i, α i) (i : ι) (a b : α i) :
     f.update i '' Ioo a b = Ioo (f.update i a) (f.update i b) := by
   rw [← Ico_diff_left, ← Ico_diff_left, image_diff (f.update_injective _), image_singleton,
     image_update_Ico]
 #align set.image_update_Ioo Set.image_update_Ioo
 
-/- warning: set.image_update_Icc_left -> Set.image_update_Icc_left is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] (f : forall (i : ι), α i) (i : ι) (a : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (a : ι), α a)) (Set.image.{u2, max u1 u2} (α i) (forall (a : ι), α a) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Icc.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) a (f i))) (Set.Icc.{max u1 u2} (forall (a : ι), α a) (Pi.preorder.{u1, u2} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i a) f)
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] (f : forall (i : ι), α i) (i : ι) (a : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (a : ι), α a)) (Set.image.{u1, max u2 u1} (α i) (forall (a : ι), α a) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Icc.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) a (f i))) (Set.Icc.{max u2 u1} (forall (a : ι), α a) (Pi.preorder.{u2, u1} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i a) f)
-Case conversion may be inaccurate. Consider using '#align set.image_update_Icc_left Set.image_update_Icc_leftₓ'. -/
 theorem image_update_Icc_left (f : ∀ i, α i) (i : ι) (a : α i) :
     f.update i '' Icc a (f i) = Icc (f.update i a) f := by simpa using image_update_Icc f i a (f i)
 #align set.image_update_Icc_left Set.image_update_Icc_left
 
-/- warning: set.image_update_Ico_left -> Set.image_update_Ico_left is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] (f : forall (i : ι), α i) (i : ι) (a : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (a : ι), α a)) (Set.image.{u2, max u1 u2} (α i) (forall (a : ι), α a) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Ico.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) a (f i))) (Set.Ico.{max u1 u2} (forall (a : ι), α a) (Pi.preorder.{u1, u2} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i a) f)
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] (f : forall (i : ι), α i) (i : ι) (a : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (a : ι), α a)) (Set.image.{u1, max u2 u1} (α i) (forall (a : ι), α a) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Ico.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) a (f i))) (Set.Ico.{max u2 u1} (forall (a : ι), α a) (Pi.preorder.{u2, u1} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i a) f)
-Case conversion may be inaccurate. Consider using '#align set.image_update_Ico_left Set.image_update_Ico_leftₓ'. -/
 theorem image_update_Ico_left (f : ∀ i, α i) (i : ι) (a : α i) :
     f.update i '' Ico a (f i) = Ico (f.update i a) f := by simpa using image_update_Ico f i a (f i)
 #align set.image_update_Ico_left Set.image_update_Ico_left
 
-/- warning: set.image_update_Ioc_left -> Set.image_update_Ioc_left is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] (f : forall (i : ι), α i) (i : ι) (a : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (a : ι), α a)) (Set.image.{u2, max u1 u2} (α i) (forall (a : ι), α a) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Ioc.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) a (f i))) (Set.Ioc.{max u1 u2} (forall (a : ι), α a) (Pi.preorder.{u1, u2} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i a) f)
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] (f : forall (i : ι), α i) (i : ι) (a : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (a : ι), α a)) (Set.image.{u1, max u2 u1} (α i) (forall (a : ι), α a) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Ioc.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) a (f i))) (Set.Ioc.{max u2 u1} (forall (a : ι), α a) (Pi.preorder.{u2, u1} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i a) f)
-Case conversion may be inaccurate. Consider using '#align set.image_update_Ioc_left Set.image_update_Ioc_leftₓ'. -/
 theorem image_update_Ioc_left (f : ∀ i, α i) (i : ι) (a : α i) :
     f.update i '' Ioc a (f i) = Ioc (f.update i a) f := by simpa using image_update_Ioc f i a (f i)
 #align set.image_update_Ioc_left Set.image_update_Ioc_left
 
-/- warning: set.image_update_Ioo_left -> Set.image_update_Ioo_left is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] (f : forall (i : ι), α i) (i : ι) (a : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (a : ι), α a)) (Set.image.{u2, max u1 u2} (α i) (forall (a : ι), α a) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Ioo.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) a (f i))) (Set.Ioo.{max u1 u2} (forall (a : ι), α a) (Pi.preorder.{u1, u2} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i a) f)
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] (f : forall (i : ι), α i) (i : ι) (a : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (a : ι), α a)) (Set.image.{u1, max u2 u1} (α i) (forall (a : ι), α a) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Ioo.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) a (f i))) (Set.Ioo.{max u2 u1} (forall (a : ι), α a) (Pi.preorder.{u2, u1} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i a) f)
-Case conversion may be inaccurate. Consider using '#align set.image_update_Ioo_left Set.image_update_Ioo_leftₓ'. -/
 theorem image_update_Ioo_left (f : ∀ i, α i) (i : ι) (a : α i) :
     f.update i '' Ioo a (f i) = Ioo (f.update i a) f := by simpa using image_update_Ioo f i a (f i)
 #align set.image_update_Ioo_left Set.image_update_Ioo_left
 
-/- warning: set.image_update_Icc_right -> Set.image_update_Icc_right is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] (f : forall (i : ι), α i) (i : ι) (b : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (a : ι), α a)) (Set.image.{u2, max u1 u2} (α i) (forall (a : ι), α a) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Icc.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) (f i) b)) (Set.Icc.{max u1 u2} (forall (a : ι), α a) (Pi.preorder.{u1, u2} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) f (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i b))
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] (f : forall (i : ι), α i) (i : ι) (b : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (a : ι), α a)) (Set.image.{u1, max u2 u1} (α i) (forall (a : ι), α a) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Icc.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) (f i) b)) (Set.Icc.{max u2 u1} (forall (a : ι), α a) (Pi.preorder.{u2, u1} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) f (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i b))
-Case conversion may be inaccurate. Consider using '#align set.image_update_Icc_right Set.image_update_Icc_rightₓ'. -/
 theorem image_update_Icc_right (f : ∀ i, α i) (i : ι) (b : α i) :
     f.update i '' Icc (f i) b = Icc f (f.update i b) := by simpa using image_update_Icc f i (f i) b
 #align set.image_update_Icc_right Set.image_update_Icc_right
 
-/- warning: set.image_update_Ico_right -> Set.image_update_Ico_right is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] (f : forall (i : ι), α i) (i : ι) (b : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (a : ι), α a)) (Set.image.{u2, max u1 u2} (α i) (forall (a : ι), α a) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Ico.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) (f i) b)) (Set.Ico.{max u1 u2} (forall (a : ι), α a) (Pi.preorder.{u1, u2} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) f (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i b))
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] (f : forall (i : ι), α i) (i : ι) (b : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (a : ι), α a)) (Set.image.{u1, max u2 u1} (α i) (forall (a : ι), α a) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Ico.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) (f i) b)) (Set.Ico.{max u2 u1} (forall (a : ι), α a) (Pi.preorder.{u2, u1} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) f (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i b))
-Case conversion may be inaccurate. Consider using '#align set.image_update_Ico_right Set.image_update_Ico_rightₓ'. -/
 theorem image_update_Ico_right (f : ∀ i, α i) (i : ι) (b : α i) :
     f.update i '' Ico (f i) b = Ico f (f.update i b) := by simpa using image_update_Ico f i (f i) b
 #align set.image_update_Ico_right Set.image_update_Ico_right
 
-/- warning: set.image_update_Ioc_right -> Set.image_update_Ioc_right is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] (f : forall (i : ι), α i) (i : ι) (b : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (a : ι), α a)) (Set.image.{u2, max u1 u2} (α i) (forall (a : ι), α a) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Ioc.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) (f i) b)) (Set.Ioc.{max u1 u2} (forall (a : ι), α a) (Pi.preorder.{u1, u2} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) f (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i b))
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] (f : forall (i : ι), α i) (i : ι) (b : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (a : ι), α a)) (Set.image.{u1, max u2 u1} (α i) (forall (a : ι), α a) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Ioc.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) (f i) b)) (Set.Ioc.{max u2 u1} (forall (a : ι), α a) (Pi.preorder.{u2, u1} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) f (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i b))
-Case conversion may be inaccurate. Consider using '#align set.image_update_Ioc_right Set.image_update_Ioc_rightₓ'. -/
 theorem image_update_Ioc_right (f : ∀ i, α i) (i : ι) (b : α i) :
     f.update i '' Ioc (f i) b = Ioc f (f.update i b) := by simpa using image_update_Ioc f i (f i) b
 #align set.image_update_Ioc_right Set.image_update_Ioc_right
 
-/- warning: set.image_update_Ioo_right -> Set.image_update_Ioo_right is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] (f : forall (i : ι), α i) (i : ι) (b : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (a : ι), α a)) (Set.image.{u2, max u1 u2} (α i) (forall (a : ι), α a) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Ioo.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) (f i) b)) (Set.Ioo.{max u1 u2} (forall (a : ι), α a) (Pi.preorder.{u1, u2} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) f (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i b))
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] (f : forall (i : ι), α i) (i : ι) (b : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (a : ι), α a)) (Set.image.{u1, max u2 u1} (α i) (forall (a : ι), α a) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Ioo.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) (f i) b)) (Set.Ioo.{max u2 u1} (forall (a : ι), α a) (Pi.preorder.{u2, u1} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) f (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i b))
-Case conversion may be inaccurate. Consider using '#align set.image_update_Ioo_right Set.image_update_Ioo_rightₓ'. -/
 theorem image_update_Ioo_right (f : ∀ i, α i) (i : ι) (b : α i) :
     f.update i '' Ioo (f i) b = Ioo f (f.update i b) := by simpa using image_update_Ioo f i (f i) b
 #align set.image_update_Ioo_right Set.image_update_Ioo_right
 
 variable [∀ i, One (α i)]
 
-/- warning: set.image_mul_single_Icc -> Set.image_mulSingle_Icc is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] [_inst_3 : forall (i : ι), One.{u2} (α i)] (i : ι) (a : α i) (b : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.image.{u2, max u1 u2} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Icc.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) a b)) (Set.Icc.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i a) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i b))
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] [_inst_3 : forall (i : ι), One.{u1} (α i)] (i : ι) (a : α i) (b : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.image.{u1, max u2 u1} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Icc.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) a b)) (Set.Icc.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i a) (Pi.mulSingle.{u2, u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i b))
-Case conversion may be inaccurate. Consider using '#align set.image_mul_single_Icc Set.image_mulSingle_Iccₓ'. -/
 @[to_additive]
 theorem image_mulSingle_Icc (i : ι) (a b : α i) :
     Pi.mulSingle i '' Icc a b = Icc (Pi.mulSingle i a) (Pi.mulSingle i b) :=
@@ -342,12 +216,6 @@ theorem image_mulSingle_Icc (i : ι) (a b : α i) :
 #align set.image_mul_single_Icc Set.image_mulSingle_Icc
 #align set.image_single_Icc Set.image_single_Icc
 
-/- warning: set.image_mul_single_Ico -> Set.image_mulSingle_Ico is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] [_inst_3 : forall (i : ι), One.{u2} (α i)] (i : ι) (a : α i) (b : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.image.{u2, max u1 u2} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Ico.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) a b)) (Set.Ico.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i a) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i b))
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] [_inst_3 : forall (i : ι), One.{u1} (α i)] (i : ι) (a : α i) (b : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.image.{u1, max u2 u1} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Ico.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) a b)) (Set.Ico.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i a) (Pi.mulSingle.{u2, u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i b))
-Case conversion may be inaccurate. Consider using '#align set.image_mul_single_Ico Set.image_mulSingle_Icoₓ'. -/
 @[to_additive]
 theorem image_mulSingle_Ico (i : ι) (a b : α i) :
     Pi.mulSingle i '' Ico a b = Ico (Pi.mulSingle i a) (Pi.mulSingle i b) :=
@@ -355,12 +223,6 @@ theorem image_mulSingle_Ico (i : ι) (a b : α i) :
 #align set.image_mul_single_Ico Set.image_mulSingle_Ico
 #align set.image_single_Ico Set.image_single_Ico
 
-/- warning: set.image_mul_single_Ioc -> Set.image_mulSingle_Ioc is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] [_inst_3 : forall (i : ι), One.{u2} (α i)] (i : ι) (a : α i) (b : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.image.{u2, max u1 u2} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Ioc.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) a b)) (Set.Ioc.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i a) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i b))
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] [_inst_3 : forall (i : ι), One.{u1} (α i)] (i : ι) (a : α i) (b : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.image.{u1, max u2 u1} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Ioc.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) a b)) (Set.Ioc.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i a) (Pi.mulSingle.{u2, u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i b))
-Case conversion may be inaccurate. Consider using '#align set.image_mul_single_Ioc Set.image_mulSingle_Iocₓ'. -/
 @[to_additive]
 theorem image_mulSingle_Ioc (i : ι) (a b : α i) :
     Pi.mulSingle i '' Ioc a b = Ioc (Pi.mulSingle i a) (Pi.mulSingle i b) :=
@@ -368,12 +230,6 @@ theorem image_mulSingle_Ioc (i : ι) (a b : α i) :
 #align set.image_mul_single_Ioc Set.image_mulSingle_Ioc
 #align set.image_single_Ioc Set.image_single_Ioc
 
-/- warning: set.image_mul_single_Ioo -> Set.image_mulSingle_Ioo is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] [_inst_3 : forall (i : ι), One.{u2} (α i)] (i : ι) (a : α i) (b : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.image.{u2, max u1 u2} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Ioo.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) a b)) (Set.Ioo.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i a) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i b))
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] [_inst_3 : forall (i : ι), One.{u1} (α i)] (i : ι) (a : α i) (b : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.image.{u1, max u2 u1} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Ioo.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) a b)) (Set.Ioo.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i a) (Pi.mulSingle.{u2, u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i b))
-Case conversion may be inaccurate. Consider using '#align set.image_mul_single_Ioo Set.image_mulSingle_Iooₓ'. -/
 @[to_additive]
 theorem image_mulSingle_Ioo (i : ι) (a b : α i) :
     Pi.mulSingle i '' Ioo a b = Ioo (Pi.mulSingle i a) (Pi.mulSingle i b) :=
@@ -381,12 +237,6 @@ theorem image_mulSingle_Ioo (i : ι) (a b : α i) :
 #align set.image_mul_single_Ioo Set.image_mulSingle_Ioo
 #align set.image_single_Ioo Set.image_single_Ioo
 
-/- warning: set.image_mul_single_Icc_left -> Set.image_mulSingle_Icc_left is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] [_inst_3 : forall (i : ι), One.{u2} (α i)] (i : ι) (a : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.image.{u2, max u1 u2} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Icc.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) a (OfNat.ofNat.{u2} (α i) 1 (OfNat.mk.{u2} (α i) 1 (One.one.{u2} (α i) (_inst_3 i)))))) (Set.Icc.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i a) (OfNat.ofNat.{max u1 u2} (forall (i : ι), α i) 1 (OfNat.mk.{max u1 u2} (forall (i : ι), α i) 1 (One.one.{max u1 u2} (forall (i : ι), α i) (Pi.instOne.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_3 i))))))
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] [_inst_3 : forall (i : ι), One.{u1} (α i)] (i : ι) (a : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.image.{u1, max u2 u1} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Icc.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) a (OfNat.ofNat.{u1} (α i) 1 (One.toOfNat1.{u1} (α i) (_inst_3 i))))) (Set.Icc.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i a) (OfNat.ofNat.{max u2 u1} (forall (i : ι), α i) 1 (One.toOfNat1.{max u2 u1} (forall (j : ι), α j) (Pi.instOne.{u2, u1} ι (fun (j : ι) => α j) (fun (i : ι) => _inst_3 i)))))
-Case conversion may be inaccurate. Consider using '#align set.image_mul_single_Icc_left Set.image_mulSingle_Icc_leftₓ'. -/
 @[to_additive]
 theorem image_mulSingle_Icc_left (i : ι) (a : α i) :
     Pi.mulSingle i '' Icc a 1 = Icc (Pi.mulSingle i a) 1 :=
@@ -394,12 +244,6 @@ theorem image_mulSingle_Icc_left (i : ι) (a : α i) :
 #align set.image_mul_single_Icc_left Set.image_mulSingle_Icc_left
 #align set.image_single_Icc_left Set.image_single_Icc_left
 
-/- warning: set.image_mul_single_Ico_left -> Set.image_mulSingle_Ico_left is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] [_inst_3 : forall (i : ι), One.{u2} (α i)] (i : ι) (a : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.image.{u2, max u1 u2} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Ico.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) a (OfNat.ofNat.{u2} (α i) 1 (OfNat.mk.{u2} (α i) 1 (One.one.{u2} (α i) (_inst_3 i)))))) (Set.Ico.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i a) (OfNat.ofNat.{max u1 u2} (forall (i : ι), α i) 1 (OfNat.mk.{max u1 u2} (forall (i : ι), α i) 1 (One.one.{max u1 u2} (forall (i : ι), α i) (Pi.instOne.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_3 i))))))
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] [_inst_3 : forall (i : ι), One.{u1} (α i)] (i : ι) (a : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.image.{u1, max u2 u1} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Ico.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) a (OfNat.ofNat.{u1} (α i) 1 (One.toOfNat1.{u1} (α i) (_inst_3 i))))) (Set.Ico.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i a) (OfNat.ofNat.{max u2 u1} (forall (i : ι), α i) 1 (One.toOfNat1.{max u2 u1} (forall (j : ι), α j) (Pi.instOne.{u2, u1} ι (fun (j : ι) => α j) (fun (i : ι) => _inst_3 i)))))
-Case conversion may be inaccurate. Consider using '#align set.image_mul_single_Ico_left Set.image_mulSingle_Ico_leftₓ'. -/
 @[to_additive]
 theorem image_mulSingle_Ico_left (i : ι) (a : α i) :
     Pi.mulSingle i '' Ico a 1 = Ico (Pi.mulSingle i a) 1 :=
@@ -407,12 +251,6 @@ theorem image_mulSingle_Ico_left (i : ι) (a : α i) :
 #align set.image_mul_single_Ico_left Set.image_mulSingle_Ico_left
 #align set.image_single_Ico_left Set.image_single_Ico_left
 
-/- warning: set.image_mul_single_Ioc_left -> Set.image_mulSingle_Ioc_left is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] [_inst_3 : forall (i : ι), One.{u2} (α i)] (i : ι) (a : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.image.{u2, max u1 u2} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Ioc.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) a (OfNat.ofNat.{u2} (α i) 1 (OfNat.mk.{u2} (α i) 1 (One.one.{u2} (α i) (_inst_3 i)))))) (Set.Ioc.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i a) (OfNat.ofNat.{max u1 u2} (forall (i : ι), α i) 1 (OfNat.mk.{max u1 u2} (forall (i : ι), α i) 1 (One.one.{max u1 u2} (forall (i : ι), α i) (Pi.instOne.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_3 i))))))
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] [_inst_3 : forall (i : ι), One.{u1} (α i)] (i : ι) (a : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.image.{u1, max u2 u1} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Ioc.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) a (OfNat.ofNat.{u1} (α i) 1 (One.toOfNat1.{u1} (α i) (_inst_3 i))))) (Set.Ioc.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i a) (OfNat.ofNat.{max u2 u1} (forall (i : ι), α i) 1 (One.toOfNat1.{max u2 u1} (forall (j : ι), α j) (Pi.instOne.{u2, u1} ι (fun (j : ι) => α j) (fun (i : ι) => _inst_3 i)))))
-Case conversion may be inaccurate. Consider using '#align set.image_mul_single_Ioc_left Set.image_mulSingle_Ioc_leftₓ'. -/
 @[to_additive]
 theorem image_mulSingle_Ioc_left (i : ι) (a : α i) :
     Pi.mulSingle i '' Ioc a 1 = Ioc (Pi.mulSingle i a) 1 :=
@@ -420,12 +258,6 @@ theorem image_mulSingle_Ioc_left (i : ι) (a : α i) :
 #align set.image_mul_single_Ioc_left Set.image_mulSingle_Ioc_left
 #align set.image_single_Ioc_left Set.image_single_Ioc_left
 
-/- warning: set.image_mul_single_Ioo_left -> Set.image_mulSingle_Ioo_left is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] [_inst_3 : forall (i : ι), One.{u2} (α i)] (i : ι) (a : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.image.{u2, max u1 u2} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Ioo.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) a (OfNat.ofNat.{u2} (α i) 1 (OfNat.mk.{u2} (α i) 1 (One.one.{u2} (α i) (_inst_3 i)))))) (Set.Ioo.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i a) (OfNat.ofNat.{max u1 u2} (forall (i : ι), α i) 1 (OfNat.mk.{max u1 u2} (forall (i : ι), α i) 1 (One.one.{max u1 u2} (forall (i : ι), α i) (Pi.instOne.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_3 i))))))
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] [_inst_3 : forall (i : ι), One.{u1} (α i)] (i : ι) (a : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.image.{u1, max u2 u1} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Ioo.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) a (OfNat.ofNat.{u1} (α i) 1 (One.toOfNat1.{u1} (α i) (_inst_3 i))))) (Set.Ioo.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i a) (OfNat.ofNat.{max u2 u1} (forall (i : ι), α i) 1 (One.toOfNat1.{max u2 u1} (forall (j : ι), α j) (Pi.instOne.{u2, u1} ι (fun (j : ι) => α j) (fun (i : ι) => _inst_3 i)))))
-Case conversion may be inaccurate. Consider using '#align set.image_mul_single_Ioo_left Set.image_mulSingle_Ioo_leftₓ'. -/
 @[to_additive]
 theorem image_mulSingle_Ioo_left (i : ι) (a : α i) :
     Pi.mulSingle i '' Ioo a 1 = Ioo (Pi.mulSingle i a) 1 :=
@@ -433,12 +265,6 @@ theorem image_mulSingle_Ioo_left (i : ι) (a : α i) :
 #align set.image_mul_single_Ioo_left Set.image_mulSingle_Ioo_left
 #align set.image_single_Ioo_left Set.image_single_Ioo_left
 
-/- warning: set.image_mul_single_Icc_right -> Set.image_mulSingle_Icc_right is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] [_inst_3 : forall (i : ι), One.{u2} (α i)] (i : ι) (b : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.image.{u2, max u1 u2} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Icc.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) (OfNat.ofNat.{u2} (α i) 1 (OfNat.mk.{u2} (α i) 1 (One.one.{u2} (α i) (_inst_3 i)))) b)) (Set.Icc.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) (OfNat.ofNat.{max u1 u2} (forall (i : ι), α i) 1 (OfNat.mk.{max u1 u2} (forall (i : ι), α i) 1 (One.one.{max u1 u2} (forall (i : ι), α i) (Pi.instOne.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_3 i))))) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i b))
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] [_inst_3 : forall (i : ι), One.{u1} (α i)] (i : ι) (b : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.image.{u1, max u2 u1} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Icc.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) (OfNat.ofNat.{u1} (α i) 1 (One.toOfNat1.{u1} (α i) (_inst_3 i))) b)) (Set.Icc.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) (OfNat.ofNat.{max u1 u2} (forall (i : ι), α i) 1 (One.toOfNat1.{max u2 u1} (forall (j : ι), α j) (Pi.instOne.{u2, u1} ι (fun (j : ι) => α j) (fun (i : ι) => _inst_3 i)))) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i b))
-Case conversion may be inaccurate. Consider using '#align set.image_mul_single_Icc_right Set.image_mulSingle_Icc_rightₓ'. -/
 @[to_additive]
 theorem image_mulSingle_Icc_right (i : ι) (b : α i) :
     Pi.mulSingle i '' Icc 1 b = Icc 1 (Pi.mulSingle i b) :=
@@ -446,12 +272,6 @@ theorem image_mulSingle_Icc_right (i : ι) (b : α i) :
 #align set.image_mul_single_Icc_right Set.image_mulSingle_Icc_right
 #align set.image_single_Icc_right Set.image_single_Icc_right
 
-/- warning: set.image_mul_single_Ico_right -> Set.image_mulSingle_Ico_right is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] [_inst_3 : forall (i : ι), One.{u2} (α i)] (i : ι) (b : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.image.{u2, max u1 u2} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Ico.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) (OfNat.ofNat.{u2} (α i) 1 (OfNat.mk.{u2} (α i) 1 (One.one.{u2} (α i) (_inst_3 i)))) b)) (Set.Ico.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) (OfNat.ofNat.{max u1 u2} (forall (i : ι), α i) 1 (OfNat.mk.{max u1 u2} (forall (i : ι), α i) 1 (One.one.{max u1 u2} (forall (i : ι), α i) (Pi.instOne.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_3 i))))) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i b))
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] [_inst_3 : forall (i : ι), One.{u1} (α i)] (i : ι) (b : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.image.{u1, max u2 u1} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Ico.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) (OfNat.ofNat.{u1} (α i) 1 (One.toOfNat1.{u1} (α i) (_inst_3 i))) b)) (Set.Ico.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) (OfNat.ofNat.{max u1 u2} (forall (i : ι), α i) 1 (One.toOfNat1.{max u2 u1} (forall (j : ι), α j) (Pi.instOne.{u2, u1} ι (fun (j : ι) => α j) (fun (i : ι) => _inst_3 i)))) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i b))
-Case conversion may be inaccurate. Consider using '#align set.image_mul_single_Ico_right Set.image_mulSingle_Ico_rightₓ'. -/
 @[to_additive]
 theorem image_mulSingle_Ico_right (i : ι) (b : α i) :
     Pi.mulSingle i '' Ico 1 b = Ico 1 (Pi.mulSingle i b) :=
@@ -459,12 +279,6 @@ theorem image_mulSingle_Ico_right (i : ι) (b : α i) :
 #align set.image_mul_single_Ico_right Set.image_mulSingle_Ico_right
 #align set.image_single_Ico_right Set.image_single_Ico_right
 
-/- warning: set.image_mul_single_Ioc_right -> Set.image_mulSingle_Ioc_right is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] [_inst_3 : forall (i : ι), One.{u2} (α i)] (i : ι) (b : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.image.{u2, max u1 u2} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Ioc.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) (OfNat.ofNat.{u2} (α i) 1 (OfNat.mk.{u2} (α i) 1 (One.one.{u2} (α i) (_inst_3 i)))) b)) (Set.Ioc.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) (OfNat.ofNat.{max u1 u2} (forall (i : ι), α i) 1 (OfNat.mk.{max u1 u2} (forall (i : ι), α i) 1 (One.one.{max u1 u2} (forall (i : ι), α i) (Pi.instOne.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_3 i))))) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i b))
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] [_inst_3 : forall (i : ι), One.{u1} (α i)] (i : ι) (b : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.image.{u1, max u2 u1} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Ioc.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) (OfNat.ofNat.{u1} (α i) 1 (One.toOfNat1.{u1} (α i) (_inst_3 i))) b)) (Set.Ioc.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) (OfNat.ofNat.{max u1 u2} (forall (i : ι), α i) 1 (One.toOfNat1.{max u2 u1} (forall (j : ι), α j) (Pi.instOne.{u2, u1} ι (fun (j : ι) => α j) (fun (i : ι) => _inst_3 i)))) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i b))
-Case conversion may be inaccurate. Consider using '#align set.image_mul_single_Ioc_right Set.image_mulSingle_Ioc_rightₓ'. -/
 @[to_additive]
 theorem image_mulSingle_Ioc_right (i : ι) (b : α i) :
     Pi.mulSingle i '' Ioc 1 b = Ioc 1 (Pi.mulSingle i b) :=
@@ -472,12 +286,6 @@ theorem image_mulSingle_Ioc_right (i : ι) (b : α i) :
 #align set.image_mul_single_Ioc_right Set.image_mulSingle_Ioc_right
 #align set.image_single_Ioc_right Set.image_single_Ioc_right
 
-/- warning: set.image_mul_single_Ioo_right -> Set.image_mulSingle_Ioo_right is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] [_inst_3 : forall (i : ι), One.{u2} (α i)] (i : ι) (b : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.image.{u2, max u1 u2} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Ioo.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) (OfNat.ofNat.{u2} (α i) 1 (OfNat.mk.{u2} (α i) 1 (One.one.{u2} (α i) (_inst_3 i)))) b)) (Set.Ioo.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) (OfNat.ofNat.{max u1 u2} (forall (i : ι), α i) 1 (OfNat.mk.{max u1 u2} (forall (i : ι), α i) 1 (One.one.{max u1 u2} (forall (i : ι), α i) (Pi.instOne.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_3 i))))) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i b))
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] [_inst_3 : forall (i : ι), One.{u1} (α i)] (i : ι) (b : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.image.{u1, max u2 u1} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Ioo.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) (OfNat.ofNat.{u1} (α i) 1 (One.toOfNat1.{u1} (α i) (_inst_3 i))) b)) (Set.Ioo.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) (OfNat.ofNat.{max u1 u2} (forall (i : ι), α i) 1 (One.toOfNat1.{max u2 u1} (forall (j : ι), α j) (Pi.instOne.{u2, u1} ι (fun (j : ι) => α j) (fun (i : ι) => _inst_3 i)))) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i b))
-Case conversion may be inaccurate. Consider using '#align set.image_mul_single_Ioo_right Set.image_mulSingle_Ioo_rightₓ'. -/
 @[to_additive]
 theorem image_mulSingle_Ioo_right (i : ι) (b : α i) :
     Pi.mulSingle i '' Ioo 1 b = Ioo 1 (Pi.mulSingle i b) :=
@@ -491,12 +299,6 @@ section PiLattice
 
 variable [∀ i, Lattice (α i)]
 
-/- warning: set.pi_univ_uIcc -> Set.pi_univ_uIcc is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : forall (i : ι), Lattice.{u2} (α i)] (a : forall (i : ι), α i) (b : forall (i : ι), α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.pi.{u1, u2} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => Set.uIcc.{u2} (α i) (_inst_1 i) (a i) (b i))) (Set.uIcc.{max u1 u2} (forall (i : ι), α i) (Pi.lattice.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_1 i)) a b)
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : forall (i : ι), Lattice.{u1} (α i)] (a : forall (i : ι), α i) (b : forall (i : ι), α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.pi.{u2, u1} ι (fun (i : ι) => α i) (Set.univ.{u2} ι) (fun (i : ι) => Set.uIcc.{u1} (α i) (_inst_1 i) (a i) (b i))) (Set.uIcc.{max u2 u1} (forall (i : ι), α i) (Pi.lattice.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_1 i)) a b)
-Case conversion may be inaccurate. Consider using '#align set.pi_univ_uIcc Set.pi_univ_uIccₓ'. -/
 @[simp]
 theorem pi_univ_uIcc (a b : ∀ i, α i) : (pi univ fun i => uIcc (a i) (b i)) = uIcc a b :=
   pi_univ_Icc _ _
@@ -504,34 +306,16 @@ theorem pi_univ_uIcc (a b : ∀ i, α i) : (pi univ fun i => uIcc (a i) (b i)) =
 
 variable [DecidableEq ι]
 
-/- warning: set.image_update_uIcc -> Set.image_update_uIcc is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : forall (i : ι), Lattice.{u2} (α i)] [_inst_2 : DecidableEq.{succ u1} ι] (f : forall (i : ι), α i) (i : ι) (a : α i) (b : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (a : ι), α a)) (Set.image.{u2, max u1 u2} (α i) (forall (a : ι), α a) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) f i) (Set.uIcc.{u2} (α i) (_inst_1 i) a b)) (Set.uIcc.{max u1 u2} (forall (a : ι), α a) (Pi.lattice.{u1, u2} ι (fun (a : ι) => α a) (fun (i : ι) => _inst_1 i)) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) f i a) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) f i b))
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : forall (i : ι), Lattice.{u1} (α i)] [_inst_2 : DecidableEq.{succ u2} ι] (f : forall (i : ι), α i) (i : ι) (a : α i) (b : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (a : ι), α a)) (Set.image.{u1, max u2 u1} (α i) (forall (a : ι), α a) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) f i) (Set.uIcc.{u1} (α i) (_inst_1 i) a b)) (Set.uIcc.{max u2 u1} (forall (a : ι), α a) (Pi.lattice.{u2, u1} ι (fun (a : ι) => α a) (fun (i : ι) => _inst_1 i)) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) f i a) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) f i b))
-Case conversion may be inaccurate. Consider using '#align set.image_update_uIcc Set.image_update_uIccₓ'. -/
 theorem image_update_uIcc (f : ∀ i, α i) (i : ι) (a b : α i) :
     f.update i '' uIcc a b = uIcc (f.update i a) (f.update i b) :=
   (image_update_Icc _ _ _ _).trans <| by simp_rw [uIcc, f.update_sup, f.update_inf]
 #align set.image_update_uIcc Set.image_update_uIcc
 
-/- warning: set.image_update_uIcc_left -> Set.image_update_uIcc_left is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : forall (i : ι), Lattice.{u2} (α i)] [_inst_2 : DecidableEq.{succ u1} ι] (f : forall (i : ι), α i) (i : ι) (a : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (a : ι), α a)) (Set.image.{u2, max u1 u2} (α i) (forall (a : ι), α a) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) f i) (Set.uIcc.{u2} (α i) (_inst_1 i) a (f i))) (Set.uIcc.{max u1 u2} (forall (a : ι), α a) (Pi.lattice.{u1, u2} ι (fun (a : ι) => α a) (fun (i : ι) => _inst_1 i)) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) f i a) f)
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : forall (i : ι), Lattice.{u1} (α i)] [_inst_2 : DecidableEq.{succ u2} ι] (f : forall (i : ι), α i) (i : ι) (a : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (a : ι), α a)) (Set.image.{u1, max u2 u1} (α i) (forall (a : ι), α a) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) f i) (Set.uIcc.{u1} (α i) (_inst_1 i) a (f i))) (Set.uIcc.{max u2 u1} (forall (a : ι), α a) (Pi.lattice.{u2, u1} ι (fun (a : ι) => α a) (fun (i : ι) => _inst_1 i)) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) f i a) f)
-Case conversion may be inaccurate. Consider using '#align set.image_update_uIcc_left Set.image_update_uIcc_leftₓ'. -/
 theorem image_update_uIcc_left (f : ∀ i, α i) (i : ι) (a : α i) :
     f.update i '' uIcc a (f i) = uIcc (f.update i a) f := by
   simpa using image_update_uIcc f i a (f i)
 #align set.image_update_uIcc_left Set.image_update_uIcc_left
 
-/- warning: set.image_update_uIcc_right -> Set.image_update_uIcc_right is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : forall (i : ι), Lattice.{u2} (α i)] [_inst_2 : DecidableEq.{succ u1} ι] (f : forall (i : ι), α i) (i : ι) (b : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (a : ι), α a)) (Set.image.{u2, max u1 u2} (α i) (forall (a : ι), α a) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) f i) (Set.uIcc.{u2} (α i) (_inst_1 i) (f i) b)) (Set.uIcc.{max u1 u2} (forall (a : ι), α a) (Pi.lattice.{u1, u2} ι (fun (a : ι) => α a) (fun (i : ι) => _inst_1 i)) f (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) f i b))
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : forall (i : ι), Lattice.{u1} (α i)] [_inst_2 : DecidableEq.{succ u2} ι] (f : forall (i : ι), α i) (i : ι) (b : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (a : ι), α a)) (Set.image.{u1, max u2 u1} (α i) (forall (a : ι), α a) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) f i) (Set.uIcc.{u1} (α i) (_inst_1 i) (f i) b)) (Set.uIcc.{max u2 u1} (forall (a : ι), α a) (Pi.lattice.{u2, u1} ι (fun (a : ι) => α a) (fun (i : ι) => _inst_1 i)) f (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) f i b))
-Case conversion may be inaccurate. Consider using '#align set.image_update_uIcc_right Set.image_update_uIcc_rightₓ'. -/
 theorem image_update_uIcc_right (f : ∀ i, α i) (i : ι) (b : α i) :
     f.update i '' uIcc (f i) b = uIcc f (f.update i b) := by
   simpa using image_update_uIcc f i (f i) b
@@ -539,12 +323,6 @@ theorem image_update_uIcc_right (f : ∀ i, α i) (i : ι) (b : α i) :
 
 variable [∀ i, One (α i)]
 
-/- warning: set.image_mul_single_uIcc -> Set.image_mulSingle_uIcc is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : forall (i : ι), Lattice.{u2} (α i)] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : forall (i : ι), One.{u2} (α i)] (i : ι) (a : α i) (b : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.image.{u2, max u1 u2} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => _inst_3 i) i) (Set.uIcc.{u2} (α i) (_inst_1 i) a b)) (Set.uIcc.{max u1 u2} (forall (i : ι), α i) (Pi.lattice.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_1 i)) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => _inst_3 i) i a) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => _inst_3 i) i b))
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : forall (i : ι), Lattice.{u1} (α i)] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : forall (i : ι), One.{u1} (α i)] (i : ι) (a : α i) (b : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.image.{u1, max u2 u1} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => _inst_3 i) i) (Set.uIcc.{u1} (α i) (_inst_1 i) a b)) (Set.uIcc.{max u1 u2} (forall (i : ι), α i) (Pi.lattice.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_1 i)) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => _inst_3 i) i a) (Pi.mulSingle.{u2, u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => _inst_3 i) i b))
-Case conversion may be inaccurate. Consider using '#align set.image_mul_single_uIcc Set.image_mulSingle_uIccₓ'. -/
 @[to_additive]
 theorem image_mulSingle_uIcc (i : ι) (a b : α i) :
     Pi.mulSingle i '' uIcc a b = uIcc (Pi.mulSingle i a) (Pi.mulSingle i b) :=
@@ -552,12 +330,6 @@ theorem image_mulSingle_uIcc (i : ι) (a b : α i) :
 #align set.image_mul_single_uIcc Set.image_mulSingle_uIcc
 #align set.image_single_uIcc Set.image_single_uIcc
 
-/- warning: set.image_mul_single_uIcc_left -> Set.image_mulSingle_uIcc_left is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : forall (i : ι), Lattice.{u2} (α i)] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : forall (i : ι), One.{u2} (α i)] (i : ι) (a : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.image.{u2, max u1 u2} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => _inst_3 i) i) (Set.uIcc.{u2} (α i) (_inst_1 i) a (OfNat.ofNat.{u2} (α i) 1 (OfNat.mk.{u2} (α i) 1 (One.one.{u2} (α i) (_inst_3 i)))))) (Set.uIcc.{max u1 u2} (forall (i : ι), α i) (Pi.lattice.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_1 i)) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => _inst_3 i) i a) (OfNat.ofNat.{max u1 u2} (forall (i : ι), α i) 1 (OfNat.mk.{max u1 u2} (forall (i : ι), α i) 1 (One.one.{max u1 u2} (forall (i : ι), α i) (Pi.instOne.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_3 i))))))
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : forall (i : ι), Lattice.{u1} (α i)] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : forall (i : ι), One.{u1} (α i)] (i : ι) (a : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.image.{u1, max u2 u1} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => _inst_3 i) i) (Set.uIcc.{u1} (α i) (_inst_1 i) a (OfNat.ofNat.{u1} (α i) 1 (One.toOfNat1.{u1} (α i) (_inst_3 i))))) (Set.uIcc.{max u1 u2} (forall (i : ι), α i) (Pi.lattice.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_1 i)) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => _inst_3 i) i a) (OfNat.ofNat.{max u2 u1} (forall (i : ι), α i) 1 (One.toOfNat1.{max u2 u1} (forall (j : ι), α j) (Pi.instOne.{u2, u1} ι (fun (j : ι) => α j) (fun (i : ι) => _inst_3 i)))))
-Case conversion may be inaccurate. Consider using '#align set.image_mul_single_uIcc_left Set.image_mulSingle_uIcc_leftₓ'. -/
 @[to_additive]
 theorem image_mulSingle_uIcc_left (i : ι) (a : α i) :
     Pi.mulSingle i '' uIcc a 1 = uIcc (Pi.mulSingle i a) 1 :=
@@ -565,12 +337,6 @@ theorem image_mulSingle_uIcc_left (i : ι) (a : α i) :
 #align set.image_mul_single_uIcc_left Set.image_mulSingle_uIcc_left
 #align set.image_single_uIcc_left Set.image_single_uIcc_left
 
-/- warning: set.image_mul_single_uIcc_right -> Set.image_mulSingle_uIcc_right is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : forall (i : ι), Lattice.{u2} (α i)] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : forall (i : ι), One.{u2} (α i)] (i : ι) (b : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.image.{u2, max u1 u2} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => _inst_3 i) i) (Set.uIcc.{u2} (α i) (_inst_1 i) (OfNat.ofNat.{u2} (α i) 1 (OfNat.mk.{u2} (α i) 1 (One.one.{u2} (α i) (_inst_3 i)))) b)) (Set.uIcc.{max u1 u2} (forall (i : ι), α i) (Pi.lattice.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_1 i)) (OfNat.ofNat.{max u1 u2} (forall (i : ι), α i) 1 (OfNat.mk.{max u1 u2} (forall (i : ι), α i) 1 (One.one.{max u1 u2} (forall (i : ι), α i) (Pi.instOne.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_3 i))))) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => _inst_3 i) i b))
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : forall (i : ι), Lattice.{u1} (α i)] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : forall (i : ι), One.{u1} (α i)] (i : ι) (b : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.image.{u1, max u2 u1} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => _inst_3 i) i) (Set.uIcc.{u1} (α i) (_inst_1 i) (OfNat.ofNat.{u1} (α i) 1 (One.toOfNat1.{u1} (α i) (_inst_3 i))) b)) (Set.uIcc.{max u1 u2} (forall (i : ι), α i) (Pi.lattice.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_1 i)) (OfNat.ofNat.{max u1 u2} (forall (i : ι), α i) 1 (One.toOfNat1.{max u2 u1} (forall (j : ι), α j) (Pi.instOne.{u2, u1} ι (fun (j : ι) => α j) (fun (i : ι) => _inst_3 i)))) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => _inst_3 i) i b))
-Case conversion may be inaccurate. Consider using '#align set.image_mul_single_uIcc_right Set.image_mulSingle_uIcc_rightₓ'. -/
 @[to_additive]
 theorem image_mulSingle_uIcc_right (i : ι) (b : α i) :
     Pi.mulSingle i '' uIcc 1 b = uIcc 1 (Pi.mulSingle i b) :=
@@ -584,12 +350,6 @@ variable [DecidableEq ι] [∀ i, LinearOrder (α i)]
 
 open Function (update)
 
-/- warning: set.pi_univ_Ioc_update_union -> Set.pi_univ_Ioc_update_union is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), LinearOrder.{u2} (α i)] (x : forall (i : ι), α i) (y : forall (i : ι), α i) (i₀ : ι) (m : α i₀), (Membership.Mem.{u2, u2} (α i₀) (Set.{u2} (α i₀)) (Set.hasMem.{u2} (α i₀)) m (Set.Icc.{u2} (α i₀) (PartialOrder.toPreorder.{u2} (α i₀) (SemilatticeInf.toPartialOrder.{u2} (α i₀) (Lattice.toSemilatticeInf.{u2} (α i₀) (LinearOrder.toLattice.{u2} (α i₀) (_inst_2 i₀))))) (x i₀) (y i₀))) -> (Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Union.union.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.hasUnion.{max u1 u2} (forall (i : ι), α i)) (Set.pi.{u1, u2} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => Set.Ioc.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (SemilatticeInf.toPartialOrder.{u2} (α i) (Lattice.toSemilatticeInf.{u2} (α i) (LinearOrder.toLattice.{u2} (α i) (_inst_2 i))))) (x i) (Function.update.{succ u1, succ u2} ι α (fun (a : ι) (b : ι) => _inst_1 a b) y i₀ m i))) (Set.pi.{u1, u2} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => Set.Ioc.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (SemilatticeInf.toPartialOrder.{u2} (α i) (Lattice.toSemilatticeInf.{u2} (α i) (LinearOrder.toLattice.{u2} (α i) (_inst_2 i))))) (Function.update.{succ u1, succ u2} ι α (fun (a : ι) (b : ι) => _inst_1 a b) x i₀ m i) (y i)))) (Set.pi.{u1, u2} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => Set.Ioc.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (SemilatticeInf.toPartialOrder.{u2} (α i) (Lattice.toSemilatticeInf.{u2} (α i) (LinearOrder.toLattice.{u2} (α i) (_inst_2 i))))) (x i) (y i))))
-but is expected to have type
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), LinearOrder.{u2} (α i)] (x : forall (i : ι), α i) (y : forall (i : ι), α i) (i₀ : ι) (m : α i₀), (Membership.mem.{u2, u2} (α i₀) (Set.{u2} (α i₀)) (Set.instMembershipSet.{u2} (α i₀)) m (Set.Icc.{u2} (α i₀) (PartialOrder.toPreorder.{u2} (α i₀) (SemilatticeInf.toPartialOrder.{u2} (α i₀) (Lattice.toSemilatticeInf.{u2} (α i₀) (DistribLattice.toLattice.{u2} (α i₀) (instDistribLattice.{u2} (α i₀) (_inst_2 i₀)))))) (x i₀) (y i₀))) -> (Eq.{max (succ u1) (succ u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Union.union.{max u2 u1} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.instUnionSet.{max u1 u2} (forall (i : ι), α i)) (Set.pi.{u1, u2} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => Set.Ioc.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (SemilatticeInf.toPartialOrder.{u2} (α i) (Lattice.toSemilatticeInf.{u2} (α i) (DistribLattice.toLattice.{u2} (α i) (instDistribLattice.{u2} (α i) (_inst_2 i)))))) (x i) (Function.update.{succ u1, succ u2} ι (fun (a : ι) => α a) (fun (a : ι) (b : ι) => _inst_1 a b) y i₀ m i))) (Set.pi.{u1, u2} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => Set.Ioc.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (SemilatticeInf.toPartialOrder.{u2} (α i) (Lattice.toSemilatticeInf.{u2} (α i) (DistribLattice.toLattice.{u2} (α i) (instDistribLattice.{u2} (α i) (_inst_2 i)))))) (Function.update.{succ u1, succ u2} ι (fun (a : ι) => α a) (fun (a : ι) (b : ι) => _inst_1 a b) x i₀ m i) (y i)))) (Set.pi.{u1, u2} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => Set.Ioc.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (SemilatticeInf.toPartialOrder.{u2} (α i) (Lattice.toSemilatticeInf.{u2} (α i) (DistribLattice.toLattice.{u2} (α i) (instDistribLattice.{u2} (α i) (_inst_2 i)))))) (x i) (y i))))
-Case conversion may be inaccurate. Consider using '#align set.pi_univ_Ioc_update_union Set.pi_univ_Ioc_update_unionₓ'. -/
 theorem pi_univ_Ioc_update_union (x y : ∀ i, α i) (i₀ : ι) (m : α i₀) (hm : m ∈ Icc (x i₀) (y i₀)) :
     ((pi univ fun i => Ioc (x i) (update y i₀ m i)) ∪
         pi univ fun i => Ioc (update x i₀ m i) (y i)) =
@@ -599,12 +359,6 @@ theorem pi_univ_Ioc_update_union (x y : ∀ i, α i) (i₀ : ι) (m : α i₀) (
     ← set_of_or, le_or_lt, set_of_true, univ_inter]
 #align set.pi_univ_Ioc_update_union Set.pi_univ_Ioc_update_union
 
-/- warning: set.Icc_diff_pi_univ_Ioo_subset -> Set.Icc_diff_pi_univ_Ioo_subset is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), LinearOrder.{u2} (α i)] (x : forall (i : ι), α i) (y : forall (i : ι), α i) (x' : forall (i : ι), α i) (y' : forall (i : ι), α i), HasSubset.Subset.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.hasSubset.{max u1 u2} (forall (i : ι), α i)) (SDiff.sdiff.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (BooleanAlgebra.toHasSdiff.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.booleanAlgebra.{max u1 u2} (forall (i : ι), α i))) (Set.Icc.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (SemilatticeInf.toPartialOrder.{u2} (α i) (Lattice.toSemilatticeInf.{u2} (α i) (LinearOrder.toLattice.{u2} (α i) (_inst_2 i)))))) x y) (Set.pi.{u1, u2} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => Set.Ioo.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (SemilatticeInf.toPartialOrder.{u2} (α i) (Lattice.toSemilatticeInf.{u2} (α i) (LinearOrder.toLattice.{u2} (α i) (_inst_2 i))))) (x' i) (y' i)))) (Union.union.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.hasUnion.{max u1 u2} (forall (i : ι), α i)) (Set.iUnion.{max u1 u2, succ u1} (forall (i : ι), α i) ι (fun (i : ι) => Set.Icc.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (SemilatticeInf.toPartialOrder.{u2} (α i) (Lattice.toSemilatticeInf.{u2} (α i) (LinearOrder.toLattice.{u2} (α i) (_inst_2 i)))))) x (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) y i (x' i)))) (Set.iUnion.{max u1 u2, succ u1} (forall (i : ι), α i) ι (fun (i : ι) => Set.Icc.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (SemilatticeInf.toPartialOrder.{u2} (α i) (Lattice.toSemilatticeInf.{u2} (α i) (LinearOrder.toLattice.{u2} (α i) (_inst_2 i)))))) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) x i (y' i)) y)))
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), LinearOrder.{u1} (α i)] (x : forall (i : ι), α i) (y : forall (i : ι), α i) (x' : forall (i : ι), α i) (y' : forall (i : ι), α i), HasSubset.Subset.{max u2 u1} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.instHasSubsetSet.{max u2 u1} (forall (i : ι), α i)) (SDiff.sdiff.{max u2 u1} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.instSDiffSet.{max u2 u1} (forall (i : ι), α i)) (Set.Icc.{max u2 u1} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (SemilatticeInf.toPartialOrder.{u1} (α i) (Lattice.toSemilatticeInf.{u1} (α i) (DistribLattice.toLattice.{u1} (α i) (instDistribLattice.{u1} (α i) (_inst_2 i))))))) x y) (Set.pi.{u2, u1} ι (fun (i : ι) => α i) (Set.univ.{u2} ι) (fun (i : ι) => Set.Ioo.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (SemilatticeInf.toPartialOrder.{u1} (α i) (Lattice.toSemilatticeInf.{u1} (α i) (DistribLattice.toLattice.{u1} (α i) (instDistribLattice.{u1} (α i) (_inst_2 i)))))) (x' i) (y' i)))) (Union.union.{max u2 u1} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.instUnionSet.{max u2 u1} (forall (i : ι), α i)) (Set.iUnion.{max u2 u1, succ u2} (forall (i : ι), α i) ι (fun (i : ι) => Set.Icc.{max u2 u1} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (SemilatticeInf.toPartialOrder.{u1} (α i) (Lattice.toSemilatticeInf.{u1} (α i) (DistribLattice.toLattice.{u1} (α i) (instDistribLattice.{u1} (α i) (_inst_2 i))))))) x (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) y i (x' i)))) (Set.iUnion.{max u2 u1, succ u2} (forall (i : ι), α i) ι (fun (i : ι) => Set.Icc.{max u2 u1} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (SemilatticeInf.toPartialOrder.{u1} (α i) (Lattice.toSemilatticeInf.{u1} (α i) (DistribLattice.toLattice.{u1} (α i) (instDistribLattice.{u1} (α i) (_inst_2 i))))))) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) x i (y' i)) y)))
-Case conversion may be inaccurate. Consider using '#align set.Icc_diff_pi_univ_Ioo_subset Set.Icc_diff_pi_univ_Ioo_subsetₓ'. -/
 /-- If `x`, `y`, `x'`, and `y'` are functions `Π i : ι, α i`, then
 the set difference between the box `[x, y]` and the product of the open intervals `(x' i, y' i)`
 is covered by the union of the following boxes: for each `i : ι`, we take
@@ -621,12 +375,6 @@ theorem Icc_diff_pi_univ_Ioo_subset (x y x' y' : ∀ i, α i) :
   simpa [le_update_iff, update_le_iff, hxa, hay, hxa _, hay _, ← exists_or, not_and_or] using ha'
 #align set.Icc_diff_pi_univ_Ioo_subset Set.Icc_diff_pi_univ_Ioo_subset
 
-/- warning: set.Icc_diff_pi_univ_Ioc_subset -> Set.Icc_diff_pi_univ_Ioc_subset is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), LinearOrder.{u2} (α i)] (x : forall (i : ι), α i) (y : forall (i : ι), α i) (z : forall (i : ι), α i), HasSubset.Subset.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.hasSubset.{max u1 u2} (forall (i : ι), α i)) (SDiff.sdiff.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (BooleanAlgebra.toHasSdiff.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.booleanAlgebra.{max u1 u2} (forall (i : ι), α i))) (Set.Icc.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (SemilatticeInf.toPartialOrder.{u2} (α i) (Lattice.toSemilatticeInf.{u2} (α i) (LinearOrder.toLattice.{u2} (α i) (_inst_2 i)))))) x z) (Set.pi.{u1, u2} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => Set.Ioc.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (SemilatticeInf.toPartialOrder.{u2} (α i) (Lattice.toSemilatticeInf.{u2} (α i) (LinearOrder.toLattice.{u2} (α i) (_inst_2 i))))) (y i) (z i)))) (Set.iUnion.{max u1 u2, succ u1} (forall (i : ι), α i) ι (fun (i : ι) => Set.Icc.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (SemilatticeInf.toPartialOrder.{u2} (α i) (Lattice.toSemilatticeInf.{u2} (α i) (LinearOrder.toLattice.{u2} (α i) (_inst_2 i)))))) x (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) z i (y i))))
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), LinearOrder.{u1} (α i)] (x : forall (i : ι), α i) (y : forall (i : ι), α i) (z : forall (i : ι), α i), HasSubset.Subset.{max u2 u1} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.instHasSubsetSet.{max u2 u1} (forall (i : ι), α i)) (SDiff.sdiff.{max u2 u1} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.instSDiffSet.{max u2 u1} (forall (i : ι), α i)) (Set.Icc.{max u2 u1} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (SemilatticeInf.toPartialOrder.{u1} (α i) (Lattice.toSemilatticeInf.{u1} (α i) (DistribLattice.toLattice.{u1} (α i) (instDistribLattice.{u1} (α i) (_inst_2 i))))))) x z) (Set.pi.{u2, u1} ι (fun (i : ι) => α i) (Set.univ.{u2} ι) (fun (i : ι) => Set.Ioc.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (SemilatticeInf.toPartialOrder.{u1} (α i) (Lattice.toSemilatticeInf.{u1} (α i) (DistribLattice.toLattice.{u1} (α i) (instDistribLattice.{u1} (α i) (_inst_2 i)))))) (y i) (z i)))) (Set.iUnion.{max u2 u1, succ u2} (forall (i : ι), α i) ι (fun (i : ι) => Set.Icc.{max u2 u1} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (SemilatticeInf.toPartialOrder.{u1} (α i) (Lattice.toSemilatticeInf.{u1} (α i) (DistribLattice.toLattice.{u1} (α i) (instDistribLattice.{u1} (α i) (_inst_2 i))))))) x (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) z i (y i))))
-Case conversion may be inaccurate. Consider using '#align set.Icc_diff_pi_univ_Ioc_subset Set.Icc_diff_pi_univ_Ioc_subsetₓ'. -/
 /-- If `x`, `y`, `z` are functions `Π i : ι, α i`, then
 the set difference between the box `[x, z]` and the product of the intervals `(y i, z i]`
 is covered by the union of the boxes `[x, update z i (y i)]`.
Diff
@@ -134,7 +134,7 @@ open Function (update)
 
 /- warning: set.pi_univ_Ioc_update_left -> Set.pi_univ_Ioc_update_left is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : forall (i : ι), Preorder.{u2} (α i)] [_inst_2 : DecidableEq.{succ u1} ι] {x : forall (i : ι), α i} {y : forall (i : ι), α i} {i₀ : ι} {m : α i₀}, (LE.le.{u2} (α i₀) (Preorder.toLE.{u2} (α i₀) (_inst_1 i₀)) (x i₀) m) -> (Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.pi.{u1, u2} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => Set.Ioc.{u2} (α i) (_inst_1 i) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) x i₀ m i) (y i))) (Inter.inter.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.hasInter.{max u1 u2} (forall (i : ι), α i)) (setOf.{max u1 u2} (forall (i : ι), α i) (fun (z : forall (i : ι), α i) => LT.lt.{u2} (α i₀) (Preorder.toLT.{u2} (α i₀) (_inst_1 i₀)) m (z i₀))) (Set.pi.{u1, u2} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => Set.Ioc.{u2} (α i) (_inst_1 i) (x i) (y i)))))
+  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : forall (i : ι), Preorder.{u2} (α i)] [_inst_2 : DecidableEq.{succ u1} ι] {x : forall (i : ι), α i} {y : forall (i : ι), α i} {i₀ : ι} {m : α i₀}, (LE.le.{u2} (α i₀) (Preorder.toHasLe.{u2} (α i₀) (_inst_1 i₀)) (x i₀) m) -> (Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.pi.{u1, u2} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => Set.Ioc.{u2} (α i) (_inst_1 i) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) x i₀ m i) (y i))) (Inter.inter.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.hasInter.{max u1 u2} (forall (i : ι), α i)) (setOf.{max u1 u2} (forall (i : ι), α i) (fun (z : forall (i : ι), α i) => LT.lt.{u2} (α i₀) (Preorder.toHasLt.{u2} (α i₀) (_inst_1 i₀)) m (z i₀))) (Set.pi.{u1, u2} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => Set.Ioc.{u2} (α i) (_inst_1 i) (x i) (y i)))))
 but is expected to have type
   forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : forall (i : ι), Preorder.{u2} (α i)] [_inst_2 : DecidableEq.{succ u1} ι] {x : forall (i : ι), α i} {y : forall (i : ι), α i} {i₀ : ι} {m : α i₀}, (LE.le.{u2} (α i₀) (Preorder.toLE.{u2} (α i₀) (_inst_1 i₀)) (x i₀) m) -> (Eq.{max (succ u1) (succ u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.pi.{u1, u2} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => Set.Ioc.{u2} (α i) (_inst_1 i) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) x i₀ m i) (y i))) (Inter.inter.{max u2 u1} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.instInterSet.{max u1 u2} (forall (i : ι), α i)) (setOf.{max u2 u1} (forall (i : ι), α i) (fun (z : forall (i : ι), α i) => LT.lt.{u2} (α i₀) (Preorder.toLT.{u2} (α i₀) (_inst_1 i₀)) m (z i₀))) (Set.pi.{u1, u2} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => Set.Ioc.{u2} (α i) (_inst_1 i) (x i) (y i)))))
 Case conversion may be inaccurate. Consider using '#align set.pi_univ_Ioc_update_left Set.pi_univ_Ioc_update_leftₓ'. -/
@@ -152,7 +152,7 @@ theorem pi_univ_Ioc_update_left {x y : ∀ i, α i} {i₀ : ι} {m : α i₀} (h
 
 /- warning: set.pi_univ_Ioc_update_right -> Set.pi_univ_Ioc_update_right is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : forall (i : ι), Preorder.{u2} (α i)] [_inst_2 : DecidableEq.{succ u1} ι] {x : forall (i : ι), α i} {y : forall (i : ι), α i} {i₀ : ι} {m : α i₀}, (LE.le.{u2} (α i₀) (Preorder.toLE.{u2} (α i₀) (_inst_1 i₀)) m (y i₀)) -> (Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.pi.{u1, u2} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => Set.Ioc.{u2} (α i) (_inst_1 i) (x i) (Function.update.{succ u1, succ u2} ι α (fun (a : ι) (b : ι) => _inst_2 a b) y i₀ m i))) (Inter.inter.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.hasInter.{max u1 u2} (forall (i : ι), α i)) (setOf.{max u1 u2} (forall (i : ι), α i) (fun (z : forall (i : ι), α i) => LE.le.{u2} (α i₀) (Preorder.toLE.{u2} (α i₀) (_inst_1 i₀)) (z i₀) m)) (Set.pi.{u1, u2} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => Set.Ioc.{u2} (α i) (_inst_1 i) (x i) (y i)))))
+  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : forall (i : ι), Preorder.{u2} (α i)] [_inst_2 : DecidableEq.{succ u1} ι] {x : forall (i : ι), α i} {y : forall (i : ι), α i} {i₀ : ι} {m : α i₀}, (LE.le.{u2} (α i₀) (Preorder.toHasLe.{u2} (α i₀) (_inst_1 i₀)) m (y i₀)) -> (Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.pi.{u1, u2} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => Set.Ioc.{u2} (α i) (_inst_1 i) (x i) (Function.update.{succ u1, succ u2} ι α (fun (a : ι) (b : ι) => _inst_2 a b) y i₀ m i))) (Inter.inter.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.hasInter.{max u1 u2} (forall (i : ι), α i)) (setOf.{max u1 u2} (forall (i : ι), α i) (fun (z : forall (i : ι), α i) => LE.le.{u2} (α i₀) (Preorder.toHasLe.{u2} (α i₀) (_inst_1 i₀)) (z i₀) m)) (Set.pi.{u1, u2} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => Set.Ioc.{u2} (α i) (_inst_1 i) (x i) (y i)))))
 but is expected to have type
   forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : forall (i : ι), Preorder.{u2} (α i)] [_inst_2 : DecidableEq.{succ u1} ι] {x : forall (i : ι), α i} {y : forall (i : ι), α i} {i₀ : ι} {m : α i₀}, (LE.le.{u2} (α i₀) (Preorder.toLE.{u2} (α i₀) (_inst_1 i₀)) m (y i₀)) -> (Eq.{max (succ u1) (succ u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.pi.{u1, u2} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => Set.Ioc.{u2} (α i) (_inst_1 i) (x i) (Function.update.{succ u1, succ u2} ι (fun (a : ι) => α a) (fun (a : ι) (b : ι) => _inst_2 a b) y i₀ m i))) (Inter.inter.{max u2 u1} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.instInterSet.{max u1 u2} (forall (i : ι), α i)) (setOf.{max u2 u1} (forall (i : ι), α i) (fun (z : forall (i : ι), α i) => LE.le.{u2} (α i₀) (Preorder.toLE.{u2} (α i₀) (_inst_1 i₀)) (z i₀) m)) (Set.pi.{u1, u2} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => Set.Ioc.{u2} (α i) (_inst_1 i) (x i) (y i)))))
 Case conversion may be inaccurate. Consider using '#align set.pi_univ_Ioc_update_right Set.pi_univ_Ioc_update_rightₓ'. -/
Diff
@@ -601,9 +601,9 @@ theorem pi_univ_Ioc_update_union (x y : ∀ i, α i) (i₀ : ι) (m : α i₀) (
 
 /- warning: set.Icc_diff_pi_univ_Ioo_subset -> Set.Icc_diff_pi_univ_Ioo_subset is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), LinearOrder.{u2} (α i)] (x : forall (i : ι), α i) (y : forall (i : ι), α i) (x' : forall (i : ι), α i) (y' : forall (i : ι), α i), HasSubset.Subset.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.hasSubset.{max u1 u2} (forall (i : ι), α i)) (SDiff.sdiff.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (BooleanAlgebra.toHasSdiff.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.booleanAlgebra.{max u1 u2} (forall (i : ι), α i))) (Set.Icc.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (SemilatticeInf.toPartialOrder.{u2} (α i) (Lattice.toSemilatticeInf.{u2} (α i) (LinearOrder.toLattice.{u2} (α i) (_inst_2 i)))))) x y) (Set.pi.{u1, u2} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => Set.Ioo.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (SemilatticeInf.toPartialOrder.{u2} (α i) (Lattice.toSemilatticeInf.{u2} (α i) (LinearOrder.toLattice.{u2} (α i) (_inst_2 i))))) (x' i) (y' i)))) (Union.union.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.hasUnion.{max u1 u2} (forall (i : ι), α i)) (Set.unionᵢ.{max u1 u2, succ u1} (forall (i : ι), α i) ι (fun (i : ι) => Set.Icc.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (SemilatticeInf.toPartialOrder.{u2} (α i) (Lattice.toSemilatticeInf.{u2} (α i) (LinearOrder.toLattice.{u2} (α i) (_inst_2 i)))))) x (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) y i (x' i)))) (Set.unionᵢ.{max u1 u2, succ u1} (forall (i : ι), α i) ι (fun (i : ι) => Set.Icc.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (SemilatticeInf.toPartialOrder.{u2} (α i) (Lattice.toSemilatticeInf.{u2} (α i) (LinearOrder.toLattice.{u2} (α i) (_inst_2 i)))))) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) x i (y' i)) y)))
+  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), LinearOrder.{u2} (α i)] (x : forall (i : ι), α i) (y : forall (i : ι), α i) (x' : forall (i : ι), α i) (y' : forall (i : ι), α i), HasSubset.Subset.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.hasSubset.{max u1 u2} (forall (i : ι), α i)) (SDiff.sdiff.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (BooleanAlgebra.toHasSdiff.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.booleanAlgebra.{max u1 u2} (forall (i : ι), α i))) (Set.Icc.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (SemilatticeInf.toPartialOrder.{u2} (α i) (Lattice.toSemilatticeInf.{u2} (α i) (LinearOrder.toLattice.{u2} (α i) (_inst_2 i)))))) x y) (Set.pi.{u1, u2} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => Set.Ioo.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (SemilatticeInf.toPartialOrder.{u2} (α i) (Lattice.toSemilatticeInf.{u2} (α i) (LinearOrder.toLattice.{u2} (α i) (_inst_2 i))))) (x' i) (y' i)))) (Union.union.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.hasUnion.{max u1 u2} (forall (i : ι), α i)) (Set.iUnion.{max u1 u2, succ u1} (forall (i : ι), α i) ι (fun (i : ι) => Set.Icc.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (SemilatticeInf.toPartialOrder.{u2} (α i) (Lattice.toSemilatticeInf.{u2} (α i) (LinearOrder.toLattice.{u2} (α i) (_inst_2 i)))))) x (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) y i (x' i)))) (Set.iUnion.{max u1 u2, succ u1} (forall (i : ι), α i) ι (fun (i : ι) => Set.Icc.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (SemilatticeInf.toPartialOrder.{u2} (α i) (Lattice.toSemilatticeInf.{u2} (α i) (LinearOrder.toLattice.{u2} (α i) (_inst_2 i)))))) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) x i (y' i)) y)))
 but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), LinearOrder.{u1} (α i)] (x : forall (i : ι), α i) (y : forall (i : ι), α i) (x' : forall (i : ι), α i) (y' : forall (i : ι), α i), HasSubset.Subset.{max u2 u1} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.instHasSubsetSet.{max u2 u1} (forall (i : ι), α i)) (SDiff.sdiff.{max u2 u1} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.instSDiffSet.{max u2 u1} (forall (i : ι), α i)) (Set.Icc.{max u2 u1} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (SemilatticeInf.toPartialOrder.{u1} (α i) (Lattice.toSemilatticeInf.{u1} (α i) (DistribLattice.toLattice.{u1} (α i) (instDistribLattice.{u1} (α i) (_inst_2 i))))))) x y) (Set.pi.{u2, u1} ι (fun (i : ι) => α i) (Set.univ.{u2} ι) (fun (i : ι) => Set.Ioo.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (SemilatticeInf.toPartialOrder.{u1} (α i) (Lattice.toSemilatticeInf.{u1} (α i) (DistribLattice.toLattice.{u1} (α i) (instDistribLattice.{u1} (α i) (_inst_2 i)))))) (x' i) (y' i)))) (Union.union.{max u2 u1} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.instUnionSet.{max u2 u1} (forall (i : ι), α i)) (Set.unionᵢ.{max u2 u1, succ u2} (forall (i : ι), α i) ι (fun (i : ι) => Set.Icc.{max u2 u1} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (SemilatticeInf.toPartialOrder.{u1} (α i) (Lattice.toSemilatticeInf.{u1} (α i) (DistribLattice.toLattice.{u1} (α i) (instDistribLattice.{u1} (α i) (_inst_2 i))))))) x (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) y i (x' i)))) (Set.unionᵢ.{max u2 u1, succ u2} (forall (i : ι), α i) ι (fun (i : ι) => Set.Icc.{max u2 u1} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (SemilatticeInf.toPartialOrder.{u1} (α i) (Lattice.toSemilatticeInf.{u1} (α i) (DistribLattice.toLattice.{u1} (α i) (instDistribLattice.{u1} (α i) (_inst_2 i))))))) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) x i (y' i)) y)))
+  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), LinearOrder.{u1} (α i)] (x : forall (i : ι), α i) (y : forall (i : ι), α i) (x' : forall (i : ι), α i) (y' : forall (i : ι), α i), HasSubset.Subset.{max u2 u1} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.instHasSubsetSet.{max u2 u1} (forall (i : ι), α i)) (SDiff.sdiff.{max u2 u1} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.instSDiffSet.{max u2 u1} (forall (i : ι), α i)) (Set.Icc.{max u2 u1} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (SemilatticeInf.toPartialOrder.{u1} (α i) (Lattice.toSemilatticeInf.{u1} (α i) (DistribLattice.toLattice.{u1} (α i) (instDistribLattice.{u1} (α i) (_inst_2 i))))))) x y) (Set.pi.{u2, u1} ι (fun (i : ι) => α i) (Set.univ.{u2} ι) (fun (i : ι) => Set.Ioo.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (SemilatticeInf.toPartialOrder.{u1} (α i) (Lattice.toSemilatticeInf.{u1} (α i) (DistribLattice.toLattice.{u1} (α i) (instDistribLattice.{u1} (α i) (_inst_2 i)))))) (x' i) (y' i)))) (Union.union.{max u2 u1} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.instUnionSet.{max u2 u1} (forall (i : ι), α i)) (Set.iUnion.{max u2 u1, succ u2} (forall (i : ι), α i) ι (fun (i : ι) => Set.Icc.{max u2 u1} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (SemilatticeInf.toPartialOrder.{u1} (α i) (Lattice.toSemilatticeInf.{u1} (α i) (DistribLattice.toLattice.{u1} (α i) (instDistribLattice.{u1} (α i) (_inst_2 i))))))) x (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) y i (x' i)))) (Set.iUnion.{max u2 u1, succ u2} (forall (i : ι), α i) ι (fun (i : ι) => Set.Icc.{max u2 u1} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (SemilatticeInf.toPartialOrder.{u1} (α i) (Lattice.toSemilatticeInf.{u1} (α i) (DistribLattice.toLattice.{u1} (α i) (instDistribLattice.{u1} (α i) (_inst_2 i))))))) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) x i (y' i)) y)))
 Case conversion may be inaccurate. Consider using '#align set.Icc_diff_pi_univ_Ioo_subset Set.Icc_diff_pi_univ_Ioo_subsetₓ'. -/
 /-- If `x`, `y`, `x'`, and `y'` are functions `Π i : ι, α i`, then
 the set difference between the box `[x, y]` and the product of the open intervals `(x' i, y' i)`
@@ -623,9 +623,9 @@ theorem Icc_diff_pi_univ_Ioo_subset (x y x' y' : ∀ i, α i) :
 
 /- warning: set.Icc_diff_pi_univ_Ioc_subset -> Set.Icc_diff_pi_univ_Ioc_subset is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), LinearOrder.{u2} (α i)] (x : forall (i : ι), α i) (y : forall (i : ι), α i) (z : forall (i : ι), α i), HasSubset.Subset.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.hasSubset.{max u1 u2} (forall (i : ι), α i)) (SDiff.sdiff.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (BooleanAlgebra.toHasSdiff.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.booleanAlgebra.{max u1 u2} (forall (i : ι), α i))) (Set.Icc.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (SemilatticeInf.toPartialOrder.{u2} (α i) (Lattice.toSemilatticeInf.{u2} (α i) (LinearOrder.toLattice.{u2} (α i) (_inst_2 i)))))) x z) (Set.pi.{u1, u2} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => Set.Ioc.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (SemilatticeInf.toPartialOrder.{u2} (α i) (Lattice.toSemilatticeInf.{u2} (α i) (LinearOrder.toLattice.{u2} (α i) (_inst_2 i))))) (y i) (z i)))) (Set.unionᵢ.{max u1 u2, succ u1} (forall (i : ι), α i) ι (fun (i : ι) => Set.Icc.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (SemilatticeInf.toPartialOrder.{u2} (α i) (Lattice.toSemilatticeInf.{u2} (α i) (LinearOrder.toLattice.{u2} (α i) (_inst_2 i)))))) x (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) z i (y i))))
+  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), LinearOrder.{u2} (α i)] (x : forall (i : ι), α i) (y : forall (i : ι), α i) (z : forall (i : ι), α i), HasSubset.Subset.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.hasSubset.{max u1 u2} (forall (i : ι), α i)) (SDiff.sdiff.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (BooleanAlgebra.toHasSdiff.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.booleanAlgebra.{max u1 u2} (forall (i : ι), α i))) (Set.Icc.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (SemilatticeInf.toPartialOrder.{u2} (α i) (Lattice.toSemilatticeInf.{u2} (α i) (LinearOrder.toLattice.{u2} (α i) (_inst_2 i)))))) x z) (Set.pi.{u1, u2} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => Set.Ioc.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (SemilatticeInf.toPartialOrder.{u2} (α i) (Lattice.toSemilatticeInf.{u2} (α i) (LinearOrder.toLattice.{u2} (α i) (_inst_2 i))))) (y i) (z i)))) (Set.iUnion.{max u1 u2, succ u1} (forall (i : ι), α i) ι (fun (i : ι) => Set.Icc.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (SemilatticeInf.toPartialOrder.{u2} (α i) (Lattice.toSemilatticeInf.{u2} (α i) (LinearOrder.toLattice.{u2} (α i) (_inst_2 i)))))) x (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) z i (y i))))
 but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), LinearOrder.{u1} (α i)] (x : forall (i : ι), α i) (y : forall (i : ι), α i) (z : forall (i : ι), α i), HasSubset.Subset.{max u2 u1} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.instHasSubsetSet.{max u2 u1} (forall (i : ι), α i)) (SDiff.sdiff.{max u2 u1} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.instSDiffSet.{max u2 u1} (forall (i : ι), α i)) (Set.Icc.{max u2 u1} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (SemilatticeInf.toPartialOrder.{u1} (α i) (Lattice.toSemilatticeInf.{u1} (α i) (DistribLattice.toLattice.{u1} (α i) (instDistribLattice.{u1} (α i) (_inst_2 i))))))) x z) (Set.pi.{u2, u1} ι (fun (i : ι) => α i) (Set.univ.{u2} ι) (fun (i : ι) => Set.Ioc.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (SemilatticeInf.toPartialOrder.{u1} (α i) (Lattice.toSemilatticeInf.{u1} (α i) (DistribLattice.toLattice.{u1} (α i) (instDistribLattice.{u1} (α i) (_inst_2 i)))))) (y i) (z i)))) (Set.unionᵢ.{max u2 u1, succ u2} (forall (i : ι), α i) ι (fun (i : ι) => Set.Icc.{max u2 u1} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (SemilatticeInf.toPartialOrder.{u1} (α i) (Lattice.toSemilatticeInf.{u1} (α i) (DistribLattice.toLattice.{u1} (α i) (instDistribLattice.{u1} (α i) (_inst_2 i))))))) x (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) z i (y i))))
+  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), LinearOrder.{u1} (α i)] (x : forall (i : ι), α i) (y : forall (i : ι), α i) (z : forall (i : ι), α i), HasSubset.Subset.{max u2 u1} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.instHasSubsetSet.{max u2 u1} (forall (i : ι), α i)) (SDiff.sdiff.{max u2 u1} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.instSDiffSet.{max u2 u1} (forall (i : ι), α i)) (Set.Icc.{max u2 u1} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (SemilatticeInf.toPartialOrder.{u1} (α i) (Lattice.toSemilatticeInf.{u1} (α i) (DistribLattice.toLattice.{u1} (α i) (instDistribLattice.{u1} (α i) (_inst_2 i))))))) x z) (Set.pi.{u2, u1} ι (fun (i : ι) => α i) (Set.univ.{u2} ι) (fun (i : ι) => Set.Ioc.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (SemilatticeInf.toPartialOrder.{u1} (α i) (Lattice.toSemilatticeInf.{u1} (α i) (DistribLattice.toLattice.{u1} (α i) (instDistribLattice.{u1} (α i) (_inst_2 i)))))) (y i) (z i)))) (Set.iUnion.{max u2 u1, succ u2} (forall (i : ι), α i) ι (fun (i : ι) => Set.Icc.{max u2 u1} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (SemilatticeInf.toPartialOrder.{u1} (α i) (Lattice.toSemilatticeInf.{u1} (α i) (DistribLattice.toLattice.{u1} (α i) (instDistribLattice.{u1} (α i) (_inst_2 i))))))) x (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) z i (y i))))
 Case conversion may be inaccurate. Consider using '#align set.Icc_diff_pi_univ_Ioc_subset Set.Icc_diff_pi_univ_Ioc_subsetₓ'. -/
 /-- If `x`, `y`, `z` are functions `Π i : ι, α i`, then
 the set difference between the box `[x, z]` and the product of the intervals `(y i, z i]`
Diff
@@ -190,6 +190,12 @@ section PiPartialOrder
 
 variable [DecidableEq ι] [∀ i, PartialOrder (α i)]
 
+/- warning: set.image_update_Icc -> Set.image_update_Icc is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] (f : forall (i : ι), α i) (i : ι) (a : α i) (b : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (a : ι), α a)) (Set.image.{u2, max u1 u2} (α i) (forall (a : ι), α a) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Icc.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) a b)) (Set.Icc.{max u1 u2} (forall (a : ι), α a) (Pi.preorder.{u1, u2} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i a) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i b))
+but is expected to have type
+  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] (f : forall (i : ι), α i) (i : ι) (a : α i) (b : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (a : ι), α a)) (Set.image.{u1, max u2 u1} (α i) (forall (a : ι), α a) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Icc.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) a b)) (Set.Icc.{max u2 u1} (forall (a : ι), α a) (Pi.preorder.{u2, u1} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i a) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i b))
+Case conversion may be inaccurate. Consider using '#align set.image_update_Icc Set.image_update_Iccₓ'. -/
 theorem image_update_Icc (f : ∀ i, α i) (i : ι) (a b : α i) :
     f.update i '' Icc a b = Icc (f.update i a) (f.update i b) :=
   by
@@ -205,58 +211,130 @@ theorem image_update_Icc (f : ∀ i, α i) (i : ι) (a b : α i) :
     · simpa only [Function.update_noteq hij.symm, le_antisymm_iff] using h j (mem_univ j)
 #align set.image_update_Icc Set.image_update_Icc
 
+/- warning: set.image_update_Ico -> Set.image_update_Ico is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] (f : forall (i : ι), α i) (i : ι) (a : α i) (b : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (a : ι), α a)) (Set.image.{u2, max u1 u2} (α i) (forall (a : ι), α a) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Ico.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) a b)) (Set.Ico.{max u1 u2} (forall (a : ι), α a) (Pi.preorder.{u1, u2} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i a) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i b))
+but is expected to have type
+  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] (f : forall (i : ι), α i) (i : ι) (a : α i) (b : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (a : ι), α a)) (Set.image.{u1, max u2 u1} (α i) (forall (a : ι), α a) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Ico.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) a b)) (Set.Ico.{max u2 u1} (forall (a : ι), α a) (Pi.preorder.{u2, u1} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i a) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i b))
+Case conversion may be inaccurate. Consider using '#align set.image_update_Ico Set.image_update_Icoₓ'. -/
 theorem image_update_Ico (f : ∀ i, α i) (i : ι) (a b : α i) :
     f.update i '' Ico a b = Ico (f.update i a) (f.update i b) := by
   rw [← Icc_diff_right, ← Icc_diff_right, image_diff (f.update_injective _), image_singleton,
     image_update_Icc]
 #align set.image_update_Ico Set.image_update_Ico
 
+/- warning: set.image_update_Ioc -> Set.image_update_Ioc is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] (f : forall (i : ι), α i) (i : ι) (a : α i) (b : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (a : ι), α a)) (Set.image.{u2, max u1 u2} (α i) (forall (a : ι), α a) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Ioc.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) a b)) (Set.Ioc.{max u1 u2} (forall (a : ι), α a) (Pi.preorder.{u1, u2} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i a) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i b))
+but is expected to have type
+  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] (f : forall (i : ι), α i) (i : ι) (a : α i) (b : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (a : ι), α a)) (Set.image.{u1, max u2 u1} (α i) (forall (a : ι), α a) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Ioc.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) a b)) (Set.Ioc.{max u2 u1} (forall (a : ι), α a) (Pi.preorder.{u2, u1} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i a) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i b))
+Case conversion may be inaccurate. Consider using '#align set.image_update_Ioc Set.image_update_Iocₓ'. -/
 theorem image_update_Ioc (f : ∀ i, α i) (i : ι) (a b : α i) :
     f.update i '' Ioc a b = Ioc (f.update i a) (f.update i b) := by
   rw [← Icc_diff_left, ← Icc_diff_left, image_diff (f.update_injective _), image_singleton,
     image_update_Icc]
 #align set.image_update_Ioc Set.image_update_Ioc
 
+/- warning: set.image_update_Ioo -> Set.image_update_Ioo is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] (f : forall (i : ι), α i) (i : ι) (a : α i) (b : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (a : ι), α a)) (Set.image.{u2, max u1 u2} (α i) (forall (a : ι), α a) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Ioo.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) a b)) (Set.Ioo.{max u1 u2} (forall (a : ι), α a) (Pi.preorder.{u1, u2} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i a) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i b))
+but is expected to have type
+  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] (f : forall (i : ι), α i) (i : ι) (a : α i) (b : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (a : ι), α a)) (Set.image.{u1, max u2 u1} (α i) (forall (a : ι), α a) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Ioo.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) a b)) (Set.Ioo.{max u2 u1} (forall (a : ι), α a) (Pi.preorder.{u2, u1} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i a) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i b))
+Case conversion may be inaccurate. Consider using '#align set.image_update_Ioo Set.image_update_Iooₓ'. -/
 theorem image_update_Ioo (f : ∀ i, α i) (i : ι) (a b : α i) :
     f.update i '' Ioo a b = Ioo (f.update i a) (f.update i b) := by
   rw [← Ico_diff_left, ← Ico_diff_left, image_diff (f.update_injective _), image_singleton,
     image_update_Ico]
 #align set.image_update_Ioo Set.image_update_Ioo
 
+/- warning: set.image_update_Icc_left -> Set.image_update_Icc_left is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] (f : forall (i : ι), α i) (i : ι) (a : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (a : ι), α a)) (Set.image.{u2, max u1 u2} (α i) (forall (a : ι), α a) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Icc.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) a (f i))) (Set.Icc.{max u1 u2} (forall (a : ι), α a) (Pi.preorder.{u1, u2} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i a) f)
+but is expected to have type
+  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] (f : forall (i : ι), α i) (i : ι) (a : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (a : ι), α a)) (Set.image.{u1, max u2 u1} (α i) (forall (a : ι), α a) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Icc.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) a (f i))) (Set.Icc.{max u2 u1} (forall (a : ι), α a) (Pi.preorder.{u2, u1} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i a) f)
+Case conversion may be inaccurate. Consider using '#align set.image_update_Icc_left Set.image_update_Icc_leftₓ'. -/
 theorem image_update_Icc_left (f : ∀ i, α i) (i : ι) (a : α i) :
     f.update i '' Icc a (f i) = Icc (f.update i a) f := by simpa using image_update_Icc f i a (f i)
 #align set.image_update_Icc_left Set.image_update_Icc_left
 
+/- warning: set.image_update_Ico_left -> Set.image_update_Ico_left is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] (f : forall (i : ι), α i) (i : ι) (a : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (a : ι), α a)) (Set.image.{u2, max u1 u2} (α i) (forall (a : ι), α a) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Ico.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) a (f i))) (Set.Ico.{max u1 u2} (forall (a : ι), α a) (Pi.preorder.{u1, u2} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i a) f)
+but is expected to have type
+  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] (f : forall (i : ι), α i) (i : ι) (a : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (a : ι), α a)) (Set.image.{u1, max u2 u1} (α i) (forall (a : ι), α a) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Ico.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) a (f i))) (Set.Ico.{max u2 u1} (forall (a : ι), α a) (Pi.preorder.{u2, u1} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i a) f)
+Case conversion may be inaccurate. Consider using '#align set.image_update_Ico_left Set.image_update_Ico_leftₓ'. -/
 theorem image_update_Ico_left (f : ∀ i, α i) (i : ι) (a : α i) :
     f.update i '' Ico a (f i) = Ico (f.update i a) f := by simpa using image_update_Ico f i a (f i)
 #align set.image_update_Ico_left Set.image_update_Ico_left
 
+/- warning: set.image_update_Ioc_left -> Set.image_update_Ioc_left is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] (f : forall (i : ι), α i) (i : ι) (a : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (a : ι), α a)) (Set.image.{u2, max u1 u2} (α i) (forall (a : ι), α a) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Ioc.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) a (f i))) (Set.Ioc.{max u1 u2} (forall (a : ι), α a) (Pi.preorder.{u1, u2} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i a) f)
+but is expected to have type
+  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] (f : forall (i : ι), α i) (i : ι) (a : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (a : ι), α a)) (Set.image.{u1, max u2 u1} (α i) (forall (a : ι), α a) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Ioc.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) a (f i))) (Set.Ioc.{max u2 u1} (forall (a : ι), α a) (Pi.preorder.{u2, u1} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i a) f)
+Case conversion may be inaccurate. Consider using '#align set.image_update_Ioc_left Set.image_update_Ioc_leftₓ'. -/
 theorem image_update_Ioc_left (f : ∀ i, α i) (i : ι) (a : α i) :
     f.update i '' Ioc a (f i) = Ioc (f.update i a) f := by simpa using image_update_Ioc f i a (f i)
 #align set.image_update_Ioc_left Set.image_update_Ioc_left
 
+/- warning: set.image_update_Ioo_left -> Set.image_update_Ioo_left is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] (f : forall (i : ι), α i) (i : ι) (a : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (a : ι), α a)) (Set.image.{u2, max u1 u2} (α i) (forall (a : ι), α a) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Ioo.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) a (f i))) (Set.Ioo.{max u1 u2} (forall (a : ι), α a) (Pi.preorder.{u1, u2} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i a) f)
+but is expected to have type
+  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] (f : forall (i : ι), α i) (i : ι) (a : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (a : ι), α a)) (Set.image.{u1, max u2 u1} (α i) (forall (a : ι), α a) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Ioo.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) a (f i))) (Set.Ioo.{max u2 u1} (forall (a : ι), α a) (Pi.preorder.{u2, u1} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i a) f)
+Case conversion may be inaccurate. Consider using '#align set.image_update_Ioo_left Set.image_update_Ioo_leftₓ'. -/
 theorem image_update_Ioo_left (f : ∀ i, α i) (i : ι) (a : α i) :
     f.update i '' Ioo a (f i) = Ioo (f.update i a) f := by simpa using image_update_Ioo f i a (f i)
 #align set.image_update_Ioo_left Set.image_update_Ioo_left
 
+/- warning: set.image_update_Icc_right -> Set.image_update_Icc_right is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] (f : forall (i : ι), α i) (i : ι) (b : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (a : ι), α a)) (Set.image.{u2, max u1 u2} (α i) (forall (a : ι), α a) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Icc.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) (f i) b)) (Set.Icc.{max u1 u2} (forall (a : ι), α a) (Pi.preorder.{u1, u2} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) f (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i b))
+but is expected to have type
+  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] (f : forall (i : ι), α i) (i : ι) (b : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (a : ι), α a)) (Set.image.{u1, max u2 u1} (α i) (forall (a : ι), α a) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Icc.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) (f i) b)) (Set.Icc.{max u2 u1} (forall (a : ι), α a) (Pi.preorder.{u2, u1} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) f (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i b))
+Case conversion may be inaccurate. Consider using '#align set.image_update_Icc_right Set.image_update_Icc_rightₓ'. -/
 theorem image_update_Icc_right (f : ∀ i, α i) (i : ι) (b : α i) :
     f.update i '' Icc (f i) b = Icc f (f.update i b) := by simpa using image_update_Icc f i (f i) b
 #align set.image_update_Icc_right Set.image_update_Icc_right
 
+/- warning: set.image_update_Ico_right -> Set.image_update_Ico_right is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] (f : forall (i : ι), α i) (i : ι) (b : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (a : ι), α a)) (Set.image.{u2, max u1 u2} (α i) (forall (a : ι), α a) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Ico.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) (f i) b)) (Set.Ico.{max u1 u2} (forall (a : ι), α a) (Pi.preorder.{u1, u2} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) f (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i b))
+but is expected to have type
+  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] (f : forall (i : ι), α i) (i : ι) (b : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (a : ι), α a)) (Set.image.{u1, max u2 u1} (α i) (forall (a : ι), α a) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Ico.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) (f i) b)) (Set.Ico.{max u2 u1} (forall (a : ι), α a) (Pi.preorder.{u2, u1} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) f (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i b))
+Case conversion may be inaccurate. Consider using '#align set.image_update_Ico_right Set.image_update_Ico_rightₓ'. -/
 theorem image_update_Ico_right (f : ∀ i, α i) (i : ι) (b : α i) :
     f.update i '' Ico (f i) b = Ico f (f.update i b) := by simpa using image_update_Ico f i (f i) b
 #align set.image_update_Ico_right Set.image_update_Ico_right
 
+/- warning: set.image_update_Ioc_right -> Set.image_update_Ioc_right is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] (f : forall (i : ι), α i) (i : ι) (b : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (a : ι), α a)) (Set.image.{u2, max u1 u2} (α i) (forall (a : ι), α a) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Ioc.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) (f i) b)) (Set.Ioc.{max u1 u2} (forall (a : ι), α a) (Pi.preorder.{u1, u2} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) f (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i b))
+but is expected to have type
+  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] (f : forall (i : ι), α i) (i : ι) (b : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (a : ι), α a)) (Set.image.{u1, max u2 u1} (α i) (forall (a : ι), α a) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Ioc.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) (f i) b)) (Set.Ioc.{max u2 u1} (forall (a : ι), α a) (Pi.preorder.{u2, u1} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) f (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i b))
+Case conversion may be inaccurate. Consider using '#align set.image_update_Ioc_right Set.image_update_Ioc_rightₓ'. -/
 theorem image_update_Ioc_right (f : ∀ i, α i) (i : ι) (b : α i) :
     f.update i '' Ioc (f i) b = Ioc f (f.update i b) := by simpa using image_update_Ioc f i (f i) b
 #align set.image_update_Ioc_right Set.image_update_Ioc_right
 
+/- warning: set.image_update_Ioo_right -> Set.image_update_Ioo_right is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] (f : forall (i : ι), α i) (i : ι) (b : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (a : ι), α a)) (Set.image.{u2, max u1 u2} (α i) (forall (a : ι), α a) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Ioo.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) (f i) b)) (Set.Ioo.{max u1 u2} (forall (a : ι), α a) (Pi.preorder.{u1, u2} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) f (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i b))
+but is expected to have type
+  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] (f : forall (i : ι), α i) (i : ι) (b : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (a : ι), α a)) (Set.image.{u1, max u2 u1} (α i) (forall (a : ι), α a) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i) (Set.Ioo.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) (f i) b)) (Set.Ioo.{max u2 u1} (forall (a : ι), α a) (Pi.preorder.{u2, u1} ι (fun (a : ι) => α a) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) f (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) f i b))
+Case conversion may be inaccurate. Consider using '#align set.image_update_Ioo_right Set.image_update_Ioo_rightₓ'. -/
 theorem image_update_Ioo_right (f : ∀ i, α i) (i : ι) (b : α i) :
     f.update i '' Ioo (f i) b = Ioo f (f.update i b) := by simpa using image_update_Ioo f i (f i) b
 #align set.image_update_Ioo_right Set.image_update_Ioo_right
 
 variable [∀ i, One (α i)]
 
+/- warning: set.image_mul_single_Icc -> Set.image_mulSingle_Icc is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] [_inst_3 : forall (i : ι), One.{u2} (α i)] (i : ι) (a : α i) (b : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.image.{u2, max u1 u2} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Icc.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) a b)) (Set.Icc.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i a) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i b))
+but is expected to have type
+  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] [_inst_3 : forall (i : ι), One.{u1} (α i)] (i : ι) (a : α i) (b : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.image.{u1, max u2 u1} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Icc.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) a b)) (Set.Icc.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i a) (Pi.mulSingle.{u2, u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i b))
+Case conversion may be inaccurate. Consider using '#align set.image_mul_single_Icc Set.image_mulSingle_Iccₓ'. -/
 @[to_additive]
 theorem image_mulSingle_Icc (i : ι) (a b : α i) :
     Pi.mulSingle i '' Icc a b = Icc (Pi.mulSingle i a) (Pi.mulSingle i b) :=
@@ -264,6 +342,12 @@ theorem image_mulSingle_Icc (i : ι) (a b : α i) :
 #align set.image_mul_single_Icc Set.image_mulSingle_Icc
 #align set.image_single_Icc Set.image_single_Icc
 
+/- warning: set.image_mul_single_Ico -> Set.image_mulSingle_Ico is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] [_inst_3 : forall (i : ι), One.{u2} (α i)] (i : ι) (a : α i) (b : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.image.{u2, max u1 u2} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Ico.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) a b)) (Set.Ico.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i a) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i b))
+but is expected to have type
+  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] [_inst_3 : forall (i : ι), One.{u1} (α i)] (i : ι) (a : α i) (b : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.image.{u1, max u2 u1} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Ico.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) a b)) (Set.Ico.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i a) (Pi.mulSingle.{u2, u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i b))
+Case conversion may be inaccurate. Consider using '#align set.image_mul_single_Ico Set.image_mulSingle_Icoₓ'. -/
 @[to_additive]
 theorem image_mulSingle_Ico (i : ι) (a b : α i) :
     Pi.mulSingle i '' Ico a b = Ico (Pi.mulSingle i a) (Pi.mulSingle i b) :=
@@ -271,6 +355,12 @@ theorem image_mulSingle_Ico (i : ι) (a b : α i) :
 #align set.image_mul_single_Ico Set.image_mulSingle_Ico
 #align set.image_single_Ico Set.image_single_Ico
 
+/- warning: set.image_mul_single_Ioc -> Set.image_mulSingle_Ioc is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] [_inst_3 : forall (i : ι), One.{u2} (α i)] (i : ι) (a : α i) (b : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.image.{u2, max u1 u2} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Ioc.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) a b)) (Set.Ioc.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i a) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i b))
+but is expected to have type
+  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] [_inst_3 : forall (i : ι), One.{u1} (α i)] (i : ι) (a : α i) (b : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.image.{u1, max u2 u1} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Ioc.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) a b)) (Set.Ioc.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i a) (Pi.mulSingle.{u2, u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i b))
+Case conversion may be inaccurate. Consider using '#align set.image_mul_single_Ioc Set.image_mulSingle_Iocₓ'. -/
 @[to_additive]
 theorem image_mulSingle_Ioc (i : ι) (a b : α i) :
     Pi.mulSingle i '' Ioc a b = Ioc (Pi.mulSingle i a) (Pi.mulSingle i b) :=
@@ -278,6 +368,12 @@ theorem image_mulSingle_Ioc (i : ι) (a b : α i) :
 #align set.image_mul_single_Ioc Set.image_mulSingle_Ioc
 #align set.image_single_Ioc Set.image_single_Ioc
 
+/- warning: set.image_mul_single_Ioo -> Set.image_mulSingle_Ioo is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] [_inst_3 : forall (i : ι), One.{u2} (α i)] (i : ι) (a : α i) (b : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.image.{u2, max u1 u2} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Ioo.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) a b)) (Set.Ioo.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i a) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i b))
+but is expected to have type
+  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] [_inst_3 : forall (i : ι), One.{u1} (α i)] (i : ι) (a : α i) (b : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.image.{u1, max u2 u1} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Ioo.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) a b)) (Set.Ioo.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i a) (Pi.mulSingle.{u2, u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i b))
+Case conversion may be inaccurate. Consider using '#align set.image_mul_single_Ioo Set.image_mulSingle_Iooₓ'. -/
 @[to_additive]
 theorem image_mulSingle_Ioo (i : ι) (a b : α i) :
     Pi.mulSingle i '' Ioo a b = Ioo (Pi.mulSingle i a) (Pi.mulSingle i b) :=
@@ -285,6 +381,12 @@ theorem image_mulSingle_Ioo (i : ι) (a b : α i) :
 #align set.image_mul_single_Ioo Set.image_mulSingle_Ioo
 #align set.image_single_Ioo Set.image_single_Ioo
 
+/- warning: set.image_mul_single_Icc_left -> Set.image_mulSingle_Icc_left is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] [_inst_3 : forall (i : ι), One.{u2} (α i)] (i : ι) (a : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.image.{u2, max u1 u2} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Icc.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) a (OfNat.ofNat.{u2} (α i) 1 (OfNat.mk.{u2} (α i) 1 (One.one.{u2} (α i) (_inst_3 i)))))) (Set.Icc.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i a) (OfNat.ofNat.{max u1 u2} (forall (i : ι), α i) 1 (OfNat.mk.{max u1 u2} (forall (i : ι), α i) 1 (One.one.{max u1 u2} (forall (i : ι), α i) (Pi.instOne.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_3 i))))))
+but is expected to have type
+  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] [_inst_3 : forall (i : ι), One.{u1} (α i)] (i : ι) (a : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.image.{u1, max u2 u1} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Icc.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) a (OfNat.ofNat.{u1} (α i) 1 (One.toOfNat1.{u1} (α i) (_inst_3 i))))) (Set.Icc.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i a) (OfNat.ofNat.{max u2 u1} (forall (i : ι), α i) 1 (One.toOfNat1.{max u2 u1} (forall (j : ι), α j) (Pi.instOne.{u2, u1} ι (fun (j : ι) => α j) (fun (i : ι) => _inst_3 i)))))
+Case conversion may be inaccurate. Consider using '#align set.image_mul_single_Icc_left Set.image_mulSingle_Icc_leftₓ'. -/
 @[to_additive]
 theorem image_mulSingle_Icc_left (i : ι) (a : α i) :
     Pi.mulSingle i '' Icc a 1 = Icc (Pi.mulSingle i a) 1 :=
@@ -292,6 +394,12 @@ theorem image_mulSingle_Icc_left (i : ι) (a : α i) :
 #align set.image_mul_single_Icc_left Set.image_mulSingle_Icc_left
 #align set.image_single_Icc_left Set.image_single_Icc_left
 
+/- warning: set.image_mul_single_Ico_left -> Set.image_mulSingle_Ico_left is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] [_inst_3 : forall (i : ι), One.{u2} (α i)] (i : ι) (a : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.image.{u2, max u1 u2} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Ico.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) a (OfNat.ofNat.{u2} (α i) 1 (OfNat.mk.{u2} (α i) 1 (One.one.{u2} (α i) (_inst_3 i)))))) (Set.Ico.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i a) (OfNat.ofNat.{max u1 u2} (forall (i : ι), α i) 1 (OfNat.mk.{max u1 u2} (forall (i : ι), α i) 1 (One.one.{max u1 u2} (forall (i : ι), α i) (Pi.instOne.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_3 i))))))
+but is expected to have type
+  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] [_inst_3 : forall (i : ι), One.{u1} (α i)] (i : ι) (a : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.image.{u1, max u2 u1} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Ico.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) a (OfNat.ofNat.{u1} (α i) 1 (One.toOfNat1.{u1} (α i) (_inst_3 i))))) (Set.Ico.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i a) (OfNat.ofNat.{max u2 u1} (forall (i : ι), α i) 1 (One.toOfNat1.{max u2 u1} (forall (j : ι), α j) (Pi.instOne.{u2, u1} ι (fun (j : ι) => α j) (fun (i : ι) => _inst_3 i)))))
+Case conversion may be inaccurate. Consider using '#align set.image_mul_single_Ico_left Set.image_mulSingle_Ico_leftₓ'. -/
 @[to_additive]
 theorem image_mulSingle_Ico_left (i : ι) (a : α i) :
     Pi.mulSingle i '' Ico a 1 = Ico (Pi.mulSingle i a) 1 :=
@@ -299,6 +407,12 @@ theorem image_mulSingle_Ico_left (i : ι) (a : α i) :
 #align set.image_mul_single_Ico_left Set.image_mulSingle_Ico_left
 #align set.image_single_Ico_left Set.image_single_Ico_left
 
+/- warning: set.image_mul_single_Ioc_left -> Set.image_mulSingle_Ioc_left is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] [_inst_3 : forall (i : ι), One.{u2} (α i)] (i : ι) (a : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.image.{u2, max u1 u2} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Ioc.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) a (OfNat.ofNat.{u2} (α i) 1 (OfNat.mk.{u2} (α i) 1 (One.one.{u2} (α i) (_inst_3 i)))))) (Set.Ioc.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i a) (OfNat.ofNat.{max u1 u2} (forall (i : ι), α i) 1 (OfNat.mk.{max u1 u2} (forall (i : ι), α i) 1 (One.one.{max u1 u2} (forall (i : ι), α i) (Pi.instOne.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_3 i))))))
+but is expected to have type
+  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] [_inst_3 : forall (i : ι), One.{u1} (α i)] (i : ι) (a : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.image.{u1, max u2 u1} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Ioc.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) a (OfNat.ofNat.{u1} (α i) 1 (One.toOfNat1.{u1} (α i) (_inst_3 i))))) (Set.Ioc.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i a) (OfNat.ofNat.{max u2 u1} (forall (i : ι), α i) 1 (One.toOfNat1.{max u2 u1} (forall (j : ι), α j) (Pi.instOne.{u2, u1} ι (fun (j : ι) => α j) (fun (i : ι) => _inst_3 i)))))
+Case conversion may be inaccurate. Consider using '#align set.image_mul_single_Ioc_left Set.image_mulSingle_Ioc_leftₓ'. -/
 @[to_additive]
 theorem image_mulSingle_Ioc_left (i : ι) (a : α i) :
     Pi.mulSingle i '' Ioc a 1 = Ioc (Pi.mulSingle i a) 1 :=
@@ -306,6 +420,12 @@ theorem image_mulSingle_Ioc_left (i : ι) (a : α i) :
 #align set.image_mul_single_Ioc_left Set.image_mulSingle_Ioc_left
 #align set.image_single_Ioc_left Set.image_single_Ioc_left
 
+/- warning: set.image_mul_single_Ioo_left -> Set.image_mulSingle_Ioo_left is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] [_inst_3 : forall (i : ι), One.{u2} (α i)] (i : ι) (a : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.image.{u2, max u1 u2} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Ioo.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) a (OfNat.ofNat.{u2} (α i) 1 (OfNat.mk.{u2} (α i) 1 (One.one.{u2} (α i) (_inst_3 i)))))) (Set.Ioo.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i a) (OfNat.ofNat.{max u1 u2} (forall (i : ι), α i) 1 (OfNat.mk.{max u1 u2} (forall (i : ι), α i) 1 (One.one.{max u1 u2} (forall (i : ι), α i) (Pi.instOne.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_3 i))))))
+but is expected to have type
+  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] [_inst_3 : forall (i : ι), One.{u1} (α i)] (i : ι) (a : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.image.{u1, max u2 u1} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Ioo.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) a (OfNat.ofNat.{u1} (α i) 1 (One.toOfNat1.{u1} (α i) (_inst_3 i))))) (Set.Ioo.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i a) (OfNat.ofNat.{max u2 u1} (forall (i : ι), α i) 1 (One.toOfNat1.{max u2 u1} (forall (j : ι), α j) (Pi.instOne.{u2, u1} ι (fun (j : ι) => α j) (fun (i : ι) => _inst_3 i)))))
+Case conversion may be inaccurate. Consider using '#align set.image_mul_single_Ioo_left Set.image_mulSingle_Ioo_leftₓ'. -/
 @[to_additive]
 theorem image_mulSingle_Ioo_left (i : ι) (a : α i) :
     Pi.mulSingle i '' Ioo a 1 = Ioo (Pi.mulSingle i a) 1 :=
@@ -313,6 +433,12 @@ theorem image_mulSingle_Ioo_left (i : ι) (a : α i) :
 #align set.image_mul_single_Ioo_left Set.image_mulSingle_Ioo_left
 #align set.image_single_Ioo_left Set.image_single_Ioo_left
 
+/- warning: set.image_mul_single_Icc_right -> Set.image_mulSingle_Icc_right is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] [_inst_3 : forall (i : ι), One.{u2} (α i)] (i : ι) (b : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.image.{u2, max u1 u2} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Icc.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) (OfNat.ofNat.{u2} (α i) 1 (OfNat.mk.{u2} (α i) 1 (One.one.{u2} (α i) (_inst_3 i)))) b)) (Set.Icc.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) (OfNat.ofNat.{max u1 u2} (forall (i : ι), α i) 1 (OfNat.mk.{max u1 u2} (forall (i : ι), α i) 1 (One.one.{max u1 u2} (forall (i : ι), α i) (Pi.instOne.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_3 i))))) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i b))
+but is expected to have type
+  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] [_inst_3 : forall (i : ι), One.{u1} (α i)] (i : ι) (b : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.image.{u1, max u2 u1} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Icc.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) (OfNat.ofNat.{u1} (α i) 1 (One.toOfNat1.{u1} (α i) (_inst_3 i))) b)) (Set.Icc.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) (OfNat.ofNat.{max u1 u2} (forall (i : ι), α i) 1 (One.toOfNat1.{max u2 u1} (forall (j : ι), α j) (Pi.instOne.{u2, u1} ι (fun (j : ι) => α j) (fun (i : ι) => _inst_3 i)))) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i b))
+Case conversion may be inaccurate. Consider using '#align set.image_mul_single_Icc_right Set.image_mulSingle_Icc_rightₓ'. -/
 @[to_additive]
 theorem image_mulSingle_Icc_right (i : ι) (b : α i) :
     Pi.mulSingle i '' Icc 1 b = Icc 1 (Pi.mulSingle i b) :=
@@ -320,6 +446,12 @@ theorem image_mulSingle_Icc_right (i : ι) (b : α i) :
 #align set.image_mul_single_Icc_right Set.image_mulSingle_Icc_right
 #align set.image_single_Icc_right Set.image_single_Icc_right
 
+/- warning: set.image_mul_single_Ico_right -> Set.image_mulSingle_Ico_right is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] [_inst_3 : forall (i : ι), One.{u2} (α i)] (i : ι) (b : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.image.{u2, max u1 u2} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Ico.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) (OfNat.ofNat.{u2} (α i) 1 (OfNat.mk.{u2} (α i) 1 (One.one.{u2} (α i) (_inst_3 i)))) b)) (Set.Ico.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) (OfNat.ofNat.{max u1 u2} (forall (i : ι), α i) 1 (OfNat.mk.{max u1 u2} (forall (i : ι), α i) 1 (One.one.{max u1 u2} (forall (i : ι), α i) (Pi.instOne.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_3 i))))) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i b))
+but is expected to have type
+  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] [_inst_3 : forall (i : ι), One.{u1} (α i)] (i : ι) (b : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.image.{u1, max u2 u1} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Ico.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) (OfNat.ofNat.{u1} (α i) 1 (One.toOfNat1.{u1} (α i) (_inst_3 i))) b)) (Set.Ico.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) (OfNat.ofNat.{max u1 u2} (forall (i : ι), α i) 1 (One.toOfNat1.{max u2 u1} (forall (j : ι), α j) (Pi.instOne.{u2, u1} ι (fun (j : ι) => α j) (fun (i : ι) => _inst_3 i)))) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i b))
+Case conversion may be inaccurate. Consider using '#align set.image_mul_single_Ico_right Set.image_mulSingle_Ico_rightₓ'. -/
 @[to_additive]
 theorem image_mulSingle_Ico_right (i : ι) (b : α i) :
     Pi.mulSingle i '' Ico 1 b = Ico 1 (Pi.mulSingle i b) :=
@@ -327,6 +459,12 @@ theorem image_mulSingle_Ico_right (i : ι) (b : α i) :
 #align set.image_mul_single_Ico_right Set.image_mulSingle_Ico_right
 #align set.image_single_Ico_right Set.image_single_Ico_right
 
+/- warning: set.image_mul_single_Ioc_right -> Set.image_mulSingle_Ioc_right is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] [_inst_3 : forall (i : ι), One.{u2} (α i)] (i : ι) (b : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.image.{u2, max u1 u2} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Ioc.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) (OfNat.ofNat.{u2} (α i) 1 (OfNat.mk.{u2} (α i) 1 (One.one.{u2} (α i) (_inst_3 i)))) b)) (Set.Ioc.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) (OfNat.ofNat.{max u1 u2} (forall (i : ι), α i) 1 (OfNat.mk.{max u1 u2} (forall (i : ι), α i) 1 (One.one.{max u1 u2} (forall (i : ι), α i) (Pi.instOne.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_3 i))))) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i b))
+but is expected to have type
+  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] [_inst_3 : forall (i : ι), One.{u1} (α i)] (i : ι) (b : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.image.{u1, max u2 u1} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Ioc.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) (OfNat.ofNat.{u1} (α i) 1 (One.toOfNat1.{u1} (α i) (_inst_3 i))) b)) (Set.Ioc.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) (OfNat.ofNat.{max u1 u2} (forall (i : ι), α i) 1 (One.toOfNat1.{max u2 u1} (forall (j : ι), α j) (Pi.instOne.{u2, u1} ι (fun (j : ι) => α j) (fun (i : ι) => _inst_3 i)))) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i b))
+Case conversion may be inaccurate. Consider using '#align set.image_mul_single_Ioc_right Set.image_mulSingle_Ioc_rightₓ'. -/
 @[to_additive]
 theorem image_mulSingle_Ioc_right (i : ι) (b : α i) :
     Pi.mulSingle i '' Ioc 1 b = Ioc 1 (Pi.mulSingle i b) :=
@@ -334,6 +472,12 @@ theorem image_mulSingle_Ioc_right (i : ι) (b : α i) :
 #align set.image_mul_single_Ioc_right Set.image_mulSingle_Ioc_right
 #align set.image_single_Ioc_right Set.image_single_Ioc_right
 
+/- warning: set.image_mul_single_Ioo_right -> Set.image_mulSingle_Ioo_right is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), PartialOrder.{u2} (α i)] [_inst_3 : forall (i : ι), One.{u2} (α i)] (i : ι) (b : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.image.{u2, max u1 u2} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Ioo.{u2} (α i) (PartialOrder.toPreorder.{u2} (α i) (_inst_2 i)) (OfNat.ofNat.{u2} (α i) 1 (OfNat.mk.{u2} (α i) 1 (One.one.{u2} (α i) (_inst_3 i)))) b)) (Set.Ioo.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u2} (α i) (_inst_2 i))) (OfNat.ofNat.{max u1 u2} (forall (i : ι), α i) 1 (OfNat.mk.{max u1 u2} (forall (i : ι), α i) 1 (One.one.{max u1 u2} (forall (i : ι), α i) (Pi.instOne.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_3 i))))) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i b))
+but is expected to have type
+  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : forall (i : ι), PartialOrder.{u1} (α i)] [_inst_3 : forall (i : ι), One.{u1} (α i)] (i : ι) (b : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.image.{u1, max u2 u1} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i) (Set.Ioo.{u1} (α i) (PartialOrder.toPreorder.{u1} (α i) (_inst_2 i)) (OfNat.ofNat.{u1} (α i) 1 (One.toOfNat1.{u1} (α i) (_inst_3 i))) b)) (Set.Ioo.{max u1 u2} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => PartialOrder.toPreorder.{u1} (α i) (_inst_2 i))) (OfNat.ofNat.{max u1 u2} (forall (i : ι), α i) 1 (One.toOfNat1.{max u2 u1} (forall (j : ι), α j) (Pi.instOne.{u2, u1} ι (fun (j : ι) => α j) (fun (i : ι) => _inst_3 i)))) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) i b))
+Case conversion may be inaccurate. Consider using '#align set.image_mul_single_Ioo_right Set.image_mulSingle_Ioo_rightₓ'. -/
 @[to_additive]
 theorem image_mulSingle_Ioo_right (i : ι) (b : α i) :
     Pi.mulSingle i '' Ioo 1 b = Ioo 1 (Pi.mulSingle i b) :=
@@ -360,16 +504,34 @@ theorem pi_univ_uIcc (a b : ∀ i, α i) : (pi univ fun i => uIcc (a i) (b i)) =
 
 variable [DecidableEq ι]
 
+/- warning: set.image_update_uIcc -> Set.image_update_uIcc is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : forall (i : ι), Lattice.{u2} (α i)] [_inst_2 : DecidableEq.{succ u1} ι] (f : forall (i : ι), α i) (i : ι) (a : α i) (b : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (a : ι), α a)) (Set.image.{u2, max u1 u2} (α i) (forall (a : ι), α a) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) f i) (Set.uIcc.{u2} (α i) (_inst_1 i) a b)) (Set.uIcc.{max u1 u2} (forall (a : ι), α a) (Pi.lattice.{u1, u2} ι (fun (a : ι) => α a) (fun (i : ι) => _inst_1 i)) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) f i a) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) f i b))
+but is expected to have type
+  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : forall (i : ι), Lattice.{u1} (α i)] [_inst_2 : DecidableEq.{succ u2} ι] (f : forall (i : ι), α i) (i : ι) (a : α i) (b : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (a : ι), α a)) (Set.image.{u1, max u2 u1} (α i) (forall (a : ι), α a) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) f i) (Set.uIcc.{u1} (α i) (_inst_1 i) a b)) (Set.uIcc.{max u2 u1} (forall (a : ι), α a) (Pi.lattice.{u2, u1} ι (fun (a : ι) => α a) (fun (i : ι) => _inst_1 i)) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) f i a) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) f i b))
+Case conversion may be inaccurate. Consider using '#align set.image_update_uIcc Set.image_update_uIccₓ'. -/
 theorem image_update_uIcc (f : ∀ i, α i) (i : ι) (a b : α i) :
     f.update i '' uIcc a b = uIcc (f.update i a) (f.update i b) :=
   (image_update_Icc _ _ _ _).trans <| by simp_rw [uIcc, f.update_sup, f.update_inf]
 #align set.image_update_uIcc Set.image_update_uIcc
 
+/- warning: set.image_update_uIcc_left -> Set.image_update_uIcc_left is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : forall (i : ι), Lattice.{u2} (α i)] [_inst_2 : DecidableEq.{succ u1} ι] (f : forall (i : ι), α i) (i : ι) (a : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (a : ι), α a)) (Set.image.{u2, max u1 u2} (α i) (forall (a : ι), α a) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) f i) (Set.uIcc.{u2} (α i) (_inst_1 i) a (f i))) (Set.uIcc.{max u1 u2} (forall (a : ι), α a) (Pi.lattice.{u1, u2} ι (fun (a : ι) => α a) (fun (i : ι) => _inst_1 i)) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) f i a) f)
+but is expected to have type
+  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : forall (i : ι), Lattice.{u1} (α i)] [_inst_2 : DecidableEq.{succ u2} ι] (f : forall (i : ι), α i) (i : ι) (a : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (a : ι), α a)) (Set.image.{u1, max u2 u1} (α i) (forall (a : ι), α a) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) f i) (Set.uIcc.{u1} (α i) (_inst_1 i) a (f i))) (Set.uIcc.{max u2 u1} (forall (a : ι), α a) (Pi.lattice.{u2, u1} ι (fun (a : ι) => α a) (fun (i : ι) => _inst_1 i)) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) f i a) f)
+Case conversion may be inaccurate. Consider using '#align set.image_update_uIcc_left Set.image_update_uIcc_leftₓ'. -/
 theorem image_update_uIcc_left (f : ∀ i, α i) (i : ι) (a : α i) :
     f.update i '' uIcc a (f i) = uIcc (f.update i a) f := by
   simpa using image_update_uIcc f i a (f i)
 #align set.image_update_uIcc_left Set.image_update_uIcc_left
 
+/- warning: set.image_update_uIcc_right -> Set.image_update_uIcc_right is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : forall (i : ι), Lattice.{u2} (α i)] [_inst_2 : DecidableEq.{succ u1} ι] (f : forall (i : ι), α i) (i : ι) (b : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (a : ι), α a)) (Set.image.{u2, max u1 u2} (α i) (forall (a : ι), α a) (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) f i) (Set.uIcc.{u2} (α i) (_inst_1 i) (f i) b)) (Set.uIcc.{max u1 u2} (forall (a : ι), α a) (Pi.lattice.{u1, u2} ι (fun (a : ι) => α a) (fun (i : ι) => _inst_1 i)) f (Function.update.{succ u1, succ u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) f i b))
+but is expected to have type
+  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : forall (i : ι), Lattice.{u1} (α i)] [_inst_2 : DecidableEq.{succ u2} ι] (f : forall (i : ι), α i) (i : ι) (b : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (a : ι), α a)) (Set.image.{u1, max u2 u1} (α i) (forall (a : ι), α a) (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) f i) (Set.uIcc.{u1} (α i) (_inst_1 i) (f i) b)) (Set.uIcc.{max u2 u1} (forall (a : ι), α a) (Pi.lattice.{u2, u1} ι (fun (a : ι) => α a) (fun (i : ι) => _inst_1 i)) f (Function.update.{succ u2, succ u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) f i b))
+Case conversion may be inaccurate. Consider using '#align set.image_update_uIcc_right Set.image_update_uIcc_rightₓ'. -/
 theorem image_update_uIcc_right (f : ∀ i, α i) (i : ι) (b : α i) :
     f.update i '' uIcc (f i) b = uIcc f (f.update i b) := by
   simpa using image_update_uIcc f i (f i) b
@@ -377,6 +539,12 @@ theorem image_update_uIcc_right (f : ∀ i, α i) (i : ι) (b : α i) :
 
 variable [∀ i, One (α i)]
 
+/- warning: set.image_mul_single_uIcc -> Set.image_mulSingle_uIcc is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : forall (i : ι), Lattice.{u2} (α i)] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : forall (i : ι), One.{u2} (α i)] (i : ι) (a : α i) (b : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.image.{u2, max u1 u2} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => _inst_3 i) i) (Set.uIcc.{u2} (α i) (_inst_1 i) a b)) (Set.uIcc.{max u1 u2} (forall (i : ι), α i) (Pi.lattice.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_1 i)) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => _inst_3 i) i a) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => _inst_3 i) i b))
+but is expected to have type
+  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : forall (i : ι), Lattice.{u1} (α i)] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : forall (i : ι), One.{u1} (α i)] (i : ι) (a : α i) (b : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.image.{u1, max u2 u1} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => _inst_3 i) i) (Set.uIcc.{u1} (α i) (_inst_1 i) a b)) (Set.uIcc.{max u1 u2} (forall (i : ι), α i) (Pi.lattice.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_1 i)) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => _inst_3 i) i a) (Pi.mulSingle.{u2, u1} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => _inst_3 i) i b))
+Case conversion may be inaccurate. Consider using '#align set.image_mul_single_uIcc Set.image_mulSingle_uIccₓ'. -/
 @[to_additive]
 theorem image_mulSingle_uIcc (i : ι) (a b : α i) :
     Pi.mulSingle i '' uIcc a b = uIcc (Pi.mulSingle i a) (Pi.mulSingle i b) :=
@@ -384,6 +552,12 @@ theorem image_mulSingle_uIcc (i : ι) (a b : α i) :
 #align set.image_mul_single_uIcc Set.image_mulSingle_uIcc
 #align set.image_single_uIcc Set.image_single_uIcc
 
+/- warning: set.image_mul_single_uIcc_left -> Set.image_mulSingle_uIcc_left is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : forall (i : ι), Lattice.{u2} (α i)] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : forall (i : ι), One.{u2} (α i)] (i : ι) (a : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.image.{u2, max u1 u2} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => _inst_3 i) i) (Set.uIcc.{u2} (α i) (_inst_1 i) a (OfNat.ofNat.{u2} (α i) 1 (OfNat.mk.{u2} (α i) 1 (One.one.{u2} (α i) (_inst_3 i)))))) (Set.uIcc.{max u1 u2} (forall (i : ι), α i) (Pi.lattice.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_1 i)) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => _inst_3 i) i a) (OfNat.ofNat.{max u1 u2} (forall (i : ι), α i) 1 (OfNat.mk.{max u1 u2} (forall (i : ι), α i) 1 (One.one.{max u1 u2} (forall (i : ι), α i) (Pi.instOne.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_3 i))))))
+but is expected to have type
+  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : forall (i : ι), Lattice.{u1} (α i)] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : forall (i : ι), One.{u1} (α i)] (i : ι) (a : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.image.{u1, max u2 u1} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => _inst_3 i) i) (Set.uIcc.{u1} (α i) (_inst_1 i) a (OfNat.ofNat.{u1} (α i) 1 (One.toOfNat1.{u1} (α i) (_inst_3 i))))) (Set.uIcc.{max u1 u2} (forall (i : ι), α i) (Pi.lattice.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_1 i)) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => _inst_3 i) i a) (OfNat.ofNat.{max u2 u1} (forall (i : ι), α i) 1 (One.toOfNat1.{max u2 u1} (forall (j : ι), α j) (Pi.instOne.{u2, u1} ι (fun (j : ι) => α j) (fun (i : ι) => _inst_3 i)))))
+Case conversion may be inaccurate. Consider using '#align set.image_mul_single_uIcc_left Set.image_mulSingle_uIcc_leftₓ'. -/
 @[to_additive]
 theorem image_mulSingle_uIcc_left (i : ι) (a : α i) :
     Pi.mulSingle i '' uIcc a 1 = uIcc (Pi.mulSingle i a) 1 :=
@@ -391,6 +565,12 @@ theorem image_mulSingle_uIcc_left (i : ι) (a : α i) :
 #align set.image_mul_single_uIcc_left Set.image_mulSingle_uIcc_left
 #align set.image_single_uIcc_left Set.image_single_uIcc_left
 
+/- warning: set.image_mul_single_uIcc_right -> Set.image_mulSingle_uIcc_right is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : forall (i : ι), Lattice.{u2} (α i)] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : forall (i : ι), One.{u2} (α i)] (i : ι) (b : α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.image.{u2, max u1 u2} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => _inst_3 i) i) (Set.uIcc.{u2} (α i) (_inst_1 i) (OfNat.ofNat.{u2} (α i) 1 (OfNat.mk.{u2} (α i) 1 (One.one.{u2} (α i) (_inst_3 i)))) b)) (Set.uIcc.{max u1 u2} (forall (i : ι), α i) (Pi.lattice.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_1 i)) (OfNat.ofNat.{max u1 u2} (forall (i : ι), α i) 1 (OfNat.mk.{max u1 u2} (forall (i : ι), α i) 1 (One.one.{max u1 u2} (forall (i : ι), α i) (Pi.instOne.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_3 i))))) (Pi.mulSingle.{u1, u2} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => _inst_3 i) i b))
+but is expected to have type
+  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : forall (i : ι), Lattice.{u1} (α i)] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : forall (i : ι), One.{u1} (α i)] (i : ι) (b : α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.image.{u1, max u2 u1} (α i) (forall (i : ι), α i) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => _inst_3 i) i) (Set.uIcc.{u1} (α i) (_inst_1 i) (OfNat.ofNat.{u1} (α i) 1 (One.toOfNat1.{u1} (α i) (_inst_3 i))) b)) (Set.uIcc.{max u1 u2} (forall (i : ι), α i) (Pi.lattice.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_1 i)) (OfNat.ofNat.{max u1 u2} (forall (i : ι), α i) 1 (One.toOfNat1.{max u2 u1} (forall (j : ι), α j) (Pi.instOne.{u2, u1} ι (fun (j : ι) => α j) (fun (i : ι) => _inst_3 i)))) (Pi.mulSingle.{u2, u1} ι α (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => _inst_3 i) i b))
+Case conversion may be inaccurate. Consider using '#align set.image_mul_single_uIcc_right Set.image_mulSingle_uIcc_rightₓ'. -/
 @[to_additive]
 theorem image_mulSingle_uIcc_right (i : ι) (b : α i) :
     Pi.mulSingle i '' uIcc 1 b = uIcc 1 (Pi.mulSingle i b) :=
Diff
@@ -4,10 +4,11 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov
 
 ! This file was ported from Lean 3 source module data.set.intervals.pi
-! leanprover-community/mathlib commit 4020ddee5b4580a409bfda7d2f42726ce86ae674
+! leanprover-community/mathlib commit e4bc74cbaf429d706cb9140902f7ca6c431e75a4
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
+import Mathbin.Data.Pi.Algebra
 import Mathbin.Data.Set.Intervals.Basic
 import Mathbin.Data.Set.Intervals.UnorderedInterval
 import Mathbin.Data.Set.Lattice
@@ -185,6 +186,163 @@ theorem disjoint_pi_univ_Ioc_update_left_right {x y : ∀ i, α i} {i₀ : ι} {
 
 end PiPreorder
 
+section PiPartialOrder
+
+variable [DecidableEq ι] [∀ i, PartialOrder (α i)]
+
+theorem image_update_Icc (f : ∀ i, α i) (i : ι) (a b : α i) :
+    f.update i '' Icc a b = Icc (f.update i a) (f.update i b) :=
+  by
+  ext
+  rw [← Set.pi_univ_Icc]
+  refine' ⟨_, fun h => ⟨x i, _, _⟩⟩
+  · rintro ⟨c, hc, rfl⟩
+    simpa [update_le_update_iff]
+  · simpa only [Function.update_same] using h i (mem_univ i)
+  · ext j
+    obtain rfl | hij := eq_or_ne i j
+    · exact Function.update_same _ _ _
+    · simpa only [Function.update_noteq hij.symm, le_antisymm_iff] using h j (mem_univ j)
+#align set.image_update_Icc Set.image_update_Icc
+
+theorem image_update_Ico (f : ∀ i, α i) (i : ι) (a b : α i) :
+    f.update i '' Ico a b = Ico (f.update i a) (f.update i b) := by
+  rw [← Icc_diff_right, ← Icc_diff_right, image_diff (f.update_injective _), image_singleton,
+    image_update_Icc]
+#align set.image_update_Ico Set.image_update_Ico
+
+theorem image_update_Ioc (f : ∀ i, α i) (i : ι) (a b : α i) :
+    f.update i '' Ioc a b = Ioc (f.update i a) (f.update i b) := by
+  rw [← Icc_diff_left, ← Icc_diff_left, image_diff (f.update_injective _), image_singleton,
+    image_update_Icc]
+#align set.image_update_Ioc Set.image_update_Ioc
+
+theorem image_update_Ioo (f : ∀ i, α i) (i : ι) (a b : α i) :
+    f.update i '' Ioo a b = Ioo (f.update i a) (f.update i b) := by
+  rw [← Ico_diff_left, ← Ico_diff_left, image_diff (f.update_injective _), image_singleton,
+    image_update_Ico]
+#align set.image_update_Ioo Set.image_update_Ioo
+
+theorem image_update_Icc_left (f : ∀ i, α i) (i : ι) (a : α i) :
+    f.update i '' Icc a (f i) = Icc (f.update i a) f := by simpa using image_update_Icc f i a (f i)
+#align set.image_update_Icc_left Set.image_update_Icc_left
+
+theorem image_update_Ico_left (f : ∀ i, α i) (i : ι) (a : α i) :
+    f.update i '' Ico a (f i) = Ico (f.update i a) f := by simpa using image_update_Ico f i a (f i)
+#align set.image_update_Ico_left Set.image_update_Ico_left
+
+theorem image_update_Ioc_left (f : ∀ i, α i) (i : ι) (a : α i) :
+    f.update i '' Ioc a (f i) = Ioc (f.update i a) f := by simpa using image_update_Ioc f i a (f i)
+#align set.image_update_Ioc_left Set.image_update_Ioc_left
+
+theorem image_update_Ioo_left (f : ∀ i, α i) (i : ι) (a : α i) :
+    f.update i '' Ioo a (f i) = Ioo (f.update i a) f := by simpa using image_update_Ioo f i a (f i)
+#align set.image_update_Ioo_left Set.image_update_Ioo_left
+
+theorem image_update_Icc_right (f : ∀ i, α i) (i : ι) (b : α i) :
+    f.update i '' Icc (f i) b = Icc f (f.update i b) := by simpa using image_update_Icc f i (f i) b
+#align set.image_update_Icc_right Set.image_update_Icc_right
+
+theorem image_update_Ico_right (f : ∀ i, α i) (i : ι) (b : α i) :
+    f.update i '' Ico (f i) b = Ico f (f.update i b) := by simpa using image_update_Ico f i (f i) b
+#align set.image_update_Ico_right Set.image_update_Ico_right
+
+theorem image_update_Ioc_right (f : ∀ i, α i) (i : ι) (b : α i) :
+    f.update i '' Ioc (f i) b = Ioc f (f.update i b) := by simpa using image_update_Ioc f i (f i) b
+#align set.image_update_Ioc_right Set.image_update_Ioc_right
+
+theorem image_update_Ioo_right (f : ∀ i, α i) (i : ι) (b : α i) :
+    f.update i '' Ioo (f i) b = Ioo f (f.update i b) := by simpa using image_update_Ioo f i (f i) b
+#align set.image_update_Ioo_right Set.image_update_Ioo_right
+
+variable [∀ i, One (α i)]
+
+@[to_additive]
+theorem image_mulSingle_Icc (i : ι) (a b : α i) :
+    Pi.mulSingle i '' Icc a b = Icc (Pi.mulSingle i a) (Pi.mulSingle i b) :=
+  image_update_Icc _ _ _ _
+#align set.image_mul_single_Icc Set.image_mulSingle_Icc
+#align set.image_single_Icc Set.image_single_Icc
+
+@[to_additive]
+theorem image_mulSingle_Ico (i : ι) (a b : α i) :
+    Pi.mulSingle i '' Ico a b = Ico (Pi.mulSingle i a) (Pi.mulSingle i b) :=
+  image_update_Ico _ _ _ _
+#align set.image_mul_single_Ico Set.image_mulSingle_Ico
+#align set.image_single_Ico Set.image_single_Ico
+
+@[to_additive]
+theorem image_mulSingle_Ioc (i : ι) (a b : α i) :
+    Pi.mulSingle i '' Ioc a b = Ioc (Pi.mulSingle i a) (Pi.mulSingle i b) :=
+  image_update_Ioc _ _ _ _
+#align set.image_mul_single_Ioc Set.image_mulSingle_Ioc
+#align set.image_single_Ioc Set.image_single_Ioc
+
+@[to_additive]
+theorem image_mulSingle_Ioo (i : ι) (a b : α i) :
+    Pi.mulSingle i '' Ioo a b = Ioo (Pi.mulSingle i a) (Pi.mulSingle i b) :=
+  image_update_Ioo _ _ _ _
+#align set.image_mul_single_Ioo Set.image_mulSingle_Ioo
+#align set.image_single_Ioo Set.image_single_Ioo
+
+@[to_additive]
+theorem image_mulSingle_Icc_left (i : ι) (a : α i) :
+    Pi.mulSingle i '' Icc a 1 = Icc (Pi.mulSingle i a) 1 :=
+  image_update_Icc_left _ _ _
+#align set.image_mul_single_Icc_left Set.image_mulSingle_Icc_left
+#align set.image_single_Icc_left Set.image_single_Icc_left
+
+@[to_additive]
+theorem image_mulSingle_Ico_left (i : ι) (a : α i) :
+    Pi.mulSingle i '' Ico a 1 = Ico (Pi.mulSingle i a) 1 :=
+  image_update_Ico_left _ _ _
+#align set.image_mul_single_Ico_left Set.image_mulSingle_Ico_left
+#align set.image_single_Ico_left Set.image_single_Ico_left
+
+@[to_additive]
+theorem image_mulSingle_Ioc_left (i : ι) (a : α i) :
+    Pi.mulSingle i '' Ioc a 1 = Ioc (Pi.mulSingle i a) 1 :=
+  image_update_Ioc_left _ _ _
+#align set.image_mul_single_Ioc_left Set.image_mulSingle_Ioc_left
+#align set.image_single_Ioc_left Set.image_single_Ioc_left
+
+@[to_additive]
+theorem image_mulSingle_Ioo_left (i : ι) (a : α i) :
+    Pi.mulSingle i '' Ioo a 1 = Ioo (Pi.mulSingle i a) 1 :=
+  image_update_Ioo_left _ _ _
+#align set.image_mul_single_Ioo_left Set.image_mulSingle_Ioo_left
+#align set.image_single_Ioo_left Set.image_single_Ioo_left
+
+@[to_additive]
+theorem image_mulSingle_Icc_right (i : ι) (b : α i) :
+    Pi.mulSingle i '' Icc 1 b = Icc 1 (Pi.mulSingle i b) :=
+  image_update_Icc_right _ _ _
+#align set.image_mul_single_Icc_right Set.image_mulSingle_Icc_right
+#align set.image_single_Icc_right Set.image_single_Icc_right
+
+@[to_additive]
+theorem image_mulSingle_Ico_right (i : ι) (b : α i) :
+    Pi.mulSingle i '' Ico 1 b = Ico 1 (Pi.mulSingle i b) :=
+  image_update_Ico_right _ _ _
+#align set.image_mul_single_Ico_right Set.image_mulSingle_Ico_right
+#align set.image_single_Ico_right Set.image_single_Ico_right
+
+@[to_additive]
+theorem image_mulSingle_Ioc_right (i : ι) (b : α i) :
+    Pi.mulSingle i '' Ioc 1 b = Ioc 1 (Pi.mulSingle i b) :=
+  image_update_Ioc_right _ _ _
+#align set.image_mul_single_Ioc_right Set.image_mulSingle_Ioc_right
+#align set.image_single_Ioc_right Set.image_single_Ioc_right
+
+@[to_additive]
+theorem image_mulSingle_Ioo_right (i : ι) (b : α i) :
+    Pi.mulSingle i '' Ioo 1 b = Ioo 1 (Pi.mulSingle i b) :=
+  image_update_Ioo_right _ _ _
+#align set.image_mul_single_Ioo_right Set.image_mulSingle_Ioo_right
+#align set.image_single_Ioo_right Set.image_single_Ioo_right
+
+end PiPartialOrder
+
 section PiLattice
 
 variable [∀ i, Lattice (α i)]
@@ -200,6 +358,46 @@ theorem pi_univ_uIcc (a b : ∀ i, α i) : (pi univ fun i => uIcc (a i) (b i)) =
   pi_univ_Icc _ _
 #align set.pi_univ_uIcc Set.pi_univ_uIcc
 
+variable [DecidableEq ι]
+
+theorem image_update_uIcc (f : ∀ i, α i) (i : ι) (a b : α i) :
+    f.update i '' uIcc a b = uIcc (f.update i a) (f.update i b) :=
+  (image_update_Icc _ _ _ _).trans <| by simp_rw [uIcc, f.update_sup, f.update_inf]
+#align set.image_update_uIcc Set.image_update_uIcc
+
+theorem image_update_uIcc_left (f : ∀ i, α i) (i : ι) (a : α i) :
+    f.update i '' uIcc a (f i) = uIcc (f.update i a) f := by
+  simpa using image_update_uIcc f i a (f i)
+#align set.image_update_uIcc_left Set.image_update_uIcc_left
+
+theorem image_update_uIcc_right (f : ∀ i, α i) (i : ι) (b : α i) :
+    f.update i '' uIcc (f i) b = uIcc f (f.update i b) := by
+  simpa using image_update_uIcc f i (f i) b
+#align set.image_update_uIcc_right Set.image_update_uIcc_right
+
+variable [∀ i, One (α i)]
+
+@[to_additive]
+theorem image_mulSingle_uIcc (i : ι) (a b : α i) :
+    Pi.mulSingle i '' uIcc a b = uIcc (Pi.mulSingle i a) (Pi.mulSingle i b) :=
+  image_update_uIcc _ _ _ _
+#align set.image_mul_single_uIcc Set.image_mulSingle_uIcc
+#align set.image_single_uIcc Set.image_single_uIcc
+
+@[to_additive]
+theorem image_mulSingle_uIcc_left (i : ι) (a : α i) :
+    Pi.mulSingle i '' uIcc a 1 = uIcc (Pi.mulSingle i a) 1 :=
+  image_update_uIcc_left _ _ _
+#align set.image_mul_single_uIcc_left Set.image_mulSingle_uIcc_left
+#align set.image_single_uIcc_left Set.image_single_uIcc_left
+
+@[to_additive]
+theorem image_mulSingle_uIcc_right (i : ι) (b : α i) :
+    Pi.mulSingle i '' uIcc 1 b = uIcc 1 (Pi.mulSingle i b) :=
+  image_update_uIcc_right _ _ _
+#align set.image_mul_single_uIcc_right Set.image_mulSingle_uIcc_right
+#align set.image_single_uIcc_right Set.image_single_uIcc_right
+
 end PiLattice
 
 variable [DecidableEq ι] [∀ i, LinearOrder (α i)]
Diff
@@ -189,6 +189,12 @@ section PiLattice
 
 variable [∀ i, Lattice (α i)]
 
+/- warning: set.pi_univ_uIcc -> Set.pi_univ_uIcc is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {α : ι -> Type.{u2}} [_inst_1 : forall (i : ι), Lattice.{u2} (α i)] (a : forall (i : ι), α i) (b : forall (i : ι), α i), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (i : ι), α i)) (Set.pi.{u1, u2} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => Set.uIcc.{u2} (α i) (_inst_1 i) (a i) (b i))) (Set.uIcc.{max u1 u2} (forall (i : ι), α i) (Pi.lattice.{u1, u2} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_1 i)) a b)
+but is expected to have type
+  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : forall (i : ι), Lattice.{u1} (α i)] (a : forall (i : ι), α i) (b : forall (i : ι), α i), Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (i : ι), α i)) (Set.pi.{u2, u1} ι (fun (i : ι) => α i) (Set.univ.{u2} ι) (fun (i : ι) => Set.uIcc.{u1} (α i) (_inst_1 i) (a i) (b i))) (Set.uIcc.{max u2 u1} (forall (i : ι), α i) (Pi.lattice.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_1 i)) a b)
+Case conversion may be inaccurate. Consider using '#align set.pi_univ_uIcc Set.pi_univ_uIccₓ'. -/
 @[simp]
 theorem pi_univ_uIcc (a b : ∀ i, α i) : (pi univ fun i => uIcc (a i) (b i)) = uIcc a b :=
   pi_univ_Icc _ _
Diff
@@ -4,11 +4,12 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov
 
 ! This file was ported from Lean 3 source module data.set.intervals.pi
-! leanprover-community/mathlib commit c3291da49cfa65f0d43b094750541c0731edc932
+! leanprover-community/mathlib commit 4020ddee5b4580a409bfda7d2f42726ce86ae674
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
 import Mathbin.Data.Set.Intervals.Basic
+import Mathbin.Data.Set.Intervals.UnorderedInterval
 import Mathbin.Data.Set.Lattice
 
 /-!
@@ -184,6 +185,17 @@ theorem disjoint_pi_univ_Ioc_update_left_right {x y : ∀ i, α i} {i₀ : ι} {
 
 end PiPreorder
 
+section PiLattice
+
+variable [∀ i, Lattice (α i)]
+
+@[simp]
+theorem pi_univ_uIcc (a b : ∀ i, α i) : (pi univ fun i => uIcc (a i) (b i)) = uIcc a b :=
+  pi_univ_Icc _ _
+#align set.pi_univ_uIcc Set.pi_univ_uIcc
+
+end PiLattice
+
 variable [DecidableEq ι] [∀ i, LinearOrder (α i)]
 
 open Function (update)
Diff
@@ -70,7 +70,7 @@ lean 3 declaration is
 but is expected to have type
   forall {ι : Type.{u2}} {α : ι -> Type.{u1}} [_inst_1 : forall (i : ι), Preorder.{u1} (α i)] {s : Set.{u2} ι} [_inst_2 : forall (j : ι), Decidable (Membership.mem.{u2, u2} ι (Set.{u2} ι) (Set.instMembershipSet.{u2} ι) j s)] {f₁ : forall (i : ι), α i} {f₂ : forall (i : ι), α i} {g₁ : forall (i : ι), α i} {g₂ : forall (i : ι), α i}, (forall (i : ι), (Membership.mem.{u2, u2} ι (Set.{u2} ι) (Set.instMembershipSet.{u2} ι) i s) -> (Membership.mem.{u1, u1} (α i) (Set.{u1} (α i)) (Set.instMembershipSet.{u1} (α i)) (f₁ i) (Set.Icc.{u1} (α i) (_inst_1 i) (g₁ i) (g₂ i)))) -> (forall (i : ι), (Not (Membership.mem.{u2, u2} ι (Set.{u2} ι) (Set.instMembershipSet.{u2} ι) i s)) -> (Membership.mem.{u1, u1} (α i) (Set.{u1} (α i)) (Set.instMembershipSet.{u1} (α i)) (f₂ i) (Set.Icc.{u1} (α i) (_inst_1 i) (g₁ i) (g₂ i)))) -> (Membership.mem.{max u2 u1, max u2 u1} (forall (i : ι), α i) (Set.{max u2 u1} (forall (i : ι), α i)) (Set.instMembershipSet.{max u2 u1} (forall (i : ι), α i)) (Set.piecewise.{u2, succ u1} ι (fun (i : ι) => α i) s f₁ f₂ (fun (j : ι) => _inst_2 j)) (Set.Icc.{max u2 u1} (forall (i : ι), α i) (Pi.preorder.{u2, u1} ι (fun (i : ι) => α i) (fun (i : ι) => _inst_1 i)) g₁ g₂))
 Case conversion may be inaccurate. Consider using '#align set.piecewise_mem_Icc Set.piecewise_mem_Iccₓ'. -/
-/- ./././Mathport/Syntax/Translate/Basic.lean:628:2: warning: expanding binder collection (i «expr ∉ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (i «expr ∉ » s) -/
 theorem piecewise_mem_Icc {s : Set ι} [∀ j, Decidable (j ∈ s)] {f₁ f₂ g₁ g₂ : ∀ i, α i}
     (h₁ : ∀ i ∈ s, f₁ i ∈ Icc (g₁ i) (g₂ i)) (h₂ : ∀ (i) (_ : i ∉ s), f₂ i ∈ Icc (g₁ i) (g₂ i)) :
     s.piecewise f₁ f₂ ∈ Icc g₁ g₂ :=

Changes in mathlib4

mathlib3
mathlib4
chore: Move intervals (#11765)

Move Set.Ixx, Finset.Ixx, Multiset.Ixx together under two different folders:

  • Order.Interval for their definition and basic properties
  • Algebra.Order.Interval for their algebraic properties

Move the definitions of Multiset.Ixx to what is now Order.Interval.Multiset. I believe we could just delete this file in a later PR as nothing uses it (and I already had doubts when defining Multiset.Ixx three years ago).

Move the algebraic results out of what is now Order.Interval.Finset.Basic to a new file Algebra.Order.Interval.Finset.Basic.

Diff
@@ -4,8 +4,8 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov
 -/
 import Mathlib.Algebra.Group.Pi.Basic
-import Mathlib.Data.Set.Intervals.Basic
-import Mathlib.Data.Set.Intervals.UnorderedInterval
+import Mathlib.Order.Interval.Set.Basic
+import Mathlib.Order.Interval.Set.UnorderedInterval
 import Mathlib.Data.Set.Lattice
 
 #align_import data.set.intervals.pi from "leanprover-community/mathlib"@"e4bc74cbaf429d706cb9140902f7ca6c431e75a4"
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
@@ -18,7 +18,7 @@ In this we prove various simple lemmas about intervals in `Π i, α i`. Closed i
 usually include the corresponding products as proper subsets.
 -/
 
--- porting note: Added, since dot notation no longer works on `Function.update`
+-- Porting note: Added, since dot notation no longer works on `Function.update`
 open Function
 
 variable {ι : Type*} {α : ι → Type*}
@@ -124,7 +124,7 @@ section PiPartialOrder
 
 variable [DecidableEq ι] [∀ i, PartialOrder (α i)]
 
--- porting note: Dot notation on `Function.update` broke
+-- Porting note: Dot notation on `Function.update` broke
 theorem image_update_Icc (f : ∀ i, α i) (i : ι) (a b : α i) :
     update f i '' Icc a b = Icc (update f i a) (update f i b) := by
   ext x
move: Algebraic pi instances (#10693)

Rename

  • Data.Pi.Algebra to Algebra.Group.Pi.Basic
  • Algebra.Group.Pi to Algebra.Group.Pi.Lemmas

Move a few instances from the latter to the former, the goal being that Algebra.Group.Pi.Basic is about all the pi instances of the classes defined in Algebra.Group.Defs. Algebra.Group.Pi.Lemmas will need further rearranging.

Diff
@@ -3,7 +3,7 @@ Copyright (c) 2020 Yury Kudryashov. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov
 -/
-import Mathlib.Data.Pi.Algebra
+import Mathlib.Algebra.Group.Pi.Basic
 import Mathlib.Data.Set.Intervals.Basic
 import Mathlib.Data.Set.Intervals.UnorderedInterval
 import Mathlib.Data.Set.Lattice
chore(*): use ∃ x ∈ s, _ instead of ∃ (x) (_ : x ∈ s), _ (#9184)

Search for [∀∃].*(_ and manually replace some occurrences with more readable versions. In case of , the new expressions are defeq to the old ones. In case of , they differ by exists_prop.

In some rare cases, golf proofs that needed fixing.

Diff
@@ -45,7 +45,7 @@ theorem pi_univ_Icc : (pi univ fun i ↦ Icc (x i) (y i)) = Icc x y :=
 #align set.pi_univ_Icc Set.pi_univ_Icc
 
 theorem piecewise_mem_Icc {s : Set ι} [∀ j, Decidable (j ∈ s)] {f₁ f₂ g₁ g₂ : ∀ i, α i}
-    (h₁ : ∀ i ∈ s, f₁ i ∈ Icc (g₁ i) (g₂ i)) (h₂ : ∀ (i) (_ : i ∉ s), f₂ i ∈ Icc (g₁ i) (g₂ i)) :
+    (h₁ : ∀ i ∈ s, f₁ i ∈ Icc (g₁ i) (g₂ i)) (h₂ : ∀ i ∉ s, f₂ i ∈ Icc (g₁ i) (g₂ i)) :
     s.piecewise f₁ f₂ ∈ Icc g₁ g₂ :=
   ⟨le_piecewise (fun i hi ↦ (h₁ i hi).1) fun i hi ↦ (h₂ i hi).1,
     piecewise_le (fun i hi ↦ (h₁ i hi).2) fun i hi ↦ (h₂ i hi).2⟩
chore: remove nonterminal simp (#7580)

Removes nonterminal simps on lines looking like simp [...]

Diff
@@ -353,7 +353,9 @@ theorem Icc_diff_pi_univ_Ioo_subset (x y x' y' : ∀ i, α i) :
     (⋃ i : ι, Icc x (update y i (x' i))) ∪ ⋃ i : ι, Icc (update x i (y' i)) y := by
   rintro a ⟨⟨hxa, hay⟩, ha'⟩
   simp at ha'
-  simp [le_update_iff, update_le_iff, hxa, hay, hxa _, hay _, ← exists_or]
+  simp only [ge_iff_le, le_update_iff, ne_eq, not_and, not_forall, not_le, exists_prop, gt_iff_lt,
+    update_le_iff, mem_union, mem_iUnion, mem_Icc, hxa, hay _, implies_true, and_true, true_and,
+    hxa _, hay, ← exists_or]
   rcases ha' with ⟨w, hw⟩
   apply Exists.intro w
   cases lt_or_le (x' w) (a w) <;> simp_all
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
@@ -21,7 +21,7 @@ usually include the corresponding products as proper subsets.
 -- porting note: Added, since dot notation no longer works on `Function.update`
 open Function
 
-variable {ι : Type _} {α : ι → Type _}
+variable {ι : Type*} {α : ι → Type*}
 
 namespace Set
 
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,17 +2,14 @@
 Copyright (c) 2020 Yury Kudryashov. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov
-
-! This file was ported from Lean 3 source module data.set.intervals.pi
-! leanprover-community/mathlib commit e4bc74cbaf429d706cb9140902f7ca6c431e75a4
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Data.Pi.Algebra
 import Mathlib.Data.Set.Intervals.Basic
 import Mathlib.Data.Set.Intervals.UnorderedInterval
 import Mathlib.Data.Set.Lattice
 
+#align_import data.set.intervals.pi from "leanprover-community/mathlib"@"e4bc74cbaf429d706cb9140902f7ca6c431e75a4"
+
 /-!
 # Intervals in `pi`-space
 
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
@@ -114,8 +114,7 @@ theorem pi_univ_Ioc_update_right {x y : ∀ i, α i} {i₀ : ι} {m : α i₀} (
 
 theorem disjoint_pi_univ_Ioc_update_left_right {x y : ∀ i, α i} {i₀ : ι} {m : α i₀} :
     Disjoint (pi univ fun i ↦ Ioc (x i) (update y i₀ m i))
-      (pi univ fun i ↦ Ioc (update x i₀ m i) (y i)) :=
-  by
+    (pi univ fun i ↦ Ioc (update x i₀ m i) (y i)) := by
   rw [disjoint_left]
   rintro z h₁ h₂
   refine' (h₁ i₀ (mem_univ _)).2.not_lt _
@@ -354,8 +353,7 @@ E.g., if `x' = x` and `y' = y`, then this lemma states that the difference betwe
 of the faces of `[x, y]`. -/
 theorem Icc_diff_pi_univ_Ioo_subset (x y x' y' : ∀ i, α i) :
     (Icc x y \ pi univ fun i ↦ Ioo (x' i) (y' i)) ⊆
-      (⋃ i : ι, Icc x (update y i (x' i))) ∪ ⋃ i : ι, Icc (update x i (y' i)) y :=
-  by
+    (⋃ i : ι, Icc x (update y i (x' i))) ∪ ⋃ i : ι, Icc (update x i (y' i)) y := by
   rintro a ⟨⟨hxa, hay⟩, ha'⟩
   simp at ha'
   simp [le_update_iff, update_le_iff, hxa, hay, hxa _, hay _, ← exists_or]
Diff
@@ -4,10 +4,11 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov
 
 ! This file was ported from Lean 3 source module data.set.intervals.pi
-! leanprover-community/mathlib commit 4020ddee5b4580a409bfda7d2f42726ce86ae674
+! leanprover-community/mathlib commit e4bc74cbaf429d706cb9140902f7ca6c431e75a4
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
+import Mathlib.Data.Pi.Algebra
 import Mathlib.Data.Set.Intervals.Basic
 import Mathlib.Data.Set.Intervals.UnorderedInterval
 import Mathlib.Data.Set.Lattice
@@ -20,6 +21,9 @@ In this we prove various simple lemmas about intervals in `Π i, α i`. Closed i
 usually include the corresponding products as proper subsets.
 -/
 
+-- porting note: Added, since dot notation no longer works on `Function.update`
+open Function
+
 variable {ι : Type _} {α : ι → Type _}
 
 namespace Set
@@ -120,6 +124,163 @@ theorem disjoint_pi_univ_Ioc_update_left_right {x y : ∀ i, α i} {i₀ : ι} {
 
 end PiPreorder
 
+section PiPartialOrder
+
+variable [DecidableEq ι] [∀ i, PartialOrder (α i)]
+
+-- porting note: Dot notation on `Function.update` broke
+theorem image_update_Icc (f : ∀ i, α i) (i : ι) (a b : α i) :
+    update f i '' Icc a b = Icc (update f i a) (update f i b) := by
+  ext x
+  rw [← Set.pi_univ_Icc]
+  refine' ⟨_, fun h => ⟨x i, _, _⟩⟩
+  · rintro ⟨c, hc, rfl⟩
+    simpa [update_le_update_iff]
+  · simpa only [Function.update_same] using h i (mem_univ i)
+  · ext j
+    obtain rfl | hij := eq_or_ne i j
+    · exact Function.update_same _ _ _
+    · simpa only [Function.update_noteq hij.symm, le_antisymm_iff] using h j (mem_univ j)
+#align set.image_update_Icc Set.image_update_Icc
+
+theorem image_update_Ico (f : ∀ i, α i) (i : ι) (a b : α i) :
+    update f i '' Ico a b = Ico (update f i a) (update f i b) := by
+  rw [← Icc_diff_right, ← Icc_diff_right, image_diff (update_injective _ _), image_singleton,
+    image_update_Icc]
+#align set.image_update_Ico Set.image_update_Ico
+
+theorem image_update_Ioc (f : ∀ i, α i) (i : ι) (a b : α i) :
+    update f i '' Ioc a b = Ioc (update f i a) (update f i b) := by
+  rw [← Icc_diff_left, ← Icc_diff_left, image_diff (update_injective _ _), image_singleton,
+    image_update_Icc]
+#align set.image_update_Ioc Set.image_update_Ioc
+
+theorem image_update_Ioo (f : ∀ i, α i) (i : ι) (a b : α i) :
+    update f i '' Ioo a b = Ioo (update f i a) (update f i b) := by
+  rw [← Ico_diff_left, ← Ico_diff_left, image_diff (update_injective _ _), image_singleton,
+    image_update_Ico]
+#align set.image_update_Ioo Set.image_update_Ioo
+
+theorem image_update_Icc_left (f : ∀ i, α i) (i : ι) (a : α i) :
+    update f i '' Icc a (f i) = Icc (update f i a) f := by simpa using image_update_Icc f i a (f i)
+#align set.image_update_Icc_left Set.image_update_Icc_left
+
+theorem image_update_Ico_left (f : ∀ i, α i) (i : ι) (a : α i) :
+    update f i '' Ico a (f i) = Ico (update f i a) f := by simpa using image_update_Ico f i a (f i)
+#align set.image_update_Ico_left Set.image_update_Ico_left
+
+theorem image_update_Ioc_left (f : ∀ i, α i) (i : ι) (a : α i) :
+    update f i '' Ioc a (f i) = Ioc (update f i a) f := by simpa using image_update_Ioc f i a (f i)
+#align set.image_update_Ioc_left Set.image_update_Ioc_left
+
+theorem image_update_Ioo_left (f : ∀ i, α i) (i : ι) (a : α i) :
+    update f i '' Ioo a (f i) = Ioo (update f i a) f := by simpa using image_update_Ioo f i a (f i)
+#align set.image_update_Ioo_left Set.image_update_Ioo_left
+
+theorem image_update_Icc_right (f : ∀ i, α i) (i : ι) (b : α i) :
+    update f i '' Icc (f i) b = Icc f (update f i b) := by simpa using image_update_Icc f i (f i) b
+#align set.image_update_Icc_right Set.image_update_Icc_right
+
+theorem image_update_Ico_right (f : ∀ i, α i) (i : ι) (b : α i) :
+    update f i '' Ico (f i) b = Ico f (update f i b) := by simpa using image_update_Ico f i (f i) b
+#align set.image_update_Ico_right Set.image_update_Ico_right
+
+theorem image_update_Ioc_right (f : ∀ i, α i) (i : ι) (b : α i) :
+    update f i '' Ioc (f i) b = Ioc f (update f i b) := by simpa using image_update_Ioc f i (f i) b
+#align set.image_update_Ioc_right Set.image_update_Ioc_right
+
+theorem image_update_Ioo_right (f : ∀ i, α i) (i : ι) (b : α i) :
+    update f i '' Ioo (f i) b = Ioo f (update f i b) := by simpa using image_update_Ioo f i (f i) b
+#align set.image_update_Ioo_right Set.image_update_Ioo_right
+
+variable [∀ i, One (α i)]
+
+@[to_additive]
+theorem image_mulSingle_Icc (i : ι) (a b : α i) :
+    Pi.mulSingle i '' Icc a b = Icc (Pi.mulSingle i a) (Pi.mulSingle i b) :=
+  image_update_Icc _ _ _ _
+#align set.image_mul_single_Icc Set.image_mulSingle_Icc
+#align set.image_single_Icc Set.image_single_Icc
+
+@[to_additive]
+theorem image_mulSingle_Ico (i : ι) (a b : α i) :
+    Pi.mulSingle i '' Ico a b = Ico (Pi.mulSingle i a) (Pi.mulSingle i b) :=
+  image_update_Ico _ _ _ _
+#align set.image_mul_single_Ico Set.image_mulSingle_Ico
+#align set.image_single_Ico Set.image_single_Ico
+
+@[to_additive]
+theorem image_mulSingle_Ioc (i : ι) (a b : α i) :
+    Pi.mulSingle i '' Ioc a b = Ioc (Pi.mulSingle i a) (Pi.mulSingle i b) :=
+  image_update_Ioc _ _ _ _
+#align set.image_mul_single_Ioc Set.image_mulSingle_Ioc
+#align set.image_single_Ioc Set.image_single_Ioc
+
+@[to_additive]
+theorem image_mulSingle_Ioo (i : ι) (a b : α i) :
+    Pi.mulSingle i '' Ioo a b = Ioo (Pi.mulSingle i a) (Pi.mulSingle i b) :=
+  image_update_Ioo _ _ _ _
+#align set.image_mul_single_Ioo Set.image_mulSingle_Ioo
+#align set.image_single_Ioo Set.image_single_Ioo
+
+@[to_additive]
+theorem image_mulSingle_Icc_left (i : ι) (a : α i) :
+    Pi.mulSingle i '' Icc a 1 = Icc (Pi.mulSingle i a) 1 :=
+  image_update_Icc_left _ _ _
+#align set.image_mul_single_Icc_left Set.image_mulSingle_Icc_left
+#align set.image_single_Icc_left Set.image_single_Icc_left
+
+@[to_additive]
+theorem image_mulSingle_Ico_left (i : ι) (a : α i) :
+    Pi.mulSingle i '' Ico a 1 = Ico (Pi.mulSingle i a) 1 :=
+  image_update_Ico_left _ _ _
+#align set.image_mul_single_Ico_left Set.image_mulSingle_Ico_left
+#align set.image_single_Ico_left Set.image_single_Ico_left
+
+@[to_additive]
+theorem image_mulSingle_Ioc_left (i : ι) (a : α i) :
+    Pi.mulSingle i '' Ioc a 1 = Ioc (Pi.mulSingle i a) 1 :=
+  image_update_Ioc_left _ _ _
+#align set.image_mul_single_Ioc_left Set.image_mulSingle_Ioc_left
+#align set.image_single_Ioc_left Set.image_single_Ioc_left
+
+@[to_additive]
+theorem image_mulSingle_Ioo_left (i : ι) (a : α i) :
+    Pi.mulSingle i '' Ioo a 1 = Ioo (Pi.mulSingle i a) 1 :=
+  image_update_Ioo_left _ _ _
+#align set.image_mul_single_Ioo_left Set.image_mulSingle_Ioo_left
+#align set.image_single_Ioo_left Set.image_single_Ioo_left
+
+@[to_additive]
+theorem image_mulSingle_Icc_right (i : ι) (b : α i) :
+    Pi.mulSingle i '' Icc 1 b = Icc 1 (Pi.mulSingle i b) :=
+  image_update_Icc_right _ _ _
+#align set.image_mul_single_Icc_right Set.image_mulSingle_Icc_right
+#align set.image_single_Icc_right Set.image_single_Icc_right
+
+@[to_additive]
+theorem image_mulSingle_Ico_right (i : ι) (b : α i) :
+    Pi.mulSingle i '' Ico 1 b = Ico 1 (Pi.mulSingle i b) :=
+  image_update_Ico_right _ _ _
+#align set.image_mul_single_Ico_right Set.image_mulSingle_Ico_right
+#align set.image_single_Ico_right Set.image_single_Ico_right
+
+@[to_additive]
+theorem image_mulSingle_Ioc_right (i : ι) (b : α i) :
+    Pi.mulSingle i '' Ioc 1 b = Ioc 1 (Pi.mulSingle i b) :=
+  image_update_Ioc_right _ _ _
+#align set.image_mul_single_Ioc_right Set.image_mulSingle_Ioc_right
+#align set.image_single_Ioc_right Set.image_single_Ioc_right
+
+@[to_additive]
+theorem image_mulSingle_Ioo_right (i : ι) (b : α i) :
+    Pi.mulSingle i '' Ioo 1 b = Ioo 1 (Pi.mulSingle i b) :=
+  image_update_Ioo_right _ _ _
+#align set.image_mul_single_Ioo_right Set.image_mulSingle_Ioo_right
+#align set.image_single_Ioo_right Set.image_single_Ioo_right
+
+end PiPartialOrder
+
 section PiLattice
 
 variable [∀ i, Lattice (α i)]
@@ -129,6 +290,46 @@ theorem pi_univ_uIcc (a b : ∀ i, α i) : (pi univ fun i => uIcc (a i) (b i)) =
   pi_univ_Icc _ _
 #align set.pi_univ_uIcc Set.pi_univ_uIcc
 
+variable [DecidableEq ι]
+
+theorem image_update_uIcc (f : ∀ i, α i) (i : ι) (a b : α i) :
+    update f i '' uIcc a b = uIcc (update f i a) (update f i b) :=
+  (image_update_Icc _ _ _ _).trans <| by simp_rw [uIcc, update_sup, update_inf]
+#align set.image_update_uIcc Set.image_update_uIcc
+
+theorem image_update_uIcc_left (f : ∀ i, α i) (i : ι) (a : α i) :
+    update f i '' uIcc a (f i) = uIcc (update f i a) f := by
+  simpa using image_update_uIcc f i a (f i)
+#align set.image_update_uIcc_left Set.image_update_uIcc_left
+
+theorem image_update_uIcc_right (f : ∀ i, α i) (i : ι) (b : α i) :
+    update f i '' uIcc (f i) b = uIcc f (update f i b) := by
+  simpa using image_update_uIcc f i (f i) b
+#align set.image_update_uIcc_right Set.image_update_uIcc_right
+
+variable [∀ i, One (α i)]
+
+@[to_additive]
+theorem image_mulSingle_uIcc (i : ι) (a b : α i) :
+    Pi.mulSingle i '' uIcc a b = uIcc (Pi.mulSingle i a) (Pi.mulSingle i b) :=
+  image_update_uIcc _ _ _ _
+#align set.image_mul_single_uIcc Set.image_mulSingle_uIcc
+#align set.image_single_uIcc Set.image_single_uIcc
+
+@[to_additive]
+theorem image_mulSingle_uIcc_left (i : ι) (a : α i) :
+    Pi.mulSingle i '' uIcc a 1 = uIcc (Pi.mulSingle i a) 1 :=
+  image_update_uIcc_left _ _ _
+#align set.image_mul_single_uIcc_left Set.image_mulSingle_uIcc_left
+#align set.image_single_uIcc_left Set.image_single_uIcc_left
+
+@[to_additive]
+theorem image_mulSingle_uIcc_right (i : ι) (b : α i) :
+    Pi.mulSingle i '' uIcc 1 b = uIcc 1 (Pi.mulSingle i b) :=
+  image_update_uIcc_right _ _ _
+#align set.image_mul_single_uIcc_right Set.image_mulSingle_uIcc_right
+#align set.image_single_uIcc_right Set.image_single_uIcc_right
+
 end PiLattice
 
 variable [DecidableEq ι] [∀ i, LinearOrder (α i)]
chore: fix #align lines (#3640)

This PR fixes two things:

  • Most align statements for definitions and theorems and instances that are separated by two newlines from the relevant declaration (s/\n\n#align/\n#align). This is often seen in the mathport output after ending calc blocks.
  • All remaining more-than-one-line #align statements. (This was needed for a script I wrote for #3630.)
Diff
@@ -161,7 +161,6 @@ theorem Icc_diff_pi_univ_Ioo_subset (x y x' y' : ∀ i, α i) :
   rcases ha' with ⟨w, hw⟩
   apply Exists.intro w
   cases lt_or_le (x' w) (a w) <;> simp_all
-
 #align set.Icc_diff_pi_univ_Ioo_subset Set.Icc_diff_pi_univ_Ioo_subset
 
 /-- If `x`, `y`, `z` are functions `Π i : ι, α i`, then
Diff
@@ -4,11 +4,12 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov
 
 ! This file was ported from Lean 3 source module data.set.intervals.pi
-! leanprover-community/mathlib commit 207cfac9fcd06138865b5d04f7091e46d9320432
+! leanprover-community/mathlib commit 4020ddee5b4580a409bfda7d2f42726ce86ae674
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
 import Mathlib.Data.Set.Intervals.Basic
+import Mathlib.Data.Set.Intervals.UnorderedInterval
 import Mathlib.Data.Set.Lattice
 
 /-!
@@ -119,6 +120,17 @@ theorem disjoint_pi_univ_Ioc_update_left_right {x y : ∀ i, α i} {i₀ : ι} {
 
 end PiPreorder
 
+section PiLattice
+
+variable [∀ i, Lattice (α i)]
+
+@[simp]
+theorem pi_univ_uIcc (a b : ∀ i, α i) : (pi univ fun i => uIcc (a i) (b i)) = uIcc a b :=
+  pi_univ_Icc _ _
+#align set.pi_univ_uIcc Set.pi_univ_uIcc
+
+end PiLattice
+
 variable [DecidableEq ι] [∀ i, LinearOrder (α i)]
 
 open Function (update)
chore: strip trailing spaces in lean files (#2828)

vscode is already configured by .vscode/settings.json to trim these on save. It's not clear how they've managed to stick around.

By doing this all in one PR now, it avoids getting random whitespace diffs in PRs later.

This was done with a regex search in vscode,

image

Diff
@@ -110,7 +110,7 @@ theorem pi_univ_Ioc_update_right {x y : ∀ i, α i} {i₀ : ι} {m : α i₀} (
 theorem disjoint_pi_univ_Ioc_update_left_right {x y : ∀ i, α i} {i₀ : ι} {m : α i₀} :
     Disjoint (pi univ fun i ↦ Ioc (x i) (update y i₀ m i))
       (pi univ fun i ↦ Ioc (update x i₀ m i) (y i)) :=
-  by 
+  by
   rw [disjoint_left]
   rintro z h₁ h₂
   refine' (h₁ i₀ (mem_univ _)).2.not_lt _
@@ -142,7 +142,7 @@ of the faces of `[x, y]`. -/
 theorem Icc_diff_pi_univ_Ioo_subset (x y x' y' : ∀ i, α i) :
     (Icc x y \ pi univ fun i ↦ Ioo (x' i) (y' i)) ⊆
       (⋃ i : ι, Icc x (update y i (x' i))) ∪ ⋃ i : ι, Icc (update x i (y' i)) y :=
-  by 
+  by
   rintro a ⟨⟨hxa, hay⟩, ha'⟩
   simp at ha'
   simp [le_update_iff, update_le_iff, hxa, hay, hxa _, hay _, ← exists_or]
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
@@ -87,8 +87,7 @@ open Function (update)
 
 theorem pi_univ_Ioc_update_left {x y : ∀ i, α i} {i₀ : ι} {m : α i₀} (hm : x i₀ ≤ m) :
     (pi univ fun i ↦ Ioc (update x i₀ m i) (y i)) =
-      { z | m < z i₀ } ∩ pi univ fun i ↦ Ioc (x i) (y i) :=
-  by
+      { z | m < z i₀ } ∩ pi univ fun i ↦ Ioc (x i) (y i) := by
   have : Ioc m (y i₀) = Ioi m ∩ Ioc (x i₀) (y i₀) := by
     rw [← Ioi_inter_Iic, ← Ioi_inter_Iic, ← inter_assoc,
       inter_eq_self_of_subset_left (Ioi_subset_Ioi hm)]
@@ -99,8 +98,7 @@ theorem pi_univ_Ioc_update_left {x y : ∀ i, α i} {i₀ : ι} {m : α i₀} (h
 
 theorem pi_univ_Ioc_update_right {x y : ∀ i, α i} {i₀ : ι} {m : α i₀} (hm : m ≤ y i₀) :
     (pi univ fun i ↦ Ioc (x i) (update y i₀ m i)) =
-      { z | z i₀ ≤ m } ∩ pi univ fun i ↦ Ioc (x i) (y i) :=
-  by
+      { z | z i₀ ≤ m } ∩ pi univ fun i ↦ Ioc (x i) (y i) := by
   have : Ioc (x i₀) m = Iic m ∩ Ioc (x i₀) (y i₀) := by
     rw [← Ioi_inter_Iic, ← Ioi_inter_Iic, inter_left_comm,
       inter_eq_self_of_subset_left (Iic_subset_Iic.2 hm)]
@@ -128,8 +126,7 @@ open Function (update)
 theorem pi_univ_Ioc_update_union (x y : ∀ i, α i) (i₀ : ι) (m : α i₀) (hm : m ∈ Icc (x i₀) (y i₀)) :
     ((pi univ fun i ↦ Ioc (x i) (update y i₀ m i)) ∪
         pi univ fun i ↦ Ioc (update x i₀ m i) (y i)) =
-      pi univ fun i ↦ Ioc (x i) (y i) :=
-  by
+      pi univ fun i ↦ Ioc (x i) (y i) := by
   simp_rw [pi_univ_Ioc_update_left hm.1, pi_univ_Ioc_update_right hm.2, ← union_inter_distrib_right,
     ← setOf_or, le_or_lt, setOf_true, univ_inter]
 #align set.pi_univ_Ioc_update_union Set.pi_univ_Ioc_update_union
feat: port data.set.intervals.pi (#1223)

I changed a single proof, Icc_diff_pi_univ_Ioo_subset because the simpa got lost somewhere along the way. It did produce an existential statement in the end but it was not the correct one it seems. Since the proof was easy enough to fix without simpa I just did that instead of figuring out what exactly is going wrong.

Dependencies 62

63 files ported (100.0%)
35323 lines ported (100.0%)

All dependencies are ported!