measure_theory.measurable_spaceMathlib.MeasureTheory.MeasurableSpace.Basic

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)

(last sync)

feat(probability/independence): Independence of singletons (#18506)

Characterisation of independence in terms of measure distributing over finite intersections, and lemmas connecting the different concepts of independence.

Also add supporting measurable_space and set.preimage lemmas

Diff
@@ -7,6 +7,7 @@ Authors: Johannes Hölzl, Mario Carneiro
 import data.prod.tprod
 import group_theory.coset
 import logic.equiv.fin
+import logic.lemmas
 import measure_theory.measurable_space_def
 import order.filter.small_sets
 import order.liminf_limsup
@@ -136,6 +137,12 @@ lemma le_map_comap : m ≤ (m.comap g).map g := (gc_comap_map g).le_u_l _
 
 end functors
 
+@[simp] lemma map_const {m} (b : β) : measurable_space.map (λ a : α, b) m = ⊤ :=
+eq_top_iff.2 $ by { rintro s hs, by_cases b ∈ s; change measurable_set (preimage _ _); simp [*] }
+
+@[simp] lemma comap_const {m} (b : β) : measurable_space.comap (λ a : α, b) m = ⊥ :=
+eq_bot_iff.2 $ by { rintro _ ⟨s, -, rfl⟩, by_cases b ∈ s; simp [*] }
+
 lemma comap_generate_from {f : α → β} {s : set (set β)} :
   (generate_from s).comap f = generate_from (preimage f '' s) :=
 le_antisymm
@@ -291,6 +298,7 @@ section constructions
 instance : measurable_space empty := ⊤
 instance : measurable_space punit := ⊤ -- this also works for `unit`
 instance : measurable_space bool := ⊤
+instance Prop.measurable_space : measurable_space Prop := ⊤
 instance : measurable_space ℕ := ⊤
 instance : measurable_space ℤ := ⊤
 instance : measurable_space ℚ := ⊤
@@ -298,6 +306,7 @@ instance : measurable_space ℚ := ⊤
 instance : measurable_singleton_class empty := ⟨λ _, trivial⟩
 instance : measurable_singleton_class punit := ⟨λ _, trivial⟩
 instance : measurable_singleton_class bool := ⟨λ _, trivial⟩
+instance Prop.measurable_singleton_class : measurable_singleton_class Prop := ⟨λ _, trivial⟩
 instance : measurable_singleton_class ℕ := ⟨λ _, trivial⟩
 instance : measurable_singleton_class ℤ := ⟨λ _, trivial⟩
 instance : measurable_singleton_class ℚ := ⟨λ _, trivial⟩
@@ -340,6 +349,15 @@ begin
   exact h,
 end
 
+lemma measurable_to_prop {f : α → Prop} (h : measurable_set (f⁻¹' {true})) : measurable f :=
+begin
+  refine measurable_to_countable' (λ x, _),
+  by_cases hx : x,
+  { simpa [hx] using h },
+  { simpa only [hx, ←preimage_compl, Prop.compl_singleton, not_true, preimage_singleton_false]
+      using h.compl }
+end
+
 lemma measurable_find_greatest' {p : α → ℕ → Prop} [∀ x, decidable_pred (p x)]
   {N : ℕ} (hN : ∀ k ≤ N, measurable_set {x | nat.find_greatest (p x) N = k}) :
   measurable (λ x, nat.find_greatest (p x) N) :=
@@ -860,8 +878,38 @@ end sum
 instance {α} {β : α → Type*} [m : Πa, measurable_space (β a)] : measurable_space (sigma β) :=
 ⨅a, (m a).map (sigma.mk a)
 
+section prop
+variables {p : α → Prop}
+
+variables [measurable_space α]
+
+@[simp] lemma measurable_set_set_of : measurable_set {a | p a} ↔ measurable p :=
+⟨λ h, measurable_to_prop $ by simpa only [preimage_singleton_true], λ h,
+  by simpa using h (measurable_set_singleton true)⟩
+
+@[simp] lemma measurable_mem : measurable (∈ s) ↔ measurable_set s := measurable_set_set_of.symm
+
+alias measurable_set_set_of ↔ _ measurable.set_of
+alias measurable_mem ↔ _ measurable_set.mem
+
+end prop
 end constructions
 
+namespace measurable_space
+
+/-- The sigma-algebra generated by a single set `s` is `{∅, s, sᶜ, univ}`. -/
+@[simp] lemma generate_from_singleton (s : set α) :
+  generate_from {s} = measurable_space.comap (∈ s) ⊤ :=
+begin
+  classical,
+  letI : measurable_space α := generate_from {s},
+  refine le_antisymm (generate_from_le $ λ t ht, ⟨{true}, trivial, by simp [ht.symm]⟩) _,
+  rintro _ ⟨u, -, rfl⟩,
+  exact (show measurable_set s, from generate_measurable.basic _ $ mem_singleton s).mem trivial,
+end
+
+end measurable_space
+
 /-- A map `f : α → β` is called a *measurable embedding* if it is injective, measurable, and sends
 measurable sets to measurable sets. The latter assumption can be replaced with “`f` has measurable
 inverse `g : range f → α`”, see `measurable_embedding.measurable_range_splitting`,
@@ -1052,6 +1100,9 @@ e.to_equiv.image_eq_preimage s
   measurable_set (e '' s) ↔ measurable_set s :=
 by rw [image_eq_preimage, measurable_set_preimage]
 
+@[simp] lemma map_eq (e : α ≃ᵐ β) : measurable_space.map e ‹_› = ‹_› :=
+e.measurable.le_map.antisymm' $ λ s, e.measurable_set_preimage.1
+
 /-- A measurable equivalence is a measurable embedding. -/
 protected lemma measurable_embedding (e : α ≃ᵐ β) : measurable_embedding e :=
 { injective := e.injective,
@@ -1277,12 +1328,41 @@ def sum_compl {s : set α} [decidable_pred s] (hs : measurable_set s) : s ⊕ (s
   measurable_to_fun := by {apply measurable.sum_elim; exact measurable_subtype_coe},
   measurable_inv_fun :=  measurable.dite measurable_inl measurable_inr hs }
 
+/-- Convert a measurable involutive function `f` to a measurable permutation with
+`to_fun = inv_fun = f`. See also `function.involutive.to_perm`. -/
+@[simps to_equiv] def of_involutive (f : α → α) (hf : involutive f) (hf' : measurable f) : α ≃ᵐ α :=
+{ measurable_to_fun := hf',
+  measurable_inv_fun := hf',
+  ..hf.to_perm _ }
+
+@[simp] lemma of_involutive_apply (f : α → α) (hf : involutive f) (hf' : measurable f) (a : α) :
+  of_involutive f hf hf' a = f a := rfl
+
+@[simp] lemma of_involutive_symm (f : α → α) (hf : involutive f) (hf' : measurable f) :
+  (of_involutive f hf hf').symm = of_involutive f hf hf' := rfl
+
 end measurable_equiv
 
 namespace measurable_embedding
 
 variables [measurable_space α] [measurable_space β] [measurable_space γ] {f : α → β} {g : β → α}
 
+@[simp] lemma comap_eq (hf : measurable_embedding f) : measurable_space.comap f ‹_› = ‹_› :=
+hf.measurable.comap_le.antisymm $ λ s h,
+  ⟨_, hf.measurable_set_image' h, hf.injective.preimage_image _⟩
+
+lemma iff_comap_eq :
+  measurable_embedding f ↔
+    injective f ∧ measurable_space.comap f ‹_› = ‹_› ∧ measurable_set (range f) :=
+⟨λ hf, ⟨hf.injective, hf.comap_eq, hf.measurable_set_range⟩, λ hf,
+  { injective := hf.1,
+    measurable := by { rw ←hf.2.1, exact comap_measurable f },
+    measurable_set_image' := begin
+      rw ←hf.2.1,
+      rintro _ ⟨s, hs, rfl⟩,
+      simpa only [image_preimage_eq_inter_range] using hs.inter hf.2.2,
+    end }⟩
+
 /-- A set is equivalent to its image under a function `f` as measurable spaces,
   if `f` is a measurable embedding -/
 noncomputable def equiv_image (s : set α) (hf : measurable_embedding f) :
@@ -1377,6 +1457,19 @@ end
 
 end measurable_embedding
 
+lemma measurable_space.comap_compl {m' : measurable_space β} [boolean_algebra β]
+  (h : measurable (compl : β → β)) (f : α → β) :
+  measurable_space.comap (λ a, (f a)ᶜ) infer_instance = measurable_space.comap f infer_instance :=
+begin
+  rw ←measurable_space.comap_comp,
+  congr',
+  exact (measurable_equiv.of_involutive _ compl_involutive h).measurable_embedding.comap_eq,
+end
+
+@[simp] lemma measurable_space.comap_not (p : α → Prop) :
+  measurable_space.comap (λ a, ¬ p a) infer_instance = measurable_space.comap p infer_instance :=
+measurable_space.comap_compl (λ _ _, trivial) _
+
 section countably_generated
 
 namespace measurable_space

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(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(measure_theory/integral/average): Lebesgue average (#19199)

Define the Lebesgue integral version of the average of a measurable function and prove the corresponding first moment method.

Diff
@@ -191,7 +191,7 @@ lemma measurable_of_subsingleton_codomain [subsingleton β] (f : α → β) :
   measurable f :=
 λ s hs, subsingleton.set_cases measurable_set.empty measurable_set.univ s
 
-@[to_additive]
+@[measurability, to_additive]
 lemma measurable_one [has_one α] : measurable (1 : β → α) := @measurable_const _ _ _ _ 1
 
 lemma measurable_of_empty [is_empty α] (f : α → β) : measurable f :=

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

doc(measure_theory): Fix some names and docstrings (#18910)

Co-authored-by: Felix-Weilacher <112423742+Felix-Weilacher@users.noreply.github.com>

Diff
@@ -1392,7 +1392,7 @@ open_locale classical
 
 /-- If a measurable space is countably generated, it admits a measurable injection
 into the Cantor space `ℕ → bool` (equipped with the product sigma algebra). -/
-theorem measurable_injection_cantor_of_countably_generated
+theorem measurable_injection_nat_bool_of_countably_generated
 [measurable_space α] [h : countably_generated α] [measurable_singleton_class α] :
 ∃ f : α → (ℕ → bool), measurable f ∧ function.injective f :=
 begin

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(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(measure_theory/constructions): add the Borel isomorphism theorem. (#18864)

Add a file measure_theory/constructions/borel_isomorphism.lean with several versions of the Borel isomorphism theorem. Also add fairly small supporting lemmas in several other files. Most notable here is the addition of a type class for measurable_spaces whose sigma-algebras are generated by some countable set, and a theorem that such spaces admit measurable injections to the Cantor space.

Co-authored-by: Felix-Weilacher <112423742+Felix-Weilacher@users.noreply.github.com>

Diff
@@ -315,6 +315,10 @@ begin
   { simp only [preimage_singleton_eq_empty.2 hyf, measurable_set.empty] }
 end
 
+lemma measurable_to_countable' [measurable_space α] [countable α] [measurable_space β] {f : β → α}
+  (h : ∀ x, measurable_set (f ⁻¹' {x})) : measurable f :=
+measurable_to_countable (λ y, h (f y))
+
 @[measurability] lemma measurable_unit [measurable_space α] (f : unit → α) : measurable f :=
 measurable_from_top
 
@@ -327,6 +331,15 @@ measurable_from_top
 lemma measurable_to_nat {f : α → ℕ} : (∀ y, measurable_set (f ⁻¹' {f y})) → measurable f :=
 measurable_to_countable
 
+lemma measurable_to_bool {f : α → bool} (h : measurable_set (f⁻¹' {tt})) : measurable f :=
+begin
+  apply measurable_to_countable',
+  rintros (-|-),
+  { convert h.compl,
+    rw [← preimage_compl, bool.compl_singleton, bool.bnot_tt] },
+  exact h,
+end
+
 lemma measurable_find_greatest' {p : α → ℕ → Prop} [∀ x, decidable_pred (p x)]
   {N : ℕ} (hN : ∀ k ≤ N, measurable_set {x | nat.find_greatest (p x) N = k}) :
   measurable (λ x, nat.find_greatest (p x) N) :=
@@ -1364,6 +1377,57 @@ end
 
 end measurable_embedding
 
+section countably_generated
+
+namespace measurable_space
+
+variable (α)
+
+/-- We say a measurable space is countably generated
+if can be generated by a countable set of sets.-/
+class countably_generated [m : measurable_space α] : Prop :=
+  (is_countably_generated : ∃ b : set (set α), b.countable ∧ m = generate_from b)
+
+open_locale classical
+
+/-- If a measurable space is countably generated, it admits a measurable injection
+into the Cantor space `ℕ → bool` (equipped with the product sigma algebra). -/
+theorem measurable_injection_cantor_of_countably_generated
+[measurable_space α] [h : countably_generated α] [measurable_singleton_class α] :
+∃ f : α → (ℕ → bool), measurable f ∧ function.injective f :=
+begin
+  obtain ⟨b, bct, hb⟩ := h.is_countably_generated,
+  obtain ⟨e, he⟩ := set.countable.exists_eq_range (bct.insert ∅) (insert_nonempty _ _),
+  rw [← generate_from_insert_empty, he] at hb,
+  refine ⟨λ x n, to_bool (x ∈ e n), _, _⟩,
+  { rw measurable_pi_iff,
+    intro n,
+    apply measurable_to_bool,
+    simp only [preimage, mem_singleton_iff, to_bool_iff, set_of_mem_eq],
+    rw hb,
+    apply measurable_set_generate_from,
+    use n, },
+  intros x y hxy,
+  have : ∀ s : set α, measurable_set s → (x ∈ s ↔ y ∈ s) := λ s, by
+  { rw hb,
+    apply generate_from_induction,
+    { rintros - ⟨n, rfl⟩,
+      rw ← bool.to_bool_eq,
+      rw funext_iff at hxy,
+      exact hxy n },
+    { tauto },
+    { intro t,
+      tauto },
+    intros t ht,
+    simp_rw [mem_Union, ht], },
+  specialize this {y} measurable_set_eq,
+  simpa only [mem_singleton, iff_true],
+end
+
+end measurable_space
+
+end countably_generated
+
 namespace filter
 
 variables [measurable_space α]

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(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(measure_theory/measurable_space): Cast of natural is measurable (#18676)

A few simple lemmas

Diff
@@ -209,6 +209,12 @@ begin
   { convert measurable_const, exact funext (λ x, hf x h.some) }
 end
 
+@[measurability] lemma measurable_nat_cast [has_nat_cast α] (n : ℕ) : measurable (n : β → α) :=
+@measurable_const α _ _ _ n
+
+@[measurability] lemma measurable_int_cast [has_int_cast α] (n : ℤ) : measurable (n : β → α) :=
+@measurable_const α _ _ _ n
+
 lemma measurable_of_finite [finite α] [measurable_singleton_class α] (f : α → β) : measurable f :=
 λ s hs, (f ⁻¹' s).to_finite.measurable_set
 

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(first ported)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -967,7 +967,7 @@ theorem measurable_from_prod_countable [Countable β] [MeasurableSingletonClass
   have : f ⁻¹' s = ⋃ y, ((fun x => f (x, y)) ⁻¹' s) ×ˢ ({y} : Set β) :=
     by
     ext1 ⟨x, y⟩
-    simp [and_assoc', and_left_comm]
+    simp [and_assoc, and_left_comm]
   rw [this]
   exact MeasurableSet.iUnion fun y => (hf y hs).Prod (measurable_set_singleton y)
 #align measurable_from_prod_countable measurable_from_prod_countable
Diff
@@ -3,11 +3,11 @@ Copyright (c) 2017 Johannes Hölzl. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Mario Carneiro
 -/
-import Data.Prod.Tprod
+import Data.Prod.TProd
 import GroupTheory.Coset
 import Logic.Equiv.Fin
 import Logic.Lemmas
-import MeasureTheory.MeasurableSpaceDef
+import MeasureTheory.MeasurableSpace.Defs
 import Order.Filter.SmallSets
 import Order.LiminfLimsup
 import MeasureTheory.Tactic
@@ -2173,7 +2173,6 @@ class CountablyGenerated [m : MeasurableSpace α] : Prop where
 
 open scoped Classical
 
-#print MeasurableSpace.measurable_injection_nat_bool_of_countablyGenerated /-
 /-- If a measurable space is countably generated, it admits a measurable injection
 into the Cantor space `ℕ → bool` (equipped with the product sigma algebra). -/
 theorem measurable_injection_nat_bool_of_countablyGenerated [MeasurableSpace α]
@@ -2208,7 +2207,6 @@ theorem measurable_injection_nat_bool_of_countablyGenerated [MeasurableSpace α]
   specialize this {y} measurableSet_eq
   simpa only [mem_singleton, iff_true_iff]
 #align measurable_space.measurable_injection_nat_bool_of_countably_generated MeasurableSpace.measurable_injection_nat_bool_of_countablyGenerated
--/
 
 end MeasurableSpace
 
Diff
@@ -998,7 +998,7 @@ theorem exists_measurable_piecewise_nat {m : MeasurableSpace α} (t : ℕ → Se
     intro x
     by_cases H : ∀ i : ℕ, x ∉ t i
     · exact ⟨0, Or.inr (by simpa only [mem_Inter, compl_Union] using H)⟩
-    · simp only [Classical.not_forall, not_not_mem] at H 
+    · simp only [Classical.not_forall, not_not_mem] at H
       rcases H with ⟨n, hn⟩
       exact ⟨n, Or.inl hn⟩
   refine' ⟨fun x => g (Nat.find (P x)) x, Measurable.find hg M P, _⟩
@@ -1427,7 +1427,7 @@ theorem measurable_comp_iff (hg : MeasurableEmbedding g) : Measurable (g ∘ f)
   by
   refine' ⟨fun H => _, hg.measurable.comp⟩
   suffices Measurable ((range_splitting g ∘ range_factorization g) ∘ f) by
-    rwa [(right_inverse_range_splitting hg.injective).comp_eq_id] at this 
+    rwa [(right_inverse_range_splitting hg.injective).comp_eq_id] at this
   exact hg.measurable_range_splitting.comp H.subtype_mk
 #align measurable_embedding.measurable_comp_iff MeasurableEmbedding.measurable_comp_iff
 -/
@@ -1695,7 +1695,7 @@ protected theorem measurable_comp_iff {f : β → γ} (e : α ≃ᵐ β) :
     (fun hfe =>
       by
       have : Measurable (f ∘ (e.symm.trans e).toEquiv) := hfe.comp e.symm.Measurable
-      rwa [coe_to_equiv, symm_trans_self] at this )
+      rwa [coe_to_equiv, symm_trans_self] at this)
     fun h => h.comp e.Measurable
 #align measurable_equiv.measurable_comp_iff MeasurableEquiv.measurable_comp_iff
 -/
@@ -2122,14 +2122,14 @@ noncomputable def schroederBernstein {f : α → β} {g : β → α} (hf : Measu
     rw [Function.iterate_succ', Function.comp_apply]
     exact Fmono (Inter_subset _ _)
   rintro x hx ⟨y, hy, rfl⟩
-  rw [mem_Inter] at hx 
+  rw [mem_Inter] at hx
   apply hy
   rw [(inj_on_of_injective hf.injective _).image_iInter_eq]
   swap; · infer_instance
   rw [mem_Inter]
   intro n
   specialize hx n.succ
-  rw [Function.iterate_succ', Function.comp_apply] at hx 
+  rw [Function.iterate_succ', Function.comp_apply] at hx
   by_contra h
   apply hx
   exact ⟨y, h, rfl⟩
@@ -2182,7 +2182,7 @@ theorem measurable_injection_nat_bool_of_countablyGenerated [MeasurableSpace α]
   by
   obtain ⟨b, bct, hb⟩ := h.is_countably_generated
   obtain ⟨e, he⟩ := Set.Countable.exists_eq_range (bct.insert ∅) (insert_nonempty _ _)
-  rw [← generate_from_insert_empty, he] at hb 
+  rw [← generate_from_insert_empty, he] at hb
   refine' ⟨fun x n => to_bool (x ∈ e n), _, _⟩
   · rw [measurable_pi_iff]
     intro n
@@ -2198,7 +2198,7 @@ theorem measurable_injection_nat_bool_of_countablyGenerated [MeasurableSpace α]
     apply generate_from_induction
     · rintro - ⟨n, rfl⟩
       rw [← decide_eq_decide]
-      rw [funext_iff] at hxy 
+      rw [funext_iff] at hxy
       exact hxy n
     · tauto
     · intro t
@@ -2287,7 +2287,7 @@ instance iInf_isMeasurablyGenerated {f : ι → Filter α} [∀ i, IsMeasurablyG
     IsMeasurablyGenerated (⨅ i, f i) :=
   by
   refine' ⟨fun s hs => _⟩
-  rw [← equiv.plift.surjective.infi_comp, mem_infi] at hs 
+  rw [← equiv.plift.surjective.infi_comp, mem_infi] at hs
   rcases hs with ⟨t, ht, ⟨V, hVf, rfl⟩⟩
   choose U hUf hU using fun i => is_measurably_generated.exists_measurable_subset (hVf i)
   refine' ⟨⋂ i : t, U i, _, _, _⟩
Diff
@@ -991,6 +991,27 @@ theorem exists_measurable_piecewise_nat {m : MeasurableSpace α} (t : ℕ → Se
     (t_meas : ∀ n, MeasurableSet (t n)) (t_disj : Pairwise (Disjoint on t)) (g : ℕ → β → α)
     (hg : ∀ n, Measurable (g n)) : ∃ f : β → α, Measurable f ∧ ∀ n x, x ∈ t n → f x = g n x := by
   classical
+  let p : ℕ → β → Prop := fun n x => x ∈ t n ∪ (⋃ k, t k)ᶜ
+  have M : ∀ n, MeasurableSet {x | p n x} := fun n =>
+    (t_meas n).union (MeasurableSet.compl (MeasurableSet.iUnion t_meas))
+  have P : ∀ x, ∃ n, p n x := by
+    intro x
+    by_cases H : ∀ i : ℕ, x ∉ t i
+    · exact ⟨0, Or.inr (by simpa only [mem_Inter, compl_Union] using H)⟩
+    · simp only [Classical.not_forall, not_not_mem] at H 
+      rcases H with ⟨n, hn⟩
+      exact ⟨n, Or.inl hn⟩
+  refine' ⟨fun x => g (Nat.find (P x)) x, Measurable.find hg M P, _⟩
+  intro n x hx
+  have : x ∈ t (Nat.find (P x)) :=
+    by
+    have B : x ∈ t (Nat.find (P x)) ∪ (⋃ k, t k)ᶜ := Nat.find_spec (P x)
+    have B' : (∀ i : ℕ, x ∉ t i) ↔ False := by
+      simp only [iff_false_iff, Classical.not_forall, not_not_mem]; exact ⟨n, hx⟩
+    simpa only [B', mem_union, mem_Inter, or_false_iff, compl_Union, mem_compl_iff] using B
+  congr
+  by_contra h
+  exact (t_disj (Ne.symm h)).le_bot ⟨hx, this⟩
 #align exists_measurable_piecewise_nat exists_measurable_piecewise_nat
 -/
 
@@ -1071,7 +1092,13 @@ theorem MeasurableSet.univ_pi [Countable δ] {t : ∀ i : δ, Set (π i)}
 
 #print measurableSet_pi_of_nonempty /-
 theorem measurableSet_pi_of_nonempty {s : Set δ} {t : ∀ i, Set (π i)} (hs : s.Countable)
-    (h : (pi s t).Nonempty) : MeasurableSet (pi s t) ↔ ∀ i ∈ s, MeasurableSet (t i) := by classical
+    (h : (pi s t).Nonempty) : MeasurableSet (pi s t) ↔ ∀ i ∈ s, MeasurableSet (t i) := by
+  classical
+  rcases h with ⟨f, hf⟩
+  refine' ⟨fun hst i hi => _, MeasurableSet.pi hs⟩
+  convert measurable_update f hst
+  rw [update_preimage_pi hi]
+  exact fun j hj _ => hf j hj
 #align measurable_set_pi_of_nonempty measurableSet_pi_of_nonempty
 -/
 
@@ -1287,7 +1314,12 @@ namespace MeasurableSpace
 /-- The sigma-algebra generated by a single set `s` is `{∅, s, sᶜ, univ}`. -/
 @[simp]
 theorem generateFrom_singleton (s : Set α) : generateFrom {s} = MeasurableSpace.comap (· ∈ s) ⊤ :=
-  by classical
+  by
+  classical
+  letI : MeasurableSpace α := generate_from {s}
+  refine' le_antisymm (generate_from_le fun t ht => ⟨{True}, trivial, by simp [ht.symm]⟩) _
+  rintro _ ⟨u, -, rfl⟩
+  exact (show MeasurableSet s from generate_measurable.basic _ <| mem_singleton s).Mem trivial
 #align measurable_space.generate_from_singleton MeasurableSpace.generateFrom_singleton
 -/
 
Diff
@@ -991,27 +991,6 @@ theorem exists_measurable_piecewise_nat {m : MeasurableSpace α} (t : ℕ → Se
     (t_meas : ∀ n, MeasurableSet (t n)) (t_disj : Pairwise (Disjoint on t)) (g : ℕ → β → α)
     (hg : ∀ n, Measurable (g n)) : ∃ f : β → α, Measurable f ∧ ∀ n x, x ∈ t n → f x = g n x := by
   classical
-  let p : ℕ → β → Prop := fun n x => x ∈ t n ∪ (⋃ k, t k)ᶜ
-  have M : ∀ n, MeasurableSet {x | p n x} := fun n =>
-    (t_meas n).union (MeasurableSet.compl (MeasurableSet.iUnion t_meas))
-  have P : ∀ x, ∃ n, p n x := by
-    intro x
-    by_cases H : ∀ i : ℕ, x ∉ t i
-    · exact ⟨0, Or.inr (by simpa only [mem_Inter, compl_Union] using H)⟩
-    · simp only [Classical.not_forall, not_not_mem] at H 
-      rcases H with ⟨n, hn⟩
-      exact ⟨n, Or.inl hn⟩
-  refine' ⟨fun x => g (Nat.find (P x)) x, Measurable.find hg M P, _⟩
-  intro n x hx
-  have : x ∈ t (Nat.find (P x)) :=
-    by
-    have B : x ∈ t (Nat.find (P x)) ∪ (⋃ k, t k)ᶜ := Nat.find_spec (P x)
-    have B' : (∀ i : ℕ, x ∉ t i) ↔ False := by
-      simp only [iff_false_iff, Classical.not_forall, not_not_mem]; exact ⟨n, hx⟩
-    simpa only [B', mem_union, mem_Inter, or_false_iff, compl_Union, mem_compl_iff] using B
-  congr
-  by_contra h
-  exact (t_disj (Ne.symm h)).le_bot ⟨hx, this⟩
 #align exists_measurable_piecewise_nat exists_measurable_piecewise_nat
 -/
 
@@ -1092,13 +1071,7 @@ theorem MeasurableSet.univ_pi [Countable δ] {t : ∀ i : δ, Set (π i)}
 
 #print measurableSet_pi_of_nonempty /-
 theorem measurableSet_pi_of_nonempty {s : Set δ} {t : ∀ i, Set (π i)} (hs : s.Countable)
-    (h : (pi s t).Nonempty) : MeasurableSet (pi s t) ↔ ∀ i ∈ s, MeasurableSet (t i) := by
-  classical
-  rcases h with ⟨f, hf⟩
-  refine' ⟨fun hst i hi => _, MeasurableSet.pi hs⟩
-  convert measurable_update f hst
-  rw [update_preimage_pi hi]
-  exact fun j hj _ => hf j hj
+    (h : (pi s t).Nonempty) : MeasurableSet (pi s t) ↔ ∀ i ∈ s, MeasurableSet (t i) := by classical
 #align measurable_set_pi_of_nonempty measurableSet_pi_of_nonempty
 -/
 
@@ -1314,12 +1287,7 @@ namespace MeasurableSpace
 /-- The sigma-algebra generated by a single set `s` is `{∅, s, sᶜ, univ}`. -/
 @[simp]
 theorem generateFrom_singleton (s : Set α) : generateFrom {s} = MeasurableSpace.comap (· ∈ s) ⊤ :=
-  by
-  classical
-  letI : MeasurableSpace α := generate_from {s}
-  refine' le_antisymm (generate_from_le fun t ht => ⟨{True}, trivial, by simp [ht.symm]⟩) _
-  rintro _ ⟨u, -, rfl⟩
-  exact (show MeasurableSet s from generate_measurable.basic _ <| mem_singleton s).Mem trivial
+  by classical
 #align measurable_space.generate_from_singleton MeasurableSpace.generateFrom_singleton
 -/
 
Diff
@@ -1938,20 +1938,20 @@ def finTwoArrow : (Fin 2 → α) ≃ᵐ α × α :=
 #align measurable_equiv.fin_two_arrow MeasurableEquiv.finTwoArrow
 -/
 
-#print MeasurableEquiv.piFinSuccAboveEquiv /-
+#print MeasurableEquiv.piFinSuccAbove /-
 /-- Measurable equivalence between `Π j : fin (n + 1), α j` and
 `α i × Π j : fin n, α (fin.succ_above i j)`. -/
 @[simps (config := { fullyApplied := false })]
-def piFinSuccAboveEquiv {n : ℕ} (α : Fin (n + 1) → Type _) [∀ i, MeasurableSpace (α i)]
+def piFinSuccAbove {n : ℕ} (α : Fin (n + 1) → Type _) [∀ i, MeasurableSpace (α i)]
     (i : Fin (n + 1)) : (∀ j, α j) ≃ᵐ α i × ∀ j, α (i.succAboveEmb j)
     where
-  toEquiv := piFinSuccAboveEquiv α i
+  toEquiv := piFinSuccAbove α i
   measurable_to_fun :=
     (measurable_pi_apply i).prod_mk <| measurable_pi_iff.2 fun j => measurable_pi_apply _
   measurable_inv_fun := by
     simp [measurable_pi_iff, i.forall_iff_succ_above, measurable_fst,
       (measurable_pi_apply _).comp measurable_snd]
-#align measurable_equiv.pi_fin_succ_above_equiv MeasurableEquiv.piFinSuccAboveEquiv
+#align measurable_equiv.pi_fin_succ_above_equiv MeasurableEquiv.piFinSuccAbove
 -/
 
 variable (π)
Diff
@@ -998,7 +998,7 @@ theorem exists_measurable_piecewise_nat {m : MeasurableSpace α} (t : ℕ → Se
     intro x
     by_cases H : ∀ i : ℕ, x ∉ t i
     · exact ⟨0, Or.inr (by simpa only [mem_Inter, compl_Union] using H)⟩
-    · simp only [not_forall, not_not_mem] at H 
+    · simp only [Classical.not_forall, not_not_mem] at H 
       rcases H with ⟨n, hn⟩
       exact ⟨n, Or.inl hn⟩
   refine' ⟨fun x => g (Nat.find (P x)) x, Measurable.find hg M P, _⟩
@@ -1006,8 +1006,8 @@ theorem exists_measurable_piecewise_nat {m : MeasurableSpace α} (t : ℕ → Se
   have : x ∈ t (Nat.find (P x)) :=
     by
     have B : x ∈ t (Nat.find (P x)) ∪ (⋃ k, t k)ᶜ := Nat.find_spec (P x)
-    have B' : (∀ i : ℕ, x ∉ t i) ↔ False := by simp only [iff_false_iff, not_forall, not_not_mem];
-      exact ⟨n, hx⟩
+    have B' : (∀ i : ℕ, x ∉ t i) ↔ False := by
+      simp only [iff_false_iff, Classical.not_forall, not_not_mem]; exact ⟨n, hx⟩
     simpa only [B', mem_union, mem_Inter, or_false_iff, compl_Union, mem_compl_iff] using B
   congr
   by_contra h
Diff
@@ -230,16 +230,20 @@ theorem le_map_comap : m ≤ (m.comap g).map g :=
 
 end Functors
 
+#print MeasurableSpace.map_const /-
 @[simp]
 theorem map_const {m} (b : β) : MeasurableSpace.map (fun a : α => b) m = ⊤ :=
   eq_top_iff.2 <| by rintro s hs;
     by_cases b ∈ s <;> change MeasurableSet (preimage _ _) <;> simp [*]
 #align measurable_space.map_const MeasurableSpace.map_const
+-/
 
+#print MeasurableSpace.comap_const /-
 @[simp]
 theorem comap_const {m} (b : β) : MeasurableSpace.comap (fun a : α => b) m = ⊥ :=
   eq_bot_iff.2 <| by rintro _ ⟨s, -, rfl⟩; by_cases b ∈ s <;> simp [*]
 #align measurable_space.comap_const MeasurableSpace.comap_const
+-/
 
 #print MeasurableSpace.comap_generateFrom /-
 theorem comap_generateFrom {f : α → β} {s : Set (Set β)} :
@@ -476,9 +480,11 @@ instance : MeasurableSpace PUnit :=
 instance : MeasurableSpace Bool :=
   ⊤
 
-instance Prop.measurableSpace : MeasurableSpace Prop :=
+#print Prop.instMeasurableSpace /-
+instance Prop.instMeasurableSpace : MeasurableSpace Prop :=
   ⊤
-#align Prop.measurable_space Prop.measurableSpace
+#align Prop.measurable_space Prop.instMeasurableSpace
+-/
 
 instance : MeasurableSpace ℕ :=
   ⊤
@@ -498,9 +504,11 @@ instance : MeasurableSingletonClass PUnit :=
 instance : MeasurableSingletonClass Bool :=
   ⟨fun _ => trivial⟩
 
-instance Prop.measurableSingletonClass : MeasurableSingletonClass Prop :=
+#print Prop.instMeasurableSingletonClass /-
+instance Prop.instMeasurableSingletonClass : MeasurableSingletonClass Prop :=
   ⟨fun _ => trivial⟩
-#align Prop.measurable_singleton_class Prop.measurableSingletonClass
+#align Prop.measurable_singleton_class Prop.instMeasurableSingletonClass
+-/
 
 instance : MeasurableSingletonClass ℕ :=
   ⟨fun _ => trivial⟩
@@ -567,6 +575,7 @@ theorem measurable_to_bool {f : α → Bool} (h : MeasurableSet (f ⁻¹' {true}
 #align measurable_to_bool measurable_to_bool
 -/
 
+#print measurable_to_prop /-
 theorem measurable_to_prop {f : α → Prop} (h : MeasurableSet (f ⁻¹' {True})) : Measurable f :=
   by
   refine' measurable_to_countable' fun x => _
@@ -576,6 +585,7 @@ theorem measurable_to_prop {f : α → Prop} (h : MeasurableSet (f ⁻¹' {True}
     simpa only [hx, ← preimage_compl, Prop.compl_singleton, not_true,
       preimage_singleton_false] using h.compl
 #align measurable_to_prop measurable_to_prop
+-/
 
 #print measurable_findGreatest' /-
 theorem measurable_findGreatest' {p : α → ℕ → Prop} [∀ x, DecidablePred (p x)] {N : ℕ}
@@ -1273,16 +1283,20 @@ variable {p : α → Prop}
 
 variable [MeasurableSpace α]
 
+#print measurableSet_setOf /-
 @[simp]
 theorem measurableSet_setOf : MeasurableSet {a | p a} ↔ Measurable p :=
   ⟨fun h => measurable_to_prop <| by simpa only [preimage_singleton_true], fun h => by
     simpa using h (measurable_set_singleton True)⟩
 #align measurable_set_set_of measurableSet_setOf
+-/
 
+#print measurable_mem /-
 @[simp]
 theorem measurable_mem : Measurable (· ∈ s) ↔ MeasurableSet s :=
   measurableSet_setOf.symm
 #align measurable_mem measurable_mem
+-/
 
 alias ⟨_, Measurable.setOf⟩ := measurableSet_setOf
 #align measurable.set_of Measurable.setOf
@@ -1296,6 +1310,7 @@ end Constructions
 
 namespace MeasurableSpace
 
+#print MeasurableSpace.generateFrom_singleton /-
 /-- The sigma-algebra generated by a single set `s` is `{∅, s, sᶜ, univ}`. -/
 @[simp]
 theorem generateFrom_singleton (s : Set α) : generateFrom {s} = MeasurableSpace.comap (· ∈ s) ⊤ :=
@@ -1306,6 +1321,7 @@ theorem generateFrom_singleton (s : Set α) : generateFrom {s} = MeasurableSpace
   rintro _ ⟨u, -, rfl⟩
   exact (show MeasurableSet s from generate_measurable.basic _ <| mem_singleton s).Mem trivial
 #align measurable_space.generate_from_singleton MeasurableSpace.generateFrom_singleton
+-/
 
 end MeasurableSpace
 
@@ -1646,10 +1662,12 @@ theorem measurableSet_image (e : α ≃ᵐ β) {s : Set α} : MeasurableSet (e '
 #align measurable_equiv.measurable_set_image MeasurableEquiv.measurableSet_image
 -/
 
+#print MeasurableEquiv.map_eq /-
 @[simp]
 theorem map_eq (e : α ≃ᵐ β) : MeasurableSpace.map e ‹_› = ‹_› :=
   e.Measurable.le_map.antisymm' fun s => e.measurableSet_preimage.1
 #align measurable_equiv.map_eq MeasurableEquiv.map_eq
+-/
 
 #print MeasurableEquiv.measurableEmbedding /-
 /-- A measurable equivalence is a measurable embedding. -/
@@ -1962,6 +1980,7 @@ def sumCompl {s : Set α} [DecidablePred s] (hs : MeasurableSet s) : Sum s (sᶜ
 #align measurable_equiv.sum_compl MeasurableEquiv.sumCompl
 -/
 
+#print MeasurableEquiv.ofInvolutive /-
 /-- Convert a measurable involutive function `f` to a measurable permutation with
 `to_fun = inv_fun = f`. See also `function.involutive.to_perm`. -/
 @[simps toEquiv]
@@ -1970,18 +1989,23 @@ def ofInvolutive (f : α → α) (hf : Involutive f) (hf' : Measurable f) : α 
     measurable_to_fun := hf'
     measurable_inv_fun := hf' }
 #align measurable_equiv.of_involutive MeasurableEquiv.ofInvolutive
+-/
 
+#print MeasurableEquiv.ofInvolutive_apply /-
 @[simp]
 theorem ofInvolutive_apply (f : α → α) (hf : Involutive f) (hf' : Measurable f) (a : α) :
     ofInvolutive f hf hf' a = f a :=
   rfl
 #align measurable_equiv.of_involutive_apply MeasurableEquiv.ofInvolutive_apply
+-/
 
+#print MeasurableEquiv.ofInvolutive_symm /-
 @[simp]
 theorem ofInvolutive_symm (f : α → α) (hf : Involutive f) (hf' : Measurable f) :
     (ofInvolutive f hf hf').symm = ofInvolutive f hf hf' :=
   rfl
 #align measurable_equiv.of_involutive_symm MeasurableEquiv.ofInvolutive_symm
+-/
 
 end MeasurableEquiv
 
@@ -1989,12 +2013,15 @@ namespace MeasurableEmbedding
 
 variable [MeasurableSpace α] [MeasurableSpace β] [MeasurableSpace γ] {f : α → β} {g : β → α}
 
+#print MeasurableEmbedding.comap_eq /-
 @[simp]
 theorem comap_eq (hf : MeasurableEmbedding f) : MeasurableSpace.comap f ‹_› = ‹_› :=
   hf.Measurable.comap_le.antisymm fun s h =>
     ⟨_, hf.measurableSet_image' h, hf.Injective.preimage_image _⟩
 #align measurable_embedding.comap_eq MeasurableEmbedding.comap_eq
+-/
 
+#print MeasurableEmbedding.iff_comap_eq /-
 theorem iff_comap_eq :
     MeasurableEmbedding f ↔
       Injective f ∧ MeasurableSpace.comap f ‹_› = ‹_› ∧ MeasurableSet (range f) :=
@@ -2006,6 +2033,7 @@ theorem iff_comap_eq :
         rintro _ ⟨s, hs, rfl⟩
         simpa only [image_preimage_eq_inter_range] using hs.inter hf.2.2 }⟩
 #align measurable_embedding.iff_comap_eq MeasurableEmbedding.iff_comap_eq
+-/
 
 #print MeasurableEmbedding.equivImage /-
 /-- A set is equivalent to its image under a function `f` as measurable spaces,
@@ -2110,6 +2138,7 @@ noncomputable def schroederBernstein {f : α → β} {g : β → α} (hf : Measu
 
 end MeasurableEmbedding
 
+#print MeasurableSpace.comap_compl /-
 theorem MeasurableSpace.comap_compl {m' : MeasurableSpace β} [BooleanAlgebra β]
     (h : Measurable (compl : β → β)) (f : α → β) :
     MeasurableSpace.comap (fun a => f aᶜ) inferInstance = MeasurableSpace.comap f inferInstance :=
@@ -2118,12 +2147,15 @@ theorem MeasurableSpace.comap_compl {m' : MeasurableSpace β} [BooleanAlgebra β
   congr
   exact (MeasurableEquiv.ofInvolutive _ compl_involutive h).MeasurableEmbedding.comap_eq
 #align measurable_space.comap_compl MeasurableSpace.comap_compl
+-/
 
+#print MeasurableSpace.comap_not /-
 @[simp]
 theorem MeasurableSpace.comap_not (p : α → Prop) :
     MeasurableSpace.comap (fun a => ¬p a) inferInstance = MeasurableSpace.comap p inferInstance :=
   MeasurableSpace.comap_compl (fun _ _ => trivial) _
 #align measurable_space.comap_not MeasurableSpace.comap_not
+-/
 
 section CountablyGenerated
 
Diff
@@ -3,14 +3,14 @@ Copyright (c) 2017 Johannes Hölzl. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Mario Carneiro
 -/
-import Mathbin.Data.Prod.Tprod
-import Mathbin.GroupTheory.Coset
-import Mathbin.Logic.Equiv.Fin
-import Mathbin.Logic.Lemmas
-import Mathbin.MeasureTheory.MeasurableSpaceDef
-import Mathbin.Order.Filter.SmallSets
-import Mathbin.Order.LiminfLimsup
-import Mathbin.MeasureTheory.Tactic
+import Data.Prod.Tprod
+import GroupTheory.Coset
+import Logic.Equiv.Fin
+import Logic.Lemmas
+import MeasureTheory.MeasurableSpaceDef
+import Order.Filter.SmallSets
+import Order.LiminfLimsup
+import MeasureTheory.Tactic
 
 #align_import measure_theory.measurable_space from "leanprover-community/mathlib"@"001ffdc42920050657fd45bd2b8bfbec8eaaeb29"
 
Diff
@@ -6,12 +6,13 @@ Authors: Johannes Hölzl, Mario Carneiro
 import Mathbin.Data.Prod.Tprod
 import Mathbin.GroupTheory.Coset
 import Mathbin.Logic.Equiv.Fin
+import Mathbin.Logic.Lemmas
 import Mathbin.MeasureTheory.MeasurableSpaceDef
 import Mathbin.Order.Filter.SmallSets
 import Mathbin.Order.LiminfLimsup
 import Mathbin.MeasureTheory.Tactic
 
-#align_import measure_theory.measurable_space from "leanprover-community/mathlib"@"c14c8fcde993801fca8946b0d80131a1a81d1520"
+#align_import measure_theory.measurable_space from "leanprover-community/mathlib"@"001ffdc42920050657fd45bd2b8bfbec8eaaeb29"
 
 /-!
 # Measurable spaces and measurable functions
@@ -229,6 +230,17 @@ theorem le_map_comap : m ≤ (m.comap g).map g :=
 
 end Functors
 
+@[simp]
+theorem map_const {m} (b : β) : MeasurableSpace.map (fun a : α => b) m = ⊤ :=
+  eq_top_iff.2 <| by rintro s hs;
+    by_cases b ∈ s <;> change MeasurableSet (preimage _ _) <;> simp [*]
+#align measurable_space.map_const MeasurableSpace.map_const
+
+@[simp]
+theorem comap_const {m} (b : β) : MeasurableSpace.comap (fun a : α => b) m = ⊥ :=
+  eq_bot_iff.2 <| by rintro _ ⟨s, -, rfl⟩; by_cases b ∈ s <;> simp [*]
+#align measurable_space.comap_const MeasurableSpace.comap_const
+
 #print MeasurableSpace.comap_generateFrom /-
 theorem comap_generateFrom {f : α → β} {s : Set (Set β)} :
     (generateFrom s).comap f = generateFrom (preimage f '' s) :=
@@ -464,6 +476,10 @@ instance : MeasurableSpace PUnit :=
 instance : MeasurableSpace Bool :=
   ⊤
 
+instance Prop.measurableSpace : MeasurableSpace Prop :=
+  ⊤
+#align Prop.measurable_space Prop.measurableSpace
+
 instance : MeasurableSpace ℕ :=
   ⊤
 
@@ -482,6 +498,10 @@ instance : MeasurableSingletonClass PUnit :=
 instance : MeasurableSingletonClass Bool :=
   ⟨fun _ => trivial⟩
 
+instance Prop.measurableSingletonClass : MeasurableSingletonClass Prop :=
+  ⟨fun _ => trivial⟩
+#align Prop.measurable_singleton_class Prop.measurableSingletonClass
+
 instance : MeasurableSingletonClass ℕ :=
   ⟨fun _ => trivial⟩
 
@@ -547,6 +567,16 @@ theorem measurable_to_bool {f : α → Bool} (h : MeasurableSet (f ⁻¹' {true}
 #align measurable_to_bool measurable_to_bool
 -/
 
+theorem measurable_to_prop {f : α → Prop} (h : MeasurableSet (f ⁻¹' {True})) : Measurable f :=
+  by
+  refine' measurable_to_countable' fun x => _
+  by_cases hx : x
+  · simpa [hx] using h
+  ·
+    simpa only [hx, ← preimage_compl, Prop.compl_singleton, not_true,
+      preimage_singleton_false] using h.compl
+#align measurable_to_prop measurable_to_prop
+
 #print measurable_findGreatest' /-
 theorem measurable_findGreatest' {p : α → ℕ → Prop} [∀ x, DecidablePred (p x)] {N : ℕ}
     (hN : ∀ k ≤ N, MeasurableSet {x | Nat.findGreatest (p x) N = k}) :
@@ -1237,8 +1267,48 @@ end Sum
 instance {α} {β : α → Type _} [m : ∀ a, MeasurableSpace (β a)] : MeasurableSpace (Sigma β) :=
   ⨅ a, (m a).map (Sigma.mk a)
 
+section Prop
+
+variable {p : α → Prop}
+
+variable [MeasurableSpace α]
+
+@[simp]
+theorem measurableSet_setOf : MeasurableSet {a | p a} ↔ Measurable p :=
+  ⟨fun h => measurable_to_prop <| by simpa only [preimage_singleton_true], fun h => by
+    simpa using h (measurable_set_singleton True)⟩
+#align measurable_set_set_of measurableSet_setOf
+
+@[simp]
+theorem measurable_mem : Measurable (· ∈ s) ↔ MeasurableSet s :=
+  measurableSet_setOf.symm
+#align measurable_mem measurable_mem
+
+alias ⟨_, Measurable.setOf⟩ := measurableSet_setOf
+#align measurable.set_of Measurable.setOf
+
+alias ⟨_, MeasurableSet.mem⟩ := measurable_mem
+#align measurable_set.mem MeasurableSet.mem
+
+end Prop
+
 end Constructions
 
+namespace MeasurableSpace
+
+/-- The sigma-algebra generated by a single set `s` is `{∅, s, sᶜ, univ}`. -/
+@[simp]
+theorem generateFrom_singleton (s : Set α) : generateFrom {s} = MeasurableSpace.comap (· ∈ s) ⊤ :=
+  by
+  classical
+  letI : MeasurableSpace α := generate_from {s}
+  refine' le_antisymm (generate_from_le fun t ht => ⟨{True}, trivial, by simp [ht.symm]⟩) _
+  rintro _ ⟨u, -, rfl⟩
+  exact (show MeasurableSet s from generate_measurable.basic _ <| mem_singleton s).Mem trivial
+#align measurable_space.generate_from_singleton MeasurableSpace.generateFrom_singleton
+
+end MeasurableSpace
+
 #print MeasurableEmbedding /-
 /-- A map `f : α → β` is called a *measurable embedding* if it is injective, measurable, and sends
 measurable sets to measurable sets. The latter assumption can be replaced with “`f` has measurable
@@ -1576,6 +1646,11 @@ theorem measurableSet_image (e : α ≃ᵐ β) {s : Set α} : MeasurableSet (e '
 #align measurable_equiv.measurable_set_image MeasurableEquiv.measurableSet_image
 -/
 
+@[simp]
+theorem map_eq (e : α ≃ᵐ β) : MeasurableSpace.map e ‹_› = ‹_› :=
+  e.Measurable.le_map.antisymm' fun s => e.measurableSet_preimage.1
+#align measurable_equiv.map_eq MeasurableEquiv.map_eq
+
 #print MeasurableEquiv.measurableEmbedding /-
 /-- A measurable equivalence is a measurable embedding. -/
 protected theorem measurableEmbedding (e : α ≃ᵐ β) : MeasurableEmbedding e :=
@@ -1887,12 +1962,51 @@ def sumCompl {s : Set α} [DecidablePred s] (hs : MeasurableSet s) : Sum s (sᶜ
 #align measurable_equiv.sum_compl MeasurableEquiv.sumCompl
 -/
 
+/-- Convert a measurable involutive function `f` to a measurable permutation with
+`to_fun = inv_fun = f`. See also `function.involutive.to_perm`. -/
+@[simps toEquiv]
+def ofInvolutive (f : α → α) (hf : Involutive f) (hf' : Measurable f) : α ≃ᵐ α :=
+  { hf.toPerm _ with
+    measurable_to_fun := hf'
+    measurable_inv_fun := hf' }
+#align measurable_equiv.of_involutive MeasurableEquiv.ofInvolutive
+
+@[simp]
+theorem ofInvolutive_apply (f : α → α) (hf : Involutive f) (hf' : Measurable f) (a : α) :
+    ofInvolutive f hf hf' a = f a :=
+  rfl
+#align measurable_equiv.of_involutive_apply MeasurableEquiv.ofInvolutive_apply
+
+@[simp]
+theorem ofInvolutive_symm (f : α → α) (hf : Involutive f) (hf' : Measurable f) :
+    (ofInvolutive f hf hf').symm = ofInvolutive f hf hf' :=
+  rfl
+#align measurable_equiv.of_involutive_symm MeasurableEquiv.ofInvolutive_symm
+
 end MeasurableEquiv
 
 namespace MeasurableEmbedding
 
 variable [MeasurableSpace α] [MeasurableSpace β] [MeasurableSpace γ] {f : α → β} {g : β → α}
 
+@[simp]
+theorem comap_eq (hf : MeasurableEmbedding f) : MeasurableSpace.comap f ‹_› = ‹_› :=
+  hf.Measurable.comap_le.antisymm fun s h =>
+    ⟨_, hf.measurableSet_image' h, hf.Injective.preimage_image _⟩
+#align measurable_embedding.comap_eq MeasurableEmbedding.comap_eq
+
+theorem iff_comap_eq :
+    MeasurableEmbedding f ↔
+      Injective f ∧ MeasurableSpace.comap f ‹_› = ‹_› ∧ MeasurableSet (range f) :=
+  ⟨fun hf => ⟨hf.Injective, hf.comap_eq, hf.measurableSet_range⟩, fun hf =>
+    { Injective := hf.1
+      Measurable := by rw [← hf.2.1]; exact comap_measurable f
+      measurableSet_image' := by
+        rw [← hf.2.1]
+        rintro _ ⟨s, hs, rfl⟩
+        simpa only [image_preimage_eq_inter_range] using hs.inter hf.2.2 }⟩
+#align measurable_embedding.iff_comap_eq MeasurableEmbedding.iff_comap_eq
+
 #print MeasurableEmbedding.equivImage /-
 /-- A set is equivalent to its image under a function `f` as measurable spaces,
   if `f` is a measurable embedding -/
@@ -1996,6 +2110,21 @@ noncomputable def schroederBernstein {f : α → β} {g : β → α} (hf : Measu
 
 end MeasurableEmbedding
 
+theorem MeasurableSpace.comap_compl {m' : MeasurableSpace β} [BooleanAlgebra β]
+    (h : Measurable (compl : β → β)) (f : α → β) :
+    MeasurableSpace.comap (fun a => f aᶜ) inferInstance = MeasurableSpace.comap f inferInstance :=
+  by
+  rw [← MeasurableSpace.comap_comp]
+  congr
+  exact (MeasurableEquiv.ofInvolutive _ compl_involutive h).MeasurableEmbedding.comap_eq
+#align measurable_space.comap_compl MeasurableSpace.comap_compl
+
+@[simp]
+theorem MeasurableSpace.comap_not (p : α → Prop) :
+    MeasurableSpace.comap (fun a => ¬p a) inferInstance = MeasurableSpace.comap p inferInstance :=
+  MeasurableSpace.comap_compl (fun _ _ => trivial) _
+#align measurable_space.comap_not MeasurableSpace.comap_not
+
 section CountablyGenerated
 
 namespace MeasurableSpace
Diff
@@ -252,7 +252,7 @@ theorem measurable_iff_le_map {m₁ : MeasurableSpace α} {m₂ : MeasurableSpac
 #align measurable_iff_le_map measurable_iff_le_map
 -/
 
-alias measurable_iff_le_map ↔ Measurable.le_map Measurable.of_le_map
+alias ⟨Measurable.le_map, Measurable.of_le_map⟩ := measurable_iff_le_map
 #align measurable.le_map Measurable.le_map
 #align measurable.of_le_map Measurable.of_le_map
 
@@ -263,7 +263,7 @@ theorem measurable_iff_comap_le {m₁ : MeasurableSpace α} {m₂ : MeasurableSp
 #align measurable_iff_comap_le measurable_iff_comap_le
 -/
 
-alias measurable_iff_comap_le ↔ Measurable.comap_le Measurable.of_comap_le
+alias ⟨Measurable.comap_le, Measurable.of_comap_le⟩ := measurable_iff_comap_le
 #align measurable.comap_le Measurable.comap_le
 #align measurable.of_comap_le Measurable.of_comap_le
 
@@ -2117,8 +2117,8 @@ theorem principal_isMeasurablyGenerated_iff {s : Set α} :
 #align filter.principal_is_measurably_generated_iff Filter.principal_isMeasurablyGenerated_iff
 -/
 
-alias principal_is_measurably_generated_iff ↔ _
-  _root_.measurable_set.principal_is_measurably_generated
+alias ⟨_, _root_.measurable_set.principal_is_measurably_generated⟩ :=
+  principal_is_measurably_generated_iff
 #align measurable_set.principal_is_measurably_generated MeasurableSet.principal_isMeasurablyGenerated
 
 #print Filter.iInf_isMeasurablyGenerated /-
Diff
@@ -2,11 +2,6 @@
 Copyright (c) 2017 Johannes Hölzl. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Mario Carneiro
-
-! This file was ported from Lean 3 source module measure_theory.measurable_space
-! leanprover-community/mathlib commit c14c8fcde993801fca8946b0d80131a1a81d1520
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Data.Prod.Tprod
 import Mathbin.GroupTheory.Coset
@@ -16,6 +11,8 @@ import Mathbin.Order.Filter.SmallSets
 import Mathbin.Order.LiminfLimsup
 import Mathbin.MeasureTheory.Tactic
 
+#align_import measure_theory.measurable_space from "leanprover-community/mathlib"@"c14c8fcde993801fca8946b0d80131a1a81d1520"
+
 /-!
 # Measurable spaces and measurable functions
 
Diff
@@ -1853,7 +1853,7 @@ def finTwoArrow : (Fin 2 → α) ≃ᵐ α × α :=
 `α i × Π j : fin n, α (fin.succ_above i j)`. -/
 @[simps (config := { fullyApplied := false })]
 def piFinSuccAboveEquiv {n : ℕ} (α : Fin (n + 1) → Type _) [∀ i, MeasurableSpace (α i)]
-    (i : Fin (n + 1)) : (∀ j, α j) ≃ᵐ α i × ∀ j, α (i.succAbove j)
+    (i : Fin (n + 1)) : (∀ j, α j) ≃ᵐ α i × ∀ j, α (i.succAboveEmb j)
     where
   toEquiv := piFinSuccAboveEquiv α i
   measurable_to_fun :=
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Mario Carneiro
 
 ! This file was ported from Lean 3 source module measure_theory.measurable_space
-! leanprover-community/mathlib commit 3905fa80e62c0898131285baab35559fbc4e5cda
+! leanprover-community/mathlib commit c14c8fcde993801fca8946b0d80131a1a81d1520
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -317,7 +317,7 @@ theorem measurable_of_subsingleton_codomain [Subsingleton β] (f : α → β) :
 -/
 
 #print measurable_one /-
-@[to_additive]
+@[measurability, to_additive]
 theorem measurable_one [One α] : Measurable (1 : β → α) :=
   @measurable_const _ _ _ _ 1
 #align measurable_one measurable_one
Diff
@@ -141,66 +141,94 @@ theorem comap_comp {f : β → α} {g : γ → β} : (m.comap f).comap g = m.com
 #align measurable_space.comap_comp MeasurableSpace.comap_comp
 -/
 
+#print MeasurableSpace.comap_le_iff_le_map /-
 theorem comap_le_iff_le_map {f : α → β} : m'.comap f ≤ m ↔ m' ≤ m.map f :=
   ⟨fun h s hs => h _ ⟨_, hs, rfl⟩, fun h s ⟨t, ht, HEq⟩ => HEq ▸ h _ ht⟩
 #align measurable_space.comap_le_iff_le_map MeasurableSpace.comap_le_iff_le_map
+-/
 
+#print MeasurableSpace.gc_comap_map /-
 theorem gc_comap_map (f : α → β) :
     GaloisConnection (MeasurableSpace.comap f) (MeasurableSpace.map f) := fun f g =>
   comap_le_iff_le_map
 #align measurable_space.gc_comap_map MeasurableSpace.gc_comap_map
+-/
 
+#print MeasurableSpace.map_mono /-
 theorem map_mono (h : m₁ ≤ m₂) : m₁.map f ≤ m₂.map f :=
   (gc_comap_map f).monotone_u h
 #align measurable_space.map_mono MeasurableSpace.map_mono
+-/
 
+#print MeasurableSpace.monotone_map /-
 theorem monotone_map : Monotone (MeasurableSpace.map f) := fun a b h => map_mono h
 #align measurable_space.monotone_map MeasurableSpace.monotone_map
+-/
 
+#print MeasurableSpace.comap_mono /-
 theorem comap_mono (h : m₁ ≤ m₂) : m₁.comap g ≤ m₂.comap g :=
   (gc_comap_map g).monotone_l h
 #align measurable_space.comap_mono MeasurableSpace.comap_mono
+-/
 
+#print MeasurableSpace.monotone_comap /-
 theorem monotone_comap : Monotone (MeasurableSpace.comap g) := fun a b h => comap_mono h
 #align measurable_space.monotone_comap MeasurableSpace.monotone_comap
+-/
 
+#print MeasurableSpace.comap_bot /-
 @[simp]
 theorem comap_bot : (⊥ : MeasurableSpace α).comap g = ⊥ :=
   (gc_comap_map g).l_bot
 #align measurable_space.comap_bot MeasurableSpace.comap_bot
+-/
 
+#print MeasurableSpace.comap_sup /-
 @[simp]
 theorem comap_sup : (m₁ ⊔ m₂).comap g = m₁.comap g ⊔ m₂.comap g :=
   (gc_comap_map g).l_sup
 #align measurable_space.comap_sup MeasurableSpace.comap_sup
+-/
 
+#print MeasurableSpace.comap_iSup /-
 @[simp]
 theorem comap_iSup {m : ι → MeasurableSpace α} : (⨆ i, m i).comap g = ⨆ i, (m i).comap g :=
   (gc_comap_map g).l_iSup
 #align measurable_space.comap_supr MeasurableSpace.comap_iSup
+-/
 
+#print MeasurableSpace.map_top /-
 @[simp]
 theorem map_top : (⊤ : MeasurableSpace α).map f = ⊤ :=
   (gc_comap_map f).u_top
 #align measurable_space.map_top MeasurableSpace.map_top
+-/
 
+#print MeasurableSpace.map_inf /-
 @[simp]
 theorem map_inf : (m₁ ⊓ m₂).map f = m₁.map f ⊓ m₂.map f :=
   (gc_comap_map f).u_inf
 #align measurable_space.map_inf MeasurableSpace.map_inf
+-/
 
+#print MeasurableSpace.map_iInf /-
 @[simp]
 theorem map_iInf {m : ι → MeasurableSpace α} : (⨅ i, m i).map f = ⨅ i, (m i).map f :=
   (gc_comap_map f).u_iInf
 #align measurable_space.map_infi MeasurableSpace.map_iInf
+-/
 
+#print MeasurableSpace.comap_map_le /-
 theorem comap_map_le : (m.map f).comap f ≤ m :=
   (gc_comap_map f).l_u_le _
 #align measurable_space.comap_map_le MeasurableSpace.comap_map_le
+-/
 
+#print MeasurableSpace.le_map_comap /-
 theorem le_map_comap : m ≤ (m.comap g).map g :=
   (gc_comap_map g).le_u_l _
 #align measurable_space.le_map_comap MeasurableSpace.le_map_comap
+-/
 
 end Functors
 
@@ -220,19 +248,23 @@ section MeasurableFunctions
 
 open MeasurableSpace
 
+#print measurable_iff_le_map /-
 theorem measurable_iff_le_map {m₁ : MeasurableSpace α} {m₂ : MeasurableSpace β} {f : α → β} :
     Measurable f ↔ m₂ ≤ m₁.map f :=
   Iff.rfl
 #align measurable_iff_le_map measurable_iff_le_map
+-/
 
 alias measurable_iff_le_map ↔ Measurable.le_map Measurable.of_le_map
 #align measurable.le_map Measurable.le_map
 #align measurable.of_le_map Measurable.of_le_map
 
+#print measurable_iff_comap_le /-
 theorem measurable_iff_comap_le {m₁ : MeasurableSpace α} {m₂ : MeasurableSpace β} {f : α → β} :
     Measurable f ↔ m₂.comap f ≤ m₁ :=
   comap_le_iff_le_map.symm
 #align measurable_iff_comap_le measurable_iff_comap_le
+-/
 
 alias measurable_iff_comap_le ↔ Measurable.comap_le Measurable.of_comap_le
 #align measurable.comap_le Measurable.comap_le
@@ -244,19 +276,25 @@ theorem comap_measurable {m : MeasurableSpace β} (f : α → β) : measurable[m
 #align comap_measurable comap_measurable
 -/
 
+#print Measurable.mono /-
 theorem Measurable.mono {ma ma' : MeasurableSpace α} {mb mb' : MeasurableSpace β} {f : α → β}
     (hf : @Measurable α β ma mb f) (ha : ma ≤ ma') (hb : mb' ≤ mb) : @Measurable α β ma' mb' f :=
   fun t ht => ha _ <| hf <| hb _ ht
 #align measurable.mono Measurable.mono
+-/
 
+#print measurable_from_top /-
 @[measurability]
 theorem measurable_from_top [MeasurableSpace β] {f : α → β} : measurable[⊤] f := fun s hs => trivial
 #align measurable_from_top measurable_from_top
+-/
 
+#print measurable_generateFrom /-
 theorem measurable_generateFrom [MeasurableSpace α] {s : Set (Set β)} {f : α → β}
     (h : ∀ t ∈ s, MeasurableSet (f ⁻¹' t)) : @Measurable _ _ _ (generateFrom s) f :=
   Measurable.of_le_map <| generateFrom_le h
 #align measurable_generate_from measurable_generateFrom
+-/
 
 variable {f g : α → β}
 
@@ -264,10 +302,12 @@ section TypeclassMeasurableSpace
 
 variable [MeasurableSpace α] [MeasurableSpace β] [MeasurableSpace γ]
 
+#print Subsingleton.measurable /-
 @[nontriviality, measurability]
 theorem Subsingleton.measurable [Subsingleton α] : Measurable f := fun s hs =>
   @Subsingleton.measurableSet α _ _ _
 #align subsingleton.measurable Subsingleton.measurable
+-/
 
 #print measurable_of_subsingleton_codomain /-
 @[nontriviality, measurability]
@@ -276,15 +316,19 @@ theorem measurable_of_subsingleton_codomain [Subsingleton β] (f : α → β) :
 #align measurable_of_subsingleton_codomain measurable_of_subsingleton_codomain
 -/
 
+#print measurable_one /-
 @[to_additive]
 theorem measurable_one [One α] : Measurable (1 : β → α) :=
   @measurable_const _ _ _ _ 1
 #align measurable_one measurable_one
 #align measurable_zero measurable_zero
+-/
 
+#print measurable_of_empty /-
 theorem measurable_of_empty [IsEmpty α] (f : α → β) : Measurable f :=
   Subsingleton.measurable
 #align measurable_of_empty measurable_of_empty
+-/
 
 #print measurable_of_empty_codomain /-
 theorem measurable_of_empty_codomain [IsEmpty β] (f : α → β) : Measurable f :=
@@ -293,6 +337,7 @@ theorem measurable_of_empty_codomain [IsEmpty β] (f : α → β) : Measurable f
 #align measurable_of_empty_codomain measurable_of_empty_codomain
 -/
 
+#print measurable_const' /-
 /-- A version of `measurable_const` that assumes `f x = f y` for all `x, y`. This version works
 for functions between empty types. -/
 theorem measurable_const' {f : β → α} (hf : ∀ x y, f x = f y) : Measurable f :=
@@ -301,31 +346,38 @@ theorem measurable_const' {f : β → α} (hf : ∀ x y, f x = f y) : Measurable
   · exact measurable_of_empty f
   · convert measurable_const; exact funext fun x => hf x h.some
 #align measurable_const' measurable_const'
+-/
 
+#print measurable_natCast /-
 @[measurability]
 theorem measurable_natCast [NatCast α] (n : ℕ) : Measurable (n : β → α) :=
   @measurable_const α _ _ _ n
 #align measurable_nat_cast measurable_natCast
+-/
 
+#print measurable_intCast /-
 @[measurability]
 theorem measurable_intCast [IntCast α] (n : ℤ) : Measurable (n : β → α) :=
   @measurable_const α _ _ _ n
 #align measurable_int_cast measurable_intCast
+-/
 
+#print measurable_of_finite /-
 theorem measurable_of_finite [Finite α] [MeasurableSingletonClass α] (f : α → β) : Measurable f :=
   fun s hs => (f ⁻¹' s).toFinite.MeasurableSet
 #align measurable_of_finite measurable_of_finite
+-/
 
+#print measurable_of_countable /-
 theorem measurable_of_countable [Countable α] [MeasurableSingletonClass α] (f : α → β) :
     Measurable f := fun s hs => (f ⁻¹' s).to_countable.MeasurableSet
 #align measurable_of_countable measurable_of_countable
+-/
 
 end TypeclassMeasurableSpace
 
 variable {m : MeasurableSpace α}
 
-include m
-
 #print Measurable.iterate /-
 @[measurability]
 theorem Measurable.iterate {f : α → α} (hf : Measurable f) : ∀ n, Measurable (f^[n])
@@ -336,8 +388,6 @@ theorem Measurable.iterate {f : α → α} (hf : Measurable f) : ∀ n, Measurab
 
 variable {mβ : MeasurableSpace β}
 
-include mβ
-
 #print measurableSet_preimage /-
 @[measurability]
 theorem measurableSet_preimage {t : Set β} (hf : Measurable f) (ht : MeasurableSet t) :
@@ -346,6 +396,7 @@ theorem measurableSet_preimage {t : Set β} (hf : Measurable f) (ht : Measurable
 #align measurable_set_preimage measurableSet_preimage
 -/
 
+#print Measurable.piecewise /-
 @[measurability]
 theorem Measurable.piecewise {_ : DecidablePred (· ∈ s)} (hs : MeasurableSet s) (hf : Measurable f)
     (hg : Measurable g) : Measurable (piecewise s f g) :=
@@ -354,7 +405,9 @@ theorem Measurable.piecewise {_ : DecidablePred (· ∈ s)} (hs : MeasurableSet
   rw [piecewise_preimage]
   exact hs.ite (hf ht) (hg ht)
 #align measurable.piecewise Measurable.piecewise
+-/
 
+#print Measurable.ite /-
 /-- this is slightly different from `measurable.piecewise`. It can be used to show
 `measurable (ite (x=0) 0 1)` by
 `exact measurable.ite (measurable_set_singleton 0) measurable_const measurable_const`,
@@ -363,6 +416,7 @@ theorem Measurable.ite {p : α → Prop} {_ : DecidablePred p} (hp : MeasurableS
     (hf : Measurable f) (hg : Measurable g) : Measurable fun x => ite (p x) (f x) (g x) :=
   Measurable.piecewise hp hf hg
 #align measurable.ite Measurable.ite
+-/
 
 #print Measurable.indicator /-
 @[measurability]
@@ -381,6 +435,7 @@ theorem measurableSet_mulSupport [One β] [MeasurableSingletonClass β] (hf : Me
 #align measurable_set_support measurableSet_support
 -/
 
+#print Measurable.measurable_of_countable_ne /-
 /-- If a function coincides with a measurable function outside of a countable set, it is
 measurable. -/
 theorem Measurable.measurable_of_countable_ne [MeasurableSingletonClass α] (hf : Measurable f)
@@ -396,6 +451,7 @@ theorem Measurable.measurable_of_countable_ne [MeasurableSingletonClass α] (hf
   rw [this]
   exact (hf ht).inter h.measurable_set.of_compl
 #align measurable.measurable_of_countable_ne Measurable.measurable_of_countable_ne
+-/
 
 end MeasurableFunctions
 
@@ -438,6 +494,7 @@ instance : MeasurableSingletonClass ℤ :=
 instance : MeasurableSingletonClass ℚ :=
   ⟨fun _ => trivial⟩
 
+#print measurable_to_countable /-
 theorem measurable_to_countable [MeasurableSpace α] [Countable α] [MeasurableSpace β] {f : β → α}
     (h : ∀ y, MeasurableSet (f ⁻¹' {f y})) : Measurable f :=
   by
@@ -449,11 +506,14 @@ theorem measurable_to_countable [MeasurableSpace α] [Countable α] [MeasurableS
     apply h
   · simp only [preimage_singleton_eq_empty.2 hyf, MeasurableSet.empty]
 #align measurable_to_countable measurable_to_countable
+-/
 
+#print measurable_to_countable' /-
 theorem measurable_to_countable' [MeasurableSpace α] [Countable α] [MeasurableSpace β] {f : β → α}
     (h : ∀ x, MeasurableSet (f ⁻¹' {x})) : Measurable f :=
   measurable_to_countable fun y => h (f y)
 #align measurable_to_countable' measurable_to_countable'
+-/
 
 #print measurable_unit /-
 @[measurability]
@@ -549,10 +609,12 @@ theorem measurableSet_quotient {s : Setoid α} {t : Set (Quotient s)} :
 #align measurable_set_quotient measurableSet_quotient
 -/
 
+#print measurable_from_quotient /-
 theorem measurable_from_quotient {s : Setoid α} {f : Quotient s → β} :
     Measurable f ↔ Measurable (f ∘ Quotient.mk'') :=
   Iff.rfl
 #align measurable_from_quotient measurable_from_quotient
+-/
 
 #print measurable_quotient_mk' /-
 @[measurability]
@@ -624,8 +686,6 @@ end
 
 variable {m : MeasurableSpace α} {mβ : MeasurableSpace β}
 
-include m
-
 #print MeasurableSet.subtype_image /-
 theorem MeasurableSet.subtype_image {s : Set α} {t : Set s} (hs : MeasurableSet s) :
     MeasurableSet t → MeasurableSet ((coe : s → α) '' t)
@@ -636,8 +696,6 @@ theorem MeasurableSet.subtype_image {s : Set α} {t : Set s} (hs : MeasurableSet
 #align measurable_set.subtype_image MeasurableSet.subtype_image
 -/
 
-include mβ
-
 #print Measurable.subtype_coe /-
 @[measurability]
 theorem Measurable.subtype_coe {p : β → Prop} {f : α → Subtype p} (hf : Measurable f) :
@@ -646,12 +704,15 @@ theorem Measurable.subtype_coe {p : β → Prop} {f : α → Subtype p} (hf : Me
 #align measurable.subtype_coe Measurable.subtype_coe
 -/
 
+#print Measurable.subtype_mk /-
 @[measurability]
 theorem Measurable.subtype_mk {p : β → Prop} {f : α → β} (hf : Measurable f) {h : ∀ x, p (f x)} :
     Measurable fun x => (⟨f x, h x⟩ : Subtype p) := fun t ⟨s, hs⟩ =>
   hs.2 ▸ by simp only [← preimage_comp, (· ∘ ·), Subtype.coe_mk, hf hs.1]
 #align measurable.subtype_mk Measurable.subtype_mk
+-/
 
+#print measurable_of_measurable_union_cover /-
 theorem measurable_of_measurable_union_cover {f : α → β} (s t : Set α) (hs : MeasurableSet s)
     (ht : MeasurableSet t) (h : univ ⊆ s ∪ t) (hc : Measurable fun a : s => f a)
     (hd : Measurable fun a : t => f a) : Measurable f :=
@@ -662,28 +723,37 @@ theorem measurable_of_measurable_union_cover {f : α → β} (s t : Set α) (hs
   rw [image_preimage_eq_inter_range, image_preimage_eq_inter_range, Subtype.range_coe,
     Subtype.range_coe, ← inter_distrib_left, univ_subset_iff.1 h, inter_univ]
 #align measurable_of_measurable_union_cover measurable_of_measurable_union_cover
+-/
 
+#print measurable_of_restrict_of_restrict_compl /-
 theorem measurable_of_restrict_of_restrict_compl {f : α → β} {s : Set α} (hs : MeasurableSet s)
     (h₁ : Measurable (s.restrict f)) (h₂ : Measurable (sᶜ.restrict f)) : Measurable f :=
   measurable_of_measurable_union_cover s (sᶜ) hs hs.compl (union_compl_self s).ge h₁ h₂
 #align measurable_of_restrict_of_restrict_compl measurable_of_restrict_of_restrict_compl
+-/
 
+#print Measurable.dite /-
 theorem Measurable.dite [∀ x, Decidable (x ∈ s)] {f : s → β} (hf : Measurable f) {g : sᶜ → β}
     (hg : Measurable g) (hs : MeasurableSet s) :
     Measurable fun x => if hx : x ∈ s then f ⟨x, hx⟩ else g ⟨x, hx⟩ :=
   measurable_of_restrict_of_restrict_compl hs (by simpa) (by simpa)
 #align measurable.dite Measurable.dite
+-/
 
+#print measurable_of_measurable_on_compl_finite /-
 theorem measurable_of_measurable_on_compl_finite [MeasurableSingletonClass α] {f : α → β}
     (s : Set α) (hs : s.Finite) (hf : Measurable (sᶜ.restrict f)) : Measurable f :=
   letI : Fintype s := finite.fintype hs
   measurable_of_restrict_of_restrict_compl hs.measurable_set (measurable_of_finite _) hf
 #align measurable_of_measurable_on_compl_finite measurable_of_measurable_on_compl_finite
+-/
 
+#print measurable_of_measurable_on_compl_singleton /-
 theorem measurable_of_measurable_on_compl_singleton [MeasurableSingletonClass α] {f : α → β} (a : α)
     (hf : Measurable ({x | x ≠ a}.restrict f)) : Measurable f :=
   measurable_of_measurable_on_compl_finite {a} (finite_singleton a) hf
 #align measurable_of_measurable_on_compl_singleton measurable_of_measurable_on_compl_singleton
+-/
 
 end Subtype
 
@@ -700,30 +770,37 @@ def MeasurableSpace.prod {α β} (m₁ : MeasurableSpace α) (m₂ : MeasurableS
 instance {α β} [m₁ : MeasurableSpace α] [m₂ : MeasurableSpace β] : MeasurableSpace (α × β) :=
   m₁.Prod m₂
 
+#print measurable_fst /-
 @[measurability]
 theorem measurable_fst {ma : MeasurableSpace α} {mb : MeasurableSpace β} :
     Measurable (Prod.fst : α × β → α) :=
   Measurable.of_comap_le le_sup_left
 #align measurable_fst measurable_fst
+-/
 
+#print measurable_snd /-
 @[measurability]
 theorem measurable_snd {ma : MeasurableSpace α} {mb : MeasurableSpace β} :
     Measurable (Prod.snd : α × β → β) :=
   Measurable.of_comap_le le_sup_right
 #align measurable_snd measurable_snd
+-/
 
 variable {m : MeasurableSpace α} {mβ : MeasurableSpace β} {mγ : MeasurableSpace γ}
 
-include m mβ mγ
-
+#print Measurable.fst /-
 theorem Measurable.fst {f : α → β × γ} (hf : Measurable f) : Measurable fun a : α => (f a).1 :=
   measurable_fst.comp hf
 #align measurable.fst Measurable.fst
+-/
 
+#print Measurable.snd /-
 theorem Measurable.snd {f : α → β × γ} (hf : Measurable f) : Measurable fun a : α => (f a).2 :=
   measurable_snd.comp hf
 #align measurable.snd Measurable.snd
+-/
 
+#print Measurable.prod /-
 @[measurability]
 theorem Measurable.prod {f : α → β × γ} (hf₁ : Measurable fun a => (f a).1)
     (hf₂ : Measurable fun a => (f a).2) : Measurable f :=
@@ -731,18 +808,21 @@ theorem Measurable.prod {f : α → β × γ} (hf₁ : Measurable fun a => (f a)
     sup_le (by rw [MeasurableSpace.comap_le_iff_le_map, MeasurableSpace.map_comp]; exact hf₁)
       (by rw [MeasurableSpace.comap_le_iff_le_map, MeasurableSpace.map_comp]; exact hf₂)
 #align measurable.prod Measurable.prod
+-/
 
+#print Measurable.prod_mk /-
 theorem Measurable.prod_mk {β γ} {mβ : MeasurableSpace β} {mγ : MeasurableSpace γ} {f : α → β}
     {g : α → γ} (hf : Measurable f) (hg : Measurable g) : Measurable fun a : α => (f a, g a) :=
   Measurable.prod hf hg
 #align measurable.prod_mk Measurable.prod_mk
+-/
 
+#print Measurable.prod_map /-
 theorem Measurable.prod_map [MeasurableSpace δ] {f : α → β} {g : γ → δ} (hf : Measurable f)
     (hg : Measurable g) : Measurable (Prod.map f g) :=
   (hf.comp measurable_fst).prod_mk (hg.comp measurable_snd)
 #align measurable.prod_map Measurable.prod_map
-
-omit mγ
+-/
 
 #print measurable_prod_mk_left /-
 theorem measurable_prod_mk_left {x : α} : Measurable (@Prod.mk _ β x) :=
@@ -750,50 +830,61 @@ theorem measurable_prod_mk_left {x : α} : Measurable (@Prod.mk _ β x) :=
 #align measurable_prod_mk_left measurable_prod_mk_left
 -/
 
+#print measurable_prod_mk_right /-
 theorem measurable_prod_mk_right {y : β} : Measurable fun x : α => (x, y) :=
   measurable_id.prod_mk measurable_const
 #align measurable_prod_mk_right measurable_prod_mk_right
+-/
 
-include mγ
-
+#print Measurable.of_uncurry_left /-
 theorem Measurable.of_uncurry_left {f : α → β → γ} (hf : Measurable (uncurry f)) {x : α} :
     Measurable (f x) :=
   hf.comp measurable_prod_mk_left
 #align measurable.of_uncurry_left Measurable.of_uncurry_left
+-/
 
+#print Measurable.of_uncurry_right /-
 theorem Measurable.of_uncurry_right {f : α → β → γ} (hf : Measurable (uncurry f)) {y : β} :
     Measurable fun x => f x y :=
   hf.comp measurable_prod_mk_right
 #align measurable.of_uncurry_right Measurable.of_uncurry_right
+-/
 
+#print measurable_prod /-
 theorem measurable_prod {f : α → β × γ} :
     Measurable f ↔ (Measurable fun a => (f a).1) ∧ Measurable fun a => (f a).2 :=
   ⟨fun hf => ⟨measurable_fst.comp hf, measurable_snd.comp hf⟩, fun h => Measurable.prod h.1 h.2⟩
 #align measurable_prod measurable_prod
+-/
 
-omit mγ
-
+#print measurable_swap /-
 @[measurability]
 theorem measurable_swap : Measurable (Prod.swap : α × β → β × α) :=
   Measurable.prod measurable_snd measurable_fst
 #align measurable_swap measurable_swap
+-/
 
+#print measurable_swap_iff /-
 theorem measurable_swap_iff {mγ : MeasurableSpace γ} {f : α × β → γ} :
     Measurable (f ∘ Prod.swap) ↔ Measurable f :=
   ⟨fun hf => by convert hf.comp measurable_swap; ext ⟨x, y⟩; rfl, fun hf => hf.comp measurable_swap⟩
 #align measurable_swap_iff measurable_swap_iff
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print MeasurableSet.prod /-
 @[measurability]
 theorem MeasurableSet.prod {s : Set α} {t : Set β} (hs : MeasurableSet s) (ht : MeasurableSet t) :
     MeasurableSet (s ×ˢ t) :=
   MeasurableSet.inter (measurable_fst hs) (measurable_snd ht)
 #align measurable_set.prod MeasurableSet.prod
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print measurableSet_prod_of_nonempty /-
 theorem measurableSet_prod_of_nonempty {s : Set α} {t : Set β} (h : (s ×ˢ t).Nonempty) :
     MeasurableSet (s ×ˢ t) ↔ MeasurableSet s ∧ MeasurableSet t :=
   by
@@ -803,9 +894,11 @@ theorem measurableSet_prod_of_nonempty {s : Set α} {t : Set β} (h : (s ×ˢ t)
   have : MeasurableSet (Prod.mk x ⁻¹' s ×ˢ t) := measurable_prod_mk_left hst
   simp_all
 #align measurable_set_prod_of_nonempty measurableSet_prod_of_nonempty
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print measurableSet_prod /-
 theorem measurableSet_prod {s : Set α} {t : Set β} :
     MeasurableSet (s ×ˢ t) ↔ MeasurableSet s ∧ MeasurableSet t ∨ s = ∅ ∨ t = ∅ :=
   by
@@ -813,6 +906,7 @@ theorem measurableSet_prod {s : Set α} {t : Set β} :
   · simp [h, prod_eq_empty_iff.mp h]
   · simp [← not_nonempty_iff_eq_empty, prod_nonempty_iff.mp h, measurableSet_prod_of_nonempty h]
 #align measurable_set_prod measurableSet_prod
+-/
 
 #print measurableSet_swap_iff /-
 theorem measurableSet_swap_iff {s : Set (α × β)} :
@@ -828,6 +922,7 @@ instance [MeasurableSingletonClass α] [MeasurableSingletonClass β] :
       (measurableSet_singleton a).Prod (measurableSet_singleton b)⟩
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print measurable_from_prod_countable /-
 theorem measurable_from_prod_countable [Countable β] [MeasurableSingletonClass β]
     {mγ : MeasurableSpace γ} {f : α × β → γ} (hf : ∀ y, Measurable fun x => f (x, y)) :
     Measurable f := by
@@ -839,7 +934,9 @@ theorem measurable_from_prod_countable [Countable β] [MeasurableSingletonClass
   rw [this]
   exact MeasurableSet.iUnion fun y => (hf y hs).Prod (measurable_set_singleton y)
 #align measurable_from_prod_countable measurable_from_prod_countable
+-/
 
+#print Measurable.find /-
 /-- A piecewise function on countably many pieces is measurable if all the data is measurable. -/
 @[measurability]
 theorem Measurable.find {m : MeasurableSpace α} {f : ℕ → α → β} {p : ℕ → α → Prop}
@@ -848,7 +945,9 @@ theorem Measurable.find {m : MeasurableSpace α} {f : ℕ → α → β} {p : 
   haveI : Measurable fun p : α × ℕ => f p.2 p.1 := measurable_from_prod_countable fun n => hf n
   this.comp (Measurable.prod_mk measurable_id (measurable_find h hp))
 #align measurable.find Measurable.find
+-/
 
+#print exists_measurable_piecewise_nat /-
 /-- Given countably many disjoint measurable sets `t n` and countably many measurable
 functions `g n`, one can construct a measurable function that coincides with `g n` on `t n`. -/
 theorem exists_measurable_piecewise_nat {m : MeasurableSpace α} (t : ℕ → Set β)
@@ -877,6 +976,7 @@ theorem exists_measurable_piecewise_nat {m : MeasurableSpace α} (t : ℕ → Se
   by_contra h
   exact (t_disj (Ne.symm h)).le_bot ⟨hx, this⟩
 #align exists_measurable_piecewise_nat exists_measurable_piecewise_nat
+-/
 
 end Prod
 
@@ -892,28 +992,37 @@ instance MeasurableSpace.pi [m : ∀ a, MeasurableSpace (π a)] : MeasurableSpac
 
 variable [∀ a, MeasurableSpace (π a)] [MeasurableSpace γ]
 
+#print measurable_pi_iff /-
 theorem measurable_pi_iff {g : α → ∀ a, π a} : Measurable g ↔ ∀ a, Measurable fun x => g x a := by
   simp_rw [measurable_iff_comap_le, MeasurableSpace.pi, MeasurableSpace.comap_iSup,
     MeasurableSpace.comap_comp, Function.comp, iSup_le_iff]
 #align measurable_pi_iff measurable_pi_iff
+-/
 
+#print measurable_pi_apply /-
 @[measurability]
 theorem measurable_pi_apply (a : δ) : Measurable fun f : ∀ a, π a => f a :=
   Measurable.of_comap_le <| le_iSup _ a
 #align measurable_pi_apply measurable_pi_apply
+-/
 
+#print Measurable.eval /-
 @[measurability]
 theorem Measurable.eval {a : δ} {g : α → ∀ a, π a} (hg : Measurable g) :
     Measurable fun x => g x a :=
   (measurable_pi_apply a).comp hg
 #align measurable.eval Measurable.eval
+-/
 
+#print measurable_pi_lambda /-
 @[measurability]
 theorem measurable_pi_lambda (f : α → ∀ a, π a) (hf : ∀ a, Measurable fun c => f c a) :
     Measurable f :=
   measurable_pi_iff.mpr hf
 #align measurable_pi_lambda measurable_pi_lambda
+-/
 
+#print measurable_update /-
 /-- The function `update f a : π a → Π a, π a` is always measurable.
   This doesn't require `f` to be measurable.
   This should not be confused with the statement that `update f a x` is measurable. -/
@@ -925,7 +1034,9 @@ theorem measurable_update (f : ∀ a : δ, π a) {a : δ} [DecidableEq δ] : Mea
   · cases hx; convert measurable_id; ext; simp
   simp_rw [update_noteq hx]; apply measurable_const
 #align measurable_update measurable_update
+-/
 
+#print MeasurableSet.pi /-
 /- Even though we cannot use projection notation, we still keep a dot to be consistent with similar
   lemmas, like `measurable_set.prod`. -/
 @[measurability]
@@ -933,12 +1044,16 @@ theorem MeasurableSet.pi {s : Set δ} {t : ∀ i : δ, Set (π i)} (hs : s.Count
     (ht : ∀ i ∈ s, MeasurableSet (t i)) : MeasurableSet (s.pi t) := by rw [pi_def];
   exact MeasurableSet.biInter hs fun i hi => measurable_pi_apply _ (ht i hi)
 #align measurable_set.pi MeasurableSet.pi
+-/
 
+#print MeasurableSet.univ_pi /-
 theorem MeasurableSet.univ_pi [Countable δ] {t : ∀ i : δ, Set (π i)}
     (ht : ∀ i, MeasurableSet (t i)) : MeasurableSet (pi univ t) :=
   MeasurableSet.pi (to_countable _) fun i _ => ht i
 #align measurable_set.univ_pi MeasurableSet.univ_pi
+-/
 
+#print measurableSet_pi_of_nonempty /-
 theorem measurableSet_pi_of_nonempty {s : Set δ} {t : ∀ i, Set (π i)} (hs : s.Countable)
     (h : (pi s t).Nonempty) : MeasurableSet (pi s t) ↔ ∀ i ∈ s, MeasurableSet (t i) := by
   classical
@@ -948,7 +1063,9 @@ theorem measurableSet_pi_of_nonempty {s : Set δ} {t : ∀ i, Set (π i)} (hs :
   rw [update_preimage_pi hi]
   exact fun j hj _ => hf j hj
 #align measurable_set_pi_of_nonempty measurableSet_pi_of_nonempty
+-/
 
+#print measurableSet_pi /-
 theorem measurableSet_pi {s : Set δ} {t : ∀ i, Set (π i)} (hs : s.Countable) :
     MeasurableSet (pi s t) ↔ (∀ i ∈ s, MeasurableSet (t i)) ∨ pi s t = ∅ :=
   by
@@ -956,6 +1073,7 @@ theorem measurableSet_pi {s : Set δ} {t : ∀ i, Set (π i)} (hs : s.Countable)
   · simp [h]
   · simp [measurableSet_pi_of_nonempty hs, h, ← not_nonempty_iff_eq_empty]
 #align measurable_set_pi measurableSet_pi
+-/
 
 instance [Countable δ] [∀ a, MeasurableSingletonClass (π a)] :
     MeasurableSingletonClass (∀ a, π a) :=
@@ -963,6 +1081,7 @@ instance [Countable δ] [∀ a, MeasurableSingletonClass (π a)] :
 
 variable (π)
 
+#print measurable_piEquivPiSubtypeProd_symm /-
 @[measurability]
 theorem measurable_piEquivPiSubtypeProd_symm (p : δ → Prop) [DecidablePred p] :
     Measurable (Equiv.piEquivPiSubtypeProd p π).symm :=
@@ -976,7 +1095,9 @@ theorem measurable_piEquivPiSubtypeProd_symm (p : δ → Prop) [DecidablePred p]
     have : Measurable fun f : ∀ i : { x // ¬p x }, π ↑i => f ⟨j, hj⟩ := measurable_pi_apply ⟨j, hj⟩
     exact Measurable.comp this measurable_snd
 #align measurable_pi_equiv_pi_subtype_prod_symm measurable_piEquivPiSubtypeProd_symm
+-/
 
+#print measurable_piEquivPiSubtypeProd /-
 @[measurability]
 theorem measurable_piEquivPiSubtypeProd (p : δ → Prop) [DecidablePred p] :
     Measurable (Equiv.piEquivPiSubtypeProd p π) :=
@@ -986,15 +1107,18 @@ theorem measurable_piEquivPiSubtypeProd (p : δ → Prop) [DecidablePred p] :
     · apply measurable_pi_iff.2 fun j => _
       simp only [pi_equiv_pi_subtype_prod_apply, measurable_pi_apply]
 #align measurable_pi_equiv_pi_subtype_prod measurable_piEquivPiSubtypeProd
+-/
 
 end Pi
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print TProd.instMeasurableSpace /-
 instance TProd.instMeasurableSpace (π : δ → Type _) [∀ x, MeasurableSpace (π x)] :
     ∀ l : List δ, MeasurableSpace (List.TProd π l)
   | [] => PUnit.instMeasurableSpace
   | i::is => @Prod.instMeasurableSpace _ _ _ (TProd.instMeasurableSpace is)
 #align tprod.measurable_space TProd.instMeasurableSpace
+-/
 
 section Tprod
 
@@ -1002,14 +1126,17 @@ open List
 
 variable {π : δ → Type _} [∀ x, MeasurableSpace (π x)]
 
+#print measurable_tProd_mk /-
 theorem measurable_tProd_mk (l : List δ) : Measurable (@TProd.mk δ π l) :=
   by
   induction' l with i l ih
   · exact measurable_const
   · exact (measurable_pi_apply i).prod_mk ih
 #align measurable_tprod_mk measurable_tProd_mk
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print measurable_tProd_elim /-
 theorem measurable_tProd_elim [DecidableEq δ] :
     ∀ {l : List δ} {i : δ} (hi : i ∈ l), Measurable fun v : TProd π l => v.elim hi
   | i::is, j, hj => by
@@ -1018,16 +1145,21 @@ theorem measurable_tProd_elim [DecidableEq δ] :
     · rw [funext <| tprod.elim_of_ne _ hji]
       exact (measurable_tProd_elim (hj.resolve_left hji)).comp measurable_snd
 #align measurable_tprod_elim measurable_tProd_elim
+-/
 
+#print measurable_tProd_elim' /-
 theorem measurable_tProd_elim' [DecidableEq δ] {l : List δ} (h : ∀ i, i ∈ l) :
     Measurable (TProd.elim' h : TProd π l → ∀ i, π i) :=
   measurable_pi_lambda _ fun i => measurable_tProd_elim (h i)
 #align measurable_tprod_elim' measurable_tProd_elim'
+-/
 
+#print MeasurableSet.tProd /-
 theorem MeasurableSet.tProd (l : List δ) {s : ∀ i, Set (π i)} (hs : ∀ i, MeasurableSet (s i)) :
     MeasurableSet (Set.tprod l s) := by induction' l with i l ih; exact MeasurableSet.univ;
   exact (hs i).Prod ih
 #align measurable_set.tprod MeasurableSet.tProd
+-/
 
 end Tprod
 
@@ -1036,33 +1168,40 @@ instance {α β} [m₁ : MeasurableSpace α] [m₂ : MeasurableSpace β] : Measu
 
 section Sum
 
+#print measurable_inl /-
 @[measurability]
 theorem measurable_inl [MeasurableSpace α] [MeasurableSpace β] : Measurable (@Sum.inl α β) :=
   Measurable.of_le_map inf_le_left
 #align measurable_inl measurable_inl
+-/
 
+#print measurable_inr /-
 @[measurability]
 theorem measurable_inr [MeasurableSpace α] [MeasurableSpace β] : Measurable (@Sum.inr α β) :=
   Measurable.of_le_map inf_le_right
 #align measurable_inr measurable_inr
+-/
 
 variable {m : MeasurableSpace α} {mβ : MeasurableSpace β}
 
-include m mβ
-
+#print measurable_sum /-
 theorem measurable_sum {mγ : MeasurableSpace γ} {f : Sum α β → γ} (hl : Measurable (f ∘ Sum.inl))
     (hr : Measurable (f ∘ Sum.inr)) : Measurable f :=
   Measurable.of_comap_le <|
     le_inf (MeasurableSpace.comap_le_iff_le_map.2 <| hl)
       (MeasurableSpace.comap_le_iff_le_map.2 <| hr)
 #align measurable_sum measurable_sum
+-/
 
+#print Measurable.sumElim /-
 @[measurability]
 theorem Measurable.sumElim {mγ : MeasurableSpace γ} {f : α → γ} {g : β → γ} (hf : Measurable f)
     (hg : Measurable g) : Measurable (Sum.elim f g) :=
   measurable_sum hf hg
 #align measurable.sum_elim Measurable.sumElim
+-/
 
+#print MeasurableSet.inl_image /-
 theorem MeasurableSet.inl_image {s : Set α} (hs : MeasurableSet s) :
     MeasurableSet (Sum.inl '' s : Set (Sum α β)) :=
   ⟨show MeasurableSet (Sum.inl ⁻¹' _) by rwa [preimage_image_eq]; exact fun a b => Sum.inl.inj,
@@ -1070,7 +1209,9 @@ theorem MeasurableSet.inl_image {s : Set α} (hs : MeasurableSet s) :
       eq_empty_of_subset_empty fun x ⟨y, hy, Eq⟩ => by contradiction
     show MeasurableSet (Sum.inr ⁻¹' _) by rw [this]; exact MeasurableSet.empty⟩
 #align measurable_set.inl_image MeasurableSet.inl_image
+-/
 
+#print measurableSet_inr_image /-
 theorem measurableSet_inr_image {s : Set β} (hs : MeasurableSet s) :
     MeasurableSet (Sum.inr '' s : Set (Sum α β)) :=
   ⟨have : Sum.inl ⁻¹' (Sum.inr '' s : Set (Sum α β)) = ∅ :=
@@ -1078,18 +1219,21 @@ theorem measurableSet_inr_image {s : Set β} (hs : MeasurableSet s) :
     show MeasurableSet (Sum.inl ⁻¹' _) by rw [this]; exact MeasurableSet.empty,
     show MeasurableSet (Sum.inr ⁻¹' _) by rwa [preimage_image_eq]; exact fun a b => Sum.inr.inj⟩
 #align measurable_set_inr_image measurableSet_inr_image
+-/
 
-omit m
-
+#print measurableSet_range_inl /-
 theorem measurableSet_range_inl [MeasurableSpace α] :
     MeasurableSet (range Sum.inl : Set (Sum α β)) := by rw [← image_univ];
   exact measurable_set.univ.inl_image
 #align measurable_set_range_inl measurableSet_range_inl
+-/
 
+#print measurableSet_range_inr /-
 theorem measurableSet_range_inr [MeasurableSpace α] :
     MeasurableSet (range Sum.inr : Set (Sum α β)) := by rw [← image_univ];
   exact measurableSet_inr_image MeasurableSet.univ
 #align measurable_set_range_inr measurableSet_range_inr
+-/
 
 end Sum
 
@@ -1123,13 +1267,13 @@ namespace MeasurableEmbedding
 
 variable {mα : MeasurableSpace α} [MeasurableSpace β] [MeasurableSpace γ] {f : α → β} {g : β → γ}
 
-include mα
-
+#print MeasurableEmbedding.measurableSet_image /-
 theorem measurableSet_image (hf : MeasurableEmbedding f) {s : Set α} :
     MeasurableSet (f '' s) ↔ MeasurableSet s :=
   ⟨fun h => by simpa only [hf.injective.preimage_image] using hf.measurable h, fun h =>
     hf.measurableSet_image' h⟩
 #align measurable_embedding.measurable_set_image MeasurableEmbedding.measurableSet_image
+-/
 
 #print MeasurableEmbedding.id /-
 theorem id : MeasurableEmbedding (id : α → α) :=
@@ -1137,11 +1281,13 @@ theorem id : MeasurableEmbedding (id : α → α) :=
 #align measurable_embedding.id MeasurableEmbedding.id
 -/
 
+#print MeasurableEmbedding.comp /-
 theorem comp (hg : MeasurableEmbedding g) (hf : MeasurableEmbedding f) :
     MeasurableEmbedding (g ∘ f) :=
   ⟨hg.Injective.comp hf.Injective, hg.Measurable.comp hf.Measurable, fun s hs => by
     rwa [← image_image, hg.measurable_set_image, hf.measurable_set_image]⟩
 #align measurable_embedding.comp MeasurableEmbedding.comp
+-/
 
 #print MeasurableEmbedding.subtype_coe /-
 theorem subtype_coe {s : Set α} (hs : MeasurableSet s) : MeasurableEmbedding (coe : s → α) :=
@@ -1151,22 +1297,29 @@ theorem subtype_coe {s : Set α} (hs : MeasurableSet s) : MeasurableEmbedding (c
 #align measurable_embedding.subtype_coe MeasurableEmbedding.subtype_coe
 -/
 
+#print MeasurableEmbedding.measurableSet_range /-
 theorem measurableSet_range (hf : MeasurableEmbedding f) : MeasurableSet (range f) := by
   rw [← image_univ]; exact hf.measurable_set_image' MeasurableSet.univ
 #align measurable_embedding.measurable_set_range MeasurableEmbedding.measurableSet_range
+-/
 
+#print MeasurableEmbedding.measurableSet_preimage /-
 theorem measurableSet_preimage (hf : MeasurableEmbedding f) {s : Set β} :
     MeasurableSet (f ⁻¹' s) ↔ MeasurableSet (s ∩ range f) := by
   rw [← image_preimage_eq_inter_range, hf.measurable_set_image]
 #align measurable_embedding.measurable_set_preimage MeasurableEmbedding.measurableSet_preimage
+-/
 
+#print MeasurableEmbedding.measurable_rangeSplitting /-
 theorem measurable_rangeSplitting (hf : MeasurableEmbedding f) : Measurable (rangeSplitting f) :=
   fun s hs => by
   rwa [preimage_range_splitting hf.injective, ←
     (subtype_coe hf.measurable_set_range).measurableSet_image, ← image_comp,
     coe_comp_range_factorization, hf.measurable_set_image]
 #align measurable_embedding.measurable_range_splitting MeasurableEmbedding.measurable_rangeSplitting
+-/
 
+#print MeasurableEmbedding.measurable_extend /-
 theorem measurable_extend (hf : MeasurableEmbedding f) {g : α → γ} {g' : β → γ} (hg : Measurable g)
     (hg' : Measurable g') : Measurable (extend f g g') :=
   by
@@ -1175,14 +1328,18 @@ theorem measurable_extend (hf : MeasurableEmbedding f) {g : α → γ} {g' : β
     simpa only [range_splitting] using hg.comp hf.measurable_range_splitting
   · rw [restrict_extend_compl_range]; exact hg'.comp measurable_subtype_coe
 #align measurable_embedding.measurable_extend MeasurableEmbedding.measurable_extend
+-/
 
+#print MeasurableEmbedding.exists_measurable_extend /-
 theorem exists_measurable_extend (hf : MeasurableEmbedding f) {g : α → γ} (hg : Measurable g)
     (hne : β → Nonempty γ) : ∃ g' : β → γ, Measurable g' ∧ g' ∘ f = g :=
   ⟨extend f g fun x => Classical.choice (hne x),
     hf.measurable_extend hg (measurable_const' fun _ _ => rfl),
     funext fun x => hf.Injective.extend_apply _ _ _⟩
 #align measurable_embedding.exists_measurable_extend MeasurableEmbedding.exists_measurable_extend
+-/
 
+#print MeasurableEmbedding.measurable_comp_iff /-
 theorem measurable_comp_iff (hg : MeasurableEmbedding g) : Measurable (g ∘ f) ↔ Measurable f :=
   by
   refine' ⟨fun H => _, hg.measurable.comp⟩
@@ -1190,6 +1347,7 @@ theorem measurable_comp_iff (hg : MeasurableEmbedding g) : Measurable (g ∘ f)
     rwa [(right_inverse_range_splitting hg.injective).comp_eq_id] at this 
   exact hg.measurable_range_splitting.comp H.subtype_mk
 #align measurable_embedding.measurable_comp_iff MeasurableEmbedding.measurable_comp_iff
+-/
 
 end MeasurableEmbedding
 
@@ -1212,7 +1370,6 @@ structure MeasurableEquiv (α β : Type _) [MeasurableSpace α] [MeasurableSpace
 #align measurable_equiv MeasurableEquiv
 -/
 
--- mathport name: «expr ≃ᵐ »
 infixl:25 " ≃ᵐ " => MeasurableEquiv
 
 namespace MeasurableEquiv
@@ -1224,21 +1381,27 @@ instance : CoeFun (α ≃ᵐ β) fun _ => α → β :=
 
 variable {α β}
 
+#print MeasurableEquiv.coe_toEquiv /-
 @[simp]
 theorem coe_toEquiv (e : α ≃ᵐ β) : (e.toEquiv : α → β) = e :=
   rfl
 #align measurable_equiv.coe_to_equiv MeasurableEquiv.coe_toEquiv
+-/
 
+#print MeasurableEquiv.measurable /-
 @[measurability]
 protected theorem measurable (e : α ≃ᵐ β) : Measurable (e : α → β) :=
   e.measurable_to_fun
 #align measurable_equiv.measurable MeasurableEquiv.measurable
+-/
 
+#print MeasurableEquiv.coe_mk /-
 @[simp]
 theorem coe_mk (e : α ≃ β) (h1 : Measurable e) (h2 : Measurable e.symm) :
     ((⟨e, h1, h2⟩ : α ≃ᵐ β) : α → β) = e :=
   rfl
 #align measurable_equiv.coe_mk MeasurableEquiv.coe_mk
+-/
 
 #print MeasurableEquiv.refl /-
 /-- Any measurable space is equivalent to itself. -/
@@ -1272,10 +1435,12 @@ def symm (ab : α ≃ᵐ β) : β ≃ᵐ α where
 #align measurable_equiv.symm MeasurableEquiv.symm
 -/
 
+#print MeasurableEquiv.coe_toEquiv_symm /-
 @[simp]
 theorem coe_toEquiv_symm (e : α ≃ᵐ β) : (e.toEquiv.symm : β → α) = e.symm :=
   rfl
 #align measurable_equiv.coe_to_equiv_symm MeasurableEquiv.coe_toEquiv_symm
+-/
 
 #print MeasurableEquiv.Simps.apply /-
 /-- See Note [custom simps projection]. We need to specify this projection explicitly in this case,
@@ -1295,20 +1460,26 @@ def Simps.symm_apply (h : α ≃ᵐ β) : β → α :=
 initialize_simps_projections MeasurableEquiv (to_equiv_to_fun → apply, to_equiv_inv_fun →
   symm_apply)
 
+#print MeasurableEquiv.toEquiv_injective /-
 theorem toEquiv_injective : Injective (toEquiv : α ≃ᵐ β → α ≃ β) := by
   rintro ⟨e₁, _, _⟩ ⟨e₂, _, _⟩ (rfl : e₁ = e₂); rfl
 #align measurable_equiv.to_equiv_injective MeasurableEquiv.toEquiv_injective
+-/
 
+#print MeasurableEquiv.ext /-
 @[ext]
 theorem ext {e₁ e₂ : α ≃ᵐ β} (h : (e₁ : α → β) = e₂) : e₁ = e₂ :=
   toEquiv_injective <| Equiv.coe_fn_injective h
 #align measurable_equiv.ext MeasurableEquiv.ext
+-/
 
+#print MeasurableEquiv.symm_mk /-
 @[simp]
 theorem symm_mk (e : α ≃ β) (h1 : Measurable e) (h2 : Measurable e.symm) :
     (⟨e, h1, h2⟩ : α ≃ᵐ β).symm = ⟨e.symm, h2, h1⟩ :=
   rfl
 #align measurable_equiv.symm_mk MeasurableEquiv.symm_mk
+-/
 
 attribute [simps apply toEquiv] trans refl
 
@@ -1319,75 +1490,103 @@ theorem symm_refl (α : Type _) [MeasurableSpace α] : (refl α).symm = refl α
 #align measurable_equiv.symm_refl MeasurableEquiv.symm_refl
 -/
 
+#print MeasurableEquiv.symm_comp_self /-
 @[simp]
 theorem symm_comp_self (e : α ≃ᵐ β) : e.symm ∘ e = id :=
   funext e.left_inv
 #align measurable_equiv.symm_comp_self MeasurableEquiv.symm_comp_self
+-/
 
+#print MeasurableEquiv.self_comp_symm /-
 @[simp]
 theorem self_comp_symm (e : α ≃ᵐ β) : e ∘ e.symm = id :=
   funext e.right_inv
 #align measurable_equiv.self_comp_symm MeasurableEquiv.self_comp_symm
+-/
 
+#print MeasurableEquiv.apply_symm_apply /-
 @[simp]
 theorem apply_symm_apply (e : α ≃ᵐ β) (y : β) : e (e.symm y) = y :=
   e.right_inv y
 #align measurable_equiv.apply_symm_apply MeasurableEquiv.apply_symm_apply
+-/
 
+#print MeasurableEquiv.symm_apply_apply /-
 @[simp]
 theorem symm_apply_apply (e : α ≃ᵐ β) (x : α) : e.symm (e x) = x :=
   e.left_inv x
 #align measurable_equiv.symm_apply_apply MeasurableEquiv.symm_apply_apply
+-/
 
+#print MeasurableEquiv.symm_trans_self /-
 @[simp]
 theorem symm_trans_self (e : α ≃ᵐ β) : e.symm.trans e = refl β :=
   ext e.self_comp_symm
 #align measurable_equiv.symm_trans_self MeasurableEquiv.symm_trans_self
+-/
 
+#print MeasurableEquiv.self_trans_symm /-
 @[simp]
 theorem self_trans_symm (e : α ≃ᵐ β) : e.trans e.symm = refl α :=
   ext e.symm_comp_self
 #align measurable_equiv.self_trans_symm MeasurableEquiv.self_trans_symm
+-/
 
+#print MeasurableEquiv.surjective /-
 protected theorem surjective (e : α ≃ᵐ β) : Surjective e :=
   e.toEquiv.Surjective
 #align measurable_equiv.surjective MeasurableEquiv.surjective
+-/
 
+#print MeasurableEquiv.bijective /-
 protected theorem bijective (e : α ≃ᵐ β) : Bijective e :=
   e.toEquiv.Bijective
 #align measurable_equiv.bijective MeasurableEquiv.bijective
+-/
 
+#print MeasurableEquiv.injective /-
 protected theorem injective (e : α ≃ᵐ β) : Injective e :=
   e.toEquiv.Injective
 #align measurable_equiv.injective MeasurableEquiv.injective
+-/
 
+#print MeasurableEquiv.symm_preimage_preimage /-
 @[simp]
 theorem symm_preimage_preimage (e : α ≃ᵐ β) (s : Set β) : e.symm ⁻¹' (e ⁻¹' s) = s :=
   e.toEquiv.symm_preimage_preimage s
 #align measurable_equiv.symm_preimage_preimage MeasurableEquiv.symm_preimage_preimage
+-/
 
+#print MeasurableEquiv.image_eq_preimage /-
 theorem image_eq_preimage (e : α ≃ᵐ β) (s : Set α) : e '' s = e.symm ⁻¹' s :=
   e.toEquiv.image_eq_preimage s
 #align measurable_equiv.image_eq_preimage MeasurableEquiv.image_eq_preimage
+-/
 
+#print MeasurableEquiv.measurableSet_preimage /-
 @[simp]
 theorem measurableSet_preimage (e : α ≃ᵐ β) {s : Set β} :
     MeasurableSet (e ⁻¹' s) ↔ MeasurableSet s :=
   ⟨fun h => by simpa only [symm_preimage_preimage] using e.symm.measurable h, fun h =>
     e.Measurable h⟩
 #align measurable_equiv.measurable_set_preimage MeasurableEquiv.measurableSet_preimage
+-/
 
+#print MeasurableEquiv.measurableSet_image /-
 @[simp]
 theorem measurableSet_image (e : α ≃ᵐ β) {s : Set α} : MeasurableSet (e '' s) ↔ MeasurableSet s :=
   by rw [image_eq_preimage, measurableSet_preimage]
 #align measurable_equiv.measurable_set_image MeasurableEquiv.measurableSet_image
+-/
 
+#print MeasurableEquiv.measurableEmbedding /-
 /-- A measurable equivalence is a measurable embedding. -/
 protected theorem measurableEmbedding (e : α ≃ᵐ β) : MeasurableEmbedding e :=
   { Injective := e.Injective
     Measurable := e.Measurable
     measurableSet_image' := fun s => e.measurableSet_image.2 }
 #align measurable_equiv.measurable_embedding MeasurableEquiv.measurableEmbedding
+-/
 
 #print MeasurableEquiv.cast /-
 /-- Equal measurable spaces are equivalent. -/
@@ -1399,6 +1598,7 @@ protected def cast {α β} [i₁ : MeasurableSpace α] [i₂ : MeasurableSpace 
 #align measurable_equiv.cast MeasurableEquiv.cast
 -/
 
+#print MeasurableEquiv.measurable_comp_iff /-
 protected theorem measurable_comp_iff {f : β → γ} (e : α ≃ᵐ β) :
     Measurable (f ∘ e) ↔ Measurable f :=
   Iff.intro
@@ -1408,6 +1608,7 @@ protected theorem measurable_comp_iff {f : β → γ} (e : α ≃ᵐ β) :
       rwa [coe_to_equiv, symm_trans_self] at this )
     fun h => h.comp e.Measurable
 #align measurable_equiv.measurable_comp_iff MeasurableEquiv.measurable_comp_iff
+-/
 
 #print MeasurableEquiv.ofUniqueOfUnique /-
 /-- Any two types with unique elements are measurably equivalent. -/
@@ -1605,6 +1806,7 @@ def piCongrRight (e : ∀ a, π a ≃ᵐ π' a) : (∀ a, π a) ≃ᵐ ∀ a, π
 #align measurable_equiv.Pi_congr_right MeasurableEquiv.piCongrRight
 -/
 
+#print MeasurableEquiv.piMeasurableEquivTProd /-
 /-- Pi-types are measurably equivalent to iterated products. -/
 @[simps (config := { fullyApplied := false })]
 def piMeasurableEquivTProd [DecidableEq δ'] {l : List δ'} (hnd : l.Nodup) (h : ∀ i, i ∈ l) :
@@ -1614,6 +1816,7 @@ def piMeasurableEquivTProd [DecidableEq δ'] {l : List δ'} (hnd : l.Nodup) (h :
   measurable_to_fun := measurable_tProd_mk l
   measurable_inv_fun := measurable_tProd_elim' h
 #align measurable_equiv.pi_measurable_equiv_tprod MeasurableEquiv.piMeasurableEquivTProd
+-/
 
 #print MeasurableEquiv.funUnique /-
 /-- If `α` has a unique term, then the type of function `α → β` is measurably equivalent to `β`. -/
@@ -1626,6 +1829,7 @@ def funUnique (α β : Type _) [Unique α] [MeasurableSpace β] : (α → β) 
 #align measurable_equiv.fun_unique MeasurableEquiv.funUnique
 -/
 
+#print MeasurableEquiv.piFinTwo /-
 /-- The space `Π i : fin 2, α i` is measurably equivalent to `α 0 × α 1`. -/
 @[simps (config := { fullyApplied := false })]
 def piFinTwo (α : Fin 2 → Type _) [∀ i, MeasurableSpace (α i)] : (∀ i, α i) ≃ᵐ α 0 × α 1
@@ -1634,6 +1838,7 @@ def piFinTwo (α : Fin 2 → Type _) [∀ i, MeasurableSpace (α i)] : (∀ i, 
   measurable_to_fun := Measurable.prod (measurable_pi_apply _) (measurable_pi_apply _)
   measurable_inv_fun := measurable_pi_iff.2 <| Fin.forall_fin_two.2 ⟨measurable_fst, measurable_snd⟩
 #align measurable_equiv.pi_fin_two MeasurableEquiv.piFinTwo
+-/
 
 #print MeasurableEquiv.finTwoArrow /-
 /-- The space `fin 2 → α` is measurably equivalent to `α × α`. -/
@@ -1643,6 +1848,7 @@ def finTwoArrow : (Fin 2 → α) ≃ᵐ α × α :=
 #align measurable_equiv.fin_two_arrow MeasurableEquiv.finTwoArrow
 -/
 
+#print MeasurableEquiv.piFinSuccAboveEquiv /-
 /-- Measurable equivalence between `Π j : fin (n + 1), α j` and
 `α i × Π j : fin n, α (fin.succ_above i j)`. -/
 @[simps (config := { fullyApplied := false })]
@@ -1656,6 +1862,7 @@ def piFinSuccAboveEquiv {n : ℕ} (α : Fin (n + 1) → Type _) [∀ i, Measurab
     simp [measurable_pi_iff, i.forall_iff_succ_above, measurable_fst,
       (measurable_pi_apply _).comp measurable_snd]
 #align measurable_equiv.pi_fin_succ_above_equiv MeasurableEquiv.piFinSuccAboveEquiv
+-/
 
 variable (π)
 
@@ -1672,6 +1879,7 @@ def piEquivPiSubtypeProd (p : δ' → Prop) [DecidablePred p] :
 #align measurable_equiv.pi_equiv_pi_subtype_prod MeasurableEquiv.piEquivPiSubtypeProd
 -/
 
+#print MeasurableEquiv.sumCompl /-
 /-- If `s` is a measurable set in a measurable space, that space is equivalent
 to the sum of `s` and `sᶜ`.-/
 def sumCompl {s : Set α} [DecidablePred s] (hs : MeasurableSet s) : Sum s (sᶜ : Set α) ≃ᵐ α
@@ -1680,6 +1888,7 @@ def sumCompl {s : Set α} [DecidablePred s] (hs : MeasurableSet s) : Sum s (sᶜ
   measurable_to_fun := by apply Measurable.sumElim <;> exact measurable_subtype_coe
   measurable_inv_fun := Measurable.dite measurable_inl measurable_inr hs
 #align measurable_equiv.sum_compl MeasurableEquiv.sumCompl
+-/
 
 end MeasurableEquiv
 
@@ -1721,10 +1930,12 @@ theorem of_measurable_inverse_on_range {g : range f → α} (hf₁ : Measurable
 #align measurable_embedding.of_measurable_inverse_on_range MeasurableEmbedding.of_measurable_inverse_on_range
 -/
 
+#print MeasurableEmbedding.of_measurable_inverse /-
 theorem of_measurable_inverse (hf₁ : Measurable f) (hf₂ : MeasurableSet (range f))
     (hg : Measurable g) (H : LeftInverse g f) : MeasurableEmbedding f :=
   of_measurable_inverse_on_range hf₁ hf₂ (hg.comp measurable_subtype_coe) H
 #align measurable_embedding.of_measurable_inverse MeasurableEmbedding.of_measurable_inverse
+-/
 
 open scoped Classical
 
@@ -1856,26 +2067,35 @@ class IsMeasurablyGenerated (f : Filter α) : Prop where
 #align filter.is_measurably_generated Filter.IsMeasurablyGenerated
 -/
 
+#print Filter.isMeasurablyGenerated_bot /-
 instance isMeasurablyGenerated_bot : IsMeasurablyGenerated (⊥ : Filter α) :=
   ⟨fun _ _ => ⟨∅, mem_bot, MeasurableSet.empty, empty_subset _⟩⟩
 #align filter.is_measurably_generated_bot Filter.isMeasurablyGenerated_bot
+-/
 
+#print Filter.isMeasurablyGenerated_top /-
 instance isMeasurablyGenerated_top : IsMeasurablyGenerated (⊤ : Filter α) :=
   ⟨fun s hs => ⟨univ, univ_mem, MeasurableSet.univ, fun x _ => hs x⟩⟩
 #align filter.is_measurably_generated_top Filter.isMeasurablyGenerated_top
+-/
 
+#print Filter.Eventually.exists_measurable_mem /-
 theorem Eventually.exists_measurable_mem {f : Filter α} [IsMeasurablyGenerated f] {p : α → Prop}
     (h : ∀ᶠ x in f, p x) : ∃ s ∈ f, MeasurableSet s ∧ ∀ x ∈ s, p x :=
   IsMeasurablyGenerated.exists_measurable_subset h
 #align filter.eventually.exists_measurable_mem Filter.Eventually.exists_measurable_mem
+-/
 
+#print Filter.Eventually.exists_measurable_mem_of_smallSets /-
 theorem Eventually.exists_measurable_mem_of_smallSets {f : Filter α} [IsMeasurablyGenerated f]
     {p : Set α → Prop} (h : ∀ᶠ s in f.smallSets, p s) : ∃ s ∈ f, MeasurableSet s ∧ p s :=
   let ⟨s, hsf, hs⟩ := eventually_smallSets.1 h
   let ⟨t, htf, htm, hts⟩ := IsMeasurablyGenerated.exists_measurable_subset hsf
   ⟨t, htf, htm, hs t hts⟩
 #align filter.eventually.exists_measurable_mem_of_small_sets Filter.Eventually.exists_measurable_mem_of_smallSets
+-/
 
+#print Filter.inf_isMeasurablyGenerated /-
 instance inf_isMeasurablyGenerated (f g : Filter α) [IsMeasurablyGenerated f]
     [IsMeasurablyGenerated g] : IsMeasurablyGenerated (f ⊓ g) :=
   by
@@ -1886,6 +2106,7 @@ instance inf_isMeasurablyGenerated (f g : Filter α) [IsMeasurablyGenerated f]
   refine' ⟨s'f ∩ s'g, inter_mem_inf hs'f hs'g, hmf.inter hmg, _⟩
   exact inter_subset_inter hs'sf hs'sg
 #align filter.inf_is_measurably_generated Filter.inf_isMeasurablyGenerated
+-/
 
 #print Filter.principal_isMeasurablyGenerated_iff /-
 theorem principal_isMeasurablyGenerated_iff {s : Set α} :
@@ -1903,6 +2124,7 @@ alias principal_is_measurably_generated_iff ↔ _
   _root_.measurable_set.principal_is_measurably_generated
 #align measurable_set.principal_is_measurably_generated MeasurableSet.principal_isMeasurablyGenerated
 
+#print Filter.iInf_isMeasurablyGenerated /-
 instance iInf_isMeasurablyGenerated {f : ι → Filter α} [∀ i, IsMeasurablyGenerated (f i)] :
     IsMeasurablyGenerated (⨅ i, f i) :=
   by
@@ -1917,6 +2139,7 @@ instance iInf_isMeasurablyGenerated {f : ι → Filter α} [∀ i, IsMeasurablyG
     exact MeasurableSet.iInter fun i => (hU i).1
   · exact Inter_mono fun i => (hU i).2
 #align filter.infi_is_measurably_generated Filter.iInf_isMeasurablyGenerated
+-/
 
 end Filter
 
@@ -1981,50 +2204,62 @@ theorem coe_insert [MeasurableSingletonClass α] (a : α)
 instance : HasCompl (Subtype (MeasurableSet : Set α → Prop)) :=
   ⟨fun x => ⟨xᶜ, x.Prop.compl⟩⟩
 
+#print MeasurableSet.coe_compl /-
 @[simp]
 theorem coe_compl (s : Subtype (MeasurableSet : Set α → Prop)) : ↑(sᶜ) = (sᶜ : Set α) :=
   rfl
 #align measurable_set.coe_compl MeasurableSet.coe_compl
+-/
 
 instance : Union (Subtype (MeasurableSet : Set α → Prop)) :=
   ⟨fun x y => ⟨x ∪ y, x.Prop.union y.Prop⟩⟩
 
+#print MeasurableSet.coe_union /-
 @[simp]
 theorem coe_union (s t : Subtype (MeasurableSet : Set α → Prop)) : ↑(s ∪ t) = (s ∪ t : Set α) :=
   rfl
 #align measurable_set.coe_union MeasurableSet.coe_union
+-/
 
 instance : Inter (Subtype (MeasurableSet : Set α → Prop)) :=
   ⟨fun x y => ⟨x ∩ y, x.Prop.inter y.Prop⟩⟩
 
+#print MeasurableSet.coe_inter /-
 @[simp]
 theorem coe_inter (s t : Subtype (MeasurableSet : Set α → Prop)) : ↑(s ∩ t) = (s ∩ t : Set α) :=
   rfl
 #align measurable_set.coe_inter MeasurableSet.coe_inter
+-/
 
 instance : SDiff (Subtype (MeasurableSet : Set α → Prop)) :=
   ⟨fun x y => ⟨x \ y, x.Prop.diffₓ y.Prop⟩⟩
 
+#print MeasurableSet.coe_sdiff /-
 @[simp]
 theorem coe_sdiff (s t : Subtype (MeasurableSet : Set α → Prop)) : ↑(s \ t) = (s \ t : Set α) :=
   rfl
 #align measurable_set.coe_sdiff MeasurableSet.coe_sdiff
+-/
 
 instance : Bot (Subtype (MeasurableSet : Set α → Prop)) :=
   ⟨⟨⊥, MeasurableSet.empty⟩⟩
 
+#print MeasurableSet.coe_bot /-
 @[simp]
 theorem coe_bot : ↑(⊥ : Subtype (MeasurableSet : Set α → Prop)) = (⊥ : Set α) :=
   rfl
 #align measurable_set.coe_bot MeasurableSet.coe_bot
+-/
 
 instance : Top (Subtype (MeasurableSet : Set α → Prop)) :=
   ⟨⟨⊤, MeasurableSet.univ⟩⟩
 
+#print MeasurableSet.coe_top /-
 @[simp]
 theorem coe_top : ↑(⊤ : Subtype (MeasurableSet : Set α → Prop)) = (⊤ : Set α) :=
   rfl
 #align measurable_set.coe_top MeasurableSet.coe_top
+-/
 
 instance : PartialOrder (Subtype (MeasurableSet : Set α → Prop)) :=
   PartialOrder.lift _ Subtype.coe_injective
@@ -2057,6 +2292,7 @@ instance : BooleanAlgebra (Subtype (MeasurableSet : Set α → Prop)) :=
     top_le_sup_compl := fun a => BooleanAlgebra.top_le_sup_compl (a : Set α)
     sdiff_eq := fun a b => Subtype.eq <| sdiff_eq }
 
+#print MeasurableSet.measurableSet_blimsup /-
 @[measurability]
 theorem measurableSet_blimsup {s : ℕ → Set α} {p : ℕ → Prop} (h : ∀ n, p n → MeasurableSet (s n)) :
     MeasurableSet <| Filter.blimsup s Filter.atTop p :=
@@ -2066,7 +2302,9 @@ theorem measurableSet_blimsup {s : ℕ → Set α} {p : ℕ → Prop} (h : ∀ n
     MeasurableSet.iInter fun n =>
       MeasurableSet.iUnion fun m => MeasurableSet.iUnion fun hm => h m hm.1
 #align measurable_set.measurable_set_blimsup MeasurableSet.measurableSet_blimsup
+-/
 
+#print MeasurableSet.measurableSet_bliminf /-
 @[measurability]
 theorem measurableSet_bliminf {s : ℕ → Set α} {p : ℕ → Prop} (h : ∀ n, p n → MeasurableSet (s n)) :
     MeasurableSet <| Filter.bliminf s Filter.atTop p :=
@@ -2076,7 +2314,9 @@ theorem measurableSet_bliminf {s : ℕ → Set α} {p : ℕ → Prop} (h : ∀ n
     MeasurableSet.iUnion fun n =>
       MeasurableSet.iInter fun m => MeasurableSet.iInter fun hm => h m hm.1
 #align measurable_set.measurable_set_bliminf MeasurableSet.measurableSet_bliminf
+-/
 
+#print MeasurableSet.measurableSet_limsup /-
 @[measurability]
 theorem measurableSet_limsup {s : ℕ → Set α} (hs : ∀ n, MeasurableSet <| s n) :
     MeasurableSet <| Filter.limsup s Filter.atTop :=
@@ -2084,7 +2324,9 @@ theorem measurableSet_limsup {s : ℕ → Set α} (hs : ∀ n, MeasurableSet <|
   convert measurable_set_blimsup (fun n h => hs n : ∀ n, True → MeasurableSet (s n))
   simp
 #align measurable_set.measurable_set_limsup MeasurableSet.measurableSet_limsup
+-/
 
+#print MeasurableSet.measurableSet_liminf /-
 @[measurability]
 theorem measurableSet_liminf {s : ℕ → Set α} (hs : ∀ n, MeasurableSet <| s n) :
     MeasurableSet <| Filter.liminf s Filter.atTop :=
@@ -2092,6 +2334,7 @@ theorem measurableSet_liminf {s : ℕ → Set α} (hs : ∀ n, MeasurableSet <|
   convert measurable_set_bliminf (fun n h => hs n : ∀ n, True → MeasurableSet (s n))
   simp
 #align measurable_set.measurable_set_liminf MeasurableSet.measurableSet_liminf
+-/
 
 end MeasurableSet
 
Diff
@@ -121,7 +121,7 @@ protected def comap (f : α → β) (m : MeasurableSpace β) : MeasurableSpace 
 
 #print MeasurableSpace.comap_eq_generateFrom /-
 theorem comap_eq_generateFrom (m : MeasurableSpace β) (f : α → β) :
-    m.comap f = generateFrom { t | ∃ s, MeasurableSet s ∧ f ⁻¹' s = t } := by
+    m.comap f = generateFrom {t | ∃ s, MeasurableSet s ∧ f ⁻¹' s = t} := by
   convert generate_from_measurable_set.symm
 #align measurable_space.comap_eq_generate_from MeasurableSpace.comap_eq_generateFrom
 -/
@@ -359,7 +359,7 @@ theorem Measurable.piecewise {_ : DecidablePred (· ∈ s)} (hs : MeasurableSet
 `measurable (ite (x=0) 0 1)` by
 `exact measurable.ite (measurable_set_singleton 0) measurable_const measurable_const`,
 but replacing `measurable.ite` by `measurable.piecewise` in that example proof does not work. -/
-theorem Measurable.ite {p : α → Prop} {_ : DecidablePred p} (hp : MeasurableSet { a : α | p a })
+theorem Measurable.ite {p : α → Prop} {_ : DecidablePred p} (hp : MeasurableSet {a : α | p a})
     (hf : Measurable f) (hg : Measurable g) : Measurable fun x => ite (p x) (f x) (g x) :=
   Measurable.piecewise hp hf hg
 #align measurable.ite Measurable.ite
@@ -384,14 +384,14 @@ theorem measurableSet_mulSupport [One β] [MeasurableSingletonClass β] (hf : Me
 /-- If a function coincides with a measurable function outside of a countable set, it is
 measurable. -/
 theorem Measurable.measurable_of_countable_ne [MeasurableSingletonClass α] (hf : Measurable f)
-    (h : Set.Countable { x | f x ≠ g x }) : Measurable g :=
+    (h : Set.Countable {x | f x ≠ g x}) : Measurable g :=
   by
   intro t ht
-  have : g ⁻¹' t = g ⁻¹' t ∩ { x | f x = g x }ᶜ ∪ g ⁻¹' t ∩ { x | f x = g x } := by
+  have : g ⁻¹' t = g ⁻¹' t ∩ {x | f x = g x}ᶜ ∪ g ⁻¹' t ∩ {x | f x = g x} := by
     simp [← inter_union_distrib_left]
   rw [this]
   apply MeasurableSet.union (h.mono (inter_subset_right _ _)).MeasurableSet
-  have : g ⁻¹' t ∩ { x : α | f x = g x } = f ⁻¹' t ∩ { x : α | f x = g x } := by ext x;
+  have : g ⁻¹' t ∩ {x : α | f x = g x} = f ⁻¹' t ∩ {x : α | f x = g x} := by ext x;
     simp (config := { contextual := true })
   rw [this]
   exact (hf ht).inter h.measurable_set.of_compl
@@ -492,7 +492,7 @@ theorem measurable_to_bool {f : α → Bool} (h : MeasurableSet (f ⁻¹' {true}
 
 #print measurable_findGreatest' /-
 theorem measurable_findGreatest' {p : α → ℕ → Prop} [∀ x, DecidablePred (p x)] {N : ℕ}
-    (hN : ∀ k ≤ N, MeasurableSet { x | Nat.findGreatest (p x) N = k }) :
+    (hN : ∀ k ≤ N, MeasurableSet {x | Nat.findGreatest (p x) N = k}) :
     Measurable fun x => Nat.findGreatest (p x) N :=
   measurable_to_nat fun x => hN _ N.findGreatest_le
 #align measurable_find_greatest' measurable_findGreatest'
@@ -500,7 +500,7 @@ theorem measurable_findGreatest' {p : α → ℕ → Prop} [∀ x, DecidablePred
 
 #print measurable_findGreatest /-
 theorem measurable_findGreatest {p : α → ℕ → Prop} [∀ x, DecidablePred (p x)] {N}
-    (hN : ∀ k ≤ N, MeasurableSet { x | p x k }) : Measurable fun x => Nat.findGreatest (p x) N :=
+    (hN : ∀ k ≤ N, MeasurableSet {x | p x k}) : Measurable fun x => Nat.findGreatest (p x) N :=
   by
   refine' measurable_findGreatest' fun k hk => _
   simp only [Nat.findGreatest_eq_iff, set_of_and, set_of_forall, ← compl_set_of]
@@ -513,7 +513,7 @@ theorem measurable_findGreatest {p : α → ℕ → Prop} [∀ x, DecidablePred
 
 #print measurable_find /-
 theorem measurable_find {p : α → ℕ → Prop} [∀ x, DecidablePred (p x)] (hp : ∀ x, ∃ N, p x N)
-    (hm : ∀ k, MeasurableSet { x | p x k }) : Measurable fun x => Nat.find (hp x) :=
+    (hm : ∀ k, MeasurableSet {x | p x k}) : Measurable fun x => Nat.find (hp x) :=
   by
   refine' measurable_to_nat fun x => _
   rw [preimage_find_eq_disjointed]
@@ -616,7 +616,7 @@ instance {p : α → Prop} [MeasurableSingletonClass α] : MeasurableSingletonCl
     where measurableSet_singleton x :=
     by
     have : MeasurableSet {(x : α)} := measurable_set_singleton _
-    convert@measurable_subtype_coe α _ p _ this
+    convert @measurable_subtype_coe α _ p _ this
     ext y
     simp [Subtype.ext_iff]
 
@@ -657,7 +657,7 @@ theorem measurable_of_measurable_union_cover {f : α → β} (s t : Set α) (hs
     (hd : Measurable fun a : t => f a) : Measurable f :=
   by
   intro u hu
-  convert(hs.subtype_image (hc hu)).union (ht.subtype_image (hd hu))
+  convert (hs.subtype_image (hc hu)).union (ht.subtype_image (hd hu))
   change f ⁻¹' u = coe '' (coe ⁻¹' (f ⁻¹' u) : Set s) ∪ coe '' (coe ⁻¹' (f ⁻¹' u) : Set t)
   rw [image_preimage_eq_inter_range, image_preimage_eq_inter_range, Subtype.range_coe,
     Subtype.range_coe, ← inter_distrib_left, univ_subset_iff.1 h, inter_univ]
@@ -681,7 +681,7 @@ theorem measurable_of_measurable_on_compl_finite [MeasurableSingletonClass α] {
 #align measurable_of_measurable_on_compl_finite measurable_of_measurable_on_compl_finite
 
 theorem measurable_of_measurable_on_compl_singleton [MeasurableSingletonClass α] {f : α → β} (a : α)
-    (hf : Measurable ({ x | x ≠ a }.restrict f)) : Measurable f :=
+    (hf : Measurable ({x | x ≠ a}.restrict f)) : Measurable f :=
   measurable_of_measurable_on_compl_finite {a} (finite_singleton a) hf
 #align measurable_of_measurable_on_compl_singleton measurable_of_measurable_on_compl_singleton
 
@@ -843,7 +843,7 @@ theorem measurable_from_prod_countable [Countable β] [MeasurableSingletonClass
 /-- A piecewise function on countably many pieces is measurable if all the data is measurable. -/
 @[measurability]
 theorem Measurable.find {m : MeasurableSpace α} {f : ℕ → α → β} {p : ℕ → α → Prop}
-    [∀ n, DecidablePred (p n)] (hf : ∀ n, Measurable (f n)) (hp : ∀ n, MeasurableSet { x | p n x })
+    [∀ n, DecidablePred (p n)] (hf : ∀ n, Measurable (f n)) (hp : ∀ n, MeasurableSet {x | p n x})
     (h : ∀ x, ∃ n, p n x) : Measurable fun x => f (Nat.find (h x)) x :=
   haveI : Measurable fun p : α × ℕ => f p.2 p.1 := measurable_from_prod_countable fun n => hf n
   this.comp (Measurable.prod_mk measurable_id (measurable_find h hp))
@@ -855,27 +855,27 @@ theorem exists_measurable_piecewise_nat {m : MeasurableSpace α} (t : ℕ → Se
     (t_meas : ∀ n, MeasurableSet (t n)) (t_disj : Pairwise (Disjoint on t)) (g : ℕ → β → α)
     (hg : ∀ n, Measurable (g n)) : ∃ f : β → α, Measurable f ∧ ∀ n x, x ∈ t n → f x = g n x := by
   classical
-    let p : ℕ → β → Prop := fun n x => x ∈ t n ∪ (⋃ k, t k)ᶜ
-    have M : ∀ n, MeasurableSet { x | p n x } := fun n =>
-      (t_meas n).union (MeasurableSet.compl (MeasurableSet.iUnion t_meas))
-    have P : ∀ x, ∃ n, p n x := by
-      intro x
-      by_cases H : ∀ i : ℕ, x ∉ t i
-      · exact ⟨0, Or.inr (by simpa only [mem_Inter, compl_Union] using H)⟩
-      · simp only [not_forall, not_not_mem] at H 
-        rcases H with ⟨n, hn⟩
-        exact ⟨n, Or.inl hn⟩
-    refine' ⟨fun x => g (Nat.find (P x)) x, Measurable.find hg M P, _⟩
-    intro n x hx
-    have : x ∈ t (Nat.find (P x)) :=
-      by
-      have B : x ∈ t (Nat.find (P x)) ∪ (⋃ k, t k)ᶜ := Nat.find_spec (P x)
-      have B' : (∀ i : ℕ, x ∉ t i) ↔ False := by simp only [iff_false_iff, not_forall, not_not_mem];
-        exact ⟨n, hx⟩
-      simpa only [B', mem_union, mem_Inter, or_false_iff, compl_Union, mem_compl_iff] using B
-    congr
-    by_contra h
-    exact (t_disj (Ne.symm h)).le_bot ⟨hx, this⟩
+  let p : ℕ → β → Prop := fun n x => x ∈ t n ∪ (⋃ k, t k)ᶜ
+  have M : ∀ n, MeasurableSet {x | p n x} := fun n =>
+    (t_meas n).union (MeasurableSet.compl (MeasurableSet.iUnion t_meas))
+  have P : ∀ x, ∃ n, p n x := by
+    intro x
+    by_cases H : ∀ i : ℕ, x ∉ t i
+    · exact ⟨0, Or.inr (by simpa only [mem_Inter, compl_Union] using H)⟩
+    · simp only [not_forall, not_not_mem] at H 
+      rcases H with ⟨n, hn⟩
+      exact ⟨n, Or.inl hn⟩
+  refine' ⟨fun x => g (Nat.find (P x)) x, Measurable.find hg M P, _⟩
+  intro n x hx
+  have : x ∈ t (Nat.find (P x)) :=
+    by
+    have B : x ∈ t (Nat.find (P x)) ∪ (⋃ k, t k)ᶜ := Nat.find_spec (P x)
+    have B' : (∀ i : ℕ, x ∉ t i) ↔ False := by simp only [iff_false_iff, not_forall, not_not_mem];
+      exact ⟨n, hx⟩
+    simpa only [B', mem_union, mem_Inter, or_false_iff, compl_Union, mem_compl_iff] using B
+  congr
+  by_contra h
+  exact (t_disj (Ne.symm h)).le_bot ⟨hx, this⟩
 #align exists_measurable_piecewise_nat exists_measurable_piecewise_nat
 
 end Prod
@@ -942,11 +942,11 @@ theorem MeasurableSet.univ_pi [Countable δ] {t : ∀ i : δ, Set (π i)}
 theorem measurableSet_pi_of_nonempty {s : Set δ} {t : ∀ i, Set (π i)} (hs : s.Countable)
     (h : (pi s t).Nonempty) : MeasurableSet (pi s t) ↔ ∀ i ∈ s, MeasurableSet (t i) := by
   classical
-    rcases h with ⟨f, hf⟩
-    refine' ⟨fun hst i hi => _, MeasurableSet.pi hs⟩
-    convert measurable_update f hst
-    rw [update_preimage_pi hi]
-    exact fun j hj _ => hf j hj
+  rcases h with ⟨f, hf⟩
+  refine' ⟨fun hst i hi => _, MeasurableSet.pi hs⟩
+  convert measurable_update f hst
+  rw [update_preimage_pi hi]
+  exact fun j hj _ => hf j hj
 #align measurable_set_pi_of_nonempty measurableSet_pi_of_nonempty
 
 theorem measurableSet_pi {s : Set δ} {t : ∀ i, Set (π i)} (hs : s.Countable) :
@@ -1899,8 +1899,8 @@ theorem principal_isMeasurablyGenerated_iff {s : Set α} :
 #align filter.principal_is_measurably_generated_iff Filter.principal_isMeasurablyGenerated_iff
 -/
 
-alias principal_is_measurably_generated_iff ↔
-  _ _root_.measurable_set.principal_is_measurably_generated
+alias principal_is_measurably_generated_iff ↔ _
+  _root_.measurable_set.principal_is_measurably_generated
 #align measurable_set.principal_is_measurably_generated MeasurableSet.principal_isMeasurablyGenerated
 
 instance iInf_isMeasurablyGenerated {f : ι → Filter α} [∀ i, IsMeasurablyGenerated (f i)] :
@@ -1932,7 +1932,7 @@ def IsCountablySpanning (C : Set (Set α)) : Prop :=
 
 #print isCountablySpanning_measurableSet /-
 theorem isCountablySpanning_measurableSet [MeasurableSpace α] :
-    IsCountablySpanning { s : Set α | MeasurableSet s } :=
+    IsCountablySpanning {s : Set α | MeasurableSet s} :=
   ⟨fun _ => univ, fun _ => MeasurableSet.univ, iUnion_const _⟩
 #align is_countably_spanning_measurable_set isCountablySpanning_measurableSet
 -/
Diff
@@ -862,7 +862,7 @@ theorem exists_measurable_piecewise_nat {m : MeasurableSpace α} (t : ℕ → Se
       intro x
       by_cases H : ∀ i : ℕ, x ∉ t i
       · exact ⟨0, Or.inr (by simpa only [mem_Inter, compl_Union] using H)⟩
-      · simp only [not_forall, not_not_mem] at H
+      · simp only [not_forall, not_not_mem] at H 
         rcases H with ⟨n, hn⟩
         exact ⟨n, Or.inl hn⟩
     refine' ⟨fun x => g (Nat.find (P x)) x, Measurable.find hg M P, _⟩
@@ -1112,7 +1112,7 @@ range and the range is a measurable set. One implication is formalized as
 `measurable_embedding.comp`. -/
 @[protect_proj]
 structure MeasurableEmbedding {α β : Type _} [MeasurableSpace α] [MeasurableSpace β] (f : α → β) :
-  Prop where
+    Prop where
   Injective : Injective f
   Measurable : Measurable f
   measurableSet_image' : ∀ ⦃s⦄, MeasurableSet s → MeasurableSet (f '' s)
@@ -1187,7 +1187,7 @@ theorem measurable_comp_iff (hg : MeasurableEmbedding g) : Measurable (g ∘ f)
   by
   refine' ⟨fun H => _, hg.measurable.comp⟩
   suffices Measurable ((range_splitting g ∘ range_factorization g) ∘ f) by
-    rwa [(right_inverse_range_splitting hg.injective).comp_eq_id] at this
+    rwa [(right_inverse_range_splitting hg.injective).comp_eq_id] at this 
   exact hg.measurable_range_splitting.comp H.subtype_mk
 #align measurable_embedding.measurable_comp_iff MeasurableEmbedding.measurable_comp_iff
 
@@ -1405,7 +1405,7 @@ protected theorem measurable_comp_iff {f : β → γ} (e : α ≃ᵐ β) :
     (fun hfe =>
       by
       have : Measurable (f ∘ (e.symm.trans e).toEquiv) := hfe.comp e.symm.Measurable
-      rwa [coe_to_equiv, symm_trans_self] at this)
+      rwa [coe_to_equiv, symm_trans_self] at this )
     fun h => h.comp e.Measurable
 #align measurable_equiv.measurable_comp_iff MeasurableEquiv.measurable_comp_iff
 
@@ -1739,7 +1739,7 @@ noncomputable def schroederBernstein {f : α → β} {g : β → α} (hf : Measu
   -- the crux of which is finding a fixed point of this F.
   -- However, we must find this fixed point manually instead of invoking Knaster-Tarski
   -- in order to make sure it is measurable.
-  suffices Σ'A : Set α, MeasurableSet A ∧ F A = A
+  suffices Σ' A : Set α, MeasurableSet A ∧ F A = A
     by
     rcases this with ⟨A, Ameas, Afp⟩
     let B := f '' A
@@ -1772,14 +1772,14 @@ noncomputable def schroederBernstein {f : α → β} {g : β → α} (hf : Measu
     rw [Function.iterate_succ', Function.comp_apply]
     exact Fmono (Inter_subset _ _)
   rintro x hx ⟨y, hy, rfl⟩
-  rw [mem_Inter] at hx
+  rw [mem_Inter] at hx 
   apply hy
   rw [(inj_on_of_injective hf.injective _).image_iInter_eq]
   swap; · infer_instance
   rw [mem_Inter]
   intro n
   specialize hx n.succ
-  rw [Function.iterate_succ', Function.comp_apply] at hx
+  rw [Function.iterate_succ', Function.comp_apply] at hx 
   by_contra h
   apply hx
   exact ⟨y, h, rfl⟩
@@ -1813,7 +1813,7 @@ theorem measurable_injection_nat_bool_of_countablyGenerated [MeasurableSpace α]
   by
   obtain ⟨b, bct, hb⟩ := h.is_countably_generated
   obtain ⟨e, he⟩ := Set.Countable.exists_eq_range (bct.insert ∅) (insert_nonempty _ _)
-  rw [← generate_from_insert_empty, he] at hb
+  rw [← generate_from_insert_empty, he] at hb 
   refine' ⟨fun x n => to_bool (x ∈ e n), _, _⟩
   · rw [measurable_pi_iff]
     intro n
@@ -1829,7 +1829,7 @@ theorem measurable_injection_nat_bool_of_countablyGenerated [MeasurableSpace α]
     apply generate_from_induction
     · rintro - ⟨n, rfl⟩
       rw [← decide_eq_decide]
-      rw [funext_iff] at hxy
+      rw [funext_iff] at hxy 
       exact hxy n
     · tauto
     · intro t
@@ -1907,7 +1907,7 @@ instance iInf_isMeasurablyGenerated {f : ι → Filter α} [∀ i, IsMeasurablyG
     IsMeasurablyGenerated (⨅ i, f i) :=
   by
   refine' ⟨fun s hs => _⟩
-  rw [← equiv.plift.surjective.infi_comp, mem_infi] at hs
+  rw [← equiv.plift.surjective.infi_comp, mem_infi] at hs 
   rcases hs with ⟨t, ht, ⟨V, hVf, rfl⟩⟩
   choose U hUf hU using fun i => is_measurably_generated.exists_measurable_subset (hVf i)
   refine' ⟨⋂ i : t, U i, _, _, _⟩
Diff
@@ -69,7 +69,7 @@ measurable space, σ-algebra, measurable function, measurable equivalence, dynki
 
 open Set Encodable Function Equiv
 
-open Filter MeasureTheory
+open scoped Filter MeasureTheory
 
 variable {α β γ δ δ' : Type _} {ι : Sort _} {s t u : Set α}
 
@@ -1726,7 +1726,7 @@ theorem of_measurable_inverse (hf₁ : Measurable f) (hf₂ : MeasurableSet (ran
   of_measurable_inverse_on_range hf₁ hf₂ (hg.comp measurable_subtype_coe) H
 #align measurable_embedding.of_measurable_inverse MeasurableEmbedding.of_measurable_inverse
 
-open Classical
+open scoped Classical
 
 #print MeasurableEmbedding.schroederBernstein /-
 /-- The **`measurable Schröder-Bernstein Theorem**: Given measurable embeddings
@@ -1802,7 +1802,7 @@ class CountablyGenerated [m : MeasurableSpace α] : Prop where
 #align measurable_space.countably_generated MeasurableSpace.CountablyGenerated
 -/
 
-open Classical
+open scoped Classical
 
 #print MeasurableSpace.measurable_injection_nat_bool_of_countablyGenerated /-
 /-- If a measurable space is countably generated, it admits a measurable injection
Diff
@@ -141,147 +141,63 @@ theorem comap_comp {f : β → α} {g : γ → β} : (m.comap f).comap g = m.com
 #align measurable_space.comap_comp MeasurableSpace.comap_comp
 -/
 
-/- warning: measurable_space.comap_le_iff_le_map -> MeasurableSpace.comap_le_iff_le_map is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {m : MeasurableSpace.{u1} α} {m' : MeasurableSpace.{u2} β} {f : α -> β}, Iff (LE.le.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.hasLe.{u1} α) (MeasurableSpace.comap.{u1, u2} α β f m') m) (LE.le.{u2} (MeasurableSpace.{u2} β) (MeasurableSpace.hasLe.{u2} β) m' (MeasurableSpace.map.{u1, u2} α β f m))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {m : MeasurableSpace.{u2} α} {m' : MeasurableSpace.{u1} β} {f : α -> β}, Iff (LE.le.{u2} (MeasurableSpace.{u2} α) (MeasurableSpace.instLEMeasurableSpace.{u2} α) (MeasurableSpace.comap.{u2, u1} α β f m') m) (LE.le.{u1} (MeasurableSpace.{u1} β) (MeasurableSpace.instLEMeasurableSpace.{u1} β) m' (MeasurableSpace.map.{u2, u1} α β f m))
-Case conversion may be inaccurate. Consider using '#align measurable_space.comap_le_iff_le_map MeasurableSpace.comap_le_iff_le_mapₓ'. -/
 theorem comap_le_iff_le_map {f : α → β} : m'.comap f ≤ m ↔ m' ≤ m.map f :=
   ⟨fun h s hs => h _ ⟨_, hs, rfl⟩, fun h s ⟨t, ht, HEq⟩ => HEq ▸ h _ ht⟩
 #align measurable_space.comap_le_iff_le_map MeasurableSpace.comap_le_iff_le_map
 
-/- warning: measurable_space.gc_comap_map -> MeasurableSpace.gc_comap_map is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} (f : α -> β), GaloisConnection.{u2, u1} (MeasurableSpace.{u2} β) (MeasurableSpace.{u1} α) (PartialOrder.toPreorder.{u2} (MeasurableSpace.{u2} β) (MeasurableSpace.partialOrder.{u2} β)) (PartialOrder.toPreorder.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.partialOrder.{u1} α)) (MeasurableSpace.comap.{u1, u2} α β f) (MeasurableSpace.map.{u1, u2} α β f)
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} (f : α -> β), GaloisConnection.{u2, u1} (MeasurableSpace.{u2} β) (MeasurableSpace.{u1} α) (PartialOrder.toPreorder.{u2} (MeasurableSpace.{u2} β) (MeasurableSpace.instPartialOrderMeasurableSpace.{u2} β)) (PartialOrder.toPreorder.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.instPartialOrderMeasurableSpace.{u1} α)) (MeasurableSpace.comap.{u1, u2} α β f) (MeasurableSpace.map.{u1, u2} α β f)
-Case conversion may be inaccurate. Consider using '#align measurable_space.gc_comap_map MeasurableSpace.gc_comap_mapₓ'. -/
 theorem gc_comap_map (f : α → β) :
     GaloisConnection (MeasurableSpace.comap f) (MeasurableSpace.map f) := fun f g =>
   comap_le_iff_le_map
 #align measurable_space.gc_comap_map MeasurableSpace.gc_comap_map
 
-/- warning: measurable_space.map_mono -> MeasurableSpace.map_mono is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {m₁ : MeasurableSpace.{u1} α} {m₂ : MeasurableSpace.{u1} α} {f : α -> β}, (LE.le.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.hasLe.{u1} α) m₁ m₂) -> (LE.le.{u2} (MeasurableSpace.{u2} β) (MeasurableSpace.hasLe.{u2} β) (MeasurableSpace.map.{u1, u2} α β f m₁) (MeasurableSpace.map.{u1, u2} α β f m₂))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {m₁ : MeasurableSpace.{u2} α} {m₂ : MeasurableSpace.{u2} α} {f : α -> β}, (LE.le.{u2} (MeasurableSpace.{u2} α) (MeasurableSpace.instLEMeasurableSpace.{u2} α) m₁ m₂) -> (LE.le.{u1} (MeasurableSpace.{u1} β) (MeasurableSpace.instLEMeasurableSpace.{u1} β) (MeasurableSpace.map.{u2, u1} α β f m₁) (MeasurableSpace.map.{u2, u1} α β f m₂))
-Case conversion may be inaccurate. Consider using '#align measurable_space.map_mono MeasurableSpace.map_monoₓ'. -/
 theorem map_mono (h : m₁ ≤ m₂) : m₁.map f ≤ m₂.map f :=
   (gc_comap_map f).monotone_u h
 #align measurable_space.map_mono MeasurableSpace.map_mono
 
-/- warning: measurable_space.monotone_map -> MeasurableSpace.monotone_map is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {f : α -> β}, Monotone.{u1, u2} (MeasurableSpace.{u1} α) (MeasurableSpace.{u2} β) (PartialOrder.toPreorder.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.partialOrder.{u1} α)) (PartialOrder.toPreorder.{u2} (MeasurableSpace.{u2} β) (MeasurableSpace.partialOrder.{u2} β)) (MeasurableSpace.map.{u1, u2} α β f)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {f : α -> β}, Monotone.{u2, u1} (MeasurableSpace.{u2} α) (MeasurableSpace.{u1} β) (PartialOrder.toPreorder.{u2} (MeasurableSpace.{u2} α) (MeasurableSpace.instPartialOrderMeasurableSpace.{u2} α)) (PartialOrder.toPreorder.{u1} (MeasurableSpace.{u1} β) (MeasurableSpace.instPartialOrderMeasurableSpace.{u1} β)) (MeasurableSpace.map.{u2, u1} α β f)
-Case conversion may be inaccurate. Consider using '#align measurable_space.monotone_map MeasurableSpace.monotone_mapₓ'. -/
 theorem monotone_map : Monotone (MeasurableSpace.map f) := fun a b h => map_mono h
 #align measurable_space.monotone_map MeasurableSpace.monotone_map
 
-/- warning: measurable_space.comap_mono -> MeasurableSpace.comap_mono is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {m₁ : MeasurableSpace.{u1} α} {m₂ : MeasurableSpace.{u1} α} {g : β -> α}, (LE.le.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.hasLe.{u1} α) m₁ m₂) -> (LE.le.{u2} (MeasurableSpace.{u2} β) (MeasurableSpace.hasLe.{u2} β) (MeasurableSpace.comap.{u2, u1} β α g m₁) (MeasurableSpace.comap.{u2, u1} β α g m₂))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {m₁ : MeasurableSpace.{u2} α} {m₂ : MeasurableSpace.{u2} α} {g : β -> α}, (LE.le.{u2} (MeasurableSpace.{u2} α) (MeasurableSpace.instLEMeasurableSpace.{u2} α) m₁ m₂) -> (LE.le.{u1} (MeasurableSpace.{u1} β) (MeasurableSpace.instLEMeasurableSpace.{u1} β) (MeasurableSpace.comap.{u1, u2} β α g m₁) (MeasurableSpace.comap.{u1, u2} β α g m₂))
-Case conversion may be inaccurate. Consider using '#align measurable_space.comap_mono MeasurableSpace.comap_monoₓ'. -/
 theorem comap_mono (h : m₁ ≤ m₂) : m₁.comap g ≤ m₂.comap g :=
   (gc_comap_map g).monotone_l h
 #align measurable_space.comap_mono MeasurableSpace.comap_mono
 
-/- warning: measurable_space.monotone_comap -> MeasurableSpace.monotone_comap is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {g : β -> α}, Monotone.{u1, u2} (MeasurableSpace.{u1} α) (MeasurableSpace.{u2} β) (PartialOrder.toPreorder.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.partialOrder.{u1} α)) (PartialOrder.toPreorder.{u2} (MeasurableSpace.{u2} β) (MeasurableSpace.partialOrder.{u2} β)) (MeasurableSpace.comap.{u2, u1} β α g)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {g : β -> α}, Monotone.{u2, u1} (MeasurableSpace.{u2} α) (MeasurableSpace.{u1} β) (PartialOrder.toPreorder.{u2} (MeasurableSpace.{u2} α) (MeasurableSpace.instPartialOrderMeasurableSpace.{u2} α)) (PartialOrder.toPreorder.{u1} (MeasurableSpace.{u1} β) (MeasurableSpace.instPartialOrderMeasurableSpace.{u1} β)) (MeasurableSpace.comap.{u1, u2} β α g)
-Case conversion may be inaccurate. Consider using '#align measurable_space.monotone_comap MeasurableSpace.monotone_comapₓ'. -/
 theorem monotone_comap : Monotone (MeasurableSpace.comap g) := fun a b h => comap_mono h
 #align measurable_space.monotone_comap MeasurableSpace.monotone_comap
 
-/- warning: measurable_space.comap_bot -> MeasurableSpace.comap_bot is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {g : β -> α}, Eq.{succ u2} (MeasurableSpace.{u2} β) (MeasurableSpace.comap.{u2, u1} β α g (Bot.bot.{u1} (MeasurableSpace.{u1} α) (CompleteLattice.toHasBot.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.completeLattice.{u1} α)))) (Bot.bot.{u2} (MeasurableSpace.{u2} β) (CompleteLattice.toHasBot.{u2} (MeasurableSpace.{u2} β) (MeasurableSpace.completeLattice.{u2} β)))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} {g : β -> α}, Eq.{succ u2} (MeasurableSpace.{u2} β) (MeasurableSpace.comap.{u2, u1} β α g (Bot.bot.{u1} (MeasurableSpace.{u1} α) (CompleteLattice.toBot.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.instCompleteLatticeMeasurableSpace.{u1} α)))) (Bot.bot.{u2} (MeasurableSpace.{u2} β) (CompleteLattice.toBot.{u2} (MeasurableSpace.{u2} β) (MeasurableSpace.instCompleteLatticeMeasurableSpace.{u2} β)))
-Case conversion may be inaccurate. Consider using '#align measurable_space.comap_bot MeasurableSpace.comap_botₓ'. -/
 @[simp]
 theorem comap_bot : (⊥ : MeasurableSpace α).comap g = ⊥ :=
   (gc_comap_map g).l_bot
 #align measurable_space.comap_bot MeasurableSpace.comap_bot
 
-/- warning: measurable_space.comap_sup -> MeasurableSpace.comap_sup is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {m₁ : MeasurableSpace.{u1} α} {m₂ : MeasurableSpace.{u1} α} {g : β -> α}, Eq.{succ u2} (MeasurableSpace.{u2} β) (MeasurableSpace.comap.{u2, u1} β α g (Sup.sup.{u1} (MeasurableSpace.{u1} α) (SemilatticeSup.toHasSup.{u1} (MeasurableSpace.{u1} α) (Lattice.toSemilatticeSup.{u1} (MeasurableSpace.{u1} α) (ConditionallyCompleteLattice.toLattice.{u1} (MeasurableSpace.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.completeLattice.{u1} α))))) m₁ m₂)) (Sup.sup.{u2} (MeasurableSpace.{u2} β) (SemilatticeSup.toHasSup.{u2} (MeasurableSpace.{u2} β) (Lattice.toSemilatticeSup.{u2} (MeasurableSpace.{u2} β) (ConditionallyCompleteLattice.toLattice.{u2} (MeasurableSpace.{u2} β) (CompleteLattice.toConditionallyCompleteLattice.{u2} (MeasurableSpace.{u2} β) (MeasurableSpace.completeLattice.{u2} β))))) (MeasurableSpace.comap.{u2, u1} β α g m₁) (MeasurableSpace.comap.{u2, u1} β α g m₂))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} {m₁ : MeasurableSpace.{u1} α} {m₂ : MeasurableSpace.{u1} α} {g : β -> α}, Eq.{succ u2} (MeasurableSpace.{u2} β) (MeasurableSpace.comap.{u2, u1} β α g (Sup.sup.{u1} (MeasurableSpace.{u1} α) (SemilatticeSup.toSup.{u1} (MeasurableSpace.{u1} α) (Lattice.toSemilatticeSup.{u1} (MeasurableSpace.{u1} α) (ConditionallyCompleteLattice.toLattice.{u1} (MeasurableSpace.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.instCompleteLatticeMeasurableSpace.{u1} α))))) m₁ m₂)) (Sup.sup.{u2} (MeasurableSpace.{u2} β) (SemilatticeSup.toSup.{u2} (MeasurableSpace.{u2} β) (Lattice.toSemilatticeSup.{u2} (MeasurableSpace.{u2} β) (ConditionallyCompleteLattice.toLattice.{u2} (MeasurableSpace.{u2} β) (CompleteLattice.toConditionallyCompleteLattice.{u2} (MeasurableSpace.{u2} β) (MeasurableSpace.instCompleteLatticeMeasurableSpace.{u2} β))))) (MeasurableSpace.comap.{u2, u1} β α g m₁) (MeasurableSpace.comap.{u2, u1} β α g m₂))
-Case conversion may be inaccurate. Consider using '#align measurable_space.comap_sup MeasurableSpace.comap_supₓ'. -/
 @[simp]
 theorem comap_sup : (m₁ ⊔ m₂).comap g = m₁.comap g ⊔ m₂.comap g :=
   (gc_comap_map g).l_sup
 #align measurable_space.comap_sup MeasurableSpace.comap_sup
 
-/- warning: measurable_space.comap_supr -> MeasurableSpace.comap_iSup is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {g : β -> α} {m : ι -> (MeasurableSpace.{u1} α)}, Eq.{succ u2} (MeasurableSpace.{u2} β) (MeasurableSpace.comap.{u2, u1} β α g (iSup.{u1, u3} (MeasurableSpace.{u1} α) (ConditionallyCompleteLattice.toHasSup.{u1} (MeasurableSpace.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.completeLattice.{u1} α))) ι (fun (i : ι) => m i))) (iSup.{u2, u3} (MeasurableSpace.{u2} β) (ConditionallyCompleteLattice.toHasSup.{u2} (MeasurableSpace.{u2} β) (CompleteLattice.toConditionallyCompleteLattice.{u2} (MeasurableSpace.{u2} β) (MeasurableSpace.completeLattice.{u2} β))) ι (fun (i : ι) => MeasurableSpace.comap.{u2, u1} β α g (m i)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {ι : Sort.{u3}} {g : β -> α} {m : ι -> (MeasurableSpace.{u2} α)}, Eq.{succ u1} (MeasurableSpace.{u1} β) (MeasurableSpace.comap.{u1, u2} β α g (iSup.{u2, u3} (MeasurableSpace.{u2} α) (ConditionallyCompleteLattice.toSupSet.{u2} (MeasurableSpace.{u2} α) (CompleteLattice.toConditionallyCompleteLattice.{u2} (MeasurableSpace.{u2} α) (MeasurableSpace.instCompleteLatticeMeasurableSpace.{u2} α))) ι (fun (i : ι) => m i))) (iSup.{u1, u3} (MeasurableSpace.{u1} β) (ConditionallyCompleteLattice.toSupSet.{u1} (MeasurableSpace.{u1} β) (CompleteLattice.toConditionallyCompleteLattice.{u1} (MeasurableSpace.{u1} β) (MeasurableSpace.instCompleteLatticeMeasurableSpace.{u1} β))) ι (fun (i : ι) => MeasurableSpace.comap.{u1, u2} β α g (m i)))
-Case conversion may be inaccurate. Consider using '#align measurable_space.comap_supr MeasurableSpace.comap_iSupₓ'. -/
 @[simp]
 theorem comap_iSup {m : ι → MeasurableSpace α} : (⨆ i, m i).comap g = ⨆ i, (m i).comap g :=
   (gc_comap_map g).l_iSup
 #align measurable_space.comap_supr MeasurableSpace.comap_iSup
 
-/- warning: measurable_space.map_top -> MeasurableSpace.map_top is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {f : α -> β}, Eq.{succ u2} (MeasurableSpace.{u2} β) (MeasurableSpace.map.{u1, u2} α β f (Top.top.{u1} (MeasurableSpace.{u1} α) (CompleteLattice.toHasTop.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.completeLattice.{u1} α)))) (Top.top.{u2} (MeasurableSpace.{u2} β) (CompleteLattice.toHasTop.{u2} (MeasurableSpace.{u2} β) (MeasurableSpace.completeLattice.{u2} β)))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} {f : α -> β}, Eq.{succ u2} (MeasurableSpace.{u2} β) (MeasurableSpace.map.{u1, u2} α β f (Top.top.{u1} (MeasurableSpace.{u1} α) (CompleteLattice.toTop.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.instCompleteLatticeMeasurableSpace.{u1} α)))) (Top.top.{u2} (MeasurableSpace.{u2} β) (CompleteLattice.toTop.{u2} (MeasurableSpace.{u2} β) (MeasurableSpace.instCompleteLatticeMeasurableSpace.{u2} β)))
-Case conversion may be inaccurate. Consider using '#align measurable_space.map_top MeasurableSpace.map_topₓ'. -/
 @[simp]
 theorem map_top : (⊤ : MeasurableSpace α).map f = ⊤ :=
   (gc_comap_map f).u_top
 #align measurable_space.map_top MeasurableSpace.map_top
 
-/- warning: measurable_space.map_inf -> MeasurableSpace.map_inf is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {m₁ : MeasurableSpace.{u1} α} {m₂ : MeasurableSpace.{u1} α} {f : α -> β}, Eq.{succ u2} (MeasurableSpace.{u2} β) (MeasurableSpace.map.{u1, u2} α β f (Inf.inf.{u1} (MeasurableSpace.{u1} α) (SemilatticeInf.toHasInf.{u1} (MeasurableSpace.{u1} α) (Lattice.toSemilatticeInf.{u1} (MeasurableSpace.{u1} α) (ConditionallyCompleteLattice.toLattice.{u1} (MeasurableSpace.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.completeLattice.{u1} α))))) m₁ m₂)) (Inf.inf.{u2} (MeasurableSpace.{u2} β) (SemilatticeInf.toHasInf.{u2} (MeasurableSpace.{u2} β) (Lattice.toSemilatticeInf.{u2} (MeasurableSpace.{u2} β) (ConditionallyCompleteLattice.toLattice.{u2} (MeasurableSpace.{u2} β) (CompleteLattice.toConditionallyCompleteLattice.{u2} (MeasurableSpace.{u2} β) (MeasurableSpace.completeLattice.{u2} β))))) (MeasurableSpace.map.{u1, u2} α β f m₁) (MeasurableSpace.map.{u1, u2} α β f m₂))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} {m₁ : MeasurableSpace.{u1} α} {m₂ : MeasurableSpace.{u1} α} {f : α -> β}, Eq.{succ u2} (MeasurableSpace.{u2} β) (MeasurableSpace.map.{u1, u2} α β f (Inf.inf.{u1} (MeasurableSpace.{u1} α) (Lattice.toInf.{u1} (MeasurableSpace.{u1} α) (ConditionallyCompleteLattice.toLattice.{u1} (MeasurableSpace.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.instCompleteLatticeMeasurableSpace.{u1} α)))) m₁ m₂)) (Inf.inf.{u2} (MeasurableSpace.{u2} β) (Lattice.toInf.{u2} (MeasurableSpace.{u2} β) (ConditionallyCompleteLattice.toLattice.{u2} (MeasurableSpace.{u2} β) (CompleteLattice.toConditionallyCompleteLattice.{u2} (MeasurableSpace.{u2} β) (MeasurableSpace.instCompleteLatticeMeasurableSpace.{u2} β)))) (MeasurableSpace.map.{u1, u2} α β f m₁) (MeasurableSpace.map.{u1, u2} α β f m₂))
-Case conversion may be inaccurate. Consider using '#align measurable_space.map_inf MeasurableSpace.map_infₓ'. -/
 @[simp]
 theorem map_inf : (m₁ ⊓ m₂).map f = m₁.map f ⊓ m₂.map f :=
   (gc_comap_map f).u_inf
 #align measurable_space.map_inf MeasurableSpace.map_inf
 
-/- warning: measurable_space.map_infi -> MeasurableSpace.map_iInf is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {f : α -> β} {m : ι -> (MeasurableSpace.{u1} α)}, Eq.{succ u2} (MeasurableSpace.{u2} β) (MeasurableSpace.map.{u1, u2} α β f (iInf.{u1, u3} (MeasurableSpace.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (MeasurableSpace.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.completeLattice.{u1} α))) ι (fun (i : ι) => m i))) (iInf.{u2, u3} (MeasurableSpace.{u2} β) (ConditionallyCompleteLattice.toHasInf.{u2} (MeasurableSpace.{u2} β) (CompleteLattice.toConditionallyCompleteLattice.{u2} (MeasurableSpace.{u2} β) (MeasurableSpace.completeLattice.{u2} β))) ι (fun (i : ι) => MeasurableSpace.map.{u1, u2} α β f (m i)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {ι : Sort.{u3}} {f : α -> β} {m : ι -> (MeasurableSpace.{u2} α)}, Eq.{succ u1} (MeasurableSpace.{u1} β) (MeasurableSpace.map.{u2, u1} α β f (iInf.{u2, u3} (MeasurableSpace.{u2} α) (ConditionallyCompleteLattice.toInfSet.{u2} (MeasurableSpace.{u2} α) (CompleteLattice.toConditionallyCompleteLattice.{u2} (MeasurableSpace.{u2} α) (MeasurableSpace.instCompleteLatticeMeasurableSpace.{u2} α))) ι (fun (i : ι) => m i))) (iInf.{u1, u3} (MeasurableSpace.{u1} β) (ConditionallyCompleteLattice.toInfSet.{u1} (MeasurableSpace.{u1} β) (CompleteLattice.toConditionallyCompleteLattice.{u1} (MeasurableSpace.{u1} β) (MeasurableSpace.instCompleteLatticeMeasurableSpace.{u1} β))) ι (fun (i : ι) => MeasurableSpace.map.{u2, u1} α β f (m i)))
-Case conversion may be inaccurate. Consider using '#align measurable_space.map_infi MeasurableSpace.map_iInfₓ'. -/
 @[simp]
 theorem map_iInf {m : ι → MeasurableSpace α} : (⨅ i, m i).map f = ⨅ i, (m i).map f :=
   (gc_comap_map f).u_iInf
 #align measurable_space.map_infi MeasurableSpace.map_iInf
 
-/- warning: measurable_space.comap_map_le -> MeasurableSpace.comap_map_le is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {m : MeasurableSpace.{u1} α} {f : α -> β}, LE.le.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.hasLe.{u1} α) (MeasurableSpace.comap.{u1, u2} α β f (MeasurableSpace.map.{u1, u2} α β f m)) m
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {m : MeasurableSpace.{u2} α} {f : α -> β}, LE.le.{u2} (MeasurableSpace.{u2} α) (MeasurableSpace.instLEMeasurableSpace.{u2} α) (MeasurableSpace.comap.{u2, u1} α β f (MeasurableSpace.map.{u2, u1} α β f m)) m
-Case conversion may be inaccurate. Consider using '#align measurable_space.comap_map_le MeasurableSpace.comap_map_leₓ'. -/
 theorem comap_map_le : (m.map f).comap f ≤ m :=
   (gc_comap_map f).l_u_le _
 #align measurable_space.comap_map_le MeasurableSpace.comap_map_le
 
-/- warning: measurable_space.le_map_comap -> MeasurableSpace.le_map_comap is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {m : MeasurableSpace.{u1} α} {g : β -> α}, LE.le.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.hasLe.{u1} α) m (MeasurableSpace.map.{u2, u1} β α g (MeasurableSpace.comap.{u2, u1} β α g m))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {m : MeasurableSpace.{u2} α} {g : β -> α}, LE.le.{u2} (MeasurableSpace.{u2} α) (MeasurableSpace.instLEMeasurableSpace.{u2} α) m (MeasurableSpace.map.{u1, u2} β α g (MeasurableSpace.comap.{u1, u2} β α g m))
-Case conversion may be inaccurate. Consider using '#align measurable_space.le_map_comap MeasurableSpace.le_map_comapₓ'. -/
 theorem le_map_comap : m ≤ (m.comap g).map g :=
   (gc_comap_map g).le_u_l _
 #align measurable_space.le_map_comap MeasurableSpace.le_map_comap
@@ -304,56 +220,20 @@ section MeasurableFunctions
 
 open MeasurableSpace
 
-/- warning: measurable_iff_le_map -> measurable_iff_le_map is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {m₁ : MeasurableSpace.{u1} α} {m₂ : MeasurableSpace.{u2} β} {f : α -> β}, Iff (Measurable.{u1, u2} α β m₁ m₂ f) (LE.le.{u2} (MeasurableSpace.{u2} β) (MeasurableSpace.hasLe.{u2} β) m₂ (MeasurableSpace.map.{u1, u2} α β f m₁))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {m₁ : MeasurableSpace.{u2} α} {m₂ : MeasurableSpace.{u1} β} {f : α -> β}, Iff (Measurable.{u2, u1} α β m₁ m₂ f) (LE.le.{u1} (MeasurableSpace.{u1} β) (MeasurableSpace.instLEMeasurableSpace.{u1} β) m₂ (MeasurableSpace.map.{u2, u1} α β f m₁))
-Case conversion may be inaccurate. Consider using '#align measurable_iff_le_map measurable_iff_le_mapₓ'. -/
 theorem measurable_iff_le_map {m₁ : MeasurableSpace α} {m₂ : MeasurableSpace β} {f : α → β} :
     Measurable f ↔ m₂ ≤ m₁.map f :=
   Iff.rfl
 #align measurable_iff_le_map measurable_iff_le_map
 
-/- warning: measurable.le_map -> Measurable.le_map is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {m₁ : MeasurableSpace.{u1} α} {m₂ : MeasurableSpace.{u2} β} {f : α -> β}, (Measurable.{u1, u2} α β m₁ m₂ f) -> (LE.le.{u2} (MeasurableSpace.{u2} β) (MeasurableSpace.hasLe.{u2} β) m₂ (MeasurableSpace.map.{u1, u2} α β f m₁))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {m₁ : MeasurableSpace.{u2} α} {m₂ : MeasurableSpace.{u1} β} {f : α -> β}, (Measurable.{u2, u1} α β m₁ m₂ f) -> (LE.le.{u1} (MeasurableSpace.{u1} β) (MeasurableSpace.instLEMeasurableSpace.{u1} β) m₂ (MeasurableSpace.map.{u2, u1} α β f m₁))
-Case conversion may be inaccurate. Consider using '#align measurable.le_map Measurable.le_mapₓ'. -/
-/- warning: measurable.of_le_map -> Measurable.of_le_map is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {m₁ : MeasurableSpace.{u1} α} {m₂ : MeasurableSpace.{u2} β} {f : α -> β}, (LE.le.{u2} (MeasurableSpace.{u2} β) (MeasurableSpace.hasLe.{u2} β) m₂ (MeasurableSpace.map.{u1, u2} α β f m₁)) -> (Measurable.{u1, u2} α β m₁ m₂ f)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {m₁ : MeasurableSpace.{u2} α} {m₂ : MeasurableSpace.{u1} β} {f : α -> β}, (LE.le.{u1} (MeasurableSpace.{u1} β) (MeasurableSpace.instLEMeasurableSpace.{u1} β) m₂ (MeasurableSpace.map.{u2, u1} α β f m₁)) -> (Measurable.{u2, u1} α β m₁ m₂ f)
-Case conversion may be inaccurate. Consider using '#align measurable.of_le_map Measurable.of_le_mapₓ'. -/
 alias measurable_iff_le_map ↔ Measurable.le_map Measurable.of_le_map
 #align measurable.le_map Measurable.le_map
 #align measurable.of_le_map Measurable.of_le_map
 
-/- warning: measurable_iff_comap_le -> measurable_iff_comap_le is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {m₁ : MeasurableSpace.{u1} α} {m₂ : MeasurableSpace.{u2} β} {f : α -> β}, Iff (Measurable.{u1, u2} α β m₁ m₂ f) (LE.le.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.hasLe.{u1} α) (MeasurableSpace.comap.{u1, u2} α β f m₂) m₁)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {m₁ : MeasurableSpace.{u2} α} {m₂ : MeasurableSpace.{u1} β} {f : α -> β}, Iff (Measurable.{u2, u1} α β m₁ m₂ f) (LE.le.{u2} (MeasurableSpace.{u2} α) (MeasurableSpace.instLEMeasurableSpace.{u2} α) (MeasurableSpace.comap.{u2, u1} α β f m₂) m₁)
-Case conversion may be inaccurate. Consider using '#align measurable_iff_comap_le measurable_iff_comap_leₓ'. -/
 theorem measurable_iff_comap_le {m₁ : MeasurableSpace α} {m₂ : MeasurableSpace β} {f : α → β} :
     Measurable f ↔ m₂.comap f ≤ m₁ :=
   comap_le_iff_le_map.symm
 #align measurable_iff_comap_le measurable_iff_comap_le
 
-/- warning: measurable.comap_le -> Measurable.comap_le is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {m₁ : MeasurableSpace.{u1} α} {m₂ : MeasurableSpace.{u2} β} {f : α -> β}, (Measurable.{u1, u2} α β m₁ m₂ f) -> (LE.le.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.hasLe.{u1} α) (MeasurableSpace.comap.{u1, u2} α β f m₂) m₁)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {m₁ : MeasurableSpace.{u2} α} {m₂ : MeasurableSpace.{u1} β} {f : α -> β}, (Measurable.{u2, u1} α β m₁ m₂ f) -> (LE.le.{u2} (MeasurableSpace.{u2} α) (MeasurableSpace.instLEMeasurableSpace.{u2} α) (MeasurableSpace.comap.{u2, u1} α β f m₂) m₁)
-Case conversion may be inaccurate. Consider using '#align measurable.comap_le Measurable.comap_leₓ'. -/
-/- warning: measurable.of_comap_le -> Measurable.of_comap_le is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {m₁ : MeasurableSpace.{u1} α} {m₂ : MeasurableSpace.{u2} β} {f : α -> β}, (LE.le.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.hasLe.{u1} α) (MeasurableSpace.comap.{u1, u2} α β f m₂) m₁) -> (Measurable.{u1, u2} α β m₁ m₂ f)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {m₁ : MeasurableSpace.{u2} α} {m₂ : MeasurableSpace.{u1} β} {f : α -> β}, (LE.le.{u2} (MeasurableSpace.{u2} α) (MeasurableSpace.instLEMeasurableSpace.{u2} α) (MeasurableSpace.comap.{u2, u1} α β f m₂) m₁) -> (Measurable.{u2, u1} α β m₁ m₂ f)
-Case conversion may be inaccurate. Consider using '#align measurable.of_comap_le Measurable.of_comap_leₓ'. -/
 alias measurable_iff_comap_le ↔ Measurable.comap_le Measurable.of_comap_le
 #align measurable.comap_le Measurable.comap_le
 #align measurable.of_comap_le Measurable.of_comap_le
@@ -364,33 +244,15 @@ theorem comap_measurable {m : MeasurableSpace β} (f : α → β) : measurable[m
 #align comap_measurable comap_measurable
 -/
 
-/- warning: measurable.mono -> Measurable.mono is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ma : MeasurableSpace.{u1} α} {ma' : MeasurableSpace.{u1} α} {mb : MeasurableSpace.{u2} β} {mb' : MeasurableSpace.{u2} β} {f : α -> β}, (Measurable.{u1, u2} α β ma mb f) -> (LE.le.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.hasLe.{u1} α) ma ma') -> (LE.le.{u2} (MeasurableSpace.{u2} β) (MeasurableSpace.hasLe.{u2} β) mb' mb) -> (Measurable.{u1, u2} α β ma' mb' f)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {ma : MeasurableSpace.{u2} α} {ma' : MeasurableSpace.{u2} α} {mb : MeasurableSpace.{u1} β} {mb' : MeasurableSpace.{u1} β} {f : α -> β}, (Measurable.{u2, u1} α β ma mb f) -> (LE.le.{u2} (MeasurableSpace.{u2} α) (MeasurableSpace.instLEMeasurableSpace.{u2} α) ma ma') -> (LE.le.{u1} (MeasurableSpace.{u1} β) (MeasurableSpace.instLEMeasurableSpace.{u1} β) mb' mb) -> (Measurable.{u2, u1} α β ma' mb' f)
-Case conversion may be inaccurate. Consider using '#align measurable.mono Measurable.monoₓ'. -/
 theorem Measurable.mono {ma ma' : MeasurableSpace α} {mb mb' : MeasurableSpace β} {f : α → β}
     (hf : @Measurable α β ma mb f) (ha : ma ≤ ma') (hb : mb' ≤ mb) : @Measurable α β ma' mb' f :=
   fun t ht => ha _ <| hf <| hb _ ht
 #align measurable.mono Measurable.mono
 
-/- warning: measurable_from_top -> measurable_from_top is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u2} β] {f : α -> β}, Measurable.{u1, u2} α β (Top.top.{u1} (MeasurableSpace.{u1} α) (CompleteLattice.toHasTop.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.completeLattice.{u1} α))) _inst_1 f
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u2} β] {f : α -> β}, Measurable.{u1, u2} α β (Top.top.{u1} (MeasurableSpace.{u1} α) (CompleteLattice.toTop.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.instCompleteLatticeMeasurableSpace.{u1} α))) _inst_1 f
-Case conversion may be inaccurate. Consider using '#align measurable_from_top measurable_from_topₓ'. -/
 @[measurability]
 theorem measurable_from_top [MeasurableSpace β] {f : α → β} : measurable[⊤] f := fun s hs => trivial
 #align measurable_from_top measurable_from_top
 
-/- warning: measurable_generate_from -> measurable_generateFrom is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] {s : Set.{u2} (Set.{u2} β)} {f : α -> β}, (forall (t : Set.{u2} β), (Membership.Mem.{u2, u2} (Set.{u2} β) (Set.{u2} (Set.{u2} β)) (Set.hasMem.{u2} (Set.{u2} β)) t s) -> (MeasurableSet.{u1} α _inst_1 (Set.preimage.{u1, u2} α β f t))) -> (Measurable.{u1, u2} α β _inst_1 (MeasurableSpace.generateFrom.{u2} β s) f)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] {s : Set.{u1} (Set.{u1} β)} {f : α -> β}, (forall (t : Set.{u1} β), (Membership.mem.{u1, u1} (Set.{u1} β) (Set.{u1} (Set.{u1} β)) (Set.instMembershipSet.{u1} (Set.{u1} β)) t s) -> (MeasurableSet.{u2} α _inst_1 (Set.preimage.{u2, u1} α β f t))) -> (Measurable.{u2, u1} α β _inst_1 (MeasurableSpace.generateFrom.{u1} β s) f)
-Case conversion may be inaccurate. Consider using '#align measurable_generate_from measurable_generateFromₓ'. -/
 theorem measurable_generateFrom [MeasurableSpace α] {s : Set (Set β)} {f : α → β}
     (h : ∀ t ∈ s, MeasurableSet (f ⁻¹' t)) : @Measurable _ _ _ (generateFrom s) f :=
   Measurable.of_le_map <| generateFrom_le h
@@ -402,12 +264,6 @@ section TypeclassMeasurableSpace
 
 variable [MeasurableSpace α] [MeasurableSpace β] [MeasurableSpace γ]
 
-/- warning: subsingleton.measurable -> Subsingleton.measurable is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {f : α -> β} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] [_inst_4 : Subsingleton.{succ u1} α], Measurable.{u1, u2} α β _inst_1 _inst_2 f
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {f : α -> β} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] [_inst_4 : Subsingleton.{succ u2} α], Measurable.{u2, u1} α β _inst_1 _inst_2 f
-Case conversion may be inaccurate. Consider using '#align subsingleton.measurable Subsingleton.measurableₓ'. -/
 @[nontriviality, measurability]
 theorem Subsingleton.measurable [Subsingleton α] : Measurable f := fun s hs =>
   @Subsingleton.measurableSet α _ _ _
@@ -420,24 +276,12 @@ theorem measurable_of_subsingleton_codomain [Subsingleton β] (f : α → β) :
 #align measurable_of_subsingleton_codomain measurable_of_subsingleton_codomain
 -/
 
-/- warning: measurable_one -> measurable_one is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] [_inst_4 : One.{u1} α], Measurable.{u2, u1} β α _inst_2 _inst_1 (OfNat.ofNat.{max u2 u1} (β -> α) 1 (OfNat.mk.{max u2 u1} (β -> α) 1 (One.one.{max u2 u1} (β -> α) (Pi.instOne.{u2, u1} β (fun (ᾰ : β) => α) (fun (i : β) => _inst_4)))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] [_inst_4 : One.{u2} α], Measurable.{u1, u2} β α _inst_2 _inst_1 (OfNat.ofNat.{max u2 u1} (β -> α) 1 (One.toOfNat1.{max u2 u1} (β -> α) (Pi.instOne.{u1, u2} β (fun (a._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.2074 : β) => α) (fun (i : β) => _inst_4))))
-Case conversion may be inaccurate. Consider using '#align measurable_one measurable_oneₓ'. -/
 @[to_additive]
 theorem measurable_one [One α] : Measurable (1 : β → α) :=
   @measurable_const _ _ _ _ 1
 #align measurable_one measurable_one
 #align measurable_zero measurable_zero
 
-/- warning: measurable_of_empty -> measurable_of_empty is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] [_inst_4 : IsEmpty.{succ u1} α] (f : α -> β), Measurable.{u1, u2} α β _inst_1 _inst_2 f
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] [_inst_4 : IsEmpty.{succ u2} α] (f : α -> β), Measurable.{u2, u1} α β _inst_1 _inst_2 f
-Case conversion may be inaccurate. Consider using '#align measurable_of_empty measurable_of_emptyₓ'. -/
 theorem measurable_of_empty [IsEmpty α] (f : α → β) : Measurable f :=
   Subsingleton.measurable
 #align measurable_of_empty measurable_of_empty
@@ -449,12 +293,6 @@ theorem measurable_of_empty_codomain [IsEmpty β] (f : α → β) : Measurable f
 #align measurable_of_empty_codomain measurable_of_empty_codomain
 -/
 
-/- warning: measurable_const' -> measurable_const' is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] {f : β -> α}, (forall (x : β) (y : β), Eq.{succ u1} α (f x) (f y)) -> (Measurable.{u2, u1} β α _inst_2 _inst_1 f)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] {f : β -> α}, (forall (x : β) (y : β), Eq.{succ u2} α (f x) (f y)) -> (Measurable.{u1, u2} β α _inst_2 _inst_1 f)
-Case conversion may be inaccurate. Consider using '#align measurable_const' measurable_const'ₓ'. -/
 /-- A version of `measurable_const` that assumes `f x = f y` for all `x, y`. This version works
 for functions between empty types. -/
 theorem measurable_const' {f : β → α} (hf : ∀ x y, f x = f y) : Measurable f :=
@@ -464,44 +302,20 @@ theorem measurable_const' {f : β → α} (hf : ∀ x y, f x = f y) : Measurable
   · convert measurable_const; exact funext fun x => hf x h.some
 #align measurable_const' measurable_const'
 
-/- warning: measurable_nat_cast -> measurable_natCast is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] [_inst_4 : NatCast.{u1} α] (n : Nat), Measurable.{u2, u1} β α _inst_2 _inst_1 ((fun (a : Type) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{1, max (succ u2) (succ u1)} a b] => self.0) Nat (β -> α) (HasLiftT.mk.{1, max (succ u2) (succ u1)} Nat (β -> α) (CoeTCₓ.coe.{1, max (succ u2) (succ u1)} Nat (β -> α) (Nat.castCoe.{max u2 u1} (β -> α) (Pi.hasNatCast.{u2, u1} β (fun (ᾰ : β) => α) (fun (a : β) => _inst_4))))) n)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] [_inst_4 : NatCast.{u2} α] (n : Nat), Measurable.{u1, u2} β α _inst_2 _inst_1 (Nat.cast.{max u2 u1} (β -> α) (Pi.natCast.{u1, u2} β (fun (a._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.2320 : β) => α) (fun (a : β) => _inst_4)) n)
-Case conversion may be inaccurate. Consider using '#align measurable_nat_cast measurable_natCastₓ'. -/
 @[measurability]
 theorem measurable_natCast [NatCast α] (n : ℕ) : Measurable (n : β → α) :=
   @measurable_const α _ _ _ n
 #align measurable_nat_cast measurable_natCast
 
-/- warning: measurable_int_cast -> measurable_intCast is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] [_inst_4 : IntCast.{u1} α] (n : Int), Measurable.{u2, u1} β α _inst_2 _inst_1 ((fun (a : Type) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{1, max (succ u2) (succ u1)} a b] => self.0) Int (β -> α) (HasLiftT.mk.{1, max (succ u2) (succ u1)} Int (β -> α) (CoeTCₓ.coe.{1, max (succ u2) (succ u1)} Int (β -> α) (Int.castCoe.{max u2 u1} (β -> α) (Pi.hasIntCast.{u2, u1} β (fun (ᾰ : β) => α) (fun (i : β) => _inst_4))))) n)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] [_inst_4 : IntCast.{u2} α] (n : Int), Measurable.{u1, u2} β α _inst_2 _inst_1 (Int.cast.{max u2 u1} (β -> α) (Pi.intCast.{u1, u2} β (fun (a._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.2370 : β) => α) (fun (i : β) => _inst_4)) n)
-Case conversion may be inaccurate. Consider using '#align measurable_int_cast measurable_intCastₓ'. -/
 @[measurability]
 theorem measurable_intCast [IntCast α] (n : ℤ) : Measurable (n : β → α) :=
   @measurable_const α _ _ _ n
 #align measurable_int_cast measurable_intCast
 
-/- warning: measurable_of_finite -> measurable_of_finite is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] [_inst_4 : Finite.{succ u1} α] [_inst_5 : MeasurableSingletonClass.{u1} α _inst_1] (f : α -> β), Measurable.{u1, u2} α β _inst_1 _inst_2 f
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] [_inst_4 : Finite.{succ u2} α] [_inst_5 : MeasurableSingletonClass.{u2} α _inst_1] (f : α -> β), Measurable.{u2, u1} α β _inst_1 _inst_2 f
-Case conversion may be inaccurate. Consider using '#align measurable_of_finite measurable_of_finiteₓ'. -/
 theorem measurable_of_finite [Finite α] [MeasurableSingletonClass α] (f : α → β) : Measurable f :=
   fun s hs => (f ⁻¹' s).toFinite.MeasurableSet
 #align measurable_of_finite measurable_of_finite
 
-/- warning: measurable_of_countable -> measurable_of_countable is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] [_inst_4 : Countable.{succ u1} α] [_inst_5 : MeasurableSingletonClass.{u1} α _inst_1] (f : α -> β), Measurable.{u1, u2} α β _inst_1 _inst_2 f
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] [_inst_4 : Countable.{succ u2} α] [_inst_5 : MeasurableSingletonClass.{u2} α _inst_1] (f : α -> β), Measurable.{u2, u1} α β _inst_1 _inst_2 f
-Case conversion may be inaccurate. Consider using '#align measurable_of_countable measurable_of_countableₓ'. -/
 theorem measurable_of_countable [Countable α] [MeasurableSingletonClass α] (f : α → β) :
     Measurable f := fun s hs => (f ⁻¹' s).to_countable.MeasurableSet
 #align measurable_of_countable measurable_of_countable
@@ -532,12 +346,6 @@ theorem measurableSet_preimage {t : Set β} (hf : Measurable f) (ht : Measurable
 #align measurable_set_preimage measurableSet_preimage
 -/
 
-/- warning: measurable.piecewise -> Measurable.piecewise is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {s : Set.{u1} α} {f : α -> β} {g : α -> β} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {_x : DecidablePred.{succ u1} α (fun (_x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) _x s)}, (MeasurableSet.{u1} α m s) -> (Measurable.{u1, u2} α β m mβ f) -> (Measurable.{u1, u2} α β m mβ g) -> (Measurable.{u1, u2} α β m mβ (Set.piecewise.{u1, succ u2} α (fun (ᾰ : α) => β) s f g (fun (j : α) => _x j)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {s : Set.{u2} α} {f : α -> β} {g : α -> β} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} {_x : DecidablePred.{succ u2} α (fun (_x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) _x s)}, (MeasurableSet.{u2} α m s) -> (Measurable.{u2, u1} α β m mβ f) -> (Measurable.{u2, u1} α β m mβ g) -> (Measurable.{u2, u1} α β m mβ (Set.piecewise.{u2, succ u1} α (fun (ᾰ : α) => β) s f g (fun (j : α) => _x j)))
-Case conversion may be inaccurate. Consider using '#align measurable.piecewise Measurable.piecewiseₓ'. -/
 @[measurability]
 theorem Measurable.piecewise {_ : DecidablePred (· ∈ s)} (hs : MeasurableSet s) (hf : Measurable f)
     (hg : Measurable g) : Measurable (piecewise s f g) :=
@@ -547,12 +355,6 @@ theorem Measurable.piecewise {_ : DecidablePred (· ∈ s)} (hs : MeasurableSet
   exact hs.ite (hf ht) (hg ht)
 #align measurable.piecewise Measurable.piecewise
 
-/- warning: measurable.ite -> Measurable.ite is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {f : α -> β} {g : α -> β} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {p : α -> Prop} {_x : DecidablePred.{succ u1} α p}, (MeasurableSet.{u1} α m (setOf.{u1} α (fun (a : α) => p a))) -> (Measurable.{u1, u2} α β m mβ f) -> (Measurable.{u1, u2} α β m mβ g) -> (Measurable.{u1, u2} α β m mβ (fun (x : α) => ite.{succ u2} β (p x) (_x x) (f x) (g x)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {f : α -> β} {g : α -> β} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} {p : α -> Prop} {_x : DecidablePred.{succ u2} α p}, (MeasurableSet.{u2} α m (setOf.{u2} α (fun (a : α) => p a))) -> (Measurable.{u2, u1} α β m mβ f) -> (Measurable.{u2, u1} α β m mβ g) -> (Measurable.{u2, u1} α β m mβ (fun (x : α) => ite.{succ u1} β (p x) (_x x) (f x) (g x)))
-Case conversion may be inaccurate. Consider using '#align measurable.ite Measurable.iteₓ'. -/
 /-- this is slightly different from `measurable.piecewise`. It can be used to show
 `measurable (ite (x=0) 0 1)` by
 `exact measurable.ite (measurable_set_singleton 0) measurable_const measurable_const`,
@@ -579,12 +381,6 @@ theorem measurableSet_mulSupport [One β] [MeasurableSingletonClass β] (hf : Me
 #align measurable_set_support measurableSet_support
 -/
 
-/- warning: measurable.measurable_of_countable_ne -> Measurable.measurable_of_countable_ne is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {f : α -> β} {g : α -> β} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} [_inst_1 : MeasurableSingletonClass.{u1} α m], (Measurable.{u1, u2} α β m mβ f) -> (Set.Countable.{u1} α (setOf.{u1} α (fun (x : α) => Ne.{succ u2} β (f x) (g x)))) -> (Measurable.{u1, u2} α β m mβ g)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {f : α -> β} {g : α -> β} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} [_inst_1 : MeasurableSingletonClass.{u2} α m], (Measurable.{u2, u1} α β m mβ f) -> (Set.Countable.{u2} α (setOf.{u2} α (fun (x : α) => Ne.{succ u1} β (f x) (g x)))) -> (Measurable.{u2, u1} α β m mβ g)
-Case conversion may be inaccurate. Consider using '#align measurable.measurable_of_countable_ne Measurable.measurable_of_countable_neₓ'. -/
 /-- If a function coincides with a measurable function outside of a countable set, it is
 measurable. -/
 theorem Measurable.measurable_of_countable_ne [MeasurableSingletonClass α] (hf : Measurable f)
@@ -642,12 +438,6 @@ instance : MeasurableSingletonClass ℤ :=
 instance : MeasurableSingletonClass ℚ :=
   ⟨fun _ => trivial⟩
 
-/- warning: measurable_to_countable -> measurable_to_countable is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : Countable.{succ u1} α] [_inst_3 : MeasurableSpace.{u2} β] {f : β -> α}, (forall (y : β), MeasurableSet.{u2} β _inst_3 (Set.preimage.{u2, u1} β α f (Singleton.singleton.{u1, u1} α (Set.{u1} α) (Set.hasSingleton.{u1} α) (f y)))) -> (Measurable.{u2, u1} β α _inst_3 _inst_1 f)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : Countable.{succ u2} α] [_inst_3 : MeasurableSpace.{u1} β] {f : β -> α}, (forall (y : β), MeasurableSet.{u1} β _inst_3 (Set.preimage.{u1, u2} β α f (Singleton.singleton.{u2, u2} α (Set.{u2} α) (Set.instSingletonSet.{u2} α) (f y)))) -> (Measurable.{u1, u2} β α _inst_3 _inst_1 f)
-Case conversion may be inaccurate. Consider using '#align measurable_to_countable measurable_to_countableₓ'. -/
 theorem measurable_to_countable [MeasurableSpace α] [Countable α] [MeasurableSpace β] {f : β → α}
     (h : ∀ y, MeasurableSet (f ⁻¹' {f y})) : Measurable f :=
   by
@@ -660,12 +450,6 @@ theorem measurable_to_countable [MeasurableSpace α] [Countable α] [MeasurableS
   · simp only [preimage_singleton_eq_empty.2 hyf, MeasurableSet.empty]
 #align measurable_to_countable measurable_to_countable
 
-/- warning: measurable_to_countable' -> measurable_to_countable' is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : Countable.{succ u1} α] [_inst_3 : MeasurableSpace.{u2} β] {f : β -> α}, (forall (x : α), MeasurableSet.{u2} β _inst_3 (Set.preimage.{u2, u1} β α f (Singleton.singleton.{u1, u1} α (Set.{u1} α) (Set.hasSingleton.{u1} α) x))) -> (Measurable.{u2, u1} β α _inst_3 _inst_1 f)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : Countable.{succ u2} α] [_inst_3 : MeasurableSpace.{u1} β] {f : β -> α}, (forall (x : α), MeasurableSet.{u1} β _inst_3 (Set.preimage.{u1, u2} β α f (Singleton.singleton.{u2, u2} α (Set.{u2} α) (Set.instSingletonSet.{u2} α) x))) -> (Measurable.{u1, u2} β α _inst_3 _inst_1 f)
-Case conversion may be inaccurate. Consider using '#align measurable_to_countable' measurable_to_countable'ₓ'. -/
 theorem measurable_to_countable' [MeasurableSpace α] [Countable α] [MeasurableSpace β] {f : β → α}
     (h : ∀ x, MeasurableSet (f ⁻¹' {x})) : Measurable f :=
   measurable_to_countable fun y => h (f y)
@@ -765,12 +549,6 @@ theorem measurableSet_quotient {s : Setoid α} {t : Set (Quotient s)} :
 #align measurable_set_quotient measurableSet_quotient
 -/
 
-/- warning: measurable_from_quotient -> measurable_from_quotient is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] {s : Setoid.{succ u1} α} {f : (Quotient.{succ u1} α s) -> β}, Iff (Measurable.{u1, u2} (Quotient.{succ u1} α s) β (Quotient.instMeasurableSpace.{u1} α s _inst_1) _inst_2 f) (Measurable.{u1, u2} α β _inst_1 _inst_2 (Function.comp.{succ u1, succ u1, succ u2} α (Quotient.{succ u1} α s) β f (Quotient.mk''.{succ u1} α s)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] {s : Setoid.{succ u2} α} {f : (Quotient.{succ u2} α s) -> β}, Iff (Measurable.{u2, u1} (Quotient.{succ u2} α s) β (Quotient.instMeasurableSpace.{u2} α s _inst_1) _inst_2 f) (Measurable.{u2, u1} α β _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} α (Quotient.{succ u2} α s) β f (Quotient.mk''.{succ u2} α s)))
-Case conversion may be inaccurate. Consider using '#align measurable_from_quotient measurable_from_quotientₓ'. -/
 theorem measurable_from_quotient {s : Setoid α} {f : Quotient s → β} :
     Measurable f ↔ Measurable (f ∘ Quotient.mk'') :=
   Iff.rfl
@@ -868,24 +646,12 @@ theorem Measurable.subtype_coe {p : β → Prop} {f : α → Subtype p} (hf : Me
 #align measurable.subtype_coe Measurable.subtype_coe
 -/
 
-/- warning: measurable.subtype_mk -> Measurable.subtype_mk is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {p : β -> Prop} {f : α -> β}, (Measurable.{u1, u2} α β m mβ f) -> (forall {h : forall (x : α), p (f x)}, Measurable.{u1, u2} α (Subtype.{succ u2} β p) m (Subtype.instMeasurableSpace.{u2} β p mβ) (fun (x : α) => Subtype.mk.{succ u2} β p (f x) (h x)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} {p : β -> Prop} {f : α -> β}, (Measurable.{u2, u1} α β m mβ f) -> (forall {h : forall (x : α), p (f x)}, Measurable.{u2, u1} α (Subtype.{succ u1} β p) m (Subtype.instMeasurableSpace.{u1} β p mβ) (fun (x : α) => Subtype.mk.{succ u1} β p (f x) (h x)))
-Case conversion may be inaccurate. Consider using '#align measurable.subtype_mk Measurable.subtype_mkₓ'. -/
 @[measurability]
 theorem Measurable.subtype_mk {p : β → Prop} {f : α → β} (hf : Measurable f) {h : ∀ x, p (f x)} :
     Measurable fun x => (⟨f x, h x⟩ : Subtype p) := fun t ⟨s, hs⟩ =>
   hs.2 ▸ by simp only [← preimage_comp, (· ∘ ·), Subtype.coe_mk, hf hs.1]
 #align measurable.subtype_mk Measurable.subtype_mk
 
-/- warning: measurable_of_measurable_union_cover -> measurable_of_measurable_union_cover is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {f : α -> β} (s : Set.{u1} α) (t : Set.{u1} α), (MeasurableSet.{u1} α m s) -> (MeasurableSet.{u1} α m t) -> (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (Set.univ.{u1} α) (Union.union.{u1} (Set.{u1} α) (Set.hasUnion.{u1} α) s t)) -> (Measurable.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β (Subtype.instMeasurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) m) mβ (fun (a : coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) => f ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) α (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) α (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) α (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) α (coeSubtype.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s))))) a))) -> (Measurable.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) t) β (Subtype.instMeasurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x t) m) mβ (fun (a : coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) t) => f ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) t) α (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) t) α (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) t) α (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) t) α (coeSubtype.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x t))))) a))) -> (Measurable.{u1, u2} α β m mβ f)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} {f : α -> β} (s : Set.{u2} α) (t : Set.{u2} α), (MeasurableSet.{u2} α m s) -> (MeasurableSet.{u2} α m t) -> (HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) (Set.univ.{u2} α) (Union.union.{u2} (Set.{u2} α) (Set.instUnionSet.{u2} α) s t)) -> (Measurable.{u2, u1} (Set.Elem.{u2} α s) β (Subtype.instMeasurableSpace.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x s) m) mβ (fun (a : Set.Elem.{u2} α s) => f (Subtype.val.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x s) a))) -> (Measurable.{u2, u1} (Set.Elem.{u2} α t) β (Subtype.instMeasurableSpace.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x t) m) mβ (fun (a : Set.Elem.{u2} α t) => f (Subtype.val.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x t) a))) -> (Measurable.{u2, u1} α β m mβ f)
-Case conversion may be inaccurate. Consider using '#align measurable_of_measurable_union_cover measurable_of_measurable_union_coverₓ'. -/
 theorem measurable_of_measurable_union_cover {f : α → β} (s t : Set α) (hs : MeasurableSet s)
     (ht : MeasurableSet t) (h : univ ⊆ s ∪ t) (hc : Measurable fun a : s => f a)
     (hd : Measurable fun a : t => f a) : Measurable f :=
@@ -897,47 +663,23 @@ theorem measurable_of_measurable_union_cover {f : α → β} (s t : Set α) (hs
     Subtype.range_coe, ← inter_distrib_left, univ_subset_iff.1 h, inter_univ]
 #align measurable_of_measurable_union_cover measurable_of_measurable_union_cover
 
-/- warning: measurable_of_restrict_of_restrict_compl -> measurable_of_restrict_of_restrict_compl is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {f : α -> β} {s : Set.{u1} α}, (MeasurableSet.{u1} α m s) -> (Measurable.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β (Subtype.instMeasurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) m) mβ (Set.restrict.{u1, u2} α (fun (ᾰ : α) => β) s f)) -> (Measurable.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) β (Subtype.instMeasurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) m) mβ (Set.restrict.{u1, u2} α (fun (ᾰ : α) => β) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s) f)) -> (Measurable.{u1, u2} α β m mβ f)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} {f : α -> β} {s : Set.{u2} α}, (MeasurableSet.{u2} α m s) -> (Measurable.{u2, u1} (Set.Elem.{u2} α s) β (Subtype.instMeasurableSpace.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x s) m) mβ (Set.restrict.{u2, u1} α (fun (ᾰ : α) => β) s f)) -> (Measurable.{u2, u1} (Set.Elem.{u2} α (HasCompl.compl.{u2} (Set.{u2} α) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} α) (Set.instBooleanAlgebraSet.{u2} α)) s)) β (Subtype.instMeasurableSpace.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x (HasCompl.compl.{u2} (Set.{u2} α) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} α) (Set.instBooleanAlgebraSet.{u2} α)) s)) m) mβ (Set.restrict.{u2, u1} α (fun (ᾰ : α) => β) (HasCompl.compl.{u2} (Set.{u2} α) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} α) (Set.instBooleanAlgebraSet.{u2} α)) s) f)) -> (Measurable.{u2, u1} α β m mβ f)
-Case conversion may be inaccurate. Consider using '#align measurable_of_restrict_of_restrict_compl measurable_of_restrict_of_restrict_complₓ'. -/
 theorem measurable_of_restrict_of_restrict_compl {f : α → β} {s : Set α} (hs : MeasurableSet s)
     (h₁ : Measurable (s.restrict f)) (h₂ : Measurable (sᶜ.restrict f)) : Measurable f :=
   measurable_of_measurable_union_cover s (sᶜ) hs hs.compl (union_compl_self s).ge h₁ h₂
 #align measurable_of_restrict_of_restrict_compl measurable_of_restrict_of_restrict_compl
 
-/- warning: measurable.dite -> Measurable.dite is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {s : Set.{u1} α} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} [_inst_1 : forall (x : α), Decidable (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s)] {f : (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) -> β}, (Measurable.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β (Subtype.instMeasurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) m) mβ f) -> (forall {g : (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) -> β}, (Measurable.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) β (Subtype.instMeasurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) m) mβ g) -> (MeasurableSet.{u1} α m s) -> (Measurable.{u1, u2} α β m mβ (fun (x : α) => dite.{succ u2} β (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) (_inst_1 x) (fun (hx : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) => f (Subtype.mk.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) x hx)) (fun (hx : Not (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s)) => g (Subtype.mk.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) x hx)))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {s : Set.{u2} α} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} [_inst_1 : forall (x : α), Decidable (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x s)] {f : (Set.Elem.{u2} α s) -> β}, (Measurable.{u2, u1} (Set.Elem.{u2} α s) β (Subtype.instMeasurableSpace.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x s) m) mβ f) -> (forall {g : (Set.Elem.{u2} α (HasCompl.compl.{u2} (Set.{u2} α) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} α) (Set.instBooleanAlgebraSet.{u2} α)) s)) -> β}, (Measurable.{u2, u1} (Set.Elem.{u2} α (HasCompl.compl.{u2} (Set.{u2} α) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} α) (Set.instBooleanAlgebraSet.{u2} α)) s)) β (Subtype.instMeasurableSpace.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x (HasCompl.compl.{u2} (Set.{u2} α) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} α) (Set.instBooleanAlgebraSet.{u2} α)) s)) m) mβ g) -> (MeasurableSet.{u2} α m s) -> (Measurable.{u2, u1} α β m mβ (fun (x : α) => dite.{succ u1} β (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x s) (_inst_1 x) (fun (hx : Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x s) => f (Subtype.mk.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x s) x hx)) (fun (hx : Not (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x s)) => g (Subtype.mk.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x (HasCompl.compl.{u2} (Set.{u2} α) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} α) (Set.instBooleanAlgebraSet.{u2} α)) s)) x hx)))))
-Case conversion may be inaccurate. Consider using '#align measurable.dite Measurable.diteₓ'. -/
 theorem Measurable.dite [∀ x, Decidable (x ∈ s)] {f : s → β} (hf : Measurable f) {g : sᶜ → β}
     (hg : Measurable g) (hs : MeasurableSet s) :
     Measurable fun x => if hx : x ∈ s then f ⟨x, hx⟩ else g ⟨x, hx⟩ :=
   measurable_of_restrict_of_restrict_compl hs (by simpa) (by simpa)
 #align measurable.dite Measurable.dite
 
-/- warning: measurable_of_measurable_on_compl_finite -> measurable_of_measurable_on_compl_finite is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} [_inst_1 : MeasurableSingletonClass.{u1} α m] {f : α -> β} (s : Set.{u1} α), (Set.Finite.{u1} α s) -> (Measurable.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) β (Subtype.instMeasurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) m) mβ (Set.restrict.{u1, u2} α (fun (ᾰ : α) => β) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s) f)) -> (Measurable.{u1, u2} α β m mβ f)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} [_inst_1 : MeasurableSingletonClass.{u2} α m] {f : α -> β} (s : Set.{u2} α), (Set.Finite.{u2} α s) -> (Measurable.{u2, u1} (Set.Elem.{u2} α (HasCompl.compl.{u2} (Set.{u2} α) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} α) (Set.instBooleanAlgebraSet.{u2} α)) s)) β (Subtype.instMeasurableSpace.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x (HasCompl.compl.{u2} (Set.{u2} α) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} α) (Set.instBooleanAlgebraSet.{u2} α)) s)) m) mβ (Set.restrict.{u2, u1} α (fun (ᾰ : α) => β) (HasCompl.compl.{u2} (Set.{u2} α) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} α) (Set.instBooleanAlgebraSet.{u2} α)) s) f)) -> (Measurable.{u2, u1} α β m mβ f)
-Case conversion may be inaccurate. Consider using '#align measurable_of_measurable_on_compl_finite measurable_of_measurable_on_compl_finiteₓ'. -/
 theorem measurable_of_measurable_on_compl_finite [MeasurableSingletonClass α] {f : α → β}
     (s : Set α) (hs : s.Finite) (hf : Measurable (sᶜ.restrict f)) : Measurable f :=
   letI : Fintype s := finite.fintype hs
   measurable_of_restrict_of_restrict_compl hs.measurable_set (measurable_of_finite _) hf
 #align measurable_of_measurable_on_compl_finite measurable_of_measurable_on_compl_finite
 
-/- warning: measurable_of_measurable_on_compl_singleton -> measurable_of_measurable_on_compl_singleton is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} [_inst_1 : MeasurableSingletonClass.{u1} α m] {f : α -> β} (a : α), (Measurable.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (setOf.{u1} α (fun (x : α) => Ne.{succ u1} α x a))) β (Subtype.instMeasurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (setOf.{u1} α (fun (x : α) => Ne.{succ u1} α x a))) m) mβ (Set.restrict.{u1, u2} α (fun (ᾰ : α) => β) (setOf.{u1} α (fun (x : α) => Ne.{succ u1} α x a)) f)) -> (Measurable.{u1, u2} α β m mβ f)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} [_inst_1 : MeasurableSingletonClass.{u2} α m] {f : α -> β} (a : α), (Measurable.{u2, u1} (Set.Elem.{u2} α (setOf.{u2} α (fun (x : α) => Ne.{succ u2} α x a))) β (Subtype.instMeasurableSpace.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x (setOf.{u2} α (fun (x : α) => Ne.{succ u2} α x a))) m) mβ (Set.restrict.{u2, u1} α (fun (ᾰ : α) => β) (setOf.{u2} α (fun (x : α) => Ne.{succ u2} α x a)) f)) -> (Measurable.{u2, u1} α β m mβ f)
-Case conversion may be inaccurate. Consider using '#align measurable_of_measurable_on_compl_singleton measurable_of_measurable_on_compl_singletonₓ'. -/
 theorem measurable_of_measurable_on_compl_singleton [MeasurableSingletonClass α] {f : α → β} (a : α)
     (hf : Measurable ({ x | x ≠ a }.restrict f)) : Measurable f :=
   measurable_of_measurable_on_compl_finite {a} (finite_singleton a) hf
@@ -958,24 +700,12 @@ def MeasurableSpace.prod {α β} (m₁ : MeasurableSpace α) (m₂ : MeasurableS
 instance {α β} [m₁ : MeasurableSpace α] [m₂ : MeasurableSpace β] : MeasurableSpace (α × β) :=
   m₁.Prod m₂
 
-/- warning: measurable_fst -> measurable_fst is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ma : MeasurableSpace.{u1} α} {mb : MeasurableSpace.{u2} β}, Measurable.{max u1 u2, u1} (Prod.{u1, u2} α β) α (Prod.instMeasurableSpace.{u1, u2} α β ma mb) ma (Prod.fst.{u1, u2} α β)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {ma : MeasurableSpace.{u2} α} {mb : MeasurableSpace.{u1} β}, Measurable.{max u2 u1, u2} (Prod.{u2, u1} α β) α (Prod.instMeasurableSpace.{u2, u1} α β ma mb) ma (Prod.fst.{u2, u1} α β)
-Case conversion may be inaccurate. Consider using '#align measurable_fst measurable_fstₓ'. -/
 @[measurability]
 theorem measurable_fst {ma : MeasurableSpace α} {mb : MeasurableSpace β} :
     Measurable (Prod.fst : α × β → α) :=
   Measurable.of_comap_le le_sup_left
 #align measurable_fst measurable_fst
 
-/- warning: measurable_snd -> measurable_snd is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ma : MeasurableSpace.{u1} α} {mb : MeasurableSpace.{u2} β}, Measurable.{max u1 u2, u2} (Prod.{u1, u2} α β) β (Prod.instMeasurableSpace.{u1, u2} α β ma mb) mb (Prod.snd.{u1, u2} α β)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {ma : MeasurableSpace.{u2} α} {mb : MeasurableSpace.{u1} β}, Measurable.{max u2 u1, u1} (Prod.{u2, u1} α β) β (Prod.instMeasurableSpace.{u2, u1} α β ma mb) mb (Prod.snd.{u2, u1} α β)
-Case conversion may be inaccurate. Consider using '#align measurable_snd measurable_sndₓ'. -/
 @[measurability]
 theorem measurable_snd {ma : MeasurableSpace α} {mb : MeasurableSpace β} :
     Measurable (Prod.snd : α × β → β) :=
@@ -986,32 +716,14 @@ variable {m : MeasurableSpace α} {mβ : MeasurableSpace β} {mγ : MeasurableSp
 
 include m mβ mγ
 
-/- warning: measurable.fst -> Measurable.fst is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {mγ : MeasurableSpace.{u3} γ} {f : α -> (Prod.{u2, u3} β γ)}, (Measurable.{u1, max u2 u3} α (Prod.{u2, u3} β γ) m (Prod.instMeasurableSpace.{u2, u3} β γ mβ mγ) f) -> (Measurable.{u1, u2} α β m mβ (fun (a : α) => Prod.fst.{u2, u3} β γ (f a)))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u3} β} {mγ : MeasurableSpace.{u2} γ} {f : α -> (Prod.{u3, u2} β γ)}, (Measurable.{u1, max u3 u2} α (Prod.{u3, u2} β γ) m (Prod.instMeasurableSpace.{u3, u2} β γ mβ mγ) f) -> (Measurable.{u1, u3} α β m mβ (fun (a : α) => Prod.fst.{u3, u2} β γ (f a)))
-Case conversion may be inaccurate. Consider using '#align measurable.fst Measurable.fstₓ'. -/
 theorem Measurable.fst {f : α → β × γ} (hf : Measurable f) : Measurable fun a : α => (f a).1 :=
   measurable_fst.comp hf
 #align measurable.fst Measurable.fst
 
-/- warning: measurable.snd -> Measurable.snd is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {mγ : MeasurableSpace.{u3} γ} {f : α -> (Prod.{u2, u3} β γ)}, (Measurable.{u1, max u2 u3} α (Prod.{u2, u3} β γ) m (Prod.instMeasurableSpace.{u2, u3} β γ mβ mγ) f) -> (Measurable.{u1, u3} α γ m mγ (fun (a : α) => Prod.snd.{u2, u3} β γ (f a)))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u3} β} {mγ : MeasurableSpace.{u2} γ} {f : α -> (Prod.{u3, u2} β γ)}, (Measurable.{u1, max u3 u2} α (Prod.{u3, u2} β γ) m (Prod.instMeasurableSpace.{u3, u2} β γ mβ mγ) f) -> (Measurable.{u1, u2} α γ m mγ (fun (a : α) => Prod.snd.{u3, u2} β γ (f a)))
-Case conversion may be inaccurate. Consider using '#align measurable.snd Measurable.sndₓ'. -/
 theorem Measurable.snd {f : α → β × γ} (hf : Measurable f) : Measurable fun a : α => (f a).2 :=
   measurable_snd.comp hf
 #align measurable.snd Measurable.snd
 
-/- warning: measurable.prod -> Measurable.prod is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {mγ : MeasurableSpace.{u3} γ} {f : α -> (Prod.{u2, u3} β γ)}, (Measurable.{u1, u2} α β m mβ (fun (a : α) => Prod.fst.{u2, u3} β γ (f a))) -> (Measurable.{u1, u3} α γ m mγ (fun (a : α) => Prod.snd.{u2, u3} β γ (f a))) -> (Measurable.{u1, max u2 u3} α (Prod.{u2, u3} β γ) m (Prod.instMeasurableSpace.{u2, u3} β γ mβ mγ) f)
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u3} β} {mγ : MeasurableSpace.{u2} γ} {f : α -> (Prod.{u3, u2} β γ)}, (Measurable.{u1, u3} α β m mβ (fun (a : α) => Prod.fst.{u3, u2} β γ (f a))) -> (Measurable.{u1, u2} α γ m mγ (fun (a : α) => Prod.snd.{u3, u2} β γ (f a))) -> (Measurable.{u1, max u3 u2} α (Prod.{u3, u2} β γ) m (Prod.instMeasurableSpace.{u3, u2} β γ mβ mγ) f)
-Case conversion may be inaccurate. Consider using '#align measurable.prod Measurable.prodₓ'. -/
 @[measurability]
 theorem Measurable.prod {f : α → β × γ} (hf₁ : Measurable fun a => (f a).1)
     (hf₂ : Measurable fun a => (f a).2) : Measurable f :=
@@ -1020,23 +732,11 @@ theorem Measurable.prod {f : α → β × γ} (hf₁ : Measurable fun a => (f a)
       (by rw [MeasurableSpace.comap_le_iff_le_map, MeasurableSpace.map_comp]; exact hf₂)
 #align measurable.prod Measurable.prod
 
-/- warning: measurable.prod_mk -> Measurable.prod_mk is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {m : MeasurableSpace.{u1} α} {β : Type.{u2}} {γ : Type.{u3}} {mβ : MeasurableSpace.{u2} β} {mγ : MeasurableSpace.{u3} γ} {f : α -> β} {g : α -> γ}, (Measurable.{u1, u2} α β m mβ f) -> (Measurable.{u1, u3} α γ m mγ g) -> (Measurable.{u1, max u2 u3} α (Prod.{u2, u3} β γ) m (Prod.instMeasurableSpace.{u2, u3} β γ mβ mγ) (fun (a : α) => Prod.mk.{u2, u3} β γ (f a) (g a)))
-but is expected to have type
-  forall {α : Type.{u1}} {m : MeasurableSpace.{u1} α} {β : Type.{u3}} {γ : Type.{u2}} {mβ : MeasurableSpace.{u3} β} {mγ : MeasurableSpace.{u2} γ} {f : α -> β} {g : α -> γ}, (Measurable.{u1, u3} α β m mβ f) -> (Measurable.{u1, u2} α γ m mγ g) -> (Measurable.{u1, max u2 u3} α (Prod.{u3, u2} β γ) m (Prod.instMeasurableSpace.{u3, u2} β γ mβ mγ) (fun (a : α) => Prod.mk.{u3, u2} β γ (f a) (g a)))
-Case conversion may be inaccurate. Consider using '#align measurable.prod_mk Measurable.prod_mkₓ'. -/
 theorem Measurable.prod_mk {β γ} {mβ : MeasurableSpace β} {mγ : MeasurableSpace γ} {f : α → β}
     {g : α → γ} (hf : Measurable f) (hg : Measurable g) : Measurable fun a : α => (f a, g a) :=
   Measurable.prod hf hg
 #align measurable.prod_mk Measurable.prod_mk
 
-/- warning: measurable.prod_map -> Measurable.prod_map is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {δ : Type.{u4}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {mγ : MeasurableSpace.{u3} γ} [_inst_1 : MeasurableSpace.{u4} δ] {f : α -> β} {g : γ -> δ}, (Measurable.{u1, u2} α β m mβ f) -> (Measurable.{u3, u4} γ δ mγ _inst_1 g) -> (Measurable.{max u1 u3, max u2 u4} (Prod.{u1, u3} α γ) (Prod.{u2, u4} β δ) (Prod.instMeasurableSpace.{u1, u3} α γ m mγ) (Prod.instMeasurableSpace.{u2, u4} β δ mβ _inst_1) (Prod.map.{u1, u2, u3, u4} α β γ δ f g))
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u1}} {δ : Type.{u4}} {m : MeasurableSpace.{u3} α} {mβ : MeasurableSpace.{u2} β} {mγ : MeasurableSpace.{u1} γ} [_inst_1 : MeasurableSpace.{u4} δ] {f : α -> β} {g : γ -> δ}, (Measurable.{u3, u2} α β m mβ f) -> (Measurable.{u1, u4} γ δ mγ _inst_1 g) -> (Measurable.{max u1 u3, max u4 u2} (Prod.{u3, u1} α γ) (Prod.{u2, u4} β δ) (Prod.instMeasurableSpace.{u3, u1} α γ m mγ) (Prod.instMeasurableSpace.{u2, u4} β δ mβ _inst_1) (Prod.map.{u3, u2, u1, u4} α β γ δ f g))
-Case conversion may be inaccurate. Consider using '#align measurable.prod_map Measurable.prod_mapₓ'. -/
 theorem Measurable.prod_map [MeasurableSpace δ] {f : α → β} {g : γ → δ} (hf : Measurable f)
     (hg : Measurable g) : Measurable (Prod.map f g) :=
   (hf.comp measurable_fst).prod_mk (hg.comp measurable_snd)
@@ -1050,46 +750,22 @@ theorem measurable_prod_mk_left {x : α} : Measurable (@Prod.mk _ β x) :=
 #align measurable_prod_mk_left measurable_prod_mk_left
 -/
 
-/- warning: measurable_prod_mk_right -> measurable_prod_mk_right is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {y : β}, Measurable.{u1, max u1 u2} α (Prod.{u1, u2} α β) m (Prod.instMeasurableSpace.{u1, u2} α β m mβ) (fun (x : α) => Prod.mk.{u1, u2} α β x y)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} {y : β}, Measurable.{u2, max u1 u2} α (Prod.{u2, u1} α β) m (Prod.instMeasurableSpace.{u2, u1} α β m mβ) (fun (x : α) => Prod.mk.{u2, u1} α β x y)
-Case conversion may be inaccurate. Consider using '#align measurable_prod_mk_right measurable_prod_mk_rightₓ'. -/
 theorem measurable_prod_mk_right {y : β} : Measurable fun x : α => (x, y) :=
   measurable_id.prod_mk measurable_const
 #align measurable_prod_mk_right measurable_prod_mk_right
 
 include mγ
 
-/- warning: measurable.of_uncurry_left -> Measurable.of_uncurry_left is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {mγ : MeasurableSpace.{u3} γ} {f : α -> β -> γ}, (Measurable.{max u1 u2, u3} (Prod.{u1, u2} α β) γ (Prod.instMeasurableSpace.{u1, u2} α β m mβ) mγ (Function.uncurry.{u1, u2, u3} α β γ f)) -> (forall {x : α}, Measurable.{u2, u3} β γ mβ mγ (f x))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} {γ : Type.{u1}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u3} β} {mγ : MeasurableSpace.{u1} γ} {f : α -> β -> γ}, (Measurable.{max u3 u2, u1} (Prod.{u2, u3} α β) γ (Prod.instMeasurableSpace.{u2, u3} α β m mβ) mγ (Function.uncurry.{u2, u3, u1} α β γ f)) -> (forall {x : α}, Measurable.{u3, u1} β γ mβ mγ (f x))
-Case conversion may be inaccurate. Consider using '#align measurable.of_uncurry_left Measurable.of_uncurry_leftₓ'. -/
 theorem Measurable.of_uncurry_left {f : α → β → γ} (hf : Measurable (uncurry f)) {x : α} :
     Measurable (f x) :=
   hf.comp measurable_prod_mk_left
 #align measurable.of_uncurry_left Measurable.of_uncurry_left
 
-/- warning: measurable.of_uncurry_right -> Measurable.of_uncurry_right is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {mγ : MeasurableSpace.{u3} γ} {f : α -> β -> γ}, (Measurable.{max u1 u2, u3} (Prod.{u1, u2} α β) γ (Prod.instMeasurableSpace.{u1, u2} α β m mβ) mγ (Function.uncurry.{u1, u2, u3} α β γ f)) -> (forall {y : β}, Measurable.{u1, u3} α γ m mγ (fun (x : α) => f x y))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} {γ : Type.{u1}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u3} β} {mγ : MeasurableSpace.{u1} γ} {f : α -> β -> γ}, (Measurable.{max u3 u2, u1} (Prod.{u2, u3} α β) γ (Prod.instMeasurableSpace.{u2, u3} α β m mβ) mγ (Function.uncurry.{u2, u3, u1} α β γ f)) -> (forall {y : β}, Measurable.{u2, u1} α γ m mγ (fun (x : α) => f x y))
-Case conversion may be inaccurate. Consider using '#align measurable.of_uncurry_right Measurable.of_uncurry_rightₓ'. -/
 theorem Measurable.of_uncurry_right {f : α → β → γ} (hf : Measurable (uncurry f)) {y : β} :
     Measurable fun x => f x y :=
   hf.comp measurable_prod_mk_right
 #align measurable.of_uncurry_right Measurable.of_uncurry_right
 
-/- warning: measurable_prod -> measurable_prod is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {mγ : MeasurableSpace.{u3} γ} {f : α -> (Prod.{u2, u3} β γ)}, Iff (Measurable.{u1, max u2 u3} α (Prod.{u2, u3} β γ) m (Prod.instMeasurableSpace.{u2, u3} β γ mβ mγ) f) (And (Measurable.{u1, u2} α β m mβ (fun (a : α) => Prod.fst.{u2, u3} β γ (f a))) (Measurable.{u1, u3} α γ m mγ (fun (a : α) => Prod.snd.{u2, u3} β γ (f a))))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u3} β} {mγ : MeasurableSpace.{u2} γ} {f : α -> (Prod.{u3, u2} β γ)}, Iff (Measurable.{u1, max u3 u2} α (Prod.{u3, u2} β γ) m (Prod.instMeasurableSpace.{u3, u2} β γ mβ mγ) f) (And (Measurable.{u1, u3} α β m mβ (fun (a : α) => Prod.fst.{u3, u2} β γ (f a))) (Measurable.{u1, u2} α γ m mγ (fun (a : α) => Prod.snd.{u3, u2} β γ (f a))))
-Case conversion may be inaccurate. Consider using '#align measurable_prod measurable_prodₓ'. -/
 theorem measurable_prod {f : α → β × γ} :
     Measurable f ↔ (Measurable fun a => (f a).1) ∧ Measurable fun a => (f a).2 :=
   ⟨fun hf => ⟨measurable_fst.comp hf, measurable_snd.comp hf⟩, fun h => Measurable.prod h.1 h.2⟩
@@ -1097,34 +773,16 @@ theorem measurable_prod {f : α → β × γ} :
 
 omit mγ
 
-/- warning: measurable_swap -> measurable_swap is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β}, Measurable.{max u1 u2, max u2 u1} (Prod.{u1, u2} α β) (Prod.{u2, u1} β α) (Prod.instMeasurableSpace.{u1, u2} α β m mβ) (Prod.instMeasurableSpace.{u2, u1} β α mβ m) (Prod.swap.{u1, u2} α β)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β}, Measurable.{max u2 u1, max u2 u1} (Prod.{u2, u1} α β) (Prod.{u1, u2} β α) (Prod.instMeasurableSpace.{u2, u1} α β m mβ) (Prod.instMeasurableSpace.{u1, u2} β α mβ m) (Prod.swap.{u2, u1} α β)
-Case conversion may be inaccurate. Consider using '#align measurable_swap measurable_swapₓ'. -/
 @[measurability]
 theorem measurable_swap : Measurable (Prod.swap : α × β → β × α) :=
   Measurable.prod measurable_snd measurable_fst
 #align measurable_swap measurable_swap
 
-/- warning: measurable_swap_iff -> measurable_swap_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {mγ : MeasurableSpace.{u3} γ} {f : (Prod.{u1, u2} α β) -> γ}, Iff (Measurable.{max u2 u1, u3} (Prod.{u2, u1} β α) γ (Prod.instMeasurableSpace.{u2, u1} β α mβ m) mγ (Function.comp.{succ (max u2 u1), max (succ u1) (succ u2), succ u3} (Prod.{u2, u1} β α) (Prod.{u1, u2} α β) γ f (Prod.swap.{u2, u1} β α))) (Measurable.{max u1 u2, u3} (Prod.{u1, u2} α β) γ (Prod.instMeasurableSpace.{u1, u2} α β m mβ) mγ f)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {γ : Type.{u3}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} {mγ : MeasurableSpace.{u3} γ} {f : (Prod.{u2, u1} α β) -> γ}, Iff (Measurable.{max u2 u1, u3} (Prod.{u1, u2} β α) γ (Prod.instMeasurableSpace.{u1, u2} β α mβ m) mγ (Function.comp.{succ (max u2 u1), max (succ u2) (succ u1), succ u3} (Prod.{u1, u2} β α) (Prod.{u2, u1} α β) γ f (Prod.swap.{u1, u2} β α))) (Measurable.{max u2 u1, u3} (Prod.{u2, u1} α β) γ (Prod.instMeasurableSpace.{u2, u1} α β m mβ) mγ f)
-Case conversion may be inaccurate. Consider using '#align measurable_swap_iff measurable_swap_iffₓ'. -/
 theorem measurable_swap_iff {mγ : MeasurableSpace γ} {f : α × β → γ} :
     Measurable (f ∘ Prod.swap) ↔ Measurable f :=
   ⟨fun hf => by convert hf.comp measurable_swap; ext ⟨x, y⟩; rfl, fun hf => hf.comp measurable_swap⟩
 #align measurable_swap_iff measurable_swap_iff
 
-/- warning: measurable_set.prod -> MeasurableSet.prod is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {s : Set.{u1} α} {t : Set.{u2} β}, (MeasurableSet.{u1} α m s) -> (MeasurableSet.{u2} β mβ t) -> (MeasurableSet.{max u1 u2} (Prod.{u1, u2} α β) (Prod.instMeasurableSpace.{u1, u2} α β m mβ) (Set.prod.{u1, u2} α β s t))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} {s : Set.{u2} α} {t : Set.{u1} β}, (MeasurableSet.{u2} α m s) -> (MeasurableSet.{u1} β mβ t) -> (MeasurableSet.{max u1 u2} (Prod.{u2, u1} α β) (Prod.instMeasurableSpace.{u2, u1} α β m mβ) (Set.prod.{u2, u1} α β s t))
-Case conversion may be inaccurate. Consider using '#align measurable_set.prod MeasurableSet.prodₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 @[measurability]
 theorem MeasurableSet.prod {s : Set α} {t : Set β} (hs : MeasurableSet s) (ht : MeasurableSet t) :
@@ -1132,12 +790,6 @@ theorem MeasurableSet.prod {s : Set α} {t : Set β} (hs : MeasurableSet s) (ht
   MeasurableSet.inter (measurable_fst hs) (measurable_snd ht)
 #align measurable_set.prod MeasurableSet.prod
 
-/- warning: measurable_set_prod_of_nonempty -> measurableSet_prod_of_nonempty is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {s : Set.{u1} α} {t : Set.{u2} β}, (Set.Nonempty.{max u1 u2} (Prod.{u1, u2} α β) (Set.prod.{u1, u2} α β s t)) -> (Iff (MeasurableSet.{max u1 u2} (Prod.{u1, u2} α β) (Prod.instMeasurableSpace.{u1, u2} α β m mβ) (Set.prod.{u1, u2} α β s t)) (And (MeasurableSet.{u1} α m s) (MeasurableSet.{u2} β mβ t)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} {s : Set.{u2} α} {t : Set.{u1} β}, (Set.Nonempty.{max u2 u1} (Prod.{u2, u1} α β) (Set.prod.{u2, u1} α β s t)) -> (Iff (MeasurableSet.{max u1 u2} (Prod.{u2, u1} α β) (Prod.instMeasurableSpace.{u2, u1} α β m mβ) (Set.prod.{u2, u1} α β s t)) (And (MeasurableSet.{u2} α m s) (MeasurableSet.{u1} β mβ t)))
-Case conversion may be inaccurate. Consider using '#align measurable_set_prod_of_nonempty measurableSet_prod_of_nonemptyₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
@@ -1152,12 +804,6 @@ theorem measurableSet_prod_of_nonempty {s : Set α} {t : Set β} (h : (s ×ˢ t)
   simp_all
 #align measurable_set_prod_of_nonempty measurableSet_prod_of_nonempty
 
-/- warning: measurable_set_prod -> measurableSet_prod is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {s : Set.{u1} α} {t : Set.{u2} β}, Iff (MeasurableSet.{max u1 u2} (Prod.{u1, u2} α β) (Prod.instMeasurableSpace.{u1, u2} α β m mβ) (Set.prod.{u1, u2} α β s t)) (Or (And (MeasurableSet.{u1} α m s) (MeasurableSet.{u2} β mβ t)) (Or (Eq.{succ u1} (Set.{u1} α) s (EmptyCollection.emptyCollection.{u1} (Set.{u1} α) (Set.hasEmptyc.{u1} α))) (Eq.{succ u2} (Set.{u2} β) t (EmptyCollection.emptyCollection.{u2} (Set.{u2} β) (Set.hasEmptyc.{u2} β)))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} {s : Set.{u2} α} {t : Set.{u1} β}, Iff (MeasurableSet.{max u1 u2} (Prod.{u2, u1} α β) (Prod.instMeasurableSpace.{u2, u1} α β m mβ) (Set.prod.{u2, u1} α β s t)) (Or (And (MeasurableSet.{u2} α m s) (MeasurableSet.{u1} β mβ t)) (Or (Eq.{succ u2} (Set.{u2} α) s (EmptyCollection.emptyCollection.{u2} (Set.{u2} α) (Set.instEmptyCollectionSet.{u2} α))) (Eq.{succ u1} (Set.{u1} β) t (EmptyCollection.emptyCollection.{u1} (Set.{u1} β) (Set.instEmptyCollectionSet.{u1} β)))))
-Case conversion may be inaccurate. Consider using '#align measurable_set_prod measurableSet_prodₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 theorem measurableSet_prod {s : Set α} {t : Set β} :
@@ -1181,12 +827,6 @@ instance [MeasurableSingletonClass α] [MeasurableSingletonClass β] :
     @singleton_prod_singleton _ _ a b ▸
       (measurableSet_singleton a).Prod (measurableSet_singleton b)⟩
 
-/- warning: measurable_from_prod_countable -> measurable_from_prod_countable is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} [_inst_1 : Countable.{succ u2} β] [_inst_2 : MeasurableSingletonClass.{u2} β mβ] {mγ : MeasurableSpace.{u3} γ} {f : (Prod.{u1, u2} α β) -> γ}, (forall (y : β), Measurable.{u1, u3} α γ m mγ (fun (x : α) => f (Prod.mk.{u1, u2} α β x y))) -> (Measurable.{max u1 u2, u3} (Prod.{u1, u2} α β) γ (Prod.instMeasurableSpace.{u1, u2} α β m mβ) mγ f)
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u3} β} [_inst_1 : Countable.{succ u3} β] [_inst_2 : MeasurableSingletonClass.{u3} β mβ] {mγ : MeasurableSpace.{u2} γ} {f : (Prod.{u1, u3} α β) -> γ}, (forall (y : β), Measurable.{u1, u2} α γ m mγ (fun (x : α) => f (Prod.mk.{u1, u3} α β x y))) -> (Measurable.{max u1 u3, u2} (Prod.{u1, u3} α β) γ (Prod.instMeasurableSpace.{u1, u3} α β m mβ) mγ f)
-Case conversion may be inaccurate. Consider using '#align measurable_from_prod_countable measurable_from_prod_countableₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 theorem measurable_from_prod_countable [Countable β] [MeasurableSingletonClass β]
     {mγ : MeasurableSpace γ} {f : α × β → γ} (hf : ∀ y, Measurable fun x => f (x, y)) :
@@ -1200,12 +840,6 @@ theorem measurable_from_prod_countable [Countable β] [MeasurableSingletonClass
   exact MeasurableSet.iUnion fun y => (hf y hs).Prod (measurable_set_singleton y)
 #align measurable_from_prod_countable measurable_from_prod_countable
 
-/- warning: measurable.find -> Measurable.find is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {mβ : MeasurableSpace.{u2} β} {m : MeasurableSpace.{u1} α} {f : Nat -> α -> β} {p : Nat -> α -> Prop} [_inst_1 : forall (n : Nat), DecidablePred.{succ u1} α (p n)], (forall (n : Nat), Measurable.{u1, u2} α β m mβ (f n)) -> (forall (n : Nat), MeasurableSet.{u1} α m (setOf.{u1} α (fun (x : α) => p n x))) -> (forall (h : forall (x : α), Exists.{1} Nat (fun (n : Nat) => p n x)), Measurable.{u1, u2} α β m mβ (fun (x : α) => f (Nat.find (fun (n : Nat) => p n x) (fun (a : Nat) => _inst_1 a x) (h x)) x))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {mβ : MeasurableSpace.{u1} β} {m : MeasurableSpace.{u2} α} {f : Nat -> α -> β} {p : Nat -> α -> Prop} [_inst_1 : forall (n : Nat), DecidablePred.{succ u2} α (p n)], (forall (n : Nat), Measurable.{u2, u1} α β m mβ (f n)) -> (forall (n : Nat), MeasurableSet.{u2} α m (setOf.{u2} α (fun (x : α) => p n x))) -> (forall (h : forall (x : α), Exists.{1} Nat (fun (n : Nat) => p n x)), Measurable.{u2, u1} α β m mβ (fun (x : α) => f (Nat.find (fun (n : Nat) => p n x) (fun (a : Nat) => _inst_1 a x) (h x)) x))
-Case conversion may be inaccurate. Consider using '#align measurable.find Measurable.findₓ'. -/
 /-- A piecewise function on countably many pieces is measurable if all the data is measurable. -/
 @[measurability]
 theorem Measurable.find {m : MeasurableSpace α} {f : ℕ → α → β} {p : ℕ → α → Prop}
@@ -1215,12 +849,6 @@ theorem Measurable.find {m : MeasurableSpace α} {f : ℕ → α → β} {p : 
   this.comp (Measurable.prod_mk measurable_id (measurable_find h hp))
 #align measurable.find Measurable.find
 
-/- warning: exists_measurable_piecewise_nat -> exists_measurable_piecewise_nat is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {mβ : MeasurableSpace.{u2} β} {m : MeasurableSpace.{u1} α} (t : Nat -> (Set.{u2} β)), (forall (n : Nat), MeasurableSet.{u2} β mβ (t n)) -> (Pairwise.{0} Nat (Function.onFun.{1, succ u2, 1} Nat (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u2} (Set.{u2} β) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)))) t)) -> (forall (g : Nat -> β -> α), (forall (n : Nat), Measurable.{u2, u1} β α mβ m (g n)) -> (Exists.{max (succ u2) (succ u1)} (β -> α) (fun (f : β -> α) => And (Measurable.{u2, u1} β α mβ m f) (forall (n : Nat) (x : β), (Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (t n)) -> (Eq.{succ u1} α (f x) (g n x))))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {mβ : MeasurableSpace.{u1} β} {m : MeasurableSpace.{u2} α} (t : Nat -> (Set.{u1} β)), (forall (n : Nat), MeasurableSet.{u1} β mβ (t n)) -> (Pairwise.{0} Nat (Function.onFun.{1, succ u1, 1} Nat (Set.{u1} β) Prop (Disjoint.{u1} (Set.{u1} β) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} β) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} β) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} β) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} β) (Set.instCompleteBooleanAlgebraSet.{u1} β)))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} β) (Preorder.toLE.{u1} (Set.{u1} β) (PartialOrder.toPreorder.{u1} (Set.{u1} β) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} β) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} β) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} β) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} β) (Set.instCompleteBooleanAlgebraSet.{u1} β)))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} β) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} β) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} β) (Set.instCompleteBooleanAlgebraSet.{u1} β))))))) t)) -> (forall (g : Nat -> β -> α), (forall (n : Nat), Measurable.{u1, u2} β α mβ m (g n)) -> (Exists.{max (succ u2) (succ u1)} (β -> α) (fun (f : β -> α) => And (Measurable.{u1, u2} β α mβ m f) (forall (n : Nat) (x : β), (Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (t n)) -> (Eq.{succ u2} α (f x) (g n x))))))
-Case conversion may be inaccurate. Consider using '#align exists_measurable_piecewise_nat exists_measurable_piecewise_natₓ'. -/
 /-- Given countably many disjoint measurable sets `t n` and countably many measurable
 functions `g n`, one can construct a measurable function that coincides with `g n` on `t n`. -/
 theorem exists_measurable_piecewise_nat {m : MeasurableSpace α} (t : ℕ → Set β)
@@ -1264,58 +892,28 @@ instance MeasurableSpace.pi [m : ∀ a, MeasurableSpace (π a)] : MeasurableSpac
 
 variable [∀ a, MeasurableSpace (π a)] [MeasurableSpace γ]
 
-/- warning: measurable_pi_iff -> measurable_pi_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {δ : Type.{u2}} {π : δ -> Type.{u3}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : forall (a : δ), MeasurableSpace.{u3} (π a)] {g : α -> (forall (a : δ), π a)}, Iff (Measurable.{u1, max u2 u3} α (forall (a : δ), π a) _inst_1 (MeasurableSpace.pi.{u2, u3} δ (fun (a : δ) => π a) (fun (a : δ) => _inst_2 a)) g) (forall (a : δ), Measurable.{u1, u3} α (π a) _inst_1 (_inst_2 a) (fun (x : α) => g x a))
-but is expected to have type
-  forall {α : Type.{u3}} {δ : Type.{u2}} {π : δ -> Type.{u1}} [_inst_1 : MeasurableSpace.{u3} α] [_inst_2 : forall (a : δ), MeasurableSpace.{u1} (π a)] {g : α -> (forall (a : δ), π a)}, Iff (Measurable.{u3, max u2 u1} α (forall (a : δ), π a) _inst_1 (MeasurableSpace.pi.{u2, u1} δ (fun (a : δ) => π a) (fun (a : δ) => _inst_2 a)) g) (forall (a : δ), Measurable.{u3, u1} α (π a) _inst_1 (_inst_2 a) (fun (x : α) => g x a))
-Case conversion may be inaccurate. Consider using '#align measurable_pi_iff measurable_pi_iffₓ'. -/
 theorem measurable_pi_iff {g : α → ∀ a, π a} : Measurable g ↔ ∀ a, Measurable fun x => g x a := by
   simp_rw [measurable_iff_comap_le, MeasurableSpace.pi, MeasurableSpace.comap_iSup,
     MeasurableSpace.comap_comp, Function.comp, iSup_le_iff]
 #align measurable_pi_iff measurable_pi_iff
 
-/- warning: measurable_pi_apply -> measurable_pi_apply is a dubious translation:
-lean 3 declaration is
-  forall {δ : Type.{u1}} {π : δ -> Type.{u2}} [_inst_2 : forall (a : δ), MeasurableSpace.{u2} (π a)] (a : δ), Measurable.{max u1 u2, u2} (forall (a : δ), π a) (π a) (MeasurableSpace.pi.{u1, u2} δ (fun (a : δ) => π a) (fun (a : δ) => _inst_2 a)) (_inst_2 a) (fun (f : forall (a : δ), π a) => f a)
-but is expected to have type
-  forall {δ : Type.{u2}} {π : δ -> Type.{u1}} [_inst_2 : forall (a : δ), MeasurableSpace.{u1} (π a)] (a : δ), Measurable.{max u2 u1, u1} (forall (a : δ), π a) (π a) (MeasurableSpace.pi.{u2, u1} δ (fun (a : δ) => π a) (fun (a : δ) => _inst_2 a)) (_inst_2 a) (fun (f : forall (a : δ), π a) => f a)
-Case conversion may be inaccurate. Consider using '#align measurable_pi_apply measurable_pi_applyₓ'. -/
 @[measurability]
 theorem measurable_pi_apply (a : δ) : Measurable fun f : ∀ a, π a => f a :=
   Measurable.of_comap_le <| le_iSup _ a
 #align measurable_pi_apply measurable_pi_apply
 
-/- warning: measurable.eval -> Measurable.eval is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {δ : Type.{u2}} {π : δ -> Type.{u3}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : forall (a : δ), MeasurableSpace.{u3} (π a)] {a : δ} {g : α -> (forall (a : δ), π a)}, (Measurable.{u1, max u2 u3} α (forall (a : δ), π a) _inst_1 (MeasurableSpace.pi.{u2, u3} δ (fun (a : δ) => π a) (fun (a : δ) => _inst_2 a)) g) -> (Measurable.{u1, u3} α (π a) _inst_1 (_inst_2 a) (fun (x : α) => g x a))
-but is expected to have type
-  forall {α : Type.{u3}} {δ : Type.{u2}} {π : δ -> Type.{u1}} [_inst_1 : MeasurableSpace.{u3} α] [_inst_2 : forall (a : δ), MeasurableSpace.{u1} (π a)] {a : δ} {g : α -> (forall (a : δ), π a)}, (Measurable.{u3, max u2 u1} α (forall (a : δ), π a) _inst_1 (MeasurableSpace.pi.{u2, u1} δ (fun (a : δ) => π a) (fun (a : δ) => _inst_2 a)) g) -> (Measurable.{u3, u1} α (π a) _inst_1 (_inst_2 a) (fun (x : α) => g x a))
-Case conversion may be inaccurate. Consider using '#align measurable.eval Measurable.evalₓ'. -/
 @[measurability]
 theorem Measurable.eval {a : δ} {g : α → ∀ a, π a} (hg : Measurable g) :
     Measurable fun x => g x a :=
   (measurable_pi_apply a).comp hg
 #align measurable.eval Measurable.eval
 
-/- warning: measurable_pi_lambda -> measurable_pi_lambda is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {δ : Type.{u2}} {π : δ -> Type.{u3}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : forall (a : δ), MeasurableSpace.{u3} (π a)] (f : α -> (forall (a : δ), π a)), (forall (a : δ), Measurable.{u1, u3} α (π a) _inst_1 (_inst_2 a) (fun (c : α) => f c a)) -> (Measurable.{u1, max u2 u3} α (forall (a : δ), π a) _inst_1 (MeasurableSpace.pi.{u2, u3} δ (fun (a : δ) => π a) (fun (a : δ) => _inst_2 a)) f)
-but is expected to have type
-  forall {α : Type.{u3}} {δ : Type.{u1}} {π : δ -> Type.{u2}} [_inst_1 : MeasurableSpace.{u3} α] [_inst_2 : forall (a : δ), MeasurableSpace.{u2} (π a)] (f : α -> (forall (a : δ), π a)), (forall (a : δ), Measurable.{u3, u2} α (π a) _inst_1 (_inst_2 a) (fun (c : α) => f c a)) -> (Measurable.{u3, max u1 u2} α (forall (a : δ), π a) _inst_1 (MeasurableSpace.pi.{u1, u2} δ (fun (a : δ) => π a) (fun (a : δ) => _inst_2 a)) f)
-Case conversion may be inaccurate. Consider using '#align measurable_pi_lambda measurable_pi_lambdaₓ'. -/
 @[measurability]
 theorem measurable_pi_lambda (f : α → ∀ a, π a) (hf : ∀ a, Measurable fun c => f c a) :
     Measurable f :=
   measurable_pi_iff.mpr hf
 #align measurable_pi_lambda measurable_pi_lambda
 
-/- warning: measurable_update -> measurable_update is a dubious translation:
-lean 3 declaration is
-  forall {δ : Type.{u1}} {π : δ -> Type.{u2}} [_inst_2 : forall (a : δ), MeasurableSpace.{u2} (π a)] (f : forall (a : δ), π a) {a : δ} [_inst_4 : DecidableEq.{succ u1} δ], Measurable.{u2, max u1 u2} (π a) (forall (a : δ), π a) (_inst_2 a) (MeasurableSpace.pi.{u1, u2} δ (fun (a : δ) => π a) (fun (a : δ) => _inst_2 a)) (Function.update.{succ u1, succ u2} δ (fun (a : δ) => π a) (fun (a : δ) (b : δ) => _inst_4 a b) f a)
-but is expected to have type
-  forall {δ : Type.{u2}} {π : δ -> Type.{u1}} [_inst_2 : forall (a : δ), MeasurableSpace.{u1} (π a)] (f : forall (a : δ), π a) {a : δ} [_inst_4 : DecidableEq.{succ u2} δ], Measurable.{u1, max u2 u1} (π a) (forall (a : δ), π a) (_inst_2 a) (MeasurableSpace.pi.{u2, u1} δ (fun (a : δ) => π a) (fun (a : δ) => _inst_2 a)) (Function.update.{succ u2, succ u1} δ (fun (a : δ) => π a) (fun (a : δ) (b : δ) => _inst_4 a b) f a)
-Case conversion may be inaccurate. Consider using '#align measurable_update measurable_updateₓ'. -/
 /-- The function `update f a : π a → Π a, π a` is always measurable.
   This doesn't require `f` to be measurable.
   This should not be confused with the statement that `update f a x` is measurable. -/
@@ -1328,12 +926,6 @@ theorem measurable_update (f : ∀ a : δ, π a) {a : δ} [DecidableEq δ] : Mea
   simp_rw [update_noteq hx]; apply measurable_const
 #align measurable_update measurable_update
 
-/- warning: measurable_set.pi -> MeasurableSet.pi is a dubious translation:
-lean 3 declaration is
-  forall {δ : Type.{u1}} {π : δ -> Type.{u2}} [_inst_2 : forall (a : δ), MeasurableSpace.{u2} (π a)] {s : Set.{u1} δ} {t : forall (i : δ), Set.{u2} (π i)}, (Set.Countable.{u1} δ s) -> (forall (i : δ), (Membership.Mem.{u1, u1} δ (Set.{u1} δ) (Set.hasMem.{u1} δ) i s) -> (MeasurableSet.{u2} (π i) (_inst_2 i) (t i))) -> (MeasurableSet.{max u1 u2} (forall (i : δ), π i) (MeasurableSpace.pi.{u1, u2} δ (fun (i : δ) => π i) (fun (a : δ) => _inst_2 a)) (Set.pi.{u1, u2} δ (fun (i : δ) => π i) s t))
-but is expected to have type
-  forall {δ : Type.{u2}} {π : δ -> Type.{u1}} [_inst_2 : forall (a : δ), MeasurableSpace.{u1} (π a)] {s : Set.{u2} δ} {t : forall (i : δ), Set.{u1} (π i)}, (Set.Countable.{u2} δ s) -> (forall (i : δ), (Membership.mem.{u2, u2} δ (Set.{u2} δ) (Set.instMembershipSet.{u2} δ) i s) -> (MeasurableSet.{u1} (π i) (_inst_2 i) (t i))) -> (MeasurableSet.{max u2 u1} (forall (i : δ), π i) (MeasurableSpace.pi.{u2, u1} δ (fun (i : δ) => π i) (fun (a : δ) => _inst_2 a)) (Set.pi.{u2, u1} δ (fun (i : δ) => π i) s t))
-Case conversion may be inaccurate. Consider using '#align measurable_set.pi MeasurableSet.piₓ'. -/
 /- Even though we cannot use projection notation, we still keep a dot to be consistent with similar
   lemmas, like `measurable_set.prod`. -/
 @[measurability]
@@ -1342,23 +934,11 @@ theorem MeasurableSet.pi {s : Set δ} {t : ∀ i : δ, Set (π i)} (hs : s.Count
   exact MeasurableSet.biInter hs fun i hi => measurable_pi_apply _ (ht i hi)
 #align measurable_set.pi MeasurableSet.pi
 
-/- warning: measurable_set.univ_pi -> MeasurableSet.univ_pi is a dubious translation:
-lean 3 declaration is
-  forall {δ : Type.{u1}} {π : δ -> Type.{u2}} [_inst_2 : forall (a : δ), MeasurableSpace.{u2} (π a)] [_inst_4 : Countable.{succ u1} δ] {t : forall (i : δ), Set.{u2} (π i)}, (forall (i : δ), MeasurableSet.{u2} (π i) (_inst_2 i) (t i)) -> (MeasurableSet.{max u1 u2} (forall (i : δ), π i) (MeasurableSpace.pi.{u1, u2} δ (fun (i : δ) => π i) (fun (a : δ) => _inst_2 a)) (Set.pi.{u1, u2} δ (fun (i : δ) => π i) (Set.univ.{u1} δ) t))
-but is expected to have type
-  forall {δ : Type.{u2}} {π : δ -> Type.{u1}} [_inst_2 : forall (a : δ), MeasurableSpace.{u1} (π a)] [_inst_4 : Countable.{succ u2} δ] {t : forall (i : δ), Set.{u1} (π i)}, (forall (i : δ), MeasurableSet.{u1} (π i) (_inst_2 i) (t i)) -> (MeasurableSet.{max u1 u2} (forall (i : δ), π i) (MeasurableSpace.pi.{u2, u1} δ (fun (i : δ) => π i) (fun (a : δ) => _inst_2 a)) (Set.pi.{u2, u1} δ (fun (i : δ) => π i) (Set.univ.{u2} δ) t))
-Case conversion may be inaccurate. Consider using '#align measurable_set.univ_pi MeasurableSet.univ_piₓ'. -/
 theorem MeasurableSet.univ_pi [Countable δ] {t : ∀ i : δ, Set (π i)}
     (ht : ∀ i, MeasurableSet (t i)) : MeasurableSet (pi univ t) :=
   MeasurableSet.pi (to_countable _) fun i _ => ht i
 #align measurable_set.univ_pi MeasurableSet.univ_pi
 
-/- warning: measurable_set_pi_of_nonempty -> measurableSet_pi_of_nonempty is a dubious translation:
-lean 3 declaration is
-  forall {δ : Type.{u1}} {π : δ -> Type.{u2}} [_inst_2 : forall (a : δ), MeasurableSpace.{u2} (π a)] {s : Set.{u1} δ} {t : forall (i : δ), Set.{u2} (π i)}, (Set.Countable.{u1} δ s) -> (Set.Nonempty.{max u1 u2} (forall (i : δ), π i) (Set.pi.{u1, u2} δ (fun (i : δ) => π i) s t)) -> (Iff (MeasurableSet.{max u1 u2} (forall (i : δ), π i) (MeasurableSpace.pi.{u1, u2} δ (fun (i : δ) => π i) (fun (a : δ) => _inst_2 a)) (Set.pi.{u1, u2} δ (fun (i : δ) => π i) s t)) (forall (i : δ), (Membership.Mem.{u1, u1} δ (Set.{u1} δ) (Set.hasMem.{u1} δ) i s) -> (MeasurableSet.{u2} (π i) (_inst_2 i) (t i))))
-but is expected to have type
-  forall {δ : Type.{u2}} {π : δ -> Type.{u1}} [_inst_2 : forall (a : δ), MeasurableSpace.{u1} (π a)] {s : Set.{u2} δ} {t : forall (i : δ), Set.{u1} (π i)}, (Set.Countable.{u2} δ s) -> (Set.Nonempty.{max u2 u1} (forall (i : δ), π i) (Set.pi.{u2, u1} δ (fun (i : δ) => π i) s t)) -> (Iff (MeasurableSet.{max u1 u2} (forall (i : δ), π i) (MeasurableSpace.pi.{u2, u1} δ (fun (i : δ) => π i) (fun (a : δ) => _inst_2 a)) (Set.pi.{u2, u1} δ (fun (i : δ) => π i) s t)) (forall (i : δ), (Membership.mem.{u2, u2} δ (Set.{u2} δ) (Set.instMembershipSet.{u2} δ) i s) -> (MeasurableSet.{u1} (π i) (_inst_2 i) (t i))))
-Case conversion may be inaccurate. Consider using '#align measurable_set_pi_of_nonempty measurableSet_pi_of_nonemptyₓ'. -/
 theorem measurableSet_pi_of_nonempty {s : Set δ} {t : ∀ i, Set (π i)} (hs : s.Countable)
     (h : (pi s t).Nonempty) : MeasurableSet (pi s t) ↔ ∀ i ∈ s, MeasurableSet (t i) := by
   classical
@@ -1369,12 +949,6 @@ theorem measurableSet_pi_of_nonempty {s : Set δ} {t : ∀ i, Set (π i)} (hs :
     exact fun j hj _ => hf j hj
 #align measurable_set_pi_of_nonempty measurableSet_pi_of_nonempty
 
-/- warning: measurable_set_pi -> measurableSet_pi is a dubious translation:
-lean 3 declaration is
-  forall {δ : Type.{u1}} {π : δ -> Type.{u2}} [_inst_2 : forall (a : δ), MeasurableSpace.{u2} (π a)] {s : Set.{u1} δ} {t : forall (i : δ), Set.{u2} (π i)}, (Set.Countable.{u1} δ s) -> (Iff (MeasurableSet.{max u1 u2} (forall (i : δ), π i) (MeasurableSpace.pi.{u1, u2} δ (fun (i : δ) => π i) (fun (a : δ) => _inst_2 a)) (Set.pi.{u1, u2} δ (fun (i : δ) => π i) s t)) (Or (forall (i : δ), (Membership.Mem.{u1, u1} δ (Set.{u1} δ) (Set.hasMem.{u1} δ) i s) -> (MeasurableSet.{u2} (π i) (_inst_2 i) (t i))) (Eq.{succ (max u1 u2)} (Set.{max u1 u2} (forall (i : δ), π i)) (Set.pi.{u1, u2} δ (fun (i : δ) => π i) s t) (EmptyCollection.emptyCollection.{max u1 u2} (Set.{max u1 u2} (forall (i : δ), π i)) (Set.hasEmptyc.{max u1 u2} (forall (i : δ), π i))))))
-but is expected to have type
-  forall {δ : Type.{u2}} {π : δ -> Type.{u1}} [_inst_2 : forall (a : δ), MeasurableSpace.{u1} (π a)] {s : Set.{u2} δ} {t : forall (i : δ), Set.{u1} (π i)}, (Set.Countable.{u2} δ s) -> (Iff (MeasurableSet.{max u1 u2} (forall (i : δ), π i) (MeasurableSpace.pi.{u2, u1} δ (fun (i : δ) => π i) (fun (a : δ) => _inst_2 a)) (Set.pi.{u2, u1} δ (fun (i : δ) => π i) s t)) (Or (forall (i : δ), (Membership.mem.{u2, u2} δ (Set.{u2} δ) (Set.instMembershipSet.{u2} δ) i s) -> (MeasurableSet.{u1} (π i) (_inst_2 i) (t i))) (Eq.{max (succ u2) (succ u1)} (Set.{max u2 u1} (forall (i : δ), π i)) (Set.pi.{u2, u1} δ (fun (i : δ) => π i) s t) (EmptyCollection.emptyCollection.{max u2 u1} (Set.{max u2 u1} (forall (i : δ), π i)) (Set.instEmptyCollectionSet.{max u2 u1} (forall (i : δ), π i))))))
-Case conversion may be inaccurate. Consider using '#align measurable_set_pi measurableSet_piₓ'. -/
 theorem measurableSet_pi {s : Set δ} {t : ∀ i, Set (π i)} (hs : s.Countable) :
     MeasurableSet (pi s t) ↔ (∀ i ∈ s, MeasurableSet (t i)) ∨ pi s t = ∅ :=
   by
@@ -1389,9 +963,6 @@ instance [Countable δ] [∀ a, MeasurableSingletonClass (π a)] :
 
 variable (π)
 
-/- warning: measurable_pi_equiv_pi_subtype_prod_symm -> measurable_piEquivPiSubtypeProd_symm is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align measurable_pi_equiv_pi_subtype_prod_symm measurable_piEquivPiSubtypeProd_symmₓ'. -/
 @[measurability]
 theorem measurable_piEquivPiSubtypeProd_symm (p : δ → Prop) [DecidablePred p] :
     Measurable (Equiv.piEquivPiSubtypeProd p π).symm :=
@@ -1406,9 +977,6 @@ theorem measurable_piEquivPiSubtypeProd_symm (p : δ → Prop) [DecidablePred p]
     exact Measurable.comp this measurable_snd
 #align measurable_pi_equiv_pi_subtype_prod_symm measurable_piEquivPiSubtypeProd_symm
 
-/- warning: measurable_pi_equiv_pi_subtype_prod -> measurable_piEquivPiSubtypeProd is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align measurable_pi_equiv_pi_subtype_prod measurable_piEquivPiSubtypeProdₓ'. -/
 @[measurability]
 theorem measurable_piEquivPiSubtypeProd (p : δ → Prop) [DecidablePred p] :
     Measurable (Equiv.piEquivPiSubtypeProd p π) :=
@@ -1421,12 +989,6 @@ theorem measurable_piEquivPiSubtypeProd (p : δ → Prop) [DecidablePred p] :
 
 end Pi
 
-/- warning: tprod.measurable_space -> TProd.instMeasurableSpace is a dubious translation:
-lean 3 declaration is
-  forall {δ : Type.{u_4}} (π : δ -> Type.{u_1}) [_inst_1 : forall (x : δ), MeasurableSpace.{u_1} (π x)] (l : List.{u_4} δ), MeasurableSpace.{max u_1 u_2} (List.TProd.{u_4, u_1, u_2} δ π l)
-but is expected to have type
-  forall {δ : Type.{u_1}} (π : δ -> Type.{u_2}) [_inst_1 : forall (x : δ), MeasurableSpace.{u_2} (π x)] (l : List.{u_1} δ), MeasurableSpace.{u_2} (List.TProd.{u_1, u_2} δ π l)
-Case conversion may be inaccurate. Consider using '#align tprod.measurable_space TProd.instMeasurableSpaceₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 instance TProd.instMeasurableSpace (π : δ → Type _) [∀ x, MeasurableSpace (π x)] :
     ∀ l : List δ, MeasurableSpace (List.TProd π l)
@@ -1440,12 +1002,6 @@ open List
 
 variable {π : δ → Type _} [∀ x, MeasurableSpace (π x)]
 
-/- warning: measurable_tprod_mk -> measurable_tProd_mk is a dubious translation:
-lean 3 declaration is
-  forall {δ : Type.{u_4}} {π : δ -> Type.{u_7}} [_inst_1 : forall (x : δ), MeasurableSpace.{u_7} (π x)] (l : List.{u_4} δ), Measurable.{max u_4 u_7, max u_7 u_1} (forall (i : δ), π i) (List.TProd.{u_4, u_7, u_1} δ π l) (MeasurableSpace.pi.{u_4, u_7} δ (fun (i : δ) => π i) (fun (x : δ) => _inst_1 x)) (TProd.instMeasurableSpace.{u_4, u_7, u_1} δ π (fun (x : δ) => _inst_1 x) l) (List.TProd.mk.{u_4, u_7, u_1} δ π l)
-but is expected to have type
-  forall {δ : Type.{u_1}} {π : δ -> Type.{u_2}} [_inst_1 : forall (x : δ), MeasurableSpace.{u_2} (π x)] (l : List.{u_1} δ), Measurable.{max u_1 u_2, u_2} (forall (i : δ), π i) (List.TProd.{u_1, u_2} δ π l) (MeasurableSpace.pi.{u_1, u_2} δ (fun (i : δ) => π i) (fun (x : δ) => _inst_1 x)) (TProd.instMeasurableSpace.{u_1, u_2} δ π (fun (x : δ) => _inst_1 x) l) (List.TProd.mk.{u_1, u_2} δ π l)
-Case conversion may be inaccurate. Consider using '#align measurable_tprod_mk measurable_tProd_mkₓ'. -/
 theorem measurable_tProd_mk (l : List δ) : Measurable (@TProd.mk δ π l) :=
   by
   induction' l with i l ih
@@ -1453,12 +1009,6 @@ theorem measurable_tProd_mk (l : List δ) : Measurable (@TProd.mk δ π l) :=
   · exact (measurable_pi_apply i).prod_mk ih
 #align measurable_tprod_mk measurable_tProd_mk
 
-/- warning: measurable_tprod_elim -> measurable_tProd_elim is a dubious translation:
-lean 3 declaration is
-  forall {δ : Type.{u_4}} {π : δ -> Type.{u_7}} [_inst_1 : forall (x : δ), MeasurableSpace.{u_7} (π x)] [_inst_2 : DecidableEq.{succ u_4} δ] {l : List.{u_4} δ} {i : δ} (hi : Membership.Mem.{u_4, u_4} δ (List.{u_4} δ) (List.hasMem.{u_4} δ) i l), Measurable.{max u_7 u_1, u_7} (List.TProd.{u_4, u_7, u_1} δ π l) (π i) (TProd.instMeasurableSpace.{u_4, u_7, u_1} δ π (fun (x : δ) => _inst_1 x) l) (_inst_1 i) (fun (v : List.TProd.{u_4, u_7, u_1} δ π l) => List.TProd.elim.{u_4, u_7, u_1} δ π (fun (a : δ) (b : δ) => _inst_2 a b) l v i hi)
-but is expected to have type
-  forall {δ : Type.{u_1}} {π : δ -> Type.{u_2}} [_inst_1 : forall (x : δ), MeasurableSpace.{u_2} (π x)] [_inst_2 : DecidableEq.{succ u_1} δ] {l : List.{u_1} δ} {i : δ} (hi : Membership.mem.{u_1, u_1} δ (List.{u_1} δ) (List.instMembershipList.{u_1} δ) i l), Measurable.{u_2, u_2} (List.TProd.{u_1, u_2} δ π l) (π i) (TProd.instMeasurableSpace.{u_1, u_2} δ π (fun (x : δ) => _inst_1 x) l) (_inst_1 i) (fun (v : List.TProd.{u_1, u_2} δ π l) => List.TProd.elim.{u_1, u_2} δ π (fun (a : δ) (b : δ) => _inst_2 a b) l v i hi)
-Case conversion may be inaccurate. Consider using '#align measurable_tprod_elim measurable_tProd_elimₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 theorem measurable_tProd_elim [DecidableEq δ] :
     ∀ {l : List δ} {i : δ} (hi : i ∈ l), Measurable fun v : TProd π l => v.elim hi
@@ -1469,23 +1019,11 @@ theorem measurable_tProd_elim [DecidableEq δ] :
       exact (measurable_tProd_elim (hj.resolve_left hji)).comp measurable_snd
 #align measurable_tprod_elim measurable_tProd_elim
 
-/- warning: measurable_tprod_elim' -> measurable_tProd_elim' is a dubious translation:
-lean 3 declaration is
-  forall {δ : Type.{u_4}} {π : δ -> Type.{u_7}} [_inst_1 : forall (x : δ), MeasurableSpace.{u_7} (π x)] [_inst_2 : DecidableEq.{succ u_4} δ] {l : List.{u_4} δ} (h : forall (i : δ), Membership.Mem.{u_4, u_4} δ (List.{u_4} δ) (List.hasMem.{u_4} δ) i l), Measurable.{max u_7 u_1, max u_4 u_7} (List.TProd.{u_4, u_7, u_1} δ π l) (forall (i : δ), π i) (TProd.instMeasurableSpace.{u_4, u_7, u_1} δ π (fun (a : δ) => _inst_1 a) l) (MeasurableSpace.pi.{u_4, u_7} δ (fun (i : δ) => π i) (fun (a : δ) => _inst_1 a)) (List.TProd.elim'.{u_4, u_7, u_1} δ π l (fun (a : δ) (b : δ) => _inst_2 a b) h)
-but is expected to have type
-  forall {δ : Type.{u_1}} {π : δ -> Type.{u_2}} [_inst_1 : forall (x : δ), MeasurableSpace.{u_2} (π x)] [_inst_2 : DecidableEq.{succ u_1} δ] {l : List.{u_1} δ} (h : forall (i : δ), Membership.mem.{u_1, u_1} δ (List.{u_1} δ) (List.instMembershipList.{u_1} δ) i l), Measurable.{u_2, max u_1 u_2} (List.TProd.{u_1, u_2} δ π l) (forall (i : δ), π i) (TProd.instMeasurableSpace.{u_1, u_2} δ π (fun (a : δ) => _inst_1 a) l) (MeasurableSpace.pi.{u_1, u_2} δ (fun (i : δ) => π i) (fun (a : δ) => _inst_1 a)) (List.TProd.elim'.{u_1, u_2} δ π l (fun (a : δ) (b : δ) => _inst_2 a b) h)
-Case conversion may be inaccurate. Consider using '#align measurable_tprod_elim' measurable_tProd_elim'ₓ'. -/
 theorem measurable_tProd_elim' [DecidableEq δ] {l : List δ} (h : ∀ i, i ∈ l) :
     Measurable (TProd.elim' h : TProd π l → ∀ i, π i) :=
   measurable_pi_lambda _ fun i => measurable_tProd_elim (h i)
 #align measurable_tprod_elim' measurable_tProd_elim'
 
-/- warning: measurable_set.tprod -> MeasurableSet.tProd is a dubious translation:
-lean 3 declaration is
-  forall {δ : Type.{u_4}} {π : δ -> Type.{u_7}} [_inst_1 : forall (x : δ), MeasurableSpace.{u_7} (π x)] (l : List.{u_4} δ) {s : forall (i : δ), Set.{u_7} (π i)}, (forall (i : δ), MeasurableSet.{u_7} (π i) (_inst_1 i) (s i)) -> (MeasurableSet.{max u_7 u_1} (List.TProd.{u_4, u_7, u_1} δ (fun (i : δ) => π i) l) (TProd.instMeasurableSpace.{u_4, u_7, u_1} δ (fun (i : δ) => π i) (fun (x : δ) => _inst_1 x) l) (Set.tprod.{u_4, u_7, u_1} δ (fun (i : δ) => π i) l s))
-but is expected to have type
-  forall {δ : Type.{u_1}} {π : δ -> Type.{u_2}} [_inst_1 : forall (x : δ), MeasurableSpace.{u_2} (π x)] (l : List.{u_1} δ) {s : forall (i : δ), Set.{u_2} (π i)}, (forall (i : δ), MeasurableSet.{u_2} (π i) (_inst_1 i) (s i)) -> (MeasurableSet.{u_2} (List.TProd.{u_1, u_2} δ (fun (i : δ) => π i) l) (TProd.instMeasurableSpace.{u_1, u_2} δ (fun (i : δ) => π i) (fun (x : δ) => _inst_1 x) l) (Set.tprod.{u_1, u_2} δ (fun (i : δ) => π i) l s))
-Case conversion may be inaccurate. Consider using '#align measurable_set.tprod MeasurableSet.tProdₓ'. -/
 theorem MeasurableSet.tProd (l : List δ) {s : ∀ i, Set (π i)} (hs : ∀ i, MeasurableSet (s i)) :
     MeasurableSet (Set.tprod l s) := by induction' l with i l ih; exact MeasurableSet.univ;
   exact (hs i).Prod ih
@@ -1498,23 +1036,11 @@ instance {α β} [m₁ : MeasurableSpace α] [m₂ : MeasurableSpace β] : Measu
 
 section Sum
 
-/- warning: measurable_inl -> measurable_inl is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β], Measurable.{u1, max u1 u2} α (Sum.{u1, u2} α β) _inst_1 (Sum.instMeasurableSpace.{u1, u2} α β _inst_1 _inst_2) (Sum.inl.{u1, u2} α β)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β], Measurable.{u2, max u2 u1} α (Sum.{u2, u1} α β) _inst_1 (Sum.instMeasurableSpace.{u2, u1} α β _inst_1 _inst_2) (Sum.inl.{u2, u1} α β)
-Case conversion may be inaccurate. Consider using '#align measurable_inl measurable_inlₓ'. -/
 @[measurability]
 theorem measurable_inl [MeasurableSpace α] [MeasurableSpace β] : Measurable (@Sum.inl α β) :=
   Measurable.of_le_map inf_le_left
 #align measurable_inl measurable_inl
 
-/- warning: measurable_inr -> measurable_inr is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β], Measurable.{u2, max u1 u2} β (Sum.{u1, u2} α β) _inst_2 (Sum.instMeasurableSpace.{u1, u2} α β _inst_1 _inst_2) (Sum.inr.{u1, u2} α β)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β], Measurable.{u1, max u2 u1} β (Sum.{u2, u1} α β) _inst_2 (Sum.instMeasurableSpace.{u2, u1} α β _inst_1 _inst_2) (Sum.inr.{u2, u1} α β)
-Case conversion may be inaccurate. Consider using '#align measurable_inr measurable_inrₓ'. -/
 @[measurability]
 theorem measurable_inr [MeasurableSpace α] [MeasurableSpace β] : Measurable (@Sum.inr α β) :=
   Measurable.of_le_map inf_le_right
@@ -1524,12 +1050,6 @@ variable {m : MeasurableSpace α} {mβ : MeasurableSpace β}
 
 include m mβ
 
-/- warning: measurable_sum -> measurable_sum is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {mγ : MeasurableSpace.{u3} γ} {f : (Sum.{u1, u2} α β) -> γ}, (Measurable.{u1, u3} α γ m mγ (Function.comp.{succ u1, max (succ u1) (succ u2), succ u3} α (Sum.{u1, u2} α β) γ f (Sum.inl.{u1, u2} α β))) -> (Measurable.{u2, u3} β γ mβ mγ (Function.comp.{succ u2, max (succ u1) (succ u2), succ u3} β (Sum.{u1, u2} α β) γ f (Sum.inr.{u1, u2} α β))) -> (Measurable.{max u1 u2, u3} (Sum.{u1, u2} α β) γ (Sum.instMeasurableSpace.{u1, u2} α β m mβ) mγ f)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {γ : Type.{u3}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} {mγ : MeasurableSpace.{u3} γ} {f : (Sum.{u2, u1} α β) -> γ}, (Measurable.{u2, u3} α γ m mγ (Function.comp.{succ u2, max (succ u2) (succ u1), succ u3} α (Sum.{u2, u1} α β) γ f (Sum.inl.{u2, u1} α β))) -> (Measurable.{u1, u3} β γ mβ mγ (Function.comp.{succ u1, max (succ u2) (succ u1), succ u3} β (Sum.{u2, u1} α β) γ f (Sum.inr.{u2, u1} α β))) -> (Measurable.{max u2 u1, u3} (Sum.{u2, u1} α β) γ (Sum.instMeasurableSpace.{u2, u1} α β m mβ) mγ f)
-Case conversion may be inaccurate. Consider using '#align measurable_sum measurable_sumₓ'. -/
 theorem measurable_sum {mγ : MeasurableSpace γ} {f : Sum α β → γ} (hl : Measurable (f ∘ Sum.inl))
     (hr : Measurable (f ∘ Sum.inr)) : Measurable f :=
   Measurable.of_comap_le <|
@@ -1537,24 +1057,12 @@ theorem measurable_sum {mγ : MeasurableSpace γ} {f : Sum α β → γ} (hl : M
       (MeasurableSpace.comap_le_iff_le_map.2 <| hr)
 #align measurable_sum measurable_sum
 
-/- warning: measurable.sum_elim -> Measurable.sumElim is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {mγ : MeasurableSpace.{u3} γ} {f : α -> γ} {g : β -> γ}, (Measurable.{u1, u3} α γ m mγ f) -> (Measurable.{u2, u3} β γ mβ mγ g) -> (Measurable.{max u1 u2, u3} (Sum.{u1, u2} α β) γ (Sum.instMeasurableSpace.{u1, u2} α β m mβ) mγ (Sum.elim.{u1, u2, succ u3} α β γ f g))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {γ : Type.{u3}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} {mγ : MeasurableSpace.{u3} γ} {f : α -> γ} {g : β -> γ}, (Measurable.{u2, u3} α γ m mγ f) -> (Measurable.{u1, u3} β γ mβ mγ g) -> (Measurable.{max u1 u2, u3} (Sum.{u2, u1} α β) γ (Sum.instMeasurableSpace.{u2, u1} α β m mβ) mγ (Sum.elim.{u2, u1, succ u3} α β γ f g))
-Case conversion may be inaccurate. Consider using '#align measurable.sum_elim Measurable.sumElimₓ'. -/
 @[measurability]
 theorem Measurable.sumElim {mγ : MeasurableSpace γ} {f : α → γ} {g : β → γ} (hf : Measurable f)
     (hg : Measurable g) : Measurable (Sum.elim f g) :=
   measurable_sum hf hg
 #align measurable.sum_elim Measurable.sumElim
 
-/- warning: measurable_set.inl_image -> MeasurableSet.inl_image is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {s : Set.{u1} α}, (MeasurableSet.{u1} α m s) -> (MeasurableSet.{max u1 u2} (Sum.{u1, u2} α β) (Sum.instMeasurableSpace.{u1, u2} α β m mβ) (Set.image.{u1, max u1 u2} α (Sum.{u1, u2} α β) (Sum.inl.{u1, u2} α β) s))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} {s : Set.{u2} α}, (MeasurableSet.{u2} α m s) -> (MeasurableSet.{max u2 u1} (Sum.{u2, u1} α β) (Sum.instMeasurableSpace.{u2, u1} α β m mβ) (Set.image.{u2, max u2 u1} α (Sum.{u2, u1} α β) (Sum.inl.{u2, u1} α β) s))
-Case conversion may be inaccurate. Consider using '#align measurable_set.inl_image MeasurableSet.inl_imageₓ'. -/
 theorem MeasurableSet.inl_image {s : Set α} (hs : MeasurableSet s) :
     MeasurableSet (Sum.inl '' s : Set (Sum α β)) :=
   ⟨show MeasurableSet (Sum.inl ⁻¹' _) by rwa [preimage_image_eq]; exact fun a b => Sum.inl.inj,
@@ -1563,12 +1071,6 @@ theorem MeasurableSet.inl_image {s : Set α} (hs : MeasurableSet s) :
     show MeasurableSet (Sum.inr ⁻¹' _) by rw [this]; exact MeasurableSet.empty⟩
 #align measurable_set.inl_image MeasurableSet.inl_image
 
-/- warning: measurable_set_inr_image -> measurableSet_inr_image is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {s : Set.{u2} β}, (MeasurableSet.{u2} β mβ s) -> (MeasurableSet.{max u1 u2} (Sum.{u1, u2} α β) (Sum.instMeasurableSpace.{u1, u2} α β m mβ) (Set.image.{u2, max u1 u2} β (Sum.{u1, u2} α β) (Sum.inr.{u1, u2} α β) s))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {s : Set.{u2} β}, Iff (MeasurableSet.{max u1 u2} (Sum.{u1, u2} α β) (Sum.instMeasurableSpace.{u1, u2} α β m mβ) (Set.image.{u2, max u1 u2} β (Sum.{u1, u2} α β) (Sum.inr.{u1, u2} α β) s)) (MeasurableSet.{u2} β mβ s)
-Case conversion may be inaccurate. Consider using '#align measurable_set_inr_image measurableSet_inr_imageₓ'. -/
 theorem measurableSet_inr_image {s : Set β} (hs : MeasurableSet s) :
     MeasurableSet (Sum.inr '' s : Set (Sum α β)) :=
   ⟨have : Sum.inl ⁻¹' (Sum.inr '' s : Set (Sum α β)) = ∅ :=
@@ -1579,23 +1081,11 @@ theorem measurableSet_inr_image {s : Set β} (hs : MeasurableSet s) :
 
 omit m
 
-/- warning: measurable_set_range_inl -> measurableSet_range_inl is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {mβ : MeasurableSpace.{u2} β} [_inst_1 : MeasurableSpace.{u1} α], MeasurableSet.{max u1 u2} (Sum.{u1, u2} α β) (Sum.instMeasurableSpace.{u1, u2} α β _inst_1 mβ) (Set.range.{max u1 u2, succ u1} (Sum.{u1, u2} α β) α (Sum.inl.{u1, u2} α β))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {mβ : MeasurableSpace.{u1} β} [_inst_1 : MeasurableSpace.{u2} α], MeasurableSet.{max u2 u1} (Sum.{u2, u1} α β) (Sum.instMeasurableSpace.{u2, u1} α β _inst_1 mβ) (Set.range.{max u2 u1, succ u2} (Sum.{u2, u1} α β) α (Sum.inl.{u2, u1} α β))
-Case conversion may be inaccurate. Consider using '#align measurable_set_range_inl measurableSet_range_inlₓ'. -/
 theorem measurableSet_range_inl [MeasurableSpace α] :
     MeasurableSet (range Sum.inl : Set (Sum α β)) := by rw [← image_univ];
   exact measurable_set.univ.inl_image
 #align measurable_set_range_inl measurableSet_range_inl
 
-/- warning: measurable_set_range_inr -> measurableSet_range_inr is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {mβ : MeasurableSpace.{u2} β} [_inst_1 : MeasurableSpace.{u1} α], MeasurableSet.{max u1 u2} (Sum.{u1, u2} α β) (Sum.instMeasurableSpace.{u1, u2} α β _inst_1 mβ) (Set.range.{max u1 u2, succ u2} (Sum.{u1, u2} α β) β (Sum.inr.{u1, u2} α β))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {mβ : MeasurableSpace.{u1} β} [_inst_1 : MeasurableSpace.{u2} α], MeasurableSet.{max u2 u1} (Sum.{u2, u1} α β) (Sum.instMeasurableSpace.{u2, u1} α β _inst_1 mβ) (Set.range.{max u2 u1, succ u1} (Sum.{u2, u1} α β) β (Sum.inr.{u2, u1} α β))
-Case conversion may be inaccurate. Consider using '#align measurable_set_range_inr measurableSet_range_inrₓ'. -/
 theorem measurableSet_range_inr [MeasurableSpace α] :
     MeasurableSet (range Sum.inr : Set (Sum α β)) := by rw [← image_univ];
   exact measurableSet_inr_image MeasurableSet.univ
@@ -1635,12 +1125,6 @@ variable {mα : MeasurableSpace α} [MeasurableSpace β] [MeasurableSpace γ] {f
 
 include mα
 
-/- warning: measurable_embedding.measurable_set_image -> MeasurableEmbedding.measurableSet_image is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {mα : MeasurableSpace.{u1} α} [_inst_1 : MeasurableSpace.{u2} β] {f : α -> β}, (MeasurableEmbedding.{u1, u2} α β mα _inst_1 f) -> (forall {s : Set.{u1} α}, Iff (MeasurableSet.{u2} β _inst_1 (Set.image.{u1, u2} α β f s)) (MeasurableSet.{u1} α mα s))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {mα : MeasurableSpace.{u2} α} [_inst_1 : MeasurableSpace.{u1} β] {f : α -> β}, (MeasurableEmbedding.{u2, u1} α β mα _inst_1 f) -> (forall {s : Set.{u2} α}, Iff (MeasurableSet.{u1} β _inst_1 (Set.image.{u2, u1} α β f s)) (MeasurableSet.{u2} α mα s))
-Case conversion may be inaccurate. Consider using '#align measurable_embedding.measurable_set_image MeasurableEmbedding.measurableSet_imageₓ'. -/
 theorem measurableSet_image (hf : MeasurableEmbedding f) {s : Set α} :
     MeasurableSet (f '' s) ↔ MeasurableSet s :=
   ⟨fun h => by simpa only [hf.injective.preimage_image] using hf.measurable h, fun h =>
@@ -1653,12 +1137,6 @@ theorem id : MeasurableEmbedding (id : α → α) :=
 #align measurable_embedding.id MeasurableEmbedding.id
 -/
 
-/- warning: measurable_embedding.comp -> MeasurableEmbedding.comp is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {mα : MeasurableSpace.{u1} α} [_inst_1 : MeasurableSpace.{u2} β] [_inst_2 : MeasurableSpace.{u3} γ] {f : α -> β} {g : β -> γ}, (MeasurableEmbedding.{u2, u3} β γ _inst_1 _inst_2 g) -> (MeasurableEmbedding.{u1, u2} α β mα _inst_1 f) -> (MeasurableEmbedding.{u1, u3} α γ mα _inst_2 (Function.comp.{succ u1, succ u2, succ u3} α β γ g f))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} {mα : MeasurableSpace.{u1} α} [_inst_1 : MeasurableSpace.{u3} β] [_inst_2 : MeasurableSpace.{u2} γ] {f : α -> β} {g : β -> γ}, (MeasurableEmbedding.{u3, u2} β γ _inst_1 _inst_2 g) -> (MeasurableEmbedding.{u1, u3} α β mα _inst_1 f) -> (MeasurableEmbedding.{u1, u2} α γ mα _inst_2 (Function.comp.{succ u1, succ u3, succ u2} α β γ g f))
-Case conversion may be inaccurate. Consider using '#align measurable_embedding.comp MeasurableEmbedding.compₓ'. -/
 theorem comp (hg : MeasurableEmbedding g) (hf : MeasurableEmbedding f) :
     MeasurableEmbedding (g ∘ f) :=
   ⟨hg.Injective.comp hf.Injective, hg.Measurable.comp hf.Measurable, fun s hs => by
@@ -1673,33 +1151,15 @@ theorem subtype_coe {s : Set α} (hs : MeasurableSet s) : MeasurableEmbedding (c
 #align measurable_embedding.subtype_coe MeasurableEmbedding.subtype_coe
 -/
 
-/- warning: measurable_embedding.measurable_set_range -> MeasurableEmbedding.measurableSet_range is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {mα : MeasurableSpace.{u1} α} [_inst_1 : MeasurableSpace.{u2} β] {f : α -> β}, (MeasurableEmbedding.{u1, u2} α β mα _inst_1 f) -> (MeasurableSet.{u2} β _inst_1 (Set.range.{u2, succ u1} β α f))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {mα : MeasurableSpace.{u2} α} [_inst_1 : MeasurableSpace.{u1} β] {f : α -> β}, (MeasurableEmbedding.{u2, u1} α β mα _inst_1 f) -> (MeasurableSet.{u1} β _inst_1 (Set.range.{u1, succ u2} β α f))
-Case conversion may be inaccurate. Consider using '#align measurable_embedding.measurable_set_range MeasurableEmbedding.measurableSet_rangeₓ'. -/
 theorem measurableSet_range (hf : MeasurableEmbedding f) : MeasurableSet (range f) := by
   rw [← image_univ]; exact hf.measurable_set_image' MeasurableSet.univ
 #align measurable_embedding.measurable_set_range MeasurableEmbedding.measurableSet_range
 
-/- warning: measurable_embedding.measurable_set_preimage -> MeasurableEmbedding.measurableSet_preimage is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {mα : MeasurableSpace.{u1} α} [_inst_1 : MeasurableSpace.{u2} β] {f : α -> β}, (MeasurableEmbedding.{u1, u2} α β mα _inst_1 f) -> (forall {s : Set.{u2} β}, Iff (MeasurableSet.{u1} α mα (Set.preimage.{u1, u2} α β f s)) (MeasurableSet.{u2} β _inst_1 (Inter.inter.{u2} (Set.{u2} β) (Set.hasInter.{u2} β) s (Set.range.{u2, succ u1} β α f))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {mα : MeasurableSpace.{u2} α} [_inst_1 : MeasurableSpace.{u1} β] {f : α -> β}, (MeasurableEmbedding.{u2, u1} α β mα _inst_1 f) -> (forall {s : Set.{u1} β}, Iff (MeasurableSet.{u2} α mα (Set.preimage.{u2, u1} α β f s)) (MeasurableSet.{u1} β _inst_1 (Inter.inter.{u1} (Set.{u1} β) (Set.instInterSet.{u1} β) s (Set.range.{u1, succ u2} β α f))))
-Case conversion may be inaccurate. Consider using '#align measurable_embedding.measurable_set_preimage MeasurableEmbedding.measurableSet_preimageₓ'. -/
 theorem measurableSet_preimage (hf : MeasurableEmbedding f) {s : Set β} :
     MeasurableSet (f ⁻¹' s) ↔ MeasurableSet (s ∩ range f) := by
   rw [← image_preimage_eq_inter_range, hf.measurable_set_image]
 #align measurable_embedding.measurable_set_preimage MeasurableEmbedding.measurableSet_preimage
 
-/- warning: measurable_embedding.measurable_range_splitting -> MeasurableEmbedding.measurable_rangeSplitting is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {mα : MeasurableSpace.{u1} α} [_inst_1 : MeasurableSpace.{u2} β] {f : α -> β}, (MeasurableEmbedding.{u1, u2} α β mα _inst_1 f) -> (Measurable.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.range.{u2, succ u1} β α f)) α (Subtype.instMeasurableSpace.{u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Set.range.{u2, succ u1} β α f)) _inst_1) mα (Set.rangeSplitting.{u1, u2} α β f))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {mα : MeasurableSpace.{u2} α} [_inst_1 : MeasurableSpace.{u1} β] {f : α -> β}, (MeasurableEmbedding.{u2, u1} α β mα _inst_1 f) -> (Measurable.{u1, u2} (Set.Elem.{u1} β (Set.range.{u1, succ u2} β α f)) α (Subtype.instMeasurableSpace.{u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (Set.range.{u1, succ u2} β α f)) _inst_1) mα (Set.rangeSplitting.{u2, u1} α β f))
-Case conversion may be inaccurate. Consider using '#align measurable_embedding.measurable_range_splitting MeasurableEmbedding.measurable_rangeSplittingₓ'. -/
 theorem measurable_rangeSplitting (hf : MeasurableEmbedding f) : Measurable (rangeSplitting f) :=
   fun s hs => by
   rwa [preimage_range_splitting hf.injective, ←
@@ -1707,12 +1167,6 @@ theorem measurable_rangeSplitting (hf : MeasurableEmbedding f) : Measurable (ran
     coe_comp_range_factorization, hf.measurable_set_image]
 #align measurable_embedding.measurable_range_splitting MeasurableEmbedding.measurable_rangeSplitting
 
-/- warning: measurable_embedding.measurable_extend -> MeasurableEmbedding.measurable_extend is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {mα : MeasurableSpace.{u1} α} [_inst_1 : MeasurableSpace.{u2} β] [_inst_2 : MeasurableSpace.{u3} γ] {f : α -> β}, (MeasurableEmbedding.{u1, u2} α β mα _inst_1 f) -> (forall {g : α -> γ} {g' : β -> γ}, (Measurable.{u1, u3} α γ mα _inst_2 g) -> (Measurable.{u2, u3} β γ _inst_1 _inst_2 g') -> (Measurable.{u2, u3} β γ _inst_1 _inst_2 (Function.extend.{succ u1, succ u2, succ u3} α β γ f g g')))
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u1}} {mα : MeasurableSpace.{u3} α} [_inst_1 : MeasurableSpace.{u2} β] [_inst_2 : MeasurableSpace.{u1} γ] {f : α -> β}, (MeasurableEmbedding.{u3, u2} α β mα _inst_1 f) -> (forall {g : α -> γ} {g' : β -> γ}, (Measurable.{u3, u1} α γ mα _inst_2 g) -> (Measurable.{u2, u1} β γ _inst_1 _inst_2 g') -> (Measurable.{u2, u1} β γ _inst_1 _inst_2 (Function.extend.{succ u3, succ u2, succ u1} α β γ f g g')))
-Case conversion may be inaccurate. Consider using '#align measurable_embedding.measurable_extend MeasurableEmbedding.measurable_extendₓ'. -/
 theorem measurable_extend (hf : MeasurableEmbedding f) {g : α → γ} {g' : β → γ} (hg : Measurable g)
     (hg' : Measurable g') : Measurable (extend f g g') :=
   by
@@ -1722,12 +1176,6 @@ theorem measurable_extend (hf : MeasurableEmbedding f) {g : α → γ} {g' : β
   · rw [restrict_extend_compl_range]; exact hg'.comp measurable_subtype_coe
 #align measurable_embedding.measurable_extend MeasurableEmbedding.measurable_extend
 
-/- warning: measurable_embedding.exists_measurable_extend -> MeasurableEmbedding.exists_measurable_extend is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {mα : MeasurableSpace.{u1} α} [_inst_1 : MeasurableSpace.{u2} β] [_inst_2 : MeasurableSpace.{u3} γ] {f : α -> β}, (MeasurableEmbedding.{u1, u2} α β mα _inst_1 f) -> (forall {g : α -> γ}, (Measurable.{u1, u3} α γ mα _inst_2 g) -> (β -> (Nonempty.{succ u3} γ)) -> (Exists.{max (succ u2) (succ u3)} (β -> γ) (fun (g' : β -> γ) => And (Measurable.{u2, u3} β γ _inst_1 _inst_2 g') (Eq.{max (succ u1) (succ u3)} (α -> γ) (Function.comp.{succ u1, succ u2, succ u3} α β γ g' f) g))))
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u1}} {mα : MeasurableSpace.{u3} α} [_inst_1 : MeasurableSpace.{u2} β] [_inst_2 : MeasurableSpace.{u1} γ] {f : α -> β}, (MeasurableEmbedding.{u3, u2} α β mα _inst_1 f) -> (forall {g : α -> γ}, (Measurable.{u3, u1} α γ mα _inst_2 g) -> (β -> (Nonempty.{succ u1} γ)) -> (Exists.{max (succ u2) (succ u1)} (β -> γ) (fun (g' : β -> γ) => And (Measurable.{u2, u1} β γ _inst_1 _inst_2 g') (Eq.{max (succ u3) (succ u1)} (α -> γ) (Function.comp.{succ u3, succ u2, succ u1} α β γ g' f) g))))
-Case conversion may be inaccurate. Consider using '#align measurable_embedding.exists_measurable_extend MeasurableEmbedding.exists_measurable_extendₓ'. -/
 theorem exists_measurable_extend (hf : MeasurableEmbedding f) {g : α → γ} (hg : Measurable g)
     (hne : β → Nonempty γ) : ∃ g' : β → γ, Measurable g' ∧ g' ∘ f = g :=
   ⟨extend f g fun x => Classical.choice (hne x),
@@ -1735,12 +1183,6 @@ theorem exists_measurable_extend (hf : MeasurableEmbedding f) {g : α → γ} (h
     funext fun x => hf.Injective.extend_apply _ _ _⟩
 #align measurable_embedding.exists_measurable_extend MeasurableEmbedding.exists_measurable_extend
 
-/- warning: measurable_embedding.measurable_comp_iff -> MeasurableEmbedding.measurable_comp_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {mα : MeasurableSpace.{u1} α} [_inst_1 : MeasurableSpace.{u2} β] [_inst_2 : MeasurableSpace.{u3} γ] {f : α -> β} {g : β -> γ}, (MeasurableEmbedding.{u2, u3} β γ _inst_1 _inst_2 g) -> (Iff (Measurable.{u1, u3} α γ mα _inst_2 (Function.comp.{succ u1, succ u2, succ u3} α β γ g f)) (Measurable.{u1, u2} α β mα _inst_1 f))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} {mα : MeasurableSpace.{u1} α} [_inst_1 : MeasurableSpace.{u3} β] [_inst_2 : MeasurableSpace.{u2} γ] {f : α -> β} {g : β -> γ}, (MeasurableEmbedding.{u3, u2} β γ _inst_1 _inst_2 g) -> (Iff (Measurable.{u1, u2} α γ mα _inst_2 (Function.comp.{succ u1, succ u3, succ u2} α β γ g f)) (Measurable.{u1, u3} α β mα _inst_1 f))
-Case conversion may be inaccurate. Consider using '#align measurable_embedding.measurable_comp_iff MeasurableEmbedding.measurable_comp_iffₓ'. -/
 theorem measurable_comp_iff (hg : MeasurableEmbedding g) : Measurable (g ∘ f) ↔ Measurable f :=
   by
   refine' ⟨fun H => _, hg.measurable.comp⟩
@@ -1782,34 +1224,16 @@ instance : CoeFun (α ≃ᵐ β) fun _ => α → β :=
 
 variable {α β}
 
-/- warning: measurable_equiv.coe_to_equiv -> MeasurableEquiv.coe_toEquiv is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] (e : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2), Eq.{max (succ u1) (succ u2)} ((fun (_x : Equiv.{succ u1, succ u2} α β) => α -> β) (MeasurableEquiv.toEquiv.{u1, u2} α β _inst_1 _inst_2 e)) (coeFn.{max 1 (max (succ u1) (succ u2)) (succ u2) (succ u1), max (succ u1) (succ u2)} (Equiv.{succ u1, succ u2} α β) (fun (_x : Equiv.{succ u1, succ u2} α β) => α -> β) (Equiv.hasCoeToFun.{succ u1, succ u2} α β) (MeasurableEquiv.toEquiv.{u1, u2} α β _inst_1 _inst_2 e)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) (MeasurableEquiv.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) e)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2), Eq.{max (succ u2) (succ u1)} (forall (a : α), (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : α) => β) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} α β) α (fun (_x : α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : α) => β) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} α β) (MeasurableEquiv.toEquiv.{u2, u1} α β _inst_1 _inst_2 e)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLike.{u2, u1} α β _inst_1 _inst_2))) e)
-Case conversion may be inaccurate. Consider using '#align measurable_equiv.coe_to_equiv MeasurableEquiv.coe_toEquivₓ'. -/
 @[simp]
 theorem coe_toEquiv (e : α ≃ᵐ β) : (e.toEquiv : α → β) = e :=
   rfl
 #align measurable_equiv.coe_to_equiv MeasurableEquiv.coe_toEquiv
 
-/- warning: measurable_equiv.measurable -> MeasurableEquiv.measurable is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] (e : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2), Measurable.{u1, u2} α β _inst_1 _inst_2 (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) (MeasurableEquiv.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) e)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2), Measurable.{u2, u1} α β _inst_1 _inst_2 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLike.{u2, u1} α β _inst_1 _inst_2))) e)
-Case conversion may be inaccurate. Consider using '#align measurable_equiv.measurable MeasurableEquiv.measurableₓ'. -/
 @[measurability]
 protected theorem measurable (e : α ≃ᵐ β) : Measurable (e : α → β) :=
   e.measurable_to_fun
 #align measurable_equiv.measurable MeasurableEquiv.measurable
 
-/- warning: measurable_equiv.coe_mk -> MeasurableEquiv.coe_mk is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] (e : Equiv.{succ u1, succ u2} α β) (h1 : Measurable.{u1, u2} α β _inst_1 _inst_2 (coeFn.{max 1 (max (succ u1) (succ u2)) (succ u2) (succ u1), max (succ u1) (succ u2)} (Equiv.{succ u1, succ u2} α β) (fun (_x : Equiv.{succ u1, succ u2} α β) => α -> β) (Equiv.hasCoeToFun.{succ u1, succ u2} α β) e)) (h2 : Measurable.{u2, u1} β α _inst_2 _inst_1 (coeFn.{max 1 (max (succ u2) (succ u1)) (succ u1) (succ u2), max (succ u2) (succ u1)} (Equiv.{succ u2, succ u1} β α) (fun (_x : Equiv.{succ u2, succ u1} β α) => β -> α) (Equiv.hasCoeToFun.{succ u2, succ u1} β α) (Equiv.symm.{succ u1, succ u2} α β e))), Eq.{max (succ u1) (succ u2)} ((fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) (MeasurableEquiv.mk.{u1, u2} α β _inst_1 _inst_2 e h1 h2)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) (MeasurableEquiv.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) (MeasurableEquiv.mk.{u1, u2} α β _inst_1 _inst_2 e h1 h2)) (coeFn.{max 1 (max (succ u1) (succ u2)) (succ u2) (succ u1), max (succ u1) (succ u2)} (Equiv.{succ u1, succ u2} α β) (fun (_x : Equiv.{succ u1, succ u2} α β) => α -> β) (Equiv.hasCoeToFun.{succ u1, succ u2} α β) e)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : Equiv.{succ u2, succ u1} α β) (h1 : Measurable.{u2, u1} α β _inst_1 _inst_2 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} α β) α (fun (_x : α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : α) => β) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} α β) e)) (h2 : Measurable.{u1, u2} β α _inst_2 _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} β α) β (fun (_x : β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : β) => α) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} β α) (Equiv.symm.{succ u2, succ u1} α β e))), Eq.{max (succ u2) (succ u1)} (forall (a : α), (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLike.{u2, u1} α β _inst_1 _inst_2))) (MeasurableEquiv.mk.{u2, u1} α β _inst_1 _inst_2 e h1 h2)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} α β) α (fun (_x : α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : α) => β) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} α β) e)
-Case conversion may be inaccurate. Consider using '#align measurable_equiv.coe_mk MeasurableEquiv.coe_mkₓ'. -/
 @[simp]
 theorem coe_mk (e : α ≃ β) (h1 : Measurable e) (h2 : Measurable e.symm) :
     ((⟨e, h1, h2⟩ : α ≃ᵐ β) : α → β) = e :=
@@ -1848,12 +1272,6 @@ def symm (ab : α ≃ᵐ β) : β ≃ᵐ α where
 #align measurable_equiv.symm MeasurableEquiv.symm
 -/
 
-/- warning: measurable_equiv.coe_to_equiv_symm -> MeasurableEquiv.coe_toEquiv_symm is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] (e : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2), Eq.{max (succ u2) (succ u1)} ((fun (_x : Equiv.{succ u2, succ u1} β α) => β -> α) (Equiv.symm.{succ u1, succ u2} α β (MeasurableEquiv.toEquiv.{u1, u2} α β _inst_1 _inst_2 e))) (coeFn.{max 1 (max (succ u2) (succ u1)) (succ u1) (succ u2), max (succ u2) (succ u1)} (Equiv.{succ u2, succ u1} β α) (fun (_x : Equiv.{succ u2, succ u1} β α) => β -> α) (Equiv.hasCoeToFun.{succ u2, succ u1} β α) (Equiv.symm.{succ u1, succ u2} α β (MeasurableEquiv.toEquiv.{u1, u2} α β _inst_1 _inst_2 e))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (MeasurableEquiv.{u2, u1} β α _inst_2 _inst_1) (fun (_x : MeasurableEquiv.{u2, u1} β α _inst_2 _inst_1) => β -> α) (MeasurableEquiv.hasCoeToFun.{u2, u1} β α _inst_2 _inst_1) (MeasurableEquiv.symm.{u1, u2} α β _inst_1 _inst_2 e))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2), Eq.{max (succ u2) (succ u1)} (forall (a : β), (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : β) => α) a) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} β α) β (fun (_x : β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : β) => α) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} β α) (Equiv.symm.{succ u2, succ u1} α β (MeasurableEquiv.toEquiv.{u2, u1} α β _inst_1 _inst_2 e))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β (fun (_x : β) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : β) => α) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (MeasurableEquiv.instEquivLike.{u1, u2} β α _inst_2 _inst_1))) (MeasurableEquiv.symm.{u2, u1} α β _inst_1 _inst_2 e))
-Case conversion may be inaccurate. Consider using '#align measurable_equiv.coe_to_equiv_symm MeasurableEquiv.coe_toEquiv_symmₓ'. -/
 @[simp]
 theorem coe_toEquiv_symm (e : α ≃ᵐ β) : (e.toEquiv.symm : β → α) = e.symm :=
   rfl
@@ -1877,33 +1295,15 @@ def Simps.symm_apply (h : α ≃ᵐ β) : β → α :=
 initialize_simps_projections MeasurableEquiv (to_equiv_to_fun → apply, to_equiv_inv_fun →
   symm_apply)
 
-/- warning: measurable_equiv.to_equiv_injective -> MeasurableEquiv.toEquiv_injective is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β], Function.Injective.{max (succ u1) (succ u2), max 1 (max (succ u1) (succ u2)) (succ u2) (succ u1)} (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (Equiv.{succ u1, succ u2} α β) (MeasurableEquiv.toEquiv.{u1, u2} α β _inst_1 _inst_2)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β], Function.Injective.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) (Equiv.{succ u2, succ u1} α β) (MeasurableEquiv.toEquiv.{u2, u1} α β _inst_1 _inst_2)
-Case conversion may be inaccurate. Consider using '#align measurable_equiv.to_equiv_injective MeasurableEquiv.toEquiv_injectiveₓ'. -/
 theorem toEquiv_injective : Injective (toEquiv : α ≃ᵐ β → α ≃ β) := by
   rintro ⟨e₁, _, _⟩ ⟨e₂, _, _⟩ (rfl : e₁ = e₂); rfl
 #align measurable_equiv.to_equiv_injective MeasurableEquiv.toEquiv_injective
 
-/- warning: measurable_equiv.ext -> MeasurableEquiv.ext is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] {e₁ : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2} {e₂ : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2}, (Eq.{max (succ u1) (succ u2)} ((fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) e₁) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) (MeasurableEquiv.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) e₁) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) (MeasurableEquiv.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) e₂)) -> (Eq.{max (succ u1) (succ u2)} (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) e₁ e₂)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] {e₁ : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2} {e₂ : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2}, (Eq.{max (succ u2) (succ u1)} (forall (a : α), (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLike.{u2, u1} α β _inst_1 _inst_2))) e₁) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLike.{u2, u1} α β _inst_1 _inst_2))) e₂)) -> (Eq.{max (succ u2) (succ u1)} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) e₁ e₂)
-Case conversion may be inaccurate. Consider using '#align measurable_equiv.ext MeasurableEquiv.extₓ'. -/
 @[ext]
 theorem ext {e₁ e₂ : α ≃ᵐ β} (h : (e₁ : α → β) = e₂) : e₁ = e₂ :=
   toEquiv_injective <| Equiv.coe_fn_injective h
 #align measurable_equiv.ext MeasurableEquiv.ext
 
-/- warning: measurable_equiv.symm_mk -> MeasurableEquiv.symm_mk is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] (e : Equiv.{succ u1, succ u2} α β) (h1 : Measurable.{u1, u2} α β _inst_1 _inst_2 (coeFn.{max 1 (max (succ u1) (succ u2)) (succ u2) (succ u1), max (succ u1) (succ u2)} (Equiv.{succ u1, succ u2} α β) (fun (_x : Equiv.{succ u1, succ u2} α β) => α -> β) (Equiv.hasCoeToFun.{succ u1, succ u2} α β) e)) (h2 : Measurable.{u2, u1} β α _inst_2 _inst_1 (coeFn.{max 1 (max (succ u2) (succ u1)) (succ u1) (succ u2), max (succ u2) (succ u1)} (Equiv.{succ u2, succ u1} β α) (fun (_x : Equiv.{succ u2, succ u1} β α) => β -> α) (Equiv.hasCoeToFun.{succ u2, succ u1} β α) (Equiv.symm.{succ u1, succ u2} α β e))), Eq.{max (succ u2) (succ u1)} (MeasurableEquiv.{u2, u1} β α _inst_2 _inst_1) (MeasurableEquiv.symm.{u1, u2} α β _inst_1 _inst_2 (MeasurableEquiv.mk.{u1, u2} α β _inst_1 _inst_2 e h1 h2)) (MeasurableEquiv.mk.{u2, u1} β α _inst_2 _inst_1 (Equiv.symm.{succ u1, succ u2} α β e) h2 h1)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : Equiv.{succ u2, succ u1} α β) (h1 : Measurable.{u2, u1} α β _inst_1 _inst_2 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} α β) α (fun (_x : α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : α) => β) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} α β) e)) (h2 : Measurable.{u1, u2} β α _inst_2 _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} β α) β (fun (_x : β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : β) => α) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} β α) (Equiv.symm.{succ u2, succ u1} α β e))), Eq.{max (succ u2) (succ u1)} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) (MeasurableEquiv.symm.{u2, u1} α β _inst_1 _inst_2 (MeasurableEquiv.mk.{u2, u1} α β _inst_1 _inst_2 e h1 h2)) (MeasurableEquiv.mk.{u1, u2} β α _inst_2 _inst_1 (Equiv.symm.{succ u2, succ u1} α β e) h2 h1)
-Case conversion may be inaccurate. Consider using '#align measurable_equiv.symm_mk MeasurableEquiv.symm_mkₓ'. -/
 @[simp]
 theorem symm_mk (e : α ≃ β) (h1 : Measurable e) (h2 : Measurable e.symm) :
     (⟨e, h1, h2⟩ : α ≃ᵐ β).symm = ⟨e.symm, h2, h1⟩ :=
@@ -1919,129 +1319,57 @@ theorem symm_refl (α : Type _) [MeasurableSpace α] : (refl α).symm = refl α
 #align measurable_equiv.symm_refl MeasurableEquiv.symm_refl
 -/
 
-/- warning: measurable_equiv.symm_comp_self -> MeasurableEquiv.symm_comp_self is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] (e : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2), Eq.{succ u1} (α -> α) (Function.comp.{succ u1, succ u2, succ u1} α β α (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (MeasurableEquiv.{u2, u1} β α _inst_2 _inst_1) (fun (_x : MeasurableEquiv.{u2, u1} β α _inst_2 _inst_1) => β -> α) (MeasurableEquiv.hasCoeToFun.{u2, u1} β α _inst_2 _inst_1) (MeasurableEquiv.symm.{u1, u2} α β _inst_1 _inst_2 e)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) (MeasurableEquiv.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) e)) (id.{succ u1} α)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2), Eq.{succ u2} (α -> α) (Function.comp.{succ u2, succ u1, succ u2} α β α (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β (fun (_x : β) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : β) => α) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (MeasurableEquiv.instEquivLike.{u1, u2} β α _inst_2 _inst_1))) (MeasurableEquiv.symm.{u2, u1} α β _inst_1 _inst_2 e)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLike.{u2, u1} α β _inst_1 _inst_2))) e)) (id.{succ u2} α)
-Case conversion may be inaccurate. Consider using '#align measurable_equiv.symm_comp_self MeasurableEquiv.symm_comp_selfₓ'. -/
 @[simp]
 theorem symm_comp_self (e : α ≃ᵐ β) : e.symm ∘ e = id :=
   funext e.left_inv
 #align measurable_equiv.symm_comp_self MeasurableEquiv.symm_comp_self
 
-/- warning: measurable_equiv.self_comp_symm -> MeasurableEquiv.self_comp_symm is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] (e : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2), Eq.{succ u2} (β -> β) (Function.comp.{succ u2, succ u1, succ u2} β α β (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) (MeasurableEquiv.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) e) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (MeasurableEquiv.{u2, u1} β α _inst_2 _inst_1) (fun (_x : MeasurableEquiv.{u2, u1} β α _inst_2 _inst_1) => β -> α) (MeasurableEquiv.hasCoeToFun.{u2, u1} β α _inst_2 _inst_1) (MeasurableEquiv.symm.{u1, u2} α β _inst_1 _inst_2 e))) (id.{succ u2} β)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2), Eq.{succ u1} (β -> β) (Function.comp.{succ u1, succ u2, succ u1} β α β (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLike.{u2, u1} α β _inst_1 _inst_2))) e) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β (fun (_x : β) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : β) => α) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (MeasurableEquiv.instEquivLike.{u1, u2} β α _inst_2 _inst_1))) (MeasurableEquiv.symm.{u2, u1} α β _inst_1 _inst_2 e))) (id.{succ u1} β)
-Case conversion may be inaccurate. Consider using '#align measurable_equiv.self_comp_symm MeasurableEquiv.self_comp_symmₓ'. -/
 @[simp]
 theorem self_comp_symm (e : α ≃ᵐ β) : e ∘ e.symm = id :=
   funext e.right_inv
 #align measurable_equiv.self_comp_symm MeasurableEquiv.self_comp_symm
 
-/- warning: measurable_equiv.apply_symm_apply -> MeasurableEquiv.apply_symm_apply is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] (e : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (y : β), Eq.{succ u2} β (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) (MeasurableEquiv.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) e (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (MeasurableEquiv.{u2, u1} β α _inst_2 _inst_1) (fun (_x : MeasurableEquiv.{u2, u1} β α _inst_2 _inst_1) => β -> α) (MeasurableEquiv.hasCoeToFun.{u2, u1} β α _inst_2 _inst_1) (MeasurableEquiv.symm.{u1, u2} α β _inst_1 _inst_2 e) y)) y
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) (y : β), Eq.{succ u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β (fun (a : β) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : β) => α) a) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (MeasurableEquiv.instEquivLike.{u1, u2} β α _inst_2 _inst_1))) (MeasurableEquiv.symm.{u2, u1} α β _inst_1 _inst_2 e) y)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLike.{u2, u1} α β _inst_1 _inst_2))) e (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β (fun (_x : β) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : β) => α) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (MeasurableEquiv.instEquivLike.{u1, u2} β α _inst_2 _inst_1))) (MeasurableEquiv.symm.{u2, u1} α β _inst_1 _inst_2 e) y)) y
-Case conversion may be inaccurate. Consider using '#align measurable_equiv.apply_symm_apply MeasurableEquiv.apply_symm_applyₓ'. -/
 @[simp]
 theorem apply_symm_apply (e : α ≃ᵐ β) (y : β) : e (e.symm y) = y :=
   e.right_inv y
 #align measurable_equiv.apply_symm_apply MeasurableEquiv.apply_symm_apply
 
-/- warning: measurable_equiv.symm_apply_apply -> MeasurableEquiv.symm_apply_apply is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] (e : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (x : α), Eq.{succ u1} α (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (MeasurableEquiv.{u2, u1} β α _inst_2 _inst_1) (fun (_x : MeasurableEquiv.{u2, u1} β α _inst_2 _inst_1) => β -> α) (MeasurableEquiv.hasCoeToFun.{u2, u1} β α _inst_2 _inst_1) (MeasurableEquiv.symm.{u1, u2} α β _inst_1 _inst_2 e) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) (MeasurableEquiv.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) e x)) x
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) (x : α), Eq.{succ u2} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : β) => α) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (a : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) a) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLike.{u2, u1} α β _inst_1 _inst_2))) e x)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β (fun (_x : β) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : β) => α) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (MeasurableEquiv.instEquivLike.{u1, u2} β α _inst_2 _inst_1))) (MeasurableEquiv.symm.{u2, u1} α β _inst_1 _inst_2 e) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLike.{u2, u1} α β _inst_1 _inst_2))) e x)) x
-Case conversion may be inaccurate. Consider using '#align measurable_equiv.symm_apply_apply MeasurableEquiv.symm_apply_applyₓ'. -/
 @[simp]
 theorem symm_apply_apply (e : α ≃ᵐ β) (x : α) : e.symm (e x) = x :=
   e.left_inv x
 #align measurable_equiv.symm_apply_apply MeasurableEquiv.symm_apply_apply
 
-/- warning: measurable_equiv.symm_trans_self -> MeasurableEquiv.symm_trans_self is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] (e : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2), Eq.{succ u2} (MeasurableEquiv.{u2, u2} β β _inst_2 _inst_2) (MeasurableEquiv.trans.{u2, u1, u2} β α β _inst_2 _inst_1 _inst_2 (MeasurableEquiv.symm.{u1, u2} α β _inst_1 _inst_2 e) e) (MeasurableEquiv.refl.{u2} β _inst_2)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2), Eq.{succ u1} (MeasurableEquiv.{u1, u1} β β _inst_2 _inst_2) (MeasurableEquiv.trans.{u1, u2, u1} β α β _inst_2 _inst_1 _inst_2 (MeasurableEquiv.symm.{u2, u1} α β _inst_1 _inst_2 e) e) (MeasurableEquiv.refl.{u1} β _inst_2)
-Case conversion may be inaccurate. Consider using '#align measurable_equiv.symm_trans_self MeasurableEquiv.symm_trans_selfₓ'. -/
 @[simp]
 theorem symm_trans_self (e : α ≃ᵐ β) : e.symm.trans e = refl β :=
   ext e.self_comp_symm
 #align measurable_equiv.symm_trans_self MeasurableEquiv.symm_trans_self
 
-/- warning: measurable_equiv.self_trans_symm -> MeasurableEquiv.self_trans_symm is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] (e : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2), Eq.{succ u1} (MeasurableEquiv.{u1, u1} α α _inst_1 _inst_1) (MeasurableEquiv.trans.{u1, u2, u1} α β α _inst_1 _inst_2 _inst_1 e (MeasurableEquiv.symm.{u1, u2} α β _inst_1 _inst_2 e)) (MeasurableEquiv.refl.{u1} α _inst_1)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2), Eq.{succ u2} (MeasurableEquiv.{u2, u2} α α _inst_1 _inst_1) (MeasurableEquiv.trans.{u2, u1, u2} α β α _inst_1 _inst_2 _inst_1 e (MeasurableEquiv.symm.{u2, u1} α β _inst_1 _inst_2 e)) (MeasurableEquiv.refl.{u2} α _inst_1)
-Case conversion may be inaccurate. Consider using '#align measurable_equiv.self_trans_symm MeasurableEquiv.self_trans_symmₓ'. -/
 @[simp]
 theorem self_trans_symm (e : α ≃ᵐ β) : e.trans e.symm = refl α :=
   ext e.symm_comp_self
 #align measurable_equiv.self_trans_symm MeasurableEquiv.self_trans_symm
 
-/- warning: measurable_equiv.surjective -> MeasurableEquiv.surjective is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] (e : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2), Function.Surjective.{succ u1, succ u2} α β (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) (MeasurableEquiv.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) e)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2), Function.Surjective.{succ u2, succ u1} α β (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLike.{u2, u1} α β _inst_1 _inst_2))) e)
-Case conversion may be inaccurate. Consider using '#align measurable_equiv.surjective MeasurableEquiv.surjectiveₓ'. -/
 protected theorem surjective (e : α ≃ᵐ β) : Surjective e :=
   e.toEquiv.Surjective
 #align measurable_equiv.surjective MeasurableEquiv.surjective
 
-/- warning: measurable_equiv.bijective -> MeasurableEquiv.bijective is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] (e : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2), Function.Bijective.{succ u1, succ u2} α β (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) (MeasurableEquiv.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) e)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2), Function.Bijective.{succ u2, succ u1} α β (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLike.{u2, u1} α β _inst_1 _inst_2))) e)
-Case conversion may be inaccurate. Consider using '#align measurable_equiv.bijective MeasurableEquiv.bijectiveₓ'. -/
 protected theorem bijective (e : α ≃ᵐ β) : Bijective e :=
   e.toEquiv.Bijective
 #align measurable_equiv.bijective MeasurableEquiv.bijective
 
-/- warning: measurable_equiv.injective -> MeasurableEquiv.injective is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] (e : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2), Function.Injective.{succ u1, succ u2} α β (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) (MeasurableEquiv.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) e)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2), Function.Injective.{succ u2, succ u1} α β (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLike.{u2, u1} α β _inst_1 _inst_2))) e)
-Case conversion may be inaccurate. Consider using '#align measurable_equiv.injective MeasurableEquiv.injectiveₓ'. -/
 protected theorem injective (e : α ≃ᵐ β) : Injective e :=
   e.toEquiv.Injective
 #align measurable_equiv.injective MeasurableEquiv.injective
 
-/- warning: measurable_equiv.symm_preimage_preimage -> MeasurableEquiv.symm_preimage_preimage is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] (e : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (s : Set.{u2} β), Eq.{succ u2} (Set.{u2} β) (Set.preimage.{u2, u1} β α (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (MeasurableEquiv.{u2, u1} β α _inst_2 _inst_1) (fun (_x : MeasurableEquiv.{u2, u1} β α _inst_2 _inst_1) => β -> α) (MeasurableEquiv.hasCoeToFun.{u2, u1} β α _inst_2 _inst_1) (MeasurableEquiv.symm.{u1, u2} α β _inst_1 _inst_2 e)) (Set.preimage.{u1, u2} α β (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) (MeasurableEquiv.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) e) s)) s
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) (s : Set.{u1} β), Eq.{succ u1} (Set.{u1} β) (Set.preimage.{u1, u2} β α (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β (fun (_x : β) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : β) => α) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (MeasurableEquiv.instEquivLike.{u1, u2} β α _inst_2 _inst_1))) (MeasurableEquiv.symm.{u2, u1} α β _inst_1 _inst_2 e)) (Set.preimage.{u2, u1} α β (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLike.{u2, u1} α β _inst_1 _inst_2))) e) s)) s
-Case conversion may be inaccurate. Consider using '#align measurable_equiv.symm_preimage_preimage MeasurableEquiv.symm_preimage_preimageₓ'. -/
 @[simp]
 theorem symm_preimage_preimage (e : α ≃ᵐ β) (s : Set β) : e.symm ⁻¹' (e ⁻¹' s) = s :=
   e.toEquiv.symm_preimage_preimage s
 #align measurable_equiv.symm_preimage_preimage MeasurableEquiv.symm_preimage_preimage
 
-/- warning: measurable_equiv.image_eq_preimage -> MeasurableEquiv.image_eq_preimage is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] (e : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (s : Set.{u1} α), Eq.{succ u2} (Set.{u2} β) (Set.image.{u1, u2} α β (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) (MeasurableEquiv.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) e) s) (Set.preimage.{u2, u1} β α (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (MeasurableEquiv.{u2, u1} β α _inst_2 _inst_1) (fun (_x : MeasurableEquiv.{u2, u1} β α _inst_2 _inst_1) => β -> α) (MeasurableEquiv.hasCoeToFun.{u2, u1} β α _inst_2 _inst_1) (MeasurableEquiv.symm.{u1, u2} α β _inst_1 _inst_2 e)) s)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) (s : Set.{u2} α), Eq.{succ u1} (Set.{u1} β) (Set.image.{u2, u1} α β (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLike.{u2, u1} α β _inst_1 _inst_2))) e) s) (Set.preimage.{u1, u2} β α (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β (fun (_x : β) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : β) => α) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (MeasurableEquiv.instEquivLike.{u1, u2} β α _inst_2 _inst_1))) (MeasurableEquiv.symm.{u2, u1} α β _inst_1 _inst_2 e)) s)
-Case conversion may be inaccurate. Consider using '#align measurable_equiv.image_eq_preimage MeasurableEquiv.image_eq_preimageₓ'. -/
 theorem image_eq_preimage (e : α ≃ᵐ β) (s : Set α) : e '' s = e.symm ⁻¹' s :=
   e.toEquiv.image_eq_preimage s
 #align measurable_equiv.image_eq_preimage MeasurableEquiv.image_eq_preimage
 
-/- warning: measurable_equiv.measurable_set_preimage -> MeasurableEquiv.measurableSet_preimage is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] (e : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) {s : Set.{u2} β}, Iff (MeasurableSet.{u1} α _inst_1 (Set.preimage.{u1, u2} α β (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) (MeasurableEquiv.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) e) s)) (MeasurableSet.{u2} β _inst_2 s)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) {s : Set.{u1} β}, Iff (MeasurableSet.{u2} α _inst_1 (Set.preimage.{u2, u1} α β (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLike.{u2, u1} α β _inst_1 _inst_2))) e) s)) (MeasurableSet.{u1} β _inst_2 s)
-Case conversion may be inaccurate. Consider using '#align measurable_equiv.measurable_set_preimage MeasurableEquiv.measurableSet_preimageₓ'. -/
 @[simp]
 theorem measurableSet_preimage (e : α ≃ᵐ β) {s : Set β} :
     MeasurableSet (e ⁻¹' s) ↔ MeasurableSet s :=
@@ -2049,23 +1377,11 @@ theorem measurableSet_preimage (e : α ≃ᵐ β) {s : Set β} :
     e.Measurable h⟩
 #align measurable_equiv.measurable_set_preimage MeasurableEquiv.measurableSet_preimage
 
-/- warning: measurable_equiv.measurable_set_image -> MeasurableEquiv.measurableSet_image is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] (e : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) {s : Set.{u1} α}, Iff (MeasurableSet.{u2} β _inst_2 (Set.image.{u1, u2} α β (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) (MeasurableEquiv.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) e) s)) (MeasurableSet.{u1} α _inst_1 s)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) {s : Set.{u2} α}, Iff (MeasurableSet.{u1} β _inst_2 (Set.image.{u2, u1} α β (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLike.{u2, u1} α β _inst_1 _inst_2))) e) s)) (MeasurableSet.{u2} α _inst_1 s)
-Case conversion may be inaccurate. Consider using '#align measurable_equiv.measurable_set_image MeasurableEquiv.measurableSet_imageₓ'. -/
 @[simp]
 theorem measurableSet_image (e : α ≃ᵐ β) {s : Set α} : MeasurableSet (e '' s) ↔ MeasurableSet s :=
   by rw [image_eq_preimage, measurableSet_preimage]
 #align measurable_equiv.measurable_set_image MeasurableEquiv.measurableSet_image
 
-/- warning: measurable_equiv.measurable_embedding -> MeasurableEquiv.measurableEmbedding is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] (e : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2), MeasurableEmbedding.{u1, u2} α β _inst_1 _inst_2 (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) (MeasurableEquiv.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) e)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2), MeasurableEmbedding.{u2, u1} α β _inst_1 _inst_2 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLike.{u2, u1} α β _inst_1 _inst_2))) e)
-Case conversion may be inaccurate. Consider using '#align measurable_equiv.measurable_embedding MeasurableEquiv.measurableEmbeddingₓ'. -/
 /-- A measurable equivalence is a measurable embedding. -/
 protected theorem measurableEmbedding (e : α ≃ᵐ β) : MeasurableEmbedding e :=
   { Injective := e.Injective
@@ -2083,12 +1399,6 @@ protected def cast {α β} [i₁ : MeasurableSpace α] [i₂ : MeasurableSpace 
 #align measurable_equiv.cast MeasurableEquiv.cast
 -/
 
-/- warning: measurable_equiv.measurable_comp_iff -> MeasurableEquiv.measurable_comp_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] [_inst_3 : MeasurableSpace.{u3} γ] {f : β -> γ} (e : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2), Iff (Measurable.{u1, u3} α γ _inst_1 _inst_3 (Function.comp.{succ u1, succ u2, succ u3} α β γ f (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) (MeasurableEquiv.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) e))) (Measurable.{u2, u3} β γ _inst_2 _inst_3 f)
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u1}} [_inst_1 : MeasurableSpace.{u3} α] [_inst_2 : MeasurableSpace.{u2} β] [_inst_3 : MeasurableSpace.{u1} γ] {f : β -> γ} (e : MeasurableEquiv.{u3, u2} α β _inst_1 _inst_2), Iff (Measurable.{u3, u1} α γ _inst_1 _inst_3 (Function.comp.{succ u3, succ u2, succ u1} α β γ f (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (MeasurableEquiv.{u3, u2} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u3) (succ u2), succ u3, succ u2} (MeasurableEquiv.{u3, u2} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u3) (succ u2), succ u3, succ u2} (MeasurableEquiv.{u3, u2} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLike.{u3, u2} α β _inst_1 _inst_2))) e))) (Measurable.{u2, u1} β γ _inst_2 _inst_3 f)
-Case conversion may be inaccurate. Consider using '#align measurable_equiv.measurable_comp_iff MeasurableEquiv.measurable_comp_iffₓ'. -/
 protected theorem measurable_comp_iff {f : β → γ} (e : α ≃ᵐ β) :
     Measurable (f ∘ e) ↔ Measurable f :=
   Iff.intro
@@ -2295,12 +1605,6 @@ def piCongrRight (e : ∀ a, π a ≃ᵐ π' a) : (∀ a, π a) ≃ᵐ ∀ a, π
 #align measurable_equiv.Pi_congr_right MeasurableEquiv.piCongrRight
 -/
 
-/- warning: measurable_equiv.pi_measurable_equiv_tprod -> MeasurableEquiv.piMeasurableEquivTProd is a dubious translation:
-lean 3 declaration is
-  forall {δ' : Type.{u_5}} {π : δ' -> Type.{u_7}} [_inst_5 : forall (x : δ'), MeasurableSpace.{u_7} (π x)] [_inst_7 : DecidableEq.{succ u_5} δ'] {l : List.{u_5} δ'}, (List.Nodup.{u_5} δ' l) -> (forall (i : δ'), Membership.Mem.{u_5, u_5} δ' (List.{u_5} δ') (List.hasMem.{u_5} δ') i l) -> (MeasurableEquiv.{max u_5 u_7, max u_7 u_1} (forall (i : δ'), π i) (List.TProd.{u_5, u_7, u_1} δ' π l) (MeasurableSpace.pi.{u_5, u_7} δ' (fun (i : δ') => π i) (fun (a : δ') => _inst_5 a)) (TProd.instMeasurableSpace.{u_5, u_7, u_1} δ' π (fun (a : δ') => _inst_5 a) l))
-but is expected to have type
-  forall {δ' : Type.{u_1}} {π : δ' -> Type.{u_2}} [_inst_5 : forall (x : δ'), MeasurableSpace.{u_2} (π x)] [_inst_7 : DecidableEq.{succ u_1} δ'] {l : List.{u_1} δ'}, (List.Nodup.{u_1} δ' l) -> (forall (i : δ'), Membership.mem.{u_1, u_1} δ' (List.{u_1} δ') (List.instMembershipList.{u_1} δ') i l) -> (MeasurableEquiv.{max u_1 u_2, u_2} (forall (i : δ'), π i) (List.TProd.{u_1, u_2} δ' π l) (MeasurableSpace.pi.{u_1, u_2} δ' (fun (i : δ') => π i) (fun (a : δ') => _inst_5 a)) (TProd.instMeasurableSpace.{u_1, u_2} δ' π (fun (a : δ') => _inst_5 a) l))
-Case conversion may be inaccurate. Consider using '#align measurable_equiv.pi_measurable_equiv_tprod MeasurableEquiv.piMeasurableEquivTProdₓ'. -/
 /-- Pi-types are measurably equivalent to iterated products. -/
 @[simps (config := { fullyApplied := false })]
 def piMeasurableEquivTProd [DecidableEq δ'] {l : List δ'} (hnd : l.Nodup) (h : ∀ i, i ∈ l) :
@@ -2322,12 +1626,6 @@ def funUnique (α β : Type _) [Unique α] [MeasurableSpace β] : (α → β) 
 #align measurable_equiv.fun_unique MeasurableEquiv.funUnique
 -/
 
-/- warning: measurable_equiv.pi_fin_two -> MeasurableEquiv.piFinTwo is a dubious translation:
-lean 3 declaration is
-  forall (α : (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> Type.{u1}) [_inst_7 : forall (i : Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))), MeasurableSpace.{u1} (α i)], MeasurableEquiv.{u1, u1} (forall (i : Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))), α i) (Prod.{u1, u1} (α (OfNat.ofNat.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 0 (OfNat.mk.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 0 (Zero.zero.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (Fin.hasZeroOfNeZero (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)) MeasurableEquiv.piFinTwo._proof_1))))) (α (OfNat.ofNat.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 1 (OfNat.mk.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 1 (One.one.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (Fin.hasOneOfNeZero (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)) MeasurableEquiv.piFinTwo._proof_2)))))) (MeasurableSpace.pi.{0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (fun (i : Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) => α i) (fun (a : Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) => _inst_7 a)) (Prod.instMeasurableSpace.{u1, u1} (α (OfNat.ofNat.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 0 (OfNat.mk.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 0 (Zero.zero.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (Fin.hasZeroOfNeZero (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)) MeasurableEquiv.piFinTwo._proof_1))))) (α (OfNat.ofNat.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 1 (OfNat.mk.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 1 (One.one.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (Fin.hasOneOfNeZero (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)) MeasurableEquiv.piFinTwo._proof_2))))) (_inst_7 (OfNat.ofNat.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 0 (OfNat.mk.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 0 (Zero.zero.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (Fin.hasZeroOfNeZero (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)) MeasurableEquiv.piFinTwo._proof_1))))) (_inst_7 (OfNat.ofNat.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 1 (OfNat.mk.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 1 (One.one.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (Fin.hasOneOfNeZero (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)) MeasurableEquiv.piFinTwo._proof_2))))))
-but is expected to have type
-  forall (α : (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> Type.{u1}) [_inst_7 : forall (i : Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))), MeasurableSpace.{u1} (α i)], MeasurableEquiv.{u1, u1} (forall (i : Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))), α i) (Prod.{u1, u1} (α (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (α (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))))) (MeasurableSpace.pi.{0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (fun (i : Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) => α i) (fun (a : Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) => _inst_7 a)) (Prod.instMeasurableSpace.{u1, u1} (α (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (α (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (_inst_7 (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (_inst_7 (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))))
-Case conversion may be inaccurate. Consider using '#align measurable_equiv.pi_fin_two MeasurableEquiv.piFinTwoₓ'. -/
 /-- The space `Π i : fin 2, α i` is measurably equivalent to `α 0 × α 1`. -/
 @[simps (config := { fullyApplied := false })]
 def piFinTwo (α : Fin 2 → Type _) [∀ i, MeasurableSpace (α i)] : (∀ i, α i) ≃ᵐ α 0 × α 1
@@ -2345,9 +1643,6 @@ def finTwoArrow : (Fin 2 → α) ≃ᵐ α × α :=
 #align measurable_equiv.fin_two_arrow MeasurableEquiv.finTwoArrow
 -/
 
-/- warning: measurable_equiv.pi_fin_succ_above_equiv -> MeasurableEquiv.piFinSuccAboveEquiv is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align measurable_equiv.pi_fin_succ_above_equiv MeasurableEquiv.piFinSuccAboveEquivₓ'. -/
 /-- Measurable equivalence between `Π j : fin (n + 1), α j` and
 `α i × Π j : fin n, α (fin.succ_above i j)`. -/
 @[simps (config := { fullyApplied := false })]
@@ -2377,12 +1672,6 @@ def piEquivPiSubtypeProd (p : δ' → Prop) [DecidablePred p] :
 #align measurable_equiv.pi_equiv_pi_subtype_prod MeasurableEquiv.piEquivPiSubtypeProd
 -/
 
-/- warning: measurable_equiv.sum_compl -> MeasurableEquiv.sumCompl is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {s : Set.{u1} α} [_inst_7 : DecidablePred.{succ u1} α s], (MeasurableSet.{u1} α _inst_1 s) -> (MeasurableEquiv.{u1, u1} (Sum.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s))) α (Sum.instMeasurableSpace.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) (Subtype.instMeasurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) _inst_1) (Subtype.instMeasurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) _inst_1)) _inst_1)
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {s : Set.{u1} α} [_inst_7 : DecidablePred.{succ u1} α (fun (x._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.17408 : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.17408 s)], (MeasurableSet.{u1} α _inst_1 s) -> (MeasurableEquiv.{u1, u1} (Sum.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s))) α (Sum.instMeasurableSpace.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)) (Subtype.instMeasurableSpace.{u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) _inst_1) (Subtype.instMeasurableSpace.{u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)) _inst_1)) _inst_1)
-Case conversion may be inaccurate. Consider using '#align measurable_equiv.sum_compl MeasurableEquiv.sumComplₓ'. -/
 /-- If `s` is a measurable set in a measurable space, that space is equivalent
 to the sum of `s` and `sᶜ`.-/
 def sumCompl {s : Set α} [DecidablePred s] (hs : MeasurableSet s) : Sum s (sᶜ : Set α) ≃ᵐ α
@@ -2432,12 +1721,6 @@ theorem of_measurable_inverse_on_range {g : range f → α} (hf₁ : Measurable
 #align measurable_embedding.of_measurable_inverse_on_range MeasurableEmbedding.of_measurable_inverse_on_range
 -/
 
-/- warning: measurable_embedding.of_measurable_inverse -> MeasurableEmbedding.of_measurable_inverse is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] {f : α -> β} {g : β -> α}, (Measurable.{u1, u2} α β _inst_1 _inst_2 f) -> (MeasurableSet.{u2} β _inst_2 (Set.range.{u2, succ u1} β α f)) -> (Measurable.{u2, u1} β α _inst_2 _inst_1 g) -> (Function.LeftInverse.{succ u1, succ u2} α β g f) -> (MeasurableEmbedding.{u1, u2} α β _inst_1 _inst_2 f)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] {f : α -> β} {g : β -> α}, (Measurable.{u2, u1} α β _inst_1 _inst_2 f) -> (MeasurableSet.{u1} β _inst_2 (Set.range.{u1, succ u2} β α f)) -> (Measurable.{u1, u2} β α _inst_2 _inst_1 g) -> (Function.LeftInverse.{succ u2, succ u1} α β g f) -> (MeasurableEmbedding.{u2, u1} α β _inst_1 _inst_2 f)
-Case conversion may be inaccurate. Consider using '#align measurable_embedding.of_measurable_inverse MeasurableEmbedding.of_measurable_inverseₓ'. -/
 theorem of_measurable_inverse (hf₁ : Measurable f) (hf₂ : MeasurableSet (range f))
     (hg : Measurable g) (H : LeftInverse g f) : MeasurableEmbedding f :=
   of_measurable_inverse_on_range hf₁ hf₂ (hg.comp measurable_subtype_coe) H
@@ -2573,43 +1856,19 @@ class IsMeasurablyGenerated (f : Filter α) : Prop where
 #align filter.is_measurably_generated Filter.IsMeasurablyGenerated
 -/
 
-/- warning: filter.is_measurably_generated_bot -> Filter.isMeasurablyGenerated_bot is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α], Filter.IsMeasurablyGenerated.{u1} α _inst_1 (Bot.bot.{u1} (Filter.{u1} α) (CompleteLattice.toHasBot.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α)))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α], Filter.IsMeasurablyGenerated.{u1} α _inst_1 (Bot.bot.{u1} (Filter.{u1} α) (CompleteLattice.toBot.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)))
-Case conversion may be inaccurate. Consider using '#align filter.is_measurably_generated_bot Filter.isMeasurablyGenerated_botₓ'. -/
 instance isMeasurablyGenerated_bot : IsMeasurablyGenerated (⊥ : Filter α) :=
   ⟨fun _ _ => ⟨∅, mem_bot, MeasurableSet.empty, empty_subset _⟩⟩
 #align filter.is_measurably_generated_bot Filter.isMeasurablyGenerated_bot
 
-/- warning: filter.is_measurably_generated_top -> Filter.isMeasurablyGenerated_top is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α], Filter.IsMeasurablyGenerated.{u1} α _inst_1 (Top.top.{u1} (Filter.{u1} α) (Filter.hasTop.{u1} α))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α], Filter.IsMeasurablyGenerated.{u1} α _inst_1 (Top.top.{u1} (Filter.{u1} α) (Filter.instTopFilter.{u1} α))
-Case conversion may be inaccurate. Consider using '#align filter.is_measurably_generated_top Filter.isMeasurablyGenerated_topₓ'. -/
 instance isMeasurablyGenerated_top : IsMeasurablyGenerated (⊤ : Filter α) :=
   ⟨fun s hs => ⟨univ, univ_mem, MeasurableSet.univ, fun x _ => hs x⟩⟩
 #align filter.is_measurably_generated_top Filter.isMeasurablyGenerated_top
 
-/- warning: filter.eventually.exists_measurable_mem -> Filter.Eventually.exists_measurable_mem is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {f : Filter.{u1} α} [_inst_2 : Filter.IsMeasurablyGenerated.{u1} α _inst_1 f] {p : α -> Prop}, (Filter.Eventually.{u1} α (fun (x : α) => p x) f) -> (Exists.{succ u1} (Set.{u1} α) (fun (s : Set.{u1} α) => Exists.{0} (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) s f) (fun (H : Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) s f) => And (MeasurableSet.{u1} α _inst_1 s) (forall (x : α), (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) -> (p x)))))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {f : Filter.{u1} α} [_inst_2 : Filter.IsMeasurablyGenerated.{u1} α _inst_1 f] {p : α -> Prop}, (Filter.Eventually.{u1} α (fun (x : α) => p x) f) -> (Exists.{succ u1} (Set.{u1} α) (fun (s : Set.{u1} α) => And (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) s f) (And (MeasurableSet.{u1} α _inst_1 s) (forall (x : α), (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) -> (p x)))))
-Case conversion may be inaccurate. Consider using '#align filter.eventually.exists_measurable_mem Filter.Eventually.exists_measurable_memₓ'. -/
 theorem Eventually.exists_measurable_mem {f : Filter α} [IsMeasurablyGenerated f] {p : α → Prop}
     (h : ∀ᶠ x in f, p x) : ∃ s ∈ f, MeasurableSet s ∧ ∀ x ∈ s, p x :=
   IsMeasurablyGenerated.exists_measurable_subset h
 #align filter.eventually.exists_measurable_mem Filter.Eventually.exists_measurable_mem
 
-/- warning: filter.eventually.exists_measurable_mem_of_small_sets -> Filter.Eventually.exists_measurable_mem_of_smallSets is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {f : Filter.{u1} α} [_inst_2 : Filter.IsMeasurablyGenerated.{u1} α _inst_1 f] {p : (Set.{u1} α) -> Prop}, (Filter.Eventually.{u1} (Set.{u1} α) (fun (s : Set.{u1} α) => p s) (Filter.smallSets.{u1} α f)) -> (Exists.{succ u1} (Set.{u1} α) (fun (s : Set.{u1} α) => Exists.{0} (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) s f) (fun (H : Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) s f) => And (MeasurableSet.{u1} α _inst_1 s) (p s))))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {f : Filter.{u1} α} [_inst_2 : Filter.IsMeasurablyGenerated.{u1} α _inst_1 f] {p : (Set.{u1} α) -> Prop}, (Filter.Eventually.{u1} (Set.{u1} α) (fun (s : Set.{u1} α) => p s) (Filter.smallSets.{u1} α f)) -> (Exists.{succ u1} (Set.{u1} α) (fun (s : Set.{u1} α) => And (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) s f) (And (MeasurableSet.{u1} α _inst_1 s) (p s))))
-Case conversion may be inaccurate. Consider using '#align filter.eventually.exists_measurable_mem_of_small_sets Filter.Eventually.exists_measurable_mem_of_smallSetsₓ'. -/
 theorem Eventually.exists_measurable_mem_of_smallSets {f : Filter α} [IsMeasurablyGenerated f]
     {p : Set α → Prop} (h : ∀ᶠ s in f.smallSets, p s) : ∃ s ∈ f, MeasurableSet s ∧ p s :=
   let ⟨s, hsf, hs⟩ := eventually_smallSets.1 h
@@ -2617,12 +1876,6 @@ theorem Eventually.exists_measurable_mem_of_smallSets {f : Filter α} [IsMeasura
   ⟨t, htf, htm, hs t hts⟩
 #align filter.eventually.exists_measurable_mem_of_small_sets Filter.Eventually.exists_measurable_mem_of_smallSets
 
-/- warning: filter.inf_is_measurably_generated -> Filter.inf_isMeasurablyGenerated is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] (f : Filter.{u1} α) (g : Filter.{u1} α) [_inst_2 : Filter.IsMeasurablyGenerated.{u1} α _inst_1 f] [_inst_3 : Filter.IsMeasurablyGenerated.{u1} α _inst_1 g], Filter.IsMeasurablyGenerated.{u1} α _inst_1 (Inf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) f g)
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] (f : Filter.{u1} α) (g : Filter.{u1} α) [_inst_2 : Filter.IsMeasurablyGenerated.{u1} α _inst_1 f] [_inst_3 : Filter.IsMeasurablyGenerated.{u1} α _inst_1 g], Filter.IsMeasurablyGenerated.{u1} α _inst_1 (Inf.inf.{u1} (Filter.{u1} α) (Filter.instInfFilter.{u1} α) f g)
-Case conversion may be inaccurate. Consider using '#align filter.inf_is_measurably_generated Filter.inf_isMeasurablyGeneratedₓ'. -/
 instance inf_isMeasurablyGenerated (f g : Filter α) [IsMeasurablyGenerated f]
     [IsMeasurablyGenerated g] : IsMeasurablyGenerated (f ⊓ g) :=
   by
@@ -2650,12 +1903,6 @@ alias principal_is_measurably_generated_iff ↔
   _ _root_.measurable_set.principal_is_measurably_generated
 #align measurable_set.principal_is_measurably_generated MeasurableSet.principal_isMeasurablyGenerated
 
-/- warning: filter.infi_is_measurably_generated -> Filter.iInf_isMeasurablyGenerated is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} [_inst_1 : MeasurableSpace.{u1} α] {f : ι -> (Filter.{u1} α)} [_inst_2 : forall (i : ι), Filter.IsMeasurablyGenerated.{u1} α _inst_1 (f i)], Filter.IsMeasurablyGenerated.{u1} α _inst_1 (iInf.{u1, u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => f i))
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} [_inst_1 : MeasurableSpace.{u2} α] {f : ι -> (Filter.{u2} α)} [_inst_2 : forall (i : ι), Filter.IsMeasurablyGenerated.{u2} α _inst_1 (f i)], Filter.IsMeasurablyGenerated.{u2} α _inst_1 (iInf.{u2, u1} (Filter.{u2} α) (ConditionallyCompleteLattice.toInfSet.{u2} (Filter.{u2} α) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Filter.{u2} α) (Filter.instCompleteLatticeFilter.{u2} α))) ι (fun (i : ι) => f i))
-Case conversion may be inaccurate. Consider using '#align filter.infi_is_measurably_generated Filter.iInf_isMeasurablyGeneratedₓ'. -/
 instance iInf_isMeasurablyGenerated {f : ι → Filter α} [∀ i, IsMeasurablyGenerated (f i)] :
     IsMeasurablyGenerated (⨅ i, f i) :=
   by
@@ -2734,12 +1981,6 @@ theorem coe_insert [MeasurableSingletonClass α] (a : α)
 instance : HasCompl (Subtype (MeasurableSet : Set α → Prop)) :=
   ⟨fun x => ⟨xᶜ, x.Prop.compl⟩⟩
 
-/- warning: measurable_set.coe_compl -> MeasurableSet.coe_compl is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] (s : Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)), Eq.{succ u1} (Set.{u1} α) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeBase.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeSubtype.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => MeasurableSet.{u1} α _inst_1 x))))) (HasCompl.compl.{u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (MeasurableSet.Subtype.instHasCompl.{u1} α _inst_1) s)) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeBase.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeSubtype.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => MeasurableSet.{u1} α _inst_1 x))))) s))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] (s : Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)), Eq.{succ u1} (Set.{u1} α) (Subtype.val.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1) (HasCompl.compl.{u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (MeasurableSet.Subtype.instHasCompl.{u1} α _inst_1) s)) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) (Subtype.val.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1) s))
-Case conversion may be inaccurate. Consider using '#align measurable_set.coe_compl MeasurableSet.coe_complₓ'. -/
 @[simp]
 theorem coe_compl (s : Subtype (MeasurableSet : Set α → Prop)) : ↑(sᶜ) = (sᶜ : Set α) :=
   rfl
@@ -2748,12 +1989,6 @@ theorem coe_compl (s : Subtype (MeasurableSet : Set α → Prop)) : ↑(sᶜ) =
 instance : Union (Subtype (MeasurableSet : Set α → Prop)) :=
   ⟨fun x y => ⟨x ∪ y, x.Prop.union y.Prop⟩⟩
 
-/- warning: measurable_set.coe_union -> MeasurableSet.coe_union is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] (s : Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (t : Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)), Eq.{succ u1} (Set.{u1} α) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeBase.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeSubtype.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => MeasurableSet.{u1} α _inst_1 x))))) (Union.union.{u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (MeasurableSet.Subtype.instUnion.{u1} α _inst_1) s t)) (Union.union.{u1} (Set.{u1} α) (Set.hasUnion.{u1} α) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeBase.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeSubtype.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => MeasurableSet.{u1} α _inst_1 x))))) s) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeBase.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeSubtype.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => MeasurableSet.{u1} α _inst_1 x))))) t))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] (s : Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (t : Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)), Eq.{succ u1} (Set.{u1} α) (Subtype.val.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1) (Union.union.{u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (MeasurableSet.Subtype.instUnion.{u1} α _inst_1) s t)) (Union.union.{u1} (Set.{u1} α) (Set.instUnionSet.{u1} α) (Subtype.val.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1) s) (Subtype.val.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1) t))
-Case conversion may be inaccurate. Consider using '#align measurable_set.coe_union MeasurableSet.coe_unionₓ'. -/
 @[simp]
 theorem coe_union (s t : Subtype (MeasurableSet : Set α → Prop)) : ↑(s ∪ t) = (s ∪ t : Set α) :=
   rfl
@@ -2762,12 +1997,6 @@ theorem coe_union (s t : Subtype (MeasurableSet : Set α → Prop)) : ↑(s ∪
 instance : Inter (Subtype (MeasurableSet : Set α → Prop)) :=
   ⟨fun x y => ⟨x ∩ y, x.Prop.inter y.Prop⟩⟩
 
-/- warning: measurable_set.coe_inter -> MeasurableSet.coe_inter is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] (s : Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (t : Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)), Eq.{succ u1} (Set.{u1} α) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeBase.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeSubtype.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => MeasurableSet.{u1} α _inst_1 x))))) (Inter.inter.{u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (MeasurableSet.Subtype.instInter.{u1} α _inst_1) s t)) (Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeBase.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeSubtype.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => MeasurableSet.{u1} α _inst_1 x))))) s) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeBase.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeSubtype.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => MeasurableSet.{u1} α _inst_1 x))))) t))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] (s : Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (t : Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)), Eq.{succ u1} (Set.{u1} α) (Subtype.val.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1) (Inter.inter.{u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (MeasurableSet.Subtype.instInter.{u1} α _inst_1) s t)) (Inter.inter.{u1} (Set.{u1} α) (Set.instInterSet.{u1} α) (Subtype.val.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1) s) (Subtype.val.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1) t))
-Case conversion may be inaccurate. Consider using '#align measurable_set.coe_inter MeasurableSet.coe_interₓ'. -/
 @[simp]
 theorem coe_inter (s t : Subtype (MeasurableSet : Set α → Prop)) : ↑(s ∩ t) = (s ∩ t : Set α) :=
   rfl
@@ -2776,12 +2005,6 @@ theorem coe_inter (s t : Subtype (MeasurableSet : Set α → Prop)) : ↑(s ∩
 instance : SDiff (Subtype (MeasurableSet : Set α → Prop)) :=
   ⟨fun x y => ⟨x \ y, x.Prop.diffₓ y.Prop⟩⟩
 
-/- warning: measurable_set.coe_sdiff -> MeasurableSet.coe_sdiff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] (s : Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (t : Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)), Eq.{succ u1} (Set.{u1} α) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeBase.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeSubtype.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => MeasurableSet.{u1} α _inst_1 x))))) (SDiff.sdiff.{u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (MeasurableSet.Subtype.instSDiff.{u1} α _inst_1) s t)) (SDiff.sdiff.{u1} (Set.{u1} α) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeBase.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeSubtype.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => MeasurableSet.{u1} α _inst_1 x))))) s) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeBase.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeSubtype.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => MeasurableSet.{u1} α _inst_1 x))))) t))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] (s : Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (t : Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)), Eq.{succ u1} (Set.{u1} α) (Subtype.val.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1) (SDiff.sdiff.{u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (MeasurableSet.Subtype.instSDiff.{u1} α _inst_1) s t)) (SDiff.sdiff.{u1} (Set.{u1} α) (Set.instSDiffSet.{u1} α) (Subtype.val.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1) s) (Subtype.val.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1) t))
-Case conversion may be inaccurate. Consider using '#align measurable_set.coe_sdiff MeasurableSet.coe_sdiffₓ'. -/
 @[simp]
 theorem coe_sdiff (s t : Subtype (MeasurableSet : Set α → Prop)) : ↑(s \ t) = (s \ t : Set α) :=
   rfl
@@ -2790,12 +2013,6 @@ theorem coe_sdiff (s t : Subtype (MeasurableSet : Set α → Prop)) : ↑(s \ t)
 instance : Bot (Subtype (MeasurableSet : Set α → Prop)) :=
   ⟨⟨⊥, MeasurableSet.empty⟩⟩
 
-/- warning: measurable_set.coe_bot -> MeasurableSet.coe_bot is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α], Eq.{succ u1} (Set.{u1} α) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeBase.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeSubtype.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => MeasurableSet.{u1} α _inst_1 x))))) (Bot.bot.{u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (MeasurableSet.Subtype.instBot.{u1} α _inst_1))) (Bot.bot.{u1} (Set.{u1} α) (CompleteLattice.toHasBot.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α))))))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α], Eq.{succ u1} (Set.{u1} α) (Subtype.val.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1) (Bot.bot.{u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (MeasurableSet.Subtype.instBot.{u1} α _inst_1))) (Bot.bot.{u1} (Set.{u1} α) (CompleteLattice.toBot.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α))))))
-Case conversion may be inaccurate. Consider using '#align measurable_set.coe_bot MeasurableSet.coe_botₓ'. -/
 @[simp]
 theorem coe_bot : ↑(⊥ : Subtype (MeasurableSet : Set α → Prop)) = (⊥ : Set α) :=
   rfl
@@ -2804,12 +2021,6 @@ theorem coe_bot : ↑(⊥ : Subtype (MeasurableSet : Set α → Prop)) = (⊥ :
 instance : Top (Subtype (MeasurableSet : Set α → Prop)) :=
   ⟨⟨⊤, MeasurableSet.univ⟩⟩
 
-/- warning: measurable_set.coe_top -> MeasurableSet.coe_top is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α], Eq.{succ u1} (Set.{u1} α) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeBase.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeSubtype.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => MeasurableSet.{u1} α _inst_1 x))))) (Top.top.{u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (MeasurableSet.Subtype.instTop.{u1} α _inst_1))) (Top.top.{u1} (Set.{u1} α) (CompleteLattice.toHasTop.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α))))))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α], Eq.{succ u1} (Set.{u1} α) (Subtype.val.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1) (Top.top.{u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (MeasurableSet.Subtype.instTop.{u1} α _inst_1))) (Top.top.{u1} (Set.{u1} α) (CompleteLattice.toTop.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α))))))
-Case conversion may be inaccurate. Consider using '#align measurable_set.coe_top MeasurableSet.coe_topₓ'. -/
 @[simp]
 theorem coe_top : ↑(⊤ : Subtype (MeasurableSet : Set α → Prop)) = (⊤ : Set α) :=
   rfl
@@ -2846,12 +2057,6 @@ instance : BooleanAlgebra (Subtype (MeasurableSet : Set α → Prop)) :=
     top_le_sup_compl := fun a => BooleanAlgebra.top_le_sup_compl (a : Set α)
     sdiff_eq := fun a b => Subtype.eq <| sdiff_eq }
 
-/- warning: measurable_set.measurable_set_blimsup -> MeasurableSet.measurableSet_blimsup is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {s : Nat -> (Set.{u1} α)} {p : Nat -> Prop}, (forall (n : Nat), (p n) -> (MeasurableSet.{u1} α _inst_1 (s n))) -> (MeasurableSet.{u1} α _inst_1 (Filter.blimsup.{u1, 0} (Set.{u1} α) Nat (CompleteLattice.toConditionallyCompleteLattice.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α))))) s (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)))) p))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {s : Nat -> (Set.{u1} α)} {p : Nat -> Prop}, (forall (n : Nat), (p n) -> (MeasurableSet.{u1} α _inst_1 (s n))) -> (MeasurableSet.{u1} α _inst_1 (Filter.blimsup.{u1, 0} (Set.{u1} α) Nat (CompleteLattice.toConditionallyCompleteLattice.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α))))) s (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring))) p))
-Case conversion may be inaccurate. Consider using '#align measurable_set.measurable_set_blimsup MeasurableSet.measurableSet_blimsupₓ'. -/
 @[measurability]
 theorem measurableSet_blimsup {s : ℕ → Set α} {p : ℕ → Prop} (h : ∀ n, p n → MeasurableSet (s n)) :
     MeasurableSet <| Filter.blimsup s Filter.atTop p :=
@@ -2862,12 +2067,6 @@ theorem measurableSet_blimsup {s : ℕ → Set α} {p : ℕ → Prop} (h : ∀ n
       MeasurableSet.iUnion fun m => MeasurableSet.iUnion fun hm => h m hm.1
 #align measurable_set.measurable_set_blimsup MeasurableSet.measurableSet_blimsup
 
-/- warning: measurable_set.measurable_set_bliminf -> MeasurableSet.measurableSet_bliminf is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {s : Nat -> (Set.{u1} α)} {p : Nat -> Prop}, (forall (n : Nat), (p n) -> (MeasurableSet.{u1} α _inst_1 (s n))) -> (MeasurableSet.{u1} α _inst_1 (Filter.bliminf.{u1, 0} (Set.{u1} α) Nat (CompleteLattice.toConditionallyCompleteLattice.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α))))) s (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)))) p))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {s : Nat -> (Set.{u1} α)} {p : Nat -> Prop}, (forall (n : Nat), (p n) -> (MeasurableSet.{u1} α _inst_1 (s n))) -> (MeasurableSet.{u1} α _inst_1 (Filter.bliminf.{u1, 0} (Set.{u1} α) Nat (CompleteLattice.toConditionallyCompleteLattice.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α))))) s (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring))) p))
-Case conversion may be inaccurate. Consider using '#align measurable_set.measurable_set_bliminf MeasurableSet.measurableSet_bliminfₓ'. -/
 @[measurability]
 theorem measurableSet_bliminf {s : ℕ → Set α} {p : ℕ → Prop} (h : ∀ n, p n → MeasurableSet (s n)) :
     MeasurableSet <| Filter.bliminf s Filter.atTop p :=
@@ -2878,12 +2077,6 @@ theorem measurableSet_bliminf {s : ℕ → Set α} {p : ℕ → Prop} (h : ∀ n
       MeasurableSet.iInter fun m => MeasurableSet.iInter fun hm => h m hm.1
 #align measurable_set.measurable_set_bliminf MeasurableSet.measurableSet_bliminf
 
-/- warning: measurable_set.measurable_set_limsup -> MeasurableSet.measurableSet_limsup is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {s : Nat -> (Set.{u1} α)}, (forall (n : Nat), MeasurableSet.{u1} α _inst_1 (s n)) -> (MeasurableSet.{u1} α _inst_1 (Filter.limsup.{u1, 0} (Set.{u1} α) Nat (CompleteLattice.toConditionallyCompleteLattice.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α))))) s (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {s : Nat -> (Set.{u1} α)}, (forall (n : Nat), MeasurableSet.{u1} α _inst_1 (s n)) -> (MeasurableSet.{u1} α _inst_1 (Filter.limsup.{u1, 0} (Set.{u1} α) Nat (CompleteLattice.toConditionallyCompleteLattice.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α))))) s (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)))))
-Case conversion may be inaccurate. Consider using '#align measurable_set.measurable_set_limsup MeasurableSet.measurableSet_limsupₓ'. -/
 @[measurability]
 theorem measurableSet_limsup {s : ℕ → Set α} (hs : ∀ n, MeasurableSet <| s n) :
     MeasurableSet <| Filter.limsup s Filter.atTop :=
@@ -2892,12 +2085,6 @@ theorem measurableSet_limsup {s : ℕ → Set α} (hs : ∀ n, MeasurableSet <|
   simp
 #align measurable_set.measurable_set_limsup MeasurableSet.measurableSet_limsup
 
-/- warning: measurable_set.measurable_set_liminf -> MeasurableSet.measurableSet_liminf is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {s : Nat -> (Set.{u1} α)}, (forall (n : Nat), MeasurableSet.{u1} α _inst_1 (s n)) -> (MeasurableSet.{u1} α _inst_1 (Filter.liminf.{u1, 0} (Set.{u1} α) Nat (CompleteLattice.toConditionallyCompleteLattice.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α))))) s (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {s : Nat -> (Set.{u1} α)}, (forall (n : Nat), MeasurableSet.{u1} α _inst_1 (s n)) -> (MeasurableSet.{u1} α _inst_1 (Filter.liminf.{u1, 0} (Set.{u1} α) Nat (CompleteLattice.toConditionallyCompleteLattice.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α))))) s (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)))))
-Case conversion may be inaccurate. Consider using '#align measurable_set.measurable_set_liminf MeasurableSet.measurableSet_liminfₓ'. -/
 @[measurability]
 theorem measurableSet_liminf {s : ℕ → Set α} (hs : ∀ n, MeasurableSet <| s n) :
     MeasurableSet <| Filter.liminf s Filter.atTop :=
Diff
@@ -87,9 +87,7 @@ protected def map (f : α → β) (m : MeasurableSpace α) : MeasurableSpace β
   MeasurableSet' s := measurable_set[m] <| f ⁻¹' s
   measurable_set_empty := m.measurable_set_empty
   measurable_set_compl s hs := m.measurable_set_compl _ hs
-  measurable_set_iUnion f hf := by
-    rw [preimage_Union]
-    exact m.measurable_set_Union _ hf
+  measurable_set_iUnion f hf := by rw [preimage_Union]; exact m.measurable_set_Union _ hf
 #align measurable_space.map MeasurableSpace.map
 -/
 
@@ -463,8 +461,7 @@ theorem measurable_const' {f : β → α} (hf : ∀ x y, f x = f y) : Measurable
   by
   cases isEmpty_or_nonempty β
   · exact measurable_of_empty f
-  · convert measurable_const
-    exact funext fun x => hf x h.some
+  · convert measurable_const; exact funext fun x => hf x h.some
 #align measurable_const' measurable_const'
 
 /- warning: measurable_nat_cast -> measurable_natCast is a dubious translation:
@@ -598,9 +595,7 @@ theorem Measurable.measurable_of_countable_ne [MeasurableSingletonClass α] (hf
     simp [← inter_union_distrib_left]
   rw [this]
   apply MeasurableSet.union (h.mono (inter_subset_right _ _)).MeasurableSet
-  have : g ⁻¹' t ∩ { x : α | f x = g x } = f ⁻¹' t ∩ { x : α | f x = g x } :=
-    by
-    ext x
+  have : g ⁻¹' t ∩ { x : α | f x = g x } = f ⁻¹' t ∩ { x : α | f x = g x } := by ext x;
     simp (config := { contextual := true })
   rw [this]
   exact (hf ht).inter h.measurable_set.of_compl
@@ -1021,13 +1016,8 @@ Case conversion may be inaccurate. Consider using '#align measurable.prod Measur
 theorem Measurable.prod {f : α → β × γ} (hf₁ : Measurable fun a => (f a).1)
     (hf₂ : Measurable fun a => (f a).2) : Measurable f :=
   Measurable.of_le_map <|
-    sup_le
-      (by
-        rw [MeasurableSpace.comap_le_iff_le_map, MeasurableSpace.map_comp]
-        exact hf₁)
-      (by
-        rw [MeasurableSpace.comap_le_iff_le_map, MeasurableSpace.map_comp]
-        exact hf₂)
+    sup_le (by rw [MeasurableSpace.comap_le_iff_le_map, MeasurableSpace.map_comp]; exact hf₁)
+      (by rw [MeasurableSpace.comap_le_iff_le_map, MeasurableSpace.map_comp]; exact hf₂)
 #align measurable.prod Measurable.prod
 
 /- warning: measurable.prod_mk -> Measurable.prod_mk is a dubious translation:
@@ -1126,10 +1116,7 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align measurable_swap_iff measurable_swap_iffₓ'. -/
 theorem measurable_swap_iff {mγ : MeasurableSpace γ} {f : α × β → γ} :
     Measurable (f ∘ Prod.swap) ↔ Measurable f :=
-  ⟨fun hf => by
-    convert hf.comp measurable_swap
-    ext ⟨x, y⟩
-    rfl, fun hf => hf.comp measurable_swap⟩
+  ⟨fun hf => by convert hf.comp measurable_swap; ext ⟨x, y⟩; rfl, fun hf => hf.comp measurable_swap⟩
 #align measurable_swap_iff measurable_swap_iff
 
 /- warning: measurable_set.prod -> MeasurableSet.prod is a dubious translation:
@@ -1184,10 +1171,7 @@ theorem measurableSet_prod {s : Set α} {t : Set β} :
 #print measurableSet_swap_iff /-
 theorem measurableSet_swap_iff {s : Set (α × β)} :
     MeasurableSet (Prod.swap ⁻¹' s) ↔ MeasurableSet s :=
-  ⟨fun hs => by
-    convert measurable_swap hs
-    ext ⟨x, y⟩
-    rfl, fun hs => measurable_swap hs⟩
+  ⟨fun hs => by convert measurable_swap hs; ext ⟨x, y⟩; rfl, fun hs => measurable_swap hs⟩
 #align measurable_set_swap_iff measurableSet_swap_iff
 -/
 
@@ -1258,9 +1242,7 @@ theorem exists_measurable_piecewise_nat {m : MeasurableSpace α} (t : ℕ → Se
     have : x ∈ t (Nat.find (P x)) :=
       by
       have B : x ∈ t (Nat.find (P x)) ∪ (⋃ k, t k)ᶜ := Nat.find_spec (P x)
-      have B' : (∀ i : ℕ, x ∉ t i) ↔ False :=
-        by
-        simp only [iff_false_iff, not_forall, not_not_mem]
+      have B' : (∀ i : ℕ, x ∉ t i) ↔ False := by simp only [iff_false_iff, not_forall, not_not_mem];
         exact ⟨n, hx⟩
       simpa only [B', mem_union, mem_Inter, or_false_iff, compl_Union, mem_compl_iff] using B
     congr
@@ -1342,10 +1324,7 @@ theorem measurable_update (f : ∀ a : δ, π a) {a : δ} [DecidableEq δ] : Mea
   by
   apply measurable_pi_lambda
   intro x; by_cases hx : x = a
-  · cases hx
-    convert measurable_id
-    ext
-    simp
+  · cases hx; convert measurable_id; ext; simp
   simp_rw [update_noteq hx]; apply measurable_const
 #align measurable_update measurable_update
 
@@ -1359,9 +1338,7 @@ Case conversion may be inaccurate. Consider using '#align measurable_set.pi Meas
   lemmas, like `measurable_set.prod`. -/
 @[measurability]
 theorem MeasurableSet.pi {s : Set δ} {t : ∀ i : δ, Set (π i)} (hs : s.Countable)
-    (ht : ∀ i ∈ s, MeasurableSet (t i)) : MeasurableSet (s.pi t) :=
-  by
-  rw [pi_def]
+    (ht : ∀ i ∈ s, MeasurableSet (t i)) : MeasurableSet (s.pi t) := by rw [pi_def];
   exact MeasurableSet.biInter hs fun i hi => measurable_pi_apply _ (ht i hi)
 #align measurable_set.pi MeasurableSet.pi
 
@@ -1487,8 +1464,7 @@ theorem measurable_tProd_elim [DecidableEq δ] :
     ∀ {l : List δ} {i : δ} (hi : i ∈ l), Measurable fun v : TProd π l => v.elim hi
   | i::is, j, hj => by
     by_cases hji : j = i
-    · subst hji
-      simp [measurable_fst]
+    · subst hji; simp [measurable_fst]
     · rw [funext <| tprod.elim_of_ne _ hji]
       exact (measurable_tProd_elim (hj.resolve_left hji)).comp measurable_snd
 #align measurable_tprod_elim measurable_tProd_elim
@@ -1511,9 +1487,7 @@ but is expected to have type
   forall {δ : Type.{u_1}} {π : δ -> Type.{u_2}} [_inst_1 : forall (x : δ), MeasurableSpace.{u_2} (π x)] (l : List.{u_1} δ) {s : forall (i : δ), Set.{u_2} (π i)}, (forall (i : δ), MeasurableSet.{u_2} (π i) (_inst_1 i) (s i)) -> (MeasurableSet.{u_2} (List.TProd.{u_1, u_2} δ (fun (i : δ) => π i) l) (TProd.instMeasurableSpace.{u_1, u_2} δ (fun (i : δ) => π i) (fun (x : δ) => _inst_1 x) l) (Set.tprod.{u_1, u_2} δ (fun (i : δ) => π i) l s))
 Case conversion may be inaccurate. Consider using '#align measurable_set.tprod MeasurableSet.tProdₓ'. -/
 theorem MeasurableSet.tProd (l : List δ) {s : ∀ i, Set (π i)} (hs : ∀ i, MeasurableSet (s i)) :
-    MeasurableSet (Set.tprod l s) := by
-  induction' l with i l ih
-  exact MeasurableSet.univ
+    MeasurableSet (Set.tprod l s) := by induction' l with i l ih; exact MeasurableSet.univ;
   exact (hs i).Prod ih
 #align measurable_set.tprod MeasurableSet.tProd
 
@@ -1583,14 +1557,10 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align measurable_set.inl_image MeasurableSet.inl_imageₓ'. -/
 theorem MeasurableSet.inl_image {s : Set α} (hs : MeasurableSet s) :
     MeasurableSet (Sum.inl '' s : Set (Sum α β)) :=
-  ⟨show MeasurableSet (Sum.inl ⁻¹' _) by
-      rwa [preimage_image_eq]
-      exact fun a b => Sum.inl.inj,
+  ⟨show MeasurableSet (Sum.inl ⁻¹' _) by rwa [preimage_image_eq]; exact fun a b => Sum.inl.inj,
     have : Sum.inr ⁻¹' (Sum.inl '' s : Set (Sum α β)) = ∅ :=
       eq_empty_of_subset_empty fun x ⟨y, hy, Eq⟩ => by contradiction
-    show MeasurableSet (Sum.inr ⁻¹' _) by
-      rw [this]
-      exact MeasurableSet.empty⟩
+    show MeasurableSet (Sum.inr ⁻¹' _) by rw [this]; exact MeasurableSet.empty⟩
 #align measurable_set.inl_image MeasurableSet.inl_image
 
 /- warning: measurable_set_inr_image -> measurableSet_inr_image is a dubious translation:
@@ -1603,12 +1573,8 @@ theorem measurableSet_inr_image {s : Set β} (hs : MeasurableSet s) :
     MeasurableSet (Sum.inr '' s : Set (Sum α β)) :=
   ⟨have : Sum.inl ⁻¹' (Sum.inr '' s : Set (Sum α β)) = ∅ :=
       eq_empty_of_subset_empty fun x ⟨y, hy, Eq⟩ => by contradiction
-    show MeasurableSet (Sum.inl ⁻¹' _) by
-      rw [this]
-      exact MeasurableSet.empty,
-    show MeasurableSet (Sum.inr ⁻¹' _) by
-      rwa [preimage_image_eq]
-      exact fun a b => Sum.inr.inj⟩
+    show MeasurableSet (Sum.inl ⁻¹' _) by rw [this]; exact MeasurableSet.empty,
+    show MeasurableSet (Sum.inr ⁻¹' _) by rwa [preimage_image_eq]; exact fun a b => Sum.inr.inj⟩
 #align measurable_set_inr_image measurableSet_inr_image
 
 omit m
@@ -1620,9 +1586,7 @@ but is expected to have type
   forall {α : Type.{u2}} {β : Type.{u1}} {mβ : MeasurableSpace.{u1} β} [_inst_1 : MeasurableSpace.{u2} α], MeasurableSet.{max u2 u1} (Sum.{u2, u1} α β) (Sum.instMeasurableSpace.{u2, u1} α β _inst_1 mβ) (Set.range.{max u2 u1, succ u2} (Sum.{u2, u1} α β) α (Sum.inl.{u2, u1} α β))
 Case conversion may be inaccurate. Consider using '#align measurable_set_range_inl measurableSet_range_inlₓ'. -/
 theorem measurableSet_range_inl [MeasurableSpace α] :
-    MeasurableSet (range Sum.inl : Set (Sum α β)) :=
-  by
-  rw [← image_univ]
+    MeasurableSet (range Sum.inl : Set (Sum α β)) := by rw [← image_univ];
   exact measurable_set.univ.inl_image
 #align measurable_set_range_inl measurableSet_range_inl
 
@@ -1633,9 +1597,7 @@ but is expected to have type
   forall {α : Type.{u2}} {β : Type.{u1}} {mβ : MeasurableSpace.{u1} β} [_inst_1 : MeasurableSpace.{u2} α], MeasurableSet.{max u2 u1} (Sum.{u2, u1} α β) (Sum.instMeasurableSpace.{u2, u1} α β _inst_1 mβ) (Set.range.{max u2 u1, succ u1} (Sum.{u2, u1} α β) β (Sum.inr.{u2, u1} α β))
 Case conversion may be inaccurate. Consider using '#align measurable_set_range_inr measurableSet_range_inrₓ'. -/
 theorem measurableSet_range_inr [MeasurableSpace α] :
-    MeasurableSet (range Sum.inr : Set (Sum α β)) :=
-  by
-  rw [← image_univ]
+    MeasurableSet (range Sum.inr : Set (Sum α β)) := by rw [← image_univ];
   exact measurableSet_inr_image MeasurableSet.univ
 #align measurable_set_range_inr measurableSet_range_inr
 
@@ -1717,10 +1679,8 @@ lean 3 declaration is
 but is expected to have type
   forall {α : Type.{u2}} {β : Type.{u1}} {mα : MeasurableSpace.{u2} α} [_inst_1 : MeasurableSpace.{u1} β] {f : α -> β}, (MeasurableEmbedding.{u2, u1} α β mα _inst_1 f) -> (MeasurableSet.{u1} β _inst_1 (Set.range.{u1, succ u2} β α f))
 Case conversion may be inaccurate. Consider using '#align measurable_embedding.measurable_set_range MeasurableEmbedding.measurableSet_rangeₓ'. -/
-theorem measurableSet_range (hf : MeasurableEmbedding f) : MeasurableSet (range f) :=
-  by
-  rw [← image_univ]
-  exact hf.measurable_set_image' MeasurableSet.univ
+theorem measurableSet_range (hf : MeasurableEmbedding f) : MeasurableSet (range f) := by
+  rw [← image_univ]; exact hf.measurable_set_image' MeasurableSet.univ
 #align measurable_embedding.measurable_set_range MeasurableEmbedding.measurableSet_range
 
 /- warning: measurable_embedding.measurable_set_preimage -> MeasurableEmbedding.measurableSet_preimage is a dubious translation:
@@ -1759,8 +1719,7 @@ theorem measurable_extend (hf : MeasurableEmbedding f) {g : α → γ} {g' : β
   refine' measurable_of_restrict_of_restrict_compl hf.measurable_set_range _ _
   · rw [restrict_extend_range]
     simpa only [range_splitting] using hg.comp hf.measurable_range_splitting
-  · rw [restrict_extend_compl_range]
-    exact hg'.comp measurable_subtype_coe
+  · rw [restrict_extend_compl_range]; exact hg'.comp measurable_subtype_coe
 #align measurable_embedding.measurable_extend MeasurableEmbedding.measurable_extend
 
 /- warning: measurable_embedding.exists_measurable_extend -> MeasurableEmbedding.exists_measurable_extend is a dubious translation:
@@ -1924,10 +1883,8 @@ lean 3 declaration is
 but is expected to have type
   forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β], Function.Injective.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) (Equiv.{succ u2, succ u1} α β) (MeasurableEquiv.toEquiv.{u2, u1} α β _inst_1 _inst_2)
 Case conversion may be inaccurate. Consider using '#align measurable_equiv.to_equiv_injective MeasurableEquiv.toEquiv_injectiveₓ'. -/
-theorem toEquiv_injective : Injective (toEquiv : α ≃ᵐ β → α ≃ β) :=
-  by
-  rintro ⟨e₁, _, _⟩ ⟨e₂, _, _⟩ (rfl : e₁ = e₂)
-  rfl
+theorem toEquiv_injective : Injective (toEquiv : α ≃ᵐ β → α ≃ β) := by
+  rintro ⟨e₁, _, _⟩ ⟨e₂, _, _⟩ (rfl : e₁ = e₂); rfl
 #align measurable_equiv.to_equiv_injective MeasurableEquiv.toEquiv_injective
 
 /- warning: measurable_equiv.ext -> MeasurableEquiv.ext is a dubious translation:
@@ -2121,14 +2078,8 @@ protected theorem measurableEmbedding (e : α ≃ᵐ β) : MeasurableEmbedding e
 protected def cast {α β} [i₁ : MeasurableSpace α] [i₂ : MeasurableSpace β] (h : α = β)
     (hi : HEq i₁ i₂) : α ≃ᵐ β where
   toEquiv := Equiv.cast h
-  measurable_to_fun := by
-    subst h
-    subst hi
-    exact measurable_id
-  measurable_inv_fun := by
-    subst h
-    subst hi
-    exact measurable_id
+  measurable_to_fun := by subst h; subst hi; exact measurable_id
+  measurable_inv_fun := by subst h; subst hi; exact measurable_id
 #align measurable_equiv.cast MeasurableEquiv.cast
 -/
 
@@ -2246,14 +2197,10 @@ def Set.rangeInl : (range Sum.inl : Set (Sum α β)) ≃ᵐ α
     match ab with
     | ⟨Sum.inl a, _⟩ => a
     | ⟨Sum.inr b, p⟩ =>
-      have : False := by
-        cases p
-        contradiction
+      have : False := by cases p; contradiction
       this.elim
   invFun a := ⟨Sum.inl a, a, rfl⟩
-  left_inv := by
-    rintro ⟨ab, a, rfl⟩
-    rfl
+  left_inv := by rintro ⟨ab, a, rfl⟩; rfl
   right_inv a := rfl
   measurable_to_fun s (hs : MeasurableSet s) :=
     by
@@ -2272,14 +2219,10 @@ def Set.rangeInr : (range Sum.inr : Set (Sum α β)) ≃ᵐ β
     match ab with
     | ⟨Sum.inr b, _⟩ => b
     | ⟨Sum.inl a, p⟩ =>
-      have : False := by
-        cases p
-        contradiction
+      have : False := by cases p; contradiction
       this.elim
   invFun b := ⟨Sum.inr b, b, rfl⟩
-  left_inv := by
-    rintro ⟨ab, b, rfl⟩
-    rfl
+  left_inv := by rintro ⟨ab, b, rfl⟩; rfl
   right_inv b := rfl
   measurable_to_fun s (hs : MeasurableSet s) :=
     by
@@ -2309,14 +2252,12 @@ def sumProdDistrib (α β γ) [MeasurableSpace α] [MeasurableSpace β] [Measura
       refine' (prod_congr Set.range_inl (Set.univ _)).symm.measurable_comp_iff.1 _
       dsimp [(· ∘ ·)]
       convert measurable_inl
-      ext ⟨a, c⟩
-      rfl
+      ext ⟨a, c⟩; rfl
     · refine' (Set.prod (range Sum.inr) univ).symm.measurable_comp_iff.1 _
       refine' (prod_congr Set.range_inr (Set.univ _)).symm.measurable_comp_iff.1 _
       dsimp [(· ∘ ·)]
       convert measurable_inr
-      ext ⟨b, c⟩
-      rfl
+      ext ⟨b, c⟩; rfl
   measurable_inv_fun :=
     measurable_sum ((measurable_inl.comp measurable_fst).prod_mk measurable_snd)
       ((measurable_inr.comp measurable_fst).prod_mk measurable_snd)
@@ -2551,8 +2492,7 @@ noncomputable def schroederBernstein {f : α → β} {g : β → α} (hf : Measu
   rw [mem_Inter] at hx
   apply hy
   rw [(inj_on_of_injective hf.injective _).image_iInter_eq]
-  swap
-  · infer_instance
+  swap; · infer_instance
   rw [mem_Inter]
   intro n
   specialize hx n.succ
Diff
@@ -1413,10 +1413,7 @@ instance [Countable δ] [∀ a, MeasurableSingletonClass (π a)] :
 variable (π)
 
 /- warning: measurable_pi_equiv_pi_subtype_prod_symm -> measurable_piEquivPiSubtypeProd_symm is a dubious translation:
-lean 3 declaration is
-  forall {δ : Type.{u1}} (π : δ -> Type.{u2}) [_inst_2 : forall (a : δ), MeasurableSpace.{u2} (π a)] (p : δ -> Prop) [_inst_4 : DecidablePred.{succ u1} δ p], Measurable.{max u1 u2, max u1 u2} (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i))) (forall (i : δ), π i) (Prod.instMeasurableSpace.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i)) (MeasurableSpace.pi.{u1, u2} (Subtype.{succ u1} δ (fun (x : δ) => p x)) (fun (i : Subtype.{succ u1} δ (fun (x : δ) => p x)) => π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (fun (a : Subtype.{succ u1} δ (fun (x : δ) => p x)) => _inst_2 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) a))) (MeasurableSpace.pi.{u1, u2} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) (fun (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) => π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i)) (fun (a : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) => _inst_2 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) a)))) (MeasurableSpace.pi.{u1, u2} δ (fun (i : δ) => π i) (fun (a : δ) => _inst_2 a)) (coeFn.{max 1 (max (succ (max u1 u2)) (succ u1) (succ u2)) (max (succ u1) (succ u2)) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u1) (succ u2)} (Equiv.{succ (max u1 u2), max (succ u1) (succ u2)} (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i))) (forall (i : δ), π i)) (fun (_x : Equiv.{succ (max u1 u2), max (succ u1) (succ u2)} (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i))) (forall (i : δ), π i)) => (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i))) -> (forall (i : δ), π i)) (Equiv.hasCoeToFun.{succ (max u1 u2), max (succ u1) (succ u2)} (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i))) (forall (i : δ), π i)) (Equiv.symm.{max (succ u1) (succ u2), succ (max u1 u2)} (forall (i : δ), π i) (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i))) (Equiv.piEquivPiSubtypeProd.{u1, u2} δ p π (fun (a : δ) => _inst_4 a))))
-but is expected to have type
-  forall {δ : Type.{u2}} (π : δ -> Type.{u1}) [_inst_2 : forall (a : δ), MeasurableSpace.{u1} (π a)] (p : δ -> Prop) [_inst_4 : DecidablePred.{succ u2} δ p], Measurable.{max u2 u1, max u2 u1} (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) (forall (i : δ), π i) (Prod.instMeasurableSpace.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i)) (MeasurableSpace.pi.{u2, u1} (Subtype.{succ u2} δ (fun (x : δ) => p x)) (fun (i : Subtype.{succ u2} δ (fun (x : δ) => p x)) => π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (fun (a : Subtype.{succ u2} δ (fun (x : δ) => p x)) => _inst_2 (Subtype.val.{succ u2} δ (fun (x : δ) => p x) a))) (MeasurableSpace.pi.{u2, u1} (Subtype.{succ u2} δ (fun (x : δ) => Not (p x))) (fun (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))) => π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i)) (fun (a : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))) => _inst_2 (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) a)))) (MeasurableSpace.pi.{u2, u1} δ (fun (i : δ) => π i) (fun (a : δ) => _inst_2 a)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) (forall (i : δ), π i)) (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) (fun (_x : Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) => forall (i : δ), π i) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) (forall (i : δ), π i)) (Equiv.symm.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (forall (i : δ), π i) (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) (Equiv.piEquivPiSubtypeProd.{u2, u1} δ p π (fun (a : δ) => _inst_4 a))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align measurable_pi_equiv_pi_subtype_prod_symm measurable_piEquivPiSubtypeProd_symmₓ'. -/
 @[measurability]
 theorem measurable_piEquivPiSubtypeProd_symm (p : δ → Prop) [DecidablePred p] :
@@ -1433,10 +1430,7 @@ theorem measurable_piEquivPiSubtypeProd_symm (p : δ → Prop) [DecidablePred p]
 #align measurable_pi_equiv_pi_subtype_prod_symm measurable_piEquivPiSubtypeProd_symm
 
 /- warning: measurable_pi_equiv_pi_subtype_prod -> measurable_piEquivPiSubtypeProd is a dubious translation:
-lean 3 declaration is
-  forall {δ : Type.{u1}} (π : δ -> Type.{u2}) [_inst_2 : forall (a : δ), MeasurableSpace.{u2} (π a)] (p : δ -> Prop) [_inst_4 : DecidablePred.{succ u1} δ p], Measurable.{max u1 u2, max u1 u2} (forall (i : δ), π i) (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i))) (MeasurableSpace.pi.{u1, u2} δ (fun (i : δ) => π i) (fun (a : δ) => _inst_2 a)) (Prod.instMeasurableSpace.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i)) (MeasurableSpace.pi.{u1, u2} (Subtype.{succ u1} δ (fun (x : δ) => p x)) (fun (i : Subtype.{succ u1} δ (fun (x : δ) => p x)) => π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (fun (a : Subtype.{succ u1} δ (fun (x : δ) => p x)) => _inst_2 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) a))) (MeasurableSpace.pi.{u1, u2} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) (fun (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) => π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i)) (fun (a : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) => _inst_2 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) a)))) (coeFn.{max 1 (max (max (succ u1) (succ u2)) (succ (max u1 u2))) (succ (max u1 u2)) (succ u1) (succ u2), max (max (succ u1) (succ u2)) (succ (max u1 u2))} (Equiv.{max (succ u1) (succ u2), succ (max u1 u2)} (forall (i : δ), π i) (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i)))) (fun (_x : Equiv.{max (succ u1) (succ u2), succ (max u1 u2)} (forall (i : δ), π i) (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i)))) => (forall (i : δ), π i) -> (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i)))) (Equiv.hasCoeToFun.{max (succ u1) (succ u2), succ (max u1 u2)} (forall (i : δ), π i) (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i)))) (Equiv.piEquivPiSubtypeProd.{u1, u2} δ p π (fun (a : δ) => _inst_4 a)))
-but is expected to have type
-  forall {δ : Type.{u2}} (π : δ -> Type.{u1}) [_inst_2 : forall (a : δ), MeasurableSpace.{u1} (π a)] (p : δ -> Prop) [_inst_4 : DecidablePred.{succ u2} δ p], Measurable.{max u2 u1, max u2 u1} (forall (i : δ), π i) (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) (MeasurableSpace.pi.{u2, u1} δ (fun (i : δ) => π i) (fun (a : δ) => _inst_2 a)) (Prod.instMeasurableSpace.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i)) (MeasurableSpace.pi.{u2, u1} (Subtype.{succ u2} δ (fun (x : δ) => p x)) (fun (i : Subtype.{succ u2} δ (fun (x : δ) => p x)) => π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (fun (a : Subtype.{succ u2} δ (fun (x : δ) => p x)) => _inst_2 (Subtype.val.{succ u2} δ (fun (x : δ) => p x) a))) (MeasurableSpace.pi.{u2, u1} (Subtype.{succ u2} δ (fun (x : δ) => Not (p x))) (fun (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))) => π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i)) (fun (a : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))) => _inst_2 (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) a)))) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), succ (max u2 u1)} (forall (i : δ), π i) (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i)))) (forall (i : δ), π i) (fun (_x : forall (i : δ), π i) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : forall (i : δ), π i) => Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (forall (i : δ), π i) (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i)))) (Equiv.piEquivPiSubtypeProd.{u2, u1} δ p π (fun (a : δ) => _inst_4 a)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align measurable_pi_equiv_pi_subtype_prod measurable_piEquivPiSubtypeProdₓ'. -/
 @[measurability]
 theorem measurable_piEquivPiSubtypeProd (p : δ → Prop) [DecidablePred p] :
@@ -2411,10 +2405,7 @@ def finTwoArrow : (Fin 2 → α) ≃ᵐ α × α :=
 -/
 
 /- warning: measurable_equiv.pi_fin_succ_above_equiv -> MeasurableEquiv.piFinSuccAboveEquiv is a dubious translation:
-lean 3 declaration is
-  forall {n : Nat} (α : (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> Type.{u1}) [_inst_7 : forall (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))), MeasurableSpace.{u1} (α i)] (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))), MeasurableEquiv.{u1, u1} (forall (j : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))), α j) (Prod.{u1, u1} (α i) (forall (j : Fin n), α (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe n) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) => (Fin n) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) (Fin.succAbove n i) j))) (MeasurableSpace.pi.{0, u1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (fun (j : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) => α j) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) => _inst_7 a)) (Prod.instMeasurableSpace.{u1, u1} (α i) (forall (j : Fin n), α (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe n) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) => (Fin n) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) (Fin.succAbove n i) j)) (_inst_7 i) (MeasurableSpace.pi.{0, u1} (Fin n) (fun (j : Fin n) => α (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe n) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) => (Fin n) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) (Fin.succAbove n i) j)) (fun (a : Fin n) => _inst_7 (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe n) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) => (Fin n) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) (Fin.succAbove n i) a))))
-but is expected to have type
-  forall {n : Nat} (α : (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) -> Type.{u1}) [_inst_7 : forall (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))), MeasurableSpace.{u1} (α i)] (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))), MeasurableEquiv.{u1, u1} (forall (j : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))), α j) (Prod.{u1, u1} (α i) (forall (j : Fin n), α (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin n) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Fin.succAbove n i) j))) (MeasurableSpace.pi.{0, u1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (j : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => α j) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => _inst_7 a)) (Prod.instMeasurableSpace.{u1, u1} (α i) (forall (j : Fin n), α (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin n) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Fin.succAbove n i) j)) (_inst_7 i) (MeasurableSpace.pi.{0, u1} (Fin n) (fun (j : Fin n) => α (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin n) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Fin.succAbove n i) j)) (fun (a : Fin n) => _inst_7 (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin n) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Fin.succAbove n i) a))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align measurable_equiv.pi_fin_succ_above_equiv MeasurableEquiv.piFinSuccAboveEquivₓ'. -/
 /-- Measurable equivalence between `Π j : fin (n + 1), α j` and
 `α i × Π j : fin n, α (fin.succ_above i j)`. -/
Diff
@@ -228,7 +228,7 @@ theorem comap_sup : (m₁ ⊔ m₂).comap g = m₁.comap g ⊔ m₂.comap g :=
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {g : β -> α} {m : ι -> (MeasurableSpace.{u1} α)}, Eq.{succ u2} (MeasurableSpace.{u2} β) (MeasurableSpace.comap.{u2, u1} β α g (iSup.{u1, u3} (MeasurableSpace.{u1} α) (ConditionallyCompleteLattice.toHasSup.{u1} (MeasurableSpace.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.completeLattice.{u1} α))) ι (fun (i : ι) => m i))) (iSup.{u2, u3} (MeasurableSpace.{u2} β) (ConditionallyCompleteLattice.toHasSup.{u2} (MeasurableSpace.{u2} β) (CompleteLattice.toConditionallyCompleteLattice.{u2} (MeasurableSpace.{u2} β) (MeasurableSpace.completeLattice.{u2} β))) ι (fun (i : ι) => MeasurableSpace.comap.{u2, u1} β α g (m i)))
 but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {ι : Sort.{u1}} {g : β -> α} {m : ι -> (MeasurableSpace.{u3} α)}, Eq.{succ u2} (MeasurableSpace.{u2} β) (MeasurableSpace.comap.{u2, u3} β α g (iSup.{u3, u1} (MeasurableSpace.{u3} α) (ConditionallyCompleteLattice.toSupSet.{u3} (MeasurableSpace.{u3} α) (CompleteLattice.toConditionallyCompleteLattice.{u3} (MeasurableSpace.{u3} α) (MeasurableSpace.instCompleteLatticeMeasurableSpace.{u3} α))) ι (fun (i : ι) => m i))) (iSup.{u2, u1} (MeasurableSpace.{u2} β) (ConditionallyCompleteLattice.toSupSet.{u2} (MeasurableSpace.{u2} β) (CompleteLattice.toConditionallyCompleteLattice.{u2} (MeasurableSpace.{u2} β) (MeasurableSpace.instCompleteLatticeMeasurableSpace.{u2} β))) ι (fun (i : ι) => MeasurableSpace.comap.{u2, u3} β α g (m i)))
+  forall {α : Type.{u2}} {β : Type.{u1}} {ι : Sort.{u3}} {g : β -> α} {m : ι -> (MeasurableSpace.{u2} α)}, Eq.{succ u1} (MeasurableSpace.{u1} β) (MeasurableSpace.comap.{u1, u2} β α g (iSup.{u2, u3} (MeasurableSpace.{u2} α) (ConditionallyCompleteLattice.toSupSet.{u2} (MeasurableSpace.{u2} α) (CompleteLattice.toConditionallyCompleteLattice.{u2} (MeasurableSpace.{u2} α) (MeasurableSpace.instCompleteLatticeMeasurableSpace.{u2} α))) ι (fun (i : ι) => m i))) (iSup.{u1, u3} (MeasurableSpace.{u1} β) (ConditionallyCompleteLattice.toSupSet.{u1} (MeasurableSpace.{u1} β) (CompleteLattice.toConditionallyCompleteLattice.{u1} (MeasurableSpace.{u1} β) (MeasurableSpace.instCompleteLatticeMeasurableSpace.{u1} β))) ι (fun (i : ι) => MeasurableSpace.comap.{u1, u2} β α g (m i)))
 Case conversion may be inaccurate. Consider using '#align measurable_space.comap_supr MeasurableSpace.comap_iSupₓ'. -/
 @[simp]
 theorem comap_iSup {m : ι → MeasurableSpace α} : (⨆ i, m i).comap g = ⨆ i, (m i).comap g :=
@@ -261,7 +261,7 @@ theorem map_inf : (m₁ ⊓ m₂).map f = m₁.map f ⊓ m₂.map f :=
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {f : α -> β} {m : ι -> (MeasurableSpace.{u1} α)}, Eq.{succ u2} (MeasurableSpace.{u2} β) (MeasurableSpace.map.{u1, u2} α β f (iInf.{u1, u3} (MeasurableSpace.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (MeasurableSpace.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.completeLattice.{u1} α))) ι (fun (i : ι) => m i))) (iInf.{u2, u3} (MeasurableSpace.{u2} β) (ConditionallyCompleteLattice.toHasInf.{u2} (MeasurableSpace.{u2} β) (CompleteLattice.toConditionallyCompleteLattice.{u2} (MeasurableSpace.{u2} β) (MeasurableSpace.completeLattice.{u2} β))) ι (fun (i : ι) => MeasurableSpace.map.{u1, u2} α β f (m i)))
 but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {ι : Sort.{u1}} {f : α -> β} {m : ι -> (MeasurableSpace.{u3} α)}, Eq.{succ u2} (MeasurableSpace.{u2} β) (MeasurableSpace.map.{u3, u2} α β f (iInf.{u3, u1} (MeasurableSpace.{u3} α) (ConditionallyCompleteLattice.toInfSet.{u3} (MeasurableSpace.{u3} α) (CompleteLattice.toConditionallyCompleteLattice.{u3} (MeasurableSpace.{u3} α) (MeasurableSpace.instCompleteLatticeMeasurableSpace.{u3} α))) ι (fun (i : ι) => m i))) (iInf.{u2, u1} (MeasurableSpace.{u2} β) (ConditionallyCompleteLattice.toInfSet.{u2} (MeasurableSpace.{u2} β) (CompleteLattice.toConditionallyCompleteLattice.{u2} (MeasurableSpace.{u2} β) (MeasurableSpace.instCompleteLatticeMeasurableSpace.{u2} β))) ι (fun (i : ι) => MeasurableSpace.map.{u3, u2} α β f (m i)))
+  forall {α : Type.{u2}} {β : Type.{u1}} {ι : Sort.{u3}} {f : α -> β} {m : ι -> (MeasurableSpace.{u2} α)}, Eq.{succ u1} (MeasurableSpace.{u1} β) (MeasurableSpace.map.{u2, u1} α β f (iInf.{u2, u3} (MeasurableSpace.{u2} α) (ConditionallyCompleteLattice.toInfSet.{u2} (MeasurableSpace.{u2} α) (CompleteLattice.toConditionallyCompleteLattice.{u2} (MeasurableSpace.{u2} α) (MeasurableSpace.instCompleteLatticeMeasurableSpace.{u2} α))) ι (fun (i : ι) => m i))) (iInf.{u1, u3} (MeasurableSpace.{u1} β) (ConditionallyCompleteLattice.toInfSet.{u1} (MeasurableSpace.{u1} β) (CompleteLattice.toConditionallyCompleteLattice.{u1} (MeasurableSpace.{u1} β) (MeasurableSpace.instCompleteLatticeMeasurableSpace.{u1} β))) ι (fun (i : ι) => MeasurableSpace.map.{u2, u1} α β f (m i)))
 Case conversion may be inaccurate. Consider using '#align measurable_space.map_infi MeasurableSpace.map_iInfₓ'. -/
 @[simp]
 theorem map_iInf {m : ι → MeasurableSpace α} : (⨅ i, m i).map f = ⨅ i, (m i).map f :=
@@ -426,7 +426,7 @@ theorem measurable_of_subsingleton_codomain [Subsingleton β] (f : α → β) :
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] [_inst_4 : One.{u1} α], Measurable.{u2, u1} β α _inst_2 _inst_1 (OfNat.ofNat.{max u2 u1} (β -> α) 1 (OfNat.mk.{max u2 u1} (β -> α) 1 (One.one.{max u2 u1} (β -> α) (Pi.instOne.{u2, u1} β (fun (ᾰ : β) => α) (fun (i : β) => _inst_4)))))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] [_inst_4 : One.{u2} α], Measurable.{u1, u2} β α _inst_2 _inst_1 (OfNat.ofNat.{max u2 u1} (β -> α) 1 (One.toOfNat1.{max u2 u1} (β -> α) (Pi.instOne.{u1, u2} β (fun (a._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.2073 : β) => α) (fun (i : β) => _inst_4))))
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] [_inst_4 : One.{u2} α], Measurable.{u1, u2} β α _inst_2 _inst_1 (OfNat.ofNat.{max u2 u1} (β -> α) 1 (One.toOfNat1.{max u2 u1} (β -> α) (Pi.instOne.{u1, u2} β (fun (a._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.2074 : β) => α) (fun (i : β) => _inst_4))))
 Case conversion may be inaccurate. Consider using '#align measurable_one measurable_oneₓ'. -/
 @[to_additive]
 theorem measurable_one [One α] : Measurable (1 : β → α) :=
@@ -471,7 +471,7 @@ theorem measurable_const' {f : β → α} (hf : ∀ x y, f x = f y) : Measurable
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] [_inst_4 : NatCast.{u1} α] (n : Nat), Measurable.{u2, u1} β α _inst_2 _inst_1 ((fun (a : Type) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{1, max (succ u2) (succ u1)} a b] => self.0) Nat (β -> α) (HasLiftT.mk.{1, max (succ u2) (succ u1)} Nat (β -> α) (CoeTCₓ.coe.{1, max (succ u2) (succ u1)} Nat (β -> α) (Nat.castCoe.{max u2 u1} (β -> α) (Pi.hasNatCast.{u2, u1} β (fun (ᾰ : β) => α) (fun (a : β) => _inst_4))))) n)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] [_inst_4 : NatCast.{u2} α] (n : Nat), Measurable.{u1, u2} β α _inst_2 _inst_1 (Nat.cast.{max u2 u1} (β -> α) (Pi.natCast.{u1, u2} β (fun (a._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.2319 : β) => α) (fun (a : β) => _inst_4)) n)
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] [_inst_4 : NatCast.{u2} α] (n : Nat), Measurable.{u1, u2} β α _inst_2 _inst_1 (Nat.cast.{max u2 u1} (β -> α) (Pi.natCast.{u1, u2} β (fun (a._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.2320 : β) => α) (fun (a : β) => _inst_4)) n)
 Case conversion may be inaccurate. Consider using '#align measurable_nat_cast measurable_natCastₓ'. -/
 @[measurability]
 theorem measurable_natCast [NatCast α] (n : ℕ) : Measurable (n : β → α) :=
@@ -482,7 +482,7 @@ theorem measurable_natCast [NatCast α] (n : ℕ) : Measurable (n : β → α) :
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] [_inst_4 : IntCast.{u1} α] (n : Int), Measurable.{u2, u1} β α _inst_2 _inst_1 ((fun (a : Type) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{1, max (succ u2) (succ u1)} a b] => self.0) Int (β -> α) (HasLiftT.mk.{1, max (succ u2) (succ u1)} Int (β -> α) (CoeTCₓ.coe.{1, max (succ u2) (succ u1)} Int (β -> α) (Int.castCoe.{max u2 u1} (β -> α) (Pi.hasIntCast.{u2, u1} β (fun (ᾰ : β) => α) (fun (i : β) => _inst_4))))) n)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] [_inst_4 : IntCast.{u2} α] (n : Int), Measurable.{u1, u2} β α _inst_2 _inst_1 (Int.cast.{max u2 u1} (β -> α) (Pi.intCast.{u1, u2} β (fun (a._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.2369 : β) => α) (fun (i : β) => _inst_4)) n)
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] [_inst_4 : IntCast.{u2} α] (n : Int), Measurable.{u1, u2} β α _inst_2 _inst_1 (Int.cast.{max u2 u1} (β -> α) (Pi.intCast.{u1, u2} β (fun (a._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.2370 : β) => α) (fun (i : β) => _inst_4)) n)
 Case conversion may be inaccurate. Consider using '#align measurable_int_cast measurable_intCastₓ'. -/
 @[measurability]
 theorem measurable_intCast [IntCast α] (n : ℤ) : Measurable (n : β → α) :=
@@ -1416,7 +1416,7 @@ variable (π)
 lean 3 declaration is
   forall {δ : Type.{u1}} (π : δ -> Type.{u2}) [_inst_2 : forall (a : δ), MeasurableSpace.{u2} (π a)] (p : δ -> Prop) [_inst_4 : DecidablePred.{succ u1} δ p], Measurable.{max u1 u2, max u1 u2} (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i))) (forall (i : δ), π i) (Prod.instMeasurableSpace.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i)) (MeasurableSpace.pi.{u1, u2} (Subtype.{succ u1} δ (fun (x : δ) => p x)) (fun (i : Subtype.{succ u1} δ (fun (x : δ) => p x)) => π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (fun (a : Subtype.{succ u1} δ (fun (x : δ) => p x)) => _inst_2 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) a))) (MeasurableSpace.pi.{u1, u2} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) (fun (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) => π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i)) (fun (a : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) => _inst_2 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) a)))) (MeasurableSpace.pi.{u1, u2} δ (fun (i : δ) => π i) (fun (a : δ) => _inst_2 a)) (coeFn.{max 1 (max (succ (max u1 u2)) (succ u1) (succ u2)) (max (succ u1) (succ u2)) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u1) (succ u2)} (Equiv.{succ (max u1 u2), max (succ u1) (succ u2)} (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i))) (forall (i : δ), π i)) (fun (_x : Equiv.{succ (max u1 u2), max (succ u1) (succ u2)} (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i))) (forall (i : δ), π i)) => (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i))) -> (forall (i : δ), π i)) (Equiv.hasCoeToFun.{succ (max u1 u2), max (succ u1) (succ u2)} (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i))) (forall (i : δ), π i)) (Equiv.symm.{max (succ u1) (succ u2), succ (max u1 u2)} (forall (i : δ), π i) (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i))) (Equiv.piEquivPiSubtypeProd.{u1, u2} δ p π (fun (a : δ) => _inst_4 a))))
 but is expected to have type
-  forall {δ : Type.{u2}} (π : δ -> Type.{u1}) [_inst_2 : forall (a : δ), MeasurableSpace.{u1} (π a)] (p : δ -> Prop) [_inst_4 : DecidablePred.{succ u2} δ p], Measurable.{max u2 u1, max u2 u1} (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) (forall (i : δ), π i) (Prod.instMeasurableSpace.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i)) (MeasurableSpace.pi.{u2, u1} (Subtype.{succ u2} δ (fun (x : δ) => p x)) (fun (i : Subtype.{succ u2} δ (fun (x : δ) => p x)) => π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (fun (a : Subtype.{succ u2} δ (fun (x : δ) => p x)) => _inst_2 (Subtype.val.{succ u2} δ (fun (x : δ) => p x) a))) (MeasurableSpace.pi.{u2, u1} (Subtype.{succ u2} δ (fun (x : δ) => Not (p x))) (fun (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))) => π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i)) (fun (a : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))) => _inst_2 (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) a)))) (MeasurableSpace.pi.{u2, u1} δ (fun (i : δ) => π i) (fun (a : δ) => _inst_2 a)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) (forall (i : δ), π i)) (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) (fun (_x : Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) => forall (i : δ), π i) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) (forall (i : δ), π i)) (Equiv.symm.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (forall (i : δ), π i) (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) (Equiv.piEquivPiSubtypeProd.{u2, u1} δ p π (fun (a : δ) => _inst_4 a))))
+  forall {δ : Type.{u2}} (π : δ -> Type.{u1}) [_inst_2 : forall (a : δ), MeasurableSpace.{u1} (π a)] (p : δ -> Prop) [_inst_4 : DecidablePred.{succ u2} δ p], Measurable.{max u2 u1, max u2 u1} (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) (forall (i : δ), π i) (Prod.instMeasurableSpace.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i)) (MeasurableSpace.pi.{u2, u1} (Subtype.{succ u2} δ (fun (x : δ) => p x)) (fun (i : Subtype.{succ u2} δ (fun (x : δ) => p x)) => π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (fun (a : Subtype.{succ u2} δ (fun (x : δ) => p x)) => _inst_2 (Subtype.val.{succ u2} δ (fun (x : δ) => p x) a))) (MeasurableSpace.pi.{u2, u1} (Subtype.{succ u2} δ (fun (x : δ) => Not (p x))) (fun (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))) => π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i)) (fun (a : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))) => _inst_2 (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) a)))) (MeasurableSpace.pi.{u2, u1} δ (fun (i : δ) => π i) (fun (a : δ) => _inst_2 a)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) (forall (i : δ), π i)) (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) (fun (_x : Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) => forall (i : δ), π i) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) (forall (i : δ), π i)) (Equiv.symm.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (forall (i : δ), π i) (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) (Equiv.piEquivPiSubtypeProd.{u2, u1} δ p π (fun (a : δ) => _inst_4 a))))
 Case conversion may be inaccurate. Consider using '#align measurable_pi_equiv_pi_subtype_prod_symm measurable_piEquivPiSubtypeProd_symmₓ'. -/
 @[measurability]
 theorem measurable_piEquivPiSubtypeProd_symm (p : δ → Prop) [DecidablePred p] :
@@ -1436,7 +1436,7 @@ theorem measurable_piEquivPiSubtypeProd_symm (p : δ → Prop) [DecidablePred p]
 lean 3 declaration is
   forall {δ : Type.{u1}} (π : δ -> Type.{u2}) [_inst_2 : forall (a : δ), MeasurableSpace.{u2} (π a)] (p : δ -> Prop) [_inst_4 : DecidablePred.{succ u1} δ p], Measurable.{max u1 u2, max u1 u2} (forall (i : δ), π i) (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i))) (MeasurableSpace.pi.{u1, u2} δ (fun (i : δ) => π i) (fun (a : δ) => _inst_2 a)) (Prod.instMeasurableSpace.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i)) (MeasurableSpace.pi.{u1, u2} (Subtype.{succ u1} δ (fun (x : δ) => p x)) (fun (i : Subtype.{succ u1} δ (fun (x : δ) => p x)) => π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (fun (a : Subtype.{succ u1} δ (fun (x : δ) => p x)) => _inst_2 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) a))) (MeasurableSpace.pi.{u1, u2} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) (fun (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) => π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i)) (fun (a : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) => _inst_2 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) a)))) (coeFn.{max 1 (max (max (succ u1) (succ u2)) (succ (max u1 u2))) (succ (max u1 u2)) (succ u1) (succ u2), max (max (succ u1) (succ u2)) (succ (max u1 u2))} (Equiv.{max (succ u1) (succ u2), succ (max u1 u2)} (forall (i : δ), π i) (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i)))) (fun (_x : Equiv.{max (succ u1) (succ u2), succ (max u1 u2)} (forall (i : δ), π i) (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i)))) => (forall (i : δ), π i) -> (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i)))) (Equiv.hasCoeToFun.{max (succ u1) (succ u2), succ (max u1 u2)} (forall (i : δ), π i) (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i)))) (Equiv.piEquivPiSubtypeProd.{u1, u2} δ p π (fun (a : δ) => _inst_4 a)))
 but is expected to have type
-  forall {δ : Type.{u2}} (π : δ -> Type.{u1}) [_inst_2 : forall (a : δ), MeasurableSpace.{u1} (π a)] (p : δ -> Prop) [_inst_4 : DecidablePred.{succ u2} δ p], Measurable.{max u2 u1, max u2 u1} (forall (i : δ), π i) (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) (MeasurableSpace.pi.{u2, u1} δ (fun (i : δ) => π i) (fun (a : δ) => _inst_2 a)) (Prod.instMeasurableSpace.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i)) (MeasurableSpace.pi.{u2, u1} (Subtype.{succ u2} δ (fun (x : δ) => p x)) (fun (i : Subtype.{succ u2} δ (fun (x : δ) => p x)) => π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (fun (a : Subtype.{succ u2} δ (fun (x : δ) => p x)) => _inst_2 (Subtype.val.{succ u2} δ (fun (x : δ) => p x) a))) (MeasurableSpace.pi.{u2, u1} (Subtype.{succ u2} δ (fun (x : δ) => Not (p x))) (fun (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))) => π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i)) (fun (a : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))) => _inst_2 (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) a)))) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), succ (max u2 u1)} (forall (i : δ), π i) (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i)))) (forall (i : δ), π i) (fun (_x : forall (i : δ), π i) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : forall (i : δ), π i) => Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (forall (i : δ), π i) (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i)))) (Equiv.piEquivPiSubtypeProd.{u2, u1} δ p π (fun (a : δ) => _inst_4 a)))
+  forall {δ : Type.{u2}} (π : δ -> Type.{u1}) [_inst_2 : forall (a : δ), MeasurableSpace.{u1} (π a)] (p : δ -> Prop) [_inst_4 : DecidablePred.{succ u2} δ p], Measurable.{max u2 u1, max u2 u1} (forall (i : δ), π i) (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) (MeasurableSpace.pi.{u2, u1} δ (fun (i : δ) => π i) (fun (a : δ) => _inst_2 a)) (Prod.instMeasurableSpace.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i)) (MeasurableSpace.pi.{u2, u1} (Subtype.{succ u2} δ (fun (x : δ) => p x)) (fun (i : Subtype.{succ u2} δ (fun (x : δ) => p x)) => π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (fun (a : Subtype.{succ u2} δ (fun (x : δ) => p x)) => _inst_2 (Subtype.val.{succ u2} δ (fun (x : δ) => p x) a))) (MeasurableSpace.pi.{u2, u1} (Subtype.{succ u2} δ (fun (x : δ) => Not (p x))) (fun (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))) => π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i)) (fun (a : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))) => _inst_2 (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) a)))) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), succ (max u2 u1)} (forall (i : δ), π i) (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i)))) (forall (i : δ), π i) (fun (_x : forall (i : δ), π i) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : forall (i : δ), π i) => Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (forall (i : δ), π i) (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i)))) (Equiv.piEquivPiSubtypeProd.{u2, u1} δ p π (fun (a : δ) => _inst_4 a)))
 Case conversion may be inaccurate. Consider using '#align measurable_pi_equiv_pi_subtype_prod measurable_piEquivPiSubtypeProdₓ'. -/
 @[measurability]
 theorem measurable_piEquivPiSubtypeProd (p : δ → Prop) [DecidablePred p] :
@@ -1833,7 +1833,7 @@ variable {α β}
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] (e : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2), Eq.{max (succ u1) (succ u2)} ((fun (_x : Equiv.{succ u1, succ u2} α β) => α -> β) (MeasurableEquiv.toEquiv.{u1, u2} α β _inst_1 _inst_2 e)) (coeFn.{max 1 (max (succ u1) (succ u2)) (succ u2) (succ u1), max (succ u1) (succ u2)} (Equiv.{succ u1, succ u2} α β) (fun (_x : Equiv.{succ u1, succ u2} α β) => α -> β) (Equiv.hasCoeToFun.{succ u1, succ u2} α β) (MeasurableEquiv.toEquiv.{u1, u2} α β _inst_1 _inst_2 e)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) (MeasurableEquiv.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) e)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2), Eq.{max (succ u2) (succ u1)} (forall (a : α), (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : α) => β) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} α β) α (fun (_x : α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : α) => β) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} α β) (MeasurableEquiv.toEquiv.{u2, u1} α β _inst_1 _inst_2 e)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLike.{u2, u1} α β _inst_1 _inst_2))) e)
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2), Eq.{max (succ u2) (succ u1)} (forall (a : α), (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : α) => β) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} α β) α (fun (_x : α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : α) => β) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} α β) (MeasurableEquiv.toEquiv.{u2, u1} α β _inst_1 _inst_2 e)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLike.{u2, u1} α β _inst_1 _inst_2))) e)
 Case conversion may be inaccurate. Consider using '#align measurable_equiv.coe_to_equiv MeasurableEquiv.coe_toEquivₓ'. -/
 @[simp]
 theorem coe_toEquiv (e : α ≃ᵐ β) : (e.toEquiv : α → β) = e :=
@@ -1855,7 +1855,7 @@ protected theorem measurable (e : α ≃ᵐ β) : Measurable (e : α → β) :=
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] (e : Equiv.{succ u1, succ u2} α β) (h1 : Measurable.{u1, u2} α β _inst_1 _inst_2 (coeFn.{max 1 (max (succ u1) (succ u2)) (succ u2) (succ u1), max (succ u1) (succ u2)} (Equiv.{succ u1, succ u2} α β) (fun (_x : Equiv.{succ u1, succ u2} α β) => α -> β) (Equiv.hasCoeToFun.{succ u1, succ u2} α β) e)) (h2 : Measurable.{u2, u1} β α _inst_2 _inst_1 (coeFn.{max 1 (max (succ u2) (succ u1)) (succ u1) (succ u2), max (succ u2) (succ u1)} (Equiv.{succ u2, succ u1} β α) (fun (_x : Equiv.{succ u2, succ u1} β α) => β -> α) (Equiv.hasCoeToFun.{succ u2, succ u1} β α) (Equiv.symm.{succ u1, succ u2} α β e))), Eq.{max (succ u1) (succ u2)} ((fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) (MeasurableEquiv.mk.{u1, u2} α β _inst_1 _inst_2 e h1 h2)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) (MeasurableEquiv.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) (MeasurableEquiv.mk.{u1, u2} α β _inst_1 _inst_2 e h1 h2)) (coeFn.{max 1 (max (succ u1) (succ u2)) (succ u2) (succ u1), max (succ u1) (succ u2)} (Equiv.{succ u1, succ u2} α β) (fun (_x : Equiv.{succ u1, succ u2} α β) => α -> β) (Equiv.hasCoeToFun.{succ u1, succ u2} α β) e)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : Equiv.{succ u2, succ u1} α β) (h1 : Measurable.{u2, u1} α β _inst_1 _inst_2 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} α β) α (fun (_x : α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : α) => β) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} α β) e)) (h2 : Measurable.{u1, u2} β α _inst_2 _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} β α) β (fun (_x : β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : β) => α) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} β α) (Equiv.symm.{succ u2, succ u1} α β e))), Eq.{max (succ u2) (succ u1)} (forall (a : α), (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLike.{u2, u1} α β _inst_1 _inst_2))) (MeasurableEquiv.mk.{u2, u1} α β _inst_1 _inst_2 e h1 h2)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} α β) α (fun (_x : α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : α) => β) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} α β) e)
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : Equiv.{succ u2, succ u1} α β) (h1 : Measurable.{u2, u1} α β _inst_1 _inst_2 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} α β) α (fun (_x : α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : α) => β) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} α β) e)) (h2 : Measurable.{u1, u2} β α _inst_2 _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} β α) β (fun (_x : β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : β) => α) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} β α) (Equiv.symm.{succ u2, succ u1} α β e))), Eq.{max (succ u2) (succ u1)} (forall (a : α), (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLike.{u2, u1} α β _inst_1 _inst_2))) (MeasurableEquiv.mk.{u2, u1} α β _inst_1 _inst_2 e h1 h2)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} α β) α (fun (_x : α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : α) => β) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} α β) e)
 Case conversion may be inaccurate. Consider using '#align measurable_equiv.coe_mk MeasurableEquiv.coe_mkₓ'. -/
 @[simp]
 theorem coe_mk (e : α ≃ β) (h1 : Measurable e) (h2 : Measurable e.symm) :
@@ -1899,7 +1899,7 @@ def symm (ab : α ≃ᵐ β) : β ≃ᵐ α where
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] (e : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2), Eq.{max (succ u2) (succ u1)} ((fun (_x : Equiv.{succ u2, succ u1} β α) => β -> α) (Equiv.symm.{succ u1, succ u2} α β (MeasurableEquiv.toEquiv.{u1, u2} α β _inst_1 _inst_2 e))) (coeFn.{max 1 (max (succ u2) (succ u1)) (succ u1) (succ u2), max (succ u2) (succ u1)} (Equiv.{succ u2, succ u1} β α) (fun (_x : Equiv.{succ u2, succ u1} β α) => β -> α) (Equiv.hasCoeToFun.{succ u2, succ u1} β α) (Equiv.symm.{succ u1, succ u2} α β (MeasurableEquiv.toEquiv.{u1, u2} α β _inst_1 _inst_2 e))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (MeasurableEquiv.{u2, u1} β α _inst_2 _inst_1) (fun (_x : MeasurableEquiv.{u2, u1} β α _inst_2 _inst_1) => β -> α) (MeasurableEquiv.hasCoeToFun.{u2, u1} β α _inst_2 _inst_1) (MeasurableEquiv.symm.{u1, u2} α β _inst_1 _inst_2 e))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2), Eq.{max (succ u2) (succ u1)} (forall (a : β), (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : β) => α) a) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} β α) β (fun (_x : β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : β) => α) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} β α) (Equiv.symm.{succ u2, succ u1} α β (MeasurableEquiv.toEquiv.{u2, u1} α β _inst_1 _inst_2 e))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β (fun (_x : β) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : β) => α) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (MeasurableEquiv.instEquivLike.{u1, u2} β α _inst_2 _inst_1))) (MeasurableEquiv.symm.{u2, u1} α β _inst_1 _inst_2 e))
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2), Eq.{max (succ u2) (succ u1)} (forall (a : β), (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : β) => α) a) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} β α) β (fun (_x : β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : β) => α) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} β α) (Equiv.symm.{succ u2, succ u1} α β (MeasurableEquiv.toEquiv.{u2, u1} α β _inst_1 _inst_2 e))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β (fun (_x : β) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : β) => α) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (MeasurableEquiv.instEquivLike.{u1, u2} β α _inst_2 _inst_1))) (MeasurableEquiv.symm.{u2, u1} α β _inst_1 _inst_2 e))
 Case conversion may be inaccurate. Consider using '#align measurable_equiv.coe_to_equiv_symm MeasurableEquiv.coe_toEquiv_symmₓ'. -/
 @[simp]
 theorem coe_toEquiv_symm (e : α ≃ᵐ β) : (e.toEquiv.symm : β → α) = e.symm :=
@@ -1951,7 +1951,7 @@ theorem ext {e₁ e₂ : α ≃ᵐ β} (h : (e₁ : α → β) = e₂) : e₁ =
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] (e : Equiv.{succ u1, succ u2} α β) (h1 : Measurable.{u1, u2} α β _inst_1 _inst_2 (coeFn.{max 1 (max (succ u1) (succ u2)) (succ u2) (succ u1), max (succ u1) (succ u2)} (Equiv.{succ u1, succ u2} α β) (fun (_x : Equiv.{succ u1, succ u2} α β) => α -> β) (Equiv.hasCoeToFun.{succ u1, succ u2} α β) e)) (h2 : Measurable.{u2, u1} β α _inst_2 _inst_1 (coeFn.{max 1 (max (succ u2) (succ u1)) (succ u1) (succ u2), max (succ u2) (succ u1)} (Equiv.{succ u2, succ u1} β α) (fun (_x : Equiv.{succ u2, succ u1} β α) => β -> α) (Equiv.hasCoeToFun.{succ u2, succ u1} β α) (Equiv.symm.{succ u1, succ u2} α β e))), Eq.{max (succ u2) (succ u1)} (MeasurableEquiv.{u2, u1} β α _inst_2 _inst_1) (MeasurableEquiv.symm.{u1, u2} α β _inst_1 _inst_2 (MeasurableEquiv.mk.{u1, u2} α β _inst_1 _inst_2 e h1 h2)) (MeasurableEquiv.mk.{u2, u1} β α _inst_2 _inst_1 (Equiv.symm.{succ u1, succ u2} α β e) h2 h1)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : Equiv.{succ u2, succ u1} α β) (h1 : Measurable.{u2, u1} α β _inst_1 _inst_2 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} α β) α (fun (_x : α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : α) => β) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} α β) e)) (h2 : Measurable.{u1, u2} β α _inst_2 _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} β α) β (fun (_x : β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : β) => α) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} β α) (Equiv.symm.{succ u2, succ u1} α β e))), Eq.{max (succ u2) (succ u1)} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) (MeasurableEquiv.symm.{u2, u1} α β _inst_1 _inst_2 (MeasurableEquiv.mk.{u2, u1} α β _inst_1 _inst_2 e h1 h2)) (MeasurableEquiv.mk.{u1, u2} β α _inst_2 _inst_1 (Equiv.symm.{succ u2, succ u1} α β e) h2 h1)
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : Equiv.{succ u2, succ u1} α β) (h1 : Measurable.{u2, u1} α β _inst_1 _inst_2 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} α β) α (fun (_x : α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : α) => β) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} α β) e)) (h2 : Measurable.{u1, u2} β α _inst_2 _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} β α) β (fun (_x : β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : β) => α) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} β α) (Equiv.symm.{succ u2, succ u1} α β e))), Eq.{max (succ u2) (succ u1)} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) (MeasurableEquiv.symm.{u2, u1} α β _inst_1 _inst_2 (MeasurableEquiv.mk.{u2, u1} α β _inst_1 _inst_2 e h1 h2)) (MeasurableEquiv.mk.{u1, u2} β α _inst_2 _inst_1 (Equiv.symm.{succ u2, succ u1} α β e) h2 h1)
 Case conversion may be inaccurate. Consider using '#align measurable_equiv.symm_mk MeasurableEquiv.symm_mkₓ'. -/
 @[simp]
 theorem symm_mk (e : α ≃ β) (h1 : Measurable e) (h2 : Measurable e.symm) :
@@ -2414,7 +2414,7 @@ def finTwoArrow : (Fin 2 → α) ≃ᵐ α × α :=
 lean 3 declaration is
   forall {n : Nat} (α : (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> Type.{u1}) [_inst_7 : forall (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))), MeasurableSpace.{u1} (α i)] (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))), MeasurableEquiv.{u1, u1} (forall (j : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))), α j) (Prod.{u1, u1} (α i) (forall (j : Fin n), α (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe n) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) => (Fin n) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) (Fin.succAbove n i) j))) (MeasurableSpace.pi.{0, u1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (fun (j : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) => α j) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) => _inst_7 a)) (Prod.instMeasurableSpace.{u1, u1} (α i) (forall (j : Fin n), α (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe n) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) => (Fin n) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) (Fin.succAbove n i) j)) (_inst_7 i) (MeasurableSpace.pi.{0, u1} (Fin n) (fun (j : Fin n) => α (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe n) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) => (Fin n) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) (Fin.succAbove n i) j)) (fun (a : Fin n) => _inst_7 (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe n) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) => (Fin n) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) (Fin.succAbove n i) a))))
 but is expected to have type
-  forall {n : Nat} (α : (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) -> Type.{u1}) [_inst_7 : forall (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))), MeasurableSpace.{u1} (α i)] (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))), MeasurableEquiv.{u1, u1} (forall (j : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))), α j) (Prod.{u1, u1} (α i) (forall (j : Fin n), α (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin n) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.succAbove n i) j))) (MeasurableSpace.pi.{0, u1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (j : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => α j) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => _inst_7 a)) (Prod.instMeasurableSpace.{u1, u1} (α i) (forall (j : Fin n), α (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin n) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.succAbove n i) j)) (_inst_7 i) (MeasurableSpace.pi.{0, u1} (Fin n) (fun (j : Fin n) => α (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin n) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.succAbove n i) j)) (fun (a : Fin n) => _inst_7 (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin n) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.succAbove n i) a))))
+  forall {n : Nat} (α : (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) -> Type.{u1}) [_inst_7 : forall (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))), MeasurableSpace.{u1} (α i)] (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))), MeasurableEquiv.{u1, u1} (forall (j : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))), α j) (Prod.{u1, u1} (α i) (forall (j : Fin n), α (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin n) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Fin.succAbove n i) j))) (MeasurableSpace.pi.{0, u1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (j : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => α j) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => _inst_7 a)) (Prod.instMeasurableSpace.{u1, u1} (α i) (forall (j : Fin n), α (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin n) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Fin.succAbove n i) j)) (_inst_7 i) (MeasurableSpace.pi.{0, u1} (Fin n) (fun (j : Fin n) => α (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin n) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Fin.succAbove n i) j)) (fun (a : Fin n) => _inst_7 (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin n) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Fin.succAbove n i) a))))
 Case conversion may be inaccurate. Consider using '#align measurable_equiv.pi_fin_succ_above_equiv MeasurableEquiv.piFinSuccAboveEquivₓ'. -/
 /-- Measurable equivalence between `Π j : fin (n + 1), α j` and
 `α i × Π j : fin n, α (fin.succ_above i j)`. -/
@@ -2449,7 +2449,7 @@ def piEquivPiSubtypeProd (p : δ' → Prop) [DecidablePred p] :
 lean 3 declaration is
   forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {s : Set.{u1} α} [_inst_7 : DecidablePred.{succ u1} α s], (MeasurableSet.{u1} α _inst_1 s) -> (MeasurableEquiv.{u1, u1} (Sum.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s))) α (Sum.instMeasurableSpace.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) (Subtype.instMeasurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) _inst_1) (Subtype.instMeasurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) _inst_1)) _inst_1)
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {s : Set.{u1} α} [_inst_7 : DecidablePred.{succ u1} α (fun (x._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.17407 : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.17407 s)], (MeasurableSet.{u1} α _inst_1 s) -> (MeasurableEquiv.{u1, u1} (Sum.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s))) α (Sum.instMeasurableSpace.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)) (Subtype.instMeasurableSpace.{u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) _inst_1) (Subtype.instMeasurableSpace.{u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)) _inst_1)) _inst_1)
+  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {s : Set.{u1} α} [_inst_7 : DecidablePred.{succ u1} α (fun (x._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.17408 : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.17408 s)], (MeasurableSet.{u1} α _inst_1 s) -> (MeasurableEquiv.{u1, u1} (Sum.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s))) α (Sum.instMeasurableSpace.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)) (Subtype.instMeasurableSpace.{u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) _inst_1) (Subtype.instMeasurableSpace.{u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)) _inst_1)) _inst_1)
 Case conversion may be inaccurate. Consider using '#align measurable_equiv.sum_compl MeasurableEquiv.sumComplₓ'. -/
 /-- If `s` is a measurable set in a measurable space, that space is equivalent
 to the sum of `s` and `sᶜ`.-/
@@ -2721,9 +2721,9 @@ alias principal_is_measurably_generated_iff ↔
 
 /- warning: filter.infi_is_measurably_generated -> Filter.iInf_isMeasurablyGenerated is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u_1}} {ι : Sort.{u_6}} [_inst_1 : MeasurableSpace.{u_1} α] {f : ι -> (Filter.{u_1} α)} [_inst_2 : forall (i : ι), Filter.IsMeasurablyGenerated.{u_1} α _inst_1 (f i)], Filter.IsMeasurablyGenerated.{u_1} α _inst_1 (iInf.{u_1, u_6} (Filter.{u_1} α) (ConditionallyCompleteLattice.toHasInf.{u_1} (Filter.{u_1} α) (CompleteLattice.toConditionallyCompleteLattice.{u_1} (Filter.{u_1} α) (Filter.completeLattice.{u_1} α))) ι (fun (i : ι) => f i))
+  forall {α : Type.{u1}} {ι : Sort.{u2}} [_inst_1 : MeasurableSpace.{u1} α] {f : ι -> (Filter.{u1} α)} [_inst_2 : forall (i : ι), Filter.IsMeasurablyGenerated.{u1} α _inst_1 (f i)], Filter.IsMeasurablyGenerated.{u1} α _inst_1 (iInf.{u1, u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => f i))
 but is expected to have type
-  forall {α : Type.{u_1}} {ι : Prop} [_inst_1 : MeasurableSpace.{u_1} α] {f : ι -> (Filter.{u_1} α)} [_inst_2 : forall (i : ι), Filter.IsMeasurablyGenerated.{u_1} α _inst_1 (f i)], Filter.IsMeasurablyGenerated.{u_1} α _inst_1 (iInf.{u_1, 0} (Filter.{u_1} α) (ConditionallyCompleteLattice.toInfSet.{u_1} (Filter.{u_1} α) (CompleteLattice.toConditionallyCompleteLattice.{u_1} (Filter.{u_1} α) (Filter.instCompleteLatticeFilter.{u_1} α))) ι (fun (i : ι) => f i))
+  forall {α : Type.{u2}} {ι : Sort.{u1}} [_inst_1 : MeasurableSpace.{u2} α] {f : ι -> (Filter.{u2} α)} [_inst_2 : forall (i : ι), Filter.IsMeasurablyGenerated.{u2} α _inst_1 (f i)], Filter.IsMeasurablyGenerated.{u2} α _inst_1 (iInf.{u2, u1} (Filter.{u2} α) (ConditionallyCompleteLattice.toInfSet.{u2} (Filter.{u2} α) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Filter.{u2} α) (Filter.instCompleteLatticeFilter.{u2} α))) ι (fun (i : ι) => f i))
 Case conversion may be inaccurate. Consider using '#align filter.infi_is_measurably_generated Filter.iInf_isMeasurablyGeneratedₓ'. -/
 instance iInf_isMeasurablyGenerated {f : ι → Filter α} [∀ i, IsMeasurablyGenerated (f i)] :
     IsMeasurablyGenerated (⨅ i, f i) :=
Diff
@@ -2412,7 +2412,7 @@ def finTwoArrow : (Fin 2 → α) ≃ᵐ α × α :=
 
 /- warning: measurable_equiv.pi_fin_succ_above_equiv -> MeasurableEquiv.piFinSuccAboveEquiv is a dubious translation:
 lean 3 declaration is
-  forall {n : Nat} (α : (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> Type.{u1}) [_inst_7 : forall (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))), MeasurableSpace.{u1} (α i)] (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))), MeasurableEquiv.{u1, u1} (forall (j : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))), α j) (Prod.{u1, u1} (α i) (forall (j : Fin n), α (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe n) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) => (Fin n) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) (Fin.succAbove n i) j))) (MeasurableSpace.pi.{0, u1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (fun (j : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) => α j) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) => _inst_7 a)) (Prod.instMeasurableSpace.{u1, u1} (α i) (forall (j : Fin n), α (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe n) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) => (Fin n) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) (Fin.succAbove n i) j)) (_inst_7 i) (MeasurableSpace.pi.{0, u1} (Fin n) (fun (j : Fin n) => α (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe n) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) => (Fin n) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) (Fin.succAbove n i) j)) (fun (a : Fin n) => _inst_7 (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe n) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) => (Fin n) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) (Fin.succAbove n i) a))))
+  forall {n : Nat} (α : (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> Type.{u1}) [_inst_7 : forall (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))), MeasurableSpace.{u1} (α i)] (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))), MeasurableEquiv.{u1, u1} (forall (j : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))), α j) (Prod.{u1, u1} (α i) (forall (j : Fin n), α (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe n) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) => (Fin n) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) (Fin.succAbove n i) j))) (MeasurableSpace.pi.{0, u1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (fun (j : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) => α j) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) => _inst_7 a)) (Prod.instMeasurableSpace.{u1, u1} (α i) (forall (j : Fin n), α (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe n) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) => (Fin n) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) (Fin.succAbove n i) j)) (_inst_7 i) (MeasurableSpace.pi.{0, u1} (Fin n) (fun (j : Fin n) => α (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe n) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) => (Fin n) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) (Fin.succAbove n i) j)) (fun (a : Fin n) => _inst_7 (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe n) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) => (Fin n) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) (Fin.succAbove n i) a))))
 but is expected to have type
   forall {n : Nat} (α : (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) -> Type.{u1}) [_inst_7 : forall (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))), MeasurableSpace.{u1} (α i)] (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))), MeasurableEquiv.{u1, u1} (forall (j : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))), α j) (Prod.{u1, u1} (α i) (forall (j : Fin n), α (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin n) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.succAbove n i) j))) (MeasurableSpace.pi.{0, u1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (j : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => α j) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => _inst_7 a)) (Prod.instMeasurableSpace.{u1, u1} (α i) (forall (j : Fin n), α (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin n) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.succAbove n i) j)) (_inst_7 i) (MeasurableSpace.pi.{0, u1} (Fin n) (fun (j : Fin n) => α (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin n) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.succAbove n i) j)) (fun (a : Fin n) => _inst_7 (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin n) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.succAbove n i) a))))
 Case conversion may be inaccurate. Consider using '#align measurable_equiv.pi_fin_succ_above_equiv MeasurableEquiv.piFinSuccAboveEquivₓ'. -/
Diff
@@ -87,7 +87,7 @@ protected def map (f : α → β) (m : MeasurableSpace α) : MeasurableSpace β
   MeasurableSet' s := measurable_set[m] <| f ⁻¹' s
   measurable_set_empty := m.measurable_set_empty
   measurable_set_compl s hs := m.measurable_set_compl _ hs
-  measurable_set_unionᵢ f hf := by
+  measurable_set_iUnion f hf := by
     rw [preimage_Union]
     exact m.measurable_set_Union _ hf
 #align measurable_space.map MeasurableSpace.map
@@ -115,9 +115,9 @@ protected def comap (f : α → β) (m : MeasurableSpace β) : MeasurableSpace 
   MeasurableSet' s := ∃ s', measurable_set[m] s' ∧ f ⁻¹' s' = s
   measurable_set_empty := ⟨∅, m.measurable_set_empty, rfl⟩
   measurable_set_compl := fun s ⟨s', h₁, h₂⟩ => ⟨s'ᶜ, m.measurable_set_compl _ h₁, h₂ ▸ rfl⟩
-  measurable_set_unionᵢ s hs :=
+  measurable_set_iUnion s hs :=
     let ⟨s', hs'⟩ := Classical.axiom_of_choice hs
-    ⟨⋃ i, s' i, m.measurable_set_unionᵢ _ fun i => (hs' i).left, by simp [hs']⟩
+    ⟨⋃ i, s' i, m.measurable_set_iUnion _ fun i => (hs' i).left, by simp [hs']⟩
 #align measurable_space.comap MeasurableSpace.comap
 -/
 
@@ -224,16 +224,16 @@ theorem comap_sup : (m₁ ⊔ m₂).comap g = m₁.comap g ⊔ m₂.comap g :=
   (gc_comap_map g).l_sup
 #align measurable_space.comap_sup MeasurableSpace.comap_sup
 
-/- warning: measurable_space.comap_supr -> MeasurableSpace.comap_supᵢ is a dubious translation:
+/- warning: measurable_space.comap_supr -> MeasurableSpace.comap_iSup is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {g : β -> α} {m : ι -> (MeasurableSpace.{u1} α)}, Eq.{succ u2} (MeasurableSpace.{u2} β) (MeasurableSpace.comap.{u2, u1} β α g (supᵢ.{u1, u3} (MeasurableSpace.{u1} α) (ConditionallyCompleteLattice.toHasSup.{u1} (MeasurableSpace.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.completeLattice.{u1} α))) ι (fun (i : ι) => m i))) (supᵢ.{u2, u3} (MeasurableSpace.{u2} β) (ConditionallyCompleteLattice.toHasSup.{u2} (MeasurableSpace.{u2} β) (CompleteLattice.toConditionallyCompleteLattice.{u2} (MeasurableSpace.{u2} β) (MeasurableSpace.completeLattice.{u2} β))) ι (fun (i : ι) => MeasurableSpace.comap.{u2, u1} β α g (m i)))
+  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {g : β -> α} {m : ι -> (MeasurableSpace.{u1} α)}, Eq.{succ u2} (MeasurableSpace.{u2} β) (MeasurableSpace.comap.{u2, u1} β α g (iSup.{u1, u3} (MeasurableSpace.{u1} α) (ConditionallyCompleteLattice.toHasSup.{u1} (MeasurableSpace.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.completeLattice.{u1} α))) ι (fun (i : ι) => m i))) (iSup.{u2, u3} (MeasurableSpace.{u2} β) (ConditionallyCompleteLattice.toHasSup.{u2} (MeasurableSpace.{u2} β) (CompleteLattice.toConditionallyCompleteLattice.{u2} (MeasurableSpace.{u2} β) (MeasurableSpace.completeLattice.{u2} β))) ι (fun (i : ι) => MeasurableSpace.comap.{u2, u1} β α g (m i)))
 but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {ι : Sort.{u1}} {g : β -> α} {m : ι -> (MeasurableSpace.{u3} α)}, Eq.{succ u2} (MeasurableSpace.{u2} β) (MeasurableSpace.comap.{u2, u3} β α g (supᵢ.{u3, u1} (MeasurableSpace.{u3} α) (ConditionallyCompleteLattice.toSupSet.{u3} (MeasurableSpace.{u3} α) (CompleteLattice.toConditionallyCompleteLattice.{u3} (MeasurableSpace.{u3} α) (MeasurableSpace.instCompleteLatticeMeasurableSpace.{u3} α))) ι (fun (i : ι) => m i))) (supᵢ.{u2, u1} (MeasurableSpace.{u2} β) (ConditionallyCompleteLattice.toSupSet.{u2} (MeasurableSpace.{u2} β) (CompleteLattice.toConditionallyCompleteLattice.{u2} (MeasurableSpace.{u2} β) (MeasurableSpace.instCompleteLatticeMeasurableSpace.{u2} β))) ι (fun (i : ι) => MeasurableSpace.comap.{u2, u3} β α g (m i)))
-Case conversion may be inaccurate. Consider using '#align measurable_space.comap_supr MeasurableSpace.comap_supᵢₓ'. -/
+  forall {α : Type.{u3}} {β : Type.{u2}} {ι : Sort.{u1}} {g : β -> α} {m : ι -> (MeasurableSpace.{u3} α)}, Eq.{succ u2} (MeasurableSpace.{u2} β) (MeasurableSpace.comap.{u2, u3} β α g (iSup.{u3, u1} (MeasurableSpace.{u3} α) (ConditionallyCompleteLattice.toSupSet.{u3} (MeasurableSpace.{u3} α) (CompleteLattice.toConditionallyCompleteLattice.{u3} (MeasurableSpace.{u3} α) (MeasurableSpace.instCompleteLatticeMeasurableSpace.{u3} α))) ι (fun (i : ι) => m i))) (iSup.{u2, u1} (MeasurableSpace.{u2} β) (ConditionallyCompleteLattice.toSupSet.{u2} (MeasurableSpace.{u2} β) (CompleteLattice.toConditionallyCompleteLattice.{u2} (MeasurableSpace.{u2} β) (MeasurableSpace.instCompleteLatticeMeasurableSpace.{u2} β))) ι (fun (i : ι) => MeasurableSpace.comap.{u2, u3} β α g (m i)))
+Case conversion may be inaccurate. Consider using '#align measurable_space.comap_supr MeasurableSpace.comap_iSupₓ'. -/
 @[simp]
-theorem comap_supᵢ {m : ι → MeasurableSpace α} : (⨆ i, m i).comap g = ⨆ i, (m i).comap g :=
-  (gc_comap_map g).l_supᵢ
-#align measurable_space.comap_supr MeasurableSpace.comap_supᵢ
+theorem comap_iSup {m : ι → MeasurableSpace α} : (⨆ i, m i).comap g = ⨆ i, (m i).comap g :=
+  (gc_comap_map g).l_iSup
+#align measurable_space.comap_supr MeasurableSpace.comap_iSup
 
 /- warning: measurable_space.map_top -> MeasurableSpace.map_top is a dubious translation:
 lean 3 declaration is
@@ -257,16 +257,16 @@ theorem map_inf : (m₁ ⊓ m₂).map f = m₁.map f ⊓ m₂.map f :=
   (gc_comap_map f).u_inf
 #align measurable_space.map_inf MeasurableSpace.map_inf
 
-/- warning: measurable_space.map_infi -> MeasurableSpace.map_infᵢ is a dubious translation:
+/- warning: measurable_space.map_infi -> MeasurableSpace.map_iInf is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {f : α -> β} {m : ι -> (MeasurableSpace.{u1} α)}, Eq.{succ u2} (MeasurableSpace.{u2} β) (MeasurableSpace.map.{u1, u2} α β f (infᵢ.{u1, u3} (MeasurableSpace.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (MeasurableSpace.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.completeLattice.{u1} α))) ι (fun (i : ι) => m i))) (infᵢ.{u2, u3} (MeasurableSpace.{u2} β) (ConditionallyCompleteLattice.toHasInf.{u2} (MeasurableSpace.{u2} β) (CompleteLattice.toConditionallyCompleteLattice.{u2} (MeasurableSpace.{u2} β) (MeasurableSpace.completeLattice.{u2} β))) ι (fun (i : ι) => MeasurableSpace.map.{u1, u2} α β f (m i)))
+  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {f : α -> β} {m : ι -> (MeasurableSpace.{u1} α)}, Eq.{succ u2} (MeasurableSpace.{u2} β) (MeasurableSpace.map.{u1, u2} α β f (iInf.{u1, u3} (MeasurableSpace.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (MeasurableSpace.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.completeLattice.{u1} α))) ι (fun (i : ι) => m i))) (iInf.{u2, u3} (MeasurableSpace.{u2} β) (ConditionallyCompleteLattice.toHasInf.{u2} (MeasurableSpace.{u2} β) (CompleteLattice.toConditionallyCompleteLattice.{u2} (MeasurableSpace.{u2} β) (MeasurableSpace.completeLattice.{u2} β))) ι (fun (i : ι) => MeasurableSpace.map.{u1, u2} α β f (m i)))
 but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {ι : Sort.{u1}} {f : α -> β} {m : ι -> (MeasurableSpace.{u3} α)}, Eq.{succ u2} (MeasurableSpace.{u2} β) (MeasurableSpace.map.{u3, u2} α β f (infᵢ.{u3, u1} (MeasurableSpace.{u3} α) (ConditionallyCompleteLattice.toInfSet.{u3} (MeasurableSpace.{u3} α) (CompleteLattice.toConditionallyCompleteLattice.{u3} (MeasurableSpace.{u3} α) (MeasurableSpace.instCompleteLatticeMeasurableSpace.{u3} α))) ι (fun (i : ι) => m i))) (infᵢ.{u2, u1} (MeasurableSpace.{u2} β) (ConditionallyCompleteLattice.toInfSet.{u2} (MeasurableSpace.{u2} β) (CompleteLattice.toConditionallyCompleteLattice.{u2} (MeasurableSpace.{u2} β) (MeasurableSpace.instCompleteLatticeMeasurableSpace.{u2} β))) ι (fun (i : ι) => MeasurableSpace.map.{u3, u2} α β f (m i)))
-Case conversion may be inaccurate. Consider using '#align measurable_space.map_infi MeasurableSpace.map_infᵢₓ'. -/
+  forall {α : Type.{u3}} {β : Type.{u2}} {ι : Sort.{u1}} {f : α -> β} {m : ι -> (MeasurableSpace.{u3} α)}, Eq.{succ u2} (MeasurableSpace.{u2} β) (MeasurableSpace.map.{u3, u2} α β f (iInf.{u3, u1} (MeasurableSpace.{u3} α) (ConditionallyCompleteLattice.toInfSet.{u3} (MeasurableSpace.{u3} α) (CompleteLattice.toConditionallyCompleteLattice.{u3} (MeasurableSpace.{u3} α) (MeasurableSpace.instCompleteLatticeMeasurableSpace.{u3} α))) ι (fun (i : ι) => m i))) (iInf.{u2, u1} (MeasurableSpace.{u2} β) (ConditionallyCompleteLattice.toInfSet.{u2} (MeasurableSpace.{u2} β) (CompleteLattice.toConditionallyCompleteLattice.{u2} (MeasurableSpace.{u2} β) (MeasurableSpace.instCompleteLatticeMeasurableSpace.{u2} β))) ι (fun (i : ι) => MeasurableSpace.map.{u3, u2} α β f (m i)))
+Case conversion may be inaccurate. Consider using '#align measurable_space.map_infi MeasurableSpace.map_iInfₓ'. -/
 @[simp]
-theorem map_infᵢ {m : ι → MeasurableSpace α} : (⨅ i, m i).map f = ⨅ i, (m i).map f :=
-  (gc_comap_map f).u_infᵢ
-#align measurable_space.map_infi MeasurableSpace.map_infᵢ
+theorem map_iInf {m : ι → MeasurableSpace α} : (⨅ i, m i).map f = ⨅ i, (m i).map f :=
+  (gc_comap_map f).u_iInf
+#align measurable_space.map_infi MeasurableSpace.map_iInf
 
 /- warning: measurable_space.comap_map_le -> MeasurableSpace.comap_map_le is a dubious translation:
 lean 3 declaration is
@@ -658,7 +658,7 @@ theorem measurable_to_countable [MeasurableSpace α] [Countable α] [MeasurableS
   by
   intro s hs
   rw [← bUnion_preimage_singleton]
-  refine' MeasurableSet.unionᵢ fun y => MeasurableSet.unionᵢ fun hy => _
+  refine' MeasurableSet.iUnion fun y => MeasurableSet.iUnion fun hy => _
   by_cases hyf : y ∈ range f
   · rcases hyf with ⟨y, rfl⟩
     apply h
@@ -726,7 +726,7 @@ theorem measurable_findGreatest {p : α → ℕ → Prop} [∀ x, DecidablePred
   refine' measurable_findGreatest' fun k hk => _
   simp only [Nat.findGreatest_eq_iff, set_of_and, set_of_forall, ← compl_set_of]
   repeat'
-    apply_rules [MeasurableSet.inter, MeasurableSet.const, MeasurableSet.interᵢ,
+    apply_rules [MeasurableSet.inter, MeasurableSet.const, MeasurableSet.iInter,
         MeasurableSet.compl, hN] <;>
       try intros
 #align measurable_find_greatest measurable_findGreatest
@@ -1213,7 +1213,7 @@ theorem measurable_from_prod_countable [Countable β] [MeasurableSingletonClass
     ext1 ⟨x, y⟩
     simp [and_assoc', and_left_comm]
   rw [this]
-  exact MeasurableSet.unionᵢ fun y => (hf y hs).Prod (measurable_set_singleton y)
+  exact MeasurableSet.iUnion fun y => (hf y hs).Prod (measurable_set_singleton y)
 #align measurable_from_prod_countable measurable_from_prod_countable
 
 /- warning: measurable.find -> Measurable.find is a dubious translation:
@@ -1245,7 +1245,7 @@ theorem exists_measurable_piecewise_nat {m : MeasurableSpace α} (t : ℕ → Se
   classical
     let p : ℕ → β → Prop := fun n x => x ∈ t n ∪ (⋃ k, t k)ᶜ
     have M : ∀ n, MeasurableSet { x | p n x } := fun n =>
-      (t_meas n).union (MeasurableSet.compl (MeasurableSet.unionᵢ t_meas))
+      (t_meas n).union (MeasurableSet.compl (MeasurableSet.iUnion t_meas))
     have P : ∀ x, ∃ n, p n x := by
       intro x
       by_cases H : ∀ i : ℕ, x ∉ t i
@@ -1289,8 +1289,8 @@ but is expected to have type
   forall {α : Type.{u3}} {δ : Type.{u2}} {π : δ -> Type.{u1}} [_inst_1 : MeasurableSpace.{u3} α] [_inst_2 : forall (a : δ), MeasurableSpace.{u1} (π a)] {g : α -> (forall (a : δ), π a)}, Iff (Measurable.{u3, max u2 u1} α (forall (a : δ), π a) _inst_1 (MeasurableSpace.pi.{u2, u1} δ (fun (a : δ) => π a) (fun (a : δ) => _inst_2 a)) g) (forall (a : δ), Measurable.{u3, u1} α (π a) _inst_1 (_inst_2 a) (fun (x : α) => g x a))
 Case conversion may be inaccurate. Consider using '#align measurable_pi_iff measurable_pi_iffₓ'. -/
 theorem measurable_pi_iff {g : α → ∀ a, π a} : Measurable g ↔ ∀ a, Measurable fun x => g x a := by
-  simp_rw [measurable_iff_comap_le, MeasurableSpace.pi, MeasurableSpace.comap_supᵢ,
-    MeasurableSpace.comap_comp, Function.comp, supᵢ_le_iff]
+  simp_rw [measurable_iff_comap_le, MeasurableSpace.pi, MeasurableSpace.comap_iSup,
+    MeasurableSpace.comap_comp, Function.comp, iSup_le_iff]
 #align measurable_pi_iff measurable_pi_iff
 
 /- warning: measurable_pi_apply -> measurable_pi_apply is a dubious translation:
@@ -1301,7 +1301,7 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align measurable_pi_apply measurable_pi_applyₓ'. -/
 @[measurability]
 theorem measurable_pi_apply (a : δ) : Measurable fun f : ∀ a, π a => f a :=
-  Measurable.of_comap_le <| le_supᵢ _ a
+  Measurable.of_comap_le <| le_iSup _ a
 #align measurable_pi_apply measurable_pi_apply
 
 /- warning: measurable.eval -> Measurable.eval is a dubious translation:
@@ -1362,7 +1362,7 @@ theorem MeasurableSet.pi {s : Set δ} {t : ∀ i : δ, Set (π i)} (hs : s.Count
     (ht : ∀ i ∈ s, MeasurableSet (t i)) : MeasurableSet (s.pi t) :=
   by
   rw [pi_def]
-  exact MeasurableSet.binterᵢ hs fun i hi => measurable_pi_apply _ (ht i hi)
+  exact MeasurableSet.biInter hs fun i hi => measurable_pi_apply _ (ht i hi)
 #align measurable_set.pi MeasurableSet.pi
 
 /- warning: measurable_set.univ_pi -> MeasurableSet.univ_pi is a dubious translation:
@@ -2543,7 +2543,7 @@ noncomputable def schroederBernstein {f : α → β} {g : β → α} (hf : Measu
     compl_subset_compl.mpr <| Set.image_subset _ <| compl_subset_compl.mpr <| Set.image_subset _ hAB
   let X : ℕ → Set α := fun n => (F^[n]) univ
   refine' ⟨Inter X, _, _⟩
-  · apply MeasurableSet.interᵢ
+  · apply MeasurableSet.iInter
     intro n
     induction' n with n ih
     · exact MeasurableSet.univ
@@ -2559,7 +2559,7 @@ noncomputable def schroederBernstein {f : α → β} {g : β → α} (hf : Measu
   rintro x hx ⟨y, hy, rfl⟩
   rw [mem_Inter] at hx
   apply hy
-  rw [(inj_on_of_injective hf.injective _).image_interᵢ_eq]
+  rw [(inj_on_of_injective hf.injective _).image_iInter_eq]
   swap
   · infer_instance
   rw [mem_Inter]
@@ -2719,13 +2719,13 @@ alias principal_is_measurably_generated_iff ↔
   _ _root_.measurable_set.principal_is_measurably_generated
 #align measurable_set.principal_is_measurably_generated MeasurableSet.principal_isMeasurablyGenerated
 
-/- warning: filter.infi_is_measurably_generated -> Filter.infᵢ_isMeasurablyGenerated is a dubious translation:
+/- warning: filter.infi_is_measurably_generated -> Filter.iInf_isMeasurablyGenerated is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u_1}} {ι : Sort.{u_6}} [_inst_1 : MeasurableSpace.{u_1} α] {f : ι -> (Filter.{u_1} α)} [_inst_2 : forall (i : ι), Filter.IsMeasurablyGenerated.{u_1} α _inst_1 (f i)], Filter.IsMeasurablyGenerated.{u_1} α _inst_1 (infᵢ.{u_1, u_6} (Filter.{u_1} α) (ConditionallyCompleteLattice.toHasInf.{u_1} (Filter.{u_1} α) (CompleteLattice.toConditionallyCompleteLattice.{u_1} (Filter.{u_1} α) (Filter.completeLattice.{u_1} α))) ι (fun (i : ι) => f i))
+  forall {α : Type.{u_1}} {ι : Sort.{u_6}} [_inst_1 : MeasurableSpace.{u_1} α] {f : ι -> (Filter.{u_1} α)} [_inst_2 : forall (i : ι), Filter.IsMeasurablyGenerated.{u_1} α _inst_1 (f i)], Filter.IsMeasurablyGenerated.{u_1} α _inst_1 (iInf.{u_1, u_6} (Filter.{u_1} α) (ConditionallyCompleteLattice.toHasInf.{u_1} (Filter.{u_1} α) (CompleteLattice.toConditionallyCompleteLattice.{u_1} (Filter.{u_1} α) (Filter.completeLattice.{u_1} α))) ι (fun (i : ι) => f i))
 but is expected to have type
-  forall {α : Type.{u_1}} {ι : Prop} [_inst_1 : MeasurableSpace.{u_1} α] {f : ι -> (Filter.{u_1} α)} [_inst_2 : forall (i : ι), Filter.IsMeasurablyGenerated.{u_1} α _inst_1 (f i)], Filter.IsMeasurablyGenerated.{u_1} α _inst_1 (infᵢ.{u_1, 0} (Filter.{u_1} α) (ConditionallyCompleteLattice.toInfSet.{u_1} (Filter.{u_1} α) (CompleteLattice.toConditionallyCompleteLattice.{u_1} (Filter.{u_1} α) (Filter.instCompleteLatticeFilter.{u_1} α))) ι (fun (i : ι) => f i))
-Case conversion may be inaccurate. Consider using '#align filter.infi_is_measurably_generated Filter.infᵢ_isMeasurablyGeneratedₓ'. -/
-instance infᵢ_isMeasurablyGenerated {f : ι → Filter α} [∀ i, IsMeasurablyGenerated (f i)] :
+  forall {α : Type.{u_1}} {ι : Prop} [_inst_1 : MeasurableSpace.{u_1} α] {f : ι -> (Filter.{u_1} α)} [_inst_2 : forall (i : ι), Filter.IsMeasurablyGenerated.{u_1} α _inst_1 (f i)], Filter.IsMeasurablyGenerated.{u_1} α _inst_1 (iInf.{u_1, 0} (Filter.{u_1} α) (ConditionallyCompleteLattice.toInfSet.{u_1} (Filter.{u_1} α) (CompleteLattice.toConditionallyCompleteLattice.{u_1} (Filter.{u_1} α) (Filter.instCompleteLatticeFilter.{u_1} α))) ι (fun (i : ι) => f i))
+Case conversion may be inaccurate. Consider using '#align filter.infi_is_measurably_generated Filter.iInf_isMeasurablyGeneratedₓ'. -/
+instance iInf_isMeasurablyGenerated {f : ι → Filter α} [∀ i, IsMeasurablyGenerated (f i)] :
     IsMeasurablyGenerated (⨅ i, f i) :=
   by
   refine' ⟨fun s hs => _⟩
@@ -2736,9 +2736,9 @@ instance infᵢ_isMeasurablyGenerated {f : ι → Filter α} [∀ i, IsMeasurabl
   · rw [← equiv.plift.surjective.infi_comp, mem_infi]
     refine' ⟨t, ht, U, hUf, rfl⟩
   · haveI := ht.countable.to_encodable
-    exact MeasurableSet.interᵢ fun i => (hU i).1
+    exact MeasurableSet.iInter fun i => (hU i).1
   · exact Inter_mono fun i => (hU i).2
-#align filter.infi_is_measurably_generated Filter.infᵢ_isMeasurablyGenerated
+#align filter.infi_is_measurably_generated Filter.iInf_isMeasurablyGenerated
 
 end Filter
 
@@ -2755,7 +2755,7 @@ def IsCountablySpanning (C : Set (Set α)) : Prop :=
 #print isCountablySpanning_measurableSet /-
 theorem isCountablySpanning_measurableSet [MeasurableSpace α] :
     IsCountablySpanning { s : Set α | MeasurableSet s } :=
-  ⟨fun _ => univ, fun _ => MeasurableSet.univ, unionᵢ_const _⟩
+  ⟨fun _ => univ, fun _ => MeasurableSet.univ, iUnion_const _⟩
 #align is_countably_spanning_measurable_set isCountablySpanning_measurableSet
 -/
 
@@ -2925,10 +2925,10 @@ Case conversion may be inaccurate. Consider using '#align measurable_set.measura
 theorem measurableSet_blimsup {s : ℕ → Set α} {p : ℕ → Prop} (h : ∀ n, p n → MeasurableSet (s n)) :
     MeasurableSet <| Filter.blimsup s Filter.atTop p :=
   by
-  simp only [Filter.blimsup_eq_infᵢ_bsupᵢ_of_nat, supr_eq_Union, infi_eq_Inter]
+  simp only [Filter.blimsup_eq_iInf_biSup_of_nat, supr_eq_Union, infi_eq_Inter]
   exact
-    MeasurableSet.interᵢ fun n =>
-      MeasurableSet.unionᵢ fun m => MeasurableSet.unionᵢ fun hm => h m hm.1
+    MeasurableSet.iInter fun n =>
+      MeasurableSet.iUnion fun m => MeasurableSet.iUnion fun hm => h m hm.1
 #align measurable_set.measurable_set_blimsup MeasurableSet.measurableSet_blimsup
 
 /- warning: measurable_set.measurable_set_bliminf -> MeasurableSet.measurableSet_bliminf is a dubious translation:
@@ -2941,10 +2941,10 @@ Case conversion may be inaccurate. Consider using '#align measurable_set.measura
 theorem measurableSet_bliminf {s : ℕ → Set α} {p : ℕ → Prop} (h : ∀ n, p n → MeasurableSet (s n)) :
     MeasurableSet <| Filter.bliminf s Filter.atTop p :=
   by
-  simp only [Filter.bliminf_eq_supᵢ_binfᵢ_of_nat, infi_eq_Inter, supr_eq_Union]
+  simp only [Filter.bliminf_eq_iSup_biInf_of_nat, infi_eq_Inter, supr_eq_Union]
   exact
-    MeasurableSet.unionᵢ fun n =>
-      MeasurableSet.interᵢ fun m => MeasurableSet.interᵢ fun hm => h m hm.1
+    MeasurableSet.iUnion fun n =>
+      MeasurableSet.iInter fun m => MeasurableSet.iInter fun hm => h m hm.1
 #align measurable_set.measurable_set_bliminf MeasurableSet.measurableSet_bliminf
 
 /- warning: measurable_set.measurable_set_limsup -> MeasurableSet.measurableSet_limsup is a dubious translation:
Diff
@@ -676,48 +676,31 @@ theorem measurable_to_countable' [MeasurableSpace α] [Countable α] [Measurable
   measurable_to_countable fun y => h (f y)
 #align measurable_to_countable' measurable_to_countable'
 
-/- warning: measurable_unit -> measurable_unit is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] (f : Unit -> α), Measurable.{0, u1} Unit α PUnit.measurableSpace.{0} _inst_1 f
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] (f : Unit -> α), Measurable.{0, u1} Unit α instMeasurableSpacePUnit.{0} _inst_1 f
-Case conversion may be inaccurate. Consider using '#align measurable_unit measurable_unitₓ'. -/
+#print measurable_unit /-
 @[measurability]
 theorem measurable_unit [MeasurableSpace α] (f : Unit → α) : Measurable f :=
   measurable_from_top
 #align measurable_unit measurable_unit
+-/
 
 section Nat
 
 variable [MeasurableSpace α]
 
-/- warning: measurable_from_nat -> measurable_from_nat is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {f : Nat -> α}, Measurable.{0, u1} Nat α Nat.measurableSpace _inst_1 f
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {f : Nat -> α}, Measurable.{0, u1} Nat α instMeasurableSpaceNat _inst_1 f
-Case conversion may be inaccurate. Consider using '#align measurable_from_nat measurable_from_natₓ'. -/
+#print measurable_from_nat /-
 @[measurability]
 theorem measurable_from_nat {f : ℕ → α} : Measurable f :=
   measurable_from_top
 #align measurable_from_nat measurable_from_nat
+-/
 
-/- warning: measurable_to_nat -> measurable_to_nat is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {f : α -> Nat}, (forall (y : α), MeasurableSet.{u1} α _inst_1 (Set.preimage.{u1, 0} α Nat f (Singleton.singleton.{0, 0} Nat (Set.{0} Nat) (Set.hasSingleton.{0} Nat) (f y)))) -> (Measurable.{u1, 0} α Nat _inst_1 Nat.measurableSpace f)
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {f : α -> Nat}, (forall (y : α), MeasurableSet.{u1} α _inst_1 (Set.preimage.{u1, 0} α Nat f (Singleton.singleton.{0, 0} Nat (Set.{0} Nat) (Set.instSingletonSet.{0} Nat) (f y)))) -> (Measurable.{u1, 0} α Nat _inst_1 instMeasurableSpaceNat f)
-Case conversion may be inaccurate. Consider using '#align measurable_to_nat measurable_to_natₓ'. -/
+#print measurable_to_nat /-
 theorem measurable_to_nat {f : α → ℕ} : (∀ y, MeasurableSet (f ⁻¹' {f y})) → Measurable f :=
   measurable_to_countable
 #align measurable_to_nat measurable_to_nat
+-/
 
-/- warning: measurable_to_bool -> measurable_to_bool is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {f : α -> Bool}, (MeasurableSet.{u1} α _inst_1 (Set.preimage.{u1, 0} α Bool f (Singleton.singleton.{0, 0} Bool (Set.{0} Bool) (Set.hasSingleton.{0} Bool) Bool.true))) -> (Measurable.{u1, 0} α Bool _inst_1 Bool.measurableSpace f)
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {f : α -> Bool}, (MeasurableSet.{u1} α _inst_1 (Set.preimage.{u1, 0} α Bool f (Singleton.singleton.{0, 0} Bool (Set.{0} Bool) (Set.instSingletonSet.{0} Bool) Bool.true))) -> (Measurable.{u1, 0} α Bool _inst_1 instMeasurableSpaceBool f)
-Case conversion may be inaccurate. Consider using '#align measurable_to_bool measurable_to_boolₓ'. -/
+#print measurable_to_bool /-
 theorem measurable_to_bool {f : α → Bool} (h : MeasurableSet (f ⁻¹' {true})) : Measurable f :=
   by
   apply measurable_to_countable'
@@ -726,25 +709,17 @@ theorem measurable_to_bool {f : α → Bool} (h : MeasurableSet (f ⁻¹' {true}
     rw [← preimage_compl, Bool.compl_singleton, Bool.not_true]
   exact h
 #align measurable_to_bool measurable_to_bool
+-/
 
-/- warning: measurable_find_greatest' -> measurable_findGreatest' is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {p : α -> Nat -> Prop} [_inst_2 : forall (x : α), DecidablePred.{1} Nat (p x)] {N : Nat}, (forall (k : Nat), (LE.le.{0} Nat Nat.hasLe k N) -> (MeasurableSet.{u1} α _inst_1 (setOf.{u1} α (fun (x : α) => Eq.{1} Nat (Nat.findGreatest (p x) (fun (a : Nat) => _inst_2 x a) N) k)))) -> (Measurable.{u1, 0} α Nat _inst_1 Nat.measurableSpace (fun (x : α) => Nat.findGreatest (p x) (fun (a : Nat) => _inst_2 x a) N))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {p : α -> Nat -> Prop} [_inst_2 : forall (x : α), DecidablePred.{1} Nat (p x)] {N : Nat}, (forall (k : Nat), (LE.le.{0} Nat instLENat k N) -> (MeasurableSet.{u1} α _inst_1 (setOf.{u1} α (fun (x : α) => Eq.{1} Nat (Nat.findGreatest (p x) (fun (a : Nat) => _inst_2 x a) N) k)))) -> (Measurable.{u1, 0} α Nat _inst_1 instMeasurableSpaceNat (fun (x : α) => Nat.findGreatest (p x) (fun (a : Nat) => _inst_2 x a) N))
-Case conversion may be inaccurate. Consider using '#align measurable_find_greatest' measurable_findGreatest'ₓ'. -/
+#print measurable_findGreatest' /-
 theorem measurable_findGreatest' {p : α → ℕ → Prop} [∀ x, DecidablePred (p x)] {N : ℕ}
     (hN : ∀ k ≤ N, MeasurableSet { x | Nat.findGreatest (p x) N = k }) :
     Measurable fun x => Nat.findGreatest (p x) N :=
   measurable_to_nat fun x => hN _ N.findGreatest_le
 #align measurable_find_greatest' measurable_findGreatest'
+-/
 
-/- warning: measurable_find_greatest -> measurable_findGreatest is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {p : α -> Nat -> Prop} [_inst_2 : forall (x : α), DecidablePred.{1} Nat (p x)] {N : Nat}, (forall (k : Nat), (LE.le.{0} Nat Nat.hasLe k N) -> (MeasurableSet.{u1} α _inst_1 (setOf.{u1} α (fun (x : α) => p x k)))) -> (Measurable.{u1, 0} α Nat _inst_1 Nat.measurableSpace (fun (x : α) => Nat.findGreatest (p x) (fun (a : Nat) => _inst_2 x a) N))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {p : α -> Nat -> Prop} [_inst_2 : forall (x : α), DecidablePred.{1} Nat (p x)] {N : Nat}, (forall (k : Nat), (LE.le.{0} Nat instLENat k N) -> (MeasurableSet.{u1} α _inst_1 (setOf.{u1} α (fun (x : α) => p x k)))) -> (Measurable.{u1, 0} α Nat _inst_1 instMeasurableSpaceNat (fun (x : α) => Nat.findGreatest (p x) (fun (a : Nat) => _inst_2 x a) N))
-Case conversion may be inaccurate. Consider using '#align measurable_find_greatest measurable_findGreatestₓ'. -/
+#print measurable_findGreatest /-
 theorem measurable_findGreatest {p : α → ℕ → Prop} [∀ x, DecidablePred (p x)] {N}
     (hN : ∀ k ≤ N, MeasurableSet { x | p x k }) : Measurable fun x => Nat.findGreatest (p x) N :=
   by
@@ -755,13 +730,9 @@ theorem measurable_findGreatest {p : α → ℕ → Prop} [∀ x, DecidablePred
         MeasurableSet.compl, hN] <;>
       try intros
 #align measurable_find_greatest measurable_findGreatest
+-/
 
-/- warning: measurable_find -> measurable_find is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {p : α -> Nat -> Prop} [_inst_2 : forall (x : α), DecidablePred.{1} Nat (p x)] (hp : forall (x : α), Exists.{1} Nat (fun (N : Nat) => p x N)), (forall (k : Nat), MeasurableSet.{u1} α _inst_1 (setOf.{u1} α (fun (x : α) => p x k))) -> (Measurable.{u1, 0} α Nat _inst_1 Nat.measurableSpace (fun (x : α) => Nat.find (fun (N : Nat) => p x N) (fun (a : Nat) => _inst_2 x a) (hp x)))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {p : α -> Nat -> Prop} [_inst_2 : forall (x : α), DecidablePred.{1} Nat (p x)] (hp : forall (x : α), Exists.{1} Nat (fun (N : Nat) => p x N)), (forall (k : Nat), MeasurableSet.{u1} α _inst_1 (setOf.{u1} α (fun (x : α) => p x k))) -> (Measurable.{u1, 0} α Nat _inst_1 instMeasurableSpaceNat (fun (x : α) => Nat.find (fun (N : Nat) => p x N) (fun (a : Nat) => _inst_2 x a) (hp x)))
-Case conversion may be inaccurate. Consider using '#align measurable_find measurable_findₓ'. -/
+#print measurable_find /-
 theorem measurable_find {p : α → ℕ → Prop} [∀ x, DecidablePred (p x)] (hp : ∀ x, ∃ N, p x N)
     (hm : ∀ k, MeasurableSet { x | p x k }) : Measurable fun x => Nat.find (hp x) :=
   by
@@ -769,6 +740,7 @@ theorem measurable_find {p : α → ℕ → Prop} [∀ x, DecidablePred (p x)] (
   rw [preimage_find_eq_disjointed]
   exact MeasurableSet.disjointed hm _
 #align measurable_find measurable_find
+-/
 
 end Nat
 
@@ -786,7 +758,7 @@ instance {α} {s : Setoid α} [m : MeasurableSpace α] : MeasurableSpace (Quotie
 @[to_additive]
 instance QuotientGroup.measurableSpace {G} [Group G] [MeasurableSpace G] (S : Subgroup G) :
     MeasurableSpace (G ⧸ S) :=
-  Quotient.measurableSpace
+  Quotient.instMeasurableSpace
 #align quotient_group.measurable_space QuotientGroup.measurableSpace
 #align quotient_add_group.measurable_space QuotientAddGroup.measurableSpace
 -/
@@ -800,9 +772,9 @@ theorem measurableSet_quotient {s : Setoid α} {t : Set (Quotient s)} :
 
 /- warning: measurable_from_quotient -> measurable_from_quotient is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] {s : Setoid.{succ u1} α} {f : (Quotient.{succ u1} α s) -> β}, Iff (Measurable.{u1, u2} (Quotient.{succ u1} α s) β (Quotient.measurableSpace.{u1} α s _inst_1) _inst_2 f) (Measurable.{u1, u2} α β _inst_1 _inst_2 (Function.comp.{succ u1, succ u1, succ u2} α (Quotient.{succ u1} α s) β f (Quotient.mk''.{succ u1} α s)))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] {s : Setoid.{succ u1} α} {f : (Quotient.{succ u1} α s) -> β}, Iff (Measurable.{u1, u2} (Quotient.{succ u1} α s) β (Quotient.instMeasurableSpace.{u1} α s _inst_1) _inst_2 f) (Measurable.{u1, u2} α β _inst_1 _inst_2 (Function.comp.{succ u1, succ u1, succ u2} α (Quotient.{succ u1} α s) β f (Quotient.mk''.{succ u1} α s)))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] {s : Setoid.{succ u2} α} {f : (Quotient.{succ u2} α s) -> β}, Iff (Measurable.{u2, u1} (Quotient.{succ u2} α s) β (instMeasurableSpaceQuotient.{u2} α s _inst_1) _inst_2 f) (Measurable.{u2, u1} α β _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} α (Quotient.{succ u2} α s) β f (Quotient.mk''.{succ u2} α s)))
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] {s : Setoid.{succ u2} α} {f : (Quotient.{succ u2} α s) -> β}, Iff (Measurable.{u2, u1} (Quotient.{succ u2} α s) β (Quotient.instMeasurableSpace.{u2} α s _inst_1) _inst_2 f) (Measurable.{u2, u1} α β _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} α (Quotient.{succ u2} α s) β f (Quotient.mk''.{succ u2} α s)))
 Case conversion may be inaccurate. Consider using '#align measurable_from_quotient measurable_from_quotientₓ'. -/
 theorem measurable_from_quotient {s : Setoid α} {f : Quotient s → β} :
     Measurable f ↔ Measurable (f ∘ Quotient.mk'') :=
@@ -903,9 +875,9 @@ theorem Measurable.subtype_coe {p : β → Prop} {f : α → Subtype p} (hf : Me
 
 /- warning: measurable.subtype_mk -> Measurable.subtype_mk is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {p : β -> Prop} {f : α -> β}, (Measurable.{u1, u2} α β m mβ f) -> (forall {h : forall (x : α), p (f x)}, Measurable.{u1, u2} α (Subtype.{succ u2} β p) m (Subtype.measurableSpace.{u2} β p mβ) (fun (x : α) => Subtype.mk.{succ u2} β p (f x) (h x)))
+  forall {α : Type.{u1}} {β : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {p : β -> Prop} {f : α -> β}, (Measurable.{u1, u2} α β m mβ f) -> (forall {h : forall (x : α), p (f x)}, Measurable.{u1, u2} α (Subtype.{succ u2} β p) m (Subtype.instMeasurableSpace.{u2} β p mβ) (fun (x : α) => Subtype.mk.{succ u2} β p (f x) (h x)))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} {p : β -> Prop} {f : α -> β}, (Measurable.{u2, u1} α β m mβ f) -> (forall {h : forall (x : α), p (f x)}, Measurable.{u2, u1} α (Subtype.{succ u1} β p) m (instMeasurableSpaceSubtype.{u1} β p mβ) (fun (x : α) => Subtype.mk.{succ u1} β p (f x) (h x)))
+  forall {α : Type.{u2}} {β : Type.{u1}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} {p : β -> Prop} {f : α -> β}, (Measurable.{u2, u1} α β m mβ f) -> (forall {h : forall (x : α), p (f x)}, Measurable.{u2, u1} α (Subtype.{succ u1} β p) m (Subtype.instMeasurableSpace.{u1} β p mβ) (fun (x : α) => Subtype.mk.{succ u1} β p (f x) (h x)))
 Case conversion may be inaccurate. Consider using '#align measurable.subtype_mk Measurable.subtype_mkₓ'. -/
 @[measurability]
 theorem Measurable.subtype_mk {p : β → Prop} {f : α → β} (hf : Measurable f) {h : ∀ x, p (f x)} :
@@ -915,9 +887,9 @@ theorem Measurable.subtype_mk {p : β → Prop} {f : α → β} (hf : Measurable
 
 /- warning: measurable_of_measurable_union_cover -> measurable_of_measurable_union_cover is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {f : α -> β} (s : Set.{u1} α) (t : Set.{u1} α), (MeasurableSet.{u1} α m s) -> (MeasurableSet.{u1} α m t) -> (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (Set.univ.{u1} α) (Union.union.{u1} (Set.{u1} α) (Set.hasUnion.{u1} α) s t)) -> (Measurable.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β (Subtype.measurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) m) mβ (fun (a : coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) => f ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) α (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) α (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) α (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) α (coeSubtype.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s))))) a))) -> (Measurable.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) t) β (Subtype.measurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x t) m) mβ (fun (a : coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) t) => f ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) t) α (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) t) α (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) t) α (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) t) α (coeSubtype.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x t))))) a))) -> (Measurable.{u1, u2} α β m mβ f)
+  forall {α : Type.{u1}} {β : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {f : α -> β} (s : Set.{u1} α) (t : Set.{u1} α), (MeasurableSet.{u1} α m s) -> (MeasurableSet.{u1} α m t) -> (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (Set.univ.{u1} α) (Union.union.{u1} (Set.{u1} α) (Set.hasUnion.{u1} α) s t)) -> (Measurable.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β (Subtype.instMeasurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) m) mβ (fun (a : coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) => f ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) α (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) α (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) α (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) α (coeSubtype.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s))))) a))) -> (Measurable.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) t) β (Subtype.instMeasurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x t) m) mβ (fun (a : coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) t) => f ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) t) α (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) t) α (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) t) α (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) t) α (coeSubtype.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x t))))) a))) -> (Measurable.{u1, u2} α β m mβ f)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} {f : α -> β} (s : Set.{u2} α) (t : Set.{u2} α), (MeasurableSet.{u2} α m s) -> (MeasurableSet.{u2} α m t) -> (HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) (Set.univ.{u2} α) (Union.union.{u2} (Set.{u2} α) (Set.instUnionSet.{u2} α) s t)) -> (Measurable.{u2, u1} (Set.Elem.{u2} α s) β (instMeasurableSpaceSubtype.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x s) m) mβ (fun (a : Set.Elem.{u2} α s) => f (Subtype.val.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x s) a))) -> (Measurable.{u2, u1} (Set.Elem.{u2} α t) β (instMeasurableSpaceSubtype.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x t) m) mβ (fun (a : Set.Elem.{u2} α t) => f (Subtype.val.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x t) a))) -> (Measurable.{u2, u1} α β m mβ f)
+  forall {α : Type.{u2}} {β : Type.{u1}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} {f : α -> β} (s : Set.{u2} α) (t : Set.{u2} α), (MeasurableSet.{u2} α m s) -> (MeasurableSet.{u2} α m t) -> (HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) (Set.univ.{u2} α) (Union.union.{u2} (Set.{u2} α) (Set.instUnionSet.{u2} α) s t)) -> (Measurable.{u2, u1} (Set.Elem.{u2} α s) β (Subtype.instMeasurableSpace.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x s) m) mβ (fun (a : Set.Elem.{u2} α s) => f (Subtype.val.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x s) a))) -> (Measurable.{u2, u1} (Set.Elem.{u2} α t) β (Subtype.instMeasurableSpace.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x t) m) mβ (fun (a : Set.Elem.{u2} α t) => f (Subtype.val.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x t) a))) -> (Measurable.{u2, u1} α β m mβ f)
 Case conversion may be inaccurate. Consider using '#align measurable_of_measurable_union_cover measurable_of_measurable_union_coverₓ'. -/
 theorem measurable_of_measurable_union_cover {f : α → β} (s t : Set α) (hs : MeasurableSet s)
     (ht : MeasurableSet t) (h : univ ⊆ s ∪ t) (hc : Measurable fun a : s => f a)
@@ -932,9 +904,9 @@ theorem measurable_of_measurable_union_cover {f : α → β} (s t : Set α) (hs
 
 /- warning: measurable_of_restrict_of_restrict_compl -> measurable_of_restrict_of_restrict_compl is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {f : α -> β} {s : Set.{u1} α}, (MeasurableSet.{u1} α m s) -> (Measurable.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β (Subtype.measurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) m) mβ (Set.restrict.{u1, u2} α (fun (ᾰ : α) => β) s f)) -> (Measurable.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) β (Subtype.measurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) m) mβ (Set.restrict.{u1, u2} α (fun (ᾰ : α) => β) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s) f)) -> (Measurable.{u1, u2} α β m mβ f)
+  forall {α : Type.{u1}} {β : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {f : α -> β} {s : Set.{u1} α}, (MeasurableSet.{u1} α m s) -> (Measurable.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β (Subtype.instMeasurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) m) mβ (Set.restrict.{u1, u2} α (fun (ᾰ : α) => β) s f)) -> (Measurable.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) β (Subtype.instMeasurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) m) mβ (Set.restrict.{u1, u2} α (fun (ᾰ : α) => β) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s) f)) -> (Measurable.{u1, u2} α β m mβ f)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} {f : α -> β} {s : Set.{u2} α}, (MeasurableSet.{u2} α m s) -> (Measurable.{u2, u1} (Set.Elem.{u2} α s) β (instMeasurableSpaceSubtype.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x s) m) mβ (Set.restrict.{u2, u1} α (fun (ᾰ : α) => β) s f)) -> (Measurable.{u2, u1} (Set.Elem.{u2} α (HasCompl.compl.{u2} (Set.{u2} α) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} α) (Set.instBooleanAlgebraSet.{u2} α)) s)) β (instMeasurableSpaceSubtype.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x (HasCompl.compl.{u2} (Set.{u2} α) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} α) (Set.instBooleanAlgebraSet.{u2} α)) s)) m) mβ (Set.restrict.{u2, u1} α (fun (ᾰ : α) => β) (HasCompl.compl.{u2} (Set.{u2} α) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} α) (Set.instBooleanAlgebraSet.{u2} α)) s) f)) -> (Measurable.{u2, u1} α β m mβ f)
+  forall {α : Type.{u2}} {β : Type.{u1}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} {f : α -> β} {s : Set.{u2} α}, (MeasurableSet.{u2} α m s) -> (Measurable.{u2, u1} (Set.Elem.{u2} α s) β (Subtype.instMeasurableSpace.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x s) m) mβ (Set.restrict.{u2, u1} α (fun (ᾰ : α) => β) s f)) -> (Measurable.{u2, u1} (Set.Elem.{u2} α (HasCompl.compl.{u2} (Set.{u2} α) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} α) (Set.instBooleanAlgebraSet.{u2} α)) s)) β (Subtype.instMeasurableSpace.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x (HasCompl.compl.{u2} (Set.{u2} α) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} α) (Set.instBooleanAlgebraSet.{u2} α)) s)) m) mβ (Set.restrict.{u2, u1} α (fun (ᾰ : α) => β) (HasCompl.compl.{u2} (Set.{u2} α) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} α) (Set.instBooleanAlgebraSet.{u2} α)) s) f)) -> (Measurable.{u2, u1} α β m mβ f)
 Case conversion may be inaccurate. Consider using '#align measurable_of_restrict_of_restrict_compl measurable_of_restrict_of_restrict_complₓ'. -/
 theorem measurable_of_restrict_of_restrict_compl {f : α → β} {s : Set α} (hs : MeasurableSet s)
     (h₁ : Measurable (s.restrict f)) (h₂ : Measurable (sᶜ.restrict f)) : Measurable f :=
@@ -943,9 +915,9 @@ theorem measurable_of_restrict_of_restrict_compl {f : α → β} {s : Set α} (h
 
 /- warning: measurable.dite -> Measurable.dite is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {s : Set.{u1} α} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} [_inst_1 : forall (x : α), Decidable (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s)] {f : (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) -> β}, (Measurable.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β (Subtype.measurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) m) mβ f) -> (forall {g : (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) -> β}, (Measurable.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) β (Subtype.measurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) m) mβ g) -> (MeasurableSet.{u1} α m s) -> (Measurable.{u1, u2} α β m mβ (fun (x : α) => dite.{succ u2} β (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) (_inst_1 x) (fun (hx : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) => f (Subtype.mk.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) x hx)) (fun (hx : Not (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s)) => g (Subtype.mk.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) x hx)))))
+  forall {α : Type.{u1}} {β : Type.{u2}} {s : Set.{u1} α} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} [_inst_1 : forall (x : α), Decidable (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s)] {f : (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) -> β}, (Measurable.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β (Subtype.instMeasurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) m) mβ f) -> (forall {g : (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) -> β}, (Measurable.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) β (Subtype.instMeasurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) m) mβ g) -> (MeasurableSet.{u1} α m s) -> (Measurable.{u1, u2} α β m mβ (fun (x : α) => dite.{succ u2} β (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) (_inst_1 x) (fun (hx : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) => f (Subtype.mk.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) x hx)) (fun (hx : Not (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s)) => g (Subtype.mk.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) x hx)))))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {s : Set.{u2} α} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} [_inst_1 : forall (x : α), Decidable (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x s)] {f : (Set.Elem.{u2} α s) -> β}, (Measurable.{u2, u1} (Set.Elem.{u2} α s) β (instMeasurableSpaceSubtype.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x s) m) mβ f) -> (forall {g : (Set.Elem.{u2} α (HasCompl.compl.{u2} (Set.{u2} α) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} α) (Set.instBooleanAlgebraSet.{u2} α)) s)) -> β}, (Measurable.{u2, u1} (Set.Elem.{u2} α (HasCompl.compl.{u2} (Set.{u2} α) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} α) (Set.instBooleanAlgebraSet.{u2} α)) s)) β (instMeasurableSpaceSubtype.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x (HasCompl.compl.{u2} (Set.{u2} α) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} α) (Set.instBooleanAlgebraSet.{u2} α)) s)) m) mβ g) -> (MeasurableSet.{u2} α m s) -> (Measurable.{u2, u1} α β m mβ (fun (x : α) => dite.{succ u1} β (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x s) (_inst_1 x) (fun (hx : Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x s) => f (Subtype.mk.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x s) x hx)) (fun (hx : Not (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x s)) => g (Subtype.mk.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x (HasCompl.compl.{u2} (Set.{u2} α) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} α) (Set.instBooleanAlgebraSet.{u2} α)) s)) x hx)))))
+  forall {α : Type.{u2}} {β : Type.{u1}} {s : Set.{u2} α} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} [_inst_1 : forall (x : α), Decidable (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x s)] {f : (Set.Elem.{u2} α s) -> β}, (Measurable.{u2, u1} (Set.Elem.{u2} α s) β (Subtype.instMeasurableSpace.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x s) m) mβ f) -> (forall {g : (Set.Elem.{u2} α (HasCompl.compl.{u2} (Set.{u2} α) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} α) (Set.instBooleanAlgebraSet.{u2} α)) s)) -> β}, (Measurable.{u2, u1} (Set.Elem.{u2} α (HasCompl.compl.{u2} (Set.{u2} α) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} α) (Set.instBooleanAlgebraSet.{u2} α)) s)) β (Subtype.instMeasurableSpace.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x (HasCompl.compl.{u2} (Set.{u2} α) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} α) (Set.instBooleanAlgebraSet.{u2} α)) s)) m) mβ g) -> (MeasurableSet.{u2} α m s) -> (Measurable.{u2, u1} α β m mβ (fun (x : α) => dite.{succ u1} β (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x s) (_inst_1 x) (fun (hx : Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x s) => f (Subtype.mk.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x s) x hx)) (fun (hx : Not (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x s)) => g (Subtype.mk.{succ u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x (HasCompl.compl.{u2} (Set.{u2} α) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} α) (Set.instBooleanAlgebraSet.{u2} α)) s)) x hx)))))
 Case conversion may be inaccurate. Consider using '#align measurable.dite Measurable.diteₓ'. -/
 theorem Measurable.dite [∀ x, Decidable (x ∈ s)] {f : s → β} (hf : Measurable f) {g : sᶜ → β}
     (hg : Measurable g) (hs : MeasurableSet s) :
@@ -955,9 +927,9 @@ theorem Measurable.dite [∀ x, Decidable (x ∈ s)] {f : s → β} (hf : Measur
 
 /- warning: measurable_of_measurable_on_compl_finite -> measurable_of_measurable_on_compl_finite is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} [_inst_1 : MeasurableSingletonClass.{u1} α m] {f : α -> β} (s : Set.{u1} α), (Set.Finite.{u1} α s) -> (Measurable.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) β (Subtype.measurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) m) mβ (Set.restrict.{u1, u2} α (fun (ᾰ : α) => β) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s) f)) -> (Measurable.{u1, u2} α β m mβ f)
+  forall {α : Type.{u1}} {β : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} [_inst_1 : MeasurableSingletonClass.{u1} α m] {f : α -> β} (s : Set.{u1} α), (Set.Finite.{u1} α s) -> (Measurable.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) β (Subtype.instMeasurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) m) mβ (Set.restrict.{u1, u2} α (fun (ᾰ : α) => β) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s) f)) -> (Measurable.{u1, u2} α β m mβ f)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} [_inst_1 : MeasurableSingletonClass.{u2} α m] {f : α -> β} (s : Set.{u2} α), (Set.Finite.{u2} α s) -> (Measurable.{u2, u1} (Set.Elem.{u2} α (HasCompl.compl.{u2} (Set.{u2} α) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} α) (Set.instBooleanAlgebraSet.{u2} α)) s)) β (instMeasurableSpaceSubtype.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x (HasCompl.compl.{u2} (Set.{u2} α) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} α) (Set.instBooleanAlgebraSet.{u2} α)) s)) m) mβ (Set.restrict.{u2, u1} α (fun (ᾰ : α) => β) (HasCompl.compl.{u2} (Set.{u2} α) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} α) (Set.instBooleanAlgebraSet.{u2} α)) s) f)) -> (Measurable.{u2, u1} α β m mβ f)
+  forall {α : Type.{u2}} {β : Type.{u1}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} [_inst_1 : MeasurableSingletonClass.{u2} α m] {f : α -> β} (s : Set.{u2} α), (Set.Finite.{u2} α s) -> (Measurable.{u2, u1} (Set.Elem.{u2} α (HasCompl.compl.{u2} (Set.{u2} α) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} α) (Set.instBooleanAlgebraSet.{u2} α)) s)) β (Subtype.instMeasurableSpace.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x (HasCompl.compl.{u2} (Set.{u2} α) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} α) (Set.instBooleanAlgebraSet.{u2} α)) s)) m) mβ (Set.restrict.{u2, u1} α (fun (ᾰ : α) => β) (HasCompl.compl.{u2} (Set.{u2} α) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} α) (Set.instBooleanAlgebraSet.{u2} α)) s) f)) -> (Measurable.{u2, u1} α β m mβ f)
 Case conversion may be inaccurate. Consider using '#align measurable_of_measurable_on_compl_finite measurable_of_measurable_on_compl_finiteₓ'. -/
 theorem measurable_of_measurable_on_compl_finite [MeasurableSingletonClass α] {f : α → β}
     (s : Set α) (hs : s.Finite) (hf : Measurable (sᶜ.restrict f)) : Measurable f :=
@@ -967,9 +939,9 @@ theorem measurable_of_measurable_on_compl_finite [MeasurableSingletonClass α] {
 
 /- warning: measurable_of_measurable_on_compl_singleton -> measurable_of_measurable_on_compl_singleton is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} [_inst_1 : MeasurableSingletonClass.{u1} α m] {f : α -> β} (a : α), (Measurable.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (setOf.{u1} α (fun (x : α) => Ne.{succ u1} α x a))) β (Subtype.measurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (setOf.{u1} α (fun (x : α) => Ne.{succ u1} α x a))) m) mβ (Set.restrict.{u1, u2} α (fun (ᾰ : α) => β) (setOf.{u1} α (fun (x : α) => Ne.{succ u1} α x a)) f)) -> (Measurable.{u1, u2} α β m mβ f)
+  forall {α : Type.{u1}} {β : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} [_inst_1 : MeasurableSingletonClass.{u1} α m] {f : α -> β} (a : α), (Measurable.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (setOf.{u1} α (fun (x : α) => Ne.{succ u1} α x a))) β (Subtype.instMeasurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (setOf.{u1} α (fun (x : α) => Ne.{succ u1} α x a))) m) mβ (Set.restrict.{u1, u2} α (fun (ᾰ : α) => β) (setOf.{u1} α (fun (x : α) => Ne.{succ u1} α x a)) f)) -> (Measurable.{u1, u2} α β m mβ f)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} [_inst_1 : MeasurableSingletonClass.{u2} α m] {f : α -> β} (a : α), (Measurable.{u2, u1} (Set.Elem.{u2} α (setOf.{u2} α (fun (x : α) => Ne.{succ u2} α x a))) β (instMeasurableSpaceSubtype.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x (setOf.{u2} α (fun (x : α) => Ne.{succ u2} α x a))) m) mβ (Set.restrict.{u2, u1} α (fun (ᾰ : α) => β) (setOf.{u2} α (fun (x : α) => Ne.{succ u2} α x a)) f)) -> (Measurable.{u2, u1} α β m mβ f)
+  forall {α : Type.{u2}} {β : Type.{u1}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} [_inst_1 : MeasurableSingletonClass.{u2} α m] {f : α -> β} (a : α), (Measurable.{u2, u1} (Set.Elem.{u2} α (setOf.{u2} α (fun (x : α) => Ne.{succ u2} α x a))) β (Subtype.instMeasurableSpace.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x (setOf.{u2} α (fun (x : α) => Ne.{succ u2} α x a))) m) mβ (Set.restrict.{u2, u1} α (fun (ᾰ : α) => β) (setOf.{u2} α (fun (x : α) => Ne.{succ u2} α x a)) f)) -> (Measurable.{u2, u1} α β m mβ f)
 Case conversion may be inaccurate. Consider using '#align measurable_of_measurable_on_compl_singleton measurable_of_measurable_on_compl_singletonₓ'. -/
 theorem measurable_of_measurable_on_compl_singleton [MeasurableSingletonClass α] {f : α → β} (a : α)
     (hf : Measurable ({ x | x ≠ a }.restrict f)) : Measurable f :=
@@ -993,9 +965,9 @@ instance {α β} [m₁ : MeasurableSpace α] [m₂ : MeasurableSpace β] : Measu
 
 /- warning: measurable_fst -> measurable_fst is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ma : MeasurableSpace.{u1} α} {mb : MeasurableSpace.{u2} β}, Measurable.{max u1 u2, u1} (Prod.{u1, u2} α β) α (Prod.measurableSpace.{u1, u2} α β ma mb) ma (Prod.fst.{u1, u2} α β)
+  forall {α : Type.{u1}} {β : Type.{u2}} {ma : MeasurableSpace.{u1} α} {mb : MeasurableSpace.{u2} β}, Measurable.{max u1 u2, u1} (Prod.{u1, u2} α β) α (Prod.instMeasurableSpace.{u1, u2} α β ma mb) ma (Prod.fst.{u1, u2} α β)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {ma : MeasurableSpace.{u2} α} {mb : MeasurableSpace.{u1} β}, Measurable.{max u2 u1, u2} (Prod.{u2, u1} α β) α (instMeasurableSpaceProd.{u2, u1} α β ma mb) ma (Prod.fst.{u2, u1} α β)
+  forall {α : Type.{u2}} {β : Type.{u1}} {ma : MeasurableSpace.{u2} α} {mb : MeasurableSpace.{u1} β}, Measurable.{max u2 u1, u2} (Prod.{u2, u1} α β) α (Prod.instMeasurableSpace.{u2, u1} α β ma mb) ma (Prod.fst.{u2, u1} α β)
 Case conversion may be inaccurate. Consider using '#align measurable_fst measurable_fstₓ'. -/
 @[measurability]
 theorem measurable_fst {ma : MeasurableSpace α} {mb : MeasurableSpace β} :
@@ -1005,9 +977,9 @@ theorem measurable_fst {ma : MeasurableSpace α} {mb : MeasurableSpace β} :
 
 /- warning: measurable_snd -> measurable_snd is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ma : MeasurableSpace.{u1} α} {mb : MeasurableSpace.{u2} β}, Measurable.{max u1 u2, u2} (Prod.{u1, u2} α β) β (Prod.measurableSpace.{u1, u2} α β ma mb) mb (Prod.snd.{u1, u2} α β)
+  forall {α : Type.{u1}} {β : Type.{u2}} {ma : MeasurableSpace.{u1} α} {mb : MeasurableSpace.{u2} β}, Measurable.{max u1 u2, u2} (Prod.{u1, u2} α β) β (Prod.instMeasurableSpace.{u1, u2} α β ma mb) mb (Prod.snd.{u1, u2} α β)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {ma : MeasurableSpace.{u2} α} {mb : MeasurableSpace.{u1} β}, Measurable.{max u2 u1, u1} (Prod.{u2, u1} α β) β (instMeasurableSpaceProd.{u2, u1} α β ma mb) mb (Prod.snd.{u2, u1} α β)
+  forall {α : Type.{u2}} {β : Type.{u1}} {ma : MeasurableSpace.{u2} α} {mb : MeasurableSpace.{u1} β}, Measurable.{max u2 u1, u1} (Prod.{u2, u1} α β) β (Prod.instMeasurableSpace.{u2, u1} α β ma mb) mb (Prod.snd.{u2, u1} α β)
 Case conversion may be inaccurate. Consider using '#align measurable_snd measurable_sndₓ'. -/
 @[measurability]
 theorem measurable_snd {ma : MeasurableSpace α} {mb : MeasurableSpace β} :
@@ -1021,9 +993,9 @@ include m mβ mγ
 
 /- warning: measurable.fst -> Measurable.fst is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {mγ : MeasurableSpace.{u3} γ} {f : α -> (Prod.{u2, u3} β γ)}, (Measurable.{u1, max u2 u3} α (Prod.{u2, u3} β γ) m (Prod.measurableSpace.{u2, u3} β γ mβ mγ) f) -> (Measurable.{u1, u2} α β m mβ (fun (a : α) => Prod.fst.{u2, u3} β γ (f a)))
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {mγ : MeasurableSpace.{u3} γ} {f : α -> (Prod.{u2, u3} β γ)}, (Measurable.{u1, max u2 u3} α (Prod.{u2, u3} β γ) m (Prod.instMeasurableSpace.{u2, u3} β γ mβ mγ) f) -> (Measurable.{u1, u2} α β m mβ (fun (a : α) => Prod.fst.{u2, u3} β γ (f a)))
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u3} β} {mγ : MeasurableSpace.{u2} γ} {f : α -> (Prod.{u3, u2} β γ)}, (Measurable.{u1, max u3 u2} α (Prod.{u3, u2} β γ) m (instMeasurableSpaceProd.{u3, u2} β γ mβ mγ) f) -> (Measurable.{u1, u3} α β m mβ (fun (a : α) => Prod.fst.{u3, u2} β γ (f a)))
+  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u3} β} {mγ : MeasurableSpace.{u2} γ} {f : α -> (Prod.{u3, u2} β γ)}, (Measurable.{u1, max u3 u2} α (Prod.{u3, u2} β γ) m (Prod.instMeasurableSpace.{u3, u2} β γ mβ mγ) f) -> (Measurable.{u1, u3} α β m mβ (fun (a : α) => Prod.fst.{u3, u2} β γ (f a)))
 Case conversion may be inaccurate. Consider using '#align measurable.fst Measurable.fstₓ'. -/
 theorem Measurable.fst {f : α → β × γ} (hf : Measurable f) : Measurable fun a : α => (f a).1 :=
   measurable_fst.comp hf
@@ -1031,9 +1003,9 @@ theorem Measurable.fst {f : α → β × γ} (hf : Measurable f) : Measurable fu
 
 /- warning: measurable.snd -> Measurable.snd is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {mγ : MeasurableSpace.{u3} γ} {f : α -> (Prod.{u2, u3} β γ)}, (Measurable.{u1, max u2 u3} α (Prod.{u2, u3} β γ) m (Prod.measurableSpace.{u2, u3} β γ mβ mγ) f) -> (Measurable.{u1, u3} α γ m mγ (fun (a : α) => Prod.snd.{u2, u3} β γ (f a)))
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {mγ : MeasurableSpace.{u3} γ} {f : α -> (Prod.{u2, u3} β γ)}, (Measurable.{u1, max u2 u3} α (Prod.{u2, u3} β γ) m (Prod.instMeasurableSpace.{u2, u3} β γ mβ mγ) f) -> (Measurable.{u1, u3} α γ m mγ (fun (a : α) => Prod.snd.{u2, u3} β γ (f a)))
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u3} β} {mγ : MeasurableSpace.{u2} γ} {f : α -> (Prod.{u3, u2} β γ)}, (Measurable.{u1, max u3 u2} α (Prod.{u3, u2} β γ) m (instMeasurableSpaceProd.{u3, u2} β γ mβ mγ) f) -> (Measurable.{u1, u2} α γ m mγ (fun (a : α) => Prod.snd.{u3, u2} β γ (f a)))
+  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u3} β} {mγ : MeasurableSpace.{u2} γ} {f : α -> (Prod.{u3, u2} β γ)}, (Measurable.{u1, max u3 u2} α (Prod.{u3, u2} β γ) m (Prod.instMeasurableSpace.{u3, u2} β γ mβ mγ) f) -> (Measurable.{u1, u2} α γ m mγ (fun (a : α) => Prod.snd.{u3, u2} β γ (f a)))
 Case conversion may be inaccurate. Consider using '#align measurable.snd Measurable.sndₓ'. -/
 theorem Measurable.snd {f : α → β × γ} (hf : Measurable f) : Measurable fun a : α => (f a).2 :=
   measurable_snd.comp hf
@@ -1041,9 +1013,9 @@ theorem Measurable.snd {f : α → β × γ} (hf : Measurable f) : Measurable fu
 
 /- warning: measurable.prod -> Measurable.prod is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {mγ : MeasurableSpace.{u3} γ} {f : α -> (Prod.{u2, u3} β γ)}, (Measurable.{u1, u2} α β m mβ (fun (a : α) => Prod.fst.{u2, u3} β γ (f a))) -> (Measurable.{u1, u3} α γ m mγ (fun (a : α) => Prod.snd.{u2, u3} β γ (f a))) -> (Measurable.{u1, max u2 u3} α (Prod.{u2, u3} β γ) m (Prod.measurableSpace.{u2, u3} β γ mβ mγ) f)
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {mγ : MeasurableSpace.{u3} γ} {f : α -> (Prod.{u2, u3} β γ)}, (Measurable.{u1, u2} α β m mβ (fun (a : α) => Prod.fst.{u2, u3} β γ (f a))) -> (Measurable.{u1, u3} α γ m mγ (fun (a : α) => Prod.snd.{u2, u3} β γ (f a))) -> (Measurable.{u1, max u2 u3} α (Prod.{u2, u3} β γ) m (Prod.instMeasurableSpace.{u2, u3} β γ mβ mγ) f)
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u3} β} {mγ : MeasurableSpace.{u2} γ} {f : α -> (Prod.{u3, u2} β γ)}, (Measurable.{u1, u3} α β m mβ (fun (a : α) => Prod.fst.{u3, u2} β γ (f a))) -> (Measurable.{u1, u2} α γ m mγ (fun (a : α) => Prod.snd.{u3, u2} β γ (f a))) -> (Measurable.{u1, max u3 u2} α (Prod.{u3, u2} β γ) m (instMeasurableSpaceProd.{u3, u2} β γ mβ mγ) f)
+  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u3} β} {mγ : MeasurableSpace.{u2} γ} {f : α -> (Prod.{u3, u2} β γ)}, (Measurable.{u1, u3} α β m mβ (fun (a : α) => Prod.fst.{u3, u2} β γ (f a))) -> (Measurable.{u1, u2} α γ m mγ (fun (a : α) => Prod.snd.{u3, u2} β γ (f a))) -> (Measurable.{u1, max u3 u2} α (Prod.{u3, u2} β γ) m (Prod.instMeasurableSpace.{u3, u2} β γ mβ mγ) f)
 Case conversion may be inaccurate. Consider using '#align measurable.prod Measurable.prodₓ'. -/
 @[measurability]
 theorem Measurable.prod {f : α → β × γ} (hf₁ : Measurable fun a => (f a).1)
@@ -1060,9 +1032,9 @@ theorem Measurable.prod {f : α → β × γ} (hf₁ : Measurable fun a => (f a)
 
 /- warning: measurable.prod_mk -> Measurable.prod_mk is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {m : MeasurableSpace.{u1} α} {β : Type.{u2}} {γ : Type.{u3}} {mβ : MeasurableSpace.{u2} β} {mγ : MeasurableSpace.{u3} γ} {f : α -> β} {g : α -> γ}, (Measurable.{u1, u2} α β m mβ f) -> (Measurable.{u1, u3} α γ m mγ g) -> (Measurable.{u1, max u2 u3} α (Prod.{u2, u3} β γ) m (Prod.measurableSpace.{u2, u3} β γ mβ mγ) (fun (a : α) => Prod.mk.{u2, u3} β γ (f a) (g a)))
+  forall {α : Type.{u1}} {m : MeasurableSpace.{u1} α} {β : Type.{u2}} {γ : Type.{u3}} {mβ : MeasurableSpace.{u2} β} {mγ : MeasurableSpace.{u3} γ} {f : α -> β} {g : α -> γ}, (Measurable.{u1, u2} α β m mβ f) -> (Measurable.{u1, u3} α γ m mγ g) -> (Measurable.{u1, max u2 u3} α (Prod.{u2, u3} β γ) m (Prod.instMeasurableSpace.{u2, u3} β γ mβ mγ) (fun (a : α) => Prod.mk.{u2, u3} β γ (f a) (g a)))
 but is expected to have type
-  forall {α : Type.{u1}} {m : MeasurableSpace.{u1} α} {β : Type.{u3}} {γ : Type.{u2}} {mβ : MeasurableSpace.{u3} β} {mγ : MeasurableSpace.{u2} γ} {f : α -> β} {g : α -> γ}, (Measurable.{u1, u3} α β m mβ f) -> (Measurable.{u1, u2} α γ m mγ g) -> (Measurable.{u1, max u2 u3} α (Prod.{u3, u2} β γ) m (instMeasurableSpaceProd.{u3, u2} β γ mβ mγ) (fun (a : α) => Prod.mk.{u3, u2} β γ (f a) (g a)))
+  forall {α : Type.{u1}} {m : MeasurableSpace.{u1} α} {β : Type.{u3}} {γ : Type.{u2}} {mβ : MeasurableSpace.{u3} β} {mγ : MeasurableSpace.{u2} γ} {f : α -> β} {g : α -> γ}, (Measurable.{u1, u3} α β m mβ f) -> (Measurable.{u1, u2} α γ m mγ g) -> (Measurable.{u1, max u2 u3} α (Prod.{u3, u2} β γ) m (Prod.instMeasurableSpace.{u3, u2} β γ mβ mγ) (fun (a : α) => Prod.mk.{u3, u2} β γ (f a) (g a)))
 Case conversion may be inaccurate. Consider using '#align measurable.prod_mk Measurable.prod_mkₓ'. -/
 theorem Measurable.prod_mk {β γ} {mβ : MeasurableSpace β} {mγ : MeasurableSpace γ} {f : α → β}
     {g : α → γ} (hf : Measurable f) (hg : Measurable g) : Measurable fun a : α => (f a, g a) :=
@@ -1071,9 +1043,9 @@ theorem Measurable.prod_mk {β γ} {mβ : MeasurableSpace β} {mγ : MeasurableS
 
 /- warning: measurable.prod_map -> Measurable.prod_map is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {δ : Type.{u4}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {mγ : MeasurableSpace.{u3} γ} [_inst_1 : MeasurableSpace.{u4} δ] {f : α -> β} {g : γ -> δ}, (Measurable.{u1, u2} α β m mβ f) -> (Measurable.{u3, u4} γ δ mγ _inst_1 g) -> (Measurable.{max u1 u3, max u2 u4} (Prod.{u1, u3} α γ) (Prod.{u2, u4} β δ) (Prod.measurableSpace.{u1, u3} α γ m mγ) (Prod.measurableSpace.{u2, u4} β δ mβ _inst_1) (Prod.map.{u1, u2, u3, u4} α β γ δ f g))
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {δ : Type.{u4}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {mγ : MeasurableSpace.{u3} γ} [_inst_1 : MeasurableSpace.{u4} δ] {f : α -> β} {g : γ -> δ}, (Measurable.{u1, u2} α β m mβ f) -> (Measurable.{u3, u4} γ δ mγ _inst_1 g) -> (Measurable.{max u1 u3, max u2 u4} (Prod.{u1, u3} α γ) (Prod.{u2, u4} β δ) (Prod.instMeasurableSpace.{u1, u3} α γ m mγ) (Prod.instMeasurableSpace.{u2, u4} β δ mβ _inst_1) (Prod.map.{u1, u2, u3, u4} α β γ δ f g))
 but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u1}} {δ : Type.{u4}} {m : MeasurableSpace.{u3} α} {mβ : MeasurableSpace.{u2} β} {mγ : MeasurableSpace.{u1} γ} [_inst_1 : MeasurableSpace.{u4} δ] {f : α -> β} {g : γ -> δ}, (Measurable.{u3, u2} α β m mβ f) -> (Measurable.{u1, u4} γ δ mγ _inst_1 g) -> (Measurable.{max u1 u3, max u4 u2} (Prod.{u3, u1} α γ) (Prod.{u2, u4} β δ) (instMeasurableSpaceProd.{u3, u1} α γ m mγ) (instMeasurableSpaceProd.{u2, u4} β δ mβ _inst_1) (Prod.map.{u3, u2, u1, u4} α β γ δ f g))
+  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u1}} {δ : Type.{u4}} {m : MeasurableSpace.{u3} α} {mβ : MeasurableSpace.{u2} β} {mγ : MeasurableSpace.{u1} γ} [_inst_1 : MeasurableSpace.{u4} δ] {f : α -> β} {g : γ -> δ}, (Measurable.{u3, u2} α β m mβ f) -> (Measurable.{u1, u4} γ δ mγ _inst_1 g) -> (Measurable.{max u1 u3, max u4 u2} (Prod.{u3, u1} α γ) (Prod.{u2, u4} β δ) (Prod.instMeasurableSpace.{u3, u1} α γ m mγ) (Prod.instMeasurableSpace.{u2, u4} β δ mβ _inst_1) (Prod.map.{u3, u2, u1, u4} α β γ δ f g))
 Case conversion may be inaccurate. Consider using '#align measurable.prod_map Measurable.prod_mapₓ'. -/
 theorem Measurable.prod_map [MeasurableSpace δ] {f : α → β} {g : γ → δ} (hf : Measurable f)
     (hg : Measurable g) : Measurable (Prod.map f g) :=
@@ -1090,9 +1062,9 @@ theorem measurable_prod_mk_left {x : α} : Measurable (@Prod.mk _ β x) :=
 
 /- warning: measurable_prod_mk_right -> measurable_prod_mk_right is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {y : β}, Measurable.{u1, max u1 u2} α (Prod.{u1, u2} α β) m (Prod.measurableSpace.{u1, u2} α β m mβ) (fun (x : α) => Prod.mk.{u1, u2} α β x y)
+  forall {α : Type.{u1}} {β : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {y : β}, Measurable.{u1, max u1 u2} α (Prod.{u1, u2} α β) m (Prod.instMeasurableSpace.{u1, u2} α β m mβ) (fun (x : α) => Prod.mk.{u1, u2} α β x y)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} {y : β}, Measurable.{u2, max u1 u2} α (Prod.{u2, u1} α β) m (instMeasurableSpaceProd.{u2, u1} α β m mβ) (fun (x : α) => Prod.mk.{u2, u1} α β x y)
+  forall {α : Type.{u2}} {β : Type.{u1}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} {y : β}, Measurable.{u2, max u1 u2} α (Prod.{u2, u1} α β) m (Prod.instMeasurableSpace.{u2, u1} α β m mβ) (fun (x : α) => Prod.mk.{u2, u1} α β x y)
 Case conversion may be inaccurate. Consider using '#align measurable_prod_mk_right measurable_prod_mk_rightₓ'. -/
 theorem measurable_prod_mk_right {y : β} : Measurable fun x : α => (x, y) :=
   measurable_id.prod_mk measurable_const
@@ -1102,9 +1074,9 @@ include mγ
 
 /- warning: measurable.of_uncurry_left -> Measurable.of_uncurry_left is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {mγ : MeasurableSpace.{u3} γ} {f : α -> β -> γ}, (Measurable.{max u1 u2, u3} (Prod.{u1, u2} α β) γ (Prod.measurableSpace.{u1, u2} α β m mβ) mγ (Function.uncurry.{u1, u2, u3} α β γ f)) -> (forall {x : α}, Measurable.{u2, u3} β γ mβ mγ (f x))
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {mγ : MeasurableSpace.{u3} γ} {f : α -> β -> γ}, (Measurable.{max u1 u2, u3} (Prod.{u1, u2} α β) γ (Prod.instMeasurableSpace.{u1, u2} α β m mβ) mγ (Function.uncurry.{u1, u2, u3} α β γ f)) -> (forall {x : α}, Measurable.{u2, u3} β γ mβ mγ (f x))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} {γ : Type.{u1}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u3} β} {mγ : MeasurableSpace.{u1} γ} {f : α -> β -> γ}, (Measurable.{max u3 u2, u1} (Prod.{u2, u3} α β) γ (instMeasurableSpaceProd.{u2, u3} α β m mβ) mγ (Function.uncurry.{u2, u3, u1} α β γ f)) -> (forall {x : α}, Measurable.{u3, u1} β γ mβ mγ (f x))
+  forall {α : Type.{u2}} {β : Type.{u3}} {γ : Type.{u1}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u3} β} {mγ : MeasurableSpace.{u1} γ} {f : α -> β -> γ}, (Measurable.{max u3 u2, u1} (Prod.{u2, u3} α β) γ (Prod.instMeasurableSpace.{u2, u3} α β m mβ) mγ (Function.uncurry.{u2, u3, u1} α β γ f)) -> (forall {x : α}, Measurable.{u3, u1} β γ mβ mγ (f x))
 Case conversion may be inaccurate. Consider using '#align measurable.of_uncurry_left Measurable.of_uncurry_leftₓ'. -/
 theorem Measurable.of_uncurry_left {f : α → β → γ} (hf : Measurable (uncurry f)) {x : α} :
     Measurable (f x) :=
@@ -1113,9 +1085,9 @@ theorem Measurable.of_uncurry_left {f : α → β → γ} (hf : Measurable (uncu
 
 /- warning: measurable.of_uncurry_right -> Measurable.of_uncurry_right is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {mγ : MeasurableSpace.{u3} γ} {f : α -> β -> γ}, (Measurable.{max u1 u2, u3} (Prod.{u1, u2} α β) γ (Prod.measurableSpace.{u1, u2} α β m mβ) mγ (Function.uncurry.{u1, u2, u3} α β γ f)) -> (forall {y : β}, Measurable.{u1, u3} α γ m mγ (fun (x : α) => f x y))
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {mγ : MeasurableSpace.{u3} γ} {f : α -> β -> γ}, (Measurable.{max u1 u2, u3} (Prod.{u1, u2} α β) γ (Prod.instMeasurableSpace.{u1, u2} α β m mβ) mγ (Function.uncurry.{u1, u2, u3} α β γ f)) -> (forall {y : β}, Measurable.{u1, u3} α γ m mγ (fun (x : α) => f x y))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} {γ : Type.{u1}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u3} β} {mγ : MeasurableSpace.{u1} γ} {f : α -> β -> γ}, (Measurable.{max u3 u2, u1} (Prod.{u2, u3} α β) γ (instMeasurableSpaceProd.{u2, u3} α β m mβ) mγ (Function.uncurry.{u2, u3, u1} α β γ f)) -> (forall {y : β}, Measurable.{u2, u1} α γ m mγ (fun (x : α) => f x y))
+  forall {α : Type.{u2}} {β : Type.{u3}} {γ : Type.{u1}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u3} β} {mγ : MeasurableSpace.{u1} γ} {f : α -> β -> γ}, (Measurable.{max u3 u2, u1} (Prod.{u2, u3} α β) γ (Prod.instMeasurableSpace.{u2, u3} α β m mβ) mγ (Function.uncurry.{u2, u3, u1} α β γ f)) -> (forall {y : β}, Measurable.{u2, u1} α γ m mγ (fun (x : α) => f x y))
 Case conversion may be inaccurate. Consider using '#align measurable.of_uncurry_right Measurable.of_uncurry_rightₓ'. -/
 theorem Measurable.of_uncurry_right {f : α → β → γ} (hf : Measurable (uncurry f)) {y : β} :
     Measurable fun x => f x y :=
@@ -1124,9 +1096,9 @@ theorem Measurable.of_uncurry_right {f : α → β → γ} (hf : Measurable (unc
 
 /- warning: measurable_prod -> measurable_prod is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {mγ : MeasurableSpace.{u3} γ} {f : α -> (Prod.{u2, u3} β γ)}, Iff (Measurable.{u1, max u2 u3} α (Prod.{u2, u3} β γ) m (Prod.measurableSpace.{u2, u3} β γ mβ mγ) f) (And (Measurable.{u1, u2} α β m mβ (fun (a : α) => Prod.fst.{u2, u3} β γ (f a))) (Measurable.{u1, u3} α γ m mγ (fun (a : α) => Prod.snd.{u2, u3} β γ (f a))))
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {mγ : MeasurableSpace.{u3} γ} {f : α -> (Prod.{u2, u3} β γ)}, Iff (Measurable.{u1, max u2 u3} α (Prod.{u2, u3} β γ) m (Prod.instMeasurableSpace.{u2, u3} β γ mβ mγ) f) (And (Measurable.{u1, u2} α β m mβ (fun (a : α) => Prod.fst.{u2, u3} β γ (f a))) (Measurable.{u1, u3} α γ m mγ (fun (a : α) => Prod.snd.{u2, u3} β γ (f a))))
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u3} β} {mγ : MeasurableSpace.{u2} γ} {f : α -> (Prod.{u3, u2} β γ)}, Iff (Measurable.{u1, max u3 u2} α (Prod.{u3, u2} β γ) m (instMeasurableSpaceProd.{u3, u2} β γ mβ mγ) f) (And (Measurable.{u1, u3} α β m mβ (fun (a : α) => Prod.fst.{u3, u2} β γ (f a))) (Measurable.{u1, u2} α γ m mγ (fun (a : α) => Prod.snd.{u3, u2} β γ (f a))))
+  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u3} β} {mγ : MeasurableSpace.{u2} γ} {f : α -> (Prod.{u3, u2} β γ)}, Iff (Measurable.{u1, max u3 u2} α (Prod.{u3, u2} β γ) m (Prod.instMeasurableSpace.{u3, u2} β γ mβ mγ) f) (And (Measurable.{u1, u3} α β m mβ (fun (a : α) => Prod.fst.{u3, u2} β γ (f a))) (Measurable.{u1, u2} α γ m mγ (fun (a : α) => Prod.snd.{u3, u2} β γ (f a))))
 Case conversion may be inaccurate. Consider using '#align measurable_prod measurable_prodₓ'. -/
 theorem measurable_prod {f : α → β × γ} :
     Measurable f ↔ (Measurable fun a => (f a).1) ∧ Measurable fun a => (f a).2 :=
@@ -1137,9 +1109,9 @@ omit mγ
 
 /- warning: measurable_swap -> measurable_swap is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β}, Measurable.{max u1 u2, max u2 u1} (Prod.{u1, u2} α β) (Prod.{u2, u1} β α) (Prod.measurableSpace.{u1, u2} α β m mβ) (Prod.measurableSpace.{u2, u1} β α mβ m) (Prod.swap.{u1, u2} α β)
+  forall {α : Type.{u1}} {β : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β}, Measurable.{max u1 u2, max u2 u1} (Prod.{u1, u2} α β) (Prod.{u2, u1} β α) (Prod.instMeasurableSpace.{u1, u2} α β m mβ) (Prod.instMeasurableSpace.{u2, u1} β α mβ m) (Prod.swap.{u1, u2} α β)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β}, Measurable.{max u2 u1, max u2 u1} (Prod.{u2, u1} α β) (Prod.{u1, u2} β α) (instMeasurableSpaceProd.{u2, u1} α β m mβ) (instMeasurableSpaceProd.{u1, u2} β α mβ m) (Prod.swap.{u2, u1} α β)
+  forall {α : Type.{u2}} {β : Type.{u1}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β}, Measurable.{max u2 u1, max u2 u1} (Prod.{u2, u1} α β) (Prod.{u1, u2} β α) (Prod.instMeasurableSpace.{u2, u1} α β m mβ) (Prod.instMeasurableSpace.{u1, u2} β α mβ m) (Prod.swap.{u2, u1} α β)
 Case conversion may be inaccurate. Consider using '#align measurable_swap measurable_swapₓ'. -/
 @[measurability]
 theorem measurable_swap : Measurable (Prod.swap : α × β → β × α) :=
@@ -1148,9 +1120,9 @@ theorem measurable_swap : Measurable (Prod.swap : α × β → β × α) :=
 
 /- warning: measurable_swap_iff -> measurable_swap_iff is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {mγ : MeasurableSpace.{u3} γ} {f : (Prod.{u1, u2} α β) -> γ}, Iff (Measurable.{max u2 u1, u3} (Prod.{u2, u1} β α) γ (Prod.measurableSpace.{u2, u1} β α mβ m) mγ (Function.comp.{succ (max u2 u1), max (succ u1) (succ u2), succ u3} (Prod.{u2, u1} β α) (Prod.{u1, u2} α β) γ f (Prod.swap.{u2, u1} β α))) (Measurable.{max u1 u2, u3} (Prod.{u1, u2} α β) γ (Prod.measurableSpace.{u1, u2} α β m mβ) mγ f)
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {mγ : MeasurableSpace.{u3} γ} {f : (Prod.{u1, u2} α β) -> γ}, Iff (Measurable.{max u2 u1, u3} (Prod.{u2, u1} β α) γ (Prod.instMeasurableSpace.{u2, u1} β α mβ m) mγ (Function.comp.{succ (max u2 u1), max (succ u1) (succ u2), succ u3} (Prod.{u2, u1} β α) (Prod.{u1, u2} α β) γ f (Prod.swap.{u2, u1} β α))) (Measurable.{max u1 u2, u3} (Prod.{u1, u2} α β) γ (Prod.instMeasurableSpace.{u1, u2} α β m mβ) mγ f)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {γ : Type.{u3}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} {mγ : MeasurableSpace.{u3} γ} {f : (Prod.{u2, u1} α β) -> γ}, Iff (Measurable.{max u2 u1, u3} (Prod.{u1, u2} β α) γ (instMeasurableSpaceProd.{u1, u2} β α mβ m) mγ (Function.comp.{succ (max u2 u1), max (succ u2) (succ u1), succ u3} (Prod.{u1, u2} β α) (Prod.{u2, u1} α β) γ f (Prod.swap.{u1, u2} β α))) (Measurable.{max u2 u1, u3} (Prod.{u2, u1} α β) γ (instMeasurableSpaceProd.{u2, u1} α β m mβ) mγ f)
+  forall {α : Type.{u2}} {β : Type.{u1}} {γ : Type.{u3}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} {mγ : MeasurableSpace.{u3} γ} {f : (Prod.{u2, u1} α β) -> γ}, Iff (Measurable.{max u2 u1, u3} (Prod.{u1, u2} β α) γ (Prod.instMeasurableSpace.{u1, u2} β α mβ m) mγ (Function.comp.{succ (max u2 u1), max (succ u2) (succ u1), succ u3} (Prod.{u1, u2} β α) (Prod.{u2, u1} α β) γ f (Prod.swap.{u1, u2} β α))) (Measurable.{max u2 u1, u3} (Prod.{u2, u1} α β) γ (Prod.instMeasurableSpace.{u2, u1} α β m mβ) mγ f)
 Case conversion may be inaccurate. Consider using '#align measurable_swap_iff measurable_swap_iffₓ'. -/
 theorem measurable_swap_iff {mγ : MeasurableSpace γ} {f : α × β → γ} :
     Measurable (f ∘ Prod.swap) ↔ Measurable f :=
@@ -1162,9 +1134,9 @@ theorem measurable_swap_iff {mγ : MeasurableSpace γ} {f : α × β → γ} :
 
 /- warning: measurable_set.prod -> MeasurableSet.prod is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {s : Set.{u1} α} {t : Set.{u2} β}, (MeasurableSet.{u1} α m s) -> (MeasurableSet.{u2} β mβ t) -> (MeasurableSet.{max u1 u2} (Prod.{u1, u2} α β) (Prod.measurableSpace.{u1, u2} α β m mβ) (Set.prod.{u1, u2} α β s t))
+  forall {α : Type.{u1}} {β : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {s : Set.{u1} α} {t : Set.{u2} β}, (MeasurableSet.{u1} α m s) -> (MeasurableSet.{u2} β mβ t) -> (MeasurableSet.{max u1 u2} (Prod.{u1, u2} α β) (Prod.instMeasurableSpace.{u1, u2} α β m mβ) (Set.prod.{u1, u2} α β s t))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} {s : Set.{u2} α} {t : Set.{u1} β}, (MeasurableSet.{u2} α m s) -> (MeasurableSet.{u1} β mβ t) -> (MeasurableSet.{max u1 u2} (Prod.{u2, u1} α β) (instMeasurableSpaceProd.{u2, u1} α β m mβ) (Set.prod.{u2, u1} α β s t))
+  forall {α : Type.{u2}} {β : Type.{u1}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} {s : Set.{u2} α} {t : Set.{u1} β}, (MeasurableSet.{u2} α m s) -> (MeasurableSet.{u1} β mβ t) -> (MeasurableSet.{max u1 u2} (Prod.{u2, u1} α β) (Prod.instMeasurableSpace.{u2, u1} α β m mβ) (Set.prod.{u2, u1} α β s t))
 Case conversion may be inaccurate. Consider using '#align measurable_set.prod MeasurableSet.prodₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 @[measurability]
@@ -1175,9 +1147,9 @@ theorem MeasurableSet.prod {s : Set α} {t : Set β} (hs : MeasurableSet s) (ht
 
 /- warning: measurable_set_prod_of_nonempty -> measurableSet_prod_of_nonempty is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {s : Set.{u1} α} {t : Set.{u2} β}, (Set.Nonempty.{max u1 u2} (Prod.{u1, u2} α β) (Set.prod.{u1, u2} α β s t)) -> (Iff (MeasurableSet.{max u1 u2} (Prod.{u1, u2} α β) (Prod.measurableSpace.{u1, u2} α β m mβ) (Set.prod.{u1, u2} α β s t)) (And (MeasurableSet.{u1} α m s) (MeasurableSet.{u2} β mβ t)))
+  forall {α : Type.{u1}} {β : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {s : Set.{u1} α} {t : Set.{u2} β}, (Set.Nonempty.{max u1 u2} (Prod.{u1, u2} α β) (Set.prod.{u1, u2} α β s t)) -> (Iff (MeasurableSet.{max u1 u2} (Prod.{u1, u2} α β) (Prod.instMeasurableSpace.{u1, u2} α β m mβ) (Set.prod.{u1, u2} α β s t)) (And (MeasurableSet.{u1} α m s) (MeasurableSet.{u2} β mβ t)))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} {s : Set.{u2} α} {t : Set.{u1} β}, (Set.Nonempty.{max u2 u1} (Prod.{u2, u1} α β) (Set.prod.{u2, u1} α β s t)) -> (Iff (MeasurableSet.{max u1 u2} (Prod.{u2, u1} α β) (instMeasurableSpaceProd.{u2, u1} α β m mβ) (Set.prod.{u2, u1} α β s t)) (And (MeasurableSet.{u2} α m s) (MeasurableSet.{u1} β mβ t)))
+  forall {α : Type.{u2}} {β : Type.{u1}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} {s : Set.{u2} α} {t : Set.{u1} β}, (Set.Nonempty.{max u2 u1} (Prod.{u2, u1} α β) (Set.prod.{u2, u1} α β s t)) -> (Iff (MeasurableSet.{max u1 u2} (Prod.{u2, u1} α β) (Prod.instMeasurableSpace.{u2, u1} α β m mβ) (Set.prod.{u2, u1} α β s t)) (And (MeasurableSet.{u2} α m s) (MeasurableSet.{u1} β mβ t)))
 Case conversion may be inaccurate. Consider using '#align measurable_set_prod_of_nonempty measurableSet_prod_of_nonemptyₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
@@ -1195,9 +1167,9 @@ theorem measurableSet_prod_of_nonempty {s : Set α} {t : Set β} (h : (s ×ˢ t)
 
 /- warning: measurable_set_prod -> measurableSet_prod is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {s : Set.{u1} α} {t : Set.{u2} β}, Iff (MeasurableSet.{max u1 u2} (Prod.{u1, u2} α β) (Prod.measurableSpace.{u1, u2} α β m mβ) (Set.prod.{u1, u2} α β s t)) (Or (And (MeasurableSet.{u1} α m s) (MeasurableSet.{u2} β mβ t)) (Or (Eq.{succ u1} (Set.{u1} α) s (EmptyCollection.emptyCollection.{u1} (Set.{u1} α) (Set.hasEmptyc.{u1} α))) (Eq.{succ u2} (Set.{u2} β) t (EmptyCollection.emptyCollection.{u2} (Set.{u2} β) (Set.hasEmptyc.{u2} β)))))
+  forall {α : Type.{u1}} {β : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {s : Set.{u1} α} {t : Set.{u2} β}, Iff (MeasurableSet.{max u1 u2} (Prod.{u1, u2} α β) (Prod.instMeasurableSpace.{u1, u2} α β m mβ) (Set.prod.{u1, u2} α β s t)) (Or (And (MeasurableSet.{u1} α m s) (MeasurableSet.{u2} β mβ t)) (Or (Eq.{succ u1} (Set.{u1} α) s (EmptyCollection.emptyCollection.{u1} (Set.{u1} α) (Set.hasEmptyc.{u1} α))) (Eq.{succ u2} (Set.{u2} β) t (EmptyCollection.emptyCollection.{u2} (Set.{u2} β) (Set.hasEmptyc.{u2} β)))))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} {s : Set.{u2} α} {t : Set.{u1} β}, Iff (MeasurableSet.{max u1 u2} (Prod.{u2, u1} α β) (instMeasurableSpaceProd.{u2, u1} α β m mβ) (Set.prod.{u2, u1} α β s t)) (Or (And (MeasurableSet.{u2} α m s) (MeasurableSet.{u1} β mβ t)) (Or (Eq.{succ u2} (Set.{u2} α) s (EmptyCollection.emptyCollection.{u2} (Set.{u2} α) (Set.instEmptyCollectionSet.{u2} α))) (Eq.{succ u1} (Set.{u1} β) t (EmptyCollection.emptyCollection.{u1} (Set.{u1} β) (Set.instEmptyCollectionSet.{u1} β)))))
+  forall {α : Type.{u2}} {β : Type.{u1}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} {s : Set.{u2} α} {t : Set.{u1} β}, Iff (MeasurableSet.{max u1 u2} (Prod.{u2, u1} α β) (Prod.instMeasurableSpace.{u2, u1} α β m mβ) (Set.prod.{u2, u1} α β s t)) (Or (And (MeasurableSet.{u2} α m s) (MeasurableSet.{u1} β mβ t)) (Or (Eq.{succ u2} (Set.{u2} α) s (EmptyCollection.emptyCollection.{u2} (Set.{u2} α) (Set.instEmptyCollectionSet.{u2} α))) (Eq.{succ u1} (Set.{u1} β) t (EmptyCollection.emptyCollection.{u1} (Set.{u1} β) (Set.instEmptyCollectionSet.{u1} β)))))
 Case conversion may be inaccurate. Consider using '#align measurable_set_prod measurableSet_prodₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
@@ -1227,9 +1199,9 @@ instance [MeasurableSingletonClass α] [MeasurableSingletonClass β] :
 
 /- warning: measurable_from_prod_countable -> measurable_from_prod_countable is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} [_inst_1 : Countable.{succ u2} β] [_inst_2 : MeasurableSingletonClass.{u2} β mβ] {mγ : MeasurableSpace.{u3} γ} {f : (Prod.{u1, u2} α β) -> γ}, (forall (y : β), Measurable.{u1, u3} α γ m mγ (fun (x : α) => f (Prod.mk.{u1, u2} α β x y))) -> (Measurable.{max u1 u2, u3} (Prod.{u1, u2} α β) γ (Prod.measurableSpace.{u1, u2} α β m mβ) mγ f)
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} [_inst_1 : Countable.{succ u2} β] [_inst_2 : MeasurableSingletonClass.{u2} β mβ] {mγ : MeasurableSpace.{u3} γ} {f : (Prod.{u1, u2} α β) -> γ}, (forall (y : β), Measurable.{u1, u3} α γ m mγ (fun (x : α) => f (Prod.mk.{u1, u2} α β x y))) -> (Measurable.{max u1 u2, u3} (Prod.{u1, u2} α β) γ (Prod.instMeasurableSpace.{u1, u2} α β m mβ) mγ f)
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u3} β} [_inst_1 : Countable.{succ u3} β] [_inst_2 : MeasurableSingletonClass.{u3} β mβ] {mγ : MeasurableSpace.{u2} γ} {f : (Prod.{u1, u3} α β) -> γ}, (forall (y : β), Measurable.{u1, u2} α γ m mγ (fun (x : α) => f (Prod.mk.{u1, u3} α β x y))) -> (Measurable.{max u1 u3, u2} (Prod.{u1, u3} α β) γ (instMeasurableSpaceProd.{u1, u3} α β m mβ) mγ f)
+  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u3} β} [_inst_1 : Countable.{succ u3} β] [_inst_2 : MeasurableSingletonClass.{u3} β mβ] {mγ : MeasurableSpace.{u2} γ} {f : (Prod.{u1, u3} α β) -> γ}, (forall (y : β), Measurable.{u1, u2} α γ m mγ (fun (x : α) => f (Prod.mk.{u1, u3} α β x y))) -> (Measurable.{max u1 u3, u2} (Prod.{u1, u3} α β) γ (Prod.instMeasurableSpace.{u1, u3} α β m mβ) mγ f)
 Case conversion may be inaccurate. Consider using '#align measurable_from_prod_countable measurable_from_prod_countableₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 theorem measurable_from_prod_countable [Countable β] [MeasurableSingletonClass β]
@@ -1442,9 +1414,9 @@ variable (π)
 
 /- warning: measurable_pi_equiv_pi_subtype_prod_symm -> measurable_piEquivPiSubtypeProd_symm is a dubious translation:
 lean 3 declaration is
-  forall {δ : Type.{u1}} (π : δ -> Type.{u2}) [_inst_2 : forall (a : δ), MeasurableSpace.{u2} (π a)] (p : δ -> Prop) [_inst_4 : DecidablePred.{succ u1} δ p], Measurable.{max u1 u2, max u1 u2} (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i))) (forall (i : δ), π i) (Prod.measurableSpace.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i)) (MeasurableSpace.pi.{u1, u2} (Subtype.{succ u1} δ (fun (x : δ) => p x)) (fun (i : Subtype.{succ u1} δ (fun (x : δ) => p x)) => π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (fun (a : Subtype.{succ u1} δ (fun (x : δ) => p x)) => _inst_2 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) a))) (MeasurableSpace.pi.{u1, u2} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) (fun (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) => π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i)) (fun (a : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) => _inst_2 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) a)))) (MeasurableSpace.pi.{u1, u2} δ (fun (i : δ) => π i) (fun (a : δ) => _inst_2 a)) (coeFn.{max 1 (max (succ (max u1 u2)) (succ u1) (succ u2)) (max (succ u1) (succ u2)) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u1) (succ u2)} (Equiv.{succ (max u1 u2), max (succ u1) (succ u2)} (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i))) (forall (i : δ), π i)) (fun (_x : Equiv.{succ (max u1 u2), max (succ u1) (succ u2)} (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i))) (forall (i : δ), π i)) => (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i))) -> (forall (i : δ), π i)) (Equiv.hasCoeToFun.{succ (max u1 u2), max (succ u1) (succ u2)} (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i))) (forall (i : δ), π i)) (Equiv.symm.{max (succ u1) (succ u2), succ (max u1 u2)} (forall (i : δ), π i) (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i))) (Equiv.piEquivPiSubtypeProd.{u1, u2} δ p π (fun (a : δ) => _inst_4 a))))
+  forall {δ : Type.{u1}} (π : δ -> Type.{u2}) [_inst_2 : forall (a : δ), MeasurableSpace.{u2} (π a)] (p : δ -> Prop) [_inst_4 : DecidablePred.{succ u1} δ p], Measurable.{max u1 u2, max u1 u2} (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i))) (forall (i : δ), π i) (Prod.instMeasurableSpace.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i)) (MeasurableSpace.pi.{u1, u2} (Subtype.{succ u1} δ (fun (x : δ) => p x)) (fun (i : Subtype.{succ u1} δ (fun (x : δ) => p x)) => π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (fun (a : Subtype.{succ u1} δ (fun (x : δ) => p x)) => _inst_2 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) a))) (MeasurableSpace.pi.{u1, u2} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) (fun (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) => π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i)) (fun (a : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) => _inst_2 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) a)))) (MeasurableSpace.pi.{u1, u2} δ (fun (i : δ) => π i) (fun (a : δ) => _inst_2 a)) (coeFn.{max 1 (max (succ (max u1 u2)) (succ u1) (succ u2)) (max (succ u1) (succ u2)) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u1) (succ u2)} (Equiv.{succ (max u1 u2), max (succ u1) (succ u2)} (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i))) (forall (i : δ), π i)) (fun (_x : Equiv.{succ (max u1 u2), max (succ u1) (succ u2)} (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i))) (forall (i : δ), π i)) => (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i))) -> (forall (i : δ), π i)) (Equiv.hasCoeToFun.{succ (max u1 u2), max (succ u1) (succ u2)} (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i))) (forall (i : δ), π i)) (Equiv.symm.{max (succ u1) (succ u2), succ (max u1 u2)} (forall (i : δ), π i) (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i))) (Equiv.piEquivPiSubtypeProd.{u1, u2} δ p π (fun (a : δ) => _inst_4 a))))
 but is expected to have type
-  forall {δ : Type.{u2}} (π : δ -> Type.{u1}) [_inst_2 : forall (a : δ), MeasurableSpace.{u1} (π a)] (p : δ -> Prop) [_inst_4 : DecidablePred.{succ u2} δ p], Measurable.{max u2 u1, max u2 u1} (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) (forall (i : δ), π i) (instMeasurableSpaceProd.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i)) (MeasurableSpace.pi.{u2, u1} (Subtype.{succ u2} δ (fun (x : δ) => p x)) (fun (i : Subtype.{succ u2} δ (fun (x : δ) => p x)) => π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (fun (a : Subtype.{succ u2} δ (fun (x : δ) => p x)) => _inst_2 (Subtype.val.{succ u2} δ (fun (x : δ) => p x) a))) (MeasurableSpace.pi.{u2, u1} (Subtype.{succ u2} δ (fun (x : δ) => Not (p x))) (fun (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))) => π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i)) (fun (a : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))) => _inst_2 (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) a)))) (MeasurableSpace.pi.{u2, u1} δ (fun (i : δ) => π i) (fun (a : δ) => _inst_2 a)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) (forall (i : δ), π i)) (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) (fun (_x : Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) => forall (i : δ), π i) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) (forall (i : δ), π i)) (Equiv.symm.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (forall (i : δ), π i) (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) (Equiv.piEquivPiSubtypeProd.{u2, u1} δ p π (fun (a : δ) => _inst_4 a))))
+  forall {δ : Type.{u2}} (π : δ -> Type.{u1}) [_inst_2 : forall (a : δ), MeasurableSpace.{u1} (π a)] (p : δ -> Prop) [_inst_4 : DecidablePred.{succ u2} δ p], Measurable.{max u2 u1, max u2 u1} (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) (forall (i : δ), π i) (Prod.instMeasurableSpace.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i)) (MeasurableSpace.pi.{u2, u1} (Subtype.{succ u2} δ (fun (x : δ) => p x)) (fun (i : Subtype.{succ u2} δ (fun (x : δ) => p x)) => π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (fun (a : Subtype.{succ u2} δ (fun (x : δ) => p x)) => _inst_2 (Subtype.val.{succ u2} δ (fun (x : δ) => p x) a))) (MeasurableSpace.pi.{u2, u1} (Subtype.{succ u2} δ (fun (x : δ) => Not (p x))) (fun (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))) => π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i)) (fun (a : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))) => _inst_2 (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) a)))) (MeasurableSpace.pi.{u2, u1} δ (fun (i : δ) => π i) (fun (a : δ) => _inst_2 a)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) (forall (i : δ), π i)) (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) (fun (_x : Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) => forall (i : δ), π i) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) (forall (i : δ), π i)) (Equiv.symm.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (forall (i : δ), π i) (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) (Equiv.piEquivPiSubtypeProd.{u2, u1} δ p π (fun (a : δ) => _inst_4 a))))
 Case conversion may be inaccurate. Consider using '#align measurable_pi_equiv_pi_subtype_prod_symm measurable_piEquivPiSubtypeProd_symmₓ'. -/
 @[measurability]
 theorem measurable_piEquivPiSubtypeProd_symm (p : δ → Prop) [DecidablePred p] :
@@ -1462,9 +1434,9 @@ theorem measurable_piEquivPiSubtypeProd_symm (p : δ → Prop) [DecidablePred p]
 
 /- warning: measurable_pi_equiv_pi_subtype_prod -> measurable_piEquivPiSubtypeProd is a dubious translation:
 lean 3 declaration is
-  forall {δ : Type.{u1}} (π : δ -> Type.{u2}) [_inst_2 : forall (a : δ), MeasurableSpace.{u2} (π a)] (p : δ -> Prop) [_inst_4 : DecidablePred.{succ u1} δ p], Measurable.{max u1 u2, max u1 u2} (forall (i : δ), π i) (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i))) (MeasurableSpace.pi.{u1, u2} δ (fun (i : δ) => π i) (fun (a : δ) => _inst_2 a)) (Prod.measurableSpace.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i)) (MeasurableSpace.pi.{u1, u2} (Subtype.{succ u1} δ (fun (x : δ) => p x)) (fun (i : Subtype.{succ u1} δ (fun (x : δ) => p x)) => π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (fun (a : Subtype.{succ u1} δ (fun (x : δ) => p x)) => _inst_2 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) a))) (MeasurableSpace.pi.{u1, u2} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) (fun (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) => π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i)) (fun (a : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) => _inst_2 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) a)))) (coeFn.{max 1 (max (max (succ u1) (succ u2)) (succ (max u1 u2))) (succ (max u1 u2)) (succ u1) (succ u2), max (max (succ u1) (succ u2)) (succ (max u1 u2))} (Equiv.{max (succ u1) (succ u2), succ (max u1 u2)} (forall (i : δ), π i) (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i)))) (fun (_x : Equiv.{max (succ u1) (succ u2), succ (max u1 u2)} (forall (i : δ), π i) (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i)))) => (forall (i : δ), π i) -> (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i)))) (Equiv.hasCoeToFun.{max (succ u1) (succ u2), succ (max u1 u2)} (forall (i : δ), π i) (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i)))) (Equiv.piEquivPiSubtypeProd.{u1, u2} δ p π (fun (a : δ) => _inst_4 a)))
+  forall {δ : Type.{u1}} (π : δ -> Type.{u2}) [_inst_2 : forall (a : δ), MeasurableSpace.{u2} (π a)] (p : δ -> Prop) [_inst_4 : DecidablePred.{succ u1} δ p], Measurable.{max u1 u2, max u1 u2} (forall (i : δ), π i) (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i))) (MeasurableSpace.pi.{u1, u2} δ (fun (i : δ) => π i) (fun (a : δ) => _inst_2 a)) (Prod.instMeasurableSpace.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i)) (MeasurableSpace.pi.{u1, u2} (Subtype.{succ u1} δ (fun (x : δ) => p x)) (fun (i : Subtype.{succ u1} δ (fun (x : δ) => p x)) => π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (fun (a : Subtype.{succ u1} δ (fun (x : δ) => p x)) => _inst_2 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) a))) (MeasurableSpace.pi.{u1, u2} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) (fun (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) => π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i)) (fun (a : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) => _inst_2 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) a)))) (coeFn.{max 1 (max (max (succ u1) (succ u2)) (succ (max u1 u2))) (succ (max u1 u2)) (succ u1) (succ u2), max (max (succ u1) (succ u2)) (succ (max u1 u2))} (Equiv.{max (succ u1) (succ u2), succ (max u1 u2)} (forall (i : δ), π i) (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i)))) (fun (_x : Equiv.{max (succ u1) (succ u2), succ (max u1 u2)} (forall (i : δ), π i) (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i)))) => (forall (i : δ), π i) -> (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i)))) (Equiv.hasCoeToFun.{max (succ u1) (succ u2), succ (max u1 u2)} (forall (i : δ), π i) (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i)))) (Equiv.piEquivPiSubtypeProd.{u1, u2} δ p π (fun (a : δ) => _inst_4 a)))
 but is expected to have type
-  forall {δ : Type.{u2}} (π : δ -> Type.{u1}) [_inst_2 : forall (a : δ), MeasurableSpace.{u1} (π a)] (p : δ -> Prop) [_inst_4 : DecidablePred.{succ u2} δ p], Measurable.{max u2 u1, max u2 u1} (forall (i : δ), π i) (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) (MeasurableSpace.pi.{u2, u1} δ (fun (i : δ) => π i) (fun (a : δ) => _inst_2 a)) (instMeasurableSpaceProd.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i)) (MeasurableSpace.pi.{u2, u1} (Subtype.{succ u2} δ (fun (x : δ) => p x)) (fun (i : Subtype.{succ u2} δ (fun (x : δ) => p x)) => π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (fun (a : Subtype.{succ u2} δ (fun (x : δ) => p x)) => _inst_2 (Subtype.val.{succ u2} δ (fun (x : δ) => p x) a))) (MeasurableSpace.pi.{u2, u1} (Subtype.{succ u2} δ (fun (x : δ) => Not (p x))) (fun (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))) => π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i)) (fun (a : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))) => _inst_2 (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) a)))) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), succ (max u2 u1)} (forall (i : δ), π i) (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i)))) (forall (i : δ), π i) (fun (_x : forall (i : δ), π i) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : forall (i : δ), π i) => Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (forall (i : δ), π i) (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i)))) (Equiv.piEquivPiSubtypeProd.{u2, u1} δ p π (fun (a : δ) => _inst_4 a)))
+  forall {δ : Type.{u2}} (π : δ -> Type.{u1}) [_inst_2 : forall (a : δ), MeasurableSpace.{u1} (π a)] (p : δ -> Prop) [_inst_4 : DecidablePred.{succ u2} δ p], Measurable.{max u2 u1, max u2 u1} (forall (i : δ), π i) (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) (MeasurableSpace.pi.{u2, u1} δ (fun (i : δ) => π i) (fun (a : δ) => _inst_2 a)) (Prod.instMeasurableSpace.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i)) (MeasurableSpace.pi.{u2, u1} (Subtype.{succ u2} δ (fun (x : δ) => p x)) (fun (i : Subtype.{succ u2} δ (fun (x : δ) => p x)) => π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (fun (a : Subtype.{succ u2} δ (fun (x : δ) => p x)) => _inst_2 (Subtype.val.{succ u2} δ (fun (x : δ) => p x) a))) (MeasurableSpace.pi.{u2, u1} (Subtype.{succ u2} δ (fun (x : δ) => Not (p x))) (fun (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))) => π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i)) (fun (a : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))) => _inst_2 (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) a)))) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), succ (max u2 u1)} (forall (i : δ), π i) (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i)))) (forall (i : δ), π i) (fun (_x : forall (i : δ), π i) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : forall (i : δ), π i) => Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (forall (i : δ), π i) (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i)))) (Equiv.piEquivPiSubtypeProd.{u2, u1} δ p π (fun (a : δ) => _inst_4 a)))
 Case conversion may be inaccurate. Consider using '#align measurable_pi_equiv_pi_subtype_prod measurable_piEquivPiSubtypeProdₓ'. -/
 @[measurability]
 theorem measurable_piEquivPiSubtypeProd (p : δ → Prop) [DecidablePred p] :
@@ -1478,18 +1450,18 @@ theorem measurable_piEquivPiSubtypeProd (p : δ → Prop) [DecidablePred p] :
 
 end Pi
 
-/- warning: tprod.measurable_space -> TProd.measurableSpace is a dubious translation:
+/- warning: tprod.measurable_space -> TProd.instMeasurableSpace is a dubious translation:
 lean 3 declaration is
   forall {δ : Type.{u_4}} (π : δ -> Type.{u_1}) [_inst_1 : forall (x : δ), MeasurableSpace.{u_1} (π x)] (l : List.{u_4} δ), MeasurableSpace.{max u_1 u_2} (List.TProd.{u_4, u_1, u_2} δ π l)
 but is expected to have type
   forall {δ : Type.{u_1}} (π : δ -> Type.{u_2}) [_inst_1 : forall (x : δ), MeasurableSpace.{u_2} (π x)] (l : List.{u_1} δ), MeasurableSpace.{u_2} (List.TProd.{u_1, u_2} δ π l)
-Case conversion may be inaccurate. Consider using '#align tprod.measurable_space TProd.measurableSpaceₓ'. -/
+Case conversion may be inaccurate. Consider using '#align tprod.measurable_space TProd.instMeasurableSpaceₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
-instance TProd.measurableSpace (π : δ → Type _) [∀ x, MeasurableSpace (π x)] :
+instance TProd.instMeasurableSpace (π : δ → Type _) [∀ x, MeasurableSpace (π x)] :
     ∀ l : List δ, MeasurableSpace (List.TProd π l)
-  | [] => PUnit.measurableSpace
-  | i::is => @Prod.measurableSpace _ _ _ (TProd.measurableSpace is)
-#align tprod.measurable_space TProd.measurableSpace
+  | [] => PUnit.instMeasurableSpace
+  | i::is => @Prod.instMeasurableSpace _ _ _ (TProd.instMeasurableSpace is)
+#align tprod.measurable_space TProd.instMeasurableSpace
 
 section Tprod
 
@@ -1499,9 +1471,9 @@ variable {π : δ → Type _} [∀ x, MeasurableSpace (π x)]
 
 /- warning: measurable_tprod_mk -> measurable_tProd_mk is a dubious translation:
 lean 3 declaration is
-  forall {δ : Type.{u_4}} {π : δ -> Type.{u_7}} [_inst_1 : forall (x : δ), MeasurableSpace.{u_7} (π x)] (l : List.{u_4} δ), Measurable.{max u_4 u_7, max u_7 u_1} (forall (i : δ), π i) (List.TProd.{u_4, u_7, u_1} δ π l) (MeasurableSpace.pi.{u_4, u_7} δ (fun (i : δ) => π i) (fun (x : δ) => _inst_1 x)) (TProd.measurableSpace.{u_4, u_7, u_1} δ π (fun (x : δ) => _inst_1 x) l) (List.TProd.mk.{u_4, u_7, u_1} δ π l)
+  forall {δ : Type.{u_4}} {π : δ -> Type.{u_7}} [_inst_1 : forall (x : δ), MeasurableSpace.{u_7} (π x)] (l : List.{u_4} δ), Measurable.{max u_4 u_7, max u_7 u_1} (forall (i : δ), π i) (List.TProd.{u_4, u_7, u_1} δ π l) (MeasurableSpace.pi.{u_4, u_7} δ (fun (i : δ) => π i) (fun (x : δ) => _inst_1 x)) (TProd.instMeasurableSpace.{u_4, u_7, u_1} δ π (fun (x : δ) => _inst_1 x) l) (List.TProd.mk.{u_4, u_7, u_1} δ π l)
 but is expected to have type
-  forall {δ : Type.{u_1}} {π : δ -> Type.{u_2}} [_inst_1 : forall (x : δ), MeasurableSpace.{u_2} (π x)] (l : List.{u_1} δ), Measurable.{max u_1 u_2, u_2} (forall (i : δ), π i) (List.TProd.{u_1, u_2} δ π l) (MeasurableSpace.pi.{u_1, u_2} δ (fun (i : δ) => π i) (fun (x : δ) => _inst_1 x)) (TProd.measurableSpace.{u_1, u_2} δ π (fun (x : δ) => _inst_1 x) l) (List.TProd.mk.{u_1, u_2} δ π l)
+  forall {δ : Type.{u_1}} {π : δ -> Type.{u_2}} [_inst_1 : forall (x : δ), MeasurableSpace.{u_2} (π x)] (l : List.{u_1} δ), Measurable.{max u_1 u_2, u_2} (forall (i : δ), π i) (List.TProd.{u_1, u_2} δ π l) (MeasurableSpace.pi.{u_1, u_2} δ (fun (i : δ) => π i) (fun (x : δ) => _inst_1 x)) (TProd.instMeasurableSpace.{u_1, u_2} δ π (fun (x : δ) => _inst_1 x) l) (List.TProd.mk.{u_1, u_2} δ π l)
 Case conversion may be inaccurate. Consider using '#align measurable_tprod_mk measurable_tProd_mkₓ'. -/
 theorem measurable_tProd_mk (l : List δ) : Measurable (@TProd.mk δ π l) :=
   by
@@ -1512,9 +1484,9 @@ theorem measurable_tProd_mk (l : List δ) : Measurable (@TProd.mk δ π l) :=
 
 /- warning: measurable_tprod_elim -> measurable_tProd_elim is a dubious translation:
 lean 3 declaration is
-  forall {δ : Type.{u_4}} {π : δ -> Type.{u_7}} [_inst_1 : forall (x : δ), MeasurableSpace.{u_7} (π x)] [_inst_2 : DecidableEq.{succ u_4} δ] {l : List.{u_4} δ} {i : δ} (hi : Membership.Mem.{u_4, u_4} δ (List.{u_4} δ) (List.hasMem.{u_4} δ) i l), Measurable.{max u_7 u_1, u_7} (List.TProd.{u_4, u_7, u_1} δ π l) (π i) (TProd.measurableSpace.{u_4, u_7, u_1} δ π (fun (x : δ) => _inst_1 x) l) (_inst_1 i) (fun (v : List.TProd.{u_4, u_7, u_1} δ π l) => List.TProd.elim.{u_4, u_7, u_1} δ π (fun (a : δ) (b : δ) => _inst_2 a b) l v i hi)
+  forall {δ : Type.{u_4}} {π : δ -> Type.{u_7}} [_inst_1 : forall (x : δ), MeasurableSpace.{u_7} (π x)] [_inst_2 : DecidableEq.{succ u_4} δ] {l : List.{u_4} δ} {i : δ} (hi : Membership.Mem.{u_4, u_4} δ (List.{u_4} δ) (List.hasMem.{u_4} δ) i l), Measurable.{max u_7 u_1, u_7} (List.TProd.{u_4, u_7, u_1} δ π l) (π i) (TProd.instMeasurableSpace.{u_4, u_7, u_1} δ π (fun (x : δ) => _inst_1 x) l) (_inst_1 i) (fun (v : List.TProd.{u_4, u_7, u_1} δ π l) => List.TProd.elim.{u_4, u_7, u_1} δ π (fun (a : δ) (b : δ) => _inst_2 a b) l v i hi)
 but is expected to have type
-  forall {δ : Type.{u_1}} {π : δ -> Type.{u_2}} [_inst_1 : forall (x : δ), MeasurableSpace.{u_2} (π x)] [_inst_2 : DecidableEq.{succ u_1} δ] {l : List.{u_1} δ} {i : δ} (hi : Membership.mem.{u_1, u_1} δ (List.{u_1} δ) (List.instMembershipList.{u_1} δ) i l), Measurable.{u_2, u_2} (List.TProd.{u_1, u_2} δ π l) (π i) (TProd.measurableSpace.{u_1, u_2} δ π (fun (x : δ) => _inst_1 x) l) (_inst_1 i) (fun (v : List.TProd.{u_1, u_2} δ π l) => List.TProd.elim.{u_1, u_2} δ π (fun (a : δ) (b : δ) => _inst_2 a b) l v i hi)
+  forall {δ : Type.{u_1}} {π : δ -> Type.{u_2}} [_inst_1 : forall (x : δ), MeasurableSpace.{u_2} (π x)] [_inst_2 : DecidableEq.{succ u_1} δ] {l : List.{u_1} δ} {i : δ} (hi : Membership.mem.{u_1, u_1} δ (List.{u_1} δ) (List.instMembershipList.{u_1} δ) i l), Measurable.{u_2, u_2} (List.TProd.{u_1, u_2} δ π l) (π i) (TProd.instMeasurableSpace.{u_1, u_2} δ π (fun (x : δ) => _inst_1 x) l) (_inst_1 i) (fun (v : List.TProd.{u_1, u_2} δ π l) => List.TProd.elim.{u_1, u_2} δ π (fun (a : δ) (b : δ) => _inst_2 a b) l v i hi)
 Case conversion may be inaccurate. Consider using '#align measurable_tprod_elim measurable_tProd_elimₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 theorem measurable_tProd_elim [DecidableEq δ] :
@@ -1529,9 +1501,9 @@ theorem measurable_tProd_elim [DecidableEq δ] :
 
 /- warning: measurable_tprod_elim' -> measurable_tProd_elim' is a dubious translation:
 lean 3 declaration is
-  forall {δ : Type.{u_4}} {π : δ -> Type.{u_7}} [_inst_1 : forall (x : δ), MeasurableSpace.{u_7} (π x)] [_inst_2 : DecidableEq.{succ u_4} δ] {l : List.{u_4} δ} (h : forall (i : δ), Membership.Mem.{u_4, u_4} δ (List.{u_4} δ) (List.hasMem.{u_4} δ) i l), Measurable.{max u_7 u_1, max u_4 u_7} (List.TProd.{u_4, u_7, u_1} δ π l) (forall (i : δ), π i) (TProd.measurableSpace.{u_4, u_7, u_1} δ π (fun (a : δ) => _inst_1 a) l) (MeasurableSpace.pi.{u_4, u_7} δ (fun (i : δ) => π i) (fun (a : δ) => _inst_1 a)) (List.TProd.elim'.{u_4, u_7, u_1} δ π l (fun (a : δ) (b : δ) => _inst_2 a b) h)
+  forall {δ : Type.{u_4}} {π : δ -> Type.{u_7}} [_inst_1 : forall (x : δ), MeasurableSpace.{u_7} (π x)] [_inst_2 : DecidableEq.{succ u_4} δ] {l : List.{u_4} δ} (h : forall (i : δ), Membership.Mem.{u_4, u_4} δ (List.{u_4} δ) (List.hasMem.{u_4} δ) i l), Measurable.{max u_7 u_1, max u_4 u_7} (List.TProd.{u_4, u_7, u_1} δ π l) (forall (i : δ), π i) (TProd.instMeasurableSpace.{u_4, u_7, u_1} δ π (fun (a : δ) => _inst_1 a) l) (MeasurableSpace.pi.{u_4, u_7} δ (fun (i : δ) => π i) (fun (a : δ) => _inst_1 a)) (List.TProd.elim'.{u_4, u_7, u_1} δ π l (fun (a : δ) (b : δ) => _inst_2 a b) h)
 but is expected to have type
-  forall {δ : Type.{u_1}} {π : δ -> Type.{u_2}} [_inst_1 : forall (x : δ), MeasurableSpace.{u_2} (π x)] [_inst_2 : DecidableEq.{succ u_1} δ] {l : List.{u_1} δ} (h : forall (i : δ), Membership.mem.{u_1, u_1} δ (List.{u_1} δ) (List.instMembershipList.{u_1} δ) i l), Measurable.{u_2, max u_1 u_2} (List.TProd.{u_1, u_2} δ π l) (forall (i : δ), π i) (TProd.measurableSpace.{u_1, u_2} δ π (fun (a : δ) => _inst_1 a) l) (MeasurableSpace.pi.{u_1, u_2} δ (fun (i : δ) => π i) (fun (a : δ) => _inst_1 a)) (List.TProd.elim'.{u_1, u_2} δ π l (fun (a : δ) (b : δ) => _inst_2 a b) h)
+  forall {δ : Type.{u_1}} {π : δ -> Type.{u_2}} [_inst_1 : forall (x : δ), MeasurableSpace.{u_2} (π x)] [_inst_2 : DecidableEq.{succ u_1} δ] {l : List.{u_1} δ} (h : forall (i : δ), Membership.mem.{u_1, u_1} δ (List.{u_1} δ) (List.instMembershipList.{u_1} δ) i l), Measurable.{u_2, max u_1 u_2} (List.TProd.{u_1, u_2} δ π l) (forall (i : δ), π i) (TProd.instMeasurableSpace.{u_1, u_2} δ π (fun (a : δ) => _inst_1 a) l) (MeasurableSpace.pi.{u_1, u_2} δ (fun (i : δ) => π i) (fun (a : δ) => _inst_1 a)) (List.TProd.elim'.{u_1, u_2} δ π l (fun (a : δ) (b : δ) => _inst_2 a b) h)
 Case conversion may be inaccurate. Consider using '#align measurable_tprod_elim' measurable_tProd_elim'ₓ'. -/
 theorem measurable_tProd_elim' [DecidableEq δ] {l : List δ} (h : ∀ i, i ∈ l) :
     Measurable (TProd.elim' h : TProd π l → ∀ i, π i) :=
@@ -1540,9 +1512,9 @@ theorem measurable_tProd_elim' [DecidableEq δ] {l : List δ} (h : ∀ i, i ∈
 
 /- warning: measurable_set.tprod -> MeasurableSet.tProd is a dubious translation:
 lean 3 declaration is
-  forall {δ : Type.{u_4}} {π : δ -> Type.{u_7}} [_inst_1 : forall (x : δ), MeasurableSpace.{u_7} (π x)] (l : List.{u_4} δ) {s : forall (i : δ), Set.{u_7} (π i)}, (forall (i : δ), MeasurableSet.{u_7} (π i) (_inst_1 i) (s i)) -> (MeasurableSet.{max u_7 u_1} (List.TProd.{u_4, u_7, u_1} δ (fun (i : δ) => π i) l) (TProd.measurableSpace.{u_4, u_7, u_1} δ (fun (i : δ) => π i) (fun (x : δ) => _inst_1 x) l) (Set.tprod.{u_4, u_7, u_1} δ (fun (i : δ) => π i) l s))
+  forall {δ : Type.{u_4}} {π : δ -> Type.{u_7}} [_inst_1 : forall (x : δ), MeasurableSpace.{u_7} (π x)] (l : List.{u_4} δ) {s : forall (i : δ), Set.{u_7} (π i)}, (forall (i : δ), MeasurableSet.{u_7} (π i) (_inst_1 i) (s i)) -> (MeasurableSet.{max u_7 u_1} (List.TProd.{u_4, u_7, u_1} δ (fun (i : δ) => π i) l) (TProd.instMeasurableSpace.{u_4, u_7, u_1} δ (fun (i : δ) => π i) (fun (x : δ) => _inst_1 x) l) (Set.tprod.{u_4, u_7, u_1} δ (fun (i : δ) => π i) l s))
 but is expected to have type
-  forall {δ : Type.{u_1}} {π : δ -> Type.{u_2}} [_inst_1 : forall (x : δ), MeasurableSpace.{u_2} (π x)] (l : List.{u_1} δ) {s : forall (i : δ), Set.{u_2} (π i)}, (forall (i : δ), MeasurableSet.{u_2} (π i) (_inst_1 i) (s i)) -> (MeasurableSet.{u_2} (List.TProd.{u_1, u_2} δ (fun (i : δ) => π i) l) (TProd.measurableSpace.{u_1, u_2} δ (fun (i : δ) => π i) (fun (x : δ) => _inst_1 x) l) (Set.tprod.{u_1, u_2} δ (fun (i : δ) => π i) l s))
+  forall {δ : Type.{u_1}} {π : δ -> Type.{u_2}} [_inst_1 : forall (x : δ), MeasurableSpace.{u_2} (π x)] (l : List.{u_1} δ) {s : forall (i : δ), Set.{u_2} (π i)}, (forall (i : δ), MeasurableSet.{u_2} (π i) (_inst_1 i) (s i)) -> (MeasurableSet.{u_2} (List.TProd.{u_1, u_2} δ (fun (i : δ) => π i) l) (TProd.instMeasurableSpace.{u_1, u_2} δ (fun (i : δ) => π i) (fun (x : δ) => _inst_1 x) l) (Set.tprod.{u_1, u_2} δ (fun (i : δ) => π i) l s))
 Case conversion may be inaccurate. Consider using '#align measurable_set.tprod MeasurableSet.tProdₓ'. -/
 theorem MeasurableSet.tProd (l : List δ) {s : ∀ i, Set (π i)} (hs : ∀ i, MeasurableSet (s i)) :
     MeasurableSet (Set.tprod l s) := by
@@ -1560,9 +1532,9 @@ section Sum
 
 /- warning: measurable_inl -> measurable_inl is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β], Measurable.{u1, max u1 u2} α (Sum.{u1, u2} α β) _inst_1 (Sum.measurableSpace.{u1, u2} α β _inst_1 _inst_2) (Sum.inl.{u1, u2} α β)
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β], Measurable.{u1, max u1 u2} α (Sum.{u1, u2} α β) _inst_1 (Sum.instMeasurableSpace.{u1, u2} α β _inst_1 _inst_2) (Sum.inl.{u1, u2} α β)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β], Measurable.{u2, max u2 u1} α (Sum.{u2, u1} α β) _inst_1 (instMeasurableSpaceSum.{u2, u1} α β _inst_1 _inst_2) (Sum.inl.{u2, u1} α β)
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β], Measurable.{u2, max u2 u1} α (Sum.{u2, u1} α β) _inst_1 (Sum.instMeasurableSpace.{u2, u1} α β _inst_1 _inst_2) (Sum.inl.{u2, u1} α β)
 Case conversion may be inaccurate. Consider using '#align measurable_inl measurable_inlₓ'. -/
 @[measurability]
 theorem measurable_inl [MeasurableSpace α] [MeasurableSpace β] : Measurable (@Sum.inl α β) :=
@@ -1571,9 +1543,9 @@ theorem measurable_inl [MeasurableSpace α] [MeasurableSpace β] : Measurable (@
 
 /- warning: measurable_inr -> measurable_inr is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β], Measurable.{u2, max u1 u2} β (Sum.{u1, u2} α β) _inst_2 (Sum.measurableSpace.{u1, u2} α β _inst_1 _inst_2) (Sum.inr.{u1, u2} α β)
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β], Measurable.{u2, max u1 u2} β (Sum.{u1, u2} α β) _inst_2 (Sum.instMeasurableSpace.{u1, u2} α β _inst_1 _inst_2) (Sum.inr.{u1, u2} α β)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β], Measurable.{u1, max u2 u1} β (Sum.{u2, u1} α β) _inst_2 (instMeasurableSpaceSum.{u2, u1} α β _inst_1 _inst_2) (Sum.inr.{u2, u1} α β)
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β], Measurable.{u1, max u2 u1} β (Sum.{u2, u1} α β) _inst_2 (Sum.instMeasurableSpace.{u2, u1} α β _inst_1 _inst_2) (Sum.inr.{u2, u1} α β)
 Case conversion may be inaccurate. Consider using '#align measurable_inr measurable_inrₓ'. -/
 @[measurability]
 theorem measurable_inr [MeasurableSpace α] [MeasurableSpace β] : Measurable (@Sum.inr α β) :=
@@ -1586,9 +1558,9 @@ include m mβ
 
 /- warning: measurable_sum -> measurable_sum is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {mγ : MeasurableSpace.{u3} γ} {f : (Sum.{u1, u2} α β) -> γ}, (Measurable.{u1, u3} α γ m mγ (Function.comp.{succ u1, max (succ u1) (succ u2), succ u3} α (Sum.{u1, u2} α β) γ f (Sum.inl.{u1, u2} α β))) -> (Measurable.{u2, u3} β γ mβ mγ (Function.comp.{succ u2, max (succ u1) (succ u2), succ u3} β (Sum.{u1, u2} α β) γ f (Sum.inr.{u1, u2} α β))) -> (Measurable.{max u1 u2, u3} (Sum.{u1, u2} α β) γ (Sum.measurableSpace.{u1, u2} α β m mβ) mγ f)
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {mγ : MeasurableSpace.{u3} γ} {f : (Sum.{u1, u2} α β) -> γ}, (Measurable.{u1, u3} α γ m mγ (Function.comp.{succ u1, max (succ u1) (succ u2), succ u3} α (Sum.{u1, u2} α β) γ f (Sum.inl.{u1, u2} α β))) -> (Measurable.{u2, u3} β γ mβ mγ (Function.comp.{succ u2, max (succ u1) (succ u2), succ u3} β (Sum.{u1, u2} α β) γ f (Sum.inr.{u1, u2} α β))) -> (Measurable.{max u1 u2, u3} (Sum.{u1, u2} α β) γ (Sum.instMeasurableSpace.{u1, u2} α β m mβ) mγ f)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {γ : Type.{u3}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} {mγ : MeasurableSpace.{u3} γ} {f : (Sum.{u2, u1} α β) -> γ}, (Measurable.{u2, u3} α γ m mγ (Function.comp.{succ u2, max (succ u2) (succ u1), succ u3} α (Sum.{u2, u1} α β) γ f (Sum.inl.{u2, u1} α β))) -> (Measurable.{u1, u3} β γ mβ mγ (Function.comp.{succ u1, max (succ u2) (succ u1), succ u3} β (Sum.{u2, u1} α β) γ f (Sum.inr.{u2, u1} α β))) -> (Measurable.{max u2 u1, u3} (Sum.{u2, u1} α β) γ (instMeasurableSpaceSum.{u2, u1} α β m mβ) mγ f)
+  forall {α : Type.{u2}} {β : Type.{u1}} {γ : Type.{u3}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} {mγ : MeasurableSpace.{u3} γ} {f : (Sum.{u2, u1} α β) -> γ}, (Measurable.{u2, u3} α γ m mγ (Function.comp.{succ u2, max (succ u2) (succ u1), succ u3} α (Sum.{u2, u1} α β) γ f (Sum.inl.{u2, u1} α β))) -> (Measurable.{u1, u3} β γ mβ mγ (Function.comp.{succ u1, max (succ u2) (succ u1), succ u3} β (Sum.{u2, u1} α β) γ f (Sum.inr.{u2, u1} α β))) -> (Measurable.{max u2 u1, u3} (Sum.{u2, u1} α β) γ (Sum.instMeasurableSpace.{u2, u1} α β m mβ) mγ f)
 Case conversion may be inaccurate. Consider using '#align measurable_sum measurable_sumₓ'. -/
 theorem measurable_sum {mγ : MeasurableSpace γ} {f : Sum α β → γ} (hl : Measurable (f ∘ Sum.inl))
     (hr : Measurable (f ∘ Sum.inr)) : Measurable f :=
@@ -1599,9 +1571,9 @@ theorem measurable_sum {mγ : MeasurableSpace γ} {f : Sum α β → γ} (hl : M
 
 /- warning: measurable.sum_elim -> Measurable.sumElim is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {mγ : MeasurableSpace.{u3} γ} {f : α -> γ} {g : β -> γ}, (Measurable.{u1, u3} α γ m mγ f) -> (Measurable.{u2, u3} β γ mβ mγ g) -> (Measurable.{max u1 u2, u3} (Sum.{u1, u2} α β) γ (Sum.measurableSpace.{u1, u2} α β m mβ) mγ (Sum.elim.{u1, u2, succ u3} α β γ f g))
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {mγ : MeasurableSpace.{u3} γ} {f : α -> γ} {g : β -> γ}, (Measurable.{u1, u3} α γ m mγ f) -> (Measurable.{u2, u3} β γ mβ mγ g) -> (Measurable.{max u1 u2, u3} (Sum.{u1, u2} α β) γ (Sum.instMeasurableSpace.{u1, u2} α β m mβ) mγ (Sum.elim.{u1, u2, succ u3} α β γ f g))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {γ : Type.{u3}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} {mγ : MeasurableSpace.{u3} γ} {f : α -> γ} {g : β -> γ}, (Measurable.{u2, u3} α γ m mγ f) -> (Measurable.{u1, u3} β γ mβ mγ g) -> (Measurable.{max u1 u2, u3} (Sum.{u2, u1} α β) γ (instMeasurableSpaceSum.{u2, u1} α β m mβ) mγ (Sum.elim.{u2, u1, succ u3} α β γ f g))
+  forall {α : Type.{u2}} {β : Type.{u1}} {γ : Type.{u3}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} {mγ : MeasurableSpace.{u3} γ} {f : α -> γ} {g : β -> γ}, (Measurable.{u2, u3} α γ m mγ f) -> (Measurable.{u1, u3} β γ mβ mγ g) -> (Measurable.{max u1 u2, u3} (Sum.{u2, u1} α β) γ (Sum.instMeasurableSpace.{u2, u1} α β m mβ) mγ (Sum.elim.{u2, u1, succ u3} α β γ f g))
 Case conversion may be inaccurate. Consider using '#align measurable.sum_elim Measurable.sumElimₓ'. -/
 @[measurability]
 theorem Measurable.sumElim {mγ : MeasurableSpace γ} {f : α → γ} {g : β → γ} (hf : Measurable f)
@@ -1611,9 +1583,9 @@ theorem Measurable.sumElim {mγ : MeasurableSpace γ} {f : α → γ} {g : β 
 
 /- warning: measurable_set.inl_image -> MeasurableSet.inl_image is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {s : Set.{u1} α}, (MeasurableSet.{u1} α m s) -> (MeasurableSet.{max u1 u2} (Sum.{u1, u2} α β) (Sum.measurableSpace.{u1, u2} α β m mβ) (Set.image.{u1, max u1 u2} α (Sum.{u1, u2} α β) (Sum.inl.{u1, u2} α β) s))
+  forall {α : Type.{u1}} {β : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {s : Set.{u1} α}, (MeasurableSet.{u1} α m s) -> (MeasurableSet.{max u1 u2} (Sum.{u1, u2} α β) (Sum.instMeasurableSpace.{u1, u2} α β m mβ) (Set.image.{u1, max u1 u2} α (Sum.{u1, u2} α β) (Sum.inl.{u1, u2} α β) s))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} {s : Set.{u2} α}, (MeasurableSet.{u2} α m s) -> (MeasurableSet.{max u2 u1} (Sum.{u2, u1} α β) (instMeasurableSpaceSum.{u2, u1} α β m mβ) (Set.image.{u2, max u2 u1} α (Sum.{u2, u1} α β) (Sum.inl.{u2, u1} α β) s))
+  forall {α : Type.{u2}} {β : Type.{u1}} {m : MeasurableSpace.{u2} α} {mβ : MeasurableSpace.{u1} β} {s : Set.{u2} α}, (MeasurableSet.{u2} α m s) -> (MeasurableSet.{max u2 u1} (Sum.{u2, u1} α β) (Sum.instMeasurableSpace.{u2, u1} α β m mβ) (Set.image.{u2, max u2 u1} α (Sum.{u2, u1} α β) (Sum.inl.{u2, u1} α β) s))
 Case conversion may be inaccurate. Consider using '#align measurable_set.inl_image MeasurableSet.inl_imageₓ'. -/
 theorem MeasurableSet.inl_image {s : Set α} (hs : MeasurableSet s) :
     MeasurableSet (Sum.inl '' s : Set (Sum α β)) :=
@@ -1629,9 +1601,9 @@ theorem MeasurableSet.inl_image {s : Set α} (hs : MeasurableSet s) :
 
 /- warning: measurable_set_inr_image -> measurableSet_inr_image is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {s : Set.{u2} β}, (MeasurableSet.{u2} β mβ s) -> (MeasurableSet.{max u1 u2} (Sum.{u1, u2} α β) (Sum.measurableSpace.{u1, u2} α β m mβ) (Set.image.{u2, max u1 u2} β (Sum.{u1, u2} α β) (Sum.inr.{u1, u2} α β) s))
+  forall {α : Type.{u1}} {β : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {s : Set.{u2} β}, (MeasurableSet.{u2} β mβ s) -> (MeasurableSet.{max u1 u2} (Sum.{u1, u2} α β) (Sum.instMeasurableSpace.{u1, u2} α β m mβ) (Set.image.{u2, max u1 u2} β (Sum.{u1, u2} α β) (Sum.inr.{u1, u2} α β) s))
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {s : Set.{u2} β}, Iff (MeasurableSet.{max u1 u2} (Sum.{u1, u2} α β) (instMeasurableSpaceSum.{u1, u2} α β m mβ) (Set.image.{u2, max u1 u2} β (Sum.{u1, u2} α β) (Sum.inr.{u1, u2} α β) s)) (MeasurableSet.{u2} β mβ s)
+  forall {α : Type.{u1}} {β : Type.{u2}} {m : MeasurableSpace.{u1} α} {mβ : MeasurableSpace.{u2} β} {s : Set.{u2} β}, Iff (MeasurableSet.{max u1 u2} (Sum.{u1, u2} α β) (Sum.instMeasurableSpace.{u1, u2} α β m mβ) (Set.image.{u2, max u1 u2} β (Sum.{u1, u2} α β) (Sum.inr.{u1, u2} α β) s)) (MeasurableSet.{u2} β mβ s)
 Case conversion may be inaccurate. Consider using '#align measurable_set_inr_image measurableSet_inr_imageₓ'. -/
 theorem measurableSet_inr_image {s : Set β} (hs : MeasurableSet s) :
     MeasurableSet (Sum.inr '' s : Set (Sum α β)) :=
@@ -1649,9 +1621,9 @@ omit m
 
 /- warning: measurable_set_range_inl -> measurableSet_range_inl is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {mβ : MeasurableSpace.{u2} β} [_inst_1 : MeasurableSpace.{u1} α], MeasurableSet.{max u1 u2} (Sum.{u1, u2} α β) (Sum.measurableSpace.{u1, u2} α β _inst_1 mβ) (Set.range.{max u1 u2, succ u1} (Sum.{u1, u2} α β) α (Sum.inl.{u1, u2} α β))
+  forall {α : Type.{u1}} {β : Type.{u2}} {mβ : MeasurableSpace.{u2} β} [_inst_1 : MeasurableSpace.{u1} α], MeasurableSet.{max u1 u2} (Sum.{u1, u2} α β) (Sum.instMeasurableSpace.{u1, u2} α β _inst_1 mβ) (Set.range.{max u1 u2, succ u1} (Sum.{u1, u2} α β) α (Sum.inl.{u1, u2} α β))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {mβ : MeasurableSpace.{u1} β} [_inst_1 : MeasurableSpace.{u2} α], MeasurableSet.{max u2 u1} (Sum.{u2, u1} α β) (instMeasurableSpaceSum.{u2, u1} α β _inst_1 mβ) (Set.range.{max u2 u1, succ u2} (Sum.{u2, u1} α β) α (Sum.inl.{u2, u1} α β))
+  forall {α : Type.{u2}} {β : Type.{u1}} {mβ : MeasurableSpace.{u1} β} [_inst_1 : MeasurableSpace.{u2} α], MeasurableSet.{max u2 u1} (Sum.{u2, u1} α β) (Sum.instMeasurableSpace.{u2, u1} α β _inst_1 mβ) (Set.range.{max u2 u1, succ u2} (Sum.{u2, u1} α β) α (Sum.inl.{u2, u1} α β))
 Case conversion may be inaccurate. Consider using '#align measurable_set_range_inl measurableSet_range_inlₓ'. -/
 theorem measurableSet_range_inl [MeasurableSpace α] :
     MeasurableSet (range Sum.inl : Set (Sum α β)) :=
@@ -1662,9 +1634,9 @@ theorem measurableSet_range_inl [MeasurableSpace α] :
 
 /- warning: measurable_set_range_inr -> measurableSet_range_inr is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {mβ : MeasurableSpace.{u2} β} [_inst_1 : MeasurableSpace.{u1} α], MeasurableSet.{max u1 u2} (Sum.{u1, u2} α β) (Sum.measurableSpace.{u1, u2} α β _inst_1 mβ) (Set.range.{max u1 u2, succ u2} (Sum.{u1, u2} α β) β (Sum.inr.{u1, u2} α β))
+  forall {α : Type.{u1}} {β : Type.{u2}} {mβ : MeasurableSpace.{u2} β} [_inst_1 : MeasurableSpace.{u1} α], MeasurableSet.{max u1 u2} (Sum.{u1, u2} α β) (Sum.instMeasurableSpace.{u1, u2} α β _inst_1 mβ) (Set.range.{max u1 u2, succ u2} (Sum.{u1, u2} α β) β (Sum.inr.{u1, u2} α β))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {mβ : MeasurableSpace.{u1} β} [_inst_1 : MeasurableSpace.{u2} α], MeasurableSet.{max u2 u1} (Sum.{u2, u1} α β) (instMeasurableSpaceSum.{u2, u1} α β _inst_1 mβ) (Set.range.{max u2 u1, succ u1} (Sum.{u2, u1} α β) β (Sum.inr.{u2, u1} α β))
+  forall {α : Type.{u2}} {β : Type.{u1}} {mβ : MeasurableSpace.{u1} β} [_inst_1 : MeasurableSpace.{u2} α], MeasurableSet.{max u2 u1} (Sum.{u2, u1} α β) (Sum.instMeasurableSpace.{u2, u1} α β _inst_1 mβ) (Set.range.{max u2 u1, succ u1} (Sum.{u2, u1} α β) β (Sum.inr.{u2, u1} α β))
 Case conversion may be inaccurate. Consider using '#align measurable_set_range_inr measurableSet_range_inrₓ'. -/
 theorem measurableSet_range_inr [MeasurableSpace α] :
     MeasurableSet (range Sum.inr : Set (Sum α β)) :=
@@ -1770,9 +1742,9 @@ theorem measurableSet_preimage (hf : MeasurableEmbedding f) {s : Set β} :
 
 /- warning: measurable_embedding.measurable_range_splitting -> MeasurableEmbedding.measurable_rangeSplitting is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {mα : MeasurableSpace.{u1} α} [_inst_1 : MeasurableSpace.{u2} β] {f : α -> β}, (MeasurableEmbedding.{u1, u2} α β mα _inst_1 f) -> (Measurable.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.range.{u2, succ u1} β α f)) α (Subtype.measurableSpace.{u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Set.range.{u2, succ u1} β α f)) _inst_1) mα (Set.rangeSplitting.{u1, u2} α β f))
+  forall {α : Type.{u1}} {β : Type.{u2}} {mα : MeasurableSpace.{u1} α} [_inst_1 : MeasurableSpace.{u2} β] {f : α -> β}, (MeasurableEmbedding.{u1, u2} α β mα _inst_1 f) -> (Measurable.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.range.{u2, succ u1} β α f)) α (Subtype.instMeasurableSpace.{u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Set.range.{u2, succ u1} β α f)) _inst_1) mα (Set.rangeSplitting.{u1, u2} α β f))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {mα : MeasurableSpace.{u2} α} [_inst_1 : MeasurableSpace.{u1} β] {f : α -> β}, (MeasurableEmbedding.{u2, u1} α β mα _inst_1 f) -> (Measurable.{u1, u2} (Set.Elem.{u1} β (Set.range.{u1, succ u2} β α f)) α (instMeasurableSpaceSubtype.{u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (Set.range.{u1, succ u2} β α f)) _inst_1) mα (Set.rangeSplitting.{u2, u1} α β f))
+  forall {α : Type.{u2}} {β : Type.{u1}} {mα : MeasurableSpace.{u2} α} [_inst_1 : MeasurableSpace.{u1} β] {f : α -> β}, (MeasurableEmbedding.{u2, u1} α β mα _inst_1 f) -> (Measurable.{u1, u2} (Set.Elem.{u1} β (Set.range.{u1, succ u2} β α f)) α (Subtype.instMeasurableSpace.{u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (Set.range.{u1, succ u2} β α f)) _inst_1) mα (Set.rangeSplitting.{u2, u1} α β f))
 Case conversion may be inaccurate. Consider using '#align measurable_embedding.measurable_range_splitting MeasurableEmbedding.measurable_rangeSplittingₓ'. -/
 theorem measurable_rangeSplitting (hf : MeasurableEmbedding f) : Measurable (rangeSplitting f) :=
   fun s hs => by
@@ -1861,7 +1833,7 @@ variable {α β}
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] (e : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2), Eq.{max (succ u1) (succ u2)} ((fun (_x : Equiv.{succ u1, succ u2} α β) => α -> β) (MeasurableEquiv.toEquiv.{u1, u2} α β _inst_1 _inst_2 e)) (coeFn.{max 1 (max (succ u1) (succ u2)) (succ u2) (succ u1), max (succ u1) (succ u2)} (Equiv.{succ u1, succ u2} α β) (fun (_x : Equiv.{succ u1, succ u2} α β) => α -> β) (Equiv.hasCoeToFun.{succ u1, succ u2} α β) (MeasurableEquiv.toEquiv.{u1, u2} α β _inst_1 _inst_2 e)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) (MeasurableEquiv.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) e)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2), Eq.{max (succ u2) (succ u1)} (forall (a : α), (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : α) => β) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} α β) α (fun (_x : α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : α) => β) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} α β) (MeasurableEquiv.toEquiv.{u2, u1} α β _inst_1 _inst_2 e)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLikeMeasurableEquiv.{u2, u1} α β _inst_1 _inst_2))) e)
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2), Eq.{max (succ u2) (succ u1)} (forall (a : α), (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : α) => β) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} α β) α (fun (_x : α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : α) => β) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} α β) (MeasurableEquiv.toEquiv.{u2, u1} α β _inst_1 _inst_2 e)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLike.{u2, u1} α β _inst_1 _inst_2))) e)
 Case conversion may be inaccurate. Consider using '#align measurable_equiv.coe_to_equiv MeasurableEquiv.coe_toEquivₓ'. -/
 @[simp]
 theorem coe_toEquiv (e : α ≃ᵐ β) : (e.toEquiv : α → β) = e :=
@@ -1872,7 +1844,7 @@ theorem coe_toEquiv (e : α ≃ᵐ β) : (e.toEquiv : α → β) = e :=
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] (e : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2), Measurable.{u1, u2} α β _inst_1 _inst_2 (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) (MeasurableEquiv.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) e)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2), Measurable.{u2, u1} α β _inst_1 _inst_2 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLikeMeasurableEquiv.{u2, u1} α β _inst_1 _inst_2))) e)
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2), Measurable.{u2, u1} α β _inst_1 _inst_2 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLike.{u2, u1} α β _inst_1 _inst_2))) e)
 Case conversion may be inaccurate. Consider using '#align measurable_equiv.measurable MeasurableEquiv.measurableₓ'. -/
 @[measurability]
 protected theorem measurable (e : α ≃ᵐ β) : Measurable (e : α → β) :=
@@ -1883,7 +1855,7 @@ protected theorem measurable (e : α ≃ᵐ β) : Measurable (e : α → β) :=
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] (e : Equiv.{succ u1, succ u2} α β) (h1 : Measurable.{u1, u2} α β _inst_1 _inst_2 (coeFn.{max 1 (max (succ u1) (succ u2)) (succ u2) (succ u1), max (succ u1) (succ u2)} (Equiv.{succ u1, succ u2} α β) (fun (_x : Equiv.{succ u1, succ u2} α β) => α -> β) (Equiv.hasCoeToFun.{succ u1, succ u2} α β) e)) (h2 : Measurable.{u2, u1} β α _inst_2 _inst_1 (coeFn.{max 1 (max (succ u2) (succ u1)) (succ u1) (succ u2), max (succ u2) (succ u1)} (Equiv.{succ u2, succ u1} β α) (fun (_x : Equiv.{succ u2, succ u1} β α) => β -> α) (Equiv.hasCoeToFun.{succ u2, succ u1} β α) (Equiv.symm.{succ u1, succ u2} α β e))), Eq.{max (succ u1) (succ u2)} ((fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) (MeasurableEquiv.mk.{u1, u2} α β _inst_1 _inst_2 e h1 h2)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) (MeasurableEquiv.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) (MeasurableEquiv.mk.{u1, u2} α β _inst_1 _inst_2 e h1 h2)) (coeFn.{max 1 (max (succ u1) (succ u2)) (succ u2) (succ u1), max (succ u1) (succ u2)} (Equiv.{succ u1, succ u2} α β) (fun (_x : Equiv.{succ u1, succ u2} α β) => α -> β) (Equiv.hasCoeToFun.{succ u1, succ u2} α β) e)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : Equiv.{succ u2, succ u1} α β) (h1 : Measurable.{u2, u1} α β _inst_1 _inst_2 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} α β) α (fun (_x : α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : α) => β) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} α β) e)) (h2 : Measurable.{u1, u2} β α _inst_2 _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} β α) β (fun (_x : β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : β) => α) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} β α) (Equiv.symm.{succ u2, succ u1} α β e))), Eq.{max (succ u2) (succ u1)} (forall (a : α), (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLikeMeasurableEquiv.{u2, u1} α β _inst_1 _inst_2))) (MeasurableEquiv.mk.{u2, u1} α β _inst_1 _inst_2 e h1 h2)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} α β) α (fun (_x : α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : α) => β) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} α β) e)
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : Equiv.{succ u2, succ u1} α β) (h1 : Measurable.{u2, u1} α β _inst_1 _inst_2 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} α β) α (fun (_x : α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : α) => β) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} α β) e)) (h2 : Measurable.{u1, u2} β α _inst_2 _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} β α) β (fun (_x : β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : β) => α) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} β α) (Equiv.symm.{succ u2, succ u1} α β e))), Eq.{max (succ u2) (succ u1)} (forall (a : α), (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLike.{u2, u1} α β _inst_1 _inst_2))) (MeasurableEquiv.mk.{u2, u1} α β _inst_1 _inst_2 e h1 h2)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} α β) α (fun (_x : α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : α) => β) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} α β) e)
 Case conversion may be inaccurate. Consider using '#align measurable_equiv.coe_mk MeasurableEquiv.coe_mkₓ'. -/
 @[simp]
 theorem coe_mk (e : α ≃ β) (h1 : Measurable e) (h2 : Measurable e.symm) :
@@ -1927,7 +1899,7 @@ def symm (ab : α ≃ᵐ β) : β ≃ᵐ α where
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] (e : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2), Eq.{max (succ u2) (succ u1)} ((fun (_x : Equiv.{succ u2, succ u1} β α) => β -> α) (Equiv.symm.{succ u1, succ u2} α β (MeasurableEquiv.toEquiv.{u1, u2} α β _inst_1 _inst_2 e))) (coeFn.{max 1 (max (succ u2) (succ u1)) (succ u1) (succ u2), max (succ u2) (succ u1)} (Equiv.{succ u2, succ u1} β α) (fun (_x : Equiv.{succ u2, succ u1} β α) => β -> α) (Equiv.hasCoeToFun.{succ u2, succ u1} β α) (Equiv.symm.{succ u1, succ u2} α β (MeasurableEquiv.toEquiv.{u1, u2} α β _inst_1 _inst_2 e))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (MeasurableEquiv.{u2, u1} β α _inst_2 _inst_1) (fun (_x : MeasurableEquiv.{u2, u1} β α _inst_2 _inst_1) => β -> α) (MeasurableEquiv.hasCoeToFun.{u2, u1} β α _inst_2 _inst_1) (MeasurableEquiv.symm.{u1, u2} α β _inst_1 _inst_2 e))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2), Eq.{max (succ u2) (succ u1)} (forall (a : β), (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : β) => α) a) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} β α) β (fun (_x : β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : β) => α) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} β α) (Equiv.symm.{succ u2, succ u1} α β (MeasurableEquiv.toEquiv.{u2, u1} α β _inst_1 _inst_2 e))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β (fun (_x : β) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : β) => α) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (MeasurableEquiv.instEquivLikeMeasurableEquiv.{u1, u2} β α _inst_2 _inst_1))) (MeasurableEquiv.symm.{u2, u1} α β _inst_1 _inst_2 e))
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2), Eq.{max (succ u2) (succ u1)} (forall (a : β), (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : β) => α) a) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} β α) β (fun (_x : β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : β) => α) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} β α) (Equiv.symm.{succ u2, succ u1} α β (MeasurableEquiv.toEquiv.{u2, u1} α β _inst_1 _inst_2 e))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β (fun (_x : β) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : β) => α) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (MeasurableEquiv.instEquivLike.{u1, u2} β α _inst_2 _inst_1))) (MeasurableEquiv.symm.{u2, u1} α β _inst_1 _inst_2 e))
 Case conversion may be inaccurate. Consider using '#align measurable_equiv.coe_to_equiv_symm MeasurableEquiv.coe_toEquiv_symmₓ'. -/
 @[simp]
 theorem coe_toEquiv_symm (e : α ≃ᵐ β) : (e.toEquiv.symm : β → α) = e.symm :=
@@ -1968,7 +1940,7 @@ theorem toEquiv_injective : Injective (toEquiv : α ≃ᵐ β → α ≃ β) :=
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] {e₁ : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2} {e₂ : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2}, (Eq.{max (succ u1) (succ u2)} ((fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) e₁) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) (MeasurableEquiv.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) e₁) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) (MeasurableEquiv.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) e₂)) -> (Eq.{max (succ u1) (succ u2)} (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) e₁ e₂)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] {e₁ : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2} {e₂ : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2}, (Eq.{max (succ u2) (succ u1)} (forall (a : α), (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLikeMeasurableEquiv.{u2, u1} α β _inst_1 _inst_2))) e₁) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLikeMeasurableEquiv.{u2, u1} α β _inst_1 _inst_2))) e₂)) -> (Eq.{max (succ u2) (succ u1)} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) e₁ e₂)
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] {e₁ : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2} {e₂ : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2}, (Eq.{max (succ u2) (succ u1)} (forall (a : α), (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLike.{u2, u1} α β _inst_1 _inst_2))) e₁) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLike.{u2, u1} α β _inst_1 _inst_2))) e₂)) -> (Eq.{max (succ u2) (succ u1)} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) e₁ e₂)
 Case conversion may be inaccurate. Consider using '#align measurable_equiv.ext MeasurableEquiv.extₓ'. -/
 @[ext]
 theorem ext {e₁ e₂ : α ≃ᵐ β} (h : (e₁ : α → β) = e₂) : e₁ = e₂ :=
@@ -2000,7 +1972,7 @@ theorem symm_refl (α : Type _) [MeasurableSpace α] : (refl α).symm = refl α
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] (e : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2), Eq.{succ u1} (α -> α) (Function.comp.{succ u1, succ u2, succ u1} α β α (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (MeasurableEquiv.{u2, u1} β α _inst_2 _inst_1) (fun (_x : MeasurableEquiv.{u2, u1} β α _inst_2 _inst_1) => β -> α) (MeasurableEquiv.hasCoeToFun.{u2, u1} β α _inst_2 _inst_1) (MeasurableEquiv.symm.{u1, u2} α β _inst_1 _inst_2 e)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) (MeasurableEquiv.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) e)) (id.{succ u1} α)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2), Eq.{succ u2} (α -> α) (Function.comp.{succ u2, succ u1, succ u2} α β α (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β (fun (_x : β) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : β) => α) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (MeasurableEquiv.instEquivLikeMeasurableEquiv.{u1, u2} β α _inst_2 _inst_1))) (MeasurableEquiv.symm.{u2, u1} α β _inst_1 _inst_2 e)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLikeMeasurableEquiv.{u2, u1} α β _inst_1 _inst_2))) e)) (id.{succ u2} α)
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2), Eq.{succ u2} (α -> α) (Function.comp.{succ u2, succ u1, succ u2} α β α (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β (fun (_x : β) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : β) => α) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (MeasurableEquiv.instEquivLike.{u1, u2} β α _inst_2 _inst_1))) (MeasurableEquiv.symm.{u2, u1} α β _inst_1 _inst_2 e)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLike.{u2, u1} α β _inst_1 _inst_2))) e)) (id.{succ u2} α)
 Case conversion may be inaccurate. Consider using '#align measurable_equiv.symm_comp_self MeasurableEquiv.symm_comp_selfₓ'. -/
 @[simp]
 theorem symm_comp_self (e : α ≃ᵐ β) : e.symm ∘ e = id :=
@@ -2011,7 +1983,7 @@ theorem symm_comp_self (e : α ≃ᵐ β) : e.symm ∘ e = id :=
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] (e : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2), Eq.{succ u2} (β -> β) (Function.comp.{succ u2, succ u1, succ u2} β α β (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) (MeasurableEquiv.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) e) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (MeasurableEquiv.{u2, u1} β α _inst_2 _inst_1) (fun (_x : MeasurableEquiv.{u2, u1} β α _inst_2 _inst_1) => β -> α) (MeasurableEquiv.hasCoeToFun.{u2, u1} β α _inst_2 _inst_1) (MeasurableEquiv.symm.{u1, u2} α β _inst_1 _inst_2 e))) (id.{succ u2} β)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2), Eq.{succ u1} (β -> β) (Function.comp.{succ u1, succ u2, succ u1} β α β (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLikeMeasurableEquiv.{u2, u1} α β _inst_1 _inst_2))) e) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β (fun (_x : β) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : β) => α) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (MeasurableEquiv.instEquivLikeMeasurableEquiv.{u1, u2} β α _inst_2 _inst_1))) (MeasurableEquiv.symm.{u2, u1} α β _inst_1 _inst_2 e))) (id.{succ u1} β)
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2), Eq.{succ u1} (β -> β) (Function.comp.{succ u1, succ u2, succ u1} β α β (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLike.{u2, u1} α β _inst_1 _inst_2))) e) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β (fun (_x : β) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : β) => α) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (MeasurableEquiv.instEquivLike.{u1, u2} β α _inst_2 _inst_1))) (MeasurableEquiv.symm.{u2, u1} α β _inst_1 _inst_2 e))) (id.{succ u1} β)
 Case conversion may be inaccurate. Consider using '#align measurable_equiv.self_comp_symm MeasurableEquiv.self_comp_symmₓ'. -/
 @[simp]
 theorem self_comp_symm (e : α ≃ᵐ β) : e ∘ e.symm = id :=
@@ -2022,7 +1994,7 @@ theorem self_comp_symm (e : α ≃ᵐ β) : e ∘ e.symm = id :=
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] (e : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (y : β), Eq.{succ u2} β (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) (MeasurableEquiv.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) e (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (MeasurableEquiv.{u2, u1} β α _inst_2 _inst_1) (fun (_x : MeasurableEquiv.{u2, u1} β α _inst_2 _inst_1) => β -> α) (MeasurableEquiv.hasCoeToFun.{u2, u1} β α _inst_2 _inst_1) (MeasurableEquiv.symm.{u1, u2} α β _inst_1 _inst_2 e) y)) y
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) (y : β), Eq.{succ u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β (fun (a : β) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : β) => α) a) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (MeasurableEquiv.instEquivLikeMeasurableEquiv.{u1, u2} β α _inst_2 _inst_1))) (MeasurableEquiv.symm.{u2, u1} α β _inst_1 _inst_2 e) y)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLikeMeasurableEquiv.{u2, u1} α β _inst_1 _inst_2))) e (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β (fun (_x : β) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : β) => α) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (MeasurableEquiv.instEquivLikeMeasurableEquiv.{u1, u2} β α _inst_2 _inst_1))) (MeasurableEquiv.symm.{u2, u1} α β _inst_1 _inst_2 e) y)) y
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) (y : β), Eq.{succ u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β (fun (a : β) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : β) => α) a) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (MeasurableEquiv.instEquivLike.{u1, u2} β α _inst_2 _inst_1))) (MeasurableEquiv.symm.{u2, u1} α β _inst_1 _inst_2 e) y)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLike.{u2, u1} α β _inst_1 _inst_2))) e (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β (fun (_x : β) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : β) => α) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (MeasurableEquiv.instEquivLike.{u1, u2} β α _inst_2 _inst_1))) (MeasurableEquiv.symm.{u2, u1} α β _inst_1 _inst_2 e) y)) y
 Case conversion may be inaccurate. Consider using '#align measurable_equiv.apply_symm_apply MeasurableEquiv.apply_symm_applyₓ'. -/
 @[simp]
 theorem apply_symm_apply (e : α ≃ᵐ β) (y : β) : e (e.symm y) = y :=
@@ -2033,7 +2005,7 @@ theorem apply_symm_apply (e : α ≃ᵐ β) (y : β) : e (e.symm y) = y :=
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] (e : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (x : α), Eq.{succ u1} α (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (MeasurableEquiv.{u2, u1} β α _inst_2 _inst_1) (fun (_x : MeasurableEquiv.{u2, u1} β α _inst_2 _inst_1) => β -> α) (MeasurableEquiv.hasCoeToFun.{u2, u1} β α _inst_2 _inst_1) (MeasurableEquiv.symm.{u1, u2} α β _inst_1 _inst_2 e) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) (MeasurableEquiv.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) e x)) x
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) (x : α), Eq.{succ u2} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : β) => α) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (a : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) a) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLikeMeasurableEquiv.{u2, u1} α β _inst_1 _inst_2))) e x)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β (fun (_x : β) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : β) => α) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (MeasurableEquiv.instEquivLikeMeasurableEquiv.{u1, u2} β α _inst_2 _inst_1))) (MeasurableEquiv.symm.{u2, u1} α β _inst_1 _inst_2 e) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLikeMeasurableEquiv.{u2, u1} α β _inst_1 _inst_2))) e x)) x
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) (x : α), Eq.{succ u2} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : β) => α) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (a : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) a) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLike.{u2, u1} α β _inst_1 _inst_2))) e x)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β (fun (_x : β) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : β) => α) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (MeasurableEquiv.instEquivLike.{u1, u2} β α _inst_2 _inst_1))) (MeasurableEquiv.symm.{u2, u1} α β _inst_1 _inst_2 e) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLike.{u2, u1} α β _inst_1 _inst_2))) e x)) x
 Case conversion may be inaccurate. Consider using '#align measurable_equiv.symm_apply_apply MeasurableEquiv.symm_apply_applyₓ'. -/
 @[simp]
 theorem symm_apply_apply (e : α ≃ᵐ β) (x : α) : e.symm (e x) = x :=
@@ -2066,7 +2038,7 @@ theorem self_trans_symm (e : α ≃ᵐ β) : e.trans e.symm = refl α :=
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] (e : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2), Function.Surjective.{succ u1, succ u2} α β (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) (MeasurableEquiv.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) e)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2), Function.Surjective.{succ u2, succ u1} α β (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLikeMeasurableEquiv.{u2, u1} α β _inst_1 _inst_2))) e)
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2), Function.Surjective.{succ u2, succ u1} α β (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLike.{u2, u1} α β _inst_1 _inst_2))) e)
 Case conversion may be inaccurate. Consider using '#align measurable_equiv.surjective MeasurableEquiv.surjectiveₓ'. -/
 protected theorem surjective (e : α ≃ᵐ β) : Surjective e :=
   e.toEquiv.Surjective
@@ -2076,7 +2048,7 @@ protected theorem surjective (e : α ≃ᵐ β) : Surjective e :=
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] (e : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2), Function.Bijective.{succ u1, succ u2} α β (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) (MeasurableEquiv.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) e)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2), Function.Bijective.{succ u2, succ u1} α β (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLikeMeasurableEquiv.{u2, u1} α β _inst_1 _inst_2))) e)
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2), Function.Bijective.{succ u2, succ u1} α β (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLike.{u2, u1} α β _inst_1 _inst_2))) e)
 Case conversion may be inaccurate. Consider using '#align measurable_equiv.bijective MeasurableEquiv.bijectiveₓ'. -/
 protected theorem bijective (e : α ≃ᵐ β) : Bijective e :=
   e.toEquiv.Bijective
@@ -2086,7 +2058,7 @@ protected theorem bijective (e : α ≃ᵐ β) : Bijective e :=
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] (e : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2), Function.Injective.{succ u1, succ u2} α β (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) (MeasurableEquiv.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) e)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2), Function.Injective.{succ u2, succ u1} α β (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLikeMeasurableEquiv.{u2, u1} α β _inst_1 _inst_2))) e)
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2), Function.Injective.{succ u2, succ u1} α β (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLike.{u2, u1} α β _inst_1 _inst_2))) e)
 Case conversion may be inaccurate. Consider using '#align measurable_equiv.injective MeasurableEquiv.injectiveₓ'. -/
 protected theorem injective (e : α ≃ᵐ β) : Injective e :=
   e.toEquiv.Injective
@@ -2096,7 +2068,7 @@ protected theorem injective (e : α ≃ᵐ β) : Injective e :=
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] (e : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (s : Set.{u2} β), Eq.{succ u2} (Set.{u2} β) (Set.preimage.{u2, u1} β α (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (MeasurableEquiv.{u2, u1} β α _inst_2 _inst_1) (fun (_x : MeasurableEquiv.{u2, u1} β α _inst_2 _inst_1) => β -> α) (MeasurableEquiv.hasCoeToFun.{u2, u1} β α _inst_2 _inst_1) (MeasurableEquiv.symm.{u1, u2} α β _inst_1 _inst_2 e)) (Set.preimage.{u1, u2} α β (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) (MeasurableEquiv.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) e) s)) s
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) (s : Set.{u1} β), Eq.{succ u1} (Set.{u1} β) (Set.preimage.{u1, u2} β α (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β (fun (_x : β) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : β) => α) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (MeasurableEquiv.instEquivLikeMeasurableEquiv.{u1, u2} β α _inst_2 _inst_1))) (MeasurableEquiv.symm.{u2, u1} α β _inst_1 _inst_2 e)) (Set.preimage.{u2, u1} α β (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLikeMeasurableEquiv.{u2, u1} α β _inst_1 _inst_2))) e) s)) s
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) (s : Set.{u1} β), Eq.{succ u1} (Set.{u1} β) (Set.preimage.{u1, u2} β α (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β (fun (_x : β) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : β) => α) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (MeasurableEquiv.instEquivLike.{u1, u2} β α _inst_2 _inst_1))) (MeasurableEquiv.symm.{u2, u1} α β _inst_1 _inst_2 e)) (Set.preimage.{u2, u1} α β (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLike.{u2, u1} α β _inst_1 _inst_2))) e) s)) s
 Case conversion may be inaccurate. Consider using '#align measurable_equiv.symm_preimage_preimage MeasurableEquiv.symm_preimage_preimageₓ'. -/
 @[simp]
 theorem symm_preimage_preimage (e : α ≃ᵐ β) (s : Set β) : e.symm ⁻¹' (e ⁻¹' s) = s :=
@@ -2107,7 +2079,7 @@ theorem symm_preimage_preimage (e : α ≃ᵐ β) (s : Set β) : e.symm ⁻¹' (
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] (e : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (s : Set.{u1} α), Eq.{succ u2} (Set.{u2} β) (Set.image.{u1, u2} α β (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) (MeasurableEquiv.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) e) s) (Set.preimage.{u2, u1} β α (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (MeasurableEquiv.{u2, u1} β α _inst_2 _inst_1) (fun (_x : MeasurableEquiv.{u2, u1} β α _inst_2 _inst_1) => β -> α) (MeasurableEquiv.hasCoeToFun.{u2, u1} β α _inst_2 _inst_1) (MeasurableEquiv.symm.{u1, u2} α β _inst_1 _inst_2 e)) s)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) (s : Set.{u2} α), Eq.{succ u1} (Set.{u1} β) (Set.image.{u2, u1} α β (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLikeMeasurableEquiv.{u2, u1} α β _inst_1 _inst_2))) e) s) (Set.preimage.{u1, u2} β α (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β (fun (_x : β) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : β) => α) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (MeasurableEquiv.instEquivLikeMeasurableEquiv.{u1, u2} β α _inst_2 _inst_1))) (MeasurableEquiv.symm.{u2, u1} α β _inst_1 _inst_2 e)) s)
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) (s : Set.{u2} α), Eq.{succ u1} (Set.{u1} β) (Set.image.{u2, u1} α β (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLike.{u2, u1} α β _inst_1 _inst_2))) e) s) (Set.preimage.{u1, u2} β α (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β (fun (_x : β) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : β) => α) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (MeasurableEquiv.instEquivLike.{u1, u2} β α _inst_2 _inst_1))) (MeasurableEquiv.symm.{u2, u1} α β _inst_1 _inst_2 e)) s)
 Case conversion may be inaccurate. Consider using '#align measurable_equiv.image_eq_preimage MeasurableEquiv.image_eq_preimageₓ'. -/
 theorem image_eq_preimage (e : α ≃ᵐ β) (s : Set α) : e '' s = e.symm ⁻¹' s :=
   e.toEquiv.image_eq_preimage s
@@ -2117,7 +2089,7 @@ theorem image_eq_preimage (e : α ≃ᵐ β) (s : Set α) : e '' s = e.symm ⁻
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] (e : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) {s : Set.{u2} β}, Iff (MeasurableSet.{u1} α _inst_1 (Set.preimage.{u1, u2} α β (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) (MeasurableEquiv.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) e) s)) (MeasurableSet.{u2} β _inst_2 s)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) {s : Set.{u1} β}, Iff (MeasurableSet.{u2} α _inst_1 (Set.preimage.{u2, u1} α β (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLikeMeasurableEquiv.{u2, u1} α β _inst_1 _inst_2))) e) s)) (MeasurableSet.{u1} β _inst_2 s)
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) {s : Set.{u1} β}, Iff (MeasurableSet.{u2} α _inst_1 (Set.preimage.{u2, u1} α β (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLike.{u2, u1} α β _inst_1 _inst_2))) e) s)) (MeasurableSet.{u1} β _inst_2 s)
 Case conversion may be inaccurate. Consider using '#align measurable_equiv.measurable_set_preimage MeasurableEquiv.measurableSet_preimageₓ'. -/
 @[simp]
 theorem measurableSet_preimage (e : α ≃ᵐ β) {s : Set β} :
@@ -2130,7 +2102,7 @@ theorem measurableSet_preimage (e : α ≃ᵐ β) {s : Set β} :
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] (e : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) {s : Set.{u1} α}, Iff (MeasurableSet.{u2} β _inst_2 (Set.image.{u1, u2} α β (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) (MeasurableEquiv.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) e) s)) (MeasurableSet.{u1} α _inst_1 s)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) {s : Set.{u2} α}, Iff (MeasurableSet.{u1} β _inst_2 (Set.image.{u2, u1} α β (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLikeMeasurableEquiv.{u2, u1} α β _inst_1 _inst_2))) e) s)) (MeasurableSet.{u2} α _inst_1 s)
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) {s : Set.{u2} α}, Iff (MeasurableSet.{u1} β _inst_2 (Set.image.{u2, u1} α β (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLike.{u2, u1} α β _inst_1 _inst_2))) e) s)) (MeasurableSet.{u2} α _inst_1 s)
 Case conversion may be inaccurate. Consider using '#align measurable_equiv.measurable_set_image MeasurableEquiv.measurableSet_imageₓ'. -/
 @[simp]
 theorem measurableSet_image (e : α ≃ᵐ β) {s : Set α} : MeasurableSet (e '' s) ↔ MeasurableSet s :=
@@ -2141,7 +2113,7 @@ theorem measurableSet_image (e : α ≃ᵐ β) {s : Set α} : MeasurableSet (e '
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] (e : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2), MeasurableEmbedding.{u1, u2} α β _inst_1 _inst_2 (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) (MeasurableEquiv.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) e)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2), MeasurableEmbedding.{u2, u1} α β _inst_1 _inst_2 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLikeMeasurableEquiv.{u2, u1} α β _inst_1 _inst_2))) e)
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2), MeasurableEmbedding.{u2, u1} α β _inst_1 _inst_2 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLike.{u2, u1} α β _inst_1 _inst_2))) e)
 Case conversion may be inaccurate. Consider using '#align measurable_equiv.measurable_embedding MeasurableEquiv.measurableEmbeddingₓ'. -/
 /-- A measurable equivalence is a measurable embedding. -/
 protected theorem measurableEmbedding (e : α ≃ᵐ β) : MeasurableEmbedding e :=
@@ -2170,7 +2142,7 @@ protected def cast {α β} [i₁ : MeasurableSpace α] [i₂ : MeasurableSpace 
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] [_inst_3 : MeasurableSpace.{u3} γ] {f : β -> γ} (e : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2), Iff (Measurable.{u1, u3} α γ _inst_1 _inst_3 (Function.comp.{succ u1, succ u2, succ u3} α β γ f (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) (MeasurableEquiv.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) e))) (Measurable.{u2, u3} β γ _inst_2 _inst_3 f)
 but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u1}} [_inst_1 : MeasurableSpace.{u3} α] [_inst_2 : MeasurableSpace.{u2} β] [_inst_3 : MeasurableSpace.{u1} γ] {f : β -> γ} (e : MeasurableEquiv.{u3, u2} α β _inst_1 _inst_2), Iff (Measurable.{u3, u1} α γ _inst_1 _inst_3 (Function.comp.{succ u3, succ u2, succ u1} α β γ f (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (MeasurableEquiv.{u3, u2} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u3) (succ u2), succ u3, succ u2} (MeasurableEquiv.{u3, u2} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u3) (succ u2), succ u3, succ u2} (MeasurableEquiv.{u3, u2} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLikeMeasurableEquiv.{u3, u2} α β _inst_1 _inst_2))) e))) (Measurable.{u2, u1} β γ _inst_2 _inst_3 f)
+  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u1}} [_inst_1 : MeasurableSpace.{u3} α] [_inst_2 : MeasurableSpace.{u2} β] [_inst_3 : MeasurableSpace.{u1} γ] {f : β -> γ} (e : MeasurableEquiv.{u3, u2} α β _inst_1 _inst_2), Iff (Measurable.{u3, u1} α γ _inst_1 _inst_3 (Function.comp.{succ u3, succ u2, succ u1} α β γ f (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (MeasurableEquiv.{u3, u2} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u3) (succ u2), succ u3, succ u2} (MeasurableEquiv.{u3, u2} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u3) (succ u2), succ u3, succ u2} (MeasurableEquiv.{u3, u2} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLike.{u3, u2} α β _inst_1 _inst_2))) e))) (Measurable.{u2, u1} β γ _inst_2 _inst_3 f)
 Case conversion may be inaccurate. Consider using '#align measurable_equiv.measurable_comp_iff MeasurableEquiv.measurable_comp_iffₓ'. -/
 protected theorem measurable_comp_iff {f : β → γ} (e : α ≃ᵐ β) :
     Measurable (f ∘ e) ↔ Measurable f :=
@@ -2225,12 +2197,7 @@ def prodAssoc : (α × β) × γ ≃ᵐ α × β × γ
 #align measurable_equiv.prod_assoc MeasurableEquiv.prodAssoc
 -/
 
-/- warning: measurable_equiv.sum_congr -> MeasurableEquiv.sumCongr is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {δ : Type.{u4}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] [_inst_3 : MeasurableSpace.{u3} γ] [_inst_4 : MeasurableSpace.{u4} δ], (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) -> (MeasurableEquiv.{u3, u4} γ δ _inst_3 _inst_4) -> (MeasurableEquiv.{max u1 u3, max u2 u4} (Sum.{u1, u3} α γ) (Sum.{u2, u4} β δ) (Sum.measurableSpace.{u1, u3} α γ _inst_1 _inst_3) (Sum.measurableSpace.{u2, u4} β δ _inst_2 _inst_4))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {δ : Type.{u4}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] [_inst_3 : MeasurableSpace.{u3} γ] [_inst_4 : MeasurableSpace.{u4} δ], (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) -> (MeasurableEquiv.{u3, u4} γ δ _inst_3 _inst_4) -> (MeasurableEquiv.{max u3 u1, max u4 u2} (Sum.{u1, u3} α γ) (Sum.{u2, u4} β δ) (instMeasurableSpaceSum.{u1, u3} α γ _inst_1 _inst_3) (instMeasurableSpaceSum.{u2, u4} β δ _inst_2 _inst_4))
-Case conversion may be inaccurate. Consider using '#align measurable_equiv.sum_congr MeasurableEquiv.sumCongrₓ'. -/
+#print MeasurableEquiv.sumCongr /-
 /-- Sums of measurable spaces are symmetric. -/
 def sumCongr (ab : α ≃ᵐ β) (cd : γ ≃ᵐ δ) : Sum α γ ≃ᵐ Sum β δ
     where
@@ -2242,6 +2209,7 @@ def sumCongr (ab : α ≃ᵐ β) (cd : γ ≃ᵐ δ) : Sum α γ ≃ᵐ Sum β 
     cases' ab with ab' _ abm; cases ab'; cases' cd with cd' _ cdm; cases cd'
     refine' measurable_sum (measurable_inl.comp abm) (measurable_inr.comp cdm)
 #align measurable_equiv.sum_congr MeasurableEquiv.sumCongr
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 #print MeasurableEquiv.Set.prod /-
@@ -2266,12 +2234,7 @@ def Set.univ (α : Type _) [MeasurableSpace α] : (univ : Set α) ≃ᵐ α
 #align measurable_equiv.set.univ MeasurableEquiv.Set.univ
 -/
 
-/- warning: measurable_equiv.set.singleton -> MeasurableEquiv.Set.singleton is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] (a : α), MeasurableEquiv.{u1, 0} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (Singleton.singleton.{u1, u1} α (Set.{u1} α) (Set.hasSingleton.{u1} α) a)) Unit (Subtype.measurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (Singleton.singleton.{u1, u1} α (Set.{u1} α) (Set.hasSingleton.{u1} α) a)) _inst_1) PUnit.measurableSpace.{0}
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] (a : α), MeasurableEquiv.{u1, 0} (Set.Elem.{u1} α (Singleton.singleton.{u1, u1} α (Set.{u1} α) (Set.instSingletonSet.{u1} α) a)) Unit (instMeasurableSpaceSubtype.{u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x (Singleton.singleton.{u1, u1} α (Set.{u1} α) (Set.instSingletonSet.{u1} α) a)) _inst_1) instMeasurableSpacePUnit.{0}
-Case conversion may be inaccurate. Consider using '#align measurable_equiv.set.singleton MeasurableEquiv.Set.singletonₓ'. -/
+#print MeasurableEquiv.Set.singleton /-
 /-- `{a} ≃ unit` as measurable spaces. -/
 def Set.singleton (a : α) : ({a} : Set α) ≃ᵐ Unit
     where
@@ -2279,13 +2242,9 @@ def Set.singleton (a : α) : ({a} : Set α) ≃ᵐ Unit
   measurable_to_fun := measurable_const
   measurable_inv_fun := measurable_const
 #align measurable_equiv.set.singleton MeasurableEquiv.Set.singleton
+-/
 
-/- warning: measurable_equiv.set.range_inl -> MeasurableEquiv.Set.rangeInl is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β], MeasurableEquiv.{max u1 u2, u1} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sum.{u1, u2} α β)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sum.{u1, u2} α β)) (Set.range.{max u1 u2, succ u1} (Sum.{u1, u2} α β) α (Sum.inl.{u1, u2} α β))) α (Subtype.measurableSpace.{max u1 u2} (Sum.{u1, u2} α β) (fun (x : Sum.{u1, u2} α β) => Membership.Mem.{max u1 u2, max u1 u2} (Sum.{u1, u2} α β) (Set.{max u1 u2} (Sum.{u1, u2} α β)) (Set.hasMem.{max u1 u2} (Sum.{u1, u2} α β)) x (Set.range.{max u1 u2, succ u1} (Sum.{u1, u2} α β) α (Sum.inl.{u1, u2} α β))) (Sum.measurableSpace.{u1, u2} α β _inst_1 _inst_2)) _inst_1
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β], MeasurableEquiv.{max u1 u2, u1} (Set.Elem.{max u1 u2} (Sum.{u1, u2} α β) (Set.range.{max u1 u2, succ u1} (Sum.{u1, u2} α β) α (Sum.inl.{u1, u2} α β))) α (instMeasurableSpaceSubtype.{max u1 u2} (Sum.{u1, u2} α β) (fun (x : Sum.{u1, u2} α β) => Membership.mem.{max u1 u2, max u1 u2} (Sum.{u1, u2} α β) (Set.{max u1 u2} (Sum.{u1, u2} α β)) (Set.instMembershipSet.{max u1 u2} (Sum.{u1, u2} α β)) x (Set.range.{max u1 u2, succ u1} (Sum.{u1, u2} α β) α (Sum.inl.{u1, u2} α β))) (instMeasurableSpaceSum.{u1, u2} α β _inst_1 _inst_2)) _inst_1
-Case conversion may be inaccurate. Consider using '#align measurable_equiv.set.range_inl MeasurableEquiv.Set.rangeInlₓ'. -/
+#print MeasurableEquiv.Set.rangeInl /-
 /-- `α` is equivalent to its image in `α ⊕ β` as measurable spaces. -/
 def Set.rangeInl : (range Sum.inl : Set (Sum α β)) ≃ᵐ α
     where
@@ -2309,13 +2268,9 @@ def Set.rangeInl : (range Sum.inl : Set (Sum α β)) ≃ᵐ α
     simp [set.range_inl._match_1]
   measurable_inv_fun := Measurable.subtype_mk measurable_inl
 #align measurable_equiv.set.range_inl MeasurableEquiv.Set.rangeInl
+-/
 
-/- warning: measurable_equiv.set.range_inr -> MeasurableEquiv.Set.rangeInr is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β], MeasurableEquiv.{max u1 u2, u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sum.{u1, u2} α β)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sum.{u1, u2} α β)) (Set.range.{max u1 u2, succ u2} (Sum.{u1, u2} α β) β (Sum.inr.{u1, u2} α β))) β (Subtype.measurableSpace.{max u1 u2} (Sum.{u1, u2} α β) (fun (x : Sum.{u1, u2} α β) => Membership.Mem.{max u1 u2, max u1 u2} (Sum.{u1, u2} α β) (Set.{max u1 u2} (Sum.{u1, u2} α β)) (Set.hasMem.{max u1 u2} (Sum.{u1, u2} α β)) x (Set.range.{max u1 u2, succ u2} (Sum.{u1, u2} α β) β (Sum.inr.{u1, u2} α β))) (Sum.measurableSpace.{u1, u2} α β _inst_1 _inst_2)) _inst_2
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β], MeasurableEquiv.{max u1 u2, u2} (Set.Elem.{max u1 u2} (Sum.{u1, u2} α β) (Set.range.{max u1 u2, succ u2} (Sum.{u1, u2} α β) β (Sum.inr.{u1, u2} α β))) β (instMeasurableSpaceSubtype.{max u1 u2} (Sum.{u1, u2} α β) (fun (x : Sum.{u1, u2} α β) => Membership.mem.{max u1 u2, max u1 u2} (Sum.{u1, u2} α β) (Set.{max u1 u2} (Sum.{u1, u2} α β)) (Set.instMembershipSet.{max u1 u2} (Sum.{u1, u2} α β)) x (Set.range.{max u1 u2, succ u2} (Sum.{u1, u2} α β) β (Sum.inr.{u1, u2} α β))) (instMeasurableSpaceSum.{u1, u2} α β _inst_1 _inst_2)) _inst_2
-Case conversion may be inaccurate. Consider using '#align measurable_equiv.set.range_inr MeasurableEquiv.Set.rangeInrₓ'. -/
+#print MeasurableEquiv.Set.rangeInr /-
 /-- `β` is equivalent to its image in `α ⊕ β` as measurable spaces. -/
 def Set.rangeInr : (range Sum.inr : Set (Sum α β)) ≃ᵐ β
     where
@@ -2339,15 +2294,11 @@ def Set.rangeInr : (range Sum.inr : Set (Sum α β)) ≃ᵐ β
     simp [set.range_inr._match_1]
   measurable_inv_fun := Measurable.subtype_mk measurable_inr
 #align measurable_equiv.set.range_inr MeasurableEquiv.Set.rangeInr
+-/
 
-/- warning: measurable_equiv.sum_prod_distrib -> MeasurableEquiv.sumProdDistrib is a dubious translation:
-lean 3 declaration is
-  forall (α : Type.{u1}) (β : Type.{u2}) (γ : Type.{u3}) [_inst_5 : MeasurableSpace.{u1} α] [_inst_6 : MeasurableSpace.{u2} β] [_inst_7 : MeasurableSpace.{u3} γ], MeasurableEquiv.{max (max u1 u2) u3, max (max u1 u3) u2 u3} (Prod.{max u1 u2, u3} (Sum.{u1, u2} α β) γ) (Sum.{max u1 u3, max u2 u3} (Prod.{u1, u3} α γ) (Prod.{u2, u3} β γ)) (Prod.measurableSpace.{max u1 u2, u3} (Sum.{u1, u2} α β) γ (Sum.measurableSpace.{u1, u2} α β _inst_5 _inst_6) _inst_7) (Sum.measurableSpace.{max u1 u3, max u2 u3} (Prod.{u1, u3} α γ) (Prod.{u2, u3} β γ) (Prod.measurableSpace.{u1, u3} α γ _inst_5 _inst_7) (Prod.measurableSpace.{u2, u3} β γ _inst_6 _inst_7))
-but is expected to have type
-  forall (α : Type.{u1}) (β : Type.{u2}) (γ : Type.{u3}) [_inst_5 : MeasurableSpace.{u1} α] [_inst_6 : MeasurableSpace.{u2} β] [_inst_7 : MeasurableSpace.{u3} γ], MeasurableEquiv.{max u3 u2 u1, max (max u3 u2) u3 u1} (Prod.{max u2 u1, u3} (Sum.{u1, u2} α β) γ) (Sum.{max u3 u1, max u3 u2} (Prod.{u1, u3} α γ) (Prod.{u2, u3} β γ)) (instMeasurableSpaceProd.{max u1 u2, u3} (Sum.{u1, u2} α β) γ (instMeasurableSpaceSum.{u1, u2} α β _inst_5 _inst_6) _inst_7) (instMeasurableSpaceSum.{max u1 u3, max u2 u3} (Prod.{u1, u3} α γ) (Prod.{u2, u3} β γ) (instMeasurableSpaceProd.{u1, u3} α γ _inst_5 _inst_7) (instMeasurableSpaceProd.{u2, u3} β γ _inst_6 _inst_7))
-Case conversion may be inaccurate. Consider using '#align measurable_equiv.sum_prod_distrib MeasurableEquiv.sumProdDistribₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print MeasurableEquiv.sumProdDistrib /-
 /-- Products distribute over sums (on the right) as measurable spaces. -/
 def sumProdDistrib (α β γ) [MeasurableSpace α] [MeasurableSpace β] [MeasurableSpace γ] :
     Sum α β × γ ≃ᵐ Sum (α × γ) (β × γ)
@@ -2376,30 +2327,23 @@ def sumProdDistrib (α β γ) [MeasurableSpace α] [MeasurableSpace β] [Measura
     measurable_sum ((measurable_inl.comp measurable_fst).prod_mk measurable_snd)
       ((measurable_inr.comp measurable_fst).prod_mk measurable_snd)
 #align measurable_equiv.sum_prod_distrib MeasurableEquiv.sumProdDistrib
+-/
 
-/- warning: measurable_equiv.prod_sum_distrib -> MeasurableEquiv.prodSumDistrib is a dubious translation:
-lean 3 declaration is
-  forall (α : Type.{u1}) (β : Type.{u2}) (γ : Type.{u3}) [_inst_5 : MeasurableSpace.{u1} α] [_inst_6 : MeasurableSpace.{u2} β] [_inst_7 : MeasurableSpace.{u3} γ], MeasurableEquiv.{max u1 u2 u3, max (max u1 u2) u1 u3} (Prod.{u1, max u2 u3} α (Sum.{u2, u3} β γ)) (Sum.{max u1 u2, max u1 u3} (Prod.{u1, u2} α β) (Prod.{u1, u3} α γ)) (Prod.measurableSpace.{u1, max u2 u3} α (Sum.{u2, u3} β γ) _inst_5 (Sum.measurableSpace.{u2, u3} β γ _inst_6 _inst_7)) (Sum.measurableSpace.{max u1 u2, max u1 u3} (Prod.{u1, u2} α β) (Prod.{u1, u3} α γ) (Prod.measurableSpace.{u1, u2} α β _inst_5 _inst_6) (Prod.measurableSpace.{u1, u3} α γ _inst_5 _inst_7))
-but is expected to have type
-  forall (α : Type.{u1}) (β : Type.{u2}) (γ : Type.{u3}) [_inst_5 : MeasurableSpace.{u1} α] [_inst_6 : MeasurableSpace.{u2} β] [_inst_7 : MeasurableSpace.{u3} γ], MeasurableEquiv.{max (max u3 u2) u1, max (max u3 u1) u2 u1} (Prod.{u1, max u3 u2} α (Sum.{u2, u3} β γ)) (Sum.{max u2 u1, max u3 u1} (Prod.{u1, u2} α β) (Prod.{u1, u3} α γ)) (instMeasurableSpaceProd.{u1, max u2 u3} α (Sum.{u2, u3} β γ) _inst_5 (instMeasurableSpaceSum.{u2, u3} β γ _inst_6 _inst_7)) (instMeasurableSpaceSum.{max u1 u2, max u1 u3} (Prod.{u1, u2} α β) (Prod.{u1, u3} α γ) (instMeasurableSpaceProd.{u1, u2} α β _inst_5 _inst_6) (instMeasurableSpaceProd.{u1, u3} α γ _inst_5 _inst_7))
-Case conversion may be inaccurate. Consider using '#align measurable_equiv.prod_sum_distrib MeasurableEquiv.prodSumDistribₓ'. -/
+#print MeasurableEquiv.prodSumDistrib /-
 /-- Products distribute over sums (on the left) as measurable spaces. -/
 def prodSumDistrib (α β γ) [MeasurableSpace α] [MeasurableSpace β] [MeasurableSpace γ] :
     α × Sum β γ ≃ᵐ Sum (α × β) (α × γ) :=
   prodComm.trans <| (sumProdDistrib _ _ _).trans <| sumCongr prodComm prodComm
 #align measurable_equiv.prod_sum_distrib MeasurableEquiv.prodSumDistrib
+-/
 
-/- warning: measurable_equiv.sum_prod_sum -> MeasurableEquiv.sumProdSum is a dubious translation:
-lean 3 declaration is
-  forall (α : Type.{u1}) (β : Type.{u2}) (γ : Type.{u3}) (δ : Type.{u4}) [_inst_5 : MeasurableSpace.{u1} α] [_inst_6 : MeasurableSpace.{u2} β] [_inst_7 : MeasurableSpace.{u3} γ] [_inst_8 : MeasurableSpace.{u4} δ], MeasurableEquiv.{max (max u1 u2) u3 u4, max (max (max u1 u3) u1 u4) (max u2 u3) u2 u4} (Prod.{max u1 u2, max u3 u4} (Sum.{u1, u2} α β) (Sum.{u3, u4} γ δ)) (Sum.{max (max u1 u3) u1 u4, max (max u2 u3) u2 u4} (Sum.{max u1 u3, max u1 u4} (Prod.{u1, u3} α γ) (Prod.{u1, u4} α δ)) (Sum.{max u2 u3, max u2 u4} (Prod.{u2, u3} β γ) (Prod.{u2, u4} β δ))) (Prod.measurableSpace.{max u1 u2, max u3 u4} (Sum.{u1, u2} α β) (Sum.{u3, u4} γ δ) (Sum.measurableSpace.{u1, u2} α β _inst_5 _inst_6) (Sum.measurableSpace.{u3, u4} γ δ _inst_7 _inst_8)) (Sum.measurableSpace.{max (max u1 u3) u1 u4, max (max u2 u3) u2 u4} (Sum.{max u1 u3, max u1 u4} (Prod.{u1, u3} α γ) (Prod.{u1, u4} α δ)) (Sum.{max u2 u3, max u2 u4} (Prod.{u2, u3} β γ) (Prod.{u2, u4} β δ)) (Sum.measurableSpace.{max u1 u3, max u1 u4} (Prod.{u1, u3} α γ) (Prod.{u1, u4} α δ) (Prod.measurableSpace.{u1, u3} α γ _inst_5 _inst_7) (Prod.measurableSpace.{u1, u4} α δ _inst_5 _inst_8)) (Sum.measurableSpace.{max u2 u3, max u2 u4} (Prod.{u2, u3} β γ) (Prod.{u2, u4} β δ) (Prod.measurableSpace.{u2, u3} β γ _inst_6 _inst_7) (Prod.measurableSpace.{u2, u4} β δ _inst_6 _inst_8)))
-but is expected to have type
-  forall (α : Type.{u1}) (β : Type.{u2}) (γ : Type.{u3}) (δ : Type.{u4}) [_inst_5 : MeasurableSpace.{u1} α] [_inst_6 : MeasurableSpace.{u2} β] [_inst_7 : MeasurableSpace.{u3} γ] [_inst_8 : MeasurableSpace.{u4} δ], MeasurableEquiv.{max (max u4 u3) u2 u1, max (max (max u4 u2) u3 u2) (max u4 u1) u3 u1} (Prod.{max u2 u1, max u4 u3} (Sum.{u1, u2} α β) (Sum.{u3, u4} γ δ)) (Sum.{max (max u4 u1) u3 u1, max (max u4 u2) u3 u2} (Sum.{max u3 u1, max u4 u1} (Prod.{u1, u3} α γ) (Prod.{u1, u4} α δ)) (Sum.{max u3 u2, max u4 u2} (Prod.{u2, u3} β γ) (Prod.{u2, u4} β δ))) (instMeasurableSpaceProd.{max u1 u2, max u3 u4} (Sum.{u1, u2} α β) (Sum.{u3, u4} γ δ) (instMeasurableSpaceSum.{u1, u2} α β _inst_5 _inst_6) (instMeasurableSpaceSum.{u3, u4} γ δ _inst_7 _inst_8)) (instMeasurableSpaceSum.{max (max u1 u3) u4, max (max u2 u3) u4} (Sum.{max u3 u1, max u4 u1} (Prod.{u1, u3} α γ) (Prod.{u1, u4} α δ)) (Sum.{max u3 u2, max u4 u2} (Prod.{u2, u3} β γ) (Prod.{u2, u4} β δ)) (instMeasurableSpaceSum.{max u1 u3, max u1 u4} (Prod.{u1, u3} α γ) (Prod.{u1, u4} α δ) (instMeasurableSpaceProd.{u1, u3} α γ _inst_5 _inst_7) (instMeasurableSpaceProd.{u1, u4} α δ _inst_5 _inst_8)) (instMeasurableSpaceSum.{max u2 u3, max u2 u4} (Prod.{u2, u3} β γ) (Prod.{u2, u4} β δ) (instMeasurableSpaceProd.{u2, u3} β γ _inst_6 _inst_7) (instMeasurableSpaceProd.{u2, u4} β δ _inst_6 _inst_8)))
-Case conversion may be inaccurate. Consider using '#align measurable_equiv.sum_prod_sum MeasurableEquiv.sumProdSumₓ'. -/
+#print MeasurableEquiv.sumProdSum /-
 /-- Products distribute over sums as measurable spaces. -/
 def sumProdSum (α β γ δ) [MeasurableSpace α] [MeasurableSpace β] [MeasurableSpace γ]
     [MeasurableSpace δ] : Sum α β × Sum γ δ ≃ᵐ Sum (Sum (α × γ) (α × δ)) (Sum (β × γ) (β × δ)) :=
   (sumProdDistrib _ _ _).trans <| sumCongr (prodSumDistrib _ _ _) (prodSumDistrib _ _ _)
 #align measurable_equiv.sum_prod_sum MeasurableEquiv.sumProdSum
+-/
 
 variable {π π' : δ' → Type _} [∀ x, MeasurableSpace (π x)] [∀ x, MeasurableSpace (π' x)]
 
@@ -2418,9 +2362,9 @@ def piCongrRight (e : ∀ a, π a ≃ᵐ π' a) : (∀ a, π a) ≃ᵐ ∀ a, π
 
 /- warning: measurable_equiv.pi_measurable_equiv_tprod -> MeasurableEquiv.piMeasurableEquivTProd is a dubious translation:
 lean 3 declaration is
-  forall {δ' : Type.{u_5}} {π : δ' -> Type.{u_7}} [_inst_5 : forall (x : δ'), MeasurableSpace.{u_7} (π x)] [_inst_7 : DecidableEq.{succ u_5} δ'] {l : List.{u_5} δ'}, (List.Nodup.{u_5} δ' l) -> (forall (i : δ'), Membership.Mem.{u_5, u_5} δ' (List.{u_5} δ') (List.hasMem.{u_5} δ') i l) -> (MeasurableEquiv.{max u_5 u_7, max u_7 u_1} (forall (i : δ'), π i) (List.TProd.{u_5, u_7, u_1} δ' π l) (MeasurableSpace.pi.{u_5, u_7} δ' (fun (i : δ') => π i) (fun (a : δ') => _inst_5 a)) (TProd.measurableSpace.{u_5, u_7, u_1} δ' π (fun (a : δ') => _inst_5 a) l))
+  forall {δ' : Type.{u_5}} {π : δ' -> Type.{u_7}} [_inst_5 : forall (x : δ'), MeasurableSpace.{u_7} (π x)] [_inst_7 : DecidableEq.{succ u_5} δ'] {l : List.{u_5} δ'}, (List.Nodup.{u_5} δ' l) -> (forall (i : δ'), Membership.Mem.{u_5, u_5} δ' (List.{u_5} δ') (List.hasMem.{u_5} δ') i l) -> (MeasurableEquiv.{max u_5 u_7, max u_7 u_1} (forall (i : δ'), π i) (List.TProd.{u_5, u_7, u_1} δ' π l) (MeasurableSpace.pi.{u_5, u_7} δ' (fun (i : δ') => π i) (fun (a : δ') => _inst_5 a)) (TProd.instMeasurableSpace.{u_5, u_7, u_1} δ' π (fun (a : δ') => _inst_5 a) l))
 but is expected to have type
-  forall {δ' : Type.{u_1}} {π : δ' -> Type.{u_2}} [_inst_5 : forall (x : δ'), MeasurableSpace.{u_2} (π x)] [_inst_7 : DecidableEq.{succ u_1} δ'] {l : List.{u_1} δ'}, (List.Nodup.{u_1} δ' l) -> (forall (i : δ'), Membership.mem.{u_1, u_1} δ' (List.{u_1} δ') (List.instMembershipList.{u_1} δ') i l) -> (MeasurableEquiv.{max u_1 u_2, u_2} (forall (i : δ'), π i) (List.TProd.{u_1, u_2} δ' π l) (MeasurableSpace.pi.{u_1, u_2} δ' (fun (i : δ') => π i) (fun (a : δ') => _inst_5 a)) (TProd.measurableSpace.{u_1, u_2} δ' π (fun (a : δ') => _inst_5 a) l))
+  forall {δ' : Type.{u_1}} {π : δ' -> Type.{u_2}} [_inst_5 : forall (x : δ'), MeasurableSpace.{u_2} (π x)] [_inst_7 : DecidableEq.{succ u_1} δ'] {l : List.{u_1} δ'}, (List.Nodup.{u_1} δ' l) -> (forall (i : δ'), Membership.mem.{u_1, u_1} δ' (List.{u_1} δ') (List.instMembershipList.{u_1} δ') i l) -> (MeasurableEquiv.{max u_1 u_2, u_2} (forall (i : δ'), π i) (List.TProd.{u_1, u_2} δ' π l) (MeasurableSpace.pi.{u_1, u_2} δ' (fun (i : δ') => π i) (fun (a : δ') => _inst_5 a)) (TProd.instMeasurableSpace.{u_1, u_2} δ' π (fun (a : δ') => _inst_5 a) l))
 Case conversion may be inaccurate. Consider using '#align measurable_equiv.pi_measurable_equiv_tprod MeasurableEquiv.piMeasurableEquivTProdₓ'. -/
 /-- Pi-types are measurably equivalent to iterated products. -/
 @[simps (config := { fullyApplied := false })]
@@ -2445,9 +2389,9 @@ def funUnique (α β : Type _) [Unique α] [MeasurableSpace β] : (α → β) 
 
 /- warning: measurable_equiv.pi_fin_two -> MeasurableEquiv.piFinTwo is a dubious translation:
 lean 3 declaration is
-  forall (α : (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> Type.{u1}) [_inst_7 : forall (i : Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))), MeasurableSpace.{u1} (α i)], MeasurableEquiv.{u1, u1} (forall (i : Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))), α i) (Prod.{u1, u1} (α (OfNat.ofNat.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 0 (OfNat.mk.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 0 (Zero.zero.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (Fin.hasZeroOfNeZero (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)) MeasurableEquiv.piFinTwo._proof_1))))) (α (OfNat.ofNat.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 1 (OfNat.mk.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 1 (One.one.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (Fin.hasOneOfNeZero (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)) MeasurableEquiv.piFinTwo._proof_2)))))) (MeasurableSpace.pi.{0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (fun (i : Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) => α i) (fun (a : Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) => _inst_7 a)) (Prod.measurableSpace.{u1, u1} (α (OfNat.ofNat.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 0 (OfNat.mk.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 0 (Zero.zero.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (Fin.hasZeroOfNeZero (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)) MeasurableEquiv.piFinTwo._proof_1))))) (α (OfNat.ofNat.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 1 (OfNat.mk.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 1 (One.one.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (Fin.hasOneOfNeZero (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)) MeasurableEquiv.piFinTwo._proof_2))))) (_inst_7 (OfNat.ofNat.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 0 (OfNat.mk.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 0 (Zero.zero.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (Fin.hasZeroOfNeZero (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)) MeasurableEquiv.piFinTwo._proof_1))))) (_inst_7 (OfNat.ofNat.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 1 (OfNat.mk.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 1 (One.one.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (Fin.hasOneOfNeZero (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)) MeasurableEquiv.piFinTwo._proof_2))))))
+  forall (α : (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> Type.{u1}) [_inst_7 : forall (i : Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))), MeasurableSpace.{u1} (α i)], MeasurableEquiv.{u1, u1} (forall (i : Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))), α i) (Prod.{u1, u1} (α (OfNat.ofNat.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 0 (OfNat.mk.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 0 (Zero.zero.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (Fin.hasZeroOfNeZero (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)) MeasurableEquiv.piFinTwo._proof_1))))) (α (OfNat.ofNat.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 1 (OfNat.mk.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 1 (One.one.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (Fin.hasOneOfNeZero (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)) MeasurableEquiv.piFinTwo._proof_2)))))) (MeasurableSpace.pi.{0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (fun (i : Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) => α i) (fun (a : Fin (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) => _inst_7 a)) (Prod.instMeasurableSpace.{u1, u1} (α (OfNat.ofNat.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 0 (OfNat.mk.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 0 (Zero.zero.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (Fin.hasZeroOfNeZero (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)) MeasurableEquiv.piFinTwo._proof_1))))) (α (OfNat.ofNat.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 1 (OfNat.mk.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 1 (One.one.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (Fin.hasOneOfNeZero (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)) MeasurableEquiv.piFinTwo._proof_2))))) (_inst_7 (OfNat.ofNat.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 0 (OfNat.mk.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 0 (Zero.zero.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (Fin.hasZeroOfNeZero (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)) MeasurableEquiv.piFinTwo._proof_1))))) (_inst_7 (OfNat.ofNat.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 1 (OfNat.mk.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) 1 (One.one.{0} (Fin (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (Fin.hasOneOfNeZero (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)) MeasurableEquiv.piFinTwo._proof_2))))))
 but is expected to have type
-  forall (α : (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> Type.{u1}) [_inst_7 : forall (i : Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))), MeasurableSpace.{u1} (α i)], MeasurableEquiv.{u1, u1} (forall (i : Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))), α i) (Prod.{u1, u1} (α (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (α (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))))) (MeasurableSpace.pi.{0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (fun (i : Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) => α i) (fun (a : Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) => _inst_7 a)) (instMeasurableSpaceProd.{u1, u1} (α (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (α (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (_inst_7 (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (_inst_7 (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))))
+  forall (α : (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) -> Type.{u1}) [_inst_7 : forall (i : Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))), MeasurableSpace.{u1} (α i)], MeasurableEquiv.{u1, u1} (forall (i : Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))), α i) (Prod.{u1, u1} (α (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (α (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))))) (MeasurableSpace.pi.{0, u1} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (fun (i : Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) => α i) (fun (a : Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) => _inst_7 a)) (Prod.instMeasurableSpace.{u1, u1} (α (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (α (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (_inst_7 (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (_inst_7 (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))))
 Case conversion may be inaccurate. Consider using '#align measurable_equiv.pi_fin_two MeasurableEquiv.piFinTwoₓ'. -/
 /-- The space `Π i : fin 2, α i` is measurably equivalent to `α 0 × α 1`. -/
 @[simps (config := { fullyApplied := false })]
@@ -2468,9 +2412,9 @@ def finTwoArrow : (Fin 2 → α) ≃ᵐ α × α :=
 
 /- warning: measurable_equiv.pi_fin_succ_above_equiv -> MeasurableEquiv.piFinSuccAboveEquiv is a dubious translation:
 lean 3 declaration is
-  forall {n : Nat} (α : (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> Type.{u1}) [_inst_7 : forall (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))), MeasurableSpace.{u1} (α i)] (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))), MeasurableEquiv.{u1, u1} (forall (j : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))), α j) (Prod.{u1, u1} (α i) (forall (j : Fin n), α (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe n) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) => (Fin n) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) (Fin.succAbove n i) j))) (MeasurableSpace.pi.{0, u1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (fun (j : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) => α j) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) => _inst_7 a)) (Prod.measurableSpace.{u1, u1} (α i) (forall (j : Fin n), α (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe n) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) => (Fin n) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) (Fin.succAbove n i) j)) (_inst_7 i) (MeasurableSpace.pi.{0, u1} (Fin n) (fun (j : Fin n) => α (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe n) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) => (Fin n) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) (Fin.succAbove n i) j)) (fun (a : Fin n) => _inst_7 (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe n) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) => (Fin n) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) (Fin.succAbove n i) a))))
+  forall {n : Nat} (α : (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> Type.{u1}) [_inst_7 : forall (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))), MeasurableSpace.{u1} (α i)] (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))), MeasurableEquiv.{u1, u1} (forall (j : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))), α j) (Prod.{u1, u1} (α i) (forall (j : Fin n), α (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe n) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) => (Fin n) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) (Fin.succAbove n i) j))) (MeasurableSpace.pi.{0, u1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (fun (j : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) => α j) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) => _inst_7 a)) (Prod.instMeasurableSpace.{u1, u1} (α i) (forall (j : Fin n), α (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe n) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) => (Fin n) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) (Fin.succAbove n i) j)) (_inst_7 i) (MeasurableSpace.pi.{0, u1} (Fin n) (fun (j : Fin n) => α (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe n) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) => (Fin n) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) (Fin.succAbove n i) j)) (fun (a : Fin n) => _inst_7 (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe n) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) => (Fin n) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) (Fin.succAbove n i) a))))
 but is expected to have type
-  forall {n : Nat} (α : (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) -> Type.{u1}) [_inst_7 : forall (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))), MeasurableSpace.{u1} (α i)] (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))), MeasurableEquiv.{u1, u1} (forall (j : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))), α j) (Prod.{u1, u1} (α i) (forall (j : Fin n), α (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin n) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.succAbove n i) j))) (MeasurableSpace.pi.{0, u1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (j : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => α j) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => _inst_7 a)) (instMeasurableSpaceProd.{u1, u1} (α i) (forall (j : Fin n), α (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin n) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.succAbove n i) j)) (_inst_7 i) (MeasurableSpace.pi.{0, u1} (Fin n) (fun (j : Fin n) => α (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin n) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.succAbove n i) j)) (fun (a : Fin n) => _inst_7 (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin n) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.succAbove n i) a))))
+  forall {n : Nat} (α : (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) -> Type.{u1}) [_inst_7 : forall (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))), MeasurableSpace.{u1} (α i)] (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))), MeasurableEquiv.{u1, u1} (forall (j : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))), α j) (Prod.{u1, u1} (α i) (forall (j : Fin n), α (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin n) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.succAbove n i) j))) (MeasurableSpace.pi.{0, u1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (j : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => α j) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => _inst_7 a)) (Prod.instMeasurableSpace.{u1, u1} (α i) (forall (j : Fin n), α (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin n) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.succAbove n i) j)) (_inst_7 i) (MeasurableSpace.pi.{0, u1} (Fin n) (fun (j : Fin n) => α (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin n) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.succAbove n i) j)) (fun (a : Fin n) => _inst_7 (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin n) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.succAbove n i) a))))
 Case conversion may be inaccurate. Consider using '#align measurable_equiv.pi_fin_succ_above_equiv MeasurableEquiv.piFinSuccAboveEquivₓ'. -/
 /-- Measurable equivalence between `Π j : fin (n + 1), α j` and
 `α i × Π j : fin n, α (fin.succ_above i j)`. -/
@@ -2503,9 +2447,9 @@ def piEquivPiSubtypeProd (p : δ' → Prop) [DecidablePred p] :
 
 /- warning: measurable_equiv.sum_compl -> MeasurableEquiv.sumCompl is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {s : Set.{u1} α} [_inst_7 : DecidablePred.{succ u1} α s], (MeasurableSet.{u1} α _inst_1 s) -> (MeasurableEquiv.{u1, u1} (Sum.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s))) α (Sum.measurableSpace.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) (Subtype.measurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) _inst_1) (Subtype.measurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) _inst_1)) _inst_1)
+  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {s : Set.{u1} α} [_inst_7 : DecidablePred.{succ u1} α s], (MeasurableSet.{u1} α _inst_1 s) -> (MeasurableEquiv.{u1, u1} (Sum.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s))) α (Sum.instMeasurableSpace.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) (Subtype.instMeasurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) _inst_1) (Subtype.instMeasurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) _inst_1)) _inst_1)
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {s : Set.{u1} α} [_inst_7 : DecidablePred.{succ u1} α (fun (x._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.17302 : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.17302 s)], (MeasurableSet.{u1} α _inst_1 s) -> (MeasurableEquiv.{u1, u1} (Sum.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s))) α (instMeasurableSpaceSum.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)) (instMeasurableSpaceSubtype.{u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) _inst_1) (instMeasurableSpaceSubtype.{u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)) _inst_1)) _inst_1)
+  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {s : Set.{u1} α} [_inst_7 : DecidablePred.{succ u1} α (fun (x._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.17407 : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.17407 s)], (MeasurableSet.{u1} α _inst_1 s) -> (MeasurableEquiv.{u1, u1} (Sum.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s))) α (Sum.instMeasurableSpace.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)) (Subtype.instMeasurableSpace.{u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) _inst_1) (Subtype.instMeasurableSpace.{u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)) _inst_1)) _inst_1)
 Case conversion may be inaccurate. Consider using '#align measurable_equiv.sum_compl MeasurableEquiv.sumComplₓ'. -/
 /-- If `s` is a measurable set in a measurable space, that space is equivalent
 to the sum of `s` and `sᶜ`.-/
@@ -2646,12 +2590,7 @@ class CountablyGenerated [m : MeasurableSpace α] : Prop where
 
 open Classical
 
-/- warning: measurable_space.measurable_injection_nat_bool_of_countably_generated -> MeasurableSpace.measurable_injection_nat_bool_of_countablyGenerated is a dubious translation:
-lean 3 declaration is
-  forall (α : Type.{u1}) [_inst_1 : MeasurableSpace.{u1} α] [h : MeasurableSpace.CountablyGenerated.{u1} α _inst_1] [_inst_2 : MeasurableSingletonClass.{u1} α _inst_1], Exists.{succ u1} (α -> Nat -> Bool) (fun (f : α -> Nat -> Bool) => And (Measurable.{u1, 0} α (Nat -> Bool) _inst_1 (MeasurableSpace.pi.{0, 0} Nat (fun (ᾰ : Nat) => Bool) (fun (a : Nat) => Bool.measurableSpace)) f) (Function.Injective.{succ u1, 1} α (Nat -> Bool) f))
-but is expected to have type
-  forall (α : Type.{u1}) [_inst_1 : MeasurableSpace.{u1} α] [h : MeasurableSpace.CountablyGenerated.{u1} α _inst_1] [_inst_2 : MeasurableSingletonClass.{u1} α _inst_1], Exists.{succ u1} (α -> Nat -> Bool) (fun (f : α -> Nat -> Bool) => And (Measurable.{u1, 0} α (Nat -> Bool) _inst_1 (MeasurableSpace.pi.{0, 0} Nat (fun (ᾰ : Nat) => Bool) (fun (a : Nat) => instMeasurableSpaceBool)) f) (Function.Injective.{succ u1, 1} α (Nat -> Bool) f))
-Case conversion may be inaccurate. Consider using '#align measurable_space.measurable_injection_nat_bool_of_countably_generated MeasurableSpace.measurable_injection_nat_bool_of_countablyGeneratedₓ'. -/
+#print MeasurableSpace.measurable_injection_nat_bool_of_countablyGenerated /-
 /-- If a measurable space is countably generated, it admits a measurable injection
 into the Cantor space `ℕ → bool` (equipped with the product sigma algebra). -/
 theorem measurable_injection_nat_bool_of_countablyGenerated [MeasurableSpace α]
@@ -2686,6 +2625,7 @@ theorem measurable_injection_nat_bool_of_countablyGenerated [MeasurableSpace α]
   specialize this {y} measurableSet_eq
   simpa only [mem_singleton, iff_true_iff]
 #align measurable_space.measurable_injection_nat_bool_of_countably_generated MeasurableSpace.measurable_injection_nat_bool_of_countablyGenerated
+-/
 
 end MeasurableSpace
 
@@ -2865,9 +2805,9 @@ instance : HasCompl (Subtype (MeasurableSet : Set α → Prop)) :=
 
 /- warning: measurable_set.coe_compl -> MeasurableSet.coe_compl is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] (s : Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)), Eq.{succ u1} (Set.{u1} α) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeBase.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeSubtype.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => MeasurableSet.{u1} α _inst_1 x))))) (HasCompl.compl.{u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (MeasurableSet.Subtype.hasCompl.{u1} α _inst_1) s)) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeBase.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeSubtype.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => MeasurableSet.{u1} α _inst_1 x))))) s))
+  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] (s : Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)), Eq.{succ u1} (Set.{u1} α) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeBase.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeSubtype.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => MeasurableSet.{u1} α _inst_1 x))))) (HasCompl.compl.{u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (MeasurableSet.Subtype.instHasCompl.{u1} α _inst_1) s)) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeBase.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeSubtype.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => MeasurableSet.{u1} α _inst_1 x))))) s))
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] (s : Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)), Eq.{succ u1} (Set.{u1} α) (Subtype.val.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1) (HasCompl.compl.{u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (MeasurableSet.instHasComplSubtypeSetMeasurableSet.{u1} α _inst_1) s)) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) (Subtype.val.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1) s))
+  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] (s : Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)), Eq.{succ u1} (Set.{u1} α) (Subtype.val.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1) (HasCompl.compl.{u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (MeasurableSet.Subtype.instHasCompl.{u1} α _inst_1) s)) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) (Subtype.val.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1) s))
 Case conversion may be inaccurate. Consider using '#align measurable_set.coe_compl MeasurableSet.coe_complₓ'. -/
 @[simp]
 theorem coe_compl (s : Subtype (MeasurableSet : Set α → Prop)) : ↑(sᶜ) = (sᶜ : Set α) :=
@@ -2879,9 +2819,9 @@ instance : Union (Subtype (MeasurableSet : Set α → Prop)) :=
 
 /- warning: measurable_set.coe_union -> MeasurableSet.coe_union is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] (s : Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (t : Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)), Eq.{succ u1} (Set.{u1} α) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeBase.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeSubtype.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => MeasurableSet.{u1} α _inst_1 x))))) (Union.union.{u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (MeasurableSet.Subtype.hasUnion.{u1} α _inst_1) s t)) (Union.union.{u1} (Set.{u1} α) (Set.hasUnion.{u1} α) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeBase.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeSubtype.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => MeasurableSet.{u1} α _inst_1 x))))) s) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeBase.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeSubtype.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => MeasurableSet.{u1} α _inst_1 x))))) t))
+  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] (s : Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (t : Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)), Eq.{succ u1} (Set.{u1} α) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeBase.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeSubtype.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => MeasurableSet.{u1} α _inst_1 x))))) (Union.union.{u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (MeasurableSet.Subtype.instUnion.{u1} α _inst_1) s t)) (Union.union.{u1} (Set.{u1} α) (Set.hasUnion.{u1} α) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeBase.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeSubtype.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => MeasurableSet.{u1} α _inst_1 x))))) s) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeBase.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeSubtype.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => MeasurableSet.{u1} α _inst_1 x))))) t))
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] (s : Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (t : Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)), Eq.{succ u1} (Set.{u1} α) (Subtype.val.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1) (Union.union.{u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (MeasurableSet.instUnionSubtypeSetMeasurableSet.{u1} α _inst_1) s t)) (Union.union.{u1} (Set.{u1} α) (Set.instUnionSet.{u1} α) (Subtype.val.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1) s) (Subtype.val.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1) t))
+  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] (s : Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (t : Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)), Eq.{succ u1} (Set.{u1} α) (Subtype.val.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1) (Union.union.{u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (MeasurableSet.Subtype.instUnion.{u1} α _inst_1) s t)) (Union.union.{u1} (Set.{u1} α) (Set.instUnionSet.{u1} α) (Subtype.val.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1) s) (Subtype.val.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1) t))
 Case conversion may be inaccurate. Consider using '#align measurable_set.coe_union MeasurableSet.coe_unionₓ'. -/
 @[simp]
 theorem coe_union (s t : Subtype (MeasurableSet : Set α → Prop)) : ↑(s ∪ t) = (s ∪ t : Set α) :=
@@ -2893,9 +2833,9 @@ instance : Inter (Subtype (MeasurableSet : Set α → Prop)) :=
 
 /- warning: measurable_set.coe_inter -> MeasurableSet.coe_inter is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] (s : Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (t : Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)), Eq.{succ u1} (Set.{u1} α) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeBase.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeSubtype.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => MeasurableSet.{u1} α _inst_1 x))))) (Inter.inter.{u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (MeasurableSet.Subtype.hasInter.{u1} α _inst_1) s t)) (Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeBase.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeSubtype.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => MeasurableSet.{u1} α _inst_1 x))))) s) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeBase.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeSubtype.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => MeasurableSet.{u1} α _inst_1 x))))) t))
+  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] (s : Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (t : Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)), Eq.{succ u1} (Set.{u1} α) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeBase.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeSubtype.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => MeasurableSet.{u1} α _inst_1 x))))) (Inter.inter.{u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (MeasurableSet.Subtype.instInter.{u1} α _inst_1) s t)) (Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeBase.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeSubtype.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => MeasurableSet.{u1} α _inst_1 x))))) s) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeBase.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeSubtype.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => MeasurableSet.{u1} α _inst_1 x))))) t))
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] (s : Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (t : Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)), Eq.{succ u1} (Set.{u1} α) (Subtype.val.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1) (Inter.inter.{u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (MeasurableSet.instInterSubtypeSetMeasurableSet.{u1} α _inst_1) s t)) (Inter.inter.{u1} (Set.{u1} α) (Set.instInterSet.{u1} α) (Subtype.val.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1) s) (Subtype.val.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1) t))
+  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] (s : Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (t : Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)), Eq.{succ u1} (Set.{u1} α) (Subtype.val.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1) (Inter.inter.{u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (MeasurableSet.Subtype.instInter.{u1} α _inst_1) s t)) (Inter.inter.{u1} (Set.{u1} α) (Set.instInterSet.{u1} α) (Subtype.val.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1) s) (Subtype.val.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1) t))
 Case conversion may be inaccurate. Consider using '#align measurable_set.coe_inter MeasurableSet.coe_interₓ'. -/
 @[simp]
 theorem coe_inter (s t : Subtype (MeasurableSet : Set α → Prop)) : ↑(s ∩ t) = (s ∩ t : Set α) :=
@@ -2907,9 +2847,9 @@ instance : SDiff (Subtype (MeasurableSet : Set α → Prop)) :=
 
 /- warning: measurable_set.coe_sdiff -> MeasurableSet.coe_sdiff is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] (s : Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (t : Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)), Eq.{succ u1} (Set.{u1} α) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeBase.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeSubtype.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => MeasurableSet.{u1} α _inst_1 x))))) (SDiff.sdiff.{u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (MeasurableSet.Subtype.hasSdiff.{u1} α _inst_1) s t)) (SDiff.sdiff.{u1} (Set.{u1} α) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeBase.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeSubtype.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => MeasurableSet.{u1} α _inst_1 x))))) s) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeBase.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeSubtype.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => MeasurableSet.{u1} α _inst_1 x))))) t))
+  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] (s : Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (t : Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)), Eq.{succ u1} (Set.{u1} α) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeBase.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeSubtype.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => MeasurableSet.{u1} α _inst_1 x))))) (SDiff.sdiff.{u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (MeasurableSet.Subtype.instSDiff.{u1} α _inst_1) s t)) (SDiff.sdiff.{u1} (Set.{u1} α) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeBase.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeSubtype.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => MeasurableSet.{u1} α _inst_1 x))))) s) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeBase.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeSubtype.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => MeasurableSet.{u1} α _inst_1 x))))) t))
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] (s : Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (t : Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)), Eq.{succ u1} (Set.{u1} α) (Subtype.val.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1) (SDiff.sdiff.{u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (MeasurableSet.instSDiffSubtypeSetMeasurableSet.{u1} α _inst_1) s t)) (SDiff.sdiff.{u1} (Set.{u1} α) (Set.instSDiffSet.{u1} α) (Subtype.val.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1) s) (Subtype.val.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1) t))
+  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] (s : Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (t : Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)), Eq.{succ u1} (Set.{u1} α) (Subtype.val.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1) (SDiff.sdiff.{u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (MeasurableSet.Subtype.instSDiff.{u1} α _inst_1) s t)) (SDiff.sdiff.{u1} (Set.{u1} α) (Set.instSDiffSet.{u1} α) (Subtype.val.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1) s) (Subtype.val.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1) t))
 Case conversion may be inaccurate. Consider using '#align measurable_set.coe_sdiff MeasurableSet.coe_sdiffₓ'. -/
 @[simp]
 theorem coe_sdiff (s t : Subtype (MeasurableSet : Set α → Prop)) : ↑(s \ t) = (s \ t : Set α) :=
@@ -2921,9 +2861,9 @@ instance : Bot (Subtype (MeasurableSet : Set α → Prop)) :=
 
 /- warning: measurable_set.coe_bot -> MeasurableSet.coe_bot is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α], Eq.{succ u1} (Set.{u1} α) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeBase.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeSubtype.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => MeasurableSet.{u1} α _inst_1 x))))) (Bot.bot.{u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (MeasurableSet.Subtype.hasBot.{u1} α _inst_1))) (Bot.bot.{u1} (Set.{u1} α) (CompleteLattice.toHasBot.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α))))))
+  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α], Eq.{succ u1} (Set.{u1} α) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeBase.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeSubtype.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => MeasurableSet.{u1} α _inst_1 x))))) (Bot.bot.{u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (MeasurableSet.Subtype.instBot.{u1} α _inst_1))) (Bot.bot.{u1} (Set.{u1} α) (CompleteLattice.toHasBot.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α))))))
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α], Eq.{succ u1} (Set.{u1} α) (Subtype.val.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1) (Bot.bot.{u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (MeasurableSet.instBotSubtypeSetMeasurableSet.{u1} α _inst_1))) (Bot.bot.{u1} (Set.{u1} α) (CompleteLattice.toBot.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α))))))
+  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α], Eq.{succ u1} (Set.{u1} α) (Subtype.val.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1) (Bot.bot.{u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (MeasurableSet.Subtype.instBot.{u1} α _inst_1))) (Bot.bot.{u1} (Set.{u1} α) (CompleteLattice.toBot.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α))))))
 Case conversion may be inaccurate. Consider using '#align measurable_set.coe_bot MeasurableSet.coe_botₓ'. -/
 @[simp]
 theorem coe_bot : ↑(⊥ : Subtype (MeasurableSet : Set α → Prop)) = (⊥ : Set α) :=
@@ -2935,9 +2875,9 @@ instance : Top (Subtype (MeasurableSet : Set α → Prop)) :=
 
 /- warning: measurable_set.coe_top -> MeasurableSet.coe_top is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α], Eq.{succ u1} (Set.{u1} α) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeBase.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeSubtype.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => MeasurableSet.{u1} α _inst_1 x))))) (Top.top.{u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (MeasurableSet.Subtype.hasTop.{u1} α _inst_1))) (Top.top.{u1} (Set.{u1} α) (CompleteLattice.toHasTop.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α))))))
+  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α], Eq.{succ u1} (Set.{u1} α) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeBase.{succ u1, succ u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (Set.{u1} α) (coeSubtype.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => MeasurableSet.{u1} α _inst_1 x))))) (Top.top.{u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (MeasurableSet.Subtype.instTop.{u1} α _inst_1))) (Top.top.{u1} (Set.{u1} α) (CompleteLattice.toHasTop.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α))))))
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α], Eq.{succ u1} (Set.{u1} α) (Subtype.val.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1) (Top.top.{u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (MeasurableSet.instTopSubtypeSetMeasurableSet.{u1} α _inst_1))) (Top.top.{u1} (Set.{u1} α) (CompleteLattice.toTop.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α))))))
+  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α], Eq.{succ u1} (Set.{u1} α) (Subtype.val.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1) (Top.top.{u1} (Subtype.{succ u1} (Set.{u1} α) (MeasurableSet.{u1} α _inst_1)) (MeasurableSet.Subtype.instTop.{u1} α _inst_1))) (Top.top.{u1} (Set.{u1} α) (CompleteLattice.toTop.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α))))))
 Case conversion may be inaccurate. Consider using '#align measurable_set.coe_top MeasurableSet.coe_topₓ'. -/
 @[simp]
 theorem coe_top : ↑(⊤ : Subtype (MeasurableSet : Set α → Prop)) = (⊤ : Set α) :=
Diff
@@ -426,7 +426,7 @@ theorem measurable_of_subsingleton_codomain [Subsingleton β] (f : α → β) :
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] [_inst_4 : One.{u1} α], Measurable.{u2, u1} β α _inst_2 _inst_1 (OfNat.ofNat.{max u2 u1} (β -> α) 1 (OfNat.mk.{max u2 u1} (β -> α) 1 (One.one.{max u2 u1} (β -> α) (Pi.instOne.{u2, u1} β (fun (ᾰ : β) => α) (fun (i : β) => _inst_4)))))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] [_inst_4 : One.{u2} α], Measurable.{u1, u2} β α _inst_2 _inst_1 (OfNat.ofNat.{max u2 u1} (β -> α) 1 (One.toOfNat1.{max u2 u1} (β -> α) (Pi.instOne.{u1, u2} β (fun (a._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.2070 : β) => α) (fun (i : β) => _inst_4))))
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] [_inst_4 : One.{u2} α], Measurable.{u1, u2} β α _inst_2 _inst_1 (OfNat.ofNat.{max u2 u1} (β -> α) 1 (One.toOfNat1.{max u2 u1} (β -> α) (Pi.instOne.{u1, u2} β (fun (a._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.2073 : β) => α) (fun (i : β) => _inst_4))))
 Case conversion may be inaccurate. Consider using '#align measurable_one measurable_oneₓ'. -/
 @[to_additive]
 theorem measurable_one [One α] : Measurable (1 : β → α) :=
@@ -471,7 +471,7 @@ theorem measurable_const' {f : β → α} (hf : ∀ x y, f x = f y) : Measurable
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] [_inst_4 : NatCast.{u1} α] (n : Nat), Measurable.{u2, u1} β α _inst_2 _inst_1 ((fun (a : Type) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{1, max (succ u2) (succ u1)} a b] => self.0) Nat (β -> α) (HasLiftT.mk.{1, max (succ u2) (succ u1)} Nat (β -> α) (CoeTCₓ.coe.{1, max (succ u2) (succ u1)} Nat (β -> α) (Nat.castCoe.{max u2 u1} (β -> α) (Pi.hasNatCast.{u2, u1} β (fun (ᾰ : β) => α) (fun (a : β) => _inst_4))))) n)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] [_inst_4 : NatCast.{u2} α] (n : Nat), Measurable.{u1, u2} β α _inst_2 _inst_1 (Nat.cast.{max u2 u1} (β -> α) (Pi.natCast.{u1, u2} β (fun (a._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.2315 : β) => α) (fun (a : β) => _inst_4)) n)
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] [_inst_4 : NatCast.{u2} α] (n : Nat), Measurable.{u1, u2} β α _inst_2 _inst_1 (Nat.cast.{max u2 u1} (β -> α) (Pi.natCast.{u1, u2} β (fun (a._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.2319 : β) => α) (fun (a : β) => _inst_4)) n)
 Case conversion may be inaccurate. Consider using '#align measurable_nat_cast measurable_natCastₓ'. -/
 @[measurability]
 theorem measurable_natCast [NatCast α] (n : ℕ) : Measurable (n : β → α) :=
@@ -482,7 +482,7 @@ theorem measurable_natCast [NatCast α] (n : ℕ) : Measurable (n : β → α) :
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] [_inst_4 : IntCast.{u1} α] (n : Int), Measurable.{u2, u1} β α _inst_2 _inst_1 ((fun (a : Type) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{1, max (succ u2) (succ u1)} a b] => self.0) Int (β -> α) (HasLiftT.mk.{1, max (succ u2) (succ u1)} Int (β -> α) (CoeTCₓ.coe.{1, max (succ u2) (succ u1)} Int (β -> α) (Int.castCoe.{max u2 u1} (β -> α) (Pi.hasIntCast.{u2, u1} β (fun (ᾰ : β) => α) (fun (i : β) => _inst_4))))) n)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] [_inst_4 : IntCast.{u2} α] (n : Int), Measurable.{u1, u2} β α _inst_2 _inst_1 (Int.cast.{max u2 u1} (β -> α) (Pi.intCast.{u1, u2} β (fun (a._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.2364 : β) => α) (fun (i : β) => _inst_4)) n)
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] [_inst_4 : IntCast.{u2} α] (n : Int), Measurable.{u1, u2} β α _inst_2 _inst_1 (Int.cast.{max u2 u1} (β -> α) (Pi.intCast.{u1, u2} β (fun (a._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.2369 : β) => α) (fun (i : β) => _inst_4)) n)
 Case conversion may be inaccurate. Consider using '#align measurable_int_cast measurable_intCastₓ'. -/
 @[measurability]
 theorem measurable_intCast [IntCast α] (n : ℤ) : Measurable (n : β → α) :=
@@ -2505,7 +2505,7 @@ def piEquivPiSubtypeProd (p : δ' → Prop) [DecidablePred p] :
 lean 3 declaration is
   forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {s : Set.{u1} α} [_inst_7 : DecidablePred.{succ u1} α s], (MeasurableSet.{u1} α _inst_1 s) -> (MeasurableEquiv.{u1, u1} (Sum.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s))) α (Sum.measurableSpace.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) (Subtype.measurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) _inst_1) (Subtype.measurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) _inst_1)) _inst_1)
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {s : Set.{u1} α} [_inst_7 : DecidablePred.{succ u1} α (fun (x._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.17266 : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.17266 s)], (MeasurableSet.{u1} α _inst_1 s) -> (MeasurableEquiv.{u1, u1} (Sum.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s))) α (instMeasurableSpaceSum.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)) (instMeasurableSpaceSubtype.{u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) _inst_1) (instMeasurableSpaceSubtype.{u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)) _inst_1)) _inst_1)
+  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {s : Set.{u1} α} [_inst_7 : DecidablePred.{succ u1} α (fun (x._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.17302 : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.17302 s)], (MeasurableSet.{u1} α _inst_1 s) -> (MeasurableEquiv.{u1, u1} (Sum.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s))) α (instMeasurableSpaceSum.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)) (instMeasurableSpaceSubtype.{u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) _inst_1) (instMeasurableSpaceSubtype.{u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)) _inst_1)) _inst_1)
 Case conversion may be inaccurate. Consider using '#align measurable_equiv.sum_compl MeasurableEquiv.sumComplₓ'. -/
 /-- If `s` is a measurable set in a measurable space, that space is equivalent
 to the sum of `s` and `sᶜ`.-/
Diff
@@ -2646,6 +2646,12 @@ class CountablyGenerated [m : MeasurableSpace α] : Prop where
 
 open Classical
 
+/- warning: measurable_space.measurable_injection_nat_bool_of_countably_generated -> MeasurableSpace.measurable_injection_nat_bool_of_countablyGenerated is a dubious translation:
+lean 3 declaration is
+  forall (α : Type.{u1}) [_inst_1 : MeasurableSpace.{u1} α] [h : MeasurableSpace.CountablyGenerated.{u1} α _inst_1] [_inst_2 : MeasurableSingletonClass.{u1} α _inst_1], Exists.{succ u1} (α -> Nat -> Bool) (fun (f : α -> Nat -> Bool) => And (Measurable.{u1, 0} α (Nat -> Bool) _inst_1 (MeasurableSpace.pi.{0, 0} Nat (fun (ᾰ : Nat) => Bool) (fun (a : Nat) => Bool.measurableSpace)) f) (Function.Injective.{succ u1, 1} α (Nat -> Bool) f))
+but is expected to have type
+  forall (α : Type.{u1}) [_inst_1 : MeasurableSpace.{u1} α] [h : MeasurableSpace.CountablyGenerated.{u1} α _inst_1] [_inst_2 : MeasurableSingletonClass.{u1} α _inst_1], Exists.{succ u1} (α -> Nat -> Bool) (fun (f : α -> Nat -> Bool) => And (Measurable.{u1, 0} α (Nat -> Bool) _inst_1 (MeasurableSpace.pi.{0, 0} Nat (fun (ᾰ : Nat) => Bool) (fun (a : Nat) => instMeasurableSpaceBool)) f) (Function.Injective.{succ u1, 1} α (Nat -> Bool) f))
+Case conversion may be inaccurate. Consider using '#align measurable_space.measurable_injection_nat_bool_of_countably_generated MeasurableSpace.measurable_injection_nat_bool_of_countablyGeneratedₓ'. -/
 /-- If a measurable space is countably generated, it admits a measurable injection
 into the Cantor space `ℕ → bool` (equipped with the product sigma algebra). -/
 theorem measurable_injection_nat_bool_of_countablyGenerated [MeasurableSpace α]
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Mario Carneiro
 
 ! This file was ported from Lean 3 source module measure_theory.measurable_space
-! leanprover-community/mathlib commit 9b2b58d6b14b895b2f375108e765cb47de71aebd
+! leanprover-community/mathlib commit 3905fa80e62c0898131285baab35559fbc4e5cda
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -2646,15 +2646,9 @@ class CountablyGenerated [m : MeasurableSpace α] : Prop where
 
 open Classical
 
-/- warning: measurable_space.measurable_injection_cantor_of_countably_generated -> MeasurableSpace.measurable_injection_cantor_of_countablyGenerated is a dubious translation:
-lean 3 declaration is
-  forall (α : Type.{u1}) [_inst_1 : MeasurableSpace.{u1} α] [h : MeasurableSpace.CountablyGenerated.{u1} α _inst_1] [_inst_2 : MeasurableSingletonClass.{u1} α _inst_1], Exists.{succ u1} (α -> Nat -> Bool) (fun (f : α -> Nat -> Bool) => And (Measurable.{u1, 0} α (Nat -> Bool) _inst_1 (MeasurableSpace.pi.{0, 0} Nat (fun (ᾰ : Nat) => Bool) (fun (a : Nat) => Bool.measurableSpace)) f) (Function.Injective.{succ u1, 1} α (Nat -> Bool) f))
-but is expected to have type
-  forall (α : Type.{u1}) [_inst_1 : MeasurableSpace.{u1} α] [h : MeasurableSpace.CountablyGenerated.{u1} α _inst_1] [_inst_2 : MeasurableSingletonClass.{u1} α _inst_1], Exists.{succ u1} (α -> Nat -> Bool) (fun (f : α -> Nat -> Bool) => And (Measurable.{u1, 0} α (Nat -> Bool) _inst_1 (MeasurableSpace.pi.{0, 0} Nat (fun (ᾰ : Nat) => Bool) (fun (a : Nat) => instMeasurableSpaceBool)) f) (Function.Injective.{succ u1, 1} α (Nat -> Bool) f))
-Case conversion may be inaccurate. Consider using '#align measurable_space.measurable_injection_cantor_of_countably_generated MeasurableSpace.measurable_injection_cantor_of_countablyGeneratedₓ'. -/
 /-- If a measurable space is countably generated, it admits a measurable injection
 into the Cantor space `ℕ → bool` (equipped with the product sigma algebra). -/
-theorem measurable_injection_cantor_of_countablyGenerated [MeasurableSpace α]
+theorem measurable_injection_nat_bool_of_countablyGenerated [MeasurableSpace α]
     [h : CountablyGenerated α] [MeasurableSingletonClass α] :
     ∃ f : α → ℕ → Bool, Measurable f ∧ Function.Injective f :=
   by
@@ -2685,7 +2679,7 @@ theorem measurable_injection_cantor_of_countablyGenerated [MeasurableSpace α]
     simp_rw [mem_Union, ht]
   specialize this {y} measurableSet_eq
   simpa only [mem_singleton, iff_true_iff]
-#align measurable_space.measurable_injection_cantor_of_countably_generated MeasurableSpace.measurable_injection_cantor_of_countablyGenerated
+#align measurable_space.measurable_injection_nat_bool_of_countably_generated MeasurableSpace.measurable_injection_nat_bool_of_countablyGenerated
 
 end MeasurableSpace
 
Diff
@@ -2505,7 +2505,7 @@ def piEquivPiSubtypeProd (p : δ' → Prop) [DecidablePred p] :
 lean 3 declaration is
   forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {s : Set.{u1} α} [_inst_7 : DecidablePred.{succ u1} α s], (MeasurableSet.{u1} α _inst_1 s) -> (MeasurableEquiv.{u1, u1} (Sum.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s))) α (Sum.measurableSpace.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) (Subtype.measurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) _inst_1) (Subtype.measurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) _inst_1)) _inst_1)
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {s : Set.{u1} α} [_inst_7 : DecidablePred.{succ u1} α (fun (x._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.17268 : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.17268 s)], (MeasurableSet.{u1} α _inst_1 s) -> (MeasurableEquiv.{u1, u1} (Sum.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s))) α (instMeasurableSpaceSum.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)) (instMeasurableSpaceSubtype.{u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) _inst_1) (instMeasurableSpaceSubtype.{u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)) _inst_1)) _inst_1)
+  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {s : Set.{u1} α} [_inst_7 : DecidablePred.{succ u1} α (fun (x._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.17266 : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.17266 s)], (MeasurableSet.{u1} α _inst_1 s) -> (MeasurableEquiv.{u1, u1} (Sum.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s))) α (instMeasurableSpaceSum.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)) (instMeasurableSpaceSubtype.{u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) _inst_1) (instMeasurableSpaceSubtype.{u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)) _inst_1)) _inst_1)
 Case conversion may be inaccurate. Consider using '#align measurable_equiv.sum_compl MeasurableEquiv.sumComplₓ'. -/
 /-- If `s` is a measurable set in a measurable space, that space is equivalent
 to the sum of `s` and `sᶜ`.-/
Diff
@@ -665,6 +665,12 @@ theorem measurable_to_countable [MeasurableSpace α] [Countable α] [MeasurableS
   · simp only [preimage_singleton_eq_empty.2 hyf, MeasurableSet.empty]
 #align measurable_to_countable measurable_to_countable
 
+/- warning: measurable_to_countable' -> measurable_to_countable' is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : Countable.{succ u1} α] [_inst_3 : MeasurableSpace.{u2} β] {f : β -> α}, (forall (x : α), MeasurableSet.{u2} β _inst_3 (Set.preimage.{u2, u1} β α f (Singleton.singleton.{u1, u1} α (Set.{u1} α) (Set.hasSingleton.{u1} α) x))) -> (Measurable.{u2, u1} β α _inst_3 _inst_1 f)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : Countable.{succ u2} α] [_inst_3 : MeasurableSpace.{u1} β] {f : β -> α}, (forall (x : α), MeasurableSet.{u1} β _inst_3 (Set.preimage.{u1, u2} β α f (Singleton.singleton.{u2, u2} α (Set.{u2} α) (Set.instSingletonSet.{u2} α) x))) -> (Measurable.{u1, u2} β α _inst_3 _inst_1 f)
+Case conversion may be inaccurate. Consider using '#align measurable_to_countable' measurable_to_countable'ₓ'. -/
 theorem measurable_to_countable' [MeasurableSpace α] [Countable α] [MeasurableSpace β] {f : β → α}
     (h : ∀ x, MeasurableSet (f ⁻¹' {x})) : Measurable f :=
   measurable_to_countable fun y => h (f y)
@@ -706,6 +712,12 @@ theorem measurable_to_nat {f : α → ℕ} : (∀ y, MeasurableSet (f ⁻¹' {f
   measurable_to_countable
 #align measurable_to_nat measurable_to_nat
 
+/- warning: measurable_to_bool -> measurable_to_bool is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {f : α -> Bool}, (MeasurableSet.{u1} α _inst_1 (Set.preimage.{u1, 0} α Bool f (Singleton.singleton.{0, 0} Bool (Set.{0} Bool) (Set.hasSingleton.{0} Bool) Bool.true))) -> (Measurable.{u1, 0} α Bool _inst_1 Bool.measurableSpace f)
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {f : α -> Bool}, (MeasurableSet.{u1} α _inst_1 (Set.preimage.{u1, 0} α Bool f (Singleton.singleton.{0, 0} Bool (Set.{0} Bool) (Set.instSingletonSet.{0} Bool) Bool.true))) -> (Measurable.{u1, 0} α Bool _inst_1 instMeasurableSpaceBool f)
+Case conversion may be inaccurate. Consider using '#align measurable_to_bool measurable_to_boolₓ'. -/
 theorem measurable_to_bool {f : α → Bool} (h : MeasurableSet (f ⁻¹' {true})) : Measurable f :=
   by
   apply measurable_to_countable'
@@ -2493,7 +2505,7 @@ def piEquivPiSubtypeProd (p : δ' → Prop) [DecidablePred p] :
 lean 3 declaration is
   forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {s : Set.{u1} α} [_inst_7 : DecidablePred.{succ u1} α s], (MeasurableSet.{u1} α _inst_1 s) -> (MeasurableEquiv.{u1, u1} (Sum.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s))) α (Sum.measurableSpace.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) (Subtype.measurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) _inst_1) (Subtype.measurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) _inst_1)) _inst_1)
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {s : Set.{u1} α} [_inst_7 : DecidablePred.{succ u1} α (fun (x._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.17087 : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.17087 s)], (MeasurableSet.{u1} α _inst_1 s) -> (MeasurableEquiv.{u1, u1} (Sum.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s))) α (instMeasurableSpaceSum.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)) (instMeasurableSpaceSubtype.{u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) _inst_1) (instMeasurableSpaceSubtype.{u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)) _inst_1)) _inst_1)
+  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {s : Set.{u1} α} [_inst_7 : DecidablePred.{succ u1} α (fun (x._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.17268 : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.17268 s)], (MeasurableSet.{u1} α _inst_1 s) -> (MeasurableEquiv.{u1, u1} (Sum.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s))) α (instMeasurableSpaceSum.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)) (instMeasurableSpaceSubtype.{u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) _inst_1) (instMeasurableSpaceSubtype.{u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)) _inst_1)) _inst_1)
 Case conversion may be inaccurate. Consider using '#align measurable_equiv.sum_compl MeasurableEquiv.sumComplₓ'. -/
 /-- If `s` is a measurable set in a measurable space, that space is equivalent
 to the sum of `s` and `sᶜ`.-/
@@ -2624,14 +2636,22 @@ namespace MeasurableSpace
 
 variable (α)
 
+#print MeasurableSpace.CountablyGenerated /-
 /-- We say a measurable space is countably generated
 if can be generated by a countable set of sets.-/
 class CountablyGenerated [m : MeasurableSpace α] : Prop where
   IsCountablyGenerated : ∃ b : Set (Set α), b.Countable ∧ m = generateFrom b
 #align measurable_space.countably_generated MeasurableSpace.CountablyGenerated
+-/
 
 open Classical
 
+/- warning: measurable_space.measurable_injection_cantor_of_countably_generated -> MeasurableSpace.measurable_injection_cantor_of_countablyGenerated is a dubious translation:
+lean 3 declaration is
+  forall (α : Type.{u1}) [_inst_1 : MeasurableSpace.{u1} α] [h : MeasurableSpace.CountablyGenerated.{u1} α _inst_1] [_inst_2 : MeasurableSingletonClass.{u1} α _inst_1], Exists.{succ u1} (α -> Nat -> Bool) (fun (f : α -> Nat -> Bool) => And (Measurable.{u1, 0} α (Nat -> Bool) _inst_1 (MeasurableSpace.pi.{0, 0} Nat (fun (ᾰ : Nat) => Bool) (fun (a : Nat) => Bool.measurableSpace)) f) (Function.Injective.{succ u1, 1} α (Nat -> Bool) f))
+but is expected to have type
+  forall (α : Type.{u1}) [_inst_1 : MeasurableSpace.{u1} α] [h : MeasurableSpace.CountablyGenerated.{u1} α _inst_1] [_inst_2 : MeasurableSingletonClass.{u1} α _inst_1], Exists.{succ u1} (α -> Nat -> Bool) (fun (f : α -> Nat -> Bool) => And (Measurable.{u1, 0} α (Nat -> Bool) _inst_1 (MeasurableSpace.pi.{0, 0} Nat (fun (ᾰ : Nat) => Bool) (fun (a : Nat) => instMeasurableSpaceBool)) f) (Function.Injective.{succ u1, 1} α (Nat -> Bool) f))
+Case conversion may be inaccurate. Consider using '#align measurable_space.measurable_injection_cantor_of_countably_generated MeasurableSpace.measurable_injection_cantor_of_countablyGeneratedₓ'. -/
 /-- If a measurable space is countably generated, it admits a measurable injection
 into the Cantor space `ℕ → bool` (equipped with the product sigma algebra). -/
 theorem measurable_injection_cantor_of_countablyGenerated [MeasurableSpace α]
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Mario Carneiro
 
 ! This file was ported from Lean 3 source module measure_theory.measurable_space
-! leanprover-community/mathlib commit 88fcb83fe7996142dfcfe7368d31304a9adc874a
+! leanprover-community/mathlib commit 9b2b58d6b14b895b2f375108e765cb47de71aebd
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -665,6 +665,11 @@ theorem measurable_to_countable [MeasurableSpace α] [Countable α] [MeasurableS
   · simp only [preimage_singleton_eq_empty.2 hyf, MeasurableSet.empty]
 #align measurable_to_countable measurable_to_countable
 
+theorem measurable_to_countable' [MeasurableSpace α] [Countable α] [MeasurableSpace β] {f : β → α}
+    (h : ∀ x, MeasurableSet (f ⁻¹' {x})) : Measurable f :=
+  measurable_to_countable fun y => h (f y)
+#align measurable_to_countable' measurable_to_countable'
+
 /- warning: measurable_unit -> measurable_unit is a dubious translation:
 lean 3 declaration is
   forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] (f : Unit -> α), Measurable.{0, u1} Unit α PUnit.measurableSpace.{0} _inst_1 f
@@ -701,6 +706,15 @@ theorem measurable_to_nat {f : α → ℕ} : (∀ y, MeasurableSet (f ⁻¹' {f
   measurable_to_countable
 #align measurable_to_nat measurable_to_nat
 
+theorem measurable_to_bool {f : α → Bool} (h : MeasurableSet (f ⁻¹' {true})) : Measurable f :=
+  by
+  apply measurable_to_countable'
+  rintro (- | -)
+  · convert h.compl
+    rw [← preimage_compl, Bool.compl_singleton, Bool.not_true]
+  exact h
+#align measurable_to_bool measurable_to_bool
+
 /- warning: measurable_find_greatest' -> measurable_findGreatest' is a dubious translation:
 lean 3 declaration is
   forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {p : α -> Nat -> Prop} [_inst_2 : forall (x : α), DecidablePred.{1} Nat (p x)] {N : Nat}, (forall (k : Nat), (LE.le.{0} Nat Nat.hasLe k N) -> (MeasurableSet.{u1} α _inst_1 (setOf.{u1} α (fun (x : α) => Eq.{1} Nat (Nat.findGreatest (p x) (fun (a : Nat) => _inst_2 x a) N) k)))) -> (Measurable.{u1, 0} α Nat _inst_1 Nat.measurableSpace (fun (x : α) => Nat.findGreatest (p x) (fun (a : Nat) => _inst_2 x a) N))
@@ -2604,6 +2618,59 @@ noncomputable def schroederBernstein {f : α → β} {g : β → α} (hf : Measu
 
 end MeasurableEmbedding
 
+section CountablyGenerated
+
+namespace MeasurableSpace
+
+variable (α)
+
+/-- We say a measurable space is countably generated
+if can be generated by a countable set of sets.-/
+class CountablyGenerated [m : MeasurableSpace α] : Prop where
+  IsCountablyGenerated : ∃ b : Set (Set α), b.Countable ∧ m = generateFrom b
+#align measurable_space.countably_generated MeasurableSpace.CountablyGenerated
+
+open Classical
+
+/-- If a measurable space is countably generated, it admits a measurable injection
+into the Cantor space `ℕ → bool` (equipped with the product sigma algebra). -/
+theorem measurable_injection_cantor_of_countablyGenerated [MeasurableSpace α]
+    [h : CountablyGenerated α] [MeasurableSingletonClass α] :
+    ∃ f : α → ℕ → Bool, Measurable f ∧ Function.Injective f :=
+  by
+  obtain ⟨b, bct, hb⟩ := h.is_countably_generated
+  obtain ⟨e, he⟩ := Set.Countable.exists_eq_range (bct.insert ∅) (insert_nonempty _ _)
+  rw [← generate_from_insert_empty, he] at hb
+  refine' ⟨fun x n => to_bool (x ∈ e n), _, _⟩
+  · rw [measurable_pi_iff]
+    intro n
+    apply measurable_to_bool
+    simp only [preimage, mem_singleton_iff, Bool.decide_iff, set_of_mem_eq]
+    rw [hb]
+    apply measurable_set_generate_from
+    use n
+  intro x y hxy
+  have : ∀ s : Set α, MeasurableSet s → (x ∈ s ↔ y ∈ s) := fun s =>
+    by
+    rw [hb]
+    apply generate_from_induction
+    · rintro - ⟨n, rfl⟩
+      rw [← decide_eq_decide]
+      rw [funext_iff] at hxy
+      exact hxy n
+    · tauto
+    · intro t
+      tauto
+    intro t ht
+    simp_rw [mem_Union, ht]
+  specialize this {y} measurableSet_eq
+  simpa only [mem_singleton, iff_true_iff]
+#align measurable_space.measurable_injection_cantor_of_countably_generated MeasurableSpace.measurable_injection_cantor_of_countablyGenerated
+
+end MeasurableSpace
+
+end CountablyGenerated
+
 namespace Filter
 
 variable [MeasurableSpace α]
Diff
@@ -2444,7 +2444,7 @@ def finTwoArrow : (Fin 2 → α) ≃ᵐ α × α :=
 lean 3 declaration is
   forall {n : Nat} (α : (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> Type.{u1}) [_inst_7 : forall (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))), MeasurableSpace.{u1} (α i)] (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))), MeasurableEquiv.{u1, u1} (forall (j : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))), α j) (Prod.{u1, u1} (α i) (forall (j : Fin n), α (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe n) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) => (Fin n) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) (Fin.succAbove n i) j))) (MeasurableSpace.pi.{0, u1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (fun (j : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) => α j) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) => _inst_7 a)) (Prod.measurableSpace.{u1, u1} (α i) (forall (j : Fin n), α (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe n) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) => (Fin n) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) (Fin.succAbove n i) j)) (_inst_7 i) (MeasurableSpace.pi.{0, u1} (Fin n) (fun (j : Fin n) => α (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe n) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) => (Fin n) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) (Fin.succAbove n i) j)) (fun (a : Fin n) => _inst_7 (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe n) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) => (Fin n) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) (Fin.succAbove n i) a))))
 but is expected to have type
-  forall {n : Nat} (α : (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) -> Type.{u1}) [_inst_7 : forall (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))), MeasurableSpace.{u1} (α i)] (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))), MeasurableEquiv.{u1, u1} (forall (j : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))), α j) (Prod.{u1, u1} (α i) (forall (j : Fin n), α (FunLike.coe.{1, 1, 1} (Function.Embedding.{1, 1} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Fin n) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (EmbeddingLike.toFunLike.{1, 1, 1} (Function.Embedding.{1, 1} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Function.instEmbeddingLikeEmbedding.{1, 1} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (RelEmbedding.toEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (Fin.succAbove n i)) j))) (MeasurableSpace.pi.{0, u1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (j : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => α j) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => _inst_7 a)) (instMeasurableSpaceProd.{u1, u1} (α i) (forall (j : Fin n), α (FunLike.coe.{1, 1, 1} (Function.Embedding.{1, 1} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Fin n) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (EmbeddingLike.toFunLike.{1, 1, 1} (Function.Embedding.{1, 1} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Function.instEmbeddingLikeEmbedding.{1, 1} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (RelEmbedding.toEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (Fin.succAbove n i)) j)) (_inst_7 i) (MeasurableSpace.pi.{0, u1} (Fin n) (fun (j : Fin n) => α (FunLike.coe.{1, 1, 1} (Function.Embedding.{1, 1} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Fin n) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (EmbeddingLike.toFunLike.{1, 1, 1} (Function.Embedding.{1, 1} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Function.instEmbeddingLikeEmbedding.{1, 1} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (RelEmbedding.toEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (Fin.succAbove n i)) j)) (fun (a : Fin n) => _inst_7 (FunLike.coe.{1, 1, 1} (Function.Embedding.{1, 1} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Fin n) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (EmbeddingLike.toFunLike.{1, 1, 1} (Function.Embedding.{1, 1} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Function.instEmbeddingLikeEmbedding.{1, 1} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (RelEmbedding.toEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (Fin.succAbove n i)) a))))
+  forall {n : Nat} (α : (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) -> Type.{u1}) [_inst_7 : forall (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))), MeasurableSpace.{u1} (α i)] (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))), MeasurableEquiv.{u1, u1} (forall (j : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))), α j) (Prod.{u1, u1} (α i) (forall (j : Fin n), α (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin n) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.succAbove n i) j))) (MeasurableSpace.pi.{0, u1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (j : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => α j) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => _inst_7 a)) (instMeasurableSpaceProd.{u1, u1} (α i) (forall (j : Fin n), α (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin n) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.succAbove n i) j)) (_inst_7 i) (MeasurableSpace.pi.{0, u1} (Fin n) (fun (j : Fin n) => α (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin n) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.succAbove n i) j)) (fun (a : Fin n) => _inst_7 (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin n) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin n) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.succAbove n i) a))))
 Case conversion may be inaccurate. Consider using '#align measurable_equiv.pi_fin_succ_above_equiv MeasurableEquiv.piFinSuccAboveEquivₓ'. -/
 /-- Measurable equivalence between `Π j : fin (n + 1), α j` and
 `α i × Π j : fin n, α (fin.succ_above i j)`. -/
Diff
@@ -701,17 +701,17 @@ theorem measurable_to_nat {f : α → ℕ} : (∀ y, MeasurableSet (f ⁻¹' {f
   measurable_to_countable
 #align measurable_to_nat measurable_to_nat
 
-/- warning: measurable_find_greatest' -> measurable_find_greatest' is a dubious translation:
+/- warning: measurable_find_greatest' -> measurable_findGreatest' is a dubious translation:
 lean 3 declaration is
   forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {p : α -> Nat -> Prop} [_inst_2 : forall (x : α), DecidablePred.{1} Nat (p x)] {N : Nat}, (forall (k : Nat), (LE.le.{0} Nat Nat.hasLe k N) -> (MeasurableSet.{u1} α _inst_1 (setOf.{u1} α (fun (x : α) => Eq.{1} Nat (Nat.findGreatest (p x) (fun (a : Nat) => _inst_2 x a) N) k)))) -> (Measurable.{u1, 0} α Nat _inst_1 Nat.measurableSpace (fun (x : α) => Nat.findGreatest (p x) (fun (a : Nat) => _inst_2 x a) N))
 but is expected to have type
   forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {p : α -> Nat -> Prop} [_inst_2 : forall (x : α), DecidablePred.{1} Nat (p x)] {N : Nat}, (forall (k : Nat), (LE.le.{0} Nat instLENat k N) -> (MeasurableSet.{u1} α _inst_1 (setOf.{u1} α (fun (x : α) => Eq.{1} Nat (Nat.findGreatest (p x) (fun (a : Nat) => _inst_2 x a) N) k)))) -> (Measurable.{u1, 0} α Nat _inst_1 instMeasurableSpaceNat (fun (x : α) => Nat.findGreatest (p x) (fun (a : Nat) => _inst_2 x a) N))
-Case conversion may be inaccurate. Consider using '#align measurable_find_greatest' measurable_find_greatest'ₓ'. -/
-theorem measurable_find_greatest' {p : α → ℕ → Prop} [∀ x, DecidablePred (p x)] {N : ℕ}
+Case conversion may be inaccurate. Consider using '#align measurable_find_greatest' measurable_findGreatest'ₓ'. -/
+theorem measurable_findGreatest' {p : α → ℕ → Prop} [∀ x, DecidablePred (p x)] {N : ℕ}
     (hN : ∀ k ≤ N, MeasurableSet { x | Nat.findGreatest (p x) N = k }) :
     Measurable fun x => Nat.findGreatest (p x) N :=
   measurable_to_nat fun x => hN _ N.findGreatest_le
-#align measurable_find_greatest' measurable_find_greatest'
+#align measurable_find_greatest' measurable_findGreatest'
 
 /- warning: measurable_find_greatest -> measurable_findGreatest is a dubious translation:
 lean 3 declaration is
@@ -722,7 +722,7 @@ Case conversion may be inaccurate. Consider using '#align measurable_find_greate
 theorem measurable_findGreatest {p : α → ℕ → Prop} [∀ x, DecidablePred (p x)] {N}
     (hN : ∀ k ≤ N, MeasurableSet { x | p x k }) : Measurable fun x => Nat.findGreatest (p x) N :=
   by
-  refine' measurable_find_greatest' fun k hk => _
+  refine' measurable_findGreatest' fun k hk => _
   simp only [Nat.findGreatest_eq_iff, set_of_and, set_of_forall, ← compl_set_of]
   repeat'
     apply_rules [MeasurableSet.inter, MeasurableSet.const, MeasurableSet.interᵢ,
@@ -1452,18 +1452,18 @@ theorem measurable_piEquivPiSubtypeProd (p : δ → Prop) [DecidablePred p] :
 
 end Pi
 
-/- warning: tprod.measurable_space -> Tprod.measurableSpace is a dubious translation:
+/- warning: tprod.measurable_space -> TProd.measurableSpace is a dubious translation:
 lean 3 declaration is
   forall {δ : Type.{u_4}} (π : δ -> Type.{u_1}) [_inst_1 : forall (x : δ), MeasurableSpace.{u_1} (π x)] (l : List.{u_4} δ), MeasurableSpace.{max u_1 u_2} (List.TProd.{u_4, u_1, u_2} δ π l)
 but is expected to have type
   forall {δ : Type.{u_1}} (π : δ -> Type.{u_2}) [_inst_1 : forall (x : δ), MeasurableSpace.{u_2} (π x)] (l : List.{u_1} δ), MeasurableSpace.{u_2} (List.TProd.{u_1, u_2} δ π l)
-Case conversion may be inaccurate. Consider using '#align tprod.measurable_space Tprod.measurableSpaceₓ'. -/
+Case conversion may be inaccurate. Consider using '#align tprod.measurable_space TProd.measurableSpaceₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
-instance Tprod.measurableSpace (π : δ → Type _) [∀ x, MeasurableSpace (π x)] :
+instance TProd.measurableSpace (π : δ → Type _) [∀ x, MeasurableSpace (π x)] :
     ∀ l : List δ, MeasurableSpace (List.TProd π l)
   | [] => PUnit.measurableSpace
-  | i::is => @Prod.measurableSpace _ _ _ (Tprod.measurableSpace is)
-#align tprod.measurable_space Tprod.measurableSpace
+  | i::is => @Prod.measurableSpace _ _ _ (TProd.measurableSpace is)
+#align tprod.measurable_space TProd.measurableSpace
 
 section Tprod
 
@@ -1473,9 +1473,9 @@ variable {π : δ → Type _} [∀ x, MeasurableSpace (π x)]
 
 /- warning: measurable_tprod_mk -> measurable_tProd_mk is a dubious translation:
 lean 3 declaration is
-  forall {δ : Type.{u_4}} {π : δ -> Type.{u_7}} [_inst_1 : forall (x : δ), MeasurableSpace.{u_7} (π x)] (l : List.{u_4} δ), Measurable.{max u_4 u_7, max u_7 u_1} (forall (i : δ), π i) (List.TProd.{u_4, u_7, u_1} δ π l) (MeasurableSpace.pi.{u_4, u_7} δ (fun (i : δ) => π i) (fun (x : δ) => _inst_1 x)) (Tprod.measurableSpace.{u_4, u_7, u_1} δ π (fun (x : δ) => _inst_1 x) l) (List.TProd.mk.{u_4, u_7, u_1} δ π l)
+  forall {δ : Type.{u_4}} {π : δ -> Type.{u_7}} [_inst_1 : forall (x : δ), MeasurableSpace.{u_7} (π x)] (l : List.{u_4} δ), Measurable.{max u_4 u_7, max u_7 u_1} (forall (i : δ), π i) (List.TProd.{u_4, u_7, u_1} δ π l) (MeasurableSpace.pi.{u_4, u_7} δ (fun (i : δ) => π i) (fun (x : δ) => _inst_1 x)) (TProd.measurableSpace.{u_4, u_7, u_1} δ π (fun (x : δ) => _inst_1 x) l) (List.TProd.mk.{u_4, u_7, u_1} δ π l)
 but is expected to have type
-  forall {δ : Type.{u_1}} {π : δ -> Type.{u_2}} [_inst_1 : forall (x : δ), MeasurableSpace.{u_2} (π x)] (l : List.{u_1} δ), Measurable.{max u_1 u_2, u_2} (forall (i : δ), π i) (List.TProd.{u_1, u_2} δ π l) (MeasurableSpace.pi.{u_1, u_2} δ (fun (i : δ) => π i) (fun (x : δ) => _inst_1 x)) (Tprod.measurableSpace.{u_1, u_2} δ π (fun (x : δ) => _inst_1 x) l) (List.TProd.mk.{u_1, u_2} δ π l)
+  forall {δ : Type.{u_1}} {π : δ -> Type.{u_2}} [_inst_1 : forall (x : δ), MeasurableSpace.{u_2} (π x)] (l : List.{u_1} δ), Measurable.{max u_1 u_2, u_2} (forall (i : δ), π i) (List.TProd.{u_1, u_2} δ π l) (MeasurableSpace.pi.{u_1, u_2} δ (fun (i : δ) => π i) (fun (x : δ) => _inst_1 x)) (TProd.measurableSpace.{u_1, u_2} δ π (fun (x : δ) => _inst_1 x) l) (List.TProd.mk.{u_1, u_2} δ π l)
 Case conversion may be inaccurate. Consider using '#align measurable_tprod_mk measurable_tProd_mkₓ'. -/
 theorem measurable_tProd_mk (l : List δ) : Measurable (@TProd.mk δ π l) :=
   by
@@ -1486,9 +1486,9 @@ theorem measurable_tProd_mk (l : List δ) : Measurable (@TProd.mk δ π l) :=
 
 /- warning: measurable_tprod_elim -> measurable_tProd_elim is a dubious translation:
 lean 3 declaration is
-  forall {δ : Type.{u_4}} {π : δ -> Type.{u_7}} [_inst_1 : forall (x : δ), MeasurableSpace.{u_7} (π x)] [_inst_2 : DecidableEq.{succ u_4} δ] {l : List.{u_4} δ} {i : δ} (hi : Membership.Mem.{u_4, u_4} δ (List.{u_4} δ) (List.hasMem.{u_4} δ) i l), Measurable.{max u_7 u_1, u_7} (List.TProd.{u_4, u_7, u_1} δ π l) (π i) (Tprod.measurableSpace.{u_4, u_7, u_1} δ π (fun (x : δ) => _inst_1 x) l) (_inst_1 i) (fun (v : List.TProd.{u_4, u_7, u_1} δ π l) => List.TProd.elim.{u_4, u_7, u_1} δ π (fun (a : δ) (b : δ) => _inst_2 a b) l v i hi)
+  forall {δ : Type.{u_4}} {π : δ -> Type.{u_7}} [_inst_1 : forall (x : δ), MeasurableSpace.{u_7} (π x)] [_inst_2 : DecidableEq.{succ u_4} δ] {l : List.{u_4} δ} {i : δ} (hi : Membership.Mem.{u_4, u_4} δ (List.{u_4} δ) (List.hasMem.{u_4} δ) i l), Measurable.{max u_7 u_1, u_7} (List.TProd.{u_4, u_7, u_1} δ π l) (π i) (TProd.measurableSpace.{u_4, u_7, u_1} δ π (fun (x : δ) => _inst_1 x) l) (_inst_1 i) (fun (v : List.TProd.{u_4, u_7, u_1} δ π l) => List.TProd.elim.{u_4, u_7, u_1} δ π (fun (a : δ) (b : δ) => _inst_2 a b) l v i hi)
 but is expected to have type
-  forall {δ : Type.{u_1}} {π : δ -> Type.{u_2}} [_inst_1 : forall (x : δ), MeasurableSpace.{u_2} (π x)] [_inst_2 : DecidableEq.{succ u_1} δ] {l : List.{u_1} δ} {i : δ} (hi : Membership.mem.{u_1, u_1} δ (List.{u_1} δ) (List.instMembershipList.{u_1} δ) i l), Measurable.{u_2, u_2} (List.TProd.{u_1, u_2} δ π l) (π i) (Tprod.measurableSpace.{u_1, u_2} δ π (fun (x : δ) => _inst_1 x) l) (_inst_1 i) (fun (v : List.TProd.{u_1, u_2} δ π l) => List.TProd.elim.{u_1, u_2} δ π (fun (a : δ) (b : δ) => _inst_2 a b) l v i hi)
+  forall {δ : Type.{u_1}} {π : δ -> Type.{u_2}} [_inst_1 : forall (x : δ), MeasurableSpace.{u_2} (π x)] [_inst_2 : DecidableEq.{succ u_1} δ] {l : List.{u_1} δ} {i : δ} (hi : Membership.mem.{u_1, u_1} δ (List.{u_1} δ) (List.instMembershipList.{u_1} δ) i l), Measurable.{u_2, u_2} (List.TProd.{u_1, u_2} δ π l) (π i) (TProd.measurableSpace.{u_1, u_2} δ π (fun (x : δ) => _inst_1 x) l) (_inst_1 i) (fun (v : List.TProd.{u_1, u_2} δ π l) => List.TProd.elim.{u_1, u_2} δ π (fun (a : δ) (b : δ) => _inst_2 a b) l v i hi)
 Case conversion may be inaccurate. Consider using '#align measurable_tprod_elim measurable_tProd_elimₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 theorem measurable_tProd_elim [DecidableEq δ] :
@@ -1503,9 +1503,9 @@ theorem measurable_tProd_elim [DecidableEq δ] :
 
 /- warning: measurable_tprod_elim' -> measurable_tProd_elim' is a dubious translation:
 lean 3 declaration is
-  forall {δ : Type.{u_4}} {π : δ -> Type.{u_7}} [_inst_1 : forall (x : δ), MeasurableSpace.{u_7} (π x)] [_inst_2 : DecidableEq.{succ u_4} δ] {l : List.{u_4} δ} (h : forall (i : δ), Membership.Mem.{u_4, u_4} δ (List.{u_4} δ) (List.hasMem.{u_4} δ) i l), Measurable.{max u_7 u_1, max u_4 u_7} (List.TProd.{u_4, u_7, u_1} δ π l) (forall (i : δ), π i) (Tprod.measurableSpace.{u_4, u_7, u_1} δ π (fun (a : δ) => _inst_1 a) l) (MeasurableSpace.pi.{u_4, u_7} δ (fun (i : δ) => π i) (fun (a : δ) => _inst_1 a)) (List.TProd.elim'.{u_4, u_7, u_1} δ π l (fun (a : δ) (b : δ) => _inst_2 a b) h)
+  forall {δ : Type.{u_4}} {π : δ -> Type.{u_7}} [_inst_1 : forall (x : δ), MeasurableSpace.{u_7} (π x)] [_inst_2 : DecidableEq.{succ u_4} δ] {l : List.{u_4} δ} (h : forall (i : δ), Membership.Mem.{u_4, u_4} δ (List.{u_4} δ) (List.hasMem.{u_4} δ) i l), Measurable.{max u_7 u_1, max u_4 u_7} (List.TProd.{u_4, u_7, u_1} δ π l) (forall (i : δ), π i) (TProd.measurableSpace.{u_4, u_7, u_1} δ π (fun (a : δ) => _inst_1 a) l) (MeasurableSpace.pi.{u_4, u_7} δ (fun (i : δ) => π i) (fun (a : δ) => _inst_1 a)) (List.TProd.elim'.{u_4, u_7, u_1} δ π l (fun (a : δ) (b : δ) => _inst_2 a b) h)
 but is expected to have type
-  forall {δ : Type.{u_1}} {π : δ -> Type.{u_2}} [_inst_1 : forall (x : δ), MeasurableSpace.{u_2} (π x)] [_inst_2 : DecidableEq.{succ u_1} δ] {l : List.{u_1} δ} (h : forall (i : δ), Membership.mem.{u_1, u_1} δ (List.{u_1} δ) (List.instMembershipList.{u_1} δ) i l), Measurable.{u_2, max u_1 u_2} (List.TProd.{u_1, u_2} δ π l) (forall (i : δ), π i) (Tprod.measurableSpace.{u_1, u_2} δ π (fun (a : δ) => _inst_1 a) l) (MeasurableSpace.pi.{u_1, u_2} δ (fun (i : δ) => π i) (fun (a : δ) => _inst_1 a)) (List.TProd.elim'.{u_1, u_2} δ π l (fun (a : δ) (b : δ) => _inst_2 a b) h)
+  forall {δ : Type.{u_1}} {π : δ -> Type.{u_2}} [_inst_1 : forall (x : δ), MeasurableSpace.{u_2} (π x)] [_inst_2 : DecidableEq.{succ u_1} δ] {l : List.{u_1} δ} (h : forall (i : δ), Membership.mem.{u_1, u_1} δ (List.{u_1} δ) (List.instMembershipList.{u_1} δ) i l), Measurable.{u_2, max u_1 u_2} (List.TProd.{u_1, u_2} δ π l) (forall (i : δ), π i) (TProd.measurableSpace.{u_1, u_2} δ π (fun (a : δ) => _inst_1 a) l) (MeasurableSpace.pi.{u_1, u_2} δ (fun (i : δ) => π i) (fun (a : δ) => _inst_1 a)) (List.TProd.elim'.{u_1, u_2} δ π l (fun (a : δ) (b : δ) => _inst_2 a b) h)
 Case conversion may be inaccurate. Consider using '#align measurable_tprod_elim' measurable_tProd_elim'ₓ'. -/
 theorem measurable_tProd_elim' [DecidableEq δ] {l : List δ} (h : ∀ i, i ∈ l) :
     Measurable (TProd.elim' h : TProd π l → ∀ i, π i) :=
@@ -1514,9 +1514,9 @@ theorem measurable_tProd_elim' [DecidableEq δ] {l : List δ} (h : ∀ i, i ∈
 
 /- warning: measurable_set.tprod -> MeasurableSet.tProd is a dubious translation:
 lean 3 declaration is
-  forall {δ : Type.{u_4}} {π : δ -> Type.{u_7}} [_inst_1 : forall (x : δ), MeasurableSpace.{u_7} (π x)] (l : List.{u_4} δ) {s : forall (i : δ), Set.{u_7} (π i)}, (forall (i : δ), MeasurableSet.{u_7} (π i) (_inst_1 i) (s i)) -> (MeasurableSet.{max u_7 u_1} (List.TProd.{u_4, u_7, u_1} δ (fun (i : δ) => π i) l) (Tprod.measurableSpace.{u_4, u_7, u_1} δ (fun (i : δ) => π i) (fun (x : δ) => _inst_1 x) l) (Set.tprod.{u_4, u_7, u_1} δ (fun (i : δ) => π i) l s))
+  forall {δ : Type.{u_4}} {π : δ -> Type.{u_7}} [_inst_1 : forall (x : δ), MeasurableSpace.{u_7} (π x)] (l : List.{u_4} δ) {s : forall (i : δ), Set.{u_7} (π i)}, (forall (i : δ), MeasurableSet.{u_7} (π i) (_inst_1 i) (s i)) -> (MeasurableSet.{max u_7 u_1} (List.TProd.{u_4, u_7, u_1} δ (fun (i : δ) => π i) l) (TProd.measurableSpace.{u_4, u_7, u_1} δ (fun (i : δ) => π i) (fun (x : δ) => _inst_1 x) l) (Set.tprod.{u_4, u_7, u_1} δ (fun (i : δ) => π i) l s))
 but is expected to have type
-  forall {δ : Type.{u_1}} {π : δ -> Type.{u_2}} [_inst_1 : forall (x : δ), MeasurableSpace.{u_2} (π x)] (l : List.{u_1} δ) {s : forall (i : δ), Set.{u_2} (π i)}, (forall (i : δ), MeasurableSet.{u_2} (π i) (_inst_1 i) (s i)) -> (MeasurableSet.{u_2} (List.TProd.{u_1, u_2} δ (fun (i : δ) => π i) l) (Tprod.measurableSpace.{u_1, u_2} δ (fun (i : δ) => π i) (fun (x : δ) => _inst_1 x) l) (Set.tprod.{u_1, u_2} δ (fun (i : δ) => π i) l s))
+  forall {δ : Type.{u_1}} {π : δ -> Type.{u_2}} [_inst_1 : forall (x : δ), MeasurableSpace.{u_2} (π x)] (l : List.{u_1} δ) {s : forall (i : δ), Set.{u_2} (π i)}, (forall (i : δ), MeasurableSet.{u_2} (π i) (_inst_1 i) (s i)) -> (MeasurableSet.{u_2} (List.TProd.{u_1, u_2} δ (fun (i : δ) => π i) l) (TProd.measurableSpace.{u_1, u_2} δ (fun (i : δ) => π i) (fun (x : δ) => _inst_1 x) l) (Set.tprod.{u_1, u_2} δ (fun (i : δ) => π i) l s))
 Case conversion may be inaccurate. Consider using '#align measurable_set.tprod MeasurableSet.tProdₓ'. -/
 theorem MeasurableSet.tProd (l : List δ) {s : ∀ i, Set (π i)} (hs : ∀ i, MeasurableSet (s i)) :
     MeasurableSet (Set.tprod l s) := by
@@ -2390,21 +2390,21 @@ def piCongrRight (e : ∀ a, π a ≃ᵐ π' a) : (∀ a, π a) ≃ᵐ ∀ a, π
 #align measurable_equiv.Pi_congr_right MeasurableEquiv.piCongrRight
 -/
 
-/- warning: measurable_equiv.pi_measurable_equiv_tprod -> MeasurableEquiv.piMeasurableEquivTprod is a dubious translation:
+/- warning: measurable_equiv.pi_measurable_equiv_tprod -> MeasurableEquiv.piMeasurableEquivTProd is a dubious translation:
 lean 3 declaration is
-  forall {δ' : Type.{u_5}} {π : δ' -> Type.{u_7}} [_inst_5 : forall (x : δ'), MeasurableSpace.{u_7} (π x)] [_inst_7 : DecidableEq.{succ u_5} δ'] {l : List.{u_5} δ'}, (List.Nodup.{u_5} δ' l) -> (forall (i : δ'), Membership.Mem.{u_5, u_5} δ' (List.{u_5} δ') (List.hasMem.{u_5} δ') i l) -> (MeasurableEquiv.{max u_5 u_7, max u_7 u_1} (forall (i : δ'), π i) (List.TProd.{u_5, u_7, u_1} δ' π l) (MeasurableSpace.pi.{u_5, u_7} δ' (fun (i : δ') => π i) (fun (a : δ') => _inst_5 a)) (Tprod.measurableSpace.{u_5, u_7, u_1} δ' π (fun (a : δ') => _inst_5 a) l))
+  forall {δ' : Type.{u_5}} {π : δ' -> Type.{u_7}} [_inst_5 : forall (x : δ'), MeasurableSpace.{u_7} (π x)] [_inst_7 : DecidableEq.{succ u_5} δ'] {l : List.{u_5} δ'}, (List.Nodup.{u_5} δ' l) -> (forall (i : δ'), Membership.Mem.{u_5, u_5} δ' (List.{u_5} δ') (List.hasMem.{u_5} δ') i l) -> (MeasurableEquiv.{max u_5 u_7, max u_7 u_1} (forall (i : δ'), π i) (List.TProd.{u_5, u_7, u_1} δ' π l) (MeasurableSpace.pi.{u_5, u_7} δ' (fun (i : δ') => π i) (fun (a : δ') => _inst_5 a)) (TProd.measurableSpace.{u_5, u_7, u_1} δ' π (fun (a : δ') => _inst_5 a) l))
 but is expected to have type
-  forall {δ' : Type.{u_1}} {π : δ' -> Type.{u_2}} [_inst_5 : forall (x : δ'), MeasurableSpace.{u_2} (π x)] [_inst_7 : DecidableEq.{succ u_1} δ'] {l : List.{u_1} δ'}, (List.Nodup.{u_1} δ' l) -> (forall (i : δ'), Membership.mem.{u_1, u_1} δ' (List.{u_1} δ') (List.instMembershipList.{u_1} δ') i l) -> (MeasurableEquiv.{max u_1 u_2, u_2} (forall (i : δ'), π i) (List.TProd.{u_1, u_2} δ' π l) (MeasurableSpace.pi.{u_1, u_2} δ' (fun (i : δ') => π i) (fun (a : δ') => _inst_5 a)) (Tprod.measurableSpace.{u_1, u_2} δ' π (fun (a : δ') => _inst_5 a) l))
-Case conversion may be inaccurate. Consider using '#align measurable_equiv.pi_measurable_equiv_tprod MeasurableEquiv.piMeasurableEquivTprodₓ'. -/
+  forall {δ' : Type.{u_1}} {π : δ' -> Type.{u_2}} [_inst_5 : forall (x : δ'), MeasurableSpace.{u_2} (π x)] [_inst_7 : DecidableEq.{succ u_1} δ'] {l : List.{u_1} δ'}, (List.Nodup.{u_1} δ' l) -> (forall (i : δ'), Membership.mem.{u_1, u_1} δ' (List.{u_1} δ') (List.instMembershipList.{u_1} δ') i l) -> (MeasurableEquiv.{max u_1 u_2, u_2} (forall (i : δ'), π i) (List.TProd.{u_1, u_2} δ' π l) (MeasurableSpace.pi.{u_1, u_2} δ' (fun (i : δ') => π i) (fun (a : δ') => _inst_5 a)) (TProd.measurableSpace.{u_1, u_2} δ' π (fun (a : δ') => _inst_5 a) l))
+Case conversion may be inaccurate. Consider using '#align measurable_equiv.pi_measurable_equiv_tprod MeasurableEquiv.piMeasurableEquivTProdₓ'. -/
 /-- Pi-types are measurably equivalent to iterated products. -/
 @[simps (config := { fullyApplied := false })]
-def piMeasurableEquivTprod [DecidableEq δ'] {l : List δ'} (hnd : l.Nodup) (h : ∀ i, i ∈ l) :
+def piMeasurableEquivTProd [DecidableEq δ'] {l : List δ'} (hnd : l.Nodup) (h : ∀ i, i ∈ l) :
     (∀ i, π i) ≃ᵐ List.TProd π l
     where
   toEquiv := List.TProd.piEquivTProd hnd h
   measurable_to_fun := measurable_tProd_mk l
   measurable_inv_fun := measurable_tProd_elim' h
-#align measurable_equiv.pi_measurable_equiv_tprod MeasurableEquiv.piMeasurableEquivTprod
+#align measurable_equiv.pi_measurable_equiv_tprod MeasurableEquiv.piMeasurableEquivTProd
 
 #print MeasurableEquiv.funUnique /-
 /-- If `α` has a unique term, then the type of function `α → β` is measurably equivalent to `β`. -/
Diff
@@ -467,15 +467,27 @@ theorem measurable_const' {f : β → α} (hf : ∀ x y, f x = f y) : Measurable
     exact funext fun x => hf x h.some
 #align measurable_const' measurable_const'
 
+/- warning: measurable_nat_cast -> measurable_natCast is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] [_inst_4 : NatCast.{u1} α] (n : Nat), Measurable.{u2, u1} β α _inst_2 _inst_1 ((fun (a : Type) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{1, max (succ u2) (succ u1)} a b] => self.0) Nat (β -> α) (HasLiftT.mk.{1, max (succ u2) (succ u1)} Nat (β -> α) (CoeTCₓ.coe.{1, max (succ u2) (succ u1)} Nat (β -> α) (Nat.castCoe.{max u2 u1} (β -> α) (Pi.hasNatCast.{u2, u1} β (fun (ᾰ : β) => α) (fun (a : β) => _inst_4))))) n)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] [_inst_4 : NatCast.{u2} α] (n : Nat), Measurable.{u1, u2} β α _inst_2 _inst_1 (Nat.cast.{max u2 u1} (β -> α) (Pi.natCast.{u1, u2} β (fun (a._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.2315 : β) => α) (fun (a : β) => _inst_4)) n)
+Case conversion may be inaccurate. Consider using '#align measurable_nat_cast measurable_natCastₓ'. -/
 @[measurability]
-theorem measurable_nat_cast [NatCast α] (n : ℕ) : Measurable (n : β → α) :=
+theorem measurable_natCast [NatCast α] (n : ℕ) : Measurable (n : β → α) :=
   @measurable_const α _ _ _ n
-#align measurable_nat_cast measurable_nat_cast
+#align measurable_nat_cast measurable_natCast
 
+/- warning: measurable_int_cast -> measurable_intCast is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] [_inst_4 : IntCast.{u1} α] (n : Int), Measurable.{u2, u1} β α _inst_2 _inst_1 ((fun (a : Type) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{1, max (succ u2) (succ u1)} a b] => self.0) Int (β -> α) (HasLiftT.mk.{1, max (succ u2) (succ u1)} Int (β -> α) (CoeTCₓ.coe.{1, max (succ u2) (succ u1)} Int (β -> α) (Int.castCoe.{max u2 u1} (β -> α) (Pi.hasIntCast.{u2, u1} β (fun (ᾰ : β) => α) (fun (i : β) => _inst_4))))) n)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] [_inst_4 : IntCast.{u2} α] (n : Int), Measurable.{u1, u2} β α _inst_2 _inst_1 (Int.cast.{max u2 u1} (β -> α) (Pi.intCast.{u1, u2} β (fun (a._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.2364 : β) => α) (fun (i : β) => _inst_4)) n)
+Case conversion may be inaccurate. Consider using '#align measurable_int_cast measurable_intCastₓ'. -/
 @[measurability]
-theorem measurable_int_cast [IntCast α] (n : ℤ) : Measurable (n : β → α) :=
+theorem measurable_intCast [IntCast α] (n : ℤ) : Measurable (n : β → α) :=
   @measurable_const α _ _ _ n
-#align measurable_int_cast measurable_int_cast
+#align measurable_int_cast measurable_intCast
 
 /- warning: measurable_of_finite -> measurable_of_finite is a dubious translation:
 lean 3 declaration is
@@ -2467,7 +2479,7 @@ def piEquivPiSubtypeProd (p : δ' → Prop) [DecidablePred p] :
 lean 3 declaration is
   forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {s : Set.{u1} α} [_inst_7 : DecidablePred.{succ u1} α s], (MeasurableSet.{u1} α _inst_1 s) -> (MeasurableEquiv.{u1, u1} (Sum.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s))) α (Sum.measurableSpace.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) (Subtype.measurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) _inst_1) (Subtype.measurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) _inst_1)) _inst_1)
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {s : Set.{u1} α} [_inst_7 : DecidablePred.{succ u1} α (fun (x._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.16989 : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.16989 s)], (MeasurableSet.{u1} α _inst_1 s) -> (MeasurableEquiv.{u1, u1} (Sum.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s))) α (instMeasurableSpaceSum.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)) (instMeasurableSpaceSubtype.{u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) _inst_1) (instMeasurableSpaceSubtype.{u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)) _inst_1)) _inst_1)
+  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {s : Set.{u1} α} [_inst_7 : DecidablePred.{succ u1} α (fun (x._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.17087 : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.17087 s)], (MeasurableSet.{u1} α _inst_1 s) -> (MeasurableEquiv.{u1, u1} (Sum.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s))) α (instMeasurableSpaceSum.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)) (instMeasurableSpaceSubtype.{u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) _inst_1) (instMeasurableSpaceSubtype.{u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)) _inst_1)) _inst_1)
 Case conversion may be inaccurate. Consider using '#align measurable_equiv.sum_compl MeasurableEquiv.sumComplₓ'. -/
 /-- If `s` is a measurable set in a measurable space, that space is equivalent
 to the sum of `s` and `sᶜ`.-/
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Mario Carneiro
 
 ! This file was ported from Lean 3 source module measure_theory.measurable_space
-! leanprover-community/mathlib commit 34ee86e6a59d911a8e4f89b68793ee7577ae79c7
+! leanprover-community/mathlib commit 88fcb83fe7996142dfcfe7368d31304a9adc874a
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -467,6 +467,16 @@ theorem measurable_const' {f : β → α} (hf : ∀ x y, f x = f y) : Measurable
     exact funext fun x => hf x h.some
 #align measurable_const' measurable_const'
 
+@[measurability]
+theorem measurable_nat_cast [NatCast α] (n : ℕ) : Measurable (n : β → α) :=
+  @measurable_const α _ _ _ n
+#align measurable_nat_cast measurable_nat_cast
+
+@[measurability]
+theorem measurable_int_cast [IntCast α] (n : ℤ) : Measurable (n : β → α) :=
+  @measurable_const α _ _ _ n
+#align measurable_int_cast measurable_int_cast
+
 /- warning: measurable_of_finite -> measurable_of_finite is a dubious translation:
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] [_inst_4 : Finite.{succ u1} α] [_inst_5 : MeasurableSingletonClass.{u1} α _inst_1] (f : α -> β), Measurable.{u1, u2} α β _inst_1 _inst_2 f
Diff
@@ -823,7 +823,7 @@ instance {p : α → Prop} [MeasurableSingletonClass α] : MeasurableSingletonCl
     where measurableSet_singleton x :=
     by
     have : MeasurableSet {(x : α)} := measurable_set_singleton _
-    convert @measurable_subtype_coe α _ p _ this
+    convert@measurable_subtype_coe α _ p _ this
     ext y
     simp [Subtype.ext_iff]
 
@@ -876,7 +876,7 @@ theorem measurable_of_measurable_union_cover {f : α → β} (s t : Set α) (hs
     (hd : Measurable fun a : t => f a) : Measurable f :=
   by
   intro u hu
-  convert (hs.subtype_image (hc hu)).union (ht.subtype_image (hd hu))
+  convert(hs.subtype_image (hc hu)).union (ht.subtype_image (hd hu))
   change f ⁻¹' u = coe '' (coe ⁻¹' (f ⁻¹' u) : Set s) ∪ coe '' (coe ⁻¹' (f ⁻¹' u) : Set t)
   rw [image_preimage_eq_inter_range, image_preimage_eq_inter_range, Subtype.range_coe,
     Subtype.range_coe, ← inter_distrib_left, univ_subset_iff.1 h, inter_univ]
@@ -2457,7 +2457,7 @@ def piEquivPiSubtypeProd (p : δ' → Prop) [DecidablePred p] :
 lean 3 declaration is
   forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {s : Set.{u1} α} [_inst_7 : DecidablePred.{succ u1} α s], (MeasurableSet.{u1} α _inst_1 s) -> (MeasurableEquiv.{u1, u1} (Sum.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s))) α (Sum.measurableSpace.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) (Subtype.measurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) _inst_1) (Subtype.measurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) _inst_1)) _inst_1)
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {s : Set.{u1} α} [_inst_7 : DecidablePred.{succ u1} α (fun (x._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.16859 : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.16859 s)], (MeasurableSet.{u1} α _inst_1 s) -> (MeasurableEquiv.{u1, u1} (Sum.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s))) α (instMeasurableSpaceSum.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)) (instMeasurableSpaceSubtype.{u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) _inst_1) (instMeasurableSpaceSubtype.{u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)) _inst_1)) _inst_1)
+  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {s : Set.{u1} α} [_inst_7 : DecidablePred.{succ u1} α (fun (x._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.16989 : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.16989 s)], (MeasurableSet.{u1} α _inst_1 s) -> (MeasurableEquiv.{u1, u1} (Sum.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s))) α (instMeasurableSpaceSum.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)) (instMeasurableSpaceSubtype.{u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) _inst_1) (instMeasurableSpaceSubtype.{u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)) _inst_1)) _inst_1)
 Case conversion may be inaccurate. Consider using '#align measurable_equiv.sum_compl MeasurableEquiv.sumComplₓ'. -/
 /-- If `s` is a measurable set in a measurable space, that space is equivalent
 to the sum of `s` and `sᶜ`.-/
Diff
@@ -1396,7 +1396,7 @@ variable (π)
 lean 3 declaration is
   forall {δ : Type.{u1}} (π : δ -> Type.{u2}) [_inst_2 : forall (a : δ), MeasurableSpace.{u2} (π a)] (p : δ -> Prop) [_inst_4 : DecidablePred.{succ u1} δ p], Measurable.{max u1 u2, max u1 u2} (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i))) (forall (i : δ), π i) (Prod.measurableSpace.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i)) (MeasurableSpace.pi.{u1, u2} (Subtype.{succ u1} δ (fun (x : δ) => p x)) (fun (i : Subtype.{succ u1} δ (fun (x : δ) => p x)) => π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (fun (a : Subtype.{succ u1} δ (fun (x : δ) => p x)) => _inst_2 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) a))) (MeasurableSpace.pi.{u1, u2} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) (fun (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) => π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i)) (fun (a : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) => _inst_2 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) a)))) (MeasurableSpace.pi.{u1, u2} δ (fun (i : δ) => π i) (fun (a : δ) => _inst_2 a)) (coeFn.{max 1 (max (succ (max u1 u2)) (succ u1) (succ u2)) (max (succ u1) (succ u2)) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u1) (succ u2)} (Equiv.{succ (max u1 u2), max (succ u1) (succ u2)} (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i))) (forall (i : δ), π i)) (fun (_x : Equiv.{succ (max u1 u2), max (succ u1) (succ u2)} (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i))) (forall (i : δ), π i)) => (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i))) -> (forall (i : δ), π i)) (Equiv.hasCoeToFun.{succ (max u1 u2), max (succ u1) (succ u2)} (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i))) (forall (i : δ), π i)) (Equiv.symm.{max (succ u1) (succ u2), succ (max u1 u2)} (forall (i : δ), π i) (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i))) (Equiv.piEquivPiSubtypeProd.{u1, u2} δ p π (fun (a : δ) => _inst_4 a))))
 but is expected to have type
-  forall {δ : Type.{u2}} (π : δ -> Type.{u1}) [_inst_2 : forall (a : δ), MeasurableSpace.{u1} (π a)] (p : δ -> Prop) [_inst_4 : DecidablePred.{succ u2} δ p], Measurable.{max u2 u1, max u2 u1} (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) (forall (i : δ), π i) (instMeasurableSpaceProd.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i)) (MeasurableSpace.pi.{u2, u1} (Subtype.{succ u2} δ (fun (x : δ) => p x)) (fun (i : Subtype.{succ u2} δ (fun (x : δ) => p x)) => π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (fun (a : Subtype.{succ u2} δ (fun (x : δ) => p x)) => _inst_2 (Subtype.val.{succ u2} δ (fun (x : δ) => p x) a))) (MeasurableSpace.pi.{u2, u1} (Subtype.{succ u2} δ (fun (x : δ) => Not (p x))) (fun (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))) => π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i)) (fun (a : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))) => _inst_2 (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) a)))) (MeasurableSpace.pi.{u2, u1} δ (fun (i : δ) => π i) (fun (a : δ) => _inst_2 a)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) (forall (i : δ), π i)) (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) (fun (_x : Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) => forall (i : δ), π i) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) (forall (i : δ), π i)) (Equiv.symm.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (forall (i : δ), π i) (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) (Equiv.piEquivPiSubtypeProd.{u2, u1} δ p π (fun (a : δ) => _inst_4 a))))
+  forall {δ : Type.{u2}} (π : δ -> Type.{u1}) [_inst_2 : forall (a : δ), MeasurableSpace.{u1} (π a)] (p : δ -> Prop) [_inst_4 : DecidablePred.{succ u2} δ p], Measurable.{max u2 u1, max u2 u1} (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) (forall (i : δ), π i) (instMeasurableSpaceProd.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i)) (MeasurableSpace.pi.{u2, u1} (Subtype.{succ u2} δ (fun (x : δ) => p x)) (fun (i : Subtype.{succ u2} δ (fun (x : δ) => p x)) => π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (fun (a : Subtype.{succ u2} δ (fun (x : δ) => p x)) => _inst_2 (Subtype.val.{succ u2} δ (fun (x : δ) => p x) a))) (MeasurableSpace.pi.{u2, u1} (Subtype.{succ u2} δ (fun (x : δ) => Not (p x))) (fun (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))) => π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i)) (fun (a : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))) => _inst_2 (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) a)))) (MeasurableSpace.pi.{u2, u1} δ (fun (i : δ) => π i) (fun (a : δ) => _inst_2 a)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) (forall (i : δ), π i)) (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) (fun (_x : Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) => forall (i : δ), π i) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) (forall (i : δ), π i)) (Equiv.symm.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (forall (i : δ), π i) (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) (Equiv.piEquivPiSubtypeProd.{u2, u1} δ p π (fun (a : δ) => _inst_4 a))))
 Case conversion may be inaccurate. Consider using '#align measurable_pi_equiv_pi_subtype_prod_symm measurable_piEquivPiSubtypeProd_symmₓ'. -/
 @[measurability]
 theorem measurable_piEquivPiSubtypeProd_symm (p : δ → Prop) [DecidablePred p] :
@@ -1416,7 +1416,7 @@ theorem measurable_piEquivPiSubtypeProd_symm (p : δ → Prop) [DecidablePred p]
 lean 3 declaration is
   forall {δ : Type.{u1}} (π : δ -> Type.{u2}) [_inst_2 : forall (a : δ), MeasurableSpace.{u2} (π a)] (p : δ -> Prop) [_inst_4 : DecidablePred.{succ u1} δ p], Measurable.{max u1 u2, max u1 u2} (forall (i : δ), π i) (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i))) (MeasurableSpace.pi.{u1, u2} δ (fun (i : δ) => π i) (fun (a : δ) => _inst_2 a)) (Prod.measurableSpace.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i)) (MeasurableSpace.pi.{u1, u2} (Subtype.{succ u1} δ (fun (x : δ) => p x)) (fun (i : Subtype.{succ u1} δ (fun (x : δ) => p x)) => π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (fun (a : Subtype.{succ u1} δ (fun (x : δ) => p x)) => _inst_2 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) a))) (MeasurableSpace.pi.{u1, u2} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) (fun (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) => π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i)) (fun (a : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) => _inst_2 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) a)))) (coeFn.{max 1 (max (max (succ u1) (succ u2)) (succ (max u1 u2))) (succ (max u1 u2)) (succ u1) (succ u2), max (max (succ u1) (succ u2)) (succ (max u1 u2))} (Equiv.{max (succ u1) (succ u2), succ (max u1 u2)} (forall (i : δ), π i) (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i)))) (fun (_x : Equiv.{max (succ u1) (succ u2), succ (max u1 u2)} (forall (i : δ), π i) (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i)))) => (forall (i : δ), π i) -> (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i)))) (Equiv.hasCoeToFun.{max (succ u1) (succ u2), succ (max u1 u2)} (forall (i : δ), π i) (Prod.{max u1 u2, max u1 u2} (forall (i : Subtype.{succ u1} δ (fun (x : δ) => p x)), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => p x)) δ (coeSubtype.{succ u1} δ (fun (x : δ) => p x))))) i)) (forall (i : Subtype.{succ u1} δ (fun (x : δ) => Not (p x))), π ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeBase.{succ u1, succ u1} (Subtype.{succ u1} δ (fun (x : δ) => Not (p x))) δ (coeSubtype.{succ u1} δ (fun (x : δ) => Not (p x)))))) i)))) (Equiv.piEquivPiSubtypeProd.{u1, u2} δ p π (fun (a : δ) => _inst_4 a)))
 but is expected to have type
-  forall {δ : Type.{u2}} (π : δ -> Type.{u1}) [_inst_2 : forall (a : δ), MeasurableSpace.{u1} (π a)] (p : δ -> Prop) [_inst_4 : DecidablePred.{succ u2} δ p], Measurable.{max u2 u1, max u2 u1} (forall (i : δ), π i) (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) (MeasurableSpace.pi.{u2, u1} δ (fun (i : δ) => π i) (fun (a : δ) => _inst_2 a)) (instMeasurableSpaceProd.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i)) (MeasurableSpace.pi.{u2, u1} (Subtype.{succ u2} δ (fun (x : δ) => p x)) (fun (i : Subtype.{succ u2} δ (fun (x : δ) => p x)) => π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (fun (a : Subtype.{succ u2} δ (fun (x : δ) => p x)) => _inst_2 (Subtype.val.{succ u2} δ (fun (x : δ) => p x) a))) (MeasurableSpace.pi.{u2, u1} (Subtype.{succ u2} δ (fun (x : δ) => Not (p x))) (fun (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))) => π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i)) (fun (a : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))) => _inst_2 (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) a)))) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), succ (max u2 u1)} (forall (i : δ), π i) (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i)))) (forall (i : δ), π i) (fun (_x : forall (i : δ), π i) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : forall (i : δ), π i) => Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (forall (i : δ), π i) (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i)))) (Equiv.piEquivPiSubtypeProd.{u2, u1} δ p π (fun (a : δ) => _inst_4 a)))
+  forall {δ : Type.{u2}} (π : δ -> Type.{u1}) [_inst_2 : forall (a : δ), MeasurableSpace.{u1} (π a)] (p : δ -> Prop) [_inst_4 : DecidablePred.{succ u2} δ p], Measurable.{max u2 u1, max u2 u1} (forall (i : δ), π i) (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) (MeasurableSpace.pi.{u2, u1} δ (fun (i : δ) => π i) (fun (a : δ) => _inst_2 a)) (instMeasurableSpaceProd.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i)) (MeasurableSpace.pi.{u2, u1} (Subtype.{succ u2} δ (fun (x : δ) => p x)) (fun (i : Subtype.{succ u2} δ (fun (x : δ) => p x)) => π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (fun (a : Subtype.{succ u2} δ (fun (x : δ) => p x)) => _inst_2 (Subtype.val.{succ u2} δ (fun (x : δ) => p x) a))) (MeasurableSpace.pi.{u2, u1} (Subtype.{succ u2} δ (fun (x : δ) => Not (p x))) (fun (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))) => π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i)) (fun (a : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))) => _inst_2 (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) a)))) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), succ (max u2 u1)} (forall (i : δ), π i) (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i)))) (forall (i : δ), π i) (fun (_x : forall (i : δ), π i) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : forall (i : δ), π i) => Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i))) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (forall (i : δ), π i) (Prod.{max u2 u1, max u2 u1} (forall (i : Subtype.{succ u2} δ (fun (x : δ) => p x)), π (Subtype.val.{succ u2} δ (fun (x : δ) => p x) i)) (forall (i : Subtype.{succ u2} δ (fun (x : δ) => Not (p x))), π (Subtype.val.{succ u2} δ (fun (x : δ) => Not (p x)) i)))) (Equiv.piEquivPiSubtypeProd.{u2, u1} δ p π (fun (a : δ) => _inst_4 a)))
 Case conversion may be inaccurate. Consider using '#align measurable_pi_equiv_pi_subtype_prod measurable_piEquivPiSubtypeProdₓ'. -/
 @[measurability]
 theorem measurable_piEquivPiSubtypeProd (p : δ → Prop) [DecidablePred p] :
@@ -1813,7 +1813,7 @@ variable {α β}
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] (e : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2), Eq.{max (succ u1) (succ u2)} ((fun (_x : Equiv.{succ u1, succ u2} α β) => α -> β) (MeasurableEquiv.toEquiv.{u1, u2} α β _inst_1 _inst_2 e)) (coeFn.{max 1 (max (succ u1) (succ u2)) (succ u2) (succ u1), max (succ u1) (succ u2)} (Equiv.{succ u1, succ u2} α β) (fun (_x : Equiv.{succ u1, succ u2} α β) => α -> β) (Equiv.hasCoeToFun.{succ u1, succ u2} α β) (MeasurableEquiv.toEquiv.{u1, u2} α β _inst_1 _inst_2 e)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) (MeasurableEquiv.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) e)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2), Eq.{max (succ u2) (succ u1)} (forall (a : α), (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : α) => β) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} α β) α (fun (_x : α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : α) => β) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} α β) (MeasurableEquiv.toEquiv.{u2, u1} α β _inst_1 _inst_2 e)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLikeMeasurableEquiv.{u2, u1} α β _inst_1 _inst_2))) e)
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2), Eq.{max (succ u2) (succ u1)} (forall (a : α), (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : α) => β) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} α β) α (fun (_x : α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : α) => β) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} α β) (MeasurableEquiv.toEquiv.{u2, u1} α β _inst_1 _inst_2 e)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLikeMeasurableEquiv.{u2, u1} α β _inst_1 _inst_2))) e)
 Case conversion may be inaccurate. Consider using '#align measurable_equiv.coe_to_equiv MeasurableEquiv.coe_toEquivₓ'. -/
 @[simp]
 theorem coe_toEquiv (e : α ≃ᵐ β) : (e.toEquiv : α → β) = e :=
@@ -1835,7 +1835,7 @@ protected theorem measurable (e : α ≃ᵐ β) : Measurable (e : α → β) :=
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] (e : Equiv.{succ u1, succ u2} α β) (h1 : Measurable.{u1, u2} α β _inst_1 _inst_2 (coeFn.{max 1 (max (succ u1) (succ u2)) (succ u2) (succ u1), max (succ u1) (succ u2)} (Equiv.{succ u1, succ u2} α β) (fun (_x : Equiv.{succ u1, succ u2} α β) => α -> β) (Equiv.hasCoeToFun.{succ u1, succ u2} α β) e)) (h2 : Measurable.{u2, u1} β α _inst_2 _inst_1 (coeFn.{max 1 (max (succ u2) (succ u1)) (succ u1) (succ u2), max (succ u2) (succ u1)} (Equiv.{succ u2, succ u1} β α) (fun (_x : Equiv.{succ u2, succ u1} β α) => β -> α) (Equiv.hasCoeToFun.{succ u2, succ u1} β α) (Equiv.symm.{succ u1, succ u2} α β e))), Eq.{max (succ u1) (succ u2)} ((fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) (MeasurableEquiv.mk.{u1, u2} α β _inst_1 _inst_2 e h1 h2)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) (fun (_x : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2) => α -> β) (MeasurableEquiv.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) (MeasurableEquiv.mk.{u1, u2} α β _inst_1 _inst_2 e h1 h2)) (coeFn.{max 1 (max (succ u1) (succ u2)) (succ u2) (succ u1), max (succ u1) (succ u2)} (Equiv.{succ u1, succ u2} α β) (fun (_x : Equiv.{succ u1, succ u2} α β) => α -> β) (Equiv.hasCoeToFun.{succ u1, succ u2} α β) e)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : Equiv.{succ u2, succ u1} α β) (h1 : Measurable.{u2, u1} α β _inst_1 _inst_2 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} α β) α (fun (_x : α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : α) => β) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} α β) e)) (h2 : Measurable.{u1, u2} β α _inst_2 _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} β α) β (fun (_x : β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : β) => α) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} β α) (Equiv.symm.{succ u2, succ u1} α β e))), Eq.{max (succ u2) (succ u1)} (forall (a : α), (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLikeMeasurableEquiv.{u2, u1} α β _inst_1 _inst_2))) (MeasurableEquiv.mk.{u2, u1} α β _inst_1 _inst_2 e h1 h2)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} α β) α (fun (_x : α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : α) => β) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} α β) e)
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : Equiv.{succ u2, succ u1} α β) (h1 : Measurable.{u2, u1} α β _inst_1 _inst_2 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} α β) α (fun (_x : α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : α) => β) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} α β) e)) (h2 : Measurable.{u1, u2} β α _inst_2 _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} β α) β (fun (_x : β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : β) => α) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} β α) (Equiv.symm.{succ u2, succ u1} α β e))), Eq.{max (succ u2) (succ u1)} (forall (a : α), (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2) α β (MeasurableEquiv.instEquivLikeMeasurableEquiv.{u2, u1} α β _inst_1 _inst_2))) (MeasurableEquiv.mk.{u2, u1} α β _inst_1 _inst_2 e h1 h2)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} α β) α (fun (_x : α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : α) => β) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} α β) e)
 Case conversion may be inaccurate. Consider using '#align measurable_equiv.coe_mk MeasurableEquiv.coe_mkₓ'. -/
 @[simp]
 theorem coe_mk (e : α ≃ β) (h1 : Measurable e) (h2 : Measurable e.symm) :
@@ -1879,7 +1879,7 @@ def symm (ab : α ≃ᵐ β) : β ≃ᵐ α where
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] (e : MeasurableEquiv.{u1, u2} α β _inst_1 _inst_2), Eq.{max (succ u2) (succ u1)} ((fun (_x : Equiv.{succ u2, succ u1} β α) => β -> α) (Equiv.symm.{succ u1, succ u2} α β (MeasurableEquiv.toEquiv.{u1, u2} α β _inst_1 _inst_2 e))) (coeFn.{max 1 (max (succ u2) (succ u1)) (succ u1) (succ u2), max (succ u2) (succ u1)} (Equiv.{succ u2, succ u1} β α) (fun (_x : Equiv.{succ u2, succ u1} β α) => β -> α) (Equiv.hasCoeToFun.{succ u2, succ u1} β α) (Equiv.symm.{succ u1, succ u2} α β (MeasurableEquiv.toEquiv.{u1, u2} α β _inst_1 _inst_2 e))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (MeasurableEquiv.{u2, u1} β α _inst_2 _inst_1) (fun (_x : MeasurableEquiv.{u2, u1} β α _inst_2 _inst_1) => β -> α) (MeasurableEquiv.hasCoeToFun.{u2, u1} β α _inst_2 _inst_1) (MeasurableEquiv.symm.{u1, u2} α β _inst_1 _inst_2 e))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2), Eq.{max (succ u2) (succ u1)} (forall (a : β), (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : β) => α) a) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} β α) β (fun (_x : β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : β) => α) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} β α) (Equiv.symm.{succ u2, succ u1} α β (MeasurableEquiv.toEquiv.{u2, u1} α β _inst_1 _inst_2 e))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β (fun (_x : β) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : β) => α) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (MeasurableEquiv.instEquivLikeMeasurableEquiv.{u1, u2} β α _inst_2 _inst_1))) (MeasurableEquiv.symm.{u2, u1} α β _inst_1 _inst_2 e))
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : MeasurableEquiv.{u2, u1} α β _inst_1 _inst_2), Eq.{max (succ u2) (succ u1)} (forall (a : β), (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : β) => α) a) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} β α) β (fun (_x : β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : β) => α) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} β α) (Equiv.symm.{succ u2, succ u1} α β (MeasurableEquiv.toEquiv.{u2, u1} α β _inst_1 _inst_2 e))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β (fun (_x : β) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : β) => α) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) β α (MeasurableEquiv.instEquivLikeMeasurableEquiv.{u1, u2} β α _inst_2 _inst_1))) (MeasurableEquiv.symm.{u2, u1} α β _inst_1 _inst_2 e))
 Case conversion may be inaccurate. Consider using '#align measurable_equiv.coe_to_equiv_symm MeasurableEquiv.coe_toEquiv_symmₓ'. -/
 @[simp]
 theorem coe_toEquiv_symm (e : α ≃ᵐ β) : (e.toEquiv.symm : β → α) = e.symm :=
@@ -1931,7 +1931,7 @@ theorem ext {e₁ e₂ : α ≃ᵐ β} (h : (e₁ : α → β) = e₂) : e₁ =
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : MeasurableSpace.{u2} β] (e : Equiv.{succ u1, succ u2} α β) (h1 : Measurable.{u1, u2} α β _inst_1 _inst_2 (coeFn.{max 1 (max (succ u1) (succ u2)) (succ u2) (succ u1), max (succ u1) (succ u2)} (Equiv.{succ u1, succ u2} α β) (fun (_x : Equiv.{succ u1, succ u2} α β) => α -> β) (Equiv.hasCoeToFun.{succ u1, succ u2} α β) e)) (h2 : Measurable.{u2, u1} β α _inst_2 _inst_1 (coeFn.{max 1 (max (succ u2) (succ u1)) (succ u1) (succ u2), max (succ u2) (succ u1)} (Equiv.{succ u2, succ u1} β α) (fun (_x : Equiv.{succ u2, succ u1} β α) => β -> α) (Equiv.hasCoeToFun.{succ u2, succ u1} β α) (Equiv.symm.{succ u1, succ u2} α β e))), Eq.{max (succ u2) (succ u1)} (MeasurableEquiv.{u2, u1} β α _inst_2 _inst_1) (MeasurableEquiv.symm.{u1, u2} α β _inst_1 _inst_2 (MeasurableEquiv.mk.{u1, u2} α β _inst_1 _inst_2 e h1 h2)) (MeasurableEquiv.mk.{u2, u1} β α _inst_2 _inst_1 (Equiv.symm.{succ u1, succ u2} α β e) h2 h1)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : Equiv.{succ u2, succ u1} α β) (h1 : Measurable.{u2, u1} α β _inst_1 _inst_2 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} α β) α (fun (_x : α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : α) => β) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} α β) e)) (h2 : Measurable.{u1, u2} β α _inst_2 _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} β α) β (fun (_x : β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : β) => α) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} β α) (Equiv.symm.{succ u2, succ u1} α β e))), Eq.{max (succ u2) (succ u1)} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) (MeasurableEquiv.symm.{u2, u1} α β _inst_1 _inst_2 (MeasurableEquiv.mk.{u2, u1} α β _inst_1 _inst_2 e h1 h2)) (MeasurableEquiv.mk.{u1, u2} β α _inst_2 _inst_1 (Equiv.symm.{succ u2, succ u1} α β e) h2 h1)
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : MeasurableSpace.{u1} β] (e : Equiv.{succ u2, succ u1} α β) (h1 : Measurable.{u2, u1} α β _inst_1 _inst_2 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} α β) α (fun (_x : α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : α) => β) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} α β) e)) (h2 : Measurable.{u1, u2} β α _inst_2 _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} β α) β (fun (_x : β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : β) => α) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} β α) (Equiv.symm.{succ u2, succ u1} α β e))), Eq.{max (succ u2) (succ u1)} (MeasurableEquiv.{u1, u2} β α _inst_2 _inst_1) (MeasurableEquiv.symm.{u2, u1} α β _inst_1 _inst_2 (MeasurableEquiv.mk.{u2, u1} α β _inst_1 _inst_2 e h1 h2)) (MeasurableEquiv.mk.{u1, u2} β α _inst_2 _inst_1 (Equiv.symm.{succ u2, succ u1} α β e) h2 h1)
 Case conversion may be inaccurate. Consider using '#align measurable_equiv.symm_mk MeasurableEquiv.symm_mkₓ'. -/
 @[simp]
 theorem symm_mk (e : α ≃ β) (h1 : Measurable e) (h2 : Measurable e.symm) :
@@ -2457,7 +2457,7 @@ def piEquivPiSubtypeProd (p : δ' → Prop) [DecidablePred p] :
 lean 3 declaration is
   forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {s : Set.{u1} α} [_inst_7 : DecidablePred.{succ u1} α s], (MeasurableSet.{u1} α _inst_1 s) -> (MeasurableEquiv.{u1, u1} (Sum.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s))) α (Sum.measurableSpace.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) (Subtype.measurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) _inst_1) (Subtype.measurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) _inst_1)) _inst_1)
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {s : Set.{u1} α} [_inst_7 : DecidablePred.{succ u1} α (fun (x._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.16811 : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.16811 s)], (MeasurableSet.{u1} α _inst_1 s) -> (MeasurableEquiv.{u1, u1} (Sum.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s))) α (instMeasurableSpaceSum.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)) (instMeasurableSpaceSubtype.{u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) _inst_1) (instMeasurableSpaceSubtype.{u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)) _inst_1)) _inst_1)
+  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {s : Set.{u1} α} [_inst_7 : DecidablePred.{succ u1} α (fun (x._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.16859 : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.16859 s)], (MeasurableSet.{u1} α _inst_1 s) -> (MeasurableEquiv.{u1, u1} (Sum.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s))) α (instMeasurableSpaceSum.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)) (instMeasurableSpaceSubtype.{u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) _inst_1) (instMeasurableSpaceSubtype.{u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)) _inst_1)) _inst_1)
 Case conversion may be inaccurate. Consider using '#align measurable_equiv.sum_compl MeasurableEquiv.sumComplₓ'. -/
 /-- If `s` is a measurable set in a measurable space, that space is equivalent
 to the sum of `s` and `sᶜ`.-/
Diff
@@ -2457,7 +2457,7 @@ def piEquivPiSubtypeProd (p : δ' → Prop) [DecidablePred p] :
 lean 3 declaration is
   forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {s : Set.{u1} α} [_inst_7 : DecidablePred.{succ u1} α s], (MeasurableSet.{u1} α _inst_1 s) -> (MeasurableEquiv.{u1, u1} (Sum.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s))) α (Sum.measurableSpace.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) (Subtype.measurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) _inst_1) (Subtype.measurableSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) _inst_1)) _inst_1)
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {s : Set.{u1} α} [_inst_7 : DecidablePred.{succ u1} α (fun (x._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.16816 : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.16816 s)], (MeasurableSet.{u1} α _inst_1 s) -> (MeasurableEquiv.{u1, u1} (Sum.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s))) α (instMeasurableSpaceSum.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)) (instMeasurableSpaceSubtype.{u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) _inst_1) (instMeasurableSpaceSubtype.{u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)) _inst_1)) _inst_1)
+  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {s : Set.{u1} α} [_inst_7 : DecidablePred.{succ u1} α (fun (x._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.16811 : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x._@.Mathlib.MeasureTheory.MeasurableSpace._hyg.16811 s)], (MeasurableSet.{u1} α _inst_1 s) -> (MeasurableEquiv.{u1, u1} (Sum.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s))) α (instMeasurableSpaceSum.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)) (instMeasurableSpaceSubtype.{u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) _inst_1) (instMeasurableSpaceSubtype.{u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)) _inst_1)) _inst_1)
 Case conversion may be inaccurate. Consider using '#align measurable_equiv.sum_compl MeasurableEquiv.sumComplₓ'. -/
 /-- If `s` is a measurable set in a measurable space, that space is equivalent
 to the sum of `s` and `sᶜ`.-/
Diff
@@ -215,9 +215,9 @@ theorem comap_bot : (⊥ : MeasurableSpace α).comap g = ⊥ :=
 
 /- warning: measurable_space.comap_sup -> MeasurableSpace.comap_sup is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {m₁ : MeasurableSpace.{u1} α} {m₂ : MeasurableSpace.{u1} α} {g : β -> α}, Eq.{succ u2} (MeasurableSpace.{u2} β) (MeasurableSpace.comap.{u2, u1} β α g (HasSup.sup.{u1} (MeasurableSpace.{u1} α) (SemilatticeSup.toHasSup.{u1} (MeasurableSpace.{u1} α) (Lattice.toSemilatticeSup.{u1} (MeasurableSpace.{u1} α) (ConditionallyCompleteLattice.toLattice.{u1} (MeasurableSpace.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.completeLattice.{u1} α))))) m₁ m₂)) (HasSup.sup.{u2} (MeasurableSpace.{u2} β) (SemilatticeSup.toHasSup.{u2} (MeasurableSpace.{u2} β) (Lattice.toSemilatticeSup.{u2} (MeasurableSpace.{u2} β) (ConditionallyCompleteLattice.toLattice.{u2} (MeasurableSpace.{u2} β) (CompleteLattice.toConditionallyCompleteLattice.{u2} (MeasurableSpace.{u2} β) (MeasurableSpace.completeLattice.{u2} β))))) (MeasurableSpace.comap.{u2, u1} β α g m₁) (MeasurableSpace.comap.{u2, u1} β α g m₂))
+  forall {α : Type.{u1}} {β : Type.{u2}} {m₁ : MeasurableSpace.{u1} α} {m₂ : MeasurableSpace.{u1} α} {g : β -> α}, Eq.{succ u2} (MeasurableSpace.{u2} β) (MeasurableSpace.comap.{u2, u1} β α g (Sup.sup.{u1} (MeasurableSpace.{u1} α) (SemilatticeSup.toHasSup.{u1} (MeasurableSpace.{u1} α) (Lattice.toSemilatticeSup.{u1} (MeasurableSpace.{u1} α) (ConditionallyCompleteLattice.toLattice.{u1} (MeasurableSpace.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.completeLattice.{u1} α))))) m₁ m₂)) (Sup.sup.{u2} (MeasurableSpace.{u2} β) (SemilatticeSup.toHasSup.{u2} (MeasurableSpace.{u2} β) (Lattice.toSemilatticeSup.{u2} (MeasurableSpace.{u2} β) (ConditionallyCompleteLattice.toLattice.{u2} (MeasurableSpace.{u2} β) (CompleteLattice.toConditionallyCompleteLattice.{u2} (MeasurableSpace.{u2} β) (MeasurableSpace.completeLattice.{u2} β))))) (MeasurableSpace.comap.{u2, u1} β α g m₁) (MeasurableSpace.comap.{u2, u1} β α g m₂))
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} {m₁ : MeasurableSpace.{u1} α} {m₂ : MeasurableSpace.{u1} α} {g : β -> α}, Eq.{succ u2} (MeasurableSpace.{u2} β) (MeasurableSpace.comap.{u2, u1} β α g (HasSup.sup.{u1} (MeasurableSpace.{u1} α) (SemilatticeSup.toHasSup.{u1} (MeasurableSpace.{u1} α) (Lattice.toSemilatticeSup.{u1} (MeasurableSpace.{u1} α) (ConditionallyCompleteLattice.toLattice.{u1} (MeasurableSpace.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.instCompleteLatticeMeasurableSpace.{u1} α))))) m₁ m₂)) (HasSup.sup.{u2} (MeasurableSpace.{u2} β) (SemilatticeSup.toHasSup.{u2} (MeasurableSpace.{u2} β) (Lattice.toSemilatticeSup.{u2} (MeasurableSpace.{u2} β) (ConditionallyCompleteLattice.toLattice.{u2} (MeasurableSpace.{u2} β) (CompleteLattice.toConditionallyCompleteLattice.{u2} (MeasurableSpace.{u2} β) (MeasurableSpace.instCompleteLatticeMeasurableSpace.{u2} β))))) (MeasurableSpace.comap.{u2, u1} β α g m₁) (MeasurableSpace.comap.{u2, u1} β α g m₂))
+  forall {α : Type.{u1}} {β : Type.{u2}} {m₁ : MeasurableSpace.{u1} α} {m₂ : MeasurableSpace.{u1} α} {g : β -> α}, Eq.{succ u2} (MeasurableSpace.{u2} β) (MeasurableSpace.comap.{u2, u1} β α g (Sup.sup.{u1} (MeasurableSpace.{u1} α) (SemilatticeSup.toSup.{u1} (MeasurableSpace.{u1} α) (Lattice.toSemilatticeSup.{u1} (MeasurableSpace.{u1} α) (ConditionallyCompleteLattice.toLattice.{u1} (MeasurableSpace.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.instCompleteLatticeMeasurableSpace.{u1} α))))) m₁ m₂)) (Sup.sup.{u2} (MeasurableSpace.{u2} β) (SemilatticeSup.toSup.{u2} (MeasurableSpace.{u2} β) (Lattice.toSemilatticeSup.{u2} (MeasurableSpace.{u2} β) (ConditionallyCompleteLattice.toLattice.{u2} (MeasurableSpace.{u2} β) (CompleteLattice.toConditionallyCompleteLattice.{u2} (MeasurableSpace.{u2} β) (MeasurableSpace.instCompleteLatticeMeasurableSpace.{u2} β))))) (MeasurableSpace.comap.{u2, u1} β α g m₁) (MeasurableSpace.comap.{u2, u1} β α g m₂))
 Case conversion may be inaccurate. Consider using '#align measurable_space.comap_sup MeasurableSpace.comap_supₓ'. -/
 @[simp]
 theorem comap_sup : (m₁ ⊔ m₂).comap g = m₁.comap g ⊔ m₂.comap g :=
@@ -248,9 +248,9 @@ theorem map_top : (⊤ : MeasurableSpace α).map f = ⊤ :=
 
 /- warning: measurable_space.map_inf -> MeasurableSpace.map_inf is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {m₁ : MeasurableSpace.{u1} α} {m₂ : MeasurableSpace.{u1} α} {f : α -> β}, Eq.{succ u2} (MeasurableSpace.{u2} β) (MeasurableSpace.map.{u1, u2} α β f (HasInf.inf.{u1} (MeasurableSpace.{u1} α) (SemilatticeInf.toHasInf.{u1} (MeasurableSpace.{u1} α) (Lattice.toSemilatticeInf.{u1} (MeasurableSpace.{u1} α) (ConditionallyCompleteLattice.toLattice.{u1} (MeasurableSpace.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.completeLattice.{u1} α))))) m₁ m₂)) (HasInf.inf.{u2} (MeasurableSpace.{u2} β) (SemilatticeInf.toHasInf.{u2} (MeasurableSpace.{u2} β) (Lattice.toSemilatticeInf.{u2} (MeasurableSpace.{u2} β) (ConditionallyCompleteLattice.toLattice.{u2} (MeasurableSpace.{u2} β) (CompleteLattice.toConditionallyCompleteLattice.{u2} (MeasurableSpace.{u2} β) (MeasurableSpace.completeLattice.{u2} β))))) (MeasurableSpace.map.{u1, u2} α β f m₁) (MeasurableSpace.map.{u1, u2} α β f m₂))
+  forall {α : Type.{u1}} {β : Type.{u2}} {m₁ : MeasurableSpace.{u1} α} {m₂ : MeasurableSpace.{u1} α} {f : α -> β}, Eq.{succ u2} (MeasurableSpace.{u2} β) (MeasurableSpace.map.{u1, u2} α β f (Inf.inf.{u1} (MeasurableSpace.{u1} α) (SemilatticeInf.toHasInf.{u1} (MeasurableSpace.{u1} α) (Lattice.toSemilatticeInf.{u1} (MeasurableSpace.{u1} α) (ConditionallyCompleteLattice.toLattice.{u1} (MeasurableSpace.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.completeLattice.{u1} α))))) m₁ m₂)) (Inf.inf.{u2} (MeasurableSpace.{u2} β) (SemilatticeInf.toHasInf.{u2} (MeasurableSpace.{u2} β) (Lattice.toSemilatticeInf.{u2} (MeasurableSpace.{u2} β) (ConditionallyCompleteLattice.toLattice.{u2} (MeasurableSpace.{u2} β) (CompleteLattice.toConditionallyCompleteLattice.{u2} (MeasurableSpace.{u2} β) (MeasurableSpace.completeLattice.{u2} β))))) (MeasurableSpace.map.{u1, u2} α β f m₁) (MeasurableSpace.map.{u1, u2} α β f m₂))
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} {m₁ : MeasurableSpace.{u1} α} {m₂ : MeasurableSpace.{u1} α} {f : α -> β}, Eq.{succ u2} (MeasurableSpace.{u2} β) (MeasurableSpace.map.{u1, u2} α β f (HasInf.inf.{u1} (MeasurableSpace.{u1} α) (Lattice.toHasInf.{u1} (MeasurableSpace.{u1} α) (ConditionallyCompleteLattice.toLattice.{u1} (MeasurableSpace.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.instCompleteLatticeMeasurableSpace.{u1} α)))) m₁ m₂)) (HasInf.inf.{u2} (MeasurableSpace.{u2} β) (Lattice.toHasInf.{u2} (MeasurableSpace.{u2} β) (ConditionallyCompleteLattice.toLattice.{u2} (MeasurableSpace.{u2} β) (CompleteLattice.toConditionallyCompleteLattice.{u2} (MeasurableSpace.{u2} β) (MeasurableSpace.instCompleteLatticeMeasurableSpace.{u2} β)))) (MeasurableSpace.map.{u1, u2} α β f m₁) (MeasurableSpace.map.{u1, u2} α β f m₂))
+  forall {α : Type.{u1}} {β : Type.{u2}} {m₁ : MeasurableSpace.{u1} α} {m₂ : MeasurableSpace.{u1} α} {f : α -> β}, Eq.{succ u2} (MeasurableSpace.{u2} β) (MeasurableSpace.map.{u1, u2} α β f (Inf.inf.{u1} (MeasurableSpace.{u1} α) (Lattice.toInf.{u1} (MeasurableSpace.{u1} α) (ConditionallyCompleteLattice.toLattice.{u1} (MeasurableSpace.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.instCompleteLatticeMeasurableSpace.{u1} α)))) m₁ m₂)) (Inf.inf.{u2} (MeasurableSpace.{u2} β) (Lattice.toInf.{u2} (MeasurableSpace.{u2} β) (ConditionallyCompleteLattice.toLattice.{u2} (MeasurableSpace.{u2} β) (CompleteLattice.toConditionallyCompleteLattice.{u2} (MeasurableSpace.{u2} β) (MeasurableSpace.instCompleteLatticeMeasurableSpace.{u2} β)))) (MeasurableSpace.map.{u1, u2} α β f m₁) (MeasurableSpace.map.{u1, u2} α β f m₂))
 Case conversion may be inaccurate. Consider using '#align measurable_space.map_inf MeasurableSpace.map_infₓ'. -/
 @[simp]
 theorem map_inf : (m₁ ⊓ m₂).map f = m₁.map f ⊓ m₂.map f :=
@@ -2639,9 +2639,9 @@ theorem Eventually.exists_measurable_mem_of_smallSets {f : Filter α} [IsMeasura
 
 /- warning: filter.inf_is_measurably_generated -> Filter.inf_isMeasurablyGenerated is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] (f : Filter.{u1} α) (g : Filter.{u1} α) [_inst_2 : Filter.IsMeasurablyGenerated.{u1} α _inst_1 f] [_inst_3 : Filter.IsMeasurablyGenerated.{u1} α _inst_1 g], Filter.IsMeasurablyGenerated.{u1} α _inst_1 (HasInf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) f g)
+  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] (f : Filter.{u1} α) (g : Filter.{u1} α) [_inst_2 : Filter.IsMeasurablyGenerated.{u1} α _inst_1 f] [_inst_3 : Filter.IsMeasurablyGenerated.{u1} α _inst_1 g], Filter.IsMeasurablyGenerated.{u1} α _inst_1 (Inf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) f g)
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] (f : Filter.{u1} α) (g : Filter.{u1} α) [_inst_2 : Filter.IsMeasurablyGenerated.{u1} α _inst_1 f] [_inst_3 : Filter.IsMeasurablyGenerated.{u1} α _inst_1 g], Filter.IsMeasurablyGenerated.{u1} α _inst_1 (HasInf.inf.{u1} (Filter.{u1} α) (Filter.instHasInfFilter.{u1} α) f g)
+  forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] (f : Filter.{u1} α) (g : Filter.{u1} α) [_inst_2 : Filter.IsMeasurablyGenerated.{u1} α _inst_1 f] [_inst_3 : Filter.IsMeasurablyGenerated.{u1} α _inst_1 g], Filter.IsMeasurablyGenerated.{u1} α _inst_1 (Inf.inf.{u1} (Filter.{u1} α) (Filter.instInfFilter.{u1} α) f g)
 Case conversion may be inaccurate. Consider using '#align filter.inf_is_measurably_generated Filter.inf_isMeasurablyGeneratedₓ'. -/
 instance inf_isMeasurablyGenerated (f g : Filter α) [IsMeasurablyGenerated f]
     [IsMeasurablyGenerated g] : IsMeasurablyGenerated (f ⊓ g) :=

Changes in mathlib4

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

A PR accompanying #12339.

Zulip discussion

Diff
@@ -1128,8 +1128,8 @@ theorem measurable_tProd_elim' [DecidableEq δ] {l : List δ} (h : ∀ i, i ∈
 theorem MeasurableSet.tProd (l : List δ) {s : ∀ i, Set (π i)} (hs : ∀ i, MeasurableSet (s i)) :
     MeasurableSet (Set.tprod l s) := by
   induction' l with i l ih
-  exact MeasurableSet.univ
-  exact (hs i).prod ih
+  · exact MeasurableSet.univ
+  · exact (hs i).prod ih
 #align measurable_set.tprod MeasurableSet.tProd
 
 end TProd
@@ -1835,8 +1835,8 @@ def sumPiEquivProdPi (α : δ ⊕ δ' → Type*) [∀ i, MeasurableSpace (α i)]
   · refine Measurable.prod ?_ ?_ <;>
       rw [measurable_pi_iff] <;> rintro i <;> apply measurable_pi_apply
   · rw [measurable_pi_iff]; rintro (i|i)
-    exact measurable_pi_iff.1 measurable_fst _
-    exact measurable_pi_iff.1 measurable_snd _
+    · exact measurable_pi_iff.1 measurable_fst _
+    · exact measurable_pi_iff.1 measurable_snd _
 
 theorem coe_sumPiEquivProdPi (α : δ ⊕ δ' → Type*) [∀ i, MeasurableSpace (α i)] :
     ⇑(MeasurableEquiv.sumPiEquivProdPi α) = Equiv.sumPiEquivProdPi α := by rfl
fix: use Unit instead of PUnit in piOptionEquivProd (#12507)

The previous implementation required to specify a universe when using piOptionEquivProd. Moreover Unit is to be preferred to PUnit when possible (see definition of PUnit).

Diff
@@ -1848,13 +1848,13 @@ theorem coe_sumPiEquivProdPi_symm (α : δ ⊕ δ' → Type*) [∀ i, Measurable
   `(∀ i : Option δ, α i) ≃ᵐ (∀ (i : δ), α i) × α none`. -/
 def piOptionEquivProd {δ : Type*} (α : Option δ → Type*) [∀ i, MeasurableSpace (α i)] :
     (∀ i, α i) ≃ᵐ (∀ (i : δ), α i) × α none :=
-  let e : Option δ ≃ δ ⊕ PUnit := Equiv.optionEquivSumPUnit δ
-  let em1 : ((i : δ ⊕ PUnit) → α (e.symm i)) ≃ᵐ ((a : Option δ) → α a) :=
+  let e : Option δ ≃ δ ⊕ Unit := Equiv.optionEquivSumPUnit δ
+  let em1 : ((i : δ ⊕ Unit) → α (e.symm i)) ≃ᵐ ((a : Option δ) → α a) :=
     MeasurableEquiv.piCongrLeft α e.symm
-  let em2 : ((i : δ ⊕ PUnit) → α (e.symm i)) ≃ᵐ ((i : δ) → α (e.symm (Sum.inl i)))
-      × ((i' : PUnit) → α (e.symm (Sum.inr i'))) :=
+  let em2 : ((i : δ ⊕ Unit) → α (e.symm i)) ≃ᵐ ((i : δ) → α (e.symm (Sum.inl i)))
+      × ((i' : Unit) → α (e.symm (Sum.inr i'))) :=
     MeasurableEquiv.sumPiEquivProdPi (fun i ↦ α (e.symm i))
-  let em3 : ((i : δ) → α (e.symm (Sum.inl i))) × ((i' : PUnit.{u_3 + 1}) → α (e.symm (Sum.inr i')))
+  let em3 : ((i : δ) → α (e.symm (Sum.inl i))) × ((i' : Unit) → α (e.symm (Sum.inr i')))
       ≃ᵐ ((i : δ) → α (some i)) × α none :=
     MeasurableEquiv.prodCongr (MeasurableEquiv.refl ((i : δ) → α (e.symm (Sum.inl i))))
       (MeasurableEquiv.piUnique fun i ↦ α (e.symm (Sum.inr i)))
feat: add MeasurableEquiv.piOptionEquivProd (#12395)

Add the def of MeasurableEquiv.piOptionEquivProd, that is the measurable equivalence for a dependent type over an Option type. This can be useful for applying induction on the product of a finite number of elements.

Co-authored-by: Lorenzo Luccioli <71074618+LorenzoLuccioli@users.noreply.github.com>

Diff
@@ -1844,6 +1844,22 @@ theorem coe_sumPiEquivProdPi (α : δ ⊕ δ' → Type*) [∀ i, MeasurableSpace
 theorem coe_sumPiEquivProdPi_symm (α : δ ⊕ δ' → Type*) [∀ i, MeasurableSpace (α i)] :
     ⇑(MeasurableEquiv.sumPiEquivProdPi α).symm = (Equiv.sumPiEquivProdPi α).symm := by rfl
 
+/-- The measurable equivalence for (dependent) functions on an Option type
+  `(∀ i : Option δ, α i) ≃ᵐ (∀ (i : δ), α i) × α none`. -/
+def piOptionEquivProd {δ : Type*} (α : Option δ → Type*) [∀ i, MeasurableSpace (α i)] :
+    (∀ i, α i) ≃ᵐ (∀ (i : δ), α i) × α none :=
+  let e : Option δ ≃ δ ⊕ PUnit := Equiv.optionEquivSumPUnit δ
+  let em1 : ((i : δ ⊕ PUnit) → α (e.symm i)) ≃ᵐ ((a : Option δ) → α a) :=
+    MeasurableEquiv.piCongrLeft α e.symm
+  let em2 : ((i : δ ⊕ PUnit) → α (e.symm i)) ≃ᵐ ((i : δ) → α (e.symm (Sum.inl i)))
+      × ((i' : PUnit) → α (e.symm (Sum.inr i'))) :=
+    MeasurableEquiv.sumPiEquivProdPi (fun i ↦ α (e.symm i))
+  let em3 : ((i : δ) → α (e.symm (Sum.inl i))) × ((i' : PUnit.{u_3 + 1}) → α (e.symm (Sum.inr i')))
+      ≃ᵐ ((i : δ) → α (some i)) × α none :=
+    MeasurableEquiv.prodCongr (MeasurableEquiv.refl ((i : δ) → α (e.symm (Sum.inl i))))
+      (MeasurableEquiv.piUnique fun i ↦ α (e.symm (Sum.inr i)))
+  em1.symm.trans <| em2.trans em3
+
 /-- The measurable equivalence `(∀ i : s, π i) × (∀ i : t, π i) ≃ᵐ (∀ i : s ∪ t, π i)`
   for disjoint finsets `s` and `t`. `Equiv.piFinsetUnion` as a measurable equivalence. -/
 def piFinsetUnion [DecidableEq δ'] {s t : Finset δ'} (h : Disjoint s t) :
feat(Probability/Kernel): disintegration of finite kernels (#10603)

Let κ : kernel α (β × Ω) be a finite kernel, where Ω is a standard Borel space. Then if α is countable or β has a countably generated σ-algebra (for example if it is standard Borel), then there exists a kernel (α × β) Ω called conditional kernel and denoted by condKernel κ such that κ = fst κ ⊗ₖ condKernel κ.

Properties of integrals involving condKernel are collated in the file Integral.lean. The conditional kernel is unique (almost everywhere w.r.t. fst κ): this is proved in the file Unique.lean.

Co-authored-by: sgouezel <sebastien.gouezel@univ-rennes1.fr> Co-authored-by: Rémy Degenne <remydegenne@gmail.com>

Diff
@@ -689,6 +689,53 @@ theorem measurable_of_measurable_on_compl_singleton [MeasurableSingletonClass α
 
 end Subtype
 
+section Atoms
+
+variable [MeasurableSpace β]
+
+/-- The *measurable atom* of `x` is the intersection of all the measurable sets countaining `x`.
+It is measurable when the space is countable (or more generally when the measurable space is
+countably generated). -/
+def measurableAtom (x : β) : Set β :=
+  ⋂ (s : Set β) (_h's : x ∈ s) (_hs : MeasurableSet s), s
+
+@[simp] lemma mem_measurableAtom_self (x : β) : x ∈ measurableAtom x := by
+  simp (config := {contextual := true}) [measurableAtom]
+
+lemma mem_of_mem_measurableAtom {x y : β} (h : y ∈ measurableAtom x) {s : Set β}
+    (hs : MeasurableSet s) (hxs : x ∈ s) : y ∈ s := by
+  simp only [measurableAtom, mem_iInter] at h
+  exact h s hxs hs
+
+lemma measurableAtom_subset {s : Set β} {x : β} (hs : MeasurableSet s) (hx : x ∈ s) :
+    measurableAtom x ⊆ s :=
+  iInter₂_subset_of_subset s hx fun ⦃a⦄ ↦ (by simp [hs])
+
+@[simp] lemma measurableAtom_of_measurableSingletonClass [MeasurableSingletonClass β] (x : β) :
+    measurableAtom x = {x} :=
+  Subset.antisymm (measurableAtom_subset (measurableSet_singleton x) rfl) (by simp)
+
+lemma MeasurableSet.measurableAtom_of_countable [Countable β] (x : β) :
+    MeasurableSet (measurableAtom x) := by
+  have : ∀ (y : β), y ∉ measurableAtom x → ∃ s, MeasurableSet s ∧ x ∈ s ∧ y ∉ s :=
+    fun y hy ↦ by simpa [measurableAtom] using hy
+  choose! s hs using this
+  have : measurableAtom x = ⋂ (y ∈ (measurableAtom x)ᶜ), s y := by
+    apply Subset.antisymm
+    · intro z hz
+      simp only [mem_iInter, mem_compl_iff]
+      intro i hi
+      show z ∈ s i
+      exact mem_of_mem_measurableAtom hz (hs i hi).1 (hs i hi).2.1
+    · apply compl_subset_compl.1
+      intro z hz
+      simp only [compl_iInter, mem_iUnion, mem_compl_iff, exists_prop]
+      exact ⟨z, hz, (hs z hz).2.2⟩
+  rw [this]
+  exact MeasurableSet.biInter (to_countable (measurableAtom x)ᶜ) (fun i hi ↦ (hs i hi).1)
+
+end Atoms
+
 section Prod
 
 /-- A `MeasurableSpace` structure on the product of two measurable spaces. -/
@@ -813,14 +860,23 @@ instance Prod.instMeasurableSingletonClass
   ⟨fun ⟨a, b⟩ => @singleton_prod_singleton _ _ a b ▸ .prod (.singleton a) (.singleton b)⟩
 #align prod.measurable_singleton_class Prod.instMeasurableSingletonClass
 
-theorem measurable_from_prod_countable [Countable β] [MeasurableSingletonClass β]
-    {_ : MeasurableSpace γ} {f : α × β → γ} (hf : ∀ y, Measurable fun x => f (x, y)) :
+theorem measurable_from_prod_countable' [Countable β]
+    {_ : MeasurableSpace γ} {f : α × β → γ} (hf : ∀ y, Measurable fun x => f (x, y))
+    (h'f : ∀ y y' x, y' ∈ measurableAtom y → f (x, y') = f (x, y)) :
     Measurable f := fun s hs => by
-  have : f ⁻¹' s = ⋃ y, ((fun x => f (x, y)) ⁻¹' s) ×ˢ ({y} : Set β) := by
+  have : f ⁻¹' s = ⋃ y, ((fun x => f (x, y)) ⁻¹' s) ×ˢ (measurableAtom y : Set β) := by
     ext1 ⟨x, y⟩
-    simp [and_assoc, and_left_comm]
+    simp only [mem_preimage, mem_iUnion, mem_prod]
+    refine ⟨fun h ↦ ⟨y, h, mem_measurableAtom_self y⟩, ?_⟩
+    rintro ⟨y', hy's, hy'⟩
+    rwa [h'f y' y x hy']
   rw [this]
-  exact .iUnion fun y => (hf y hs).prod (.singleton y)
+  exact .iUnion (fun y ↦ (hf y hs).prod (.measurableAtom_of_countable y))
+
+theorem measurable_from_prod_countable [Countable β] [MeasurableSingletonClass β]
+    {_ : MeasurableSpace γ} {f : α × β → γ} (hf : ∀ y, Measurable fun x => f (x, y)) :
+    Measurable f :=
+  measurable_from_prod_countable' hf (by simp (config := {contextual := true}))
 #align measurable_from_prod_countable measurable_from_prod_countable
 
 /-- A piecewise function on countably many pieces is measurable if all the data is measurable. -/
chore: tidy various files (#12042)
Diff
@@ -186,13 +186,11 @@ theorem le_map_comap : m ≤ (m.comap g).map g :=
 end Functors
 
 @[simp] theorem map_const {m} (b : β) : MeasurableSpace.map (fun _a : α ↦ b) m = ⊤ :=
-  eq_top_iff.2 <| fun s _ ↦ by
-    by_cases b ∈ s <;> simp [*, map_def] <;> rw [Set.preimage_id'] <;> simp
+  eq_top_iff.2 <| fun s _ ↦ by rw [map_def]; by_cases h : b ∈ s <;> simp [h]
 #align measurable_space.map_const MeasurableSpace.map_const
 
-set_option tactic.skipAssignedInstances false in
 @[simp] theorem comap_const {m} (b : β) : MeasurableSpace.comap (fun _a : α => b) m = ⊥ :=
-  eq_bot_iff.2 <| by rintro _ ⟨s, -, rfl⟩; by_cases b ∈ s <;> simp [*]; exact measurableSet_empty _
+  eq_bot_iff.2 <| by rintro _ ⟨s, -, rfl⟩; by_cases b ∈ s <;> simp [*]
 #align measurable_space.comap_const MeasurableSpace.comap_const
 
 theorem comap_generateFrom {f : α → β} {s : Set (Set β)} :
style: replace '.-/' by '. -/' (#11938)

Purely automatic replacement. If this is in any way controversial; I'm happy to just close this PR.

Diff
@@ -1799,7 +1799,7 @@ def piFinsetUnion [DecidableEq δ'] {s t : Finset δ'} (h : Disjoint s t) :
     .piCongrLeft (fun i : ↥(s ∪ t) ↦ π i) e
 
 /-- If `s` is a measurable set in a measurable space, that space is equivalent
-to the sum of `s` and `sᶜ`.-/
+to the sum of `s` and `sᶜ`. -/
 def sumCompl {s : Set α} [DecidablePred (· ∈ s)] (hs : MeasurableSet s) :
     s ⊕ (sᶜ : Set α) ≃ᵐ α where
   toEquiv := .sumCompl (· ∈ s)
@@ -1881,7 +1881,7 @@ theorem of_measurable_inverse (hf₁ : Measurable f) (hf₂ : MeasurableSet (ran
 open scoped Classical
 
 /-- The **measurable Schröder-Bernstein Theorem**: given measurable embeddings
-`α → β` and `β → α`, we can find a measurable equivalence `α ≃ᵐ β`.-/
+`α → β` and `β → α`, we can find a measurable equivalence `α ≃ᵐ β`. -/
 noncomputable def schroederBernstein {f : α → β} {g : β → α} (hf : MeasurableEmbedding f)
     (hg : MeasurableEmbedding g) : α ≃ᵐ β := by
   let F : Set α → Set α := fun A => (g '' (f '' A)ᶜ)ᶜ
feat(MeasureTheory.MeasurableSpace.CountablyGenerated): add SeparatesPoints and related theorems (#11048)

the goal of the PR is to clarify the relationship between the following closely related assumptions on a measurable space:

  • Being countably generated (CountablyGenerated)
  • Separating points (SeparatesPoints)
  • Having a countable separating family of measurable sets (HasCountableSeparatingOn _ MeasurableSet univ)
  • Having singletons be measurable (MeasurableSingletonClass)

It defines SeparatesPoints and registers all implications between combinations of these properties as instances (or rather a minimal set needed to deduce all others).

It also proves an optimal theorem regarding when a measurable space appears as an induced subspace of the Cantor Space Nat -> Bool. This will be used to generalize topological assumptions to measure theoretic ones in some theorems in MeasureTheory.Constructions.Polish.

Co-authored-by: Felix-Weilacher <112423742+Felix-Weilacher@users.noreply.github.com>

Diff
@@ -2033,9 +2033,9 @@ lemma measurableSet_tendsto {_ : MeasurableSpace β} [MeasurableSpace γ]
     (v_meas n).2.preimage (hf i)
 
 /-- We say that a collection of sets is countably spanning if a countable subset spans the
-  whole type. This is a useful condition in various parts of measure theory. For example, it is
-  a needed condition to show that the product of two collections generate the product sigma algebra,
-  see `generateFrom_prod_eq`. -/
+whole type. This is a useful condition in various parts of measure theory. For example, it is
+a needed condition to show that the product of two collections generate the product sigma algebra,
+see `generateFrom_prod_eq`. -/
 def IsCountablySpanning (C : Set (Set α)) : Prop :=
   ∃ s : ℕ → Set α, (∀ n, s n ∈ C) ∧ ⋃ n, s n = univ
 #align is_countably_spanning IsCountablySpanning
chore(Set/Finset): standardize names of distributivity laws (#11572)

Standardizes the following names for distributivity laws across Finset and Set:

  • inter_union_distrib_left
  • inter_union_distrib_right
  • union_inter_distrib_left
  • union_inter_distrib_right

Makes arguments explicit in:

  • Set.union_inter_distrib_right
  • Set.union_inter_distrib_left
  • Set.inter_union_distrib_right

Deprecates these theorem names:

  • Finset.inter_distrib_left
  • Finset.inter_distrib_right
  • Finset.union_distrib_right
  • Finset.union_distrib_left
  • Set.inter_distrib_left
  • Set.inter_distrib_right
  • Set.union_distrib_right
  • Set.union_distrib_left

Fixes use of deprecated names and implicit arguments in these files:

  • Topology/Basic
  • Topology/Connected/Basic
  • MeasureTheory/MeasurableSpace/Basic
  • MeasureTheory/Covering/Differentiation
  • MeasureTheory/Constructions/BorelSpace/Basic
  • Data/Set/Image
  • Data/Set/Basic
  • Data/PFun
  • Data/Matroid/Dual
  • Data/Finset/Sups
  • Data/Finset/Basic
  • Combinatorics/SetFamily/FourFunctions
  • Combinatorics/Additive/SalemSpencer
  • Counterexamples/Phillips.lean
  • Archive/Imo/Imo2021Q1.lean
Diff
@@ -659,7 +659,7 @@ theorem MeasurableSet.of_union_cover {s t u : Set α} (hs : MeasurableSet s) (ht
     (h : univ ⊆ s ∪ t) (hsu : MeasurableSet (((↑) : s → α) ⁻¹' u))
     (htu : MeasurableSet (((↑) : t → α) ⁻¹' u)) : MeasurableSet u := by
   convert (hs.subtype_image hsu).union (ht.subtype_image htu)
-  simp [image_preimage_eq_inter_range, ← inter_distrib_left, univ_subset_iff.1 h]
+  simp [image_preimage_eq_inter_range, ← inter_union_distrib_left, univ_subset_iff.1 h]
 
 theorem measurable_of_measurable_union_cover {f : α → β} (s t : Set α) (hs : MeasurableSet s)
     (ht : MeasurableSet t) (h : univ ⊆ s ∪ t) (hc : Measurable fun a : s => f a)
chore: classify new theorem / theorem porting notes (#11432)

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

  • "added theorem"
  • "added theorems"
  • "new theorem"
  • "new theorems"
  • "added lemma"
  • "new lemma"
  • "new lemmas"
Diff
@@ -327,7 +327,7 @@ theorem measurableSet_preimage {t : Set β} (hf : Measurable f) (ht : Measurable
   hf ht
 #align measurable_set_preimage measurableSet_preimage
 
--- Porting note: new
+-- Porting note (#10756): new theorem
 protected theorem MeasurableSet.preimage {t : Set β} (ht : MeasurableSet t) (hf : Measurable f) :
     MeasurableSet (f ⁻¹' t) :=
   hf ht
@@ -1099,7 +1099,7 @@ theorem measurable_inr [MeasurableSpace α] [MeasurableSpace β] : Measurable (@
 
 variable {m : MeasurableSpace α} {mβ : MeasurableSpace β}
 
--- Porting note: new
+-- Porting note (#10756): new theorem
 theorem measurableSet_sum_iff {s : Set (α ⊕ β)} :
     MeasurableSet s ↔ MeasurableSet (Sum.inl ⁻¹' s) ∧ MeasurableSet (Sum.inr ⁻¹' s) :=
   Iff.rfl
@@ -1121,7 +1121,7 @@ theorem Measurable.sumMap {_ : MeasurableSpace γ} {_ : MeasurableSpace δ} {f :
     (hf : Measurable f) (hg : Measurable g) : Measurable (Sum.map f g) :=
   (measurable_inl.comp hf).sumElim (measurable_inr.comp hg)
 
--- Porting note: new
+-- Porting note (#10756): new theorem
 @[simp] theorem measurableSet_inl_image {s : Set α} :
     MeasurableSet (Sum.inl '' s : Set (α ⊕ β)) ↔ MeasurableSet s := by
   simp [measurableSet_sum_iff, Sum.inl_injective.preimage_image]
@@ -1129,7 +1129,7 @@ theorem Measurable.sumMap {_ : MeasurableSpace γ} {_ : MeasurableSpace δ} {f :
 alias ⟨_, MeasurableSet.inl_image⟩ := measurableSet_inl_image
 #align measurable_set.inl_image MeasurableSet.inl_image
 
--- Porting note: new
+-- Porting note (#10756): new theorem
 @[simp] theorem measurableSet_inr_image {s : Set β} :
     MeasurableSet (Sum.inr '' s : Set (α ⊕ β)) ↔ MeasurableSet s := by
   simp [measurableSet_sum_iff, Sum.inr_injective.preimage_image]
chore: replace λ by fun (#11301)

Per the style guidelines, λ is disallowed in mathlib. This is close to exhaustive; I left some tactic code alone when it seemed to me that tactic could be upstreamed soon.

Notes

  • In lines I was modifying anyway, I also converted => to .
  • Also contains some mild in-passing indentation fixes in Mathlib/Order/SupClosed.
  • Some doc comments still contained Lean 3 syntax λ x, , which I also replaced.
Diff
@@ -186,7 +186,8 @@ theorem le_map_comap : m ≤ (m.comap g).map g :=
 end Functors
 
 @[simp] theorem map_const {m} (b : β) : MeasurableSpace.map (fun _a : α ↦ b) m = ⊤ :=
-  eq_top_iff.2 <| λ s _ ↦ by by_cases b ∈ s <;> simp [*, map_def] <;> rw [Set.preimage_id'] <;> simp
+  eq_top_iff.2 <| fun s _ ↦ by
+    by_cases b ∈ s <;> simp [*, map_def] <;> rw [Set.preimage_id'] <;> simp
 #align measurable_space.map_const MeasurableSpace.map_const
 
 set_option tactic.skipAssignedInstances false in
feat: countable filtration in a countably generated measurable space (#10945)

In a countably generated measurable space α, we can build a sequence of finer and finer finite measurable partitions of the space such that the measurable space is generated by the union of all partitions. This sequence of partitions (countablePartition α n) is defined in MeasureTheory.MeasurableSpace.CountablyGenerated. This is a new file in which we put the definition of CountablyGenerated (which was previously in MeasurableSpace.Basic).

In Probability.Process.CountablyGenerated, we build the filtration generated by countablePartition α n for all n : ℕ, which we call countableFiltration α.

Co-authored-by: Rémy Degenne <remydegenne@gmail.com>

Diff
@@ -9,7 +9,6 @@ import Mathlib.GroupTheory.Coset
 import Mathlib.Logic.Equiv.Fin
 import Mathlib.MeasureTheory.MeasurableSpace.Defs
 import Mathlib.Order.Filter.SmallSets
-import Mathlib.Order.Filter.CountableSeparatingOn
 import Mathlib.Order.LiminfLimsup
 import Mathlib.Data.Set.UnionLift
 
@@ -1949,73 +1948,6 @@ theorem MeasurableSpace.comap_compl {m' : MeasurableSpace β} [BooleanAlgebra β
   MeasurableSpace.comap_compl (fun _ _ ↦ measurableSet_top) _
 #align measurable_space.comap_not MeasurableSpace.comap_not
 
-section CountablyGenerated
-
-namespace MeasurableSpace
-
-variable (α)
-
-/-- We say a measurable space is countably generated
-if it can be generated by a countable set of sets. -/
-class CountablyGenerated [m : MeasurableSpace α] : Prop where
-  isCountablyGenerated : ∃ b : Set (Set α), b.Countable ∧ m = generateFrom b
-#align measurable_space.countably_generated MeasurableSpace.CountablyGenerated
-
-variable {α}
-
-theorem CountablyGenerated.comap [m : MeasurableSpace β] [h : CountablyGenerated β] (f : α → β) :
-    @CountablyGenerated α (.comap f m) := by
-  rcases h with ⟨⟨b, hbc, rfl⟩⟩
-  rw [comap_generateFrom]
-  letI := generateFrom (preimage f '' b)
-  exact ⟨_, hbc.image _, rfl⟩
-
-theorem CountablyGenerated.sup {m₁ m₂ : MeasurableSpace β} (h₁ : @CountablyGenerated β m₁)
-    (h₂ : @CountablyGenerated β m₂) : @CountablyGenerated β (m₁ ⊔ m₂) := by
-  rcases h₁ with ⟨⟨b₁, hb₁c, rfl⟩⟩
-  rcases h₂ with ⟨⟨b₂, hb₂c, rfl⟩⟩
-  exact @mk _ (_ ⊔ _) ⟨_, hb₁c.union hb₂c, generateFrom_sup_generateFrom⟩
-
-instance (priority := 100) [MeasurableSpace α] [Finite α] : CountablyGenerated α where
-  isCountablyGenerated :=
-    ⟨{s | MeasurableSet s}, Set.to_countable _, generateFrom_measurableSet.symm⟩
-
-instance [MeasurableSpace α] [CountablyGenerated α] {p : α → Prop} :
-    CountablyGenerated { x // p x } := .comap _
-
-instance [MeasurableSpace α] [CountablyGenerated α] [MeasurableSpace β] [CountablyGenerated β] :
-    CountablyGenerated (α × β) :=
-  .sup (.comap Prod.fst) (.comap Prod.snd)
-
-instance [MeasurableSpace α] {s : Set α} [h : CountablyGenerated s] [MeasurableSingletonClass s] :
-    HasCountableSeparatingOn α MeasurableSet s := by
-  suffices HasCountableSeparatingOn s MeasurableSet univ from this.of_subtype fun _ ↦ id
-  rcases h.1 with ⟨b, hbc, hb⟩
-  refine ⟨⟨b, hbc, fun t ht ↦ hb.symm ▸ .basic t ht, fun x _ y _ h ↦ ?_⟩⟩
-  rw [← forall_generateFrom_mem_iff_mem_iff, ← hb] at h
-  simpa using h {y}
-
-variable (α)
-
-open scoped Classical
-
-/-- If a measurable space is countably generated and separates points, it admits a measurable
-injection into the Cantor space `ℕ → Bool` (equipped with the product sigma algebra). -/
-theorem measurable_injection_nat_bool_of_countablyGenerated [MeasurableSpace α]
-    [HasCountableSeparatingOn α MeasurableSet univ] :
-    ∃ f : α → ℕ → Bool, Measurable f ∧ Function.Injective f := by
-  rcases exists_seq_separating α MeasurableSet.empty univ with ⟨e, hem, he⟩
-  refine ⟨(· ∈ e ·), ?_, ?_⟩
-  · rw [measurable_pi_iff]
-    refine fun n ↦ measurable_to_bool ?_
-    simpa only [preimage, mem_singleton_iff, Bool.decide_iff, setOf_mem_eq] using hem n
-  · exact fun x y h ↦ he x trivial y trivial fun n ↦ decide_eq_decide.1 <| congr_fun h _
-#align measurable_space.measurable_injection_nat_bool_of_countably_generated MeasurableSpace.measurable_injection_nat_bool_of_countablyGenerated
-
-end MeasurableSpace
-
-end CountablyGenerated
-
 namespace Filter
 
 variable [MeasurableSpace α]
chore: classify new lemma porting notes (#11217)

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

  • "new lemma"
  • "added lemma"
Diff
@@ -2184,7 +2184,7 @@ theorem coe_union (s t : Subtype (MeasurableSet : Set α → Prop)) : ↑(s ∪
 instance Subtype.instSup : Sup (Subtype (MeasurableSet : Set α → Prop)) :=
   ⟨fun x y => x ∪ y⟩
 
--- Porting note: new lemma
+-- Porting note (#10756): new lemma
 @[simp]
 protected theorem sup_eq_union (s t : {s : Set α // MeasurableSet s}) : s ⊔ t = s ∪ t := rfl
 
@@ -2200,7 +2200,7 @@ theorem coe_inter (s t : Subtype (MeasurableSet : Set α → Prop)) : ↑(s ∩
 instance Subtype.instInf : Inf (Subtype (MeasurableSet : Set α → Prop)) :=
   ⟨fun x y => x ∩ y⟩
 
--- Porting note: new lemma
+-- Porting note (#10756): new lemma
 @[simp]
 protected theorem inf_eq_inter (s t : {s : Set α // MeasurableSet s}) : s ⊓ t = s ∩ t := rfl
 
chore: classify todo porting notes (#11216)

Classifies by adding issue number #11215 to porting notes claiming "TODO".

Diff
@@ -240,7 +240,7 @@ theorem measurable_id'' {m mα : MeasurableSpace α} (hm : m ≤ mα) : @Measura
   measurable_id.mono le_rfl hm
 #align probability_theory.measurable_id'' measurable_id''
 
--- Porting note: todo: add TC `DiscreteMeasurable` + instances
+-- Porting note (#11215): TODO: add TC `DiscreteMeasurable` + instances
 
 @[measurability]
 theorem measurable_from_top [MeasurableSpace β] {f : α → β} : Measurable[⊤] f := fun _ _ => trivial
chore: scope open Classical (#11199)

We remove all but one open Classicals, instead preferring to use open scoped Classical. The only real side-effect this led to is moving a couple declarations to use Exists.choose instead of Classical.choose.

The first few commits are explicitly labelled regex replaces for ease of review.

Diff
@@ -1878,7 +1878,7 @@ theorem of_measurable_inverse (hf₁ : Measurable f) (hf₂ : MeasurableSet (ran
   of_measurable_inverse_on_range hf₁ hf₂ (hg.comp measurable_subtype_coe) H
 #align measurable_embedding.of_measurable_inverse MeasurableEmbedding.of_measurable_inverse
 
-open Classical
+open scoped Classical
 
 /-- The **measurable Schröder-Bernstein Theorem**: given measurable embeddings
 `α → β` and `β → α`, we can find a measurable equivalence `α ≃ᵐ β`.-/
@@ -1997,7 +1997,7 @@ instance [MeasurableSpace α] {s : Set α} [h : CountablyGenerated s] [Measurabl
 
 variable (α)
 
-open Classical
+open scoped Classical
 
 /-- If a measurable space is countably generated and separates points, it admits a measurable
 injection into the Cantor space `ℕ → Bool` (equipped with the product sigma algebra). -/
chore: move Mathlib to v4.7.0-rc1 (#11162)

This is a very large PR, but it has been reviewed piecemeal already in PRs to the bump/v4.7.0 branch as we update to intermediate nightlies.

Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Kyle Miller <kmill31415@gmail.com> Co-authored-by: damiano <adomani@gmail.com>

Diff
@@ -190,6 +190,7 @@ end Functors
   eq_top_iff.2 <| λ s _ ↦ by by_cases b ∈ s <;> simp [*, map_def] <;> rw [Set.preimage_id'] <;> simp
 #align measurable_space.map_const MeasurableSpace.map_const
 
+set_option tactic.skipAssignedInstances false in
 @[simp] theorem comap_const {m} (b : β) : MeasurableSpace.comap (fun _a : α => b) m = ⊥ :=
   eq_bot_iff.2 <| by rintro _ ⟨s, -, rfl⟩; by_cases b ∈ s <;> simp [*]; exact measurableSet_empty _
 #align measurable_space.comap_const MeasurableSpace.comap_const
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
@@ -239,7 +239,7 @@ theorem measurable_id'' {m mα : MeasurableSpace α} (hm : m ≤ mα) : @Measura
   measurable_id.mono le_rfl hm
 #align probability_theory.measurable_id'' measurable_id''
 
--- porting note: todo: add TC `DiscreteMeasurable` + instances
+-- Porting note: todo: add TC `DiscreteMeasurable` + instances
 
 @[measurability]
 theorem measurable_from_top [MeasurableSpace β] {f : α → β} : Measurable[⊤] f := fun _ _ => trivial
@@ -326,7 +326,7 @@ theorem measurableSet_preimage {t : Set β} (hf : Measurable f) (ht : Measurable
   hf ht
 #align measurable_set_preimage measurableSet_preimage
 
--- porting note: new
+-- Porting note: new
 protected theorem MeasurableSet.preimage {t : Set β} (ht : MeasurableSet t) (hf : Measurable f) :
     MeasurableSet (f ⁻¹' t) :=
   hf ht
@@ -1098,7 +1098,7 @@ theorem measurable_inr [MeasurableSpace α] [MeasurableSpace β] : Measurable (@
 
 variable {m : MeasurableSpace α} {mβ : MeasurableSpace β}
 
--- porting note: new
+-- Porting note: new
 theorem measurableSet_sum_iff {s : Set (α ⊕ β)} :
     MeasurableSet s ↔ MeasurableSet (Sum.inl ⁻¹' s) ∧ MeasurableSet (Sum.inr ⁻¹' s) :=
   Iff.rfl
@@ -1120,7 +1120,7 @@ theorem Measurable.sumMap {_ : MeasurableSpace γ} {_ : MeasurableSpace δ} {f :
     (hf : Measurable f) (hg : Measurable g) : Measurable (Sum.map f g) :=
   (measurable_inl.comp hf).sumElim (measurable_inr.comp hg)
 
--- porting note: new
+-- Porting note: new
 @[simp] theorem measurableSet_inl_image {s : Set α} :
     MeasurableSet (Sum.inl '' s : Set (α ⊕ β)) ↔ MeasurableSet s := by
   simp [measurableSet_sum_iff, Sum.inl_injective.preimage_image]
@@ -1128,7 +1128,7 @@ theorem Measurable.sumMap {_ : MeasurableSpace γ} {_ : MeasurableSpace δ} {f :
 alias ⟨_, MeasurableSet.inl_image⟩ := measurableSet_inl_image
 #align measurable_set.inl_image MeasurableSet.inl_image
 
--- porting note: new
+-- Porting note: new
 @[simp] theorem measurableSet_inr_image {s : Set β} :
     MeasurableSet (Sum.inr '' s : Set (α ⊕ β)) ↔ MeasurableSet s := by
   simp [measurableSet_sum_iff, Sum.inr_injective.preimage_image]
@@ -2183,7 +2183,7 @@ theorem coe_union (s t : Subtype (MeasurableSet : Set α → Prop)) : ↑(s ∪
 instance Subtype.instSup : Sup (Subtype (MeasurableSet : Set α → Prop)) :=
   ⟨fun x y => x ∪ y⟩
 
--- porting note: new lemma
+-- Porting note: new lemma
 @[simp]
 protected theorem sup_eq_union (s t : {s : Set α // MeasurableSet s}) : s ⊔ t = s ∪ t := rfl
 
@@ -2199,7 +2199,7 @@ theorem coe_inter (s t : Subtype (MeasurableSet : Set α → Prop)) : ↑(s ∩
 instance Subtype.instInf : Inf (Subtype (MeasurableSet : Set α → Prop)) :=
   ⟨fun x y => x ∩ y⟩
 
--- porting note: new lemma
+-- Porting note: new lemma
 @[simp]
 protected theorem inf_eq_inter (s t : {s : Set α // MeasurableSet s}) : s ⊓ t = s ∩ t := rfl
 
chore: bump aesop; update syntax (#10955)

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

Diff
@@ -907,18 +907,18 @@ theorem measurable_pi_iff {g : α → ∀ a, π a} : Measurable g ↔ ∀ a, Mea
     MeasurableSpace.comap_comp, Function.comp, iSup_le_iff]
 #align measurable_pi_iff measurable_pi_iff
 
-@[aesop safe 100 apply (rule_sets [Measurable])]
+@[aesop safe 100 apply (rule_sets := [Measurable])]
 theorem measurable_pi_apply (a : δ) : Measurable fun f : ∀ a, π a => f a :=
   measurable_pi_iff.1 measurable_id a
 #align measurable_pi_apply measurable_pi_apply
 
-@[aesop safe 100 apply (rule_sets [Measurable])]
+@[aesop safe 100 apply (rule_sets := [Measurable])]
 theorem Measurable.eval {a : δ} {g : α → ∀ a, π a} (hg : Measurable g) :
     Measurable fun x => g x a :=
   (measurable_pi_apply a).comp hg
 #align measurable.eval Measurable.eval
 
-@[aesop safe 100 apply (rule_sets [Measurable])]
+@[aesop safe 100 apply (rule_sets := [Measurable])]
 theorem measurable_pi_lambda (f : α → ∀ a, π a) (hf : ∀ a, Measurable fun c => f c a) :
     Measurable f :=
   measurable_pi_iff.mpr hf
@@ -1209,18 +1209,18 @@ instance Set.instMeasurableSingletonClass [Countable α] : MeasurableSingletonCl
 
 lemma measurable_set_iff : Measurable g ↔ ∀ a, Measurable fun x ↦ a ∈ g x := measurable_pi_iff
 
-@[aesop safe 100 apply (rule_sets [Measurable])]
+@[aesop safe 100 apply (rule_sets := [Measurable])]
 lemma measurable_set_mem (a : α) : Measurable fun s : Set α ↦ a ∈ s := measurable_pi_apply _
 
-@[aesop safe 100 apply (rule_sets [Measurable])]
+@[aesop safe 100 apply (rule_sets := [Measurable])]
 lemma measurable_set_not_mem (a : α) : Measurable fun s : Set α ↦ a ∉ s :=
   (measurable_discrete Not).comp <| measurable_set_mem a
 
-@[aesop safe 100 apply (rule_sets [Measurable])]
+@[aesop safe 100 apply (rule_sets := [Measurable])]
 lemma measurableSet_mem (a : α) : MeasurableSet {s : Set α | a ∈ s} :=
   measurableSet_setOf.2 <| measurable_set_mem _
 
-@[aesop safe 100 apply (rule_sets [Measurable])]
+@[aesop safe 100 apply (rule_sets := [Measurable])]
 lemma measurableSet_not_mem (a : α) : MeasurableSet {s : Set α | a ∉ s} :=
   measurableSet_setOf.2 <| measurable_set_not_mem _
 
feat: add measurableSet_tendsto_nhds (#10146)

Add measurableSet_tendsto: the set of points for which a measurable sequence of functions converges to a given filter is measurable.

Co-authored-by: Rémy Degenne <remydegenne@gmail.com>

Diff
@@ -2083,6 +2083,21 @@ instance iInf_isMeasurablyGenerated {f : ι → Filter α} [∀ i, IsMeasurablyG
 
 end Filter
 
+/-- The set of points for which a sequence of measurable functions converges to a given value
+is measurable. -/
+@[measurability]
+lemma measurableSet_tendsto {_ : MeasurableSpace β} [MeasurableSpace γ]
+    [Countable δ] {l : Filter δ} [l.IsCountablyGenerated]
+    (l' : Filter γ) [l'.IsCountablyGenerated] [hl' : l'.IsMeasurablyGenerated]
+    {f : δ → β → γ} (hf : ∀ i, Measurable (f i)) :
+    MeasurableSet { x | Tendsto (fun n ↦ f n x) l l' } := by
+  rcases l.exists_antitone_basis with ⟨u, hu⟩
+  rcases (Filter.hasBasis_self.mpr hl'.exists_measurable_subset).exists_antitone_subbasis with
+    ⟨v, v_meas, hv⟩
+  simp only [hu.tendsto_iff hv.toHasBasis, true_imp_iff, true_and, setOf_forall, setOf_exists]
+  exact .iInter fun n ↦ .iUnion fun _ ↦ .biInter (to_countable _) fun i _ ↦
+    (v_meas n).2.preimage (hf i)
+
 /-- We say that a collection of sets is countably spanning if a countable subset spans the
   whole type. This is a useful condition in various parts of measure theory. For example, it is
   a needed condition to show that the product of two collections generate the product sigma algebra,
chore: remove terminal, terminal refines (#10762)

I replaced a few "terminal" refine/refine's with exact.

The strategy was very simple-minded: essentially any refine whose following line had smaller indentation got replaced by exact and then I cleaned up the mess.

This PR certainly leaves some further terminal refines, but maybe the current change is beneficial.

Diff
@@ -2075,7 +2075,7 @@ instance iInf_isMeasurablyGenerated {f : ι → Filter α} [∀ i, IsMeasurablyG
   choose U hUf hU using fun i => IsMeasurablyGenerated.exists_measurable_subset (hVf i)
   refine' ⟨⋂ i : t, U i, _, _, _⟩
   · rw [← Equiv.plift.surjective.iInf_comp, mem_iInf]
-    refine' ⟨t, ht, U, hUf, rfl⟩
+    exact ⟨t, ht, U, hUf, rfl⟩
   · haveI := ht.countable.toEncodable.countable
     exact MeasurableSet.iInter fun i => (hU i).1
   · exact iInter_mono fun i => (hU i).2
chore: remove stream-of-consciousness uses of have, replace and suffices (#10640)

No changes to tactic file, it's just boring fixes throughout the library.

This follows on from #6964.

Co-authored-by: sgouezel <sebastien.gouezel@univ-rennes1.fr> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Diff
@@ -866,8 +866,8 @@ theorem exists_measurable_piecewise {ι} [Countable ι] [Nonempty ι] (t : ι 
   inhabit ι
   set g' : (i : ι) → t i → β := fun i => g i ∘ (↑)
   -- see #2184
-  have ht' : ∀ (i j) (x : α) (hxi : x ∈ t i) (hxj : x ∈ t j), g' i ⟨x, hxi⟩ = g' j ⟨x, hxj⟩
-  · intro i j x hxi hxj
+  have ht' : ∀ (i j) (x : α) (hxi : x ∈ t i) (hxj : x ∈ t j), g' i ⟨x, hxi⟩ = g' j ⟨x, hxj⟩ := by
+    intro i j x hxi hxj
     rcases eq_or_ne i j with rfl | hij
     · rfl
     · exact ht hij ⟨hxi, hxj⟩
refactor: prefer s ∩ . when passing to a subset of s (#10433)

This is partial work to make s ∩ . be consistently used for passing to a subset of s. This is sort of an adjoint to (Subtype.val : s -> _) '' ., except for the fact that it does not produce a Set s.

The main API changes are to Subtype.image_preimage_val and Subtype.preimage_val_eq_preimage_val_iff in Mathlib.Data.Set.Image. Changes in other modules are all proof fixups.

Zulip discussion

Diff
@@ -612,7 +612,7 @@ theorem MeasurableSet.subtype_image {s : Set α} {t : Set s} (hs : MeasurableSet
     MeasurableSet t → MeasurableSet (((↑) : s → α) '' t) := by
   rintro ⟨u, hu, rfl⟩
   rw [Subtype.image_preimage_coe]
-  exact hu.inter hs
+  exact hs.inter hu
 #align measurable_set.subtype_image MeasurableSet.subtype_image
 
 @[measurability]
chore: reduce imports (#9830)

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

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

Diff
@@ -7,7 +7,6 @@ import Mathlib.Data.Finset.Update
 import Mathlib.Data.Prod.TProd
 import Mathlib.GroupTheory.Coset
 import Mathlib.Logic.Equiv.Fin
-import Mathlib.Logic.Lemmas
 import Mathlib.MeasureTheory.MeasurableSpace.Defs
 import Mathlib.Order.Filter.SmallSets
 import Mathlib.Order.Filter.CountableSeparatingOn
chore(*): rename FunLike to DFunLike (#9785)

This prepares for the introduction of a non-dependent synonym of FunLike, which helps a lot with keeping #8386 readable.

This is entirely search-and-replace in 680197f combined with manual fixes in 4145626, e900597 and b8428f8. The commands that generated this change:

sed -i 's/\bFunLike\b/DFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\btoFunLike\b/toDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/import Mathlib.Data.DFunLike/import Mathlib.Data.FunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\bHom_FunLike\b/Hom_DFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean     
sed -i 's/\binstFunLike\b/instDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\bfunLike\b/instDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\btoo many metavariables to apply `fun_like.has_coe_to_fun`/too many metavariables to apply `DFunLike.hasCoeToFun`/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean

Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>

Diff
@@ -1368,7 +1368,7 @@ instance instEquivLike : EquivLike (α ≃ᵐ β) α β where
   inv e := e.toEquiv.symm
   left_inv e := e.toEquiv.left_inv
   right_inv e := e.toEquiv.right_inv
-  coe_injective' _ _ he _ := toEquiv_injective <| FunLike.ext' he
+  coe_injective' _ _ he _ := toEquiv_injective <| DFunLike.ext' he
 
 @[simp]
 theorem coe_toEquiv (e : α ≃ᵐ β) : (e.toEquiv : α → β) = e :=
@@ -1429,7 +1429,7 @@ def Simps.symm_apply (h : α ≃ᵐ β) : β → α := h.symm
 
 initialize_simps_projections MeasurableEquiv (toFun → apply, invFun → symm_apply)
 
-@[ext] theorem ext {e₁ e₂ : α ≃ᵐ β} (h : (e₁ : α → β) = e₂) : e₁ = e₂ := FunLike.ext' h
+@[ext] theorem ext {e₁ e₂ : α ≃ᵐ β} (h : (e₁ : α → β) = e₂) : e₁ = e₂ := DFunLike.ext' h
 #align measurable_equiv.ext MeasurableEquiv.ext
 
 @[simp]
chore(*): replace $ with <| (#9319)

See Zulip thread for the discussion.

Diff
@@ -188,7 +188,7 @@ theorem le_map_comap : m ≤ (m.comap g).map g :=
 end Functors
 
 @[simp] theorem map_const {m} (b : β) : MeasurableSpace.map (fun _a : α ↦ b) m = ⊤ :=
-  eq_top_iff.2 $ λ s _ ↦ by by_cases b ∈ s <;> simp [*, map_def] <;> rw [Set.preimage_id'] <;> simp
+  eq_top_iff.2 <| λ s _ ↦ by by_cases b ∈ s <;> simp [*, map_def] <;> rw [Set.preimage_id'] <;> simp
 #align measurable_space.map_const MeasurableSpace.map_const
 
 @[simp] theorem comap_const {m} (b : β) : MeasurableSpace.comap (fun _a : α => b) m = ⊥ :=
@@ -1215,15 +1215,15 @@ lemma measurable_set_mem (a : α) : Measurable fun s : Set α ↦ a ∈ s := mea
 
 @[aesop safe 100 apply (rule_sets [Measurable])]
 lemma measurable_set_not_mem (a : α) : Measurable fun s : Set α ↦ a ∉ s :=
-  (measurable_discrete Not).comp $ measurable_set_mem a
+  (measurable_discrete Not).comp <| measurable_set_mem a
 
 @[aesop safe 100 apply (rule_sets [Measurable])]
 lemma measurableSet_mem (a : α) : MeasurableSet {s : Set α | a ∈ s} :=
-  measurableSet_setOf.2 $ measurable_set_mem _
+  measurableSet_setOf.2 <| measurable_set_mem _
 
 @[aesop safe 100 apply (rule_sets [Measurable])]
 lemma measurableSet_not_mem (a : α) : MeasurableSet {s : Set α | a ∉ s} :=
-  measurableSet_setOf.2 $ measurable_set_not_mem _
+  measurableSet_setOf.2 <| measurable_set_not_mem _
 
 lemma measurable_compl : Measurable ((·ᶜ) : Set α → Set α) :=
   measurable_set_iff.2 fun _ ↦ measurable_set_not_mem _
chore: remove uses of cases' (#9171)

I literally went through and regex'd some uses of cases', replacing them with rcases; this is meant to be a low effort PR as I hope that tools can do this in the future.

rcases is an easier replacement than cases, though with better tools we could in future do a second pass converting simple rcases added here (and existing ones) to cases.

Diff
@@ -799,7 +799,7 @@ theorem measurableSet_prod_of_nonempty {s : Set α} {t : Set β} (h : (s ×ˢ t)
 
 theorem measurableSet_prod {s : Set α} {t : Set β} :
     MeasurableSet (s ×ˢ t) ↔ MeasurableSet s ∧ MeasurableSet t ∨ s = ∅ ∨ t = ∅ := by
-  cases' (s ×ˢ t).eq_empty_or_nonempty with h h
+  rcases (s ×ˢ t).eq_empty_or_nonempty with h | h
   · simp [h, prod_eq_empty_iff.mp h]
   · simp [← not_nonempty_iff_eq_empty, prod_nonempty_iff.mp h, measurableSet_prod_of_nonempty h]
 #align measurable_set_prod measurableSet_prod
@@ -1001,7 +1001,7 @@ theorem measurableSet_pi_of_nonempty {s : Set δ} {t : ∀ i, Set (π i)} (hs :
 
 theorem measurableSet_pi {s : Set δ} {t : ∀ i, Set (π i)} (hs : s.Countable) :
     MeasurableSet (pi s t) ↔ (∀ i ∈ s, MeasurableSet (t i)) ∨ pi s t = ∅ := by
-  cases' (pi s t).eq_empty_or_nonempty with h h
+  rcases (pi s t).eq_empty_or_nonempty with h | h
   · simp [h]
   · simp [measurableSet_pi_of_nonempty hs, h, ← not_nonempty_iff_eq_empty]
 #align measurable_set_pi measurableSet_pi
feat: MeasurableSpace instance for ULift (#8967)

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: sgouezel <sebastien.gouezel@univ-rennes1.fr>

Diff
@@ -449,6 +449,22 @@ theorem measurable_unit [MeasurableSpace α] (f : Unit → α) : Measurable f :=
   measurable_from_top
 #align measurable_unit measurable_unit
 
+section ULift
+variable [MeasurableSpace α]
+
+instance _root_.ULift.instMeasurableSpace : MeasurableSpace (ULift α) :=
+  ‹MeasurableSpace α›.map ULift.up
+
+lemma measurable_down : Measurable (ULift.down : ULift α → α) := fun _ ↦ id
+lemma measurable_up : Measurable (ULift.up : α → ULift α) := fun _ ↦ id
+
+@[simp] lemma measurableSet_preimage_down {s : Set α} :
+    MeasurableSet (ULift.down ⁻¹' s) ↔ MeasurableSet s := Iff.rfl
+@[simp] lemma measurableSet_preimage_up {s : Set (ULift α)} :
+    MeasurableSet (ULift.up ⁻¹' s) ↔ MeasurableSet s := Iff.rfl
+
+end ULift
+
 section Nat
 
 variable [MeasurableSpace α]
@@ -1541,6 +1557,10 @@ protected def cast {α β} [i₁ : MeasurableSpace α] [i₂ : MeasurableSpace 
     exact measurable_id
 #align measurable_equiv.cast MeasurableEquiv.cast
 
+/-- Measurable equivalence between `ULift α` and `α`. -/
+def ulift.{u, v} {α : Type u} [MeasurableSpace α] : ULift.{v, u} α ≃ᵐ α :=
+  ⟨Equiv.ulift, measurable_down, measurable_up⟩
+
 protected theorem measurable_comp_iff {f : β → γ} (e : α ≃ᵐ β) :
     Measurable (f ∘ e) ↔ Measurable f :=
   Iff.intro
chore: replace piFinSuccAboveEquiv with piFinSuccAbove (#9030)

Replaces Equiv.piFinSuccAboveEquiv with .piFinSuccAbove, and same for MeasurableEquiv.piFinSuccAboveEquiv

Diff
@@ -1730,16 +1730,16 @@ def finTwoArrow : (Fin 2 → α) ≃ᵐ α × α :=
 /-- Measurable equivalence between `Π j : Fin (n + 1), α j` and
 `α i × Π j : Fin n, α (Fin.succAbove i j)`. -/
 @[simps! (config := .asFn)]
-def piFinSuccAboveEquiv {n : ℕ} (α : Fin (n + 1) → Type*) [∀ i, MeasurableSpace (α i)]
+def piFinSuccAbove {n : ℕ} (α : Fin (n + 1) → Type*) [∀ i, MeasurableSpace (α i)]
     (i : Fin (n + 1)) : (∀ j, α j) ≃ᵐ α i × ∀ j, α (i.succAbove j) where
-  toEquiv := .piFinSuccAboveEquiv α i
+  toEquiv := .piFinSuccAbove α i
   measurable_toFun := (measurable_pi_apply i).prod_mk <| measurable_pi_iff.2 fun j =>
     measurable_pi_apply _
   measurable_invFun := measurable_pi_iff.2 <| i.forall_iff_succAbove.2
-    ⟨by simp only [piFinSuccAboveEquiv_symm_apply, Fin.insertNth_apply_same, measurable_fst],
-      fun j => by simpa only [piFinSuccAboveEquiv_symm_apply, Fin.insertNth_apply_succAbove]
+    ⟨by simp only [piFinSuccAbove_symm_apply, Fin.insertNth_apply_same, measurable_fst],
+      fun j => by simpa only [piFinSuccAbove_symm_apply, Fin.insertNth_apply_succAbove]
         using (measurable_pi_apply _).comp measurable_snd⟩
-#align measurable_equiv.pi_fin_succ_above_equiv MeasurableEquiv.piFinSuccAboveEquiv
+#align measurable_equiv.pi_fin_succ_above_equiv MeasurableEquiv.piFinSuccAbove
 
 variable (π)
 
chore: Sink Algebra.Support down the import tree (#8919)

Function.support is a very basic definition. Nevertheless, it is a pretty heavy import because it imports most objects a support lemma can be written about.

This PR reverses the dependencies between those objects and Function.support, so that the latter can become a much more lightweight import.

Only two import could not easily be reversed, namely the ones to Data.Set.Finite and Order.ConditionallyCompleteLattice.Basic, so I created two new files instead.

I credit:

Diff
@@ -3,7 +3,6 @@ Copyright (c) 2017 Johannes Hölzl. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Mario Carneiro
 -/
-import Mathlib.Algebra.IndicatorFunction
 import Mathlib.Data.Finset.Update
 import Mathlib.Data.Prod.TProd
 import Mathlib.GroupTheory.Coset
feat: Measurability of logic operators (#8952)

From PFR

Diff
@@ -1142,7 +1142,7 @@ instance Sigma.instMeasurableSpace {α} {β : α → Type*} [m : ∀ a, Measurab
 #align sigma.measurable_space Sigma.instMeasurableSpace
 
 section prop
-variable [MeasurableSpace α] {p : α → Prop}
+variable [MeasurableSpace α] {p q : α → Prop}
 
 @[simp] theorem measurableSet_setOf : MeasurableSet {a | p a} ↔ Measurable p :=
   ⟨fun h ↦ measurable_to_prop <| by simpa only [preimage_singleton_true], fun h => by
@@ -1158,6 +1158,29 @@ alias ⟨_, Measurable.setOf⟩ := measurableSet_setOf
 alias ⟨_, MeasurableSet.mem⟩ := measurable_mem
 #align measurable_set.mem MeasurableSet.mem
 
+lemma Measurable.not (hp : Measurable p) : Measurable (¬ p ·) :=
+  measurableSet_setOf.1 hp.setOf.compl
+
+lemma Measurable.and (hp : Measurable p) (hq : Measurable q) : Measurable fun a ↦ p a ∧ q a :=
+  measurableSet_setOf.1 <| hp.setOf.inter hq.setOf
+
+lemma Measurable.or (hp : Measurable p) (hq : Measurable q) : Measurable fun a ↦ p a ∨ q a :=
+  measurableSet_setOf.1 <| hp.setOf.union hq.setOf
+
+lemma Measurable.imp (hp : Measurable p) (hq : Measurable q) : Measurable fun a ↦ p a → q a :=
+  measurableSet_setOf.1 <| hp.setOf.himp hq.setOf
+
+lemma Measurable.iff (hp : Measurable p) (hq : Measurable q) : Measurable fun a ↦ p a ↔ q a :=
+  measurableSet_setOf.1 <| by simp_rw [iff_iff_implies_and_implies]; exact hq.setOf.bihimp hp.setOf
+
+lemma Measurable.forall [Countable ι] {p : ι → α → Prop} (hp : ∀ i, Measurable (p i)) :
+    Measurable fun a ↦ ∀ i, p i a :=
+  measurableSet_setOf.1 <| by rw [setOf_forall]; exact MeasurableSet.iInter fun i ↦ (hp i).setOf
+
+lemma Measurable.exists [Countable ι] {p : ι → α → Prop} (hp : ∀ i, Measurable (p i)) :
+    Measurable fun a ↦ ∃ i, p i a :=
+  measurableSet_setOf.1 <| by rw [setOf_exists]; exact MeasurableSet.iUnion fun i ↦ (hp i).setOf
+
 end prop
 
 section Set
feat: MeasurableSpace (Set α) instance (#8946)

As a demonstration, prove that the complement operation is measurable.

From LeanCamCombi

Diff
@@ -1159,6 +1159,38 @@ alias ⟨_, MeasurableSet.mem⟩ := measurable_mem
 #align measurable_set.mem MeasurableSet.mem
 
 end prop
+
+section Set
+variable [MeasurableSpace β] {g : β → Set α}
+
+/-- This instance is useful when talking about Bernoulli sequences of random variables or binomial
+random graphs. -/
+instance Set.instMeasurableSpace : MeasurableSpace (Set α) := by unfold Set; infer_instance
+
+instance Set.instMeasurableSingletonClass [Countable α] : MeasurableSingletonClass (Set α) := by
+  unfold Set; infer_instance
+
+lemma measurable_set_iff : Measurable g ↔ ∀ a, Measurable fun x ↦ a ∈ g x := measurable_pi_iff
+
+@[aesop safe 100 apply (rule_sets [Measurable])]
+lemma measurable_set_mem (a : α) : Measurable fun s : Set α ↦ a ∈ s := measurable_pi_apply _
+
+@[aesop safe 100 apply (rule_sets [Measurable])]
+lemma measurable_set_not_mem (a : α) : Measurable fun s : Set α ↦ a ∉ s :=
+  (measurable_discrete Not).comp $ measurable_set_mem a
+
+@[aesop safe 100 apply (rule_sets [Measurable])]
+lemma measurableSet_mem (a : α) : MeasurableSet {s : Set α | a ∈ s} :=
+  measurableSet_setOf.2 $ measurable_set_mem _
+
+@[aesop safe 100 apply (rule_sets [Measurable])]
+lemma measurableSet_not_mem (a : α) : MeasurableSet {s : Set α | a ∉ s} :=
+  measurableSet_setOf.2 $ measurable_set_not_mem _
+
+lemma measurable_compl : Measurable ((·ᶜ) : Set α → Set α) :=
+  measurable_set_iff.2 fun _ ↦ measurable_set_not_mem _
+
+end Set
 end Constructions
 
 namespace MeasurableSpace
chore: tidy various files (#8818)
Diff
@@ -20,8 +20,8 @@ import Mathlib.Data.Set.UnionLift
 /-!
 # Measurable spaces and measurable functions
 
-This file provides properties of measurable spaces and the functions and isomorphisms
-between them. The definition of a measurable space is in `MeasureTheory.MeasurableSpace.Defs`.
+This file provides properties of measurable spaces and the functions and isomorphisms between them.
+The definition of a measurable space is in `Mathlib/MeasureTheory/MeasurableSpace/Defs.lean`.
 
 A measurable space is a set equipped with a σ-algebra, a collection of
 subsets closed under complementation and countable union. A function
chore: space after (#8178)

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

Diff
@@ -1865,7 +1865,7 @@ theorem MeasurableSpace.comap_compl {m' : MeasurableSpace β} [BooleanAlgebra β
     (h : Measurable (compl : β → β)) (f : α → β) :
     MeasurableSpace.comap (fun a => (f a)ᶜ) inferInstance =
       MeasurableSpace.comap f inferInstance := by
-  rw [←Function.comp_def, ←MeasurableSpace.comap_comp]
+  rw [← Function.comp_def, ← MeasurableSpace.comap_comp]
   congr
   exact (MeasurableEquiv.ofInvolutive _ compl_involutive h).measurableEmbedding.comap_eq
 #align measurable_space.comap_compl MeasurableSpace.comap_compl
feat(/Equiv/): Add symm_bijective lemmas next to symm_symms (#8444)

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: lines <34025592+linesthatinterlace@users.noreply.github.com>

Diff
@@ -1373,6 +1373,10 @@ attribute [simps! apply toEquiv] trans refl
 @[simp]
 theorem symm_symm (e : α ≃ᵐ β) : e.symm.symm = e := rfl
 
+theorem symm_bijective :
+    Function.Bijective (MeasurableEquiv.symm : (α ≃ᵐ β) → β ≃ᵐ α) :=
+  Function.bijective_iff_has_inverse.mpr ⟨_, symm_symm, symm_symm⟩
+
 @[simp]
 theorem symm_refl (α : Type*) [MeasurableSpace α] : (refl α).symm = refl α :=
   rfl
chore: bump to v4.3.0-rc2 (#8366)

PR contents

This is the supremum of

along with some minor fixes from failures on nightly-testing as Mathlib master is merged into it.

Note that some PRs for changes that are already compatible with the current toolchain and will be necessary have already been split out: #8380.

I am hopeful that in future we will be able to progressively merge adaptation PRs into a bump/v4.X.0 branch, so we never end up with a "big merge" like this. However one of these adaptation PRs (#8056) predates my new scheme for combined CI, and it wasn't possible to keep that PR viable in the meantime.

Lean PRs involved in this bump

In particular this includes adjustments for the Lean PRs

leanprover/lean4#2778

We can get rid of all the

local macro_rules | `($x ^ $y) => `(HPow.hPow $x $y) -- Porting note: See issue [lean4#2220](https://github.com/leanprover/lean4/pull/2220)

macros across Mathlib (and in any projects that want to write natural number powers of reals).

leanprover/lean4#2722

Changes the default behaviour of simp to (config := {decide := false}). This makes simp (and consequentially norm_num) less powerful, but also more consistent, and less likely to blow up in long failures. This requires a variety of changes: changing some previously by simp or norm_num to decide or rfl, or adding (config := {decide := true}).

leanprover/lean4#2783

This changed the behaviour of simp so that simp [f] will only unfold "fully applied" occurrences of f. The old behaviour can be recovered with simp (config := { unfoldPartialApp := true }). We may in future add a syntax for this, e.g. simp [!f]; please provide feedback! In the meantime, we have made the following changes:

  • switching to using explicit lemmas that have the intended level of application
  • (config := { unfoldPartialApp := true }) in some places, to recover the old behaviour
  • Using @[eqns] to manually adjust the equation lemmas for a particular definition, recovering the old behaviour just for that definition. See #8371, where we do this for Function.comp and Function.flip.

This change in Lean may require further changes down the line (e.g. adding the !f syntax, and/or upstreaming the special treatment for Function.comp and Function.flip, and/or removing this special treatment). Please keep an open and skeptical mind about these changes!

Co-authored-by: leanprover-community-mathlib4-bot <leanprover-community-mathlib4-bot@users.noreply.github.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Mauricio Collares <mauricio@collares.org>

Diff
@@ -928,7 +928,7 @@ theorem measurable_uniqueElim [Unique δ] [∀ i, MeasurableSpace (π i)] :
 
 theorem measurable_updateFinset [DecidableEq δ] {s : Finset δ} {x : ∀ i, π i} :
     Measurable (updateFinset x s) := by
-  simp_rw [updateFinset, measurable_pi_iff]
+  simp (config := { unfoldPartialApp := true }) only [updateFinset, measurable_pi_iff]
   intro i
   by_cases h : i ∈ s <;> simp [h, measurable_pi_apply]
 
fix: attribute [simp] ... in -> attribute [local simp] ... in (#7678)

Mathlib.Logic.Unique contains the line attribute [simp] eq_iff_true_of_subsingleton in ...:

https://github.com/leanprover-community/mathlib4/blob/96a11c7aac574c00370c2b3dab483cb676405c5d/Mathlib/Logic/Unique.lean#L255-L256

Despite what the in part may imply, this adds the lemma to the simp set "globally", including for downstream files; it is likely that attribute [local simp] eq_iff_true_of_subsingleton in ... was meant instead (or maybe scoped simp, but I think "scoped" refers to the current namespace). Indeed, the relevant lemma is not marked with @[simp] for possible slowness: https://github.com/leanprover/std4/blob/846e9e1d6bb534774d1acd2dc430e70987da3c18/Std/Logic.lean#L749. Adding it to the simp set causes the example at https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Regression.20in.20simp to slow down.

This PR changes this and fixes the relevant downstream simps. There was also one ocurrence of attribute [simp] FullSubcategory.comp_def FullSubcategory.id_def in in Mathlib.CategoryTheory.Monoidal.Subcategory but that was much easier to fix.

https://github.com/leanprover-community/mathlib4/blob/bc49eb9ba756a233370b4b68bcdedd60402f71ed/Mathlib/CategoryTheory/Monoidal/Subcategory.lean#L118-L119

Diff
@@ -413,7 +413,7 @@ instance Subsingleton.measurableSingletonClass {α} [MeasurableSpace α] [Subsin
     MeasurableSingletonClass α := by
   refine' ⟨fun i => _⟩
   convert MeasurableSet.univ
-  simp [Set.eq_univ_iff_forall]
+  simp [Set.eq_univ_iff_forall, eq_iff_true_of_subsingleton]
 #noalign empty.measurable_singleton_class
 #noalign punit.measurable_singleton_class
 
feat: measurability of uniqueElim and piFinsetUnion (#8249)
  • The extra import doesn't add any additional imports transitively
  • Also use implicit arguments for some MeasurableSpace arguments for consistency with other lemmas.
  • Redefine Equiv.piSubsingleton and MulEquiv.piSubsingleton to Equiv.piUnique and MulEquiv.piUnique.
Diff
@@ -4,6 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Mario Carneiro
 -/
 import Mathlib.Algebra.IndicatorFunction
+import Mathlib.Data.Finset.Update
 import Mathlib.Data.Prod.TProd
 import Mathlib.GroupTheory.Coset
 import Mathlib.Logic.Equiv.Fin
@@ -921,6 +922,16 @@ theorem measurable_update'  {a : δ} [DecidableEq δ] :
     exact measurable_snd
   · exact measurable_pi_iff.1 measurable_fst _
 
+theorem measurable_uniqueElim [Unique δ] [∀ i, MeasurableSpace (π i)] :
+    Measurable (uniqueElim : π (default : δ) → ∀ i, π i) := by
+  simp_rw [measurable_pi_iff, Unique.forall_iff, uniqueElim_default]; exact measurable_id
+
+theorem measurable_updateFinset [DecidableEq δ] {s : Finset δ} {x : ∀ i, π i} :
+    Measurable (updateFinset x s) := by
+  simp_rw [updateFinset, measurable_pi_iff]
+  intro i
+  by_cases h : i ∈ s <;> simp [h, measurable_pi_apply]
+
 /-- The function `update f a : π a → Π a, π a` is always measurable.
   This doesn't require `f` to be measurable.
   This should not be confused with the statement that `update f a x` is measurable. -/
@@ -1630,12 +1641,18 @@ def piMeasurableEquivTProd [DecidableEq δ'] {l : List δ'} (hnd : l.Nodup) (h :
   measurable_invFun := measurable_tProd_elim' h
 #align measurable_equiv.pi_measurable_equiv_tprod MeasurableEquiv.piMeasurableEquivTProd
 
-/-- If `α` has a unique term, then the type of function `α → β` is measurably equivalent to `β`. -/
+variable (π) in
+/-- The measurable equivalence `(∀ i, π i) ≃ᵐ π ⋆` when the domain of `π` only contains `⋆` -/
 @[simps! (config := .asFn)]
-def funUnique (α β : Type*) [Unique α] [MeasurableSpace β] : (α → β) ≃ᵐ β where
-  toEquiv := Equiv.funUnique α β
+def piUnique [Unique δ'] : (∀ i, π i) ≃ᵐ π default where
+  toEquiv := Equiv.piUnique π
   measurable_toFun := measurable_pi_apply _
-  measurable_invFun := measurable_pi_iff.2 fun _ => measurable_id
+  measurable_invFun := measurable_uniqueElim
+
+/-- If `α` has a unique term, then the type of function `α → β` is measurably equivalent to `β`. -/
+@[simps! (config := .asFn)]
+def funUnique (α β : Type*) [Unique α] [MeasurableSpace β] : (α → β) ≃ᵐ β :=
+  MeasurableEquiv.piUnique _
 #align measurable_equiv.fun_unique MeasurableEquiv.funUnique
 
 /-- The space `Π i : Fin 2, α i` is measurably equivalent to `α 0 × α 1`. -/
@@ -1695,6 +1712,14 @@ theorem coe_sumPiEquivProdPi (α : δ ⊕ δ' → Type*) [∀ i, MeasurableSpace
 theorem coe_sumPiEquivProdPi_symm (α : δ ⊕ δ' → Type*) [∀ i, MeasurableSpace (α i)] :
     ⇑(MeasurableEquiv.sumPiEquivProdPi α).symm = (Equiv.sumPiEquivProdPi α).symm := by rfl
 
+/-- The measurable equivalence `(∀ i : s, π i) × (∀ i : t, π i) ≃ᵐ (∀ i : s ∪ t, π i)`
+  for disjoint finsets `s` and `t`. `Equiv.piFinsetUnion` as a measurable equivalence. -/
+def piFinsetUnion [DecidableEq δ'] {s t : Finset δ'} (h : Disjoint s t) :
+    ((∀ i : s, π i) × ∀ i : t, π i) ≃ᵐ ∀ i : (s ∪ t : Finset δ'), π i :=
+  letI e := Finset.union s t h
+  MeasurableEquiv.sumPiEquivProdPi (fun b ↦ π (e b)) |>.symm.trans <|
+    .piCongrLeft (fun i : ↥(s ∪ t) ↦ π i) e
+
 /-- If `s` is a measurable set in a measurable space, that space is equivalent
 to the sum of `s` and `sᶜ`.-/
 def sumCompl {s : Set α} [DecidablePred (· ∈ s)] (hs : MeasurableSet s) :
fix: correct precedence for coercion arrows (#8297)

The new precedences match coeNotation in core:

syntax:1024 (name := coeNotation) "↑" term:1024 : term

They also match the precedence in Lean 3.

Diff
@@ -1619,7 +1619,7 @@ def piCongrLeft (f : δ ≃ δ') : (∀ b, π (f b)) ≃ᵐ ∀ a, π a := by
   exact fun i => measurable_pi_apply (f i)
 
 theorem coe_piCongrLeft (f : δ ≃ δ') :
-    ⇑MeasurableEquiv.piCongrLeft π f = f.piCongrLeft π := by rfl
+    ⇑(MeasurableEquiv.piCongrLeft π f) = f.piCongrLeft π := by rfl
 
 /-- Pi-types are measurably equivalent to iterated products. -/
 @[simps! (config := .asFn)]
@@ -1690,7 +1690,7 @@ def sumPiEquivProdPi (α : δ ⊕ δ' → Type*) [∀ i, MeasurableSpace (α i)]
     exact measurable_pi_iff.1 measurable_snd _
 
 theorem coe_sumPiEquivProdPi (α : δ ⊕ δ' → Type*) [∀ i, MeasurableSpace (α i)] :
-    ⇑MeasurableEquiv.sumPiEquivProdPi α = Equiv.sumPiEquivProdPi α := by rfl
+    ⇑(MeasurableEquiv.sumPiEquivProdPi α) = Equiv.sumPiEquivProdPi α := by rfl
 
 theorem coe_sumPiEquivProdPi_symm (α : δ ⊕ δ' → Type*) [∀ i, MeasurableSpace (α i)] :
     ⇑(MeasurableEquiv.sumPiEquivProdPi α).symm = (Equiv.sumPiEquivProdPi α).symm := by rfl
style: shorten simps configurations (#8296)

Use .asFn and .lemmasOnly as simps configuration options.

For reference, these are defined here:

https://github.com/leanprover-community/mathlib4/blob/4055c8b471380825f07416b12cb0cf266da44d84/Mathlib/Tactic/Simps/Basic.lean#L843-L851

Diff
@@ -1622,7 +1622,7 @@ theorem coe_piCongrLeft (f : δ ≃ δ') :
     ⇑MeasurableEquiv.piCongrLeft π f = f.piCongrLeft π := by rfl
 
 /-- Pi-types are measurably equivalent to iterated products. -/
-@[simps! (config := { fullyApplied := false })]
+@[simps! (config := .asFn)]
 def piMeasurableEquivTProd [DecidableEq δ'] {l : List δ'} (hnd : l.Nodup) (h : ∀ i, i ∈ l) :
     (∀ i, π i) ≃ᵐ List.TProd π l where
   toEquiv := List.TProd.piEquivTProd hnd h
@@ -1631,7 +1631,7 @@ def piMeasurableEquivTProd [DecidableEq δ'] {l : List δ'} (hnd : l.Nodup) (h :
 #align measurable_equiv.pi_measurable_equiv_tprod MeasurableEquiv.piMeasurableEquivTProd
 
 /-- If `α` has a unique term, then the type of function `α → β` is measurably equivalent to `β`. -/
-@[simps! (config := { fullyApplied := false })]
+@[simps! (config := .asFn)]
 def funUnique (α β : Type*) [Unique α] [MeasurableSpace β] : (α → β) ≃ᵐ β where
   toEquiv := Equiv.funUnique α β
   measurable_toFun := measurable_pi_apply _
@@ -1639,7 +1639,7 @@ def funUnique (α β : Type*) [Unique α] [MeasurableSpace β] : (α → β) ≃
 #align measurable_equiv.fun_unique MeasurableEquiv.funUnique
 
 /-- The space `Π i : Fin 2, α i` is measurably equivalent to `α 0 × α 1`. -/
-@[simps! (config := { fullyApplied := false })]
+@[simps! (config := .asFn)]
 def piFinTwo (α : Fin 2 → Type*) [∀ i, MeasurableSpace (α i)] : (∀ i, α i) ≃ᵐ α 0 × α 1 where
   toEquiv := piFinTwoEquiv α
   measurable_toFun := Measurable.prod (measurable_pi_apply _) (measurable_pi_apply _)
@@ -1647,14 +1647,14 @@ def piFinTwo (α : Fin 2 → Type*) [∀ i, MeasurableSpace (α i)] : (∀ i, α
 #align measurable_equiv.pi_fin_two MeasurableEquiv.piFinTwo
 
 /-- The space `Fin 2 → α` is measurably equivalent to `α × α`. -/
-@[simps! (config := { fullyApplied := false })]
+@[simps! (config := .asFn)]
 def finTwoArrow : (Fin 2 → α) ≃ᵐ α × α :=
   piFinTwo fun _ => α
 #align measurable_equiv.fin_two_arrow MeasurableEquiv.finTwoArrow
 
 /-- Measurable equivalence between `Π j : Fin (n + 1), α j` and
 `α i × Π j : Fin n, α (Fin.succAbove i j)`. -/
-@[simps! (config := { fullyApplied := false })]
+@[simps! (config := .asFn)]
 def piFinSuccAboveEquiv {n : ℕ} (α : Fin (n + 1) → Type*) [∀ i, MeasurableSpace (α i)]
     (i : Fin (n + 1)) : (∀ j, α j) ≃ᵐ α i × ∀ j, α (i.succAbove j) where
   toEquiv := .piFinSuccAboveEquiv α i
@@ -1670,7 +1670,7 @@ variable (π)
 
 /-- Measurable equivalence between (dependent) functions on a type and pairs of functions on
 `{i // p i}` and `{i // ¬p i}`. See also `Equiv.piEquivPiSubtypeProd`. -/
-@[simps! (config := { fullyApplied := false })]
+@[simps! (config := .asFn)]
 def piEquivPiSubtypeProd (p : δ' → Prop) [DecidablePred p] :
     (∀ i, π i) ≃ᵐ (∀ i : Subtype p, π i) × ∀ i : { i // ¬p i }, π i where
   toEquiv := .piEquivPiSubtypeProd p π
fix: fixes of 3 PRs (#8248)

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

Diff
@@ -267,7 +267,7 @@ theorem measurable_of_subsingleton_codomain [Subsingleton β] (f : α → β) :
   fun s _ => Subsingleton.set_cases MeasurableSet.empty MeasurableSet.univ s
 #align measurable_of_subsingleton_codomain measurable_of_subsingleton_codomain
 
-@[measurability, to_additive]
+@[to_additive (attr := measurability)]
 theorem measurable_one [One α] : Measurable (1 : β → α) :=
   @measurable_const _ _ _ _ 1
 #align measurable_one measurable_one
chore(MeasureTheory/MeasurableSpace/Basic): change reference to file in docs (#8230)

An nonexistent file is mentioned in the intro docs, it is changed to refer to the correct file.

Diff
@@ -20,7 +20,7 @@ import Mathlib.Data.Set.UnionLift
 # Measurable spaces and measurable functions
 
 This file provides properties of measurable spaces and the functions and isomorphisms
-between them. The definition of a measurable space is in `MeasureTheory.MeasurableSpaceDef`.
+between them. The definition of a measurable space is in `MeasureTheory.MeasurableSpace.Defs`.
 
 A measurable space is a set equipped with a σ-algebra, a collection of
 subsets closed under complementation and countable union. A function
feat: volume of a complex ball (#6907)

We prove the formula for the area of a disc

theorem volume_ball (x : EuclideanSpace ℝ (Fin 2)) (r : ℝ) :
    volume (Metric.ball x r) = NNReal.pi * (ENNReal.ofReal r) ^ 2 

and deduce from this, the volume of complex balls

theorem volume_ball (a : ℂ) (r : ℝ) :  
    volume (Metric.ball a r) = NNReal.pi * (ENNReal.ofReal r) ^ 2

Co-authored-by: James Arthur Co-authored-by: Benjamin Davidson Co-authored-by: Andrew Souther

Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Diff
@@ -1315,13 +1315,17 @@ def refl (α : Type*) [MeasurableSpace α] : α ≃ᵐ α where
 instance instInhabited : Inhabited (α ≃ᵐ α) := ⟨refl α⟩
 
 /-- The composition of equivalences between measurable spaces. -/
+@[pp_dot]
 def trans (ab : α ≃ᵐ β) (bc : β ≃ᵐ γ) : α ≃ᵐ γ where
   toEquiv := ab.toEquiv.trans bc.toEquiv
   measurable_toFun := bc.measurable_toFun.comp ab.measurable_toFun
   measurable_invFun := ab.measurable_invFun.comp bc.measurable_invFun
 #align measurable_equiv.trans MeasurableEquiv.trans
 
+theorem coe_trans (ab : α ≃ᵐ β) (bc : β ≃ᵐ γ) : ⇑(ab.trans bc) = bc ∘ ab := rfl
+
 /-- The inverse of an equivalence between measurable spaces. -/
+@[pp_dot]
 def symm (ab : α ≃ᵐ β) : β ≃ᵐ α where
   toEquiv := ab.toEquiv.symm
   measurable_toFun := ab.measurable_invFun
feat: some measure preserving equivalences on pi-types (#7751)
  • Also fix the statement of some lemmas of an earlier PR.
  • From the Sobolev project
  • There are more that depend on #7341

Co-authored-by: Heather Macbeth 25316162+hrmacbeth@users.noreply.github.com

Diff
@@ -1614,8 +1614,8 @@ def piCongrLeft (f : δ ≃ δ') : (∀ b, π (f b)) ≃ᵐ ∀ a, π a := by
   rw [measurable_pi_iff]
   exact fun i => measurable_pi_apply (f i)
 
-theorem piCongrLeft_eq (f : δ ≃ δ') :
-    MeasurableEquiv.piCongrLeft π f = f.piCongrLeft π := by rfl
+theorem coe_piCongrLeft (f : δ ≃ δ') :
+    ⇑MeasurableEquiv.piCongrLeft π f = f.piCongrLeft π := by rfl
 
 /-- Pi-types are measurably equivalent to iterated products. -/
 @[simps! (config := { fullyApplied := false })]
@@ -1686,10 +1686,10 @@ def sumPiEquivProdPi (α : δ ⊕ δ' → Type*) [∀ i, MeasurableSpace (α i)]
     exact measurable_pi_iff.1 measurable_snd _
 
 theorem coe_sumPiEquivProdPi (α : δ ⊕ δ' → Type*) [∀ i, MeasurableSpace (α i)] :
-    MeasurableEquiv.sumPiEquivProdPi α = Equiv.sumPiEquivProdPi α := by rfl
+    ⇑MeasurableEquiv.sumPiEquivProdPi α = Equiv.sumPiEquivProdPi α := by rfl
 
 theorem coe_sumPiEquivProdPi_symm (α : δ ⊕ δ' → Type*) [∀ i, MeasurableSpace (α i)] :
-    (MeasurableEquiv.sumPiEquivProdPi α).symm = (Equiv.sumPiEquivProdPi α).symm := by rfl
+    ⇑(MeasurableEquiv.sumPiEquivProdPi α).symm = (Equiv.sumPiEquivProdPi α).symm := by rfl
 
 /-- If `s` is a measurable set in a measurable space, that space is equivalent
 to the sum of `s` and `sᶜ`.-/
feat: lemmas for MeasurableSpace.Basic (#7682)
  • From the Sobolev project

Co-authored-by: Heather Macbeth 25316162+hrmacbeth@users.noreply.github.com

Diff
@@ -408,10 +408,14 @@ instance Int.instMeasurableSpace : MeasurableSpace ℤ := ⊤
 instance Rat.instMeasurableSpace : MeasurableSpace ℚ := ⊤
 #align rat.measurable_space Rat.instMeasurableSpace
 
-instance Empty.instMeasurableSingletonClass : MeasurableSingletonClass Empty := ⟨fun _ => trivial⟩
-#align empty.measurable_singleton_class Empty.instMeasurableSingletonClass
-instance PUnit.instMeasurableSingletonClass : MeasurableSingletonClass PUnit := ⟨fun _ => trivial⟩
-#align punit.measurable_singleton_class PUnit.instMeasurableSingletonClass
+instance Subsingleton.measurableSingletonClass {α} [MeasurableSpace α] [Subsingleton α] :
+    MeasurableSingletonClass α := by
+  refine' ⟨fun i => _⟩
+  convert MeasurableSet.univ
+  simp [Set.eq_univ_iff_forall]
+#noalign empty.measurable_singleton_class
+#noalign punit.measurable_singleton_class
+
 instance Bool.instMeasurableSingletonClass : MeasurableSingletonClass Bool := ⟨fun _ => trivial⟩
 #align bool.measurable_singleton_class Bool.instMeasurableSingletonClass
 instance Prop.instMeasurableSingletonClass : MeasurableSingletonClass Prop := ⟨fun _ => trivial⟩
@@ -905,17 +909,46 @@ theorem measurable_pi_lambda (f : α → ∀ a, π a) (hf : ∀ a, Measurable fu
   measurable_pi_iff.mpr hf
 #align measurable_pi_lambda measurable_pi_lambda
 
+/-- The function `(f, x) ↦ update f a x : (Π a, π a) × π a → Π a, π a` is measurable. -/
+theorem measurable_update'  {a : δ} [DecidableEq δ] :
+    Measurable (fun p : (∀ i, π i) × π a ↦ update p.1 a p.2) := by
+  rw [measurable_pi_iff]
+  intro j
+  dsimp [update]
+  split_ifs with h
+  · subst h
+    dsimp
+    exact measurable_snd
+  · exact measurable_pi_iff.1 measurable_fst _
+
 /-- The function `update f a : π a → Π a, π a` is always measurable.
   This doesn't require `f` to be measurable.
   This should not be confused with the statement that `update f a x` is measurable. -/
 @[measurability]
-theorem measurable_update (f : ∀ a : δ, π a) {a : δ} [DecidableEq δ] : Measurable (update f a) := by
-  refine measurable_pi_lambda _ fun x => ?_
-  rcases eq_or_ne x a with (rfl | hx)
-  · simpa only [update_same] using measurable_id
-  · simpa only [update_noteq hx] using measurable_const
+theorem measurable_update (f : ∀ a : δ, π a) {a : δ} [DecidableEq δ] : Measurable (update f a) :=
+  measurable_update'.comp measurable_prod_mk_left
 #align measurable_update measurable_update
 
+theorem measurable_update_left {a : δ} [DecidableEq δ] {x : π a} :
+    Measurable (update · a x) :=
+  measurable_update'.comp measurable_prod_mk_right
+
+variable (π) in
+theorem measurable_eq_mp {i i' : δ} (h : i = i') : Measurable (congr_arg π h).mp := by
+  cases h
+  exact measurable_id
+
+variable (π) in
+theorem Measurable.eq_mp {β} [MeasurableSpace β] {i i' : δ} (h : i = i') {f : β → π i}
+    (hf : Measurable f) : Measurable fun x => (congr_arg π h).mp (f x) :=
+  (measurable_eq_mp π h).comp hf
+
+theorem measurable_piCongrLeft (f : δ' ≃ δ) : Measurable (piCongrLeft π f) := by
+  rw [measurable_pi_iff]
+  intro i
+  simp_rw [piCongrLeft_apply_eq_cast]
+  exact Measurable.eq_mp π (f.apply_symm_apply i) <| measurable_pi_apply <| f.symm i
+
 /- Even though we cannot use projection notation, we still keep a dot to be consistent with similar
   lemmas, like `MeasurableSet.prod`. -/
 @[measurability]
@@ -1572,6 +1605,18 @@ def piCongrRight (e : ∀ a, π a ≃ᵐ π' a) : (∀ a, π a) ≃ᵐ ∀ a, π
     measurable_pi_lambda _ fun i => (e i).measurable_invFun.comp (measurable_pi_apply i)
 #align measurable_equiv.Pi_congr_right MeasurableEquiv.piCongrRight
 
+variable (π) in
+/-- Moving a dependent type along an equivalence of coordinates, as a measurable equivalence. -/
+def piCongrLeft (f : δ ≃ δ') : (∀ b, π (f b)) ≃ᵐ ∀ a, π a := by
+  refine' { Equiv.piCongrLeft π f with .. }
+  · exact measurable_piCongrLeft f
+  simp only [invFun_as_coe, coe_fn_symm_mk]
+  rw [measurable_pi_iff]
+  exact fun i => measurable_pi_apply (f i)
+
+theorem piCongrLeft_eq (f : δ ≃ δ') :
+    MeasurableEquiv.piCongrLeft π f = f.piCongrLeft π := by rfl
+
 /-- Pi-types are measurably equivalent to iterated products. -/
 @[simps! (config := { fullyApplied := false })]
 def piMeasurableEquivTProd [DecidableEq δ'] {l : List δ'} (hnd : l.Nodup) (h : ∀ i, i ∈ l) :
@@ -1629,6 +1674,23 @@ def piEquivPiSubtypeProd (p : δ' → Prop) [DecidablePred p] :
   measurable_invFun := measurable_piEquivPiSubtypeProd_symm π p
 #align measurable_equiv.pi_equiv_pi_subtype_prod MeasurableEquiv.piEquivPiSubtypeProd
 
+/-- The measurable equivalence between the pi type over a sum type and a product of pi-types.
+This is similar to `MeasurableEquiv.piEquivPiSubtypeProd`. -/
+def sumPiEquivProdPi (α : δ ⊕ δ' → Type*) [∀ i, MeasurableSpace (α i)] :
+    (∀ i, α i) ≃ᵐ (∀ i, α (.inl i)) × ∀ i', α (.inr i') := by
+  refine' { Equiv.sumPiEquivProdPi α with .. }
+  · refine Measurable.prod ?_ ?_ <;>
+      rw [measurable_pi_iff] <;> rintro i <;> apply measurable_pi_apply
+  · rw [measurable_pi_iff]; rintro (i|i)
+    exact measurable_pi_iff.1 measurable_fst _
+    exact measurable_pi_iff.1 measurable_snd _
+
+theorem coe_sumPiEquivProdPi (α : δ ⊕ δ' → Type*) [∀ i, MeasurableSpace (α i)] :
+    MeasurableEquiv.sumPiEquivProdPi α = Equiv.sumPiEquivProdPi α := by rfl
+
+theorem coe_sumPiEquivProdPi_symm (α : δ ⊕ δ' → Type*) [∀ i, MeasurableSpace (α i)] :
+    (MeasurableEquiv.sumPiEquivProdPi α).symm = (Equiv.sumPiEquivProdPi α).symm := by rfl
+
 /-- If `s` is a measurable set in a measurable space, that space is equivalent
 to the sum of `s` and `sᶜ`.-/
 def sumCompl {s : Set α} [DecidablePred (· ∈ s)] (hs : MeasurableSet s) :
feat: NullMeasurable function is AEMeasurable (#7604)

This is true if the function admits an a.e. range with countably generated σ-algebra.

In particular, a function is AEStronglyMeasurable iff it is NullMeasurable and it admits a separable a.e. range.

Diff
@@ -610,6 +610,11 @@ theorem Measurable.subtype_mk {p : β → Prop} {f : α → β} (hf : Measurable
   hs.2 ▸ by simp only [← preimage_comp, (· ∘ ·), Subtype.coe_mk, hf hs.1]
 #align measurable.subtype_mk Measurable.subtype_mk
 
+@[measurability]
+protected theorem Measurable.rangeFactorization {f : α → β} (hf : Measurable f) :
+    Measurable (rangeFactorization f) :=
+  hf.subtype_mk
+
 theorem Measurable.subtype_map {f : α → β} {p : α → Prop} {q : β → Prop} (hf : Measurable f)
     (hpq : ∀ x, p x → q (f x)) : Measurable (Subtype.map f hpq) :=
   (hf.comp measurable_subtype_coe).subtype_mk
@@ -630,13 +635,16 @@ theorem MeasurableSet.image_inclusion {s t : Set α} (h : s ⊆ t) {u : Set s}
     MeasurableSet (inclusion h '' u) :=
   (measurable_subtype_coe hs).image_inclusion' h hu
 
+theorem MeasurableSet.of_union_cover {s t u : Set α} (hs : MeasurableSet s) (ht : MeasurableSet t)
+    (h : univ ⊆ s ∪ t) (hsu : MeasurableSet (((↑) : s → α) ⁻¹' u))
+    (htu : MeasurableSet (((↑) : t → α) ⁻¹' u)) : MeasurableSet u := by
+  convert (hs.subtype_image hsu).union (ht.subtype_image htu)
+  simp [image_preimage_eq_inter_range, ← inter_distrib_left, univ_subset_iff.1 h]
+
 theorem measurable_of_measurable_union_cover {f : α → β} (s t : Set α) (hs : MeasurableSet s)
     (ht : MeasurableSet t) (h : univ ⊆ s ∪ t) (hc : Measurable fun a : s => f a)
-    (hd : Measurable fun a : t => f a) : Measurable f := fun u hu => by
-  convert (hs.subtype_image (hc hu)).union (ht.subtype_image (hd hu))
-  change f ⁻¹' u = (↑) '' ((↑) ⁻¹' (f ⁻¹' u) : Set s) ∪ (↑) '' ((↑) ⁻¹' (f ⁻¹' u) : Set t)
-  rw [image_preimage_eq_inter_range, image_preimage_eq_inter_range, Subtype.range_coe,
-    Subtype.range_coe, ← inter_distrib_left, univ_subset_iff.1 h, inter_univ]
+    (hd : Measurable fun a : t => f a) : Measurable f := fun _u hu =>
+  .of_union_cover hs ht h (hc hu) (hd hu)
 #align measurable_of_measurable_union_cover measurable_of_measurable_union_cover
 
 theorem measurable_of_restrict_of_restrict_compl {f : α → β} {s : Set α} (hs : MeasurableSet s)
@@ -1799,6 +1807,10 @@ theorem CountablyGenerated.sup {m₁ m₂ : MeasurableSpace β} (h₁ : @Countab
   rcases h₂ with ⟨⟨b₂, hb₂c, rfl⟩⟩
   exact @mk _ (_ ⊔ _) ⟨_, hb₁c.union hb₂c, generateFrom_sup_generateFrom⟩
 
+instance (priority := 100) [MeasurableSpace α] [Finite α] : CountablyGenerated α where
+  isCountablyGenerated :=
+    ⟨{s | MeasurableSet s}, Set.to_countable _, generateFrom_measurableSet.symm⟩
+
 instance [MeasurableSpace α] [CountablyGenerated α] {p : α → Prop} :
     CountablyGenerated { x // p x } := .comap _
 
feat: add simple lemmas about MeasurableEquiv (#7509)
Diff
@@ -1314,6 +1314,9 @@ theorem symm_mk (e : α ≃ β) (h1 : Measurable e) (h2 : Measurable e.symm) :
 
 attribute [simps! apply toEquiv] trans refl
 
+@[simp]
+theorem symm_symm (e : α ≃ᵐ β) : e.symm.symm = e := rfl
+
 @[simp]
 theorem symm_refl (α : Type*) [MeasurableSpace α] : (refl α).symm = refl α :=
   rfl
@@ -1370,6 +1373,23 @@ theorem image_eq_preimage (e : α ≃ᵐ β) (s : Set α) : e '' s = e.symm ⁻
   e.toEquiv.image_eq_preimage s
 #align measurable_equiv.image_eq_preimage MeasurableEquiv.image_eq_preimage
 
+lemma preimage_symm (e : α ≃ᵐ β) (s : Set α) : e.symm ⁻¹' s = e '' s := (image_eq_preimage _ _).symm
+
+lemma image_symm (e : α ≃ᵐ β) (s : Set β) : e.symm '' s = e ⁻¹' s := by
+  rw [← symm_symm e, preimage_symm, symm_symm]
+
+lemma eq_image_iff_symm_image_eq (e : α ≃ᵐ β) (s : Set β) (t : Set α) :
+    s = e '' t ↔ e.symm '' s = t := by
+  rw [← coe_toEquiv, Equiv.eq_image_iff_symm_image_eq, coe_toEquiv_symm]
+
+@[simp]
+lemma image_preimage (e : α ≃ᵐ β) (s : Set β) : e '' (e ⁻¹' s) = s := by
+  rw [← coe_toEquiv, Equiv.image_preimage]
+
+@[simp]
+lemma preimage_image (e : α ≃ᵐ β) (s : Set α) : e ⁻¹' (e '' s) = s := by
+  rw [← coe_toEquiv, Equiv.preimage_image]
+
 @[simp]
 theorem measurableSet_preimage (e : α ≃ᵐ β) {s : Set β} :
     MeasurableSet (e ⁻¹' s) ↔ MeasurableSet s :=
feat: Sigma-algebra generated by a singleton (#2513)

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

Diff
@@ -7,13 +7,14 @@ import Mathlib.Algebra.IndicatorFunction
 import Mathlib.Data.Prod.TProd
 import Mathlib.GroupTheory.Coset
 import Mathlib.Logic.Equiv.Fin
+import Mathlib.Logic.Lemmas
 import Mathlib.MeasureTheory.MeasurableSpace.Defs
 import Mathlib.Order.Filter.SmallSets
 import Mathlib.Order.Filter.CountableSeparatingOn
 import Mathlib.Order.LiminfLimsup
 import Mathlib.Data.Set.UnionLift
 
-#align_import measure_theory.measurable_space from "leanprover-community/mathlib"@"c14c8fcde993801fca8946b0d80131a1a81d1520"
+#align_import measure_theory.measurable_space from "leanprover-community/mathlib"@"001ffdc42920050657fd45bd2b8bfbec8eaaeb29"
 
 /-!
 # Measurable spaces and measurable functions
@@ -84,6 +85,8 @@ protected def map (f : α → β) (m : MeasurableSpace α) : MeasurableSpace β
   measurableSet_iUnion f hf := by simpa only [preimage_iUnion] using m.measurableSet_iUnion _ hf
 #align measurable_space.map MeasurableSpace.map
 
+lemma map_def {s : Set β} : MeasurableSet[m.map f] s ↔ MeasurableSet[m] (f ⁻¹' s) := Iff.rfl
+
 @[simp]
 theorem map_id : m.map id = m :=
   MeasurableSpace.ext fun _ => Iff.rfl
@@ -184,6 +187,14 @@ theorem le_map_comap : m ≤ (m.comap g).map g :=
 
 end Functors
 
+@[simp] theorem map_const {m} (b : β) : MeasurableSpace.map (fun _a : α ↦ b) m = ⊤ :=
+  eq_top_iff.2 $ λ s _ ↦ by by_cases b ∈ s <;> simp [*, map_def] <;> rw [Set.preimage_id'] <;> simp
+#align measurable_space.map_const MeasurableSpace.map_const
+
+@[simp] theorem comap_const {m} (b : β) : MeasurableSpace.comap (fun _a : α => b) m = ⊥ :=
+  eq_bot_iff.2 <| by rintro _ ⟨s, -, rfl⟩; by_cases b ∈ s <;> simp [*]; exact measurableSet_empty _
+#align measurable_space.comap_const MeasurableSpace.comap_const
+
 theorem comap_generateFrom {f : α → β} {s : Set (Set β)} :
     (generateFrom s).comap f = generateFrom (preimage f '' s) :=
   le_antisymm
@@ -387,6 +398,8 @@ instance PUnit.instMeasurableSpace : MeasurableSpace PUnit := ⊤
 #align punit.measurable_space PUnit.instMeasurableSpace
 instance Bool.instMeasurableSpace : MeasurableSpace Bool := ⊤
 #align bool.measurable_space Bool.instMeasurableSpace
+instance Prop.instMeasurableSpace : MeasurableSpace Prop := ⊤
+#align Prop.measurable_space Prop.instMeasurableSpace
 instance Nat.instMeasurableSpace : MeasurableSpace ℕ := ⊤
 #align nat.measurable_space Nat.instMeasurableSpace
 instance Fin.instMeasurableSpace (n : ℕ) : MeasurableSpace (Fin n) := ⊤
@@ -401,6 +414,8 @@ instance PUnit.instMeasurableSingletonClass : MeasurableSingletonClass PUnit :=
 #align punit.measurable_singleton_class PUnit.instMeasurableSingletonClass
 instance Bool.instMeasurableSingletonClass : MeasurableSingletonClass Bool := ⟨fun _ => trivial⟩
 #align bool.measurable_singleton_class Bool.instMeasurableSingletonClass
+instance Prop.instMeasurableSingletonClass : MeasurableSingletonClass Prop := ⟨fun _ => trivial⟩
+#align Prop.measurable_singleton_class Prop.instMeasurableSingletonClass
 instance Nat.instMeasurableSingletonClass : MeasurableSingletonClass ℕ := ⟨fun _ => trivial⟩
 #align nat.measurable_singleton_class Nat.instMeasurableSingletonClass
 instance Fin.instMeasurableSingletonClass (n : ℕ) : MeasurableSingletonClass (Fin n) :=
@@ -451,6 +466,14 @@ theorem measurable_to_bool {f : α → Bool} (h : MeasurableSet (f ⁻¹' {true}
   exact h
 #align measurable_to_bool measurable_to_bool
 
+theorem measurable_to_prop {f : α → Prop} (h : MeasurableSet (f ⁻¹' {True})) : Measurable f := by
+  refine' measurable_to_countable' fun x => _
+  by_cases hx : x
+  · simpa [hx] using h
+  · simpa only [hx, ← preimage_compl, Prop.compl_singleton, not_true, preimage_singleton_false]
+      using h.compl
+#align measurable_to_prop measurable_to_prop
+
 theorem measurable_findGreatest' {p : α → ℕ → Prop} [∀ x, DecidablePred (p x)] {N : ℕ}
     (hN : ∀ k ≤ N, MeasurableSet { x | Nat.findGreatest (p x) N = k }) :
     Measurable fun x => Nat.findGreatest (p x) N :=
@@ -1066,8 +1089,40 @@ instance Sigma.instMeasurableSpace {α} {β : α → Type*} [m : ∀ a, Measurab
   ⨅ a, (m a).map (Sigma.mk a)
 #align sigma.measurable_space Sigma.instMeasurableSpace
 
+section prop
+variable [MeasurableSpace α] {p : α → Prop}
+
+@[simp] theorem measurableSet_setOf : MeasurableSet {a | p a} ↔ Measurable p :=
+  ⟨fun h ↦ measurable_to_prop <| by simpa only [preimage_singleton_true], fun h => by
+    simpa using h (measurableSet_singleton True)⟩
+#align measurable_set_set_of measurableSet_setOf
+
+@[simp] theorem measurable_mem : Measurable (· ∈ s) ↔ MeasurableSet s := measurableSet_setOf.symm
+#align measurable_mem measurable_mem
+
+alias ⟨_, Measurable.setOf⟩ := measurableSet_setOf
+#align measurable.set_of Measurable.setOf
+
+alias ⟨_, MeasurableSet.mem⟩ := measurable_mem
+#align measurable_set.mem MeasurableSet.mem
+
+end prop
 end Constructions
 
+namespace MeasurableSpace
+
+/-- The sigma-algebra generated by a single set `s` is `{∅, s, sᶜ, univ}`. -/
+@[simp] theorem generateFrom_singleton (s : Set α) :
+    generateFrom {s} = MeasurableSpace.comap (· ∈ s) ⊤ := by
+  classical
+  letI : MeasurableSpace α := generateFrom {s}
+  refine' le_antisymm (generateFrom_le fun t ht => ⟨{True}, trivial, by simp [ht.symm]⟩) _
+  rintro _ ⟨u, -, rfl⟩
+  exact (show MeasurableSet s from GenerateMeasurable.basic _ <| mem_singleton s).mem trivial
+#align measurable_space.generate_from_singleton MeasurableSpace.generateFrom_singleton
+
+end MeasurableSpace
+
 /-- A map `f : α → β` is called a *measurable embedding* if it is injective, measurable, and sends
 measurable sets to measurable sets. The latter assumption can be replaced with “`f` has measurable
 inverse `g : Set.range f → α`”, see `MeasurableEmbedding.measurable_rangeSplitting`,
@@ -1327,6 +1382,10 @@ theorem measurableSet_image (e : α ≃ᵐ β) {s : Set α} : MeasurableSet (e '
   by rw [image_eq_preimage, measurableSet_preimage]
 #align measurable_equiv.measurable_set_image MeasurableEquiv.measurableSet_image
 
+@[simp] theorem map_eq (e : α ≃ᵐ β) : MeasurableSpace.map e ‹_› = ‹_› :=
+  e.measurable.le_map.antisymm' fun _s ↦ e.measurableSet_preimage.1
+#align measurable_equiv.map_eq MeasurableEquiv.map_eq
+
 /-- A measurable equivalence is a measurable embedding. -/
 protected theorem measurableEmbedding (e : α ≃ᵐ β) : MeasurableEmbedding e where
   injective := e.injective
@@ -1551,12 +1610,46 @@ def sumCompl {s : Set α} [DecidablePred (· ∈ s)] (hs : MeasurableSet s) :
   measurable_invFun := Measurable.dite measurable_inl measurable_inr hs
 #align measurable_equiv.sum_compl MeasurableEquiv.sumCompl
 
+/-- Convert a measurable involutive function `f` to a measurable permutation with
+`toFun = invFun = f`. See also `Function.Involutive.toPerm`. -/
+@[simps toEquiv]
+def ofInvolutive (f : α → α) (hf : Involutive f) (hf' : Measurable f) : α ≃ᵐ α where
+  toEquiv := hf.toPerm
+  measurable_toFun := hf'
+  measurable_invFun := hf'
+#align measurable_equiv.of_involutive MeasurableEquiv.ofInvolutive
+
+@[simp] theorem ofInvolutive_apply (f : α → α) (hf : Involutive f) (hf' : Measurable f) (a : α) :
+    ofInvolutive f hf hf' a = f a := rfl
+#align measurable_equiv.of_involutive_apply MeasurableEquiv.ofInvolutive_apply
+
+@[simp] theorem ofInvolutive_symm (f : α → α) (hf : Involutive f) (hf' : Measurable f) :
+    (ofInvolutive f hf hf').symm = ofInvolutive f hf hf' := rfl
+#align measurable_equiv.of_involutive_symm MeasurableEquiv.ofInvolutive_symm
+
 end MeasurableEquiv
 
 namespace MeasurableEmbedding
 
 variable [MeasurableSpace α] [MeasurableSpace β] [MeasurableSpace γ] {f : α → β} {g : β → α}
 
+@[simp] theorem comap_eq (hf : MeasurableEmbedding f) : MeasurableSpace.comap f ‹_› = ‹_› :=
+  hf.measurable.comap_le.antisymm fun _s h ↦
+    ⟨_, hf.measurableSet_image' h, hf.injective.preimage_image _⟩
+#align measurable_embedding.comap_eq MeasurableEmbedding.comap_eq
+
+theorem iff_comap_eq :
+    MeasurableEmbedding f ↔
+      Injective f ∧ MeasurableSpace.comap f ‹_› = ‹_› ∧ MeasurableSet (range f) :=
+  ⟨fun hf ↦ ⟨hf.injective, hf.comap_eq, hf.measurableSet_range⟩, fun hf ↦
+    { injective := hf.1
+      measurable := by rw [← hf.2.1]; exact comap_measurable f
+      measurableSet_image' := by
+        rw [← hf.2.1]
+        rintro _ ⟨s, hs, rfl⟩
+        simpa only [image_preimage_eq_inter_range] using hs.inter hf.2.2 }⟩
+#align measurable_embedding.iff_comap_eq MeasurableEmbedding.iff_comap_eq
+
 /-- A set is equivalent to its image under a function `f` as measurable spaces,
   if `f` is a measurable embedding -/
 noncomputable def equivImage (s : Set α) (hf : MeasurableEmbedding f) : s ≃ᵐ f '' s where
@@ -1645,6 +1738,20 @@ noncomputable def schroederBernstein {f : α → β} {g : β → α} (hf : Measu
 
 end MeasurableEmbedding
 
+theorem MeasurableSpace.comap_compl {m' : MeasurableSpace β} [BooleanAlgebra β]
+    (h : Measurable (compl : β → β)) (f : α → β) :
+    MeasurableSpace.comap (fun a => (f a)ᶜ) inferInstance =
+      MeasurableSpace.comap f inferInstance := by
+  rw [←Function.comp_def, ←MeasurableSpace.comap_comp]
+  congr
+  exact (MeasurableEquiv.ofInvolutive _ compl_involutive h).measurableEmbedding.comap_eq
+#align measurable_space.comap_compl MeasurableSpace.comap_compl
+
+@[simp] theorem MeasurableSpace.comap_not (p : α → Prop) :
+    MeasurableSpace.comap (fun a ↦ ¬p a) inferInstance = MeasurableSpace.comap p inferInstance :=
+  MeasurableSpace.comap_compl (fun _ _ ↦ measurableSet_top) _
+#align measurable_space.comap_not MeasurableSpace.comap_not
+
 section CountablyGenerated
 
 namespace MeasurableSpace
chore: move some files to MeasureTheory/MeasurableSpace/ (#7045)
Diff
@@ -7,7 +7,7 @@ import Mathlib.Algebra.IndicatorFunction
 import Mathlib.Data.Prod.TProd
 import Mathlib.GroupTheory.Coset
 import Mathlib.Logic.Equiv.Fin
-import Mathlib.MeasureTheory.MeasurableSpaceDef
+import Mathlib.MeasureTheory.MeasurableSpace.Defs
 import Mathlib.Order.Filter.SmallSets
 import Mathlib.Order.Filter.CountableSeparatingOn
 import Mathlib.Order.LiminfLimsup
feat: Results about convergence of measures of sets assuming convergence of indicator functions. (#6225)

Adding results about convergence of measures of sets assuming convergence of indicator functions.

Co-authored-by: kkytola <“kalle.kytola@aalto.fi”> Co-authored-by: kkytola <39528102+kkytola@users.noreply.github.com>

Diff
@@ -344,6 +344,16 @@ theorem Measurable.indicator [Zero β] (hf : Measurable f) (hs : MeasurableSet s
   hf.piecewise hs measurable_const
 #align measurable.indicator Measurable.indicator
 
+/-- The measurability of a set `A` is equivalent to the measurability of the indicator function
+which takes a constant value `b ≠ 0` on a set `A` and `0` elsewhere. -/
+lemma measurable_indicator_const_iff [Zero β] [MeasurableSingletonClass β] (b : β) [NeZero b] :
+    Measurable (s.indicator (fun (_ : α) ↦ b)) ↔ MeasurableSet s := by
+  constructor <;> intro h
+  · convert h (MeasurableSet.singleton (0 : β)).compl
+    ext a
+    simp [NeZero.ne b]
+  · exact measurable_const.indicator h
+
 @[to_additive (attr := measurability)]
 theorem measurableSet_mulSupport [One β] [MeasurableSingletonClass β] (hf : Measurable f) :
     MeasurableSet (mulSupport f) :=
feat: patch for new alias command (#6172)
Diff
@@ -203,7 +203,7 @@ theorem measurable_iff_le_map {m₁ : MeasurableSpace α} {m₂ : MeasurableSpac
   Iff.rfl
 #align measurable_iff_le_map measurable_iff_le_map
 
-alias measurable_iff_le_map ↔ Measurable.le_map Measurable.of_le_map
+alias ⟨Measurable.le_map, Measurable.of_le_map⟩ := measurable_iff_le_map
 #align measurable.le_map Measurable.le_map
 #align measurable.of_le_map Measurable.of_le_map
 
@@ -212,7 +212,7 @@ theorem measurable_iff_comap_le {m₁ : MeasurableSpace α} {m₂ : MeasurableSp
   comap_le_iff_le_map.symm
 #align measurable_iff_comap_le measurable_iff_comap_le
 
-alias measurable_iff_comap_le ↔ Measurable.comap_le Measurable.of_comap_le
+alias ⟨Measurable.comap_le, Measurable.of_comap_le⟩ := measurable_iff_comap_le
 #align measurable.comap_le Measurable.comap_le
 #align measurable.of_comap_le Measurable.of_comap_le
 
@@ -569,7 +569,7 @@ theorem Measurable.subtype_coe {p : β → Prop} {f : α → Subtype p} (hf : Me
   measurable_subtype_coe.comp hf
 #align measurable.subtype_coe Measurable.subtype_coe
 
-alias Measurable.subtype_coe ← Measurable.subtype_val
+alias Measurable.subtype_val := Measurable.subtype_coe
 
 @[measurability]
 theorem Measurable.subtype_mk {p : β → Prop} {f : α → β} (hf : Measurable f) {h : ∀ x, p (f x)} :
@@ -1026,7 +1026,7 @@ theorem Measurable.sumMap {_ : MeasurableSpace γ} {_ : MeasurableSpace δ} {f :
     MeasurableSet (Sum.inl '' s : Set (α ⊕ β)) ↔ MeasurableSet s := by
   simp [measurableSet_sum_iff, Sum.inl_injective.preimage_image]
 
-alias measurableSet_inl_image ↔ _ MeasurableSet.inl_image
+alias ⟨_, MeasurableSet.inl_image⟩ := measurableSet_inl_image
 #align measurable_set.inl_image MeasurableSet.inl_image
 
 -- porting note: new
@@ -1034,7 +1034,7 @@ alias measurableSet_inl_image ↔ _ MeasurableSet.inl_image
     MeasurableSet (Sum.inr '' s : Set (α ⊕ β)) ↔ MeasurableSet s := by
   simp [measurableSet_sum_iff, Sum.inr_injective.preimage_image]
 
-alias measurableSet_inr_image ↔ _ MeasurableSet.inr_image
+alias ⟨_, MeasurableSet.inr_image⟩ := measurableSet_inr_image
 #align measurable_set_inr_image measurableSet_inr_image
 
 theorem measurableSet_range_inl [MeasurableSpace α] :
@@ -1746,8 +1746,8 @@ theorem principal_isMeasurablyGenerated_iff {s : Set α} :
   rwa [← this]
 #align filter.principal_is_measurably_generated_iff Filter.principal_isMeasurablyGenerated_iff
 
-alias principal_isMeasurablyGenerated_iff ↔
-  _ _root_.MeasurableSet.principal_isMeasurablyGenerated
+alias ⟨_, _root_.MeasurableSet.principal_isMeasurablyGenerated⟩ :=
+  principal_isMeasurablyGenerated_iff
 #align measurable_set.principal_is_measurably_generated MeasurableSet.principal_isMeasurablyGenerated
 
 instance iInf_isMeasurablyGenerated {f : ι → Filter α} [∀ i, IsMeasurablyGenerated (f i)] :
feat: MeasurableSpace (Fin n) (#6431)

This defines the instance MeasurableSpace (Fin n). The motivation is #6425, which defines Pmf.binomial, and thus a measure on Fin n.

Diff
@@ -379,6 +379,7 @@ instance Bool.instMeasurableSpace : MeasurableSpace Bool := ⊤
 #align bool.measurable_space Bool.instMeasurableSpace
 instance Nat.instMeasurableSpace : MeasurableSpace ℕ := ⊤
 #align nat.measurable_space Nat.instMeasurableSpace
+instance Fin.instMeasurableSpace (n : ℕ) : MeasurableSpace (Fin n) := ⊤
 instance Int.instMeasurableSpace : MeasurableSpace ℤ := ⊤
 #align int.measurable_space Int.instMeasurableSpace
 instance Rat.instMeasurableSpace : MeasurableSpace ℚ := ⊤
@@ -392,6 +393,8 @@ instance Bool.instMeasurableSingletonClass : MeasurableSingletonClass Bool := 
 #align bool.measurable_singleton_class Bool.instMeasurableSingletonClass
 instance Nat.instMeasurableSingletonClass : MeasurableSingletonClass ℕ := ⟨fun _ => trivial⟩
 #align nat.measurable_singleton_class Nat.instMeasurableSingletonClass
+instance Fin.instMeasurableSingletonClass (n : ℕ) : MeasurableSingletonClass (Fin n) :=
+  ⟨fun _ => trivial⟩
 instance Int.instMeasurableSingletonClass : MeasurableSingletonClass ℤ := ⟨fun _ => trivial⟩
 #align int.measurable_singleton_class Int.instMeasurableSingletonClass
 instance Rat.instMeasurableSingletonClass : MeasurableSingletonClass ℚ := ⟨fun _ => trivial⟩
feat(Probability/Kernel/Condexp): some properties of condexpKernel (#6109)

condexpKernel is a Markov kernel, is strongly measurable and is a.e. equal to the conditional expectation.

Co-authored-by: RemyDegenne <Remydegenne@gmail.com>

Diff
@@ -225,6 +225,10 @@ theorem Measurable.mono {ma ma' : MeasurableSpace α} {mb mb' : MeasurableSpace
   fun _t ht => ha _ <| hf <| hb _ ht
 #align measurable.mono Measurable.mono
 
+theorem measurable_id'' {m mα : MeasurableSpace α} (hm : m ≤ mα) : @Measurable α α mα m id :=
+  measurable_id.mono le_rfl hm
+#align probability_theory.measurable_id'' measurable_id''
+
 -- porting note: todo: add TC `DiscreteMeasurable` + instances
 
 @[measurability]
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
@@ -67,7 +67,7 @@ open Set Encodable Function Equiv Filter MeasureTheory
 
 universe uι
 
-variable {α β γ δ δ' : Type _} {ι : Sort uι} {s t u : Set α}
+variable {α β γ δ δ' : Type*} {ι : Sort uι} {s t u : Set α}
 
 namespace MeasurableSpace
 
@@ -827,7 +827,7 @@ end Prod
 
 section Pi
 
-variable {π : δ → Type _} [MeasurableSpace α]
+variable {π : δ → Type*} [MeasurableSpace α]
 
 instance MeasurableSpace.pi [m : ∀ a, MeasurableSpace (π a)] : MeasurableSpace (∀ a, π a) :=
   ⨆ a, (m a).comap fun b => b a
@@ -930,7 +930,7 @@ theorem measurable_piEquivPiSubtypeProd (p : δ → Prop) [DecidablePred p] :
 
 end Pi
 
-instance TProd.instMeasurableSpace (π : δ → Type _) [∀ x, MeasurableSpace (π x)] :
+instance TProd.instMeasurableSpace (π : δ → Type*) [∀ x, MeasurableSpace (π x)] :
     ∀ l : List δ, MeasurableSpace (List.TProd π l)
   | [] => PUnit.instMeasurableSpace
   | _::is => @Prod.instMeasurableSpace _ _ _ (TProd.instMeasurableSpace π is)
@@ -940,7 +940,7 @@ section TProd
 
 open List
 
-variable {π : δ → Type _} [∀ x, MeasurableSpace (π x)]
+variable {π : δ → Type*} [∀ x, MeasurableSpace (π x)]
 
 theorem measurable_tProd_mk (l : List δ) : Measurable (@TProd.mk δ π l) := by
   induction' l with i l ih
@@ -1044,7 +1044,7 @@ theorem measurableSet_range_inr [MeasurableSpace α] :
 
 end Sum
 
-instance Sigma.instMeasurableSpace {α} {β : α → Type _} [m : ∀ a, MeasurableSpace (β a)] :
+instance Sigma.instMeasurableSpace {α} {β : α → Type*} [m : ∀ a, MeasurableSpace (β a)] :
     MeasurableSpace (Sigma β) :=
   ⨅ a, (m a).map (Sigma.mk a)
 #align sigma.measurable_space Sigma.instMeasurableSpace
@@ -1062,7 +1062,7 @@ range and the range is a measurable set. One implication is formalized as
 `MeasurableEmbedding.equivRange`; the other one follows from
 `MeasurableEquiv.measurableEmbedding`, `MeasurableEmbedding.subtype_coe`, and
 `MeasurableEmbedding.comp`. -/
-structure MeasurableEmbedding {α β : Type _} [MeasurableSpace α] [MeasurableSpace β]
+structure MeasurableEmbedding {α β : Type*} [MeasurableSpace α] [MeasurableSpace β]
     (f : α → β) : Prop where
   /-- A measurable embedding is injective. -/
   protected injective : Injective f
@@ -1150,7 +1150,7 @@ theorem MeasurableSet.exists_measurable_proj {_ : MeasurableSpace α} {s : Set 
 
 /-- Equivalences between measurable spaces. Main application is the simplification of measurability
 statements along measurable equivalences. -/
-structure MeasurableEquiv (α β : Type _) [MeasurableSpace α] [MeasurableSpace β] extends α ≃ β where
+structure MeasurableEquiv (α β : Type*) [MeasurableSpace α] [MeasurableSpace β] extends α ≃ β where
   /-- The forward function of a measurable equivalence is measurable. -/
   measurable_toFun : Measurable toEquiv
   /-- The inverse function of a measurable equivalence is measurable. -/
@@ -1193,7 +1193,7 @@ theorem coe_mk (e : α ≃ β) (h1 : Measurable e) (h2 : Measurable e.symm) :
 #align measurable_equiv.coe_mk MeasurableEquiv.coe_mk
 
 /-- Any measurable space is equivalent to itself. -/
-def refl (α : Type _) [MeasurableSpace α] : α ≃ᵐ α where
+def refl (α : Type*) [MeasurableSpace α] : α ≃ᵐ α where
   toEquiv := Equiv.refl α
   measurable_toFun := measurable_id
   measurable_invFun := measurable_id
@@ -1243,7 +1243,7 @@ theorem symm_mk (e : α ≃ β) (h1 : Measurable e) (h2 : Measurable e.symm) :
 attribute [simps! apply toEquiv] trans refl
 
 @[simp]
-theorem symm_refl (α : Type _) [MeasurableSpace α] : (refl α).symm = refl α :=
+theorem symm_refl (α : Type*) [MeasurableSpace α] : (refl α).symm = refl α :=
   rfl
 #align measurable_equiv.symm_refl MeasurableEquiv.symm_refl
 
@@ -1341,7 +1341,7 @@ protected theorem measurable_comp_iff {f : β → γ} (e : α ≃ᵐ β) :
 #align measurable_equiv.measurable_comp_iff MeasurableEquiv.measurable_comp_iff
 
 /-- Any two types with unique elements are measurably equivalent. -/
-def ofUniqueOfUnique (α β : Type _) [MeasurableSpace α] [MeasurableSpace β] [Unique α] [Unique β] :
+def ofUniqueOfUnique (α β : Type*) [MeasurableSpace α] [MeasurableSpace β] [Unique α] [Unique β] :
     α ≃ᵐ β where
   toEquiv := equivOfUnique α β
   measurable_toFun := Subsingleton.measurable
@@ -1390,7 +1390,7 @@ def Set.prod (s : Set α) (t : Set β) : ↥(s ×ˢ t) ≃ᵐ s × t where
 #align measurable_equiv.set.prod MeasurableEquiv.Set.prod
 
 /-- `univ α ≃ α` as measurable spaces. -/
-def Set.univ (α : Type _) [MeasurableSpace α] : (univ : Set α) ≃ᵐ α where
+def Set.univ (α : Type*) [MeasurableSpace α] : (univ : Set α) ≃ᵐ α where
   toEquiv := Equiv.Set.univ α
   measurable_toFun := measurable_id.subtype_val
   measurable_invFun := measurable_id.subtype_mk
@@ -1456,7 +1456,7 @@ def sumProdSum (α β γ δ) [MeasurableSpace α] [MeasurableSpace β] [Measurab
   (sumProdDistrib _ _ _).trans <| sumCongr (prodSumDistrib _ _ _) (prodSumDistrib _ _ _)
 #align measurable_equiv.sum_prod_sum MeasurableEquiv.sumProdSum
 
-variable {π π' : δ' → Type _} [∀ x, MeasurableSpace (π x)] [∀ x, MeasurableSpace (π' x)]
+variable {π π' : δ' → Type*} [∀ x, MeasurableSpace (π x)] [∀ x, MeasurableSpace (π' x)]
 
 /-- A family of measurable equivalences `Π a, β₁ a ≃ᵐ β₂ a` generates a measurable equivalence
   between `Π a, β₁ a` and `Π a, β₂ a`. -/
@@ -1479,7 +1479,7 @@ def piMeasurableEquivTProd [DecidableEq δ'] {l : List δ'} (hnd : l.Nodup) (h :
 
 /-- If `α` has a unique term, then the type of function `α → β` is measurably equivalent to `β`. -/
 @[simps! (config := { fullyApplied := false })]
-def funUnique (α β : Type _) [Unique α] [MeasurableSpace β] : (α → β) ≃ᵐ β where
+def funUnique (α β : Type*) [Unique α] [MeasurableSpace β] : (α → β) ≃ᵐ β where
   toEquiv := Equiv.funUnique α β
   measurable_toFun := measurable_pi_apply _
   measurable_invFun := measurable_pi_iff.2 fun _ => measurable_id
@@ -1487,7 +1487,7 @@ def funUnique (α β : Type _) [Unique α] [MeasurableSpace β] : (α → β) 
 
 /-- The space `Π i : Fin 2, α i` is measurably equivalent to `α 0 × α 1`. -/
 @[simps! (config := { fullyApplied := false })]
-def piFinTwo (α : Fin 2 → Type _) [∀ i, MeasurableSpace (α i)] : (∀ i, α i) ≃ᵐ α 0 × α 1 where
+def piFinTwo (α : Fin 2 → Type*) [∀ i, MeasurableSpace (α i)] : (∀ i, α i) ≃ᵐ α 0 × α 1 where
   toEquiv := piFinTwoEquiv α
   measurable_toFun := Measurable.prod (measurable_pi_apply _) (measurable_pi_apply _)
   measurable_invFun := measurable_pi_iff.2 <| Fin.forall_fin_two.2 ⟨measurable_fst, measurable_snd⟩
@@ -1502,7 +1502,7 @@ def finTwoArrow : (Fin 2 → α) ≃ᵐ α × α :=
 /-- Measurable equivalence between `Π j : Fin (n + 1), α j` and
 `α i × Π j : Fin n, α (Fin.succAbove i j)`. -/
 @[simps! (config := { fullyApplied := false })]
-def piFinSuccAboveEquiv {n : ℕ} (α : Fin (n + 1) → Type _) [∀ i, MeasurableSpace (α i)]
+def piFinSuccAboveEquiv {n : ℕ} (α : Fin (n + 1) → Type*) [∀ i, MeasurableSpace (α i)]
     (i : Fin (n + 1)) : (∀ j, α j) ≃ᵐ α i × ∀ j, α (i.succAbove j) where
   toEquiv := .piFinSuccAboveEquiv α i
   measurable_toFun := (measurable_pi_apply i).prod_mk <| measurable_pi_iff.2 fun j =>
feat: let convert infer instances from goal and allow tc failure (#6041)

Changes the way the term is elaborated so that typeclass inference is tolerated and so that instances are allowed to come from the goal without re-inferring them.

Diff
@@ -271,7 +271,7 @@ for functions between empty types. -/
 theorem measurable_const' {f : β → α} (hf : ∀ x y, f x = f y) : Measurable f := by
   nontriviality β
   inhabit β
-  convert @measurable_const α β ‹_› ‹_› (f default) using 2
+  convert @measurable_const α β _ _ (f default) using 2
   apply hf
 #align measurable_const' measurable_const'
 
chore: fix grammar mistakes (#6121)
Diff
@@ -1635,7 +1635,7 @@ namespace MeasurableSpace
 variable (α)
 
 /-- We say a measurable space is countably generated
-if can be generated by a countable set of sets.-/
+if it can be generated by a countable set of sets. -/
 class CountablyGenerated [m : MeasurableSpace α] : Prop where
   isCountablyGenerated : ∃ b : Set (Set α), b.Countable ∧ m = generateFrom b
 #align measurable_space.countably_generated MeasurableSpace.CountablyGenerated
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,11 +2,6 @@
 Copyright (c) 2017 Johannes Hölzl. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Mario Carneiro
-
-! This file was ported from Lean 3 source module measure_theory.measurable_space
-! leanprover-community/mathlib commit c14c8fcde993801fca8946b0d80131a1a81d1520
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Algebra.IndicatorFunction
 import Mathlib.Data.Prod.TProd
@@ -18,6 +13,8 @@ import Mathlib.Order.Filter.CountableSeparatingOn
 import Mathlib.Order.LiminfLimsup
 import Mathlib.Data.Set.UnionLift
 
+#align_import measure_theory.measurable_space from "leanprover-community/mathlib"@"c14c8fcde993801fca8946b0d80131a1a81d1520"
+
 /-!
 # Measurable spaces and measurable functions
 
chore: cleanup whitespace (#5988)

Grepping for [^ .:{-] [^ :] and reviewing the results. Once I started I couldn't stop. :-)

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

Diff
@@ -1462,7 +1462,7 @@ def sumProdSum (α β γ δ) [MeasurableSpace α] [MeasurableSpace β] [Measurab
 variable {π π' : δ' → Type _} [∀ x, MeasurableSpace (π x)] [∀ x, MeasurableSpace (π' x)]
 
 /-- A family of measurable equivalences `Π a, β₁ a ≃ᵐ β₂ a` generates a measurable equivalence
-  between  `Π a, β₁ a` and `Π a, β₂ a`. -/
+  between `Π a, β₁ a` and `Π a, β₂ a`. -/
 def piCongrRight (e : ∀ a, π a ≃ᵐ π' a) : (∀ a, π a) ≃ᵐ ∀ a, π' a where
   toEquiv := .piCongrRight fun a => (e a).toEquiv
   measurable_toFun :=
feat: Lebesgue average (#5810)

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

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

Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Mario Carneiro
 
 ! This file was ported from Lean 3 source module measure_theory.measurable_space
-! leanprover-community/mathlib commit 3905fa80e62c0898131285baab35559fbc4e5cda
+! leanprover-community/mathlib commit c14c8fcde993801fca8946b0d80131a1a81d1520
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -255,7 +255,7 @@ theorem measurable_of_subsingleton_codomain [Subsingleton β] (f : α → β) :
   fun s _ => Subsingleton.set_cases MeasurableSet.empty MeasurableSet.univ s
 #align measurable_of_subsingleton_codomain measurable_of_subsingleton_codomain
 
-@[to_additive]
+@[measurability, to_additive]
 theorem measurable_one [One α] : Measurable (1 : β → α) :=
   @measurable_const _ _ _ _ 1
 #align measurable_one measurable_one
feat: define HasCountableSeparatingOn (#5675)
  • Define a typeclass saying that a countable family of sets satisfying a given predicate separate points of a given set.
  • Provide instances for open and closed sets in a T₀ space with second countable topology and for measurable sets in case of a countably generated σ-algebra.

See Zulip for motivation.

Diff
@@ -14,6 +14,7 @@ import Mathlib.GroupTheory.Coset
 import Mathlib.Logic.Equiv.Fin
 import Mathlib.MeasureTheory.MeasurableSpaceDef
 import Mathlib.Order.Filter.SmallSets
+import Mathlib.Order.Filter.CountableSeparatingOn
 import Mathlib.Order.LiminfLimsup
 import Mathlib.Data.Set.UnionLift
 
@@ -1664,42 +1665,29 @@ instance [MeasurableSpace α] [CountablyGenerated α] [MeasurableSpace β] [Coun
     CountablyGenerated (α × β) :=
   .sup (.comap Prod.fst) (.comap Prod.snd)
 
+instance [MeasurableSpace α] {s : Set α} [h : CountablyGenerated s] [MeasurableSingletonClass s] :
+    HasCountableSeparatingOn α MeasurableSet s := by
+  suffices HasCountableSeparatingOn s MeasurableSet univ from this.of_subtype fun _ ↦ id
+  rcases h.1 with ⟨b, hbc, hb⟩
+  refine ⟨⟨b, hbc, fun t ht ↦ hb.symm ▸ .basic t ht, fun x _ y _ h ↦ ?_⟩⟩
+  rw [← forall_generateFrom_mem_iff_mem_iff, ← hb] at h
+  simpa using h {y}
+
 variable (α)
 
 open Classical
 
-/-- If a measurable space is countably generated, it admits a measurable injection
-into the Cantor space `ℕ → Bool` (equipped with the product sigma algebra). -/
+/-- If a measurable space is countably generated and separates points, it admits a measurable
+injection into the Cantor space `ℕ → Bool` (equipped with the product sigma algebra). -/
 theorem measurable_injection_nat_bool_of_countablyGenerated [MeasurableSpace α]
-    [h : CountablyGenerated α] [MeasurableSingletonClass α] :
+    [HasCountableSeparatingOn α MeasurableSet univ] :
     ∃ f : α → ℕ → Bool, Measurable f ∧ Function.Injective f := by
-  obtain ⟨b, bct, hb⟩ := h.isCountablyGenerated
-  obtain ⟨e, he⟩ := Set.Countable.exists_eq_range (bct.insert ∅) (insert_nonempty _ _)
-  rw [← generateFrom_insert_empty, he] at hb
-  refine' ⟨fun x n => x ∈ e n, _, _⟩
+  rcases exists_seq_separating α MeasurableSet.empty univ with ⟨e, hem, he⟩
+  refine ⟨(· ∈ e ·), ?_, ?_⟩
   · rw [measurable_pi_iff]
-    intro n
-    apply measurable_to_bool
-    simp only [preimage, mem_singleton_iff, Bool.decide_iff]
-    rw [hb]
-    apply measurableSet_generateFrom
-    exact ⟨n, rfl⟩
-  intro x y hxy
-  have : ∀ s : Set α, MeasurableSet s → (x ∈ s ↔ y ∈ s) := fun s => by
-    rw [hb]
-    apply generateFrom_induction
-    · rintro - ⟨n, rfl⟩
-      rw [← decide_eq_decide]
-      rw [funext_iff] at hxy
-      exact hxy n
-    · tauto
-    · intro t
-      tauto
-    intro t ht
-    simp_rw [mem_iUnion, ht]
-  specialize this {y} measurableSet_eq
-  simp only [mem_singleton, iff_true_iff] at this
-  exact this
+    refine fun n ↦ measurable_to_bool ?_
+    simpa only [preimage, mem_singleton_iff, Bool.decide_iff, setOf_mem_eq] using hem n
+  · exact fun x y h ↦ he x trivial y trivial fun n ↦ decide_eq_decide.1 <| congr_fun h _
 #align measurable_space.measurable_injection_nat_bool_of_countably_generated MeasurableSpace.measurable_injection_nat_bool_of_countablyGenerated
 
 end MeasurableSpace
chore: fix focusing dots (#5708)

This PR is the result of running

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

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

Diff
@@ -1677,7 +1677,7 @@ theorem measurable_injection_nat_bool_of_countablyGenerated [MeasurableSpace α]
   obtain ⟨e, he⟩ := Set.Countable.exists_eq_range (bct.insert ∅) (insert_nonempty _ _)
   rw [← generateFrom_insert_empty, he] at hb
   refine' ⟨fun x n => x ∈ e n, _, _⟩
-  . rw [measurable_pi_iff]
+  · rw [measurable_pi_iff]
     intro n
     apply measurable_to_bool
     simp only [preimage, mem_singleton_iff, Bool.decide_iff]
fix: precedences of ⨆⋃⋂⨅ (#5614)
Diff
@@ -784,7 +784,7 @@ defined as `f i ⟨x, hx⟩` for `hx : x ∈ t i`, is measurable. -/
 theorem measurable_liftCover [Countable ι] (t : ι → Set α) (htm : ∀ i, MeasurableSet (t i))
     (f : ∀ i, t i → β) (hfm : ∀ i, Measurable (f i))
     (hf : ∀ (i j) (x : α) (hxi : x ∈ t i) (hxj : x ∈ t j), f i ⟨x, hxi⟩ = f j ⟨x, hxj⟩)
-    (htU : (⋃ i, t i) = univ) :
+    (htU : ⋃ i, t i = univ) :
     Measurable (liftCover t f hf htU) := fun s hs => by
   rw [preimage_liftCover]
   exact .iUnion fun i => .subtype_image (htm i) <| hfm i hs
@@ -1779,7 +1779,7 @@ end Filter
   a needed condition to show that the product of two collections generate the product sigma algebra,
   see `generateFrom_prod_eq`. -/
 def IsCountablySpanning (C : Set (Set α)) : Prop :=
-  ∃ s : ℕ → Set α, (∀ n, s n ∈ C) ∧ (⋃ n, s n) = univ
+  ∃ s : ℕ → Set α, (∀ n, s n ∈ C) ∧ ⋃ n, s n = univ
 #align is_countably_spanning IsCountablySpanning
 
 theorem isCountablySpanning_measurableSet [MeasurableSpace α] :
fix: change compl precedence (#5586)

Co-authored-by: Yury G. Kudryashov <urkud@urkud.name>

Diff
@@ -603,7 +603,7 @@ theorem measurable_of_measurable_union_cover {f : α → β} (s t : Set α) (hs
 
 theorem measurable_of_restrict_of_restrict_compl {f : α → β} {s : Set α} (hs : MeasurableSet s)
     (h₁ : Measurable (s.restrict f)) (h₂ : Measurable (sᶜ.restrict f)) : Measurable f :=
-  measurable_of_measurable_union_cover s (sᶜ) hs hs.compl (union_compl_self s).ge h₁ h₂
+  measurable_of_measurable_union_cover s sᶜ hs hs.compl (union_compl_self s).ge h₁ h₂
 #align measurable_of_restrict_of_restrict_compl measurable_of_restrict_of_restrict_compl
 
 theorem Measurable.dite [∀ x, Decidable (x ∈ s)] {f : s → β} (hf : Measurable f)
@@ -1843,7 +1843,7 @@ instance Subtype.instHasCompl : HasCompl (Subtype (MeasurableSet : Set α → Pr
 #align measurable_set.subtype.has_compl MeasurableSet.Subtype.instHasCompl
 
 @[simp]
-theorem coe_compl (s : Subtype (MeasurableSet : Set α → Prop)) : ↑(sᶜ) = (sᶜ : Set α) :=
+theorem coe_compl (s : Subtype (MeasurableSet : Set α → Prop)) : ↑sᶜ = (sᶜ : Set α) :=
   rfl
 #align measurable_set.coe_compl MeasurableSet.coe_compl
 
fix precedence of Nat.iterate (#5589)
Diff
@@ -301,7 +301,7 @@ end TypeclassMeasurableSpace
 variable {m : MeasurableSpace α}
 
 @[measurability]
-theorem Measurable.iterate {f : α → α} (hf : Measurable f) : ∀ n, Measurable (f^[n])
+theorem Measurable.iterate {f : α → α} (hf : Measurable f) : ∀ n, Measurable f^[n]
   | 0 => measurable_id
   | n + 1 => (Measurable.iterate hf n).comp hf
 #align measurable.iterate Measurable.iterate
@@ -1600,7 +1600,7 @@ noncomputable def schroederBernstein {f : α → β} {g : β → α} (hf : Measu
     exact (hg.equivImage _).symm
   have Fmono : ∀ {A B}, A ⊆ B → F A ⊆ F B := fun h =>
     compl_subset_compl.mpr <| Set.image_subset _ <| compl_subset_compl.mpr <| Set.image_subset _ h
-  let X : ℕ → Set α := fun n => (F^[n]) univ
+  let X : ℕ → Set α := fun n => F^[n] univ
   refine' ⟨iInter X, _, _⟩
   · apply MeasurableSet.iInter
     intro n
feat: add instances for MeasurableSpace.CountablyGenerated (#5216)
Diff
@@ -1639,9 +1639,33 @@ variable (α)
 /-- We say a measurable space is countably generated
 if can be generated by a countable set of sets.-/
 class CountablyGenerated [m : MeasurableSpace α] : Prop where
-  IsCountablyGenerated : ∃ b : Set (Set α), b.Countable ∧ m = generateFrom b
+  isCountablyGenerated : ∃ b : Set (Set α), b.Countable ∧ m = generateFrom b
 #align measurable_space.countably_generated MeasurableSpace.CountablyGenerated
 
+variable {α}
+
+theorem CountablyGenerated.comap [m : MeasurableSpace β] [h : CountablyGenerated β] (f : α → β) :
+    @CountablyGenerated α (.comap f m) := by
+  rcases h with ⟨⟨b, hbc, rfl⟩⟩
+  rw [comap_generateFrom]
+  letI := generateFrom (preimage f '' b)
+  exact ⟨_, hbc.image _, rfl⟩
+
+theorem CountablyGenerated.sup {m₁ m₂ : MeasurableSpace β} (h₁ : @CountablyGenerated β m₁)
+    (h₂ : @CountablyGenerated β m₂) : @CountablyGenerated β (m₁ ⊔ m₂) := by
+  rcases h₁ with ⟨⟨b₁, hb₁c, rfl⟩⟩
+  rcases h₂ with ⟨⟨b₂, hb₂c, rfl⟩⟩
+  exact @mk _ (_ ⊔ _) ⟨_, hb₁c.union hb₂c, generateFrom_sup_generateFrom⟩
+
+instance [MeasurableSpace α] [CountablyGenerated α] {p : α → Prop} :
+    CountablyGenerated { x // p x } := .comap _
+
+instance [MeasurableSpace α] [CountablyGenerated α] [MeasurableSpace β] [CountablyGenerated β] :
+    CountablyGenerated (α × β) :=
+  .sup (.comap Prod.fst) (.comap Prod.snd)
+
+variable (α)
+
 open Classical
 
 /-- If a measurable space is countably generated, it admits a measurable injection
@@ -1649,7 +1673,7 @@ into the Cantor space `ℕ → Bool` (equipped with the product sigma algebra).
 theorem measurable_injection_nat_bool_of_countablyGenerated [MeasurableSpace α]
     [h : CountablyGenerated α] [MeasurableSingletonClass α] :
     ∃ f : α → ℕ → Bool, Measurable f ∧ Function.Injective f := by
-  obtain ⟨b, bct, hb⟩ := h.IsCountablyGenerated
+  obtain ⟨b, bct, hb⟩ := h.isCountablyGenerated
   obtain ⟨e, he⟩ := Set.Countable.exists_eq_range (bct.insert ∅) (insert_nonempty _ _)
   rw [← generateFrom_insert_empty, he] at hb
   refine' ⟨fun x n => x ∈ e n, _, _⟩
feat(MeasureTheory): aesop rules for strong measurability + measurability? tactic (#5427)

This PR adds aesop tags to a few lemmas pertaining to strong measurability, allowing to prove e.g. StronglyMeasurable Real.log using the measurability tactic.

It also implements measurability? via aesop?.

Co-authored-by: Frédéric Dupuis <31101893+dupuisf@users.noreply.github.com>

Diff
@@ -842,18 +842,18 @@ theorem measurable_pi_iff {g : α → ∀ a, π a} : Measurable g ↔ ∀ a, Mea
     MeasurableSpace.comap_comp, Function.comp, iSup_le_iff]
 #align measurable_pi_iff measurable_pi_iff
 
-@[measurability]
+@[aesop safe 100 apply (rule_sets [Measurable])]
 theorem measurable_pi_apply (a : δ) : Measurable fun f : ∀ a, π a => f a :=
   measurable_pi_iff.1 measurable_id a
 #align measurable_pi_apply measurable_pi_apply
 
-@[measurability]
+@[aesop safe 100 apply (rule_sets [Measurable])]
 theorem Measurable.eval {a : δ} {g : α → ∀ a, π a} (hg : Measurable g) :
     Measurable fun x => g x a :=
   (measurable_pi_apply a).comp hg
 #align measurable.eval Measurable.eval
 
-@[measurability]
+@[aesop safe 100 apply (rule_sets [Measurable])]
 theorem measurable_pi_lambda (f : α → ∀ a, π a) (hf : ∀ a, Measurable fun c => f c a) :
     Measurable f :=
   measurable_pi_iff.mpr hf
feat: add compile_inductive% and compile_def% commands (#4097)

Add a #compile inductive command to compile the recursors of an inductive type, which works by creating a recursive definition and using @[csimp].

Co-authored-by: Parth Shastri <31370288+cppio@users.noreply.github.com> Co-authored-by: Mario Carneiro <di.gama@gmail.com>

Diff
@@ -1790,8 +1790,7 @@ theorem coe_empty : ↑(∅ : Subtype (MeasurableSet : Set α → Prop)) = (∅
   rfl
 #align measurable_set.coe_empty MeasurableSet.coe_empty
 
--- porting note: why do these instances have to be noncomputable?
-noncomputable instance Subtype.instInsert [MeasurableSingletonClass α] :
+instance Subtype.instInsert [MeasurableSingletonClass α] :
     Insert α (Subtype (MeasurableSet : Set α → Prop)) :=
   ⟨fun a s => ⟨insert a (s : Set α), s.prop.insert a⟩⟩
 #align measurable_set.subtype.has_insert MeasurableSet.Subtype.instInsert
@@ -1803,7 +1802,7 @@ theorem coe_insert [MeasurableSingletonClass α] (a : α)
   rfl
 #align measurable_set.coe_insert MeasurableSet.coe_insert
 
-noncomputable instance Subtype.instSingleton [MeasurableSingletonClass α] :
+instance Subtype.instSingleton [MeasurableSingletonClass α] :
     Singleton α (Subtype (MeasurableSet : Set α → Prop)) :=
   ⟨fun a => ⟨{a}, .singleton _⟩⟩
 
@@ -1815,7 +1814,7 @@ instance Subtype.instIsLawfulSingleton [MeasurableSingletonClass α] :
     IsLawfulSingleton α (Subtype (MeasurableSet : Set α → Prop)) :=
   ⟨fun _ => Subtype.eq <| insert_emptyc_eq _⟩
 
-noncomputable instance Subtype.instHasCompl : HasCompl (Subtype (MeasurableSet : Set α → Prop)) :=
+instance Subtype.instHasCompl : HasCompl (Subtype (MeasurableSet : Set α → Prop)) :=
   ⟨fun x => ⟨xᶜ, x.prop.compl⟩⟩
 #align measurable_set.subtype.has_compl MeasurableSet.Subtype.instHasCompl
 
@@ -1824,7 +1823,7 @@ theorem coe_compl (s : Subtype (MeasurableSet : Set α → Prop)) : ↑(sᶜ) =
   rfl
 #align measurable_set.coe_compl MeasurableSet.coe_compl
 
-noncomputable instance Subtype.instUnion : Union (Subtype (MeasurableSet : Set α → Prop)) :=
+instance Subtype.instUnion : Union (Subtype (MeasurableSet : Set α → Prop)) :=
   ⟨fun x y => ⟨(x : Set α) ∪ y, x.prop.union y.prop⟩⟩
 #align measurable_set.subtype.has_union MeasurableSet.Subtype.instUnion
 
@@ -1833,14 +1832,14 @@ theorem coe_union (s t : Subtype (MeasurableSet : Set α → Prop)) : ↑(s ∪
   rfl
 #align measurable_set.coe_union MeasurableSet.coe_union
 
-noncomputable instance Subtype.instSup : Sup (Subtype (MeasurableSet : Set α → Prop)) :=
+instance Subtype.instSup : Sup (Subtype (MeasurableSet : Set α → Prop)) :=
   ⟨fun x y => x ∪ y⟩
 
 -- porting note: new lemma
 @[simp]
 protected theorem sup_eq_union (s t : {s : Set α // MeasurableSet s}) : s ⊔ t = s ∪ t := rfl
 
-noncomputable instance Subtype.instInter : Inter (Subtype (MeasurableSet : Set α → Prop)) :=
+instance Subtype.instInter : Inter (Subtype (MeasurableSet : Set α → Prop)) :=
   ⟨fun x y => ⟨x ∩ y, x.prop.inter y.prop⟩⟩
 #align measurable_set.subtype.has_inter MeasurableSet.Subtype.instInter
 
@@ -1849,14 +1848,14 @@ theorem coe_inter (s t : Subtype (MeasurableSet : Set α → Prop)) : ↑(s ∩
   rfl
 #align measurable_set.coe_inter MeasurableSet.coe_inter
 
-noncomputable instance Subtype.instInf : Inf (Subtype (MeasurableSet : Set α → Prop)) :=
+instance Subtype.instInf : Inf (Subtype (MeasurableSet : Set α → Prop)) :=
   ⟨fun x y => x ∩ y⟩
 
 -- porting note: new lemma
 @[simp]
 protected theorem inf_eq_inter (s t : {s : Set α // MeasurableSet s}) : s ⊓ t = s ∩ t := rfl
 
-noncomputable instance Subtype.instSDiff : SDiff (Subtype (MeasurableSet : Set α → Prop)) :=
+instance Subtype.instSDiff : SDiff (Subtype (MeasurableSet : Set α → Prop)) :=
   ⟨fun x y => ⟨x \ y, x.prop.diff y.prop⟩⟩
 #align measurable_set.subtype.has_sdiff MeasurableSet.Subtype.instSDiff
 
@@ -1882,7 +1881,7 @@ theorem coe_top : ↑(⊤ : Subtype (MeasurableSet : Set α → Prop)) = (⊤ :
   rfl
 #align measurable_set.coe_top MeasurableSet.coe_top
 
-noncomputable instance Subtype.instBooleanAlgebra :
+instance Subtype.instBooleanAlgebra :
     BooleanAlgebra (Subtype (MeasurableSet : Set α → Prop)) :=
   Subtype.coe_injective.booleanAlgebra _ (fun _ _ => rfl) (fun _ _ => rfl) rfl rfl (fun _ => rfl)
     fun _ _ => rfl
fix: ι of iInf_isMeasurablyGenerated becomes Prop (#4038)

ι of iInf_isMeasurablyGenerated was Sort _ in Lean 3, but it's Prop in Lean 4. This PR fixes this issue.

Co-authored-by: ChrisHughes24 <chrishughes24@gmail.com>

Diff
@@ -67,7 +67,9 @@ measurable space, σ-algebra, measurable function, measurable equivalence, dynki
 
 open Set Encodable Function Equiv Filter MeasureTheory
 
-variable {α β γ δ δ' : Type _} {ι : Sort _} {s t u : Set α}
+universe uι
+
+variable {α β γ δ δ' : Type _} {ι : Sort uι} {s t u : Set α}
 
 namespace MeasurableSpace
 
@@ -1741,7 +1743,7 @@ instance iInf_isMeasurablyGenerated {f : ι → Filter α} [∀ i, IsMeasurablyG
   refine' ⟨⋂ i : t, U i, _, _, _⟩
   · rw [← Equiv.plift.surjective.iInf_comp, mem_iInf]
     refine' ⟨t, ht, U, hUf, rfl⟩
-  · haveI := ht.countable.toEncodable
+  · haveI := ht.countable.toEncodable.countable
     exact MeasurableSet.iInter fun i => (hU i).1
   · exact iInter_mono fun i => (hU i).2
 #align filter.infi_is_measurably_generated Filter.iInf_isMeasurablyGenerated
chore: Rename to sSup/iSup (#3938)

As discussed on Zulip

Renames

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

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

Diff
@@ -81,7 +81,7 @@ protected def map (f : α → β) (m : MeasurableSpace α) : MeasurableSpace β
   MeasurableSet' s := MeasurableSet[m] <| f ⁻¹' s
   measurableSet_empty := m.measurableSet_empty
   measurableSet_compl s hs := m.measurableSet_compl _ hs
-  measurableSet_unionᵢ f hf := by simpa only [preimage_unionᵢ] using m.measurableSet_unionᵢ _ hf
+  measurableSet_iUnion f hf := by simpa only [preimage_iUnion] using m.measurableSet_iUnion _ hf
 #align measurable_space.map MeasurableSpace.map
 
 @[simp]
@@ -100,9 +100,9 @@ protected def comap (f : α → β) (m : MeasurableSpace β) : MeasurableSpace 
   MeasurableSet' s := ∃ s', MeasurableSet[m] s' ∧ f ⁻¹' s' = s
   measurableSet_empty := ⟨∅, m.measurableSet_empty, rfl⟩
   measurableSet_compl := fun s ⟨s', h₁, h₂⟩ => ⟨s'ᶜ, m.measurableSet_compl _ h₁, h₂ ▸ rfl⟩
-  measurableSet_unionᵢ s hs :=
+  measurableSet_iUnion s hs :=
     let ⟨s', hs'⟩ := Classical.axiom_of_choice hs
-    ⟨⋃ i, s' i, m.measurableSet_unionᵢ _ fun i => (hs' i).left, by simp [hs']⟩
+    ⟨⋃ i, s' i, m.measurableSet_iUnion _ fun i => (hs' i).left, by simp [hs']⟩
 #align measurable_space.comap MeasurableSpace.comap
 
 theorem comap_eq_generateFrom (m : MeasurableSpace β) (f : α → β) :
@@ -155,9 +155,9 @@ theorem comap_sup : (m₁ ⊔ m₂).comap g = m₁.comap g ⊔ m₂.comap g :=
 #align measurable_space.comap_sup MeasurableSpace.comap_sup
 
 @[simp]
-theorem comap_supᵢ {m : ι → MeasurableSpace α} : (⨆ i, m i).comap g = ⨆ i, (m i).comap g :=
-  (gc_comap_map g).l_supᵢ
-#align measurable_space.comap_supr MeasurableSpace.comap_supᵢ
+theorem comap_iSup {m : ι → MeasurableSpace α} : (⨆ i, m i).comap g = ⨆ i, (m i).comap g :=
+  (gc_comap_map g).l_iSup
+#align measurable_space.comap_supr MeasurableSpace.comap_iSup
 
 @[simp]
 theorem map_top : (⊤ : MeasurableSpace α).map f = ⊤ :=
@@ -170,9 +170,9 @@ theorem map_inf : (m₁ ⊓ m₂).map f = m₁.map f ⊓ m₂.map f :=
 #align measurable_space.map_inf MeasurableSpace.map_inf
 
 @[simp]
-theorem map_infᵢ {m : ι → MeasurableSpace α} : (⨅ i, m i).map f = ⨅ i, (m i).map f :=
-  (gc_comap_map f).u_infᵢ
-#align measurable_space.map_infi MeasurableSpace.map_infᵢ
+theorem map_iInf {m : ι → MeasurableSpace α} : (⨅ i, m i).map f = ⨅ i, (m i).map f :=
+  (gc_comap_map f).u_iInf
+#align measurable_space.map_infi MeasurableSpace.map_iInf
 
 theorem comap_map_le : (m.map f).comap f ≤ m :=
   (gc_comap_map f).l_u_le _
@@ -395,8 +395,8 @@ instance Rat.instMeasurableSingletonClass : MeasurableSingletonClass ℚ := ⟨f
 
 theorem measurable_to_countable [MeasurableSpace α] [Countable α] [MeasurableSpace β] {f : β → α}
     (h : ∀ y, MeasurableSet (f ⁻¹' {f y})) : Measurable f := fun s _ => by
-  rw [← bunionᵢ_preimage_singleton]
-  refine' MeasurableSet.unionᵢ fun y => MeasurableSet.unionᵢ fun hy => _
+  rw [← biUnion_preimage_singleton]
+  refine' MeasurableSet.iUnion fun y => MeasurableSet.iUnion fun hy => _
   by_cases hyf : y ∈ range f
   · rcases hyf with ⟨y, rfl⟩
     apply h
@@ -444,7 +444,7 @@ theorem measurable_findGreatest {p : α → ℕ → Prop} [∀ x, DecidablePred
     (hN : ∀ k ≤ N, MeasurableSet { x | p x k }) : Measurable fun x => Nat.findGreatest (p x) N := by
   refine' measurable_findGreatest' fun k hk => _
   simp only [Nat.findGreatest_eq_iff, setOf_and, setOf_forall, ← compl_setOf]
-  repeat' apply_rules [MeasurableSet.inter, MeasurableSet.const, MeasurableSet.interᵢ,
+  repeat' apply_rules [MeasurableSet.inter, MeasurableSet.const, MeasurableSet.iInter,
     MeasurableSet.compl, hN] <;> try intros
 #align measurable_find_greatest measurable_findGreatest
 
@@ -754,7 +754,7 @@ theorem measurable_from_prod_countable [Countable β] [MeasurableSingletonClass
     ext1 ⟨x, y⟩
     simp [and_assoc, and_left_comm]
   rw [this]
-  exact .unionᵢ fun y => (hf y hs).prod (.singleton y)
+  exact .iUnion fun y => (hf y hs).prod (.singleton y)
 #align measurable_from_prod_countable measurable_from_prod_countable
 
 /-- A piecewise function on countably many pieces is measurable if all the data is measurable. -/
@@ -768,13 +768,13 @@ theorem Measurable.find {_ : MeasurableSpace α} {f : ℕ → α → β} {p : 
 
 /-- Let `t i` be a countable covering of a set `T` by measurable sets. Let `f i : t i → β` be a
 family of functions that agree on the intersections `t i ∩ t j`. Then the function
-`Set.unionᵢLift t f _ _ : T → β`, defined as `f i ⟨x, hx⟩` for `hx : x ∈ t i`, is measurable. -/
-theorem measurable_unionᵢLift [Countable ι] {t : ι → Set α} {f : ∀ i, t i → β}
+`Set.iUnionLift t f _ _ : T → β`, defined as `f i ⟨x, hx⟩` for `hx : x ∈ t i`, is measurable. -/
+theorem measurable_iUnionLift [Countable ι] {t : ι → Set α} {f : ∀ i, t i → β}
     (htf : ∀ (i j) (x : α) (hxi : x ∈ t i) (hxj : x ∈ t j), f i ⟨x, hxi⟩ = f j ⟨x, hxj⟩)
     {T : Set α} (hT : T ⊆ ⋃ i, t i) (htm : ∀ i, MeasurableSet (t i)) (hfm : ∀ i, Measurable (f i)) :
-    Measurable (unionᵢLift t f htf T hT) := fun s hs => by
-  rw [preimage_unionᵢLift]
-  exact .preimage (.unionᵢ fun i => .image_inclusion _ (htm _) (hfm i hs)) (measurable_inclusion _)
+    Measurable (iUnionLift t f htf T hT) := fun s hs => by
+  rw [preimage_iUnionLift]
+  exact .preimage (.iUnion fun i => .image_inclusion _ (htm _) (hfm i hs)) (measurable_inclusion _)
 
 /-- Let `t i` be a countable covering of `α` by measurable sets. Let `f i : t i → β` be a family of
 functions that agree on the intersections `t i ∩ t j`. Then the function `Set.liftCover t f _ _`,
@@ -785,7 +785,7 @@ theorem measurable_liftCover [Countable ι] (t : ι → Set α) (htm : ∀ i, Me
     (htU : (⋃ i, t i) = univ) :
     Measurable (liftCover t f hf htU) := fun s hs => by
   rw [preimage_liftCover]
-  exact .unionᵢ fun i => .subtype_image (htm i) <| hfm i hs
+  exact .iUnion fun i => .subtype_image (htm i) <| hfm i hs
 
 /-- Let `t i` be a nonempty countable family of measurable sets in `α`. Let `g i : α → β` be a
 family of measurable functions such that `g i` agrees with `g j` on `t i ∩ t j`. Then there exists
@@ -804,14 +804,14 @@ theorem exists_measurable_piecewise {ι} [Countable ι] [Nonempty ι] (t : ι 
     rcases eq_or_ne i j with rfl | hij
     · rfl
     · exact ht hij ⟨hxi, hxj⟩
-  set f : (⋃ i, t i) → β := unionᵢLift t g' ht' _ Subset.rfl
-  have hfm : Measurable f := measurable_unionᵢLift _ _ t_meas
+  set f : (⋃ i, t i) → β := iUnionLift t g' ht' _ Subset.rfl
+  have hfm : Measurable f := measurable_iUnionLift _ _ t_meas
     (fun i => (hg i).comp measurable_subtype_coe)
   classical
     refine ⟨fun x => if hx : x ∈ ⋃ i, t i then f ⟨x, hx⟩ else g default x,
-      hfm.dite ((hg default).comp measurable_subtype_coe) (.unionᵢ t_meas), fun i x hx => ?_⟩
-    simp only [dif_pos (mem_unionᵢ.2 ⟨i, hx⟩)]
-    exact unionᵢLift_of_mem ⟨x, mem_unionᵢ.2 ⟨i, hx⟩⟩ hx
+      hfm.dite ((hg default).comp measurable_subtype_coe) (.iUnion t_meas), fun i x hx => ?_⟩
+    simp only [dif_pos (mem_iUnion.2 ⟨i, hx⟩)]
+    exact iUnionLift_of_mem ⟨x, mem_iUnion.2 ⟨i, hx⟩⟩ hx
 
 /-- Given countably many disjoint measurable sets `t n` and countably many measurable
 functions `g n`, one can construct a measurable function that coincides with `g n` on `t n`. -/
@@ -836,8 +836,8 @@ instance MeasurableSpace.pi [m : ∀ a, MeasurableSpace (π a)] : MeasurableSpac
 variable [∀ a, MeasurableSpace (π a)] [MeasurableSpace γ]
 
 theorem measurable_pi_iff {g : α → ∀ a, π a} : Measurable g ↔ ∀ a, Measurable fun x => g x a := by
-  simp_rw [measurable_iff_comap_le, MeasurableSpace.pi, MeasurableSpace.comap_supᵢ,
-    MeasurableSpace.comap_comp, Function.comp, supᵢ_le_iff]
+  simp_rw [measurable_iff_comap_le, MeasurableSpace.pi, MeasurableSpace.comap_iSup,
+    MeasurableSpace.comap_comp, Function.comp, iSup_le_iff]
 #align measurable_pi_iff measurable_pi_iff
 
 @[measurability]
@@ -874,7 +874,7 @@ theorem measurable_update (f : ∀ a : δ, π a) {a : δ} [DecidableEq δ] : Mea
 protected theorem MeasurableSet.pi {s : Set δ} {t : ∀ i : δ, Set (π i)} (hs : s.Countable)
     (ht : ∀ i ∈ s, MeasurableSet (t i)) : MeasurableSet (s.pi t) := by
   rw [pi_def]
-  exact MeasurableSet.binterᵢ hs fun i hi => measurable_pi_apply _ (ht i hi)
+  exact MeasurableSet.biInter hs fun i hi => measurable_pi_apply _ (ht i hi)
 #align measurable_set.pi MeasurableSet.pi
 
 protected theorem MeasurableSet.univ_pi [Countable δ] {t : ∀ i : δ, Set (π i)}
@@ -1599,25 +1599,25 @@ noncomputable def schroederBernstein {f : α → β} {g : β → α} (hf : Measu
   have Fmono : ∀ {A B}, A ⊆ B → F A ⊆ F B := fun h =>
     compl_subset_compl.mpr <| Set.image_subset _ <| compl_subset_compl.mpr <| Set.image_subset _ h
   let X : ℕ → Set α := fun n => (F^[n]) univ
-  refine' ⟨interᵢ X, _, _⟩
-  · apply MeasurableSet.interᵢ
+  refine' ⟨iInter X, _, _⟩
+  · apply MeasurableSet.iInter
     intro n
     induction' n with n ih
     · exact MeasurableSet.univ
     rw [Function.iterate_succ', Function.comp_apply]
     exact (hg.measurableSet_image' (hf.measurableSet_image' ih).compl).compl
   apply subset_antisymm
-  · apply subset_interᵢ
+  · apply subset_iInter
     intro n
     cases n
     · exact subset_univ _
     rw [Function.iterate_succ', Function.comp_apply]
-    exact Fmono (interᵢ_subset _ _)
+    exact Fmono (iInter_subset _ _)
   rintro x hx ⟨y, hy, rfl⟩
-  rw [mem_interᵢ] at hx
+  rw [mem_iInter] at hx
   apply hy
-  rw [(injOn_of_injective hf.injective _).image_interᵢ_eq]
-  rw [mem_interᵢ]
+  rw [(injOn_of_injective hf.injective _).image_iInter_eq]
+  rw [mem_iInter]
   intro n
   specialize hx n.succ
   rw [Function.iterate_succ', Function.comp_apply] at hx
@@ -1670,7 +1670,7 @@ theorem measurable_injection_nat_bool_of_countablyGenerated [MeasurableSpace α]
     · intro t
       tauto
     intro t ht
-    simp_rw [mem_unionᵢ, ht]
+    simp_rw [mem_iUnion, ht]
   specialize this {y} measurableSet_eq
   simp only [mem_singleton, iff_true_iff] at this
   exact this
@@ -1732,19 +1732,19 @@ alias principal_isMeasurablyGenerated_iff ↔
   _ _root_.MeasurableSet.principal_isMeasurablyGenerated
 #align measurable_set.principal_is_measurably_generated MeasurableSet.principal_isMeasurablyGenerated
 
-instance infᵢ_isMeasurablyGenerated {f : ι → Filter α} [∀ i, IsMeasurablyGenerated (f i)] :
+instance iInf_isMeasurablyGenerated {f : ι → Filter α} [∀ i, IsMeasurablyGenerated (f i)] :
     IsMeasurablyGenerated (⨅ i, f i) := by
   refine' ⟨fun s hs => _⟩
-  rw [← Equiv.plift.surjective.infᵢ_comp, mem_infᵢ] at hs
+  rw [← Equiv.plift.surjective.iInf_comp, mem_iInf] at hs
   rcases hs with ⟨t, ht, ⟨V, hVf, rfl⟩⟩
   choose U hUf hU using fun i => IsMeasurablyGenerated.exists_measurable_subset (hVf i)
   refine' ⟨⋂ i : t, U i, _, _, _⟩
-  · rw [← Equiv.plift.surjective.infᵢ_comp, mem_infᵢ]
+  · rw [← Equiv.plift.surjective.iInf_comp, mem_iInf]
     refine' ⟨t, ht, U, hUf, rfl⟩
   · haveI := ht.countable.toEncodable
-    exact MeasurableSet.interᵢ fun i => (hU i).1
-  · exact interᵢ_mono fun i => (hU i).2
-#align filter.infi_is_measurably_generated Filter.infᵢ_isMeasurablyGenerated
+    exact MeasurableSet.iInter fun i => (hU i).1
+  · exact iInter_mono fun i => (hU i).2
+#align filter.infi_is_measurably_generated Filter.iInf_isMeasurablyGenerated
 
 end Filter
 
@@ -1758,7 +1758,7 @@ def IsCountablySpanning (C : Set (Set α)) : Prop :=
 
 theorem isCountablySpanning_measurableSet [MeasurableSpace α] :
     IsCountablySpanning { s : Set α | MeasurableSet s } :=
-  ⟨fun _ => univ, fun _ => MeasurableSet.univ, unionᵢ_const _⟩
+  ⟨fun _ => univ, fun _ => MeasurableSet.univ, iUnion_const _⟩
 #align is_countably_spanning_measurable_set isCountablySpanning_measurableSet
 
 namespace MeasurableSet
@@ -1889,15 +1889,15 @@ noncomputable instance Subtype.instBooleanAlgebra :
 @[measurability]
 theorem measurableSet_blimsup {s : ℕ → Set α} {p : ℕ → Prop} (h : ∀ n, p n → MeasurableSet (s n)) :
     MeasurableSet <| blimsup s atTop p := by
-  simp only [blimsup_eq_infᵢ_bsupᵢ_of_nat, supᵢ_eq_unionᵢ, infᵢ_eq_interᵢ]
-  exact .interᵢ fun _ => .unionᵢ fun m => .unionᵢ fun hm => h m hm.1
+  simp only [blimsup_eq_iInf_biSup_of_nat, iSup_eq_iUnion, iInf_eq_iInter]
+  exact .iInter fun _ => .iUnion fun m => .iUnion fun hm => h m hm.1
 #align measurable_set.measurable_set_blimsup MeasurableSet.measurableSet_blimsup
 
 @[measurability]
 theorem measurableSet_bliminf {s : ℕ → Set α} {p : ℕ → Prop} (h : ∀ n, p n → MeasurableSet (s n)) :
     MeasurableSet <| Filter.bliminf s Filter.atTop p := by
-  simp only [Filter.bliminf_eq_supᵢ_binfᵢ_of_nat, infᵢ_eq_interᵢ, supᵢ_eq_unionᵢ]
-  exact .unionᵢ fun n => .interᵢ fun m => .interᵢ fun hm => h m hm.1
+  simp only [Filter.bliminf_eq_iSup_biInf_of_nat, iInf_eq_iInter, iSup_eq_iUnion]
+  exact .iUnion fun n => .iInter fun m => .iInter fun hm => h m hm.1
 #align measurable_set.measurable_set_bliminf MeasurableSet.measurableSet_bliminf
 
 @[measurability]
feat: port MeasureTheory.Measure.MeasureSpace (#3324)

This PR also renames instances in MeasureTheory.MeasurableSpace.

Co-authored-by: Komyyy <pol_tta@outlook.jp> Co-authored-by: ChrisHughes24 <chrishughes24@gmail.com> Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com>

Diff
@@ -367,19 +367,31 @@ end MeasurableFunctions
 
 section Constructions
 
-instance : MeasurableSpace Empty := ⊤
-instance : MeasurableSpace PUnit := ⊤
-instance : MeasurableSpace Bool := ⊤
-instance : MeasurableSpace ℕ := ⊤
-instance : MeasurableSpace ℤ := ⊤
-instance : MeasurableSpace ℚ := ⊤
-
-instance : MeasurableSingletonClass Empty := ⟨fun _ => trivial⟩
-instance : MeasurableSingletonClass PUnit := ⟨fun _ => trivial⟩
-instance : MeasurableSingletonClass Bool := ⟨fun _ => trivial⟩
-instance : MeasurableSingletonClass ℕ := ⟨fun _ => trivial⟩
-instance : MeasurableSingletonClass ℤ := ⟨fun _ => trivial⟩
-instance : MeasurableSingletonClass ℚ := ⟨fun _ => trivial⟩
+instance Empty.instMeasurableSpace : MeasurableSpace Empty := ⊤
+#align empty.measurable_space Empty.instMeasurableSpace
+instance PUnit.instMeasurableSpace : MeasurableSpace PUnit := ⊤
+#align punit.measurable_space PUnit.instMeasurableSpace
+instance Bool.instMeasurableSpace : MeasurableSpace Bool := ⊤
+#align bool.measurable_space Bool.instMeasurableSpace
+instance Nat.instMeasurableSpace : MeasurableSpace ℕ := ⊤
+#align nat.measurable_space Nat.instMeasurableSpace
+instance Int.instMeasurableSpace : MeasurableSpace ℤ := ⊤
+#align int.measurable_space Int.instMeasurableSpace
+instance Rat.instMeasurableSpace : MeasurableSpace ℚ := ⊤
+#align rat.measurable_space Rat.instMeasurableSpace
+
+instance Empty.instMeasurableSingletonClass : MeasurableSingletonClass Empty := ⟨fun _ => trivial⟩
+#align empty.measurable_singleton_class Empty.instMeasurableSingletonClass
+instance PUnit.instMeasurableSingletonClass : MeasurableSingletonClass PUnit := ⟨fun _ => trivial⟩
+#align punit.measurable_singleton_class PUnit.instMeasurableSingletonClass
+instance Bool.instMeasurableSingletonClass : MeasurableSingletonClass Bool := ⟨fun _ => trivial⟩
+#align bool.measurable_singleton_class Bool.instMeasurableSingletonClass
+instance Nat.instMeasurableSingletonClass : MeasurableSingletonClass ℕ := ⟨fun _ => trivial⟩
+#align nat.measurable_singleton_class Nat.instMeasurableSingletonClass
+instance Int.instMeasurableSingletonClass : MeasurableSingletonClass ℤ := ⟨fun _ => trivial⟩
+#align int.measurable_singleton_class Int.instMeasurableSingletonClass
+instance Rat.instMeasurableSingletonClass : MeasurableSingletonClass ℚ := ⟨fun _ => trivial⟩
+#align rat.measurable_singleton_class Rat.instMeasurableSingletonClass
 
 theorem measurable_to_countable [MeasurableSpace α] [Countable α] [MeasurableSpace β] {f : β → α}
     (h : ∀ y, MeasurableSet (f ⁻¹' {f y})) : Measurable f := fun s _ => by
@@ -449,16 +461,20 @@ section Quotient
 
 variable [MeasurableSpace α] [MeasurableSpace β]
 
-instance {α} {r : α → α → Prop} [m : MeasurableSpace α] : MeasurableSpace (Quot r) :=
+instance Quot.instMeasurableSpace {α} {r : α → α → Prop} [m : MeasurableSpace α] :
+    MeasurableSpace (Quot r) :=
   m.map (Quot.mk r)
+#align quot.measurable_space Quot.instMeasurableSpace
 
-instance {α} {s : Setoid α} [m : MeasurableSpace α] : MeasurableSpace (Quotient s) :=
+instance Quotient.instMeasurableSpace {α} {s : Setoid α} [m : MeasurableSpace α] :
+    MeasurableSpace (Quotient s) :=
   m.map Quotient.mk''
+#align quotient.measurable_space Quotient.instMeasurableSpace
 
 @[to_additive]
 instance QuotientGroup.measurableSpace {G} [Group G] [MeasurableSpace G] (S : Subgroup G) :
     MeasurableSpace (G ⧸ S) :=
-  instMeasurableSpaceQuotient
+  Quotient.instMeasurableSpace
 #align quotient_group.measurable_space QuotientGroup.measurableSpace
 #align quotient_add_group.measurable_space QuotientAddGroup.measurableSpace
 
@@ -504,8 +520,10 @@ end Quotient
 
 section Subtype
 
-instance {α} {p : α → Prop} [m : MeasurableSpace α] : MeasurableSpace (Subtype p) :=
+instance Subtype.instMeasurableSpace {α} {p : α → Prop} [m : MeasurableSpace α] :
+    MeasurableSpace (Subtype p) :=
   m.comap ((↑) : _ → α)
+#align subtype.measurable_space Subtype.instMeasurableSpace
 
 section
 
@@ -516,10 +534,13 @@ theorem measurable_subtype_coe {p : α → Prop} : Measurable ((↑) : Subtype p
   MeasurableSpace.le_map_comap
 #align measurable_subtype_coe measurable_subtype_coe
 
-instance {p : α → Prop} [MeasurableSingletonClass α] : MeasurableSingletonClass (Subtype p) where
+instance Subtype.instMeasurableSingletonClass {p : α → Prop} [MeasurableSingletonClass α] :
+    MeasurableSingletonClass (Subtype p) where
   measurableSet_singleton x :=
     ⟨{(x : α)}, measurableSet_singleton (x : α), by
       rw [← image_singleton, preimage_image_eq _ Subtype.val_injective]⟩
+#align subtype.measurable_singleton_class Subtype.instMeasurableSingletonClass
+
 end
 
 variable {m : MeasurableSpace α} {mβ : MeasurableSpace β}
@@ -610,8 +631,10 @@ def MeasurableSpace.prod {α β} (m₁ : MeasurableSpace α) (m₂ : MeasurableS
   m₁.comap Prod.fst ⊔ m₂.comap Prod.snd
 #align measurable_space.prod MeasurableSpace.prod
 
-instance {α β} [m₁ : MeasurableSpace α] [m₂ : MeasurableSpace β] : MeasurableSpace (α × β) :=
+instance Prod.instMeasurableSpace {α β} [m₁ : MeasurableSpace α] [m₂ : MeasurableSpace β] :
+    MeasurableSpace (α × β) :=
   m₁.prod m₂
+#align prod.measurable_space Prod.instMeasurableSpace
 
 @[measurability]
 theorem measurable_fst {_ : MeasurableSpace α} {_ : MeasurableSpace β} :
@@ -718,9 +741,11 @@ theorem measurableSet_swap_iff {s : Set (α × β)} :
   ⟨fun hs => measurable_swap hs, fun hs => measurable_swap hs⟩
 #align measurable_set_swap_iff measurableSet_swap_iff
 
-instance [MeasurableSingletonClass α] [MeasurableSingletonClass β] :
+instance Prod.instMeasurableSingletonClass
+    [MeasurableSingletonClass α] [MeasurableSingletonClass β] :
     MeasurableSingletonClass (α × β) :=
   ⟨fun ⟨a, b⟩ => @singleton_prod_singleton _ _ a b ▸ .prod (.singleton a) (.singleton b)⟩
+#align prod.measurable_singleton_class Prod.instMeasurableSingletonClass
 
 theorem measurable_from_prod_countable [Countable β] [MeasurableSingletonClass β]
     {_ : MeasurableSpace γ} {f : α × β → γ} (hf : ∀ y, Measurable fun x => f (x, y)) :
@@ -874,9 +899,10 @@ theorem measurableSet_pi {s : Set δ} {t : ∀ i, Set (π i)} (hs : s.Countable)
   · simp [measurableSet_pi_of_nonempty hs, h, ← not_nonempty_iff_eq_empty]
 #align measurable_set_pi measurableSet_pi
 
-instance [Countable δ] [∀ a, MeasurableSingletonClass (π a)] :
+instance Pi.instMeasurableSingletonClass [Countable δ] [∀ a, MeasurableSingletonClass (π a)] :
     MeasurableSingletonClass (∀ a, π a) :=
   ⟨fun f => univ_pi_singleton f ▸ MeasurableSet.univ_pi fun t => measurableSet_singleton (f t)⟩
+#align pi.measurable_singleton_class Pi.instMeasurableSingletonClass
 
 variable (π)
 
@@ -904,11 +930,11 @@ theorem measurable_piEquivPiSubtypeProd (p : δ → Prop) [DecidablePred p] :
 
 end Pi
 
-instance TProd.measurableSpace (π : δ → Type _) [∀ x, MeasurableSpace (π x)] :
+instance TProd.instMeasurableSpace (π : δ → Type _) [∀ x, MeasurableSpace (π x)] :
     ∀ l : List δ, MeasurableSpace (List.TProd π l)
-  | [] => instMeasurableSpacePUnit
-  | _::is => @instMeasurableSpaceProd _ _ _ (TProd.measurableSpace π is)
-#align tprod.measurable_space TProd.measurableSpace
+  | [] => PUnit.instMeasurableSpace
+  | _::is => @Prod.instMeasurableSpace _ _ _ (TProd.instMeasurableSpace π is)
+#align tprod.measurable_space TProd.instMeasurableSpace
 
 section TProd
 
@@ -947,8 +973,10 @@ theorem MeasurableSet.tProd (l : List δ) {s : ∀ i, Set (π i)} (hs : ∀ i, M
 
 end TProd
 
-instance {α β} [m₁ : MeasurableSpace α] [m₂ : MeasurableSpace β] : MeasurableSpace (α ⊕ β) :=
+instance Sum.instMeasurableSpace {α β} [m₁ : MeasurableSpace α] [m₂ : MeasurableSpace β] :
+    MeasurableSpace (α ⊕ β) :=
   m₁.map Sum.inl ⊓ m₂.map Sum.inr
+#align sum.measurable_space Sum.instMeasurableSpace
 
 section Sum
 
@@ -1016,15 +1044,17 @@ theorem measurableSet_range_inr [MeasurableSpace α] :
 
 end Sum
 
-instance {α} {β : α → Type _} [m : ∀ a, MeasurableSpace (β a)] : MeasurableSpace (Sigma β) :=
+instance Sigma.instMeasurableSpace {α} {β : α → Type _} [m : ∀ a, MeasurableSpace (β a)] :
+    MeasurableSpace (Sigma β) :=
   ⨅ a, (m a).map (Sigma.mk a)
+#align sigma.measurable_space Sigma.instMeasurableSpace
 
 end Constructions
 
 /-- A map `f : α → β` is called a *measurable embedding* if it is injective, measurable, and sends
 measurable sets to measurable sets. The latter assumption can be replaced with “`f` has measurable
 inverse `g : Set.range f → α`”, see `MeasurableEmbedding.measurable_rangeSplitting`,
-`measurable_embedding.of_measurable_inverse_range`, and
+`MeasurableEmbedding.of_measurable_inverse_range`, and
 `MeasurableEmbedding.of_measurable_inverse`.
 
 One more interpretation: `f` is a measurable embedding if it defines a measurable equivalence to its
@@ -1139,7 +1169,7 @@ theorem toEquiv_injective : Injective (toEquiv : α ≃ᵐ β → α ≃ β) :=
   rfl
 #align measurable_equiv.to_equiv_injective MeasurableEquiv.toEquiv_injective
 
-instance : EquivLike (α ≃ᵐ β) α β where
+instance instEquivLike : EquivLike (α ≃ᵐ β) α β where
   coe e := e.toEquiv
   inv e := e.toEquiv.symm
   left_inv e := e.toEquiv.left_inv
@@ -1169,7 +1199,7 @@ def refl (α : Type _) [MeasurableSpace α] : α ≃ᵐ α where
   measurable_invFun := measurable_id
 #align measurable_equiv.refl MeasurableEquiv.refl
 
-instance : Inhabited (α ≃ᵐ α) := ⟨refl α⟩
+instance instInhabited : Inhabited (α ≃ᵐ α) := ⟨refl α⟩
 
 /-- The composition of equivalences between measurable spaces. -/
 def trans (ab : α ≃ᵐ β) (bc : β ≃ᵐ γ) : α ≃ᵐ γ where
@@ -1740,16 +1770,18 @@ namespace MeasurableSet
 
 variable [MeasurableSpace α]
 
-instance : Membership α (Subtype (MeasurableSet : Set α → Prop)) :=
+instance Subtype.instMembership : Membership α (Subtype (MeasurableSet : Set α → Prop)) :=
   ⟨fun a s => a ∈ (s : Set α)⟩
+#align measurable_set.subtype.has_mem MeasurableSet.Subtype.instMembership
 
 @[simp]
 theorem mem_coe (a : α) (s : Subtype (MeasurableSet : Set α → Prop)) : a ∈ (s : Set α) ↔ a ∈ s :=
   Iff.rfl
 #align measurable_set.mem_coe MeasurableSet.mem_coe
 
-instance : EmptyCollection (Subtype (MeasurableSet : Set α → Prop)) :=
+instance Subtype.instEmptyCollection : EmptyCollection (Subtype (MeasurableSet : Set α → Prop)) :=
   ⟨⟨∅, MeasurableSet.empty⟩⟩
+#align measurable_set.subtype.has_emptyc MeasurableSet.Subtype.instEmptyCollection
 
 @[simp]
 theorem coe_empty : ↑(∅ : Subtype (MeasurableSet : Set α → Prop)) = (∅ : Set α) :=
@@ -1757,10 +1789,10 @@ theorem coe_empty : ↑(∅ : Subtype (MeasurableSet : Set α → Prop)) = (∅
 #align measurable_set.coe_empty MeasurableSet.coe_empty
 
 -- porting note: why do these instances have to be noncomputable?
--- porting note: new instance
-noncomputable instance [MeasurableSingletonClass α] :
+noncomputable instance Subtype.instInsert [MeasurableSingletonClass α] :
     Insert α (Subtype (MeasurableSet : Set α → Prop)) :=
   ⟨fun a s => ⟨insert a (s : Set α), s.prop.insert a⟩⟩
+#align measurable_set.subtype.has_insert MeasurableSet.Subtype.instInsert
 
 @[simp]
 theorem coe_insert [MeasurableSingletonClass α] (a : α)
@@ -1769,7 +1801,7 @@ theorem coe_insert [MeasurableSingletonClass α] (a : α)
   rfl
 #align measurable_set.coe_insert MeasurableSet.coe_insert
 
-noncomputable instance [MeasurableSingletonClass α] :
+noncomputable instance Subtype.instSingleton [MeasurableSingletonClass α] :
     Singleton α (Subtype (MeasurableSet : Set α → Prop)) :=
   ⟨fun a => ⟨{a}, .singleton _⟩⟩
 
@@ -1777,74 +1809,82 @@ noncomputable instance [MeasurableSingletonClass α] :
     ↑({a} : Subtype (MeasurableSet : Set α → Prop)) = ({a} : Set α) :=
   rfl
 
-instance [MeasurableSingletonClass α] :
+instance Subtype.instIsLawfulSingleton [MeasurableSingletonClass α] :
     IsLawfulSingleton α (Subtype (MeasurableSet : Set α → Prop)) :=
   ⟨fun _ => Subtype.eq <| insert_emptyc_eq _⟩
 
-noncomputable instance : HasCompl (Subtype (MeasurableSet : Set α → Prop)) :=
+noncomputable instance Subtype.instHasCompl : HasCompl (Subtype (MeasurableSet : Set α → Prop)) :=
   ⟨fun x => ⟨xᶜ, x.prop.compl⟩⟩
+#align measurable_set.subtype.has_compl MeasurableSet.Subtype.instHasCompl
 
 @[simp]
 theorem coe_compl (s : Subtype (MeasurableSet : Set α → Prop)) : ↑(sᶜ) = (sᶜ : Set α) :=
   rfl
 #align measurable_set.coe_compl MeasurableSet.coe_compl
 
-noncomputable instance : Union (Subtype (MeasurableSet : Set α → Prop)) :=
+noncomputable instance Subtype.instUnion : Union (Subtype (MeasurableSet : Set α → Prop)) :=
   ⟨fun x y => ⟨(x : Set α) ∪ y, x.prop.union y.prop⟩⟩
+#align measurable_set.subtype.has_union MeasurableSet.Subtype.instUnion
 
 @[simp]
 theorem coe_union (s t : Subtype (MeasurableSet : Set α → Prop)) : ↑(s ∪ t) = (s ∪ t : Set α) :=
   rfl
 #align measurable_set.coe_union MeasurableSet.coe_union
 
-noncomputable instance : Sup (Subtype (MeasurableSet : Set α → Prop)) :=
+noncomputable instance Subtype.instSup : Sup (Subtype (MeasurableSet : Set α → Prop)) :=
   ⟨fun x y => x ∪ y⟩
 
 -- porting note: new lemma
 @[simp]
 protected theorem sup_eq_union (s t : {s : Set α // MeasurableSet s}) : s ⊔ t = s ∪ t := rfl
 
-noncomputable instance : Inter (Subtype (MeasurableSet : Set α → Prop)) :=
+noncomputable instance Subtype.instInter : Inter (Subtype (MeasurableSet : Set α → Prop)) :=
   ⟨fun x y => ⟨x ∩ y, x.prop.inter y.prop⟩⟩
+#align measurable_set.subtype.has_inter MeasurableSet.Subtype.instInter
 
 @[simp]
 theorem coe_inter (s t : Subtype (MeasurableSet : Set α → Prop)) : ↑(s ∩ t) = (s ∩ t : Set α) :=
   rfl
 #align measurable_set.coe_inter MeasurableSet.coe_inter
 
-noncomputable instance : Inf (Subtype (MeasurableSet : Set α → Prop)) :=
+noncomputable instance Subtype.instInf : Inf (Subtype (MeasurableSet : Set α → Prop)) :=
   ⟨fun x y => x ∩ y⟩
 
 -- porting note: new lemma
 @[simp]
 protected theorem inf_eq_inter (s t : {s : Set α // MeasurableSet s}) : s ⊓ t = s ∩ t := rfl
 
-noncomputable instance : SDiff (Subtype (MeasurableSet : Set α → Prop)) :=
+noncomputable instance Subtype.instSDiff : SDiff (Subtype (MeasurableSet : Set α → Prop)) :=
   ⟨fun x y => ⟨x \ y, x.prop.diff y.prop⟩⟩
+#align measurable_set.subtype.has_sdiff MeasurableSet.Subtype.instSDiff
 
 @[simp]
 theorem coe_sdiff (s t : Subtype (MeasurableSet : Set α → Prop)) : ↑(s \ t) = (s : Set α) \ t :=
   rfl
 #align measurable_set.coe_sdiff MeasurableSet.coe_sdiff
 
-instance : Bot (Subtype (MeasurableSet : Set α → Prop)) := ⟨∅⟩
+instance Subtype.instBot : Bot (Subtype (MeasurableSet : Set α → Prop)) := ⟨∅⟩
+#align measurable_set.subtype.has_bot MeasurableSet.Subtype.instBot
 
 @[simp]
 theorem coe_bot : ↑(⊥ : Subtype (MeasurableSet : Set α → Prop)) = (⊥ : Set α) :=
   rfl
 #align measurable_set.coe_bot MeasurableSet.coe_bot
 
-instance : Top (Subtype (MeasurableSet : Set α → Prop)) :=
+instance Subtype.instTop : Top (Subtype (MeasurableSet : Set α → Prop)) :=
   ⟨⟨Set.univ, MeasurableSet.univ⟩⟩
+#align measurable_set.subtype.has_top MeasurableSet.Subtype.instTop
 
 @[simp]
 theorem coe_top : ↑(⊤ : Subtype (MeasurableSet : Set α → Prop)) = (⊤ : Set α) :=
   rfl
 #align measurable_set.coe_top MeasurableSet.coe_top
 
-noncomputable instance : BooleanAlgebra (Subtype (MeasurableSet : Set α → Prop)) :=
+noncomputable instance Subtype.instBooleanAlgebra :
+    BooleanAlgebra (Subtype (MeasurableSet : Set α → Prop)) :=
   Subtype.coe_injective.booleanAlgebra _ (fun _ _ => rfl) (fun _ _ => rfl) rfl rfl (fun _ => rfl)
     fun _ _ => rfl
+#align measurable_set.subtype.boolean_algebra MeasurableSet.Subtype.instBooleanAlgebra
 
 @[measurability]
 theorem measurableSet_blimsup {s : ℕ → Set α} {p : ℕ → Prop} (h : ∀ n, p n → MeasurableSet (s n)) :
feat: port MeasureTheory.Tactic (#3816)
Diff
@@ -227,7 +227,7 @@ theorem Measurable.mono {ma ma' : MeasurableSpace α} {mb mb' : MeasurableSpace
 
 -- porting note: todo: add TC `DiscreteMeasurable` + instances
 
--- porting note: todo: restore @[measurability]
+@[measurability]
 theorem measurable_from_top [MeasurableSpace β] {f : α → β} : Measurable[⊤] f := fun _ _ => trivial
 #align measurable_from_top measurable_from_top
 
@@ -242,12 +242,12 @@ section TypeclassMeasurableSpace
 
 variable [MeasurableSpace α] [MeasurableSpace β] [MeasurableSpace γ]
 
-@[nontriviality] -- porting note: todo: add @[measurability]
+@[nontriviality, measurability]
 theorem Subsingleton.measurable [Subsingleton α] : Measurable f := fun _ _ =>
   @Subsingleton.measurableSet α _ _ _
 #align subsingleton.measurable Subsingleton.measurable
 
-@[nontriviality] -- porting note: todo: add @[measurability]
+@[nontriviality, measurability]
 theorem measurable_of_subsingleton_codomain [Subsingleton β] (f : α → β) : Measurable f :=
   fun s _ => Subsingleton.set_cases MeasurableSet.empty MeasurableSet.univ s
 #align measurable_of_subsingleton_codomain measurable_of_subsingleton_codomain
@@ -275,14 +275,12 @@ theorem measurable_const' {f : β → α} (hf : ∀ x y, f x = f y) : Measurable
   apply hf
 #align measurable_const' measurable_const'
 
--- porting note: Attribute not yet supported
--- @[measurability]
+@[measurability]
 theorem measurable_natCast [NatCast α] (n : ℕ) : Measurable (n : β → α) :=
   @measurable_const α _ _ _ n
 #align measurable_nat_cast measurable_natCast
 
--- porting note: Attribute not yet supported
--- @[measurability]
+@[measurability]
 theorem measurable_intCast [IntCast α] (n : ℤ) : Measurable (n : β → α) :=
   @measurable_const α _ _ _ n
 #align measurable_int_cast measurable_intCast
@@ -300,7 +298,7 @@ end TypeclassMeasurableSpace
 
 variable {m : MeasurableSpace α}
 
--- porting note: todo: add @[measurability]
+@[measurability]
 theorem Measurable.iterate {f : α → α} (hf : Measurable f) : ∀ n, Measurable (f^[n])
   | 0 => measurable_id
   | n + 1 => (Measurable.iterate hf n).comp hf
@@ -308,7 +306,7 @@ theorem Measurable.iterate {f : α → α} (hf : Measurable f) : ∀ n, Measurab
 
 variable {mβ : MeasurableSpace β}
 
--- porting note: todo: add @[measurability]
+@[measurability]
 theorem measurableSet_preimage {t : Set β} (hf : Measurable f) (ht : MeasurableSet t) :
     MeasurableSet (f ⁻¹' t) :=
   hf ht
@@ -319,7 +317,7 @@ protected theorem MeasurableSet.preimage {t : Set β} (ht : MeasurableSet t) (hf
     MeasurableSet (f ⁻¹' t) :=
   hf ht
 
--- porting note: todo: add @[measurability]
+@[measurability]
 protected theorem Measurable.piecewise {_ : DecidablePred (· ∈ s)} (hs : MeasurableSet s)
     (hf : Measurable f) (hg : Measurable g) : Measurable (piecewise s f g) := by
   intro t ht
@@ -336,13 +334,13 @@ theorem Measurable.ite {p : α → Prop} {_ : DecidablePred p} (hp : MeasurableS
   Measurable.piecewise hp hf hg
 #align measurable.ite Measurable.ite
 
--- porting note: todo: add @[measurability]
+@[measurability]
 theorem Measurable.indicator [Zero β] (hf : Measurable f) (hs : MeasurableSet s) :
     Measurable (s.indicator f) :=
   hf.piecewise hs measurable_const
 #align measurable.indicator Measurable.indicator
 
-@[to_additive] -- porting note: todo: add (attr := measurability)
+@[to_additive (attr := measurability)]
 theorem measurableSet_mulSupport [One β] [MeasurableSingletonClass β] (hf : Measurable f) :
     MeasurableSet (mulSupport f) :=
   hf (measurableSet_singleton 1).compl
@@ -398,7 +396,7 @@ theorem measurable_to_countable' [MeasurableSpace α] [Countable α] [Measurable
   measurable_to_countable fun y => h (f y)
 #align measurable_to_countable' measurable_to_countable'
 
--- porting note: todo: add @[measurability]
+@[measurability]
 theorem measurable_unit [MeasurableSpace α] (f : Unit → α) : Measurable f :=
   measurable_from_top
 #align measurable_unit measurable_unit
@@ -407,7 +405,7 @@ section Nat
 
 variable [MeasurableSpace α]
 
--- porting note: todo: add @[measurability]
+@[measurability]
 theorem measurable_from_nat {f : ℕ → α} : Measurable f :=
   measurable_from_top
 #align measurable_from_nat measurable_from_nat
@@ -474,21 +472,21 @@ theorem measurable_from_quotient {s : Setoid α} {f : Quotient s → β} :
   Iff.rfl
 #align measurable_from_quotient measurable_from_quotient
 
--- porting note: todo: add @[measurability]
+@[measurability]
 theorem measurable_quotient_mk' [s : Setoid α] : Measurable (Quotient.mk' : α → Quotient s) :=
   fun _ => id
 #align measurable_quotient_mk measurable_quotient_mk'
 
--- porting note: todo: add @[measurability]
+@[measurability]
 theorem measurable_quotient_mk'' {s : Setoid α} : Measurable (Quotient.mk'' : α → Quotient s) :=
   fun _ => id
 #align measurable_quotient_mk' measurable_quotient_mk''
 
--- porting note: todo: add @[measurability]
+@[measurability]
 theorem measurable_quot_mk {r : α → α → Prop} : Measurable (Quot.mk r) := fun _ => id
 #align measurable_quot_mk measurable_quot_mk
 
-@[to_additive] -- porting note: todo: add (attr := measurability)
+@[to_additive (attr := measurability)]
 theorem QuotientGroup.measurable_coe {G} [Group G] [MeasurableSpace G] {S : Subgroup G} :
     Measurable ((↑) : G → G ⧸ S) :=
   measurable_quotient_mk''
@@ -513,7 +511,7 @@ section
 
 variable [MeasurableSpace α]
 
--- porting note: todo: add @[measurability]
+@[measurability]
 theorem measurable_subtype_coe {p : α → Prop} : Measurable ((↑) : Subtype p → α) :=
   MeasurableSpace.le_map_comap
 #align measurable_subtype_coe measurable_subtype_coe
@@ -537,7 +535,7 @@ theorem MeasurableSet.subtype_image {s : Set α} {t : Set s} (hs : MeasurableSet
   exact hu.inter hs
 #align measurable_set.subtype_image MeasurableSet.subtype_image
 
--- porting note: todo: add @[measurability]
+@[measurability]
 theorem Measurable.subtype_coe {p : β → Prop} {f : α → Subtype p} (hf : Measurable f) :
     Measurable fun a : α => (f a : β) :=
   measurable_subtype_coe.comp hf
@@ -545,7 +543,7 @@ theorem Measurable.subtype_coe {p : β → Prop} {f : α → Subtype p} (hf : Me
 
 alias Measurable.subtype_coe ← Measurable.subtype_val
 
--- porting note: todo: add @[measurability]
+@[measurability]
 theorem Measurable.subtype_mk {p : β → Prop} {f : α → β} (hf : Measurable f) {h : ∀ x, p (f x)} :
     Measurable fun x => (⟨f x, h x⟩ : Subtype p) := fun t ⟨s, hs⟩ =>
   hs.2 ▸ by simp only [← preimage_comp, (· ∘ ·), Subtype.coe_mk, hf hs.1]
@@ -615,13 +613,13 @@ def MeasurableSpace.prod {α β} (m₁ : MeasurableSpace α) (m₂ : MeasurableS
 instance {α β} [m₁ : MeasurableSpace α] [m₂ : MeasurableSpace β] : MeasurableSpace (α × β) :=
   m₁.prod m₂
 
--- porting note: todo: add @[measurability]
+@[measurability]
 theorem measurable_fst {_ : MeasurableSpace α} {_ : MeasurableSpace β} :
     Measurable (Prod.fst : α × β → α) :=
   Measurable.of_comap_le le_sup_left
 #align measurable_fst measurable_fst
 
--- porting note: todo: add @[measurability]
+@[measurability]
 theorem measurable_snd {_ : MeasurableSpace α} {_ : MeasurableSpace β} :
     Measurable (Prod.snd : α × β → β) :=
   Measurable.of_comap_le le_sup_right
@@ -637,7 +635,7 @@ theorem Measurable.snd {f : α → β × γ} (hf : Measurable f) : Measurable fu
   measurable_snd.comp hf
 #align measurable.snd Measurable.snd
 
--- porting note: todo: add @[measurability]
+@[measurability]
 theorem Measurable.prod {f : α → β × γ} (hf₁ : Measurable fun a => (f a).1)
     (hf₂ : Measurable fun a => (f a).2) : Measurable f :=
   Measurable.of_le_map <|
@@ -683,7 +681,7 @@ theorem measurable_prod {f : α → β × γ} :
   ⟨fun hf => ⟨measurable_fst.comp hf, measurable_snd.comp hf⟩, fun h => Measurable.prod h.1 h.2⟩
 #align measurable_prod measurable_prod
 
--- porting note: todo: restore @[measurability]
+@[measurability]
 theorem measurable_swap : Measurable (Prod.swap : α × β → β × α) :=
   Measurable.prod measurable_snd measurable_fst
 #align measurable_swap measurable_swap
@@ -693,7 +691,7 @@ theorem measurable_swap_iff {_ : MeasurableSpace γ} {f : α × β → γ} :
   ⟨fun hf => hf.comp measurable_swap, fun hf => hf.comp measurable_swap⟩
 #align measurable_swap_iff measurable_swap_iff
 
--- porting note: todo: restore @[measurability]
+@[measurability]
 protected theorem MeasurableSet.prod {s : Set α} {t : Set β} (hs : MeasurableSet s)
     (ht : MeasurableSet t) : MeasurableSet (s ×ˢ t) :=
   MeasurableSet.inter (measurable_fst hs) (measurable_snd ht)
@@ -735,7 +733,7 @@ theorem measurable_from_prod_countable [Countable β] [MeasurableSingletonClass
 #align measurable_from_prod_countable measurable_from_prod_countable
 
 /-- A piecewise function on countably many pieces is measurable if all the data is measurable. -/
--- porting note: todo: restore @[measurability]
+@[measurability]
 theorem Measurable.find {_ : MeasurableSpace α} {f : ℕ → α → β} {p : ℕ → α → Prop}
     [∀ n, DecidablePred (p n)] (hf : ∀ n, Measurable (f n)) (hp : ∀ n, MeasurableSet { x | p n x })
     (h : ∀ x, ∃ n, p n x) : Measurable fun x => f (Nat.find (h x)) x :=
@@ -817,18 +815,18 @@ theorem measurable_pi_iff {g : α → ∀ a, π a} : Measurable g ↔ ∀ a, Mea
     MeasurableSpace.comap_comp, Function.comp, supᵢ_le_iff]
 #align measurable_pi_iff measurable_pi_iff
 
--- porting note: todo: restore @[measurability]
+@[measurability]
 theorem measurable_pi_apply (a : δ) : Measurable fun f : ∀ a, π a => f a :=
   measurable_pi_iff.1 measurable_id a
 #align measurable_pi_apply measurable_pi_apply
 
--- porting note: todo: restore @[measurability]
+@[measurability]
 theorem Measurable.eval {a : δ} {g : α → ∀ a, π a} (hg : Measurable g) :
     Measurable fun x => g x a :=
   (measurable_pi_apply a).comp hg
 #align measurable.eval Measurable.eval
 
--- porting note: todo: restore @[measurability]
+@[measurability]
 theorem measurable_pi_lambda (f : α → ∀ a, π a) (hf : ∀ a, Measurable fun c => f c a) :
     Measurable f :=
   measurable_pi_iff.mpr hf
@@ -837,7 +835,7 @@ theorem measurable_pi_lambda (f : α → ∀ a, π a) (hf : ∀ a, Measurable fu
 /-- The function `update f a : π a → Π a, π a` is always measurable.
   This doesn't require `f` to be measurable.
   This should not be confused with the statement that `update f a x` is measurable. -/
--- porting note: todo: restore @[measurability]
+@[measurability]
 theorem measurable_update (f : ∀ a : δ, π a) {a : δ} [DecidableEq δ] : Measurable (update f a) := by
   refine measurable_pi_lambda _ fun x => ?_
   rcases eq_or_ne x a with (rfl | hx)
@@ -847,7 +845,7 @@ theorem measurable_update (f : ∀ a : δ, π a) {a : δ} [DecidableEq δ] : Mea
 
 /- Even though we cannot use projection notation, we still keep a dot to be consistent with similar
   lemmas, like `MeasurableSet.prod`. -/
--- porting note: todo: restore @[measurability]
+@[measurability]
 protected theorem MeasurableSet.pi {s : Set δ} {t : ∀ i : δ, Set (π i)} (hs : s.Countable)
     (ht : ∀ i ∈ s, MeasurableSet (t i)) : MeasurableSet (s.pi t) := by
   rw [pi_def]
@@ -882,7 +880,7 @@ instance [Countable δ] [∀ a, MeasurableSingletonClass (π a)] :
 
 variable (π)
 
--- porting note: todo: restore @[measurability]
+@[measurability]
 theorem measurable_piEquivPiSubtypeProd_symm (p : δ → Prop) [DecidablePred p] :
     Measurable (Equiv.piEquivPiSubtypeProd p π).symm := by
   refine' measurable_pi_iff.2 fun j => _
@@ -897,7 +895,7 @@ theorem measurable_piEquivPiSubtypeProd_symm (p : δ → Prop) [DecidablePred p]
     exact Measurable.comp this measurable_snd
 #align measurable_pi_equiv_pi_subtype_prod_symm measurable_piEquivPiSubtypeProd_symm
 
--- porting note: todo: restore @[measurability]
+@[measurability]
 theorem measurable_piEquivPiSubtypeProd (p : δ → Prop) [DecidablePred p] :
     Measurable (Equiv.piEquivPiSubtypeProd p π) :=
   (measurable_pi_iff.2 fun _ => measurable_pi_apply _).prod_mk
@@ -954,12 +952,12 @@ instance {α β} [m₁ : MeasurableSpace α] [m₂ : MeasurableSpace β] : Measu
 
 section Sum
 
--- porting note: todo: restore @[measurability]
+@[measurability]
 theorem measurable_inl [MeasurableSpace α] [MeasurableSpace β] : Measurable (@Sum.inl α β) :=
   Measurable.of_le_map inf_le_left
 #align measurable_inl measurable_inl
 
--- porting note: todo: restore @[measurability]
+@[measurability]
 theorem measurable_inr [MeasurableSpace α] [MeasurableSpace β] : Measurable (@Sum.inr α β) :=
   Measurable.of_le_map inf_le_right
 #align measurable_inr measurable_inr
@@ -978,7 +976,7 @@ theorem measurable_sum {_ : MeasurableSpace γ} {f : α ⊕ β → γ} (hl : Mea
       (MeasurableSpace.comap_le_iff_le_map.2 <| hr)
 #align measurable_sum measurable_sum
 
--- porting note: todo: restore @[measurability]
+@[measurability]
 theorem Measurable.sumElim {_ : MeasurableSpace γ} {f : α → γ} {g : β → γ} (hf : Measurable f)
     (hg : Measurable g) : Measurable (Sum.elim f g) :=
   measurable_sum hf hg
@@ -1153,7 +1151,7 @@ theorem coe_toEquiv (e : α ≃ᵐ β) : (e.toEquiv : α → β) = e :=
   rfl
 #align measurable_equiv.coe_to_equiv MeasurableEquiv.coe_toEquiv
 
--- porting note: todo: restore @[measurability]
+@[measurability]
 protected theorem measurable (e : α ≃ᵐ β) : Measurable (e : α → β) :=
   e.measurable_toFun
 #align measurable_equiv.measurable MeasurableEquiv.measurable
@@ -1848,27 +1846,27 @@ noncomputable instance : BooleanAlgebra (Subtype (MeasurableSet : Set α → Pro
   Subtype.coe_injective.booleanAlgebra _ (fun _ _ => rfl) (fun _ _ => rfl) rfl rfl (fun _ => rfl)
     fun _ _ => rfl
 
--- porting note: todo: add @[measurability]
+@[measurability]
 theorem measurableSet_blimsup {s : ℕ → Set α} {p : ℕ → Prop} (h : ∀ n, p n → MeasurableSet (s n)) :
     MeasurableSet <| blimsup s atTop p := by
   simp only [blimsup_eq_infᵢ_bsupᵢ_of_nat, supᵢ_eq_unionᵢ, infᵢ_eq_interᵢ]
   exact .interᵢ fun _ => .unionᵢ fun m => .unionᵢ fun hm => h m hm.1
 #align measurable_set.measurable_set_blimsup MeasurableSet.measurableSet_blimsup
 
--- porting note: todo: add @[measurability]
+@[measurability]
 theorem measurableSet_bliminf {s : ℕ → Set α} {p : ℕ → Prop} (h : ∀ n, p n → MeasurableSet (s n)) :
     MeasurableSet <| Filter.bliminf s Filter.atTop p := by
   simp only [Filter.bliminf_eq_supᵢ_binfᵢ_of_nat, infᵢ_eq_interᵢ, supᵢ_eq_unionᵢ]
   exact .unionᵢ fun n => .interᵢ fun m => .interᵢ fun hm => h m hm.1
 #align measurable_set.measurable_set_bliminf MeasurableSet.measurableSet_bliminf
 
--- porting note: todo: add @[measurability]
+@[measurability]
 theorem measurableSet_limsup {s : ℕ → Set α} (hs : ∀ n, MeasurableSet <| s n) :
     MeasurableSet <| Filter.limsup s Filter.atTop := by
   simpa only [← blimsup_true] using measurableSet_blimsup fun n _ => hs n
 #align measurable_set.measurable_set_limsup MeasurableSet.measurableSet_limsup
 
--- porting note: todo: add @[measurability]
+@[measurability]
 theorem measurableSet_liminf {s : ℕ → Set α} (hs : ∀ n, MeasurableSet <| s n) :
     MeasurableSet <| Filter.liminf s Filter.atTop := by
   simpa only [← bliminf_true] using measurableSet_bliminf fun n _ => hs n
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
@@ -1631,8 +1631,7 @@ theorem measurable_injection_nat_bool_of_countablyGenerated [MeasurableSpace α]
     apply measurableSet_generateFrom
     exact ⟨n, rfl⟩
   intro x y hxy
-  have : ∀ s : Set α, MeasurableSet s → (x ∈ s ↔ y ∈ s) := fun s =>
-    by
+  have : ∀ s : Set α, MeasurableSet s → (x ∈ s ↔ y ∈ s) := fun s => by
     rw [hb]
     apply generateFrom_induction
     · rintro - ⟨n, rfl⟩
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Mario Carneiro
 
 ! This file was ported from Lean 3 source module measure_theory.measurable_space
-! leanprover-community/mathlib commit 9b2b58d6b14b895b2f375108e765cb47de71aebd
+! leanprover-community/mathlib commit 3905fa80e62c0898131285baab35559fbc4e5cda
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -1616,7 +1616,7 @@ open Classical
 
 /-- If a measurable space is countably generated, it admits a measurable injection
 into the Cantor space `ℕ → Bool` (equipped with the product sigma algebra). -/
-theorem measurable_injection_cantor_of_countablyGenerated [MeasurableSpace α]
+theorem measurable_injection_nat_bool_of_countablyGenerated [MeasurableSpace α]
     [h : CountablyGenerated α] [MeasurableSingletonClass α] :
     ∃ f : α → ℕ → Bool, Measurable f ∧ Function.Injective f := by
   obtain ⟨b, bct, hb⟩ := h.IsCountablyGenerated
@@ -1647,7 +1647,7 @@ theorem measurable_injection_cantor_of_countablyGenerated [MeasurableSpace α]
   specialize this {y} measurableSet_eq
   simp only [mem_singleton, iff_true_iff] at this
   exact this
-#align measurable_space.measurable_injection_cantor_of_countably_generated MeasurableSpace.measurable_injection_cantor_of_countablyGenerated
+#align measurable_space.measurable_injection_nat_bool_of_countably_generated MeasurableSpace.measurable_injection_nat_bool_of_countablyGenerated
 
 end MeasurableSpace
 
chore: forward port leanprover-community/mathlib#18864 (#3687)

Forward port changes from leanprover-community/mathlib#18864 to Topology/Perfect.lean and MeasureTheory/MeasurableSpace.lean

Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Mario Carneiro
 
 ! This file was ported from Lean 3 source module measure_theory.measurable_space
-! leanprover-community/mathlib commit 88fcb83fe7996142dfcfe7368d31304a9adc874a
+! leanprover-community/mathlib commit 9b2b58d6b14b895b2f375108e765cb47de71aebd
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -393,6 +393,11 @@ theorem measurable_to_countable [MeasurableSpace α] [Countable α] [MeasurableS
   · simp only [preimage_singleton_eq_empty.2 hyf, MeasurableSet.empty]
 #align measurable_to_countable measurable_to_countable
 
+theorem measurable_to_countable' [MeasurableSpace α] [Countable α] [MeasurableSpace β] {f : β → α}
+    (h : ∀ x, MeasurableSet (f ⁻¹' {x})) : Measurable f :=
+  measurable_to_countable fun y => h (f y)
+#align measurable_to_countable' measurable_to_countable'
+
 -- porting note: todo: add @[measurability]
 theorem measurable_unit [MeasurableSpace α] (f : Unit → α) : Measurable f :=
   measurable_from_top
@@ -411,6 +416,14 @@ theorem measurable_to_nat {f : α → ℕ} : (∀ y, MeasurableSet (f ⁻¹' {f
   measurable_to_countable
 #align measurable_to_nat measurable_to_nat
 
+theorem measurable_to_bool {f : α → Bool} (h : MeasurableSet (f ⁻¹' {true})) : Measurable f := by
+  apply measurable_to_countable'
+  rintro (- | -)
+  · convert h.compl
+    rw [← preimage_compl, Bool.compl_singleton, Bool.not_true]
+  exact h
+#align measurable_to_bool measurable_to_bool
+
 theorem measurable_findGreatest' {p : α → ℕ → Prop} [∀ x, DecidablePred (p x)] {N : ℕ}
     (hN : ∀ k ≤ N, MeasurableSet { x | Nat.findGreatest (p x) N = k }) :
     Measurable fun x => Nat.findGreatest (p x) N :=
@@ -1587,6 +1600,59 @@ noncomputable def schroederBernstein {f : α → β} {g : β → α} (hf : Measu
 
 end MeasurableEmbedding
 
+section CountablyGenerated
+
+namespace MeasurableSpace
+
+variable (α)
+
+/-- We say a measurable space is countably generated
+if can be generated by a countable set of sets.-/
+class CountablyGenerated [m : MeasurableSpace α] : Prop where
+  IsCountablyGenerated : ∃ b : Set (Set α), b.Countable ∧ m = generateFrom b
+#align measurable_space.countably_generated MeasurableSpace.CountablyGenerated
+
+open Classical
+
+/-- If a measurable space is countably generated, it admits a measurable injection
+into the Cantor space `ℕ → Bool` (equipped with the product sigma algebra). -/
+theorem measurable_injection_cantor_of_countablyGenerated [MeasurableSpace α]
+    [h : CountablyGenerated α] [MeasurableSingletonClass α] :
+    ∃ f : α → ℕ → Bool, Measurable f ∧ Function.Injective f := by
+  obtain ⟨b, bct, hb⟩ := h.IsCountablyGenerated
+  obtain ⟨e, he⟩ := Set.Countable.exists_eq_range (bct.insert ∅) (insert_nonempty _ _)
+  rw [← generateFrom_insert_empty, he] at hb
+  refine' ⟨fun x n => x ∈ e n, _, _⟩
+  . rw [measurable_pi_iff]
+    intro n
+    apply measurable_to_bool
+    simp only [preimage, mem_singleton_iff, Bool.decide_iff]
+    rw [hb]
+    apply measurableSet_generateFrom
+    exact ⟨n, rfl⟩
+  intro x y hxy
+  have : ∀ s : Set α, MeasurableSet s → (x ∈ s ↔ y ∈ s) := fun s =>
+    by
+    rw [hb]
+    apply generateFrom_induction
+    · rintro - ⟨n, rfl⟩
+      rw [← decide_eq_decide]
+      rw [funext_iff] at hxy
+      exact hxy n
+    · tauto
+    · intro t
+      tauto
+    intro t ht
+    simp_rw [mem_unionᵢ, ht]
+  specialize this {y} measurableSet_eq
+  simp only [mem_singleton, iff_true_iff] at this
+  exact this
+#align measurable_space.measurable_injection_cantor_of_countably_generated MeasurableSpace.measurable_injection_cantor_of_countablyGenerated
+
+end MeasurableSpace
+
+end CountablyGenerated
+
 namespace Filter
 
 variable [MeasurableSpace α]
chore: tidy various files (#3483)
Diff
@@ -21,7 +21,7 @@ import Mathlib.Data.Set.UnionLift
 # Measurable spaces and measurable functions
 
 This file provides properties of measurable spaces and the functions and isomorphisms
-between them. The definition of a measurable space is in `measure_theory.measurable_space_def`.
+between them. The definition of a measurable space is in `MeasureTheory.MeasurableSpaceDef`.
 
 A measurable space is a set equipped with a σ-algebra, a collection of
 subsets closed under complementation and countable union. A function
@@ -358,8 +358,7 @@ theorem Measurable.measurable_of_countable_ne [MeasurableSingletonClass α] (hf
     simp [← inter_union_distrib_left]
   rw [this]
   refine (h.mono (inter_subset_right _ _)).measurableSet.union ?_
-  have : g ⁻¹' t ∩ { x : α | f x = g x } = f ⁻¹' t ∩ { x : α | f x = g x } :=
-    by
+  have : g ⁻¹' t ∩ { x : α | f x = g x } = f ⁻¹' t ∩ { x : α | f x = g x } := by
     ext x
     simp (config := { contextual := true })
   rw [this]
@@ -412,15 +411,15 @@ theorem measurable_to_nat {f : α → ℕ} : (∀ y, MeasurableSet (f ⁻¹' {f
   measurable_to_countable
 #align measurable_to_nat measurable_to_nat
 
-theorem measurable_find_greatest' {p : α → ℕ → Prop} [∀ x, DecidablePred (p x)] {N : ℕ}
+theorem measurable_findGreatest' {p : α → ℕ → Prop} [∀ x, DecidablePred (p x)] {N : ℕ}
     (hN : ∀ k ≤ N, MeasurableSet { x | Nat.findGreatest (p x) N = k }) :
     Measurable fun x => Nat.findGreatest (p x) N :=
   measurable_to_nat fun _ => hN _ N.findGreatest_le
-#align measurable_find_greatest' measurable_find_greatest'
+#align measurable_find_greatest' measurable_findGreatest'
 
 theorem measurable_findGreatest {p : α → ℕ → Prop} [∀ x, DecidablePred (p x)] {N}
     (hN : ∀ k ≤ N, MeasurableSet { x | p x k }) : Measurable fun x => Nat.findGreatest (p x) N := by
-  refine' measurable_find_greatest' fun k hk => _
+  refine' measurable_findGreatest' fun k hk => _
   simp only [Nat.findGreatest_eq_iff, setOf_and, setOf_forall, ← compl_setOf]
   repeat' apply_rules [MeasurableSet.inter, MeasurableSet.const, MeasurableSet.interᵢ,
     MeasurableSet.compl, hN] <;> try intros
@@ -894,13 +893,13 @@ theorem measurable_piEquivPiSubtypeProd (p : δ → Prop) [DecidablePred p] :
 
 end Pi
 
-instance Tprod.measurableSpace (π : δ → Type _) [∀ x, MeasurableSpace (π x)] :
+instance TProd.measurableSpace (π : δ → Type _) [∀ x, MeasurableSpace (π x)] :
     ∀ l : List δ, MeasurableSpace (List.TProd π l)
   | [] => instMeasurableSpacePUnit
-  | _::is => @instMeasurableSpaceProd _ _ _ (Tprod.measurableSpace π is)
-#align tprod.measurable_space Tprod.measurableSpace
+  | _::is => @instMeasurableSpaceProd _ _ _ (TProd.measurableSpace π is)
+#align tprod.measurable_space TProd.measurableSpace
 
-section Tprod
+section TProd
 
 open List
 
@@ -935,7 +934,7 @@ theorem MeasurableSet.tProd (l : List δ) {s : ∀ i, Set (π i)} (hs : ∀ i, M
   exact (hs i).prod ih
 #align measurable_set.tprod MeasurableSet.tProd
 
-end Tprod
+end TProd
 
 instance {α β} [m₁ : MeasurableSpace α] [m₂ : MeasurableSpace β] : MeasurableSpace (α ⊕ β) :=
   m₁.map Sum.inl ⊓ m₂.map Sum.inr
@@ -1294,8 +1293,7 @@ protected def cast {α β} [i₁ : MeasurableSpace α] [i₂ : MeasurableSpace 
 protected theorem measurable_comp_iff {f : β → γ} (e : α ≃ᵐ β) :
     Measurable (f ∘ e) ↔ Measurable f :=
   Iff.intro
-    (fun hfe =>
-      by
+    (fun hfe => by
       have : Measurable (f ∘ (e.symm.trans e).toEquiv) := hfe.comp e.symm.measurable
       rwa [coe_toEquiv, symm_trans_self] at this)
     fun h => h.comp e.measurable
@@ -1431,12 +1429,12 @@ def piCongrRight (e : ∀ a, π a ≃ᵐ π' a) : (∀ a, π a) ≃ᵐ ∀ a, π
 
 /-- Pi-types are measurably equivalent to iterated products. -/
 @[simps! (config := { fullyApplied := false })]
-def piMeasurableEquivTprod [DecidableEq δ'] {l : List δ'} (hnd : l.Nodup) (h : ∀ i, i ∈ l) :
+def piMeasurableEquivTProd [DecidableEq δ'] {l : List δ'} (hnd : l.Nodup) (h : ∀ i, i ∈ l) :
     (∀ i, π i) ≃ᵐ List.TProd π l where
   toEquiv := List.TProd.piEquivTProd hnd h
   measurable_toFun := measurable_tProd_mk l
   measurable_invFun := measurable_tProd_elim' h
-#align measurable_equiv.pi_measurable_equiv_tprod MeasurableEquiv.piMeasurableEquivTprod
+#align measurable_equiv.pi_measurable_equiv_tprod MeasurableEquiv.piMeasurableEquivTProd
 
 /-- If `α` has a unique term, then the type of function `α → β` is measurably equivalent to `β`. -/
 @[simps! (config := { fullyApplied := false })]
@@ -1660,7 +1658,7 @@ end Filter
 /-- We say that a collection of sets is countably spanning if a countable subset spans the
   whole type. This is a useful condition in various parts of measure theory. For example, it is
   a needed condition to show that the product of two collections generate the product sigma algebra,
-  see `generate_from_prod_eq`. -/
+  see `generateFrom_prod_eq`. -/
 def IsCountablySpanning (C : Set (Set α)) : Prop :=
   ∃ s : ℕ → Set α, (∀ n, s n ∈ C) ∧ (⋃ n, s n) = univ
 #align is_countably_spanning IsCountablySpanning
feat: Cast of natural is measurable (#3226)

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

Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Mario Carneiro
 
 ! This file was ported from Lean 3 source module measure_theory.measurable_space
-! leanprover-community/mathlib commit d101e93197bb5f6ea89bd7ba386b7f7dff1f3903
+! leanprover-community/mathlib commit 88fcb83fe7996142dfcfe7368d31304a9adc874a
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -275,6 +275,18 @@ theorem measurable_const' {f : β → α} (hf : ∀ x y, f x = f y) : Measurable
   apply hf
 #align measurable_const' measurable_const'
 
+-- porting note: Attribute not yet supported
+-- @[measurability]
+theorem measurable_natCast [NatCast α] (n : ℕ) : Measurable (n : β → α) :=
+  @measurable_const α _ _ _ n
+#align measurable_nat_cast measurable_natCast
+
+-- porting note: Attribute not yet supported
+-- @[measurability]
+theorem measurable_intCast [IntCast α] (n : ℤ) : Measurable (n : β → α) :=
+  @measurable_const α _ _ _ n
+#align measurable_int_cast measurable_intCast
+
 theorem measurable_of_countable [Countable α] [MeasurableSingletonClass α] (f : α → β) :
     Measurable f := fun s _ =>
   (f ⁻¹' s).to_countable.measurableSet
feat: tactic congr! and improvement to convert (#2566)

This introduces a tactic congr! that is an analogue to mathlib 3's congr'. It is a more insistent version of congr that makes use of more congruence lemmas (including user congruence lemmas), propext, funext, and Subsingleton instances. It also has a feature to lift reflexive relations to equalities. Along with funext, the tactic does intros, allowing congr! to get access to function bodies; the introduced variables can be named using rename_i if needed.

This also modifies convert to use congr! rather than congr, which makes it work more like the mathlib3 version of the tactic.

Diff
@@ -271,8 +271,8 @@ for functions between empty types. -/
 theorem measurable_const' {f : β → α} (hf : ∀ x y, f x = f y) : Measurable f := by
   nontriviality β
   inhabit β
-  convert @measurable_const α β ‹_› ‹_› (f default)
-  exact funext fun x => hf x default
+  convert @measurable_const α β ‹_› ‹_› (f default) using 2
+  apply hf
 #align measurable_const' measurable_const'
 
 theorem measurable_of_countable [Countable α] [MeasurableSingletonClass α] (f : α → β) :
Fix: some initialize_simps_projections configurations (#2561)
  • Some of the older ones do exactly the same as the shorter new ones
  • Also update doc (some remarks are only true after #2045 is merged)
Diff
@@ -1177,8 +1177,7 @@ def Simps.apply (h : α ≃ᵐ β) : α → β := h
 def Simps.symm_apply (h : α ≃ᵐ β) : β → α := h.symm
 #align measurable_equiv.simps.symm_apply MeasurableEquiv.Simps.symm_apply
 
-initialize_simps_projections MeasurableEquiv (toEquiv_toFun → apply, toEquiv_invFun →
-  symm_apply)
+initialize_simps_projections MeasurableEquiv (toFun → apply, invFun → symm_apply)
 
 @[ext] theorem ext {e₁ e₂ : α ≃ᵐ β} (h : (e₁ : α → β) = e₂) : e₁ = e₂ := FunLike.ext' h
 #align measurable_equiv.ext MeasurableEquiv.ext
refactor: rename HasSup/HasInf to Sup/Inf (#2475)

Co-authored-by: Yury G. Kudryashov <urkud@urkud.name>

Diff
@@ -1725,7 +1725,7 @@ theorem coe_union (s t : Subtype (MeasurableSet : Set α → Prop)) : ↑(s ∪
   rfl
 #align measurable_set.coe_union MeasurableSet.coe_union
 
-noncomputable instance : HasSup (Subtype (MeasurableSet : Set α → Prop)) :=
+noncomputable instance : Sup (Subtype (MeasurableSet : Set α → Prop)) :=
   ⟨fun x y => x ∪ y⟩
 
 -- porting note: new lemma
@@ -1740,7 +1740,7 @@ theorem coe_inter (s t : Subtype (MeasurableSet : Set α → Prop)) : ↑(s ∩
   rfl
 #align measurable_set.coe_inter MeasurableSet.coe_inter
 
-noncomputable instance : HasInf (Subtype (MeasurableSet : Set α → Prop)) :=
+noncomputable instance : Inf (Subtype (MeasurableSet : Set α → Prop)) :=
   ⟨fun x y => x ∩ y⟩
 
 -- porting note: new lemma
feat: port MeasureTheory.MeasurableSpace (#2174)

Co-authored-by: Johan Commelin <johan@commelin.net>

Dependencies 10 + 605

606 files ported (98.4%)
266983 lines ported (98.1%)
Show graph

The unported dependencies are

The following 1 dependencies have changed in mathlib3 since they were ported, which may complicate porting this file