measure_theory.group.arithmetic
⟷
Mathlib.MeasureTheory.Group.Arithmetic
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.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -3,7 +3,7 @@ Copyright (c) 2021 Yury Kudryashov. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yury Kudryashov
-/
-import MeasureTheory.Measure.AeMeasurable
+import MeasureTheory.Measure.AEMeasurable
#align_import measure_theory.group.arithmetic from "leanprover-community/mathlib"@"781cb2eed038c4caf53bdbd8d20a95e5822d77df"
@@ -244,7 +244,7 @@ instance Monoid.measurablePow (M : Type _) [Monoid M] [MeasurableSpace M] [Measu
by
induction' n with n ih
· simp only [pow_zero, ← Pi.one_def, measurable_one]
- · simp only [pow_succ]; exact measurable_id.mul ih⟩
+ · simp only [pow_succ']; exact measurable_id.mul ih⟩
#align monoid.has_measurable_pow Monoid.measurablePow
-/
@@ -619,7 +619,7 @@ instance DivInvMonoid.measurableZPow (G : Type u) [DivInvMonoid G] [MeasurableSp
[MeasurableMul₂ G] [MeasurableInv G] : MeasurablePow G ℤ :=
⟨measurable_from_prod_countable fun n => by
cases' n with n n
- · simp_rw [zpow_coe_nat]; exact measurable_id.pow_const _
+ · simp_rw [zpow_natCast]; exact measurable_id.pow_const _
· simp_rw [zpow_negSucc]; exact (measurable_id.pow_const (n + 1)).inv⟩
#align div_inv_monoid.has_measurable_zpow DivInvMonoid.measurableZPow
-/
@@ -819,7 +819,7 @@ instance AddMonoid.measurableSMul_nat₂ (M : Type _) [AddMonoid M] [MeasurableS
refine' measurable_from_prod_countable fun n => _
induction' n with n ih
· simp only [zero_smul, ← Pi.zero_def, measurable_zero]
- · simp only [succ_nsmul]; exact measurable_id.add ih⟩
+ · simp only [succ_nsmul']; exact measurable_id.add ih⟩
#align add_monoid.has_measurable_smul_nat₂ AddMonoid.measurableSMul_nat₂
-/
@@ -831,7 +831,7 @@ instance SubNegMonoid.measurableSMul_int₂ (M : Type _) [SubNegMonoid M] [Measu
suffices Measurable fun p : M × ℤ => p.2 • p.1 by apply this.comp measurable_swap
refine' measurable_from_prod_countable fun n => _
induction' n with n n ih
- · simp only [coe_nat_zsmul]; exact measurable_const_smul _
+ · simp only [natCast_zsmul]; exact measurable_const_smul _
· simp only [negSucc_zsmul]; exact (measurable_const_smul _).neg⟩
#align sub_neg_monoid.has_measurable_smul_int₂ SubNegMonoid.measurableSMul_int₂
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -1014,7 +1014,7 @@ variable {M α : Type _} [Monoid M] [MeasurableSpace M] [MeasurableMul₂ M] {m
theorem List.measurable_prod' (l : List (α → M)) (hl : ∀ f ∈ l, Measurable f) : Measurable l.Prod :=
by
induction' l with f l ihl; · exact measurable_one
- rw [List.forall_mem_cons] at hl
+ rw [List.forall_mem_cons] at hl
rw [List.prod_cons]
exact hl.1.mul (ihl hl.2)
#align list.measurable_prod' List.measurable_prod'
@@ -1026,7 +1026,7 @@ theorem List.measurable_prod' (l : List (α → M)) (hl : ∀ f ∈ l, Measurabl
theorem List.aemeasurable_prod' (l : List (α → M)) (hl : ∀ f ∈ l, AEMeasurable f μ) :
AEMeasurable l.Prod μ := by
induction' l with f l ihl; · exact aemeasurable_one
- rw [List.forall_mem_cons] at hl
+ rw [List.forall_mem_cons] at hl
rw [List.prod_cons]
exact hl.1.mul (ihl hl.2)
#align list.ae_measurable_prod' List.aemeasurable_prod'
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -619,7 +619,7 @@ instance DivInvMonoid.measurableZPow (G : Type u) [DivInvMonoid G] [MeasurableSp
[MeasurableMul₂ G] [MeasurableInv G] : MeasurablePow G ℤ :=
⟨measurable_from_prod_countable fun n => by
cases' n with n n
- · simp_rw [zpow_ofNat]; exact measurable_id.pow_const _
+ · simp_rw [zpow_coe_nat]; exact measurable_id.pow_const _
· simp_rw [zpow_negSucc]; exact (measurable_id.pow_const (n + 1)).inv⟩
#align div_inv_monoid.has_measurable_zpow DivInvMonoid.measurableZPow
-/
@@ -831,7 +831,7 @@ instance SubNegMonoid.measurableSMul_int₂ (M : Type _) [SubNegMonoid M] [Measu
suffices Measurable fun p : M × ℤ => p.2 • p.1 by apply this.comp measurable_swap
refine' measurable_from_prod_countable fun n => _
induction' n with n n ih
- · simp only [ofNat_zsmul]; exact measurable_const_smul _
+ · simp only [coe_nat_zsmul]; exact measurable_const_smul _
· simp only [negSucc_zsmul]; exact (measurable_const_smul _).neg⟩
#align sub_neg_monoid.has_measurable_smul_int₂ SubNegMonoid.measurableSMul_int₂
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -613,15 +613,15 @@ theorem MeasurableSet.inv {s : Set G} (hs : MeasurableSet s) : MeasurableSet s
end Inv
-#print DivInvMonoid.measurableZpow /-
+#print DivInvMonoid.measurableZPow /-
/-- `div_inv_monoid.has_pow` is measurable. -/
-instance DivInvMonoid.measurableZpow (G : Type u) [DivInvMonoid G] [MeasurableSpace G]
+instance DivInvMonoid.measurableZPow (G : Type u) [DivInvMonoid G] [MeasurableSpace G]
[MeasurableMul₂ G] [MeasurableInv G] : MeasurablePow G ℤ :=
⟨measurable_from_prod_countable fun n => by
cases' n with n n
· simp_rw [zpow_ofNat]; exact measurable_id.pow_const _
· simp_rw [zpow_negSucc]; exact (measurable_id.pow_const (n + 1)).inv⟩
-#align div_inv_monoid.has_measurable_zpow DivInvMonoid.measurableZpow
+#align div_inv_monoid.has_measurable_zpow DivInvMonoid.measurableZPow
-/
#print measurableDiv₂_of_mul_inv /-
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,7 +3,7 @@ Copyright (c) 2021 Yury Kudryashov. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yury Kudryashov
-/
-import Mathbin.MeasureTheory.Measure.AeMeasurable
+import MeasureTheory.Measure.AeMeasurable
#align_import measure_theory.group.arithmetic from "leanprover-community/mathlib"@"781cb2eed038c4caf53bdbd8d20a95e5822d77df"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,14 +2,11 @@
Copyright (c) 2021 Yury Kudryashov. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yury Kudryashov
-
-! This file was ported from Lean 3 source module measure_theory.group.arithmetic
-! leanprover-community/mathlib commit 781cb2eed038c4caf53bdbd8d20a95e5822d77df
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.MeasureTheory.Measure.AeMeasurable
+#align_import measure_theory.group.arithmetic from "leanprover-community/mathlib"@"781cb2eed038c4caf53bdbd8d20a95e5822d77df"
+
/-!
# Typeclasses for measurability of operations
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -115,65 +115,77 @@ section Mul
variable {M α : Type _} [MeasurableSpace M] [Mul M] {m : MeasurableSpace α} {f g : α → M}
{μ : Measure α}
-include m
-
+#print Measurable.const_mul /-
@[measurability, to_additive]
theorem Measurable.const_mul [MeasurableMul M] (hf : Measurable f) (c : M) :
Measurable fun x => c * f x :=
(measurable_const_mul c).comp hf
#align measurable.const_mul Measurable.const_mul
#align measurable.const_add Measurable.const_add
+-/
+#print AEMeasurable.const_mul /-
@[measurability, to_additive]
theorem AEMeasurable.const_mul [MeasurableMul M] (hf : AEMeasurable f μ) (c : M) :
AEMeasurable (fun x => c * f x) μ :=
(MeasurableMul.measurable_const_mul c).comp_aemeasurable hf
#align ae_measurable.const_mul AEMeasurable.const_mul
#align ae_measurable.const_add AEMeasurable.const_add
+-/
+#print Measurable.mul_const /-
@[measurability, to_additive]
theorem Measurable.mul_const [MeasurableMul M] (hf : Measurable f) (c : M) :
Measurable fun x => f x * c :=
(measurable_mul_const c).comp hf
#align measurable.mul_const Measurable.mul_const
#align measurable.add_const Measurable.add_const
+-/
+#print AEMeasurable.mul_const /-
@[measurability, to_additive]
theorem AEMeasurable.mul_const [MeasurableMul M] (hf : AEMeasurable f μ) (c : M) :
AEMeasurable (fun x => f x * c) μ :=
(measurable_mul_const c).comp_aemeasurable hf
#align ae_measurable.mul_const AEMeasurable.mul_const
#align ae_measurable.add_const AEMeasurable.add_const
+-/
+#print Measurable.mul' /-
@[measurability, to_additive]
theorem Measurable.mul' [MeasurableMul₂ M] (hf : Measurable f) (hg : Measurable g) :
Measurable (f * g) :=
measurable_mul.comp (hf.prod_mk hg)
#align measurable.mul' Measurable.mul'
#align measurable.add' Measurable.add'
+-/
+#print Measurable.mul /-
@[measurability, to_additive]
theorem Measurable.mul [MeasurableMul₂ M] (hf : Measurable f) (hg : Measurable g) :
Measurable fun a => f a * g a :=
measurable_mul.comp (hf.prod_mk hg)
#align measurable.mul Measurable.mul
#align measurable.add Measurable.add
+-/
+#print AEMeasurable.mul' /-
@[measurability, to_additive]
theorem AEMeasurable.mul' [MeasurableMul₂ M] (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
AEMeasurable (f * g) μ :=
measurable_mul.comp_aemeasurable (hf.prod_mk hg)
#align ae_measurable.mul' AEMeasurable.mul'
#align ae_measurable.add' AEMeasurable.add'
+-/
+#print AEMeasurable.mul /-
@[measurability, to_additive]
theorem AEMeasurable.mul [MeasurableMul₂ M] (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
AEMeasurable (fun a => f a * g a) μ :=
measurable_mul.comp_aemeasurable (hf.prod_mk hg)
#align ae_measurable.mul AEMeasurable.mul
#align ae_measurable.add AEMeasurable.add
-
-omit m
+-/
#print MeasurableMul₂.toMeasurableMul /-
@[to_additive]
@@ -207,6 +219,7 @@ attribute [measurability] Measurable.add' Measurable.add AEMeasurable.add AEMeas
end Mul
+#print measurable_div_const' /-
/-- A version of `measurable_div_const` that assumes `has_measurable_mul` instead of
`has_measurable_div`. This can be nice to avoid unnecessary type-class assumptions. -/
@[to_additive
@@ -215,6 +228,7 @@ theorem measurable_div_const' {G : Type _} [DivInvMonoid G] [MeasurableSpace G]
(g : G) : Measurable fun h => h / g := by simp_rw [div_eq_mul_inv, measurable_mul_const]
#align measurable_div_const' measurable_div_const'
#align measurable_sub_const' measurable_sub_const'
+-/
#print MeasurablePow /-
/-- This class assumes that the map `β × γ → β` given by `(x, y) ↦ x ^ y` is measurable. -/
@@ -225,6 +239,7 @@ class MeasurablePow (β γ : Type _) [MeasurableSpace β] [MeasurableSpace γ] [
export MeasurablePow (measurable_pow)
+#print Monoid.measurablePow /-
/-- `monoid.has_pow` is measurable. -/
instance Monoid.measurablePow (M : Type _) [Monoid M] [MeasurableSpace M] [MeasurableMul₂ M] :
MeasurablePow M ℕ :=
@@ -234,35 +249,42 @@ instance Monoid.measurablePow (M : Type _) [Monoid M] [MeasurableSpace M] [Measu
· simp only [pow_zero, ← Pi.one_def, measurable_one]
· simp only [pow_succ]; exact measurable_id.mul ih⟩
#align monoid.has_measurable_pow Monoid.measurablePow
+-/
section Pow
variable {β γ α : Type _} [MeasurableSpace β] [MeasurableSpace γ] [Pow β γ] [MeasurablePow β γ]
{m : MeasurableSpace α} {μ : Measure α} {f : α → β} {g : α → γ}
-include m
-
+#print Measurable.pow /-
@[measurability]
theorem Measurable.pow (hf : Measurable f) (hg : Measurable g) : Measurable fun x => f x ^ g x :=
measurable_pow.comp (hf.prod_mk hg)
#align measurable.pow Measurable.pow
+-/
+#print AEMeasurable.pow /-
@[measurability]
theorem AEMeasurable.pow (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
AEMeasurable (fun x => f x ^ g x) μ :=
measurable_pow.comp_aemeasurable (hf.prod_mk hg)
#align ae_measurable.pow AEMeasurable.pow
+-/
+#print Measurable.pow_const /-
@[measurability]
theorem Measurable.pow_const (hf : Measurable f) (c : γ) : Measurable fun x => f x ^ c :=
hf.pow measurable_const
#align measurable.pow_const Measurable.pow_const
+-/
+#print AEMeasurable.pow_const /-
@[measurability]
theorem AEMeasurable.pow_const (hf : AEMeasurable f μ) (c : γ) :
AEMeasurable (fun x => f x ^ c) μ :=
hf.pow aemeasurable_const
#align ae_measurable.pow_const AEMeasurable.pow_const
+-/
#print Measurable.const_pow /-
@[measurability]
@@ -279,8 +301,6 @@ theorem AEMeasurable.const_pow (hg : AEMeasurable g μ) (c : β) :
#align ae_measurable.const_pow AEMeasurable.const_pow
-/
-omit m
-
end Pow
#print MeasurableSub /-
@@ -334,69 +354,81 @@ section Div
variable {G α : Type _} [MeasurableSpace G] [Div G] {m : MeasurableSpace α} {f g : α → G}
{μ : Measure α}
-include m
-
+#print Measurable.const_div /-
@[measurability, to_additive]
theorem Measurable.const_div [MeasurableDiv G] (hf : Measurable f) (c : G) :
Measurable fun x => c / f x :=
(MeasurableDiv.measurable_div_const c).comp hf
#align measurable.const_div Measurable.const_div
#align measurable.const_sub Measurable.const_sub
+-/
+#print AEMeasurable.const_div /-
@[measurability, to_additive]
theorem AEMeasurable.const_div [MeasurableDiv G] (hf : AEMeasurable f μ) (c : G) :
AEMeasurable (fun x => c / f x) μ :=
(MeasurableDiv.measurable_div_const c).comp_aemeasurable hf
#align ae_measurable.const_div AEMeasurable.const_div
#align ae_measurable.const_sub AEMeasurable.const_sub
+-/
+#print Measurable.div_const /-
@[measurability, to_additive]
theorem Measurable.div_const [MeasurableDiv G] (hf : Measurable f) (c : G) :
Measurable fun x => f x / c :=
(MeasurableDiv.measurable_div_const c).comp hf
#align measurable.div_const Measurable.div_const
#align measurable.sub_const Measurable.sub_const
+-/
+#print AEMeasurable.div_const /-
@[measurability, to_additive]
theorem AEMeasurable.div_const [MeasurableDiv G] (hf : AEMeasurable f μ) (c : G) :
AEMeasurable (fun x => f x / c) μ :=
(MeasurableDiv.measurable_div_const c).comp_aemeasurable hf
#align ae_measurable.div_const AEMeasurable.div_const
#align ae_measurable.sub_const AEMeasurable.sub_const
+-/
+#print Measurable.div' /-
@[measurability, to_additive]
theorem Measurable.div' [MeasurableDiv₂ G] (hf : Measurable f) (hg : Measurable g) :
Measurable (f / g) :=
measurable_div.comp (hf.prod_mk hg)
#align measurable.div' Measurable.div'
#align measurable.sub' Measurable.sub'
+-/
+#print Measurable.div /-
@[measurability, to_additive]
theorem Measurable.div [MeasurableDiv₂ G] (hf : Measurable f) (hg : Measurable g) :
Measurable fun a => f a / g a :=
measurable_div.comp (hf.prod_mk hg)
#align measurable.div Measurable.div
#align measurable.sub Measurable.sub
+-/
+#print AEMeasurable.div' /-
@[measurability, to_additive]
theorem AEMeasurable.div' [MeasurableDiv₂ G] (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
AEMeasurable (f / g) μ :=
measurable_div.comp_aemeasurable (hf.prod_mk hg)
#align ae_measurable.div' AEMeasurable.div'
#align ae_measurable.sub' AEMeasurable.sub'
+-/
+#print AEMeasurable.div /-
@[measurability, to_additive]
theorem AEMeasurable.div [MeasurableDiv₂ G] (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
AEMeasurable (fun a => f a / g a) μ :=
measurable_div.comp_aemeasurable (hf.prod_mk hg)
#align ae_measurable.div AEMeasurable.div
#align ae_measurable.sub AEMeasurable.sub
+-/
attribute [measurability] Measurable.sub Measurable.sub' AEMeasurable.sub AEMeasurable.sub'
Measurable.const_sub AEMeasurable.const_sub Measurable.sub_const AEMeasurable.sub_const
-omit m
-
#print MeasurableDiv₂.toMeasurableDiv /-
@[to_additive]
instance (priority := 100) MeasurableDiv₂.toMeasurableDiv [MeasurableDiv₂ G] : MeasurableDiv G :=
@@ -424,6 +456,7 @@ instance Pi.measurableDiv₂ {ι : Type _} {α : ι → Type _} [∀ i, Div (α
#align pi.has_measurable_sub₂ Pi.measurableSub₂
-/
+#print measurableSet_eq_fun /-
@[measurability]
theorem measurableSet_eq_fun {m : MeasurableSpace α} {E} [MeasurableSpace E] [AddGroup E]
[MeasurableSingletonClass E] [MeasurableSub₂ E] {f g : α → E} (hf : Measurable f)
@@ -435,7 +468,9 @@ theorem measurableSet_eq_fun {m : MeasurableSpace α} {E} [MeasurableSpace E] [A
ext
simp_rw [Set.mem_setOf_eq, Pi.sub_apply, sub_eq_zero]
#align measurable_set_eq_fun measurableSet_eq_fun
+-/
+#print nullMeasurableSet_eq_fun /-
theorem nullMeasurableSet_eq_fun {E} [MeasurableSpace E] [AddGroup E] [MeasurableSingletonClass E]
[MeasurableSub₂ E] {f g : α → E} (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
NullMeasurableSet {x | f x = g x} μ :=
@@ -445,7 +480,9 @@ theorem nullMeasurableSet_eq_fun {E} [MeasurableSpace E] [AddGroup E] [Measurabl
change (hf.mk f x = hg.mk g x) = (f x = g x)
simp only [hfx, hgx]
#align null_measurable_set_eq_fun nullMeasurableSet_eq_fun
+-/
+#print measurableSet_eq_fun_of_countable /-
theorem measurableSet_eq_fun_of_countable {m : MeasurableSpace α} {E} [MeasurableSpace E]
[MeasurableSingletonClass E] [Countable E] {f g : α → E} (hf : Measurable f)
(hg : Measurable g) : MeasurableSet {x | f x = g x} :=
@@ -457,7 +494,9 @@ theorem measurableSet_eq_fun_of_countable {m : MeasurableSpace α} {E} [Measurab
· exact hf (measurable_set_singleton j)
· exact hg (measurable_set_singleton j)
#align measurable_set_eq_fun_of_countable measurableSet_eq_fun_of_countable
+-/
+#print ae_eq_trim_of_measurable /-
theorem ae_eq_trim_of_measurable {α E} {m m0 : MeasurableSpace α} {μ : Measure α}
[MeasurableSpace E] [AddGroup E] [MeasurableSingletonClass E] [MeasurableSub₂ E] (hm : m ≤ m0)
{f g : α → E} (hf : measurable[m] f) (hg : measurable[m] g) (hfg : f =ᵐ[μ] g) :
@@ -466,6 +505,7 @@ theorem ae_eq_trim_of_measurable {α E} {m m0 : MeasurableSpace α} {μ : Measur
rwa [Filter.EventuallyEq, ae_iff, trim_measurable_set_eq hm _]
exact @MeasurableSet.compl α _ m (@measurableSet_eq_fun α m E _ _ _ _ _ _ hf hg)
#align ae_eq_trim_of_measurable ae_eq_trim_of_measurable
+-/
end Div
@@ -489,6 +529,7 @@ export MeasurableInv (measurable_inv)
export MeasurableNeg (measurable_neg)
+#print measurableDiv_of_mul_inv /-
@[to_additive]
instance (priority := 100) measurableDiv_of_mul_inv (G : Type _) [MeasurableSpace G]
[DivInvMonoid G] [MeasurableMul G] [MeasurableInv G] : MeasurableDiv G
@@ -497,14 +538,13 @@ instance (priority := 100) measurableDiv_of_mul_inv (G : Type _) [MeasurableSpac
measurable_div_const c := by convert measurable_id.mul_const c⁻¹; ext1; apply div_eq_mul_inv
#align has_measurable_div_of_mul_inv measurableDiv_of_mul_inv
#align has_measurable_sub_of_add_neg measurableSub_of_add_neg
+-/
section Inv
variable {G α : Type _} [Inv G] [MeasurableSpace G] [MeasurableInv G] {m : MeasurableSpace α}
{f : α → G} {μ : Measure α}
-include m
-
#print Measurable.inv /-
@[measurability, to_additive]
theorem Measurable.inv (hf : Measurable f) : Measurable fun x => (f x)⁻¹ :=
@@ -523,33 +563,39 @@ theorem AEMeasurable.inv (hf : AEMeasurable f μ) : AEMeasurable (fun x => (f x)
attribute [measurability] Measurable.neg AEMeasurable.neg
+#print measurable_inv_iff /-
@[simp, to_additive]
theorem measurable_inv_iff {G : Type _} [Group G] [MeasurableSpace G] [MeasurableInv G]
{f : α → G} : (Measurable fun x => (f x)⁻¹) ↔ Measurable f :=
⟨fun h => by simpa only [inv_inv] using h.inv, fun h => h.inv⟩
#align measurable_inv_iff measurable_inv_iff
#align measurable_neg_iff measurable_neg_iff
+-/
+#print aemeasurable_inv_iff /-
@[simp, to_additive]
theorem aemeasurable_inv_iff {G : Type _} [Group G] [MeasurableSpace G] [MeasurableInv G]
{f : α → G} : AEMeasurable (fun x => (f x)⁻¹) μ ↔ AEMeasurable f μ :=
⟨fun h => by simpa only [inv_inv] using h.inv, fun h => h.inv⟩
#align ae_measurable_inv_iff aemeasurable_inv_iff
#align ae_measurable_neg_iff aemeasurable_neg_iff
+-/
+#print measurable_inv_iff₀ /-
@[simp]
theorem measurable_inv_iff₀ {G₀ : Type _} [GroupWithZero G₀] [MeasurableSpace G₀] [MeasurableInv G₀]
{f : α → G₀} : (Measurable fun x => (f x)⁻¹) ↔ Measurable f :=
⟨fun h => by simpa only [inv_inv] using h.inv, fun h => h.inv⟩
#align measurable_inv_iff₀ measurable_inv_iff₀
+-/
+#print aemeasurable_inv_iff₀ /-
@[simp]
theorem aemeasurable_inv_iff₀ {G₀ : Type _} [GroupWithZero G₀] [MeasurableSpace G₀]
[MeasurableInv G₀] {f : α → G₀} : AEMeasurable (fun x => (f x)⁻¹) μ ↔ AEMeasurable f μ :=
⟨fun h => by simpa only [inv_inv] using h.inv, fun h => h.inv⟩
#align ae_measurable_inv_iff₀ aemeasurable_inv_iff₀
-
-omit m
+-/
#print Pi.measurableInv /-
@[to_additive]
@@ -570,6 +616,7 @@ theorem MeasurableSet.inv {s : Set G} (hs : MeasurableSet s) : MeasurableSet s
end Inv
+#print DivInvMonoid.measurableZpow /-
/-- `div_inv_monoid.has_pow` is measurable. -/
instance DivInvMonoid.measurableZpow (G : Type u) [DivInvMonoid G] [MeasurableSpace G]
[MeasurableMul₂ G] [MeasurableInv G] : MeasurablePow G ℤ :=
@@ -578,13 +625,16 @@ instance DivInvMonoid.measurableZpow (G : Type u) [DivInvMonoid G] [MeasurableSp
· simp_rw [zpow_ofNat]; exact measurable_id.pow_const _
· simp_rw [zpow_negSucc]; exact (measurable_id.pow_const (n + 1)).inv⟩
#align div_inv_monoid.has_measurable_zpow DivInvMonoid.measurableZpow
+-/
+#print measurableDiv₂_of_mul_inv /-
@[to_additive]
instance (priority := 100) measurableDiv₂_of_mul_inv (G : Type _) [MeasurableSpace G]
[DivInvMonoid G] [MeasurableMul₂ G] [MeasurableInv G] : MeasurableDiv₂ G :=
⟨by simp only [div_eq_mul_inv]; exact measurable_fst.mul measurable_snd.inv⟩
#align has_measurable_div₂_of_mul_inv measurableDiv₂_of_mul_inv
#align has_measurable_div₂_of_add_neg measurableDiv₂_of_add_neg
+-/
#print MeasurableVAdd /-
/-- We say that the action of `M` on `α` `has_measurable_vadd` if for each `c` the map `x ↦ c +ᵥ x`
@@ -650,6 +700,7 @@ instance measurableSMul₂_of_mul (M : Type _) [Mul M] [MeasurableSpace M] [Meas
#align has_measurable_smul₂_of_add measurableSMul₂_of_add
-/
+#print Submonoid.measurableSMul /-
@[to_additive]
instance Submonoid.measurableSMul {M α} [MeasurableSpace M] [MeasurableSpace α] [Monoid M]
[MulAction M α] [MeasurableSMul M α] (s : Submonoid M) : MeasurableSMul s α :=
@@ -657,36 +708,39 @@ instance Submonoid.measurableSMul {M α} [MeasurableSpace M] [MeasurableSpace α
(measurable_smul_const x : Measurable fun c : M => c • x).comp measurable_subtype_coe⟩
#align submonoid.has_measurable_smul Submonoid.measurableSMul
#align add_submonoid.has_measurable_vadd AddSubmonoid.measurableVAdd
+-/
+#print Subgroup.measurableSMul /-
@[to_additive]
instance Subgroup.measurableSMul {G α} [MeasurableSpace G] [MeasurableSpace α] [Group G]
[MulAction G α] [MeasurableSMul G α] (s : Subgroup G) : MeasurableSMul s α :=
s.toSubmonoid.MeasurableSMul
#align subgroup.has_measurable_smul Subgroup.measurableSMul
#align add_subgroup.has_measurable_vadd AddSubgroup.measurableVAdd
+-/
section Smul
variable {M β α : Type _} [MeasurableSpace M] [MeasurableSpace β] [SMul M β] {m : MeasurableSpace α}
{f : α → M} {g : α → β}
-include m
-
+#print Measurable.smul /-
@[measurability, to_additive]
theorem Measurable.smul [MeasurableSMul₂ M β] (hf : Measurable f) (hg : Measurable g) :
Measurable fun x => f x • g x :=
measurable_smul.comp (hf.prod_mk hg)
#align measurable.smul Measurable.smul
#align measurable.vadd Measurable.vadd
+-/
+#print AEMeasurable.smul /-
@[measurability, to_additive]
theorem AEMeasurable.smul [MeasurableSMul₂ M β] {μ : Measure α} (hf : AEMeasurable f μ)
(hg : AEMeasurable g μ) : AEMeasurable (fun x => f x • g x) μ :=
MeasurableSMul₂.measurable_smul.comp_aemeasurable (hf.prod_mk hg)
#align ae_measurable.smul AEMeasurable.smul
#align ae_measurable.vadd AEMeasurable.vadd
-
-omit m
+-/
#print MeasurableSMul₂.toMeasurableSMul /-
@[to_additive]
@@ -697,22 +751,24 @@ instance (priority := 100) MeasurableSMul₂.toMeasurableSMul [MeasurableSMul₂
#align has_measurable_vadd₂.to_has_measurable_vadd MeasurableVAdd₂.toMeasurableVAdd
-/
-include m
-
variable [MeasurableSMul M β] {μ : Measure α}
+#print Measurable.smul_const /-
@[measurability, to_additive]
theorem Measurable.smul_const (hf : Measurable f) (y : β) : Measurable fun x => f x • y :=
(MeasurableSMul.measurable_smul_const y).comp hf
#align measurable.smul_const Measurable.smul_const
#align measurable.vadd_const Measurable.vadd_const
+-/
+#print AEMeasurable.smul_const /-
@[measurability, to_additive]
theorem AEMeasurable.smul_const (hf : AEMeasurable f μ) (y : β) :
AEMeasurable (fun x => f x • y) μ :=
(MeasurableSMul.measurable_smul_const y).comp_aemeasurable hf
#align ae_measurable.smul_const AEMeasurable.smul_const
#align ae_measurable.vadd_const AEMeasurable.vadd_const
+-/
#print Measurable.const_smul' /-
@[measurability, to_additive]
@@ -747,8 +803,6 @@ theorem AEMeasurable.const_smul (hf : AEMeasurable g μ) (c : M) : AEMeasurable
#align ae_measurable.const_vadd AEMeasurable.const_vadd
-/
-omit m
-
#print Pi.measurableSMul /-
@[to_additive]
instance Pi.measurableSMul {ι : Type _} {α : ι → Type _} [∀ i, SMul M (α i)]
@@ -759,6 +813,7 @@ instance Pi.measurableSMul {ι : Type _} {α : ι → Type _} [∀ i, SMul M (α
#align pi.has_measurable_vadd Pi.measurableVAdd
-/
+#print AddMonoid.measurableSMul_nat₂ /-
/-- `add_monoid.has_smul_nat` is measurable. -/
instance AddMonoid.measurableSMul_nat₂ (M : Type _) [AddMonoid M] [MeasurableSpace M]
[MeasurableAdd₂ M] : MeasurableSMul₂ ℕ M :=
@@ -769,7 +824,9 @@ instance AddMonoid.measurableSMul_nat₂ (M : Type _) [AddMonoid M] [MeasurableS
· simp only [zero_smul, ← Pi.zero_def, measurable_zero]
· simp only [succ_nsmul]; exact measurable_id.add ih⟩
#align add_monoid.has_measurable_smul_nat₂ AddMonoid.measurableSMul_nat₂
+-/
+#print SubNegMonoid.measurableSMul_int₂ /-
/-- `sub_neg_monoid.has_smul_int` is measurable. -/
instance SubNegMonoid.measurableSMul_int₂ (M : Type _) [SubNegMonoid M] [MeasurableSpace M]
[MeasurableAdd₂ M] [MeasurableNeg M] : MeasurableSMul₂ ℤ M :=
@@ -780,6 +837,7 @@ instance SubNegMonoid.measurableSMul_int₂ (M : Type _) [SubNegMonoid M] [Measu
· simp only [ofNat_zsmul]; exact measurable_const_smul _
· simp only [negSucc_zsmul]; exact (measurable_const_smul _).neg⟩
#align sub_neg_monoid.has_measurable_smul_int₂ SubNegMonoid.measurableSMul_int₂
+-/
end Smul
@@ -790,18 +848,22 @@ variable {M β α : Type _} [MeasurableSpace M] [MeasurableSpace β] [Monoid M]
variable {G : Type _} [Group G] [MeasurableSpace G] [MulAction G β] [MeasurableSMul G β]
+#print measurable_const_smul_iff /-
@[to_additive]
theorem measurable_const_smul_iff (c : G) : (Measurable fun x => c • f x) ↔ Measurable f :=
⟨fun h => by simpa only [inv_smul_smul] using h.const_smul' c⁻¹, fun h => h.const_smul c⟩
#align measurable_const_smul_iff measurable_const_smul_iff
#align measurable_const_vadd_iff measurable_const_vadd_iff
+-/
+#print aemeasurable_const_smul_iff /-
@[to_additive]
theorem aemeasurable_const_smul_iff (c : G) :
AEMeasurable (fun x => c • f x) μ ↔ AEMeasurable f μ :=
⟨fun h => by simpa only [inv_smul_smul] using h.const_smul' c⁻¹, fun h => h.const_smul c⟩
#align ae_measurable_const_smul_iff aemeasurable_const_smul_iff
#align ae_measurable_const_vadd_iff aemeasurable_const_vadd_iff
+-/
@[to_additive]
instance : MeasurableSpace Mˣ :=
@@ -818,6 +880,7 @@ instance Units.measurableSMul : MeasurableSMul Mˣ β
#align add_units.has_measurable_vadd AddUnits.measurableVAdd
-/
+#print IsUnit.measurable_const_smul_iff /-
@[to_additive]
theorem IsUnit.measurable_const_smul_iff {c : M} (hc : IsUnit c) :
(Measurable fun x => c • f x) ↔ Measurable f :=
@@ -825,7 +888,9 @@ theorem IsUnit.measurable_const_smul_iff {c : M} (hc : IsUnit c) :
hu ▸ measurable_const_smul_iff u
#align is_unit.measurable_const_smul_iff IsUnit.measurable_const_smul_iff
#align is_add_unit.measurable_const_vadd_iff IsAddUnit.measurable_const_vadd_iff
+-/
+#print IsUnit.aemeasurable_const_smul_iff /-
@[to_additive]
theorem IsUnit.aemeasurable_const_smul_iff {c : M} (hc : IsUnit c) :
AEMeasurable (fun x => c • f x) μ ↔ AEMeasurable f μ :=
@@ -833,19 +898,24 @@ theorem IsUnit.aemeasurable_const_smul_iff {c : M} (hc : IsUnit c) :
hu ▸ aemeasurable_const_smul_iff u
#align is_unit.ae_measurable_const_smul_iff IsUnit.aemeasurable_const_smul_iff
#align is_add_unit.ae_measurable_const_vadd_iff IsAddUnit.aemeasurable_const_vadd_iff
+-/
variable {G₀ : Type _} [GroupWithZero G₀] [MeasurableSpace G₀] [MulAction G₀ β]
[MeasurableSMul G₀ β]
+#print measurable_const_smul_iff₀ /-
theorem measurable_const_smul_iff₀ {c : G₀} (hc : c ≠ 0) :
(Measurable fun x => c • f x) ↔ Measurable f :=
(IsUnit.mk0 c hc).measurable_const_smul_iff
#align measurable_const_smul_iff₀ measurable_const_smul_iff₀
+-/
+#print aemeasurable_const_smul_iff₀ /-
theorem aemeasurable_const_smul_iff₀ {c : G₀} (hc : c ≠ 0) :
AEMeasurable (fun x => c • f x) μ ↔ AEMeasurable f μ :=
(IsUnit.mk0 c hc).aemeasurable_const_smul_iff
#align ae_measurable_const_smul_iff₀ aemeasurable_const_smul_iff₀
+-/
end MulAction
@@ -942,8 +1012,7 @@ section Monoid
variable {M α : Type _} [Monoid M] [MeasurableSpace M] [MeasurableMul₂ M] {m : MeasurableSpace α}
{μ : Measure α}
-include m
-
+#print List.measurable_prod' /-
@[measurability, to_additive]
theorem List.measurable_prod' (l : List (α → M)) (hl : ∀ f ∈ l, Measurable f) : Measurable l.Prod :=
by
@@ -953,7 +1022,9 @@ theorem List.measurable_prod' (l : List (α → M)) (hl : ∀ f ∈ l, Measurabl
exact hl.1.mul (ihl hl.2)
#align list.measurable_prod' List.measurable_prod'
#align list.measurable_sum' List.measurable_sum'
+-/
+#print List.aemeasurable_prod' /-
@[measurability, to_additive]
theorem List.aemeasurable_prod' (l : List (α → M)) (hl : ∀ f ∈ l, AEMeasurable f μ) :
AEMeasurable l.Prod μ := by
@@ -963,22 +1034,25 @@ theorem List.aemeasurable_prod' (l : List (α → M)) (hl : ∀ f ∈ l, AEMeasu
exact hl.1.mul (ihl hl.2)
#align list.ae_measurable_prod' List.aemeasurable_prod'
#align list.ae_measurable_sum' List.aemeasurable_sum'
+-/
+#print List.measurable_prod /-
@[measurability, to_additive]
theorem List.measurable_prod (l : List (α → M)) (hl : ∀ f ∈ l, Measurable f) :
Measurable fun x => (l.map fun f : α → M => f x).Prod := by
simpa only [← Pi.list_prod_apply] using l.measurable_prod' hl
#align list.measurable_prod List.measurable_prod
#align list.measurable_sum List.measurable_sum
+-/
+#print List.aemeasurable_prod /-
@[measurability, to_additive]
theorem List.aemeasurable_prod (l : List (α → M)) (hl : ∀ f ∈ l, AEMeasurable f μ) :
AEMeasurable (fun x => (l.map fun f : α → M => f x).Prod) μ := by
simpa only [← Pi.list_prod_apply] using l.ae_measurable_prod' hl
#align list.ae_measurable_prod List.aemeasurable_prod
#align list.ae_measurable_sum List.aemeasurable_sum
-
-omit m
+-/
end Monoid
@@ -987,49 +1061,60 @@ section CommMonoid
variable {M ι α : Type _} [CommMonoid M] [MeasurableSpace M] [MeasurableMul₂ M]
{m : MeasurableSpace α} {μ : Measure α} {f : ι → α → M}
-include m
-
+#print Multiset.measurable_prod' /-
@[measurability, to_additive]
theorem Multiset.measurable_prod' (l : Multiset (α → M)) (hl : ∀ f ∈ l, Measurable f) :
Measurable l.Prod := by rcases l with ⟨l⟩; simpa using l.measurable_prod' (by simpa using hl)
#align multiset.measurable_prod' Multiset.measurable_prod'
#align multiset.measurable_sum' Multiset.measurable_sum'
+-/
+#print Multiset.aemeasurable_prod' /-
@[measurability, to_additive]
theorem Multiset.aemeasurable_prod' (l : Multiset (α → M)) (hl : ∀ f ∈ l, AEMeasurable f μ) :
AEMeasurable l.Prod μ := by rcases l with ⟨l⟩;
simpa using l.ae_measurable_prod' (by simpa using hl)
#align multiset.ae_measurable_prod' Multiset.aemeasurable_prod'
#align multiset.ae_measurable_sum' Multiset.aemeasurable_sum'
+-/
+#print Multiset.measurable_prod /-
@[measurability, to_additive]
theorem Multiset.measurable_prod (s : Multiset (α → M)) (hs : ∀ f ∈ s, Measurable f) :
Measurable fun x => (s.map fun f : α → M => f x).Prod := by
simpa only [← Pi.multiset_prod_apply] using s.measurable_prod' hs
#align multiset.measurable_prod Multiset.measurable_prod
#align multiset.measurable_sum Multiset.measurable_sum
+-/
+#print Multiset.aemeasurable_prod /-
@[measurability, to_additive]
theorem Multiset.aemeasurable_prod (s : Multiset (α → M)) (hs : ∀ f ∈ s, AEMeasurable f μ) :
AEMeasurable (fun x => (s.map fun f : α → M => f x).Prod) μ := by
simpa only [← Pi.multiset_prod_apply] using s.ae_measurable_prod' hs
#align multiset.ae_measurable_prod Multiset.aemeasurable_prod
#align multiset.ae_measurable_sum Multiset.aemeasurable_sum
+-/
+#print Finset.measurable_prod' /-
@[measurability, to_additive]
theorem Finset.measurable_prod' (s : Finset ι) (hf : ∀ i ∈ s, Measurable (f i)) :
Measurable (∏ i in s, f i) :=
Finset.prod_induction _ _ (fun _ _ => Measurable.mul) (@measurable_one M _ _ _ _) hf
#align finset.measurable_prod' Finset.measurable_prod'
#align finset.measurable_sum' Finset.measurable_sum'
+-/
+#print Finset.measurable_prod /-
@[measurability, to_additive]
theorem Finset.measurable_prod (s : Finset ι) (hf : ∀ i ∈ s, Measurable (f i)) :
Measurable fun a => ∏ i in s, f i a := by
simpa only [← Finset.prod_apply] using s.measurable_prod' hf
#align finset.measurable_prod Finset.measurable_prod
#align finset.measurable_sum Finset.measurable_sum
+-/
+#print Finset.aemeasurable_prod' /-
@[measurability, to_additive]
theorem Finset.aemeasurable_prod' (s : Finset ι) (hf : ∀ i ∈ s, AEMeasurable (f i) μ) :
AEMeasurable (∏ i in s, f i) μ :=
@@ -1038,15 +1123,16 @@ theorem Finset.aemeasurable_prod' (s : Finset ι) (hf : ∀ i ∈ s, AEMeasurabl
hg ▸ hf _ hi
#align finset.ae_measurable_prod' Finset.aemeasurable_prod'
#align finset.ae_measurable_sum' Finset.aemeasurable_sum'
+-/
+#print Finset.aemeasurable_prod /-
@[measurability, to_additive]
theorem Finset.aemeasurable_prod (s : Finset ι) (hf : ∀ i ∈ s, AEMeasurable (f i) μ) :
AEMeasurable (fun a => ∏ i in s, f i a) μ := by
simpa only [← Finset.prod_apply] using s.ae_measurable_prod' hf
#align finset.ae_measurable_prod Finset.aemeasurable_prod
#align finset.ae_measurable_sum Finset.aemeasurable_sum
-
-omit m
+-/
end CommMonoid
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -427,9 +427,9 @@ instance Pi.measurableDiv₂ {ι : Type _} {α : ι → Type _} [∀ i, Div (α
@[measurability]
theorem measurableSet_eq_fun {m : MeasurableSpace α} {E} [MeasurableSpace E] [AddGroup E]
[MeasurableSingletonClass E] [MeasurableSub₂ E] {f g : α → E} (hf : Measurable f)
- (hg : Measurable g) : MeasurableSet { x | f x = g x } :=
+ (hg : Measurable g) : MeasurableSet {x | f x = g x} :=
by
- suffices h_set_eq : { x : α | f x = g x } = { x | (f - g) x = (0 : E) }
+ suffices h_set_eq : {x : α | f x = g x} = {x | (f - g) x = (0 : E)}
· rw [h_set_eq]
exact (hf.sub hg) measurableSet_eq
ext
@@ -438,19 +438,19 @@ theorem measurableSet_eq_fun {m : MeasurableSpace α} {E} [MeasurableSpace E] [A
theorem nullMeasurableSet_eq_fun {E} [MeasurableSpace E] [AddGroup E] [MeasurableSingletonClass E]
[MeasurableSub₂ E] {f g : α → E} (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
- NullMeasurableSet { x | f x = g x } μ :=
+ NullMeasurableSet {x | f x = g x} μ :=
by
apply (measurableSet_eq_fun hf.measurable_mk hg.measurable_mk).NullMeasurableSet.congr
- filter_upwards [hf.ae_eq_mk, hg.ae_eq_mk]with x hfx hgx
+ filter_upwards [hf.ae_eq_mk, hg.ae_eq_mk] with x hfx hgx
change (hf.mk f x = hg.mk g x) = (f x = g x)
simp only [hfx, hgx]
#align null_measurable_set_eq_fun nullMeasurableSet_eq_fun
theorem measurableSet_eq_fun_of_countable {m : MeasurableSpace α} {E} [MeasurableSpace E]
[MeasurableSingletonClass E] [Countable E] {f g : α → E} (hf : Measurable f)
- (hg : Measurable g) : MeasurableSet { x | f x = g x } :=
+ (hg : Measurable g) : MeasurableSet {x | f x = g x} :=
by
- have : { x | f x = g x } = ⋃ j, { x | f x = j } ∩ { x | g x = j } := by ext1 x;
+ have : {x | f x = g x} = ⋃ j, {x | f x = j} ∩ {x | g x = j} := by ext1 x;
simp only [Set.mem_setOf_eq, Set.mem_iUnion, Set.mem_inter_iff, exists_eq_right']
rw [this]
refine' MeasurableSet.iUnion fun j => MeasurableSet.inter _ _
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -202,8 +202,8 @@ instance Pi.measurableMul₂ {ι : Type _} {α : ι → Type _} [∀ i, Mul (α
#align pi.has_measurable_add₂ Pi.measurableAdd₂
-/
-attribute [measurability]
- Measurable.add' Measurable.add AEMeasurable.add AEMeasurable.add' Measurable.const_add AEMeasurable.const_add Measurable.add_const AEMeasurable.add_const
+attribute [measurability] Measurable.add' Measurable.add AEMeasurable.add AEMeasurable.add'
+ Measurable.const_add AEMeasurable.const_add Measurable.add_const AEMeasurable.add_const
end Mul
@@ -392,8 +392,8 @@ theorem AEMeasurable.div [MeasurableDiv₂ G] (hf : AEMeasurable f μ) (hg : AEM
#align ae_measurable.div AEMeasurable.div
#align ae_measurable.sub AEMeasurable.sub
-attribute [measurability]
- Measurable.sub Measurable.sub' AEMeasurable.sub AEMeasurable.sub' Measurable.const_sub AEMeasurable.const_sub Measurable.sub_const AEMeasurable.sub_const
+attribute [measurability] Measurable.sub Measurable.sub' AEMeasurable.sub AEMeasurable.sub'
+ Measurable.const_sub AEMeasurable.const_sub Measurable.sub_const AEMeasurable.sub_const
omit m
@@ -948,7 +948,7 @@ include m
theorem List.measurable_prod' (l : List (α → M)) (hl : ∀ f ∈ l, Measurable f) : Measurable l.Prod :=
by
induction' l with f l ihl; · exact measurable_one
- rw [List.forall_mem_cons] at hl
+ rw [List.forall_mem_cons] at hl
rw [List.prod_cons]
exact hl.1.mul (ihl hl.2)
#align list.measurable_prod' List.measurable_prod'
@@ -958,7 +958,7 @@ theorem List.measurable_prod' (l : List (α → M)) (hl : ∀ f ∈ l, Measurabl
theorem List.aemeasurable_prod' (l : List (α → M)) (hl : ∀ f ∈ l, AEMeasurable f μ) :
AEMeasurable l.Prod μ := by
induction' l with f l ihl; · exact aemeasurable_one
- rw [List.forall_mem_cons] at hl
+ rw [List.forall_mem_cons] at hl
rw [List.prod_cons]
exact hl.1.mul (ihl hl.2)
#align list.ae_measurable_prod' List.aemeasurable_prod'
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -53,7 +53,7 @@ measurable function, arithmetic operator
universe u v
-open BigOperators Pointwise MeasureTheory
+open scoped BigOperators Pointwise MeasureTheory
open MeasureTheory
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -117,12 +117,6 @@ variable {M α : Type _} [MeasurableSpace M] [Mul M] {m : MeasurableSpace α} {f
include m
-/- warning: measurable.const_mul -> Measurable.const_mul is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {α : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} M] [_inst_2 : Mul.{u1} M] {m : MeasurableSpace.{u2} α} {f : α -> M} [_inst_3 : MeasurableMul.{u1} M _inst_1 _inst_2], (Measurable.{u2, u1} α M m _inst_1 f) -> (forall (c : M), Measurable.{u2, u1} α M m _inst_1 (fun (x : α) => HMul.hMul.{u1, u1, u1} M M M (instHMul.{u1} M _inst_2) c (f x)))
-but is expected to have type
- forall {M : Type.{u2}} {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} M] [_inst_2 : Mul.{u2} M] {m : MeasurableSpace.{u1} α} {f : α -> M} [_inst_3 : MeasurableMul.{u2} M _inst_1 _inst_2], (Measurable.{u1, u2} α M m _inst_1 f) -> (forall (c : M), Measurable.{u1, u2} α M m _inst_1 (fun (x : α) => HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M _inst_2) c (f x)))
-Case conversion may be inaccurate. Consider using '#align measurable.const_mul Measurable.const_mulₓ'. -/
@[measurability, to_additive]
theorem Measurable.const_mul [MeasurableMul M] (hf : Measurable f) (c : M) :
Measurable fun x => c * f x :=
@@ -130,12 +124,6 @@ theorem Measurable.const_mul [MeasurableMul M] (hf : Measurable f) (c : M) :
#align measurable.const_mul Measurable.const_mul
#align measurable.const_add Measurable.const_add
-/- warning: ae_measurable.const_mul -> AEMeasurable.const_mul is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {α : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} M] [_inst_2 : Mul.{u1} M] {m : MeasurableSpace.{u2} α} {f : α -> M} {μ : MeasureTheory.Measure.{u2} α m} [_inst_3 : MeasurableMul.{u1} M _inst_1 _inst_2], (AEMeasurable.{u2, u1} α M _inst_1 m f μ) -> (forall (c : M), AEMeasurable.{u2, u1} α M _inst_1 m (fun (x : α) => HMul.hMul.{u1, u1, u1} M M M (instHMul.{u1} M _inst_2) c (f x)) μ)
-but is expected to have type
- forall {M : Type.{u2}} {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} M] [_inst_2 : Mul.{u2} M] {m : MeasurableSpace.{u1} α} {f : α -> M} {μ : MeasureTheory.Measure.{u1} α m} [_inst_3 : MeasurableMul.{u2} M _inst_1 _inst_2], (AEMeasurable.{u1, u2} α M _inst_1 m f μ) -> (forall (c : M), AEMeasurable.{u1, u2} α M _inst_1 m (fun (x : α) => HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M _inst_2) c (f x)) μ)
-Case conversion may be inaccurate. Consider using '#align ae_measurable.const_mul AEMeasurable.const_mulₓ'. -/
@[measurability, to_additive]
theorem AEMeasurable.const_mul [MeasurableMul M] (hf : AEMeasurable f μ) (c : M) :
AEMeasurable (fun x => c * f x) μ :=
@@ -143,12 +131,6 @@ theorem AEMeasurable.const_mul [MeasurableMul M] (hf : AEMeasurable f μ) (c : M
#align ae_measurable.const_mul AEMeasurable.const_mul
#align ae_measurable.const_add AEMeasurable.const_add
-/- warning: measurable.mul_const -> Measurable.mul_const is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {α : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} M] [_inst_2 : Mul.{u1} M] {m : MeasurableSpace.{u2} α} {f : α -> M} [_inst_3 : MeasurableMul.{u1} M _inst_1 _inst_2], (Measurable.{u2, u1} α M m _inst_1 f) -> (forall (c : M), Measurable.{u2, u1} α M m _inst_1 (fun (x : α) => HMul.hMul.{u1, u1, u1} M M M (instHMul.{u1} M _inst_2) (f x) c))
-but is expected to have type
- forall {M : Type.{u2}} {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} M] [_inst_2 : Mul.{u2} M] {m : MeasurableSpace.{u1} α} {f : α -> M} [_inst_3 : MeasurableMul.{u2} M _inst_1 _inst_2], (Measurable.{u1, u2} α M m _inst_1 f) -> (forall (c : M), Measurable.{u1, u2} α M m _inst_1 (fun (x : α) => HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M _inst_2) (f x) c))
-Case conversion may be inaccurate. Consider using '#align measurable.mul_const Measurable.mul_constₓ'. -/
@[measurability, to_additive]
theorem Measurable.mul_const [MeasurableMul M] (hf : Measurable f) (c : M) :
Measurable fun x => f x * c :=
@@ -156,12 +138,6 @@ theorem Measurable.mul_const [MeasurableMul M] (hf : Measurable f) (c : M) :
#align measurable.mul_const Measurable.mul_const
#align measurable.add_const Measurable.add_const
-/- warning: ae_measurable.mul_const -> AEMeasurable.mul_const is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {α : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} M] [_inst_2 : Mul.{u1} M] {m : MeasurableSpace.{u2} α} {f : α -> M} {μ : MeasureTheory.Measure.{u2} α m} [_inst_3 : MeasurableMul.{u1} M _inst_1 _inst_2], (AEMeasurable.{u2, u1} α M _inst_1 m f μ) -> (forall (c : M), AEMeasurable.{u2, u1} α M _inst_1 m (fun (x : α) => HMul.hMul.{u1, u1, u1} M M M (instHMul.{u1} M _inst_2) (f x) c) μ)
-but is expected to have type
- forall {M : Type.{u2}} {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} M] [_inst_2 : Mul.{u2} M] {m : MeasurableSpace.{u1} α} {f : α -> M} {μ : MeasureTheory.Measure.{u1} α m} [_inst_3 : MeasurableMul.{u2} M _inst_1 _inst_2], (AEMeasurable.{u1, u2} α M _inst_1 m f μ) -> (forall (c : M), AEMeasurable.{u1, u2} α M _inst_1 m (fun (x : α) => HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M _inst_2) (f x) c) μ)
-Case conversion may be inaccurate. Consider using '#align ae_measurable.mul_const AEMeasurable.mul_constₓ'. -/
@[measurability, to_additive]
theorem AEMeasurable.mul_const [MeasurableMul M] (hf : AEMeasurable f μ) (c : M) :
AEMeasurable (fun x => f x * c) μ :=
@@ -169,12 +145,6 @@ theorem AEMeasurable.mul_const [MeasurableMul M] (hf : AEMeasurable f μ) (c : M
#align ae_measurable.mul_const AEMeasurable.mul_const
#align ae_measurable.add_const AEMeasurable.add_const
-/- warning: measurable.mul' -> Measurable.mul' is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {α : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} M] [_inst_2 : Mul.{u1} M] {m : MeasurableSpace.{u2} α} {f : α -> M} {g : α -> M} [_inst_3 : MeasurableMul₂.{u1} M _inst_1 _inst_2], (Measurable.{u2, u1} α M m _inst_1 f) -> (Measurable.{u2, u1} α M m _inst_1 g) -> (Measurable.{u2, u1} α M m _inst_1 (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (α -> M) (α -> M) (α -> M) (instHMul.{max u2 u1} (α -> M) (Pi.instMul.{u2, u1} α (fun (ᾰ : α) => M) (fun (i : α) => _inst_2))) f g))
-but is expected to have type
- forall {M : Type.{u2}} {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} M] [_inst_2 : Mul.{u2} M] {m : MeasurableSpace.{u1} α} {f : α -> M} {g : α -> M} [_inst_3 : MeasurableMul₂.{u2} M _inst_1 _inst_2], (Measurable.{u1, u2} α M m _inst_1 f) -> (Measurable.{u1, u2} α M m _inst_1 g) -> (Measurable.{u1, u2} α M m _inst_1 (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (α -> M) (α -> M) (α -> M) (instHMul.{max u2 u1} (α -> M) (Pi.instMul.{u1, u2} α (fun (ᾰ : α) => M) (fun (i : α) => _inst_2))) f g))
-Case conversion may be inaccurate. Consider using '#align measurable.mul' Measurable.mul'ₓ'. -/
@[measurability, to_additive]
theorem Measurable.mul' [MeasurableMul₂ M] (hf : Measurable f) (hg : Measurable g) :
Measurable (f * g) :=
@@ -182,12 +152,6 @@ theorem Measurable.mul' [MeasurableMul₂ M] (hf : Measurable f) (hg : Measurabl
#align measurable.mul' Measurable.mul'
#align measurable.add' Measurable.add'
-/- warning: measurable.mul -> Measurable.mul is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {α : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} M] [_inst_2 : Mul.{u1} M] {m : MeasurableSpace.{u2} α} {f : α -> M} {g : α -> M} [_inst_3 : MeasurableMul₂.{u1} M _inst_1 _inst_2], (Measurable.{u2, u1} α M m _inst_1 f) -> (Measurable.{u2, u1} α M m _inst_1 g) -> (Measurable.{u2, u1} α M m _inst_1 (fun (a : α) => HMul.hMul.{u1, u1, u1} M M M (instHMul.{u1} M _inst_2) (f a) (g a)))
-but is expected to have type
- forall {M : Type.{u2}} {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} M] [_inst_2 : Mul.{u2} M] {m : MeasurableSpace.{u1} α} {f : α -> M} {g : α -> M} [_inst_3 : MeasurableMul₂.{u2} M _inst_1 _inst_2], (Measurable.{u1, u2} α M m _inst_1 f) -> (Measurable.{u1, u2} α M m _inst_1 g) -> (Measurable.{u1, u2} α M m _inst_1 (fun (a : α) => HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M _inst_2) (f a) (g a)))
-Case conversion may be inaccurate. Consider using '#align measurable.mul Measurable.mulₓ'. -/
@[measurability, to_additive]
theorem Measurable.mul [MeasurableMul₂ M] (hf : Measurable f) (hg : Measurable g) :
Measurable fun a => f a * g a :=
@@ -195,12 +159,6 @@ theorem Measurable.mul [MeasurableMul₂ M] (hf : Measurable f) (hg : Measurable
#align measurable.mul Measurable.mul
#align measurable.add Measurable.add
-/- warning: ae_measurable.mul' -> AEMeasurable.mul' is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {α : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} M] [_inst_2 : Mul.{u1} M] {m : MeasurableSpace.{u2} α} {f : α -> M} {g : α -> M} {μ : MeasureTheory.Measure.{u2} α m} [_inst_3 : MeasurableMul₂.{u1} M _inst_1 _inst_2], (AEMeasurable.{u2, u1} α M _inst_1 m f μ) -> (AEMeasurable.{u2, u1} α M _inst_1 m g μ) -> (AEMeasurable.{u2, u1} α M _inst_1 m (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (α -> M) (α -> M) (α -> M) (instHMul.{max u2 u1} (α -> M) (Pi.instMul.{u2, u1} α (fun (ᾰ : α) => M) (fun (i : α) => _inst_2))) f g) μ)
-but is expected to have type
- forall {M : Type.{u2}} {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} M] [_inst_2 : Mul.{u2} M] {m : MeasurableSpace.{u1} α} {f : α -> M} {g : α -> M} {μ : MeasureTheory.Measure.{u1} α m} [_inst_3 : MeasurableMul₂.{u2} M _inst_1 _inst_2], (AEMeasurable.{u1, u2} α M _inst_1 m f μ) -> (AEMeasurable.{u1, u2} α M _inst_1 m g μ) -> (AEMeasurable.{u1, u2} α M _inst_1 m (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (α -> M) (α -> M) (α -> M) (instHMul.{max u2 u1} (α -> M) (Pi.instMul.{u1, u2} α (fun (ᾰ : α) => M) (fun (i : α) => _inst_2))) f g) μ)
-Case conversion may be inaccurate. Consider using '#align ae_measurable.mul' AEMeasurable.mul'ₓ'. -/
@[measurability, to_additive]
theorem AEMeasurable.mul' [MeasurableMul₂ M] (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
AEMeasurable (f * g) μ :=
@@ -208,12 +166,6 @@ theorem AEMeasurable.mul' [MeasurableMul₂ M] (hf : AEMeasurable f μ) (hg : AE
#align ae_measurable.mul' AEMeasurable.mul'
#align ae_measurable.add' AEMeasurable.add'
-/- warning: ae_measurable.mul -> AEMeasurable.mul is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {α : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} M] [_inst_2 : Mul.{u1} M] {m : MeasurableSpace.{u2} α} {f : α -> M} {g : α -> M} {μ : MeasureTheory.Measure.{u2} α m} [_inst_3 : MeasurableMul₂.{u1} M _inst_1 _inst_2], (AEMeasurable.{u2, u1} α M _inst_1 m f μ) -> (AEMeasurable.{u2, u1} α M _inst_1 m g μ) -> (AEMeasurable.{u2, u1} α M _inst_1 m (fun (a : α) => HMul.hMul.{u1, u1, u1} M M M (instHMul.{u1} M _inst_2) (f a) (g a)) μ)
-but is expected to have type
- forall {M : Type.{u2}} {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} M] [_inst_2 : Mul.{u2} M] {m : MeasurableSpace.{u1} α} {f : α -> M} {g : α -> M} {μ : MeasureTheory.Measure.{u1} α m} [_inst_3 : MeasurableMul₂.{u2} M _inst_1 _inst_2], (AEMeasurable.{u1, u2} α M _inst_1 m f μ) -> (AEMeasurable.{u1, u2} α M _inst_1 m g μ) -> (AEMeasurable.{u1, u2} α M _inst_1 m (fun (a : α) => HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M _inst_2) (f a) (g a)) μ)
-Case conversion may be inaccurate. Consider using '#align ae_measurable.mul AEMeasurable.mulₓ'. -/
@[measurability, to_additive]
theorem AEMeasurable.mul [MeasurableMul₂ M] (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
AEMeasurable (fun a => f a * g a) μ :=
@@ -255,12 +207,6 @@ attribute [measurability]
end Mul
-/- warning: measurable_div_const' -> measurable_div_const' is a dubious translation:
-lean 3 declaration is
- forall {G : Type.{u1}} [_inst_1 : DivInvMonoid.{u1} G] [_inst_2 : MeasurableSpace.{u1} G] [_inst_3 : MeasurableMul.{u1} G _inst_2 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G _inst_1)))] (g : G), Measurable.{u1, u1} G G _inst_2 _inst_2 (fun (h : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G _inst_1)) h g)
-but is expected to have type
- forall {G : Type.{u1}} [_inst_1 : DivInvMonoid.{u1} G] [_inst_2 : MeasurableSpace.{u1} G] [_inst_3 : MeasurableMul.{u1} G _inst_2 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G _inst_1)))] (g : G), Measurable.{u1, u1} G G _inst_2 _inst_2 (fun (h : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G _inst_1)) h g)
-Case conversion may be inaccurate. Consider using '#align measurable_div_const' measurable_div_const'ₓ'. -/
/-- A version of `measurable_div_const` that assumes `has_measurable_mul` instead of
`has_measurable_div`. This can be nice to avoid unnecessary type-class assumptions. -/
@[to_additive
@@ -279,12 +225,6 @@ class MeasurablePow (β γ : Type _) [MeasurableSpace β] [MeasurableSpace γ] [
export MeasurablePow (measurable_pow)
-/- warning: monoid.has_measurable_pow -> Monoid.measurablePow is a dubious translation:
-lean 3 declaration is
- forall (M : Type.{u1}) [_inst_1 : Monoid.{u1} M] [_inst_2 : MeasurableSpace.{u1} M] [_inst_3 : MeasurableMul₂.{u1} M _inst_2 (MulOneClass.toHasMul.{u1} M (Monoid.toMulOneClass.{u1} M _inst_1))], MeasurablePow.{u1, 0} M Nat _inst_2 Nat.instMeasurableSpace (Monoid.Pow.{u1} M _inst_1)
-but is expected to have type
- forall (M : Type.{u1}) [_inst_1 : Monoid.{u1} M] [_inst_2 : MeasurableSpace.{u1} M] [_inst_3 : MeasurableMul₂.{u1} M _inst_2 (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M _inst_1))], MeasurablePow.{u1, 0} M Nat _inst_2 Nat.instMeasurableSpace (Monoid.Pow.{u1} M _inst_1)
-Case conversion may be inaccurate. Consider using '#align monoid.has_measurable_pow Monoid.measurablePowₓ'. -/
/-- `monoid.has_pow` is measurable. -/
instance Monoid.measurablePow (M : Type _) [Monoid M] [MeasurableSpace M] [MeasurableMul₂ M] :
MeasurablePow M ℕ :=
@@ -302,46 +242,22 @@ variable {β γ α : Type _} [MeasurableSpace β] [MeasurableSpace γ] [Pow β
include m
-/- warning: measurable.pow -> Measurable.pow 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 : Pow.{u1, u2} β γ] [_inst_4 : MeasurablePow.{u1, u2} β γ _inst_1 _inst_2 _inst_3] {m : MeasurableSpace.{u3} α} {f : α -> β} {g : α -> γ}, (Measurable.{u3, u1} α β m _inst_1 f) -> (Measurable.{u3, u2} α γ m _inst_2 g) -> (Measurable.{u3, u1} α β m _inst_1 (fun (x : α) => HPow.hPow.{u1, u2, u1} β γ β (instHPow.{u1, u2} β γ _inst_3) (f x) (g x)))
-but is expected to have type
- forall {β : Type.{u2}} {γ : Type.{u1}} {α : Type.{u3}} [_inst_1 : MeasurableSpace.{u2} β] [_inst_2 : MeasurableSpace.{u1} γ] [_inst_3 : Pow.{u2, u1} β γ] [_inst_4 : MeasurablePow.{u2, u1} β γ _inst_1 _inst_2 _inst_3] {m : MeasurableSpace.{u3} α} {f : α -> β} {g : α -> γ}, (Measurable.{u3, u2} α β m _inst_1 f) -> (Measurable.{u3, u1} α γ m _inst_2 g) -> (Measurable.{u3, u2} α β m _inst_1 (fun (x : α) => HPow.hPow.{u2, u1, u2} β γ β (instHPow.{u2, u1} β γ _inst_3) (f x) (g x)))
-Case conversion may be inaccurate. Consider using '#align measurable.pow Measurable.powₓ'. -/
@[measurability]
theorem Measurable.pow (hf : Measurable f) (hg : Measurable g) : Measurable fun x => f x ^ g x :=
measurable_pow.comp (hf.prod_mk hg)
#align measurable.pow Measurable.pow
-/- warning: ae_measurable.pow -> AEMeasurable.pow 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 : Pow.{u1, u2} β γ] [_inst_4 : MeasurablePow.{u1, u2} β γ _inst_1 _inst_2 _inst_3] {m : MeasurableSpace.{u3} α} {μ : MeasureTheory.Measure.{u3} α m} {f : α -> β} {g : α -> γ}, (AEMeasurable.{u3, u1} α β _inst_1 m f μ) -> (AEMeasurable.{u3, u2} α γ _inst_2 m g μ) -> (AEMeasurable.{u3, u1} α β _inst_1 m (fun (x : α) => HPow.hPow.{u1, u2, u1} β γ β (instHPow.{u1, u2} β γ _inst_3) (f x) (g x)) μ)
-but is expected to have type
- forall {β : Type.{u2}} {γ : Type.{u1}} {α : Type.{u3}} [_inst_1 : MeasurableSpace.{u2} β] [_inst_2 : MeasurableSpace.{u1} γ] [_inst_3 : Pow.{u2, u1} β γ] [_inst_4 : MeasurablePow.{u2, u1} β γ _inst_1 _inst_2 _inst_3] {m : MeasurableSpace.{u3} α} {μ : MeasureTheory.Measure.{u3} α m} {f : α -> β} {g : α -> γ}, (AEMeasurable.{u3, u2} α β _inst_1 m f μ) -> (AEMeasurable.{u3, u1} α γ _inst_2 m g μ) -> (AEMeasurable.{u3, u2} α β _inst_1 m (fun (x : α) => HPow.hPow.{u2, u1, u2} β γ β (instHPow.{u2, u1} β γ _inst_3) (f x) (g x)) μ)
-Case conversion may be inaccurate. Consider using '#align ae_measurable.pow AEMeasurable.powₓ'. -/
@[measurability]
theorem AEMeasurable.pow (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
AEMeasurable (fun x => f x ^ g x) μ :=
measurable_pow.comp_aemeasurable (hf.prod_mk hg)
#align ae_measurable.pow AEMeasurable.pow
-/- warning: measurable.pow_const -> Measurable.pow_const 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 : Pow.{u1, u2} β γ] [_inst_4 : MeasurablePow.{u1, u2} β γ _inst_1 _inst_2 _inst_3] {m : MeasurableSpace.{u3} α} {f : α -> β}, (Measurable.{u3, u1} α β m _inst_1 f) -> (forall (c : γ), Measurable.{u3, u1} α β m _inst_1 (fun (x : α) => HPow.hPow.{u1, u2, u1} β γ β (instHPow.{u1, u2} β γ _inst_3) (f x) c))
-but is expected to have type
- forall {β : Type.{u2}} {γ : Type.{u1}} {α : Type.{u3}} [_inst_1 : MeasurableSpace.{u2} β] [_inst_2 : MeasurableSpace.{u1} γ] [_inst_3 : Pow.{u2, u1} β γ] [_inst_4 : MeasurablePow.{u2, u1} β γ _inst_1 _inst_2 _inst_3] {m : MeasurableSpace.{u3} α} {f : α -> β}, (Measurable.{u3, u2} α β m _inst_1 f) -> (forall (c : γ), Measurable.{u3, u2} α β m _inst_1 (fun (x : α) => HPow.hPow.{u2, u1, u2} β γ β (instHPow.{u2, u1} β γ _inst_3) (f x) c))
-Case conversion may be inaccurate. Consider using '#align measurable.pow_const Measurable.pow_constₓ'. -/
@[measurability]
theorem Measurable.pow_const (hf : Measurable f) (c : γ) : Measurable fun x => f x ^ c :=
hf.pow measurable_const
#align measurable.pow_const Measurable.pow_const
-/- warning: ae_measurable.pow_const -> AEMeasurable.pow_const 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 : Pow.{u1, u2} β γ] [_inst_4 : MeasurablePow.{u1, u2} β γ _inst_1 _inst_2 _inst_3] {m : MeasurableSpace.{u3} α} {μ : MeasureTheory.Measure.{u3} α m} {f : α -> β}, (AEMeasurable.{u3, u1} α β _inst_1 m f μ) -> (forall (c : γ), AEMeasurable.{u3, u1} α β _inst_1 m (fun (x : α) => HPow.hPow.{u1, u2, u1} β γ β (instHPow.{u1, u2} β γ _inst_3) (f x) c) μ)
-but is expected to have type
- forall {β : Type.{u2}} {γ : Type.{u1}} {α : Type.{u3}} [_inst_1 : MeasurableSpace.{u2} β] [_inst_2 : MeasurableSpace.{u1} γ] [_inst_3 : Pow.{u2, u1} β γ] [_inst_4 : MeasurablePow.{u2, u1} β γ _inst_1 _inst_2 _inst_3] {m : MeasurableSpace.{u3} α} {μ : MeasureTheory.Measure.{u3} α m} {f : α -> β}, (AEMeasurable.{u3, u2} α β _inst_1 m f μ) -> (forall (c : γ), AEMeasurable.{u3, u2} α β _inst_1 m (fun (x : α) => HPow.hPow.{u2, u1, u2} β γ β (instHPow.{u2, u1} β γ _inst_3) (f x) c) μ)
-Case conversion may be inaccurate. Consider using '#align ae_measurable.pow_const AEMeasurable.pow_constₓ'. -/
@[measurability]
theorem AEMeasurable.pow_const (hf : AEMeasurable f μ) (c : γ) :
AEMeasurable (fun x => f x ^ c) μ :=
@@ -420,12 +336,6 @@ variable {G α : Type _} [MeasurableSpace G] [Div G] {m : MeasurableSpace α} {f
include m
-/- warning: measurable.const_div -> Measurable.const_div is a dubious translation:
-lean 3 declaration is
- forall {G : Type.{u1}} {α : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} G] [_inst_2 : Div.{u1} G] {m : MeasurableSpace.{u2} α} {f : α -> G} [_inst_3 : MeasurableDiv.{u1} G _inst_1 _inst_2], (Measurable.{u2, u1} α G m _inst_1 f) -> (forall (c : G), Measurable.{u2, u1} α G m _inst_1 (fun (x : α) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G _inst_2) c (f x)))
-but is expected to have type
- forall {G : Type.{u2}} {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} G] [_inst_2 : Div.{u2} G] {m : MeasurableSpace.{u1} α} {f : α -> G} [_inst_3 : MeasurableDiv.{u2} G _inst_1 _inst_2], (Measurable.{u1, u2} α G m _inst_1 f) -> (forall (c : G), Measurable.{u1, u2} α G m _inst_1 (fun (x : α) => HDiv.hDiv.{u2, u2, u2} G G G (instHDiv.{u2} G _inst_2) c (f x)))
-Case conversion may be inaccurate. Consider using '#align measurable.const_div Measurable.const_divₓ'. -/
@[measurability, to_additive]
theorem Measurable.const_div [MeasurableDiv G] (hf : Measurable f) (c : G) :
Measurable fun x => c / f x :=
@@ -433,12 +343,6 @@ theorem Measurable.const_div [MeasurableDiv G] (hf : Measurable f) (c : G) :
#align measurable.const_div Measurable.const_div
#align measurable.const_sub Measurable.const_sub
-/- warning: ae_measurable.const_div -> AEMeasurable.const_div is a dubious translation:
-lean 3 declaration is
- forall {G : Type.{u1}} {α : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} G] [_inst_2 : Div.{u1} G] {m : MeasurableSpace.{u2} α} {f : α -> G} {μ : MeasureTheory.Measure.{u2} α m} [_inst_3 : MeasurableDiv.{u1} G _inst_1 _inst_2], (AEMeasurable.{u2, u1} α G _inst_1 m f μ) -> (forall (c : G), AEMeasurable.{u2, u1} α G _inst_1 m (fun (x : α) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G _inst_2) c (f x)) μ)
-but is expected to have type
- forall {G : Type.{u2}} {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} G] [_inst_2 : Div.{u2} G] {m : MeasurableSpace.{u1} α} {f : α -> G} {μ : MeasureTheory.Measure.{u1} α m} [_inst_3 : MeasurableDiv.{u2} G _inst_1 _inst_2], (AEMeasurable.{u1, u2} α G _inst_1 m f μ) -> (forall (c : G), AEMeasurable.{u1, u2} α G _inst_1 m (fun (x : α) => HDiv.hDiv.{u2, u2, u2} G G G (instHDiv.{u2} G _inst_2) c (f x)) μ)
-Case conversion may be inaccurate. Consider using '#align ae_measurable.const_div AEMeasurable.const_divₓ'. -/
@[measurability, to_additive]
theorem AEMeasurable.const_div [MeasurableDiv G] (hf : AEMeasurable f μ) (c : G) :
AEMeasurable (fun x => c / f x) μ :=
@@ -446,12 +350,6 @@ theorem AEMeasurable.const_div [MeasurableDiv G] (hf : AEMeasurable f μ) (c : G
#align ae_measurable.const_div AEMeasurable.const_div
#align ae_measurable.const_sub AEMeasurable.const_sub
-/- warning: measurable.div_const -> Measurable.div_const is a dubious translation:
-lean 3 declaration is
- forall {G : Type.{u1}} {α : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} G] [_inst_2 : Div.{u1} G] {m : MeasurableSpace.{u2} α} {f : α -> G} [_inst_3 : MeasurableDiv.{u1} G _inst_1 _inst_2], (Measurable.{u2, u1} α G m _inst_1 f) -> (forall (c : G), Measurable.{u2, u1} α G m _inst_1 (fun (x : α) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G _inst_2) (f x) c))
-but is expected to have type
- forall {G : Type.{u2}} {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} G] [_inst_2 : Div.{u2} G] {m : MeasurableSpace.{u1} α} {f : α -> G} [_inst_3 : MeasurableDiv.{u2} G _inst_1 _inst_2], (Measurable.{u1, u2} α G m _inst_1 f) -> (forall (c : G), Measurable.{u1, u2} α G m _inst_1 (fun (x : α) => HDiv.hDiv.{u2, u2, u2} G G G (instHDiv.{u2} G _inst_2) (f x) c))
-Case conversion may be inaccurate. Consider using '#align measurable.div_const Measurable.div_constₓ'. -/
@[measurability, to_additive]
theorem Measurable.div_const [MeasurableDiv G] (hf : Measurable f) (c : G) :
Measurable fun x => f x / c :=
@@ -459,12 +357,6 @@ theorem Measurable.div_const [MeasurableDiv G] (hf : Measurable f) (c : G) :
#align measurable.div_const Measurable.div_const
#align measurable.sub_const Measurable.sub_const
-/- warning: ae_measurable.div_const -> AEMeasurable.div_const is a dubious translation:
-lean 3 declaration is
- forall {G : Type.{u1}} {α : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} G] [_inst_2 : Div.{u1} G] {m : MeasurableSpace.{u2} α} {f : α -> G} {μ : MeasureTheory.Measure.{u2} α m} [_inst_3 : MeasurableDiv.{u1} G _inst_1 _inst_2], (AEMeasurable.{u2, u1} α G _inst_1 m f μ) -> (forall (c : G), AEMeasurable.{u2, u1} α G _inst_1 m (fun (x : α) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G _inst_2) (f x) c) μ)
-but is expected to have type
- forall {G : Type.{u2}} {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} G] [_inst_2 : Div.{u2} G] {m : MeasurableSpace.{u1} α} {f : α -> G} {μ : MeasureTheory.Measure.{u1} α m} [_inst_3 : MeasurableDiv.{u2} G _inst_1 _inst_2], (AEMeasurable.{u1, u2} α G _inst_1 m f μ) -> (forall (c : G), AEMeasurable.{u1, u2} α G _inst_1 m (fun (x : α) => HDiv.hDiv.{u2, u2, u2} G G G (instHDiv.{u2} G _inst_2) (f x) c) μ)
-Case conversion may be inaccurate. Consider using '#align ae_measurable.div_const AEMeasurable.div_constₓ'. -/
@[measurability, to_additive]
theorem AEMeasurable.div_const [MeasurableDiv G] (hf : AEMeasurable f μ) (c : G) :
AEMeasurable (fun x => f x / c) μ :=
@@ -472,12 +364,6 @@ theorem AEMeasurable.div_const [MeasurableDiv G] (hf : AEMeasurable f μ) (c : G
#align ae_measurable.div_const AEMeasurable.div_const
#align ae_measurable.sub_const AEMeasurable.sub_const
-/- warning: measurable.div' -> Measurable.div' is a dubious translation:
-lean 3 declaration is
- forall {G : Type.{u1}} {α : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} G] [_inst_2 : Div.{u1} G] {m : MeasurableSpace.{u2} α} {f : α -> G} {g : α -> G} [_inst_3 : MeasurableDiv₂.{u1} G _inst_1 _inst_2], (Measurable.{u2, u1} α G m _inst_1 f) -> (Measurable.{u2, u1} α G m _inst_1 g) -> (Measurable.{u2, u1} α G m _inst_1 (HDiv.hDiv.{max u2 u1, max u2 u1, max u2 u1} (α -> G) (α -> G) (α -> G) (instHDiv.{max u2 u1} (α -> G) (Pi.instDiv.{u2, u1} α (fun (ᾰ : α) => G) (fun (i : α) => _inst_2))) f g))
-but is expected to have type
- forall {G : Type.{u2}} {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} G] [_inst_2 : Div.{u2} G] {m : MeasurableSpace.{u1} α} {f : α -> G} {g : α -> G} [_inst_3 : MeasurableDiv₂.{u2} G _inst_1 _inst_2], (Measurable.{u1, u2} α G m _inst_1 f) -> (Measurable.{u1, u2} α G m _inst_1 g) -> (Measurable.{u1, u2} α G m _inst_1 (HDiv.hDiv.{max u2 u1, max u2 u1, max u2 u1} (α -> G) (α -> G) (α -> G) (instHDiv.{max u2 u1} (α -> G) (Pi.instDiv.{u1, u2} α (fun (ᾰ : α) => G) (fun (i : α) => _inst_2))) f g))
-Case conversion may be inaccurate. Consider using '#align measurable.div' Measurable.div'ₓ'. -/
@[measurability, to_additive]
theorem Measurable.div' [MeasurableDiv₂ G] (hf : Measurable f) (hg : Measurable g) :
Measurable (f / g) :=
@@ -485,12 +371,6 @@ theorem Measurable.div' [MeasurableDiv₂ G] (hf : Measurable f) (hg : Measurabl
#align measurable.div' Measurable.div'
#align measurable.sub' Measurable.sub'
-/- warning: measurable.div -> Measurable.div is a dubious translation:
-lean 3 declaration is
- forall {G : Type.{u1}} {α : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} G] [_inst_2 : Div.{u1} G] {m : MeasurableSpace.{u2} α} {f : α -> G} {g : α -> G} [_inst_3 : MeasurableDiv₂.{u1} G _inst_1 _inst_2], (Measurable.{u2, u1} α G m _inst_1 f) -> (Measurable.{u2, u1} α G m _inst_1 g) -> (Measurable.{u2, u1} α G m _inst_1 (fun (a : α) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G _inst_2) (f a) (g a)))
-but is expected to have type
- forall {G : Type.{u2}} {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} G] [_inst_2 : Div.{u2} G] {m : MeasurableSpace.{u1} α} {f : α -> G} {g : α -> G} [_inst_3 : MeasurableDiv₂.{u2} G _inst_1 _inst_2], (Measurable.{u1, u2} α G m _inst_1 f) -> (Measurable.{u1, u2} α G m _inst_1 g) -> (Measurable.{u1, u2} α G m _inst_1 (fun (a : α) => HDiv.hDiv.{u2, u2, u2} G G G (instHDiv.{u2} G _inst_2) (f a) (g a)))
-Case conversion may be inaccurate. Consider using '#align measurable.div Measurable.divₓ'. -/
@[measurability, to_additive]
theorem Measurable.div [MeasurableDiv₂ G] (hf : Measurable f) (hg : Measurable g) :
Measurable fun a => f a / g a :=
@@ -498,12 +378,6 @@ theorem Measurable.div [MeasurableDiv₂ G] (hf : Measurable f) (hg : Measurable
#align measurable.div Measurable.div
#align measurable.sub Measurable.sub
-/- warning: ae_measurable.div' -> AEMeasurable.div' is a dubious translation:
-lean 3 declaration is
- forall {G : Type.{u1}} {α : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} G] [_inst_2 : Div.{u1} G] {m : MeasurableSpace.{u2} α} {f : α -> G} {g : α -> G} {μ : MeasureTheory.Measure.{u2} α m} [_inst_3 : MeasurableDiv₂.{u1} G _inst_1 _inst_2], (AEMeasurable.{u2, u1} α G _inst_1 m f μ) -> (AEMeasurable.{u2, u1} α G _inst_1 m g μ) -> (AEMeasurable.{u2, u1} α G _inst_1 m (HDiv.hDiv.{max u2 u1, max u2 u1, max u2 u1} (α -> G) (α -> G) (α -> G) (instHDiv.{max u2 u1} (α -> G) (Pi.instDiv.{u2, u1} α (fun (ᾰ : α) => G) (fun (i : α) => _inst_2))) f g) μ)
-but is expected to have type
- forall {G : Type.{u2}} {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} G] [_inst_2 : Div.{u2} G] {m : MeasurableSpace.{u1} α} {f : α -> G} {g : α -> G} {μ : MeasureTheory.Measure.{u1} α m} [_inst_3 : MeasurableDiv₂.{u2} G _inst_1 _inst_2], (AEMeasurable.{u1, u2} α G _inst_1 m f μ) -> (AEMeasurable.{u1, u2} α G _inst_1 m g μ) -> (AEMeasurable.{u1, u2} α G _inst_1 m (HDiv.hDiv.{max u2 u1, max u2 u1, max u2 u1} (α -> G) (α -> G) (α -> G) (instHDiv.{max u2 u1} (α -> G) (Pi.instDiv.{u1, u2} α (fun (ᾰ : α) => G) (fun (i : α) => _inst_2))) f g) μ)
-Case conversion may be inaccurate. Consider using '#align ae_measurable.div' AEMeasurable.div'ₓ'. -/
@[measurability, to_additive]
theorem AEMeasurable.div' [MeasurableDiv₂ G] (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
AEMeasurable (f / g) μ :=
@@ -511,12 +385,6 @@ theorem AEMeasurable.div' [MeasurableDiv₂ G] (hf : AEMeasurable f μ) (hg : AE
#align ae_measurable.div' AEMeasurable.div'
#align ae_measurable.sub' AEMeasurable.sub'
-/- warning: ae_measurable.div -> AEMeasurable.div is a dubious translation:
-lean 3 declaration is
- forall {G : Type.{u1}} {α : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} G] [_inst_2 : Div.{u1} G] {m : MeasurableSpace.{u2} α} {f : α -> G} {g : α -> G} {μ : MeasureTheory.Measure.{u2} α m} [_inst_3 : MeasurableDiv₂.{u1} G _inst_1 _inst_2], (AEMeasurable.{u2, u1} α G _inst_1 m f μ) -> (AEMeasurable.{u2, u1} α G _inst_1 m g μ) -> (AEMeasurable.{u2, u1} α G _inst_1 m (fun (a : α) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G _inst_2) (f a) (g a)) μ)
-but is expected to have type
- forall {G : Type.{u2}} {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} G] [_inst_2 : Div.{u2} G] {m : MeasurableSpace.{u1} α} {f : α -> G} {g : α -> G} {μ : MeasureTheory.Measure.{u1} α m} [_inst_3 : MeasurableDiv₂.{u2} G _inst_1 _inst_2], (AEMeasurable.{u1, u2} α G _inst_1 m f μ) -> (AEMeasurable.{u1, u2} α G _inst_1 m g μ) -> (AEMeasurable.{u1, u2} α G _inst_1 m (fun (a : α) => HDiv.hDiv.{u2, u2, u2} G G G (instHDiv.{u2} G _inst_2) (f a) (g a)) μ)
-Case conversion may be inaccurate. Consider using '#align ae_measurable.div AEMeasurable.divₓ'. -/
@[measurability, to_additive]
theorem AEMeasurable.div [MeasurableDiv₂ G] (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
AEMeasurable (fun a => f a / g a) μ :=
@@ -556,12 +424,6 @@ instance Pi.measurableDiv₂ {ι : Type _} {α : ι → Type _} [∀ i, Div (α
#align pi.has_measurable_sub₂ Pi.measurableSub₂
-/
-/- warning: measurable_set_eq_fun -> measurableSet_eq_fun is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {m : MeasurableSpace.{u1} α} {E : Type.{u2}} [_inst_3 : MeasurableSpace.{u2} E] [_inst_4 : AddGroup.{u2} E] [_inst_5 : MeasurableSingletonClass.{u2} E _inst_3] [_inst_6 : MeasurableSub₂.{u2} E _inst_3 (SubNegMonoid.toHasSub.{u2} E (AddGroup.toSubNegMonoid.{u2} E _inst_4))] {f : α -> E} {g : α -> E}, (Measurable.{u1, u2} α E m _inst_3 f) -> (Measurable.{u1, u2} α E m _inst_3 g) -> (MeasurableSet.{u1} α m (setOf.{u1} α (fun (x : α) => Eq.{succ u2} E (f x) (g x))))
-but is expected to have type
- forall {α : Type.{u2}} {m : MeasurableSpace.{u2} α} {E : Type.{u1}} [_inst_3 : MeasurableSpace.{u1} E] [_inst_4 : AddGroup.{u1} E] [_inst_5 : MeasurableSingletonClass.{u1} E _inst_3] [_inst_6 : MeasurableSub₂.{u1} E _inst_3 (SubNegMonoid.toSub.{u1} E (AddGroup.toSubNegMonoid.{u1} E _inst_4))] {f : α -> E} {g : α -> E}, (Measurable.{u2, u1} α E m _inst_3 f) -> (Measurable.{u2, u1} α E m _inst_3 g) -> (MeasurableSet.{u2} α m (setOf.{u2} α (fun (x : α) => Eq.{succ u1} E (f x) (g x))))
-Case conversion may be inaccurate. Consider using '#align measurable_set_eq_fun measurableSet_eq_funₓ'. -/
@[measurability]
theorem measurableSet_eq_fun {m : MeasurableSpace α} {E} [MeasurableSpace E] [AddGroup E]
[MeasurableSingletonClass E] [MeasurableSub₂ E] {f g : α → E} (hf : Measurable f)
@@ -574,12 +436,6 @@ theorem measurableSet_eq_fun {m : MeasurableSpace α} {E} [MeasurableSpace E] [A
simp_rw [Set.mem_setOf_eq, Pi.sub_apply, sub_eq_zero]
#align measurable_set_eq_fun measurableSet_eq_fun
-/- warning: null_measurable_set_eq_fun -> nullMeasurableSet_eq_fun is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {m : MeasurableSpace.{u1} α} {μ : MeasureTheory.Measure.{u1} α m} {E : Type.{u2}} [_inst_3 : MeasurableSpace.{u2} E] [_inst_4 : AddGroup.{u2} E] [_inst_5 : MeasurableSingletonClass.{u2} E _inst_3] [_inst_6 : MeasurableSub₂.{u2} E _inst_3 (SubNegMonoid.toHasSub.{u2} E (AddGroup.toSubNegMonoid.{u2} E _inst_4))] {f : α -> E} {g : α -> E}, (AEMeasurable.{u1, u2} α E _inst_3 m f μ) -> (AEMeasurable.{u1, u2} α E _inst_3 m g μ) -> (MeasureTheory.NullMeasurableSet.{u1} α m (setOf.{u1} α (fun (x : α) => Eq.{succ u2} E (f x) (g x))) μ)
-but is expected to have type
- forall {α : Type.{u1}} {m : MeasurableSpace.{u1} α} {μ : MeasureTheory.Measure.{u1} α m} {E : Type.{u2}} [_inst_3 : MeasurableSpace.{u2} E] [_inst_4 : AddGroup.{u2} E] [_inst_5 : MeasurableSingletonClass.{u2} E _inst_3] [_inst_6 : MeasurableSub₂.{u2} E _inst_3 (SubNegMonoid.toSub.{u2} E (AddGroup.toSubNegMonoid.{u2} E _inst_4))] {f : α -> E} {g : α -> E}, (AEMeasurable.{u1, u2} α E _inst_3 m f μ) -> (AEMeasurable.{u1, u2} α E _inst_3 m g μ) -> (MeasureTheory.NullMeasurableSet.{u1} α m (setOf.{u1} α (fun (x : α) => Eq.{succ u2} E (f x) (g x))) μ)
-Case conversion may be inaccurate. Consider using '#align null_measurable_set_eq_fun nullMeasurableSet_eq_funₓ'. -/
theorem nullMeasurableSet_eq_fun {E} [MeasurableSpace E] [AddGroup E] [MeasurableSingletonClass E]
[MeasurableSub₂ E] {f g : α → E} (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
NullMeasurableSet { x | f x = g x } μ :=
@@ -590,12 +446,6 @@ theorem nullMeasurableSet_eq_fun {E} [MeasurableSpace E] [AddGroup E] [Measurabl
simp only [hfx, hgx]
#align null_measurable_set_eq_fun nullMeasurableSet_eq_fun
-/- warning: measurable_set_eq_fun_of_countable -> measurableSet_eq_fun_of_countable is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {m : MeasurableSpace.{u1} α} {E : Type.{u2}} [_inst_3 : MeasurableSpace.{u2} E] [_inst_4 : MeasurableSingletonClass.{u2} E _inst_3] [_inst_5 : Countable.{succ u2} E] {f : α -> E} {g : α -> E}, (Measurable.{u1, u2} α E m _inst_3 f) -> (Measurable.{u1, u2} α E m _inst_3 g) -> (MeasurableSet.{u1} α m (setOf.{u1} α (fun (x : α) => Eq.{succ u2} E (f x) (g x))))
-but is expected to have type
- forall {α : Type.{u2}} {m : MeasurableSpace.{u2} α} {E : Type.{u1}} [_inst_3 : MeasurableSpace.{u1} E] [_inst_4 : MeasurableSingletonClass.{u1} E _inst_3] [_inst_5 : Countable.{succ u1} E] {f : α -> E} {g : α -> E}, (Measurable.{u2, u1} α E m _inst_3 f) -> (Measurable.{u2, u1} α E m _inst_3 g) -> (MeasurableSet.{u2} α m (setOf.{u2} α (fun (x : α) => Eq.{succ u1} E (f x) (g x))))
-Case conversion may be inaccurate. Consider using '#align measurable_set_eq_fun_of_countable measurableSet_eq_fun_of_countableₓ'. -/
theorem measurableSet_eq_fun_of_countable {m : MeasurableSpace α} {E} [MeasurableSpace E]
[MeasurableSingletonClass E] [Countable E] {f g : α → E} (hf : Measurable f)
(hg : Measurable g) : MeasurableSet { x | f x = g x } :=
@@ -608,12 +458,6 @@ theorem measurableSet_eq_fun_of_countable {m : MeasurableSpace α} {E} [Measurab
· exact hg (measurable_set_singleton j)
#align measurable_set_eq_fun_of_countable measurableSet_eq_fun_of_countable
-/- warning: ae_eq_trim_of_measurable -> ae_eq_trim_of_measurable is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {E : Type.{u2}} {m : MeasurableSpace.{u1} α} {m0 : MeasurableSpace.{u1} α} {μ : MeasureTheory.Measure.{u1} α m0} [_inst_3 : MeasurableSpace.{u2} E] [_inst_4 : AddGroup.{u2} E] [_inst_5 : MeasurableSingletonClass.{u2} E _inst_3] [_inst_6 : MeasurableSub₂.{u2} E _inst_3 (SubNegMonoid.toHasSub.{u2} E (AddGroup.toSubNegMonoid.{u2} E _inst_4))] (hm : LE.le.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.hasLe.{u1} α) m m0) {f : α -> E} {g : α -> E}, (Measurable.{u1, u2} α E m _inst_3 f) -> (Measurable.{u1, u2} α E m _inst_3 g) -> (Filter.EventuallyEq.{u1, u2} α E (MeasureTheory.Measure.ae.{u1} α m0 μ) f g) -> (Filter.EventuallyEq.{u1, u2} α E (MeasureTheory.Measure.ae.{u1} α m (MeasureTheory.Measure.trim.{u1} α m m0 μ hm)) f g)
-but is expected to have type
- forall {α : Type.{u2}} {E : Type.{u1}} {m : MeasurableSpace.{u2} α} {m0 : MeasurableSpace.{u2} α} {μ : MeasureTheory.Measure.{u2} α m0} [_inst_3 : MeasurableSpace.{u1} E] [_inst_4 : AddGroup.{u1} E] [_inst_5 : MeasurableSingletonClass.{u1} E _inst_3] [_inst_6 : MeasurableSub₂.{u1} E _inst_3 (SubNegMonoid.toSub.{u1} E (AddGroup.toSubNegMonoid.{u1} E _inst_4))] (hm : LE.le.{u2} (MeasurableSpace.{u2} α) (MeasurableSpace.instLEMeasurableSpace.{u2} α) m m0) {f : α -> E} {g : α -> E}, (Measurable.{u2, u1} α E m _inst_3 f) -> (Measurable.{u2, u1} α E m _inst_3 g) -> (Filter.EventuallyEq.{u2, u1} α E (MeasureTheory.Measure.ae.{u2} α m0 μ) f g) -> (Filter.EventuallyEq.{u2, u1} α E (MeasureTheory.Measure.ae.{u2} α m (MeasureTheory.Measure.trim.{u2} α m m0 μ hm)) f g)
-Case conversion may be inaccurate. Consider using '#align ae_eq_trim_of_measurable ae_eq_trim_of_measurableₓ'. -/
theorem ae_eq_trim_of_measurable {α E} {m m0 : MeasurableSpace α} {μ : Measure α}
[MeasurableSpace E] [AddGroup E] [MeasurableSingletonClass E] [MeasurableSub₂ E] (hm : m ≤ m0)
{f g : α → E} (hf : measurable[m] f) (hg : measurable[m] g) (hfg : f =ᵐ[μ] g) :
@@ -645,12 +489,6 @@ export MeasurableInv (measurable_inv)
export MeasurableNeg (measurable_neg)
-/- warning: has_measurable_div_of_mul_inv -> measurableDiv_of_mul_inv is a dubious translation:
-lean 3 declaration is
- forall (G : Type.{u1}) [_inst_1 : MeasurableSpace.{u1} G] [_inst_2 : DivInvMonoid.{u1} G] [_inst_3 : MeasurableMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G _inst_2)))] [_inst_4 : MeasurableInv.{u1} G (DivInvMonoid.toHasInv.{u1} G _inst_2) _inst_1], MeasurableDiv.{u1} G _inst_1 (DivInvMonoid.toHasDiv.{u1} G _inst_2)
-but is expected to have type
- forall (G : Type.{u1}) [_inst_1 : MeasurableSpace.{u1} G] [_inst_2 : DivInvMonoid.{u1} G] [_inst_3 : MeasurableMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G _inst_2)))] [_inst_4 : MeasurableInv.{u1} G (DivInvMonoid.toInv.{u1} G _inst_2) _inst_1], MeasurableDiv.{u1} G _inst_1 (DivInvMonoid.toDiv.{u1} G _inst_2)
-Case conversion may be inaccurate. Consider using '#align has_measurable_div_of_mul_inv measurableDiv_of_mul_invₓ'. -/
@[to_additive]
instance (priority := 100) measurableDiv_of_mul_inv (G : Type _) [MeasurableSpace G]
[DivInvMonoid G] [MeasurableMul G] [MeasurableInv G] : MeasurableDiv G
@@ -685,12 +523,6 @@ theorem AEMeasurable.inv (hf : AEMeasurable f μ) : AEMeasurable (fun x => (f x)
attribute [measurability] Measurable.neg AEMeasurable.neg
-/- warning: measurable_inv_iff -> measurable_inv_iff is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {m : MeasurableSpace.{u1} α} {G : Type.{u2}} [_inst_4 : Group.{u2} G] [_inst_5 : MeasurableSpace.{u2} G] [_inst_6 : MeasurableInv.{u2} G (DivInvMonoid.toHasInv.{u2} G (Group.toDivInvMonoid.{u2} G _inst_4)) _inst_5] {f : α -> G}, Iff (Measurable.{u1, u2} α G m _inst_5 (fun (x : α) => Inv.inv.{u2} G (DivInvMonoid.toHasInv.{u2} G (Group.toDivInvMonoid.{u2} G _inst_4)) (f x))) (Measurable.{u1, u2} α G m _inst_5 f)
-but is expected to have type
- forall {α : Type.{u1}} {m : MeasurableSpace.{u1} α} {G : Type.{u2}} [_inst_4 : Group.{u2} G] [_inst_5 : MeasurableSpace.{u2} G] [_inst_6 : MeasurableInv.{u2} G (InvOneClass.toInv.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_4)))) _inst_5] {f : α -> G}, Iff (Measurable.{u1, u2} α G m _inst_5 (fun (x : α) => Inv.inv.{u2} G (InvOneClass.toInv.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_4)))) (f x))) (Measurable.{u1, u2} α G m _inst_5 f)
-Case conversion may be inaccurate. Consider using '#align measurable_inv_iff measurable_inv_iffₓ'. -/
@[simp, to_additive]
theorem measurable_inv_iff {G : Type _} [Group G] [MeasurableSpace G] [MeasurableInv G]
{f : α → G} : (Measurable fun x => (f x)⁻¹) ↔ Measurable f :=
@@ -698,12 +530,6 @@ theorem measurable_inv_iff {G : Type _} [Group G] [MeasurableSpace G] [Measurabl
#align measurable_inv_iff measurable_inv_iff
#align measurable_neg_iff measurable_neg_iff
-/- warning: ae_measurable_inv_iff -> aemeasurable_inv_iff is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {m : MeasurableSpace.{u1} α} {μ : MeasureTheory.Measure.{u1} α m} {G : Type.{u2}} [_inst_4 : Group.{u2} G] [_inst_5 : MeasurableSpace.{u2} G] [_inst_6 : MeasurableInv.{u2} G (DivInvMonoid.toHasInv.{u2} G (Group.toDivInvMonoid.{u2} G _inst_4)) _inst_5] {f : α -> G}, Iff (AEMeasurable.{u1, u2} α G _inst_5 m (fun (x : α) => Inv.inv.{u2} G (DivInvMonoid.toHasInv.{u2} G (Group.toDivInvMonoid.{u2} G _inst_4)) (f x)) μ) (AEMeasurable.{u1, u2} α G _inst_5 m f μ)
-but is expected to have type
- forall {α : Type.{u1}} {m : MeasurableSpace.{u1} α} {μ : MeasureTheory.Measure.{u1} α m} {G : Type.{u2}} [_inst_4 : Group.{u2} G] [_inst_5 : MeasurableSpace.{u2} G] [_inst_6 : MeasurableInv.{u2} G (InvOneClass.toInv.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_4)))) _inst_5] {f : α -> G}, Iff (AEMeasurable.{u1, u2} α G _inst_5 m (fun (x : α) => Inv.inv.{u2} G (InvOneClass.toInv.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_4)))) (f x)) μ) (AEMeasurable.{u1, u2} α G _inst_5 m f μ)
-Case conversion may be inaccurate. Consider using '#align ae_measurable_inv_iff aemeasurable_inv_iffₓ'. -/
@[simp, to_additive]
theorem aemeasurable_inv_iff {G : Type _} [Group G] [MeasurableSpace G] [MeasurableInv G]
{f : α → G} : AEMeasurable (fun x => (f x)⁻¹) μ ↔ AEMeasurable f μ :=
@@ -711,24 +537,12 @@ theorem aemeasurable_inv_iff {G : Type _} [Group G] [MeasurableSpace G] [Measura
#align ae_measurable_inv_iff aemeasurable_inv_iff
#align ae_measurable_neg_iff aemeasurable_neg_iff
-/- warning: measurable_inv_iff₀ -> measurable_inv_iff₀ is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {m : MeasurableSpace.{u1} α} {G₀ : Type.{u2}} [_inst_4 : GroupWithZero.{u2} G₀] [_inst_5 : MeasurableSpace.{u2} G₀] [_inst_6 : MeasurableInv.{u2} G₀ (DivInvMonoid.toHasInv.{u2} G₀ (GroupWithZero.toDivInvMonoid.{u2} G₀ _inst_4)) _inst_5] {f : α -> G₀}, Iff (Measurable.{u1, u2} α G₀ m _inst_5 (fun (x : α) => Inv.inv.{u2} G₀ (DivInvMonoid.toHasInv.{u2} G₀ (GroupWithZero.toDivInvMonoid.{u2} G₀ _inst_4)) (f x))) (Measurable.{u1, u2} α G₀ m _inst_5 f)
-but is expected to have type
- forall {α : Type.{u1}} {m : MeasurableSpace.{u1} α} {G₀ : Type.{u2}} [_inst_4 : GroupWithZero.{u2} G₀] [_inst_5 : MeasurableSpace.{u2} G₀] [_inst_6 : MeasurableInv.{u2} G₀ (GroupWithZero.toInv.{u2} G₀ _inst_4) _inst_5] {f : α -> G₀}, Iff (Measurable.{u1, u2} α G₀ m _inst_5 (fun (x : α) => Inv.inv.{u2} G₀ (GroupWithZero.toInv.{u2} G₀ _inst_4) (f x))) (Measurable.{u1, u2} α G₀ m _inst_5 f)
-Case conversion may be inaccurate. Consider using '#align measurable_inv_iff₀ measurable_inv_iff₀ₓ'. -/
@[simp]
theorem measurable_inv_iff₀ {G₀ : Type _} [GroupWithZero G₀] [MeasurableSpace G₀] [MeasurableInv G₀]
{f : α → G₀} : (Measurable fun x => (f x)⁻¹) ↔ Measurable f :=
⟨fun h => by simpa only [inv_inv] using h.inv, fun h => h.inv⟩
#align measurable_inv_iff₀ measurable_inv_iff₀
-/- warning: ae_measurable_inv_iff₀ -> aemeasurable_inv_iff₀ is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {m : MeasurableSpace.{u1} α} {μ : MeasureTheory.Measure.{u1} α m} {G₀ : Type.{u2}} [_inst_4 : GroupWithZero.{u2} G₀] [_inst_5 : MeasurableSpace.{u2} G₀] [_inst_6 : MeasurableInv.{u2} G₀ (DivInvMonoid.toHasInv.{u2} G₀ (GroupWithZero.toDivInvMonoid.{u2} G₀ _inst_4)) _inst_5] {f : α -> G₀}, Iff (AEMeasurable.{u1, u2} α G₀ _inst_5 m (fun (x : α) => Inv.inv.{u2} G₀ (DivInvMonoid.toHasInv.{u2} G₀ (GroupWithZero.toDivInvMonoid.{u2} G₀ _inst_4)) (f x)) μ) (AEMeasurable.{u1, u2} α G₀ _inst_5 m f μ)
-but is expected to have type
- forall {α : Type.{u1}} {m : MeasurableSpace.{u1} α} {μ : MeasureTheory.Measure.{u1} α m} {G₀ : Type.{u2}} [_inst_4 : GroupWithZero.{u2} G₀] [_inst_5 : MeasurableSpace.{u2} G₀] [_inst_6 : MeasurableInv.{u2} G₀ (GroupWithZero.toInv.{u2} G₀ _inst_4) _inst_5] {f : α -> G₀}, Iff (AEMeasurable.{u1, u2} α G₀ _inst_5 m (fun (x : α) => Inv.inv.{u2} G₀ (GroupWithZero.toInv.{u2} G₀ _inst_4) (f x)) μ) (AEMeasurable.{u1, u2} α G₀ _inst_5 m f μ)
-Case conversion may be inaccurate. Consider using '#align ae_measurable_inv_iff₀ aemeasurable_inv_iff₀ₓ'. -/
@[simp]
theorem aemeasurable_inv_iff₀ {G₀ : Type _} [GroupWithZero G₀] [MeasurableSpace G₀]
[MeasurableInv G₀] {f : α → G₀} : AEMeasurable (fun x => (f x)⁻¹) μ ↔ AEMeasurable f μ :=
@@ -756,12 +570,6 @@ theorem MeasurableSet.inv {s : Set G} (hs : MeasurableSet s) : MeasurableSet s
end Inv
-/- warning: div_inv_monoid.has_measurable_zpow -> DivInvMonoid.measurableZpow is a dubious translation:
-lean 3 declaration is
- forall (G : Type.{u1}) [_inst_1 : DivInvMonoid.{u1} G] [_inst_2 : MeasurableSpace.{u1} G] [_inst_3 : MeasurableMul₂.{u1} G _inst_2 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G _inst_1)))] [_inst_4 : MeasurableInv.{u1} G (DivInvMonoid.toHasInv.{u1} G _inst_1) _inst_2], MeasurablePow.{u1, 0} G Int _inst_2 Int.instMeasurableSpace (DivInvMonoid.Pow.{u1} G _inst_1)
-but is expected to have type
- forall (G : Type.{u1}) [_inst_1 : DivInvMonoid.{u1} G] [_inst_2 : MeasurableSpace.{u1} G] [_inst_3 : MeasurableMul₂.{u1} G _inst_2 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G _inst_1)))] [_inst_4 : MeasurableInv.{u1} G (DivInvMonoid.toInv.{u1} G _inst_1) _inst_2], MeasurablePow.{u1, 0} G Int _inst_2 Int.instMeasurableSpace (DivInvMonoid.Pow.{u1} G _inst_1)
-Case conversion may be inaccurate. Consider using '#align div_inv_monoid.has_measurable_zpow DivInvMonoid.measurableZpowₓ'. -/
/-- `div_inv_monoid.has_pow` is measurable. -/
instance DivInvMonoid.measurableZpow (G : Type u) [DivInvMonoid G] [MeasurableSpace G]
[MeasurableMul₂ G] [MeasurableInv G] : MeasurablePow G ℤ :=
@@ -771,12 +579,6 @@ instance DivInvMonoid.measurableZpow (G : Type u) [DivInvMonoid G] [MeasurableSp
· simp_rw [zpow_negSucc]; exact (measurable_id.pow_const (n + 1)).inv⟩
#align div_inv_monoid.has_measurable_zpow DivInvMonoid.measurableZpow
-/- warning: has_measurable_div₂_of_mul_inv -> measurableDiv₂_of_mul_inv is a dubious translation:
-lean 3 declaration is
- forall (G : Type.{u1}) [_inst_1 : MeasurableSpace.{u1} G] [_inst_2 : DivInvMonoid.{u1} G] [_inst_3 : MeasurableMul₂.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G _inst_2)))] [_inst_4 : MeasurableInv.{u1} G (DivInvMonoid.toHasInv.{u1} G _inst_2) _inst_1], MeasurableDiv₂.{u1} G _inst_1 (DivInvMonoid.toHasDiv.{u1} G _inst_2)
-but is expected to have type
- forall (G : Type.{u1}) [_inst_1 : MeasurableSpace.{u1} G] [_inst_2 : DivInvMonoid.{u1} G] [_inst_3 : MeasurableMul₂.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G _inst_2)))] [_inst_4 : MeasurableInv.{u1} G (DivInvMonoid.toInv.{u1} G _inst_2) _inst_1], MeasurableDiv₂.{u1} G _inst_1 (DivInvMonoid.toDiv.{u1} G _inst_2)
-Case conversion may be inaccurate. Consider using '#align has_measurable_div₂_of_mul_inv measurableDiv₂_of_mul_invₓ'. -/
@[to_additive]
instance (priority := 100) measurableDiv₂_of_mul_inv (G : Type _) [MeasurableSpace G]
[DivInvMonoid G] [MeasurableMul₂ G] [MeasurableInv G] : MeasurableDiv₂ G :=
@@ -848,12 +650,6 @@ instance measurableSMul₂_of_mul (M : Type _) [Mul M] [MeasurableSpace M] [Meas
#align has_measurable_smul₂_of_add measurableSMul₂_of_add
-/
-/- warning: submonoid.has_measurable_smul -> Submonoid.measurableSMul is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {α : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} M] [_inst_2 : MeasurableSpace.{u2} α] [_inst_3 : Monoid.{u1} M] [_inst_4 : MulAction.{u1, u2} M α _inst_3] [_inst_5 : MeasurableSMul.{u1, u2} M α (MulAction.toHasSmul.{u1, u2} M α _inst_3 _inst_4) _inst_1 _inst_2] (s : Submonoid.{u1} M (Monoid.toMulOneClass.{u1} M _inst_3)), MeasurableSMul.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} M (Monoid.toMulOneClass.{u1} M _inst_3)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} M (Monoid.toMulOneClass.{u1} M _inst_3)) M (Submonoid.setLike.{u1} M (Monoid.toMulOneClass.{u1} M _inst_3))) s) α (Submonoid.hasSmul.{u1, u2} M α (Monoid.toMulOneClass.{u1} M _inst_3) (MulAction.toHasSmul.{u1, u2} M α _inst_3 _inst_4) s) (Subtype.instMeasurableSpace.{u1} M (fun (x : M) => Membership.Mem.{u1, u1} M (Submonoid.{u1} M (Monoid.toMulOneClass.{u1} M _inst_3)) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} M (Monoid.toMulOneClass.{u1} M _inst_3)) M (Submonoid.setLike.{u1} M (Monoid.toMulOneClass.{u1} M _inst_3))) x s) _inst_1) _inst_2
-but is expected to have type
- forall {M : Type.{u1}} {α : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} M] [_inst_2 : MeasurableSpace.{u2} α] [_inst_3 : Monoid.{u1} M] [_inst_4 : MulAction.{u1, u2} M α _inst_3] [_inst_5 : MeasurableSMul.{u1, u2} M α (MulAction.toSMul.{u1, u2} M α _inst_3 _inst_4) _inst_1 _inst_2] (s : Submonoid.{u1} M (Monoid.toMulOneClass.{u1} M _inst_3)), MeasurableSMul.{u1, u2} (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submonoid.{u1} M (Monoid.toMulOneClass.{u1} M _inst_3)) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} M (Monoid.toMulOneClass.{u1} M _inst_3)) M (Submonoid.instSetLikeSubmonoid.{u1} M (Monoid.toMulOneClass.{u1} M _inst_3))) x s)) α (Submonoid.smul.{u1, u2} M α (Monoid.toMulOneClass.{u1} M _inst_3) (MulAction.toSMul.{u1, u2} M α _inst_3 _inst_4) s) (Subtype.instMeasurableSpace.{u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submonoid.{u1} M (Monoid.toMulOneClass.{u1} M _inst_3)) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} M (Monoid.toMulOneClass.{u1} M _inst_3)) M (Submonoid.instSetLikeSubmonoid.{u1} M (Monoid.toMulOneClass.{u1} M _inst_3))) x s) _inst_1) _inst_2
-Case conversion may be inaccurate. Consider using '#align submonoid.has_measurable_smul Submonoid.measurableSMulₓ'. -/
@[to_additive]
instance Submonoid.measurableSMul {M α} [MeasurableSpace M] [MeasurableSpace α] [Monoid M]
[MulAction M α] [MeasurableSMul M α] (s : Submonoid M) : MeasurableSMul s α :=
@@ -862,12 +658,6 @@ instance Submonoid.measurableSMul {M α} [MeasurableSpace M] [MeasurableSpace α
#align submonoid.has_measurable_smul Submonoid.measurableSMul
#align add_submonoid.has_measurable_vadd AddSubmonoid.measurableVAdd
-/- warning: subgroup.has_measurable_smul -> Subgroup.measurableSMul is a dubious translation:
-lean 3 declaration is
- forall {G : Type.{u1}} {α : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} G] [_inst_2 : MeasurableSpace.{u2} α] [_inst_3 : Group.{u1} G] [_inst_4 : MulAction.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_3))] [_inst_5 : MeasurableSMul.{u1, u2} G α (MulAction.toHasSmul.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_3)) _inst_4) _inst_1 _inst_2] (s : Subgroup.{u1} G _inst_3), MeasurableSMul.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_3) G (Subgroup.setLike.{u1} G _inst_3)) s) α (MulAction.toHasSmul.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_3) G (Subgroup.setLike.{u1} G _inst_3)) s) α (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_3) G (Subgroup.setLike.{u1} G _inst_3)) s) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_3) G (Subgroup.setLike.{u1} G _inst_3)) s) (Subgroup.toGroup.{u1} G _inst_3 s))) (Subgroup.mulAction.{u1, u2} G _inst_3 α _inst_4 s)) (Subtype.instMeasurableSpace.{u1} G (fun (x : G) => Membership.Mem.{u1, u1} G (Subgroup.{u1} G _inst_3) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} G _inst_3) G (Subgroup.setLike.{u1} G _inst_3)) x s) _inst_1) _inst_2
-but is expected to have type
- forall {G : Type.{u1}} {α : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} G] [_inst_2 : MeasurableSpace.{u2} α] [_inst_3 : Group.{u1} G] [_inst_4 : MulAction.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_3))] [_inst_5 : MeasurableSMul.{u1, u2} G α (MulAction.toSMul.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_3)) _inst_4) _inst_1 _inst_2] (s : Subgroup.{u1} G _inst_3), MeasurableSMul.{u1, u2} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_3) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_3)) x s)) α (Submonoid.smul.{u1, u2} G α (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_3))) (MulAction.toSMul.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_3)) _inst_4) (Subgroup.toSubmonoid.{u1} G _inst_3 s)) (Subtype.instMeasurableSpace.{u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_3) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_3)) x s) _inst_1) _inst_2
-Case conversion may be inaccurate. Consider using '#align subgroup.has_measurable_smul Subgroup.measurableSMulₓ'. -/
@[to_additive]
instance Subgroup.measurableSMul {G α} [MeasurableSpace G] [MeasurableSpace α] [Group G]
[MulAction G α] [MeasurableSMul G α] (s : Subgroup G) : MeasurableSMul s α :=
@@ -882,12 +672,6 @@ variable {M β α : Type _} [MeasurableSpace M] [MeasurableSpace β] [SMul M β]
include m
-/- warning: measurable.smul -> Measurable.smul is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {β : Type.{u2}} {α : Type.{u3}} [_inst_1 : MeasurableSpace.{u1} M] [_inst_2 : MeasurableSpace.{u2} β] [_inst_3 : SMul.{u1, u2} M β] {m : MeasurableSpace.{u3} α} {f : α -> M} {g : α -> β} [_inst_4 : MeasurableSMul₂.{u1, u2} M β _inst_3 _inst_1 _inst_2], (Measurable.{u3, u1} α M m _inst_1 f) -> (Measurable.{u3, u2} α β m _inst_2 g) -> (Measurable.{u3, u2} α β m _inst_2 (fun (x : α) => SMul.smul.{u1, u2} M β _inst_3 (f x) (g x)))
-but is expected to have type
- forall {M : Type.{u3}} {β : Type.{u2}} {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u3} M] [_inst_2 : MeasurableSpace.{u2} β] [_inst_3 : SMul.{u3, u2} M β] {m : MeasurableSpace.{u1} α} {f : α -> M} {g : α -> β} [_inst_4 : MeasurableSMul₂.{u3, u2} M β _inst_3 _inst_1 _inst_2], (Measurable.{u1, u3} α M m _inst_1 f) -> (Measurable.{u1, u2} α β m _inst_2 g) -> (Measurable.{u1, u2} α β m _inst_2 (fun (x : α) => HSMul.hSMul.{u3, u2, u2} M β β (instHSMul.{u3, u2} M β _inst_3) (f x) (g x)))
-Case conversion may be inaccurate. Consider using '#align measurable.smul Measurable.smulₓ'. -/
@[measurability, to_additive]
theorem Measurable.smul [MeasurableSMul₂ M β] (hf : Measurable f) (hg : Measurable g) :
Measurable fun x => f x • g x :=
@@ -895,12 +679,6 @@ theorem Measurable.smul [MeasurableSMul₂ M β] (hf : Measurable f) (hg : Measu
#align measurable.smul Measurable.smul
#align measurable.vadd Measurable.vadd
-/- warning: ae_measurable.smul -> AEMeasurable.smul is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {β : Type.{u2}} {α : Type.{u3}} [_inst_1 : MeasurableSpace.{u1} M] [_inst_2 : MeasurableSpace.{u2} β] [_inst_3 : SMul.{u1, u2} M β] {m : MeasurableSpace.{u3} α} {f : α -> M} {g : α -> β} [_inst_4 : MeasurableSMul₂.{u1, u2} M β _inst_3 _inst_1 _inst_2] {μ : MeasureTheory.Measure.{u3} α m}, (AEMeasurable.{u3, u1} α M _inst_1 m f μ) -> (AEMeasurable.{u3, u2} α β _inst_2 m g μ) -> (AEMeasurable.{u3, u2} α β _inst_2 m (fun (x : α) => SMul.smul.{u1, u2} M β _inst_3 (f x) (g x)) μ)
-but is expected to have type
- forall {M : Type.{u3}} {β : Type.{u2}} {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u3} M] [_inst_2 : MeasurableSpace.{u2} β] [_inst_3 : SMul.{u3, u2} M β] {m : MeasurableSpace.{u1} α} {f : α -> M} {g : α -> β} [_inst_4 : MeasurableSMul₂.{u3, u2} M β _inst_3 _inst_1 _inst_2] {μ : MeasureTheory.Measure.{u1} α m}, (AEMeasurable.{u1, u3} α M _inst_1 m f μ) -> (AEMeasurable.{u1, u2} α β _inst_2 m g μ) -> (AEMeasurable.{u1, u2} α β _inst_2 m (fun (x : α) => HSMul.hSMul.{u3, u2, u2} M β β (instHSMul.{u3, u2} M β _inst_3) (f x) (g x)) μ)
-Case conversion may be inaccurate. Consider using '#align ae_measurable.smul AEMeasurable.smulₓ'. -/
@[measurability, to_additive]
theorem AEMeasurable.smul [MeasurableSMul₂ M β] {μ : Measure α} (hf : AEMeasurable f μ)
(hg : AEMeasurable g μ) : AEMeasurable (fun x => f x • g x) μ :=
@@ -923,24 +701,12 @@ include m
variable [MeasurableSMul M β] {μ : Measure α}
-/- warning: measurable.smul_const -> Measurable.smul_const is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {β : Type.{u2}} {α : Type.{u3}} [_inst_1 : MeasurableSpace.{u1} M] [_inst_2 : MeasurableSpace.{u2} β] [_inst_3 : SMul.{u1, u2} M β] {m : MeasurableSpace.{u3} α} {f : α -> M} [_inst_4 : MeasurableSMul.{u1, u2} M β _inst_3 _inst_1 _inst_2], (Measurable.{u3, u1} α M m _inst_1 f) -> (forall (y : β), Measurable.{u3, u2} α β m _inst_2 (fun (x : α) => SMul.smul.{u1, u2} M β _inst_3 (f x) y))
-but is expected to have type
- forall {M : Type.{u2}} {β : Type.{u1}} {α : Type.{u3}} [_inst_1 : MeasurableSpace.{u2} M] [_inst_2 : MeasurableSpace.{u1} β] [_inst_3 : SMul.{u2, u1} M β] {m : MeasurableSpace.{u3} α} {f : α -> M} [_inst_4 : MeasurableSMul.{u2, u1} M β _inst_3 _inst_1 _inst_2], (Measurable.{u3, u2} α M m _inst_1 f) -> (forall (y : β), Measurable.{u3, u1} α β m _inst_2 (fun (x : α) => HSMul.hSMul.{u2, u1, u1} M β β (instHSMul.{u2, u1} M β _inst_3) (f x) y))
-Case conversion may be inaccurate. Consider using '#align measurable.smul_const Measurable.smul_constₓ'. -/
@[measurability, to_additive]
theorem Measurable.smul_const (hf : Measurable f) (y : β) : Measurable fun x => f x • y :=
(MeasurableSMul.measurable_smul_const y).comp hf
#align measurable.smul_const Measurable.smul_const
#align measurable.vadd_const Measurable.vadd_const
-/- warning: ae_measurable.smul_const -> AEMeasurable.smul_const is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {β : Type.{u2}} {α : Type.{u3}} [_inst_1 : MeasurableSpace.{u1} M] [_inst_2 : MeasurableSpace.{u2} β] [_inst_3 : SMul.{u1, u2} M β] {m : MeasurableSpace.{u3} α} {f : α -> M} [_inst_4 : MeasurableSMul.{u1, u2} M β _inst_3 _inst_1 _inst_2] {μ : MeasureTheory.Measure.{u3} α m}, (AEMeasurable.{u3, u1} α M _inst_1 m f μ) -> (forall (y : β), AEMeasurable.{u3, u2} α β _inst_2 m (fun (x : α) => SMul.smul.{u1, u2} M β _inst_3 (f x) y) μ)
-but is expected to have type
- forall {M : Type.{u2}} {β : Type.{u1}} {α : Type.{u3}} [_inst_1 : MeasurableSpace.{u2} M] [_inst_2 : MeasurableSpace.{u1} β] [_inst_3 : SMul.{u2, u1} M β] {m : MeasurableSpace.{u3} α} {f : α -> M} [_inst_4 : MeasurableSMul.{u2, u1} M β _inst_3 _inst_1 _inst_2] {μ : MeasureTheory.Measure.{u3} α m}, (AEMeasurable.{u3, u2} α M _inst_1 m f μ) -> (forall (y : β), AEMeasurable.{u3, u1} α β _inst_2 m (fun (x : α) => HSMul.hSMul.{u2, u1, u1} M β β (instHSMul.{u2, u1} M β _inst_3) (f x) y) μ)
-Case conversion may be inaccurate. Consider using '#align ae_measurable.smul_const AEMeasurable.smul_constₓ'. -/
@[measurability, to_additive]
theorem AEMeasurable.smul_const (hf : AEMeasurable f μ) (y : β) :
AEMeasurable (fun x => f x • y) μ :=
@@ -993,12 +759,6 @@ instance Pi.measurableSMul {ι : Type _} {α : ι → Type _} [∀ i, SMul M (α
#align pi.has_measurable_vadd Pi.measurableVAdd
-/
-/- warning: add_monoid.has_measurable_smul_nat₂ -> AddMonoid.measurableSMul_nat₂ is a dubious translation:
-lean 3 declaration is
- forall (M : Type.{u1}) [_inst_5 : AddMonoid.{u1} M] [_inst_6 : MeasurableSpace.{u1} M] [_inst_7 : MeasurableAdd₂.{u1} M _inst_6 (AddZeroClass.toHasAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M _inst_5))], MeasurableSMul₂.{0, u1} Nat M (AddMonoid.SMul.{u1} M _inst_5) Nat.instMeasurableSpace _inst_6
-but is expected to have type
- forall (M : Type.{u1}) [_inst_5 : AddMonoid.{u1} M] [_inst_6 : MeasurableSpace.{u1} M] [_inst_7 : MeasurableAdd₂.{u1} M _inst_6 (AddZeroClass.toAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M _inst_5))], MeasurableSMul₂.{0, u1} Nat M (AddMonoid.SMul.{u1} M _inst_5) Nat.instMeasurableSpace _inst_6
-Case conversion may be inaccurate. Consider using '#align add_monoid.has_measurable_smul_nat₂ AddMonoid.measurableSMul_nat₂ₓ'. -/
/-- `add_monoid.has_smul_nat` is measurable. -/
instance AddMonoid.measurableSMul_nat₂ (M : Type _) [AddMonoid M] [MeasurableSpace M]
[MeasurableAdd₂ M] : MeasurableSMul₂ ℕ M :=
@@ -1010,12 +770,6 @@ instance AddMonoid.measurableSMul_nat₂ (M : Type _) [AddMonoid M] [MeasurableS
· simp only [succ_nsmul]; exact measurable_id.add ih⟩
#align add_monoid.has_measurable_smul_nat₂ AddMonoid.measurableSMul_nat₂
-/- warning: sub_neg_monoid.has_measurable_smul_int₂ -> SubNegMonoid.measurableSMul_int₂ is a dubious translation:
-lean 3 declaration is
- forall (M : Type.{u1}) [_inst_5 : SubNegMonoid.{u1} M] [_inst_6 : MeasurableSpace.{u1} M] [_inst_7 : MeasurableAdd₂.{u1} M _inst_6 (AddZeroClass.toHasAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M _inst_5)))] [_inst_8 : MeasurableNeg.{u1} M (SubNegMonoid.toHasNeg.{u1} M _inst_5) _inst_6], MeasurableSMul₂.{0, u1} Int M (SubNegMonoid.SMulInt.{u1} M _inst_5) Int.instMeasurableSpace _inst_6
-but is expected to have type
- forall (M : Type.{u1}) [_inst_5 : SubNegMonoid.{u1} M] [_inst_6 : MeasurableSpace.{u1} M] [_inst_7 : MeasurableAdd₂.{u1} M _inst_6 (AddZeroClass.toAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M _inst_5)))] [_inst_8 : MeasurableNeg.{u1} M (SubNegMonoid.toNeg.{u1} M _inst_5) _inst_6], MeasurableSMul₂.{0, u1} Int M (SubNegMonoid.SMulInt.{u1} M _inst_5) Int.instMeasurableSpace _inst_6
-Case conversion may be inaccurate. Consider using '#align sub_neg_monoid.has_measurable_smul_int₂ SubNegMonoid.measurableSMul_int₂ₓ'. -/
/-- `sub_neg_monoid.has_smul_int` is measurable. -/
instance SubNegMonoid.measurableSMul_int₂ (M : Type _) [SubNegMonoid M] [MeasurableSpace M]
[MeasurableAdd₂ M] [MeasurableNeg M] : MeasurableSMul₂ ℤ M :=
@@ -1036,24 +790,12 @@ variable {M β α : Type _} [MeasurableSpace M] [MeasurableSpace β] [Monoid M]
variable {G : Type _} [Group G] [MeasurableSpace G] [MulAction G β] [MeasurableSMul G β]
-/- warning: measurable_const_smul_iff -> measurable_const_smul_iff is a dubious translation:
-lean 3 declaration is
- forall {β : Type.{u1}} {α : Type.{u2}} [_inst_2 : MeasurableSpace.{u1} β] [_inst_6 : MeasurableSpace.{u2} α] {f : α -> β} {G : Type.{u3}} [_inst_7 : Group.{u3} G] [_inst_8 : MeasurableSpace.{u3} G] [_inst_9 : MulAction.{u3, u1} G β (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_7))] [_inst_10 : MeasurableSMul.{u3, u1} G β (MulAction.toHasSmul.{u3, u1} G β (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_7)) _inst_9) _inst_8 _inst_2] (c : G), Iff (Measurable.{u2, u1} α β _inst_6 _inst_2 (fun (x : α) => SMul.smul.{u3, u1} G β (MulAction.toHasSmul.{u3, u1} G β (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_7)) _inst_9) c (f x))) (Measurable.{u2, u1} α β _inst_6 _inst_2 f)
-but is expected to have type
- forall {β : Type.{u2}} {α : Type.{u3}} [_inst_2 : MeasurableSpace.{u2} β] [_inst_6 : MeasurableSpace.{u3} α] {f : α -> β} {G : Type.{u1}} [_inst_7 : Group.{u1} G] [_inst_8 : MeasurableSpace.{u1} G] [_inst_9 : MulAction.{u1, u2} G β (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_7))] [_inst_10 : MeasurableSMul.{u1, u2} G β (MulAction.toSMul.{u1, u2} G β (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_7)) _inst_9) _inst_8 _inst_2] (c : G), Iff (Measurable.{u3, u2} α β _inst_6 _inst_2 (fun (x : α) => HSMul.hSMul.{u1, u2, u2} G β β (instHSMul.{u1, u2} G β (MulAction.toSMul.{u1, u2} G β (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_7)) _inst_9)) c (f x))) (Measurable.{u3, u2} α β _inst_6 _inst_2 f)
-Case conversion may be inaccurate. Consider using '#align measurable_const_smul_iff measurable_const_smul_iffₓ'. -/
@[to_additive]
theorem measurable_const_smul_iff (c : G) : (Measurable fun x => c • f x) ↔ Measurable f :=
⟨fun h => by simpa only [inv_smul_smul] using h.const_smul' c⁻¹, fun h => h.const_smul c⟩
#align measurable_const_smul_iff measurable_const_smul_iff
#align measurable_const_vadd_iff measurable_const_vadd_iff
-/- warning: ae_measurable_const_smul_iff -> aemeasurable_const_smul_iff is a dubious translation:
-lean 3 declaration is
- forall {β : Type.{u1}} {α : Type.{u2}} [_inst_2 : MeasurableSpace.{u1} β] [_inst_6 : MeasurableSpace.{u2} α] {f : α -> β} {μ : MeasureTheory.Measure.{u2} α _inst_6} {G : Type.{u3}} [_inst_7 : Group.{u3} G] [_inst_8 : MeasurableSpace.{u3} G] [_inst_9 : MulAction.{u3, u1} G β (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_7))] [_inst_10 : MeasurableSMul.{u3, u1} G β (MulAction.toHasSmul.{u3, u1} G β (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_7)) _inst_9) _inst_8 _inst_2] (c : G), Iff (AEMeasurable.{u2, u1} α β _inst_2 _inst_6 (fun (x : α) => SMul.smul.{u3, u1} G β (MulAction.toHasSmul.{u3, u1} G β (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_7)) _inst_9) c (f x)) μ) (AEMeasurable.{u2, u1} α β _inst_2 _inst_6 f μ)
-but is expected to have type
- forall {β : Type.{u2}} {α : Type.{u3}} [_inst_2 : MeasurableSpace.{u2} β] [_inst_6 : MeasurableSpace.{u3} α] {f : α -> β} {μ : MeasureTheory.Measure.{u3} α _inst_6} {G : Type.{u1}} [_inst_7 : Group.{u1} G] [_inst_8 : MeasurableSpace.{u1} G] [_inst_9 : MulAction.{u1, u2} G β (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_7))] [_inst_10 : MeasurableSMul.{u1, u2} G β (MulAction.toSMul.{u1, u2} G β (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_7)) _inst_9) _inst_8 _inst_2] (c : G), Iff (AEMeasurable.{u3, u2} α β _inst_2 _inst_6 (fun (x : α) => HSMul.hSMul.{u1, u2, u2} G β β (instHSMul.{u1, u2} G β (MulAction.toSMul.{u1, u2} G β (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_7)) _inst_9)) c (f x)) μ) (AEMeasurable.{u3, u2} α β _inst_2 _inst_6 f μ)
-Case conversion may be inaccurate. Consider using '#align ae_measurable_const_smul_iff aemeasurable_const_smul_iffₓ'. -/
@[to_additive]
theorem aemeasurable_const_smul_iff (c : G) :
AEMeasurable (fun x => c • f x) μ ↔ AEMeasurable f μ :=
@@ -1076,12 +818,6 @@ instance Units.measurableSMul : MeasurableSMul Mˣ β
#align add_units.has_measurable_vadd AddUnits.measurableVAdd
-/
-/- warning: is_unit.measurable_const_smul_iff -> IsUnit.measurable_const_smul_iff is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {β : Type.{u2}} {α : Type.{u3}} [_inst_1 : MeasurableSpace.{u1} M] [_inst_2 : MeasurableSpace.{u2} β] [_inst_3 : Monoid.{u1} M] [_inst_4 : MulAction.{u1, u2} M β _inst_3] [_inst_5 : MeasurableSMul.{u1, u2} M β (MulAction.toHasSmul.{u1, u2} M β _inst_3 _inst_4) _inst_1 _inst_2] [_inst_6 : MeasurableSpace.{u3} α] {f : α -> β} {c : M}, (IsUnit.{u1} M _inst_3 c) -> (Iff (Measurable.{u3, u2} α β _inst_6 _inst_2 (fun (x : α) => SMul.smul.{u1, u2} M β (MulAction.toHasSmul.{u1, u2} M β _inst_3 _inst_4) c (f x))) (Measurable.{u3, u2} α β _inst_6 _inst_2 f))
-but is expected to have type
- forall {M : Type.{u3}} {β : Type.{u1}} {α : Type.{u2}} [_inst_1 : MeasurableSpace.{u3} M] [_inst_2 : MeasurableSpace.{u1} β] [_inst_3 : Monoid.{u3} M] [_inst_4 : MulAction.{u3, u1} M β _inst_3] [_inst_5 : MeasurableSMul.{u3, u1} M β (MulAction.toSMul.{u3, u1} M β _inst_3 _inst_4) _inst_1 _inst_2] [_inst_6 : MeasurableSpace.{u2} α] {f : α -> β} {c : M}, (IsUnit.{u3} M _inst_3 c) -> (Iff (Measurable.{u2, u1} α β _inst_6 _inst_2 (fun (x : α) => HSMul.hSMul.{u3, u1, u1} M β β (instHSMul.{u3, u1} M β (MulAction.toSMul.{u3, u1} M β _inst_3 _inst_4)) c (f x))) (Measurable.{u2, u1} α β _inst_6 _inst_2 f))
-Case conversion may be inaccurate. Consider using '#align is_unit.measurable_const_smul_iff IsUnit.measurable_const_smul_iffₓ'. -/
@[to_additive]
theorem IsUnit.measurable_const_smul_iff {c : M} (hc : IsUnit c) :
(Measurable fun x => c • f x) ↔ Measurable f :=
@@ -1090,12 +826,6 @@ theorem IsUnit.measurable_const_smul_iff {c : M} (hc : IsUnit c) :
#align is_unit.measurable_const_smul_iff IsUnit.measurable_const_smul_iff
#align is_add_unit.measurable_const_vadd_iff IsAddUnit.measurable_const_vadd_iff
-/- warning: is_unit.ae_measurable_const_smul_iff -> IsUnit.aemeasurable_const_smul_iff is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {β : Type.{u2}} {α : Type.{u3}} [_inst_1 : MeasurableSpace.{u1} M] [_inst_2 : MeasurableSpace.{u2} β] [_inst_3 : Monoid.{u1} M] [_inst_4 : MulAction.{u1, u2} M β _inst_3] [_inst_5 : MeasurableSMul.{u1, u2} M β (MulAction.toHasSmul.{u1, u2} M β _inst_3 _inst_4) _inst_1 _inst_2] [_inst_6 : MeasurableSpace.{u3} α] {f : α -> β} {μ : MeasureTheory.Measure.{u3} α _inst_6} {c : M}, (IsUnit.{u1} M _inst_3 c) -> (Iff (AEMeasurable.{u3, u2} α β _inst_2 _inst_6 (fun (x : α) => SMul.smul.{u1, u2} M β (MulAction.toHasSmul.{u1, u2} M β _inst_3 _inst_4) c (f x)) μ) (AEMeasurable.{u3, u2} α β _inst_2 _inst_6 f μ))
-but is expected to have type
- forall {M : Type.{u3}} {β : Type.{u1}} {α : Type.{u2}} [_inst_1 : MeasurableSpace.{u3} M] [_inst_2 : MeasurableSpace.{u1} β] [_inst_3 : Monoid.{u3} M] [_inst_4 : MulAction.{u3, u1} M β _inst_3] [_inst_5 : MeasurableSMul.{u3, u1} M β (MulAction.toSMul.{u3, u1} M β _inst_3 _inst_4) _inst_1 _inst_2] [_inst_6 : MeasurableSpace.{u2} α] {f : α -> β} {μ : MeasureTheory.Measure.{u2} α _inst_6} {c : M}, (IsUnit.{u3} M _inst_3 c) -> (Iff (AEMeasurable.{u2, u1} α β _inst_2 _inst_6 (fun (x : α) => HSMul.hSMul.{u3, u1, u1} M β β (instHSMul.{u3, u1} M β (MulAction.toSMul.{u3, u1} M β _inst_3 _inst_4)) c (f x)) μ) (AEMeasurable.{u2, u1} α β _inst_2 _inst_6 f μ))
-Case conversion may be inaccurate. Consider using '#align is_unit.ae_measurable_const_smul_iff IsUnit.aemeasurable_const_smul_iffₓ'. -/
@[to_additive]
theorem IsUnit.aemeasurable_const_smul_iff {c : M} (hc : IsUnit c) :
AEMeasurable (fun x => c • f x) μ ↔ AEMeasurable f μ :=
@@ -1107,23 +837,11 @@ theorem IsUnit.aemeasurable_const_smul_iff {c : M} (hc : IsUnit c) :
variable {G₀ : Type _} [GroupWithZero G₀] [MeasurableSpace G₀] [MulAction G₀ β]
[MeasurableSMul G₀ β]
-/- warning: measurable_const_smul_iff₀ -> measurable_const_smul_iff₀ is a dubious translation:
-lean 3 declaration is
- forall {β : Type.{u1}} {α : Type.{u2}} [_inst_2 : MeasurableSpace.{u1} β] [_inst_6 : MeasurableSpace.{u2} α] {f : α -> β} {G₀ : Type.{u3}} [_inst_11 : GroupWithZero.{u3} G₀] [_inst_12 : MeasurableSpace.{u3} G₀] [_inst_13 : MulAction.{u3, u1} G₀ β (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_11))] [_inst_14 : MeasurableSMul.{u3, u1} G₀ β (MulAction.toHasSmul.{u3, u1} G₀ β (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_11)) _inst_13) _inst_12 _inst_2] {c : G₀}, (Ne.{succ u3} G₀ c (OfNat.ofNat.{u3} G₀ 0 (OfNat.mk.{u3} G₀ 0 (Zero.zero.{u3} G₀ (MulZeroClass.toHasZero.{u3} G₀ (MulZeroOneClass.toMulZeroClass.{u3} G₀ (MonoidWithZero.toMulZeroOneClass.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_11)))))))) -> (Iff (Measurable.{u2, u1} α β _inst_6 _inst_2 (fun (x : α) => SMul.smul.{u3, u1} G₀ β (MulAction.toHasSmul.{u3, u1} G₀ β (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_11)) _inst_13) c (f x))) (Measurable.{u2, u1} α β _inst_6 _inst_2 f))
-but is expected to have type
- forall {β : Type.{u1}} {α : Type.{u2}} [_inst_2 : MeasurableSpace.{u1} β] [_inst_6 : MeasurableSpace.{u2} α] {f : α -> β} {G₀ : Type.{u3}} [_inst_11 : GroupWithZero.{u3} G₀] [_inst_12 : MeasurableSpace.{u3} G₀] [_inst_13 : MulAction.{u3, u1} G₀ β (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_11))] [_inst_14 : MeasurableSMul.{u3, u1} G₀ β (MulAction.toSMul.{u3, u1} G₀ β (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_11)) _inst_13) _inst_12 _inst_2] {c : G₀}, (Ne.{succ u3} G₀ c (OfNat.ofNat.{u3} G₀ 0 (Zero.toOfNat0.{u3} G₀ (MonoidWithZero.toZero.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_11))))) -> (Iff (Measurable.{u2, u1} α β _inst_6 _inst_2 (fun (x : α) => HSMul.hSMul.{u3, u1, u1} G₀ β β (instHSMul.{u3, u1} G₀ β (MulAction.toSMul.{u3, u1} G₀ β (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_11)) _inst_13)) c (f x))) (Measurable.{u2, u1} α β _inst_6 _inst_2 f))
-Case conversion may be inaccurate. Consider using '#align measurable_const_smul_iff₀ measurable_const_smul_iff₀ₓ'. -/
theorem measurable_const_smul_iff₀ {c : G₀} (hc : c ≠ 0) :
(Measurable fun x => c • f x) ↔ Measurable f :=
(IsUnit.mk0 c hc).measurable_const_smul_iff
#align measurable_const_smul_iff₀ measurable_const_smul_iff₀
-/- warning: ae_measurable_const_smul_iff₀ -> aemeasurable_const_smul_iff₀ is a dubious translation:
-lean 3 declaration is
- forall {β : Type.{u1}} {α : Type.{u2}} [_inst_2 : MeasurableSpace.{u1} β] [_inst_6 : MeasurableSpace.{u2} α] {f : α -> β} {μ : MeasureTheory.Measure.{u2} α _inst_6} {G₀ : Type.{u3}} [_inst_11 : GroupWithZero.{u3} G₀] [_inst_12 : MeasurableSpace.{u3} G₀] [_inst_13 : MulAction.{u3, u1} G₀ β (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_11))] [_inst_14 : MeasurableSMul.{u3, u1} G₀ β (MulAction.toHasSmul.{u3, u1} G₀ β (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_11)) _inst_13) _inst_12 _inst_2] {c : G₀}, (Ne.{succ u3} G₀ c (OfNat.ofNat.{u3} G₀ 0 (OfNat.mk.{u3} G₀ 0 (Zero.zero.{u3} G₀ (MulZeroClass.toHasZero.{u3} G₀ (MulZeroOneClass.toMulZeroClass.{u3} G₀ (MonoidWithZero.toMulZeroOneClass.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_11)))))))) -> (Iff (AEMeasurable.{u2, u1} α β _inst_2 _inst_6 (fun (x : α) => SMul.smul.{u3, u1} G₀ β (MulAction.toHasSmul.{u3, u1} G₀ β (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_11)) _inst_13) c (f x)) μ) (AEMeasurable.{u2, u1} α β _inst_2 _inst_6 f μ))
-but is expected to have type
- forall {β : Type.{u1}} {α : Type.{u2}} [_inst_2 : MeasurableSpace.{u1} β] [_inst_6 : MeasurableSpace.{u2} α] {f : α -> β} {μ : MeasureTheory.Measure.{u2} α _inst_6} {G₀ : Type.{u3}} [_inst_11 : GroupWithZero.{u3} G₀] [_inst_12 : MeasurableSpace.{u3} G₀] [_inst_13 : MulAction.{u3, u1} G₀ β (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_11))] [_inst_14 : MeasurableSMul.{u3, u1} G₀ β (MulAction.toSMul.{u3, u1} G₀ β (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_11)) _inst_13) _inst_12 _inst_2] {c : G₀}, (Ne.{succ u3} G₀ c (OfNat.ofNat.{u3} G₀ 0 (Zero.toOfNat0.{u3} G₀ (MonoidWithZero.toZero.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_11))))) -> (Iff (AEMeasurable.{u2, u1} α β _inst_2 _inst_6 (fun (x : α) => HSMul.hSMul.{u3, u1, u1} G₀ β β (instHSMul.{u3, u1} G₀ β (MulAction.toSMul.{u3, u1} G₀ β (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_11)) _inst_13)) c (f x)) μ) (AEMeasurable.{u2, u1} α β _inst_2 _inst_6 f μ))
-Case conversion may be inaccurate. Consider using '#align ae_measurable_const_smul_iff₀ aemeasurable_const_smul_iff₀ₓ'. -/
theorem aemeasurable_const_smul_iff₀ {c : G₀} (hc : c ≠ 0) :
AEMeasurable (fun x => c • f x) μ ↔ AEMeasurable f μ :=
(IsUnit.mk0 c hc).aemeasurable_const_smul_iff
@@ -1226,12 +944,6 @@ variable {M α : Type _} [Monoid M] [MeasurableSpace M] [MeasurableMul₂ M] {m
include m
-/- warning: list.measurable_prod' -> List.measurable_prod' is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {α : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : MeasurableSpace.{u1} M] [_inst_3 : MeasurableMul₂.{u1} M _inst_2 (MulOneClass.toHasMul.{u1} M (Monoid.toMulOneClass.{u1} M _inst_1))] {m : MeasurableSpace.{u2} α} (l : List.{max u2 u1} (α -> M)), (forall (f : α -> M), (Membership.Mem.{max u2 u1, max u2 u1} (α -> M) (List.{max u2 u1} (α -> M)) (List.hasMem.{max u2 u1} (α -> M)) f l) -> (Measurable.{u2, u1} α M m _inst_2 f)) -> (Measurable.{u2, u1} α M m _inst_2 (List.prod.{max u2 u1} (α -> M) (Pi.instMul.{u2, u1} α (fun (ᾰ : α) => M) (fun (i : α) => MulOneClass.toHasMul.{u1} M (Monoid.toMulOneClass.{u1} M _inst_1))) (Pi.instOne.{u2, u1} α (fun (ᾰ : α) => M) (fun (i : α) => MulOneClass.toHasOne.{u1} M (Monoid.toMulOneClass.{u1} M _inst_1))) l))
-but is expected to have type
- forall {M : Type.{u2}} {α : Type.{u1}} [_inst_1 : Monoid.{u2} M] [_inst_2 : MeasurableSpace.{u2} M] [_inst_3 : MeasurableMul₂.{u2} M _inst_2 (MulOneClass.toMul.{u2} M (Monoid.toMulOneClass.{u2} M _inst_1))] {m : MeasurableSpace.{u1} α} (l : List.{max u2 u1} (α -> M)), (forall (f : α -> M), (Membership.mem.{max u2 u1, max u2 u1} (α -> M) (List.{max u2 u1} (α -> M)) (List.instMembershipList.{max u2 u1} (α -> M)) f l) -> (Measurable.{u1, u2} α M m _inst_2 f)) -> (Measurable.{u1, u2} α M m _inst_2 (List.prod.{max u2 u1} (α -> M) (Pi.instMul.{u1, u2} α (fun (ᾰ : α) => M) (fun (i : α) => MulOneClass.toMul.{u2} M (Monoid.toMulOneClass.{u2} M _inst_1))) (Pi.instOne.{u1, u2} α (fun (ᾰ : α) => M) (fun (i : α) => Monoid.toOne.{u2} M _inst_1)) l))
-Case conversion may be inaccurate. Consider using '#align list.measurable_prod' List.measurable_prod'ₓ'. -/
@[measurability, to_additive]
theorem List.measurable_prod' (l : List (α → M)) (hl : ∀ f ∈ l, Measurable f) : Measurable l.Prod :=
by
@@ -1242,12 +954,6 @@ theorem List.measurable_prod' (l : List (α → M)) (hl : ∀ f ∈ l, Measurabl
#align list.measurable_prod' List.measurable_prod'
#align list.measurable_sum' List.measurable_sum'
-/- warning: list.ae_measurable_prod' -> List.aemeasurable_prod' is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {α : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : MeasurableSpace.{u1} M] [_inst_3 : MeasurableMul₂.{u1} M _inst_2 (MulOneClass.toHasMul.{u1} M (Monoid.toMulOneClass.{u1} M _inst_1))] {m : MeasurableSpace.{u2} α} {μ : MeasureTheory.Measure.{u2} α m} (l : List.{max u2 u1} (α -> M)), (forall (f : α -> M), (Membership.Mem.{max u2 u1, max u2 u1} (α -> M) (List.{max u2 u1} (α -> M)) (List.hasMem.{max u2 u1} (α -> M)) f l) -> (AEMeasurable.{u2, u1} α M _inst_2 m f μ)) -> (AEMeasurable.{u2, u1} α M _inst_2 m (List.prod.{max u2 u1} (α -> M) (Pi.instMul.{u2, u1} α (fun (ᾰ : α) => M) (fun (i : α) => MulOneClass.toHasMul.{u1} M (Monoid.toMulOneClass.{u1} M _inst_1))) (Pi.instOne.{u2, u1} α (fun (ᾰ : α) => M) (fun (i : α) => MulOneClass.toHasOne.{u1} M (Monoid.toMulOneClass.{u1} M _inst_1))) l) μ)
-but is expected to have type
- forall {M : Type.{u2}} {α : Type.{u1}} [_inst_1 : Monoid.{u2} M] [_inst_2 : MeasurableSpace.{u2} M] [_inst_3 : MeasurableMul₂.{u2} M _inst_2 (MulOneClass.toMul.{u2} M (Monoid.toMulOneClass.{u2} M _inst_1))] {m : MeasurableSpace.{u1} α} {μ : MeasureTheory.Measure.{u1} α m} (l : List.{max u2 u1} (α -> M)), (forall (f : α -> M), (Membership.mem.{max u2 u1, max u2 u1} (α -> M) (List.{max u2 u1} (α -> M)) (List.instMembershipList.{max u2 u1} (α -> M)) f l) -> (AEMeasurable.{u1, u2} α M _inst_2 m f μ)) -> (AEMeasurable.{u1, u2} α M _inst_2 m (List.prod.{max u2 u1} (α -> M) (Pi.instMul.{u1, u2} α (fun (ᾰ : α) => M) (fun (i : α) => MulOneClass.toMul.{u2} M (Monoid.toMulOneClass.{u2} M _inst_1))) (Pi.instOne.{u1, u2} α (fun (ᾰ : α) => M) (fun (i : α) => Monoid.toOne.{u2} M _inst_1)) l) μ)
-Case conversion may be inaccurate. Consider using '#align list.ae_measurable_prod' List.aemeasurable_prod'ₓ'. -/
@[measurability, to_additive]
theorem List.aemeasurable_prod' (l : List (α → M)) (hl : ∀ f ∈ l, AEMeasurable f μ) :
AEMeasurable l.Prod μ := by
@@ -1258,12 +964,6 @@ theorem List.aemeasurable_prod' (l : List (α → M)) (hl : ∀ f ∈ l, AEMeasu
#align list.ae_measurable_prod' List.aemeasurable_prod'
#align list.ae_measurable_sum' List.aemeasurable_sum'
-/- warning: list.measurable_prod -> List.measurable_prod is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {α : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : MeasurableSpace.{u1} M] [_inst_3 : MeasurableMul₂.{u1} M _inst_2 (MulOneClass.toHasMul.{u1} M (Monoid.toMulOneClass.{u1} M _inst_1))] {m : MeasurableSpace.{u2} α} (l : List.{max u2 u1} (α -> M)), (forall (f : α -> M), (Membership.Mem.{max u2 u1, max u2 u1} (α -> M) (List.{max u2 u1} (α -> M)) (List.hasMem.{max u2 u1} (α -> M)) f l) -> (Measurable.{u2, u1} α M m _inst_2 f)) -> (Measurable.{u2, u1} α M m _inst_2 (fun (x : α) => List.prod.{u1} M (MulOneClass.toHasMul.{u1} M (Monoid.toMulOneClass.{u1} M _inst_1)) (MulOneClass.toHasOne.{u1} M (Monoid.toMulOneClass.{u1} M _inst_1)) (List.map.{max u2 u1, u1} (α -> M) M (fun (f : α -> M) => f x) l)))
-but is expected to have type
- forall {M : Type.{u2}} {α : Type.{u1}} [_inst_1 : Monoid.{u2} M] [_inst_2 : MeasurableSpace.{u2} M] [_inst_3 : MeasurableMul₂.{u2} M _inst_2 (MulOneClass.toMul.{u2} M (Monoid.toMulOneClass.{u2} M _inst_1))] {m : MeasurableSpace.{u1} α} (l : List.{max u2 u1} (α -> M)), (forall (f : α -> M), (Membership.mem.{max u2 u1, max u2 u1} (α -> M) (List.{max u2 u1} (α -> M)) (List.instMembershipList.{max u2 u1} (α -> M)) f l) -> (Measurable.{u1, u2} α M m _inst_2 f)) -> (Measurable.{u1, u2} α M m _inst_2 (fun (x : α) => List.prod.{u2} M (MulOneClass.toMul.{u2} M (Monoid.toMulOneClass.{u2} M _inst_1)) (Monoid.toOne.{u2} M _inst_1) (List.map.{max u2 u1, u2} (α -> M) M (fun (f : α -> M) => f x) l)))
-Case conversion may be inaccurate. Consider using '#align list.measurable_prod List.measurable_prodₓ'. -/
@[measurability, to_additive]
theorem List.measurable_prod (l : List (α → M)) (hl : ∀ f ∈ l, Measurable f) :
Measurable fun x => (l.map fun f : α → M => f x).Prod := by
@@ -1271,12 +971,6 @@ theorem List.measurable_prod (l : List (α → M)) (hl : ∀ f ∈ l, Measurable
#align list.measurable_prod List.measurable_prod
#align list.measurable_sum List.measurable_sum
-/- warning: list.ae_measurable_prod -> List.aemeasurable_prod is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {α : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : MeasurableSpace.{u1} M] [_inst_3 : MeasurableMul₂.{u1} M _inst_2 (MulOneClass.toHasMul.{u1} M (Monoid.toMulOneClass.{u1} M _inst_1))] {m : MeasurableSpace.{u2} α} {μ : MeasureTheory.Measure.{u2} α m} (l : List.{max u2 u1} (α -> M)), (forall (f : α -> M), (Membership.Mem.{max u2 u1, max u2 u1} (α -> M) (List.{max u2 u1} (α -> M)) (List.hasMem.{max u2 u1} (α -> M)) f l) -> (AEMeasurable.{u2, u1} α M _inst_2 m f μ)) -> (AEMeasurable.{u2, u1} α M _inst_2 m (fun (x : α) => List.prod.{u1} M (MulOneClass.toHasMul.{u1} M (Monoid.toMulOneClass.{u1} M _inst_1)) (MulOneClass.toHasOne.{u1} M (Monoid.toMulOneClass.{u1} M _inst_1)) (List.map.{max u2 u1, u1} (α -> M) M (fun (f : α -> M) => f x) l)) μ)
-but is expected to have type
- forall {M : Type.{u2}} {α : Type.{u1}} [_inst_1 : Monoid.{u2} M] [_inst_2 : MeasurableSpace.{u2} M] [_inst_3 : MeasurableMul₂.{u2} M _inst_2 (MulOneClass.toMul.{u2} M (Monoid.toMulOneClass.{u2} M _inst_1))] {m : MeasurableSpace.{u1} α} {μ : MeasureTheory.Measure.{u1} α m} (l : List.{max u2 u1} (α -> M)), (forall (f : α -> M), (Membership.mem.{max u2 u1, max u2 u1} (α -> M) (List.{max u2 u1} (α -> M)) (List.instMembershipList.{max u2 u1} (α -> M)) f l) -> (AEMeasurable.{u1, u2} α M _inst_2 m f μ)) -> (AEMeasurable.{u1, u2} α M _inst_2 m (fun (x : α) => List.prod.{u2} M (MulOneClass.toMul.{u2} M (Monoid.toMulOneClass.{u2} M _inst_1)) (Monoid.toOne.{u2} M _inst_1) (List.map.{max u2 u1, u2} (α -> M) M (fun (f : α -> M) => f x) l)) μ)
-Case conversion may be inaccurate. Consider using '#align list.ae_measurable_prod List.aemeasurable_prodₓ'. -/
@[measurability, to_additive]
theorem List.aemeasurable_prod (l : List (α → M)) (hl : ∀ f ∈ l, AEMeasurable f μ) :
AEMeasurable (fun x => (l.map fun f : α → M => f x).Prod) μ := by
@@ -1295,24 +989,12 @@ variable {M ι α : Type _} [CommMonoid M] [MeasurableSpace M] [MeasurableMul₂
include m
-/- warning: multiset.measurable_prod' -> Multiset.measurable_prod' is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {α : Type.{u2}} [_inst_1 : CommMonoid.{u1} M] [_inst_2 : MeasurableSpace.{u1} M] [_inst_3 : MeasurableMul₂.{u1} M _inst_2 (MulOneClass.toHasMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))] {m : MeasurableSpace.{u2} α} (l : Multiset.{max u2 u1} (α -> M)), (forall (f : α -> M), (Membership.Mem.{max u2 u1, max u2 u1} (α -> M) (Multiset.{max u2 u1} (α -> M)) (Multiset.hasMem.{max u2 u1} (α -> M)) f l) -> (Measurable.{u2, u1} α M m _inst_2 f)) -> (Measurable.{u2, u1} α M m _inst_2 (Multiset.prod.{max u2 u1} (α -> M) (Pi.commMonoid.{u2, u1} α (fun (ᾰ : α) => M) (fun (i : α) => _inst_1)) l))
-but is expected to have type
- forall {M : Type.{u2}} {α : Type.{u1}} [_inst_1 : CommMonoid.{u2} M] [_inst_2 : MeasurableSpace.{u2} M] [_inst_3 : MeasurableMul₂.{u2} M _inst_2 (MulOneClass.toMul.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)))] {m : MeasurableSpace.{u1} α} (l : Multiset.{max u2 u1} (α -> M)), (forall (f : α -> M), (Membership.mem.{max u2 u1, max u2 u1} (α -> M) (Multiset.{max u2 u1} (α -> M)) (Multiset.instMembershipMultiset.{max u2 u1} (α -> M)) f l) -> (Measurable.{u1, u2} α M m _inst_2 f)) -> (Measurable.{u1, u2} α M m _inst_2 (Multiset.prod.{max u2 u1} (α -> M) (Pi.commMonoid.{u1, u2} α (fun (ᾰ : α) => M) (fun (i : α) => _inst_1)) l))
-Case conversion may be inaccurate. Consider using '#align multiset.measurable_prod' Multiset.measurable_prod'ₓ'. -/
@[measurability, to_additive]
theorem Multiset.measurable_prod' (l : Multiset (α → M)) (hl : ∀ f ∈ l, Measurable f) :
Measurable l.Prod := by rcases l with ⟨l⟩; simpa using l.measurable_prod' (by simpa using hl)
#align multiset.measurable_prod' Multiset.measurable_prod'
#align multiset.measurable_sum' Multiset.measurable_sum'
-/- warning: multiset.ae_measurable_prod' -> Multiset.aemeasurable_prod' is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {α : Type.{u2}} [_inst_1 : CommMonoid.{u1} M] [_inst_2 : MeasurableSpace.{u1} M] [_inst_3 : MeasurableMul₂.{u1} M _inst_2 (MulOneClass.toHasMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))] {m : MeasurableSpace.{u2} α} {μ : MeasureTheory.Measure.{u2} α m} (l : Multiset.{max u2 u1} (α -> M)), (forall (f : α -> M), (Membership.Mem.{max u2 u1, max u2 u1} (α -> M) (Multiset.{max u2 u1} (α -> M)) (Multiset.hasMem.{max u2 u1} (α -> M)) f l) -> (AEMeasurable.{u2, u1} α M _inst_2 m f μ)) -> (AEMeasurable.{u2, u1} α M _inst_2 m (Multiset.prod.{max u2 u1} (α -> M) (Pi.commMonoid.{u2, u1} α (fun (ᾰ : α) => M) (fun (i : α) => _inst_1)) l) μ)
-but is expected to have type
- forall {M : Type.{u2}} {α : Type.{u1}} [_inst_1 : CommMonoid.{u2} M] [_inst_2 : MeasurableSpace.{u2} M] [_inst_3 : MeasurableMul₂.{u2} M _inst_2 (MulOneClass.toMul.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)))] {m : MeasurableSpace.{u1} α} {μ : MeasureTheory.Measure.{u1} α m} (l : Multiset.{max u2 u1} (α -> M)), (forall (f : α -> M), (Membership.mem.{max u2 u1, max u2 u1} (α -> M) (Multiset.{max u2 u1} (α -> M)) (Multiset.instMembershipMultiset.{max u2 u1} (α -> M)) f l) -> (AEMeasurable.{u1, u2} α M _inst_2 m f μ)) -> (AEMeasurable.{u1, u2} α M _inst_2 m (Multiset.prod.{max u2 u1} (α -> M) (Pi.commMonoid.{u1, u2} α (fun (ᾰ : α) => M) (fun (i : α) => _inst_1)) l) μ)
-Case conversion may be inaccurate. Consider using '#align multiset.ae_measurable_prod' Multiset.aemeasurable_prod'ₓ'. -/
@[measurability, to_additive]
theorem Multiset.aemeasurable_prod' (l : Multiset (α → M)) (hl : ∀ f ∈ l, AEMeasurable f μ) :
AEMeasurable l.Prod μ := by rcases l with ⟨l⟩;
@@ -1320,12 +1002,6 @@ theorem Multiset.aemeasurable_prod' (l : Multiset (α → M)) (hl : ∀ f ∈ l,
#align multiset.ae_measurable_prod' Multiset.aemeasurable_prod'
#align multiset.ae_measurable_sum' Multiset.aemeasurable_sum'
-/- warning: multiset.measurable_prod -> Multiset.measurable_prod is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {α : Type.{u2}} [_inst_1 : CommMonoid.{u1} M] [_inst_2 : MeasurableSpace.{u1} M] [_inst_3 : MeasurableMul₂.{u1} M _inst_2 (MulOneClass.toHasMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))] {m : MeasurableSpace.{u2} α} (s : Multiset.{max u2 u1} (α -> M)), (forall (f : α -> M), (Membership.Mem.{max u2 u1, max u2 u1} (α -> M) (Multiset.{max u2 u1} (α -> M)) (Multiset.hasMem.{max u2 u1} (α -> M)) f s) -> (Measurable.{u2, u1} α M m _inst_2 f)) -> (Measurable.{u2, u1} α M m _inst_2 (fun (x : α) => Multiset.prod.{u1} M _inst_1 (Multiset.map.{max u2 u1, u1} (α -> M) M (fun (f : α -> M) => f x) s)))
-but is expected to have type
- forall {M : Type.{u2}} {α : Type.{u1}} [_inst_1 : CommMonoid.{u2} M] [_inst_2 : MeasurableSpace.{u2} M] [_inst_3 : MeasurableMul₂.{u2} M _inst_2 (MulOneClass.toMul.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)))] {m : MeasurableSpace.{u1} α} (s : Multiset.{max u2 u1} (α -> M)), (forall (f : α -> M), (Membership.mem.{max u2 u1, max u2 u1} (α -> M) (Multiset.{max u2 u1} (α -> M)) (Multiset.instMembershipMultiset.{max u2 u1} (α -> M)) f s) -> (Measurable.{u1, u2} α M m _inst_2 f)) -> (Measurable.{u1, u2} α M m _inst_2 (fun (x : α) => Multiset.prod.{u2} M _inst_1 (Multiset.map.{max u2 u1, u2} (α -> M) M (fun (f : α -> M) => f x) s)))
-Case conversion may be inaccurate. Consider using '#align multiset.measurable_prod Multiset.measurable_prodₓ'. -/
@[measurability, to_additive]
theorem Multiset.measurable_prod (s : Multiset (α → M)) (hs : ∀ f ∈ s, Measurable f) :
Measurable fun x => (s.map fun f : α → M => f x).Prod := by
@@ -1333,12 +1009,6 @@ theorem Multiset.measurable_prod (s : Multiset (α → M)) (hs : ∀ f ∈ s, Me
#align multiset.measurable_prod Multiset.measurable_prod
#align multiset.measurable_sum Multiset.measurable_sum
-/- warning: multiset.ae_measurable_prod -> Multiset.aemeasurable_prod is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {α : Type.{u2}} [_inst_1 : CommMonoid.{u1} M] [_inst_2 : MeasurableSpace.{u1} M] [_inst_3 : MeasurableMul₂.{u1} M _inst_2 (MulOneClass.toHasMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))] {m : MeasurableSpace.{u2} α} {μ : MeasureTheory.Measure.{u2} α m} (s : Multiset.{max u2 u1} (α -> M)), (forall (f : α -> M), (Membership.Mem.{max u2 u1, max u2 u1} (α -> M) (Multiset.{max u2 u1} (α -> M)) (Multiset.hasMem.{max u2 u1} (α -> M)) f s) -> (AEMeasurable.{u2, u1} α M _inst_2 m f μ)) -> (AEMeasurable.{u2, u1} α M _inst_2 m (fun (x : α) => Multiset.prod.{u1} M _inst_1 (Multiset.map.{max u2 u1, u1} (α -> M) M (fun (f : α -> M) => f x) s)) μ)
-but is expected to have type
- forall {M : Type.{u2}} {α : Type.{u1}} [_inst_1 : CommMonoid.{u2} M] [_inst_2 : MeasurableSpace.{u2} M] [_inst_3 : MeasurableMul₂.{u2} M _inst_2 (MulOneClass.toMul.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)))] {m : MeasurableSpace.{u1} α} {μ : MeasureTheory.Measure.{u1} α m} (s : Multiset.{max u2 u1} (α -> M)), (forall (f : α -> M), (Membership.mem.{max u2 u1, max u2 u1} (α -> M) (Multiset.{max u2 u1} (α -> M)) (Multiset.instMembershipMultiset.{max u2 u1} (α -> M)) f s) -> (AEMeasurable.{u1, u2} α M _inst_2 m f μ)) -> (AEMeasurable.{u1, u2} α M _inst_2 m (fun (x : α) => Multiset.prod.{u2} M _inst_1 (Multiset.map.{max u2 u1, u2} (α -> M) M (fun (f : α -> M) => f x) s)) μ)
-Case conversion may be inaccurate. Consider using '#align multiset.ae_measurable_prod Multiset.aemeasurable_prodₓ'. -/
@[measurability, to_additive]
theorem Multiset.aemeasurable_prod (s : Multiset (α → M)) (hs : ∀ f ∈ s, AEMeasurable f μ) :
AEMeasurable (fun x => (s.map fun f : α → M => f x).Prod) μ := by
@@ -1346,12 +1016,6 @@ theorem Multiset.aemeasurable_prod (s : Multiset (α → M)) (hs : ∀ f ∈ s,
#align multiset.ae_measurable_prod Multiset.aemeasurable_prod
#align multiset.ae_measurable_sum Multiset.aemeasurable_sum
-/- warning: finset.measurable_prod' -> Finset.measurable_prod' is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {ι : Type.{u2}} {α : Type.{u3}} [_inst_1 : CommMonoid.{u1} M] [_inst_2 : MeasurableSpace.{u1} M] [_inst_3 : MeasurableMul₂.{u1} M _inst_2 (MulOneClass.toHasMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))] {m : MeasurableSpace.{u3} α} {f : ι -> α -> M} (s : Finset.{u2} ι), (forall (i : ι), (Membership.Mem.{u2, u2} ι (Finset.{u2} ι) (Finset.hasMem.{u2} ι) i s) -> (Measurable.{u3, u1} α M m _inst_2 (f i))) -> (Measurable.{u3, u1} α M m _inst_2 (Finset.prod.{max u3 u1, u2} (α -> M) ι (Pi.commMonoid.{u3, u1} α (fun (ᾰ : α) => M) (fun (i : α) => _inst_1)) s (fun (i : ι) => f i)))
-but is expected to have type
- forall {M : Type.{u1}} {ι : Type.{u3}} {α : Type.{u2}} [_inst_1 : CommMonoid.{u1} M] [_inst_2 : MeasurableSpace.{u1} M] [_inst_3 : MeasurableMul₂.{u1} M _inst_2 (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))] {m : MeasurableSpace.{u2} α} {f : ι -> α -> M} (s : Finset.{u3} ι), (forall (i : ι), (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) -> (Measurable.{u2, u1} α M m _inst_2 (f i))) -> (Measurable.{u2, u1} α M m _inst_2 (Finset.prod.{max u1 u2, u3} (α -> M) ι (Pi.commMonoid.{u2, u1} α (fun (ᾰ : α) => M) (fun (i : α) => _inst_1)) s (fun (i : ι) => f i)))
-Case conversion may be inaccurate. Consider using '#align finset.measurable_prod' Finset.measurable_prod'ₓ'. -/
@[measurability, to_additive]
theorem Finset.measurable_prod' (s : Finset ι) (hf : ∀ i ∈ s, Measurable (f i)) :
Measurable (∏ i in s, f i) :=
@@ -1359,12 +1023,6 @@ theorem Finset.measurable_prod' (s : Finset ι) (hf : ∀ i ∈ s, Measurable (f
#align finset.measurable_prod' Finset.measurable_prod'
#align finset.measurable_sum' Finset.measurable_sum'
-/- warning: finset.measurable_prod -> Finset.measurable_prod is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {ι : Type.{u2}} {α : Type.{u3}} [_inst_1 : CommMonoid.{u1} M] [_inst_2 : MeasurableSpace.{u1} M] [_inst_3 : MeasurableMul₂.{u1} M _inst_2 (MulOneClass.toHasMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))] {m : MeasurableSpace.{u3} α} {f : ι -> α -> M} (s : Finset.{u2} ι), (forall (i : ι), (Membership.Mem.{u2, u2} ι (Finset.{u2} ι) (Finset.hasMem.{u2} ι) i s) -> (Measurable.{u3, u1} α M m _inst_2 (f i))) -> (Measurable.{u3, u1} α M m _inst_2 (fun (a : α) => Finset.prod.{u1, u2} M ι _inst_1 s (fun (i : ι) => f i a)))
-but is expected to have type
- forall {M : Type.{u1}} {ι : Type.{u3}} {α : Type.{u2}} [_inst_1 : CommMonoid.{u1} M] [_inst_2 : MeasurableSpace.{u1} M] [_inst_3 : MeasurableMul₂.{u1} M _inst_2 (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))] {m : MeasurableSpace.{u2} α} {f : ι -> α -> M} (s : Finset.{u3} ι), (forall (i : ι), (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) -> (Measurable.{u2, u1} α M m _inst_2 (f i))) -> (Measurable.{u2, u1} α M m _inst_2 (fun (a : α) => Finset.prod.{u1, u3} M ι _inst_1 s (fun (i : ι) => f i a)))
-Case conversion may be inaccurate. Consider using '#align finset.measurable_prod Finset.measurable_prodₓ'. -/
@[measurability, to_additive]
theorem Finset.measurable_prod (s : Finset ι) (hf : ∀ i ∈ s, Measurable (f i)) :
Measurable fun a => ∏ i in s, f i a := by
@@ -1372,12 +1030,6 @@ theorem Finset.measurable_prod (s : Finset ι) (hf : ∀ i ∈ s, Measurable (f
#align finset.measurable_prod Finset.measurable_prod
#align finset.measurable_sum Finset.measurable_sum
-/- warning: finset.ae_measurable_prod' -> Finset.aemeasurable_prod' is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {ι : Type.{u2}} {α : Type.{u3}} [_inst_1 : CommMonoid.{u1} M] [_inst_2 : MeasurableSpace.{u1} M] [_inst_3 : MeasurableMul₂.{u1} M _inst_2 (MulOneClass.toHasMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))] {m : MeasurableSpace.{u3} α} {μ : MeasureTheory.Measure.{u3} α m} {f : ι -> α -> M} (s : Finset.{u2} ι), (forall (i : ι), (Membership.Mem.{u2, u2} ι (Finset.{u2} ι) (Finset.hasMem.{u2} ι) i s) -> (AEMeasurable.{u3, u1} α M _inst_2 m (f i) μ)) -> (AEMeasurable.{u3, u1} α M _inst_2 m (Finset.prod.{max u3 u1, u2} (α -> M) ι (Pi.commMonoid.{u3, u1} α (fun (ᾰ : α) => M) (fun (i : α) => _inst_1)) s (fun (i : ι) => f i)) μ)
-but is expected to have type
- forall {M : Type.{u1}} {ι : Type.{u3}} {α : Type.{u2}} [_inst_1 : CommMonoid.{u1} M] [_inst_2 : MeasurableSpace.{u1} M] [_inst_3 : MeasurableMul₂.{u1} M _inst_2 (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))] {m : MeasurableSpace.{u2} α} {μ : MeasureTheory.Measure.{u2} α m} {f : ι -> α -> M} (s : Finset.{u3} ι), (forall (i : ι), (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) -> (AEMeasurable.{u2, u1} α M _inst_2 m (f i) μ)) -> (AEMeasurable.{u2, u1} α M _inst_2 m (Finset.prod.{max u1 u2, u3} (α -> M) ι (Pi.commMonoid.{u2, u1} α (fun (ᾰ : α) => M) (fun (i : α) => _inst_1)) s (fun (i : ι) => f i)) μ)
-Case conversion may be inaccurate. Consider using '#align finset.ae_measurable_prod' Finset.aemeasurable_prod'ₓ'. -/
@[measurability, to_additive]
theorem Finset.aemeasurable_prod' (s : Finset ι) (hf : ∀ i ∈ s, AEMeasurable (f i) μ) :
AEMeasurable (∏ i in s, f i) μ :=
@@ -1387,12 +1039,6 @@ theorem Finset.aemeasurable_prod' (s : Finset ι) (hf : ∀ i ∈ s, AEMeasurabl
#align finset.ae_measurable_prod' Finset.aemeasurable_prod'
#align finset.ae_measurable_sum' Finset.aemeasurable_sum'
-/- warning: finset.ae_measurable_prod -> Finset.aemeasurable_prod is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {ι : Type.{u2}} {α : Type.{u3}} [_inst_1 : CommMonoid.{u1} M] [_inst_2 : MeasurableSpace.{u1} M] [_inst_3 : MeasurableMul₂.{u1} M _inst_2 (MulOneClass.toHasMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))] {m : MeasurableSpace.{u3} α} {μ : MeasureTheory.Measure.{u3} α m} {f : ι -> α -> M} (s : Finset.{u2} ι), (forall (i : ι), (Membership.Mem.{u2, u2} ι (Finset.{u2} ι) (Finset.hasMem.{u2} ι) i s) -> (AEMeasurable.{u3, u1} α M _inst_2 m (f i) μ)) -> (AEMeasurable.{u3, u1} α M _inst_2 m (fun (a : α) => Finset.prod.{u1, u2} M ι _inst_1 s (fun (i : ι) => f i a)) μ)
-but is expected to have type
- forall {M : Type.{u1}} {ι : Type.{u3}} {α : Type.{u2}} [_inst_1 : CommMonoid.{u1} M] [_inst_2 : MeasurableSpace.{u1} M] [_inst_3 : MeasurableMul₂.{u1} M _inst_2 (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))] {m : MeasurableSpace.{u2} α} {μ : MeasureTheory.Measure.{u2} α m} {f : ι -> α -> M} (s : Finset.{u3} ι), (forall (i : ι), (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) -> (AEMeasurable.{u2, u1} α M _inst_2 m (f i) μ)) -> (AEMeasurable.{u2, u1} α M _inst_2 m (fun (a : α) => Finset.prod.{u1, u3} M ι _inst_1 s (fun (i : ι) => f i a)) μ)
-Case conversion may be inaccurate. Consider using '#align finset.ae_measurable_prod Finset.aemeasurable_prodₓ'. -/
@[measurability, to_additive]
theorem Finset.aemeasurable_prod (s : Finset ι) (hf : ∀ i ∈ s, AEMeasurable (f i) μ) :
AEMeasurable (fun a => ∏ i in s, f i a) μ := by
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -292,8 +292,7 @@ instance Monoid.measurablePow (M : Type _) [Monoid M] [MeasurableSpace M] [Measu
by
induction' n with n ih
· simp only [pow_zero, ← Pi.one_def, measurable_one]
- · simp only [pow_succ]
- exact measurable_id.mul ih⟩
+ · simp only [pow_succ]; exact measurable_id.mul ih⟩
#align monoid.has_measurable_pow Monoid.measurablePow
section Pow
@@ -601,9 +600,7 @@ theorem measurableSet_eq_fun_of_countable {m : MeasurableSpace α} {E} [Measurab
[MeasurableSingletonClass E] [Countable E] {f g : α → E} (hf : Measurable f)
(hg : Measurable g) : MeasurableSet { x | f x = g x } :=
by
- have : { x | f x = g x } = ⋃ j, { x | f x = j } ∩ { x | g x = j } :=
- by
- ext1 x
+ have : { x | f x = g x } = ⋃ j, { x | f x = j } ∩ { x | g x = j } := by ext1 x;
simp only [Set.mem_setOf_eq, Set.mem_iUnion, Set.mem_inter_iff, exists_eq_right']
rw [this]
refine' MeasurableSet.iUnion fun j => MeasurableSet.inter _ _
@@ -658,14 +655,8 @@ Case conversion may be inaccurate. Consider using '#align has_measurable_div_of_
instance (priority := 100) measurableDiv_of_mul_inv (G : Type _) [MeasurableSpace G]
[DivInvMonoid G] [MeasurableMul G] [MeasurableInv G] : MeasurableDiv G
where
- measurable_div_const c := by
- convert measurable_inv.const_mul c
- ext1
- apply div_eq_mul_inv
- measurable_div_const c := by
- convert measurable_id.mul_const c⁻¹
- ext1
- apply div_eq_mul_inv
+ measurable_div_const c := by convert measurable_inv.const_mul c; ext1; apply div_eq_mul_inv
+ measurable_div_const c := by convert measurable_id.mul_const c⁻¹; ext1; apply div_eq_mul_inv
#align has_measurable_div_of_mul_inv measurableDiv_of_mul_inv
#align has_measurable_sub_of_add_neg measurableSub_of_add_neg
@@ -776,10 +767,8 @@ instance DivInvMonoid.measurableZpow (G : Type u) [DivInvMonoid G] [MeasurableSp
[MeasurableMul₂ G] [MeasurableInv G] : MeasurablePow G ℤ :=
⟨measurable_from_prod_countable fun n => by
cases' n with n n
- · simp_rw [zpow_ofNat]
- exact measurable_id.pow_const _
- · simp_rw [zpow_negSucc]
- exact (measurable_id.pow_const (n + 1)).inv⟩
+ · simp_rw [zpow_ofNat]; exact measurable_id.pow_const _
+ · simp_rw [zpow_negSucc]; exact (measurable_id.pow_const (n + 1)).inv⟩
#align div_inv_monoid.has_measurable_zpow DivInvMonoid.measurableZpow
/- warning: has_measurable_div₂_of_mul_inv -> measurableDiv₂_of_mul_inv is a dubious translation:
@@ -791,9 +780,7 @@ Case conversion may be inaccurate. Consider using '#align has_measurable_div₂_
@[to_additive]
instance (priority := 100) measurableDiv₂_of_mul_inv (G : Type _) [MeasurableSpace G]
[DivInvMonoid G] [MeasurableMul₂ G] [MeasurableInv G] : MeasurableDiv₂ G :=
- ⟨by
- simp only [div_eq_mul_inv]
- exact measurable_fst.mul measurable_snd.inv⟩
+ ⟨by simp only [div_eq_mul_inv]; exact measurable_fst.mul measurable_snd.inv⟩
#align has_measurable_div₂_of_mul_inv measurableDiv₂_of_mul_inv
#align has_measurable_div₂_of_add_neg measurableDiv₂_of_add_neg
@@ -1020,8 +1007,7 @@ instance AddMonoid.measurableSMul_nat₂ (M : Type _) [AddMonoid M] [MeasurableS
refine' measurable_from_prod_countable fun n => _
induction' n with n ih
· simp only [zero_smul, ← Pi.zero_def, measurable_zero]
- · simp only [succ_nsmul]
- exact measurable_id.add ih⟩
+ · simp only [succ_nsmul]; exact measurable_id.add ih⟩
#align add_monoid.has_measurable_smul_nat₂ AddMonoid.measurableSMul_nat₂
/- warning: sub_neg_monoid.has_measurable_smul_int₂ -> SubNegMonoid.measurableSMul_int₂ is a dubious translation:
@@ -1037,10 +1023,8 @@ instance SubNegMonoid.measurableSMul_int₂ (M : Type _) [SubNegMonoid M] [Measu
suffices Measurable fun p : M × ℤ => p.2 • p.1 by apply this.comp measurable_swap
refine' measurable_from_prod_countable fun n => _
induction' n with n n ih
- · simp only [ofNat_zsmul]
- exact measurable_const_smul _
- · simp only [negSucc_zsmul]
- exact (measurable_const_smul _).neg⟩
+ · simp only [ofNat_zsmul]; exact measurable_const_smul _
+ · simp only [negSucc_zsmul]; exact (measurable_const_smul _).neg⟩
#align sub_neg_monoid.has_measurable_smul_int₂ SubNegMonoid.measurableSMul_int₂
end Smul
@@ -1319,9 +1303,7 @@ but is expected to have type
Case conversion may be inaccurate. Consider using '#align multiset.measurable_prod' Multiset.measurable_prod'ₓ'. -/
@[measurability, to_additive]
theorem Multiset.measurable_prod' (l : Multiset (α → M)) (hl : ∀ f ∈ l, Measurable f) :
- Measurable l.Prod := by
- rcases l with ⟨l⟩
- simpa using l.measurable_prod' (by simpa using hl)
+ Measurable l.Prod := by rcases l with ⟨l⟩; simpa using l.measurable_prod' (by simpa using hl)
#align multiset.measurable_prod' Multiset.measurable_prod'
#align multiset.measurable_sum' Multiset.measurable_sum'
@@ -1333,8 +1315,7 @@ but is expected to have type
Case conversion may be inaccurate. Consider using '#align multiset.ae_measurable_prod' Multiset.aemeasurable_prod'ₓ'. -/
@[measurability, to_additive]
theorem Multiset.aemeasurable_prod' (l : Multiset (α → M)) (hl : ∀ f ∈ l, AEMeasurable f μ) :
- AEMeasurable l.Prod μ := by
- rcases l with ⟨l⟩
+ AEMeasurable l.Prod μ := by rcases l with ⟨l⟩;
simpa using l.ae_measurable_prod' (by simpa using hl)
#align multiset.ae_measurable_prod' Multiset.aemeasurable_prod'
#align multiset.ae_measurable_sum' Multiset.aemeasurable_sum'
mathlib commit https://github.com/leanprover-community/mathlib/commit/e3fb84046afd187b710170887195d50bada934ee
@@ -604,9 +604,9 @@ theorem measurableSet_eq_fun_of_countable {m : MeasurableSpace α} {E} [Measurab
have : { x | f x = g x } = ⋃ j, { x | f x = j } ∩ { x | g x = j } :=
by
ext1 x
- simp only [Set.mem_setOf_eq, Set.mem_unionᵢ, Set.mem_inter_iff, exists_eq_right']
+ simp only [Set.mem_setOf_eq, Set.mem_iUnion, Set.mem_inter_iff, exists_eq_right']
rw [this]
- refine' MeasurableSet.unionᵢ fun j => MeasurableSet.inter _ _
+ refine' MeasurableSet.iUnion fun j => MeasurableSet.inter _ _
· exact hf (measurable_set_singleton j)
· exact hg (measurable_set_singleton j)
#align measurable_set_eq_fun_of_countable measurableSet_eq_fun_of_countable
mathlib commit https://github.com/leanprover-community/mathlib/commit/2f8347015b12b0864dfaf366ec4909eb70c78740
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yury Kudryashov
! This file was ported from Lean 3 source module measure_theory.group.arithmetic
-! leanprover-community/mathlib commit a75898643b2d774cced9ae7c0b28c21663b99666
+! leanprover-community/mathlib commit 781cb2eed038c4caf53bdbd8d20a95e5822d77df
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -13,6 +13,9 @@ import Mathbin.MeasureTheory.Measure.AeMeasurable
/-!
# Typeclasses for measurability of operations
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
In this file we define classes `has_measurable_mul` etc and prove dot-style lemmas
(`measurable.mul`, `ae_measurable.mul` etc). For binary operations we define two typeclasses:
mathlib commit https://github.com/leanprover-community/mathlib/commit/28b2a92f2996d28e580450863c130955de0ed398
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yury Kudryashov
! This file was ported from Lean 3 source module measure_theory.group.arithmetic
-! leanprover-community/mathlib commit 781cb2eed038c4caf53bdbd8d20a95e5822d77df
+! leanprover-community/mathlib commit a75898643b2d774cced9ae7c0b28c21663b99666
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -13,9 +13,6 @@ import Mathbin.MeasureTheory.Measure.AeMeasurable
/-!
# Typeclasses for measurability of operations
-> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
-> Any changes to this file require a corresponding PR to mathlib4.
-
In this file we define classes `has_measurable_mul` etc and prove dot-style lemmas
(`measurable.mul`, `ae_measurable.mul` etc). For binary operations we define two typeclasses:
mathlib commit https://github.com/leanprover-community/mathlib/commit/2f8347015b12b0864dfaf366ec4909eb70c78740
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yury Kudryashov
! This file was ported from Lean 3 source module measure_theory.group.arithmetic
-! leanprover-community/mathlib commit a75898643b2d774cced9ae7c0b28c21663b99666
+! leanprover-community/mathlib commit 781cb2eed038c4caf53bdbd8d20a95e5822d77df
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -13,6 +13,9 @@ import Mathbin.MeasureTheory.Measure.AeMeasurable
/-!
# Typeclasses for measurability of operations
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
In this file we define classes `has_measurable_mul` etc and prove dot-style lemmas
(`measurable.mul`, `ae_measurable.mul` etc). For binary operations we define two typeclasses:
mathlib commit https://github.com/leanprover-community/mathlib/commit/cc5dd6244981976cc9da7afc4eee5682b037a013
@@ -59,45 +59,53 @@ open MeasureTheory
-/
+#print MeasurableAdd /-
/-- We say that a type `has_measurable_add` if `((+) c)` and `(+ c)` are measurable functions.
For a typeclass assuming measurability of `uncurry (+)` see `has_measurable_add₂`. -/
-class HasMeasurableAdd (M : Type _) [MeasurableSpace M] [Add M] : Prop where
+class MeasurableAdd (M : Type _) [MeasurableSpace M] [Add M] : Prop where
measurable_const_add : ∀ c : M, Measurable ((· + ·) c)
measurable_add_const : ∀ c : M, Measurable (· + c)
-#align has_measurable_add HasMeasurableAdd
+#align has_measurable_add MeasurableAdd
+-/
-export HasMeasurableAdd (measurable_const_add measurable_add_const)
+export MeasurableAdd (measurable_const_add measurable_add_const)
+#print MeasurableAdd₂ /-
/-- We say that a type `has_measurable_add` if `uncurry (+)` is a measurable functions.
For a typeclass assuming measurability of `((+) c)` and `(+ c)` see `has_measurable_add`. -/
-class HasMeasurableAdd₂ (M : Type _) [MeasurableSpace M] [Add M] : Prop where
+class MeasurableAdd₂ (M : Type _) [MeasurableSpace M] [Add M] : Prop where
measurable_add : Measurable fun p : M × M => p.1 + p.2
-#align has_measurable_add₂ HasMeasurableAdd₂
+#align has_measurable_add₂ MeasurableAdd₂
+-/
-export HasMeasurableAdd₂ (measurable_add)
+export MeasurableAdd₂ (measurable_add)
-export HasMeasurableAdd (measurable_const_add measurable_add_const)
+export MeasurableAdd (measurable_const_add measurable_add_const)
+#print MeasurableMul /-
/-- We say that a type `has_measurable_mul` if `((*) c)` and `(* c)` are measurable functions.
For a typeclass assuming measurability of `uncurry (*)` see `has_measurable_mul₂`. -/
@[to_additive]
-class HasMeasurableMul (M : Type _) [MeasurableSpace M] [Mul M] : Prop where
+class MeasurableMul (M : Type _) [MeasurableSpace M] [Mul M] : Prop where
measurable_const_mul : ∀ c : M, Measurable ((· * ·) c)
measurable_mul_const : ∀ c : M, Measurable (· * c)
-#align has_measurable_mul HasMeasurableMul
-#align has_measurable_add HasMeasurableAdd
+#align has_measurable_mul MeasurableMul
+#align has_measurable_add MeasurableAdd
+-/
-export HasMeasurableMul (measurable_const_mul measurable_mul_const)
+export MeasurableMul (measurable_const_mul measurable_mul_const)
+#print MeasurableMul₂ /-
/-- We say that a type `has_measurable_mul` if `uncurry (*)` is a measurable functions.
For a typeclass assuming measurability of `((*) c)` and `(* c)` see `has_measurable_mul`. -/
-@[to_additive HasMeasurableAdd₂]
-class HasMeasurableMul₂ (M : Type _) [MeasurableSpace M] [Mul M] : Prop where
+@[to_additive MeasurableAdd₂]
+class MeasurableMul₂ (M : Type _) [MeasurableSpace M] [Mul M] : Prop where
measurable_mul : Measurable fun p : M × M => p.1 * p.2
-#align has_measurable_mul₂ HasMeasurableMul₂
-#align has_measurable_add₂ HasMeasurableAdd₂
+#align has_measurable_mul₂ MeasurableMul₂
+#align has_measurable_add₂ MeasurableAdd₂
+-/
-export HasMeasurableMul₂ (measurable_mul)
+export MeasurableMul₂ (measurable_mul)
section Mul
@@ -106,57 +114,105 @@ variable {M α : Type _} [MeasurableSpace M] [Mul M] {m : MeasurableSpace α} {f
include m
+/- warning: measurable.const_mul -> Measurable.const_mul is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {α : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} M] [_inst_2 : Mul.{u1} M] {m : MeasurableSpace.{u2} α} {f : α -> M} [_inst_3 : MeasurableMul.{u1} M _inst_1 _inst_2], (Measurable.{u2, u1} α M m _inst_1 f) -> (forall (c : M), Measurable.{u2, u1} α M m _inst_1 (fun (x : α) => HMul.hMul.{u1, u1, u1} M M M (instHMul.{u1} M _inst_2) c (f x)))
+but is expected to have type
+ forall {M : Type.{u2}} {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} M] [_inst_2 : Mul.{u2} M] {m : MeasurableSpace.{u1} α} {f : α -> M} [_inst_3 : MeasurableMul.{u2} M _inst_1 _inst_2], (Measurable.{u1, u2} α M m _inst_1 f) -> (forall (c : M), Measurable.{u1, u2} α M m _inst_1 (fun (x : α) => HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M _inst_2) c (f x)))
+Case conversion may be inaccurate. Consider using '#align measurable.const_mul Measurable.const_mulₓ'. -/
@[measurability, to_additive]
-theorem Measurable.const_mul [HasMeasurableMul M] (hf : Measurable f) (c : M) :
+theorem Measurable.const_mul [MeasurableMul M] (hf : Measurable f) (c : M) :
Measurable fun x => c * f x :=
(measurable_const_mul c).comp hf
#align measurable.const_mul Measurable.const_mul
#align measurable.const_add Measurable.const_add
+/- warning: ae_measurable.const_mul -> AEMeasurable.const_mul is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {α : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} M] [_inst_2 : Mul.{u1} M] {m : MeasurableSpace.{u2} α} {f : α -> M} {μ : MeasureTheory.Measure.{u2} α m} [_inst_3 : MeasurableMul.{u1} M _inst_1 _inst_2], (AEMeasurable.{u2, u1} α M _inst_1 m f μ) -> (forall (c : M), AEMeasurable.{u2, u1} α M _inst_1 m (fun (x : α) => HMul.hMul.{u1, u1, u1} M M M (instHMul.{u1} M _inst_2) c (f x)) μ)
+but is expected to have type
+ forall {M : Type.{u2}} {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} M] [_inst_2 : Mul.{u2} M] {m : MeasurableSpace.{u1} α} {f : α -> M} {μ : MeasureTheory.Measure.{u1} α m} [_inst_3 : MeasurableMul.{u2} M _inst_1 _inst_2], (AEMeasurable.{u1, u2} α M _inst_1 m f μ) -> (forall (c : M), AEMeasurable.{u1, u2} α M _inst_1 m (fun (x : α) => HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M _inst_2) c (f x)) μ)
+Case conversion may be inaccurate. Consider using '#align ae_measurable.const_mul AEMeasurable.const_mulₓ'. -/
@[measurability, to_additive]
-theorem AEMeasurable.const_mul [HasMeasurableMul M] (hf : AEMeasurable f μ) (c : M) :
+theorem AEMeasurable.const_mul [MeasurableMul M] (hf : AEMeasurable f μ) (c : M) :
AEMeasurable (fun x => c * f x) μ :=
- (HasMeasurableMul.measurable_const_mul c).comp_aemeasurable hf
+ (MeasurableMul.measurable_const_mul c).comp_aemeasurable hf
#align ae_measurable.const_mul AEMeasurable.const_mul
#align ae_measurable.const_add AEMeasurable.const_add
+/- warning: measurable.mul_const -> Measurable.mul_const is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {α : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} M] [_inst_2 : Mul.{u1} M] {m : MeasurableSpace.{u2} α} {f : α -> M} [_inst_3 : MeasurableMul.{u1} M _inst_1 _inst_2], (Measurable.{u2, u1} α M m _inst_1 f) -> (forall (c : M), Measurable.{u2, u1} α M m _inst_1 (fun (x : α) => HMul.hMul.{u1, u1, u1} M M M (instHMul.{u1} M _inst_2) (f x) c))
+but is expected to have type
+ forall {M : Type.{u2}} {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} M] [_inst_2 : Mul.{u2} M] {m : MeasurableSpace.{u1} α} {f : α -> M} [_inst_3 : MeasurableMul.{u2} M _inst_1 _inst_2], (Measurable.{u1, u2} α M m _inst_1 f) -> (forall (c : M), Measurable.{u1, u2} α M m _inst_1 (fun (x : α) => HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M _inst_2) (f x) c))
+Case conversion may be inaccurate. Consider using '#align measurable.mul_const Measurable.mul_constₓ'. -/
@[measurability, to_additive]
-theorem Measurable.mul_const [HasMeasurableMul M] (hf : Measurable f) (c : M) :
+theorem Measurable.mul_const [MeasurableMul M] (hf : Measurable f) (c : M) :
Measurable fun x => f x * c :=
(measurable_mul_const c).comp hf
#align measurable.mul_const Measurable.mul_const
#align measurable.add_const Measurable.add_const
+/- warning: ae_measurable.mul_const -> AEMeasurable.mul_const is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {α : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} M] [_inst_2 : Mul.{u1} M] {m : MeasurableSpace.{u2} α} {f : α -> M} {μ : MeasureTheory.Measure.{u2} α m} [_inst_3 : MeasurableMul.{u1} M _inst_1 _inst_2], (AEMeasurable.{u2, u1} α M _inst_1 m f μ) -> (forall (c : M), AEMeasurable.{u2, u1} α M _inst_1 m (fun (x : α) => HMul.hMul.{u1, u1, u1} M M M (instHMul.{u1} M _inst_2) (f x) c) μ)
+but is expected to have type
+ forall {M : Type.{u2}} {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} M] [_inst_2 : Mul.{u2} M] {m : MeasurableSpace.{u1} α} {f : α -> M} {μ : MeasureTheory.Measure.{u1} α m} [_inst_3 : MeasurableMul.{u2} M _inst_1 _inst_2], (AEMeasurable.{u1, u2} α M _inst_1 m f μ) -> (forall (c : M), AEMeasurable.{u1, u2} α M _inst_1 m (fun (x : α) => HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M _inst_2) (f x) c) μ)
+Case conversion may be inaccurate. Consider using '#align ae_measurable.mul_const AEMeasurable.mul_constₓ'. -/
@[measurability, to_additive]
-theorem AEMeasurable.mul_const [HasMeasurableMul M] (hf : AEMeasurable f μ) (c : M) :
+theorem AEMeasurable.mul_const [MeasurableMul M] (hf : AEMeasurable f μ) (c : M) :
AEMeasurable (fun x => f x * c) μ :=
(measurable_mul_const c).comp_aemeasurable hf
#align ae_measurable.mul_const AEMeasurable.mul_const
#align ae_measurable.add_const AEMeasurable.add_const
+/- warning: measurable.mul' -> Measurable.mul' is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {α : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} M] [_inst_2 : Mul.{u1} M] {m : MeasurableSpace.{u2} α} {f : α -> M} {g : α -> M} [_inst_3 : MeasurableMul₂.{u1} M _inst_1 _inst_2], (Measurable.{u2, u1} α M m _inst_1 f) -> (Measurable.{u2, u1} α M m _inst_1 g) -> (Measurable.{u2, u1} α M m _inst_1 (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (α -> M) (α -> M) (α -> M) (instHMul.{max u2 u1} (α -> M) (Pi.instMul.{u2, u1} α (fun (ᾰ : α) => M) (fun (i : α) => _inst_2))) f g))
+but is expected to have type
+ forall {M : Type.{u2}} {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} M] [_inst_2 : Mul.{u2} M] {m : MeasurableSpace.{u1} α} {f : α -> M} {g : α -> M} [_inst_3 : MeasurableMul₂.{u2} M _inst_1 _inst_2], (Measurable.{u1, u2} α M m _inst_1 f) -> (Measurable.{u1, u2} α M m _inst_1 g) -> (Measurable.{u1, u2} α M m _inst_1 (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (α -> M) (α -> M) (α -> M) (instHMul.{max u2 u1} (α -> M) (Pi.instMul.{u1, u2} α (fun (ᾰ : α) => M) (fun (i : α) => _inst_2))) f g))
+Case conversion may be inaccurate. Consider using '#align measurable.mul' Measurable.mul'ₓ'. -/
@[measurability, to_additive]
-theorem Measurable.mul' [HasMeasurableMul₂ M] (hf : Measurable f) (hg : Measurable g) :
+theorem Measurable.mul' [MeasurableMul₂ M] (hf : Measurable f) (hg : Measurable g) :
Measurable (f * g) :=
measurable_mul.comp (hf.prod_mk hg)
#align measurable.mul' Measurable.mul'
#align measurable.add' Measurable.add'
+/- warning: measurable.mul -> Measurable.mul is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {α : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} M] [_inst_2 : Mul.{u1} M] {m : MeasurableSpace.{u2} α} {f : α -> M} {g : α -> M} [_inst_3 : MeasurableMul₂.{u1} M _inst_1 _inst_2], (Measurable.{u2, u1} α M m _inst_1 f) -> (Measurable.{u2, u1} α M m _inst_1 g) -> (Measurable.{u2, u1} α M m _inst_1 (fun (a : α) => HMul.hMul.{u1, u1, u1} M M M (instHMul.{u1} M _inst_2) (f a) (g a)))
+but is expected to have type
+ forall {M : Type.{u2}} {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} M] [_inst_2 : Mul.{u2} M] {m : MeasurableSpace.{u1} α} {f : α -> M} {g : α -> M} [_inst_3 : MeasurableMul₂.{u2} M _inst_1 _inst_2], (Measurable.{u1, u2} α M m _inst_1 f) -> (Measurable.{u1, u2} α M m _inst_1 g) -> (Measurable.{u1, u2} α M m _inst_1 (fun (a : α) => HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M _inst_2) (f a) (g a)))
+Case conversion may be inaccurate. Consider using '#align measurable.mul Measurable.mulₓ'. -/
@[measurability, to_additive]
-theorem Measurable.mul [HasMeasurableMul₂ M] (hf : Measurable f) (hg : Measurable g) :
+theorem Measurable.mul [MeasurableMul₂ M] (hf : Measurable f) (hg : Measurable g) :
Measurable fun a => f a * g a :=
measurable_mul.comp (hf.prod_mk hg)
#align measurable.mul Measurable.mul
#align measurable.add Measurable.add
+/- warning: ae_measurable.mul' -> AEMeasurable.mul' is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {α : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} M] [_inst_2 : Mul.{u1} M] {m : MeasurableSpace.{u2} α} {f : α -> M} {g : α -> M} {μ : MeasureTheory.Measure.{u2} α m} [_inst_3 : MeasurableMul₂.{u1} M _inst_1 _inst_2], (AEMeasurable.{u2, u1} α M _inst_1 m f μ) -> (AEMeasurable.{u2, u1} α M _inst_1 m g μ) -> (AEMeasurable.{u2, u1} α M _inst_1 m (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (α -> M) (α -> M) (α -> M) (instHMul.{max u2 u1} (α -> M) (Pi.instMul.{u2, u1} α (fun (ᾰ : α) => M) (fun (i : α) => _inst_2))) f g) μ)
+but is expected to have type
+ forall {M : Type.{u2}} {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} M] [_inst_2 : Mul.{u2} M] {m : MeasurableSpace.{u1} α} {f : α -> M} {g : α -> M} {μ : MeasureTheory.Measure.{u1} α m} [_inst_3 : MeasurableMul₂.{u2} M _inst_1 _inst_2], (AEMeasurable.{u1, u2} α M _inst_1 m f μ) -> (AEMeasurable.{u1, u2} α M _inst_1 m g μ) -> (AEMeasurable.{u1, u2} α M _inst_1 m (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (α -> M) (α -> M) (α -> M) (instHMul.{max u2 u1} (α -> M) (Pi.instMul.{u1, u2} α (fun (ᾰ : α) => M) (fun (i : α) => _inst_2))) f g) μ)
+Case conversion may be inaccurate. Consider using '#align ae_measurable.mul' AEMeasurable.mul'ₓ'. -/
@[measurability, to_additive]
-theorem AEMeasurable.mul' [HasMeasurableMul₂ M] (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
+theorem AEMeasurable.mul' [MeasurableMul₂ M] (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
AEMeasurable (f * g) μ :=
measurable_mul.comp_aemeasurable (hf.prod_mk hg)
#align ae_measurable.mul' AEMeasurable.mul'
#align ae_measurable.add' AEMeasurable.add'
+/- warning: ae_measurable.mul -> AEMeasurable.mul is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {α : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} M] [_inst_2 : Mul.{u1} M] {m : MeasurableSpace.{u2} α} {f : α -> M} {g : α -> M} {μ : MeasureTheory.Measure.{u2} α m} [_inst_3 : MeasurableMul₂.{u1} M _inst_1 _inst_2], (AEMeasurable.{u2, u1} α M _inst_1 m f μ) -> (AEMeasurable.{u2, u1} α M _inst_1 m g μ) -> (AEMeasurable.{u2, u1} α M _inst_1 m (fun (a : α) => HMul.hMul.{u1, u1, u1} M M M (instHMul.{u1} M _inst_2) (f a) (g a)) μ)
+but is expected to have type
+ forall {M : Type.{u2}} {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} M] [_inst_2 : Mul.{u2} M] {m : MeasurableSpace.{u1} α} {f : α -> M} {g : α -> M} {μ : MeasureTheory.Measure.{u1} α m} [_inst_3 : MeasurableMul₂.{u2} M _inst_1 _inst_2], (AEMeasurable.{u1, u2} α M _inst_1 m f μ) -> (AEMeasurable.{u1, u2} α M _inst_1 m g μ) -> (AEMeasurable.{u1, u2} α M _inst_1 m (fun (a : α) => HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M _inst_2) (f a) (g a)) μ)
+Case conversion may be inaccurate. Consider using '#align ae_measurable.mul AEMeasurable.mulₓ'. -/
@[measurability, to_additive]
-theorem AEMeasurable.mul [HasMeasurableMul₂ M] (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
+theorem AEMeasurable.mul [MeasurableMul₂ M] (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
AEMeasurable (fun a => f a * g a) μ :=
measurable_mul.comp_aemeasurable (hf.prod_mk hg)
#align ae_measurable.mul AEMeasurable.mul
@@ -164,141 +220,196 @@ theorem AEMeasurable.mul [HasMeasurableMul₂ M] (hf : AEMeasurable f μ) (hg :
omit m
+#print MeasurableMul₂.toMeasurableMul /-
@[to_additive]
-instance (priority := 100) HasMeasurableMul₂.to_hasMeasurableMul [HasMeasurableMul₂ M] :
- HasMeasurableMul M :=
+instance (priority := 100) MeasurableMul₂.toMeasurableMul [MeasurableMul₂ M] : MeasurableMul M :=
⟨fun c => measurable_const.mul measurable_id, fun c => measurable_id.mul measurable_const⟩
-#align has_measurable_mul₂.to_has_measurable_mul HasMeasurableMul₂.to_hasMeasurableMul
-#align has_measurable_add₂.to_has_measurable_add HasMeasurableAdd₂.to_has_measurable_add
+#align has_measurable_mul₂.to_has_measurable_mul MeasurableMul₂.toMeasurableMul
+#align has_measurable_add₂.to_has_measurable_add MeasurableAdd₂.toMeasurableAdd
+-/
+#print Pi.measurableMul /-
@[to_additive]
-instance Pi.hasMeasurableMul {ι : Type _} {α : ι → Type _} [∀ i, Mul (α i)]
- [∀ i, MeasurableSpace (α i)] [∀ i, HasMeasurableMul (α i)] : HasMeasurableMul (∀ i, α i) :=
+instance Pi.measurableMul {ι : Type _} {α : ι → Type _} [∀ i, Mul (α i)]
+ [∀ i, MeasurableSpace (α i)] [∀ i, MeasurableMul (α i)] : MeasurableMul (∀ i, α i) :=
⟨fun g => measurable_pi_iff.mpr fun i => (measurable_pi_apply i).const_mul _, fun g =>
measurable_pi_iff.mpr fun i => (measurable_pi_apply i).mul_const _⟩
-#align pi.has_measurable_mul Pi.hasMeasurableMul
-#align pi.has_measurable_add Pi.has_measurable_add
+#align pi.has_measurable_mul Pi.measurableMul
+#align pi.has_measurable_add Pi.measurableAdd
+-/
-@[to_additive Pi.has_measurable_add₂]
-instance Pi.hasMeasurableMul₂ {ι : Type _} {α : ι → Type _} [∀ i, Mul (α i)]
- [∀ i, MeasurableSpace (α i)] [∀ i, HasMeasurableMul₂ (α i)] : HasMeasurableMul₂ (∀ i, α i) :=
+#print Pi.measurableMul₂ /-
+@[to_additive Pi.measurableAdd₂]
+instance Pi.measurableMul₂ {ι : Type _} {α : ι → Type _} [∀ i, Mul (α i)]
+ [∀ i, MeasurableSpace (α i)] [∀ i, MeasurableMul₂ (α i)] : MeasurableMul₂ (∀ i, α i) :=
⟨measurable_pi_iff.mpr fun i => measurable_fst.eval.mul measurable_snd.eval⟩
-#align pi.has_measurable_mul₂ Pi.hasMeasurableMul₂
-#align pi.has_measurable_add₂ Pi.has_measurable_add₂
+#align pi.has_measurable_mul₂ Pi.measurableMul₂
+#align pi.has_measurable_add₂ Pi.measurableAdd₂
+-/
attribute [measurability]
Measurable.add' Measurable.add AEMeasurable.add AEMeasurable.add' Measurable.const_add AEMeasurable.const_add Measurable.add_const AEMeasurable.add_const
end Mul
+/- warning: measurable_div_const' -> measurable_div_const' is a dubious translation:
+lean 3 declaration is
+ forall {G : Type.{u1}} [_inst_1 : DivInvMonoid.{u1} G] [_inst_2 : MeasurableSpace.{u1} G] [_inst_3 : MeasurableMul.{u1} G _inst_2 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G _inst_1)))] (g : G), Measurable.{u1, u1} G G _inst_2 _inst_2 (fun (h : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G _inst_1)) h g)
+but is expected to have type
+ forall {G : Type.{u1}} [_inst_1 : DivInvMonoid.{u1} G] [_inst_2 : MeasurableSpace.{u1} G] [_inst_3 : MeasurableMul.{u1} G _inst_2 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G _inst_1)))] (g : G), Measurable.{u1, u1} G G _inst_2 _inst_2 (fun (h : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G _inst_1)) h g)
+Case conversion may be inaccurate. Consider using '#align measurable_div_const' measurable_div_const'ₓ'. -/
/-- A version of `measurable_div_const` that assumes `has_measurable_mul` instead of
`has_measurable_div`. This can be nice to avoid unnecessary type-class assumptions. -/
@[to_additive
" A version of `measurable_sub_const` that assumes `has_measurable_add` instead of\n `has_measurable_sub`. This can be nice to avoid unnecessary type-class assumptions. "]
-theorem measurable_div_const' {G : Type _} [DivInvMonoid G] [MeasurableSpace G] [HasMeasurableMul G]
+theorem measurable_div_const' {G : Type _} [DivInvMonoid G] [MeasurableSpace G] [MeasurableMul G]
(g : G) : Measurable fun h => h / g := by simp_rw [div_eq_mul_inv, measurable_mul_const]
#align measurable_div_const' measurable_div_const'
#align measurable_sub_const' measurable_sub_const'
+#print MeasurablePow /-
/-- This class assumes that the map `β × γ → β` given by `(x, y) ↦ x ^ y` is measurable. -/
-class HasMeasurablePow (β γ : Type _) [MeasurableSpace β] [MeasurableSpace γ] [Pow β γ] where
+class MeasurablePow (β γ : Type _) [MeasurableSpace β] [MeasurableSpace γ] [Pow β γ] where
measurable_pow : Measurable fun p : β × γ => p.1 ^ p.2
-#align has_measurable_pow HasMeasurablePow
+#align has_measurable_pow MeasurablePow
+-/
-export HasMeasurablePow (measurable_pow)
+export MeasurablePow (measurable_pow)
+/- warning: monoid.has_measurable_pow -> Monoid.measurablePow is a dubious translation:
+lean 3 declaration is
+ forall (M : Type.{u1}) [_inst_1 : Monoid.{u1} M] [_inst_2 : MeasurableSpace.{u1} M] [_inst_3 : MeasurableMul₂.{u1} M _inst_2 (MulOneClass.toHasMul.{u1} M (Monoid.toMulOneClass.{u1} M _inst_1))], MeasurablePow.{u1, 0} M Nat _inst_2 Nat.instMeasurableSpace (Monoid.Pow.{u1} M _inst_1)
+but is expected to have type
+ forall (M : Type.{u1}) [_inst_1 : Monoid.{u1} M] [_inst_2 : MeasurableSpace.{u1} M] [_inst_3 : MeasurableMul₂.{u1} M _inst_2 (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M _inst_1))], MeasurablePow.{u1, 0} M Nat _inst_2 Nat.instMeasurableSpace (Monoid.Pow.{u1} M _inst_1)
+Case conversion may be inaccurate. Consider using '#align monoid.has_measurable_pow Monoid.measurablePowₓ'. -/
/-- `monoid.has_pow` is measurable. -/
-instance Monoid.hasMeasurablePow (M : Type _) [Monoid M] [MeasurableSpace M] [HasMeasurableMul₂ M] :
- HasMeasurablePow M ℕ :=
+instance Monoid.measurablePow (M : Type _) [Monoid M] [MeasurableSpace M] [MeasurableMul₂ M] :
+ MeasurablePow M ℕ :=
⟨measurable_from_prod_countable fun n =>
by
induction' n with n ih
· simp only [pow_zero, ← Pi.one_def, measurable_one]
· simp only [pow_succ]
exact measurable_id.mul ih⟩
-#align monoid.has_measurable_pow Monoid.hasMeasurablePow
+#align monoid.has_measurable_pow Monoid.measurablePow
section Pow
-variable {β γ α : Type _} [MeasurableSpace β] [MeasurableSpace γ] [Pow β γ] [HasMeasurablePow β γ]
+variable {β γ α : Type _} [MeasurableSpace β] [MeasurableSpace γ] [Pow β γ] [MeasurablePow β γ]
{m : MeasurableSpace α} {μ : Measure α} {f : α → β} {g : α → γ}
include m
+/- warning: measurable.pow -> Measurable.pow 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 : Pow.{u1, u2} β γ] [_inst_4 : MeasurablePow.{u1, u2} β γ _inst_1 _inst_2 _inst_3] {m : MeasurableSpace.{u3} α} {f : α -> β} {g : α -> γ}, (Measurable.{u3, u1} α β m _inst_1 f) -> (Measurable.{u3, u2} α γ m _inst_2 g) -> (Measurable.{u3, u1} α β m _inst_1 (fun (x : α) => HPow.hPow.{u1, u2, u1} β γ β (instHPow.{u1, u2} β γ _inst_3) (f x) (g x)))
+but is expected to have type
+ forall {β : Type.{u2}} {γ : Type.{u1}} {α : Type.{u3}} [_inst_1 : MeasurableSpace.{u2} β] [_inst_2 : MeasurableSpace.{u1} γ] [_inst_3 : Pow.{u2, u1} β γ] [_inst_4 : MeasurablePow.{u2, u1} β γ _inst_1 _inst_2 _inst_3] {m : MeasurableSpace.{u3} α} {f : α -> β} {g : α -> γ}, (Measurable.{u3, u2} α β m _inst_1 f) -> (Measurable.{u3, u1} α γ m _inst_2 g) -> (Measurable.{u3, u2} α β m _inst_1 (fun (x : α) => HPow.hPow.{u2, u1, u2} β γ β (instHPow.{u2, u1} β γ _inst_3) (f x) (g x)))
+Case conversion may be inaccurate. Consider using '#align measurable.pow Measurable.powₓ'. -/
@[measurability]
theorem Measurable.pow (hf : Measurable f) (hg : Measurable g) : Measurable fun x => f x ^ g x :=
measurable_pow.comp (hf.prod_mk hg)
#align measurable.pow Measurable.pow
+/- warning: ae_measurable.pow -> AEMeasurable.pow 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 : Pow.{u1, u2} β γ] [_inst_4 : MeasurablePow.{u1, u2} β γ _inst_1 _inst_2 _inst_3] {m : MeasurableSpace.{u3} α} {μ : MeasureTheory.Measure.{u3} α m} {f : α -> β} {g : α -> γ}, (AEMeasurable.{u3, u1} α β _inst_1 m f μ) -> (AEMeasurable.{u3, u2} α γ _inst_2 m g μ) -> (AEMeasurable.{u3, u1} α β _inst_1 m (fun (x : α) => HPow.hPow.{u1, u2, u1} β γ β (instHPow.{u1, u2} β γ _inst_3) (f x) (g x)) μ)
+but is expected to have type
+ forall {β : Type.{u2}} {γ : Type.{u1}} {α : Type.{u3}} [_inst_1 : MeasurableSpace.{u2} β] [_inst_2 : MeasurableSpace.{u1} γ] [_inst_3 : Pow.{u2, u1} β γ] [_inst_4 : MeasurablePow.{u2, u1} β γ _inst_1 _inst_2 _inst_3] {m : MeasurableSpace.{u3} α} {μ : MeasureTheory.Measure.{u3} α m} {f : α -> β} {g : α -> γ}, (AEMeasurable.{u3, u2} α β _inst_1 m f μ) -> (AEMeasurable.{u3, u1} α γ _inst_2 m g μ) -> (AEMeasurable.{u3, u2} α β _inst_1 m (fun (x : α) => HPow.hPow.{u2, u1, u2} β γ β (instHPow.{u2, u1} β γ _inst_3) (f x) (g x)) μ)
+Case conversion may be inaccurate. Consider using '#align ae_measurable.pow AEMeasurable.powₓ'. -/
@[measurability]
theorem AEMeasurable.pow (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
AEMeasurable (fun x => f x ^ g x) μ :=
measurable_pow.comp_aemeasurable (hf.prod_mk hg)
#align ae_measurable.pow AEMeasurable.pow
+/- warning: measurable.pow_const -> Measurable.pow_const 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 : Pow.{u1, u2} β γ] [_inst_4 : MeasurablePow.{u1, u2} β γ _inst_1 _inst_2 _inst_3] {m : MeasurableSpace.{u3} α} {f : α -> β}, (Measurable.{u3, u1} α β m _inst_1 f) -> (forall (c : γ), Measurable.{u3, u1} α β m _inst_1 (fun (x : α) => HPow.hPow.{u1, u2, u1} β γ β (instHPow.{u1, u2} β γ _inst_3) (f x) c))
+but is expected to have type
+ forall {β : Type.{u2}} {γ : Type.{u1}} {α : Type.{u3}} [_inst_1 : MeasurableSpace.{u2} β] [_inst_2 : MeasurableSpace.{u1} γ] [_inst_3 : Pow.{u2, u1} β γ] [_inst_4 : MeasurablePow.{u2, u1} β γ _inst_1 _inst_2 _inst_3] {m : MeasurableSpace.{u3} α} {f : α -> β}, (Measurable.{u3, u2} α β m _inst_1 f) -> (forall (c : γ), Measurable.{u3, u2} α β m _inst_1 (fun (x : α) => HPow.hPow.{u2, u1, u2} β γ β (instHPow.{u2, u1} β γ _inst_3) (f x) c))
+Case conversion may be inaccurate. Consider using '#align measurable.pow_const Measurable.pow_constₓ'. -/
@[measurability]
theorem Measurable.pow_const (hf : Measurable f) (c : γ) : Measurable fun x => f x ^ c :=
hf.pow measurable_const
#align measurable.pow_const Measurable.pow_const
+/- warning: ae_measurable.pow_const -> AEMeasurable.pow_const 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 : Pow.{u1, u2} β γ] [_inst_4 : MeasurablePow.{u1, u2} β γ _inst_1 _inst_2 _inst_3] {m : MeasurableSpace.{u3} α} {μ : MeasureTheory.Measure.{u3} α m} {f : α -> β}, (AEMeasurable.{u3, u1} α β _inst_1 m f μ) -> (forall (c : γ), AEMeasurable.{u3, u1} α β _inst_1 m (fun (x : α) => HPow.hPow.{u1, u2, u1} β γ β (instHPow.{u1, u2} β γ _inst_3) (f x) c) μ)
+but is expected to have type
+ forall {β : Type.{u2}} {γ : Type.{u1}} {α : Type.{u3}} [_inst_1 : MeasurableSpace.{u2} β] [_inst_2 : MeasurableSpace.{u1} γ] [_inst_3 : Pow.{u2, u1} β γ] [_inst_4 : MeasurablePow.{u2, u1} β γ _inst_1 _inst_2 _inst_3] {m : MeasurableSpace.{u3} α} {μ : MeasureTheory.Measure.{u3} α m} {f : α -> β}, (AEMeasurable.{u3, u2} α β _inst_1 m f μ) -> (forall (c : γ), AEMeasurable.{u3, u2} α β _inst_1 m (fun (x : α) => HPow.hPow.{u2, u1, u2} β γ β (instHPow.{u2, u1} β γ _inst_3) (f x) c) μ)
+Case conversion may be inaccurate. Consider using '#align ae_measurable.pow_const AEMeasurable.pow_constₓ'. -/
@[measurability]
theorem AEMeasurable.pow_const (hf : AEMeasurable f μ) (c : γ) :
AEMeasurable (fun x => f x ^ c) μ :=
hf.pow aemeasurable_const
#align ae_measurable.pow_const AEMeasurable.pow_const
+#print Measurable.const_pow /-
@[measurability]
theorem Measurable.const_pow (hg : Measurable g) (c : β) : Measurable fun x => c ^ g x :=
measurable_const.pow hg
#align measurable.const_pow Measurable.const_pow
+-/
+#print AEMeasurable.const_pow /-
@[measurability]
theorem AEMeasurable.const_pow (hg : AEMeasurable g μ) (c : β) :
AEMeasurable (fun x => c ^ g x) μ :=
aemeasurable_const.pow hg
#align ae_measurable.const_pow AEMeasurable.const_pow
+-/
omit m
end Pow
+#print MeasurableSub /-
/-- We say that a type `has_measurable_sub` if `(λ x, c - x)` and `(λ x, x - c)` are measurable
functions. For a typeclass assuming measurability of `uncurry (-)` see `has_measurable_sub₂`. -/
-class HasMeasurableSub (G : Type _) [MeasurableSpace G] [Sub G] : Prop where
+class MeasurableSub (G : Type _) [MeasurableSpace G] [Sub G] : Prop where
measurable_const_sub : ∀ c : G, Measurable fun x => c - x
measurable_sub_const : ∀ c : G, Measurable fun x => x - c
-#align has_measurable_sub HasMeasurableSub
+#align has_measurable_sub MeasurableSub
+-/
-export HasMeasurableSub (measurable_const_sub measurable_sub_const)
+export MeasurableSub (measurable_const_sub measurable_sub_const)
+#print MeasurableSub₂ /-
/-- We say that a type `has_measurable_sub` if `uncurry (-)` is a measurable functions.
For a typeclass assuming measurability of `((-) c)` and `(- c)` see `has_measurable_sub`. -/
-class HasMeasurableSub₂ (G : Type _) [MeasurableSpace G] [Sub G] : Prop where
+class MeasurableSub₂ (G : Type _) [MeasurableSpace G] [Sub G] : Prop where
measurable_sub : Measurable fun p : G × G => p.1 - p.2
-#align has_measurable_sub₂ HasMeasurableSub₂
+#align has_measurable_sub₂ MeasurableSub₂
+-/
-export HasMeasurableSub₂ (measurable_sub)
+export MeasurableSub₂ (measurable_sub)
+#print MeasurableDiv /-
/-- We say that a type `has_measurable_div` if `((/) c)` and `(/ c)` are measurable functions.
For a typeclass assuming measurability of `uncurry (/)` see `has_measurable_div₂`. -/
@[to_additive]
-class HasMeasurableDiv (G₀ : Type _) [MeasurableSpace G₀] [Div G₀] : Prop where
- measurable_const_div : ∀ c : G₀, Measurable ((· / ·) c)
+class MeasurableDiv (G₀ : Type _) [MeasurableSpace G₀] [Div G₀] : Prop where
+ measurable_div_const : ∀ c : G₀, Measurable ((· / ·) c)
measurable_div_const : ∀ c : G₀, Measurable (· / c)
-#align has_measurable_div HasMeasurableDiv
-#align has_measurable_sub HasMeasurableSub
+#align has_measurable_div MeasurableDiv
+#align has_measurable_sub MeasurableSub
+-/
-export HasMeasurableDiv (measurable_const_div measurable_div_const)
+export MeasurableDiv (measurable_div_const measurable_div_const)
+#print MeasurableDiv₂ /-
/-- We say that a type `has_measurable_div` if `uncurry (/)` is a measurable functions.
For a typeclass assuming measurability of `((/) c)` and `(/ c)` see `has_measurable_div`. -/
-@[to_additive HasMeasurableSub₂]
-class HasMeasurableDiv₂ (G₀ : Type _) [MeasurableSpace G₀] [Div G₀] : Prop where
+@[to_additive MeasurableSub₂]
+class MeasurableDiv₂ (G₀ : Type _) [MeasurableSpace G₀] [Div G₀] : Prop where
measurable_div : Measurable fun p : G₀ × G₀ => p.1 / p.2
-#align has_measurable_div₂ HasMeasurableDiv₂
-#align has_measurable_sub₂ HasMeasurableSub₂
+#align has_measurable_div₂ MeasurableDiv₂
+#align has_measurable_sub₂ MeasurableSub₂
+-/
-export HasMeasurableDiv₂ (measurable_div)
+export MeasurableDiv₂ (measurable_div)
section Div
@@ -307,57 +418,105 @@ variable {G α : Type _} [MeasurableSpace G] [Div G] {m : MeasurableSpace α} {f
include m
+/- warning: measurable.const_div -> Measurable.const_div is a dubious translation:
+lean 3 declaration is
+ forall {G : Type.{u1}} {α : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} G] [_inst_2 : Div.{u1} G] {m : MeasurableSpace.{u2} α} {f : α -> G} [_inst_3 : MeasurableDiv.{u1} G _inst_1 _inst_2], (Measurable.{u2, u1} α G m _inst_1 f) -> (forall (c : G), Measurable.{u2, u1} α G m _inst_1 (fun (x : α) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G _inst_2) c (f x)))
+but is expected to have type
+ forall {G : Type.{u2}} {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} G] [_inst_2 : Div.{u2} G] {m : MeasurableSpace.{u1} α} {f : α -> G} [_inst_3 : MeasurableDiv.{u2} G _inst_1 _inst_2], (Measurable.{u1, u2} α G m _inst_1 f) -> (forall (c : G), Measurable.{u1, u2} α G m _inst_1 (fun (x : α) => HDiv.hDiv.{u2, u2, u2} G G G (instHDiv.{u2} G _inst_2) c (f x)))
+Case conversion may be inaccurate. Consider using '#align measurable.const_div Measurable.const_divₓ'. -/
@[measurability, to_additive]
-theorem Measurable.const_div [HasMeasurableDiv G] (hf : Measurable f) (c : G) :
+theorem Measurable.const_div [MeasurableDiv G] (hf : Measurable f) (c : G) :
Measurable fun x => c / f x :=
- (HasMeasurableDiv.measurable_const_div c).comp hf
+ (MeasurableDiv.measurable_div_const c).comp hf
#align measurable.const_div Measurable.const_div
#align measurable.const_sub Measurable.const_sub
+/- warning: ae_measurable.const_div -> AEMeasurable.const_div is a dubious translation:
+lean 3 declaration is
+ forall {G : Type.{u1}} {α : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} G] [_inst_2 : Div.{u1} G] {m : MeasurableSpace.{u2} α} {f : α -> G} {μ : MeasureTheory.Measure.{u2} α m} [_inst_3 : MeasurableDiv.{u1} G _inst_1 _inst_2], (AEMeasurable.{u2, u1} α G _inst_1 m f μ) -> (forall (c : G), AEMeasurable.{u2, u1} α G _inst_1 m (fun (x : α) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G _inst_2) c (f x)) μ)
+but is expected to have type
+ forall {G : Type.{u2}} {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} G] [_inst_2 : Div.{u2} G] {m : MeasurableSpace.{u1} α} {f : α -> G} {μ : MeasureTheory.Measure.{u1} α m} [_inst_3 : MeasurableDiv.{u2} G _inst_1 _inst_2], (AEMeasurable.{u1, u2} α G _inst_1 m f μ) -> (forall (c : G), AEMeasurable.{u1, u2} α G _inst_1 m (fun (x : α) => HDiv.hDiv.{u2, u2, u2} G G G (instHDiv.{u2} G _inst_2) c (f x)) μ)
+Case conversion may be inaccurate. Consider using '#align ae_measurable.const_div AEMeasurable.const_divₓ'. -/
@[measurability, to_additive]
-theorem AEMeasurable.const_div [HasMeasurableDiv G] (hf : AEMeasurable f μ) (c : G) :
+theorem AEMeasurable.const_div [MeasurableDiv G] (hf : AEMeasurable f μ) (c : G) :
AEMeasurable (fun x => c / f x) μ :=
- (HasMeasurableDiv.measurable_const_div c).comp_aemeasurable hf
+ (MeasurableDiv.measurable_div_const c).comp_aemeasurable hf
#align ae_measurable.const_div AEMeasurable.const_div
#align ae_measurable.const_sub AEMeasurable.const_sub
+/- warning: measurable.div_const -> Measurable.div_const is a dubious translation:
+lean 3 declaration is
+ forall {G : Type.{u1}} {α : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} G] [_inst_2 : Div.{u1} G] {m : MeasurableSpace.{u2} α} {f : α -> G} [_inst_3 : MeasurableDiv.{u1} G _inst_1 _inst_2], (Measurable.{u2, u1} α G m _inst_1 f) -> (forall (c : G), Measurable.{u2, u1} α G m _inst_1 (fun (x : α) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G _inst_2) (f x) c))
+but is expected to have type
+ forall {G : Type.{u2}} {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} G] [_inst_2 : Div.{u2} G] {m : MeasurableSpace.{u1} α} {f : α -> G} [_inst_3 : MeasurableDiv.{u2} G _inst_1 _inst_2], (Measurable.{u1, u2} α G m _inst_1 f) -> (forall (c : G), Measurable.{u1, u2} α G m _inst_1 (fun (x : α) => HDiv.hDiv.{u2, u2, u2} G G G (instHDiv.{u2} G _inst_2) (f x) c))
+Case conversion may be inaccurate. Consider using '#align measurable.div_const Measurable.div_constₓ'. -/
@[measurability, to_additive]
-theorem Measurable.div_const [HasMeasurableDiv G] (hf : Measurable f) (c : G) :
+theorem Measurable.div_const [MeasurableDiv G] (hf : Measurable f) (c : G) :
Measurable fun x => f x / c :=
- (HasMeasurableDiv.measurable_div_const c).comp hf
+ (MeasurableDiv.measurable_div_const c).comp hf
#align measurable.div_const Measurable.div_const
#align measurable.sub_const Measurable.sub_const
+/- warning: ae_measurable.div_const -> AEMeasurable.div_const is a dubious translation:
+lean 3 declaration is
+ forall {G : Type.{u1}} {α : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} G] [_inst_2 : Div.{u1} G] {m : MeasurableSpace.{u2} α} {f : α -> G} {μ : MeasureTheory.Measure.{u2} α m} [_inst_3 : MeasurableDiv.{u1} G _inst_1 _inst_2], (AEMeasurable.{u2, u1} α G _inst_1 m f μ) -> (forall (c : G), AEMeasurable.{u2, u1} α G _inst_1 m (fun (x : α) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G _inst_2) (f x) c) μ)
+but is expected to have type
+ forall {G : Type.{u2}} {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} G] [_inst_2 : Div.{u2} G] {m : MeasurableSpace.{u1} α} {f : α -> G} {μ : MeasureTheory.Measure.{u1} α m} [_inst_3 : MeasurableDiv.{u2} G _inst_1 _inst_2], (AEMeasurable.{u1, u2} α G _inst_1 m f μ) -> (forall (c : G), AEMeasurable.{u1, u2} α G _inst_1 m (fun (x : α) => HDiv.hDiv.{u2, u2, u2} G G G (instHDiv.{u2} G _inst_2) (f x) c) μ)
+Case conversion may be inaccurate. Consider using '#align ae_measurable.div_const AEMeasurable.div_constₓ'. -/
@[measurability, to_additive]
-theorem AEMeasurable.div_const [HasMeasurableDiv G] (hf : AEMeasurable f μ) (c : G) :
+theorem AEMeasurable.div_const [MeasurableDiv G] (hf : AEMeasurable f μ) (c : G) :
AEMeasurable (fun x => f x / c) μ :=
- (HasMeasurableDiv.measurable_div_const c).comp_aemeasurable hf
+ (MeasurableDiv.measurable_div_const c).comp_aemeasurable hf
#align ae_measurable.div_const AEMeasurable.div_const
#align ae_measurable.sub_const AEMeasurable.sub_const
+/- warning: measurable.div' -> Measurable.div' is a dubious translation:
+lean 3 declaration is
+ forall {G : Type.{u1}} {α : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} G] [_inst_2 : Div.{u1} G] {m : MeasurableSpace.{u2} α} {f : α -> G} {g : α -> G} [_inst_3 : MeasurableDiv₂.{u1} G _inst_1 _inst_2], (Measurable.{u2, u1} α G m _inst_1 f) -> (Measurable.{u2, u1} α G m _inst_1 g) -> (Measurable.{u2, u1} α G m _inst_1 (HDiv.hDiv.{max u2 u1, max u2 u1, max u2 u1} (α -> G) (α -> G) (α -> G) (instHDiv.{max u2 u1} (α -> G) (Pi.instDiv.{u2, u1} α (fun (ᾰ : α) => G) (fun (i : α) => _inst_2))) f g))
+but is expected to have type
+ forall {G : Type.{u2}} {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} G] [_inst_2 : Div.{u2} G] {m : MeasurableSpace.{u1} α} {f : α -> G} {g : α -> G} [_inst_3 : MeasurableDiv₂.{u2} G _inst_1 _inst_2], (Measurable.{u1, u2} α G m _inst_1 f) -> (Measurable.{u1, u2} α G m _inst_1 g) -> (Measurable.{u1, u2} α G m _inst_1 (HDiv.hDiv.{max u2 u1, max u2 u1, max u2 u1} (α -> G) (α -> G) (α -> G) (instHDiv.{max u2 u1} (α -> G) (Pi.instDiv.{u1, u2} α (fun (ᾰ : α) => G) (fun (i : α) => _inst_2))) f g))
+Case conversion may be inaccurate. Consider using '#align measurable.div' Measurable.div'ₓ'. -/
@[measurability, to_additive]
-theorem Measurable.div' [HasMeasurableDiv₂ G] (hf : Measurable f) (hg : Measurable g) :
+theorem Measurable.div' [MeasurableDiv₂ G] (hf : Measurable f) (hg : Measurable g) :
Measurable (f / g) :=
measurable_div.comp (hf.prod_mk hg)
#align measurable.div' Measurable.div'
#align measurable.sub' Measurable.sub'
+/- warning: measurable.div -> Measurable.div is a dubious translation:
+lean 3 declaration is
+ forall {G : Type.{u1}} {α : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} G] [_inst_2 : Div.{u1} G] {m : MeasurableSpace.{u2} α} {f : α -> G} {g : α -> G} [_inst_3 : MeasurableDiv₂.{u1} G _inst_1 _inst_2], (Measurable.{u2, u1} α G m _inst_1 f) -> (Measurable.{u2, u1} α G m _inst_1 g) -> (Measurable.{u2, u1} α G m _inst_1 (fun (a : α) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G _inst_2) (f a) (g a)))
+but is expected to have type
+ forall {G : Type.{u2}} {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} G] [_inst_2 : Div.{u2} G] {m : MeasurableSpace.{u1} α} {f : α -> G} {g : α -> G} [_inst_3 : MeasurableDiv₂.{u2} G _inst_1 _inst_2], (Measurable.{u1, u2} α G m _inst_1 f) -> (Measurable.{u1, u2} α G m _inst_1 g) -> (Measurable.{u1, u2} α G m _inst_1 (fun (a : α) => HDiv.hDiv.{u2, u2, u2} G G G (instHDiv.{u2} G _inst_2) (f a) (g a)))
+Case conversion may be inaccurate. Consider using '#align measurable.div Measurable.divₓ'. -/
@[measurability, to_additive]
-theorem Measurable.div [HasMeasurableDiv₂ G] (hf : Measurable f) (hg : Measurable g) :
+theorem Measurable.div [MeasurableDiv₂ G] (hf : Measurable f) (hg : Measurable g) :
Measurable fun a => f a / g a :=
measurable_div.comp (hf.prod_mk hg)
#align measurable.div Measurable.div
#align measurable.sub Measurable.sub
+/- warning: ae_measurable.div' -> AEMeasurable.div' is a dubious translation:
+lean 3 declaration is
+ forall {G : Type.{u1}} {α : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} G] [_inst_2 : Div.{u1} G] {m : MeasurableSpace.{u2} α} {f : α -> G} {g : α -> G} {μ : MeasureTheory.Measure.{u2} α m} [_inst_3 : MeasurableDiv₂.{u1} G _inst_1 _inst_2], (AEMeasurable.{u2, u1} α G _inst_1 m f μ) -> (AEMeasurable.{u2, u1} α G _inst_1 m g μ) -> (AEMeasurable.{u2, u1} α G _inst_1 m (HDiv.hDiv.{max u2 u1, max u2 u1, max u2 u1} (α -> G) (α -> G) (α -> G) (instHDiv.{max u2 u1} (α -> G) (Pi.instDiv.{u2, u1} α (fun (ᾰ : α) => G) (fun (i : α) => _inst_2))) f g) μ)
+but is expected to have type
+ forall {G : Type.{u2}} {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} G] [_inst_2 : Div.{u2} G] {m : MeasurableSpace.{u1} α} {f : α -> G} {g : α -> G} {μ : MeasureTheory.Measure.{u1} α m} [_inst_3 : MeasurableDiv₂.{u2} G _inst_1 _inst_2], (AEMeasurable.{u1, u2} α G _inst_1 m f μ) -> (AEMeasurable.{u1, u2} α G _inst_1 m g μ) -> (AEMeasurable.{u1, u2} α G _inst_1 m (HDiv.hDiv.{max u2 u1, max u2 u1, max u2 u1} (α -> G) (α -> G) (α -> G) (instHDiv.{max u2 u1} (α -> G) (Pi.instDiv.{u1, u2} α (fun (ᾰ : α) => G) (fun (i : α) => _inst_2))) f g) μ)
+Case conversion may be inaccurate. Consider using '#align ae_measurable.div' AEMeasurable.div'ₓ'. -/
@[measurability, to_additive]
-theorem AEMeasurable.div' [HasMeasurableDiv₂ G] (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
+theorem AEMeasurable.div' [MeasurableDiv₂ G] (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
AEMeasurable (f / g) μ :=
measurable_div.comp_aemeasurable (hf.prod_mk hg)
#align ae_measurable.div' AEMeasurable.div'
#align ae_measurable.sub' AEMeasurable.sub'
+/- warning: ae_measurable.div -> AEMeasurable.div is a dubious translation:
+lean 3 declaration is
+ forall {G : Type.{u1}} {α : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} G] [_inst_2 : Div.{u1} G] {m : MeasurableSpace.{u2} α} {f : α -> G} {g : α -> G} {μ : MeasureTheory.Measure.{u2} α m} [_inst_3 : MeasurableDiv₂.{u1} G _inst_1 _inst_2], (AEMeasurable.{u2, u1} α G _inst_1 m f μ) -> (AEMeasurable.{u2, u1} α G _inst_1 m g μ) -> (AEMeasurable.{u2, u1} α G _inst_1 m (fun (a : α) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G _inst_2) (f a) (g a)) μ)
+but is expected to have type
+ forall {G : Type.{u2}} {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} G] [_inst_2 : Div.{u2} G] {m : MeasurableSpace.{u1} α} {f : α -> G} {g : α -> G} {μ : MeasureTheory.Measure.{u1} α m} [_inst_3 : MeasurableDiv₂.{u2} G _inst_1 _inst_2], (AEMeasurable.{u1, u2} α G _inst_1 m f μ) -> (AEMeasurable.{u1, u2} α G _inst_1 m g μ) -> (AEMeasurable.{u1, u2} α G _inst_1 m (fun (a : α) => HDiv.hDiv.{u2, u2, u2} G G G (instHDiv.{u2} G _inst_2) (f a) (g a)) μ)
+Case conversion may be inaccurate. Consider using '#align ae_measurable.div AEMeasurable.divₓ'. -/
@[measurability, to_additive]
-theorem AEMeasurable.div [HasMeasurableDiv₂ G] (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
+theorem AEMeasurable.div [MeasurableDiv₂ G] (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
AEMeasurable (fun a => f a / g a) μ :=
measurable_div.comp_aemeasurable (hf.prod_mk hg)
#align ae_measurable.div AEMeasurable.div
@@ -368,31 +527,42 @@ attribute [measurability]
omit m
+#print MeasurableDiv₂.toMeasurableDiv /-
@[to_additive]
-instance (priority := 100) HasMeasurableDiv₂.to_hasMeasurableDiv [HasMeasurableDiv₂ G] :
- HasMeasurableDiv G :=
+instance (priority := 100) MeasurableDiv₂.toMeasurableDiv [MeasurableDiv₂ G] : MeasurableDiv G :=
⟨fun c => measurable_const.div measurable_id, fun c => measurable_id.div measurable_const⟩
-#align has_measurable_div₂.to_has_measurable_div HasMeasurableDiv₂.to_hasMeasurableDiv
-#align has_measurable_sub₂.to_has_measurable_sub HasMeasurableSub₂.to_has_measurable_sub
+#align has_measurable_div₂.to_has_measurable_div MeasurableDiv₂.toMeasurableDiv
+#align has_measurable_sub₂.to_has_measurable_sub MeasurableSub₂.toMeasurableSub
+-/
+#print Pi.measurableDiv /-
@[to_additive]
-instance Pi.hasMeasurableDiv {ι : Type _} {α : ι → Type _} [∀ i, Div (α i)]
- [∀ i, MeasurableSpace (α i)] [∀ i, HasMeasurableDiv (α i)] : HasMeasurableDiv (∀ i, α i) :=
+instance Pi.measurableDiv {ι : Type _} {α : ι → Type _} [∀ i, Div (α i)]
+ [∀ i, MeasurableSpace (α i)] [∀ i, MeasurableDiv (α i)] : MeasurableDiv (∀ i, α i) :=
⟨fun g => measurable_pi_iff.mpr fun i => (measurable_pi_apply i).const_div _, fun g =>
measurable_pi_iff.mpr fun i => (measurable_pi_apply i).div_const _⟩
-#align pi.has_measurable_div Pi.hasMeasurableDiv
-#align pi.has_measurable_sub Pi.has_measurable_sub
+#align pi.has_measurable_div Pi.measurableDiv
+#align pi.has_measurable_sub Pi.measurableSub
+-/
-@[to_additive Pi.has_measurable_sub₂]
-instance Pi.hasMeasurableDiv₂ {ι : Type _} {α : ι → Type _} [∀ i, Div (α i)]
- [∀ i, MeasurableSpace (α i)] [∀ i, HasMeasurableDiv₂ (α i)] : HasMeasurableDiv₂ (∀ i, α i) :=
+#print Pi.measurableDiv₂ /-
+@[to_additive Pi.measurableSub₂]
+instance Pi.measurableDiv₂ {ι : Type _} {α : ι → Type _} [∀ i, Div (α i)]
+ [∀ i, MeasurableSpace (α i)] [∀ i, MeasurableDiv₂ (α i)] : MeasurableDiv₂ (∀ i, α i) :=
⟨measurable_pi_iff.mpr fun i => measurable_fst.eval.div measurable_snd.eval⟩
-#align pi.has_measurable_div₂ Pi.hasMeasurableDiv₂
-#align pi.has_measurable_sub₂ Pi.has_measurable_sub₂
+#align pi.has_measurable_div₂ Pi.measurableDiv₂
+#align pi.has_measurable_sub₂ Pi.measurableSub₂
+-/
+/- warning: measurable_set_eq_fun -> measurableSet_eq_fun is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {m : MeasurableSpace.{u1} α} {E : Type.{u2}} [_inst_3 : MeasurableSpace.{u2} E] [_inst_4 : AddGroup.{u2} E] [_inst_5 : MeasurableSingletonClass.{u2} E _inst_3] [_inst_6 : MeasurableSub₂.{u2} E _inst_3 (SubNegMonoid.toHasSub.{u2} E (AddGroup.toSubNegMonoid.{u2} E _inst_4))] {f : α -> E} {g : α -> E}, (Measurable.{u1, u2} α E m _inst_3 f) -> (Measurable.{u1, u2} α E m _inst_3 g) -> (MeasurableSet.{u1} α m (setOf.{u1} α (fun (x : α) => Eq.{succ u2} E (f x) (g x))))
+but is expected to have type
+ forall {α : Type.{u2}} {m : MeasurableSpace.{u2} α} {E : Type.{u1}} [_inst_3 : MeasurableSpace.{u1} E] [_inst_4 : AddGroup.{u1} E] [_inst_5 : MeasurableSingletonClass.{u1} E _inst_3] [_inst_6 : MeasurableSub₂.{u1} E _inst_3 (SubNegMonoid.toSub.{u1} E (AddGroup.toSubNegMonoid.{u1} E _inst_4))] {f : α -> E} {g : α -> E}, (Measurable.{u2, u1} α E m _inst_3 f) -> (Measurable.{u2, u1} α E m _inst_3 g) -> (MeasurableSet.{u2} α m (setOf.{u2} α (fun (x : α) => Eq.{succ u1} E (f x) (g x))))
+Case conversion may be inaccurate. Consider using '#align measurable_set_eq_fun measurableSet_eq_funₓ'. -/
@[measurability]
theorem measurableSet_eq_fun {m : MeasurableSpace α} {E} [MeasurableSpace E] [AddGroup E]
- [MeasurableSingletonClass E] [HasMeasurableSub₂ E] {f g : α → E} (hf : Measurable f)
+ [MeasurableSingletonClass E] [MeasurableSub₂ E] {f g : α → E} (hf : Measurable f)
(hg : Measurable g) : MeasurableSet { x | f x = g x } :=
by
suffices h_set_eq : { x : α | f x = g x } = { x | (f - g) x = (0 : E) }
@@ -402,8 +572,14 @@ theorem measurableSet_eq_fun {m : MeasurableSpace α} {E} [MeasurableSpace E] [A
simp_rw [Set.mem_setOf_eq, Pi.sub_apply, sub_eq_zero]
#align measurable_set_eq_fun measurableSet_eq_fun
+/- warning: null_measurable_set_eq_fun -> nullMeasurableSet_eq_fun is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {m : MeasurableSpace.{u1} α} {μ : MeasureTheory.Measure.{u1} α m} {E : Type.{u2}} [_inst_3 : MeasurableSpace.{u2} E] [_inst_4 : AddGroup.{u2} E] [_inst_5 : MeasurableSingletonClass.{u2} E _inst_3] [_inst_6 : MeasurableSub₂.{u2} E _inst_3 (SubNegMonoid.toHasSub.{u2} E (AddGroup.toSubNegMonoid.{u2} E _inst_4))] {f : α -> E} {g : α -> E}, (AEMeasurable.{u1, u2} α E _inst_3 m f μ) -> (AEMeasurable.{u1, u2} α E _inst_3 m g μ) -> (MeasureTheory.NullMeasurableSet.{u1} α m (setOf.{u1} α (fun (x : α) => Eq.{succ u2} E (f x) (g x))) μ)
+but is expected to have type
+ forall {α : Type.{u1}} {m : MeasurableSpace.{u1} α} {μ : MeasureTheory.Measure.{u1} α m} {E : Type.{u2}} [_inst_3 : MeasurableSpace.{u2} E] [_inst_4 : AddGroup.{u2} E] [_inst_5 : MeasurableSingletonClass.{u2} E _inst_3] [_inst_6 : MeasurableSub₂.{u2} E _inst_3 (SubNegMonoid.toSub.{u2} E (AddGroup.toSubNegMonoid.{u2} E _inst_4))] {f : α -> E} {g : α -> E}, (AEMeasurable.{u1, u2} α E _inst_3 m f μ) -> (AEMeasurable.{u1, u2} α E _inst_3 m g μ) -> (MeasureTheory.NullMeasurableSet.{u1} α m (setOf.{u1} α (fun (x : α) => Eq.{succ u2} E (f x) (g x))) μ)
+Case conversion may be inaccurate. Consider using '#align null_measurable_set_eq_fun nullMeasurableSet_eq_funₓ'. -/
theorem nullMeasurableSet_eq_fun {E} [MeasurableSpace E] [AddGroup E] [MeasurableSingletonClass E]
- [HasMeasurableSub₂ E] {f g : α → E} (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
+ [MeasurableSub₂ E] {f g : α → E} (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
NullMeasurableSet { x | f x = g x } μ :=
by
apply (measurableSet_eq_fun hf.measurable_mk hg.measurable_mk).NullMeasurableSet.congr
@@ -412,6 +588,12 @@ theorem nullMeasurableSet_eq_fun {E} [MeasurableSpace E] [AddGroup E] [Measurabl
simp only [hfx, hgx]
#align null_measurable_set_eq_fun nullMeasurableSet_eq_fun
+/- warning: measurable_set_eq_fun_of_countable -> measurableSet_eq_fun_of_countable is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {m : MeasurableSpace.{u1} α} {E : Type.{u2}} [_inst_3 : MeasurableSpace.{u2} E] [_inst_4 : MeasurableSingletonClass.{u2} E _inst_3] [_inst_5 : Countable.{succ u2} E] {f : α -> E} {g : α -> E}, (Measurable.{u1, u2} α E m _inst_3 f) -> (Measurable.{u1, u2} α E m _inst_3 g) -> (MeasurableSet.{u1} α m (setOf.{u1} α (fun (x : α) => Eq.{succ u2} E (f x) (g x))))
+but is expected to have type
+ forall {α : Type.{u2}} {m : MeasurableSpace.{u2} α} {E : Type.{u1}} [_inst_3 : MeasurableSpace.{u1} E] [_inst_4 : MeasurableSingletonClass.{u1} E _inst_3] [_inst_5 : Countable.{succ u1} E] {f : α -> E} {g : α -> E}, (Measurable.{u2, u1} α E m _inst_3 f) -> (Measurable.{u2, u1} α E m _inst_3 g) -> (MeasurableSet.{u2} α m (setOf.{u2} α (fun (x : α) => Eq.{succ u1} E (f x) (g x))))
+Case conversion may be inaccurate. Consider using '#align measurable_set_eq_fun_of_countable measurableSet_eq_fun_of_countableₓ'. -/
theorem measurableSet_eq_fun_of_countable {m : MeasurableSpace α} {E} [MeasurableSpace E]
[MeasurableSingletonClass E] [Countable E] {f g : α → E} (hf : Measurable f)
(hg : Measurable g) : MeasurableSet { x | f x = g x } :=
@@ -426,9 +608,15 @@ theorem measurableSet_eq_fun_of_countable {m : MeasurableSpace α} {E} [Measurab
· exact hg (measurable_set_singleton j)
#align measurable_set_eq_fun_of_countable measurableSet_eq_fun_of_countable
+/- warning: ae_eq_trim_of_measurable -> ae_eq_trim_of_measurable is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {E : Type.{u2}} {m : MeasurableSpace.{u1} α} {m0 : MeasurableSpace.{u1} α} {μ : MeasureTheory.Measure.{u1} α m0} [_inst_3 : MeasurableSpace.{u2} E] [_inst_4 : AddGroup.{u2} E] [_inst_5 : MeasurableSingletonClass.{u2} E _inst_3] [_inst_6 : MeasurableSub₂.{u2} E _inst_3 (SubNegMonoid.toHasSub.{u2} E (AddGroup.toSubNegMonoid.{u2} E _inst_4))] (hm : LE.le.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.hasLe.{u1} α) m m0) {f : α -> E} {g : α -> E}, (Measurable.{u1, u2} α E m _inst_3 f) -> (Measurable.{u1, u2} α E m _inst_3 g) -> (Filter.EventuallyEq.{u1, u2} α E (MeasureTheory.Measure.ae.{u1} α m0 μ) f g) -> (Filter.EventuallyEq.{u1, u2} α E (MeasureTheory.Measure.ae.{u1} α m (MeasureTheory.Measure.trim.{u1} α m m0 μ hm)) f g)
+but is expected to have type
+ forall {α : Type.{u2}} {E : Type.{u1}} {m : MeasurableSpace.{u2} α} {m0 : MeasurableSpace.{u2} α} {μ : MeasureTheory.Measure.{u2} α m0} [_inst_3 : MeasurableSpace.{u1} E] [_inst_4 : AddGroup.{u1} E] [_inst_5 : MeasurableSingletonClass.{u1} E _inst_3] [_inst_6 : MeasurableSub₂.{u1} E _inst_3 (SubNegMonoid.toSub.{u1} E (AddGroup.toSubNegMonoid.{u1} E _inst_4))] (hm : LE.le.{u2} (MeasurableSpace.{u2} α) (MeasurableSpace.instLEMeasurableSpace.{u2} α) m m0) {f : α -> E} {g : α -> E}, (Measurable.{u2, u1} α E m _inst_3 f) -> (Measurable.{u2, u1} α E m _inst_3 g) -> (Filter.EventuallyEq.{u2, u1} α E (MeasureTheory.Measure.ae.{u2} α m0 μ) f g) -> (Filter.EventuallyEq.{u2, u1} α E (MeasureTheory.Measure.ae.{u2} α m (MeasureTheory.Measure.trim.{u2} α m m0 μ hm)) f g)
+Case conversion may be inaccurate. Consider using '#align ae_eq_trim_of_measurable ae_eq_trim_of_measurableₓ'. -/
theorem ae_eq_trim_of_measurable {α E} {m m0 : MeasurableSpace α} {μ : Measure α}
- [MeasurableSpace E] [AddGroup E] [MeasurableSingletonClass E] [HasMeasurableSub₂ E]
- (hm : m ≤ m0) {f g : α → E} (hf : measurable[m] f) (hg : measurable[m] g) (hfg : f =ᵐ[μ] g) :
+ [MeasurableSpace E] [AddGroup E] [MeasurableSingletonClass E] [MeasurableSub₂ E] (hm : m ≤ m0)
+ {f g : α → E} (hf : measurable[m] f) (hg : measurable[m] g) (hfg : f =ᵐ[μ] g) :
f =ᶠ[@Measure.ae α m (μ.trim hm)] g :=
by
rwa [Filter.EventuallyEq, ae_iff, trim_measurable_set_eq hm _]
@@ -437,27 +625,37 @@ theorem ae_eq_trim_of_measurable {α E} {m m0 : MeasurableSpace α} {μ : Measur
end Div
+#print MeasurableNeg /-
/-- We say that a type `has_measurable_neg` if `x ↦ -x` is a measurable function. -/
-class HasMeasurableNeg (G : Type _) [Neg G] [MeasurableSpace G] : Prop where
+class MeasurableNeg (G : Type _) [Neg G] [MeasurableSpace G] : Prop where
measurable_neg : Measurable (Neg.neg : G → G)
-#align has_measurable_neg HasMeasurableNeg
+#align has_measurable_neg MeasurableNeg
+-/
+#print MeasurableInv /-
/-- We say that a type `has_measurable_inv` if `x ↦ x⁻¹` is a measurable function. -/
@[to_additive]
-class HasMeasurableInv (G : Type _) [Inv G] [MeasurableSpace G] : Prop where
+class MeasurableInv (G : Type _) [Inv G] [MeasurableSpace G] : Prop where
measurable_inv : Measurable (Inv.inv : G → G)
-#align has_measurable_inv HasMeasurableInv
-#align has_measurable_neg HasMeasurableNeg
+#align has_measurable_inv MeasurableInv
+#align has_measurable_neg MeasurableNeg
+-/
-export HasMeasurableInv (measurable_inv)
+export MeasurableInv (measurable_inv)
-export HasMeasurableNeg (measurable_neg)
+export MeasurableNeg (measurable_neg)
+/- warning: has_measurable_div_of_mul_inv -> measurableDiv_of_mul_inv is a dubious translation:
+lean 3 declaration is
+ forall (G : Type.{u1}) [_inst_1 : MeasurableSpace.{u1} G] [_inst_2 : DivInvMonoid.{u1} G] [_inst_3 : MeasurableMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G _inst_2)))] [_inst_4 : MeasurableInv.{u1} G (DivInvMonoid.toHasInv.{u1} G _inst_2) _inst_1], MeasurableDiv.{u1} G _inst_1 (DivInvMonoid.toHasDiv.{u1} G _inst_2)
+but is expected to have type
+ forall (G : Type.{u1}) [_inst_1 : MeasurableSpace.{u1} G] [_inst_2 : DivInvMonoid.{u1} G] [_inst_3 : MeasurableMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G _inst_2)))] [_inst_4 : MeasurableInv.{u1} G (DivInvMonoid.toInv.{u1} G _inst_2) _inst_1], MeasurableDiv.{u1} G _inst_1 (DivInvMonoid.toDiv.{u1} G _inst_2)
+Case conversion may be inaccurate. Consider using '#align has_measurable_div_of_mul_inv measurableDiv_of_mul_invₓ'. -/
@[to_additive]
-instance (priority := 100) hasMeasurableDiv_of_mul_inv (G : Type _) [MeasurableSpace G]
- [DivInvMonoid G] [HasMeasurableMul G] [HasMeasurableInv G] : HasMeasurableDiv G
+instance (priority := 100) measurableDiv_of_mul_inv (G : Type _) [MeasurableSpace G]
+ [DivInvMonoid G] [MeasurableMul G] [MeasurableInv G] : MeasurableDiv G
where
- measurable_const_div c := by
+ measurable_div_const c := by
convert measurable_inv.const_mul c
ext1
apply div_eq_mul_inv
@@ -465,163 +663,227 @@ instance (priority := 100) hasMeasurableDiv_of_mul_inv (G : Type _) [MeasurableS
convert measurable_id.mul_const c⁻¹
ext1
apply div_eq_mul_inv
-#align has_measurable_div_of_mul_inv hasMeasurableDiv_of_mul_inv
-#align has_measurable_sub_of_add_neg has_measurable_sub_of_add_neg
+#align has_measurable_div_of_mul_inv measurableDiv_of_mul_inv
+#align has_measurable_sub_of_add_neg measurableSub_of_add_neg
section Inv
-variable {G α : Type _} [Inv G] [MeasurableSpace G] [HasMeasurableInv G] {m : MeasurableSpace α}
+variable {G α : Type _} [Inv G] [MeasurableSpace G] [MeasurableInv G] {m : MeasurableSpace α}
{f : α → G} {μ : Measure α}
include m
+#print Measurable.inv /-
@[measurability, to_additive]
theorem Measurable.inv (hf : Measurable f) : Measurable fun x => (f x)⁻¹ :=
measurable_inv.comp hf
#align measurable.inv Measurable.inv
#align measurable.neg Measurable.neg
+-/
+#print AEMeasurable.inv /-
@[measurability, to_additive]
theorem AEMeasurable.inv (hf : AEMeasurable f μ) : AEMeasurable (fun x => (f x)⁻¹) μ :=
measurable_inv.comp_aemeasurable hf
#align ae_measurable.inv AEMeasurable.inv
#align ae_measurable.neg AEMeasurable.neg
+-/
attribute [measurability] Measurable.neg AEMeasurable.neg
+/- warning: measurable_inv_iff -> measurable_inv_iff is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {m : MeasurableSpace.{u1} α} {G : Type.{u2}} [_inst_4 : Group.{u2} G] [_inst_5 : MeasurableSpace.{u2} G] [_inst_6 : MeasurableInv.{u2} G (DivInvMonoid.toHasInv.{u2} G (Group.toDivInvMonoid.{u2} G _inst_4)) _inst_5] {f : α -> G}, Iff (Measurable.{u1, u2} α G m _inst_5 (fun (x : α) => Inv.inv.{u2} G (DivInvMonoid.toHasInv.{u2} G (Group.toDivInvMonoid.{u2} G _inst_4)) (f x))) (Measurable.{u1, u2} α G m _inst_5 f)
+but is expected to have type
+ forall {α : Type.{u1}} {m : MeasurableSpace.{u1} α} {G : Type.{u2}} [_inst_4 : Group.{u2} G] [_inst_5 : MeasurableSpace.{u2} G] [_inst_6 : MeasurableInv.{u2} G (InvOneClass.toInv.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_4)))) _inst_5] {f : α -> G}, Iff (Measurable.{u1, u2} α G m _inst_5 (fun (x : α) => Inv.inv.{u2} G (InvOneClass.toInv.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_4)))) (f x))) (Measurable.{u1, u2} α G m _inst_5 f)
+Case conversion may be inaccurate. Consider using '#align measurable_inv_iff measurable_inv_iffₓ'. -/
@[simp, to_additive]
-theorem measurable_inv_iff {G : Type _} [Group G] [MeasurableSpace G] [HasMeasurableInv G]
+theorem measurable_inv_iff {G : Type _} [Group G] [MeasurableSpace G] [MeasurableInv G]
{f : α → G} : (Measurable fun x => (f x)⁻¹) ↔ Measurable f :=
⟨fun h => by simpa only [inv_inv] using h.inv, fun h => h.inv⟩
#align measurable_inv_iff measurable_inv_iff
#align measurable_neg_iff measurable_neg_iff
+/- warning: ae_measurable_inv_iff -> aemeasurable_inv_iff is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {m : MeasurableSpace.{u1} α} {μ : MeasureTheory.Measure.{u1} α m} {G : Type.{u2}} [_inst_4 : Group.{u2} G] [_inst_5 : MeasurableSpace.{u2} G] [_inst_6 : MeasurableInv.{u2} G (DivInvMonoid.toHasInv.{u2} G (Group.toDivInvMonoid.{u2} G _inst_4)) _inst_5] {f : α -> G}, Iff (AEMeasurable.{u1, u2} α G _inst_5 m (fun (x : α) => Inv.inv.{u2} G (DivInvMonoid.toHasInv.{u2} G (Group.toDivInvMonoid.{u2} G _inst_4)) (f x)) μ) (AEMeasurable.{u1, u2} α G _inst_5 m f μ)
+but is expected to have type
+ forall {α : Type.{u1}} {m : MeasurableSpace.{u1} α} {μ : MeasureTheory.Measure.{u1} α m} {G : Type.{u2}} [_inst_4 : Group.{u2} G] [_inst_5 : MeasurableSpace.{u2} G] [_inst_6 : MeasurableInv.{u2} G (InvOneClass.toInv.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_4)))) _inst_5] {f : α -> G}, Iff (AEMeasurable.{u1, u2} α G _inst_5 m (fun (x : α) => Inv.inv.{u2} G (InvOneClass.toInv.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_4)))) (f x)) μ) (AEMeasurable.{u1, u2} α G _inst_5 m f μ)
+Case conversion may be inaccurate. Consider using '#align ae_measurable_inv_iff aemeasurable_inv_iffₓ'. -/
@[simp, to_additive]
-theorem aEMeasurable_inv_iff {G : Type _} [Group G] [MeasurableSpace G] [HasMeasurableInv G]
+theorem aemeasurable_inv_iff {G : Type _} [Group G] [MeasurableSpace G] [MeasurableInv G]
{f : α → G} : AEMeasurable (fun x => (f x)⁻¹) μ ↔ AEMeasurable f μ :=
⟨fun h => by simpa only [inv_inv] using h.inv, fun h => h.inv⟩
-#align ae_measurable_inv_iff aEMeasurable_inv_iff
-#align ae_measurable_neg_iff aEMeasurable_neg_iff
-
+#align ae_measurable_inv_iff aemeasurable_inv_iff
+#align ae_measurable_neg_iff aemeasurable_neg_iff
+
+/- warning: measurable_inv_iff₀ -> measurable_inv_iff₀ is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {m : MeasurableSpace.{u1} α} {G₀ : Type.{u2}} [_inst_4 : GroupWithZero.{u2} G₀] [_inst_5 : MeasurableSpace.{u2} G₀] [_inst_6 : MeasurableInv.{u2} G₀ (DivInvMonoid.toHasInv.{u2} G₀ (GroupWithZero.toDivInvMonoid.{u2} G₀ _inst_4)) _inst_5] {f : α -> G₀}, Iff (Measurable.{u1, u2} α G₀ m _inst_5 (fun (x : α) => Inv.inv.{u2} G₀ (DivInvMonoid.toHasInv.{u2} G₀ (GroupWithZero.toDivInvMonoid.{u2} G₀ _inst_4)) (f x))) (Measurable.{u1, u2} α G₀ m _inst_5 f)
+but is expected to have type
+ forall {α : Type.{u1}} {m : MeasurableSpace.{u1} α} {G₀ : Type.{u2}} [_inst_4 : GroupWithZero.{u2} G₀] [_inst_5 : MeasurableSpace.{u2} G₀] [_inst_6 : MeasurableInv.{u2} G₀ (GroupWithZero.toInv.{u2} G₀ _inst_4) _inst_5] {f : α -> G₀}, Iff (Measurable.{u1, u2} α G₀ m _inst_5 (fun (x : α) => Inv.inv.{u2} G₀ (GroupWithZero.toInv.{u2} G₀ _inst_4) (f x))) (Measurable.{u1, u2} α G₀ m _inst_5 f)
+Case conversion may be inaccurate. Consider using '#align measurable_inv_iff₀ measurable_inv_iff₀ₓ'. -/
@[simp]
-theorem measurable_inv_iff₀ {G₀ : Type _} [GroupWithZero G₀] [MeasurableSpace G₀]
- [HasMeasurableInv G₀] {f : α → G₀} : (Measurable fun x => (f x)⁻¹) ↔ Measurable f :=
+theorem measurable_inv_iff₀ {G₀ : Type _} [GroupWithZero G₀] [MeasurableSpace G₀] [MeasurableInv G₀]
+ {f : α → G₀} : (Measurable fun x => (f x)⁻¹) ↔ Measurable f :=
⟨fun h => by simpa only [inv_inv] using h.inv, fun h => h.inv⟩
#align measurable_inv_iff₀ measurable_inv_iff₀
+/- warning: ae_measurable_inv_iff₀ -> aemeasurable_inv_iff₀ is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {m : MeasurableSpace.{u1} α} {μ : MeasureTheory.Measure.{u1} α m} {G₀ : Type.{u2}} [_inst_4 : GroupWithZero.{u2} G₀] [_inst_5 : MeasurableSpace.{u2} G₀] [_inst_6 : MeasurableInv.{u2} G₀ (DivInvMonoid.toHasInv.{u2} G₀ (GroupWithZero.toDivInvMonoid.{u2} G₀ _inst_4)) _inst_5] {f : α -> G₀}, Iff (AEMeasurable.{u1, u2} α G₀ _inst_5 m (fun (x : α) => Inv.inv.{u2} G₀ (DivInvMonoid.toHasInv.{u2} G₀ (GroupWithZero.toDivInvMonoid.{u2} G₀ _inst_4)) (f x)) μ) (AEMeasurable.{u1, u2} α G₀ _inst_5 m f μ)
+but is expected to have type
+ forall {α : Type.{u1}} {m : MeasurableSpace.{u1} α} {μ : MeasureTheory.Measure.{u1} α m} {G₀ : Type.{u2}} [_inst_4 : GroupWithZero.{u2} G₀] [_inst_5 : MeasurableSpace.{u2} G₀] [_inst_6 : MeasurableInv.{u2} G₀ (GroupWithZero.toInv.{u2} G₀ _inst_4) _inst_5] {f : α -> G₀}, Iff (AEMeasurable.{u1, u2} α G₀ _inst_5 m (fun (x : α) => Inv.inv.{u2} G₀ (GroupWithZero.toInv.{u2} G₀ _inst_4) (f x)) μ) (AEMeasurable.{u1, u2} α G₀ _inst_5 m f μ)
+Case conversion may be inaccurate. Consider using '#align ae_measurable_inv_iff₀ aemeasurable_inv_iff₀ₓ'. -/
@[simp]
-theorem aEMeasurable_inv_iff₀ {G₀ : Type _} [GroupWithZero G₀] [MeasurableSpace G₀]
- [HasMeasurableInv G₀] {f : α → G₀} : AEMeasurable (fun x => (f x)⁻¹) μ ↔ AEMeasurable f μ :=
+theorem aemeasurable_inv_iff₀ {G₀ : Type _} [GroupWithZero G₀] [MeasurableSpace G₀]
+ [MeasurableInv G₀] {f : α → G₀} : AEMeasurable (fun x => (f x)⁻¹) μ ↔ AEMeasurable f μ :=
⟨fun h => by simpa only [inv_inv] using h.inv, fun h => h.inv⟩
-#align ae_measurable_inv_iff₀ aEMeasurable_inv_iff₀
+#align ae_measurable_inv_iff₀ aemeasurable_inv_iff₀
omit m
+#print Pi.measurableInv /-
@[to_additive]
-instance Pi.hasMeasurableInv {ι : Type _} {α : ι → Type _} [∀ i, Inv (α i)]
- [∀ i, MeasurableSpace (α i)] [∀ i, HasMeasurableInv (α i)] : HasMeasurableInv (∀ i, α i) :=
+instance Pi.measurableInv {ι : Type _} {α : ι → Type _} [∀ i, Inv (α i)]
+ [∀ i, MeasurableSpace (α i)] [∀ i, MeasurableInv (α i)] : MeasurableInv (∀ i, α i) :=
⟨measurable_pi_iff.mpr fun i => (measurable_pi_apply i).inv⟩
-#align pi.has_measurable_inv Pi.hasMeasurableInv
-#align pi.has_measurable_neg Pi.has_measurable_neg
+#align pi.has_measurable_inv Pi.measurableInv
+#align pi.has_measurable_neg Pi.measurableNeg
+-/
+#print MeasurableSet.inv /-
@[to_additive]
theorem MeasurableSet.inv {s : Set G} (hs : MeasurableSet s) : MeasurableSet s⁻¹ :=
measurable_inv hs
#align measurable_set.inv MeasurableSet.inv
#align measurable_set.neg MeasurableSet.neg
+-/
end Inv
+/- warning: div_inv_monoid.has_measurable_zpow -> DivInvMonoid.measurableZpow is a dubious translation:
+lean 3 declaration is
+ forall (G : Type.{u1}) [_inst_1 : DivInvMonoid.{u1} G] [_inst_2 : MeasurableSpace.{u1} G] [_inst_3 : MeasurableMul₂.{u1} G _inst_2 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G _inst_1)))] [_inst_4 : MeasurableInv.{u1} G (DivInvMonoid.toHasInv.{u1} G _inst_1) _inst_2], MeasurablePow.{u1, 0} G Int _inst_2 Int.instMeasurableSpace (DivInvMonoid.Pow.{u1} G _inst_1)
+but is expected to have type
+ forall (G : Type.{u1}) [_inst_1 : DivInvMonoid.{u1} G] [_inst_2 : MeasurableSpace.{u1} G] [_inst_3 : MeasurableMul₂.{u1} G _inst_2 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G _inst_1)))] [_inst_4 : MeasurableInv.{u1} G (DivInvMonoid.toInv.{u1} G _inst_1) _inst_2], MeasurablePow.{u1, 0} G Int _inst_2 Int.instMeasurableSpace (DivInvMonoid.Pow.{u1} G _inst_1)
+Case conversion may be inaccurate. Consider using '#align div_inv_monoid.has_measurable_zpow DivInvMonoid.measurableZpowₓ'. -/
/-- `div_inv_monoid.has_pow` is measurable. -/
-instance DivInvMonoid.hasMeasurableZpow (G : Type u) [DivInvMonoid G] [MeasurableSpace G]
- [HasMeasurableMul₂ G] [HasMeasurableInv G] : HasMeasurablePow G ℤ :=
+instance DivInvMonoid.measurableZpow (G : Type u) [DivInvMonoid G] [MeasurableSpace G]
+ [MeasurableMul₂ G] [MeasurableInv G] : MeasurablePow G ℤ :=
⟨measurable_from_prod_countable fun n => by
cases' n with n n
· simp_rw [zpow_ofNat]
exact measurable_id.pow_const _
· simp_rw [zpow_negSucc]
exact (measurable_id.pow_const (n + 1)).inv⟩
-#align div_inv_monoid.has_measurable_zpow DivInvMonoid.hasMeasurableZpow
-
+#align div_inv_monoid.has_measurable_zpow DivInvMonoid.measurableZpow
+
+/- warning: has_measurable_div₂_of_mul_inv -> measurableDiv₂_of_mul_inv is a dubious translation:
+lean 3 declaration is
+ forall (G : Type.{u1}) [_inst_1 : MeasurableSpace.{u1} G] [_inst_2 : DivInvMonoid.{u1} G] [_inst_3 : MeasurableMul₂.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G _inst_2)))] [_inst_4 : MeasurableInv.{u1} G (DivInvMonoid.toHasInv.{u1} G _inst_2) _inst_1], MeasurableDiv₂.{u1} G _inst_1 (DivInvMonoid.toHasDiv.{u1} G _inst_2)
+but is expected to have type
+ forall (G : Type.{u1}) [_inst_1 : MeasurableSpace.{u1} G] [_inst_2 : DivInvMonoid.{u1} G] [_inst_3 : MeasurableMul₂.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G _inst_2)))] [_inst_4 : MeasurableInv.{u1} G (DivInvMonoid.toInv.{u1} G _inst_2) _inst_1], MeasurableDiv₂.{u1} G _inst_1 (DivInvMonoid.toDiv.{u1} G _inst_2)
+Case conversion may be inaccurate. Consider using '#align has_measurable_div₂_of_mul_inv measurableDiv₂_of_mul_invₓ'. -/
@[to_additive]
-instance (priority := 100) hasMeasurableDiv₂_of_mul_inv (G : Type _) [MeasurableSpace G]
- [DivInvMonoid G] [HasMeasurableMul₂ G] [HasMeasurableInv G] : HasMeasurableDiv₂ G :=
+instance (priority := 100) measurableDiv₂_of_mul_inv (G : Type _) [MeasurableSpace G]
+ [DivInvMonoid G] [MeasurableMul₂ G] [MeasurableInv G] : MeasurableDiv₂ G :=
⟨by
simp only [div_eq_mul_inv]
exact measurable_fst.mul measurable_snd.inv⟩
-#align has_measurable_div₂_of_mul_inv hasMeasurableDiv₂_of_mul_inv
-#align has_measurable_div₂_of_add_neg hasMeasurableDiv₂_of_add_neg
+#align has_measurable_div₂_of_mul_inv measurableDiv₂_of_mul_inv
+#align has_measurable_div₂_of_add_neg measurableDiv₂_of_add_neg
+#print MeasurableVAdd /-
/-- We say that the action of `M` on `α` `has_measurable_vadd` if for each `c` the map `x ↦ c +ᵥ x`
is a measurable function and for each `x` the map `c ↦ c +ᵥ x` is a measurable function. -/
-class HasMeasurableVadd (M α : Type _) [VAdd M α] [MeasurableSpace M] [MeasurableSpace α] :
- Prop where
+class MeasurableVAdd (M α : Type _) [VAdd M α] [MeasurableSpace M] [MeasurableSpace α] : Prop where
measurable_const_vadd : ∀ c : M, Measurable ((· +ᵥ ·) c : α → α)
measurable_vadd_const : ∀ x : α, Measurable fun c : M => c +ᵥ x
-#align has_measurable_vadd HasMeasurableVadd
+#align has_measurable_vadd MeasurableVAdd
+-/
+#print MeasurableSMul /-
/-- We say that the action of `M` on `α` `has_measurable_smul` if for each `c` the map `x ↦ c • x`
is a measurable function and for each `x` the map `c ↦ c • x` is a measurable function. -/
@[to_additive]
-class HasMeasurableSmul (M α : Type _) [SMul M α] [MeasurableSpace M] [MeasurableSpace α] :
- Prop where
+class MeasurableSMul (M α : Type _) [SMul M α] [MeasurableSpace M] [MeasurableSpace α] : Prop where
measurable_const_smul : ∀ c : M, Measurable ((· • ·) c : α → α)
measurable_smul_const : ∀ x : α, Measurable fun c : M => c • x
-#align has_measurable_smul HasMeasurableSmul
-#align has_measurable_vadd HasMeasurableVadd
+#align has_measurable_smul MeasurableSMul
+#align has_measurable_vadd MeasurableVAdd
+-/
+#print MeasurableVAdd₂ /-
/-- We say that the action of `M` on `α` `has_measurable_vadd₂` if the map
`(c, x) ↦ c +ᵥ x` is a measurable function. -/
-class HasMeasurableVadd₂ (M α : Type _) [VAdd M α] [MeasurableSpace M] [MeasurableSpace α] :
- Prop where
+class MeasurableVAdd₂ (M α : Type _) [VAdd M α] [MeasurableSpace M] [MeasurableSpace α] : Prop where
measurable_vadd : Measurable (Function.uncurry (· +ᵥ ·) : M × α → α)
-#align has_measurable_vadd₂ HasMeasurableVadd₂
+#align has_measurable_vadd₂ MeasurableVAdd₂
+-/
+#print MeasurableSMul₂ /-
/-- We say that the action of `M` on `α` `has_measurable_smul₂` if the map
`(c, x) ↦ c • x` is a measurable function. -/
-@[to_additive HasMeasurableVadd₂]
-class HasMeasurableSmul₂ (M α : Type _) [SMul M α] [MeasurableSpace M] [MeasurableSpace α] :
- Prop where
+@[to_additive MeasurableVAdd₂]
+class MeasurableSMul₂ (M α : Type _) [SMul M α] [MeasurableSpace M] [MeasurableSpace α] : Prop where
measurable_smul : Measurable (Function.uncurry (· • ·) : M × α → α)
-#align has_measurable_smul₂ HasMeasurableSmul₂
-#align has_measurable_vadd₂ HasMeasurableVadd₂
+#align has_measurable_smul₂ MeasurableSMul₂
+#align has_measurable_vadd₂ MeasurableVAdd₂
+-/
-export HasMeasurableSmul (measurable_const_smul measurable_smul_const)
+export MeasurableSMul (measurable_const_smul measurable_smul_const)
-export HasMeasurableSmul₂ (measurable_smul)
+export MeasurableSMul₂ (measurable_smul)
-export HasMeasurableVadd (measurable_const_vadd measurable_vadd_const)
+export MeasurableVAdd (measurable_const_vadd measurable_vadd_const)
-export HasMeasurableVadd₂ (measurable_vadd)
+export MeasurableVAdd₂ (measurable_vadd)
+#print measurableSMul_of_mul /-
@[to_additive]
-instance hasMeasurableSmul_of_mul (M : Type _) [Mul M] [MeasurableSpace M] [HasMeasurableMul M] :
- HasMeasurableSmul M M :=
+instance measurableSMul_of_mul (M : Type _) [Mul M] [MeasurableSpace M] [MeasurableMul M] :
+ MeasurableSMul M M :=
⟨measurable_id.const_mul, measurable_id.mul_const⟩
-#align has_measurable_smul_of_mul hasMeasurableSmul_of_mul
-#align has_measurable_vadd_of_add has_measurable_vadd_of_add
+#align has_measurable_smul_of_mul measurableSMul_of_mul
+#align has_measurable_vadd_of_add measurableVAdd_of_add
+-/
+#print measurableSMul₂_of_mul /-
@[to_additive]
-instance hasMeasurableSmul₂_of_mul (M : Type _) [Mul M] [MeasurableSpace M] [HasMeasurableMul₂ M] :
- HasMeasurableSmul₂ M M :=
+instance measurableSMul₂_of_mul (M : Type _) [Mul M] [MeasurableSpace M] [MeasurableMul₂ M] :
+ MeasurableSMul₂ M M :=
⟨measurable_mul⟩
-#align has_measurable_smul₂_of_mul hasMeasurableSmul₂_of_mul
-#align has_measurable_smul₂_of_add hasMeasurableSmul₂_of_add
+#align has_measurable_smul₂_of_mul measurableSMul₂_of_mul
+#align has_measurable_smul₂_of_add measurableSMul₂_of_add
+-/
+/- warning: submonoid.has_measurable_smul -> Submonoid.measurableSMul is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {α : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} M] [_inst_2 : MeasurableSpace.{u2} α] [_inst_3 : Monoid.{u1} M] [_inst_4 : MulAction.{u1, u2} M α _inst_3] [_inst_5 : MeasurableSMul.{u1, u2} M α (MulAction.toHasSmul.{u1, u2} M α _inst_3 _inst_4) _inst_1 _inst_2] (s : Submonoid.{u1} M (Monoid.toMulOneClass.{u1} M _inst_3)), MeasurableSMul.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} M (Monoid.toMulOneClass.{u1} M _inst_3)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} M (Monoid.toMulOneClass.{u1} M _inst_3)) M (Submonoid.setLike.{u1} M (Monoid.toMulOneClass.{u1} M _inst_3))) s) α (Submonoid.hasSmul.{u1, u2} M α (Monoid.toMulOneClass.{u1} M _inst_3) (MulAction.toHasSmul.{u1, u2} M α _inst_3 _inst_4) s) (Subtype.instMeasurableSpace.{u1} M (fun (x : M) => Membership.Mem.{u1, u1} M (Submonoid.{u1} M (Monoid.toMulOneClass.{u1} M _inst_3)) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} M (Monoid.toMulOneClass.{u1} M _inst_3)) M (Submonoid.setLike.{u1} M (Monoid.toMulOneClass.{u1} M _inst_3))) x s) _inst_1) _inst_2
+but is expected to have type
+ forall {M : Type.{u1}} {α : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} M] [_inst_2 : MeasurableSpace.{u2} α] [_inst_3 : Monoid.{u1} M] [_inst_4 : MulAction.{u1, u2} M α _inst_3] [_inst_5 : MeasurableSMul.{u1, u2} M α (MulAction.toSMul.{u1, u2} M α _inst_3 _inst_4) _inst_1 _inst_2] (s : Submonoid.{u1} M (Monoid.toMulOneClass.{u1} M _inst_3)), MeasurableSMul.{u1, u2} (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submonoid.{u1} M (Monoid.toMulOneClass.{u1} M _inst_3)) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} M (Monoid.toMulOneClass.{u1} M _inst_3)) M (Submonoid.instSetLikeSubmonoid.{u1} M (Monoid.toMulOneClass.{u1} M _inst_3))) x s)) α (Submonoid.smul.{u1, u2} M α (Monoid.toMulOneClass.{u1} M _inst_3) (MulAction.toSMul.{u1, u2} M α _inst_3 _inst_4) s) (Subtype.instMeasurableSpace.{u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submonoid.{u1} M (Monoid.toMulOneClass.{u1} M _inst_3)) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} M (Monoid.toMulOneClass.{u1} M _inst_3)) M (Submonoid.instSetLikeSubmonoid.{u1} M (Monoid.toMulOneClass.{u1} M _inst_3))) x s) _inst_1) _inst_2
+Case conversion may be inaccurate. Consider using '#align submonoid.has_measurable_smul Submonoid.measurableSMulₓ'. -/
@[to_additive]
-instance Submonoid.hasMeasurableSmul {M α} [MeasurableSpace M] [MeasurableSpace α] [Monoid M]
- [MulAction M α] [HasMeasurableSmul M α] (s : Submonoid M) : HasMeasurableSmul s α :=
+instance Submonoid.measurableSMul {M α} [MeasurableSpace M] [MeasurableSpace α] [Monoid M]
+ [MulAction M α] [MeasurableSMul M α] (s : Submonoid M) : MeasurableSMul s α :=
⟨fun c => by simpa only using measurable_const_smul (c : M), fun x =>
(measurable_smul_const x : Measurable fun c : M => c • x).comp measurable_subtype_coe⟩
-#align submonoid.has_measurable_smul Submonoid.hasMeasurableSmul
-#align add_submonoid.has_measurable_vadd AddSubmonoid.has_measurable_vadd
-
+#align submonoid.has_measurable_smul Submonoid.measurableSMul
+#align add_submonoid.has_measurable_vadd AddSubmonoid.measurableVAdd
+
+/- warning: subgroup.has_measurable_smul -> Subgroup.measurableSMul is a dubious translation:
+lean 3 declaration is
+ forall {G : Type.{u1}} {α : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} G] [_inst_2 : MeasurableSpace.{u2} α] [_inst_3 : Group.{u1} G] [_inst_4 : MulAction.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_3))] [_inst_5 : MeasurableSMul.{u1, u2} G α (MulAction.toHasSmul.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_3)) _inst_4) _inst_1 _inst_2] (s : Subgroup.{u1} G _inst_3), MeasurableSMul.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_3) G (Subgroup.setLike.{u1} G _inst_3)) s) α (MulAction.toHasSmul.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_3) G (Subgroup.setLike.{u1} G _inst_3)) s) α (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_3) G (Subgroup.setLike.{u1} G _inst_3)) s) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_3) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_3) G (Subgroup.setLike.{u1} G _inst_3)) s) (Subgroup.toGroup.{u1} G _inst_3 s))) (Subgroup.mulAction.{u1, u2} G _inst_3 α _inst_4 s)) (Subtype.instMeasurableSpace.{u1} G (fun (x : G) => Membership.Mem.{u1, u1} G (Subgroup.{u1} G _inst_3) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} G _inst_3) G (Subgroup.setLike.{u1} G _inst_3)) x s) _inst_1) _inst_2
+but is expected to have type
+ forall {G : Type.{u1}} {α : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} G] [_inst_2 : MeasurableSpace.{u2} α] [_inst_3 : Group.{u1} G] [_inst_4 : MulAction.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_3))] [_inst_5 : MeasurableSMul.{u1, u2} G α (MulAction.toSMul.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_3)) _inst_4) _inst_1 _inst_2] (s : Subgroup.{u1} G _inst_3), MeasurableSMul.{u1, u2} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_3) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_3)) x s)) α (Submonoid.smul.{u1, u2} G α (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_3))) (MulAction.toSMul.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_3)) _inst_4) (Subgroup.toSubmonoid.{u1} G _inst_3 s)) (Subtype.instMeasurableSpace.{u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_3) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_3) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_3)) x s) _inst_1) _inst_2
+Case conversion may be inaccurate. Consider using '#align subgroup.has_measurable_smul Subgroup.measurableSMulₓ'. -/
@[to_additive]
-instance Subgroup.hasMeasurableSmul {G α} [MeasurableSpace G] [MeasurableSpace α] [Group G]
- [MulAction G α] [HasMeasurableSmul G α] (s : Subgroup G) : HasMeasurableSmul s α :=
- s.toSubmonoid.HasMeasurableSmul
-#align subgroup.has_measurable_smul Subgroup.hasMeasurableSmul
-#align add_subgroup.has_measurable_vadd AddSubgroup.has_measurable_vadd
+instance Subgroup.measurableSMul {G α} [MeasurableSpace G] [MeasurableSpace α] [Group G]
+ [MulAction G α] [MeasurableSMul G α] (s : Subgroup G) : MeasurableSMul s α :=
+ s.toSubmonoid.MeasurableSMul
+#align subgroup.has_measurable_smul Subgroup.measurableSMul
+#align add_subgroup.has_measurable_vadd AddSubgroup.measurableVAdd
section Smul
@@ -630,85 +892,126 @@ variable {M β α : Type _} [MeasurableSpace M] [MeasurableSpace β] [SMul M β]
include m
+/- warning: measurable.smul -> Measurable.smul is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {β : Type.{u2}} {α : Type.{u3}} [_inst_1 : MeasurableSpace.{u1} M] [_inst_2 : MeasurableSpace.{u2} β] [_inst_3 : SMul.{u1, u2} M β] {m : MeasurableSpace.{u3} α} {f : α -> M} {g : α -> β} [_inst_4 : MeasurableSMul₂.{u1, u2} M β _inst_3 _inst_1 _inst_2], (Measurable.{u3, u1} α M m _inst_1 f) -> (Measurable.{u3, u2} α β m _inst_2 g) -> (Measurable.{u3, u2} α β m _inst_2 (fun (x : α) => SMul.smul.{u1, u2} M β _inst_3 (f x) (g x)))
+but is expected to have type
+ forall {M : Type.{u3}} {β : Type.{u2}} {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u3} M] [_inst_2 : MeasurableSpace.{u2} β] [_inst_3 : SMul.{u3, u2} M β] {m : MeasurableSpace.{u1} α} {f : α -> M} {g : α -> β} [_inst_4 : MeasurableSMul₂.{u3, u2} M β _inst_3 _inst_1 _inst_2], (Measurable.{u1, u3} α M m _inst_1 f) -> (Measurable.{u1, u2} α β m _inst_2 g) -> (Measurable.{u1, u2} α β m _inst_2 (fun (x : α) => HSMul.hSMul.{u3, u2, u2} M β β (instHSMul.{u3, u2} M β _inst_3) (f x) (g x)))
+Case conversion may be inaccurate. Consider using '#align measurable.smul Measurable.smulₓ'. -/
@[measurability, to_additive]
-theorem Measurable.smul [HasMeasurableSmul₂ M β] (hf : Measurable f) (hg : Measurable g) :
+theorem Measurable.smul [MeasurableSMul₂ M β] (hf : Measurable f) (hg : Measurable g) :
Measurable fun x => f x • g x :=
measurable_smul.comp (hf.prod_mk hg)
#align measurable.smul Measurable.smul
#align measurable.vadd Measurable.vadd
+/- warning: ae_measurable.smul -> AEMeasurable.smul is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {β : Type.{u2}} {α : Type.{u3}} [_inst_1 : MeasurableSpace.{u1} M] [_inst_2 : MeasurableSpace.{u2} β] [_inst_3 : SMul.{u1, u2} M β] {m : MeasurableSpace.{u3} α} {f : α -> M} {g : α -> β} [_inst_4 : MeasurableSMul₂.{u1, u2} M β _inst_3 _inst_1 _inst_2] {μ : MeasureTheory.Measure.{u3} α m}, (AEMeasurable.{u3, u1} α M _inst_1 m f μ) -> (AEMeasurable.{u3, u2} α β _inst_2 m g μ) -> (AEMeasurable.{u3, u2} α β _inst_2 m (fun (x : α) => SMul.smul.{u1, u2} M β _inst_3 (f x) (g x)) μ)
+but is expected to have type
+ forall {M : Type.{u3}} {β : Type.{u2}} {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u3} M] [_inst_2 : MeasurableSpace.{u2} β] [_inst_3 : SMul.{u3, u2} M β] {m : MeasurableSpace.{u1} α} {f : α -> M} {g : α -> β} [_inst_4 : MeasurableSMul₂.{u3, u2} M β _inst_3 _inst_1 _inst_2] {μ : MeasureTheory.Measure.{u1} α m}, (AEMeasurable.{u1, u3} α M _inst_1 m f μ) -> (AEMeasurable.{u1, u2} α β _inst_2 m g μ) -> (AEMeasurable.{u1, u2} α β _inst_2 m (fun (x : α) => HSMul.hSMul.{u3, u2, u2} M β β (instHSMul.{u3, u2} M β _inst_3) (f x) (g x)) μ)
+Case conversion may be inaccurate. Consider using '#align ae_measurable.smul AEMeasurable.smulₓ'. -/
@[measurability, to_additive]
-theorem AEMeasurable.smul [HasMeasurableSmul₂ M β] {μ : Measure α} (hf : AEMeasurable f μ)
+theorem AEMeasurable.smul [MeasurableSMul₂ M β] {μ : Measure α} (hf : AEMeasurable f μ)
(hg : AEMeasurable g μ) : AEMeasurable (fun x => f x • g x) μ :=
- HasMeasurableSmul₂.measurable_smul.comp_aemeasurable (hf.prod_mk hg)
+ MeasurableSMul₂.measurable_smul.comp_aemeasurable (hf.prod_mk hg)
#align ae_measurable.smul AEMeasurable.smul
#align ae_measurable.vadd AEMeasurable.vadd
omit m
+#print MeasurableSMul₂.toMeasurableSMul /-
@[to_additive]
-instance (priority := 100) HasMeasurableSmul₂.to_hasMeasurableSmul [HasMeasurableSmul₂ M β] :
- HasMeasurableSmul M β :=
+instance (priority := 100) MeasurableSMul₂.toMeasurableSMul [MeasurableSMul₂ M β] :
+ MeasurableSMul M β :=
⟨fun c => measurable_const.smul measurable_id, fun y => measurable_id.smul measurable_const⟩
-#align has_measurable_smul₂.to_has_measurable_smul HasMeasurableSmul₂.to_hasMeasurableSmul
-#align has_measurable_vadd₂.to_has_measurable_vadd HasMeasurableVadd₂.to_has_measurable_vadd
+#align has_measurable_smul₂.to_has_measurable_smul MeasurableSMul₂.toMeasurableSMul
+#align has_measurable_vadd₂.to_has_measurable_vadd MeasurableVAdd₂.toMeasurableVAdd
+-/
include m
-variable [HasMeasurableSmul M β] {μ : Measure α}
+variable [MeasurableSMul M β] {μ : Measure α}
+/- warning: measurable.smul_const -> Measurable.smul_const is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {β : Type.{u2}} {α : Type.{u3}} [_inst_1 : MeasurableSpace.{u1} M] [_inst_2 : MeasurableSpace.{u2} β] [_inst_3 : SMul.{u1, u2} M β] {m : MeasurableSpace.{u3} α} {f : α -> M} [_inst_4 : MeasurableSMul.{u1, u2} M β _inst_3 _inst_1 _inst_2], (Measurable.{u3, u1} α M m _inst_1 f) -> (forall (y : β), Measurable.{u3, u2} α β m _inst_2 (fun (x : α) => SMul.smul.{u1, u2} M β _inst_3 (f x) y))
+but is expected to have type
+ forall {M : Type.{u2}} {β : Type.{u1}} {α : Type.{u3}} [_inst_1 : MeasurableSpace.{u2} M] [_inst_2 : MeasurableSpace.{u1} β] [_inst_3 : SMul.{u2, u1} M β] {m : MeasurableSpace.{u3} α} {f : α -> M} [_inst_4 : MeasurableSMul.{u2, u1} M β _inst_3 _inst_1 _inst_2], (Measurable.{u3, u2} α M m _inst_1 f) -> (forall (y : β), Measurable.{u3, u1} α β m _inst_2 (fun (x : α) => HSMul.hSMul.{u2, u1, u1} M β β (instHSMul.{u2, u1} M β _inst_3) (f x) y))
+Case conversion may be inaccurate. Consider using '#align measurable.smul_const Measurable.smul_constₓ'. -/
@[measurability, to_additive]
theorem Measurable.smul_const (hf : Measurable f) (y : β) : Measurable fun x => f x • y :=
- (HasMeasurableSmul.measurable_smul_const y).comp hf
+ (MeasurableSMul.measurable_smul_const y).comp hf
#align measurable.smul_const Measurable.smul_const
#align measurable.vadd_const Measurable.vadd_const
+/- warning: ae_measurable.smul_const -> AEMeasurable.smul_const is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {β : Type.{u2}} {α : Type.{u3}} [_inst_1 : MeasurableSpace.{u1} M] [_inst_2 : MeasurableSpace.{u2} β] [_inst_3 : SMul.{u1, u2} M β] {m : MeasurableSpace.{u3} α} {f : α -> M} [_inst_4 : MeasurableSMul.{u1, u2} M β _inst_3 _inst_1 _inst_2] {μ : MeasureTheory.Measure.{u3} α m}, (AEMeasurable.{u3, u1} α M _inst_1 m f μ) -> (forall (y : β), AEMeasurable.{u3, u2} α β _inst_2 m (fun (x : α) => SMul.smul.{u1, u2} M β _inst_3 (f x) y) μ)
+but is expected to have type
+ forall {M : Type.{u2}} {β : Type.{u1}} {α : Type.{u3}} [_inst_1 : MeasurableSpace.{u2} M] [_inst_2 : MeasurableSpace.{u1} β] [_inst_3 : SMul.{u2, u1} M β] {m : MeasurableSpace.{u3} α} {f : α -> M} [_inst_4 : MeasurableSMul.{u2, u1} M β _inst_3 _inst_1 _inst_2] {μ : MeasureTheory.Measure.{u3} α m}, (AEMeasurable.{u3, u2} α M _inst_1 m f μ) -> (forall (y : β), AEMeasurable.{u3, u1} α β _inst_2 m (fun (x : α) => HSMul.hSMul.{u2, u1, u1} M β β (instHSMul.{u2, u1} M β _inst_3) (f x) y) μ)
+Case conversion may be inaccurate. Consider using '#align ae_measurable.smul_const AEMeasurable.smul_constₓ'. -/
@[measurability, to_additive]
theorem AEMeasurable.smul_const (hf : AEMeasurable f μ) (y : β) :
AEMeasurable (fun x => f x • y) μ :=
- (HasMeasurableSmul.measurable_smul_const y).comp_aemeasurable hf
+ (MeasurableSMul.measurable_smul_const y).comp_aemeasurable hf
#align ae_measurable.smul_const AEMeasurable.smul_const
#align ae_measurable.vadd_const AEMeasurable.vadd_const
+#print Measurable.const_smul' /-
@[measurability, to_additive]
theorem Measurable.const_smul' (hg : Measurable g) (c : M) : Measurable fun x => c • g x :=
- (HasMeasurableSmul.measurable_const_smul c).comp hg
+ (MeasurableSMul.measurable_const_smul c).comp hg
#align measurable.const_smul' Measurable.const_smul'
#align measurable.const_vadd' Measurable.const_vadd'
+-/
+#print Measurable.const_smul /-
@[measurability, to_additive]
theorem Measurable.const_smul (hg : Measurable g) (c : M) : Measurable (c • g) :=
hg.const_smul' c
#align measurable.const_smul Measurable.const_smul
#align measurable.const_vadd Measurable.const_vadd
+-/
+#print AEMeasurable.const_smul' /-
@[measurability, to_additive]
theorem AEMeasurable.const_smul' (hg : AEMeasurable g μ) (c : M) :
AEMeasurable (fun x => c • g x) μ :=
- (HasMeasurableSmul.measurable_const_smul c).comp_aemeasurable hg
+ (MeasurableSMul.measurable_const_smul c).comp_aemeasurable hg
#align ae_measurable.const_smul' AEMeasurable.const_smul'
#align ae_measurable.const_vadd' AEMeasurable.const_vadd'
+-/
+#print AEMeasurable.const_smul /-
@[measurability, to_additive]
theorem AEMeasurable.const_smul (hf : AEMeasurable g μ) (c : M) : AEMeasurable (c • g) μ :=
hf.const_smul' c
#align ae_measurable.const_smul AEMeasurable.const_smul
#align ae_measurable.const_vadd AEMeasurable.const_vadd
+-/
omit m
+#print Pi.measurableSMul /-
@[to_additive]
-instance Pi.hasMeasurableSmul {ι : Type _} {α : ι → Type _} [∀ i, SMul M (α i)]
- [∀ i, MeasurableSpace (α i)] [∀ i, HasMeasurableSmul M (α i)] :
- HasMeasurableSmul M (∀ i, α i) :=
+instance Pi.measurableSMul {ι : Type _} {α : ι → Type _} [∀ i, SMul M (α i)]
+ [∀ i, MeasurableSpace (α i)] [∀ i, MeasurableSMul M (α i)] : MeasurableSMul M (∀ i, α i) :=
⟨fun g => measurable_pi_iff.mpr fun i => (measurable_pi_apply i).const_smul _, fun g =>
measurable_pi_iff.mpr fun i => measurable_smul_const _⟩
-#align pi.has_measurable_smul Pi.hasMeasurableSmul
-#align pi.has_measurable_vadd Pi.has_measurable_vadd
+#align pi.has_measurable_smul Pi.measurableSMul
+#align pi.has_measurable_vadd Pi.measurableVAdd
+-/
+/- warning: add_monoid.has_measurable_smul_nat₂ -> AddMonoid.measurableSMul_nat₂ is a dubious translation:
+lean 3 declaration is
+ forall (M : Type.{u1}) [_inst_5 : AddMonoid.{u1} M] [_inst_6 : MeasurableSpace.{u1} M] [_inst_7 : MeasurableAdd₂.{u1} M _inst_6 (AddZeroClass.toHasAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M _inst_5))], MeasurableSMul₂.{0, u1} Nat M (AddMonoid.SMul.{u1} M _inst_5) Nat.instMeasurableSpace _inst_6
+but is expected to have type
+ forall (M : Type.{u1}) [_inst_5 : AddMonoid.{u1} M] [_inst_6 : MeasurableSpace.{u1} M] [_inst_7 : MeasurableAdd₂.{u1} M _inst_6 (AddZeroClass.toAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M _inst_5))], MeasurableSMul₂.{0, u1} Nat M (AddMonoid.SMul.{u1} M _inst_5) Nat.instMeasurableSpace _inst_6
+Case conversion may be inaccurate. Consider using '#align add_monoid.has_measurable_smul_nat₂ AddMonoid.measurableSMul_nat₂ₓ'. -/
/-- `add_monoid.has_smul_nat` is measurable. -/
-instance AddMonoid.has_measurable_smul_nat₂ (M : Type _) [AddMonoid M] [MeasurableSpace M]
- [HasMeasurableAdd₂ M] : HasMeasurableSmul₂ ℕ M :=
+instance AddMonoid.measurableSMul_nat₂ (M : Type _) [AddMonoid M] [MeasurableSpace M]
+ [MeasurableAdd₂ M] : MeasurableSMul₂ ℕ M :=
⟨by
suffices Measurable fun p : M × ℕ => p.2 • p.1 by apply this.comp measurable_swap
refine' measurable_from_prod_countable fun n => _
@@ -716,11 +1019,17 @@ instance AddMonoid.has_measurable_smul_nat₂ (M : Type _) [AddMonoid M] [Measur
· simp only [zero_smul, ← Pi.zero_def, measurable_zero]
· simp only [succ_nsmul]
exact measurable_id.add ih⟩
-#align add_monoid.has_measurable_smul_nat₂ AddMonoid.has_measurable_smul_nat₂
-
+#align add_monoid.has_measurable_smul_nat₂ AddMonoid.measurableSMul_nat₂
+
+/- warning: sub_neg_monoid.has_measurable_smul_int₂ -> SubNegMonoid.measurableSMul_int₂ is a dubious translation:
+lean 3 declaration is
+ forall (M : Type.{u1}) [_inst_5 : SubNegMonoid.{u1} M] [_inst_6 : MeasurableSpace.{u1} M] [_inst_7 : MeasurableAdd₂.{u1} M _inst_6 (AddZeroClass.toHasAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M _inst_5)))] [_inst_8 : MeasurableNeg.{u1} M (SubNegMonoid.toHasNeg.{u1} M _inst_5) _inst_6], MeasurableSMul₂.{0, u1} Int M (SubNegMonoid.SMulInt.{u1} M _inst_5) Int.instMeasurableSpace _inst_6
+but is expected to have type
+ forall (M : Type.{u1}) [_inst_5 : SubNegMonoid.{u1} M] [_inst_6 : MeasurableSpace.{u1} M] [_inst_7 : MeasurableAdd₂.{u1} M _inst_6 (AddZeroClass.toAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M _inst_5)))] [_inst_8 : MeasurableNeg.{u1} M (SubNegMonoid.toNeg.{u1} M _inst_5) _inst_6], MeasurableSMul₂.{0, u1} Int M (SubNegMonoid.SMulInt.{u1} M _inst_5) Int.instMeasurableSpace _inst_6
+Case conversion may be inaccurate. Consider using '#align sub_neg_monoid.has_measurable_smul_int₂ SubNegMonoid.measurableSMul_int₂ₓ'. -/
/-- `sub_neg_monoid.has_smul_int` is measurable. -/
-instance SubNegMonoid.has_measurable_smul_int₂ (M : Type _) [SubNegMonoid M] [MeasurableSpace M]
- [HasMeasurableAdd₂ M] [HasMeasurableNeg M] : HasMeasurableSmul₂ ℤ M :=
+instance SubNegMonoid.measurableSMul_int₂ (M : Type _) [SubNegMonoid M] [MeasurableSpace M]
+ [MeasurableAdd₂ M] [MeasurableNeg M] : MeasurableSMul₂ ℤ M :=
⟨by
suffices Measurable fun p : M × ℤ => p.2 • p.1 by apply this.comp measurable_swap
refine' measurable_from_prod_countable fun n => _
@@ -729,43 +1038,63 @@ instance SubNegMonoid.has_measurable_smul_int₂ (M : Type _) [SubNegMonoid M] [
exact measurable_const_smul _
· simp only [negSucc_zsmul]
exact (measurable_const_smul _).neg⟩
-#align sub_neg_monoid.has_measurable_smul_int₂ SubNegMonoid.has_measurable_smul_int₂
+#align sub_neg_monoid.has_measurable_smul_int₂ SubNegMonoid.measurableSMul_int₂
end Smul
section MulAction
variable {M β α : Type _} [MeasurableSpace M] [MeasurableSpace β] [Monoid M] [MulAction M β]
- [HasMeasurableSmul M β] [MeasurableSpace α] {f : α → β} {μ : Measure α}
+ [MeasurableSMul M β] [MeasurableSpace α] {f : α → β} {μ : Measure α}
-variable {G : Type _} [Group G] [MeasurableSpace G] [MulAction G β] [HasMeasurableSmul G β]
+variable {G : Type _} [Group G] [MeasurableSpace G] [MulAction G β] [MeasurableSMul G β]
+/- warning: measurable_const_smul_iff -> measurable_const_smul_iff is a dubious translation:
+lean 3 declaration is
+ forall {β : Type.{u1}} {α : Type.{u2}} [_inst_2 : MeasurableSpace.{u1} β] [_inst_6 : MeasurableSpace.{u2} α] {f : α -> β} {G : Type.{u3}} [_inst_7 : Group.{u3} G] [_inst_8 : MeasurableSpace.{u3} G] [_inst_9 : MulAction.{u3, u1} G β (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_7))] [_inst_10 : MeasurableSMul.{u3, u1} G β (MulAction.toHasSmul.{u3, u1} G β (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_7)) _inst_9) _inst_8 _inst_2] (c : G), Iff (Measurable.{u2, u1} α β _inst_6 _inst_2 (fun (x : α) => SMul.smul.{u3, u1} G β (MulAction.toHasSmul.{u3, u1} G β (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_7)) _inst_9) c (f x))) (Measurable.{u2, u1} α β _inst_6 _inst_2 f)
+but is expected to have type
+ forall {β : Type.{u2}} {α : Type.{u3}} [_inst_2 : MeasurableSpace.{u2} β] [_inst_6 : MeasurableSpace.{u3} α] {f : α -> β} {G : Type.{u1}} [_inst_7 : Group.{u1} G] [_inst_8 : MeasurableSpace.{u1} G] [_inst_9 : MulAction.{u1, u2} G β (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_7))] [_inst_10 : MeasurableSMul.{u1, u2} G β (MulAction.toSMul.{u1, u2} G β (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_7)) _inst_9) _inst_8 _inst_2] (c : G), Iff (Measurable.{u3, u2} α β _inst_6 _inst_2 (fun (x : α) => HSMul.hSMul.{u1, u2, u2} G β β (instHSMul.{u1, u2} G β (MulAction.toSMul.{u1, u2} G β (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_7)) _inst_9)) c (f x))) (Measurable.{u3, u2} α β _inst_6 _inst_2 f)
+Case conversion may be inaccurate. Consider using '#align measurable_const_smul_iff measurable_const_smul_iffₓ'. -/
@[to_additive]
theorem measurable_const_smul_iff (c : G) : (Measurable fun x => c • f x) ↔ Measurable f :=
⟨fun h => by simpa only [inv_smul_smul] using h.const_smul' c⁻¹, fun h => h.const_smul c⟩
#align measurable_const_smul_iff measurable_const_smul_iff
#align measurable_const_vadd_iff measurable_const_vadd_iff
+/- warning: ae_measurable_const_smul_iff -> aemeasurable_const_smul_iff is a dubious translation:
+lean 3 declaration is
+ forall {β : Type.{u1}} {α : Type.{u2}} [_inst_2 : MeasurableSpace.{u1} β] [_inst_6 : MeasurableSpace.{u2} α] {f : α -> β} {μ : MeasureTheory.Measure.{u2} α _inst_6} {G : Type.{u3}} [_inst_7 : Group.{u3} G] [_inst_8 : MeasurableSpace.{u3} G] [_inst_9 : MulAction.{u3, u1} G β (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_7))] [_inst_10 : MeasurableSMul.{u3, u1} G β (MulAction.toHasSmul.{u3, u1} G β (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_7)) _inst_9) _inst_8 _inst_2] (c : G), Iff (AEMeasurable.{u2, u1} α β _inst_2 _inst_6 (fun (x : α) => SMul.smul.{u3, u1} G β (MulAction.toHasSmul.{u3, u1} G β (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_7)) _inst_9) c (f x)) μ) (AEMeasurable.{u2, u1} α β _inst_2 _inst_6 f μ)
+but is expected to have type
+ forall {β : Type.{u2}} {α : Type.{u3}} [_inst_2 : MeasurableSpace.{u2} β] [_inst_6 : MeasurableSpace.{u3} α] {f : α -> β} {μ : MeasureTheory.Measure.{u3} α _inst_6} {G : Type.{u1}} [_inst_7 : Group.{u1} G] [_inst_8 : MeasurableSpace.{u1} G] [_inst_9 : MulAction.{u1, u2} G β (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_7))] [_inst_10 : MeasurableSMul.{u1, u2} G β (MulAction.toSMul.{u1, u2} G β (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_7)) _inst_9) _inst_8 _inst_2] (c : G), Iff (AEMeasurable.{u3, u2} α β _inst_2 _inst_6 (fun (x : α) => HSMul.hSMul.{u1, u2, u2} G β β (instHSMul.{u1, u2} G β (MulAction.toSMul.{u1, u2} G β (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_7)) _inst_9)) c (f x)) μ) (AEMeasurable.{u3, u2} α β _inst_2 _inst_6 f μ)
+Case conversion may be inaccurate. Consider using '#align ae_measurable_const_smul_iff aemeasurable_const_smul_iffₓ'. -/
@[to_additive]
-theorem aEMeasurable_const_smul_iff (c : G) :
+theorem aemeasurable_const_smul_iff (c : G) :
AEMeasurable (fun x => c • f x) μ ↔ AEMeasurable f μ :=
⟨fun h => by simpa only [inv_smul_smul] using h.const_smul' c⁻¹, fun h => h.const_smul c⟩
-#align ae_measurable_const_smul_iff aEMeasurable_const_smul_iff
-#align ae_measurable_const_vadd_iff aEMeasurable_const_vadd_iff
+#align ae_measurable_const_smul_iff aemeasurable_const_smul_iff
+#align ae_measurable_const_vadd_iff aemeasurable_const_vadd_iff
@[to_additive]
instance : MeasurableSpace Mˣ :=
MeasurableSpace.comap (coe : Mˣ → M) ‹_›
+#print Units.measurableSMul /-
@[to_additive]
-instance Units.hasMeasurableSmul : HasMeasurableSmul Mˣ β
+instance Units.measurableSMul : MeasurableSMul Mˣ β
where
measurable_const_smul c := (measurable_const_smul (c : M) : _)
measurable_smul_const x :=
(measurable_smul_const x : Measurable fun c : M => c • x).comp MeasurableSpace.le_map_comap
-#align units.has_measurable_smul Units.hasMeasurableSmul
-#align add_units.has_measurable_vadd AddUnits.has_measurable_vadd
+#align units.has_measurable_smul Units.measurableSMul
+#align add_units.has_measurable_vadd AddUnits.measurableVAdd
+-/
+/- warning: is_unit.measurable_const_smul_iff -> IsUnit.measurable_const_smul_iff is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {β : Type.{u2}} {α : Type.{u3}} [_inst_1 : MeasurableSpace.{u1} M] [_inst_2 : MeasurableSpace.{u2} β] [_inst_3 : Monoid.{u1} M] [_inst_4 : MulAction.{u1, u2} M β _inst_3] [_inst_5 : MeasurableSMul.{u1, u2} M β (MulAction.toHasSmul.{u1, u2} M β _inst_3 _inst_4) _inst_1 _inst_2] [_inst_6 : MeasurableSpace.{u3} α] {f : α -> β} {c : M}, (IsUnit.{u1} M _inst_3 c) -> (Iff (Measurable.{u3, u2} α β _inst_6 _inst_2 (fun (x : α) => SMul.smul.{u1, u2} M β (MulAction.toHasSmul.{u1, u2} M β _inst_3 _inst_4) c (f x))) (Measurable.{u3, u2} α β _inst_6 _inst_2 f))
+but is expected to have type
+ forall {M : Type.{u3}} {β : Type.{u1}} {α : Type.{u2}} [_inst_1 : MeasurableSpace.{u3} M] [_inst_2 : MeasurableSpace.{u1} β] [_inst_3 : Monoid.{u3} M] [_inst_4 : MulAction.{u3, u1} M β _inst_3] [_inst_5 : MeasurableSMul.{u3, u1} M β (MulAction.toSMul.{u3, u1} M β _inst_3 _inst_4) _inst_1 _inst_2] [_inst_6 : MeasurableSpace.{u2} α] {f : α -> β} {c : M}, (IsUnit.{u3} M _inst_3 c) -> (Iff (Measurable.{u2, u1} α β _inst_6 _inst_2 (fun (x : α) => HSMul.hSMul.{u3, u1, u1} M β β (instHSMul.{u3, u1} M β (MulAction.toSMul.{u3, u1} M β _inst_3 _inst_4)) c (f x))) (Measurable.{u2, u1} α β _inst_6 _inst_2 f))
+Case conversion may be inaccurate. Consider using '#align is_unit.measurable_const_smul_iff IsUnit.measurable_const_smul_iffₓ'. -/
@[to_additive]
theorem IsUnit.measurable_const_smul_iff {c : M} (hc : IsUnit c) :
(Measurable fun x => c • f x) ↔ Measurable f :=
@@ -774,26 +1103,44 @@ theorem IsUnit.measurable_const_smul_iff {c : M} (hc : IsUnit c) :
#align is_unit.measurable_const_smul_iff IsUnit.measurable_const_smul_iff
#align is_add_unit.measurable_const_vadd_iff IsAddUnit.measurable_const_vadd_iff
+/- warning: is_unit.ae_measurable_const_smul_iff -> IsUnit.aemeasurable_const_smul_iff is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {β : Type.{u2}} {α : Type.{u3}} [_inst_1 : MeasurableSpace.{u1} M] [_inst_2 : MeasurableSpace.{u2} β] [_inst_3 : Monoid.{u1} M] [_inst_4 : MulAction.{u1, u2} M β _inst_3] [_inst_5 : MeasurableSMul.{u1, u2} M β (MulAction.toHasSmul.{u1, u2} M β _inst_3 _inst_4) _inst_1 _inst_2] [_inst_6 : MeasurableSpace.{u3} α] {f : α -> β} {μ : MeasureTheory.Measure.{u3} α _inst_6} {c : M}, (IsUnit.{u1} M _inst_3 c) -> (Iff (AEMeasurable.{u3, u2} α β _inst_2 _inst_6 (fun (x : α) => SMul.smul.{u1, u2} M β (MulAction.toHasSmul.{u1, u2} M β _inst_3 _inst_4) c (f x)) μ) (AEMeasurable.{u3, u2} α β _inst_2 _inst_6 f μ))
+but is expected to have type
+ forall {M : Type.{u3}} {β : Type.{u1}} {α : Type.{u2}} [_inst_1 : MeasurableSpace.{u3} M] [_inst_2 : MeasurableSpace.{u1} β] [_inst_3 : Monoid.{u3} M] [_inst_4 : MulAction.{u3, u1} M β _inst_3] [_inst_5 : MeasurableSMul.{u3, u1} M β (MulAction.toSMul.{u3, u1} M β _inst_3 _inst_4) _inst_1 _inst_2] [_inst_6 : MeasurableSpace.{u2} α] {f : α -> β} {μ : MeasureTheory.Measure.{u2} α _inst_6} {c : M}, (IsUnit.{u3} M _inst_3 c) -> (Iff (AEMeasurable.{u2, u1} α β _inst_2 _inst_6 (fun (x : α) => HSMul.hSMul.{u3, u1, u1} M β β (instHSMul.{u3, u1} M β (MulAction.toSMul.{u3, u1} M β _inst_3 _inst_4)) c (f x)) μ) (AEMeasurable.{u2, u1} α β _inst_2 _inst_6 f μ))
+Case conversion may be inaccurate. Consider using '#align is_unit.ae_measurable_const_smul_iff IsUnit.aemeasurable_const_smul_iffₓ'. -/
@[to_additive]
-theorem IsUnit.aEMeasurable_const_smul_iff {c : M} (hc : IsUnit c) :
+theorem IsUnit.aemeasurable_const_smul_iff {c : M} (hc : IsUnit c) :
AEMeasurable (fun x => c • f x) μ ↔ AEMeasurable f μ :=
let ⟨u, hu⟩ := hc
- hu ▸ aEMeasurable_const_smul_iff u
-#align is_unit.ae_measurable_const_smul_iff IsUnit.aEMeasurable_const_smul_iff
-#align is_add_unit.ae_measurable_const_vadd_iff IsAddUnit.aEMeasurable_const_vadd_iff
+ hu ▸ aemeasurable_const_smul_iff u
+#align is_unit.ae_measurable_const_smul_iff IsUnit.aemeasurable_const_smul_iff
+#align is_add_unit.ae_measurable_const_vadd_iff IsAddUnit.aemeasurable_const_vadd_iff
variable {G₀ : Type _} [GroupWithZero G₀] [MeasurableSpace G₀] [MulAction G₀ β]
- [HasMeasurableSmul G₀ β]
-
+ [MeasurableSMul G₀ β]
+
+/- warning: measurable_const_smul_iff₀ -> measurable_const_smul_iff₀ is a dubious translation:
+lean 3 declaration is
+ forall {β : Type.{u1}} {α : Type.{u2}} [_inst_2 : MeasurableSpace.{u1} β] [_inst_6 : MeasurableSpace.{u2} α] {f : α -> β} {G₀ : Type.{u3}} [_inst_11 : GroupWithZero.{u3} G₀] [_inst_12 : MeasurableSpace.{u3} G₀] [_inst_13 : MulAction.{u3, u1} G₀ β (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_11))] [_inst_14 : MeasurableSMul.{u3, u1} G₀ β (MulAction.toHasSmul.{u3, u1} G₀ β (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_11)) _inst_13) _inst_12 _inst_2] {c : G₀}, (Ne.{succ u3} G₀ c (OfNat.ofNat.{u3} G₀ 0 (OfNat.mk.{u3} G₀ 0 (Zero.zero.{u3} G₀ (MulZeroClass.toHasZero.{u3} G₀ (MulZeroOneClass.toMulZeroClass.{u3} G₀ (MonoidWithZero.toMulZeroOneClass.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_11)))))))) -> (Iff (Measurable.{u2, u1} α β _inst_6 _inst_2 (fun (x : α) => SMul.smul.{u3, u1} G₀ β (MulAction.toHasSmul.{u3, u1} G₀ β (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_11)) _inst_13) c (f x))) (Measurable.{u2, u1} α β _inst_6 _inst_2 f))
+but is expected to have type
+ forall {β : Type.{u1}} {α : Type.{u2}} [_inst_2 : MeasurableSpace.{u1} β] [_inst_6 : MeasurableSpace.{u2} α] {f : α -> β} {G₀ : Type.{u3}} [_inst_11 : GroupWithZero.{u3} G₀] [_inst_12 : MeasurableSpace.{u3} G₀] [_inst_13 : MulAction.{u3, u1} G₀ β (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_11))] [_inst_14 : MeasurableSMul.{u3, u1} G₀ β (MulAction.toSMul.{u3, u1} G₀ β (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_11)) _inst_13) _inst_12 _inst_2] {c : G₀}, (Ne.{succ u3} G₀ c (OfNat.ofNat.{u3} G₀ 0 (Zero.toOfNat0.{u3} G₀ (MonoidWithZero.toZero.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_11))))) -> (Iff (Measurable.{u2, u1} α β _inst_6 _inst_2 (fun (x : α) => HSMul.hSMul.{u3, u1, u1} G₀ β β (instHSMul.{u3, u1} G₀ β (MulAction.toSMul.{u3, u1} G₀ β (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_11)) _inst_13)) c (f x))) (Measurable.{u2, u1} α β _inst_6 _inst_2 f))
+Case conversion may be inaccurate. Consider using '#align measurable_const_smul_iff₀ measurable_const_smul_iff₀ₓ'. -/
theorem measurable_const_smul_iff₀ {c : G₀} (hc : c ≠ 0) :
(Measurable fun x => c • f x) ↔ Measurable f :=
(IsUnit.mk0 c hc).measurable_const_smul_iff
#align measurable_const_smul_iff₀ measurable_const_smul_iff₀
-theorem aEMeasurable_const_smul_iff₀ {c : G₀} (hc : c ≠ 0) :
+/- warning: ae_measurable_const_smul_iff₀ -> aemeasurable_const_smul_iff₀ is a dubious translation:
+lean 3 declaration is
+ forall {β : Type.{u1}} {α : Type.{u2}} [_inst_2 : MeasurableSpace.{u1} β] [_inst_6 : MeasurableSpace.{u2} α] {f : α -> β} {μ : MeasureTheory.Measure.{u2} α _inst_6} {G₀ : Type.{u3}} [_inst_11 : GroupWithZero.{u3} G₀] [_inst_12 : MeasurableSpace.{u3} G₀] [_inst_13 : MulAction.{u3, u1} G₀ β (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_11))] [_inst_14 : MeasurableSMul.{u3, u1} G₀ β (MulAction.toHasSmul.{u3, u1} G₀ β (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_11)) _inst_13) _inst_12 _inst_2] {c : G₀}, (Ne.{succ u3} G₀ c (OfNat.ofNat.{u3} G₀ 0 (OfNat.mk.{u3} G₀ 0 (Zero.zero.{u3} G₀ (MulZeroClass.toHasZero.{u3} G₀ (MulZeroOneClass.toMulZeroClass.{u3} G₀ (MonoidWithZero.toMulZeroOneClass.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_11)))))))) -> (Iff (AEMeasurable.{u2, u1} α β _inst_2 _inst_6 (fun (x : α) => SMul.smul.{u3, u1} G₀ β (MulAction.toHasSmul.{u3, u1} G₀ β (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_11)) _inst_13) c (f x)) μ) (AEMeasurable.{u2, u1} α β _inst_2 _inst_6 f μ))
+but is expected to have type
+ forall {β : Type.{u1}} {α : Type.{u2}} [_inst_2 : MeasurableSpace.{u1} β] [_inst_6 : MeasurableSpace.{u2} α] {f : α -> β} {μ : MeasureTheory.Measure.{u2} α _inst_6} {G₀ : Type.{u3}} [_inst_11 : GroupWithZero.{u3} G₀] [_inst_12 : MeasurableSpace.{u3} G₀] [_inst_13 : MulAction.{u3, u1} G₀ β (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_11))] [_inst_14 : MeasurableSMul.{u3, u1} G₀ β (MulAction.toSMul.{u3, u1} G₀ β (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_11)) _inst_13) _inst_12 _inst_2] {c : G₀}, (Ne.{succ u3} G₀ c (OfNat.ofNat.{u3} G₀ 0 (Zero.toOfNat0.{u3} G₀ (MonoidWithZero.toZero.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_11))))) -> (Iff (AEMeasurable.{u2, u1} α β _inst_2 _inst_6 (fun (x : α) => HSMul.hSMul.{u3, u1, u1} G₀ β β (instHSMul.{u3, u1} G₀ β (MulAction.toSMul.{u3, u1} G₀ β (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_11)) _inst_13)) c (f x)) μ) (AEMeasurable.{u2, u1} α β _inst_2 _inst_6 f μ))
+Case conversion may be inaccurate. Consider using '#align ae_measurable_const_smul_iff₀ aemeasurable_const_smul_iff₀ₓ'. -/
+theorem aemeasurable_const_smul_iff₀ {c : G₀} (hc : c ≠ 0) :
AEMeasurable (fun x => c • f x) μ ↔ AEMeasurable f μ :=
- (IsUnit.mk0 c hc).aEMeasurable_const_smul_iff
-#align ae_measurable_const_smul_iff₀ aEMeasurable_const_smul_iff₀
+ (IsUnit.mk0 c hc).aemeasurable_const_smul_iff
+#align ae_measurable_const_smul_iff₀ aemeasurable_const_smul_iff₀
end MulAction
@@ -810,61 +1157,73 @@ open MulOpposite
instance {α : Type _} [h : MeasurableSpace α] : MeasurableSpace αᵐᵒᵖ :=
MeasurableSpace.map op h
+#print measurable_mul_op /-
@[to_additive]
theorem measurable_mul_op {α : Type _} [MeasurableSpace α] : Measurable (op : α → αᵐᵒᵖ) := fun s =>
id
#align measurable_mul_op measurable_mul_op
#align measurable_add_op measurable_add_op
+-/
+#print measurable_mul_unop /-
@[to_additive]
theorem measurable_mul_unop {α : Type _} [MeasurableSpace α] : Measurable (unop : αᵐᵒᵖ → α) :=
fun s => id
#align measurable_mul_unop measurable_mul_unop
#align measurable_add_unop measurable_add_unop
+-/
@[to_additive]
-instance {M : Type _} [Mul M] [MeasurableSpace M] [HasMeasurableMul M] : HasMeasurableMul Mᵐᵒᵖ :=
+instance {M : Type _} [Mul M] [MeasurableSpace M] [MeasurableMul M] : MeasurableMul Mᵐᵒᵖ :=
⟨fun c => measurable_mul_op.comp (measurable_mul_unop.mul_const _), fun c =>
measurable_mul_op.comp (measurable_mul_unop.const_mul _)⟩
@[to_additive]
-instance {M : Type _} [Mul M] [MeasurableSpace M] [HasMeasurableMul₂ M] : HasMeasurableMul₂ Mᵐᵒᵖ :=
+instance {M : Type _} [Mul M] [MeasurableSpace M] [MeasurableMul₂ M] : MeasurableMul₂ Mᵐᵒᵖ :=
⟨measurable_mul_op.comp
((measurable_mul_unop.comp measurable_snd).mul (measurable_mul_unop.comp measurable_fst))⟩
+#print MeasurableSMul.op /-
/-- If a scalar is central, then its right action is measurable when its left action is. -/
-instance HasMeasurableSmul.op {M α} [MeasurableSpace M] [MeasurableSpace α] [SMul M α] [SMul Mᵐᵒᵖ α]
- [IsCentralScalar M α] [HasMeasurableSmul M α] : HasMeasurableSmul Mᵐᵒᵖ α :=
+instance MeasurableSMul.op {M α} [MeasurableSpace M] [MeasurableSpace α] [SMul M α] [SMul Mᵐᵒᵖ α]
+ [IsCentralScalar M α] [MeasurableSMul M α] : MeasurableSMul Mᵐᵒᵖ α :=
⟨MulOpposite.rec' fun c =>
show Measurable fun x => op c • x by
simpa only [op_smul_eq_smul] using measurable_const_smul c,
fun x =>
show Measurable fun c => op (unop c) • x by
simpa only [op_smul_eq_smul] using (measurable_smul_const x).comp measurable_mul_unop⟩
-#align has_measurable_smul.op HasMeasurableSmul.op
+#align has_measurable_smul.op MeasurableSMul.op
+-/
+#print MeasurableSMul₂.op /-
/-- If a scalar is central, then its right action is measurable when its left action is. -/
-instance HasMeasurableSmul₂.op {M α} [MeasurableSpace M] [MeasurableSpace α] [SMul M α]
- [SMul Mᵐᵒᵖ α] [IsCentralScalar M α] [HasMeasurableSmul₂ M α] : HasMeasurableSmul₂ Mᵐᵒᵖ α :=
+instance MeasurableSMul₂.op {M α} [MeasurableSpace M] [MeasurableSpace α] [SMul M α] [SMul Mᵐᵒᵖ α]
+ [IsCentralScalar M α] [MeasurableSMul₂ M α] : MeasurableSMul₂ Mᵐᵒᵖ α :=
⟨show Measurable fun x : Mᵐᵒᵖ × α => op (unop x.1) • x.2
by
simp_rw [op_smul_eq_smul]
refine' (measurable_mul_unop.comp measurable_fst).smul measurable_snd⟩
-#align has_measurable_smul₂.op HasMeasurableSmul₂.op
+#align has_measurable_smul₂.op MeasurableSMul₂.op
+-/
+#print measurableSMul_opposite_of_mul /-
@[to_additive]
-instance hasMeasurableSmul_opposite_of_mul {M : Type _} [Mul M] [MeasurableSpace M]
- [HasMeasurableMul M] : HasMeasurableSmul Mᵐᵒᵖ M :=
+instance measurableSMul_opposite_of_mul {M : Type _} [Mul M] [MeasurableSpace M] [MeasurableMul M] :
+ MeasurableSMul Mᵐᵒᵖ M :=
⟨fun c => measurable_mul_const (unop c), fun x => measurable_mul_unop.const_mul x⟩
-#align has_measurable_smul_opposite_of_mul hasMeasurableSmul_opposite_of_mul
-#align has_measurable_vadd_opposite_of_add has_measurable_vadd_opposite_of_add
+#align has_measurable_smul_opposite_of_mul measurableSMul_opposite_of_mul
+#align has_measurable_vadd_opposite_of_add measurableVAdd_opposite_of_add
+-/
+#print measurableSMul₂_opposite_of_mul /-
@[to_additive]
-instance hasMeasurableSmul₂_opposite_of_mul {M : Type _} [Mul M] [MeasurableSpace M]
- [HasMeasurableMul₂ M] : HasMeasurableSmul₂ Mᵐᵒᵖ M :=
+instance measurableSMul₂_opposite_of_mul {M : Type _} [Mul M] [MeasurableSpace M]
+ [MeasurableMul₂ M] : MeasurableSMul₂ Mᵐᵒᵖ M :=
⟨measurable_snd.mul (measurable_mul_unop.comp measurable_fst)⟩
-#align has_measurable_smul₂_opposite_of_mul hasMeasurableSmul₂_opposite_of_mul
-#align has_measurable_smul₂_opposite_of_add hasMeasurableSmul₂_opposite_of_add
+#align has_measurable_smul₂_opposite_of_mul measurableSMul₂_opposite_of_mul
+#align has_measurable_smul₂_opposite_of_add measurableSMul₂_opposite_of_add
+-/
end Opposite
@@ -875,11 +1234,17 @@ end Opposite
section Monoid
-variable {M α : Type _} [Monoid M] [MeasurableSpace M] [HasMeasurableMul₂ M] {m : MeasurableSpace α}
+variable {M α : Type _} [Monoid M] [MeasurableSpace M] [MeasurableMul₂ M] {m : MeasurableSpace α}
{μ : Measure α}
include m
+/- warning: list.measurable_prod' -> List.measurable_prod' is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {α : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : MeasurableSpace.{u1} M] [_inst_3 : MeasurableMul₂.{u1} M _inst_2 (MulOneClass.toHasMul.{u1} M (Monoid.toMulOneClass.{u1} M _inst_1))] {m : MeasurableSpace.{u2} α} (l : List.{max u2 u1} (α -> M)), (forall (f : α -> M), (Membership.Mem.{max u2 u1, max u2 u1} (α -> M) (List.{max u2 u1} (α -> M)) (List.hasMem.{max u2 u1} (α -> M)) f l) -> (Measurable.{u2, u1} α M m _inst_2 f)) -> (Measurable.{u2, u1} α M m _inst_2 (List.prod.{max u2 u1} (α -> M) (Pi.instMul.{u2, u1} α (fun (ᾰ : α) => M) (fun (i : α) => MulOneClass.toHasMul.{u1} M (Monoid.toMulOneClass.{u1} M _inst_1))) (Pi.instOne.{u2, u1} α (fun (ᾰ : α) => M) (fun (i : α) => MulOneClass.toHasOne.{u1} M (Monoid.toMulOneClass.{u1} M _inst_1))) l))
+but is expected to have type
+ forall {M : Type.{u2}} {α : Type.{u1}} [_inst_1 : Monoid.{u2} M] [_inst_2 : MeasurableSpace.{u2} M] [_inst_3 : MeasurableMul₂.{u2} M _inst_2 (MulOneClass.toMul.{u2} M (Monoid.toMulOneClass.{u2} M _inst_1))] {m : MeasurableSpace.{u1} α} (l : List.{max u2 u1} (α -> M)), (forall (f : α -> M), (Membership.mem.{max u2 u1, max u2 u1} (α -> M) (List.{max u2 u1} (α -> M)) (List.instMembershipList.{max u2 u1} (α -> M)) f l) -> (Measurable.{u1, u2} α M m _inst_2 f)) -> (Measurable.{u1, u2} α M m _inst_2 (List.prod.{max u2 u1} (α -> M) (Pi.instMul.{u1, u2} α (fun (ᾰ : α) => M) (fun (i : α) => MulOneClass.toMul.{u2} M (Monoid.toMulOneClass.{u2} M _inst_1))) (Pi.instOne.{u1, u2} α (fun (ᾰ : α) => M) (fun (i : α) => Monoid.toOne.{u2} M _inst_1)) l))
+Case conversion may be inaccurate. Consider using '#align list.measurable_prod' List.measurable_prod'ₓ'. -/
@[measurability, to_additive]
theorem List.measurable_prod' (l : List (α → M)) (hl : ∀ f ∈ l, Measurable f) : Measurable l.Prod :=
by
@@ -890,16 +1255,28 @@ theorem List.measurable_prod' (l : List (α → M)) (hl : ∀ f ∈ l, Measurabl
#align list.measurable_prod' List.measurable_prod'
#align list.measurable_sum' List.measurable_sum'
+/- warning: list.ae_measurable_prod' -> List.aemeasurable_prod' is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {α : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : MeasurableSpace.{u1} M] [_inst_3 : MeasurableMul₂.{u1} M _inst_2 (MulOneClass.toHasMul.{u1} M (Monoid.toMulOneClass.{u1} M _inst_1))] {m : MeasurableSpace.{u2} α} {μ : MeasureTheory.Measure.{u2} α m} (l : List.{max u2 u1} (α -> M)), (forall (f : α -> M), (Membership.Mem.{max u2 u1, max u2 u1} (α -> M) (List.{max u2 u1} (α -> M)) (List.hasMem.{max u2 u1} (α -> M)) f l) -> (AEMeasurable.{u2, u1} α M _inst_2 m f μ)) -> (AEMeasurable.{u2, u1} α M _inst_2 m (List.prod.{max u2 u1} (α -> M) (Pi.instMul.{u2, u1} α (fun (ᾰ : α) => M) (fun (i : α) => MulOneClass.toHasMul.{u1} M (Monoid.toMulOneClass.{u1} M _inst_1))) (Pi.instOne.{u2, u1} α (fun (ᾰ : α) => M) (fun (i : α) => MulOneClass.toHasOne.{u1} M (Monoid.toMulOneClass.{u1} M _inst_1))) l) μ)
+but is expected to have type
+ forall {M : Type.{u2}} {α : Type.{u1}} [_inst_1 : Monoid.{u2} M] [_inst_2 : MeasurableSpace.{u2} M] [_inst_3 : MeasurableMul₂.{u2} M _inst_2 (MulOneClass.toMul.{u2} M (Monoid.toMulOneClass.{u2} M _inst_1))] {m : MeasurableSpace.{u1} α} {μ : MeasureTheory.Measure.{u1} α m} (l : List.{max u2 u1} (α -> M)), (forall (f : α -> M), (Membership.mem.{max u2 u1, max u2 u1} (α -> M) (List.{max u2 u1} (α -> M)) (List.instMembershipList.{max u2 u1} (α -> M)) f l) -> (AEMeasurable.{u1, u2} α M _inst_2 m f μ)) -> (AEMeasurable.{u1, u2} α M _inst_2 m (List.prod.{max u2 u1} (α -> M) (Pi.instMul.{u1, u2} α (fun (ᾰ : α) => M) (fun (i : α) => MulOneClass.toMul.{u2} M (Monoid.toMulOneClass.{u2} M _inst_1))) (Pi.instOne.{u1, u2} α (fun (ᾰ : α) => M) (fun (i : α) => Monoid.toOne.{u2} M _inst_1)) l) μ)
+Case conversion may be inaccurate. Consider using '#align list.ae_measurable_prod' List.aemeasurable_prod'ₓ'. -/
@[measurability, to_additive]
-theorem List.aEMeasurable_prod' (l : List (α → M)) (hl : ∀ f ∈ l, AEMeasurable f μ) :
+theorem List.aemeasurable_prod' (l : List (α → M)) (hl : ∀ f ∈ l, AEMeasurable f μ) :
AEMeasurable l.Prod μ := by
induction' l with f l ihl; · exact aemeasurable_one
rw [List.forall_mem_cons] at hl
rw [List.prod_cons]
exact hl.1.mul (ihl hl.2)
-#align list.ae_measurable_prod' List.aEMeasurable_prod'
-#align list.ae_measurable_sum' List.aEMeasurable_sum'
-
+#align list.ae_measurable_prod' List.aemeasurable_prod'
+#align list.ae_measurable_sum' List.aemeasurable_sum'
+
+/- warning: list.measurable_prod -> List.measurable_prod is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {α : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : MeasurableSpace.{u1} M] [_inst_3 : MeasurableMul₂.{u1} M _inst_2 (MulOneClass.toHasMul.{u1} M (Monoid.toMulOneClass.{u1} M _inst_1))] {m : MeasurableSpace.{u2} α} (l : List.{max u2 u1} (α -> M)), (forall (f : α -> M), (Membership.Mem.{max u2 u1, max u2 u1} (α -> M) (List.{max u2 u1} (α -> M)) (List.hasMem.{max u2 u1} (α -> M)) f l) -> (Measurable.{u2, u1} α M m _inst_2 f)) -> (Measurable.{u2, u1} α M m _inst_2 (fun (x : α) => List.prod.{u1} M (MulOneClass.toHasMul.{u1} M (Monoid.toMulOneClass.{u1} M _inst_1)) (MulOneClass.toHasOne.{u1} M (Monoid.toMulOneClass.{u1} M _inst_1)) (List.map.{max u2 u1, u1} (α -> M) M (fun (f : α -> M) => f x) l)))
+but is expected to have type
+ forall {M : Type.{u2}} {α : Type.{u1}} [_inst_1 : Monoid.{u2} M] [_inst_2 : MeasurableSpace.{u2} M] [_inst_3 : MeasurableMul₂.{u2} M _inst_2 (MulOneClass.toMul.{u2} M (Monoid.toMulOneClass.{u2} M _inst_1))] {m : MeasurableSpace.{u1} α} (l : List.{max u2 u1} (α -> M)), (forall (f : α -> M), (Membership.mem.{max u2 u1, max u2 u1} (α -> M) (List.{max u2 u1} (α -> M)) (List.instMembershipList.{max u2 u1} (α -> M)) f l) -> (Measurable.{u1, u2} α M m _inst_2 f)) -> (Measurable.{u1, u2} α M m _inst_2 (fun (x : α) => List.prod.{u2} M (MulOneClass.toMul.{u2} M (Monoid.toMulOneClass.{u2} M _inst_1)) (Monoid.toOne.{u2} M _inst_1) (List.map.{max u2 u1, u2} (α -> M) M (fun (f : α -> M) => f x) l)))
+Case conversion may be inaccurate. Consider using '#align list.measurable_prod List.measurable_prodₓ'. -/
@[measurability, to_additive]
theorem List.measurable_prod (l : List (α → M)) (hl : ∀ f ∈ l, Measurable f) :
Measurable fun x => (l.map fun f : α → M => f x).Prod := by
@@ -907,12 +1284,18 @@ theorem List.measurable_prod (l : List (α → M)) (hl : ∀ f ∈ l, Measurable
#align list.measurable_prod List.measurable_prod
#align list.measurable_sum List.measurable_sum
+/- warning: list.ae_measurable_prod -> List.aemeasurable_prod is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {α : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : MeasurableSpace.{u1} M] [_inst_3 : MeasurableMul₂.{u1} M _inst_2 (MulOneClass.toHasMul.{u1} M (Monoid.toMulOneClass.{u1} M _inst_1))] {m : MeasurableSpace.{u2} α} {μ : MeasureTheory.Measure.{u2} α m} (l : List.{max u2 u1} (α -> M)), (forall (f : α -> M), (Membership.Mem.{max u2 u1, max u2 u1} (α -> M) (List.{max u2 u1} (α -> M)) (List.hasMem.{max u2 u1} (α -> M)) f l) -> (AEMeasurable.{u2, u1} α M _inst_2 m f μ)) -> (AEMeasurable.{u2, u1} α M _inst_2 m (fun (x : α) => List.prod.{u1} M (MulOneClass.toHasMul.{u1} M (Monoid.toMulOneClass.{u1} M _inst_1)) (MulOneClass.toHasOne.{u1} M (Monoid.toMulOneClass.{u1} M _inst_1)) (List.map.{max u2 u1, u1} (α -> M) M (fun (f : α -> M) => f x) l)) μ)
+but is expected to have type
+ forall {M : Type.{u2}} {α : Type.{u1}} [_inst_1 : Monoid.{u2} M] [_inst_2 : MeasurableSpace.{u2} M] [_inst_3 : MeasurableMul₂.{u2} M _inst_2 (MulOneClass.toMul.{u2} M (Monoid.toMulOneClass.{u2} M _inst_1))] {m : MeasurableSpace.{u1} α} {μ : MeasureTheory.Measure.{u1} α m} (l : List.{max u2 u1} (α -> M)), (forall (f : α -> M), (Membership.mem.{max u2 u1, max u2 u1} (α -> M) (List.{max u2 u1} (α -> M)) (List.instMembershipList.{max u2 u1} (α -> M)) f l) -> (AEMeasurable.{u1, u2} α M _inst_2 m f μ)) -> (AEMeasurable.{u1, u2} α M _inst_2 m (fun (x : α) => List.prod.{u2} M (MulOneClass.toMul.{u2} M (Monoid.toMulOneClass.{u2} M _inst_1)) (Monoid.toOne.{u2} M _inst_1) (List.map.{max u2 u1, u2} (α -> M) M (fun (f : α -> M) => f x) l)) μ)
+Case conversion may be inaccurate. Consider using '#align list.ae_measurable_prod List.aemeasurable_prodₓ'. -/
@[measurability, to_additive]
-theorem List.aEMeasurable_prod (l : List (α → M)) (hl : ∀ f ∈ l, AEMeasurable f μ) :
+theorem List.aemeasurable_prod (l : List (α → M)) (hl : ∀ f ∈ l, AEMeasurable f μ) :
AEMeasurable (fun x => (l.map fun f : α → M => f x).Prod) μ := by
simpa only [← Pi.list_prod_apply] using l.ae_measurable_prod' hl
-#align list.ae_measurable_prod List.aEMeasurable_prod
-#align list.ae_measurable_sum List.aEMeasurable_sum
+#align list.ae_measurable_prod List.aemeasurable_prod
+#align list.ae_measurable_sum List.aemeasurable_sum
omit m
@@ -920,11 +1303,17 @@ end Monoid
section CommMonoid
-variable {M ι α : Type _} [CommMonoid M] [MeasurableSpace M] [HasMeasurableMul₂ M]
+variable {M ι α : Type _} [CommMonoid M] [MeasurableSpace M] [MeasurableMul₂ M]
{m : MeasurableSpace α} {μ : Measure α} {f : ι → α → M}
include m
+/- warning: multiset.measurable_prod' -> Multiset.measurable_prod' is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {α : Type.{u2}} [_inst_1 : CommMonoid.{u1} M] [_inst_2 : MeasurableSpace.{u1} M] [_inst_3 : MeasurableMul₂.{u1} M _inst_2 (MulOneClass.toHasMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))] {m : MeasurableSpace.{u2} α} (l : Multiset.{max u2 u1} (α -> M)), (forall (f : α -> M), (Membership.Mem.{max u2 u1, max u2 u1} (α -> M) (Multiset.{max u2 u1} (α -> M)) (Multiset.hasMem.{max u2 u1} (α -> M)) f l) -> (Measurable.{u2, u1} α M m _inst_2 f)) -> (Measurable.{u2, u1} α M m _inst_2 (Multiset.prod.{max u2 u1} (α -> M) (Pi.commMonoid.{u2, u1} α (fun (ᾰ : α) => M) (fun (i : α) => _inst_1)) l))
+but is expected to have type
+ forall {M : Type.{u2}} {α : Type.{u1}} [_inst_1 : CommMonoid.{u2} M] [_inst_2 : MeasurableSpace.{u2} M] [_inst_3 : MeasurableMul₂.{u2} M _inst_2 (MulOneClass.toMul.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)))] {m : MeasurableSpace.{u1} α} (l : Multiset.{max u2 u1} (α -> M)), (forall (f : α -> M), (Membership.mem.{max u2 u1, max u2 u1} (α -> M) (Multiset.{max u2 u1} (α -> M)) (Multiset.instMembershipMultiset.{max u2 u1} (α -> M)) f l) -> (Measurable.{u1, u2} α M m _inst_2 f)) -> (Measurable.{u1, u2} α M m _inst_2 (Multiset.prod.{max u2 u1} (α -> M) (Pi.commMonoid.{u1, u2} α (fun (ᾰ : α) => M) (fun (i : α) => _inst_1)) l))
+Case conversion may be inaccurate. Consider using '#align multiset.measurable_prod' Multiset.measurable_prod'ₓ'. -/
@[measurability, to_additive]
theorem Multiset.measurable_prod' (l : Multiset (α → M)) (hl : ∀ f ∈ l, Measurable f) :
Measurable l.Prod := by
@@ -933,14 +1322,26 @@ theorem Multiset.measurable_prod' (l : Multiset (α → M)) (hl : ∀ f ∈ l, M
#align multiset.measurable_prod' Multiset.measurable_prod'
#align multiset.measurable_sum' Multiset.measurable_sum'
+/- warning: multiset.ae_measurable_prod' -> Multiset.aemeasurable_prod' is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {α : Type.{u2}} [_inst_1 : CommMonoid.{u1} M] [_inst_2 : MeasurableSpace.{u1} M] [_inst_3 : MeasurableMul₂.{u1} M _inst_2 (MulOneClass.toHasMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))] {m : MeasurableSpace.{u2} α} {μ : MeasureTheory.Measure.{u2} α m} (l : Multiset.{max u2 u1} (α -> M)), (forall (f : α -> M), (Membership.Mem.{max u2 u1, max u2 u1} (α -> M) (Multiset.{max u2 u1} (α -> M)) (Multiset.hasMem.{max u2 u1} (α -> M)) f l) -> (AEMeasurable.{u2, u1} α M _inst_2 m f μ)) -> (AEMeasurable.{u2, u1} α M _inst_2 m (Multiset.prod.{max u2 u1} (α -> M) (Pi.commMonoid.{u2, u1} α (fun (ᾰ : α) => M) (fun (i : α) => _inst_1)) l) μ)
+but is expected to have type
+ forall {M : Type.{u2}} {α : Type.{u1}} [_inst_1 : CommMonoid.{u2} M] [_inst_2 : MeasurableSpace.{u2} M] [_inst_3 : MeasurableMul₂.{u2} M _inst_2 (MulOneClass.toMul.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)))] {m : MeasurableSpace.{u1} α} {μ : MeasureTheory.Measure.{u1} α m} (l : Multiset.{max u2 u1} (α -> M)), (forall (f : α -> M), (Membership.mem.{max u2 u1, max u2 u1} (α -> M) (Multiset.{max u2 u1} (α -> M)) (Multiset.instMembershipMultiset.{max u2 u1} (α -> M)) f l) -> (AEMeasurable.{u1, u2} α M _inst_2 m f μ)) -> (AEMeasurable.{u1, u2} α M _inst_2 m (Multiset.prod.{max u2 u1} (α -> M) (Pi.commMonoid.{u1, u2} α (fun (ᾰ : α) => M) (fun (i : α) => _inst_1)) l) μ)
+Case conversion may be inaccurate. Consider using '#align multiset.ae_measurable_prod' Multiset.aemeasurable_prod'ₓ'. -/
@[measurability, to_additive]
-theorem Multiset.aEMeasurable_prod' (l : Multiset (α → M)) (hl : ∀ f ∈ l, AEMeasurable f μ) :
+theorem Multiset.aemeasurable_prod' (l : Multiset (α → M)) (hl : ∀ f ∈ l, AEMeasurable f μ) :
AEMeasurable l.Prod μ := by
rcases l with ⟨l⟩
simpa using l.ae_measurable_prod' (by simpa using hl)
-#align multiset.ae_measurable_prod' Multiset.aEMeasurable_prod'
-#align multiset.ae_measurable_sum' Multiset.aEMeasurable_sum'
-
+#align multiset.ae_measurable_prod' Multiset.aemeasurable_prod'
+#align multiset.ae_measurable_sum' Multiset.aemeasurable_sum'
+
+/- warning: multiset.measurable_prod -> Multiset.measurable_prod is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {α : Type.{u2}} [_inst_1 : CommMonoid.{u1} M] [_inst_2 : MeasurableSpace.{u1} M] [_inst_3 : MeasurableMul₂.{u1} M _inst_2 (MulOneClass.toHasMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))] {m : MeasurableSpace.{u2} α} (s : Multiset.{max u2 u1} (α -> M)), (forall (f : α -> M), (Membership.Mem.{max u2 u1, max u2 u1} (α -> M) (Multiset.{max u2 u1} (α -> M)) (Multiset.hasMem.{max u2 u1} (α -> M)) f s) -> (Measurable.{u2, u1} α M m _inst_2 f)) -> (Measurable.{u2, u1} α M m _inst_2 (fun (x : α) => Multiset.prod.{u1} M _inst_1 (Multiset.map.{max u2 u1, u1} (α -> M) M (fun (f : α -> M) => f x) s)))
+but is expected to have type
+ forall {M : Type.{u2}} {α : Type.{u1}} [_inst_1 : CommMonoid.{u2} M] [_inst_2 : MeasurableSpace.{u2} M] [_inst_3 : MeasurableMul₂.{u2} M _inst_2 (MulOneClass.toMul.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)))] {m : MeasurableSpace.{u1} α} (s : Multiset.{max u2 u1} (α -> M)), (forall (f : α -> M), (Membership.mem.{max u2 u1, max u2 u1} (α -> M) (Multiset.{max u2 u1} (α -> M)) (Multiset.instMembershipMultiset.{max u2 u1} (α -> M)) f s) -> (Measurable.{u1, u2} α M m _inst_2 f)) -> (Measurable.{u1, u2} α M m _inst_2 (fun (x : α) => Multiset.prod.{u2} M _inst_1 (Multiset.map.{max u2 u1, u2} (α -> M) M (fun (f : α -> M) => f x) s)))
+Case conversion may be inaccurate. Consider using '#align multiset.measurable_prod Multiset.measurable_prodₓ'. -/
@[measurability, to_additive]
theorem Multiset.measurable_prod (s : Multiset (α → M)) (hs : ∀ f ∈ s, Measurable f) :
Measurable fun x => (s.map fun f : α → M => f x).Prod := by
@@ -948,13 +1349,25 @@ theorem Multiset.measurable_prod (s : Multiset (α → M)) (hs : ∀ f ∈ s, Me
#align multiset.measurable_prod Multiset.measurable_prod
#align multiset.measurable_sum Multiset.measurable_sum
+/- warning: multiset.ae_measurable_prod -> Multiset.aemeasurable_prod is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {α : Type.{u2}} [_inst_1 : CommMonoid.{u1} M] [_inst_2 : MeasurableSpace.{u1} M] [_inst_3 : MeasurableMul₂.{u1} M _inst_2 (MulOneClass.toHasMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))] {m : MeasurableSpace.{u2} α} {μ : MeasureTheory.Measure.{u2} α m} (s : Multiset.{max u2 u1} (α -> M)), (forall (f : α -> M), (Membership.Mem.{max u2 u1, max u2 u1} (α -> M) (Multiset.{max u2 u1} (α -> M)) (Multiset.hasMem.{max u2 u1} (α -> M)) f s) -> (AEMeasurable.{u2, u1} α M _inst_2 m f μ)) -> (AEMeasurable.{u2, u1} α M _inst_2 m (fun (x : α) => Multiset.prod.{u1} M _inst_1 (Multiset.map.{max u2 u1, u1} (α -> M) M (fun (f : α -> M) => f x) s)) μ)
+but is expected to have type
+ forall {M : Type.{u2}} {α : Type.{u1}} [_inst_1 : CommMonoid.{u2} M] [_inst_2 : MeasurableSpace.{u2} M] [_inst_3 : MeasurableMul₂.{u2} M _inst_2 (MulOneClass.toMul.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)))] {m : MeasurableSpace.{u1} α} {μ : MeasureTheory.Measure.{u1} α m} (s : Multiset.{max u2 u1} (α -> M)), (forall (f : α -> M), (Membership.mem.{max u2 u1, max u2 u1} (α -> M) (Multiset.{max u2 u1} (α -> M)) (Multiset.instMembershipMultiset.{max u2 u1} (α -> M)) f s) -> (AEMeasurable.{u1, u2} α M _inst_2 m f μ)) -> (AEMeasurable.{u1, u2} α M _inst_2 m (fun (x : α) => Multiset.prod.{u2} M _inst_1 (Multiset.map.{max u2 u1, u2} (α -> M) M (fun (f : α -> M) => f x) s)) μ)
+Case conversion may be inaccurate. Consider using '#align multiset.ae_measurable_prod Multiset.aemeasurable_prodₓ'. -/
@[measurability, to_additive]
-theorem Multiset.aEMeasurable_prod (s : Multiset (α → M)) (hs : ∀ f ∈ s, AEMeasurable f μ) :
+theorem Multiset.aemeasurable_prod (s : Multiset (α → M)) (hs : ∀ f ∈ s, AEMeasurable f μ) :
AEMeasurable (fun x => (s.map fun f : α → M => f x).Prod) μ := by
simpa only [← Pi.multiset_prod_apply] using s.ae_measurable_prod' hs
-#align multiset.ae_measurable_prod Multiset.aEMeasurable_prod
-#align multiset.ae_measurable_sum Multiset.aEMeasurable_sum
-
+#align multiset.ae_measurable_prod Multiset.aemeasurable_prod
+#align multiset.ae_measurable_sum Multiset.aemeasurable_sum
+
+/- warning: finset.measurable_prod' -> Finset.measurable_prod' is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {ι : Type.{u2}} {α : Type.{u3}} [_inst_1 : CommMonoid.{u1} M] [_inst_2 : MeasurableSpace.{u1} M] [_inst_3 : MeasurableMul₂.{u1} M _inst_2 (MulOneClass.toHasMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))] {m : MeasurableSpace.{u3} α} {f : ι -> α -> M} (s : Finset.{u2} ι), (forall (i : ι), (Membership.Mem.{u2, u2} ι (Finset.{u2} ι) (Finset.hasMem.{u2} ι) i s) -> (Measurable.{u3, u1} α M m _inst_2 (f i))) -> (Measurable.{u3, u1} α M m _inst_2 (Finset.prod.{max u3 u1, u2} (α -> M) ι (Pi.commMonoid.{u3, u1} α (fun (ᾰ : α) => M) (fun (i : α) => _inst_1)) s (fun (i : ι) => f i)))
+but is expected to have type
+ forall {M : Type.{u1}} {ι : Type.{u3}} {α : Type.{u2}} [_inst_1 : CommMonoid.{u1} M] [_inst_2 : MeasurableSpace.{u1} M] [_inst_3 : MeasurableMul₂.{u1} M _inst_2 (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))] {m : MeasurableSpace.{u2} α} {f : ι -> α -> M} (s : Finset.{u3} ι), (forall (i : ι), (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) -> (Measurable.{u2, u1} α M m _inst_2 (f i))) -> (Measurable.{u2, u1} α M m _inst_2 (Finset.prod.{max u1 u2, u3} (α -> M) ι (Pi.commMonoid.{u2, u1} α (fun (ᾰ : α) => M) (fun (i : α) => _inst_1)) s (fun (i : ι) => f i)))
+Case conversion may be inaccurate. Consider using '#align finset.measurable_prod' Finset.measurable_prod'ₓ'. -/
@[measurability, to_additive]
theorem Finset.measurable_prod' (s : Finset ι) (hf : ∀ i ∈ s, Measurable (f i)) :
Measurable (∏ i in s, f i) :=
@@ -962,6 +1375,12 @@ theorem Finset.measurable_prod' (s : Finset ι) (hf : ∀ i ∈ s, Measurable (f
#align finset.measurable_prod' Finset.measurable_prod'
#align finset.measurable_sum' Finset.measurable_sum'
+/- warning: finset.measurable_prod -> Finset.measurable_prod is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {ι : Type.{u2}} {α : Type.{u3}} [_inst_1 : CommMonoid.{u1} M] [_inst_2 : MeasurableSpace.{u1} M] [_inst_3 : MeasurableMul₂.{u1} M _inst_2 (MulOneClass.toHasMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))] {m : MeasurableSpace.{u3} α} {f : ι -> α -> M} (s : Finset.{u2} ι), (forall (i : ι), (Membership.Mem.{u2, u2} ι (Finset.{u2} ι) (Finset.hasMem.{u2} ι) i s) -> (Measurable.{u3, u1} α M m _inst_2 (f i))) -> (Measurable.{u3, u1} α M m _inst_2 (fun (a : α) => Finset.prod.{u1, u2} M ι _inst_1 s (fun (i : ι) => f i a)))
+but is expected to have type
+ forall {M : Type.{u1}} {ι : Type.{u3}} {α : Type.{u2}} [_inst_1 : CommMonoid.{u1} M] [_inst_2 : MeasurableSpace.{u1} M] [_inst_3 : MeasurableMul₂.{u1} M _inst_2 (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))] {m : MeasurableSpace.{u2} α} {f : ι -> α -> M} (s : Finset.{u3} ι), (forall (i : ι), (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) -> (Measurable.{u2, u1} α M m _inst_2 (f i))) -> (Measurable.{u2, u1} α M m _inst_2 (fun (a : α) => Finset.prod.{u1, u3} M ι _inst_1 s (fun (i : ι) => f i a)))
+Case conversion may be inaccurate. Consider using '#align finset.measurable_prod Finset.measurable_prodₓ'. -/
@[measurability, to_additive]
theorem Finset.measurable_prod (s : Finset ι) (hf : ∀ i ∈ s, Measurable (f i)) :
Measurable fun a => ∏ i in s, f i a := by
@@ -969,21 +1388,33 @@ theorem Finset.measurable_prod (s : Finset ι) (hf : ∀ i ∈ s, Measurable (f
#align finset.measurable_prod Finset.measurable_prod
#align finset.measurable_sum Finset.measurable_sum
+/- warning: finset.ae_measurable_prod' -> Finset.aemeasurable_prod' is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {ι : Type.{u2}} {α : Type.{u3}} [_inst_1 : CommMonoid.{u1} M] [_inst_2 : MeasurableSpace.{u1} M] [_inst_3 : MeasurableMul₂.{u1} M _inst_2 (MulOneClass.toHasMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))] {m : MeasurableSpace.{u3} α} {μ : MeasureTheory.Measure.{u3} α m} {f : ι -> α -> M} (s : Finset.{u2} ι), (forall (i : ι), (Membership.Mem.{u2, u2} ι (Finset.{u2} ι) (Finset.hasMem.{u2} ι) i s) -> (AEMeasurable.{u3, u1} α M _inst_2 m (f i) μ)) -> (AEMeasurable.{u3, u1} α M _inst_2 m (Finset.prod.{max u3 u1, u2} (α -> M) ι (Pi.commMonoid.{u3, u1} α (fun (ᾰ : α) => M) (fun (i : α) => _inst_1)) s (fun (i : ι) => f i)) μ)
+but is expected to have type
+ forall {M : Type.{u1}} {ι : Type.{u3}} {α : Type.{u2}} [_inst_1 : CommMonoid.{u1} M] [_inst_2 : MeasurableSpace.{u1} M] [_inst_3 : MeasurableMul₂.{u1} M _inst_2 (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))] {m : MeasurableSpace.{u2} α} {μ : MeasureTheory.Measure.{u2} α m} {f : ι -> α -> M} (s : Finset.{u3} ι), (forall (i : ι), (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) -> (AEMeasurable.{u2, u1} α M _inst_2 m (f i) μ)) -> (AEMeasurable.{u2, u1} α M _inst_2 m (Finset.prod.{max u1 u2, u3} (α -> M) ι (Pi.commMonoid.{u2, u1} α (fun (ᾰ : α) => M) (fun (i : α) => _inst_1)) s (fun (i : ι) => f i)) μ)
+Case conversion may be inaccurate. Consider using '#align finset.ae_measurable_prod' Finset.aemeasurable_prod'ₓ'. -/
@[measurability, to_additive]
-theorem Finset.aEMeasurable_prod' (s : Finset ι) (hf : ∀ i ∈ s, AEMeasurable (f i) μ) :
+theorem Finset.aemeasurable_prod' (s : Finset ι) (hf : ∀ i ∈ s, AEMeasurable (f i) μ) :
AEMeasurable (∏ i in s, f i) μ :=
- Multiset.aEMeasurable_prod' _ fun g hg =>
+ Multiset.aemeasurable_prod' _ fun g hg =>
let ⟨i, hi, hg⟩ := Multiset.mem_map.1 hg
hg ▸ hf _ hi
-#align finset.ae_measurable_prod' Finset.aEMeasurable_prod'
-#align finset.ae_measurable_sum' Finset.aEMeasurable_sum'
-
+#align finset.ae_measurable_prod' Finset.aemeasurable_prod'
+#align finset.ae_measurable_sum' Finset.aemeasurable_sum'
+
+/- warning: finset.ae_measurable_prod -> Finset.aemeasurable_prod is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {ι : Type.{u2}} {α : Type.{u3}} [_inst_1 : CommMonoid.{u1} M] [_inst_2 : MeasurableSpace.{u1} M] [_inst_3 : MeasurableMul₂.{u1} M _inst_2 (MulOneClass.toHasMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))] {m : MeasurableSpace.{u3} α} {μ : MeasureTheory.Measure.{u3} α m} {f : ι -> α -> M} (s : Finset.{u2} ι), (forall (i : ι), (Membership.Mem.{u2, u2} ι (Finset.{u2} ι) (Finset.hasMem.{u2} ι) i s) -> (AEMeasurable.{u3, u1} α M _inst_2 m (f i) μ)) -> (AEMeasurable.{u3, u1} α M _inst_2 m (fun (a : α) => Finset.prod.{u1, u2} M ι _inst_1 s (fun (i : ι) => f i a)) μ)
+but is expected to have type
+ forall {M : Type.{u1}} {ι : Type.{u3}} {α : Type.{u2}} [_inst_1 : CommMonoid.{u1} M] [_inst_2 : MeasurableSpace.{u1} M] [_inst_3 : MeasurableMul₂.{u1} M _inst_2 (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))] {m : MeasurableSpace.{u2} α} {μ : MeasureTheory.Measure.{u2} α m} {f : ι -> α -> M} (s : Finset.{u3} ι), (forall (i : ι), (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) -> (AEMeasurable.{u2, u1} α M _inst_2 m (f i) μ)) -> (AEMeasurable.{u2, u1} α M _inst_2 m (fun (a : α) => Finset.prod.{u1, u3} M ι _inst_1 s (fun (i : ι) => f i a)) μ)
+Case conversion may be inaccurate. Consider using '#align finset.ae_measurable_prod Finset.aemeasurable_prodₓ'. -/
@[measurability, to_additive]
-theorem Finset.aEMeasurable_prod (s : Finset ι) (hf : ∀ i ∈ s, AEMeasurable (f i) μ) :
+theorem Finset.aemeasurable_prod (s : Finset ι) (hf : ∀ i ∈ s, AEMeasurable (f i) μ) :
AEMeasurable (fun a => ∏ i in s, f i a) μ := by
simpa only [← Finset.prod_apply] using s.ae_measurable_prod' hf
-#align finset.ae_measurable_prod Finset.aEMeasurable_prod
-#align finset.ae_measurable_sum Finset.aEMeasurable_sum
+#align finset.ae_measurable_prod Finset.aemeasurable_prod
+#align finset.ae_measurable_sum Finset.aemeasurable_sum
omit m
mathlib commit https://github.com/leanprover-community/mathlib/commit/d4437c68c8d350fc9d4e95e1e174409db35e30d7
@@ -893,7 +893,7 @@ theorem List.measurable_prod' (l : List (α → M)) (hl : ∀ f ∈ l, Measurabl
@[measurability, to_additive]
theorem List.aEMeasurable_prod' (l : List (α → M)) (hl : ∀ f ∈ l, AEMeasurable f μ) :
AEMeasurable l.Prod μ := by
- induction' l with f l ihl; · exact aEMeasurable_one
+ induction' l with f l ihl; · exact aemeasurable_one
rw [List.forall_mem_cons] at hl
rw [List.prod_cons]
exact hl.1.mul (ihl hl.2)
mathlib commit https://github.com/leanprover-community/mathlib/commit/92c69b77c5a7dc0f7eeddb552508633305157caa
@@ -114,11 +114,11 @@ theorem Measurable.const_mul [HasMeasurableMul M] (hf : Measurable f) (c : M) :
#align measurable.const_add Measurable.const_add
@[measurability, to_additive]
-theorem AeMeasurable.constMul [HasMeasurableMul M] (hf : AeMeasurable f μ) (c : M) :
- AeMeasurable (fun x => c * f x) μ :=
- (HasMeasurableMul.measurable_const_mul c).compAeMeasurable hf
-#align ae_measurable.const_mul AeMeasurable.constMul
-#align ae_measurable.const_add AeMeasurable.const_add
+theorem AEMeasurable.const_mul [HasMeasurableMul M] (hf : AEMeasurable f μ) (c : M) :
+ AEMeasurable (fun x => c * f x) μ :=
+ (HasMeasurableMul.measurable_const_mul c).comp_aemeasurable hf
+#align ae_measurable.const_mul AEMeasurable.const_mul
+#align ae_measurable.const_add AEMeasurable.const_add
@[measurability, to_additive]
theorem Measurable.mul_const [HasMeasurableMul M] (hf : Measurable f) (c : M) :
@@ -128,11 +128,11 @@ theorem Measurable.mul_const [HasMeasurableMul M] (hf : Measurable f) (c : M) :
#align measurable.add_const Measurable.add_const
@[measurability, to_additive]
-theorem AeMeasurable.mulConst [HasMeasurableMul M] (hf : AeMeasurable f μ) (c : M) :
- AeMeasurable (fun x => f x * c) μ :=
- (measurable_mul_const c).compAeMeasurable hf
-#align ae_measurable.mul_const AeMeasurable.mulConst
-#align ae_measurable.add_const AeMeasurable.add_const
+theorem AEMeasurable.mul_const [HasMeasurableMul M] (hf : AEMeasurable f μ) (c : M) :
+ AEMeasurable (fun x => f x * c) μ :=
+ (measurable_mul_const c).comp_aemeasurable hf
+#align ae_measurable.mul_const AEMeasurable.mul_const
+#align ae_measurable.add_const AEMeasurable.add_const
@[measurability, to_additive]
theorem Measurable.mul' [HasMeasurableMul₂ M] (hf : Measurable f) (hg : Measurable g) :
@@ -149,18 +149,18 @@ theorem Measurable.mul [HasMeasurableMul₂ M] (hf : Measurable f) (hg : Measura
#align measurable.add Measurable.add
@[measurability, to_additive]
-theorem AeMeasurable.mul' [HasMeasurableMul₂ M] (hf : AeMeasurable f μ) (hg : AeMeasurable g μ) :
- AeMeasurable (f * g) μ :=
- measurable_mul.compAeMeasurable (hf.prod_mk hg)
-#align ae_measurable.mul' AeMeasurable.mul'
-#align ae_measurable.add' AeMeasurable.add'
+theorem AEMeasurable.mul' [HasMeasurableMul₂ M] (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
+ AEMeasurable (f * g) μ :=
+ measurable_mul.comp_aemeasurable (hf.prod_mk hg)
+#align ae_measurable.mul' AEMeasurable.mul'
+#align ae_measurable.add' AEMeasurable.add'
@[measurability, to_additive]
-theorem AeMeasurable.mul [HasMeasurableMul₂ M] (hf : AeMeasurable f μ) (hg : AeMeasurable g μ) :
- AeMeasurable (fun a => f a * g a) μ :=
- measurable_mul.compAeMeasurable (hf.prod_mk hg)
-#align ae_measurable.mul AeMeasurable.mul
-#align ae_measurable.add AeMeasurable.add
+theorem AEMeasurable.mul [HasMeasurableMul₂ M] (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
+ AEMeasurable (fun a => f a * g a) μ :=
+ measurable_mul.comp_aemeasurable (hf.prod_mk hg)
+#align ae_measurable.mul AEMeasurable.mul
+#align ae_measurable.add AEMeasurable.add
omit m
@@ -187,7 +187,7 @@ instance Pi.hasMeasurableMul₂ {ι : Type _} {α : ι → Type _} [∀ i, Mul (
#align pi.has_measurable_add₂ Pi.has_measurable_add₂
attribute [measurability]
- Measurable.add' Measurable.add AeMeasurable.add AeMeasurable.add' Measurable.const_add AeMeasurable.const_add Measurable.add_const AeMeasurable.add_const
+ Measurable.add' Measurable.add AEMeasurable.add AEMeasurable.add' Measurable.const_add AEMeasurable.const_add Measurable.add_const AEMeasurable.add_const
end Mul
@@ -231,10 +231,10 @@ theorem Measurable.pow (hf : Measurable f) (hg : Measurable g) : Measurable fun
#align measurable.pow Measurable.pow
@[measurability]
-theorem AeMeasurable.pow (hf : AeMeasurable f μ) (hg : AeMeasurable g μ) :
- AeMeasurable (fun x => f x ^ g x) μ :=
- measurable_pow.compAeMeasurable (hf.prod_mk hg)
-#align ae_measurable.pow AeMeasurable.pow
+theorem AEMeasurable.pow (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
+ AEMeasurable (fun x => f x ^ g x) μ :=
+ measurable_pow.comp_aemeasurable (hf.prod_mk hg)
+#align ae_measurable.pow AEMeasurable.pow
@[measurability]
theorem Measurable.pow_const (hf : Measurable f) (c : γ) : Measurable fun x => f x ^ c :=
@@ -242,9 +242,10 @@ theorem Measurable.pow_const (hf : Measurable f) (c : γ) : Measurable fun x =>
#align measurable.pow_const Measurable.pow_const
@[measurability]
-theorem AeMeasurable.powConst (hf : AeMeasurable f μ) (c : γ) : AeMeasurable (fun x => f x ^ c) μ :=
- hf.pow aeMeasurableConst
-#align ae_measurable.pow_const AeMeasurable.powConst
+theorem AEMeasurable.pow_const (hf : AEMeasurable f μ) (c : γ) :
+ AEMeasurable (fun x => f x ^ c) μ :=
+ hf.pow aemeasurable_const
+#align ae_measurable.pow_const AEMeasurable.pow_const
@[measurability]
theorem Measurable.const_pow (hg : Measurable g) (c : β) : Measurable fun x => c ^ g x :=
@@ -252,9 +253,10 @@ theorem Measurable.const_pow (hg : Measurable g) (c : β) : Measurable fun x =>
#align measurable.const_pow Measurable.const_pow
@[measurability]
-theorem AeMeasurable.constPow (hg : AeMeasurable g μ) (c : β) : AeMeasurable (fun x => c ^ g x) μ :=
- aeMeasurableConst.pow hg
-#align ae_measurable.const_pow AeMeasurable.constPow
+theorem AEMeasurable.const_pow (hg : AEMeasurable g μ) (c : β) :
+ AEMeasurable (fun x => c ^ g x) μ :=
+ aemeasurable_const.pow hg
+#align ae_measurable.const_pow AEMeasurable.const_pow
omit m
@@ -313,11 +315,11 @@ theorem Measurable.const_div [HasMeasurableDiv G] (hf : Measurable f) (c : G) :
#align measurable.const_sub Measurable.const_sub
@[measurability, to_additive]
-theorem AeMeasurable.constDiv [HasMeasurableDiv G] (hf : AeMeasurable f μ) (c : G) :
- AeMeasurable (fun x => c / f x) μ :=
- (HasMeasurableDiv.measurable_const_div c).compAeMeasurable hf
-#align ae_measurable.const_div AeMeasurable.constDiv
-#align ae_measurable.const_sub AeMeasurable.const_sub
+theorem AEMeasurable.const_div [HasMeasurableDiv G] (hf : AEMeasurable f μ) (c : G) :
+ AEMeasurable (fun x => c / f x) μ :=
+ (HasMeasurableDiv.measurable_const_div c).comp_aemeasurable hf
+#align ae_measurable.const_div AEMeasurable.const_div
+#align ae_measurable.const_sub AEMeasurable.const_sub
@[measurability, to_additive]
theorem Measurable.div_const [HasMeasurableDiv G] (hf : Measurable f) (c : G) :
@@ -327,11 +329,11 @@ theorem Measurable.div_const [HasMeasurableDiv G] (hf : Measurable f) (c : G) :
#align measurable.sub_const Measurable.sub_const
@[measurability, to_additive]
-theorem AeMeasurable.divConst [HasMeasurableDiv G] (hf : AeMeasurable f μ) (c : G) :
- AeMeasurable (fun x => f x / c) μ :=
- (HasMeasurableDiv.measurable_div_const c).compAeMeasurable hf
-#align ae_measurable.div_const AeMeasurable.divConst
-#align ae_measurable.sub_const AeMeasurable.sub_const
+theorem AEMeasurable.div_const [HasMeasurableDiv G] (hf : AEMeasurable f μ) (c : G) :
+ AEMeasurable (fun x => f x / c) μ :=
+ (HasMeasurableDiv.measurable_div_const c).comp_aemeasurable hf
+#align ae_measurable.div_const AEMeasurable.div_const
+#align ae_measurable.sub_const AEMeasurable.sub_const
@[measurability, to_additive]
theorem Measurable.div' [HasMeasurableDiv₂ G] (hf : Measurable f) (hg : Measurable g) :
@@ -348,21 +350,21 @@ theorem Measurable.div [HasMeasurableDiv₂ G] (hf : Measurable f) (hg : Measura
#align measurable.sub Measurable.sub
@[measurability, to_additive]
-theorem AeMeasurable.div' [HasMeasurableDiv₂ G] (hf : AeMeasurable f μ) (hg : AeMeasurable g μ) :
- AeMeasurable (f / g) μ :=
- measurable_div.compAeMeasurable (hf.prod_mk hg)
-#align ae_measurable.div' AeMeasurable.div'
-#align ae_measurable.sub' AeMeasurable.sub'
+theorem AEMeasurable.div' [HasMeasurableDiv₂ G] (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
+ AEMeasurable (f / g) μ :=
+ measurable_div.comp_aemeasurable (hf.prod_mk hg)
+#align ae_measurable.div' AEMeasurable.div'
+#align ae_measurable.sub' AEMeasurable.sub'
@[measurability, to_additive]
-theorem AeMeasurable.div [HasMeasurableDiv₂ G] (hf : AeMeasurable f μ) (hg : AeMeasurable g μ) :
- AeMeasurable (fun a => f a / g a) μ :=
- measurable_div.compAeMeasurable (hf.prod_mk hg)
-#align ae_measurable.div AeMeasurable.div
-#align ae_measurable.sub AeMeasurable.sub
+theorem AEMeasurable.div [HasMeasurableDiv₂ G] (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
+ AEMeasurable (fun a => f a / g a) μ :=
+ measurable_div.comp_aemeasurable (hf.prod_mk hg)
+#align ae_measurable.div AEMeasurable.div
+#align ae_measurable.sub AEMeasurable.sub
attribute [measurability]
- Measurable.sub Measurable.sub' AeMeasurable.sub AeMeasurable.sub' Measurable.const_sub AeMeasurable.const_sub Measurable.sub_const AeMeasurable.sub_const
+ Measurable.sub Measurable.sub' AEMeasurable.sub AEMeasurable.sub' Measurable.const_sub AEMeasurable.const_sub Measurable.sub_const AEMeasurable.sub_const
omit m
@@ -400,15 +402,15 @@ theorem measurableSet_eq_fun {m : MeasurableSpace α} {E} [MeasurableSpace E] [A
simp_rw [Set.mem_setOf_eq, Pi.sub_apply, sub_eq_zero]
#align measurable_set_eq_fun measurableSet_eq_fun
-theorem nullMeasurableSetEqFun {E} [MeasurableSpace E] [AddGroup E] [MeasurableSingletonClass E]
- [HasMeasurableSub₂ E] {f g : α → E} (hf : AeMeasurable f μ) (hg : AeMeasurable g μ) :
+theorem nullMeasurableSet_eq_fun {E} [MeasurableSpace E] [AddGroup E] [MeasurableSingletonClass E]
+ [HasMeasurableSub₂ E] {f g : α → E} (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
NullMeasurableSet { x | f x = g x } μ :=
by
apply (measurableSet_eq_fun hf.measurable_mk hg.measurable_mk).NullMeasurableSet.congr
filter_upwards [hf.ae_eq_mk, hg.ae_eq_mk]with x hfx hgx
change (hf.mk f x = hg.mk g x) = (f x = g x)
simp only [hfx, hgx]
-#align null_measurable_set_eq_fun nullMeasurableSetEqFun
+#align null_measurable_set_eq_fun nullMeasurableSet_eq_fun
theorem measurableSet_eq_fun_of_countable {m : MeasurableSpace α} {E} [MeasurableSpace E]
[MeasurableSingletonClass E] [Countable E] {f g : α → E} (hf : Measurable f)
@@ -480,12 +482,12 @@ theorem Measurable.inv (hf : Measurable f) : Measurable fun x => (f x)⁻¹ :=
#align measurable.neg Measurable.neg
@[measurability, to_additive]
-theorem AeMeasurable.inv (hf : AeMeasurable f μ) : AeMeasurable (fun x => (f x)⁻¹) μ :=
- measurable_inv.compAeMeasurable hf
-#align ae_measurable.inv AeMeasurable.inv
-#align ae_measurable.neg AeMeasurable.neg
+theorem AEMeasurable.inv (hf : AEMeasurable f μ) : AEMeasurable (fun x => (f x)⁻¹) μ :=
+ measurable_inv.comp_aemeasurable hf
+#align ae_measurable.inv AEMeasurable.inv
+#align ae_measurable.neg AEMeasurable.neg
-attribute [measurability] Measurable.neg AeMeasurable.neg
+attribute [measurability] Measurable.neg AEMeasurable.neg
@[simp, to_additive]
theorem measurable_inv_iff {G : Type _} [Group G] [MeasurableSpace G] [HasMeasurableInv G]
@@ -495,11 +497,11 @@ theorem measurable_inv_iff {G : Type _} [Group G] [MeasurableSpace G] [HasMeasur
#align measurable_neg_iff measurable_neg_iff
@[simp, to_additive]
-theorem aeMeasurable_inv_iff {G : Type _} [Group G] [MeasurableSpace G] [HasMeasurableInv G]
- {f : α → G} : AeMeasurable (fun x => (f x)⁻¹) μ ↔ AeMeasurable f μ :=
+theorem aEMeasurable_inv_iff {G : Type _} [Group G] [MeasurableSpace G] [HasMeasurableInv G]
+ {f : α → G} : AEMeasurable (fun x => (f x)⁻¹) μ ↔ AEMeasurable f μ :=
⟨fun h => by simpa only [inv_inv] using h.inv, fun h => h.inv⟩
-#align ae_measurable_inv_iff aeMeasurable_inv_iff
-#align ae_measurable_neg_iff ae_measurable_neg_iff
+#align ae_measurable_inv_iff aEMeasurable_inv_iff
+#align ae_measurable_neg_iff aEMeasurable_neg_iff
@[simp]
theorem measurable_inv_iff₀ {G₀ : Type _} [GroupWithZero G₀] [MeasurableSpace G₀]
@@ -508,10 +510,10 @@ theorem measurable_inv_iff₀ {G₀ : Type _} [GroupWithZero G₀] [MeasurableSp
#align measurable_inv_iff₀ measurable_inv_iff₀
@[simp]
-theorem aeMeasurable_inv_iff₀ {G₀ : Type _} [GroupWithZero G₀] [MeasurableSpace G₀]
- [HasMeasurableInv G₀] {f : α → G₀} : AeMeasurable (fun x => (f x)⁻¹) μ ↔ AeMeasurable f μ :=
+theorem aEMeasurable_inv_iff₀ {G₀ : Type _} [GroupWithZero G₀] [MeasurableSpace G₀]
+ [HasMeasurableInv G₀] {f : α → G₀} : AEMeasurable (fun x => (f x)⁻¹) μ ↔ AEMeasurable f μ :=
⟨fun h => by simpa only [inv_inv] using h.inv, fun h => h.inv⟩
-#align ae_measurable_inv_iff₀ aeMeasurable_inv_iff₀
+#align ae_measurable_inv_iff₀ aEMeasurable_inv_iff₀
omit m
@@ -636,11 +638,11 @@ theorem Measurable.smul [HasMeasurableSmul₂ M β] (hf : Measurable f) (hg : Me
#align measurable.vadd Measurable.vadd
@[measurability, to_additive]
-theorem AeMeasurable.smul [HasMeasurableSmul₂ M β] {μ : Measure α} (hf : AeMeasurable f μ)
- (hg : AeMeasurable g μ) : AeMeasurable (fun x => f x • g x) μ :=
- HasMeasurableSmul₂.measurable_smul.compAeMeasurable (hf.prod_mk hg)
-#align ae_measurable.smul AeMeasurable.smul
-#align ae_measurable.vadd AeMeasurable.vadd
+theorem AEMeasurable.smul [HasMeasurableSmul₂ M β] {μ : Measure α} (hf : AEMeasurable f μ)
+ (hg : AEMeasurable g μ) : AEMeasurable (fun x => f x • g x) μ :=
+ HasMeasurableSmul₂.measurable_smul.comp_aemeasurable (hf.prod_mk hg)
+#align ae_measurable.smul AEMeasurable.smul
+#align ae_measurable.vadd AEMeasurable.vadd
omit m
@@ -662,11 +664,11 @@ theorem Measurable.smul_const (hf : Measurable f) (y : β) : Measurable fun x =>
#align measurable.vadd_const Measurable.vadd_const
@[measurability, to_additive]
-theorem AeMeasurable.smulConst (hf : AeMeasurable f μ) (y : β) :
- AeMeasurable (fun x => f x • y) μ :=
- (HasMeasurableSmul.measurable_smul_const y).compAeMeasurable hf
-#align ae_measurable.smul_const AeMeasurable.smulConst
-#align ae_measurable.vadd_const AeMeasurable.vadd_const
+theorem AEMeasurable.smul_const (hf : AEMeasurable f μ) (y : β) :
+ AEMeasurable (fun x => f x • y) μ :=
+ (HasMeasurableSmul.measurable_smul_const y).comp_aemeasurable hf
+#align ae_measurable.smul_const AEMeasurable.smul_const
+#align ae_measurable.vadd_const AEMeasurable.vadd_const
@[measurability, to_additive]
theorem Measurable.const_smul' (hg : Measurable g) (c : M) : Measurable fun x => c • g x :=
@@ -681,17 +683,17 @@ theorem Measurable.const_smul (hg : Measurable g) (c : M) : Measurable (c • g)
#align measurable.const_vadd Measurable.const_vadd
@[measurability, to_additive]
-theorem AeMeasurable.constSmul' (hg : AeMeasurable g μ) (c : M) :
- AeMeasurable (fun x => c • g x) μ :=
- (HasMeasurableSmul.measurable_const_smul c).compAeMeasurable hg
-#align ae_measurable.const_smul' AeMeasurable.constSmul'
-#align ae_measurable.const_vadd' AeMeasurable.const_vadd'
+theorem AEMeasurable.const_smul' (hg : AEMeasurable g μ) (c : M) :
+ AEMeasurable (fun x => c • g x) μ :=
+ (HasMeasurableSmul.measurable_const_smul c).comp_aemeasurable hg
+#align ae_measurable.const_smul' AEMeasurable.const_smul'
+#align ae_measurable.const_vadd' AEMeasurable.const_vadd'
@[measurability, to_additive]
-theorem AeMeasurable.constSmul (hf : AeMeasurable g μ) (c : M) : AeMeasurable (c • g) μ :=
+theorem AEMeasurable.const_smul (hf : AEMeasurable g μ) (c : M) : AEMeasurable (c • g) μ :=
hf.const_smul' c
-#align ae_measurable.const_smul AeMeasurable.constSmul
-#align ae_measurable.const_vadd AeMeasurable.const_vadd
+#align ae_measurable.const_smul AEMeasurable.const_smul
+#align ae_measurable.const_vadd AEMeasurable.const_vadd
omit m
@@ -745,11 +747,11 @@ theorem measurable_const_smul_iff (c : G) : (Measurable fun x => c • f x) ↔
#align measurable_const_vadd_iff measurable_const_vadd_iff
@[to_additive]
-theorem aeMeasurable_const_smul_iff (c : G) :
- AeMeasurable (fun x => c • f x) μ ↔ AeMeasurable f μ :=
+theorem aEMeasurable_const_smul_iff (c : G) :
+ AEMeasurable (fun x => c • f x) μ ↔ AEMeasurable f μ :=
⟨fun h => by simpa only [inv_smul_smul] using h.const_smul' c⁻¹, fun h => h.const_smul c⟩
-#align ae_measurable_const_smul_iff aeMeasurable_const_smul_iff
-#align ae_measurable_const_vadd_iff ae_measurable_const_vadd_iff
+#align ae_measurable_const_smul_iff aEMeasurable_const_smul_iff
+#align ae_measurable_const_vadd_iff aEMeasurable_const_vadd_iff
@[to_additive]
instance : MeasurableSpace Mˣ :=
@@ -773,12 +775,12 @@ theorem IsUnit.measurable_const_smul_iff {c : M} (hc : IsUnit c) :
#align is_add_unit.measurable_const_vadd_iff IsAddUnit.measurable_const_vadd_iff
@[to_additive]
-theorem IsUnit.aeMeasurable_const_smul_iff {c : M} (hc : IsUnit c) :
- AeMeasurable (fun x => c • f x) μ ↔ AeMeasurable f μ :=
+theorem IsUnit.aEMeasurable_const_smul_iff {c : M} (hc : IsUnit c) :
+ AEMeasurable (fun x => c • f x) μ ↔ AEMeasurable f μ :=
let ⟨u, hu⟩ := hc
- hu ▸ aeMeasurable_const_smul_iff u
-#align is_unit.ae_measurable_const_smul_iff IsUnit.aeMeasurable_const_smul_iff
-#align is_add_unit.ae_measurable_const_vadd_iff IsAddUnit.ae_measurable_const_vadd_iff
+ hu ▸ aEMeasurable_const_smul_iff u
+#align is_unit.ae_measurable_const_smul_iff IsUnit.aEMeasurable_const_smul_iff
+#align is_add_unit.ae_measurable_const_vadd_iff IsAddUnit.aEMeasurable_const_vadd_iff
variable {G₀ : Type _} [GroupWithZero G₀] [MeasurableSpace G₀] [MulAction G₀ β]
[HasMeasurableSmul G₀ β]
@@ -788,10 +790,10 @@ theorem measurable_const_smul_iff₀ {c : G₀} (hc : c ≠ 0) :
(IsUnit.mk0 c hc).measurable_const_smul_iff
#align measurable_const_smul_iff₀ measurable_const_smul_iff₀
-theorem aeMeasurable_const_smul_iff₀ {c : G₀} (hc : c ≠ 0) :
- AeMeasurable (fun x => c • f x) μ ↔ AeMeasurable f μ :=
- (IsUnit.mk0 c hc).aeMeasurable_const_smul_iff
-#align ae_measurable_const_smul_iff₀ aeMeasurable_const_smul_iff₀
+theorem aEMeasurable_const_smul_iff₀ {c : G₀} (hc : c ≠ 0) :
+ AEMeasurable (fun x => c • f x) μ ↔ AEMeasurable f μ :=
+ (IsUnit.mk0 c hc).aEMeasurable_const_smul_iff
+#align ae_measurable_const_smul_iff₀ aEMeasurable_const_smul_iff₀
end MulAction
@@ -889,14 +891,14 @@ theorem List.measurable_prod' (l : List (α → M)) (hl : ∀ f ∈ l, Measurabl
#align list.measurable_sum' List.measurable_sum'
@[measurability, to_additive]
-theorem List.aeMeasurableProd' (l : List (α → M)) (hl : ∀ f ∈ l, AeMeasurable f μ) :
- AeMeasurable l.Prod μ := by
- induction' l with f l ihl; · exact aeMeasurableOne
+theorem List.aEMeasurable_prod' (l : List (α → M)) (hl : ∀ f ∈ l, AEMeasurable f μ) :
+ AEMeasurable l.Prod μ := by
+ induction' l with f l ihl; · exact aEMeasurable_one
rw [List.forall_mem_cons] at hl
rw [List.prod_cons]
exact hl.1.mul (ihl hl.2)
-#align list.ae_measurable_prod' List.aeMeasurableProd'
-#align list.ae_measurable_sum' List.ae_measurable_sum'
+#align list.ae_measurable_prod' List.aEMeasurable_prod'
+#align list.ae_measurable_sum' List.aEMeasurable_sum'
@[measurability, to_additive]
theorem List.measurable_prod (l : List (α → M)) (hl : ∀ f ∈ l, Measurable f) :
@@ -906,11 +908,11 @@ theorem List.measurable_prod (l : List (α → M)) (hl : ∀ f ∈ l, Measurable
#align list.measurable_sum List.measurable_sum
@[measurability, to_additive]
-theorem List.aeMeasurableProd (l : List (α → M)) (hl : ∀ f ∈ l, AeMeasurable f μ) :
- AeMeasurable (fun x => (l.map fun f : α → M => f x).Prod) μ := by
+theorem List.aEMeasurable_prod (l : List (α → M)) (hl : ∀ f ∈ l, AEMeasurable f μ) :
+ AEMeasurable (fun x => (l.map fun f : α → M => f x).Prod) μ := by
simpa only [← Pi.list_prod_apply] using l.ae_measurable_prod' hl
-#align list.ae_measurable_prod List.aeMeasurableProd
-#align list.ae_measurable_sum List.ae_measurable_sum
+#align list.ae_measurable_prod List.aEMeasurable_prod
+#align list.ae_measurable_sum List.aEMeasurable_sum
omit m
@@ -932,12 +934,12 @@ theorem Multiset.measurable_prod' (l : Multiset (α → M)) (hl : ∀ f ∈ l, M
#align multiset.measurable_sum' Multiset.measurable_sum'
@[measurability, to_additive]
-theorem Multiset.aeMeasurableProd' (l : Multiset (α → M)) (hl : ∀ f ∈ l, AeMeasurable f μ) :
- AeMeasurable l.Prod μ := by
+theorem Multiset.aEMeasurable_prod' (l : Multiset (α → M)) (hl : ∀ f ∈ l, AEMeasurable f μ) :
+ AEMeasurable l.Prod μ := by
rcases l with ⟨l⟩
simpa using l.ae_measurable_prod' (by simpa using hl)
-#align multiset.ae_measurable_prod' Multiset.aeMeasurableProd'
-#align multiset.ae_measurable_sum' Multiset.ae_measurable_sum'
+#align multiset.ae_measurable_prod' Multiset.aEMeasurable_prod'
+#align multiset.ae_measurable_sum' Multiset.aEMeasurable_sum'
@[measurability, to_additive]
theorem Multiset.measurable_prod (s : Multiset (α → M)) (hs : ∀ f ∈ s, Measurable f) :
@@ -947,11 +949,11 @@ theorem Multiset.measurable_prod (s : Multiset (α → M)) (hs : ∀ f ∈ s, Me
#align multiset.measurable_sum Multiset.measurable_sum
@[measurability, to_additive]
-theorem Multiset.aeMeasurableProd (s : Multiset (α → M)) (hs : ∀ f ∈ s, AeMeasurable f μ) :
- AeMeasurable (fun x => (s.map fun f : α → M => f x).Prod) μ := by
+theorem Multiset.aEMeasurable_prod (s : Multiset (α → M)) (hs : ∀ f ∈ s, AEMeasurable f μ) :
+ AEMeasurable (fun x => (s.map fun f : α → M => f x).Prod) μ := by
simpa only [← Pi.multiset_prod_apply] using s.ae_measurable_prod' hs
-#align multiset.ae_measurable_prod Multiset.aeMeasurableProd
-#align multiset.ae_measurable_sum Multiset.ae_measurable_sum
+#align multiset.ae_measurable_prod Multiset.aEMeasurable_prod
+#align multiset.ae_measurable_sum Multiset.aEMeasurable_sum
@[measurability, to_additive]
theorem Finset.measurable_prod' (s : Finset ι) (hf : ∀ i ∈ s, Measurable (f i)) :
@@ -968,20 +970,20 @@ theorem Finset.measurable_prod (s : Finset ι) (hf : ∀ i ∈ s, Measurable (f
#align finset.measurable_sum Finset.measurable_sum
@[measurability, to_additive]
-theorem Finset.aeMeasurableProd' (s : Finset ι) (hf : ∀ i ∈ s, AeMeasurable (f i) μ) :
- AeMeasurable (∏ i in s, f i) μ :=
- Multiset.aeMeasurableProd' _ fun g hg =>
+theorem Finset.aEMeasurable_prod' (s : Finset ι) (hf : ∀ i ∈ s, AEMeasurable (f i) μ) :
+ AEMeasurable (∏ i in s, f i) μ :=
+ Multiset.aEMeasurable_prod' _ fun g hg =>
let ⟨i, hi, hg⟩ := Multiset.mem_map.1 hg
hg ▸ hf _ hi
-#align finset.ae_measurable_prod' Finset.aeMeasurableProd'
-#align finset.ae_measurable_sum' Finset.ae_measurable_sum'
+#align finset.ae_measurable_prod' Finset.aEMeasurable_prod'
+#align finset.ae_measurable_sum' Finset.aEMeasurable_sum'
@[measurability, to_additive]
-theorem Finset.aeMeasurableProd (s : Finset ι) (hf : ∀ i ∈ s, AeMeasurable (f i) μ) :
- AeMeasurable (fun a => ∏ i in s, f i a) μ := by
+theorem Finset.aEMeasurable_prod (s : Finset ι) (hf : ∀ i ∈ s, AEMeasurable (f i) μ) :
+ AEMeasurable (fun a => ∏ i in s, f i a) μ := by
simpa only [← Finset.prod_apply] using s.ae_measurable_prod' hf
-#align finset.ae_measurable_prod Finset.aeMeasurableProd
-#align finset.ae_measurable_sum Finset.ae_measurable_sum
+#align finset.ae_measurable_prod Finset.aEMeasurable_prod
+#align finset.ae_measurable_sum Finset.aEMeasurable_sum
omit m
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
Shortcuts for linearly ordered domains and/or continuous functions. As an example, I golf the existing integrable_of_isBigO_exp_neg
.
Another example usage: https://github.com/AlexKontorovich/PrimeNumberTheoremAnd/blob/1909a40253607bd2df18a738fc504fe81b132974/PrimeNumberTheoremAnd/PerronFormula.lean#L414-L436
Co-authored-by: L Lllvvuu <git@llllvvuu.dev>
@@ -513,6 +513,11 @@ theorem MeasurableSet.inv {s : Set G} (hs : MeasurableSet s) : MeasurableSet s
#align measurable_set.inv MeasurableSet.inv
#align measurable_set.neg MeasurableSet.neg
+@[to_additive]
+theorem measurableEmbedding_inv [InvolutiveInv α] [MeasurableInv α] :
+ MeasurableEmbedding (Inv.inv (α := α)) :=
+ ⟨inv_injective, measurable_inv, fun s hs ↦ s.image_inv ▸ hs.inv⟩
+
end Inv
/-- `DivInvMonoid.Pow` is measurable. -/
We change the following field in the definition of an additive commutative monoid:
nsmul_succ : ∀ (n : ℕ) (x : G),
- AddMonoid.nsmul (n + 1) x = x + AddMonoid.nsmul n x
+ AddMonoid.nsmul (n + 1) x = AddMonoid.nsmul n x + x
where the latter is more natural
We adjust the definitions of ^
in monoids, groups, etc.
Originally there was a warning comment about why this natural order was preferred
use
x * npowRec n x
and notnpowRec n x * x
in the definition to make sure that definitional unfolding ofnpowRec
is blocked, to avoid deep recursion issues.
but it seems to no longer apply.
Remarks on the PR :
pow_succ
and pow_succ'
have switched their meanings.Ideal.IsPrime.mul_mem_pow
which is defined in [Mathlib/RingTheory/DedekindDomain/Ideal.lean]. Changing the order of operation forced me to add the symmetric lemma Ideal.IsPrime.mem_pow_mul
.@@ -204,7 +204,7 @@ instance Monoid.measurablePow (M : Type*) [Monoid M] [MeasurableSpace M] [Measur
induction' n with n ih
· simp only [Nat.zero_eq, pow_zero, ← Pi.one_def, measurable_one]
· simp only [pow_succ]
- exact measurable_id.mul ih⟩
+ exact ih.mul measurable_id⟩
#align monoid.has_measurable_pow Monoid.measurablePow
section Pow
@@ -699,7 +699,7 @@ instance AddMonoid.measurableSMul_nat₂ (M : Type*) [AddMonoid M] [MeasurableSp
induction' n with n ih
· simp only [Nat.zero_eq, zero_smul, ← Pi.zero_def, measurable_zero]
· simp only [succ_nsmul]
- exact measurable_id.add ih⟩
+ exact ih.add measurable_id⟩
#align add_monoid.has_measurable_smul_nat₂ AddMonoid.measurableSMul_nat₂
/-- `SubNegMonoid.SMulInt` is measurable. -/
zpow_coe_nat
to zpow_natCast
(#11528)
... and add a deprecated alias for the old name. This is mostly just me discovering the power of F2
@@ -520,7 +520,7 @@ instance DivInvMonoid.measurableZPow (G : Type u) [DivInvMonoid G] [MeasurableSp
[MeasurableMul₂ G] [MeasurableInv G] : MeasurablePow G ℤ :=
⟨measurable_from_prod_countable fun n => by
cases' n with n n
- · simp_rw [Int.ofNat_eq_coe, zpow_coe_nat]
+ · simp_rw [Int.ofNat_eq_coe, zpow_natCast]
exact measurable_id.pow_const _
· simp_rw [zpow_negSucc]
exact (measurable_id.pow_const (n + 1)).inv⟩
@@ -709,7 +709,7 @@ instance SubNegMonoid.measurableSMul_int₂ (M : Type*) [SubNegMonoid M] [Measur
suffices Measurable fun p : M × ℤ => p.2 • p.1 by apply this.comp measurable_swap
refine' measurable_from_prod_countable fun n => _
induction' n with n n ih
- · simp only [Int.ofNat_eq_coe, coe_nat_zsmul]
+ · simp only [Int.ofNat_eq_coe, natCast_zsmul]
exact measurable_const_smul _
· simp only [negSucc_zsmul]
exact (measurable_const_smul _).neg⟩
@@ -383,6 +383,18 @@ theorem measurableSet_eq_fun {m : MeasurableSpace α} {E} [MeasurableSpace E] [A
simp_rw [Set.mem_setOf_eq, Pi.sub_apply, sub_eq_zero]
#align measurable_set_eq_fun measurableSet_eq_fun
+@[measurability]
+lemma measurableSet_eq_fun' {β : Type*} [CanonicallyOrderedAddCommMonoid β] [Sub β] [OrderedSub β]
+ {_ : MeasurableSpace β} [MeasurableSub₂ β] [MeasurableSingletonClass β]
+ {f g : α → β} (hf : Measurable f) (hg : Measurable g) :
+ MeasurableSet {x | f x = g x} := by
+ have : {a | f a = g a} = {a | (f - g) a = 0} ∩ {a | (g - f) a = 0} := by
+ ext
+ simp only [Set.mem_setOf_eq, Pi.sub_apply, tsub_eq_zero_iff_le, Set.mem_inter_iff]
+ exact ⟨fun h ↦ ⟨h.le, h.symm.le⟩, fun h ↦ le_antisymm h.1 h.2⟩
+ rw [this]
+ exact ((hf.sub hg) (measurableSet_singleton 0)).inter ((hg.sub hf) (measurableSet_singleton 0))
+
theorem nullMeasurableSet_eq_fun {E} [MeasurableSpace E] [AddGroup E] [MeasurableSingletonClass E]
[MeasurableSub₂ E] {f g : α → E} (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
NullMeasurableSet { x | f x = g x } μ := by
zpow_ofNat
and ofNat_zsmul
(#10969)
Previously these were syntactically identical to the corresponding zpow_coe_nat
and coe_nat_zsmul
lemmas, now they are about OfNat.ofNat
.
Unfortunately, almost every call site uses the ofNat
name to refer to Nat.cast
, so the downstream proofs had to be adjusted too.
@@ -508,7 +508,7 @@ instance DivInvMonoid.measurableZPow (G : Type u) [DivInvMonoid G] [MeasurableSp
[MeasurableMul₂ G] [MeasurableInv G] : MeasurablePow G ℤ :=
⟨measurable_from_prod_countable fun n => by
cases' n with n n
- · simp_rw [Int.ofNat_eq_coe, zpow_ofNat]
+ · simp_rw [Int.ofNat_eq_coe, zpow_coe_nat]
exact measurable_id.pow_const _
· simp_rw [zpow_negSucc]
exact (measurable_id.pow_const (n + 1)).inv⟩
@@ -697,7 +697,7 @@ instance SubNegMonoid.measurableSMul_int₂ (M : Type*) [SubNegMonoid M] [Measur
suffices Measurable fun p : M × ℤ => p.2 • p.1 by apply this.comp measurable_swap
refine' measurable_from_prod_countable fun n => _
induction' n with n n ih
- · simp only [Int.ofNat_eq_coe, ofNat_zsmul]
+ · simp only [Int.ofNat_eq_coe, coe_nat_zsmul]
exact measurable_const_smul _
· simp only [negSucc_zsmul]
exact (measurable_const_smul _).neg⟩
@@ -129,28 +129,28 @@ theorem AEMeasurable.mul_const [MeasurableMul M] (hf : AEMeasurable f μ) (c : M
#align ae_measurable.mul_const AEMeasurable.mul_const
#align ae_measurable.add_const AEMeasurable.add_const
-@[to_additive (attr := aesop safe 20 apply (rule_sets [Measurable]))]
+@[to_additive (attr := aesop safe 20 apply (rule_sets := [Measurable]))]
theorem Measurable.mul' [MeasurableMul₂ M] (hf : Measurable f) (hg : Measurable g) :
Measurable (f * g) :=
measurable_mul.comp (hf.prod_mk hg)
#align measurable.mul' Measurable.mul'
#align measurable.add' Measurable.add'
-@[to_additive (attr := aesop safe 20 apply (rule_sets [Measurable]))]
+@[to_additive (attr := aesop safe 20 apply (rule_sets := [Measurable]))]
theorem Measurable.mul [MeasurableMul₂ M] (hf : Measurable f) (hg : Measurable g) :
Measurable fun a => f a * g a :=
measurable_mul.comp (hf.prod_mk hg)
#align measurable.mul Measurable.mul
#align measurable.add Measurable.add
-@[to_additive (attr := aesop safe 20 apply (rule_sets [Measurable]))]
+@[to_additive (attr := aesop safe 20 apply (rule_sets := [Measurable]))]
theorem AEMeasurable.mul' [MeasurableMul₂ M] (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
AEMeasurable (f * g) μ :=
measurable_mul.comp_aemeasurable (hf.prod_mk hg)
#align ae_measurable.mul' AEMeasurable.mul'
#align ae_measurable.add' AEMeasurable.add'
-@[to_additive (attr := aesop safe 20 apply (rule_sets [Measurable]))]
+@[to_additive (attr := aesop safe 20 apply (rule_sets := [Measurable]))]
theorem AEMeasurable.mul [MeasurableMul₂ M] (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
AEMeasurable (fun a => f a * g a) μ :=
measurable_mul.comp_aemeasurable (hf.prod_mk hg)
@@ -212,12 +212,12 @@ section Pow
variable {β γ α : Type*} [MeasurableSpace β] [MeasurableSpace γ] [Pow β γ] [MeasurablePow β γ]
{m : MeasurableSpace α} {μ : Measure α} {f : α → β} {g : α → γ}
-@[aesop safe 20 apply (rule_sets [Measurable])]
+@[aesop safe 20 apply (rule_sets := [Measurable])]
theorem Measurable.pow (hf : Measurable f) (hg : Measurable g) : Measurable fun x => f x ^ g x :=
measurable_pow.comp (hf.prod_mk hg)
#align measurable.pow Measurable.pow
-@[aesop safe 20 apply (rule_sets [Measurable])]
+@[aesop safe 20 apply (rule_sets := [Measurable])]
theorem AEMeasurable.pow (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
AEMeasurable (fun x => f x ^ g x) μ :=
measurable_pow.comp_aemeasurable (hf.prod_mk hg)
@@ -322,28 +322,28 @@ theorem AEMeasurable.div_const [MeasurableDiv G] (hf : AEMeasurable f μ) (c : G
#align ae_measurable.div_const AEMeasurable.div_const
#align ae_measurable.sub_const AEMeasurable.sub_const
-@[to_additive (attr := aesop safe 20 apply (rule_sets [Measurable]))]
+@[to_additive (attr := aesop safe 20 apply (rule_sets := [Measurable]))]
theorem Measurable.div' [MeasurableDiv₂ G] (hf : Measurable f) (hg : Measurable g) :
Measurable (f / g) :=
measurable_div.comp (hf.prod_mk hg)
#align measurable.div' Measurable.div'
#align measurable.sub' Measurable.sub'
-@[to_additive (attr := aesop safe 20 apply (rule_sets [Measurable]))]
+@[to_additive (attr := aesop safe 20 apply (rule_sets := [Measurable]))]
theorem Measurable.div [MeasurableDiv₂ G] (hf : Measurable f) (hg : Measurable g) :
Measurable fun a => f a / g a :=
measurable_div.comp (hf.prod_mk hg)
#align measurable.div Measurable.div
#align measurable.sub Measurable.sub
-@[to_additive (attr := aesop safe 20 apply (rule_sets [Measurable]))]
+@[to_additive (attr := aesop safe 20 apply (rule_sets := [Measurable]))]
theorem AEMeasurable.div' [MeasurableDiv₂ G] (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
AEMeasurable (f / g) μ :=
measurable_div.comp_aemeasurable (hf.prod_mk hg)
#align ae_measurable.div' AEMeasurable.div'
#align ae_measurable.sub' AEMeasurable.sub'
-@[to_additive (attr := aesop safe 20 apply (rule_sets [Measurable]))]
+@[to_additive (attr := aesop safe 20 apply (rule_sets := [Measurable]))]
theorem AEMeasurable.div [MeasurableDiv₂ G] (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
AEMeasurable (fun a => f a / g a) μ :=
measurable_div.comp_aemeasurable (hf.prod_mk hg)
@@ -608,14 +608,14 @@ section SMul
variable {M β α : Type*} [MeasurableSpace M] [MeasurableSpace β] [_root_.SMul M β]
{m : MeasurableSpace α} {f : α → M} {g : α → β}
-@[to_additive (attr := aesop safe 20 apply (rule_sets [Measurable]))]
+@[to_additive (attr := aesop safe 20 apply (rule_sets := [Measurable]))]
theorem Measurable.smul [MeasurableSMul₂ M β] (hf : Measurable f) (hg : Measurable g) :
Measurable fun x => f x • g x :=
measurable_smul.comp (hf.prod_mk hg)
#align measurable.smul Measurable.smul
#align measurable.vadd Measurable.vadd
-@[to_additive (attr := aesop safe 20 apply (rule_sets [Measurable]))]
+@[to_additive (attr := aesop safe 20 apply (rule_sets := [Measurable]))]
theorem AEMeasurable.smul [MeasurableSMul₂ M β] {μ : Measure α} (hf : AEMeasurable f μ)
(hg : AEMeasurable g μ) : AEMeasurable (fun x => f x • g x) μ :=
MeasurableSMul₂.measurable_smul.comp_aemeasurable (hf.prod_mk hg)
refine
s (#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 refine
s, but maybe the current change is beneficial.
@@ -829,7 +829,7 @@ nonrec instance MeasurableSMul₂.op {M α} [MeasurableSpace M] [MeasurableSpace
[SMul Mᵐᵒᵖ α] [IsCentralScalar M α] [MeasurableSMul₂ M α] : MeasurableSMul₂ Mᵐᵒᵖ α :=
⟨show Measurable fun x : Mᵐᵒᵖ × α => op (unop x.1) • x.2 by
simp_rw [op_smul_eq_smul]
- refine' (measurable_mul_unop.comp measurable_fst).smul measurable_snd⟩
+ exact (measurable_mul_unop.comp measurable_fst).smul measurable_snd⟩
#align has_measurable_smul₂.op MeasurableSMul₂.op
@[to_additive]
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>
@@ -376,8 +376,8 @@ instance Pi.measurableDiv₂ {ι : Type*} {α : ι → Type*} [∀ i, Div (α i)
theorem measurableSet_eq_fun {m : MeasurableSpace α} {E} [MeasurableSpace E] [AddGroup E]
[MeasurableSingletonClass E] [MeasurableSub₂ E] {f g : α → E} (hf : Measurable f)
(hg : Measurable g) : MeasurableSet { x | f x = g x } := by
- suffices h_set_eq : { x : α | f x = g x } = { x | (f - g) x = (0 : E) }
- · rw [h_set_eq]
+ suffices h_set_eq : { x : α | f x = g x } = { x | (f - g) x = (0 : E) } by
+ rw [h_set_eq]
exact (hf.sub hg) measurableSet_eq
ext
simp_rw [Set.mem_setOf_eq, Pi.sub_apply, sub_eq_zero]
Nsmul
-> NSMul
, Zpow
-> ZPow
, etc (#9067)
Normalising to naming convention rule number 6.
@@ -504,7 +504,7 @@ theorem MeasurableSet.inv {s : Set G} (hs : MeasurableSet s) : MeasurableSet s
end Inv
/-- `DivInvMonoid.Pow` is measurable. -/
-instance DivInvMonoid.measurableZpow (G : Type u) [DivInvMonoid G] [MeasurableSpace G]
+instance DivInvMonoid.measurableZPow (G : Type u) [DivInvMonoid G] [MeasurableSpace G]
[MeasurableMul₂ G] [MeasurableInv G] : MeasurablePow G ℤ :=
⟨measurable_from_prod_countable fun n => by
cases' n with n n
@@ -512,7 +512,7 @@ instance DivInvMonoid.measurableZpow (G : Type u) [DivInvMonoid G] [MeasurableSp
exact measurable_id.pow_const _
· simp_rw [zpow_negSucc]
exact (measurable_id.pow_const (n + 1)).inv⟩
-#align div_inv_monoid.has_measurable_zpow DivInvMonoid.measurableZpow
+#align div_inv_monoid.has_measurable_zpow DivInvMonoid.measurableZPow
@[to_additive]
instance (priority := 100) measurableDiv₂_of_mul_inv (G : Type*) [MeasurableSpace G]
@@ -44,12 +44,11 @@ measurable function, arithmetic operator
in the conclusion of `MeasurableSMul`.)
-/
+open MeasureTheory
+open scoped BigOperators Pointwise
universe u v
-
-open BigOperators Pointwise MeasureTheory
-
-open MeasureTheory
+variable {α : Type*}
/-!
### Binary operations: `(· + ·)`, `(· * ·)`, `(· - ·)`, `(· / ·)`
@@ -524,6 +523,11 @@ instance (priority := 100) measurableDiv₂_of_mul_inv (G : Type*) [MeasurableSp
#align has_measurable_div₂_of_mul_inv measurableDiv₂_of_mul_inv
#align has_measurable_div₂_of_add_neg measurableDiv₂_of_add_neg
+-- See note [lower instance priority]
+instance (priority := 100) MeasurableDiv.toMeasurableInv [MeasurableSpace α] [Group α]
+ [MeasurableDiv α] : MeasurableInv α where
+ measurable_inv := by simpa using measurable_const_div (1 : α)
+
/-- We say that the action of `M` on `α` has `MeasurableVAdd` if for each `c` the map `x ↦ c +ᵥ x`
is a measurable function and for each `x` the map `c ↦ c +ᵥ x` is a measurable function. -/
class MeasurableVAdd (M α : Type*) [VAdd M α] [MeasurableSpace M] [MeasurableSpace α] :
@@ -956,3 +960,29 @@ theorem Finset.aemeasurable_prod (s : Finset ι) (hf : ∀ i ∈ s, AEMeasurable
#align finset.ae_measurable_sum Finset.aemeasurable_sum
end CommMonoid
+
+variable [MeasurableSpace α] [Mul α] [Div α] [Inv α]
+
+@[to_additive] -- See note [lower instance priority]
+instance (priority := 100) DiscreteMeasurableSpace.toMeasurableMul [DiscreteMeasurableSpace α] :
+ MeasurableMul α where
+ measurable_const_mul _ := measurable_discrete _
+ measurable_mul_const _ := measurable_discrete _
+
+@[to_additive DiscreteMeasurableSpace.toMeasurableAdd₂] -- See note [lower instance priority]
+instance (priority := 100) DiscreteMeasurableSpace.toMeasurableMul₂
+ [DiscreteMeasurableSpace (α × α)] : MeasurableMul₂ α := ⟨measurable_discrete _⟩
+
+@[to_additive] -- See note [lower instance priority]
+instance (priority := 100) DiscreteMeasurableSpace.toMeasurableInv [DiscreteMeasurableSpace α] :
+ MeasurableInv α := ⟨measurable_discrete _⟩
+
+@[to_additive] -- See note [lower instance priority]
+instance (priority := 100) DiscreteMeasurableSpace.toMeasurableDiv [DiscreteMeasurableSpace α] :
+ MeasurableDiv α where
+ measurable_const_div _ := measurable_discrete _
+ measurable_div_const _ := measurable_discrete _
+
+@[to_additive DiscreteMeasurableSpace.toMeasurableSub₂] -- See note [lower instance priority]
+instance (priority := 100) DiscreteMeasurableSpace.toMeasurableDiv₂
+ [DiscreteMeasurableSpace (α × α)] : MeasurableDiv₂ α := ⟨measurable_discrete _⟩
(· op ·) a
by (a op ·)
(#8843)
I used the regex \(\(· (.) ·\) (.)\)
, replacing with ($2 $1 ·)
.
@@ -528,8 +528,8 @@ instance (priority := 100) measurableDiv₂_of_mul_inv (G : Type*) [MeasurableSp
is a measurable function and for each `x` the map `c ↦ c +ᵥ x` is a measurable function. -/
class MeasurableVAdd (M α : Type*) [VAdd M α] [MeasurableSpace M] [MeasurableSpace α] :
Prop where
- measurable_const_vadd : ∀ c : M, Measurable ((· +ᵥ ·) c : α → α)
- measurable_vadd_const : ∀ x : α, Measurable fun c : M => c +ᵥ x
+ measurable_const_vadd : ∀ c : M, Measurable (c +ᵥ · : α → α)
+ measurable_vadd_const : ∀ x : α, Measurable (· +ᵥ x : M → α)
#align has_measurable_vadd MeasurableVAdd
#align has_measurable_vadd.measurable_const_vadd MeasurableVAdd.measurable_const_vadd
#align has_measurable_vadd.measurable_vadd_const MeasurableVAdd.measurable_vadd_const
@@ -539,8 +539,8 @@ is a measurable function and for each `x` the map `c ↦ c • x` is a measurabl
@[to_additive]
class MeasurableSMul (M α : Type*) [SMul M α] [MeasurableSpace M] [MeasurableSpace α] :
Prop where
- measurable_const_smul : ∀ c : M, Measurable ((· • ·) c : α → α)
- measurable_smul_const : ∀ x : α, Measurable fun c : M => c • x
+ measurable_const_smul : ∀ c : M, Measurable (c • · : α → α)
+ measurable_smul_const : ∀ x : α, Measurable (· • x : M → α)
#align has_measurable_smul MeasurableSMul
#align has_measurable_smul.measurable_const_smul MeasurableSMul.measurable_const_smul
#align has_measurable_smul.measurable_smul_const MeasurableSMul.measurable_smul_const
filter_upwards
(#7719)
mathport was forgetting a space in filter_upwards [...]with
instead of filter_upwards [...] with
.
@@ -388,7 +388,7 @@ theorem nullMeasurableSet_eq_fun {E} [MeasurableSpace E] [AddGroup E] [Measurabl
[MeasurableSub₂ E] {f g : α → E} (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
NullMeasurableSet { x | f x = g x } μ := by
apply (measurableSet_eq_fun hf.measurable_mk hg.measurable_mk).nullMeasurableSet.congr
- filter_upwards [hf.ae_eq_mk, hg.ae_eq_mk]with x hfx hgx
+ filter_upwards [hf.ae_eq_mk, hg.ae_eq_mk] with x hfx hgx
change (hf.mk f x = hg.mk g x) = (f x = g x)
simp only [hfx, hgx]
#align null_measurable_set_eq_fun nullMeasurableSet_eq_fun
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -58,7 +58,7 @@ open MeasureTheory
/-- We say that a type has `MeasurableAdd` if `(· + c)` and `(· + c)` are measurable functions.
For a typeclass assuming measurability of `uncurry (· + ·)` see `MeasurableAdd₂`. -/
-class MeasurableAdd (M : Type _) [MeasurableSpace M] [Add M] : Prop where
+class MeasurableAdd (M : Type*) [MeasurableSpace M] [Add M] : Prop where
measurable_const_add : ∀ c : M, Measurable (c + ·)
measurable_add_const : ∀ c : M, Measurable (· + c)
#align has_measurable_add MeasurableAdd
@@ -69,7 +69,7 @@ export MeasurableAdd (measurable_const_add measurable_add_const)
/-- We say that a type has `MeasurableAdd₂` if `uncurry (· + ·)` is a measurable functions.
For a typeclass assuming measurability of `(c + ·)` and `(· + c)` see `MeasurableAdd`. -/
-class MeasurableAdd₂ (M : Type _) [MeasurableSpace M] [Add M] : Prop where
+class MeasurableAdd₂ (M : Type*) [MeasurableSpace M] [Add M] : Prop where
measurable_add : Measurable fun p : M × M => p.1 + p.2
#align has_measurable_add₂ MeasurableAdd₂
@@ -78,7 +78,7 @@ export MeasurableAdd₂ (measurable_add)
/-- We say that a type has `MeasurableMul` if `(c * ·)` and `(· * c)` are measurable functions.
For a typeclass assuming measurability of `uncurry (*)` see `MeasurableMul₂`. -/
@[to_additive]
-class MeasurableMul (M : Type _) [MeasurableSpace M] [Mul M] : Prop where
+class MeasurableMul (M : Type*) [MeasurableSpace M] [Mul M] : Prop where
measurable_const_mul : ∀ c : M, Measurable (c * ·)
measurable_mul_const : ∀ c : M, Measurable (· * c)
#align has_measurable_mul MeasurableMul
@@ -90,7 +90,7 @@ export MeasurableMul (measurable_const_mul measurable_mul_const)
/-- We say that a type has `MeasurableMul₂` if `uncurry (· * ·)` is a measurable functions.
For a typeclass assuming measurability of `(c * ·)` and `(· * c)` see `MeasurableMul`. -/
@[to_additive MeasurableAdd₂]
-class MeasurableMul₂ (M : Type _) [MeasurableSpace M] [Mul M] : Prop where
+class MeasurableMul₂ (M : Type*) [MeasurableSpace M] [Mul M] : Prop where
measurable_mul : Measurable fun p : M × M => p.1 * p.2
#align has_measurable_mul₂ MeasurableMul₂
#align has_measurable_mul₂.measurable_mul MeasurableMul₂.measurable_mul
@@ -99,7 +99,7 @@ export MeasurableMul₂ (measurable_mul)
section Mul
-variable {M α : Type _} [MeasurableSpace M] [Mul M] {m : MeasurableSpace α} {f g : α → M}
+variable {M α : Type*} [MeasurableSpace M] [Mul M] {m : MeasurableSpace α} {f g : α → M}
{μ : Measure α}
@[to_additive (attr := measurability)]
@@ -166,7 +166,7 @@ instance (priority := 100) MeasurableMul₂.toMeasurableMul [MeasurableMul₂ M]
#align has_measurable_add₂.to_has_measurable_add MeasurableAdd₂.toMeasurableAdd
@[to_additive]
-instance Pi.measurableMul {ι : Type _} {α : ι → Type _} [∀ i, Mul (α i)]
+instance Pi.measurableMul {ι : Type*} {α : ι → Type*} [∀ i, Mul (α i)]
[∀ i, MeasurableSpace (α i)] [∀ i, MeasurableMul (α i)] : MeasurableMul (∀ i, α i) :=
⟨fun _ => measurable_pi_iff.mpr fun i => (measurable_pi_apply i).const_mul _, fun _ =>
measurable_pi_iff.mpr fun i => (measurable_pi_apply i).mul_const _⟩
@@ -174,7 +174,7 @@ instance Pi.measurableMul {ι : Type _} {α : ι → Type _} [∀ i, Mul (α i)]
#align pi.has_measurable_add Pi.measurableAdd
@[to_additive Pi.measurableAdd₂]
-instance Pi.measurableMul₂ {ι : Type _} {α : ι → Type _} [∀ i, Mul (α i)]
+instance Pi.measurableMul₂ {ι : Type*} {α : ι → Type*} [∀ i, Mul (α i)]
[∀ i, MeasurableSpace (α i)] [∀ i, MeasurableMul₂ (α i)] : MeasurableMul₂ (∀ i, α i) :=
⟨measurable_pi_iff.mpr fun _ => measurable_fst.eval.mul measurable_snd.eval⟩
#align pi.has_measurable_mul₂ Pi.measurableMul₂
@@ -186,20 +186,20 @@ end Mul
`MeasurableDiv`. This can be nice to avoid unnecessary type-class assumptions. -/
@[to_additive " A version of `measurable_sub_const` that assumes `MeasurableAdd` instead of
`MeasurableSub`. This can be nice to avoid unnecessary type-class assumptions. "]
-theorem measurable_div_const' {G : Type _} [DivInvMonoid G] [MeasurableSpace G] [MeasurableMul G]
+theorem measurable_div_const' {G : Type*} [DivInvMonoid G] [MeasurableSpace G] [MeasurableMul G]
(g : G) : Measurable fun h => h / g := by simp_rw [div_eq_mul_inv, measurable_mul_const]
#align measurable_div_const' measurable_div_const'
#align measurable_sub_const' measurable_sub_const'
/-- This class assumes that the map `β × γ → β` given by `(x, y) ↦ x ^ y` is measurable. -/
-class MeasurablePow (β γ : Type _) [MeasurableSpace β] [MeasurableSpace γ] [Pow β γ] : Prop where
+class MeasurablePow (β γ : Type*) [MeasurableSpace β] [MeasurableSpace γ] [Pow β γ] : Prop where
measurable_pow : Measurable fun p : β × γ => p.1 ^ p.2
#align has_measurable_pow MeasurablePow
export MeasurablePow (measurable_pow)
/-- `Monoid.Pow` is measurable. -/
-instance Monoid.measurablePow (M : Type _) [Monoid M] [MeasurableSpace M] [MeasurableMul₂ M] :
+instance Monoid.measurablePow (M : Type*) [Monoid M] [MeasurableSpace M] [MeasurableMul₂ M] :
MeasurablePow M ℕ :=
⟨measurable_from_prod_countable fun n => by
induction' n with n ih
@@ -210,7 +210,7 @@ instance Monoid.measurablePow (M : Type _) [Monoid M] [MeasurableSpace M] [Measu
section Pow
-variable {β γ α : Type _} [MeasurableSpace β] [MeasurableSpace γ] [Pow β γ] [MeasurablePow β γ]
+variable {β γ α : Type*} [MeasurableSpace β] [MeasurableSpace γ] [Pow β γ] [MeasurablePow β γ]
{m : MeasurableSpace α} {μ : Measure α} {f : α → β} {g : α → γ}
@[aesop safe 20 apply (rule_sets [Measurable])]
@@ -250,7 +250,7 @@ end Pow
/-- We say that a type has `MeasurableSub` if `(c - ·)` and `(· - c)` are measurable
functions. For a typeclass assuming measurability of `uncurry (-)` see `MeasurableSub₂`. -/
-class MeasurableSub (G : Type _) [MeasurableSpace G] [Sub G] : Prop where
+class MeasurableSub (G : Type*) [MeasurableSpace G] [Sub G] : Prop where
measurable_const_sub : ∀ c : G, Measurable (c - ·)
measurable_sub_const : ∀ c : G, Measurable (· - c)
#align has_measurable_sub MeasurableSub
@@ -261,7 +261,7 @@ export MeasurableSub (measurable_const_sub measurable_sub_const)
/-- We say that a type has `MeasurableSub₂` if `uncurry (· - ·)` is a measurable functions.
For a typeclass assuming measurability of `(c - ·)` and `(· - c)` see `MeasurableSub`. -/
-class MeasurableSub₂ (G : Type _) [MeasurableSpace G] [Sub G] : Prop where
+class MeasurableSub₂ (G : Type*) [MeasurableSpace G] [Sub G] : Prop where
measurable_sub : Measurable fun p : G × G => p.1 - p.2
#align has_measurable_sub₂ MeasurableSub₂
#align has_measurable_sub₂.measurable_sub MeasurableSub₂.measurable_sub
@@ -271,7 +271,7 @@ export MeasurableSub₂ (measurable_sub)
/-- We say that a type has `MeasurableDiv` if `(c / ·)` and `(· / c)` are measurable functions.
For a typeclass assuming measurability of `uncurry (· / ·)` see `MeasurableDiv₂`. -/
@[to_additive]
-class MeasurableDiv (G₀ : Type _) [MeasurableSpace G₀] [Div G₀] : Prop where
+class MeasurableDiv (G₀ : Type*) [MeasurableSpace G₀] [Div G₀] : Prop where
measurable_const_div : ∀ c : G₀, Measurable (c / ·)
measurable_div_const : ∀ c : G₀, Measurable (· / c)
#align has_measurable_div MeasurableDiv
@@ -283,7 +283,7 @@ export MeasurableDiv (measurable_const_div measurable_div_const)
/-- We say that a type has `MeasurableDiv₂` if `uncurry (· / ·)` is a measurable functions.
For a typeclass assuming measurability of `(c / ·)` and `(· / c)` see `MeasurableDiv`. -/
@[to_additive MeasurableSub₂]
-class MeasurableDiv₂ (G₀ : Type _) [MeasurableSpace G₀] [Div G₀] : Prop where
+class MeasurableDiv₂ (G₀ : Type*) [MeasurableSpace G₀] [Div G₀] : Prop where
measurable_div : Measurable fun p : G₀ × G₀ => p.1 / p.2
#align has_measurable_div₂ MeasurableDiv₂
#align has_measurable_div₂.measurable_div MeasurableDiv₂.measurable_div
@@ -292,7 +292,7 @@ export MeasurableDiv₂ (measurable_div)
section Div
-variable {G α : Type _} [MeasurableSpace G] [Div G] {m : MeasurableSpace α} {f g : α → G}
+variable {G α : Type*} [MeasurableSpace G] [Div G] {m : MeasurableSpace α} {f g : α → G}
{μ : Measure α}
@[to_additive (attr := measurability)]
@@ -359,7 +359,7 @@ instance (priority := 100) MeasurableDiv₂.toMeasurableDiv [MeasurableDiv₂ G]
#align has_measurable_sub₂.to_has_measurable_sub MeasurableSub₂.toMeasurableSub
@[to_additive]
-instance Pi.measurableDiv {ι : Type _} {α : ι → Type _} [∀ i, Div (α i)]
+instance Pi.measurableDiv {ι : Type*} {α : ι → Type*} [∀ i, Div (α i)]
[∀ i, MeasurableSpace (α i)] [∀ i, MeasurableDiv (α i)] : MeasurableDiv (∀ i, α i) :=
⟨fun _ => measurable_pi_iff.mpr fun i => (measurable_pi_apply i).const_div _, fun _ =>
measurable_pi_iff.mpr fun i => (measurable_pi_apply i).div_const _⟩
@@ -367,7 +367,7 @@ instance Pi.measurableDiv {ι : Type _} {α : ι → Type _} [∀ i, Div (α i)]
#align pi.has_measurable_sub Pi.measurableSub
@[to_additive Pi.measurableSub₂]
-instance Pi.measurableDiv₂ {ι : Type _} {α : ι → Type _} [∀ i, Div (α i)]
+instance Pi.measurableDiv₂ {ι : Type*} {α : ι → Type*} [∀ i, Div (α i)]
[∀ i, MeasurableSpace (α i)] [∀ i, MeasurableDiv₂ (α i)] : MeasurableDiv₂ (∀ i, α i) :=
⟨measurable_pi_iff.mpr fun _ => measurable_fst.eval.div measurable_snd.eval⟩
#align pi.has_measurable_div₂ Pi.measurableDiv₂
@@ -416,14 +416,14 @@ theorem ae_eq_trim_of_measurable {α E} {m m0 : MeasurableSpace α} {μ : Measur
end Div
/-- We say that a type has `MeasurableNeg` if `x ↦ -x` is a measurable function. -/
-class MeasurableNeg (G : Type _) [Neg G] [MeasurableSpace G] : Prop where
+class MeasurableNeg (G : Type*) [Neg G] [MeasurableSpace G] : Prop where
measurable_neg : Measurable (Neg.neg : G → G)
#align has_measurable_neg MeasurableNeg
#align has_measurable_neg.measurable_neg MeasurableNeg.measurable_neg
/-- We say that a type has `MeasurableInv` if `x ↦ x⁻¹` is a measurable function. -/
@[to_additive]
-class MeasurableInv (G : Type _) [Inv G] [MeasurableSpace G] : Prop where
+class MeasurableInv (G : Type*) [Inv G] [MeasurableSpace G] : Prop where
measurable_inv : Measurable (Inv.inv : G → G)
#align has_measurable_inv MeasurableInv
#align has_measurable_inv.measurable_inv MeasurableInv.measurable_inv
@@ -433,7 +433,7 @@ export MeasurableInv (measurable_inv)
export MeasurableNeg (measurable_neg)
@[to_additive]
-instance (priority := 100) measurableDiv_of_mul_inv (G : Type _) [MeasurableSpace G]
+instance (priority := 100) measurableDiv_of_mul_inv (G : Type*) [MeasurableSpace G]
[DivInvMonoid G] [MeasurableMul G] [MeasurableInv G] : MeasurableDiv G where
measurable_const_div c := by
convert measurable_inv.const_mul c using 1
@@ -448,7 +448,7 @@ instance (priority := 100) measurableDiv_of_mul_inv (G : Type _) [MeasurableSpac
section Inv
-variable {G α : Type _} [Inv G] [MeasurableSpace G] [MeasurableInv G] {m : MeasurableSpace α}
+variable {G α : Type*} [Inv G] [MeasurableSpace G] [MeasurableInv G] {m : MeasurableSpace α}
{f : α → G} {μ : Measure α}
@[to_additive (attr := measurability)]
@@ -464,33 +464,33 @@ theorem AEMeasurable.inv (hf : AEMeasurable f μ) : AEMeasurable (fun x => (f x)
#align ae_measurable.neg AEMeasurable.neg
@[to_additive (attr := simp)]
-theorem measurable_inv_iff {G : Type _} [Group G] [MeasurableSpace G] [MeasurableInv G]
+theorem measurable_inv_iff {G : Type*} [Group G] [MeasurableSpace G] [MeasurableInv G]
{f : α → G} : (Measurable fun x => (f x)⁻¹) ↔ Measurable f :=
⟨fun h => by simpa only [inv_inv] using h.inv, fun h => h.inv⟩
#align measurable_inv_iff measurable_inv_iff
#align measurable_neg_iff measurable_neg_iff
@[to_additive (attr := simp)]
-theorem aemeasurable_inv_iff {G : Type _} [Group G] [MeasurableSpace G] [MeasurableInv G]
+theorem aemeasurable_inv_iff {G : Type*} [Group G] [MeasurableSpace G] [MeasurableInv G]
{f : α → G} : AEMeasurable (fun x => (f x)⁻¹) μ ↔ AEMeasurable f μ :=
⟨fun h => by simpa only [inv_inv] using h.inv, fun h => h.inv⟩
#align ae_measurable_inv_iff aemeasurable_inv_iff
#align ae_measurable_neg_iff aemeasurable_neg_iff
@[simp]
-theorem measurable_inv_iff₀ {G₀ : Type _} [GroupWithZero G₀] [MeasurableSpace G₀]
+theorem measurable_inv_iff₀ {G₀ : Type*} [GroupWithZero G₀] [MeasurableSpace G₀]
[MeasurableInv G₀] {f : α → G₀} : (Measurable fun x => (f x)⁻¹) ↔ Measurable f :=
⟨fun h => by simpa only [inv_inv] using h.inv, fun h => h.inv⟩
#align measurable_inv_iff₀ measurable_inv_iff₀
@[simp]
-theorem aemeasurable_inv_iff₀ {G₀ : Type _} [GroupWithZero G₀] [MeasurableSpace G₀]
+theorem aemeasurable_inv_iff₀ {G₀ : Type*} [GroupWithZero G₀] [MeasurableSpace G₀]
[MeasurableInv G₀] {f : α → G₀} : AEMeasurable (fun x => (f x)⁻¹) μ ↔ AEMeasurable f μ :=
⟨fun h => by simpa only [inv_inv] using h.inv, fun h => h.inv⟩
#align ae_measurable_inv_iff₀ aemeasurable_inv_iff₀
@[to_additive]
-instance Pi.measurableInv {ι : Type _} {α : ι → Type _} [∀ i, Inv (α i)]
+instance Pi.measurableInv {ι : Type*} {α : ι → Type*} [∀ i, Inv (α i)]
[∀ i, MeasurableSpace (α i)] [∀ i, MeasurableInv (α i)] : MeasurableInv (∀ i, α i) :=
⟨measurable_pi_iff.mpr fun i => (measurable_pi_apply i).inv⟩
#align pi.has_measurable_inv Pi.measurableInv
@@ -516,7 +516,7 @@ instance DivInvMonoid.measurableZpow (G : Type u) [DivInvMonoid G] [MeasurableSp
#align div_inv_monoid.has_measurable_zpow DivInvMonoid.measurableZpow
@[to_additive]
-instance (priority := 100) measurableDiv₂_of_mul_inv (G : Type _) [MeasurableSpace G]
+instance (priority := 100) measurableDiv₂_of_mul_inv (G : Type*) [MeasurableSpace G]
[DivInvMonoid G] [MeasurableMul₂ G] [MeasurableInv G] : MeasurableDiv₂ G :=
⟨by
simp only [div_eq_mul_inv]
@@ -526,7 +526,7 @@ instance (priority := 100) measurableDiv₂_of_mul_inv (G : Type _) [MeasurableS
/-- We say that the action of `M` on `α` has `MeasurableVAdd` if for each `c` the map `x ↦ c +ᵥ x`
is a measurable function and for each `x` the map `c ↦ c +ᵥ x` is a measurable function. -/
-class MeasurableVAdd (M α : Type _) [VAdd M α] [MeasurableSpace M] [MeasurableSpace α] :
+class MeasurableVAdd (M α : Type*) [VAdd M α] [MeasurableSpace M] [MeasurableSpace α] :
Prop where
measurable_const_vadd : ∀ c : M, Measurable ((· +ᵥ ·) c : α → α)
measurable_vadd_const : ∀ x : α, Measurable fun c : M => c +ᵥ x
@@ -537,7 +537,7 @@ class MeasurableVAdd (M α : Type _) [VAdd M α] [MeasurableSpace M] [Measurable
/-- We say that the action of `M` on `α` has `MeasurableSMul` if for each `c` the map `x ↦ c • x`
is a measurable function and for each `x` the map `c ↦ c • x` is a measurable function. -/
@[to_additive]
-class MeasurableSMul (M α : Type _) [SMul M α] [MeasurableSpace M] [MeasurableSpace α] :
+class MeasurableSMul (M α : Type*) [SMul M α] [MeasurableSpace M] [MeasurableSpace α] :
Prop where
measurable_const_smul : ∀ c : M, Measurable ((· • ·) c : α → α)
measurable_smul_const : ∀ x : α, Measurable fun c : M => c • x
@@ -547,7 +547,7 @@ class MeasurableSMul (M α : Type _) [SMul M α] [MeasurableSpace M] [Measurable
/-- We say that the action of `M` on `α` has `MeasurableVAdd₂` if the map
`(c, x) ↦ c +ᵥ x` is a measurable function. -/
-class MeasurableVAdd₂ (M α : Type _) [VAdd M α] [MeasurableSpace M] [MeasurableSpace α] :
+class MeasurableVAdd₂ (M α : Type*) [VAdd M α] [MeasurableSpace M] [MeasurableSpace α] :
Prop where
measurable_vadd : Measurable (Function.uncurry (· +ᵥ ·) : M × α → α)
#align has_measurable_vadd₂ MeasurableVAdd₂
@@ -556,7 +556,7 @@ class MeasurableVAdd₂ (M α : Type _) [VAdd M α] [MeasurableSpace M] [Measura
/-- We say that the action of `M` on `α` has `Measurable_SMul₂` if the map
`(c, x) ↦ c • x` is a measurable function. -/
@[to_additive MeasurableVAdd₂]
-class MeasurableSMul₂ (M α : Type _) [SMul M α] [MeasurableSpace M] [MeasurableSpace α] :
+class MeasurableSMul₂ (M α : Type*) [SMul M α] [MeasurableSpace M] [MeasurableSpace α] :
Prop where
measurable_smul : Measurable (Function.uncurry (· • ·) : M × α → α)
#align has_measurable_smul₂ MeasurableSMul₂
@@ -571,14 +571,14 @@ export MeasurableVAdd (measurable_const_vadd measurable_vadd_const)
export MeasurableVAdd₂ (measurable_vadd)
@[to_additive]
-instance measurableSMul_of_mul (M : Type _) [Mul M] [MeasurableSpace M] [MeasurableMul M] :
+instance measurableSMul_of_mul (M : Type*) [Mul M] [MeasurableSpace M] [MeasurableMul M] :
MeasurableSMul M M :=
⟨measurable_id.const_mul, measurable_id.mul_const⟩
#align has_measurable_smul_of_mul measurableSMul_of_mul
#align has_measurable_vadd_of_add measurableVAdd_of_add
@[to_additive]
-instance measurableSMul₂_of_mul (M : Type _) [Mul M] [MeasurableSpace M] [MeasurableMul₂ M] :
+instance measurableSMul₂_of_mul (M : Type*) [Mul M] [MeasurableSpace M] [MeasurableMul₂ M] :
MeasurableSMul₂ M M :=
⟨measurable_mul⟩
#align has_measurable_smul₂_of_mul measurableSMul₂_of_mul
@@ -601,7 +601,7 @@ instance Subgroup.measurableSMul {G α} [MeasurableSpace G] [MeasurableSpace α]
section SMul
-variable {M β α : Type _} [MeasurableSpace M] [MeasurableSpace β] [_root_.SMul M β]
+variable {M β α : Type*} [MeasurableSpace M] [MeasurableSpace β] [_root_.SMul M β]
{m : MeasurableSpace α} {f : α → M} {g : α → β}
@[to_additive (attr := aesop safe 20 apply (rule_sets [Measurable]))]
@@ -666,7 +666,7 @@ theorem AEMeasurable.const_smul (hf : AEMeasurable g μ) (c : M) : AEMeasurable
#align ae_measurable.const_vadd AEMeasurable.const_vadd
@[to_additive]
-instance Pi.measurableSMul {ι : Type _} {α : ι → Type _} [∀ i, SMul M (α i)]
+instance Pi.measurableSMul {ι : Type*} {α : ι → Type*} [∀ i, SMul M (α i)]
[∀ i, MeasurableSpace (α i)] [∀ i, MeasurableSMul M (α i)] :
MeasurableSMul M (∀ i, α i) :=
⟨fun _ => measurable_pi_iff.mpr fun i => (measurable_pi_apply i).const_smul _, fun _ =>
@@ -675,7 +675,7 @@ instance Pi.measurableSMul {ι : Type _} {α : ι → Type _} [∀ i, SMul M (α
#align pi.has_measurable_vadd Pi.measurableVAdd
/-- `AddMonoid.SMul` is measurable. -/
-instance AddMonoid.measurableSMul_nat₂ (M : Type _) [AddMonoid M] [MeasurableSpace M]
+instance AddMonoid.measurableSMul_nat₂ (M : Type*) [AddMonoid M] [MeasurableSpace M]
[MeasurableAdd₂ M] : MeasurableSMul₂ ℕ M :=
⟨by
suffices Measurable fun p : M × ℕ => p.2 • p.1 by apply this.comp measurable_swap
@@ -687,7 +687,7 @@ instance AddMonoid.measurableSMul_nat₂ (M : Type _) [AddMonoid M] [MeasurableS
#align add_monoid.has_measurable_smul_nat₂ AddMonoid.measurableSMul_nat₂
/-- `SubNegMonoid.SMulInt` is measurable. -/
-instance SubNegMonoid.measurableSMul_int₂ (M : Type _) [SubNegMonoid M] [MeasurableSpace M]
+instance SubNegMonoid.measurableSMul_int₂ (M : Type*) [SubNegMonoid M] [MeasurableSpace M]
[MeasurableAdd₂ M] [MeasurableNeg M] : MeasurableSMul₂ ℤ M :=
⟨by
suffices Measurable fun p : M × ℤ => p.2 • p.1 by apply this.comp measurable_swap
@@ -703,10 +703,10 @@ end SMul
section MulAction
-variable {M β α : Type _} [MeasurableSpace M] [MeasurableSpace β] [Monoid M] [MulAction M β]
+variable {M β α : Type*} [MeasurableSpace M] [MeasurableSpace β] [Monoid M] [MulAction M β]
[MeasurableSMul M β] [MeasurableSpace α] {f : α → β} {μ : Measure α}
-variable {G : Type _} [Group G] [MeasurableSpace G] [MulAction G β] [MeasurableSMul G β]
+variable {G : Type*} [Group G] [MeasurableSpace G] [MulAction G β] [MeasurableSMul G β]
@[to_additive]
theorem measurable_const_smul_iff (c : G) : (Measurable fun x => c • f x) ↔ Measurable f :=
@@ -750,7 +750,7 @@ nonrec theorem IsUnit.aemeasurable_const_smul_iff {c : M} (hc : IsUnit c) :
#align is_unit.ae_measurable_const_smul_iff IsUnit.aemeasurable_const_smul_iff
#align is_add_unit.ae_measurable_const_vadd_iff IsAddUnit.aemeasurable_const_vadd_iff
-variable {G₀ : Type _} [GroupWithZero G₀] [MeasurableSpace G₀] [MulAction G₀ β]
+variable {G₀ : Type*} [GroupWithZero G₀] [MeasurableSpace G₀] [MulAction G₀ β]
[MeasurableSMul G₀ β]
theorem measurable_const_smul_iff₀ {c : G₀} (hc : c ≠ 0) :
@@ -775,26 +775,26 @@ section Opposite
open MulOpposite
@[to_additive]
-instance MulOpposite.instMeasurableSpace {α : Type _} [h : MeasurableSpace α] :
+instance MulOpposite.instMeasurableSpace {α : Type*} [h : MeasurableSpace α] :
MeasurableSpace αᵐᵒᵖ :=
MeasurableSpace.map op h
#align mul_opposite.measurable_space MulOpposite.instMeasurableSpace
#align add_opposite.measurable_space AddOpposite.instMeasurableSpace
@[to_additive]
-theorem measurable_mul_op {α : Type _} [MeasurableSpace α] : Measurable (op : α → αᵐᵒᵖ) := fun _ =>
+theorem measurable_mul_op {α : Type*} [MeasurableSpace α] : Measurable (op : α → αᵐᵒᵖ) := fun _ =>
id
#align measurable_mul_op measurable_mul_op
#align measurable_add_op measurable_add_op
@[to_additive]
-theorem measurable_mul_unop {α : Type _} [MeasurableSpace α] : Measurable (unop : αᵐᵒᵖ → α) :=
+theorem measurable_mul_unop {α : Type*} [MeasurableSpace α] : Measurable (unop : αᵐᵒᵖ → α) :=
fun _ => id
#align measurable_mul_unop measurable_mul_unop
#align measurable_add_unop measurable_add_unop
@[to_additive]
-instance MulOpposite.instMeasurableMul {M : Type _} [Mul M] [MeasurableSpace M]
+instance MulOpposite.instMeasurableMul {M : Type*} [Mul M] [MeasurableSpace M]
[MeasurableMul M] : MeasurableMul Mᵐᵒᵖ :=
⟨fun _ => measurable_mul_op.comp (measurable_mul_unop.mul_const _), fun _ =>
measurable_mul_op.comp (measurable_mul_unop.const_mul _)⟩
@@ -802,7 +802,7 @@ instance MulOpposite.instMeasurableMul {M : Type _} [Mul M] [MeasurableSpace M]
#align add_opposite.has_measurable_add AddOpposite.instMeasurableAdd
@[to_additive]
-instance MulOpposite.instMeasurableMul₂ {M : Type _} [Mul M] [MeasurableSpace M]
+instance MulOpposite.instMeasurableMul₂ {M : Type*} [Mul M] [MeasurableSpace M]
[MeasurableMul₂ M] : MeasurableMul₂ Mᵐᵒᵖ :=
⟨measurable_mul_op.comp
((measurable_mul_unop.comp measurable_snd).mul (measurable_mul_unop.comp measurable_fst))⟩
@@ -829,14 +829,14 @@ nonrec instance MeasurableSMul₂.op {M α} [MeasurableSpace M] [MeasurableSpace
#align has_measurable_smul₂.op MeasurableSMul₂.op
@[to_additive]
-instance measurableSMul_opposite_of_mul {M : Type _} [Mul M] [MeasurableSpace M]
+instance measurableSMul_opposite_of_mul {M : Type*} [Mul M] [MeasurableSpace M]
[MeasurableMul M] : MeasurableSMul Mᵐᵒᵖ M :=
⟨fun c => measurable_mul_const (unop c), fun x => measurable_mul_unop.const_mul x⟩
#align has_measurable_smul_opposite_of_mul measurableSMul_opposite_of_mul
#align has_measurable_vadd_opposite_of_add measurableVAdd_opposite_of_add
@[to_additive]
-instance measurableSMul₂_opposite_of_mul {M : Type _} [Mul M] [MeasurableSpace M]
+instance measurableSMul₂_opposite_of_mul {M : Type*} [Mul M] [MeasurableSpace M]
[MeasurableMul₂ M] : MeasurableSMul₂ Mᵐᵒᵖ M :=
⟨measurable_snd.mul (measurable_mul_unop.comp measurable_fst)⟩
#align has_measurable_smul₂_opposite_of_mul measurableSMul₂_opposite_of_mul
@@ -851,7 +851,7 @@ end Opposite
section Monoid
-variable {M α : Type _} [Monoid M] [MeasurableSpace M] [MeasurableMul₂ M] {m : MeasurableSpace α}
+variable {M α : Type*} [Monoid M] [MeasurableSpace M] [MeasurableMul₂ M] {m : MeasurableSpace α}
{μ : Measure α}
@[to_additive (attr := measurability)]
@@ -892,7 +892,7 @@ end Monoid
section CommMonoid
-variable {M ι α : Type _} [CommMonoid M] [MeasurableSpace M] [MeasurableMul₂ M]
+variable {M ι α : Type*} [CommMonoid M] [MeasurableSpace M] [MeasurableMul₂ M]
{m : MeasurableSpace α} {μ : Measure α} {f : ι → α → M}
@[to_additive (attr := measurability)]
@@ -192,7 +192,7 @@ theorem measurable_div_const' {G : Type _} [DivInvMonoid G] [MeasurableSpace G]
#align measurable_sub_const' measurable_sub_const'
/-- This class assumes that the map `β × γ → β` given by `(x, y) ↦ x ^ y` is measurable. -/
-class MeasurablePow (β γ : Type _) [MeasurableSpace β] [MeasurableSpace γ] [Pow β γ] where
+class MeasurablePow (β γ : Type _) [MeasurableSpace β] [MeasurableSpace γ] [Pow β γ] : Prop where
measurable_pow : Measurable fun p : β × γ => p.1 ^ p.2
#align has_measurable_pow MeasurablePow
@@ -2,14 +2,11 @@
Copyright (c) 2021 Yury Kudryashov. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yury Kudryashov
-
-! This file was ported from Lean 3 source module measure_theory.group.arithmetic
-! leanprover-community/mathlib commit a75898643b2d774cced9ae7c0b28c21663b99666
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.MeasureTheory.Measure.AEMeasurable
+#align_import measure_theory.group.arithmetic from "leanprover-community/mathlib"@"a75898643b2d774cced9ae7c0b28c21663b99666"
+
/-!
# Typeclasses for measurability of operations
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>
@@ -133,28 +133,28 @@ theorem AEMeasurable.mul_const [MeasurableMul M] (hf : AEMeasurable f μ) (c : M
#align ae_measurable.mul_const AEMeasurable.mul_const
#align ae_measurable.add_const AEMeasurable.add_const
-@[to_additive (attr := measurability)]
+@[to_additive (attr := aesop safe 20 apply (rule_sets [Measurable]))]
theorem Measurable.mul' [MeasurableMul₂ M] (hf : Measurable f) (hg : Measurable g) :
Measurable (f * g) :=
measurable_mul.comp (hf.prod_mk hg)
#align measurable.mul' Measurable.mul'
#align measurable.add' Measurable.add'
-@[to_additive (attr := measurability)]
+@[to_additive (attr := aesop safe 20 apply (rule_sets [Measurable]))]
theorem Measurable.mul [MeasurableMul₂ M] (hf : Measurable f) (hg : Measurable g) :
Measurable fun a => f a * g a :=
measurable_mul.comp (hf.prod_mk hg)
#align measurable.mul Measurable.mul
#align measurable.add Measurable.add
-@[to_additive (attr := measurability)]
+@[to_additive (attr := aesop safe 20 apply (rule_sets [Measurable]))]
theorem AEMeasurable.mul' [MeasurableMul₂ M] (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
AEMeasurable (f * g) μ :=
measurable_mul.comp_aemeasurable (hf.prod_mk hg)
#align ae_measurable.mul' AEMeasurable.mul'
#align ae_measurable.add' AEMeasurable.add'
-@[to_additive (attr := measurability)]
+@[to_additive (attr := aesop safe 20 apply (rule_sets [Measurable]))]
theorem AEMeasurable.mul [MeasurableMul₂ M] (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
AEMeasurable (fun a => f a * g a) μ :=
measurable_mul.comp_aemeasurable (hf.prod_mk hg)
@@ -216,12 +216,12 @@ section Pow
variable {β γ α : Type _} [MeasurableSpace β] [MeasurableSpace γ] [Pow β γ] [MeasurablePow β γ]
{m : MeasurableSpace α} {μ : Measure α} {f : α → β} {g : α → γ}
-@[measurability]
+@[aesop safe 20 apply (rule_sets [Measurable])]
theorem Measurable.pow (hf : Measurable f) (hg : Measurable g) : Measurable fun x => f x ^ g x :=
measurable_pow.comp (hf.prod_mk hg)
#align measurable.pow Measurable.pow
-@[measurability]
+@[aesop safe 20 apply (rule_sets [Measurable])]
theorem AEMeasurable.pow (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
AEMeasurable (fun x => f x ^ g x) μ :=
measurable_pow.comp_aemeasurable (hf.prod_mk hg)
@@ -326,28 +326,28 @@ theorem AEMeasurable.div_const [MeasurableDiv G] (hf : AEMeasurable f μ) (c : G
#align ae_measurable.div_const AEMeasurable.div_const
#align ae_measurable.sub_const AEMeasurable.sub_const
-@[to_additive (attr := measurability)]
+@[to_additive (attr := aesop safe 20 apply (rule_sets [Measurable]))]
theorem Measurable.div' [MeasurableDiv₂ G] (hf : Measurable f) (hg : Measurable g) :
Measurable (f / g) :=
measurable_div.comp (hf.prod_mk hg)
#align measurable.div' Measurable.div'
#align measurable.sub' Measurable.sub'
-@[to_additive (attr := measurability)]
+@[to_additive (attr := aesop safe 20 apply (rule_sets [Measurable]))]
theorem Measurable.div [MeasurableDiv₂ G] (hf : Measurable f) (hg : Measurable g) :
Measurable fun a => f a / g a :=
measurable_div.comp (hf.prod_mk hg)
#align measurable.div Measurable.div
#align measurable.sub Measurable.sub
-@[to_additive (attr := measurability)]
+@[to_additive (attr := aesop safe 20 apply (rule_sets [Measurable]))]
theorem AEMeasurable.div' [MeasurableDiv₂ G] (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
AEMeasurable (f / g) μ :=
measurable_div.comp_aemeasurable (hf.prod_mk hg)
#align ae_measurable.div' AEMeasurable.div'
#align ae_measurable.sub' AEMeasurable.sub'
-@[to_additive (attr := measurability)]
+@[to_additive (attr := aesop safe 20 apply (rule_sets [Measurable]))]
theorem AEMeasurable.div [MeasurableDiv₂ G] (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
AEMeasurable (fun a => f a / g a) μ :=
measurable_div.comp_aemeasurable (hf.prod_mk hg)
@@ -607,14 +607,14 @@ section SMul
variable {M β α : Type _} [MeasurableSpace M] [MeasurableSpace β] [_root_.SMul M β]
{m : MeasurableSpace α} {f : α → M} {g : α → β}
-@[to_additive (attr := measurability)]
+@[to_additive (attr := aesop safe 20 apply (rule_sets [Measurable]))]
theorem Measurable.smul [MeasurableSMul₂ M β] (hf : Measurable f) (hg : Measurable g) :
Measurable fun x => f x • g x :=
measurable_smul.comp (hf.prod_mk hg)
#align measurable.smul Measurable.smul
#align measurable.vadd Measurable.vadd
-@[to_additive (attr := measurability)]
+@[to_additive (attr := aesop safe 20 apply (rule_sets [Measurable]))]
theorem AEMeasurable.smul [MeasurableSMul₂ M β] {μ : Measure α} (hf : AEMeasurable f μ)
(hg : AEMeasurable g μ) : AEMeasurable (fun x => f x • g x) μ :=
MeasurableSMul₂.measurable_smul.comp_aemeasurable (hf.prod_mk hg)
sSup
/iSup
(#3938)
As discussed on Zulip
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>
@@ -401,9 +401,9 @@ theorem measurableSet_eq_fun_of_countable {m : MeasurableSpace α} {E} [Measurab
(hg : Measurable g) : MeasurableSet { x | f x = g x } := by
have : { x | f x = g x } = ⋃ j, { x | f x = j } ∩ { x | g x = j } := by
ext1 x
- simp only [Set.mem_setOf_eq, Set.mem_unionᵢ, Set.mem_inter_iff, exists_eq_right']
+ simp only [Set.mem_setOf_eq, Set.mem_iUnion, Set.mem_inter_iff, exists_eq_right']
rw [this]
- refine' MeasurableSet.unionᵢ fun j => MeasurableSet.inter _ _
+ refine' MeasurableSet.iUnion fun j => MeasurableSet.inter _ _
· exact hf (measurableSet_singleton j)
· exact hg (measurableSet_singleton j)
#align measurable_set_eq_fun_of_countable measurableSet_eq_fun_of_countable
The unported dependencies are
algebra.order.module
init.core
algebra.order.monoid.cancel.defs
algebra.abs
algebra.group_power.lemmas
init.data.list.basic
init.data.list.default
algebra.order.monoid.cancel.basic
topology.subset_properties
init.logic
The following 1 dependencies have changed in mathlib3 since they were ported, which may complicate porting this file