measure_theory.constructions.borel_space.basic
⟷
Mathlib.MeasureTheory.Constructions.BorelSpace.Basic
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)
(last sync)
measurable_space
on add_circle
.@@ -58,6 +58,9 @@ open measurable_space topological_space
def borel (α : Type u) [topological_space α] : measurable_space α :=
generate_from {s : set α | is_open s}
+theorem borel_anti : antitone (@borel α) :=
+λ _ _ h, measurable_space.generate_from_le $ λ s hs, generate_measurable.basic _ (h _ hs)
+
lemma borel_eq_top_of_discrete [topological_space α] [discrete_topology α] :
borel α = ⊤ :=
top_le_iff.1 $ λ s hs, generate_measurable.basic s (is_open_discrete s)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(first ported)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -4,13 +4,13 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Johannes Hölzl, Yury Kudryashov
-/
import Analysis.Normed.Group.Basic
-import MeasureTheory.Function.AeMeasurableSequence
+import MeasureTheory.Function.AEMeasurableSequence
import MeasureTheory.Group.Arithmetic
-import MeasureTheory.Lattice
+import MeasureTheory.Order.Lattice
import MeasureTheory.Measure.OpenPos
import Topology.Algebra.Order.LiminfLimsup
import Topology.ContinuousFunction.Basic
-import Topology.Instances.Ereal
+import Topology.Instances.EReal
import Topology.MetricSpace.HausdorffDistance
import Topology.GDelta
import Topology.Order.Lattice
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -1286,7 +1286,7 @@ protected theorem Embedding.measurableEmbedding {f : α → β} (h₁ : Embeddin
#print ClosedEmbedding.measurableEmbedding /-
protected theorem ClosedEmbedding.measurableEmbedding {f : α → β} (h : ClosedEmbedding f) :
MeasurableEmbedding f :=
- h.toEmbedding.MeasurableEmbedding h.closed_range.MeasurableSet
+ h.toEmbedding.MeasurableEmbedding h.isClosed_range.MeasurableSet
#align closed_embedding.measurable_embedding ClosedEmbedding.measurableEmbedding
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -96,7 +96,7 @@ theorem borel_eq_generateFrom_of_subbasis {s : Set (Set α)} [t : TopologicalSpa
le_antisymm
(generateFrom_le fun u (hu : t.IsOpen u) =>
by
- rw [hs] at hu
+ rw [hs] at hu
induction hu
case basic u hu => exact generate_measurable.basic u hu
case univ => exact @MeasurableSet.univ α (generate_from s)
@@ -157,7 +157,7 @@ theorem borel_eq_generateFrom_Iio : borel α = generateFrom (range Iio) :=
simp [Set.ext_iff, ha']
· rcases is_open_Union_countable (fun a' : { a' : α // a < a' } => {b | a'.1 < b}) fun a' =>
isOpen_lt' _ with ⟨v, ⟨hv⟩, vu⟩
- simp [Set.ext_iff] at vu
+ simp [Set.ext_iff] at vu
have : Ioi a = ⋃ x : v, Iio x.1.1ᶜ :=
by
simp [Set.ext_iff]
@@ -757,7 +757,7 @@ theorem Dense.borel_eq_generateFrom_Ico_mem_aux {α : Type _} [TopologicalSpace
· refine' MeasurableSet.biUnion hc fun a ha => MeasurableSet.biUnion hc fun b hb => _
refine' MeasurableSet.iUnion fun hab => MeasurableSet.iUnion fun hb' => _
exact generate_measurable.basic _ ⟨a, hts ha, b, hts hb, hab, mem_singleton _⟩
- · simp only [Classical.not_forall, not_nonempty_iff_eq_empty] at ha
+ · simp only [Classical.not_forall, not_nonempty_iff_eq_empty] at ha
replace ha : a ∈ s := hIoo ha.some a ha.some_spec.fst ha.some_spec.snd
convert_to MeasurableSet (⋃ (l ∈ t) (hl : l < a), Ico l a)
· symm
@@ -871,7 +871,7 @@ theorem ext_of_Ico' {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
rcases exists_countable_dense_bot_top α with ⟨s, hsc, hsd, hsb, hst⟩
have : (⋃ (l ∈ s) (u ∈ s) (h : l < u), {Ico l u} : Set (Set α)).Countable :=
hsc.bUnion fun l hl => hsc.bUnion fun u hu => countable_Union fun _ => countable_singleton _
- simp only [← set_of_eq_eq_singleton, ← set_of_exists] at this
+ simp only [← set_of_eq_eq_singleton, ← set_of_exists] at this
refine'
measure.ext_of_generate_from_of_cover_subset
(borel_space.measurable_eq.trans (borel_eq_generateFrom_Ico α)) (isPiSystem_Ico id id) _ this
@@ -1355,7 +1355,7 @@ theorem measurable_of_Ici {f : δ → α} (hf : ∀ x, MeasurableSet (f ⁻¹' I
theorem Measurable.isLUB {ι} [Countable ι] {f : ι → δ → α} {g : δ → α} (hf : ∀ i, Measurable (f i))
(hg : ∀ b, IsLUB {a | ∃ i, f i b = a} (g b)) : Measurable g :=
by
- change ∀ b, IsLUB (range fun i => f i b) (g b) at hg
+ change ∀ b, IsLUB (range fun i => f i b) (g b) at hg
rw [‹BorelSpace α›.measurable_eq, borel_eq_generateFrom_Ioi α]
apply measurable_generateFrom
rintro _ ⟨a, rfl⟩
@@ -1408,7 +1408,7 @@ theorem AEMeasurable.isLUB {ι} {μ : Measure δ} [Countable ι] {f : ι → δ
ext1 y
rw [Set.mem_setOf_eq, Set.mem_empty_iff_false, iff_false_iff]
exact fun hi => hι (nonempty_of_exists hi)
- simp_rw [h_empty] at hg
+ simp_rw [h_empty] at hg
exact ⟨hg.exists.some, hg.mono fun y hy => IsLUB.unique hy hg.exists.some_spec⟩
#align ae_measurable.is_lub AEMeasurable.isLUB
-/
@@ -1417,7 +1417,7 @@ theorem AEMeasurable.isLUB {ι} {μ : Measure δ} [Countable ι] {f : ι → δ
theorem Measurable.isGLB {ι} [Countable ι] {f : ι → δ → α} {g : δ → α} (hf : ∀ i, Measurable (f i))
(hg : ∀ b, IsGLB {a | ∃ i, f i b = a} (g b)) : Measurable g :=
by
- change ∀ b, IsGLB (range fun i => f i b) (g b) at hg
+ change ∀ b, IsGLB (range fun i => f i b) (g b) at hg
rw [‹BorelSpace α›.measurable_eq, borel_eq_generateFrom_Iio α]
apply measurable_generateFrom
rintro _ ⟨a, rfl⟩
@@ -1433,7 +1433,7 @@ theorem AEMeasurable.isGLB {ι} {μ : Measure δ} [Countable ι] {f : ι → δ
nontriviality α
haveI hα : Nonempty α := inferInstance
cases' isEmpty_or_nonempty ι with hι hι
- · simp only [IsEmpty.exists_iff, set_of_false, isGLB_empty_iff] at hg
+ · simp only [IsEmpty.exists_iff, set_of_false, isGLB_empty_iff] at hg
exact aemeasurable_const' (hg.mono fun a ha => hg.mono fun b hb => (hb _).antisymm (ha _))
let p : δ → (ι → α) → Prop := fun x f' => IsGLB {a | ∃ i, f' i = a} (g x)
let g_seq := (aeSeqSet hf p).piecewise g fun _ => hα.some
@@ -1532,8 +1532,8 @@ theorem measurableSet_of_mem_nhdsWithin_Ioi {s : Set α} (h : ∀ x ∈ s, s ∈
refine' (mem_nhdsWithin_Ioi_iff_exists_Ioo_subset' (A x hx)).2 ⟨u, hu, fun y hy => ⟨us hy, _⟩⟩
exact ne_of_lt (hy.2.trans_le (h₀ _))
· apply measurableSet_of_mem_nhdsWithin_Ioi_aux h
- simp only [IsTop] at H
- push_neg at H
+ simp only [IsTop] at H
+ push_neg at H
exact H
#align measurable_set_of_mem_nhds_within_Ioi measurableSet_of_mem_nhdsWithin_Ioi
-/
@@ -1846,7 +1846,7 @@ theorem measure_eq_measure_preimage_add_measure_tsum_Ico_zpow [MeasurableSpace
· congr 1
ext x
have : 0 = f x ∨ 0 < f x := eq_or_lt_of_le bot_le
- rw [eq_comm] at this
+ rw [eq_comm] at this
simp only [← and_or_left, this, mem_singleton_iff, mem_inter_iff, and_true_iff, mem_union,
mem_Ioi, mem_preimage]
· apply disjoint_left.2 fun x hx h'x => _
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -2262,12 +2262,12 @@ theorem measurable_coe_nnreal_real_iff {f : α → ℝ≥0} :
#align measurable_coe_nnreal_real_iff measurable_coe_nnreal_real_iff
-/
-#print aEMeasurable_coe_nnreal_real_iff /-
+#print aemeasurable_coe_nnreal_real_iff /-
@[simp, norm_cast]
-theorem aEMeasurable_coe_nnreal_real_iff {f : α → ℝ≥0} {μ : Measure α} :
+theorem aemeasurable_coe_nnreal_real_iff {f : α → ℝ≥0} {μ : Measure α} :
AEMeasurable (fun x => f x : α → ℝ) μ ↔ AEMeasurable f μ :=
⟨fun h => by simpa only [Real.toNNReal_coe] using h.real_to_nnreal, AEMeasurable.coe_nnreal_real⟩
-#align ae_measurable_coe_nnreal_real_iff aEMeasurable_coe_nnreal_real_iff
+#align ae_measurable_coe_nnreal_real_iff aemeasurable_coe_nnreal_real_iff
-/
#print MeasurableEquiv.ennrealEquivNNReal /-
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -391,7 +391,7 @@ theorem IsGδ.measurableSet (h : IsGδ s) : MeasurableSet s :=
#print measurableSet_of_continuousAt /-
theorem measurableSet_of_continuousAt {β} [EMetricSpace β] (f : α → β) :
MeasurableSet {x | ContinuousAt f x} :=
- (isGδ_setOf_continuousAt f).MeasurableSet
+ (IsGδ.setOf_continuousAt f).MeasurableSet
#align measurable_set_of_continuous_at measurableSet_of_continuousAt
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -2137,7 +2137,7 @@ def finiteSpanningSetsInIooRat (μ : Measure ℝ) [IsLocallyFiniteMeasure μ] :
Finite n := measure_Ioo_lt_top
spanning :=
iUnion_eq_univ_iff.2 fun x =>
- ⟨⌊|x|⌋₊, neg_lt.1 ((neg_le_abs_self x).trans_lt (Nat.lt_floor_add_one _)),
+ ⟨⌊|x|⌋₊, neg_lt.1 ((neg_le_abs x).trans_lt (Nat.lt_floor_add_one _)),
(le_abs_self x).trans_lt (Nat.lt_floor_add_one _)⟩
#align real.finite_spanning_sets_in_Ioo_rat Real.finiteSpanningSetsInIooRat
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -428,15 +428,15 @@ theorem measurable_of_isClosed {f : δ → γ} (hf : ∀ s, IsClosed s → Measu
#align measurable_of_is_closed measurable_of_isClosed
-/
-#print measurable_of_is_closed' /-
-theorem measurable_of_is_closed' {f : δ → γ}
+#print measurable_of_isClosed' /-
+theorem measurable_of_isClosed' {f : δ → γ}
(hf : ∀ s, IsClosed s → s.Nonempty → s ≠ univ → MeasurableSet (f ⁻¹' s)) : Measurable f :=
by
apply measurable_of_isClosed; intro s hs
cases' eq_empty_or_nonempty s with h1 h1; · simp [h1]
by_cases h2 : s = univ; · simp [h2]
exact hf s hs h1 h2
-#align measurable_of_is_closed' measurable_of_is_closed'
+#align measurable_of_is_closed' measurable_of_isClosed'
-/
#print nhds_isMeasurablyGenerated /-
mathlib commit https://github.com/leanprover-community/mathlib/commit/3365b20c2ffa7c35e47e5209b89ba9abdddf3ffe
@@ -930,7 +930,8 @@ theorem ext_of_Iic {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
by
refine' ext_of_Ioc_finite μ ν _ fun a b hlt => _
· rcases exists_countable_dense_bot_top α with ⟨s, hsc, hsd, -, hst⟩
- have : DirectedOn (· ≤ ·) s := directedOn_iff_directed.2 (directed_of_sup fun _ _ => id)
+ have : DirectedOn (· ≤ ·) s :=
+ directedOn_iff_directed.2 (directed_of_isDirected_le fun _ _ => id)
simp only [← bsupr_measure_Iic hsc (hsd.exists_ge' hst) this, h]
rw [← Iic_diff_Iic, measure_diff (Iic_subset_Iic.2 hlt.le) measurableSet_Iic,
measure_diff (Iic_subset_Iic.2 hlt.le) measurableSet_Iic, h a, h b]
mathlib commit https://github.com/leanprover-community/mathlib/commit/b1abe23ae96fef89ad30d9f4362c307f72a55010
@@ -757,7 +757,7 @@ theorem Dense.borel_eq_generateFrom_Ico_mem_aux {α : Type _} [TopologicalSpace
· refine' MeasurableSet.biUnion hc fun a ha => MeasurableSet.biUnion hc fun b hb => _
refine' MeasurableSet.iUnion fun hab => MeasurableSet.iUnion fun hb' => _
exact generate_measurable.basic _ ⟨a, hts ha, b, hts hb, hab, mem_singleton _⟩
- · simp only [not_forall, not_nonempty_iff_eq_empty] at ha
+ · simp only [Classical.not_forall, not_nonempty_iff_eq_empty] at ha
replace ha : a ∈ s := hIoo ha.some a ha.some_spec.fst ha.some_spec.snd
convert_to MeasurableSet (⋃ (l ∈ t) (hl : l < a), Ico l a)
· symm
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,18 +3,18 @@ Copyright (c) 2017 Johannes Hölzl. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Johannes Hölzl, Yury Kudryashov
-/
-import Mathbin.Analysis.Normed.Group.Basic
-import Mathbin.MeasureTheory.Function.AeMeasurableSequence
-import Mathbin.MeasureTheory.Group.Arithmetic
-import Mathbin.MeasureTheory.Lattice
-import Mathbin.MeasureTheory.Measure.OpenPos
-import Mathbin.Topology.Algebra.Order.LiminfLimsup
-import Mathbin.Topology.ContinuousFunction.Basic
-import Mathbin.Topology.Instances.Ereal
-import Mathbin.Topology.MetricSpace.HausdorffDistance
-import Mathbin.Topology.GDelta
-import Mathbin.Topology.Order.Lattice
-import Mathbin.Topology.Semicontinuous
+import Analysis.Normed.Group.Basic
+import MeasureTheory.Function.AeMeasurableSequence
+import MeasureTheory.Group.Arithmetic
+import MeasureTheory.Lattice
+import MeasureTheory.Measure.OpenPos
+import Topology.Algebra.Order.LiminfLimsup
+import Topology.ContinuousFunction.Basic
+import Topology.Instances.Ereal
+import Topology.MetricSpace.HausdorffDistance
+import Topology.GDelta
+import Topology.Order.Lattice
+import Topology.Semicontinuous
#align_import measure_theory.constructions.borel_space.basic from "leanprover-community/mathlib"@"9f55d0d4363ae59948c33864cbc52e0b12e0e8ce"
mathlib commit https://github.com/leanprover-community/mathlib/commit/442a83d738cb208d3600056c489be16900ba701d
@@ -1683,8 +1683,8 @@ section ConditionallyCompleteLinearOrder
variable [ConditionallyCompleteLinearOrder α] [OrderTopology α] [SecondCountableTopology α]
-#print measurable_cSup /-
-theorem measurable_cSup {ι} {f : ι → δ → α} {s : Set ι} (hs : s.Countable)
+#print measurable_sSup /-
+theorem measurable_sSup {ι} {f : ι → δ → α} {s : Set ι} (hs : s.Countable)
(hf : ∀ i, Measurable (f i)) (bdd : ∀ x, BddAbove ((fun i => f i x) '' s)) :
Measurable fun x => sSup ((fun i => f i x) '' s) :=
by
@@ -1693,33 +1693,29 @@ theorem measurable_cSup {ι} {f : ι → δ → α} {s : Set ι} (hs : s.Countab
· apply measurable_of_Iic; intro y
simp_rw [preimage, mem_Iic, csSup_le_iff (bdd _) (h2s.image _), ball_image_iff, set_of_forall]
exact MeasurableSet.biInter hs fun i hi => measurableSet_le (hf i) measurable_const
-#align measurable_cSup measurable_cSup
+#align measurable_cSup measurable_sSup
-/
-#print measurable_cInf /-
-theorem measurable_cInf {ι} {f : ι → δ → α} {s : Set ι} (hs : s.Countable)
+#print measurable_sInf /-
+theorem measurable_sInf {ι} {f : ι → δ → α} {s : Set ι} (hs : s.Countable)
(hf : ∀ i, Measurable (f i)) (bdd : ∀ x, BddBelow ((fun i => f i x) '' s)) :
Measurable fun x => sInf ((fun i => f i x) '' s) :=
- @measurable_cSup αᵒᵈ _ _ _ _ _ _ _ _ _ _ _ hs hf bdd
-#align measurable_cInf measurable_cInf
+ @measurable_sSup αᵒᵈ _ _ _ _ _ _ _ _ _ _ _ hs hf bdd
+#align measurable_cInf measurable_sInf
-/
-#print measurable_ciSup /-
-theorem measurable_ciSup {ι : Type _} [Countable ι] {f : ι → δ → α} (hf : ∀ i, Measurable (f i))
+theorem measurable_csupr {ι : Type _} [Countable ι] {f : ι → δ → α} (hf : ∀ i, Measurable (f i))
(bdd : ∀ x, BddAbove (range fun i => f i x)) : Measurable fun x => ⨆ i, f i x :=
by
change Measurable fun x => Sup (range fun i : ι => f i x)
simp_rw [← image_univ] at bdd ⊢
- refine' measurable_cSup countable_univ hf bdd
-#align measurable_csupr measurable_ciSup
--/
+ refine' measurable_sSup countable_univ hf bdd
+#align measurable_csupr measurable_csupr
-#print measurable_ciInf /-
-theorem measurable_ciInf {ι : Type _} [Countable ι] {f : ι → δ → α} (hf : ∀ i, Measurable (f i))
+theorem measurable_cinfi {ι : Type _} [Countable ι] {f : ι → δ → α} (hf : ∀ i, Measurable (f i))
(bdd : ∀ x, BddBelow (range fun i => f i x)) : Measurable fun x => ⨅ i, f i x :=
- @measurable_ciSup αᵒᵈ _ _ _ _ _ _ _ _ _ _ _ hf bdd
-#align measurable_cinfi measurable_ciInf
--/
+ @measurable_csupr αᵒᵈ _ _ _ _ _ _ _ _ _ _ _ hf bdd
+#align measurable_cinfi measurable_cinfi
end ConditionallyCompleteLinearOrder
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,11 +2,6 @@
Copyright (c) 2017 Johannes Hölzl. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Johannes Hölzl, Yury Kudryashov
-
-! This file was ported from Lean 3 source module measure_theory.constructions.borel_space.basic
-! leanprover-community/mathlib commit 9f55d0d4363ae59948c33864cbc52e0b12e0e8ce
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Analysis.Normed.Group.Basic
import Mathbin.MeasureTheory.Function.AeMeasurableSequence
@@ -21,6 +16,8 @@ import Mathbin.Topology.GDelta
import Mathbin.Topology.Order.Lattice
import Mathbin.Topology.Semicontinuous
+#align_import measure_theory.constructions.borel_space.basic from "leanprover-community/mathlib"@"9f55d0d4363ae59948c33864cbc52e0b12e0e8ce"
+
/-!
# Borel (measurable) space
mathlib commit https://github.com/leanprover-community/mathlib/commit/2a0ce625dbb0ffbc7d1316597de0b25c1ec75303
@@ -69,9 +69,11 @@ def borel (α : Type u) [TopologicalSpace α] : MeasurableSpace α :=
#align borel borel
-/
+#print borel_anti /-
theorem borel_anti : Antitone (@borel α) := fun _ _ h =>
MeasurableSpace.generateFrom_le fun s hs => GenerateMeasurable.basic _ (h _ hs)
#align borel_anti borel_anti
+-/
#print borel_eq_top_of_discrete /-
theorem borel_eq_top_of_discrete [TopologicalSpace α] [DiscreteTopology α] : borel α = ⊤ :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/9f55d0d4363ae59948c33864cbc52e0b12e0e8ce
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Johannes Hölzl, Yury Kudryashov
! This file was ported from Lean 3 source module measure_theory.constructions.borel_space.basic
-! leanprover-community/mathlib commit 4280f5f32e16755ec7985ce11e189b6cd6ff6735
+! leanprover-community/mathlib commit 9f55d0d4363ae59948c33864cbc52e0b12e0e8ce
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -69,6 +69,10 @@ def borel (α : Type u) [TopologicalSpace α] : MeasurableSpace α :=
#align borel borel
-/
+theorem borel_anti : Antitone (@borel α) := fun _ _ h =>
+ MeasurableSpace.generateFrom_le fun s hs => GenerateMeasurable.basic _ (h _ hs)
+#align borel_anti borel_anti
+
#print borel_eq_top_of_discrete /-
theorem borel_eq_top_of_discrete [TopologicalSpace α] [DiscreteTopology α] : borel α = ⊤ :=
top_le_iff.1 fun s hs => GenerateMeasurable.basic s (isOpen_discrete s)
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -69,10 +69,13 @@ def borel (α : Type u) [TopologicalSpace α] : MeasurableSpace α :=
#align borel borel
-/
+#print borel_eq_top_of_discrete /-
theorem borel_eq_top_of_discrete [TopologicalSpace α] [DiscreteTopology α] : borel α = ⊤ :=
top_le_iff.1 fun s hs => GenerateMeasurable.basic s (isOpen_discrete s)
#align borel_eq_top_of_discrete borel_eq_top_of_discrete
+-/
+#print borel_eq_top_of_countable /-
theorem borel_eq_top_of_countable [TopologicalSpace α] [T1Space α] [Countable α] : borel α = ⊤ :=
by
refine' top_le_iff.1 fun s hs => bUnion_of_singleton s ▸ _
@@ -82,6 +85,7 @@ theorem borel_eq_top_of_countable [TopologicalSpace α] [T1Space α] [Countable
apply generate_measurable.basic
exact is_closed_singleton.is_open_compl
#align borel_eq_top_of_countable borel_eq_top_of_countable
+-/
#print borel_eq_generateFrom_of_subbasis /-
theorem borel_eq_generateFrom_of_subbasis {s : Set (Set α)} [t : TopologicalSpace α]
@@ -205,11 +209,13 @@ theorem borel_comap {f : α → β} {t : TopologicalSpace β} :
#align borel_comap borel_comap
-/
+#print Continuous.borel_measurable /-
theorem Continuous.borel_measurable [TopologicalSpace α] [TopologicalSpace β] {f : α → β}
(hf : Continuous f) : @Measurable α β (borel α) (borel β) f :=
Measurable.of_le_map <|
generateFrom_le fun s hs => GenerateMeasurable.basic (f ⁻¹' s) (hs.Preimage hf)
#align continuous.borel_measurable Continuous.borel_measurable
+-/
#print OpensMeasurableSpace /-
/-- A space with `measurable_space` and `topological_space` structures such that
@@ -339,6 +345,7 @@ instance (priority := 100) BorelSpace.countablyGenerated {α : Type _} [Topologi
#align borel_space.countably_generated BorelSpace.countablyGenerated
-/
+#print MeasurableSet.induction_on_open /-
theorem MeasurableSet.induction_on_open [TopologicalSpace α] [MeasurableSpace α] [BorelSpace α]
{C : Set α → Prop} (h_open : ∀ U, IsOpen U → C U)
(h_compl : ∀ t, MeasurableSet t → C t → C (tᶜ))
@@ -349,6 +356,7 @@ theorem MeasurableSet.induction_on_open [TopologicalSpace α] [MeasurableSpace
MeasurableSpace.induction_on_inter BorelSpace.measurable_eq isPiSystem_isOpen
(h_open _ isOpen_empty) h_open h_compl h_union
#align measurable_set.induction_on_open MeasurableSet.induction_on_open
+-/
section
@@ -403,16 +411,21 @@ theorem measurableSet_closure : MeasurableSet (closure s) :=
#align measurable_set_closure measurableSet_closure
-/
+#print measurable_of_isOpen /-
theorem measurable_of_isOpen {f : δ → γ} (hf : ∀ s, IsOpen s → MeasurableSet (f ⁻¹' s)) :
Measurable f := by rw [‹BorelSpace γ›.measurable_eq]; exact measurable_generateFrom hf
#align measurable_of_is_open measurable_of_isOpen
+-/
+#print measurable_of_isClosed /-
theorem measurable_of_isClosed {f : δ → γ} (hf : ∀ s, IsClosed s → MeasurableSet (f ⁻¹' s)) :
Measurable f := by
apply measurable_of_isOpen; intro s hs
rw [← MeasurableSet.compl_iff, ← preimage_compl]; apply hf; rw [isClosed_compl_iff]; exact hs
#align measurable_of_is_closed measurable_of_isClosed
+-/
+#print measurable_of_is_closed' /-
theorem measurable_of_is_closed' {f : δ → γ}
(hf : ∀ s, IsClosed s → s.Nonempty → s ≠ univ → MeasurableSet (f ⁻¹' s)) : Measurable f :=
by
@@ -421,6 +434,7 @@ theorem measurable_of_is_closed' {f : δ → γ}
by_cases h2 : s = univ; · simp [h2]
exact hf s hs h1 h2
#align measurable_of_is_closed' measurable_of_is_closed'
+-/
#print nhds_isMeasurablyGenerated /-
instance nhds_isMeasurablyGenerated (a : α) : (𝓝 a).IsMeasurablyGenerated :=
@@ -472,6 +486,7 @@ instance Pi.opensMeasurableSpace {ι : Type _} {π : ι → Type _} [Countable
#align pi.opens_measurable_space Pi.opensMeasurableSpace
-/
+#print Prod.opensMeasurableSpace /-
instance Prod.opensMeasurableSpace [SecondCountableTopology α] [SecondCountableTopology β] :
OpensMeasurableSpace (α × β) := by
constructor
@@ -482,33 +497,44 @@ instance Prod.opensMeasurableSpace [SecondCountableTopology α] [SecondCountable
(is_open_of_mem_countable_basis hu).MeasurableSet.Prod
(is_open_of_mem_countable_basis hv).MeasurableSet
#align prod.opens_measurable_space Prod.opensMeasurableSpace
+-/
variable {α' : Type _} [TopologicalSpace α'] [MeasurableSpace α']
+#print interior_ae_eq_of_null_frontier /-
theorem interior_ae_eq_of_null_frontier {μ : Measure α'} {s : Set α'} (h : μ (frontier s) = 0) :
interior s =ᵐ[μ] s :=
interior_subset.EventuallyLE.antisymm <| subset_closure.EventuallyLE.trans (ae_le_set.2 h)
#align interior_ae_eq_of_null_frontier interior_ae_eq_of_null_frontier
+-/
+#print measure_interior_of_null_frontier /-
theorem measure_interior_of_null_frontier {μ : Measure α'} {s : Set α'} (h : μ (frontier s) = 0) :
μ (interior s) = μ s :=
measure_congr (interior_ae_eq_of_null_frontier h)
#align measure_interior_of_null_frontier measure_interior_of_null_frontier
+-/
+#print nullMeasurableSet_of_null_frontier /-
theorem nullMeasurableSet_of_null_frontier {s : Set α} {μ : Measure α} (h : μ (frontier s) = 0) :
NullMeasurableSet s μ :=
⟨interior s, isOpen_interior.MeasurableSet, (interior_ae_eq_of_null_frontier h).symm⟩
#align null_measurable_set_of_null_frontier nullMeasurableSet_of_null_frontier
+-/
+#print closure_ae_eq_of_null_frontier /-
theorem closure_ae_eq_of_null_frontier {μ : Measure α'} {s : Set α'} (h : μ (frontier s) = 0) :
closure s =ᵐ[μ] s :=
((ae_le_set.2 h).trans interior_subset.EventuallyLE).antisymm <| subset_closure.EventuallyLE
#align closure_ae_eq_of_null_frontier closure_ae_eq_of_null_frontier
+-/
+#print measure_closure_of_null_frontier /-
theorem measure_closure_of_null_frontier {μ : Measure α'} {s : Set α'} (h : μ (frontier s) = 0) :
μ (closure s) = μ s :=
measure_congr (closure_ae_eq_of_null_frontier h)
#align measure_closure_of_null_frontier measure_closure_of_null_frontier
+-/
section Preorder
@@ -657,16 +683,20 @@ theorem measurableSet_lt' [SecondCountableTopology α] : MeasurableSet {p : α
#align measurable_set_lt' measurableSet_lt'
-/
+#print measurableSet_lt /-
@[measurability]
theorem measurableSet_lt [SecondCountableTopology α] {f g : δ → α} (hf : Measurable f)
(hg : Measurable g) : MeasurableSet {a | f a < g a} :=
hf.prod_mk hg measurableSet_lt'
#align measurable_set_lt measurableSet_lt
+-/
+#print nullMeasurableSet_lt /-
theorem nullMeasurableSet_lt [SecondCountableTopology α] {μ : Measure δ} {f g : δ → α}
(hf : AEMeasurable f μ) (hg : AEMeasurable g μ) : NullMeasurableSet {a | f a < g a} μ :=
(hf.prod_mk hg).NullMeasurable measurableSet_lt'
#align null_measurable_set_lt nullMeasurableSet_lt
+-/
#print Set.OrdConnected.measurableSet /-
theorem Set.OrdConnected.measurableSet (h : OrdConnected s) : MeasurableSet s :=
@@ -688,6 +718,7 @@ theorem IsPreconnected.measurableSet (h : IsPreconnected s) : MeasurableSet s :=
#align is_preconnected.measurable_set IsPreconnected.measurableSet
-/
+#print generateFrom_Ico_mem_le_borel /-
theorem generateFrom_Ico_mem_le_borel {α : Type _} [TopologicalSpace α] [LinearOrder α]
[OrderClosedTopology α] (s t : Set α) :
MeasurableSpace.generateFrom {S | ∃ l ∈ s, ∃ u ∈ t, ∃ h : l < u, Ico l u = S} ≤ borel α :=
@@ -697,7 +728,9 @@ theorem generateFrom_Ico_mem_le_borel {α : Type _} [TopologicalSpace α] [Linea
rintro _ ⟨a, -, b, -, -, rfl⟩
exact measurableSet_Ico
#align generate_from_Ico_mem_le_borel generateFrom_Ico_mem_le_borel
+-/
+#print Dense.borel_eq_generateFrom_Ico_mem_aux /-
theorem Dense.borel_eq_generateFrom_Ico_mem_aux {α : Type _} [TopologicalSpace α] [LinearOrder α]
[OrderTopology α] [SecondCountableTopology α] {s : Set α} (hd : Dense s)
(hbot : ∀ x, IsBot x → x ∈ s) (hIoo : ∀ x y : α, x < y → Ioo x y = ∅ → y ∈ s) :
@@ -732,7 +765,9 @@ theorem Dense.borel_eq_generateFrom_Ico_mem_aux {α : Type _} [TopologicalSpace
· refine' MeasurableSet.biUnion hc fun x hx => MeasurableSet.iUnion fun hlt => _
exact generate_measurable.basic _ ⟨x, hts hx, a, ha, hlt, mem_singleton _⟩
#align dense.borel_eq_generate_from_Ico_mem_aux Dense.borel_eq_generateFrom_Ico_mem_aux
+-/
+#print Dense.borel_eq_generateFrom_Ico_mem /-
theorem Dense.borel_eq_generateFrom_Ico_mem {α : Type _} [TopologicalSpace α] [LinearOrder α]
[OrderTopology α] [SecondCountableTopology α] [DenselyOrdered α] [NoMinOrder α] {s : Set α}
(hd : Dense s) :
@@ -740,7 +775,9 @@ theorem Dense.borel_eq_generateFrom_Ico_mem {α : Type _} [TopologicalSpace α]
hd.borel_eq_generateFrom_Ico_mem_aux (by simp) fun x y hxy H =>
((nonempty_Ioo.2 hxy).ne_empty H).elim
#align dense.borel_eq_generate_from_Ico_mem Dense.borel_eq_generateFrom_Ico_mem
+-/
+#print borel_eq_generateFrom_Ico /-
theorem borel_eq_generateFrom_Ico (α : Type _) [TopologicalSpace α] [SecondCountableTopology α]
[LinearOrder α] [OrderTopology α] :
borel α = generateFrom {S : Set α | ∃ (l u : _) (h : l < u), Ico l u = S} := by
@@ -748,7 +785,9 @@ theorem borel_eq_generateFrom_Ico (α : Type _) [TopologicalSpace α] [SecondCou
(@dense_univ α _).borel_eq_generateFrom_Ico_mem_aux (fun _ _ => mem_univ _) fun _ _ _ _ =>
mem_univ _
#align borel_eq_generate_from_Ico borel_eq_generateFrom_Ico
+-/
+#print Dense.borel_eq_generateFrom_Ioc_mem_aux /-
theorem Dense.borel_eq_generateFrom_Ioc_mem_aux {α : Type _} [TopologicalSpace α] [LinearOrder α]
[OrderTopology α] [SecondCountableTopology α] {s : Set α} (hd : Dense s)
(hbot : ∀ x, IsTop x → x ∈ s) (hIoo : ∀ x y : α, x < y → Ioo x y = ∅ → x ∈ s) :
@@ -761,7 +800,9 @@ theorem Dense.borel_eq_generateFrom_Ioc_mem_aux {α : Type _} [TopologicalSpace
· erw [dual_Ioo]
exact he
#align dense.borel_eq_generate_from_Ioc_mem_aux Dense.borel_eq_generateFrom_Ioc_mem_aux
+-/
+#print Dense.borel_eq_generateFrom_Ioc_mem /-
theorem Dense.borel_eq_generateFrom_Ioc_mem {α : Type _} [TopologicalSpace α] [LinearOrder α]
[OrderTopology α] [SecondCountableTopology α] [DenselyOrdered α] [NoMaxOrder α] {s : Set α}
(hd : Dense s) :
@@ -769,7 +810,9 @@ theorem Dense.borel_eq_generateFrom_Ioc_mem {α : Type _} [TopologicalSpace α]
hd.borel_eq_generateFrom_Ioc_mem_aux (by simp) fun x y hxy H =>
((nonempty_Ioo.2 hxy).ne_empty H).elim
#align dense.borel_eq_generate_from_Ioc_mem Dense.borel_eq_generateFrom_Ioc_mem
+-/
+#print borel_eq_generateFrom_Ioc /-
theorem borel_eq_generateFrom_Ioc (α : Type _) [TopologicalSpace α] [SecondCountableTopology α]
[LinearOrder α] [OrderTopology α] :
borel α = generateFrom {S : Set α | ∃ (l u : _) (h : l < u), Ioc l u = S} := by
@@ -777,6 +820,7 @@ theorem borel_eq_generateFrom_Ioc (α : Type _) [TopologicalSpace α] [SecondCou
(@dense_univ α _).borel_eq_generateFrom_Ioc_mem_aux (fun _ _ => mem_univ _) fun _ _ _ _ =>
mem_univ _
#align borel_eq_generate_from_Ioc borel_eq_generateFrom_Ioc
+-/
namespace MeasureTheory.Measure
@@ -813,6 +857,7 @@ theorem ext_of_Ioc_finite {α : Type _} [TopologicalSpace α] {m : MeasurableSpa
#align measure_theory.measure.ext_of_Ioc_finite MeasureTheory.Measure.ext_of_Ioc_finite
-/
+#print MeasureTheory.Measure.ext_of_Ico' /-
/-- Two measures which are finite on closed-open intervals are equal if the agree on all
closed-open intervals. -/
theorem ext_of_Ico' {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
@@ -836,7 +881,9 @@ theorem ext_of_Ico' {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
· rintro _ ⟨l, -, u, -, hlt, rfl⟩; exact hμ hlt
· rintro _ ⟨l, u, hlt, rfl⟩; exact h hlt
#align measure_theory.measure.ext_of_Ico' MeasureTheory.Measure.ext_of_Ico'
+-/
+#print MeasureTheory.Measure.ext_of_Ioc' /-
/-- Two measures which are finite on closed-open intervals are equal if the agree on all
open-closed intervals. -/
theorem ext_of_Ioc' {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
@@ -847,6 +894,7 @@ theorem ext_of_Ioc' {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
refine' @ext_of_Ico' αᵒᵈ _ _ _ _ _ ‹_› _ μ ν _ _ <;> intro a b hab <;> erw [dual_Ico]
exacts [hμ hab, h hab]
#align measure_theory.measure.ext_of_Ioc' MeasureTheory.Measure.ext_of_Ioc'
+-/
#print MeasureTheory.Measure.ext_of_Ico /-
/-- Two measures which are finite on closed-open intervals are equal if the agree on all
@@ -922,50 +970,65 @@ theorem measurableSet_uIoc : MeasurableSet (uIoc a b) :=
variable [SecondCountableTopology α]
+#print Measurable.max /-
@[measurability]
theorem Measurable.max {f g : δ → α} (hf : Measurable f) (hg : Measurable g) :
Measurable fun a => max (f a) (g a) := by
simpa only [max_def'] using hf.piecewise (measurableSet_le hg hf) hg
#align measurable.max Measurable.max
+-/
+#print AEMeasurable.max /-
@[measurability]
theorem AEMeasurable.max {f g : δ → α} {μ : Measure δ} (hf : AEMeasurable f μ)
(hg : AEMeasurable g μ) : AEMeasurable (fun a => max (f a) (g a)) μ :=
⟨fun a => max (hf.mk f a) (hg.mk g a), hf.measurable_mk.max hg.measurable_mk,
EventuallyEq.comp₂ hf.ae_eq_mk _ hg.ae_eq_mk⟩
#align ae_measurable.max AEMeasurable.max
+-/
+#print Measurable.min /-
@[measurability]
theorem Measurable.min {f g : δ → α} (hf : Measurable f) (hg : Measurable g) :
Measurable fun a => min (f a) (g a) := by
simpa only [min_def] using hf.piecewise (measurableSet_le hf hg) hg
#align measurable.min Measurable.min
+-/
+#print AEMeasurable.min /-
@[measurability]
theorem AEMeasurable.min {f g : δ → α} {μ : Measure δ} (hf : AEMeasurable f μ)
(hg : AEMeasurable g μ) : AEMeasurable (fun a => min (f a) (g a)) μ :=
⟨fun a => min (hf.mk f a) (hg.mk g a), hf.measurable_mk.min hg.measurable_mk,
EventuallyEq.comp₂ hf.ae_eq_mk _ hg.ae_eq_mk⟩
#align ae_measurable.min AEMeasurable.min
+-/
end LinearOrder
+#print Continuous.measurable /-
/-- A continuous function from an `opens_measurable_space` to a `borel_space`
is measurable. -/
theorem Continuous.measurable {f : α → γ} (hf : Continuous f) : Measurable f :=
hf.borel_measurable.mono OpensMeasurableSpace.borel_le (le_of_eq <| BorelSpace.measurable_eq)
#align continuous.measurable Continuous.measurable
+-/
+#print Continuous.aemeasurable /-
/-- A continuous function from an `opens_measurable_space` to a `borel_space`
is ae-measurable. -/
theorem Continuous.aemeasurable {f : α → γ} (h : Continuous f) {μ : Measure α} : AEMeasurable f μ :=
h.Measurable.AEMeasurable
#align continuous.ae_measurable Continuous.aemeasurable
+-/
+#print ClosedEmbedding.measurable /-
theorem ClosedEmbedding.measurable {f : α → γ} (hf : ClosedEmbedding f) : Measurable f :=
hf.Continuous.Measurable
#align closed_embedding.measurable ClosedEmbedding.measurable
+-/
+#print Continuous.isOpenPosMeasure_map /-
theorem Continuous.isOpenPosMeasure_map {f : β → γ} (hf : Continuous f)
(hf_surj : Function.Surjective f) {μ : Measure β} [μ.IsOpenPosMeasure] :
(Measure.map f μ).IsOpenPosMeasure :=
@@ -974,7 +1037,9 @@ theorem Continuous.isOpenPosMeasure_map {f : β → γ} (hf : Continuous f)
rw [measure.map_apply hf.measurable hUo.measurable_set]
exact (hUo.preimage hf).measure_ne_zero μ (hf_surj.nonempty_preimage.mpr hUne)
#align continuous.is_open_pos_measure_map Continuous.isOpenPosMeasure_map
+-/
+#print ContinuousOn.measurable_piecewise /-
/-- If a function is defined piecewise in terms of functions which are continuous on their
respective pieces, then it is measurable. -/
theorem ContinuousOn.measurable_piecewise {f g : α → γ} {s : Set α} [∀ j : α, Decidable (j ∈ s)]
@@ -991,6 +1056,7 @@ theorem ContinuousOn.measurable_piecewise {f g : α → γ} {s : Set α} [∀ j
rw [diff_eq_compl_inter, inter_comm, hu]
exact u_open.measurable_set.inter hs.compl
#align continuous_on.measurable_piecewise ContinuousOn.measurable_piecewise
+-/
#print ContinuousMul.measurableMul /-
@[to_additive]
@@ -1010,12 +1076,14 @@ instance (priority := 100) ContinuousSub.measurableSub [Sub γ] [ContinuousSub
#align has_continuous_sub.has_measurable_sub ContinuousSub.measurableSub
-/
+#print TopologicalGroup.measurableInv /-
@[to_additive]
instance (priority := 100) TopologicalGroup.measurableInv [Group γ] [TopologicalGroup γ] :
MeasurableInv γ :=
⟨continuous_inv.Measurable⟩
#align topological_group.has_measurable_inv TopologicalGroup.measurableInv
#align topological_add_group.has_measurable_neg TopologicalAddGroup.measurableNeg
+-/
#print ContinuousSMul.measurableSMul /-
instance (priority := 100) ContinuousSMul.measurableSMul {M α} [TopologicalSpace M]
@@ -1062,10 +1130,12 @@ end Lattice
section Homeomorph
+#print Homeomorph.measurable /-
@[measurability]
protected theorem Homeomorph.measurable (h : α ≃ₜ γ) : Measurable h :=
h.Continuous.Measurable
#align homeomorph.measurable Homeomorph.measurable
+-/
#print Homeomorph.toMeasurableEquiv /-
/-- A homeomorphism between two Borel spaces is a measurable equivalence.-/
@@ -1077,46 +1147,60 @@ def Homeomorph.toMeasurableEquiv (h : γ ≃ₜ γ₂) : γ ≃ᵐ γ₂
#align homeomorph.to_measurable_equiv Homeomorph.toMeasurableEquiv
-/
+#print Homeomorph.toMeasurableEquiv_coe /-
@[simp]
theorem Homeomorph.toMeasurableEquiv_coe (h : γ ≃ₜ γ₂) : (h.toMeasurableEquiv : γ → γ₂) = h :=
rfl
#align homeomorph.to_measurable_equiv_coe Homeomorph.toMeasurableEquiv_coe
+-/
+#print Homeomorph.toMeasurableEquiv_symm_coe /-
@[simp]
theorem Homeomorph.toMeasurableEquiv_symm_coe (h : γ ≃ₜ γ₂) :
(h.toMeasurableEquiv.symm : γ₂ → γ) = h.symm :=
rfl
#align homeomorph.to_measurable_equiv_symm_coe Homeomorph.toMeasurableEquiv_symm_coe
+-/
end Homeomorph
+#print ContinuousMap.measurable /-
@[measurability]
theorem ContinuousMap.measurable (f : C(α, γ)) : Measurable f :=
f.Continuous.Measurable
#align continuous_map.measurable ContinuousMap.measurable
+-/
+#print measurable_of_continuousOn_compl_singleton /-
theorem measurable_of_continuousOn_compl_singleton [T1Space α] {f : α → γ} (a : α)
(hf : ContinuousOn f ({a}ᶜ)) : Measurable f :=
measurable_of_measurable_on_compl_singleton a
(continuousOn_iff_continuous_restrict.1 hf).Measurable
#align measurable_of_continuous_on_compl_singleton measurable_of_continuousOn_compl_singleton
+-/
+#print Continuous.measurable2 /-
theorem Continuous.measurable2 [SecondCountableTopology α] [SecondCountableTopology β] {f : δ → α}
{g : δ → β} {c : α → β → γ} (h : Continuous fun p : α × β => c p.1 p.2) (hf : Measurable f)
(hg : Measurable g) : Measurable fun a => c (f a) (g a) :=
h.Measurable.comp (hf.prod_mk hg)
#align continuous.measurable2 Continuous.measurable2
+-/
+#print Continuous.aemeasurable2 /-
theorem Continuous.aemeasurable2 [SecondCountableTopology α] [SecondCountableTopology β] {f : δ → α}
{g : δ → β} {c : α → β → γ} {μ : Measure δ} (h : Continuous fun p : α × β => c p.1 p.2)
(hf : AEMeasurable f μ) (hg : AEMeasurable g μ) : AEMeasurable (fun a => c (f a) (g a)) μ :=
h.Measurable.comp_aemeasurable (hf.prod_mk hg)
#align continuous.ae_measurable2 Continuous.aemeasurable2
+-/
+#print HasContinuousInv₀.measurableInv /-
instance (priority := 100) HasContinuousInv₀.measurableInv [GroupWithZero γ] [T1Space γ]
[HasContinuousInv₀ γ] : MeasurableInv γ :=
⟨measurable_of_continuousOn_compl_singleton 0 continuousOn_inv₀⟩
#align has_continuous_inv₀.has_measurable_inv HasContinuousInv₀.measurableInv
+-/
#print ContinuousMul.measurableMul₂ /-
@[to_additive]
@@ -1151,6 +1235,7 @@ variable [TopologicalSpace α] [MeasurableSpace α] [BorelSpace α] [Topological
[MeasurableSpace β] [BorelSpace β] [TopologicalSpace γ] [MeasurableSpace γ] [BorelSpace γ]
[MeasurableSpace δ]
+#print pi_le_borel_pi /-
theorem pi_le_borel_pi {ι : Type _} {π : ι → Type _} [∀ i, TopologicalSpace (π i)]
[∀ i, MeasurableSpace (π i)] [∀ i, BorelSpace (π i)] : MeasurableSpace.pi ≤ borel (∀ i, π i) :=
by
@@ -1159,7 +1244,9 @@ theorem pi_le_borel_pi {ι : Type _} {π : ι → Type _} [∀ i, TopologicalSpa
rw [this]
exact iSup_le fun i => comap_le_iff_le_map.2 <| (continuous_apply i).borel_measurable
#align pi_le_borel_pi pi_le_borel_pi
+-/
+#print prod_le_borel_prod /-
theorem prod_le_borel_prod : Prod.instMeasurableSpace ≤ borel (α × β) :=
by
rw [‹BorelSpace α›.measurable_eq, ‹BorelSpace β›.measurable_eq]
@@ -1167,6 +1254,7 @@ theorem prod_le_borel_prod : Prod.instMeasurableSpace ≤ borel (α × β) :=
· exact comap_le_iff_le_map.mpr continuous_fst.borel_measurable
· exact comap_le_iff_le_map.mpr continuous_snd.borel_measurable
#align prod_le_borel_prod prod_le_borel_prod
+-/
#print Pi.borelSpace /-
instance Pi.borelSpace {ι : Type _} {π : ι → Type _} [Countable ι] [∀ i, TopologicalSpace (π i)]
@@ -1176,26 +1264,34 @@ instance Pi.borelSpace {ι : Type _} {π : ι → Type _} [Countable ι] [∀ i,
#align pi.borel_space Pi.borelSpace
-/
+#print Prod.borelSpace /-
instance Prod.borelSpace [SecondCountableTopology α] [SecondCountableTopology β] :
BorelSpace (α × β) :=
⟨le_antisymm prod_le_borel_prod OpensMeasurableSpace.borel_le⟩
#align prod.borel_space Prod.borelSpace
+-/
+#print Embedding.measurableEmbedding /-
protected theorem Embedding.measurableEmbedding {f : α → β} (h₁ : Embedding f)
(h₂ : MeasurableSet (range f)) : MeasurableEmbedding f :=
show MeasurableEmbedding (coe ∘ (Homeomorph.ofEmbedding f h₁).toMeasurableEquiv) from
(MeasurableEmbedding.subtype_coe h₂).comp (MeasurableEquiv.measurableEmbedding _)
#align embedding.measurable_embedding Embedding.measurableEmbedding
+-/
+#print ClosedEmbedding.measurableEmbedding /-
protected theorem ClosedEmbedding.measurableEmbedding {f : α → β} (h : ClosedEmbedding f) :
MeasurableEmbedding f :=
h.toEmbedding.MeasurableEmbedding h.closed_range.MeasurableSet
#align closed_embedding.measurable_embedding ClosedEmbedding.measurableEmbedding
+-/
+#print OpenEmbedding.measurableEmbedding /-
protected theorem OpenEmbedding.measurableEmbedding {f : α → β} (h : OpenEmbedding f) :
MeasurableEmbedding f :=
h.toEmbedding.MeasurableEmbedding h.open_range.MeasurableSet
#align open_embedding.measurable_embedding OpenEmbedding.measurableEmbedding
+-/
section LinearOrder
@@ -1440,55 +1536,70 @@ theorem measurableSet_of_mem_nhdsWithin_Ioi {s : Set α} (h : ∀ x ∈ s, s ∈
end LinearOrder
+#print Measurable.iSup_Prop /-
@[measurability]
theorem Measurable.iSup_Prop {α} [MeasurableSpace α] [CompleteLattice α] (p : Prop) {f : δ → α}
(hf : Measurable f) : Measurable fun b => ⨆ h : p, f b :=
by_cases (fun h : p => by convert hf; funext; exact iSup_pos h) fun h : ¬p => by
convert measurable_const; funext; exact iSup_neg h
#align measurable.supr_Prop Measurable.iSup_Prop
+-/
+#print Measurable.iInf_Prop /-
@[measurability]
theorem Measurable.iInf_Prop {α} [MeasurableSpace α] [CompleteLattice α] (p : Prop) {f : δ → α}
(hf : Measurable f) : Measurable fun b => ⨅ h : p, f b :=
by_cases (fun h : p => by convert hf; funext; exact iInf_pos h) fun h : ¬p => by
convert measurable_const; funext; exact iInf_neg h
#align measurable.infi_Prop Measurable.iInf_Prop
+-/
section CompleteLinearOrder
variable [CompleteLinearOrder α] [OrderTopology α] [SecondCountableTopology α]
+#print measurable_iSup /-
@[measurability]
theorem measurable_iSup {ι} [Countable ι] {f : ι → δ → α} (hf : ∀ i, Measurable (f i)) :
Measurable fun b => ⨆ i, f i b :=
Measurable.isLUB hf fun b => isLUB_iSup
#align measurable_supr measurable_iSup
+-/
+#print aemeasurable_iSup /-
@[measurability]
theorem aemeasurable_iSup {ι} {μ : Measure δ} [Countable ι] {f : ι → δ → α}
(hf : ∀ i, AEMeasurable (f i) μ) : AEMeasurable (fun b => ⨆ i, f i b) μ :=
AEMeasurable.isLUB hf <| ae_of_all μ fun b => isLUB_iSup
#align ae_measurable_supr aemeasurable_iSup
+-/
+#print measurable_iInf /-
@[measurability]
theorem measurable_iInf {ι} [Countable ι] {f : ι → δ → α} (hf : ∀ i, Measurable (f i)) :
Measurable fun b => ⨅ i, f i b :=
Measurable.isGLB hf fun b => isGLB_iInf
#align measurable_infi measurable_iInf
+-/
+#print aemeasurable_iInf /-
@[measurability]
theorem aemeasurable_iInf {ι} {μ : Measure δ} [Countable ι] {f : ι → δ → α}
(hf : ∀ i, AEMeasurable (f i) μ) : AEMeasurable (fun b => ⨅ i, f i b) μ :=
AEMeasurable.isGLB hf <| ae_of_all μ fun b => isGLB_iInf
#align ae_measurable_infi aemeasurable_iInf
+-/
+#print measurable_biSup /-
theorem measurable_biSup {ι} (s : Set ι) {f : ι → δ → α} (hs : s.Countable)
(hf : ∀ i, Measurable (f i)) : Measurable fun b => ⨆ i ∈ s, f i b :=
by
haveI : Encodable s := hs.to_encodable; simp only [iSup_subtype']
exact measurable_iSup fun i => hf i
#align measurable_bsupr measurable_biSup
+-/
+#print aemeasurable_biSup /-
theorem aemeasurable_biSup {ι} {μ : Measure δ} (s : Set ι) {f : ι → δ → α} (hs : s.Countable)
(hf : ∀ i, AEMeasurable (f i) μ) : AEMeasurable (fun b => ⨆ i ∈ s, f i b) μ :=
by
@@ -1496,14 +1607,18 @@ theorem aemeasurable_biSup {ι} {μ : Measure δ} (s : Set ι) {f : ι → δ
simp only [iSup_subtype']
exact aemeasurable_iSup fun i => hf i
#align ae_measurable_bsupr aemeasurable_biSup
+-/
+#print measurable_biInf /-
theorem measurable_biInf {ι} (s : Set ι) {f : ι → δ → α} (hs : s.Countable)
(hf : ∀ i, Measurable (f i)) : Measurable fun b => ⨅ i ∈ s, f i b :=
by
haveI : Encodable s := hs.to_encodable; simp only [iInf_subtype']
exact measurable_iInf fun i => hf i
#align measurable_binfi measurable_biInf
+-/
+#print aemeasurable_biInf /-
theorem aemeasurable_biInf {ι} {μ : Measure δ} (s : Set ι) {f : ι → δ → α} (hs : s.Countable)
(hf : ∀ i, AEMeasurable (f i) μ) : AEMeasurable (fun b => ⨅ i ∈ s, f i b) μ :=
by
@@ -1511,7 +1626,9 @@ theorem aemeasurable_biInf {ι} {μ : Measure δ} (s : Set ι) {f : ι → δ
simp only [iInf_subtype']
exact aemeasurable_iInf fun i => hf i
#align ae_measurable_binfi aemeasurable_biInf
+-/
+#print measurable_liminf' /-
/-- `liminf` over a general filter is measurable. See `measurable_liminf` for the version over `ℕ`.
-/
theorem measurable_liminf' {ι ι'} {f : ι → δ → α} {u : Filter ι} (hf : ∀ i, Measurable (f i))
@@ -1522,7 +1639,9 @@ theorem measurable_liminf' {ι ι'} {f : ι → δ → α} {u : Filter ι} (hf :
refine' measurable_biSup _ hu.countable _
exact fun i => measurable_biInf _ (hs i) hf
#align measurable_liminf' measurable_liminf'
+-/
+#print measurable_limsup' /-
/-- `limsup` over a general filter is measurable. See `measurable_limsup` for the version over `ℕ`.
-/
theorem measurable_limsup' {ι ι'} {f : ι → δ → α} {u : Filter ι} (hf : ∀ i, Measurable (f i))
@@ -1533,6 +1652,7 @@ theorem measurable_limsup' {ι ι'} {f : ι → δ → α} {u : Filter ι} (hf :
refine' measurable_biInf _ hu.countable _
exact fun i => measurable_biSup _ (hs i) hf
#align measurable_limsup' measurable_limsup'
+-/
#print measurable_liminf /-
/-- `liminf` over `ℕ` is measurable. See `measurable_liminf'` for a version with a general filter.
@@ -1560,6 +1680,7 @@ section ConditionallyCompleteLinearOrder
variable [ConditionallyCompleteLinearOrder α] [OrderTopology α] [SecondCountableTopology α]
+#print measurable_cSup /-
theorem measurable_cSup {ι} {f : ι → δ → α} {s : Set ι} (hs : s.Countable)
(hf : ∀ i, Measurable (f i)) (bdd : ∀ x, BddAbove ((fun i => f i x) '' s)) :
Measurable fun x => sSup ((fun i => f i x) '' s) :=
@@ -1570,13 +1691,17 @@ theorem measurable_cSup {ι} {f : ι → δ → α} {s : Set ι} (hs : s.Countab
simp_rw [preimage, mem_Iic, csSup_le_iff (bdd _) (h2s.image _), ball_image_iff, set_of_forall]
exact MeasurableSet.biInter hs fun i hi => measurableSet_le (hf i) measurable_const
#align measurable_cSup measurable_cSup
+-/
+#print measurable_cInf /-
theorem measurable_cInf {ι} {f : ι → δ → α} {s : Set ι} (hs : s.Countable)
(hf : ∀ i, Measurable (f i)) (bdd : ∀ x, BddBelow ((fun i => f i x) '' s)) :
Measurable fun x => sInf ((fun i => f i x) '' s) :=
@measurable_cSup αᵒᵈ _ _ _ _ _ _ _ _ _ _ _ hs hf bdd
#align measurable_cInf measurable_cInf
+-/
+#print measurable_ciSup /-
theorem measurable_ciSup {ι : Type _} [Countable ι] {f : ι → δ → α} (hf : ∀ i, Measurable (f i))
(bdd : ∀ x, BddAbove (range fun i => f i x)) : Measurable fun x => ⨆ i, f i x :=
by
@@ -1584,11 +1709,14 @@ theorem measurable_ciSup {ι : Type _} [Countable ι] {f : ι → δ → α} (hf
simp_rw [← image_univ] at bdd ⊢
refine' measurable_cSup countable_univ hf bdd
#align measurable_csupr measurable_ciSup
+-/
+#print measurable_ciInf /-
theorem measurable_ciInf {ι : Type _} [Countable ι] {f : ι → δ → α} (hf : ∀ i, Measurable (f i))
(bdd : ∀ x, BddBelow (range fun i => f i x)) : Measurable fun x => ⨅ i, f i x :=
@measurable_ciSup αᵒᵈ _ _ _ _ _ _ _ _ _ _ _ hf bdd
#align measurable_cinfi measurable_ciInf
+-/
end ConditionallyCompleteLinearOrder
@@ -1602,6 +1730,7 @@ def Homemorph.toMeasurableEquiv (h : α ≃ₜ β) : α ≃ᵐ β
#align homemorph.to_measurable_equiv Homemorph.toMeasurableEquiv
-/
+#print IsFiniteMeasureOnCompacts.map /-
protected theorem IsFiniteMeasureOnCompacts.map {α : Type _} {m0 : MeasurableSpace α}
[TopologicalSpace α] [OpensMeasurableSpace α] {β : Type _} [MeasurableSpace β]
[TopologicalSpace β] [BorelSpace β] [T2Space β] (μ : Measure α) [IsFiniteMeasureOnCompacts μ]
@@ -1612,28 +1741,39 @@ protected theorem IsFiniteMeasureOnCompacts.map {α : Type _} {m0 : MeasurableSp
apply IsCompact.measure_lt_top
rwa [f.is_compact_preimage]⟩
#align is_finite_measure_on_compacts.map IsFiniteMeasureOnCompacts.map
+-/
end BorelSpace
+#print Empty.borelSpace /-
instance Empty.borelSpace : BorelSpace Empty :=
⟨borel_eq_top_of_discrete.symm⟩
#align empty.borel_space Empty.borelSpace
+-/
+#print Unit.borelSpace /-
instance Unit.borelSpace : BorelSpace Unit :=
⟨borel_eq_top_of_discrete.symm⟩
#align unit.borel_space Unit.borelSpace
+-/
+#print Bool.borelSpace /-
instance Bool.borelSpace : BorelSpace Bool :=
⟨borel_eq_top_of_discrete.symm⟩
#align bool.borel_space Bool.borelSpace
+-/
+#print Nat.borelSpace /-
instance Nat.borelSpace : BorelSpace ℕ :=
⟨borel_eq_top_of_discrete.symm⟩
#align nat.borel_space Nat.borelSpace
+-/
+#print Int.borelSpace /-
instance Int.borelSpace : BorelSpace ℤ :=
⟨borel_eq_top_of_discrete.symm⟩
#align int.borel_space Int.borelSpace
+-/
#print Rat.borelSpace /-
instance Rat.borelSpace : BorelSpace ℚ :=
@@ -1661,9 +1801,11 @@ instance NNReal.measurableSpace : MeasurableSpace ℝ≥0 :=
#align nnreal.measurable_space NNReal.measurableSpace
-/
+#print NNReal.borelSpace /-
instance NNReal.borelSpace : BorelSpace ℝ≥0 :=
Subtype.borelSpace _
#align nnreal.borel_space NNReal.borelSpace
+-/
#print ENNReal.measurableSpace /-
instance ENNReal.measurableSpace : MeasurableSpace ℝ≥0∞ :=
@@ -1671,9 +1813,11 @@ instance ENNReal.measurableSpace : MeasurableSpace ℝ≥0∞ :=
#align ennreal.measurable_space ENNReal.measurableSpace
-/
+#print ENNReal.borelSpace /-
instance ENNReal.borelSpace : BorelSpace ℝ≥0∞ :=
⟨rfl⟩
#align ennreal.borel_space ENNReal.borelSpace
+-/
#print EReal.measurableSpace /-
instance EReal.measurableSpace : MeasurableSpace EReal :=
@@ -1681,10 +1825,13 @@ instance EReal.measurableSpace : MeasurableSpace EReal :=
#align ereal.measurable_space EReal.measurableSpace
-/
+#print EReal.borelSpace /-
instance EReal.borelSpace : BorelSpace EReal :=
⟨rfl⟩
#align ereal.borel_space EReal.borelSpace
+-/
+#print measure_eq_measure_preimage_add_measure_tsum_Ico_zpow /-
/-- One can cut out `ℝ≥0∞` into the sets `{0}`, `Ico (t^n) (t^(n+1))` for `n : ℤ` and `{∞}`. This
gives a way to compute the measure of a set in terms of sets on which a given function `f` does not
fluctuate by more than `t`. -/
@@ -1742,6 +1889,7 @@ theorem measure_eq_measure_preimage_add_measure_tsum_Ico_zpow [MeasurableSpace
exact hs.inter (hf measurableSet_Ico)
rw [A, B, C, add_assoc]
#align measure_eq_measure_preimage_add_measure_tsum_Ico_zpow measure_eq_measure_preimage_add_measure_tsum_Ico_zpow
+-/
section PseudoMetricSpace
@@ -1831,6 +1979,7 @@ theorem Measurable.nndist {f g : β → α} (hf : Measurable f) (hg : Measurable
end
+#print tendsto_measure_cthickening /-
/-- If a set has a closed thickening with finite measure, then the measure of its `r`-closed
thickenings converges to the measure of its closure as `r` tends to `0`. -/
theorem tendsto_measure_cthickening {μ : Measure α} {s : Set α}
@@ -1851,7 +2000,9 @@ theorem tendsto_measure_cthickening {μ : Measure α} {s : Set α}
convert B.sup A
exact (nhds_left_sup_nhds_right' 0).symm
#align tendsto_measure_cthickening tendsto_measure_cthickening
+-/
+#print tendsto_measure_cthickening_of_isClosed /-
/-- If a closed set has a closed thickening with finite measure, then the measure of its `r`-closed
thickenings converges to its measure as `r` tends to `0`. -/
theorem tendsto_measure_cthickening_of_isClosed {μ : Measure α} {s : Set α}
@@ -1861,9 +2012,11 @@ theorem tendsto_measure_cthickening_of_isClosed {μ : Measure α} {s : Set α}
convert tendsto_measure_cthickening hs
exact h's.closure_eq.symm
#align tendsto_measure_cthickening_of_is_closed tendsto_measure_cthickening_of_isClosed
+-/
end PseudoMetricSpace
+#print tendsto_measure_cthickening_of_isCompact /-
/-- Given a compact set in a proper space, the measure of its `r`-closed thickenings converges to
its measure as `r` tends to `0`. -/
theorem tendsto_measure_cthickening_of_isCompact [MetricSpace α] [MeasurableSpace α]
@@ -1873,6 +2026,7 @@ theorem tendsto_measure_cthickening_of_isCompact [MetricSpace α] [MeasurableSpa
tendsto_measure_cthickening_of_isClosed ⟨1, zero_lt_one, hs.Bounded.cthickening.measure_lt_top.Ne⟩
hs.IsClosed
#align tendsto_measure_cthickening_of_is_compact tendsto_measure_cthickening_of_isCompact
+-/
section PseudoEMetricSpace
@@ -1950,20 +2104,25 @@ namespace Real
open MeasurableSpace MeasureTheory
/- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (a b) -/
+#print Real.borel_eq_generateFrom_Ioo_rat /-
theorem borel_eq_generateFrom_Ioo_rat :
borel ℝ = generateFrom (⋃ (a : ℚ) (b : ℚ) (h : a < b), {Ioo a b}) :=
isTopologicalBasis_Ioo_rat.borel_eq_generateFrom
#align real.borel_eq_generate_from_Ioo_rat Real.borel_eq_generateFrom_Ioo_rat
+-/
/- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (a b) -/
+#print Real.isPiSystem_Ioo_rat /-
theorem isPiSystem_Ioo_rat : @IsPiSystem ℝ (⋃ (a : ℚ) (b : ℚ) (h : a < b), {Ioo a b}) :=
by
convert isPiSystem_Ioo (coe : ℚ → ℝ) (coe : ℚ → ℝ)
ext x
simp [eq_comm]
#align real.is_pi_system_Ioo_rat Real.isPiSystem_Ioo_rat
+-/
/- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (a b) -/
+#print Real.finiteSpanningSetsInIooRat /-
/-- The intervals `(-(n + 1), (n + 1))` form a finite spanning sets in the set of open intervals
with rational endpoints for a locally finite measure `μ` on `ℝ`. -/
def finiteSpanningSetsInIooRat (μ : Measure ℝ) [IsLocallyFiniteMeasure μ] :
@@ -1981,13 +2140,17 @@ def finiteSpanningSetsInIooRat (μ : Measure ℝ) [IsLocallyFiniteMeasure μ] :
⟨⌊|x|⌋₊, neg_lt.1 ((neg_le_abs_self x).trans_lt (Nat.lt_floor_add_one _)),
(le_abs_self x).trans_lt (Nat.lt_floor_add_one _)⟩
#align real.finite_spanning_sets_in_Ioo_rat Real.finiteSpanningSetsInIooRat
+-/
+#print Real.measure_ext_Ioo_rat /-
theorem measure_ext_Ioo_rat {μ ν : Measure ℝ} [IsLocallyFiniteMeasure μ]
(h : ∀ a b : ℚ, μ (Ioo a b) = ν (Ioo a b)) : μ = ν :=
(finiteSpanningSetsInIooRat μ).ext borel_eq_generateFrom_Ioo_rat isPiSystem_Ioo_rat <| by
simp only [mem_Union, mem_singleton_iff]; rintro _ ⟨a, b, -, rfl⟩; apply h
#align real.measure_ext_Ioo_rat Real.measure_ext_Ioo_rat
+-/
+#print Real.borel_eq_generateFrom_Iio_rat /-
theorem borel_eq_generateFrom_Iio_rat : borel ℝ = generateFrom (⋃ a : ℚ, {Iio a}) :=
by
let g : MeasurableSpace ℝ := generate_from (⋃ a : ℚ, {Iio a})
@@ -2008,6 +2171,7 @@ theorem borel_eq_generateFrom_Iio_rat : borel ℝ = generateFrom (⋃ a : ℚ, {
· refine' MeasurableSpace.generateFrom_le fun _ => _
simp only [mem_Union, mem_singleton_iff]; rintro ⟨r, rfl⟩; exact measurableSet_Iio
#align real.borel_eq_generate_from_Iio_rat Real.borel_eq_generateFrom_Iio_rat
+-/
end Real
@@ -2036,22 +2200,28 @@ theorem AEMeasurable.real_toNNReal {f : α → ℝ} {μ : Measure α} (hf : AEMe
#align ae_measurable.real_to_nnreal AEMeasurable.real_toNNReal
-/
+#print measurable_coe_nnreal_real /-
@[measurability]
theorem measurable_coe_nnreal_real : Measurable (coe : ℝ≥0 → ℝ) :=
NNReal.continuous_coe.Measurable
#align measurable_coe_nnreal_real measurable_coe_nnreal_real
+-/
+#print Measurable.coe_nnreal_real /-
@[measurability]
theorem Measurable.coe_nnreal_real {f : α → ℝ≥0} (hf : Measurable f) :
Measurable fun x => (f x : ℝ) :=
measurable_coe_nnreal_real.comp hf
#align measurable.coe_nnreal_real Measurable.coe_nnreal_real
+-/
+#print AEMeasurable.coe_nnreal_real /-
@[measurability]
theorem AEMeasurable.coe_nnreal_real {f : α → ℝ≥0} {μ : Measure α} (hf : AEMeasurable f μ) :
AEMeasurable (fun x => (f x : ℝ)) μ :=
measurable_coe_nnreal_real.comp_aemeasurable hf
#align ae_measurable.coe_nnreal_real AEMeasurable.coe_nnreal_real
+-/
#print measurable_coe_nnreal_ennreal /-
@[measurability]
@@ -2084,22 +2254,28 @@ theorem Measurable.ennreal_ofReal {f : α → ℝ} (hf : Measurable f) :
#align measurable.ennreal_of_real Measurable.ennreal_ofReal
-/
+#print measurable_coe_nnreal_real_iff /-
@[simp, norm_cast]
theorem measurable_coe_nnreal_real_iff {f : α → ℝ≥0} :
Measurable (fun x => f x : α → ℝ) ↔ Measurable f :=
⟨fun h => by simpa only [Real.toNNReal_coe] using h.real_to_nnreal, Measurable.coe_nnreal_real⟩
#align measurable_coe_nnreal_real_iff measurable_coe_nnreal_real_iff
+-/
+#print aEMeasurable_coe_nnreal_real_iff /-
@[simp, norm_cast]
theorem aEMeasurable_coe_nnreal_real_iff {f : α → ℝ≥0} {μ : Measure α} :
AEMeasurable (fun x => f x : α → ℝ) μ ↔ AEMeasurable f μ :=
⟨fun h => by simpa only [Real.toNNReal_coe] using h.real_to_nnreal, AEMeasurable.coe_nnreal_real⟩
#align ae_measurable_coe_nnreal_real_iff aEMeasurable_coe_nnreal_real_iff
+-/
+#print MeasurableEquiv.ennrealEquivNNReal /-
/-- The set of finite `ℝ≥0∞` numbers is `measurable_equiv` to `ℝ≥0`. -/
def MeasurableEquiv.ennrealEquivNNReal : {r : ℝ≥0∞ | r ≠ ∞} ≃ᵐ ℝ≥0 :=
ENNReal.neTopHomeomorphNNReal.toMeasurableEquiv
#align measurable_equiv.ennreal_equiv_nnreal MeasurableEquiv.ennrealEquivNNReal
+-/
namespace ENNReal
@@ -2125,6 +2301,7 @@ def ennrealEquivSum : ℝ≥0∞ ≃ᵐ Sum ℝ≥0 Unit :=
open Function (uncurry)
+#print ENNReal.measurable_of_measurable_nnreal_prod /-
theorem measurable_of_measurable_nnreal_prod [MeasurableSpace β] [MeasurableSpace γ]
{f : ℝ≥0∞ × β → γ} (H₁ : Measurable fun p : ℝ≥0 × β => f (p.1, p.2))
(H₂ : Measurable fun x => f (∞, x)) : Measurable f :=
@@ -2133,7 +2310,9 @@ theorem measurable_of_measurable_nnreal_prod [MeasurableSpace β] [MeasurableSpa
(MeasurableEquiv.sumProdDistrib _ _ _)
e.symm.measurable_comp_iff.1 <| measurable_sum H₁ (H₂.comp measurable_id.snd)
#align ennreal.measurable_of_measurable_nnreal_prod ENNReal.measurable_of_measurable_nnreal_prod
+-/
+#print ENNReal.measurable_of_measurable_nnreal_nnreal /-
theorem measurable_of_measurable_nnreal_nnreal [MeasurableSpace β] {f : ℝ≥0∞ × ℝ≥0∞ → β}
(h₁ : Measurable fun p : ℝ≥0 × ℝ≥0 => f (p.1, p.2)) (h₂ : Measurable fun r : ℝ≥0 => f (∞, r))
(h₃ : Measurable fun r : ℝ≥0 => f (r, ∞)) : Measurable f :=
@@ -2141,6 +2320,7 @@ theorem measurable_of_measurable_nnreal_nnreal [MeasurableSpace β] {f : ℝ≥0
(measurable_swap_iff.1 <| measurable_of_measurable_nnreal_prod (h₁.comp measurable_swap) h₃)
(measurable_of_measurable_nnreal h₂)
#align ennreal.measurable_of_measurable_nnreal_nnreal ENNReal.measurable_of_measurable_nnreal_nnreal
+-/
#print ENNReal.measurable_ofReal /-
@[measurability]
@@ -2230,6 +2410,7 @@ theorem AEMeasurable.ennreal_toReal {f : α → ℝ≥0∞} {μ : Measure α} (h
#align ae_measurable.ennreal_to_real AEMeasurable.ennreal_toReal
-/
+#print Measurable.ennreal_tsum /-
/-- note: `ℝ≥0∞` can probably be generalized in a future version of this lemma. -/
@[measurability]
theorem Measurable.ennreal_tsum {ι} [Countable ι] {f : ι → α → ℝ≥0∞} (h : ∀ i, Measurable (f i)) :
@@ -2238,7 +2419,9 @@ theorem Measurable.ennreal_tsum {ι} [Countable ι] {f : ι → α → ℝ≥0
simp_rw [ENNReal.tsum_eq_iSup_sum]; apply measurable_iSup
exact fun s => s.measurable_sum fun i _ => h i
#align measurable.ennreal_tsum Measurable.ennreal_tsum
+-/
+#print Measurable.ennreal_tsum' /-
@[measurability]
theorem Measurable.ennreal_tsum' {ι} [Countable ι] {f : ι → α → ℝ≥0∞} (h : ∀ i, Measurable (f i)) :
Measurable (∑' i, f i) := by
@@ -2246,7 +2429,9 @@ theorem Measurable.ennreal_tsum' {ι} [Countable ι] {f : ι → α → ℝ≥0
ext1 x
exact tsum_apply (Pi.summable.2 fun _ => ENNReal.summable)
#align measurable.ennreal_tsum' Measurable.ennreal_tsum'
+-/
+#print Measurable.nnreal_tsum /-
@[measurability]
theorem Measurable.nnreal_tsum {ι} [Countable ι] {f : ι → α → ℝ≥0} (h : ∀ i, Measurable (f i)) :
Measurable fun x => ∑' i, f i x :=
@@ -2254,7 +2439,9 @@ theorem Measurable.nnreal_tsum {ι} [Countable ι] {f : ι → α → ℝ≥0} (
simp_rw [NNReal.tsum_eq_toNNReal_tsum]
exact (Measurable.ennreal_tsum fun i => (h i).coe_nnreal_ennreal).ennreal_toNNReal
#align measurable.nnreal_tsum Measurable.nnreal_tsum
+-/
+#print AEMeasurable.ennreal_tsum /-
@[measurability]
theorem AEMeasurable.ennreal_tsum {ι} [Countable ι] {f : ι → α → ℝ≥0∞} {μ : Measure α}
(h : ∀ i, AEMeasurable (f i) μ) : AEMeasurable (fun x => ∑' i, f i x) μ :=
@@ -2262,7 +2449,9 @@ theorem AEMeasurable.ennreal_tsum {ι} [Countable ι] {f : ι → α → ℝ≥0
simp_rw [ENNReal.tsum_eq_iSup_sum]; apply aemeasurable_iSup
exact fun s => Finset.aemeasurable_sum s fun i _ => h i
#align ae_measurable.ennreal_tsum AEMeasurable.ennreal_tsum
+-/
+#print AEMeasurable.nnreal_tsum /-
@[measurability]
theorem AEMeasurable.nnreal_tsum {α : Type _} [MeasurableSpace α] {ι : Type _} [Countable ι]
{f : ι → α → NNReal} {μ : MeasureTheory.Measure α} (h : ∀ i : ι, AEMeasurable (f i) μ) :
@@ -2271,6 +2460,7 @@ theorem AEMeasurable.nnreal_tsum {α : Type _} [MeasurableSpace α] {ι : Type _
simp_rw [NNReal.tsum_eq_toNNReal_tsum]
exact (AEMeasurable.ennreal_tsum fun i => (h i).coe_nnreal_ennreal).ennreal_toNNReal
#align ae_measurable.nnreal_tsum AEMeasurable.nnreal_tsum
+-/
#print measurable_coe_real_ereal /-
@[measurability]
@@ -2295,10 +2485,12 @@ theorem AEMeasurable.coe_real_ereal {f : α → ℝ} {μ : Measure α} (hf : AEM
#align ae_measurable.coe_real_ereal AEMeasurable.coe_real_ereal
-/
+#print MeasurableEquiv.erealEquivReal /-
/-- The set of finite `ereal` numbers is `measurable_equiv` to `ℝ`. -/
def MeasurableEquiv.erealEquivReal : ({⊥, ⊤}ᶜ : Set EReal) ≃ᵐ ℝ :=
EReal.neBotTopHomeomorphReal.toMeasurableEquiv
#align measurable_equiv.ereal_equiv_real MeasurableEquiv.erealEquivReal
+-/
#print EReal.measurable_of_measurable_real /-
theorem EReal.measurable_of_measurable_real {f : EReal → α} (h : Measurable fun p : ℝ => f p) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/7e5137f579de09a059a5ce98f364a04e221aabf0
@@ -1359,7 +1359,7 @@ theorem AEMeasurable.isGLB {ι} {μ : Measure δ} [Countable ι] {f : ι → δ
#print Monotone.measurable /-
protected theorem Monotone.measurable [LinearOrder β] [OrderClosedTopology β] {f : β → α}
(hf : Monotone f) : Measurable f :=
- suffices h : ∀ x, OrdConnected (f ⁻¹' Ioi x) from measurable_of_Ioi fun x => (h x).MeasurableSet
+ suffices h (∀ x, OrdConnected (f ⁻¹' Ioi x)) from measurable_of_Ioi fun x => (h x).MeasurableSet
fun x => ordConnected_def.mpr fun a ha b hb c hc => lt_of_lt_of_le ha (hf hc.1)
#align monotone.measurable Monotone.measurable
-/
@@ -1738,7 +1738,6 @@ theorem measure_eq_measure_preimage_add_measure_tsum_Ico_zpow [MeasurableSpace
f x < t ^ (i + 1) := hx.2.2
_ ≤ t ^ j := (ENNReal.zpow_le_of_le (ENNReal.one_le_coe_iff.2 ht.le) h)
_ ≤ f x := h'x.2.1
-
· intro n
exact hs.inter (hf measurableSet_Ico)
rw [A, B, C, add_assoc]
mathlib commit https://github.com/leanprover-community/mathlib/commit/31c24aa72e7b3e5ed97a8412470e904f82b81004
@@ -240,6 +240,7 @@ unsafe def add_borel_instance (α : expr) : tactic Unit := do
reset_instance_cache
#align tactic.add_borel_instance tactic.add_borel_instance
+-- PLEASE REPORT THIS TO MATHPORT DEVS, THIS SHOULD NOT HAPPEN.
-- failed to format: unknown constant 'term.pseudo.antiquot'
/--
Given a type `α`, an assumption `i : measurable_space α`, and an instance `[borel_space α]`,
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -65,7 +65,7 @@ open MeasurableSpace TopologicalSpace
#print borel /-
/-- `measurable_space` structure generated by `topological_space`. -/
def borel (α : Type u) [TopologicalSpace α] : MeasurableSpace α :=
- generateFrom { s : Set α | IsOpen s }
+ generateFrom {s : Set α | IsOpen s}
#align borel borel
-/
@@ -120,10 +120,10 @@ theorem isPiSystem_isOpen [TopologicalSpace α] : IsPiSystem (IsOpen : Set α
#print borel_eq_generateFrom_isClosed /-
theorem borel_eq_generateFrom_isClosed [TopologicalSpace α] :
- borel α = generateFrom { s | IsClosed s } :=
+ borel α = generateFrom {s | IsClosed s} :=
le_antisymm
(generateFrom_le fun t ht =>
- @MeasurableSet.of_compl α _ (generateFrom { s | IsClosed s })
+ @MeasurableSet.of_compl α _ (generateFrom {s | IsClosed s})
(GenerateMeasurable.basic _ <| isClosed_compl_iff.2 ht))
(generateFrom_le fun t ht =>
@MeasurableSet.of_compl α _ (borel α) (GenerateMeasurable.basic _ <| isOpen_compl_iff.2 ht))
@@ -148,7 +148,7 @@ theorem borel_eq_generateFrom_Iio : borel α = generateFrom (range Iio) :=
· rcases h with ⟨a', ha'⟩
rw [(_ : Ioi a = Iio a'ᶜ)]; · exact (H _).compl
simp [Set.ext_iff, ha']
- · rcases is_open_Union_countable (fun a' : { a' : α // a < a' } => { b | a'.1 < b }) fun a' =>
+ · rcases is_open_Union_countable (fun a' : { a' : α // a < a' } => {b | a'.1 < b}) fun a' =>
isOpen_lt' _ with ⟨v, ⟨hv⟩, vu⟩
simp [Set.ext_iff] at vu
have : Ioi a = ⋃ x : v, Iio x.1.1ᶜ :=
@@ -378,7 +378,7 @@ theorem IsGδ.measurableSet (h : IsGδ s) : MeasurableSet s :=
#print measurableSet_of_continuousAt /-
theorem measurableSet_of_continuousAt {β} [EMetricSpace β] (f : α → β) :
- MeasurableSet { x | ContinuousAt f x } :=
+ MeasurableSet {x | ContinuousAt f x} :=
(isGδ_setOf_continuousAt f).MeasurableSet
#align measurable_set_of_continuous_at measurableSet_of_continuousAt
-/
@@ -458,9 +458,9 @@ instance Pi.opensMeasurableSpace {ι : Type _} {π : ι → Type _} [Countable
have :
Pi.topologicalSpace =
generate_from
- { t |
+ {t |
∃ (s : ∀ a, Set (π a)) (i : Finset ι),
- (∀ a ∈ i, s a ∈ countable_basis (π a)) ∧ t = pi (↑i) s } :=
+ (∀ a ∈ i, s a ∈ countable_basis (π a)) ∧ t = pi (↑i) s} :=
by rw [funext fun a => @eq_generate_from_countable_basis (π a) _ _, pi_generateFrom_eq]
rw [borel_eq_generateFrom_of_subbasis this]
apply generate_from_le
@@ -574,7 +574,7 @@ variable [PartialOrder α] [OrderClosedTopology α] [SecondCountableTopology α]
#print measurableSet_le' /-
@[measurability]
-theorem measurableSet_le' : MeasurableSet { p : α × α | p.1 ≤ p.2 } :=
+theorem measurableSet_le' : MeasurableSet {p : α × α | p.1 ≤ p.2} :=
OrderClosedTopology.isClosed_le'.MeasurableSet
#align measurable_set_le' measurableSet_le'
-/
@@ -582,7 +582,7 @@ theorem measurableSet_le' : MeasurableSet { p : α × α | p.1 ≤ p.2 } :=
#print measurableSet_le /-
@[measurability]
theorem measurableSet_le {f g : δ → α} (hf : Measurable f) (hg : Measurable g) :
- MeasurableSet { a | f a ≤ g a } :=
+ MeasurableSet {a | f a ≤ g a} :=
hf.prod_mk hg measurableSet_le'
#align measurable_set_le measurableSet_le
-/
@@ -651,19 +651,19 @@ instance nhdsWithin_uIcc_isMeasurablyGenerated : IsMeasurablyGenerated (𝓝[[a,
#print measurableSet_lt' /-
@[measurability]
-theorem measurableSet_lt' [SecondCountableTopology α] : MeasurableSet { p : α × α | p.1 < p.2 } :=
+theorem measurableSet_lt' [SecondCountableTopology α] : MeasurableSet {p : α × α | p.1 < p.2} :=
(isOpen_lt continuous_fst continuous_snd).MeasurableSet
#align measurable_set_lt' measurableSet_lt'
-/
@[measurability]
theorem measurableSet_lt [SecondCountableTopology α] {f g : δ → α} (hf : Measurable f)
- (hg : Measurable g) : MeasurableSet { a | f a < g a } :=
+ (hg : Measurable g) : MeasurableSet {a | f a < g a} :=
hf.prod_mk hg measurableSet_lt'
#align measurable_set_lt measurableSet_lt
theorem nullMeasurableSet_lt [SecondCountableTopology α] {μ : Measure δ} {f g : δ → α}
- (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) : NullMeasurableSet { a | f a < g a } μ :=
+ (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) : NullMeasurableSet {a | f a < g a} μ :=
(hf.prod_mk hg).NullMeasurable measurableSet_lt'
#align null_measurable_set_lt nullMeasurableSet_lt
@@ -689,7 +689,7 @@ theorem IsPreconnected.measurableSet (h : IsPreconnected s) : MeasurableSet s :=
theorem generateFrom_Ico_mem_le_borel {α : Type _} [TopologicalSpace α] [LinearOrder α]
[OrderClosedTopology α] (s t : Set α) :
- MeasurableSpace.generateFrom { S | ∃ l ∈ s, ∃ u ∈ t, ∃ h : l < u, Ico l u = S } ≤ borel α :=
+ MeasurableSpace.generateFrom {S | ∃ l ∈ s, ∃ u ∈ t, ∃ h : l < u, Ico l u = S} ≤ borel α :=
by
apply generate_from_le
borelize α
@@ -700,9 +700,9 @@ theorem generateFrom_Ico_mem_le_borel {α : Type _} [TopologicalSpace α] [Linea
theorem Dense.borel_eq_generateFrom_Ico_mem_aux {α : Type _} [TopologicalSpace α] [LinearOrder α]
[OrderTopology α] [SecondCountableTopology α] {s : Set α} (hd : Dense s)
(hbot : ∀ x, IsBot x → x ∈ s) (hIoo : ∀ x y : α, x < y → Ioo x y = ∅ → y ∈ s) :
- borel α = generateFrom { S : Set α | ∃ l ∈ s, ∃ u ∈ s, ∃ h : l < u, Ico l u = S } :=
+ borel α = generateFrom {S : Set α | ∃ l ∈ s, ∃ u ∈ s, ∃ h : l < u, Ico l u = S} :=
by
- set S : Set (Set α) := { S | ∃ l ∈ s, ∃ u ∈ s, ∃ h : l < u, Ico l u = S }
+ set S : Set (Set α) := {S | ∃ l ∈ s, ∃ u ∈ s, ∃ h : l < u, Ico l u = S}
refine' le_antisymm _ (generateFrom_Ico_mem_le_borel _ _)
letI : MeasurableSpace α := generate_from S
rw [borel_eq_generateFrom_Iio]
@@ -735,14 +735,14 @@ theorem Dense.borel_eq_generateFrom_Ico_mem_aux {α : Type _} [TopologicalSpace
theorem Dense.borel_eq_generateFrom_Ico_mem {α : Type _} [TopologicalSpace α] [LinearOrder α]
[OrderTopology α] [SecondCountableTopology α] [DenselyOrdered α] [NoMinOrder α] {s : Set α}
(hd : Dense s) :
- borel α = generateFrom { S : Set α | ∃ l ∈ s, ∃ u ∈ s, ∃ h : l < u, Ico l u = S } :=
+ borel α = generateFrom {S : Set α | ∃ l ∈ s, ∃ u ∈ s, ∃ h : l < u, Ico l u = S} :=
hd.borel_eq_generateFrom_Ico_mem_aux (by simp) fun x y hxy H =>
((nonempty_Ioo.2 hxy).ne_empty H).elim
#align dense.borel_eq_generate_from_Ico_mem Dense.borel_eq_generateFrom_Ico_mem
theorem borel_eq_generateFrom_Ico (α : Type _) [TopologicalSpace α] [SecondCountableTopology α]
[LinearOrder α] [OrderTopology α] :
- borel α = generateFrom { S : Set α | ∃ (l u : _) (h : l < u), Ico l u = S } := by
+ borel α = generateFrom {S : Set α | ∃ (l u : _) (h : l < u), Ico l u = S} := by
simpa only [exists_prop, mem_univ, true_and_iff] using
(@dense_univ α _).borel_eq_generateFrom_Ico_mem_aux (fun _ _ => mem_univ _) fun _ _ _ _ =>
mem_univ _
@@ -751,7 +751,7 @@ theorem borel_eq_generateFrom_Ico (α : Type _) [TopologicalSpace α] [SecondCou
theorem Dense.borel_eq_generateFrom_Ioc_mem_aux {α : Type _} [TopologicalSpace α] [LinearOrder α]
[OrderTopology α] [SecondCountableTopology α] {s : Set α} (hd : Dense s)
(hbot : ∀ x, IsTop x → x ∈ s) (hIoo : ∀ x y : α, x < y → Ioo x y = ∅ → x ∈ s) :
- borel α = generateFrom { S : Set α | ∃ l ∈ s, ∃ u ∈ s, ∃ h : l < u, Ioc l u = S } :=
+ borel α = generateFrom {S : Set α | ∃ l ∈ s, ∃ u ∈ s, ∃ h : l < u, Ioc l u = S} :=
by
convert hd.order_dual.borel_eq_generate_from_Ico_mem_aux hbot fun x y hlt he => hIoo y x hlt _
· ext s
@@ -764,14 +764,14 @@ theorem Dense.borel_eq_generateFrom_Ioc_mem_aux {α : Type _} [TopologicalSpace
theorem Dense.borel_eq_generateFrom_Ioc_mem {α : Type _} [TopologicalSpace α] [LinearOrder α]
[OrderTopology α] [SecondCountableTopology α] [DenselyOrdered α] [NoMaxOrder α] {s : Set α}
(hd : Dense s) :
- borel α = generateFrom { S : Set α | ∃ l ∈ s, ∃ u ∈ s, ∃ h : l < u, Ioc l u = S } :=
+ borel α = generateFrom {S : Set α | ∃ l ∈ s, ∃ u ∈ s, ∃ h : l < u, Ioc l u = S} :=
hd.borel_eq_generateFrom_Ioc_mem_aux (by simp) fun x y hxy H =>
((nonempty_Ioo.2 hxy).ne_empty H).elim
#align dense.borel_eq_generate_from_Ioc_mem Dense.borel_eq_generateFrom_Ioc_mem
theorem borel_eq_generateFrom_Ioc (α : Type _) [TopologicalSpace α] [SecondCountableTopology α]
[LinearOrder α] [OrderTopology α] :
- borel α = generateFrom { S : Set α | ∃ (l u : _) (h : l < u), Ioc l u = S } := by
+ borel α = generateFrom {S : Set α | ∃ (l u : _) (h : l < u), Ioc l u = S} := by
simpa only [exists_prop, mem_univ, true_and_iff] using
(@dense_univ α _).borel_eq_generateFrom_Ioc_mem_aux (fun _ _ => mem_univ _) fun _ _ _ _ =>
mem_univ _
@@ -786,7 +786,7 @@ namespace MeasureTheory.Measure
`ν`. -/
theorem ext_of_Ico_finite {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
[SecondCountableTopology α] [LinearOrder α] [OrderTopology α] [BorelSpace α] (μ ν : Measure α)
- [FiniteMeasure μ] (hμν : μ univ = ν univ) (h : ∀ ⦃a b⦄, a < b → μ (Ico a b) = ν (Ico a b)) :
+ [IsFiniteMeasure μ] (hμν : μ univ = ν univ) (h : ∀ ⦃a b⦄, a < b → μ (Ico a b) = ν (Ico a b)) :
μ = ν :=
by
refine'
@@ -804,7 +804,7 @@ theorem ext_of_Ico_finite {α : Type _} [TopologicalSpace α] {m : MeasurableSpa
`ν`. -/
theorem ext_of_Ioc_finite {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
[SecondCountableTopology α] [LinearOrder α] [OrderTopology α] [BorelSpace α] (μ ν : Measure α)
- [FiniteMeasure μ] (hμν : μ univ = ν univ) (h : ∀ ⦃a b⦄, a < b → μ (Ioc a b) = ν (Ioc a b)) :
+ [IsFiniteMeasure μ] (hμν : μ univ = ν univ) (h : ∀ ⦃a b⦄, a < b → μ (Ioc a b) = ν (Ioc a b)) :
μ = ν := by
refine' @ext_of_Ico_finite αᵒᵈ _ _ _ _ _ ‹_› μ ν _ hμν fun a b hab => _
erw [dual_Ico]
@@ -852,7 +852,7 @@ theorem ext_of_Ioc' {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
closed-open intervals. -/
theorem ext_of_Ico {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
[SecondCountableTopology α] [ConditionallyCompleteLinearOrder α] [OrderTopology α]
- [BorelSpace α] [NoMaxOrder α] (μ ν : Measure α) [LocallyFiniteMeasure μ]
+ [BorelSpace α] [NoMaxOrder α] (μ ν : Measure α) [IsLocallyFiniteMeasure μ]
(h : ∀ ⦃a b⦄, a < b → μ (Ico a b) = ν (Ico a b)) : μ = ν :=
μ.ext_of_Ico' ν (fun a b hab => measure_Ico_lt_top.Ne) h
#align measure_theory.measure.ext_of_Ico MeasureTheory.Measure.ext_of_Ico
@@ -863,7 +863,7 @@ theorem ext_of_Ico {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
open-closed intervals. -/
theorem ext_of_Ioc {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
[SecondCountableTopology α] [ConditionallyCompleteLinearOrder α] [OrderTopology α]
- [BorelSpace α] [NoMinOrder α] (μ ν : Measure α) [LocallyFiniteMeasure μ]
+ [BorelSpace α] [NoMinOrder α] (μ ν : Measure α) [IsLocallyFiniteMeasure μ]
(h : ∀ ⦃a b⦄, a < b → μ (Ioc a b) = ν (Ioc a b)) : μ = ν :=
μ.ext_of_Ioc' ν (fun a b hab => measure_Ioc_lt_top.Ne) h
#align measure_theory.measure.ext_of_Ioc MeasureTheory.Measure.ext_of_Ioc
@@ -874,7 +874,7 @@ theorem ext_of_Ioc {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
intervals. -/
theorem ext_of_Iic {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
[SecondCountableTopology α] [LinearOrder α] [OrderTopology α] [BorelSpace α] (μ ν : Measure α)
- [FiniteMeasure μ] (h : ∀ a, μ (Iic a) = ν (Iic a)) : μ = ν :=
+ [IsFiniteMeasure μ] (h : ∀ a, μ (Iic a) = ν (Iic a)) : μ = ν :=
by
refine' ext_of_Ioc_finite μ ν _ fun a b hlt => _
· rcases exists_countable_dense_bot_top α with ⟨s, hsc, hsd, -, hst⟩
@@ -892,7 +892,7 @@ theorem ext_of_Iic {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
intervals. -/
theorem ext_of_Ici {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
[SecondCountableTopology α] [LinearOrder α] [OrderTopology α] [BorelSpace α] (μ ν : Measure α)
- [FiniteMeasure μ] (h : ∀ a, μ (Ici a) = ν (Ici a)) : μ = ν :=
+ [IsFiniteMeasure μ] (h : ∀ a, μ (Ici a) = ν (Ici a)) : μ = ν :=
@ext_of_Iic αᵒᵈ _ _ _ _ _ ‹_› _ _ _ h
#align measure_theory.measure.ext_of_Ici MeasureTheory.Measure.ext_of_Ici
-/
@@ -965,14 +965,14 @@ theorem ClosedEmbedding.measurable {f : α → γ} (hf : ClosedEmbedding f) : Me
hf.Continuous.Measurable
#align closed_embedding.measurable ClosedEmbedding.measurable
-theorem Continuous.openPosMeasure_map {f : β → γ} (hf : Continuous f)
- (hf_surj : Function.Surjective f) {μ : Measure β} [μ.OpenPosMeasure] :
- (Measure.map f μ).OpenPosMeasure :=
+theorem Continuous.isOpenPosMeasure_map {f : β → γ} (hf : Continuous f)
+ (hf_surj : Function.Surjective f) {μ : Measure β} [μ.IsOpenPosMeasure] :
+ (Measure.map f μ).IsOpenPosMeasure :=
by
refine' ⟨fun U hUo hUne => _⟩
rw [measure.map_apply hf.measurable hUo.measurable_set]
exact (hUo.preimage hf).measure_ne_zero μ (hf_surj.nonempty_preimage.mpr hUne)
-#align continuous.is_open_pos_measure_map Continuous.openPosMeasure_map
+#align continuous.is_open_pos_measure_map Continuous.isOpenPosMeasure_map
/-- If a function is defined piecewise in terms of functions which are continuous on their
respective pieces, then it is measurable. -/
@@ -1252,7 +1252,7 @@ theorem measurable_of_Ici {f : δ → α} (hf : ∀ x, MeasurableSet (f ⁻¹' I
#print Measurable.isLUB /-
theorem Measurable.isLUB {ι} [Countable ι] {f : ι → δ → α} {g : δ → α} (hf : ∀ i, Measurable (f i))
- (hg : ∀ b, IsLUB { a | ∃ i, f i b = a } (g b)) : Measurable g :=
+ (hg : ∀ b, IsLUB {a | ∃ i, f i b = a} (g b)) : Measurable g :=
by
change ∀ b, IsLUB (range fun i => f i b) (g b) at hg
rw [‹BorelSpace α›.measurable_eq, borel_eq_generateFrom_Ioi α]
@@ -1265,23 +1265,23 @@ theorem Measurable.isLUB {ι} [Countable ι] {f : ι → δ → α} {g : δ →
private theorem ae_measurable.is_lub_of_nonempty {ι} (hι : Nonempty ι) {μ : Measure δ} [Countable ι]
{f : ι → δ → α} {g : δ → α} (hf : ∀ i, AEMeasurable (f i) μ)
- (hg : ∀ᵐ b ∂μ, IsLUB { a | ∃ i, f i b = a } (g b)) : AEMeasurable g μ :=
+ (hg : ∀ᵐ b ∂μ, IsLUB {a | ∃ i, f i b = a} (g b)) : AEMeasurable g μ :=
by
- let p : δ → (ι → α) → Prop := fun x f' => IsLUB { a | ∃ i, f' i = a } (g x)
+ let p : δ → (ι → α) → Prop := fun x f' => IsLUB {a | ∃ i, f' i = a} (g x)
let g_seq x := ite (x ∈ aeSeqSet hf p) (g x) (⟨g x⟩ : Nonempty α).some
- have hg_seq : ∀ b, IsLUB { a | ∃ i, aeSeq hf p i b = a } (g_seq b) :=
+ have hg_seq : ∀ b, IsLUB {a | ∃ i, aeSeq hf p i b = a} (g_seq b) :=
by
intro b
haveI hα : Nonempty α := Nonempty.map g ⟨b⟩
simp only [aeSeq, g_seq]
split_ifs
- · have h_set_eq : { a : α | ∃ i : ι, (hf i).mk (f i) b = a } = { a : α | ∃ i : ι, f i b = a } :=
+ · have h_set_eq : {a : α | ∃ i : ι, (hf i).mk (f i) b = a} = {a : α | ∃ i : ι, f i b = a} :=
by
ext x
simp_rw [Set.mem_setOf_eq, aeSeq.mk_eq_fun_of_mem_aeSeqSet hf h]
rw [h_set_eq]
exact aeSeq.fun_prop_of_mem_aeSeqSet hf h
- · have h_singleton : { a : α | ∃ i : ι, hα.some = a } = {hα.some} :=
+ · have h_singleton : {a : α | ∃ i : ι, hα.some = a} = {hα.some} :=
by
ext1 x
exact ⟨fun hx => hx.some_spec.symm, fun hx => ⟨hι.some, hx.symm⟩⟩
@@ -1294,14 +1294,14 @@ private theorem ae_measurable.is_lub_of_nonempty {ι} (hι : Nonempty ι) {μ :
#print AEMeasurable.isLUB /-
theorem AEMeasurable.isLUB {ι} {μ : Measure δ} [Countable ι] {f : ι → δ → α} {g : δ → α}
- (hf : ∀ i, AEMeasurable (f i) μ) (hg : ∀ᵐ b ∂μ, IsLUB { a | ∃ i, f i b = a } (g b)) :
+ (hf : ∀ i, AEMeasurable (f i) μ) (hg : ∀ᵐ b ∂μ, IsLUB {a | ∃ i, f i b = a} (g b)) :
AEMeasurable g μ := by
by_cases hμ : μ = 0; · rw [hμ]; exact aemeasurable_zero_measure
have : μ.ae.ne_bot := by simpa [ne_bot_iff]
by_cases hι : Nonempty ι; · exact ae_measurable.is_lub_of_nonempty hι hf hg
suffices ∃ x, g =ᵐ[μ] fun y => g x by
exact ⟨fun y => g this.some, measurable_const, this.some_spec⟩
- have h_empty : ∀ x, { a : α | ∃ i : ι, f i x = a } = ∅ :=
+ have h_empty : ∀ x, {a : α | ∃ i : ι, f i x = a} = ∅ :=
by
intro x
ext1 y
@@ -1314,7 +1314,7 @@ theorem AEMeasurable.isLUB {ι} {μ : Measure δ} [Countable ι] {f : ι → δ
#print Measurable.isGLB /-
theorem Measurable.isGLB {ι} [Countable ι] {f : ι → δ → α} {g : δ → α} (hf : ∀ i, Measurable (f i))
- (hg : ∀ b, IsGLB { a | ∃ i, f i b = a } (g b)) : Measurable g :=
+ (hg : ∀ b, IsGLB {a | ∃ i, f i b = a} (g b)) : Measurable g :=
by
change ∀ b, IsGLB (range fun i => f i b) (g b) at hg
rw [‹BorelSpace α›.measurable_eq, borel_eq_generateFrom_Iio α]
@@ -1327,21 +1327,21 @@ theorem Measurable.isGLB {ι} [Countable ι] {f : ι → δ → α} {g : δ →
#print AEMeasurable.isGLB /-
theorem AEMeasurable.isGLB {ι} {μ : Measure δ} [Countable ι] {f : ι → δ → α} {g : δ → α}
- (hf : ∀ i, AEMeasurable (f i) μ) (hg : ∀ᵐ b ∂μ, IsGLB { a | ∃ i, f i b = a } (g b)) :
+ (hf : ∀ i, AEMeasurable (f i) μ) (hg : ∀ᵐ b ∂μ, IsGLB {a | ∃ i, f i b = a} (g b)) :
AEMeasurable g μ := by
nontriviality α
haveI hα : Nonempty α := inferInstance
cases' isEmpty_or_nonempty ι with hι hι
· simp only [IsEmpty.exists_iff, set_of_false, isGLB_empty_iff] at hg
exact aemeasurable_const' (hg.mono fun a ha => hg.mono fun b hb => (hb _).antisymm (ha _))
- let p : δ → (ι → α) → Prop := fun x f' => IsGLB { a | ∃ i, f' i = a } (g x)
+ let p : δ → (ι → α) → Prop := fun x f' => IsGLB {a | ∃ i, f' i = a} (g x)
let g_seq := (aeSeqSet hf p).piecewise g fun _ => hα.some
- have hg_seq : ∀ b, IsGLB { a | ∃ i, aeSeq hf p i b = a } (g_seq b) :=
+ have hg_seq : ∀ b, IsGLB {a | ∃ i, aeSeq hf p i b = a} (g_seq b) :=
by
intro b
simp only [aeSeq, g_seq, Set.piecewise]
split_ifs
- · have h_set_eq : { a : α | ∃ i : ι, (hf i).mk (f i) b = a } = { a : α | ∃ i : ι, f i b = a } :=
+ · have h_set_eq : {a : α | ∃ i : ι, (hf i).mk (f i) b = a} = {a : α | ∃ i : ι, f i b = a} :=
by
ext x
simp_rw [Set.mem_setOf_eq, aeSeq.mk_eq_fun_of_mem_aeSeqSet hf h]
@@ -1432,7 +1432,7 @@ theorem measurableSet_of_mem_nhdsWithin_Ioi {s : Set α} (h : ∀ x ∈ s, s ∈
exact ne_of_lt (hy.2.trans_le (h₀ _))
· apply measurableSet_of_mem_nhdsWithin_Ioi_aux h
simp only [IsTop] at H
- push_neg at H
+ push_neg at H
exact H
#align measurable_set_of_mem_nhds_within_Ioi measurableSet_of_mem_nhdsWithin_Ioi
-/
@@ -1603,8 +1603,8 @@ def Homemorph.toMeasurableEquiv (h : α ≃ₜ β) : α ≃ᵐ β
protected theorem IsFiniteMeasureOnCompacts.map {α : Type _} {m0 : MeasurableSpace α}
[TopologicalSpace α] [OpensMeasurableSpace α] {β : Type _} [MeasurableSpace β]
- [TopologicalSpace β] [BorelSpace β] [T2Space β] (μ : Measure α) [FiniteMeasureOnCompacts μ]
- (f : α ≃ₜ β) : FiniteMeasureOnCompacts (Measure.map f μ) :=
+ [TopologicalSpace β] [BorelSpace β] [T2Space β] (μ : Measure α) [IsFiniteMeasureOnCompacts μ]
+ (f : α ≃ₜ β) : IsFiniteMeasureOnCompacts (Measure.map f μ) :=
⟨by
intro K hK
rw [measure.map_apply f.measurable hK.measurable_set]
@@ -1846,7 +1846,7 @@ theorem tendsto_measure_cthickening {μ : Measure α} {s : Set α}
have B : tendsto (fun r => μ (cthickening r s)) (𝓝[Iic 0] 0) (𝓝 (μ (closure s))) :=
by
apply tendsto.congr' _ tendsto_const_nhds
- filter_upwards [self_mem_nhdsWithin]with _ hr
+ filter_upwards [self_mem_nhdsWithin] with _ hr
rw [cthickening_of_nonpos hr]
convert B.sup A
exact (nhds_left_sup_nhds_right' 0).symm
@@ -1867,8 +1867,9 @@ end PseudoMetricSpace
/-- Given a compact set in a proper space, the measure of its `r`-closed thickenings converges to
its measure as `r` tends to `0`. -/
theorem tendsto_measure_cthickening_of_isCompact [MetricSpace α] [MeasurableSpace α]
- [OpensMeasurableSpace α] [ProperSpace α] {μ : Measure α} [FiniteMeasureOnCompacts μ] {s : Set α}
- (hs : IsCompact s) : Tendsto (fun r => μ (Metric.cthickening r s)) (𝓝 0) (𝓝 (μ s)) :=
+ [OpensMeasurableSpace α] [ProperSpace α] {μ : Measure α} [IsFiniteMeasureOnCompacts μ]
+ {s : Set α} (hs : IsCompact s) :
+ Tendsto (fun r => μ (Metric.cthickening r s)) (𝓝 0) (𝓝 (μ s)) :=
tendsto_measure_cthickening_of_isClosed ⟨1, zero_lt_one, hs.Bounded.cthickening.measure_lt_top.Ne⟩
hs.IsClosed
#align tendsto_measure_cthickening_of_is_compact tendsto_measure_cthickening_of_isCompact
@@ -1965,7 +1966,7 @@ theorem isPiSystem_Ioo_rat : @IsPiSystem ℝ (⋃ (a : ℚ) (b : ℚ) (h : a < b
/- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (a b) -/
/-- The intervals `(-(n + 1), (n + 1))` form a finite spanning sets in the set of open intervals
with rational endpoints for a locally finite measure `μ` on `ℝ`. -/
-def finiteSpanningSetsInIooRat (μ : Measure ℝ) [LocallyFiniteMeasure μ] :
+def finiteSpanningSetsInIooRat (μ : Measure ℝ) [IsLocallyFiniteMeasure μ] :
μ.FiniteSpanningSetsIn (⋃ (a : ℚ) (b : ℚ) (h : a < b), {Ioo a b})
where
Set n := Ioo (-(n + 1)) (n + 1)
@@ -1981,7 +1982,7 @@ def finiteSpanningSetsInIooRat (μ : Measure ℝ) [LocallyFiniteMeasure μ] :
(le_abs_self x).trans_lt (Nat.lt_floor_add_one _)⟩
#align real.finite_spanning_sets_in_Ioo_rat Real.finiteSpanningSetsInIooRat
-theorem measure_ext_Ioo_rat {μ ν : Measure ℝ} [LocallyFiniteMeasure μ]
+theorem measure_ext_Ioo_rat {μ ν : Measure ℝ} [IsLocallyFiniteMeasure μ]
(h : ∀ a b : ℚ, μ (Ioo a b) = ν (Ioo a b)) : μ = ν :=
(finiteSpanningSetsInIooRat μ).ext borel_eq_generateFrom_Ioo_rat isPiSystem_Ioo_rat <| by
simp only [mem_Union, mem_singleton_iff]; rintro _ ⟨a, b, -, rfl⟩; apply h
@@ -2096,7 +2097,7 @@ theorem aEMeasurable_coe_nnreal_real_iff {f : α → ℝ≥0} {μ : Measure α}
#align ae_measurable_coe_nnreal_real_iff aEMeasurable_coe_nnreal_real_iff
/-- The set of finite `ℝ≥0∞` numbers is `measurable_equiv` to `ℝ≥0`. -/
-def MeasurableEquiv.ennrealEquivNNReal : { r : ℝ≥0∞ | r ≠ ∞ } ≃ᵐ ℝ≥0 :=
+def MeasurableEquiv.ennrealEquivNNReal : {r : ℝ≥0∞ | r ≠ ∞} ≃ᵐ ℝ≥0 :=
ENNReal.neTopHomeomorphNNReal.toMeasurableEquiv
#align measurable_equiv.ennreal_equiv_nnreal MeasurableEquiv.ennrealEquivNNReal
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -89,13 +89,13 @@ theorem borel_eq_generateFrom_of_subbasis {s : Set (Set α)} [t : TopologicalSpa
le_antisymm
(generateFrom_le fun u (hu : t.IsOpen u) =>
by
- rw [hs] at hu
+ rw [hs] at hu
induction hu
case basic u hu => exact generate_measurable.basic u hu
case univ => exact @MeasurableSet.univ α (generate_from s)
case inter s₁ s₂ _ _ hs₁ hs₂ => exact @MeasurableSet.inter α (generate_from s) _ _ hs₁ hs₂
- case
- sUnion f hf ih =>
+ case sUnion f hf
+ ih =>
rcases is_open_sUnion_countable f (by rwa [hs]) with ⟨v, hv, vf, vu⟩
rw [← vu]
exact @MeasurableSet.sUnion α (generate_from s) _ hv fun x xv => ih _ (vf xv))
@@ -143,14 +143,14 @@ theorem borel_eq_generateFrom_Iio : borel α = generateFrom (range Iio) :=
· rw [borel_eq_generateFrom_of_subbasis (@OrderTopology.topology_eq_generate_intervals α _ _ _)]
letI : MeasurableSpace α := MeasurableSpace.generateFrom (range Iio)
have H : ∀ a : α, MeasurableSet (Iio a) := fun a => generate_measurable.basic _ ⟨_, rfl⟩
- refine' generate_from_le _; rintro _ ⟨a, rfl | rfl⟩ <;> [skip;apply H]
+ refine' generate_from_le _; rintro _ ⟨a, rfl | rfl⟩ <;> [skip; apply H]
by_cases h : ∃ a', ∀ b, a < b ↔ a' ≤ b
· rcases h with ⟨a', ha'⟩
rw [(_ : Ioi a = Iio a'ᶜ)]; · exact (H _).compl
simp [Set.ext_iff, ha']
· rcases is_open_Union_countable (fun a' : { a' : α // a < a' } => { b | a'.1 < b }) fun a' =>
isOpen_lt' _ with ⟨v, ⟨hv⟩, vu⟩
- simp [Set.ext_iff] at vu
+ simp [Set.ext_iff] at vu
have : Ioi a = ⋃ x : v, Iio x.1.1ᶜ :=
by
simp [Set.ext_iff]
@@ -459,7 +459,7 @@ instance Pi.opensMeasurableSpace {ι : Type _} {π : ι → Type _} [Countable
Pi.topologicalSpace =
generate_from
{ t |
- ∃ (s : ∀ a, Set (π a))(i : Finset ι),
+ ∃ (s : ∀ a, Set (π a)) (i : Finset ι),
(∀ a ∈ i, s a ∈ countable_basis (π a)) ∧ t = pi (↑i) s } :=
by rw [funext fun a => @eq_generate_from_countable_basis (π a) _ _, pi_generateFrom_eq]
rw [borel_eq_generateFrom_of_subbasis this]
@@ -720,7 +720,7 @@ theorem Dense.borel_eq_generateFrom_Ico_mem_aux {α : Type _} [TopologicalSpace
· refine' MeasurableSet.biUnion hc fun a ha => MeasurableSet.biUnion hc fun b hb => _
refine' MeasurableSet.iUnion fun hab => MeasurableSet.iUnion fun hb' => _
exact generate_measurable.basic _ ⟨a, hts ha, b, hts hb, hab, mem_singleton _⟩
- · simp only [not_forall, not_nonempty_iff_eq_empty] at ha
+ · simp only [not_forall, not_nonempty_iff_eq_empty] at ha
replace ha : a ∈ s := hIoo ha.some a ha.some_spec.fst ha.some_spec.snd
convert_to MeasurableSet (⋃ (l ∈ t) (hl : l < a), Ico l a)
· symm
@@ -742,7 +742,7 @@ theorem Dense.borel_eq_generateFrom_Ico_mem {α : Type _} [TopologicalSpace α]
theorem borel_eq_generateFrom_Ico (α : Type _) [TopologicalSpace α] [SecondCountableTopology α]
[LinearOrder α] [OrderTopology α] :
- borel α = generateFrom { S : Set α | ∃ (l u : _)(h : l < u), Ico l u = S } := by
+ borel α = generateFrom { S : Set α | ∃ (l u : _) (h : l < u), Ico l u = S } := by
simpa only [exists_prop, mem_univ, true_and_iff] using
(@dense_univ α _).borel_eq_generateFrom_Ico_mem_aux (fun _ _ => mem_univ _) fun _ _ _ _ =>
mem_univ _
@@ -756,7 +756,7 @@ theorem Dense.borel_eq_generateFrom_Ioc_mem_aux {α : Type _} [TopologicalSpace
convert hd.order_dual.borel_eq_generate_from_Ico_mem_aux hbot fun x y hlt he => hIoo y x hlt _
· ext s
constructor <;> rintro ⟨l, hl, u, hu, hlt, rfl⟩
- exacts[⟨u, hu, l, hl, hlt, dual_Ico⟩, ⟨u, hu, l, hl, hlt, dual_Ioc⟩]
+ exacts [⟨u, hu, l, hl, hlt, dual_Ico⟩, ⟨u, hu, l, hl, hlt, dual_Ioc⟩]
· erw [dual_Ioo]
exact he
#align dense.borel_eq_generate_from_Ioc_mem_aux Dense.borel_eq_generateFrom_Ioc_mem_aux
@@ -771,7 +771,7 @@ theorem Dense.borel_eq_generateFrom_Ioc_mem {α : Type _} [TopologicalSpace α]
theorem borel_eq_generateFrom_Ioc (α : Type _) [TopologicalSpace α] [SecondCountableTopology α]
[LinearOrder α] [OrderTopology α] :
- borel α = generateFrom { S : Set α | ∃ (l u : _)(h : l < u), Ioc l u = S } := by
+ borel α = generateFrom { S : Set α | ∃ (l u : _) (h : l < u), Ioc l u = S } := by
simpa only [exists_prop, mem_univ, true_and_iff] using
(@dense_univ α _).borel_eq_generateFrom_Ioc_mem_aux (fun _ _ => mem_univ _) fun _ _ _ _ =>
mem_univ _
@@ -822,7 +822,7 @@ theorem ext_of_Ico' {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
rcases exists_countable_dense_bot_top α with ⟨s, hsc, hsd, hsb, hst⟩
have : (⋃ (l ∈ s) (u ∈ s) (h : l < u), {Ico l u} : Set (Set α)).Countable :=
hsc.bUnion fun l hl => hsc.bUnion fun u hu => countable_Union fun _ => countable_singleton _
- simp only [← set_of_eq_eq_singleton, ← set_of_exists] at this
+ simp only [← set_of_eq_eq_singleton, ← set_of_exists] at this
refine'
measure.ext_of_generate_from_of_cover_subset
(borel_space.measurable_eq.trans (borel_eq_generateFrom_Ico α)) (isPiSystem_Ico id id) _ this
@@ -844,7 +844,7 @@ theorem ext_of_Ioc' {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
(h : ∀ ⦃a b⦄, a < b → μ (Ioc a b) = ν (Ioc a b)) : μ = ν :=
by
refine' @ext_of_Ico' αᵒᵈ _ _ _ _ _ ‹_› _ μ ν _ _ <;> intro a b hab <;> erw [dual_Ico]
- exacts[hμ hab, h hab]
+ exacts [hμ hab, h hab]
#align measure_theory.measure.ext_of_Ioc' MeasureTheory.Measure.ext_of_Ioc'
#print MeasureTheory.Measure.ext_of_Ico /-
@@ -1254,7 +1254,7 @@ theorem measurable_of_Ici {f : δ → α} (hf : ∀ x, MeasurableSet (f ⁻¹' I
theorem Measurable.isLUB {ι} [Countable ι] {f : ι → δ → α} {g : δ → α} (hf : ∀ i, Measurable (f i))
(hg : ∀ b, IsLUB { a | ∃ i, f i b = a } (g b)) : Measurable g :=
by
- change ∀ b, IsLUB (range fun i => f i b) (g b) at hg
+ change ∀ b, IsLUB (range fun i => f i b) (g b) at hg
rw [‹BorelSpace α›.measurable_eq, borel_eq_generateFrom_Ioi α]
apply measurable_generateFrom
rintro _ ⟨a, rfl⟩
@@ -1307,7 +1307,7 @@ theorem AEMeasurable.isLUB {ι} {μ : Measure δ} [Countable ι] {f : ι → δ
ext1 y
rw [Set.mem_setOf_eq, Set.mem_empty_iff_false, iff_false_iff]
exact fun hi => hι (nonempty_of_exists hi)
- simp_rw [h_empty] at hg
+ simp_rw [h_empty] at hg
exact ⟨hg.exists.some, hg.mono fun y hy => IsLUB.unique hy hg.exists.some_spec⟩
#align ae_measurable.is_lub AEMeasurable.isLUB
-/
@@ -1316,7 +1316,7 @@ theorem AEMeasurable.isLUB {ι} {μ : Measure δ} [Countable ι] {f : ι → δ
theorem Measurable.isGLB {ι} [Countable ι] {f : ι → δ → α} {g : δ → α} (hf : ∀ i, Measurable (f i))
(hg : ∀ b, IsGLB { a | ∃ i, f i b = a } (g b)) : Measurable g :=
by
- change ∀ b, IsGLB (range fun i => f i b) (g b) at hg
+ change ∀ b, IsGLB (range fun i => f i b) (g b) at hg
rw [‹BorelSpace α›.measurable_eq, borel_eq_generateFrom_Iio α]
apply measurable_generateFrom
rintro _ ⟨a, rfl⟩
@@ -1332,7 +1332,7 @@ theorem AEMeasurable.isGLB {ι} {μ : Measure δ} [Countable ι] {f : ι → δ
nontriviality α
haveI hα : Nonempty α := inferInstance
cases' isEmpty_or_nonempty ι with hι hι
- · simp only [IsEmpty.exists_iff, set_of_false, isGLB_empty_iff] at hg
+ · simp only [IsEmpty.exists_iff, set_of_false, isGLB_empty_iff] at hg
exact aemeasurable_const' (hg.mono fun a ha => hg.mono fun b hb => (hb _).antisymm (ha _))
let p : δ → (ι → α) → Prop := fun x f' => IsGLB { a | ∃ i, f' i = a } (g x)
let g_seq := (aeSeqSet hf p).piecewise g fun _ => hα.some
@@ -1426,13 +1426,13 @@ theorem measurableSet_of_mem_nhdsWithin_Ioi {s : Set α} (h : ∀ x ∈ s, s ∈
refine' (measurable_set_singleton _).union _
have A : ∀ x ∈ s \ {x₀}, x < x₀ := fun x hx => lt_of_le_of_ne (h₀ _) (by simpa using hx.2)
refine' measurableSet_of_mem_nhdsWithin_Ioi_aux (fun x hx => _) fun x hx => ⟨x₀, A x hx⟩
- obtain ⟨u, hu, us⟩ : ∃ (u : α)(H : u ∈ Ioi x), Ioo x u ⊆ s :=
+ obtain ⟨u, hu, us⟩ : ∃ (u : α) (H : u ∈ Ioi x), Ioo x u ⊆ s :=
(mem_nhdsWithin_Ioi_iff_exists_Ioo_subset' (A x hx)).1 (h x hx.1)
refine' (mem_nhdsWithin_Ioi_iff_exists_Ioo_subset' (A x hx)).2 ⟨u, hu, fun y hy => ⟨us hy, _⟩⟩
exact ne_of_lt (hy.2.trans_le (h₀ _))
· apply measurableSet_of_mem_nhdsWithin_Ioi_aux h
- simp only [IsTop] at H
- push_neg at H
+ simp only [IsTop] at H
+ push_neg at H
exact H
#align measurable_set_of_mem_nhds_within_Ioi measurableSet_of_mem_nhdsWithin_Ioi
-/
@@ -1580,7 +1580,7 @@ theorem measurable_ciSup {ι : Type _} [Countable ι] {f : ι → δ → α} (hf
(bdd : ∀ x, BddAbove (range fun i => f i x)) : Measurable fun x => ⨆ i, f i x :=
by
change Measurable fun x => Sup (range fun i : ι => f i x)
- simp_rw [← image_univ] at bdd⊢
+ simp_rw [← image_univ] at bdd ⊢
refine' measurable_cSup countable_univ hf bdd
#align measurable_csupr measurable_ciSup
@@ -1698,7 +1698,7 @@ theorem measure_eq_measure_preimage_add_measure_tsum_Ico_zpow [MeasurableSpace
· congr 1
ext x
have : 0 = f x ∨ 0 < f x := eq_or_lt_of_le bot_le
- rw [eq_comm] at this
+ rw [eq_comm] at this
simp only [← and_or_left, this, mem_singleton_iff, mem_inter_iff, and_true_iff, mem_union,
mem_Ioi, mem_preimage]
· apply disjoint_left.2 fun x hx h'x => _
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -54,7 +54,7 @@ noncomputable section
open Classical Set Filter MeasureTheory
-open Classical BigOperators Topology NNReal ENNReal MeasureTheory
+open scoped Classical BigOperators Topology NNReal ENNReal MeasureTheory
universe u v w x y
@@ -572,16 +572,20 @@ section PartialOrder
variable [PartialOrder α] [OrderClosedTopology α] [SecondCountableTopology α] {a b : α}
+#print measurableSet_le' /-
@[measurability]
theorem measurableSet_le' : MeasurableSet { p : α × α | p.1 ≤ p.2 } :=
OrderClosedTopology.isClosed_le'.MeasurableSet
#align measurable_set_le' measurableSet_le'
+-/
+#print measurableSet_le /-
@[measurability]
theorem measurableSet_le {f g : δ → α} (hf : Measurable f) (hg : Measurable g) :
MeasurableSet { a | f a ≤ g a } :=
hf.prod_mk hg measurableSet_le'
#align measurable_set_le measurableSet_le
+-/
end PartialOrder
@@ -590,7 +594,7 @@ section LinearOrder
variable [LinearOrder α] [OrderClosedTopology α] {a b x : α}
-- we open this locale only here to avoid issues with list being treated as intervals above
-open Interval
+open scoped Interval
#print measurableSet_Iio /-
@[simp, measurability]
@@ -645,10 +649,12 @@ instance nhdsWithin_uIcc_isMeasurablyGenerated : IsMeasurablyGenerated (𝓝[[a,
#align nhds_within_uIcc_is_measurably_generated nhdsWithin_uIcc_isMeasurablyGenerated
-/
+#print measurableSet_lt' /-
@[measurability]
theorem measurableSet_lt' [SecondCountableTopology α] : MeasurableSet { p : α × α | p.1 < p.2 } :=
(isOpen_lt continuous_fst continuous_snd).MeasurableSet
#align measurable_set_lt' measurableSet_lt'
+-/
@[measurability]
theorem measurableSet_lt [SecondCountableTopology α] {f g : δ → α} (hf : Measurable f)
@@ -773,6 +779,7 @@ theorem borel_eq_generateFrom_Ioc (α : Type _) [TopologicalSpace α] [SecondCou
namespace MeasureTheory.Measure
+#print MeasureTheory.Measure.ext_of_Ico_finite /-
/-- Two finite measures on a Borel space are equal if they agree on all closed-open intervals. If
`α` is a conditionally complete linear order with no top element,
`measure_theory.measure..ext_of_Ico` is an extensionality lemma with weaker assumptions on `μ` and
@@ -788,7 +795,9 @@ theorem ext_of_Ico_finite {α : Type _} [TopologicalSpace α] {m : MeasurableSpa
· rintro - ⟨a, b, hlt, rfl⟩
exact h hlt
#align measure_theory.measure.ext_of_Ico_finite MeasureTheory.Measure.ext_of_Ico_finite
+-/
+#print MeasureTheory.Measure.ext_of_Ioc_finite /-
/-- Two finite measures on a Borel space are equal if they agree on all open-closed intervals. If
`α` is a conditionally complete linear order with no top element,
`measure_theory.measure..ext_of_Ioc` is an extensionality lemma with weaker assumptions on `μ` and
@@ -801,6 +810,7 @@ theorem ext_of_Ioc_finite {α : Type _} [TopologicalSpace α] {m : MeasurableSpa
erw [dual_Ico]
exact h hab
#align measure_theory.measure.ext_of_Ioc_finite MeasureTheory.Measure.ext_of_Ioc_finite
+-/
/-- Two measures which are finite on closed-open intervals are equal if the agree on all
closed-open intervals. -/
@@ -837,6 +847,7 @@ theorem ext_of_Ioc' {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
exacts[hμ hab, h hab]
#align measure_theory.measure.ext_of_Ioc' MeasureTheory.Measure.ext_of_Ioc'
+#print MeasureTheory.Measure.ext_of_Ico /-
/-- Two measures which are finite on closed-open intervals are equal if the agree on all
closed-open intervals. -/
theorem ext_of_Ico {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
@@ -845,7 +856,9 @@ theorem ext_of_Ico {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
(h : ∀ ⦃a b⦄, a < b → μ (Ico a b) = ν (Ico a b)) : μ = ν :=
μ.ext_of_Ico' ν (fun a b hab => measure_Ico_lt_top.Ne) h
#align measure_theory.measure.ext_of_Ico MeasureTheory.Measure.ext_of_Ico
+-/
+#print MeasureTheory.Measure.ext_of_Ioc /-
/-- Two measures which are finite on closed-open intervals are equal if the agree on all
open-closed intervals. -/
theorem ext_of_Ioc {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
@@ -854,6 +867,7 @@ theorem ext_of_Ioc {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
(h : ∀ ⦃a b⦄, a < b → μ (Ioc a b) = ν (Ioc a b)) : μ = ν :=
μ.ext_of_Ioc' ν (fun a b hab => measure_Ioc_lt_top.Ne) h
#align measure_theory.measure.ext_of_Ioc MeasureTheory.Measure.ext_of_Ioc
+-/
#print MeasureTheory.Measure.ext_of_Iic /-
/-- Two finite measures on a Borel space are equal if they agree on all left-infinite right-closed
@@ -1373,6 +1387,7 @@ theorem aemeasurable_restrict_of_antitoneOn [LinearOrder β] [OrderClosedTopolog
#align ae_measurable_restrict_of_antitone_on aemeasurable_restrict_of_antitoneOn
-/
+#print measurableSet_of_mem_nhdsWithin_Ioi_aux /-
theorem measurableSet_of_mem_nhdsWithin_Ioi_aux {s : Set α} (h : ∀ x ∈ s, s ∈ 𝓝[>] x)
(h' : ∀ x ∈ s, ∃ y, x < y) : MeasurableSet s :=
by
@@ -1398,6 +1413,7 @@ theorem measurableSet_of_mem_nhdsWithin_Ioi_aux {s : Set α} (h : ∀ x ∈ s, s
exact False.elim (hx.2 this)
exact B.countable_of_Ioo fun x hx => hy x hx.1
#align measurable_set_of_mem_nhds_within_Ioi_aux measurableSet_of_mem_nhdsWithin_Ioi_aux
+-/
#print measurableSet_of_mem_nhdsWithin_Ioi /-
/-- If a set is a right-neighborhood of all of its points, then it is measurable. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -69,22 +69,10 @@ def borel (α : Type u) [TopologicalSpace α] : MeasurableSpace α :=
#align borel borel
-/
-/- warning: borel_eq_top_of_discrete -> borel_eq_top_of_discrete is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : DiscreteTopology.{u1} α _inst_1], Eq.{succ u1} (MeasurableSpace.{u1} α) (borel.{u1} α _inst_1) (Top.top.{u1} (MeasurableSpace.{u1} α) (CompleteLattice.toHasTop.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.completeLattice.{u1} α)))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : DiscreteTopology.{u1} α _inst_1], Eq.{succ u1} (MeasurableSpace.{u1} α) (borel.{u1} α _inst_1) (Top.top.{u1} (MeasurableSpace.{u1} α) (CompleteLattice.toTop.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.instCompleteLatticeMeasurableSpace.{u1} α)))
-Case conversion may be inaccurate. Consider using '#align borel_eq_top_of_discrete borel_eq_top_of_discreteₓ'. -/
theorem borel_eq_top_of_discrete [TopologicalSpace α] [DiscreteTopology α] : borel α = ⊤ :=
top_le_iff.1 fun s hs => GenerateMeasurable.basic s (isOpen_discrete s)
#align borel_eq_top_of_discrete borel_eq_top_of_discrete
-/- warning: borel_eq_top_of_countable -> borel_eq_top_of_countable is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : T1Space.{u1} α _inst_1] [_inst_3 : Countable.{succ u1} α], Eq.{succ u1} (MeasurableSpace.{u1} α) (borel.{u1} α _inst_1) (Top.top.{u1} (MeasurableSpace.{u1} α) (CompleteLattice.toHasTop.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.completeLattice.{u1} α)))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : T1Space.{u1} α _inst_1] [_inst_3 : Countable.{succ u1} α], Eq.{succ u1} (MeasurableSpace.{u1} α) (borel.{u1} α _inst_1) (Top.top.{u1} (MeasurableSpace.{u1} α) (CompleteLattice.toTop.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.instCompleteLatticeMeasurableSpace.{u1} α)))
-Case conversion may be inaccurate. Consider using '#align borel_eq_top_of_countable borel_eq_top_of_countableₓ'. -/
theorem borel_eq_top_of_countable [TopologicalSpace α] [T1Space α] [Countable α] : borel α = ⊤ :=
by
refine' top_le_iff.1 fun s hs => bUnion_of_singleton s ▸ _
@@ -217,12 +205,6 @@ theorem borel_comap {f : α → β} {t : TopologicalSpace β} :
#align borel_comap borel_comap
-/
-/- warning: continuous.borel_measurable -> Continuous.borel_measurable is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] {f : α -> β}, (Continuous.{u1, u2} α β _inst_1 _inst_2 f) -> (Measurable.{u1, u2} α β (borel.{u1} α _inst_1) (borel.{u2} β _inst_2) f)
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] {f : α -> β}, (Continuous.{u2, u1} α β _inst_1 _inst_2 f) -> (Measurable.{u2, u1} α β (borel.{u2} α _inst_1) (borel.{u1} β _inst_2) f)
-Case conversion may be inaccurate. Consider using '#align continuous.borel_measurable Continuous.borel_measurableₓ'. -/
theorem Continuous.borel_measurable [TopologicalSpace α] [TopologicalSpace β] {f : α → β}
(hf : Continuous f) : @Measurable α β (borel α) (borel β) f :=
Measurable.of_le_map <|
@@ -356,12 +338,6 @@ instance (priority := 100) BorelSpace.countablyGenerated {α : Type _} [Topologi
#align borel_space.countably_generated BorelSpace.countablyGenerated
-/
-/- warning: measurable_set.induction_on_open -> MeasurableSet.induction_on_open is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] {C : (Set.{u1} α) -> Prop}, (forall (U : Set.{u1} α), (IsOpen.{u1} α _inst_1 U) -> (C U)) -> (forall (t : Set.{u1} α), (MeasurableSet.{u1} α _inst_2 t) -> (C t) -> (C (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) t))) -> (forall (f : Nat -> (Set.{u1} α)), (Pairwise.{0} Nat (Function.onFun.{1, succ u1, 1} Nat (Set.{u1} α) Prop (Disjoint.{u1} (Set.{u1} α) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} α) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)))) f)) -> (forall (i : Nat), MeasurableSet.{u1} α _inst_2 (f i)) -> (forall (i : Nat), C (f i)) -> (C (Set.iUnion.{u1, 1} α Nat (fun (i : Nat) => f i)))) -> (forall {{t : Set.{u1} α}}, (MeasurableSet.{u1} α _inst_2 t) -> (C t))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] {C : (Set.{u1} α) -> Prop}, (forall (U : Set.{u1} α), (IsOpen.{u1} α _inst_1 U) -> (C U)) -> (forall (t : Set.{u1} α), (MeasurableSet.{u1} α _inst_2 t) -> (C t) -> (C (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) t))) -> (forall (f : Nat -> (Set.{u1} α)), (Pairwise.{0} Nat (Function.onFun.{1, succ u1, 1} Nat (Set.{u1} α) Prop (Disjoint.{u1} (Set.{u1} α) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α)))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} α) (Preorder.toLE.{u1} (Set.{u1} α) (PartialOrder.toPreorder.{u1} (Set.{u1} α) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α)))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α))))))) f)) -> (forall (i : Nat), MeasurableSet.{u1} α _inst_2 (f i)) -> (forall (i : Nat), C (f i)) -> (C (Set.iUnion.{u1, 1} α Nat (fun (i : Nat) => f i)))) -> (forall {{t : Set.{u1} α}}, (MeasurableSet.{u1} α _inst_2 t) -> (C t))
-Case conversion may be inaccurate. Consider using '#align measurable_set.induction_on_open MeasurableSet.induction_on_openₓ'. -/
theorem MeasurableSet.induction_on_open [TopologicalSpace α] [MeasurableSpace α] [BorelSpace α]
{C : Set α → Prop} (h_open : ∀ U, IsOpen U → C U)
(h_compl : ∀ t, MeasurableSet t → C t → C (tᶜ))
@@ -426,34 +402,16 @@ theorem measurableSet_closure : MeasurableSet (closure s) :=
#align measurable_set_closure measurableSet_closure
-/
-/- warning: measurable_of_is_open -> measurable_of_isOpen is a dubious translation:
-lean 3 declaration is
- forall {γ : Type.{u1}} {δ : Type.{u2}} [_inst_7 : TopologicalSpace.{u1} γ] [_inst_8 : MeasurableSpace.{u1} γ] [_inst_9 : BorelSpace.{u1} γ _inst_7 _inst_8] [_inst_13 : MeasurableSpace.{u2} δ] {f : δ -> γ}, (forall (s : Set.{u1} γ), (IsOpen.{u1} γ _inst_7 s) -> (MeasurableSet.{u2} δ _inst_13 (Set.preimage.{u2, u1} δ γ f s))) -> (Measurable.{u2, u1} δ γ _inst_13 _inst_8 f)
-but is expected to have type
- forall {γ : Type.{u2}} {δ : Type.{u1}} [_inst_7 : TopologicalSpace.{u2} γ] [_inst_8 : MeasurableSpace.{u2} γ] [_inst_9 : BorelSpace.{u2} γ _inst_7 _inst_8] [_inst_13 : MeasurableSpace.{u1} δ] {f : δ -> γ}, (forall (s : Set.{u2} γ), (IsOpen.{u2} γ _inst_7 s) -> (MeasurableSet.{u1} δ _inst_13 (Set.preimage.{u1, u2} δ γ f s))) -> (Measurable.{u1, u2} δ γ _inst_13 _inst_8 f)
-Case conversion may be inaccurate. Consider using '#align measurable_of_is_open measurable_of_isOpenₓ'. -/
theorem measurable_of_isOpen {f : δ → γ} (hf : ∀ s, IsOpen s → MeasurableSet (f ⁻¹' s)) :
Measurable f := by rw [‹BorelSpace γ›.measurable_eq]; exact measurable_generateFrom hf
#align measurable_of_is_open measurable_of_isOpen
-/- warning: measurable_of_is_closed -> measurable_of_isClosed is a dubious translation:
-lean 3 declaration is
- forall {γ : Type.{u1}} {δ : Type.{u2}} [_inst_7 : TopologicalSpace.{u1} γ] [_inst_8 : MeasurableSpace.{u1} γ] [_inst_9 : BorelSpace.{u1} γ _inst_7 _inst_8] [_inst_13 : MeasurableSpace.{u2} δ] {f : δ -> γ}, (forall (s : Set.{u1} γ), (IsClosed.{u1} γ _inst_7 s) -> (MeasurableSet.{u2} δ _inst_13 (Set.preimage.{u2, u1} δ γ f s))) -> (Measurable.{u2, u1} δ γ _inst_13 _inst_8 f)
-but is expected to have type
- forall {γ : Type.{u2}} {δ : Type.{u1}} [_inst_7 : TopologicalSpace.{u2} γ] [_inst_8 : MeasurableSpace.{u2} γ] [_inst_9 : BorelSpace.{u2} γ _inst_7 _inst_8] [_inst_13 : MeasurableSpace.{u1} δ] {f : δ -> γ}, (forall (s : Set.{u2} γ), (IsClosed.{u2} γ _inst_7 s) -> (MeasurableSet.{u1} δ _inst_13 (Set.preimage.{u1, u2} δ γ f s))) -> (Measurable.{u1, u2} δ γ _inst_13 _inst_8 f)
-Case conversion may be inaccurate. Consider using '#align measurable_of_is_closed measurable_of_isClosedₓ'. -/
theorem measurable_of_isClosed {f : δ → γ} (hf : ∀ s, IsClosed s → MeasurableSet (f ⁻¹' s)) :
Measurable f := by
apply measurable_of_isOpen; intro s hs
rw [← MeasurableSet.compl_iff, ← preimage_compl]; apply hf; rw [isClosed_compl_iff]; exact hs
#align measurable_of_is_closed measurable_of_isClosed
-/- warning: measurable_of_is_closed' -> measurable_of_is_closed' is a dubious translation:
-lean 3 declaration is
- forall {γ : Type.{u1}} {δ : Type.{u2}} [_inst_7 : TopologicalSpace.{u1} γ] [_inst_8 : MeasurableSpace.{u1} γ] [_inst_9 : BorelSpace.{u1} γ _inst_7 _inst_8] [_inst_13 : MeasurableSpace.{u2} δ] {f : δ -> γ}, (forall (s : Set.{u1} γ), (IsClosed.{u1} γ _inst_7 s) -> (Set.Nonempty.{u1} γ s) -> (Ne.{succ u1} (Set.{u1} γ) s (Set.univ.{u1} γ)) -> (MeasurableSet.{u2} δ _inst_13 (Set.preimage.{u2, u1} δ γ f s))) -> (Measurable.{u2, u1} δ γ _inst_13 _inst_8 f)
-but is expected to have type
- forall {γ : Type.{u2}} {δ : Type.{u1}} [_inst_7 : TopologicalSpace.{u2} γ] [_inst_8 : MeasurableSpace.{u2} γ] [_inst_9 : BorelSpace.{u2} γ _inst_7 _inst_8] [_inst_13 : MeasurableSpace.{u1} δ] {f : δ -> γ}, (forall (s : Set.{u2} γ), (IsClosed.{u2} γ _inst_7 s) -> (Set.Nonempty.{u2} γ s) -> (Ne.{succ u2} (Set.{u2} γ) s (Set.univ.{u2} γ)) -> (MeasurableSet.{u1} δ _inst_13 (Set.preimage.{u1, u2} δ γ f s))) -> (Measurable.{u1, u2} δ γ _inst_13 _inst_8 f)
-Case conversion may be inaccurate. Consider using '#align measurable_of_is_closed' measurable_of_is_closed'ₓ'. -/
theorem measurable_of_is_closed' {f : δ → γ}
(hf : ∀ s, IsClosed s → s.Nonempty → s ≠ univ → MeasurableSet (f ⁻¹' s)) : Measurable f :=
by
@@ -513,12 +471,6 @@ instance Pi.opensMeasurableSpace {ι : Type _} {π : ι → Type _} [Countable
#align pi.opens_measurable_space Pi.opensMeasurableSpace
-/
-/- warning: prod.opens_measurable_space -> Prod.opensMeasurableSpace is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u2} β] [_inst_5 : MeasurableSpace.{u2} β] [_inst_6 : OpensMeasurableSpace.{u2} β _inst_4 _inst_5] [_inst_14 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] [_inst_15 : TopologicalSpace.SecondCountableTopology.{u2} β _inst_4], OpensMeasurableSpace.{max u1 u2} (Prod.{u1, u2} α β) (Prod.topologicalSpace.{u1, u2} α β _inst_1 _inst_4) (Prod.instMeasurableSpace.{u1, u2} α β _inst_2 _inst_5)
-but is expected to have type
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u2} β] [_inst_5 : MeasurableSpace.{u2} β] [_inst_6 : OpensMeasurableSpace.{u2} β _inst_4 _inst_5] [_inst_14 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] [_inst_15 : TopologicalSpace.SecondCountableTopology.{u2} β _inst_4], OpensMeasurableSpace.{max u2 u1} (Prod.{u1, u2} α β) (instTopologicalSpaceProd.{u1, u2} α β _inst_1 _inst_4) (Prod.instMeasurableSpace.{u1, u2} α β _inst_2 _inst_5)
-Case conversion may be inaccurate. Consider using '#align prod.opens_measurable_space Prod.opensMeasurableSpaceₓ'. -/
instance Prod.opensMeasurableSpace [SecondCountableTopology α] [SecondCountableTopology β] :
OpensMeasurableSpace (α × β) := by
constructor
@@ -532,56 +484,26 @@ instance Prod.opensMeasurableSpace [SecondCountableTopology α] [SecondCountable
variable {α' : Type _} [TopologicalSpace α'] [MeasurableSpace α']
-/- warning: interior_ae_eq_of_null_frontier -> interior_ae_eq_of_null_frontier is a dubious translation:
-lean 3 declaration is
- forall {α' : Type.{u1}} [_inst_14 : TopologicalSpace.{u1} α'] [_inst_15 : MeasurableSpace.{u1} α'] {μ : MeasureTheory.Measure.{u1} α' _inst_15} {s : Set.{u1} α'}, (Eq.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α' _inst_15) (fun (_x : MeasureTheory.Measure.{u1} α' _inst_15) => (Set.{u1} α') -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α' _inst_15) μ (frontier.{u1} α' _inst_14 s)) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero)))) -> (Filter.EventuallyEq.{u1, 0} α' Prop (MeasureTheory.Measure.ae.{u1} α' _inst_15 μ) (interior.{u1} α' _inst_14 s) s)
-but is expected to have type
- forall {α' : Type.{u1}} [_inst_14 : TopologicalSpace.{u1} α'] [_inst_15 : MeasurableSpace.{u1} α'] {μ : MeasureTheory.Measure.{u1} α' _inst_15} {s : Set.{u1} α'}, (Eq.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α' (MeasureTheory.Measure.toOuterMeasure.{u1} α' _inst_15 μ) (frontier.{u1} α' _inst_14 s)) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero))) -> (Filter.EventuallyEq.{u1, 0} α' Prop (MeasureTheory.Measure.ae.{u1} α' _inst_15 μ) (interior.{u1} α' _inst_14 s) s)
-Case conversion may be inaccurate. Consider using '#align interior_ae_eq_of_null_frontier interior_ae_eq_of_null_frontierₓ'. -/
theorem interior_ae_eq_of_null_frontier {μ : Measure α'} {s : Set α'} (h : μ (frontier s) = 0) :
interior s =ᵐ[μ] s :=
interior_subset.EventuallyLE.antisymm <| subset_closure.EventuallyLE.trans (ae_le_set.2 h)
#align interior_ae_eq_of_null_frontier interior_ae_eq_of_null_frontier
-/- warning: measure_interior_of_null_frontier -> measure_interior_of_null_frontier is a dubious translation:
-lean 3 declaration is
- forall {α' : Type.{u1}} [_inst_14 : TopologicalSpace.{u1} α'] [_inst_15 : MeasurableSpace.{u1} α'] {μ : MeasureTheory.Measure.{u1} α' _inst_15} {s : Set.{u1} α'}, (Eq.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α' _inst_15) (fun (_x : MeasureTheory.Measure.{u1} α' _inst_15) => (Set.{u1} α') -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α' _inst_15) μ (frontier.{u1} α' _inst_14 s)) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero)))) -> (Eq.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α' _inst_15) (fun (_x : MeasureTheory.Measure.{u1} α' _inst_15) => (Set.{u1} α') -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α' _inst_15) μ (interior.{u1} α' _inst_14 s)) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α' _inst_15) (fun (_x : MeasureTheory.Measure.{u1} α' _inst_15) => (Set.{u1} α') -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α' _inst_15) μ s))
-but is expected to have type
- forall {α' : Type.{u1}} [_inst_14 : TopologicalSpace.{u1} α'] [_inst_15 : MeasurableSpace.{u1} α'] {μ : MeasureTheory.Measure.{u1} α' _inst_15} {s : Set.{u1} α'}, (Eq.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α' (MeasureTheory.Measure.toOuterMeasure.{u1} α' _inst_15 μ) (frontier.{u1} α' _inst_14 s)) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero))) -> (Eq.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α' (MeasureTheory.Measure.toOuterMeasure.{u1} α' _inst_15 μ) (interior.{u1} α' _inst_14 s)) (MeasureTheory.OuterMeasure.measureOf.{u1} α' (MeasureTheory.Measure.toOuterMeasure.{u1} α' _inst_15 μ) s))
-Case conversion may be inaccurate. Consider using '#align measure_interior_of_null_frontier measure_interior_of_null_frontierₓ'. -/
theorem measure_interior_of_null_frontier {μ : Measure α'} {s : Set α'} (h : μ (frontier s) = 0) :
μ (interior s) = μ s :=
measure_congr (interior_ae_eq_of_null_frontier h)
#align measure_interior_of_null_frontier measure_interior_of_null_frontier
-/- warning: null_measurable_set_of_null_frontier -> nullMeasurableSet_of_null_frontier is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] {s : Set.{u1} α} {μ : MeasureTheory.Measure.{u1} α _inst_2}, (Eq.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α _inst_2) (fun (_x : MeasureTheory.Measure.{u1} α _inst_2) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α _inst_2) μ (frontier.{u1} α _inst_1 s)) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero)))) -> (MeasureTheory.NullMeasurableSet.{u1} α _inst_2 s μ)
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] {s : Set.{u1} α} {μ : MeasureTheory.Measure.{u1} α _inst_2}, (Eq.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α _inst_2 μ) (frontier.{u1} α _inst_1 s)) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero))) -> (MeasureTheory.NullMeasurableSet.{u1} α _inst_2 s μ)
-Case conversion may be inaccurate. Consider using '#align null_measurable_set_of_null_frontier nullMeasurableSet_of_null_frontierₓ'. -/
theorem nullMeasurableSet_of_null_frontier {s : Set α} {μ : Measure α} (h : μ (frontier s) = 0) :
NullMeasurableSet s μ :=
⟨interior s, isOpen_interior.MeasurableSet, (interior_ae_eq_of_null_frontier h).symm⟩
#align null_measurable_set_of_null_frontier nullMeasurableSet_of_null_frontier
-/- warning: closure_ae_eq_of_null_frontier -> closure_ae_eq_of_null_frontier is a dubious translation:
-lean 3 declaration is
- forall {α' : Type.{u1}} [_inst_14 : TopologicalSpace.{u1} α'] [_inst_15 : MeasurableSpace.{u1} α'] {μ : MeasureTheory.Measure.{u1} α' _inst_15} {s : Set.{u1} α'}, (Eq.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α' _inst_15) (fun (_x : MeasureTheory.Measure.{u1} α' _inst_15) => (Set.{u1} α') -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α' _inst_15) μ (frontier.{u1} α' _inst_14 s)) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero)))) -> (Filter.EventuallyEq.{u1, 0} α' Prop (MeasureTheory.Measure.ae.{u1} α' _inst_15 μ) (closure.{u1} α' _inst_14 s) s)
-but is expected to have type
- forall {α' : Type.{u1}} [_inst_14 : TopologicalSpace.{u1} α'] [_inst_15 : MeasurableSpace.{u1} α'] {μ : MeasureTheory.Measure.{u1} α' _inst_15} {s : Set.{u1} α'}, (Eq.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α' (MeasureTheory.Measure.toOuterMeasure.{u1} α' _inst_15 μ) (frontier.{u1} α' _inst_14 s)) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero))) -> (Filter.EventuallyEq.{u1, 0} α' Prop (MeasureTheory.Measure.ae.{u1} α' _inst_15 μ) (closure.{u1} α' _inst_14 s) s)
-Case conversion may be inaccurate. Consider using '#align closure_ae_eq_of_null_frontier closure_ae_eq_of_null_frontierₓ'. -/
theorem closure_ae_eq_of_null_frontier {μ : Measure α'} {s : Set α'} (h : μ (frontier s) = 0) :
closure s =ᵐ[μ] s :=
((ae_le_set.2 h).trans interior_subset.EventuallyLE).antisymm <| subset_closure.EventuallyLE
#align closure_ae_eq_of_null_frontier closure_ae_eq_of_null_frontier
-/- warning: measure_closure_of_null_frontier -> measure_closure_of_null_frontier is a dubious translation:
-lean 3 declaration is
- forall {α' : Type.{u1}} [_inst_14 : TopologicalSpace.{u1} α'] [_inst_15 : MeasurableSpace.{u1} α'] {μ : MeasureTheory.Measure.{u1} α' _inst_15} {s : Set.{u1} α'}, (Eq.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α' _inst_15) (fun (_x : MeasureTheory.Measure.{u1} α' _inst_15) => (Set.{u1} α') -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α' _inst_15) μ (frontier.{u1} α' _inst_14 s)) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero)))) -> (Eq.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α' _inst_15) (fun (_x : MeasureTheory.Measure.{u1} α' _inst_15) => (Set.{u1} α') -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α' _inst_15) μ (closure.{u1} α' _inst_14 s)) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α' _inst_15) (fun (_x : MeasureTheory.Measure.{u1} α' _inst_15) => (Set.{u1} α') -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α' _inst_15) μ s))
-but is expected to have type
- forall {α' : Type.{u1}} [_inst_14 : TopologicalSpace.{u1} α'] [_inst_15 : MeasurableSpace.{u1} α'] {μ : MeasureTheory.Measure.{u1} α' _inst_15} {s : Set.{u1} α'}, (Eq.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α' (MeasureTheory.Measure.toOuterMeasure.{u1} α' _inst_15 μ) (frontier.{u1} α' _inst_14 s)) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero))) -> (Eq.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α' (MeasureTheory.Measure.toOuterMeasure.{u1} α' _inst_15 μ) (closure.{u1} α' _inst_14 s)) (MeasureTheory.OuterMeasure.measureOf.{u1} α' (MeasureTheory.Measure.toOuterMeasure.{u1} α' _inst_15 μ) s))
-Case conversion may be inaccurate. Consider using '#align measure_closure_of_null_frontier measure_closure_of_null_frontierₓ'. -/
theorem measure_closure_of_null_frontier {μ : Measure α'} {s : Set α'} (h : μ (frontier s) = 0) :
μ (closure s) = μ s :=
measure_congr (closure_ae_eq_of_null_frontier h)
@@ -650,23 +572,11 @@ section PartialOrder
variable [PartialOrder α] [OrderClosedTopology α] [SecondCountableTopology α] {a b : α}
-/- warning: measurable_set_le' -> measurableSet_le' is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_16 : PartialOrder.{u1} α] [_inst_17 : OrderClosedTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α _inst_16)] [_inst_18 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1], MeasurableSet.{u1} (Prod.{u1, u1} α α) (Prod.instMeasurableSpace.{u1, u1} α α _inst_2 _inst_2) (setOf.{u1} (Prod.{u1, u1} α α) (fun (p : Prod.{u1, u1} α α) => LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_16)) (Prod.fst.{u1, u1} α α p) (Prod.snd.{u1, u1} α α p)))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_16 : PartialOrder.{u1} α] [_inst_17 : OrderClosedTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α _inst_16)] [_inst_18 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1], MeasurableSet.{u1} (Prod.{u1, u1} α α) (Prod.instMeasurableSpace.{u1, u1} α α _inst_2 _inst_2) (setOf.{u1} (Prod.{u1, u1} α α) (fun (p : Prod.{u1, u1} α α) => LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_16)) (Prod.fst.{u1, u1} α α p) (Prod.snd.{u1, u1} α α p)))
-Case conversion may be inaccurate. Consider using '#align measurable_set_le' measurableSet_le'ₓ'. -/
@[measurability]
theorem measurableSet_le' : MeasurableSet { p : α × α | p.1 ≤ p.2 } :=
OrderClosedTopology.isClosed_le'.MeasurableSet
#align measurable_set_le' measurableSet_le'
-/- warning: measurable_set_le -> measurableSet_le is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_13 : MeasurableSpace.{u2} δ] [_inst_16 : PartialOrder.{u1} α] [_inst_17 : OrderClosedTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α _inst_16)] [_inst_18 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {f : δ -> α} {g : δ -> α}, (Measurable.{u2, u1} δ α _inst_13 _inst_2 f) -> (Measurable.{u2, u1} δ α _inst_13 _inst_2 g) -> (MeasurableSet.{u2} δ _inst_13 (setOf.{u2} δ (fun (a : δ) => LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_16)) (f a) (g a))))
-but is expected to have type
- forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_13 : MeasurableSpace.{u2} δ] [_inst_16 : PartialOrder.{u1} α] [_inst_17 : OrderClosedTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α _inst_16)] [_inst_18 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {f : δ -> α} {g : δ -> α}, (Measurable.{u2, u1} δ α _inst_13 _inst_2 f) -> (Measurable.{u2, u1} δ α _inst_13 _inst_2 g) -> (MeasurableSet.{u2} δ _inst_13 (setOf.{u2} δ (fun (a : δ) => LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_16)) (f a) (g a))))
-Case conversion may be inaccurate. Consider using '#align measurable_set_le measurableSet_leₓ'. -/
@[measurability]
theorem measurableSet_le {f g : δ → α} (hf : Measurable f) (hg : Measurable g) :
MeasurableSet { a | f a ≤ g a } :=
@@ -735,35 +645,17 @@ instance nhdsWithin_uIcc_isMeasurablyGenerated : IsMeasurablyGenerated (𝓝[[a,
#align nhds_within_uIcc_is_measurably_generated nhdsWithin_uIcc_isMeasurablyGenerated
-/
-/- warning: measurable_set_lt' -> measurableSet_lt' is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_16 : LinearOrder.{u1} α] [_inst_17 : OrderClosedTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_16))))] [_inst_18 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1], MeasurableSet.{u1} (Prod.{u1, u1} α α) (Prod.instMeasurableSpace.{u1, u1} α α _inst_2 _inst_2) (setOf.{u1} (Prod.{u1, u1} α α) (fun (p : Prod.{u1, u1} α α) => LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_16))))) (Prod.fst.{u1, u1} α α p) (Prod.snd.{u1, u1} α α p)))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_16 : LinearOrder.{u1} α] [_inst_17 : OrderClosedTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_16)))))] [_inst_18 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1], MeasurableSet.{u1} (Prod.{u1, u1} α α) (Prod.instMeasurableSpace.{u1, u1} α α _inst_2 _inst_2) (setOf.{u1} (Prod.{u1, u1} α α) (fun (p : Prod.{u1, u1} α α) => LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_16)))))) (Prod.fst.{u1, u1} α α p) (Prod.snd.{u1, u1} α α p)))
-Case conversion may be inaccurate. Consider using '#align measurable_set_lt' measurableSet_lt'ₓ'. -/
@[measurability]
theorem measurableSet_lt' [SecondCountableTopology α] : MeasurableSet { p : α × α | p.1 < p.2 } :=
(isOpen_lt continuous_fst continuous_snd).MeasurableSet
#align measurable_set_lt' measurableSet_lt'
-/- warning: measurable_set_lt -> measurableSet_lt is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_13 : MeasurableSpace.{u2} δ] [_inst_16 : LinearOrder.{u1} α] [_inst_17 : OrderClosedTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_16))))] [_inst_18 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {f : δ -> α} {g : δ -> α}, (Measurable.{u2, u1} δ α _inst_13 _inst_2 f) -> (Measurable.{u2, u1} δ α _inst_13 _inst_2 g) -> (MeasurableSet.{u2} δ _inst_13 (setOf.{u2} δ (fun (a : δ) => LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_16))))) (f a) (g a))))
-but is expected to have type
- forall {α : Type.{u2}} {δ : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : MeasurableSpace.{u2} α] [_inst_3 : OpensMeasurableSpace.{u2} α _inst_1 _inst_2] [_inst_13 : MeasurableSpace.{u1} δ] [_inst_16 : LinearOrder.{u2} α] [_inst_17 : OrderClosedTopology.{u2} α _inst_1 (PartialOrder.toPreorder.{u2} α (SemilatticeInf.toPartialOrder.{u2} α (Lattice.toSemilatticeInf.{u2} α (DistribLattice.toLattice.{u2} α (instDistribLattice.{u2} α _inst_16)))))] [_inst_18 : TopologicalSpace.SecondCountableTopology.{u2} α _inst_1] {f : δ -> α} {g : δ -> α}, (Measurable.{u1, u2} δ α _inst_13 _inst_2 f) -> (Measurable.{u1, u2} δ α _inst_13 _inst_2 g) -> (MeasurableSet.{u1} δ _inst_13 (setOf.{u1} δ (fun (a : δ) => LT.lt.{u2} α (Preorder.toLT.{u2} α (PartialOrder.toPreorder.{u2} α (SemilatticeInf.toPartialOrder.{u2} α (Lattice.toSemilatticeInf.{u2} α (DistribLattice.toLattice.{u2} α (instDistribLattice.{u2} α _inst_16)))))) (f a) (g a))))
-Case conversion may be inaccurate. Consider using '#align measurable_set_lt measurableSet_ltₓ'. -/
@[measurability]
theorem measurableSet_lt [SecondCountableTopology α] {f g : δ → α} (hf : Measurable f)
(hg : Measurable g) : MeasurableSet { a | f a < g a } :=
hf.prod_mk hg measurableSet_lt'
#align measurable_set_lt measurableSet_lt
-/- warning: null_measurable_set_lt -> nullMeasurableSet_lt is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_13 : MeasurableSpace.{u2} δ] [_inst_16 : LinearOrder.{u1} α] [_inst_17 : OrderClosedTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_16))))] [_inst_18 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {μ : MeasureTheory.Measure.{u2} δ _inst_13} {f : δ -> α} {g : δ -> α}, (AEMeasurable.{u2, u1} δ α _inst_2 _inst_13 f μ) -> (AEMeasurable.{u2, u1} δ α _inst_2 _inst_13 g μ) -> (MeasureTheory.NullMeasurableSet.{u2} δ _inst_13 (setOf.{u2} δ (fun (a : δ) => LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_16))))) (f a) (g a))) μ)
-but is expected to have type
- forall {α : Type.{u2}} {δ : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : MeasurableSpace.{u2} α] [_inst_3 : OpensMeasurableSpace.{u2} α _inst_1 _inst_2] [_inst_13 : MeasurableSpace.{u1} δ] [_inst_16 : LinearOrder.{u2} α] [_inst_17 : OrderClosedTopology.{u2} α _inst_1 (PartialOrder.toPreorder.{u2} α (SemilatticeInf.toPartialOrder.{u2} α (Lattice.toSemilatticeInf.{u2} α (DistribLattice.toLattice.{u2} α (instDistribLattice.{u2} α _inst_16)))))] [_inst_18 : TopologicalSpace.SecondCountableTopology.{u2} α _inst_1] {μ : MeasureTheory.Measure.{u1} δ _inst_13} {f : δ -> α} {g : δ -> α}, (AEMeasurable.{u1, u2} δ α _inst_2 _inst_13 f μ) -> (AEMeasurable.{u1, u2} δ α _inst_2 _inst_13 g μ) -> (MeasureTheory.NullMeasurableSet.{u1} δ _inst_13 (setOf.{u1} δ (fun (a : δ) => LT.lt.{u2} α (Preorder.toLT.{u2} α (PartialOrder.toPreorder.{u2} α (SemilatticeInf.toPartialOrder.{u2} α (Lattice.toSemilatticeInf.{u2} α (DistribLattice.toLattice.{u2} α (instDistribLattice.{u2} α _inst_16)))))) (f a) (g a))) μ)
-Case conversion may be inaccurate. Consider using '#align null_measurable_set_lt nullMeasurableSet_ltₓ'. -/
theorem nullMeasurableSet_lt [SecondCountableTopology α] {μ : Measure δ} {f g : δ → α}
(hf : AEMeasurable f μ) (hg : AEMeasurable g μ) : NullMeasurableSet { a | f a < g a } μ :=
(hf.prod_mk hg).NullMeasurable measurableSet_lt'
@@ -789,9 +681,6 @@ theorem IsPreconnected.measurableSet (h : IsPreconnected s) : MeasurableSet s :=
#align is_preconnected.measurable_set IsPreconnected.measurableSet
-/
-/- warning: generate_from_Ico_mem_le_borel -> generateFrom_Ico_mem_le_borel is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align generate_from_Ico_mem_le_borel generateFrom_Ico_mem_le_borelₓ'. -/
theorem generateFrom_Ico_mem_le_borel {α : Type _} [TopologicalSpace α] [LinearOrder α]
[OrderClosedTopology α] (s t : Set α) :
MeasurableSpace.generateFrom { S | ∃ l ∈ s, ∃ u ∈ t, ∃ h : l < u, Ico l u = S } ≤ borel α :=
@@ -802,9 +691,6 @@ theorem generateFrom_Ico_mem_le_borel {α : Type _} [TopologicalSpace α] [Linea
exact measurableSet_Ico
#align generate_from_Ico_mem_le_borel generateFrom_Ico_mem_le_borel
-/- warning: dense.borel_eq_generate_from_Ico_mem_aux -> Dense.borel_eq_generateFrom_Ico_mem_aux is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align dense.borel_eq_generate_from_Ico_mem_aux Dense.borel_eq_generateFrom_Ico_mem_auxₓ'. -/
theorem Dense.borel_eq_generateFrom_Ico_mem_aux {α : Type _} [TopologicalSpace α] [LinearOrder α]
[OrderTopology α] [SecondCountableTopology α] {s : Set α} (hd : Dense s)
(hbot : ∀ x, IsBot x → x ∈ s) (hIoo : ∀ x y : α, x < y → Ioo x y = ∅ → y ∈ s) :
@@ -840,9 +726,6 @@ theorem Dense.borel_eq_generateFrom_Ico_mem_aux {α : Type _} [TopologicalSpace
exact generate_measurable.basic _ ⟨x, hts hx, a, ha, hlt, mem_singleton _⟩
#align dense.borel_eq_generate_from_Ico_mem_aux Dense.borel_eq_generateFrom_Ico_mem_aux
-/- warning: dense.borel_eq_generate_from_Ico_mem -> Dense.borel_eq_generateFrom_Ico_mem is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align dense.borel_eq_generate_from_Ico_mem Dense.borel_eq_generateFrom_Ico_memₓ'. -/
theorem Dense.borel_eq_generateFrom_Ico_mem {α : Type _} [TopologicalSpace α] [LinearOrder α]
[OrderTopology α] [SecondCountableTopology α] [DenselyOrdered α] [NoMinOrder α] {s : Set α}
(hd : Dense s) :
@@ -851,12 +734,6 @@ theorem Dense.borel_eq_generateFrom_Ico_mem {α : Type _} [TopologicalSpace α]
((nonempty_Ioo.2 hxy).ne_empty H).elim
#align dense.borel_eq_generate_from_Ico_mem Dense.borel_eq_generateFrom_Ico_mem
-/- warning: borel_eq_generate_from_Ico -> borel_eq_generateFrom_Ico is a dubious translation:
-lean 3 declaration is
- forall (α : Type.{u1}) [_inst_18 : TopologicalSpace.{u1} α] [_inst_19 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] [_inst_20 : LinearOrder.{u1} α] [_inst_21 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20))))], Eq.{succ u1} (MeasurableSpace.{u1} α) (borel.{u1} α _inst_18) (MeasurableSpace.generateFrom.{u1} α (setOf.{u1} (Set.{u1} α) (fun (S : Set.{u1} α) => Exists.{succ u1} α (fun (l : α) => Exists.{succ u1} α (fun (u : α) => Exists.{0} (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20))))) l u) (fun (h : LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20))))) l u) => Eq.{succ u1} (Set.{u1} α) (Set.Ico.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20)))) l u) S))))))
-but is expected to have type
- forall (α : Type.{u1}) [_inst_18 : TopologicalSpace.{u1} α] [_inst_19 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] [_inst_20 : LinearOrder.{u1} α] [_inst_21 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20)))))], Eq.{succ u1} (MeasurableSpace.{u1} α) (borel.{u1} α _inst_18) (MeasurableSpace.generateFrom.{u1} α (setOf.{u1} (Set.{u1} α) (fun (S : Set.{u1} α) => Exists.{succ u1} α (fun (l : α) => Exists.{succ u1} α (fun (u : α) => And (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20)))))) l u) (Eq.{succ u1} (Set.{u1} α) (Set.Ico.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20))))) l u) S))))))
-Case conversion may be inaccurate. Consider using '#align borel_eq_generate_from_Ico borel_eq_generateFrom_Icoₓ'. -/
theorem borel_eq_generateFrom_Ico (α : Type _) [TopologicalSpace α] [SecondCountableTopology α]
[LinearOrder α] [OrderTopology α] :
borel α = generateFrom { S : Set α | ∃ (l u : _)(h : l < u), Ico l u = S } := by
@@ -865,9 +742,6 @@ theorem borel_eq_generateFrom_Ico (α : Type _) [TopologicalSpace α] [SecondCou
mem_univ _
#align borel_eq_generate_from_Ico borel_eq_generateFrom_Ico
-/- warning: dense.borel_eq_generate_from_Ioc_mem_aux -> Dense.borel_eq_generateFrom_Ioc_mem_aux is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align dense.borel_eq_generate_from_Ioc_mem_aux Dense.borel_eq_generateFrom_Ioc_mem_auxₓ'. -/
theorem Dense.borel_eq_generateFrom_Ioc_mem_aux {α : Type _} [TopologicalSpace α] [LinearOrder α]
[OrderTopology α] [SecondCountableTopology α] {s : Set α} (hd : Dense s)
(hbot : ∀ x, IsTop x → x ∈ s) (hIoo : ∀ x y : α, x < y → Ioo x y = ∅ → x ∈ s) :
@@ -881,9 +755,6 @@ theorem Dense.borel_eq_generateFrom_Ioc_mem_aux {α : Type _} [TopologicalSpace
exact he
#align dense.borel_eq_generate_from_Ioc_mem_aux Dense.borel_eq_generateFrom_Ioc_mem_aux
-/- warning: dense.borel_eq_generate_from_Ioc_mem -> Dense.borel_eq_generateFrom_Ioc_mem is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align dense.borel_eq_generate_from_Ioc_mem Dense.borel_eq_generateFrom_Ioc_memₓ'. -/
theorem Dense.borel_eq_generateFrom_Ioc_mem {α : Type _} [TopologicalSpace α] [LinearOrder α]
[OrderTopology α] [SecondCountableTopology α] [DenselyOrdered α] [NoMaxOrder α] {s : Set α}
(hd : Dense s) :
@@ -892,12 +763,6 @@ theorem Dense.borel_eq_generateFrom_Ioc_mem {α : Type _} [TopologicalSpace α]
((nonempty_Ioo.2 hxy).ne_empty H).elim
#align dense.borel_eq_generate_from_Ioc_mem Dense.borel_eq_generateFrom_Ioc_mem
-/- warning: borel_eq_generate_from_Ioc -> borel_eq_generateFrom_Ioc is a dubious translation:
-lean 3 declaration is
- forall (α : Type.{u1}) [_inst_18 : TopologicalSpace.{u1} α] [_inst_19 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] [_inst_20 : LinearOrder.{u1} α] [_inst_21 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20))))], Eq.{succ u1} (MeasurableSpace.{u1} α) (borel.{u1} α _inst_18) (MeasurableSpace.generateFrom.{u1} α (setOf.{u1} (Set.{u1} α) (fun (S : Set.{u1} α) => Exists.{succ u1} α (fun (l : α) => Exists.{succ u1} α (fun (u : α) => Exists.{0} (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20))))) l u) (fun (h : LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20))))) l u) => Eq.{succ u1} (Set.{u1} α) (Set.Ioc.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20)))) l u) S))))))
-but is expected to have type
- forall (α : Type.{u1}) [_inst_18 : TopologicalSpace.{u1} α] [_inst_19 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] [_inst_20 : LinearOrder.{u1} α] [_inst_21 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20)))))], Eq.{succ u1} (MeasurableSpace.{u1} α) (borel.{u1} α _inst_18) (MeasurableSpace.generateFrom.{u1} α (setOf.{u1} (Set.{u1} α) (fun (S : Set.{u1} α) => Exists.{succ u1} α (fun (l : α) => Exists.{succ u1} α (fun (u : α) => And (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20)))))) l u) (Eq.{succ u1} (Set.{u1} α) (Set.Ioc.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20))))) l u) S))))))
-Case conversion may be inaccurate. Consider using '#align borel_eq_generate_from_Ioc borel_eq_generateFrom_Iocₓ'. -/
theorem borel_eq_generateFrom_Ioc (α : Type _) [TopologicalSpace α] [SecondCountableTopology α]
[LinearOrder α] [OrderTopology α] :
borel α = generateFrom { S : Set α | ∃ (l u : _)(h : l < u), Ioc l u = S } := by
@@ -908,12 +773,6 @@ theorem borel_eq_generateFrom_Ioc (α : Type _) [TopologicalSpace α] [SecondCou
namespace MeasureTheory.Measure
-/- warning: measure_theory.measure.ext_of_Ico_finite -> MeasureTheory.Measure.ext_of_Ico_finite is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_18 : TopologicalSpace.{u1} α] {m : MeasurableSpace.{u1} α} [_inst_19 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] [_inst_20 : LinearOrder.{u1} α] [_inst_21 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20))))] [_inst_22 : BorelSpace.{u1} α _inst_18 m] (μ : MeasureTheory.Measure.{u1} α m) (ν : MeasureTheory.Measure.{u1} α m) [_inst_23 : MeasureTheory.FiniteMeasure.{u1} α m μ], (Eq.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α m) (fun (_x : MeasureTheory.Measure.{u1} α m) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α m) μ (Set.univ.{u1} α)) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α m) (fun (_x : MeasureTheory.Measure.{u1} α m) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α m) ν (Set.univ.{u1} α))) -> (forall {{a : α}} {{b : α}}, (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20))))) a b) -> (Eq.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α m) (fun (_x : MeasureTheory.Measure.{u1} α m) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α m) μ (Set.Ico.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20)))) a b)) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α m) (fun (_x : MeasureTheory.Measure.{u1} α m) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α m) ν (Set.Ico.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20)))) a b)))) -> (Eq.{succ u1} (MeasureTheory.Measure.{u1} α m) μ ν)
-but is expected to have type
- forall {α : Type.{u1}} [_inst_18 : TopologicalSpace.{u1} α] {m : MeasurableSpace.{u1} α} [_inst_19 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] [_inst_20 : LinearOrder.{u1} α] [_inst_21 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20)))))] [_inst_22 : BorelSpace.{u1} α _inst_18 m] (μ : MeasureTheory.Measure.{u1} α m) (ν : MeasureTheory.Measure.{u1} α m) [_inst_23 : MeasureTheory.FiniteMeasure.{u1} α m μ], (Eq.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α m μ) (Set.univ.{u1} α)) (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α m ν) (Set.univ.{u1} α))) -> (forall {{a : α}} {{b : α}}, (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20)))))) a b) -> (Eq.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α m μ) (Set.Ico.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20))))) a b)) (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α m ν) (Set.Ico.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20))))) a b)))) -> (Eq.{succ u1} (MeasureTheory.Measure.{u1} α m) μ ν)
-Case conversion may be inaccurate. Consider using '#align measure_theory.measure.ext_of_Ico_finite MeasureTheory.Measure.ext_of_Ico_finiteₓ'. -/
/-- Two finite measures on a Borel space are equal if they agree on all closed-open intervals. If
`α` is a conditionally complete linear order with no top element,
`measure_theory.measure..ext_of_Ico` is an extensionality lemma with weaker assumptions on `μ` and
@@ -930,12 +789,6 @@ theorem ext_of_Ico_finite {α : Type _} [TopologicalSpace α] {m : MeasurableSpa
exact h hlt
#align measure_theory.measure.ext_of_Ico_finite MeasureTheory.Measure.ext_of_Ico_finite
-/- warning: measure_theory.measure.ext_of_Ioc_finite -> MeasureTheory.Measure.ext_of_Ioc_finite is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_18 : TopologicalSpace.{u1} α] {m : MeasurableSpace.{u1} α} [_inst_19 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] [_inst_20 : LinearOrder.{u1} α] [_inst_21 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20))))] [_inst_22 : BorelSpace.{u1} α _inst_18 m] (μ : MeasureTheory.Measure.{u1} α m) (ν : MeasureTheory.Measure.{u1} α m) [_inst_23 : MeasureTheory.FiniteMeasure.{u1} α m μ], (Eq.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α m) (fun (_x : MeasureTheory.Measure.{u1} α m) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α m) μ (Set.univ.{u1} α)) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α m) (fun (_x : MeasureTheory.Measure.{u1} α m) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α m) ν (Set.univ.{u1} α))) -> (forall {{a : α}} {{b : α}}, (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20))))) a b) -> (Eq.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α m) (fun (_x : MeasureTheory.Measure.{u1} α m) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α m) μ (Set.Ioc.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20)))) a b)) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α m) (fun (_x : MeasureTheory.Measure.{u1} α m) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α m) ν (Set.Ioc.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20)))) a b)))) -> (Eq.{succ u1} (MeasureTheory.Measure.{u1} α m) μ ν)
-but is expected to have type
- forall {α : Type.{u1}} [_inst_18 : TopologicalSpace.{u1} α] {m : MeasurableSpace.{u1} α} [_inst_19 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] [_inst_20 : LinearOrder.{u1} α] [_inst_21 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20)))))] [_inst_22 : BorelSpace.{u1} α _inst_18 m] (μ : MeasureTheory.Measure.{u1} α m) (ν : MeasureTheory.Measure.{u1} α m) [_inst_23 : MeasureTheory.FiniteMeasure.{u1} α m μ], (Eq.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α m μ) (Set.univ.{u1} α)) (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α m ν) (Set.univ.{u1} α))) -> (forall {{a : α}} {{b : α}}, (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20)))))) a b) -> (Eq.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α m μ) (Set.Ioc.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20))))) a b)) (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α m ν) (Set.Ioc.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20))))) a b)))) -> (Eq.{succ u1} (MeasureTheory.Measure.{u1} α m) μ ν)
-Case conversion may be inaccurate. Consider using '#align measure_theory.measure.ext_of_Ioc_finite MeasureTheory.Measure.ext_of_Ioc_finiteₓ'. -/
/-- Two finite measures on a Borel space are equal if they agree on all open-closed intervals. If
`α` is a conditionally complete linear order with no top element,
`measure_theory.measure..ext_of_Ioc` is an extensionality lemma with weaker assumptions on `μ` and
@@ -949,12 +802,6 @@ theorem ext_of_Ioc_finite {α : Type _} [TopologicalSpace α] {m : MeasurableSpa
exact h hab
#align measure_theory.measure.ext_of_Ioc_finite MeasureTheory.Measure.ext_of_Ioc_finite
-/- warning: measure_theory.measure.ext_of_Ico' -> MeasureTheory.Measure.ext_of_Ico' is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_18 : TopologicalSpace.{u1} α] {m : MeasurableSpace.{u1} α} [_inst_19 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] [_inst_20 : LinearOrder.{u1} α] [_inst_21 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20))))] [_inst_22 : BorelSpace.{u1} α _inst_18 m] [_inst_23 : NoMaxOrder.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20)))))] (μ : MeasureTheory.Measure.{u1} α m) (ν : MeasureTheory.Measure.{u1} α m), (forall {{a : α}} {{b : α}}, (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20))))) a b) -> (Ne.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α m) (fun (_x : MeasureTheory.Measure.{u1} α m) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α m) μ (Set.Ico.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20)))) a b)) (Top.top.{0} ENNReal (CompleteLattice.toHasTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) -> (forall {{a : α}} {{b : α}}, (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20))))) a b) -> (Eq.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α m) (fun (_x : MeasureTheory.Measure.{u1} α m) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α m) μ (Set.Ico.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20)))) a b)) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α m) (fun (_x : MeasureTheory.Measure.{u1} α m) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α m) ν (Set.Ico.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20)))) a b)))) -> (Eq.{succ u1} (MeasureTheory.Measure.{u1} α m) μ ν)
-but is expected to have type
- forall {α : Type.{u1}} [_inst_18 : TopologicalSpace.{u1} α] {m : MeasurableSpace.{u1} α} [_inst_19 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] [_inst_20 : LinearOrder.{u1} α] [_inst_21 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20)))))] [_inst_22 : BorelSpace.{u1} α _inst_18 m] [_inst_23 : NoMaxOrder.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20))))))] (μ : MeasureTheory.Measure.{u1} α m) (ν : MeasureTheory.Measure.{u1} α m), (forall {{a : α}} {{b : α}}, (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20)))))) a b) -> (Ne.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α m μ) (Set.Ico.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20))))) a b)) (Top.top.{0} ENNReal (CompleteLattice.toTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal))))) -> (forall {{a : α}} {{b : α}}, (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20)))))) a b) -> (Eq.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α m μ) (Set.Ico.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20))))) a b)) (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α m ν) (Set.Ico.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20))))) a b)))) -> (Eq.{succ u1} (MeasureTheory.Measure.{u1} α m) μ ν)
-Case conversion may be inaccurate. Consider using '#align measure_theory.measure.ext_of_Ico' MeasureTheory.Measure.ext_of_Ico'ₓ'. -/
/-- Two measures which are finite on closed-open intervals are equal if the agree on all
closed-open intervals. -/
theorem ext_of_Ico' {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
@@ -979,12 +826,6 @@ theorem ext_of_Ico' {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
· rintro _ ⟨l, u, hlt, rfl⟩; exact h hlt
#align measure_theory.measure.ext_of_Ico' MeasureTheory.Measure.ext_of_Ico'
-/- warning: measure_theory.measure.ext_of_Ioc' -> MeasureTheory.Measure.ext_of_Ioc' is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_18 : TopologicalSpace.{u1} α] {m : MeasurableSpace.{u1} α} [_inst_19 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] [_inst_20 : LinearOrder.{u1} α] [_inst_21 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20))))] [_inst_22 : BorelSpace.{u1} α _inst_18 m] [_inst_23 : NoMinOrder.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20)))))] (μ : MeasureTheory.Measure.{u1} α m) (ν : MeasureTheory.Measure.{u1} α m), (forall {{a : α}} {{b : α}}, (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20))))) a b) -> (Ne.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α m) (fun (_x : MeasureTheory.Measure.{u1} α m) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α m) μ (Set.Ioc.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20)))) a b)) (Top.top.{0} ENNReal (CompleteLattice.toHasTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) -> (forall {{a : α}} {{b : α}}, (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20))))) a b) -> (Eq.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α m) (fun (_x : MeasureTheory.Measure.{u1} α m) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α m) μ (Set.Ioc.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20)))) a b)) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α m) (fun (_x : MeasureTheory.Measure.{u1} α m) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α m) ν (Set.Ioc.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20)))) a b)))) -> (Eq.{succ u1} (MeasureTheory.Measure.{u1} α m) μ ν)
-but is expected to have type
- forall {α : Type.{u1}} [_inst_18 : TopologicalSpace.{u1} α] {m : MeasurableSpace.{u1} α} [_inst_19 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] [_inst_20 : LinearOrder.{u1} α] [_inst_21 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20)))))] [_inst_22 : BorelSpace.{u1} α _inst_18 m] [_inst_23 : NoMinOrder.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20))))))] (μ : MeasureTheory.Measure.{u1} α m) (ν : MeasureTheory.Measure.{u1} α m), (forall {{a : α}} {{b : α}}, (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20)))))) a b) -> (Ne.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α m μ) (Set.Ioc.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20))))) a b)) (Top.top.{0} ENNReal (CompleteLattice.toTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal))))) -> (forall {{a : α}} {{b : α}}, (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20)))))) a b) -> (Eq.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α m μ) (Set.Ioc.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20))))) a b)) (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α m ν) (Set.Ioc.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20))))) a b)))) -> (Eq.{succ u1} (MeasureTheory.Measure.{u1} α m) μ ν)
-Case conversion may be inaccurate. Consider using '#align measure_theory.measure.ext_of_Ioc' MeasureTheory.Measure.ext_of_Ioc'ₓ'. -/
/-- Two measures which are finite on closed-open intervals are equal if the agree on all
open-closed intervals. -/
theorem ext_of_Ioc' {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
@@ -996,12 +837,6 @@ theorem ext_of_Ioc' {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
exacts[hμ hab, h hab]
#align measure_theory.measure.ext_of_Ioc' MeasureTheory.Measure.ext_of_Ioc'
-/- warning: measure_theory.measure.ext_of_Ico -> MeasureTheory.Measure.ext_of_Ico is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_18 : TopologicalSpace.{u1} α] {m : MeasurableSpace.{u1} α} [_inst_19 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] [_inst_20 : ConditionallyCompleteLinearOrder.{u1} α] [_inst_21 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_20)))))] [_inst_22 : BorelSpace.{u1} α _inst_18 m] [_inst_23 : NoMaxOrder.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_20))))))] (μ : MeasureTheory.Measure.{u1} α m) (ν : MeasureTheory.Measure.{u1} α m) [_inst_24 : MeasureTheory.LocallyFiniteMeasure.{u1} α m _inst_18 μ], (forall {{a : α}} {{b : α}}, (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_20)))))) a b) -> (Eq.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α m) (fun (_x : MeasureTheory.Measure.{u1} α m) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α m) μ (Set.Ico.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_20))))) a b)) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α m) (fun (_x : MeasureTheory.Measure.{u1} α m) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α m) ν (Set.Ico.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_20))))) a b)))) -> (Eq.{succ u1} (MeasureTheory.Measure.{u1} α m) μ ν)
-but is expected to have type
- forall {α : Type.{u1}} [_inst_18 : TopologicalSpace.{u1} α] {m : MeasurableSpace.{u1} α} [_inst_19 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] [_inst_20 : ConditionallyCompleteLinearOrder.{u1} α] [_inst_21 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_20)))))] [_inst_22 : BorelSpace.{u1} α _inst_18 m] [_inst_23 : NoMaxOrder.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_20))))))] (μ : MeasureTheory.Measure.{u1} α m) (ν : MeasureTheory.Measure.{u1} α m) [_inst_24 : MeasureTheory.LocallyFiniteMeasure.{u1} α m _inst_18 μ], (forall {{a : α}} {{b : α}}, (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_20)))))) a b) -> (Eq.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α m μ) (Set.Ico.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_20))))) a b)) (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α m ν) (Set.Ico.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_20))))) a b)))) -> (Eq.{succ u1} (MeasureTheory.Measure.{u1} α m) μ ν)
-Case conversion may be inaccurate. Consider using '#align measure_theory.measure.ext_of_Ico MeasureTheory.Measure.ext_of_Icoₓ'. -/
/-- Two measures which are finite on closed-open intervals are equal if the agree on all
closed-open intervals. -/
theorem ext_of_Ico {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
@@ -1011,12 +846,6 @@ theorem ext_of_Ico {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
μ.ext_of_Ico' ν (fun a b hab => measure_Ico_lt_top.Ne) h
#align measure_theory.measure.ext_of_Ico MeasureTheory.Measure.ext_of_Ico
-/- warning: measure_theory.measure.ext_of_Ioc -> MeasureTheory.Measure.ext_of_Ioc is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_18 : TopologicalSpace.{u1} α] {m : MeasurableSpace.{u1} α} [_inst_19 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] [_inst_20 : ConditionallyCompleteLinearOrder.{u1} α] [_inst_21 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_20)))))] [_inst_22 : BorelSpace.{u1} α _inst_18 m] [_inst_23 : NoMinOrder.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_20))))))] (μ : MeasureTheory.Measure.{u1} α m) (ν : MeasureTheory.Measure.{u1} α m) [_inst_24 : MeasureTheory.LocallyFiniteMeasure.{u1} α m _inst_18 μ], (forall {{a : α}} {{b : α}}, (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_20)))))) a b) -> (Eq.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α m) (fun (_x : MeasureTheory.Measure.{u1} α m) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α m) μ (Set.Ioc.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_20))))) a b)) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α m) (fun (_x : MeasureTheory.Measure.{u1} α m) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α m) ν (Set.Ioc.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_20))))) a b)))) -> (Eq.{succ u1} (MeasureTheory.Measure.{u1} α m) μ ν)
-but is expected to have type
- forall {α : Type.{u1}} [_inst_18 : TopologicalSpace.{u1} α] {m : MeasurableSpace.{u1} α} [_inst_19 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] [_inst_20 : ConditionallyCompleteLinearOrder.{u1} α] [_inst_21 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_20)))))] [_inst_22 : BorelSpace.{u1} α _inst_18 m] [_inst_23 : NoMinOrder.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_20))))))] (μ : MeasureTheory.Measure.{u1} α m) (ν : MeasureTheory.Measure.{u1} α m) [_inst_24 : MeasureTheory.LocallyFiniteMeasure.{u1} α m _inst_18 μ], (forall {{a : α}} {{b : α}}, (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_20)))))) a b) -> (Eq.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α m μ) (Set.Ioc.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_20))))) a b)) (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α m ν) (Set.Ioc.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_20))))) a b)))) -> (Eq.{succ u1} (MeasureTheory.Measure.{u1} α m) μ ν)
-Case conversion may be inaccurate. Consider using '#align measure_theory.measure.ext_of_Ioc MeasureTheory.Measure.ext_of_Iocₓ'. -/
/-- Two measures which are finite on closed-open intervals are equal if the agree on all
open-closed intervals. -/
theorem ext_of_Ioc {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
@@ -1078,24 +907,12 @@ theorem measurableSet_uIoc : MeasurableSet (uIoc a b) :=
variable [SecondCountableTopology α]
-/- warning: measurable.max -> Measurable.max is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_13 : MeasurableSpace.{u2} δ] [_inst_16 : LinearOrder.{u1} α] [_inst_17 : OrderClosedTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_16))))] [_inst_18 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {f : δ -> α} {g : δ -> α}, (Measurable.{u2, u1} δ α _inst_13 _inst_2 f) -> (Measurable.{u2, u1} δ α _inst_13 _inst_2 g) -> (Measurable.{u2, u1} δ α _inst_13 _inst_2 (fun (a : δ) => LinearOrder.max.{u1} α _inst_16 (f a) (g a)))
-but is expected to have type
- forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_13 : MeasurableSpace.{u2} δ] [_inst_16 : LinearOrder.{u1} α] [_inst_17 : OrderClosedTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_16)))))] [_inst_18 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {f : δ -> α} {g : δ -> α}, (Measurable.{u2, u1} δ α _inst_13 _inst_2 f) -> (Measurable.{u2, u1} δ α _inst_13 _inst_2 g) -> (Measurable.{u2, u1} δ α _inst_13 _inst_2 (fun (a : δ) => Max.max.{u1} α (LinearOrder.toMax.{u1} α _inst_16) (f a) (g a)))
-Case conversion may be inaccurate. Consider using '#align measurable.max Measurable.maxₓ'. -/
@[measurability]
theorem Measurable.max {f g : δ → α} (hf : Measurable f) (hg : Measurable g) :
Measurable fun a => max (f a) (g a) := by
simpa only [max_def'] using hf.piecewise (measurableSet_le hg hf) hg
#align measurable.max Measurable.max
-/- warning: ae_measurable.max -> AEMeasurable.max is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_13 : MeasurableSpace.{u2} δ] [_inst_16 : LinearOrder.{u1} α] [_inst_17 : OrderClosedTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_16))))] [_inst_18 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {f : δ -> α} {g : δ -> α} {μ : MeasureTheory.Measure.{u2} δ _inst_13}, (AEMeasurable.{u2, u1} δ α _inst_2 _inst_13 f μ) -> (AEMeasurable.{u2, u1} δ α _inst_2 _inst_13 g μ) -> (AEMeasurable.{u2, u1} δ α _inst_2 _inst_13 (fun (a : δ) => LinearOrder.max.{u1} α _inst_16 (f a) (g a)) μ)
-but is expected to have type
- forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_13 : MeasurableSpace.{u2} δ] [_inst_16 : LinearOrder.{u1} α] [_inst_17 : OrderClosedTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_16)))))] [_inst_18 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {f : δ -> α} {g : δ -> α} {μ : MeasureTheory.Measure.{u2} δ _inst_13}, (AEMeasurable.{u2, u1} δ α _inst_2 _inst_13 f μ) -> (AEMeasurable.{u2, u1} δ α _inst_2 _inst_13 g μ) -> (AEMeasurable.{u2, u1} δ α _inst_2 _inst_13 (fun (a : δ) => Max.max.{u1} α (LinearOrder.toMax.{u1} α _inst_16) (f a) (g a)) μ)
-Case conversion may be inaccurate. Consider using '#align ae_measurable.max AEMeasurable.maxₓ'. -/
@[measurability]
theorem AEMeasurable.max {f g : δ → α} {μ : Measure δ} (hf : AEMeasurable f μ)
(hg : AEMeasurable g μ) : AEMeasurable (fun a => max (f a) (g a)) μ :=
@@ -1103,24 +920,12 @@ theorem AEMeasurable.max {f g : δ → α} {μ : Measure δ} (hf : AEMeasurable
EventuallyEq.comp₂ hf.ae_eq_mk _ hg.ae_eq_mk⟩
#align ae_measurable.max AEMeasurable.max
-/- warning: measurable.min -> Measurable.min is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_13 : MeasurableSpace.{u2} δ] [_inst_16 : LinearOrder.{u1} α] [_inst_17 : OrderClosedTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_16))))] [_inst_18 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {f : δ -> α} {g : δ -> α}, (Measurable.{u2, u1} δ α _inst_13 _inst_2 f) -> (Measurable.{u2, u1} δ α _inst_13 _inst_2 g) -> (Measurable.{u2, u1} δ α _inst_13 _inst_2 (fun (a : δ) => LinearOrder.min.{u1} α _inst_16 (f a) (g a)))
-but is expected to have type
- forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_13 : MeasurableSpace.{u2} δ] [_inst_16 : LinearOrder.{u1} α] [_inst_17 : OrderClosedTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_16)))))] [_inst_18 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {f : δ -> α} {g : δ -> α}, (Measurable.{u2, u1} δ α _inst_13 _inst_2 f) -> (Measurable.{u2, u1} δ α _inst_13 _inst_2 g) -> (Measurable.{u2, u1} δ α _inst_13 _inst_2 (fun (a : δ) => Min.min.{u1} α (LinearOrder.toMin.{u1} α _inst_16) (f a) (g a)))
-Case conversion may be inaccurate. Consider using '#align measurable.min Measurable.minₓ'. -/
@[measurability]
theorem Measurable.min {f g : δ → α} (hf : Measurable f) (hg : Measurable g) :
Measurable fun a => min (f a) (g a) := by
simpa only [min_def] using hf.piecewise (measurableSet_le hf hg) hg
#align measurable.min Measurable.min
-/- warning: ae_measurable.min -> AEMeasurable.min is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_13 : MeasurableSpace.{u2} δ] [_inst_16 : LinearOrder.{u1} α] [_inst_17 : OrderClosedTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_16))))] [_inst_18 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {f : δ -> α} {g : δ -> α} {μ : MeasureTheory.Measure.{u2} δ _inst_13}, (AEMeasurable.{u2, u1} δ α _inst_2 _inst_13 f μ) -> (AEMeasurable.{u2, u1} δ α _inst_2 _inst_13 g μ) -> (AEMeasurable.{u2, u1} δ α _inst_2 _inst_13 (fun (a : δ) => LinearOrder.min.{u1} α _inst_16 (f a) (g a)) μ)
-but is expected to have type
- forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_13 : MeasurableSpace.{u2} δ] [_inst_16 : LinearOrder.{u1} α] [_inst_17 : OrderClosedTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_16)))))] [_inst_18 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {f : δ -> α} {g : δ -> α} {μ : MeasureTheory.Measure.{u2} δ _inst_13}, (AEMeasurable.{u2, u1} δ α _inst_2 _inst_13 f μ) -> (AEMeasurable.{u2, u1} δ α _inst_2 _inst_13 g μ) -> (AEMeasurable.{u2, u1} δ α _inst_2 _inst_13 (fun (a : δ) => Min.min.{u1} α (LinearOrder.toMin.{u1} α _inst_16) (f a) (g a)) μ)
-Case conversion may be inaccurate. Consider using '#align ae_measurable.min AEMeasurable.minₓ'. -/
@[measurability]
theorem AEMeasurable.min {f g : δ → α} {μ : Measure δ} (hf : AEMeasurable f μ)
(hg : AEMeasurable g μ) : AEMeasurable (fun a => min (f a) (g a)) μ :=
@@ -1130,46 +935,22 @@ theorem AEMeasurable.min {f g : δ → α} {μ : Measure δ} (hf : AEMeasurable
end LinearOrder
-/- warning: continuous.measurable -> Continuous.measurable is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {γ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_7 : TopologicalSpace.{u2} γ] [_inst_8 : MeasurableSpace.{u2} γ] [_inst_9 : BorelSpace.{u2} γ _inst_7 _inst_8] {f : α -> γ}, (Continuous.{u1, u2} α γ _inst_1 _inst_7 f) -> (Measurable.{u1, u2} α γ _inst_2 _inst_8 f)
-but is expected to have type
- forall {α : Type.{u2}} {γ : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : MeasurableSpace.{u2} α] [_inst_3 : OpensMeasurableSpace.{u2} α _inst_1 _inst_2] [_inst_7 : TopologicalSpace.{u1} γ] [_inst_8 : MeasurableSpace.{u1} γ] [_inst_9 : BorelSpace.{u1} γ _inst_7 _inst_8] {f : α -> γ}, (Continuous.{u2, u1} α γ _inst_1 _inst_7 f) -> (Measurable.{u2, u1} α γ _inst_2 _inst_8 f)
-Case conversion may be inaccurate. Consider using '#align continuous.measurable Continuous.measurableₓ'. -/
/-- A continuous function from an `opens_measurable_space` to a `borel_space`
is measurable. -/
theorem Continuous.measurable {f : α → γ} (hf : Continuous f) : Measurable f :=
hf.borel_measurable.mono OpensMeasurableSpace.borel_le (le_of_eq <| BorelSpace.measurable_eq)
#align continuous.measurable Continuous.measurable
-/- warning: continuous.ae_measurable -> Continuous.aemeasurable is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {γ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_7 : TopologicalSpace.{u2} γ] [_inst_8 : MeasurableSpace.{u2} γ] [_inst_9 : BorelSpace.{u2} γ _inst_7 _inst_8] {f : α -> γ}, (Continuous.{u1, u2} α γ _inst_1 _inst_7 f) -> (forall {μ : MeasureTheory.Measure.{u1} α _inst_2}, AEMeasurable.{u1, u2} α γ _inst_8 _inst_2 f μ)
-but is expected to have type
- forall {α : Type.{u2}} {γ : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : MeasurableSpace.{u2} α] [_inst_3 : OpensMeasurableSpace.{u2} α _inst_1 _inst_2] [_inst_7 : TopologicalSpace.{u1} γ] [_inst_8 : MeasurableSpace.{u1} γ] [_inst_9 : BorelSpace.{u1} γ _inst_7 _inst_8] {f : α -> γ}, (Continuous.{u2, u1} α γ _inst_1 _inst_7 f) -> (forall {μ : MeasureTheory.Measure.{u2} α _inst_2}, AEMeasurable.{u2, u1} α γ _inst_8 _inst_2 f μ)
-Case conversion may be inaccurate. Consider using '#align continuous.ae_measurable Continuous.aemeasurableₓ'. -/
/-- A continuous function from an `opens_measurable_space` to a `borel_space`
is ae-measurable. -/
theorem Continuous.aemeasurable {f : α → γ} (h : Continuous f) {μ : Measure α} : AEMeasurable f μ :=
h.Measurable.AEMeasurable
#align continuous.ae_measurable Continuous.aemeasurable
-/- warning: closed_embedding.measurable -> ClosedEmbedding.measurable is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {γ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_7 : TopologicalSpace.{u2} γ] [_inst_8 : MeasurableSpace.{u2} γ] [_inst_9 : BorelSpace.{u2} γ _inst_7 _inst_8] {f : α -> γ}, (ClosedEmbedding.{u1, u2} α γ _inst_1 _inst_7 f) -> (Measurable.{u1, u2} α γ _inst_2 _inst_8 f)
-but is expected to have type
- forall {α : Type.{u2}} {γ : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : MeasurableSpace.{u2} α] [_inst_3 : OpensMeasurableSpace.{u2} α _inst_1 _inst_2] [_inst_7 : TopologicalSpace.{u1} γ] [_inst_8 : MeasurableSpace.{u1} γ] [_inst_9 : BorelSpace.{u1} γ _inst_7 _inst_8] {f : α -> γ}, (ClosedEmbedding.{u2, u1} α γ _inst_1 _inst_7 f) -> (Measurable.{u2, u1} α γ _inst_2 _inst_8 f)
-Case conversion may be inaccurate. Consider using '#align closed_embedding.measurable ClosedEmbedding.measurableₓ'. -/
theorem ClosedEmbedding.measurable {f : α → γ} (hf : ClosedEmbedding f) : Measurable f :=
hf.Continuous.Measurable
#align closed_embedding.measurable ClosedEmbedding.measurable
-/- warning: continuous.is_open_pos_measure_map -> Continuous.openPosMeasure_map is a dubious translation:
-lean 3 declaration is
- forall {β : Type.{u1}} {γ : Type.{u2}} [_inst_4 : TopologicalSpace.{u1} β] [_inst_5 : MeasurableSpace.{u1} β] [_inst_6 : OpensMeasurableSpace.{u1} β _inst_4 _inst_5] [_inst_7 : TopologicalSpace.{u2} γ] [_inst_8 : MeasurableSpace.{u2} γ] [_inst_9 : BorelSpace.{u2} γ _inst_7 _inst_8] {f : β -> γ}, (Continuous.{u1, u2} β γ _inst_4 _inst_7 f) -> (Function.Surjective.{succ u1, succ u2} β γ f) -> (forall {μ : MeasureTheory.Measure.{u1} β _inst_5} [_inst_16 : MeasureTheory.Measure.OpenPosMeasure.{u1} β _inst_4 _inst_5 μ], MeasureTheory.Measure.OpenPosMeasure.{u2} γ _inst_7 _inst_8 (MeasureTheory.Measure.map.{u1, u2} β γ _inst_8 _inst_5 f μ))
-but is expected to have type
- forall {β : Type.{u2}} {γ : Type.{u1}} [_inst_4 : TopologicalSpace.{u2} β] [_inst_5 : MeasurableSpace.{u2} β] [_inst_6 : OpensMeasurableSpace.{u2} β _inst_4 _inst_5] [_inst_7 : TopologicalSpace.{u1} γ] [_inst_8 : MeasurableSpace.{u1} γ] [_inst_9 : BorelSpace.{u1} γ _inst_7 _inst_8] {f : β -> γ}, (Continuous.{u2, u1} β γ _inst_4 _inst_7 f) -> (Function.Surjective.{succ u2, succ u1} β γ f) -> (forall {μ : MeasureTheory.Measure.{u2} β _inst_5} [_inst_16 : MeasureTheory.Measure.OpenPosMeasure.{u2} β _inst_4 _inst_5 μ], MeasureTheory.Measure.OpenPosMeasure.{u1} γ _inst_7 _inst_8 (MeasureTheory.Measure.map.{u2, u1} β γ _inst_8 _inst_5 f μ))
-Case conversion may be inaccurate. Consider using '#align continuous.is_open_pos_measure_map Continuous.openPosMeasure_mapₓ'. -/
theorem Continuous.openPosMeasure_map {f : β → γ} (hf : Continuous f)
(hf_surj : Function.Surjective f) {μ : Measure β} [μ.OpenPosMeasure] :
(Measure.map f μ).OpenPosMeasure :=
@@ -1179,12 +960,6 @@ theorem Continuous.openPosMeasure_map {f : β → γ} (hf : Continuous f)
exact (hUo.preimage hf).measure_ne_zero μ (hf_surj.nonempty_preimage.mpr hUne)
#align continuous.is_open_pos_measure_map Continuous.openPosMeasure_map
-/- warning: continuous_on.measurable_piecewise -> ContinuousOn.measurable_piecewise is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {γ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_7 : TopologicalSpace.{u2} γ] [_inst_8 : MeasurableSpace.{u2} γ] [_inst_9 : BorelSpace.{u2} γ _inst_7 _inst_8] {f : α -> γ} {g : α -> γ} {s : Set.{u1} α} [_inst_16 : forall (j : α), Decidable (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) j s)], (ContinuousOn.{u1, u2} α γ _inst_1 _inst_7 f s) -> (ContinuousOn.{u1, u2} α γ _inst_1 _inst_7 g (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) -> (MeasurableSet.{u1} α _inst_2 s) -> (Measurable.{u1, u2} α γ _inst_2 _inst_8 (Set.piecewise.{u1, succ u2} α (fun (ᾰ : α) => γ) s f g (fun (j : α) => _inst_16 j)))
-but is expected to have type
- forall {α : Type.{u2}} {γ : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : MeasurableSpace.{u2} α] [_inst_3 : OpensMeasurableSpace.{u2} α _inst_1 _inst_2] [_inst_7 : TopologicalSpace.{u1} γ] [_inst_8 : MeasurableSpace.{u1} γ] [_inst_9 : BorelSpace.{u1} γ _inst_7 _inst_8] {f : α -> γ} {g : α -> γ} {s : Set.{u2} α} [_inst_16 : forall (j : α), Decidable (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) j s)], (ContinuousOn.{u2, u1} α γ _inst_1 _inst_7 f s) -> (ContinuousOn.{u2, u1} α γ _inst_1 _inst_7 g (HasCompl.compl.{u2} (Set.{u2} α) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} α) (Set.instBooleanAlgebraSet.{u2} α)) s)) -> (MeasurableSet.{u2} α _inst_2 s) -> (Measurable.{u2, u1} α γ _inst_2 _inst_8 (Set.piecewise.{u2, succ u1} α (fun (ᾰ : α) => γ) s f g (fun (j : α) => _inst_16 j)))
-Case conversion may be inaccurate. Consider using '#align continuous_on.measurable_piecewise ContinuousOn.measurable_piecewiseₓ'. -/
/-- If a function is defined piecewise in terms of functions which are continuous on their
respective pieces, then it is measurable. -/
theorem ContinuousOn.measurable_piecewise {f g : α → γ} {s : Set α} [∀ j : α, Decidable (j ∈ s)]
@@ -1220,12 +995,6 @@ instance (priority := 100) ContinuousSub.measurableSub [Sub γ] [ContinuousSub
#align has_continuous_sub.has_measurable_sub ContinuousSub.measurableSub
-/
-/- warning: topological_group.has_measurable_inv -> TopologicalGroup.measurableInv is a dubious translation:
-lean 3 declaration is
- forall {γ : Type.{u1}} [_inst_7 : TopologicalSpace.{u1} γ] [_inst_8 : MeasurableSpace.{u1} γ] [_inst_9 : BorelSpace.{u1} γ _inst_7 _inst_8] [_inst_16 : Group.{u1} γ] [_inst_17 : TopologicalGroup.{u1} γ _inst_7 _inst_16], MeasurableInv.{u1} γ (DivInvMonoid.toHasInv.{u1} γ (Group.toDivInvMonoid.{u1} γ _inst_16)) _inst_8
-but is expected to have type
- forall {γ : Type.{u1}} [_inst_7 : TopologicalSpace.{u1} γ] [_inst_8 : MeasurableSpace.{u1} γ] [_inst_9 : BorelSpace.{u1} γ _inst_7 _inst_8] [_inst_16 : Group.{u1} γ] [_inst_17 : TopologicalGroup.{u1} γ _inst_7 _inst_16], MeasurableInv.{u1} γ (InvOneClass.toInv.{u1} γ (DivInvOneMonoid.toInvOneClass.{u1} γ (DivisionMonoid.toDivInvOneMonoid.{u1} γ (Group.toDivisionMonoid.{u1} γ _inst_16)))) _inst_8
-Case conversion may be inaccurate. Consider using '#align topological_group.has_measurable_inv TopologicalGroup.measurableInvₓ'. -/
@[to_additive]
instance (priority := 100) TopologicalGroup.measurableInv [Group γ] [TopologicalGroup γ] :
MeasurableInv γ :=
@@ -1278,12 +1047,6 @@ end Lattice
section Homeomorph
-/- warning: homeomorph.measurable -> Homeomorph.measurable is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {γ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_7 : TopologicalSpace.{u2} γ] [_inst_8 : MeasurableSpace.{u2} γ] [_inst_9 : BorelSpace.{u2} γ _inst_7 _inst_8] (h : Homeomorph.{u1, u2} α γ _inst_1 _inst_7), Measurable.{u1, u2} α γ _inst_2 _inst_8 (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (Homeomorph.{u1, u2} α γ _inst_1 _inst_7) (fun (_x : Homeomorph.{u1, u2} α γ _inst_1 _inst_7) => α -> γ) (Homeomorph.hasCoeToFun.{u1, u2} α γ _inst_1 _inst_7) h)
-but is expected to have type
- forall {α : Type.{u2}} {γ : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : MeasurableSpace.{u2} α] [_inst_3 : OpensMeasurableSpace.{u2} α _inst_1 _inst_2] [_inst_7 : TopologicalSpace.{u1} γ] [_inst_8 : MeasurableSpace.{u1} γ] [_inst_9 : BorelSpace.{u1} γ _inst_7 _inst_8] (h : Homeomorph.{u2, u1} α γ _inst_1 _inst_7), Measurable.{u2, u1} α γ _inst_2 _inst_8 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Homeomorph.{u2, u1} α γ _inst_1 _inst_7) α (fun (_x : α) => γ) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (Homeomorph.{u2, u1} α γ _inst_1 _inst_7) α γ (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (Homeomorph.{u2, u1} α γ _inst_1 _inst_7) α γ (Homeomorph.instEquivLikeHomeomorph.{u2, u1} α γ _inst_1 _inst_7))) h)
-Case conversion may be inaccurate. Consider using '#align homeomorph.measurable Homeomorph.measurableₓ'. -/
@[measurability]
protected theorem Homeomorph.measurable (h : α ≃ₜ γ) : Measurable h :=
h.Continuous.Measurable
@@ -1299,23 +1062,11 @@ def Homeomorph.toMeasurableEquiv (h : γ ≃ₜ γ₂) : γ ≃ᵐ γ₂
#align homeomorph.to_measurable_equiv Homeomorph.toMeasurableEquiv
-/
-/- warning: homeomorph.to_measurable_equiv_coe -> Homeomorph.toMeasurableEquiv_coe is a dubious translation:
-lean 3 declaration is
- forall {γ : Type.{u1}} {γ₂ : Type.{u2}} [_inst_7 : TopologicalSpace.{u1} γ] [_inst_8 : MeasurableSpace.{u1} γ] [_inst_9 : BorelSpace.{u1} γ _inst_7 _inst_8] [_inst_10 : TopologicalSpace.{u2} γ₂] [_inst_11 : MeasurableSpace.{u2} γ₂] [_inst_12 : BorelSpace.{u2} γ₂ _inst_10 _inst_11] (h : Homeomorph.{u1, u2} γ γ₂ _inst_7 _inst_10), Eq.{max (succ u1) (succ u2)} ((fun (_x : MeasurableEquiv.{u1, u2} γ γ₂ _inst_8 _inst_11) => γ -> γ₂) (Homeomorph.toMeasurableEquiv.{u1, u2} γ γ₂ _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12 h)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MeasurableEquiv.{u1, u2} γ γ₂ _inst_8 _inst_11) (fun (_x : MeasurableEquiv.{u1, u2} γ γ₂ _inst_8 _inst_11) => γ -> γ₂) (MeasurableEquiv.hasCoeToFun.{u1, u2} γ γ₂ _inst_8 _inst_11) (Homeomorph.toMeasurableEquiv.{u1, u2} γ γ₂ _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12 h)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (Homeomorph.{u1, u2} γ γ₂ _inst_7 _inst_10) (fun (_x : Homeomorph.{u1, u2} γ γ₂ _inst_7 _inst_10) => γ -> γ₂) (Homeomorph.hasCoeToFun.{u1, u2} γ γ₂ _inst_7 _inst_10) h)
-but is expected to have type
- forall {γ : Type.{u2}} {γ₂ : Type.{u1}} [_inst_7 : TopologicalSpace.{u2} γ] [_inst_8 : MeasurableSpace.{u2} γ] [_inst_9 : BorelSpace.{u2} γ _inst_7 _inst_8] [_inst_10 : TopologicalSpace.{u1} γ₂] [_inst_11 : MeasurableSpace.{u1} γ₂] [_inst_12 : BorelSpace.{u1} γ₂ _inst_10 _inst_11] (h : Homeomorph.{u2, u1} γ γ₂ _inst_7 _inst_10), Eq.{max (succ u2) (succ u1)} (forall (a : γ), (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : γ) => γ₂) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} γ γ₂ _inst_8 _inst_11) γ (fun (_x : γ) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : γ) => γ₂) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} γ γ₂ _inst_8 _inst_11) γ γ₂ (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} γ γ₂ _inst_8 _inst_11) γ γ₂ (MeasurableEquiv.instEquivLike.{u2, u1} γ γ₂ _inst_8 _inst_11))) (Homeomorph.toMeasurableEquiv.{u2, u1} γ γ₂ _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12 h)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Homeomorph.{u2, u1} γ γ₂ _inst_7 _inst_10) γ (fun (_x : γ) => γ₂) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (Homeomorph.{u2, u1} γ γ₂ _inst_7 _inst_10) γ γ₂ (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (Homeomorph.{u2, u1} γ γ₂ _inst_7 _inst_10) γ γ₂ (Homeomorph.instEquivLikeHomeomorph.{u2, u1} γ γ₂ _inst_7 _inst_10))) h)
-Case conversion may be inaccurate. Consider using '#align homeomorph.to_measurable_equiv_coe Homeomorph.toMeasurableEquiv_coeₓ'. -/
@[simp]
theorem Homeomorph.toMeasurableEquiv_coe (h : γ ≃ₜ γ₂) : (h.toMeasurableEquiv : γ → γ₂) = h :=
rfl
#align homeomorph.to_measurable_equiv_coe Homeomorph.toMeasurableEquiv_coe
-/- warning: homeomorph.to_measurable_equiv_symm_coe -> Homeomorph.toMeasurableEquiv_symm_coe is a dubious translation:
-lean 3 declaration is
- forall {γ : Type.{u1}} {γ₂ : Type.{u2}} [_inst_7 : TopologicalSpace.{u1} γ] [_inst_8 : MeasurableSpace.{u1} γ] [_inst_9 : BorelSpace.{u1} γ _inst_7 _inst_8] [_inst_10 : TopologicalSpace.{u2} γ₂] [_inst_11 : MeasurableSpace.{u2} γ₂] [_inst_12 : BorelSpace.{u2} γ₂ _inst_10 _inst_11] (h : Homeomorph.{u1, u2} γ γ₂ _inst_7 _inst_10), Eq.{max (succ u2) (succ u1)} ((fun (_x : MeasurableEquiv.{u2, u1} γ₂ γ _inst_11 _inst_8) => γ₂ -> γ) (MeasurableEquiv.symm.{u1, u2} γ γ₂ _inst_8 _inst_11 (Homeomorph.toMeasurableEquiv.{u1, u2} γ γ₂ _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12 h))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (MeasurableEquiv.{u2, u1} γ₂ γ _inst_11 _inst_8) (fun (_x : MeasurableEquiv.{u2, u1} γ₂ γ _inst_11 _inst_8) => γ₂ -> γ) (MeasurableEquiv.hasCoeToFun.{u2, u1} γ₂ γ _inst_11 _inst_8) (MeasurableEquiv.symm.{u1, u2} γ γ₂ _inst_8 _inst_11 (Homeomorph.toMeasurableEquiv.{u1, u2} γ γ₂ _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12 h))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Homeomorph.{u2, u1} γ₂ γ _inst_10 _inst_7) (fun (_x : Homeomorph.{u2, u1} γ₂ γ _inst_10 _inst_7) => γ₂ -> γ) (Homeomorph.hasCoeToFun.{u2, u1} γ₂ γ _inst_10 _inst_7) (Homeomorph.symm.{u1, u2} γ γ₂ _inst_7 _inst_10 h))
-but is expected to have type
- forall {γ : Type.{u2}} {γ₂ : Type.{u1}} [_inst_7 : TopologicalSpace.{u2} γ] [_inst_8 : MeasurableSpace.{u2} γ] [_inst_9 : BorelSpace.{u2} γ _inst_7 _inst_8] [_inst_10 : TopologicalSpace.{u1} γ₂] [_inst_11 : MeasurableSpace.{u1} γ₂] [_inst_12 : BorelSpace.{u1} γ₂ _inst_10 _inst_11] (h : Homeomorph.{u2, u1} γ γ₂ _inst_7 _inst_10), Eq.{max (succ u2) (succ u1)} (forall (a : γ₂), (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : γ₂) => γ) a) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} γ₂ γ _inst_11 _inst_8) γ₂ (fun (_x : γ₂) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : γ₂) => γ) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} γ₂ γ _inst_11 _inst_8) γ₂ γ (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} γ₂ γ _inst_11 _inst_8) γ₂ γ (MeasurableEquiv.instEquivLike.{u1, u2} γ₂ γ _inst_11 _inst_8))) (MeasurableEquiv.symm.{u2, u1} γ γ₂ _inst_8 _inst_11 (Homeomorph.toMeasurableEquiv.{u2, u1} γ γ₂ _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12 h))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Homeomorph.{u1, u2} γ₂ γ _inst_10 _inst_7) γ₂ (fun (_x : γ₂) => γ) (EmbeddingLike.toFunLike.{max (succ u1) (succ u2), succ u1, succ u2} (Homeomorph.{u1, u2} γ₂ γ _inst_10 _inst_7) γ₂ γ (EquivLike.toEmbeddingLike.{max (succ u1) (succ u2), succ u1, succ u2} (Homeomorph.{u1, u2} γ₂ γ _inst_10 _inst_7) γ₂ γ (Homeomorph.instEquivLikeHomeomorph.{u1, u2} γ₂ γ _inst_10 _inst_7))) (Homeomorph.symm.{u2, u1} γ γ₂ _inst_7 _inst_10 h))
-Case conversion may be inaccurate. Consider using '#align homeomorph.to_measurable_equiv_symm_coe Homeomorph.toMeasurableEquiv_symm_coeₓ'. -/
@[simp]
theorem Homeomorph.toMeasurableEquiv_symm_coe (h : γ ≃ₜ γ₂) :
(h.toMeasurableEquiv.symm : γ₂ → γ) = h.symm :=
@@ -1324,59 +1075,29 @@ theorem Homeomorph.toMeasurableEquiv_symm_coe (h : γ ≃ₜ γ₂) :
end Homeomorph
-/- warning: continuous_map.measurable -> ContinuousMap.measurable is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {γ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_7 : TopologicalSpace.{u2} γ] [_inst_8 : MeasurableSpace.{u2} γ] [_inst_9 : BorelSpace.{u2} γ _inst_7 _inst_8] (f : ContinuousMap.{u1, u2} α γ _inst_1 _inst_7), Measurable.{u1, u2} α γ _inst_2 _inst_8 (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (ContinuousMap.{u1, u2} α γ _inst_1 _inst_7) (fun (_x : ContinuousMap.{u1, u2} α γ _inst_1 _inst_7) => α -> γ) (ContinuousMap.hasCoeToFun.{u1, u2} α γ _inst_1 _inst_7) f)
-but is expected to have type
- forall {α : Type.{u2}} {γ : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : MeasurableSpace.{u2} α] [_inst_3 : OpensMeasurableSpace.{u2} α _inst_1 _inst_2] [_inst_7 : TopologicalSpace.{u1} γ] [_inst_8 : MeasurableSpace.{u1} γ] [_inst_9 : BorelSpace.{u1} γ _inst_7 _inst_8] (f : ContinuousMap.{u2, u1} α γ _inst_1 _inst_7), Measurable.{u2, u1} α γ _inst_2 _inst_8 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (ContinuousMap.{u2, u1} α γ _inst_1 _inst_7) α (fun (_x : α) => (fun (x._@.Mathlib.Topology.ContinuousFunction.Basic._hyg.699 : α) => γ) _x) (ContinuousMapClass.toFunLike.{max u2 u1, u2, u1} (ContinuousMap.{u2, u1} α γ _inst_1 _inst_7) α γ _inst_1 _inst_7 (ContinuousMap.instContinuousMapClassContinuousMap.{u2, u1} α γ _inst_1 _inst_7)) f)
-Case conversion may be inaccurate. Consider using '#align continuous_map.measurable ContinuousMap.measurableₓ'. -/
@[measurability]
theorem ContinuousMap.measurable (f : C(α, γ)) : Measurable f :=
f.Continuous.Measurable
#align continuous_map.measurable ContinuousMap.measurable
-/- warning: measurable_of_continuous_on_compl_singleton -> measurable_of_continuousOn_compl_singleton is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {γ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_7 : TopologicalSpace.{u2} γ] [_inst_8 : MeasurableSpace.{u2} γ] [_inst_9 : BorelSpace.{u2} γ _inst_7 _inst_8] [_inst_16 : T1Space.{u1} α _inst_1] {f : α -> γ} (a : α), (ContinuousOn.{u1, u2} α γ _inst_1 _inst_7 f (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) (Singleton.singleton.{u1, u1} α (Set.{u1} α) (Set.hasSingleton.{u1} α) a))) -> (Measurable.{u1, u2} α γ _inst_2 _inst_8 f)
-but is expected to have type
- forall {α : Type.{u2}} {γ : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : MeasurableSpace.{u2} α] [_inst_3 : OpensMeasurableSpace.{u2} α _inst_1 _inst_2] [_inst_7 : TopologicalSpace.{u1} γ] [_inst_8 : MeasurableSpace.{u1} γ] [_inst_9 : BorelSpace.{u1} γ _inst_7 _inst_8] [_inst_16 : T1Space.{u2} α _inst_1] {f : α -> γ} (a : α), (ContinuousOn.{u2, u1} α γ _inst_1 _inst_7 f (HasCompl.compl.{u2} (Set.{u2} α) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} α) (Set.instBooleanAlgebraSet.{u2} α)) (Singleton.singleton.{u2, u2} α (Set.{u2} α) (Set.instSingletonSet.{u2} α) a))) -> (Measurable.{u2, u1} α γ _inst_2 _inst_8 f)
-Case conversion may be inaccurate. Consider using '#align measurable_of_continuous_on_compl_singleton measurable_of_continuousOn_compl_singletonₓ'. -/
theorem measurable_of_continuousOn_compl_singleton [T1Space α] {f : α → γ} (a : α)
(hf : ContinuousOn f ({a}ᶜ)) : Measurable f :=
measurable_of_measurable_on_compl_singleton a
(continuousOn_iff_continuous_restrict.1 hf).Measurable
#align measurable_of_continuous_on_compl_singleton measurable_of_continuousOn_compl_singleton
-/- warning: continuous.measurable2 -> Continuous.measurable2 is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {δ : Type.{u4}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u2} β] [_inst_5 : MeasurableSpace.{u2} β] [_inst_6 : OpensMeasurableSpace.{u2} β _inst_4 _inst_5] [_inst_7 : TopologicalSpace.{u3} γ] [_inst_8 : MeasurableSpace.{u3} γ] [_inst_9 : BorelSpace.{u3} γ _inst_7 _inst_8] [_inst_13 : MeasurableSpace.{u4} δ] [_inst_16 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] [_inst_17 : TopologicalSpace.SecondCountableTopology.{u2} β _inst_4] {f : δ -> α} {g : δ -> β} {c : α -> β -> γ}, (Continuous.{max u1 u2, u3} (Prod.{u1, u2} α β) γ (Prod.topologicalSpace.{u1, u2} α β _inst_1 _inst_4) _inst_7 (fun (p : Prod.{u1, u2} α β) => c (Prod.fst.{u1, u2} α β p) (Prod.snd.{u1, u2} α β p))) -> (Measurable.{u4, u1} δ α _inst_13 _inst_2 f) -> (Measurable.{u4, u2} δ β _inst_13 _inst_5 g) -> (Measurable.{u4, u3} δ γ _inst_13 _inst_8 (fun (a : δ) => c (f a) (g a)))
-but is expected to have type
- forall {α : Type.{u4}} {β : Type.{u3}} {γ : Type.{u2}} {δ : Type.{u1}} [_inst_1 : TopologicalSpace.{u4} α] [_inst_2 : MeasurableSpace.{u4} α] [_inst_3 : OpensMeasurableSpace.{u4} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u3} β] [_inst_5 : MeasurableSpace.{u3} β] [_inst_6 : OpensMeasurableSpace.{u3} β _inst_4 _inst_5] [_inst_7 : TopologicalSpace.{u2} γ] [_inst_8 : MeasurableSpace.{u2} γ] [_inst_9 : BorelSpace.{u2} γ _inst_7 _inst_8] [_inst_13 : MeasurableSpace.{u1} δ] [_inst_16 : TopologicalSpace.SecondCountableTopology.{u4} α _inst_1] [_inst_17 : TopologicalSpace.SecondCountableTopology.{u3} β _inst_4] {f : δ -> α} {g : δ -> β} {c : α -> β -> γ}, (Continuous.{max u4 u3, u2} (Prod.{u4, u3} α β) γ (instTopologicalSpaceProd.{u4, u3} α β _inst_1 _inst_4) _inst_7 (fun (p : Prod.{u4, u3} α β) => c (Prod.fst.{u4, u3} α β p) (Prod.snd.{u4, u3} α β p))) -> (Measurable.{u1, u4} δ α _inst_13 _inst_2 f) -> (Measurable.{u1, u3} δ β _inst_13 _inst_5 g) -> (Measurable.{u1, u2} δ γ _inst_13 _inst_8 (fun (a : δ) => c (f a) (g a)))
-Case conversion may be inaccurate. Consider using '#align continuous.measurable2 Continuous.measurable2ₓ'. -/
theorem Continuous.measurable2 [SecondCountableTopology α] [SecondCountableTopology β] {f : δ → α}
{g : δ → β} {c : α → β → γ} (h : Continuous fun p : α × β => c p.1 p.2) (hf : Measurable f)
(hg : Measurable g) : Measurable fun a => c (f a) (g a) :=
h.Measurable.comp (hf.prod_mk hg)
#align continuous.measurable2 Continuous.measurable2
-/- warning: continuous.ae_measurable2 -> Continuous.aemeasurable2 is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {δ : Type.{u4}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u2} β] [_inst_5 : MeasurableSpace.{u2} β] [_inst_6 : OpensMeasurableSpace.{u2} β _inst_4 _inst_5] [_inst_7 : TopologicalSpace.{u3} γ] [_inst_8 : MeasurableSpace.{u3} γ] [_inst_9 : BorelSpace.{u3} γ _inst_7 _inst_8] [_inst_13 : MeasurableSpace.{u4} δ] [_inst_16 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] [_inst_17 : TopologicalSpace.SecondCountableTopology.{u2} β _inst_4] {f : δ -> α} {g : δ -> β} {c : α -> β -> γ} {μ : MeasureTheory.Measure.{u4} δ _inst_13}, (Continuous.{max u1 u2, u3} (Prod.{u1, u2} α β) γ (Prod.topologicalSpace.{u1, u2} α β _inst_1 _inst_4) _inst_7 (fun (p : Prod.{u1, u2} α β) => c (Prod.fst.{u1, u2} α β p) (Prod.snd.{u1, u2} α β p))) -> (AEMeasurable.{u4, u1} δ α _inst_2 _inst_13 f μ) -> (AEMeasurable.{u4, u2} δ β _inst_5 _inst_13 g μ) -> (AEMeasurable.{u4, u3} δ γ _inst_8 _inst_13 (fun (a : δ) => c (f a) (g a)) μ)
-but is expected to have type
- forall {α : Type.{u4}} {β : Type.{u3}} {γ : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u4} α] [_inst_2 : MeasurableSpace.{u4} α] [_inst_3 : OpensMeasurableSpace.{u4} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u3} β] [_inst_5 : MeasurableSpace.{u3} β] [_inst_6 : OpensMeasurableSpace.{u3} β _inst_4 _inst_5] [_inst_7 : TopologicalSpace.{u1} γ] [_inst_8 : MeasurableSpace.{u1} γ] [_inst_9 : BorelSpace.{u1} γ _inst_7 _inst_8] [_inst_13 : MeasurableSpace.{u2} δ] [_inst_16 : TopologicalSpace.SecondCountableTopology.{u4} α _inst_1] [_inst_17 : TopologicalSpace.SecondCountableTopology.{u3} β _inst_4] {f : δ -> α} {g : δ -> β} {c : α -> β -> γ} {μ : MeasureTheory.Measure.{u2} δ _inst_13}, (Continuous.{max u4 u3, u1} (Prod.{u4, u3} α β) γ (instTopologicalSpaceProd.{u4, u3} α β _inst_1 _inst_4) _inst_7 (fun (p : Prod.{u4, u3} α β) => c (Prod.fst.{u4, u3} α β p) (Prod.snd.{u4, u3} α β p))) -> (AEMeasurable.{u2, u4} δ α _inst_2 _inst_13 f μ) -> (AEMeasurable.{u2, u3} δ β _inst_5 _inst_13 g μ) -> (AEMeasurable.{u2, u1} δ γ _inst_8 _inst_13 (fun (a : δ) => c (f a) (g a)) μ)
-Case conversion may be inaccurate. Consider using '#align continuous.ae_measurable2 Continuous.aemeasurable2ₓ'. -/
theorem Continuous.aemeasurable2 [SecondCountableTopology α] [SecondCountableTopology β] {f : δ → α}
{g : δ → β} {c : α → β → γ} {μ : Measure δ} (h : Continuous fun p : α × β => c p.1 p.2)
(hf : AEMeasurable f μ) (hg : AEMeasurable g μ) : AEMeasurable (fun a => c (f a) (g a)) μ :=
h.Measurable.comp_aemeasurable (hf.prod_mk hg)
#align continuous.ae_measurable2 Continuous.aemeasurable2
-/- warning: has_continuous_inv₀.has_measurable_inv -> HasContinuousInv₀.measurableInv is a dubious translation:
-lean 3 declaration is
- forall {γ : Type.{u1}} [_inst_7 : TopologicalSpace.{u1} γ] [_inst_8 : MeasurableSpace.{u1} γ] [_inst_9 : BorelSpace.{u1} γ _inst_7 _inst_8] [_inst_16 : GroupWithZero.{u1} γ] [_inst_17 : T1Space.{u1} γ _inst_7] [_inst_18 : HasContinuousInv₀.{u1} γ (MulZeroClass.toHasZero.{u1} γ (MulZeroOneClass.toMulZeroClass.{u1} γ (MonoidWithZero.toMulZeroOneClass.{u1} γ (GroupWithZero.toMonoidWithZero.{u1} γ _inst_16)))) (DivInvMonoid.toHasInv.{u1} γ (GroupWithZero.toDivInvMonoid.{u1} γ _inst_16)) _inst_7], MeasurableInv.{u1} γ (DivInvMonoid.toHasInv.{u1} γ (GroupWithZero.toDivInvMonoid.{u1} γ _inst_16)) _inst_8
-but is expected to have type
- forall {γ : Type.{u1}} [_inst_7 : TopologicalSpace.{u1} γ] [_inst_8 : MeasurableSpace.{u1} γ] [_inst_9 : BorelSpace.{u1} γ _inst_7 _inst_8] [_inst_16 : GroupWithZero.{u1} γ] [_inst_17 : T1Space.{u1} γ _inst_7] [_inst_18 : HasContinuousInv₀.{u1} γ (MonoidWithZero.toZero.{u1} γ (GroupWithZero.toMonoidWithZero.{u1} γ _inst_16)) (GroupWithZero.toInv.{u1} γ _inst_16) _inst_7], MeasurableInv.{u1} γ (GroupWithZero.toInv.{u1} γ _inst_16) _inst_8
-Case conversion may be inaccurate. Consider using '#align has_continuous_inv₀.has_measurable_inv HasContinuousInv₀.measurableInvₓ'. -/
instance (priority := 100) HasContinuousInv₀.measurableInv [GroupWithZero γ] [T1Space γ]
[HasContinuousInv₀ γ] : MeasurableInv γ :=
⟨measurable_of_continuousOn_compl_singleton 0 continuousOn_inv₀⟩
@@ -1415,12 +1136,6 @@ variable [TopologicalSpace α] [MeasurableSpace α] [BorelSpace α] [Topological
[MeasurableSpace β] [BorelSpace β] [TopologicalSpace γ] [MeasurableSpace γ] [BorelSpace γ]
[MeasurableSpace δ]
-/- warning: pi_le_borel_pi -> pi_le_borel_pi is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {π : ι -> Type.{u2}} [_inst_11 : forall (i : ι), TopologicalSpace.{u2} (π i)] [_inst_12 : forall (i : ι), MeasurableSpace.{u2} (π i)] [_inst_13 : forall (i : ι), BorelSpace.{u2} (π i) (_inst_11 i) (_inst_12 i)], LE.le.{max u1 u2} (MeasurableSpace.{max u1 u2} (forall (a : ι), π a)) (MeasurableSpace.hasLe.{max u1 u2} (forall (a : ι), π a)) (MeasurableSpace.pi.{u1, u2} ι (fun (a : ι) => π a) (fun (a : ι) => _inst_12 a)) (borel.{max u1 u2} (forall (i : ι), π i) (Pi.topologicalSpace.{u1, u2} ι (fun (a : ι) => π a) (fun (a : ι) => _inst_11 a)))
-but is expected to have type
- forall {ι : Type.{u2}} {π : ι -> Type.{u1}} [_inst_11 : forall (i : ι), TopologicalSpace.{u1} (π i)] [_inst_12 : forall (i : ι), MeasurableSpace.{u1} (π i)] [_inst_13 : forall (i : ι), BorelSpace.{u1} (π i) (_inst_11 i) (_inst_12 i)], LE.le.{max u2 u1} (MeasurableSpace.{max u2 u1} (forall (a : ι), π a)) (MeasurableSpace.instLEMeasurableSpace.{max u2 u1} (forall (a : ι), π a)) (MeasurableSpace.pi.{u2, u1} ι (fun (a : ι) => π a) (fun (a : ι) => _inst_12 a)) (borel.{max u2 u1} (forall (i : ι), π i) (Pi.topologicalSpace.{u2, u1} ι (fun (a : ι) => π a) (fun (a : ι) => _inst_11 a)))
-Case conversion may be inaccurate. Consider using '#align pi_le_borel_pi pi_le_borel_piₓ'. -/
theorem pi_le_borel_pi {ι : Type _} {π : ι → Type _} [∀ i, TopologicalSpace (π i)]
[∀ i, MeasurableSpace (π i)] [∀ i, BorelSpace (π i)] : MeasurableSpace.pi ≤ borel (∀ i, π i) :=
by
@@ -1430,12 +1145,6 @@ theorem pi_le_borel_pi {ι : Type _} {π : ι → Type _} [∀ i, TopologicalSpa
exact iSup_le fun i => comap_le_iff_le_map.2 <| (continuous_apply i).borel_measurable
#align pi_le_borel_pi pi_le_borel_pi
-/- warning: prod_le_borel_prod -> prod_le_borel_prod is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u2} β] [_inst_5 : MeasurableSpace.{u2} β] [_inst_6 : BorelSpace.{u2} β _inst_4 _inst_5], LE.le.{max u1 u2} (MeasurableSpace.{max u1 u2} (Prod.{u1, u2} α β)) (MeasurableSpace.hasLe.{max u1 u2} (Prod.{u1, u2} α β)) (Prod.instMeasurableSpace.{u1, u2} α β _inst_2 _inst_5) (borel.{max u1 u2} (Prod.{u1, u2} α β) (Prod.topologicalSpace.{u1, u2} α β _inst_1 _inst_4))
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : MeasurableSpace.{u2} α] [_inst_3 : BorelSpace.{u2} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u1} β] [_inst_5 : MeasurableSpace.{u1} β] [_inst_6 : BorelSpace.{u1} β _inst_4 _inst_5], LE.le.{max u2 u1} (MeasurableSpace.{max u1 u2} (Prod.{u2, u1} α β)) (MeasurableSpace.instLEMeasurableSpace.{max u2 u1} (Prod.{u2, u1} α β)) (Prod.instMeasurableSpace.{u2, u1} α β _inst_2 _inst_5) (borel.{max u1 u2} (Prod.{u2, u1} α β) (instTopologicalSpaceProd.{u2, u1} α β _inst_1 _inst_4))
-Case conversion may be inaccurate. Consider using '#align prod_le_borel_prod prod_le_borel_prodₓ'. -/
theorem prod_le_borel_prod : Prod.instMeasurableSpace ≤ borel (α × β) :=
by
rw [‹BorelSpace α›.measurable_eq, ‹BorelSpace β›.measurable_eq]
@@ -1452,46 +1161,22 @@ instance Pi.borelSpace {ι : Type _} {π : ι → Type _} [Countable ι] [∀ i,
#align pi.borel_space Pi.borelSpace
-/
-/- warning: prod.borel_space -> Prod.borelSpace is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u2} β] [_inst_5 : MeasurableSpace.{u2} β] [_inst_6 : BorelSpace.{u2} β _inst_4 _inst_5] [_inst_11 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] [_inst_12 : TopologicalSpace.SecondCountableTopology.{u2} β _inst_4], BorelSpace.{max u1 u2} (Prod.{u1, u2} α β) (Prod.topologicalSpace.{u1, u2} α β _inst_1 _inst_4) (Prod.instMeasurableSpace.{u1, u2} α β _inst_2 _inst_5)
-but is expected to have type
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u2} β] [_inst_5 : MeasurableSpace.{u2} β] [_inst_6 : BorelSpace.{u2} β _inst_4 _inst_5] [_inst_11 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] [_inst_12 : TopologicalSpace.SecondCountableTopology.{u2} β _inst_4], BorelSpace.{max u2 u1} (Prod.{u1, u2} α β) (instTopologicalSpaceProd.{u1, u2} α β _inst_1 _inst_4) (Prod.instMeasurableSpace.{u1, u2} α β _inst_2 _inst_5)
-Case conversion may be inaccurate. Consider using '#align prod.borel_space Prod.borelSpaceₓ'. -/
instance Prod.borelSpace [SecondCountableTopology α] [SecondCountableTopology β] :
BorelSpace (α × β) :=
⟨le_antisymm prod_le_borel_prod OpensMeasurableSpace.borel_le⟩
#align prod.borel_space Prod.borelSpace
-/- warning: embedding.measurable_embedding -> Embedding.measurableEmbedding is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u2} β] [_inst_5 : MeasurableSpace.{u2} β] [_inst_6 : BorelSpace.{u2} β _inst_4 _inst_5] {f : α -> β}, (Embedding.{u1, u2} α β _inst_1 _inst_4 f) -> (MeasurableSet.{u2} β _inst_5 (Set.range.{u2, succ u1} β α f)) -> (MeasurableEmbedding.{u1, u2} α β _inst_2 _inst_5 f)
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : MeasurableSpace.{u2} α] [_inst_3 : BorelSpace.{u2} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u1} β] [_inst_5 : MeasurableSpace.{u1} β] [_inst_6 : BorelSpace.{u1} β _inst_4 _inst_5] {f : α -> β}, (Embedding.{u2, u1} α β _inst_1 _inst_4 f) -> (MeasurableSet.{u1} β _inst_5 (Set.range.{u1, succ u2} β α f)) -> (MeasurableEmbedding.{u2, u1} α β _inst_2 _inst_5 f)
-Case conversion may be inaccurate. Consider using '#align embedding.measurable_embedding Embedding.measurableEmbeddingₓ'. -/
protected theorem Embedding.measurableEmbedding {f : α → β} (h₁ : Embedding f)
(h₂ : MeasurableSet (range f)) : MeasurableEmbedding f :=
show MeasurableEmbedding (coe ∘ (Homeomorph.ofEmbedding f h₁).toMeasurableEquiv) from
(MeasurableEmbedding.subtype_coe h₂).comp (MeasurableEquiv.measurableEmbedding _)
#align embedding.measurable_embedding Embedding.measurableEmbedding
-/- warning: closed_embedding.measurable_embedding -> ClosedEmbedding.measurableEmbedding is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u2} β] [_inst_5 : MeasurableSpace.{u2} β] [_inst_6 : BorelSpace.{u2} β _inst_4 _inst_5] {f : α -> β}, (ClosedEmbedding.{u1, u2} α β _inst_1 _inst_4 f) -> (MeasurableEmbedding.{u1, u2} α β _inst_2 _inst_5 f)
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : MeasurableSpace.{u2} α] [_inst_3 : BorelSpace.{u2} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u1} β] [_inst_5 : MeasurableSpace.{u1} β] [_inst_6 : BorelSpace.{u1} β _inst_4 _inst_5] {f : α -> β}, (ClosedEmbedding.{u2, u1} α β _inst_1 _inst_4 f) -> (MeasurableEmbedding.{u2, u1} α β _inst_2 _inst_5 f)
-Case conversion may be inaccurate. Consider using '#align closed_embedding.measurable_embedding ClosedEmbedding.measurableEmbeddingₓ'. -/
protected theorem ClosedEmbedding.measurableEmbedding {f : α → β} (h : ClosedEmbedding f) :
MeasurableEmbedding f :=
h.toEmbedding.MeasurableEmbedding h.closed_range.MeasurableSet
#align closed_embedding.measurable_embedding ClosedEmbedding.measurableEmbedding
-/- warning: open_embedding.measurable_embedding -> OpenEmbedding.measurableEmbedding is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u2} β] [_inst_5 : MeasurableSpace.{u2} β] [_inst_6 : BorelSpace.{u2} β _inst_4 _inst_5] {f : α -> β}, (OpenEmbedding.{u1, u2} α β _inst_1 _inst_4 f) -> (MeasurableEmbedding.{u1, u2} α β _inst_2 _inst_5 f)
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : MeasurableSpace.{u2} α] [_inst_3 : BorelSpace.{u2} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u1} β] [_inst_5 : MeasurableSpace.{u1} β] [_inst_6 : BorelSpace.{u1} β _inst_4 _inst_5] {f : α -> β}, (OpenEmbedding.{u2, u1} α β _inst_1 _inst_4 f) -> (MeasurableEmbedding.{u2, u1} α β _inst_2 _inst_5 f)
-Case conversion may be inaccurate. Consider using '#align open_embedding.measurable_embedding OpenEmbedding.measurableEmbeddingₓ'. -/
protected theorem OpenEmbedding.measurableEmbedding {f : α → β} (h : OpenEmbedding f) :
MeasurableEmbedding f :=
h.toEmbedding.MeasurableEmbedding h.open_range.MeasurableSet
@@ -1688,12 +1373,6 @@ theorem aemeasurable_restrict_of_antitoneOn [LinearOrder β] [OrderClosedTopolog
#align ae_measurable_restrict_of_antitone_on aemeasurable_restrict_of_antitoneOn
-/
-/- warning: measurable_set_of_mem_nhds_within_Ioi_aux -> measurableSet_of_mem_nhdsWithin_Ioi_aux is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_11 : LinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_11))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {s : Set.{u1} α}, (forall (x : α), (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) -> (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) s (nhdsWithin.{u1} α _inst_1 x (Set.Ioi.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_11)))) x)))) -> (forall (x : α), (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) -> (Exists.{succ u1} α (fun (y : α) => LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_11))))) x y))) -> (MeasurableSet.{u1} α _inst_2 s)
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_11 : LinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_11)))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {s : Set.{u1} α}, (forall (x : α), (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) -> (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) s (nhdsWithin.{u1} α _inst_1 x (Set.Ioi.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_11))))) x)))) -> (forall (x : α), (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) -> (Exists.{succ u1} α (fun (y : α) => LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_11)))))) x y))) -> (MeasurableSet.{u1} α _inst_2 s)
-Case conversion may be inaccurate. Consider using '#align measurable_set_of_mem_nhds_within_Ioi_aux measurableSet_of_mem_nhdsWithin_Ioi_auxₓ'. -/
theorem measurableSet_of_mem_nhdsWithin_Ioi_aux {s : Set α} (h : ∀ x ∈ s, s ∈ 𝓝[>] x)
(h' : ∀ x ∈ s, ∃ y, x < y) : MeasurableSet s :=
by
@@ -1744,12 +1423,6 @@ theorem measurableSet_of_mem_nhdsWithin_Ioi {s : Set α} (h : ∀ x ∈ s, s ∈
end LinearOrder
-/- warning: measurable.supr_Prop -> Measurable.iSup_Prop is a dubious translation:
-lean 3 declaration is
- forall {δ : Type.{u1}} [_inst_10 : MeasurableSpace.{u1} δ] {α : Type.{u2}} [_inst_11 : MeasurableSpace.{u2} α] [_inst_12 : CompleteLattice.{u2} α] (p : Prop) {f : δ -> α}, (Measurable.{u1, u2} δ α _inst_10 _inst_11 f) -> (Measurable.{u1, u2} δ α _inst_10 _inst_11 (fun (b : δ) => iSup.{u2, 0} α (ConditionallyCompleteLattice.toHasSup.{u2} α (CompleteLattice.toConditionallyCompleteLattice.{u2} α _inst_12)) p (fun (h : p) => f b)))
-but is expected to have type
- forall {δ : Type.{u1}} [_inst_10 : MeasurableSpace.{u1} δ] {α : Type.{u2}} [_inst_11 : MeasurableSpace.{u2} α] [_inst_12 : CompleteLattice.{u2} α] (p : Prop) {f : δ -> α}, (Measurable.{u1, u2} δ α _inst_10 _inst_11 f) -> (Measurable.{u1, u2} δ α _inst_10 _inst_11 (fun (b : δ) => iSup.{u2, 0} α (ConditionallyCompleteLattice.toSupSet.{u2} α (CompleteLattice.toConditionallyCompleteLattice.{u2} α _inst_12)) p (fun (h : p) => f b)))
-Case conversion may be inaccurate. Consider using '#align measurable.supr_Prop Measurable.iSup_Propₓ'. -/
@[measurability]
theorem Measurable.iSup_Prop {α} [MeasurableSpace α] [CompleteLattice α] (p : Prop) {f : δ → α}
(hf : Measurable f) : Measurable fun b => ⨆ h : p, f b :=
@@ -1757,12 +1430,6 @@ theorem Measurable.iSup_Prop {α} [MeasurableSpace α] [CompleteLattice α] (p :
convert measurable_const; funext; exact iSup_neg h
#align measurable.supr_Prop Measurable.iSup_Prop
-/- warning: measurable.infi_Prop -> Measurable.iInf_Prop is a dubious translation:
-lean 3 declaration is
- forall {δ : Type.{u1}} [_inst_10 : MeasurableSpace.{u1} δ] {α : Type.{u2}} [_inst_11 : MeasurableSpace.{u2} α] [_inst_12 : CompleteLattice.{u2} α] (p : Prop) {f : δ -> α}, (Measurable.{u1, u2} δ α _inst_10 _inst_11 f) -> (Measurable.{u1, u2} δ α _inst_10 _inst_11 (fun (b : δ) => iInf.{u2, 0} α (ConditionallyCompleteLattice.toHasInf.{u2} α (CompleteLattice.toConditionallyCompleteLattice.{u2} α _inst_12)) p (fun (h : p) => f b)))
-but is expected to have type
- forall {δ : Type.{u1}} [_inst_10 : MeasurableSpace.{u1} δ] {α : Type.{u2}} [_inst_11 : MeasurableSpace.{u2} α] [_inst_12 : CompleteLattice.{u2} α] (p : Prop) {f : δ -> α}, (Measurable.{u1, u2} δ α _inst_10 _inst_11 f) -> (Measurable.{u1, u2} δ α _inst_10 _inst_11 (fun (b : δ) => iInf.{u2, 0} α (ConditionallyCompleteLattice.toInfSet.{u2} α (CompleteLattice.toConditionallyCompleteLattice.{u2} α _inst_12)) p (fun (h : p) => f b)))
-Case conversion may be inaccurate. Consider using '#align measurable.infi_Prop Measurable.iInf_Propₓ'. -/
@[measurability]
theorem Measurable.iInf_Prop {α} [MeasurableSpace α] [CompleteLattice α] (p : Prop) {f : δ → α}
(hf : Measurable f) : Measurable fun b => ⨅ h : p, f b :=
@@ -1774,60 +1441,30 @@ section CompleteLinearOrder
variable [CompleteLinearOrder α] [OrderTopology α] [SecondCountableTopology α]
-/- warning: measurable_supr -> measurable_iSup is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : CompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Sort.{u3}} [_inst_14 : Countable.{u3} ι] {f : ι -> δ -> α}, (forall (i : ι), Measurable.{u2, u1} δ α _inst_10 _inst_2 (f i)) -> (Measurable.{u2, u1} δ α _inst_10 _inst_2 (fun (b : δ) => iSup.{u1, u3} α (ConditionallyCompleteLattice.toHasSup.{u1} α (CompleteLattice.toConditionallyCompleteLattice.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))) ι (fun (i : ι) => f i b)))
-but is expected to have type
- forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : CompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (OmegaCompletePartialOrder.toPartialOrder.{u1} α (CompleteLattice.instOmegaCompletePartialOrder.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Sort.{u3}} [_inst_14 : Countable.{u3} ι] {f : ι -> δ -> α}, (forall (i : ι), Measurable.{u2, u1} δ α _inst_10 _inst_2 (f i)) -> (Measurable.{u2, u1} δ α _inst_10 _inst_2 (fun (b : δ) => iSup.{u1, u3} α (ConditionallyCompleteLattice.toSupSet.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α (ConditionallyCompleteLinearOrderBot.toConditionallyCompleteLinearOrder.{u1} α (CompleteLinearOrder.toConditionallyCompleteLinearOrderBot.{u1} α _inst_11)))) ι (fun (i : ι) => f i b)))
-Case conversion may be inaccurate. Consider using '#align measurable_supr measurable_iSupₓ'. -/
@[measurability]
theorem measurable_iSup {ι} [Countable ι] {f : ι → δ → α} (hf : ∀ i, Measurable (f i)) :
Measurable fun b => ⨆ i, f i b :=
Measurable.isLUB hf fun b => isLUB_iSup
#align measurable_supr measurable_iSup
-/- warning: ae_measurable_supr -> aemeasurable_iSup is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : CompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Sort.{u3}} {μ : MeasureTheory.Measure.{u2} δ _inst_10} [_inst_14 : Countable.{u3} ι] {f : ι -> δ -> α}, (forall (i : ι), AEMeasurable.{u2, u1} δ α _inst_2 _inst_10 (f i) μ) -> (AEMeasurable.{u2, u1} δ α _inst_2 _inst_10 (fun (b : δ) => iSup.{u1, u3} α (ConditionallyCompleteLattice.toHasSup.{u1} α (CompleteLattice.toConditionallyCompleteLattice.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))) ι (fun (i : ι) => f i b)) μ)
-but is expected to have type
- forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : CompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (OmegaCompletePartialOrder.toPartialOrder.{u1} α (CompleteLattice.instOmegaCompletePartialOrder.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Sort.{u3}} {μ : MeasureTheory.Measure.{u2} δ _inst_10} [_inst_14 : Countable.{u3} ι] {f : ι -> δ -> α}, (forall (i : ι), AEMeasurable.{u2, u1} δ α _inst_2 _inst_10 (f i) μ) -> (AEMeasurable.{u2, u1} δ α _inst_2 _inst_10 (fun (b : δ) => iSup.{u1, u3} α (ConditionallyCompleteLattice.toSupSet.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α (ConditionallyCompleteLinearOrderBot.toConditionallyCompleteLinearOrder.{u1} α (CompleteLinearOrder.toConditionallyCompleteLinearOrderBot.{u1} α _inst_11)))) ι (fun (i : ι) => f i b)) μ)
-Case conversion may be inaccurate. Consider using '#align ae_measurable_supr aemeasurable_iSupₓ'. -/
@[measurability]
theorem aemeasurable_iSup {ι} {μ : Measure δ} [Countable ι] {f : ι → δ → α}
(hf : ∀ i, AEMeasurable (f i) μ) : AEMeasurable (fun b => ⨆ i, f i b) μ :=
AEMeasurable.isLUB hf <| ae_of_all μ fun b => isLUB_iSup
#align ae_measurable_supr aemeasurable_iSup
-/- warning: measurable_infi -> measurable_iInf is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : CompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Sort.{u3}} [_inst_14 : Countable.{u3} ι] {f : ι -> δ -> α}, (forall (i : ι), Measurable.{u2, u1} δ α _inst_10 _inst_2 (f i)) -> (Measurable.{u2, u1} δ α _inst_10 _inst_2 (fun (b : δ) => iInf.{u1, u3} α (ConditionallyCompleteLattice.toHasInf.{u1} α (CompleteLattice.toConditionallyCompleteLattice.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))) ι (fun (i : ι) => f i b)))
-but is expected to have type
- forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : CompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (OmegaCompletePartialOrder.toPartialOrder.{u1} α (CompleteLattice.instOmegaCompletePartialOrder.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Sort.{u3}} [_inst_14 : Countable.{u3} ι] {f : ι -> δ -> α}, (forall (i : ι), Measurable.{u2, u1} δ α _inst_10 _inst_2 (f i)) -> (Measurable.{u2, u1} δ α _inst_10 _inst_2 (fun (b : δ) => iInf.{u1, u3} α (ConditionallyCompleteLattice.toInfSet.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α (ConditionallyCompleteLinearOrderBot.toConditionallyCompleteLinearOrder.{u1} α (CompleteLinearOrder.toConditionallyCompleteLinearOrderBot.{u1} α _inst_11)))) ι (fun (i : ι) => f i b)))
-Case conversion may be inaccurate. Consider using '#align measurable_infi measurable_iInfₓ'. -/
@[measurability]
theorem measurable_iInf {ι} [Countable ι] {f : ι → δ → α} (hf : ∀ i, Measurable (f i)) :
Measurable fun b => ⨅ i, f i b :=
Measurable.isGLB hf fun b => isGLB_iInf
#align measurable_infi measurable_iInf
-/- warning: ae_measurable_infi -> aemeasurable_iInf is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : CompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Sort.{u3}} {μ : MeasureTheory.Measure.{u2} δ _inst_10} [_inst_14 : Countable.{u3} ι] {f : ι -> δ -> α}, (forall (i : ι), AEMeasurable.{u2, u1} δ α _inst_2 _inst_10 (f i) μ) -> (AEMeasurable.{u2, u1} δ α _inst_2 _inst_10 (fun (b : δ) => iInf.{u1, u3} α (ConditionallyCompleteLattice.toHasInf.{u1} α (CompleteLattice.toConditionallyCompleteLattice.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))) ι (fun (i : ι) => f i b)) μ)
-but is expected to have type
- forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : CompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (OmegaCompletePartialOrder.toPartialOrder.{u1} α (CompleteLattice.instOmegaCompletePartialOrder.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Sort.{u3}} {μ : MeasureTheory.Measure.{u2} δ _inst_10} [_inst_14 : Countable.{u3} ι] {f : ι -> δ -> α}, (forall (i : ι), AEMeasurable.{u2, u1} δ α _inst_2 _inst_10 (f i) μ) -> (AEMeasurable.{u2, u1} δ α _inst_2 _inst_10 (fun (b : δ) => iInf.{u1, u3} α (ConditionallyCompleteLattice.toInfSet.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α (ConditionallyCompleteLinearOrderBot.toConditionallyCompleteLinearOrder.{u1} α (CompleteLinearOrder.toConditionallyCompleteLinearOrderBot.{u1} α _inst_11)))) ι (fun (i : ι) => f i b)) μ)
-Case conversion may be inaccurate. Consider using '#align ae_measurable_infi aemeasurable_iInfₓ'. -/
@[measurability]
theorem aemeasurable_iInf {ι} {μ : Measure δ} [Countable ι] {f : ι → δ → α}
(hf : ∀ i, AEMeasurable (f i) μ) : AEMeasurable (fun b => ⨅ i, f i b) μ :=
AEMeasurable.isGLB hf <| ae_of_all μ fun b => isGLB_iInf
#align ae_measurable_infi aemeasurable_iInf
-/- warning: measurable_bsupr -> measurable_biSup is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : CompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Type.{u3}} (s : Set.{u3} ι) {f : ι -> δ -> α}, (Set.Countable.{u3} ι s) -> (forall (i : ι), Measurable.{u2, u1} δ α _inst_10 _inst_2 (f i)) -> (Measurable.{u2, u1} δ α _inst_10 _inst_2 (fun (b : δ) => iSup.{u1, succ u3} α (ConditionallyCompleteLattice.toHasSup.{u1} α (CompleteLattice.toConditionallyCompleteLattice.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))) ι (fun (i : ι) => iSup.{u1, 0} α (ConditionallyCompleteLattice.toHasSup.{u1} α (CompleteLattice.toConditionallyCompleteLattice.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))) (Membership.Mem.{u3, u3} ι (Set.{u3} ι) (Set.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Set.{u3} ι) (Set.hasMem.{u3} ι) i s) => f i b))))
-but is expected to have type
- forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : CompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (OmegaCompletePartialOrder.toPartialOrder.{u1} α (CompleteLattice.instOmegaCompletePartialOrder.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Type.{u3}} (s : Set.{u3} ι) {f : ι -> δ -> α}, (Set.Countable.{u3} ι s) -> (forall (i : ι), Measurable.{u2, u1} δ α _inst_10 _inst_2 (f i)) -> (Measurable.{u2, u1} δ α _inst_10 _inst_2 (fun (b : δ) => iSup.{u1, succ u3} α (ConditionallyCompleteLattice.toSupSet.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α (ConditionallyCompleteLinearOrderBot.toConditionallyCompleteLinearOrder.{u1} α (CompleteLinearOrder.toConditionallyCompleteLinearOrderBot.{u1} α _inst_11)))) ι (fun (i : ι) => iSup.{u1, 0} α (ConditionallyCompleteLattice.toSupSet.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α (ConditionallyCompleteLinearOrderBot.toConditionallyCompleteLinearOrder.{u1} α (CompleteLinearOrder.toConditionallyCompleteLinearOrderBot.{u1} α _inst_11)))) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i b))))
-Case conversion may be inaccurate. Consider using '#align measurable_bsupr measurable_biSupₓ'. -/
theorem measurable_biSup {ι} (s : Set ι) {f : ι → δ → α} (hs : s.Countable)
(hf : ∀ i, Measurable (f i)) : Measurable fun b => ⨆ i ∈ s, f i b :=
by
@@ -1835,12 +1472,6 @@ theorem measurable_biSup {ι} (s : Set ι) {f : ι → δ → α} (hs : s.Counta
exact measurable_iSup fun i => hf i
#align measurable_bsupr measurable_biSup
-/- warning: ae_measurable_bsupr -> aemeasurable_biSup is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : CompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Type.{u3}} {μ : MeasureTheory.Measure.{u2} δ _inst_10} (s : Set.{u3} ι) {f : ι -> δ -> α}, (Set.Countable.{u3} ι s) -> (forall (i : ι), AEMeasurable.{u2, u1} δ α _inst_2 _inst_10 (f i) μ) -> (AEMeasurable.{u2, u1} δ α _inst_2 _inst_10 (fun (b : δ) => iSup.{u1, succ u3} α (ConditionallyCompleteLattice.toHasSup.{u1} α (CompleteLattice.toConditionallyCompleteLattice.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))) ι (fun (i : ι) => iSup.{u1, 0} α (ConditionallyCompleteLattice.toHasSup.{u1} α (CompleteLattice.toConditionallyCompleteLattice.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))) (Membership.Mem.{u3, u3} ι (Set.{u3} ι) (Set.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Set.{u3} ι) (Set.hasMem.{u3} ι) i s) => f i b))) μ)
-but is expected to have type
- forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : CompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (OmegaCompletePartialOrder.toPartialOrder.{u1} α (CompleteLattice.instOmegaCompletePartialOrder.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Type.{u3}} {μ : MeasureTheory.Measure.{u2} δ _inst_10} (s : Set.{u3} ι) {f : ι -> δ -> α}, (Set.Countable.{u3} ι s) -> (forall (i : ι), AEMeasurable.{u2, u1} δ α _inst_2 _inst_10 (f i) μ) -> (AEMeasurable.{u2, u1} δ α _inst_2 _inst_10 (fun (b : δ) => iSup.{u1, succ u3} α (ConditionallyCompleteLattice.toSupSet.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α (ConditionallyCompleteLinearOrderBot.toConditionallyCompleteLinearOrder.{u1} α (CompleteLinearOrder.toConditionallyCompleteLinearOrderBot.{u1} α _inst_11)))) ι (fun (i : ι) => iSup.{u1, 0} α (ConditionallyCompleteLattice.toSupSet.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α (ConditionallyCompleteLinearOrderBot.toConditionallyCompleteLinearOrder.{u1} α (CompleteLinearOrder.toConditionallyCompleteLinearOrderBot.{u1} α _inst_11)))) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i b))) μ)
-Case conversion may be inaccurate. Consider using '#align ae_measurable_bsupr aemeasurable_biSupₓ'. -/
theorem aemeasurable_biSup {ι} {μ : Measure δ} (s : Set ι) {f : ι → δ → α} (hs : s.Countable)
(hf : ∀ i, AEMeasurable (f i) μ) : AEMeasurable (fun b => ⨆ i ∈ s, f i b) μ :=
by
@@ -1849,12 +1480,6 @@ theorem aemeasurable_biSup {ι} {μ : Measure δ} (s : Set ι) {f : ι → δ
exact aemeasurable_iSup fun i => hf i
#align ae_measurable_bsupr aemeasurable_biSup
-/- warning: measurable_binfi -> measurable_biInf is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : CompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Type.{u3}} (s : Set.{u3} ι) {f : ι -> δ -> α}, (Set.Countable.{u3} ι s) -> (forall (i : ι), Measurable.{u2, u1} δ α _inst_10 _inst_2 (f i)) -> (Measurable.{u2, u1} δ α _inst_10 _inst_2 (fun (b : δ) => iInf.{u1, succ u3} α (ConditionallyCompleteLattice.toHasInf.{u1} α (CompleteLattice.toConditionallyCompleteLattice.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))) ι (fun (i : ι) => iInf.{u1, 0} α (ConditionallyCompleteLattice.toHasInf.{u1} α (CompleteLattice.toConditionallyCompleteLattice.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))) (Membership.Mem.{u3, u3} ι (Set.{u3} ι) (Set.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Set.{u3} ι) (Set.hasMem.{u3} ι) i s) => f i b))))
-but is expected to have type
- forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : CompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (OmegaCompletePartialOrder.toPartialOrder.{u1} α (CompleteLattice.instOmegaCompletePartialOrder.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Type.{u3}} (s : Set.{u3} ι) {f : ι -> δ -> α}, (Set.Countable.{u3} ι s) -> (forall (i : ι), Measurable.{u2, u1} δ α _inst_10 _inst_2 (f i)) -> (Measurable.{u2, u1} δ α _inst_10 _inst_2 (fun (b : δ) => iInf.{u1, succ u3} α (ConditionallyCompleteLattice.toInfSet.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α (ConditionallyCompleteLinearOrderBot.toConditionallyCompleteLinearOrder.{u1} α (CompleteLinearOrder.toConditionallyCompleteLinearOrderBot.{u1} α _inst_11)))) ι (fun (i : ι) => iInf.{u1, 0} α (ConditionallyCompleteLattice.toInfSet.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α (ConditionallyCompleteLinearOrderBot.toConditionallyCompleteLinearOrder.{u1} α (CompleteLinearOrder.toConditionallyCompleteLinearOrderBot.{u1} α _inst_11)))) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i b))))
-Case conversion may be inaccurate. Consider using '#align measurable_binfi measurable_biInfₓ'. -/
theorem measurable_biInf {ι} (s : Set ι) {f : ι → δ → α} (hs : s.Countable)
(hf : ∀ i, Measurable (f i)) : Measurable fun b => ⨅ i ∈ s, f i b :=
by
@@ -1862,12 +1487,6 @@ theorem measurable_biInf {ι} (s : Set ι) {f : ι → δ → α} (hs : s.Counta
exact measurable_iInf fun i => hf i
#align measurable_binfi measurable_biInf
-/- warning: ae_measurable_binfi -> aemeasurable_biInf is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : CompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Type.{u3}} {μ : MeasureTheory.Measure.{u2} δ _inst_10} (s : Set.{u3} ι) {f : ι -> δ -> α}, (Set.Countable.{u3} ι s) -> (forall (i : ι), AEMeasurable.{u2, u1} δ α _inst_2 _inst_10 (f i) μ) -> (AEMeasurable.{u2, u1} δ α _inst_2 _inst_10 (fun (b : δ) => iInf.{u1, succ u3} α (ConditionallyCompleteLattice.toHasInf.{u1} α (CompleteLattice.toConditionallyCompleteLattice.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))) ι (fun (i : ι) => iInf.{u1, 0} α (ConditionallyCompleteLattice.toHasInf.{u1} α (CompleteLattice.toConditionallyCompleteLattice.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))) (Membership.Mem.{u3, u3} ι (Set.{u3} ι) (Set.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Set.{u3} ι) (Set.hasMem.{u3} ι) i s) => f i b))) μ)
-but is expected to have type
- forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : CompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (OmegaCompletePartialOrder.toPartialOrder.{u1} α (CompleteLattice.instOmegaCompletePartialOrder.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Type.{u3}} {μ : MeasureTheory.Measure.{u2} δ _inst_10} (s : Set.{u3} ι) {f : ι -> δ -> α}, (Set.Countable.{u3} ι s) -> (forall (i : ι), AEMeasurable.{u2, u1} δ α _inst_2 _inst_10 (f i) μ) -> (AEMeasurable.{u2, u1} δ α _inst_2 _inst_10 (fun (b : δ) => iInf.{u1, succ u3} α (ConditionallyCompleteLattice.toInfSet.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α (ConditionallyCompleteLinearOrderBot.toConditionallyCompleteLinearOrder.{u1} α (CompleteLinearOrder.toConditionallyCompleteLinearOrderBot.{u1} α _inst_11)))) ι (fun (i : ι) => iInf.{u1, 0} α (ConditionallyCompleteLattice.toInfSet.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α (ConditionallyCompleteLinearOrderBot.toConditionallyCompleteLinearOrder.{u1} α (CompleteLinearOrder.toConditionallyCompleteLinearOrderBot.{u1} α _inst_11)))) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i b))) μ)
-Case conversion may be inaccurate. Consider using '#align ae_measurable_binfi aemeasurable_biInfₓ'. -/
theorem aemeasurable_biInf {ι} {μ : Measure δ} (s : Set ι) {f : ι → δ → α} (hs : s.Countable)
(hf : ∀ i, AEMeasurable (f i) μ) : AEMeasurable (fun b => ⨅ i ∈ s, f i b) μ :=
by
@@ -1876,12 +1495,6 @@ theorem aemeasurable_biInf {ι} {μ : Measure δ} (s : Set ι) {f : ι → δ
exact aemeasurable_iInf fun i => hf i
#align ae_measurable_binfi aemeasurable_biInf
-/- warning: measurable_liminf' -> measurable_liminf' is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : CompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Type.{u3}} {ι' : Type.{u4}} {f : ι -> δ -> α} {u : Filter.{u3} ι}, (forall (i : ι), Measurable.{u2, u1} δ α _inst_10 _inst_2 (f i)) -> (forall {p : ι' -> Prop} {s : ι' -> (Set.{u3} ι)}, (Filter.HasCountableBasis.{u3, u4} ι ι' u p s) -> (forall (i : ι'), Set.Countable.{u3} ι (s i)) -> (Measurable.{u2, u1} δ α _inst_10 _inst_2 (fun (x : δ) => Filter.liminf.{u1, u3} α ι (CompleteLattice.toConditionallyCompleteLattice.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11)) (fun (i : ι) => f i x) u)))
-but is expected to have type
- forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : CompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (OmegaCompletePartialOrder.toPartialOrder.{u1} α (CompleteLattice.instOmegaCompletePartialOrder.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Type.{u4}} {ι' : Type.{u3}} {f : ι -> δ -> α} {u : Filter.{u4} ι}, (forall (i : ι), Measurable.{u2, u1} δ α _inst_10 _inst_2 (f i)) -> (forall {p : ι' -> Prop} {s : ι' -> (Set.{u4} ι)}, (Filter.HasCountableBasis.{u4, u3} ι ι' u p s) -> (forall (i : ι'), Set.Countable.{u4} ι (s i)) -> (Measurable.{u2, u1} δ α _inst_10 _inst_2 (fun (x : δ) => Filter.liminf.{u1, u4} α ι (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α (ConditionallyCompleteLinearOrderBot.toConditionallyCompleteLinearOrder.{u1} α (CompleteLinearOrder.toConditionallyCompleteLinearOrderBot.{u1} α _inst_11))) (fun (i : ι) => f i x) u)))
-Case conversion may be inaccurate. Consider using '#align measurable_liminf' measurable_liminf'ₓ'. -/
/-- `liminf` over a general filter is measurable. See `measurable_liminf` for the version over `ℕ`.
-/
theorem measurable_liminf' {ι ι'} {f : ι → δ → α} {u : Filter ι} (hf : ∀ i, Measurable (f i))
@@ -1893,12 +1506,6 @@ theorem measurable_liminf' {ι ι'} {f : ι → δ → α} {u : Filter ι} (hf :
exact fun i => measurable_biInf _ (hs i) hf
#align measurable_liminf' measurable_liminf'
-/- warning: measurable_limsup' -> measurable_limsup' is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : CompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Type.{u3}} {ι' : Type.{u4}} {f : ι -> δ -> α} {u : Filter.{u3} ι}, (forall (i : ι), Measurable.{u2, u1} δ α _inst_10 _inst_2 (f i)) -> (forall {p : ι' -> Prop} {s : ι' -> (Set.{u3} ι)}, (Filter.HasCountableBasis.{u3, u4} ι ι' u p s) -> (forall (i : ι'), Set.Countable.{u3} ι (s i)) -> (Measurable.{u2, u1} δ α _inst_10 _inst_2 (fun (x : δ) => Filter.limsup.{u1, u3} α ι (CompleteLattice.toConditionallyCompleteLattice.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11)) (fun (i : ι) => f i x) u)))
-but is expected to have type
- forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : CompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (OmegaCompletePartialOrder.toPartialOrder.{u1} α (CompleteLattice.instOmegaCompletePartialOrder.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Type.{u4}} {ι' : Type.{u3}} {f : ι -> δ -> α} {u : Filter.{u4} ι}, (forall (i : ι), Measurable.{u2, u1} δ α _inst_10 _inst_2 (f i)) -> (forall {p : ι' -> Prop} {s : ι' -> (Set.{u4} ι)}, (Filter.HasCountableBasis.{u4, u3} ι ι' u p s) -> (forall (i : ι'), Set.Countable.{u4} ι (s i)) -> (Measurable.{u2, u1} δ α _inst_10 _inst_2 (fun (x : δ) => Filter.limsup.{u1, u4} α ι (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α (ConditionallyCompleteLinearOrderBot.toConditionallyCompleteLinearOrder.{u1} α (CompleteLinearOrder.toConditionallyCompleteLinearOrderBot.{u1} α _inst_11))) (fun (i : ι) => f i x) u)))
-Case conversion may be inaccurate. Consider using '#align measurable_limsup' measurable_limsup'ₓ'. -/
/-- `limsup` over a general filter is measurable. See `measurable_limsup` for the version over `ℕ`.
-/
theorem measurable_limsup' {ι ι'} {f : ι → δ → α} {u : Filter ι} (hf : ∀ i, Measurable (f i))
@@ -1936,12 +1543,6 @@ section ConditionallyCompleteLinearOrder
variable [ConditionallyCompleteLinearOrder α] [OrderTopology α] [SecondCountableTopology α]
-/- warning: measurable_cSup -> measurable_cSup is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : ConditionallyCompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11)))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Type.{u3}} {f : ι -> δ -> α} {s : Set.{u3} ι}, (Set.Countable.{u3} ι s) -> (forall (i : ι), Measurable.{u2, u1} δ α _inst_10 _inst_2 (f i)) -> (forall (x : δ), BddAbove.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11))))) (Set.image.{u3, u1} ι α (fun (i : ι) => f i x) s)) -> (Measurable.{u2, u1} δ α _inst_10 _inst_2 (fun (x : δ) => SupSet.sSup.{u1} α (ConditionallyCompleteLattice.toHasSup.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11)) (Set.image.{u3, u1} ι α (fun (i : ι) => f i x) s)))
-but is expected to have type
- forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : ConditionallyCompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11)))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Type.{u3}} {f : ι -> δ -> α} {s : Set.{u3} ι}, (Set.Countable.{u3} ι s) -> (forall (i : ι), Measurable.{u2, u1} δ α _inst_10 _inst_2 (f i)) -> (forall (x : δ), BddAbove.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11))))) (Set.image.{u3, u1} ι α (fun (i : ι) => f i x) s)) -> (Measurable.{u2, u1} δ α _inst_10 _inst_2 (fun (x : δ) => SupSet.sSup.{u1} α (ConditionallyCompleteLattice.toSupSet.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11)) (Set.image.{u3, u1} ι α (fun (i : ι) => f i x) s)))
-Case conversion may be inaccurate. Consider using '#align measurable_cSup measurable_cSupₓ'. -/
theorem measurable_cSup {ι} {f : ι → δ → α} {s : Set ι} (hs : s.Countable)
(hf : ∀ i, Measurable (f i)) (bdd : ∀ x, BddAbove ((fun i => f i x) '' s)) :
Measurable fun x => sSup ((fun i => f i x) '' s) :=
@@ -1953,24 +1554,12 @@ theorem measurable_cSup {ι} {f : ι → δ → α} {s : Set ι} (hs : s.Countab
exact MeasurableSet.biInter hs fun i hi => measurableSet_le (hf i) measurable_const
#align measurable_cSup measurable_cSup
-/- warning: measurable_cInf -> measurable_cInf is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : ConditionallyCompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11)))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Type.{u3}} {f : ι -> δ -> α} {s : Set.{u3} ι}, (Set.Countable.{u3} ι s) -> (forall (i : ι), Measurable.{u2, u1} δ α _inst_10 _inst_2 (f i)) -> (forall (x : δ), BddBelow.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11))))) (Set.image.{u3, u1} ι α (fun (i : ι) => f i x) s)) -> (Measurable.{u2, u1} δ α _inst_10 _inst_2 (fun (x : δ) => InfSet.sInf.{u1} α (ConditionallyCompleteLattice.toHasInf.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11)) (Set.image.{u3, u1} ι α (fun (i : ι) => f i x) s)))
-but is expected to have type
- forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : ConditionallyCompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11)))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Type.{u3}} {f : ι -> δ -> α} {s : Set.{u3} ι}, (Set.Countable.{u3} ι s) -> (forall (i : ι), Measurable.{u2, u1} δ α _inst_10 _inst_2 (f i)) -> (forall (x : δ), BddBelow.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11))))) (Set.image.{u3, u1} ι α (fun (i : ι) => f i x) s)) -> (Measurable.{u2, u1} δ α _inst_10 _inst_2 (fun (x : δ) => InfSet.sInf.{u1} α (ConditionallyCompleteLattice.toInfSet.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11)) (Set.image.{u3, u1} ι α (fun (i : ι) => f i x) s)))
-Case conversion may be inaccurate. Consider using '#align measurable_cInf measurable_cInfₓ'. -/
theorem measurable_cInf {ι} {f : ι → δ → α} {s : Set ι} (hs : s.Countable)
(hf : ∀ i, Measurable (f i)) (bdd : ∀ x, BddBelow ((fun i => f i x) '' s)) :
Measurable fun x => sInf ((fun i => f i x) '' s) :=
@measurable_cSup αᵒᵈ _ _ _ _ _ _ _ _ _ _ _ hs hf bdd
#align measurable_cInf measurable_cInf
-/- warning: measurable_csupr -> measurable_ciSup is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : ConditionallyCompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11)))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Type.{u3}} [_inst_14 : Countable.{succ u3} ι] {f : ι -> δ -> α}, (forall (i : ι), Measurable.{u2, u1} δ α _inst_10 _inst_2 (f i)) -> (forall (x : δ), BddAbove.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11))))) (Set.range.{u1, succ u3} α ι (fun (i : ι) => f i x))) -> (Measurable.{u2, u1} δ α _inst_10 _inst_2 (fun (x : δ) => iSup.{u1, succ u3} α (ConditionallyCompleteLattice.toHasSup.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11)) ι (fun (i : ι) => f i x)))
-but is expected to have type
- forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : ConditionallyCompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11)))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Type.{u3}} [_inst_14 : Countable.{succ u3} ι] {f : ι -> δ -> α}, (forall (i : ι), Measurable.{u2, u1} δ α _inst_10 _inst_2 (f i)) -> (forall (x : δ), BddAbove.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11))))) (Set.range.{u1, succ u3} α ι (fun (i : ι) => f i x))) -> (Measurable.{u2, u1} δ α _inst_10 _inst_2 (fun (x : δ) => iSup.{u1, succ u3} α (ConditionallyCompleteLattice.toSupSet.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11)) ι (fun (i : ι) => f i x)))
-Case conversion may be inaccurate. Consider using '#align measurable_csupr measurable_ciSupₓ'. -/
theorem measurable_ciSup {ι : Type _} [Countable ι] {f : ι → δ → α} (hf : ∀ i, Measurable (f i))
(bdd : ∀ x, BddAbove (range fun i => f i x)) : Measurable fun x => ⨆ i, f i x :=
by
@@ -1979,12 +1568,6 @@ theorem measurable_ciSup {ι : Type _} [Countable ι] {f : ι → δ → α} (hf
refine' measurable_cSup countable_univ hf bdd
#align measurable_csupr measurable_ciSup
-/- warning: measurable_cinfi -> measurable_ciInf is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : ConditionallyCompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11)))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Type.{u3}} [_inst_14 : Countable.{succ u3} ι] {f : ι -> δ -> α}, (forall (i : ι), Measurable.{u2, u1} δ α _inst_10 _inst_2 (f i)) -> (forall (x : δ), BddBelow.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11))))) (Set.range.{u1, succ u3} α ι (fun (i : ι) => f i x))) -> (Measurable.{u2, u1} δ α _inst_10 _inst_2 (fun (x : δ) => iInf.{u1, succ u3} α (ConditionallyCompleteLattice.toHasInf.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11)) ι (fun (i : ι) => f i x)))
-but is expected to have type
- forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : ConditionallyCompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11)))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Type.{u3}} [_inst_14 : Countable.{succ u3} ι] {f : ι -> δ -> α}, (forall (i : ι), Measurable.{u2, u1} δ α _inst_10 _inst_2 (f i)) -> (forall (x : δ), BddBelow.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11))))) (Set.range.{u1, succ u3} α ι (fun (i : ι) => f i x))) -> (Measurable.{u2, u1} δ α _inst_10 _inst_2 (fun (x : δ) => iInf.{u1, succ u3} α (ConditionallyCompleteLattice.toInfSet.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11)) ι (fun (i : ι) => f i x)))
-Case conversion may be inaccurate. Consider using '#align measurable_cinfi measurable_ciInfₓ'. -/
theorem measurable_ciInf {ι : Type _} [Countable ι] {f : ι → δ → α} (hf : ∀ i, Measurable (f i))
(bdd : ∀ x, BddBelow (range fun i => f i x)) : Measurable fun x => ⨅ i, f i x :=
@measurable_ciSup αᵒᵈ _ _ _ _ _ _ _ _ _ _ _ hf bdd
@@ -2002,12 +1585,6 @@ def Homemorph.toMeasurableEquiv (h : α ≃ₜ β) : α ≃ᵐ β
#align homemorph.to_measurable_equiv Homemorph.toMeasurableEquiv
-/
-/- warning: is_finite_measure_on_compacts.map -> IsFiniteMeasureOnCompacts.map is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {m0 : MeasurableSpace.{u1} α} [_inst_11 : TopologicalSpace.{u1} α] [_inst_12 : OpensMeasurableSpace.{u1} α _inst_11 m0] {β : Type.{u2}} [_inst_13 : MeasurableSpace.{u2} β] [_inst_14 : TopologicalSpace.{u2} β] [_inst_15 : BorelSpace.{u2} β _inst_14 _inst_13] [_inst_16 : T2Space.{u2} β _inst_14] (μ : MeasureTheory.Measure.{u1} α m0) [_inst_17 : MeasureTheory.FiniteMeasureOnCompacts.{u1} α m0 _inst_11 μ] (f : Homeomorph.{u1, u2} α β _inst_11 _inst_14), MeasureTheory.FiniteMeasureOnCompacts.{u2} β _inst_13 _inst_14 (MeasureTheory.Measure.map.{u1, u2} α β _inst_13 m0 (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (Homeomorph.{u1, u2} α β _inst_11 _inst_14) (fun (_x : Homeomorph.{u1, u2} α β _inst_11 _inst_14) => α -> β) (Homeomorph.hasCoeToFun.{u1, u2} α β _inst_11 _inst_14) f) μ)
-but is expected to have type
- forall {α : Type.{u2}} {m0 : MeasurableSpace.{u2} α} [_inst_11 : TopologicalSpace.{u2} α] [_inst_12 : OpensMeasurableSpace.{u2} α _inst_11 m0] {β : Type.{u1}} [_inst_13 : MeasurableSpace.{u1} β] [_inst_14 : TopologicalSpace.{u1} β] [_inst_15 : BorelSpace.{u1} β _inst_14 _inst_13] [_inst_16 : T2Space.{u1} β _inst_14] (μ : MeasureTheory.Measure.{u2} α m0) [_inst_17 : MeasureTheory.FiniteMeasureOnCompacts.{u2} α m0 _inst_11 μ] (f : Homeomorph.{u2, u1} α β _inst_11 _inst_14), MeasureTheory.FiniteMeasureOnCompacts.{u1} β _inst_13 _inst_14 (MeasureTheory.Measure.map.{u2, u1} α β _inst_13 m0 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Homeomorph.{u2, u1} α β _inst_11 _inst_14) α (fun (_x : α) => β) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (Homeomorph.{u2, u1} α β _inst_11 _inst_14) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (Homeomorph.{u2, u1} α β _inst_11 _inst_14) α β (Homeomorph.instEquivLikeHomeomorph.{u2, u1} α β _inst_11 _inst_14))) f) μ)
-Case conversion may be inaccurate. Consider using '#align is_finite_measure_on_compacts.map IsFiniteMeasureOnCompacts.mapₓ'. -/
protected theorem IsFiniteMeasureOnCompacts.map {α : Type _} {m0 : MeasurableSpace α}
[TopologicalSpace α] [OpensMeasurableSpace α] {β : Type _} [MeasurableSpace β]
[TopologicalSpace β] [BorelSpace β] [T2Space β] (μ : Measure α) [FiniteMeasureOnCompacts μ]
@@ -2021,52 +1598,22 @@ protected theorem IsFiniteMeasureOnCompacts.map {α : Type _} {m0 : MeasurableSp
end BorelSpace
-/- warning: empty.borel_space -> Empty.borelSpace is a dubious translation:
-lean 3 declaration is
- BorelSpace.{0} Empty Empty.topologicalSpace Empty.instMeasurableSpace
-but is expected to have type
- BorelSpace.{0} Empty instTopologicalSpaceEmpty Empty.instMeasurableSpace
-Case conversion may be inaccurate. Consider using '#align empty.borel_space Empty.borelSpaceₓ'. -/
instance Empty.borelSpace : BorelSpace Empty :=
⟨borel_eq_top_of_discrete.symm⟩
#align empty.borel_space Empty.borelSpace
-/- warning: unit.borel_space -> Unit.borelSpace is a dubious translation:
-lean 3 declaration is
- BorelSpace.{0} Unit PUnit.topologicalSpace.{0} PUnit.instMeasurableSpace.{0}
-but is expected to have type
- BorelSpace.{0} Unit instTopologicalSpacePUnit.{0} PUnit.instMeasurableSpace.{0}
-Case conversion may be inaccurate. Consider using '#align unit.borel_space Unit.borelSpaceₓ'. -/
instance Unit.borelSpace : BorelSpace Unit :=
⟨borel_eq_top_of_discrete.symm⟩
#align unit.borel_space Unit.borelSpace
-/- warning: bool.borel_space -> Bool.borelSpace is a dubious translation:
-lean 3 declaration is
- BorelSpace.{0} Bool Bool.topologicalSpace Bool.instMeasurableSpace
-but is expected to have type
- BorelSpace.{0} Bool instTopologicalSpaceBool Bool.instMeasurableSpace
-Case conversion may be inaccurate. Consider using '#align bool.borel_space Bool.borelSpaceₓ'. -/
instance Bool.borelSpace : BorelSpace Bool :=
⟨borel_eq_top_of_discrete.symm⟩
#align bool.borel_space Bool.borelSpace
-/- warning: nat.borel_space -> Nat.borelSpace is a dubious translation:
-lean 3 declaration is
- BorelSpace.{0} Nat Nat.topologicalSpace Nat.instMeasurableSpace
-but is expected to have type
- BorelSpace.{0} Nat instTopologicalSpaceNat Nat.instMeasurableSpace
-Case conversion may be inaccurate. Consider using '#align nat.borel_space Nat.borelSpaceₓ'. -/
instance Nat.borelSpace : BorelSpace ℕ :=
⟨borel_eq_top_of_discrete.symm⟩
#align nat.borel_space Nat.borelSpace
-/- warning: int.borel_space -> Int.borelSpace is a dubious translation:
-lean 3 declaration is
- BorelSpace.{0} Int Int.topologicalSpace Int.instMeasurableSpace
-but is expected to have type
- BorelSpace.{0} Int instTopologicalSpaceInt Int.instMeasurableSpace
-Case conversion may be inaccurate. Consider using '#align int.borel_space Int.borelSpaceₓ'. -/
instance Int.borelSpace : BorelSpace ℤ :=
⟨borel_eq_top_of_discrete.symm⟩
#align int.borel_space Int.borelSpace
@@ -2097,12 +1644,6 @@ instance NNReal.measurableSpace : MeasurableSpace ℝ≥0 :=
#align nnreal.measurable_space NNReal.measurableSpace
-/
-/- warning: nnreal.borel_space -> NNReal.borelSpace is a dubious translation:
-lean 3 declaration is
- BorelSpace.{0} NNReal NNReal.topologicalSpace NNReal.measurableSpace
-but is expected to have type
- BorelSpace.{0} NNReal NNReal.instTopologicalSpaceNNReal NNReal.measurableSpace
-Case conversion may be inaccurate. Consider using '#align nnreal.borel_space NNReal.borelSpaceₓ'. -/
instance NNReal.borelSpace : BorelSpace ℝ≥0 :=
Subtype.borelSpace _
#align nnreal.borel_space NNReal.borelSpace
@@ -2113,12 +1654,6 @@ instance ENNReal.measurableSpace : MeasurableSpace ℝ≥0∞ :=
#align ennreal.measurable_space ENNReal.measurableSpace
-/
-/- warning: ennreal.borel_space -> ENNReal.borelSpace is a dubious translation:
-lean 3 declaration is
- BorelSpace.{0} ENNReal ENNReal.topologicalSpace ENNReal.measurableSpace
-but is expected to have type
- BorelSpace.{0} ENNReal ENNReal.instTopologicalSpaceENNReal ENNReal.measurableSpace
-Case conversion may be inaccurate. Consider using '#align ennreal.borel_space ENNReal.borelSpaceₓ'. -/
instance ENNReal.borelSpace : BorelSpace ℝ≥0∞ :=
⟨rfl⟩
#align ennreal.borel_space ENNReal.borelSpace
@@ -2129,22 +1664,10 @@ instance EReal.measurableSpace : MeasurableSpace EReal :=
#align ereal.measurable_space EReal.measurableSpace
-/
-/- warning: ereal.borel_space -> EReal.borelSpace is a dubious translation:
-lean 3 declaration is
- BorelSpace.{0} EReal EReal.topologicalSpace EReal.measurableSpace
-but is expected to have type
- BorelSpace.{0} EReal EReal.instTopologicalSpaceEReal EReal.measurableSpace
-Case conversion may be inaccurate. Consider using '#align ereal.borel_space EReal.borelSpaceₓ'. -/
instance EReal.borelSpace : BorelSpace EReal :=
⟨rfl⟩
#align ereal.borel_space EReal.borelSpace
-/- warning: measure_eq_measure_preimage_add_measure_tsum_Ico_zpow -> measure_eq_measure_preimage_add_measure_tsum_Ico_zpow is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] (μ : MeasureTheory.Measure.{u1} α _inst_1) {f : α -> ENNReal}, (Measurable.{u1, 0} α ENNReal _inst_1 ENNReal.measurableSpace f) -> (forall {s : Set.{u1} α}, (MeasurableSet.{u1} α _inst_1 s) -> (forall {t : NNReal}, (LT.lt.{0} NNReal (Preorder.toHasLt.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (OrderedCancelAddCommMonoid.toPartialOrder.{0} NNReal (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} NNReal NNReal.strictOrderedSemiring)))) (OfNat.ofNat.{0} NNReal 1 (OfNat.mk.{0} NNReal 1 (One.one.{0} NNReal (AddMonoidWithOne.toOne.{0} NNReal (AddCommMonoidWithOne.toAddMonoidWithOne.{0} NNReal (NonAssocSemiring.toAddCommMonoidWithOne.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal NNReal.semiring))))))) t) -> (Eq.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α _inst_1) (fun (_x : MeasureTheory.Measure.{u1} α _inst_1) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α _inst_1) μ s) (HAdd.hAdd.{0, 0, 0} ENNReal ENNReal ENNReal (instHAdd.{0} ENNReal (Distrib.toHasAdd.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring)))))))) (HAdd.hAdd.{0, 0, 0} ENNReal ENNReal ENNReal (instHAdd.{0} ENNReal (Distrib.toHasAdd.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring)))))))) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α _inst_1) (fun (_x : MeasureTheory.Measure.{u1} α _inst_1) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α _inst_1) μ (Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) s (Set.preimage.{u1, 0} α ENNReal f (Singleton.singleton.{0, 0} ENNReal (Set.{0} ENNReal) (Set.hasSingleton.{0} ENNReal) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero))))))) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α _inst_1) (fun (_x : MeasureTheory.Measure.{u1} α _inst_1) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α _inst_1) μ (Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) s (Set.preimage.{u1, 0} α ENNReal f (Singleton.singleton.{0, 0} ENNReal (Set.{0} ENNReal) (Set.hasSingleton.{0} ENNReal) (Top.top.{0} ENNReal (CompleteLattice.toHasTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder)))))))) (tsum.{0, 0} ENNReal (OrderedAddCommMonoid.toAddCommMonoid.{0} ENNReal (OrderedSemiring.toOrderedAddCommMonoid.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring)))) ENNReal.topologicalSpace Int (fun (n : Int) => coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α _inst_1) (fun (_x : MeasureTheory.Measure.{u1} α _inst_1) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α _inst_1) μ (Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) s (Set.preimage.{u1, 0} α ENNReal f (Set.Ico.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder)))) (HPow.hPow.{0, 0, 0} ENNReal Int ENNReal (instHPow.{0, 0} ENNReal Int (DivInvMonoid.Pow.{0} ENNReal ENNReal.divInvMonoid)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal ENNReal (HasLiftT.mk.{1, 1} NNReal ENNReal (CoeTCₓ.coe.{1, 1} NNReal ENNReal (coeBase.{1, 1} NNReal ENNReal ENNReal.hasCoe))) t) n) (HPow.hPow.{0, 0, 0} ENNReal Int ENNReal (instHPow.{0, 0} ENNReal Int (DivInvMonoid.Pow.{0} ENNReal ENNReal.divInvMonoid)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal ENNReal (HasLiftT.mk.{1, 1} NNReal ENNReal (CoeTCₓ.coe.{1, 1} NNReal ENNReal (coeBase.{1, 1} NNReal ENNReal ENNReal.hasCoe))) t) (HAdd.hAdd.{0, 0, 0} Int Int Int (instHAdd.{0} Int Int.hasAdd) n (OfNat.ofNat.{0} Int 1 (OfNat.mk.{0} Int 1 (One.one.{0} Int Int.hasOne))))))))))))))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] (μ : MeasureTheory.Measure.{u1} α _inst_1) {f : α -> ENNReal}, (Measurable.{u1, 0} α ENNReal _inst_1 ENNReal.measurableSpace f) -> (forall {s : Set.{u1} α}, (MeasurableSet.{u1} α _inst_1 s) -> (forall {t : NNReal}, (LT.lt.{0} NNReal (Preorder.toLT.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (StrictOrderedSemiring.toPartialOrder.{0} NNReal instNNRealStrictOrderedSemiring))) (OfNat.ofNat.{0} NNReal 1 (One.toOfNat1.{0} NNReal instNNRealOne)) t) -> (Eq.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α _inst_1 μ) s) (HAdd.hAdd.{0, 0, 0} ENNReal ENNReal ENNReal (instHAdd.{0} ENNReal (Distrib.toAdd.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal)))))))) (HAdd.hAdd.{0, 0, 0} ENNReal ENNReal ENNReal (instHAdd.{0} ENNReal (Distrib.toAdd.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal)))))))) (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α _inst_1 μ) (Inter.inter.{u1} (Set.{u1} α) (Set.instInterSet.{u1} α) s (Set.preimage.{u1, 0} α ENNReal f (Singleton.singleton.{0, 0} ENNReal (Set.{0} ENNReal) (Set.instSingletonSet.{0} ENNReal) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero)))))) (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α _inst_1 μ) (Inter.inter.{u1} (Set.{u1} α) (Set.instInterSet.{u1} α) s (Set.preimage.{u1, 0} α ENNReal f (Singleton.singleton.{0, 0} ENNReal (Set.{0} ENNReal) (Set.instSingletonSet.{0} ENNReal) (Top.top.{0} ENNReal (CompleteLattice.toTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal)))))))) (tsum.{0, 0} ENNReal (LinearOrderedAddCommMonoid.toAddCommMonoid.{0} ENNReal (LinearOrderedAddCommMonoidWithTop.toLinearOrderedAddCommMonoid.{0} ENNReal ENNReal.instLinearOrderedAddCommMonoidWithTopENNReal)) ENNReal.instTopologicalSpaceENNReal Int (fun (n : Int) => MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α _inst_1 μ) (Inter.inter.{u1} (Set.{u1} α) (Set.instInterSet.{u1} α) s (Set.preimage.{u1, 0} α ENNReal f (Set.Ico.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (OmegaCompletePartialOrder.toPartialOrder.{0} ENNReal (CompleteLattice.instOmegaCompletePartialOrder.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal)))) (HPow.hPow.{0, 0, 0} ENNReal Int ENNReal (instHPow.{0, 0} ENNReal Int (DivInvMonoid.Pow.{0} ENNReal ENNReal.instDivInvMonoidENNReal)) (ENNReal.some t) n) (HPow.hPow.{0, 0, 0} ENNReal Int ENNReal (instHPow.{0, 0} ENNReal Int (DivInvMonoid.Pow.{0} ENNReal ENNReal.instDivInvMonoidENNReal)) (ENNReal.some t) (HAdd.hAdd.{0, 0, 0} Int Int Int (instHAdd.{0} Int Int.instAddInt) n (OfNat.ofNat.{0} Int 1 (instOfNatInt 1)))))))))))))
-Case conversion may be inaccurate. Consider using '#align measure_eq_measure_preimage_add_measure_tsum_Ico_zpow measure_eq_measure_preimage_add_measure_tsum_Ico_zpowₓ'. -/
/-- One can cut out `ℝ≥0∞` into the sets `{0}`, `Ico (t^n) (t^(n+1))` for `n : ℤ` and `{∞}`. This
gives a way to compute the measure of a set in terms of sets on which a given function `f` does not
fluctuate by more than `t`. -/
@@ -2292,12 +1815,6 @@ theorem Measurable.nndist {f g : β → α} (hf : Measurable f) (hg : Measurable
end
-/- warning: tendsto_measure_cthickening -> tendsto_measure_cthickening is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : PseudoMetricSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α _inst_1)) _inst_2] {μ : MeasureTheory.Measure.{u1} α _inst_2} {s : Set.{u1} α}, (Exists.{1} Real (fun (R : Real) => Exists.{0} (GT.gt.{0} Real Real.hasLt R (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (fun (H : GT.gt.{0} Real Real.hasLt R (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) => Ne.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α _inst_2) (fun (_x : MeasureTheory.Measure.{u1} α _inst_2) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α _inst_2) μ (Metric.cthickening.{u1} α (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) R s)) (Top.top.{0} ENNReal (CompleteLattice.toHasTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder)))))) -> (Filter.Tendsto.{0, 0} Real ENNReal (fun (r : Real) => coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α _inst_2) (fun (_x : MeasureTheory.Measure.{u1} α _inst_2) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α _inst_2) μ (Metric.cthickening.{u1} α (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) r s)) (nhds.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (nhds.{0} ENNReal ENNReal.topologicalSpace (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α _inst_2) (fun (_x : MeasureTheory.Measure.{u1} α _inst_2) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α _inst_2) μ (closure.{u1} α (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α _inst_1)) s))))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : PseudoMetricSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α _inst_1)) _inst_2] {μ : MeasureTheory.Measure.{u1} α _inst_2} {s : Set.{u1} α}, (Exists.{1} Real (fun (R : Real) => And (GT.gt.{0} Real Real.instLTReal R (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (Ne.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α _inst_2 μ) (Metric.cthickening.{u1} α (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) R s)) (Top.top.{0} ENNReal (CompleteLattice.toTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal)))))) -> (Filter.Tendsto.{0, 0} Real ENNReal (fun (r : Real) => MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α _inst_2 μ) (Metric.cthickening.{u1} α (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) r s)) (nhds.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (nhds.{0} ENNReal ENNReal.instTopologicalSpaceENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α _inst_2 μ) (closure.{u1} α (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α _inst_1)) s))))
-Case conversion may be inaccurate. Consider using '#align tendsto_measure_cthickening tendsto_measure_cthickeningₓ'. -/
/-- If a set has a closed thickening with finite measure, then the measure of its `r`-closed
thickenings converges to the measure of its closure as `r` tends to `0`. -/
theorem tendsto_measure_cthickening {μ : Measure α} {s : Set α}
@@ -2319,12 +1836,6 @@ theorem tendsto_measure_cthickening {μ : Measure α} {s : Set α}
exact (nhds_left_sup_nhds_right' 0).symm
#align tendsto_measure_cthickening tendsto_measure_cthickening
-/- warning: tendsto_measure_cthickening_of_is_closed -> tendsto_measure_cthickening_of_isClosed is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : PseudoMetricSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α _inst_1)) _inst_2] {μ : MeasureTheory.Measure.{u1} α _inst_2} {s : Set.{u1} α}, (Exists.{1} Real (fun (R : Real) => Exists.{0} (GT.gt.{0} Real Real.hasLt R (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (fun (H : GT.gt.{0} Real Real.hasLt R (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) => Ne.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α _inst_2) (fun (_x : MeasureTheory.Measure.{u1} α _inst_2) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α _inst_2) μ (Metric.cthickening.{u1} α (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) R s)) (Top.top.{0} ENNReal (CompleteLattice.toHasTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder)))))) -> (IsClosed.{u1} α (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α _inst_1)) s) -> (Filter.Tendsto.{0, 0} Real ENNReal (fun (r : Real) => coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α _inst_2) (fun (_x : MeasureTheory.Measure.{u1} α _inst_2) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α _inst_2) μ (Metric.cthickening.{u1} α (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) r s)) (nhds.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (nhds.{0} ENNReal ENNReal.topologicalSpace (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α _inst_2) (fun (_x : MeasureTheory.Measure.{u1} α _inst_2) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α _inst_2) μ s)))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : PseudoMetricSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α _inst_1)) _inst_2] {μ : MeasureTheory.Measure.{u1} α _inst_2} {s : Set.{u1} α}, (Exists.{1} Real (fun (R : Real) => And (GT.gt.{0} Real Real.instLTReal R (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (Ne.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α _inst_2 μ) (Metric.cthickening.{u1} α (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) R s)) (Top.top.{0} ENNReal (CompleteLattice.toTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal)))))) -> (IsClosed.{u1} α (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α _inst_1)) s) -> (Filter.Tendsto.{0, 0} Real ENNReal (fun (r : Real) => MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α _inst_2 μ) (Metric.cthickening.{u1} α (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) r s)) (nhds.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (nhds.{0} ENNReal ENNReal.instTopologicalSpaceENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α _inst_2 μ) s)))
-Case conversion may be inaccurate. Consider using '#align tendsto_measure_cthickening_of_is_closed tendsto_measure_cthickening_of_isClosedₓ'. -/
/-- If a closed set has a closed thickening with finite measure, then the measure of its `r`-closed
thickenings converges to its measure as `r` tends to `0`. -/
theorem tendsto_measure_cthickening_of_isClosed {μ : Measure α} {s : Set α}
@@ -2337,12 +1848,6 @@ theorem tendsto_measure_cthickening_of_isClosed {μ : Measure α} {s : Set α}
end PseudoMetricSpace
-/- warning: tendsto_measure_cthickening_of_is_compact -> tendsto_measure_cthickening_of_isCompact is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : MetricSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α (MetricSpace.toPseudoMetricSpace.{u1} α _inst_1))) _inst_2] [_inst_4 : ProperSpace.{u1} α (MetricSpace.toPseudoMetricSpace.{u1} α _inst_1)] {μ : MeasureTheory.Measure.{u1} α _inst_2} [_inst_5 : MeasureTheory.FiniteMeasureOnCompacts.{u1} α _inst_2 (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α (MetricSpace.toPseudoMetricSpace.{u1} α _inst_1))) μ] {s : Set.{u1} α}, (IsCompact.{u1} α (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α (MetricSpace.toPseudoMetricSpace.{u1} α _inst_1))) s) -> (Filter.Tendsto.{0, 0} Real ENNReal (fun (r : Real) => coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α _inst_2) (fun (_x : MeasureTheory.Measure.{u1} α _inst_2) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α _inst_2) μ (Metric.cthickening.{u1} α (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α (MetricSpace.toPseudoMetricSpace.{u1} α _inst_1)) r s)) (nhds.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (nhds.{0} ENNReal ENNReal.topologicalSpace (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α _inst_2) (fun (_x : MeasureTheory.Measure.{u1} α _inst_2) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α _inst_2) μ s)))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : MetricSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α (MetricSpace.toPseudoMetricSpace.{u1} α _inst_1))) _inst_2] [_inst_4 : ProperSpace.{u1} α (MetricSpace.toPseudoMetricSpace.{u1} α _inst_1)] {μ : MeasureTheory.Measure.{u1} α _inst_2} [_inst_5 : MeasureTheory.FiniteMeasureOnCompacts.{u1} α _inst_2 (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α (MetricSpace.toPseudoMetricSpace.{u1} α _inst_1))) μ] {s : Set.{u1} α}, (IsCompact.{u1} α (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α (MetricSpace.toPseudoMetricSpace.{u1} α _inst_1))) s) -> (Filter.Tendsto.{0, 0} Real ENNReal (fun (r : Real) => MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α _inst_2 μ) (Metric.cthickening.{u1} α (EMetricSpace.toPseudoEMetricSpace.{u1} α (MetricSpace.toEMetricSpace.{u1} α _inst_1)) r s)) (nhds.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (nhds.{0} ENNReal ENNReal.instTopologicalSpaceENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α _inst_2 μ) s)))
-Case conversion may be inaccurate. Consider using '#align tendsto_measure_cthickening_of_is_compact tendsto_measure_cthickening_of_isCompactₓ'. -/
/-- Given a compact set in a proper space, the measure of its `r`-closed thickenings converges to
its measure as `r` tends to `0`. -/
theorem tendsto_measure_cthickening_of_isCompact [MetricSpace α] [MeasurableSpace α]
@@ -2427,24 +1932,12 @@ namespace Real
open MeasurableSpace MeasureTheory
-/- warning: real.borel_eq_generate_from_Ioo_rat -> Real.borel_eq_generateFrom_Ioo_rat is a dubious translation:
-lean 3 declaration is
- Eq.{1} (MeasurableSpace.{0} Real) (borel.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace))) (MeasurableSpace.generateFrom.{0} Real (Set.iUnion.{0, 1} (Set.{0} Real) Rat (fun (a : Rat) => Set.iUnion.{0, 1} (Set.{0} Real) Rat (fun (b : Rat) => Set.iUnion.{0, 0} (Set.{0} Real) (LT.lt.{0} Rat Rat.hasLt a b) (fun (h : LT.lt.{0} Rat Rat.hasLt a b) => Singleton.singleton.{0, 0} (Set.{0} Real) (Set.{0} (Set.{0} Real)) (Set.hasSingleton.{0} (Set.{0} Real)) (Set.Ioo.{0} Real Real.preorder ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) a) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) b)))))))
-but is expected to have type
- Eq.{1} (MeasurableSpace.{0} Real) (borel.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace))) (MeasurableSpace.generateFrom.{0} Real (Set.iUnion.{0, 1} (Set.{0} Real) Rat (fun (a : Rat) => Set.iUnion.{0, 1} (Set.{0} Real) Rat (fun (b : Rat) => Set.iUnion.{0, 0} (Set.{0} Real) (LT.lt.{0} Rat Rat.instLTRat_1 a b) (fun (h : LT.lt.{0} Rat Rat.instLTRat_1 a b) => Singleton.singleton.{0, 0} (Set.{0} Real) (Set.{0} (Set.{0} Real)) (Set.instSingletonSet.{0} (Set.{0} Real)) (Set.Ioo.{0} Real Real.instPreorderReal (Rat.cast.{0} Real Real.ratCast a) (Rat.cast.{0} Real Real.ratCast b)))))))
-Case conversion may be inaccurate. Consider using '#align real.borel_eq_generate_from_Ioo_rat Real.borel_eq_generateFrom_Ioo_ratₓ'. -/
/- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (a b) -/
theorem borel_eq_generateFrom_Ioo_rat :
borel ℝ = generateFrom (⋃ (a : ℚ) (b : ℚ) (h : a < b), {Ioo a b}) :=
isTopologicalBasis_Ioo_rat.borel_eq_generateFrom
#align real.borel_eq_generate_from_Ioo_rat Real.borel_eq_generateFrom_Ioo_rat
-/- warning: real.is_pi_system_Ioo_rat -> Real.isPiSystem_Ioo_rat is a dubious translation:
-lean 3 declaration is
- IsPiSystem.{0} Real (Set.iUnion.{0, 1} (Set.{0} Real) Rat (fun (a : Rat) => Set.iUnion.{0, 1} (Set.{0} Real) Rat (fun (b : Rat) => Set.iUnion.{0, 0} (Set.{0} Real) (LT.lt.{0} Rat Rat.hasLt a b) (fun (h : LT.lt.{0} Rat Rat.hasLt a b) => Singleton.singleton.{0, 0} (Set.{0} Real) (Set.{0} (Set.{0} Real)) (Set.hasSingleton.{0} (Set.{0} Real)) (Set.Ioo.{0} Real Real.preorder ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) a) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) b))))))
-but is expected to have type
- IsPiSystem.{0} Real (Set.iUnion.{0, 1} (Set.{0} Real) Rat (fun (a : Rat) => Set.iUnion.{0, 1} (Set.{0} Real) Rat (fun (b : Rat) => Set.iUnion.{0, 0} (Set.{0} Real) (LT.lt.{0} Rat Rat.instLTRat_1 a b) (fun (h : LT.lt.{0} Rat Rat.instLTRat_1 a b) => Singleton.singleton.{0, 0} (Set.{0} Real) (Set.{0} (Set.{0} Real)) (Set.instSingletonSet.{0} (Set.{0} Real)) (Set.Ioo.{0} Real Real.instPreorderReal (Rat.cast.{0} Real Real.ratCast a) (Rat.cast.{0} Real Real.ratCast b))))))
-Case conversion may be inaccurate. Consider using '#align real.is_pi_system_Ioo_rat Real.isPiSystem_Ioo_ratₓ'. -/
/- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (a b) -/
theorem isPiSystem_Ioo_rat : @IsPiSystem ℝ (⋃ (a : ℚ) (b : ℚ) (h : a < b), {Ioo a b}) :=
by
@@ -2453,12 +1946,6 @@ theorem isPiSystem_Ioo_rat : @IsPiSystem ℝ (⋃ (a : ℚ) (b : ℚ) (h : a < b
simp [eq_comm]
#align real.is_pi_system_Ioo_rat Real.isPiSystem_Ioo_rat
-/- warning: real.finite_spanning_sets_in_Ioo_rat -> Real.finiteSpanningSetsInIooRat is a dubious translation:
-lean 3 declaration is
- forall (μ : MeasureTheory.Measure.{0} Real Real.measurableSpace) [_inst_1 : MeasureTheory.LocallyFiniteMeasure.{0} Real Real.measurableSpace (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) μ], MeasureTheory.Measure.FiniteSpanningSetsIn.{0} Real Real.measurableSpace μ (Set.iUnion.{0, 1} (Set.{0} Real) Rat (fun (a : Rat) => Set.iUnion.{0, 1} (Set.{0} Real) Rat (fun (b : Rat) => Set.iUnion.{0, 0} (Set.{0} Real) (LT.lt.{0} Rat Rat.hasLt a b) (fun (h : LT.lt.{0} Rat Rat.hasLt a b) => Singleton.singleton.{0, 0} (Set.{0} Real) (Set.{0} (Set.{0} Real)) (Set.hasSingleton.{0} (Set.{0} Real)) (Set.Ioo.{0} Real Real.preorder ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) a) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) b))))))
-but is expected to have type
- forall (μ : MeasureTheory.Measure.{0} Real Real.measurableSpace) [_inst_1 : MeasureTheory.LocallyFiniteMeasure.{0} Real Real.measurableSpace (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) μ], MeasureTheory.Measure.FiniteSpanningSetsIn.{0} Real Real.measurableSpace μ (Set.iUnion.{0, 1} (Set.{0} Real) Rat (fun (a : Rat) => Set.iUnion.{0, 1} (Set.{0} Real) Rat (fun (b : Rat) => Set.iUnion.{0, 0} (Set.{0} Real) (LT.lt.{0} Rat Rat.instLTRat_1 a b) (fun (h : LT.lt.{0} Rat Rat.instLTRat_1 a b) => Singleton.singleton.{0, 0} (Set.{0} Real) (Set.{0} (Set.{0} Real)) (Set.instSingletonSet.{0} (Set.{0} Real)) (Set.Ioo.{0} Real Real.instPreorderReal (Rat.cast.{0} Real Real.ratCast a) (Rat.cast.{0} Real Real.ratCast b))))))
-Case conversion may be inaccurate. Consider using '#align real.finite_spanning_sets_in_Ioo_rat Real.finiteSpanningSetsInIooRatₓ'. -/
/- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (a b) -/
/-- The intervals `(-(n + 1), (n + 1))` form a finite spanning sets in the set of open intervals
with rational endpoints for a locally finite measure `μ` on `ℝ`. -/
@@ -2478,24 +1965,12 @@ def finiteSpanningSetsInIooRat (μ : Measure ℝ) [LocallyFiniteMeasure μ] :
(le_abs_self x).trans_lt (Nat.lt_floor_add_one _)⟩
#align real.finite_spanning_sets_in_Ioo_rat Real.finiteSpanningSetsInIooRat
-/- warning: real.measure_ext_Ioo_rat -> Real.measure_ext_Ioo_rat is a dubious translation:
-lean 3 declaration is
- forall {μ : MeasureTheory.Measure.{0} Real Real.measurableSpace} {ν : MeasureTheory.Measure.{0} Real Real.measurableSpace} [_inst_1 : MeasureTheory.LocallyFiniteMeasure.{0} Real Real.measurableSpace (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) μ], (forall (a : Rat) (b : Rat), Eq.{1} ENNReal (coeFn.{1, 1} (MeasureTheory.Measure.{0} Real Real.measurableSpace) (fun (_x : MeasureTheory.Measure.{0} Real Real.measurableSpace) => (Set.{0} Real) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{0} Real Real.measurableSpace) μ (Set.Ioo.{0} Real Real.preorder ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) a) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) b))) (coeFn.{1, 1} (MeasureTheory.Measure.{0} Real Real.measurableSpace) (fun (_x : MeasureTheory.Measure.{0} Real Real.measurableSpace) => (Set.{0} Real) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{0} Real Real.measurableSpace) ν (Set.Ioo.{0} Real Real.preorder ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) a) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) b)))) -> (Eq.{1} (MeasureTheory.Measure.{0} Real Real.measurableSpace) μ ν)
-but is expected to have type
- forall {μ : MeasureTheory.Measure.{0} Real Real.measurableSpace} {ν : MeasureTheory.Measure.{0} Real Real.measurableSpace} [_inst_1 : MeasureTheory.LocallyFiniteMeasure.{0} Real Real.measurableSpace (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) μ], (forall (a : Rat) (b : Rat), Eq.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{0} Real (MeasureTheory.Measure.toOuterMeasure.{0} Real Real.measurableSpace μ) (Set.Ioo.{0} Real Real.instPreorderReal (Rat.cast.{0} Real Real.ratCast a) (Rat.cast.{0} Real Real.ratCast b))) (MeasureTheory.OuterMeasure.measureOf.{0} Real (MeasureTheory.Measure.toOuterMeasure.{0} Real Real.measurableSpace ν) (Set.Ioo.{0} Real Real.instPreorderReal (Rat.cast.{0} Real Real.ratCast a) (Rat.cast.{0} Real Real.ratCast b)))) -> (Eq.{1} (MeasureTheory.Measure.{0} Real Real.measurableSpace) μ ν)
-Case conversion may be inaccurate. Consider using '#align real.measure_ext_Ioo_rat Real.measure_ext_Ioo_ratₓ'. -/
theorem measure_ext_Ioo_rat {μ ν : Measure ℝ} [LocallyFiniteMeasure μ]
(h : ∀ a b : ℚ, μ (Ioo a b) = ν (Ioo a b)) : μ = ν :=
(finiteSpanningSetsInIooRat μ).ext borel_eq_generateFrom_Ioo_rat isPiSystem_Ioo_rat <| by
simp only [mem_Union, mem_singleton_iff]; rintro _ ⟨a, b, -, rfl⟩; apply h
#align real.measure_ext_Ioo_rat Real.measure_ext_Ioo_rat
-/- warning: real.borel_eq_generate_from_Iio_rat -> Real.borel_eq_generateFrom_Iio_rat is a dubious translation:
-lean 3 declaration is
- Eq.{1} (MeasurableSpace.{0} Real) (borel.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace))) (MeasurableSpace.generateFrom.{0} Real (Set.iUnion.{0, 1} (Set.{0} Real) Rat (fun (a : Rat) => Singleton.singleton.{0, 0} (Set.{0} Real) (Set.{0} (Set.{0} Real)) (Set.hasSingleton.{0} (Set.{0} Real)) (Set.Iio.{0} Real Real.preorder ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) a)))))
-but is expected to have type
- Eq.{1} (MeasurableSpace.{0} Real) (borel.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace))) (MeasurableSpace.generateFrom.{0} Real (Set.iUnion.{0, 1} (Set.{0} Real) Rat (fun (a : Rat) => Singleton.singleton.{0, 0} (Set.{0} Real) (Set.{0} (Set.{0} Real)) (Set.instSingletonSet.{0} (Set.{0} Real)) (Set.Iio.{0} Real Real.instPreorderReal (Rat.cast.{0} Real Real.ratCast a)))))
-Case conversion may be inaccurate. Consider using '#align real.borel_eq_generate_from_Iio_rat Real.borel_eq_generateFrom_Iio_ratₓ'. -/
theorem borel_eq_generateFrom_Iio_rat : borel ℝ = generateFrom (⋃ a : ℚ, {Iio a}) :=
by
let g : MeasurableSpace ℝ := generate_from (⋃ a : ℚ, {Iio a})
@@ -2544,35 +2019,17 @@ theorem AEMeasurable.real_toNNReal {f : α → ℝ} {μ : Measure α} (hf : AEMe
#align ae_measurable.real_to_nnreal AEMeasurable.real_toNNReal
-/
-/- warning: measurable_coe_nnreal_real -> measurable_coe_nnreal_real is a dubious translation:
-lean 3 declaration is
- Measurable.{0, 0} NNReal Real NNReal.measurableSpace Real.measurableSpace ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal Real (HasLiftT.mk.{1, 1} NNReal Real (CoeTCₓ.coe.{1, 1} NNReal Real (coeBase.{1, 1} NNReal Real NNReal.Real.hasCoe))))
-but is expected to have type
- Measurable.{0, 0} NNReal Real NNReal.measurableSpace Real.measurableSpace NNReal.toReal
-Case conversion may be inaccurate. Consider using '#align measurable_coe_nnreal_real measurable_coe_nnreal_realₓ'. -/
@[measurability]
theorem measurable_coe_nnreal_real : Measurable (coe : ℝ≥0 → ℝ) :=
NNReal.continuous_coe.Measurable
#align measurable_coe_nnreal_real measurable_coe_nnreal_real
-/- warning: measurable.coe_nnreal_real -> Measurable.coe_nnreal_real is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {f : α -> NNReal}, (Measurable.{u1, 0} α NNReal _inst_1 NNReal.measurableSpace f) -> (Measurable.{u1, 0} α Real _inst_1 Real.measurableSpace (fun (x : α) => (fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal Real (HasLiftT.mk.{1, 1} NNReal Real (CoeTCₓ.coe.{1, 1} NNReal Real (coeBase.{1, 1} NNReal Real NNReal.Real.hasCoe))) (f x)))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {f : α -> NNReal}, (Measurable.{u1, 0} α NNReal _inst_1 NNReal.measurableSpace f) -> (Measurable.{u1, 0} α Real _inst_1 Real.measurableSpace (fun (x : α) => NNReal.toReal (f x)))
-Case conversion may be inaccurate. Consider using '#align measurable.coe_nnreal_real Measurable.coe_nnreal_realₓ'. -/
@[measurability]
theorem Measurable.coe_nnreal_real {f : α → ℝ≥0} (hf : Measurable f) :
Measurable fun x => (f x : ℝ) :=
measurable_coe_nnreal_real.comp hf
#align measurable.coe_nnreal_real Measurable.coe_nnreal_real
-/- warning: ae_measurable.coe_nnreal_real -> AEMeasurable.coe_nnreal_real is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {f : α -> NNReal} {μ : MeasureTheory.Measure.{u1} α _inst_1}, (AEMeasurable.{u1, 0} α NNReal NNReal.measurableSpace _inst_1 f μ) -> (AEMeasurable.{u1, 0} α Real Real.measurableSpace _inst_1 (fun (x : α) => (fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal Real (HasLiftT.mk.{1, 1} NNReal Real (CoeTCₓ.coe.{1, 1} NNReal Real (coeBase.{1, 1} NNReal Real NNReal.Real.hasCoe))) (f x)) μ)
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {f : α -> NNReal} {μ : MeasureTheory.Measure.{u1} α _inst_1}, (AEMeasurable.{u1, 0} α NNReal NNReal.measurableSpace _inst_1 f μ) -> (AEMeasurable.{u1, 0} α Real Real.measurableSpace _inst_1 (fun (x : α) => NNReal.toReal (f x)) μ)
-Case conversion may be inaccurate. Consider using '#align ae_measurable.coe_nnreal_real AEMeasurable.coe_nnreal_realₓ'. -/
@[measurability]
theorem AEMeasurable.coe_nnreal_real {f : α → ℝ≥0} {μ : Measure α} (hf : AEMeasurable f μ) :
AEMeasurable (fun x => (f x : ℝ)) μ :=
@@ -2610,36 +2067,18 @@ theorem Measurable.ennreal_ofReal {f : α → ℝ} (hf : Measurable f) :
#align measurable.ennreal_of_real Measurable.ennreal_ofReal
-/
-/- warning: measurable_coe_nnreal_real_iff -> measurable_coe_nnreal_real_iff is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {f : α -> NNReal}, Iff (Measurable.{u1, 0} α Real _inst_1 Real.measurableSpace (fun (x : α) => (fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal Real (HasLiftT.mk.{1, 1} NNReal Real (CoeTCₓ.coe.{1, 1} NNReal Real (coeBase.{1, 1} NNReal Real NNReal.Real.hasCoe))) (f x))) (Measurable.{u1, 0} α NNReal _inst_1 NNReal.measurableSpace f)
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {f : α -> NNReal}, Iff (Measurable.{u1, 0} α Real _inst_1 Real.measurableSpace (fun (x : α) => NNReal.toReal (f x))) (Measurable.{u1, 0} α NNReal _inst_1 NNReal.measurableSpace f)
-Case conversion may be inaccurate. Consider using '#align measurable_coe_nnreal_real_iff measurable_coe_nnreal_real_iffₓ'. -/
@[simp, norm_cast]
theorem measurable_coe_nnreal_real_iff {f : α → ℝ≥0} :
Measurable (fun x => f x : α → ℝ) ↔ Measurable f :=
⟨fun h => by simpa only [Real.toNNReal_coe] using h.real_to_nnreal, Measurable.coe_nnreal_real⟩
#align measurable_coe_nnreal_real_iff measurable_coe_nnreal_real_iff
-/- warning: ae_measurable_coe_nnreal_real_iff -> aEMeasurable_coe_nnreal_real_iff is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {f : α -> NNReal} {μ : MeasureTheory.Measure.{u1} α _inst_1}, Iff (AEMeasurable.{u1, 0} α Real Real.measurableSpace _inst_1 (fun (x : α) => (fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal Real (HasLiftT.mk.{1, 1} NNReal Real (CoeTCₓ.coe.{1, 1} NNReal Real (coeBase.{1, 1} NNReal Real NNReal.Real.hasCoe))) (f x)) μ) (AEMeasurable.{u1, 0} α NNReal NNReal.measurableSpace _inst_1 f μ)
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {f : α -> NNReal} {μ : MeasureTheory.Measure.{u1} α _inst_1}, Iff (AEMeasurable.{u1, 0} α Real Real.measurableSpace _inst_1 (fun (x : α) => NNReal.toReal (f x)) μ) (AEMeasurable.{u1, 0} α NNReal NNReal.measurableSpace _inst_1 f μ)
-Case conversion may be inaccurate. Consider using '#align ae_measurable_coe_nnreal_real_iff aEMeasurable_coe_nnreal_real_iffₓ'. -/
@[simp, norm_cast]
theorem aEMeasurable_coe_nnreal_real_iff {f : α → ℝ≥0} {μ : Measure α} :
AEMeasurable (fun x => f x : α → ℝ) μ ↔ AEMeasurable f μ :=
⟨fun h => by simpa only [Real.toNNReal_coe] using h.real_to_nnreal, AEMeasurable.coe_nnreal_real⟩
#align ae_measurable_coe_nnreal_real_iff aEMeasurable_coe_nnreal_real_iff
-/- warning: measurable_equiv.ennreal_equiv_nnreal -> MeasurableEquiv.ennrealEquivNNReal is a dubious translation:
-lean 3 declaration is
- MeasurableEquiv.{0, 0} (coeSort.{1, 2} (Set.{0} ENNReal) Type (Set.hasCoeToSort.{0} ENNReal) (setOf.{0} ENNReal (fun (r : ENNReal) => Ne.{1} ENNReal r (Top.top.{0} ENNReal (CompleteLattice.toHasTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder)))))) NNReal (Subtype.instMeasurableSpace.{0} ENNReal (fun (x : ENNReal) => Membership.Mem.{0, 0} ENNReal (Set.{0} ENNReal) (Set.hasMem.{0} ENNReal) x (setOf.{0} ENNReal (fun (r : ENNReal) => Ne.{1} ENNReal r (Top.top.{0} ENNReal (CompleteLattice.toHasTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder)))))) ENNReal.measurableSpace) NNReal.measurableSpace
-but is expected to have type
- MeasurableEquiv.{0, 0} (Set.Elem.{0} ENNReal (setOf.{0} ENNReal (fun (r : ENNReal) => Ne.{1} ENNReal r (Top.top.{0} ENNReal (CompleteLattice.toTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal)))))) NNReal (Subtype.instMeasurableSpace.{0} ENNReal (fun (x : ENNReal) => Membership.mem.{0, 0} ENNReal (Set.{0} ENNReal) (Set.instMembershipSet.{0} ENNReal) x (setOf.{0} ENNReal (fun (r : ENNReal) => Ne.{1} ENNReal r (Top.top.{0} ENNReal (CompleteLattice.toTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal)))))) ENNReal.measurableSpace) NNReal.measurableSpace
-Case conversion may be inaccurate. Consider using '#align measurable_equiv.ennreal_equiv_nnreal MeasurableEquiv.ennrealEquivNNRealₓ'. -/
/-- The set of finite `ℝ≥0∞` numbers is `measurable_equiv` to `ℝ≥0`. -/
def MeasurableEquiv.ennrealEquivNNReal : { r : ℝ≥0∞ | r ≠ ∞ } ≃ᵐ ℝ≥0 :=
ENNReal.neTopHomeomorphNNReal.toMeasurableEquiv
@@ -2669,12 +2108,6 @@ def ennrealEquivSum : ℝ≥0∞ ≃ᵐ Sum ℝ≥0 Unit :=
open Function (uncurry)
-/- warning: ennreal.measurable_of_measurable_nnreal_prod -> ENNReal.measurable_of_measurable_nnreal_prod is a dubious translation:
-lean 3 declaration is
- forall {β : Type.{u1}} {γ : Type.{u2}} [_inst_2 : MeasurableSpace.{u1} β] [_inst_3 : MeasurableSpace.{u2} γ] {f : (Prod.{0, u1} ENNReal β) -> γ}, (Measurable.{u1, u2} (Prod.{0, u1} NNReal β) γ (Prod.instMeasurableSpace.{0, u1} NNReal β NNReal.measurableSpace _inst_2) _inst_3 (fun (p : Prod.{0, u1} NNReal β) => f (Prod.mk.{0, u1} ENNReal β ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal ENNReal (HasLiftT.mk.{1, 1} NNReal ENNReal (CoeTCₓ.coe.{1, 1} NNReal ENNReal (coeBase.{1, 1} NNReal ENNReal ENNReal.hasCoe))) (Prod.fst.{0, u1} NNReal β p)) (Prod.snd.{0, u1} NNReal β p)))) -> (Measurable.{u1, u2} β γ _inst_2 _inst_3 (fun (x : β) => f (Prod.mk.{0, u1} ENNReal β (Top.top.{0} ENNReal (CompleteLattice.toHasTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))) x))) -> (Measurable.{u1, u2} (Prod.{0, u1} ENNReal β) γ (Prod.instMeasurableSpace.{0, u1} ENNReal β ENNReal.measurableSpace _inst_2) _inst_3 f)
-but is expected to have type
- forall {β : Type.{u2}} {γ : Type.{u1}} [_inst_2 : MeasurableSpace.{u2} β] [_inst_3 : MeasurableSpace.{u1} γ] {f : (Prod.{0, u2} ENNReal β) -> γ}, (Measurable.{u2, u1} (Prod.{0, u2} NNReal β) γ (Prod.instMeasurableSpace.{0, u2} NNReal β NNReal.measurableSpace _inst_2) _inst_3 (fun (p : Prod.{0, u2} NNReal β) => f (Prod.mk.{0, u2} ENNReal β (ENNReal.some (Prod.fst.{0, u2} NNReal β p)) (Prod.snd.{0, u2} NNReal β p)))) -> (Measurable.{u2, u1} β γ _inst_2 _inst_3 (fun (x : β) => f (Prod.mk.{0, u2} ENNReal β (Top.top.{0} ENNReal (CompleteLattice.toTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal))) x))) -> (Measurable.{u2, u1} (Prod.{0, u2} ENNReal β) γ (Prod.instMeasurableSpace.{0, u2} ENNReal β ENNReal.measurableSpace _inst_2) _inst_3 f)
-Case conversion may be inaccurate. Consider using '#align ennreal.measurable_of_measurable_nnreal_prod ENNReal.measurable_of_measurable_nnreal_prodₓ'. -/
theorem measurable_of_measurable_nnreal_prod [MeasurableSpace β] [MeasurableSpace γ]
{f : ℝ≥0∞ × β → γ} (H₁ : Measurable fun p : ℝ≥0 × β => f (p.1, p.2))
(H₂ : Measurable fun x => f (∞, x)) : Measurable f :=
@@ -2684,12 +2117,6 @@ theorem measurable_of_measurable_nnreal_prod [MeasurableSpace β] [MeasurableSpa
e.symm.measurable_comp_iff.1 <| measurable_sum H₁ (H₂.comp measurable_id.snd)
#align ennreal.measurable_of_measurable_nnreal_prod ENNReal.measurable_of_measurable_nnreal_prod
-/- warning: ennreal.measurable_of_measurable_nnreal_nnreal -> ENNReal.measurable_of_measurable_nnreal_nnreal is a dubious translation:
-lean 3 declaration is
- forall {β : Type.{u1}} [_inst_2 : MeasurableSpace.{u1} β] {f : (Prod.{0, 0} ENNReal ENNReal) -> β}, (Measurable.{0, u1} (Prod.{0, 0} NNReal NNReal) β (Prod.instMeasurableSpace.{0, 0} NNReal NNReal NNReal.measurableSpace NNReal.measurableSpace) _inst_2 (fun (p : Prod.{0, 0} NNReal NNReal) => f (Prod.mk.{0, 0} ENNReal ENNReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal ENNReal (HasLiftT.mk.{1, 1} NNReal ENNReal (CoeTCₓ.coe.{1, 1} NNReal ENNReal (coeBase.{1, 1} NNReal ENNReal ENNReal.hasCoe))) (Prod.fst.{0, 0} NNReal NNReal p)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal ENNReal (HasLiftT.mk.{1, 1} NNReal ENNReal (CoeTCₓ.coe.{1, 1} NNReal ENNReal (coeBase.{1, 1} NNReal ENNReal ENNReal.hasCoe))) (Prod.snd.{0, 0} NNReal NNReal p))))) -> (Measurable.{0, u1} NNReal β NNReal.measurableSpace _inst_2 (fun (r : NNReal) => f (Prod.mk.{0, 0} ENNReal ENNReal (Top.top.{0} ENNReal (CompleteLattice.toHasTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal ENNReal (HasLiftT.mk.{1, 1} NNReal ENNReal (CoeTCₓ.coe.{1, 1} NNReal ENNReal (coeBase.{1, 1} NNReal ENNReal ENNReal.hasCoe))) r)))) -> (Measurable.{0, u1} NNReal β NNReal.measurableSpace _inst_2 (fun (r : NNReal) => f (Prod.mk.{0, 0} ENNReal ENNReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal ENNReal (HasLiftT.mk.{1, 1} NNReal ENNReal (CoeTCₓ.coe.{1, 1} NNReal ENNReal (coeBase.{1, 1} NNReal ENNReal ENNReal.hasCoe))) r) (Top.top.{0} ENNReal (CompleteLattice.toHasTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder)))))) -> (Measurable.{0, u1} (Prod.{0, 0} ENNReal ENNReal) β (Prod.instMeasurableSpace.{0, 0} ENNReal ENNReal ENNReal.measurableSpace ENNReal.measurableSpace) _inst_2 f)
-but is expected to have type
- forall {β : Type.{u1}} [_inst_2 : MeasurableSpace.{u1} β] {f : (Prod.{0, 0} ENNReal ENNReal) -> β}, (Measurable.{0, u1} (Prod.{0, 0} NNReal NNReal) β (Prod.instMeasurableSpace.{0, 0} NNReal NNReal NNReal.measurableSpace NNReal.measurableSpace) _inst_2 (fun (p : Prod.{0, 0} NNReal NNReal) => f (Prod.mk.{0, 0} ENNReal ENNReal (ENNReal.some (Prod.fst.{0, 0} NNReal NNReal p)) (ENNReal.some (Prod.snd.{0, 0} NNReal NNReal p))))) -> (Measurable.{0, u1} NNReal β NNReal.measurableSpace _inst_2 (fun (r : NNReal) => f (Prod.mk.{0, 0} ENNReal ENNReal (Top.top.{0} ENNReal (CompleteLattice.toTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal))) (ENNReal.some r)))) -> (Measurable.{0, u1} NNReal β NNReal.measurableSpace _inst_2 (fun (r : NNReal) => f (Prod.mk.{0, 0} ENNReal ENNReal (ENNReal.some r) (Top.top.{0} ENNReal (CompleteLattice.toTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal)))))) -> (Measurable.{0, u1} (Prod.{0, 0} ENNReal ENNReal) β (Prod.instMeasurableSpace.{0, 0} ENNReal ENNReal ENNReal.measurableSpace ENNReal.measurableSpace) _inst_2 f)
-Case conversion may be inaccurate. Consider using '#align ennreal.measurable_of_measurable_nnreal_nnreal ENNReal.measurable_of_measurable_nnreal_nnrealₓ'. -/
theorem measurable_of_measurable_nnreal_nnreal [MeasurableSpace β] {f : ℝ≥0∞ × ℝ≥0∞ → β}
(h₁ : Measurable fun p : ℝ≥0 × ℝ≥0 => f (p.1, p.2)) (h₂ : Measurable fun r : ℝ≥0 => f (∞, r))
(h₃ : Measurable fun r : ℝ≥0 => f (r, ∞)) : Measurable f :=
@@ -2786,12 +2213,6 @@ theorem AEMeasurable.ennreal_toReal {f : α → ℝ≥0∞} {μ : Measure α} (h
#align ae_measurable.ennreal_to_real AEMeasurable.ennreal_toReal
-/
-/- warning: measurable.ennreal_tsum -> Measurable.ennreal_tsum is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {ι : Type.{u2}} [_inst_2 : Countable.{succ u2} ι] {f : ι -> α -> ENNReal}, (forall (i : ι), Measurable.{u1, 0} α ENNReal _inst_1 ENNReal.measurableSpace (f i)) -> (Measurable.{u1, 0} α ENNReal _inst_1 ENNReal.measurableSpace (fun (x : α) => tsum.{0, u2} ENNReal (OrderedAddCommMonoid.toAddCommMonoid.{0} ENNReal (OrderedSemiring.toOrderedAddCommMonoid.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring)))) ENNReal.topologicalSpace ι (fun (i : ι) => f i x)))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {ι : Type.{u2}} [_inst_2 : Countable.{succ u2} ι] {f : ι -> α -> ENNReal}, (forall (i : ι), Measurable.{u1, 0} α ENNReal _inst_1 ENNReal.measurableSpace (f i)) -> (Measurable.{u1, 0} α ENNReal _inst_1 ENNReal.measurableSpace (fun (x : α) => tsum.{0, u2} ENNReal (LinearOrderedAddCommMonoid.toAddCommMonoid.{0} ENNReal (LinearOrderedAddCommMonoidWithTop.toLinearOrderedAddCommMonoid.{0} ENNReal ENNReal.instLinearOrderedAddCommMonoidWithTopENNReal)) ENNReal.instTopologicalSpaceENNReal ι (fun (i : ι) => f i x)))
-Case conversion may be inaccurate. Consider using '#align measurable.ennreal_tsum Measurable.ennreal_tsumₓ'. -/
/-- note: `ℝ≥0∞` can probably be generalized in a future version of this lemma. -/
@[measurability]
theorem Measurable.ennreal_tsum {ι} [Countable ι] {f : ι → α → ℝ≥0∞} (h : ∀ i, Measurable (f i)) :
@@ -2801,12 +2222,6 @@ theorem Measurable.ennreal_tsum {ι} [Countable ι] {f : ι → α → ℝ≥0
exact fun s => s.measurable_sum fun i _ => h i
#align measurable.ennreal_tsum Measurable.ennreal_tsum
-/- warning: measurable.ennreal_tsum' -> Measurable.ennreal_tsum' is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {ι : Type.{u2}} [_inst_2 : Countable.{succ u2} ι] {f : ι -> α -> ENNReal}, (forall (i : ι), Measurable.{u1, 0} α ENNReal _inst_1 ENNReal.measurableSpace (f i)) -> (Measurable.{u1, 0} α ENNReal _inst_1 ENNReal.measurableSpace (tsum.{u1, u2} (α -> ENNReal) (Pi.addCommMonoid.{u1, 0} α (fun (ᾰ : α) => ENNReal) (fun (i : α) => OrderedAddCommMonoid.toAddCommMonoid.{0} ENNReal (OrderedSemiring.toOrderedAddCommMonoid.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring))))) (Pi.topologicalSpace.{u1, 0} α (fun (ᾰ : α) => ENNReal) (fun (a : α) => ENNReal.topologicalSpace)) ι (fun (i : ι) => f i)))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {ι : Type.{u2}} [_inst_2 : Countable.{succ u2} ι] {f : ι -> α -> ENNReal}, (forall (i : ι), Measurable.{u1, 0} α ENNReal _inst_1 ENNReal.measurableSpace (f i)) -> (Measurable.{u1, 0} α ENNReal _inst_1 ENNReal.measurableSpace (tsum.{u1, u2} (α -> ENNReal) (Pi.addCommMonoid.{u1, 0} α (fun (ᾰ : α) => ENNReal) (fun (i : α) => LinearOrderedAddCommMonoid.toAddCommMonoid.{0} ENNReal (LinearOrderedAddCommMonoidWithTop.toLinearOrderedAddCommMonoid.{0} ENNReal ENNReal.instLinearOrderedAddCommMonoidWithTopENNReal))) (Pi.topologicalSpace.{u1, 0} α (fun (ᾰ : α) => ENNReal) (fun (a : α) => ENNReal.instTopologicalSpaceENNReal)) ι (fun (i : ι) => f i)))
-Case conversion may be inaccurate. Consider using '#align measurable.ennreal_tsum' Measurable.ennreal_tsum'ₓ'. -/
@[measurability]
theorem Measurable.ennreal_tsum' {ι} [Countable ι] {f : ι → α → ℝ≥0∞} (h : ∀ i, Measurable (f i)) :
Measurable (∑' i, f i) := by
@@ -2815,12 +2230,6 @@ theorem Measurable.ennreal_tsum' {ι} [Countable ι] {f : ι → α → ℝ≥0
exact tsum_apply (Pi.summable.2 fun _ => ENNReal.summable)
#align measurable.ennreal_tsum' Measurable.ennreal_tsum'
-/- warning: measurable.nnreal_tsum -> Measurable.nnreal_tsum is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {ι : Type.{u2}} [_inst_2 : Countable.{succ u2} ι] {f : ι -> α -> NNReal}, (forall (i : ι), Measurable.{u1, 0} α NNReal _inst_1 NNReal.measurableSpace (f i)) -> (Measurable.{u1, 0} α NNReal _inst_1 NNReal.measurableSpace (fun (x : α) => tsum.{0, u2} NNReal (OrderedCancelAddCommMonoid.toAddCommMonoid.{0} NNReal (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} NNReal NNReal.strictOrderedSemiring)) NNReal.topologicalSpace ι (fun (i : ι) => f i x)))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {ι : Type.{u2}} [_inst_2 : Countable.{succ u2} ι] {f : ι -> α -> NNReal}, (forall (i : ι), Measurable.{u1, 0} α NNReal _inst_1 NNReal.measurableSpace (f i)) -> (Measurable.{u1, 0} α NNReal _inst_1 NNReal.measurableSpace (fun (x : α) => tsum.{0, u2} NNReal (OrderedCancelAddCommMonoid.toAddCommMonoid.{0} NNReal (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} NNReal instNNRealStrictOrderedSemiring)) NNReal.instTopologicalSpaceNNReal ι (fun (i : ι) => f i x)))
-Case conversion may be inaccurate. Consider using '#align measurable.nnreal_tsum Measurable.nnreal_tsumₓ'. -/
@[measurability]
theorem Measurable.nnreal_tsum {ι} [Countable ι] {f : ι → α → ℝ≥0} (h : ∀ i, Measurable (f i)) :
Measurable fun x => ∑' i, f i x :=
@@ -2829,12 +2238,6 @@ theorem Measurable.nnreal_tsum {ι} [Countable ι] {f : ι → α → ℝ≥0} (
exact (Measurable.ennreal_tsum fun i => (h i).coe_nnreal_ennreal).ennreal_toNNReal
#align measurable.nnreal_tsum Measurable.nnreal_tsum
-/- warning: ae_measurable.ennreal_tsum -> AEMeasurable.ennreal_tsum is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {ι : Type.{u2}} [_inst_2 : Countable.{succ u2} ι] {f : ι -> α -> ENNReal} {μ : MeasureTheory.Measure.{u1} α _inst_1}, (forall (i : ι), AEMeasurable.{u1, 0} α ENNReal ENNReal.measurableSpace _inst_1 (f i) μ) -> (AEMeasurable.{u1, 0} α ENNReal ENNReal.measurableSpace _inst_1 (fun (x : α) => tsum.{0, u2} ENNReal (OrderedAddCommMonoid.toAddCommMonoid.{0} ENNReal (OrderedSemiring.toOrderedAddCommMonoid.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring)))) ENNReal.topologicalSpace ι (fun (i : ι) => f i x)) μ)
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {ι : Type.{u2}} [_inst_2 : Countable.{succ u2} ι] {f : ι -> α -> ENNReal} {μ : MeasureTheory.Measure.{u1} α _inst_1}, (forall (i : ι), AEMeasurable.{u1, 0} α ENNReal ENNReal.measurableSpace _inst_1 (f i) μ) -> (AEMeasurable.{u1, 0} α ENNReal ENNReal.measurableSpace _inst_1 (fun (x : α) => tsum.{0, u2} ENNReal (LinearOrderedAddCommMonoid.toAddCommMonoid.{0} ENNReal (LinearOrderedAddCommMonoidWithTop.toLinearOrderedAddCommMonoid.{0} ENNReal ENNReal.instLinearOrderedAddCommMonoidWithTopENNReal)) ENNReal.instTopologicalSpaceENNReal ι (fun (i : ι) => f i x)) μ)
-Case conversion may be inaccurate. Consider using '#align ae_measurable.ennreal_tsum AEMeasurable.ennreal_tsumₓ'. -/
@[measurability]
theorem AEMeasurable.ennreal_tsum {ι} [Countable ι] {f : ι → α → ℝ≥0∞} {μ : Measure α}
(h : ∀ i, AEMeasurable (f i) μ) : AEMeasurable (fun x => ∑' i, f i x) μ :=
@@ -2843,12 +2246,6 @@ theorem AEMeasurable.ennreal_tsum {ι} [Countable ι] {f : ι → α → ℝ≥0
exact fun s => Finset.aemeasurable_sum s fun i _ => h i
#align ae_measurable.ennreal_tsum AEMeasurable.ennreal_tsum
-/- warning: ae_measurable.nnreal_tsum -> AEMeasurable.nnreal_tsum is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_2 : MeasurableSpace.{u1} α] {ι : Type.{u2}} [_inst_3 : Countable.{succ u2} ι] {f : ι -> α -> NNReal} {μ : MeasureTheory.Measure.{u1} α _inst_2}, (forall (i : ι), AEMeasurable.{u1, 0} α NNReal NNReal.measurableSpace _inst_2 (f i) μ) -> (AEMeasurable.{u1, 0} α NNReal NNReal.measurableSpace _inst_2 (fun (x : α) => tsum.{0, u2} NNReal (OrderedCancelAddCommMonoid.toAddCommMonoid.{0} NNReal (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} NNReal NNReal.strictOrderedSemiring)) NNReal.topologicalSpace ι (fun (i : ι) => f i x)) μ)
-but is expected to have type
- forall {α : Type.{u2}} [_inst_2 : MeasurableSpace.{u2} α] {ι : Type.{u1}} [_inst_3 : Countable.{succ u1} ι] {f : ι -> α -> NNReal} {μ : MeasureTheory.Measure.{u2} α _inst_2}, (forall (i : ι), AEMeasurable.{u2, 0} α NNReal NNReal.measurableSpace _inst_2 (f i) μ) -> (AEMeasurable.{u2, 0} α NNReal NNReal.measurableSpace _inst_2 (fun (x : α) => tsum.{0, u1} NNReal (OrderedCancelAddCommMonoid.toAddCommMonoid.{0} NNReal (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} NNReal instNNRealStrictOrderedSemiring)) NNReal.instTopologicalSpaceNNReal ι (fun (i : ι) => f i x)) μ)
-Case conversion may be inaccurate. Consider using '#align ae_measurable.nnreal_tsum AEMeasurable.nnreal_tsumₓ'. -/
@[measurability]
theorem AEMeasurable.nnreal_tsum {α : Type _} [MeasurableSpace α] {ι : Type _} [Countable ι]
{f : ι → α → NNReal} {μ : MeasureTheory.Measure α} (h : ∀ i : ι, AEMeasurable (f i) μ) :
@@ -2881,12 +2278,6 @@ theorem AEMeasurable.coe_real_ereal {f : α → ℝ} {μ : Measure α} (hf : AEM
#align ae_measurable.coe_real_ereal AEMeasurable.coe_real_ereal
-/
-/- warning: measurable_equiv.ereal_equiv_real -> MeasurableEquiv.erealEquivReal is a dubious translation:
-lean 3 declaration is
- MeasurableEquiv.{0, 0} (coeSort.{1, 2} (Set.{0} EReal) Type (Set.hasCoeToSort.{0} EReal) (HasCompl.compl.{0} (Set.{0} EReal) (BooleanAlgebra.toHasCompl.{0} (Set.{0} EReal) (Set.booleanAlgebra.{0} EReal)) (Insert.insert.{0, 0} EReal (Set.{0} EReal) (Set.hasInsert.{0} EReal) (Bot.bot.{0} EReal EReal.hasBot) (Singleton.singleton.{0, 0} EReal (Set.{0} EReal) (Set.hasSingleton.{0} EReal) (Top.top.{0} EReal EReal.hasTop))))) Real (Subtype.instMeasurableSpace.{0} EReal (fun (x : EReal) => Membership.Mem.{0, 0} EReal (Set.{0} EReal) (Set.hasMem.{0} EReal) x (HasCompl.compl.{0} (Set.{0} EReal) (BooleanAlgebra.toHasCompl.{0} (Set.{0} EReal) (Set.booleanAlgebra.{0} EReal)) (Insert.insert.{0, 0} EReal (Set.{0} EReal) (Set.hasInsert.{0} EReal) (Bot.bot.{0} EReal EReal.hasBot) (Singleton.singleton.{0, 0} EReal (Set.{0} EReal) (Set.hasSingleton.{0} EReal) (Top.top.{0} EReal EReal.hasTop))))) EReal.measurableSpace) Real.measurableSpace
-but is expected to have type
- MeasurableEquiv.{0, 0} (Set.Elem.{0} EReal (HasCompl.compl.{0} (Set.{0} EReal) (BooleanAlgebra.toHasCompl.{0} (Set.{0} EReal) (Set.instBooleanAlgebraSet.{0} EReal)) (Insert.insert.{0, 0} EReal (Set.{0} EReal) (Set.instInsertSet.{0} EReal) (Bot.bot.{0} EReal instERealBot) (Singleton.singleton.{0, 0} EReal (Set.{0} EReal) (Set.instSingletonSet.{0} EReal) (Top.top.{0} EReal EReal.instTopEReal))))) Real (Subtype.instMeasurableSpace.{0} EReal (fun (x : EReal) => Membership.mem.{0, 0} EReal (Set.{0} EReal) (Set.instMembershipSet.{0} EReal) x (HasCompl.compl.{0} (Set.{0} EReal) (BooleanAlgebra.toHasCompl.{0} (Set.{0} EReal) (Set.instBooleanAlgebraSet.{0} EReal)) (Insert.insert.{0, 0} EReal (Set.{0} EReal) (Set.instInsertSet.{0} EReal) (Bot.bot.{0} EReal instERealBot) (Singleton.singleton.{0, 0} EReal (Set.{0} EReal) (Set.instSingletonSet.{0} EReal) (Top.top.{0} EReal EReal.instTopEReal))))) EReal.measurableSpace) Real.measurableSpace
-Case conversion may be inaccurate. Consider using '#align measurable_equiv.ereal_equiv_real MeasurableEquiv.erealEquivRealₓ'. -/
/-- The set of finite `ereal` numbers is `measurable_equiv` to `ℝ`. -/
def MeasurableEquiv.erealEquivReal : ({⊥, ⊤}ᶜ : Set EReal) ≃ᵐ ℝ :=
EReal.neBotTopHomeomorphReal.toMeasurableEquiv
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -155,12 +155,10 @@ theorem borel_eq_generateFrom_Iio : borel α = generateFrom (range Iio) :=
· rw [borel_eq_generateFrom_of_subbasis (@OrderTopology.topology_eq_generate_intervals α _ _ _)]
letI : MeasurableSpace α := MeasurableSpace.generateFrom (range Iio)
have H : ∀ a : α, MeasurableSet (Iio a) := fun a => generate_measurable.basic _ ⟨_, rfl⟩
- refine' generate_from_le _
- rintro _ ⟨a, rfl | rfl⟩ <;> [skip;apply H]
+ refine' generate_from_le _; rintro _ ⟨a, rfl | rfl⟩ <;> [skip;apply H]
by_cases h : ∃ a', ∀ b, a < b ↔ a' ≤ b
· rcases h with ⟨a', ha'⟩
- rw [(_ : Ioi a = Iio a'ᶜ)]
- · exact (H _).compl
+ rw [(_ : Ioi a = Iio a'ᶜ)]; · exact (H _).compl
simp [Set.ext_iff, ha']
· rcases is_open_Union_countable (fun a' : { a' : α // a < a' } => { b | a'.1 < b }) fun a' =>
isOpen_lt' _ with ⟨v, ⟨hv⟩, vu⟩
@@ -173,8 +171,7 @@ theorem borel_eq_generateFrom_Iio : borel α = generateFrom (range Iio) :=
· exact ⟨a', h₁, le_of_lt h₂⟩
refine' not_imp_comm.1 (fun h => _) h
exact ⟨x, fun b => ⟨fun ab => le_of_not_lt fun h' => h ⟨b, ab, h'⟩, lt_of_lt_of_le ax⟩⟩
- rw [this]
- skip
+ rw [this]; skip
apply MeasurableSet.iUnion
exact fun _ => (H _).compl
· rw [forall_range_iff]
@@ -337,18 +334,14 @@ instance (priority := 100) BorelSpace.opensMeasurable {α : Type _} [Topological
#print Subtype.borelSpace /-
instance Subtype.borelSpace {α : Type _} [TopologicalSpace α] [MeasurableSpace α]
[hα : BorelSpace α] (s : Set α) : BorelSpace s :=
- ⟨by
- rw [hα.1, Subtype.instMeasurableSpace, ← borel_comap]
- rfl⟩
+ ⟨by rw [hα.1, Subtype.instMeasurableSpace, ← borel_comap]; rfl⟩
#align subtype.borel_space Subtype.borelSpace
-/
#print Subtype.opensMeasurableSpace /-
instance Subtype.opensMeasurableSpace {α : Type _} [TopologicalSpace α] [MeasurableSpace α]
[h : OpensMeasurableSpace α] (s : Set α) : OpensMeasurableSpace s :=
- ⟨by
- rw [borel_comap]
- exact comap_mono h.1⟩
+ ⟨by rw [borel_comap]; exact comap_mono h.1⟩
#align subtype.opens_measurable_space Subtype.opensMeasurableSpace
-/
@@ -440,9 +433,7 @@ but is expected to have type
forall {γ : Type.{u2}} {δ : Type.{u1}} [_inst_7 : TopologicalSpace.{u2} γ] [_inst_8 : MeasurableSpace.{u2} γ] [_inst_9 : BorelSpace.{u2} γ _inst_7 _inst_8] [_inst_13 : MeasurableSpace.{u1} δ] {f : δ -> γ}, (forall (s : Set.{u2} γ), (IsOpen.{u2} γ _inst_7 s) -> (MeasurableSet.{u1} δ _inst_13 (Set.preimage.{u1, u2} δ γ f s))) -> (Measurable.{u1, u2} δ γ _inst_13 _inst_8 f)
Case conversion may be inaccurate. Consider using '#align measurable_of_is_open measurable_of_isOpenₓ'. -/
theorem measurable_of_isOpen {f : δ → γ} (hf : ∀ s, IsOpen s → MeasurableSet (f ⁻¹' s)) :
- Measurable f := by
- rw [‹BorelSpace γ›.measurable_eq]
- exact measurable_generateFrom hf
+ Measurable f := by rw [‹BorelSpace γ›.measurable_eq]; exact measurable_generateFrom hf
#align measurable_of_is_open measurable_of_isOpen
/- warning: measurable_of_is_closed -> measurable_of_isClosed is a dubious translation:
@@ -634,10 +625,8 @@ instance nhdsWithin_Iic_isMeasurablyGenerated : (𝓝[Iic b] a).IsMeasurablyGene
-/
#print nhdsWithin_Icc_isMeasurablyGenerated /-
-instance nhdsWithin_Icc_isMeasurablyGenerated : IsMeasurablyGenerated (𝓝[Icc a b] x) :=
- by
- rw [← Ici_inter_Iic, nhdsWithin_inter]
- infer_instance
+instance nhdsWithin_Icc_isMeasurablyGenerated : IsMeasurablyGenerated (𝓝[Icc a b] x) := by
+ rw [← Ici_inter_Iic, nhdsWithin_inter]; infer_instance
#align nhds_within_Icc_is_measurably_generated nhdsWithin_Icc_isMeasurablyGenerated
-/
@@ -829,9 +818,7 @@ theorem Dense.borel_eq_generateFrom_Ico_mem_aux {α : Type _} [TopologicalSpace
rcases hd.exists_countable_dense_subset_bot_top with ⟨t, hts, hc, htd, htb, htt⟩
by_cases ha : ∀ b < a, (Ioo b a).Nonempty
· convert_to MeasurableSet (⋃ (l ∈ t) (u ∈ t) (hlu : l < u) (hu : u ≤ a), Ico l u)
- · ext y
- simp only [mem_Union, mem_Iio, mem_Ico]
- constructor
+ · ext y; simp only [mem_Union, mem_Iio, mem_Ico]; constructor
· intro hy
rcases htd.exists_le' (fun b hb => htb _ hb (hbot b hb)) y with ⟨l, hlt, hly⟩
rcases htd.exists_mem_open isOpen_Ioo (ha y hy) with ⟨u, hut, hyu, hua⟩
@@ -847,8 +834,7 @@ theorem Dense.borel_eq_generateFrom_Ico_mem_aux {α : Type _} [TopologicalSpace
· symm
simp only [← Ici_inter_Iio, ← Union_inter, inter_eq_right_iff_subset, subset_def, mem_Union,
mem_Ici, mem_Iio]
- intro x hx
- rcases htd.exists_le' (fun b hb => htb _ hb (hbot b hb)) x with ⟨z, hzt, hzx⟩
+ intro x hx; rcases htd.exists_le' (fun b hb => htb _ hb (hbot b hb)) x with ⟨z, hzt, hzx⟩
exact ⟨z, hzt, hzx.trans_lt hx, hzx⟩
· refine' MeasurableSet.biUnion hc fun x hx => MeasurableSet.iUnion fun hlt => _
exact generate_measurable.basic _ ⟨x, hts hx, a, ha, hlt, mem_singleton _⟩
@@ -984,16 +970,13 @@ theorem ext_of_Ico' {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
measure.ext_of_generate_from_of_cover_subset
(borel_space.measurable_eq.trans (borel_eq_generateFrom_Ico α)) (isPiSystem_Ico id id) _ this
_ _ _
- · rintro _ ⟨l, -, u, -, h, rfl⟩
- exact ⟨l, u, h, rfl⟩
+ · rintro _ ⟨l, -, u, -, h, rfl⟩; exact ⟨l, u, h, rfl⟩
· refine' sUnion_eq_univ_iff.2 fun x => _
rcases hsd.exists_le' hsb x with ⟨l, hls, hlx⟩
rcases hsd.exists_gt x with ⟨u, hus, hxu⟩
exact ⟨_, ⟨l, hls, u, hus, hlx.trans_lt hxu, rfl⟩, hlx, hxu⟩
- · rintro _ ⟨l, -, u, -, hlt, rfl⟩
- exact hμ hlt
- · rintro _ ⟨l, u, hlt, rfl⟩
- exact h hlt
+ · rintro _ ⟨l, -, u, -, hlt, rfl⟩; exact hμ hlt
+ · rintro _ ⟨l, u, hlt, rfl⟩; exact h hlt
#align measure_theory.measure.ext_of_Ico' MeasureTheory.Measure.ext_of_Ico'
/- warning: measure_theory.measure.ext_of_Ioc' -> MeasureTheory.Measure.ext_of_Ioc' is a dubious translation:
@@ -1056,8 +1039,7 @@ theorem ext_of_Iic {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
simp only [← bsupr_measure_Iic hsc (hsd.exists_ge' hst) this, h]
rw [← Iic_diff_Iic, measure_diff (Iic_subset_Iic.2 hlt.le) measurableSet_Iic,
measure_diff (Iic_subset_Iic.2 hlt.le) measurableSet_Iic, h a, h b]
- · rw [← h a]
- exact (measure_lt_top μ _).Ne
+ · rw [← h a]; exact (measure_lt_top μ _).Ne
· exact (measure_lt_top μ _).Ne
#align measure_theory.measure.ext_of_Iic MeasureTheory.Measure.ext_of_Iic
-/
@@ -1615,12 +1597,9 @@ private theorem ae_measurable.is_lub_of_nonempty {ι} (hι : Nonempty ι) {μ :
theorem AEMeasurable.isLUB {ι} {μ : Measure δ} [Countable ι] {f : ι → δ → α} {g : δ → α}
(hf : ∀ i, AEMeasurable (f i) μ) (hg : ∀ᵐ b ∂μ, IsLUB { a | ∃ i, f i b = a } (g b)) :
AEMeasurable g μ := by
- by_cases hμ : μ = 0
- · rw [hμ]
- exact aemeasurable_zero_measure
+ by_cases hμ : μ = 0; · rw [hμ]; exact aemeasurable_zero_measure
have : μ.ae.ne_bot := by simpa [ne_bot_iff]
- by_cases hι : Nonempty ι
- · exact ae_measurable.is_lub_of_nonempty hι hf hg
+ by_cases hι : Nonempty ι; · exact ae_measurable.is_lub_of_nonempty hι hf hg
suffices ∃ x, g =ᵐ[μ] fun y => g x by
exact ⟨fun y => g this.some, measurable_const, this.some_spec⟩
have h_empty : ∀ x, { a : α | ∃ i : ι, f i x = a } = ∅ :=
@@ -1852,8 +1831,7 @@ Case conversion may be inaccurate. Consider using '#align measurable_bsupr measu
theorem measurable_biSup {ι} (s : Set ι) {f : ι → δ → α} (hs : s.Countable)
(hf : ∀ i, Measurable (f i)) : Measurable fun b => ⨆ i ∈ s, f i b :=
by
- haveI : Encodable s := hs.to_encodable
- simp only [iSup_subtype']
+ haveI : Encodable s := hs.to_encodable; simp only [iSup_subtype']
exact measurable_iSup fun i => hf i
#align measurable_bsupr measurable_biSup
@@ -1880,8 +1858,7 @@ Case conversion may be inaccurate. Consider using '#align measurable_binfi measu
theorem measurable_biInf {ι} (s : Set ι) {f : ι → δ → α} (hs : s.Countable)
(hf : ∀ i, Measurable (f i)) : Measurable fun b => ⨅ i ∈ s, f i b :=
by
- haveI : Encodable s := hs.to_encodable
- simp only [iInf_subtype']
+ haveI : Encodable s := hs.to_encodable; simp only [iInf_subtype']
exact measurable_iInf fun i => hf i
#align measurable_binfi measurable_biInf
@@ -1971,8 +1948,7 @@ theorem measurable_cSup {ι} {f : ι → δ → α} {s : Set ι} (hs : s.Countab
by
cases' eq_empty_or_nonempty s with h2s h2s
· simp [h2s, measurable_const]
- · apply measurable_of_Iic
- intro y
+ · apply measurable_of_Iic; intro y
simp_rw [preimage, mem_Iic, csSup_le_iff (bdd _) (h2s.image _), ball_image_iff, set_of_forall]
exact MeasurableSet.biInter hs fun i hi => measurableSet_le (hf i) measurable_const
#align measurable_cSup measurable_cSup
@@ -2510,11 +2486,8 @@ but is expected to have type
Case conversion may be inaccurate. Consider using '#align real.measure_ext_Ioo_rat Real.measure_ext_Ioo_ratₓ'. -/
theorem measure_ext_Ioo_rat {μ ν : Measure ℝ} [LocallyFiniteMeasure μ]
(h : ∀ a b : ℚ, μ (Ioo a b) = ν (Ioo a b)) : μ = ν :=
- (finiteSpanningSetsInIooRat μ).ext borel_eq_generateFrom_Ioo_rat isPiSystem_Ioo_rat <|
- by
- simp only [mem_Union, mem_singleton_iff]
- rintro _ ⟨a, b, -, rfl⟩
- apply h
+ (finiteSpanningSetsInIooRat μ).ext borel_eq_generateFrom_Ioo_rat isPiSystem_Ioo_rat <| by
+ simp only [mem_Union, mem_singleton_iff]; rintro _ ⟨a, b, -, rfl⟩; apply h
#align real.measure_ext_Ioo_rat Real.measure_ext_Ioo_rat
/- warning: real.borel_eq_generate_from_Iio_rat -> Real.borel_eq_generateFrom_Iio_rat is a dubious translation:
@@ -2529,8 +2502,7 @@ theorem borel_eq_generateFrom_Iio_rat : borel ℝ = generateFrom (⋃ a : ℚ, {
refine' le_antisymm _ _
· rw [borel_eq_generate_from_Ioo_rat]
refine' generate_from_le fun t => _
- simp only [mem_Union, mem_singleton_iff]
- rintro ⟨a, b, h, rfl⟩
+ simp only [mem_Union, mem_singleton_iff]; rintro ⟨a, b, h, rfl⟩
rw [(Set.ext fun x => _ : Ioo (a : ℝ) b = (⋃ c > a, Iio cᶜ) ∩ Iio b)]
· have hg : ∀ q : ℚ, measurable_set[g] (Iio q) := fun q =>
generate_measurable.basic (Iio q) (by simp)
@@ -2542,9 +2514,7 @@ theorem borel_eq_generateFrom_Iio_rat : borel ℝ = generateFrom (⋃ a : ℚ, {
rcases exists_rat_btwn h with ⟨c, ac, cx⟩
exact ⟨c, Rat.cast_lt.1 ac, cx.le⟩
· refine' MeasurableSpace.generateFrom_le fun _ => _
- simp only [mem_Union, mem_singleton_iff]
- rintro ⟨r, rfl⟩
- exact measurableSet_Iio
+ simp only [mem_Union, mem_singleton_iff]; rintro ⟨r, rfl⟩; exact measurableSet_Iio
#align real.borel_eq_generate_from_Iio_rat Real.borel_eq_generateFrom_Iio_rat
end Real
@@ -2827,8 +2797,7 @@ Case conversion may be inaccurate. Consider using '#align measurable.ennreal_tsu
theorem Measurable.ennreal_tsum {ι} [Countable ι] {f : ι → α → ℝ≥0∞} (h : ∀ i, Measurable (f i)) :
Measurable fun x => ∑' i, f i x :=
by
- simp_rw [ENNReal.tsum_eq_iSup_sum]
- apply measurable_iSup
+ simp_rw [ENNReal.tsum_eq_iSup_sum]; apply measurable_iSup
exact fun s => s.measurable_sum fun i _ => h i
#align measurable.ennreal_tsum Measurable.ennreal_tsum
@@ -2870,8 +2839,7 @@ Case conversion may be inaccurate. Consider using '#align ae_measurable.ennreal_
theorem AEMeasurable.ennreal_tsum {ι} [Countable ι] {f : ι → α → ℝ≥0∞} {μ : Measure α}
(h : ∀ i, AEMeasurable (f i) μ) : AEMeasurable (fun x => ∑' i, f i x) μ :=
by
- simp_rw [ENNReal.tsum_eq_iSup_sum]
- apply aemeasurable_iSup
+ simp_rw [ENNReal.tsum_eq_iSup_sum]; apply aemeasurable_iSup
exact fun s => Finset.aemeasurable_sum s fun i _ => h i
#align ae_measurable.ennreal_tsum AEMeasurable.ennreal_tsum
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -801,10 +801,7 @@ theorem IsPreconnected.measurableSet (h : IsPreconnected s) : MeasurableSet s :=
-/
/- warning: generate_from_Ico_mem_le_borel -> generateFrom_Ico_mem_le_borel is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_18 : TopologicalSpace.{u1} α] [_inst_19 : LinearOrder.{u1} α] [_inst_20 : OrderClosedTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19))))] (s : Set.{u1} α) (t : Set.{u1} α), LE.le.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.hasLe.{u1} α) (MeasurableSpace.generateFrom.{u1} α (setOf.{u1} (Set.{u1} α) (fun (S : Set.{u1} α) => Exists.{succ u1} α (fun (l : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) l s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) l s) => Exists.{succ u1} α (fun (u : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) u t) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) u t) => Exists.{0} (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19))))) l u) (fun (h : LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19))))) l u) => Eq.{succ u1} (Set.{u1} α) (Set.Ico.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19)))) l u) S)))))))) (borel.{u1} α _inst_18)
-but is expected to have type
- forall {α : Type.{u1}} [_inst_18 : TopologicalSpace.{u1} α] [_inst_19 : LinearOrder.{u1} α] [_inst_20 : OrderClosedTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19)))))] (s : Set.{u1} α) (t : Set.{u1} α), LE.le.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.instLEMeasurableSpace.{u1} α) (MeasurableSpace.generateFrom.{u1} α (setOf.{u1} (Set.{u1} α) (fun (S : Set.{u1} α) => Exists.{succ u1} α (fun (l : α) => And (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) l s) (Exists.{succ u1} α (fun (u : α) => And (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) u t) (And (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19)))))) l u) (Eq.{succ u1} (Set.{u1} α) (Set.Ico.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19))))) l u) S)))))))) (borel.{u1} α _inst_18)
+<too large>
Case conversion may be inaccurate. Consider using '#align generate_from_Ico_mem_le_borel generateFrom_Ico_mem_le_borelₓ'. -/
theorem generateFrom_Ico_mem_le_borel {α : Type _} [TopologicalSpace α] [LinearOrder α]
[OrderClosedTopology α] (s t : Set α) :
@@ -817,10 +814,7 @@ theorem generateFrom_Ico_mem_le_borel {α : Type _} [TopologicalSpace α] [Linea
#align generate_from_Ico_mem_le_borel generateFrom_Ico_mem_le_borel
/- warning: dense.borel_eq_generate_from_Ico_mem_aux -> Dense.borel_eq_generateFrom_Ico_mem_aux is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_18 : TopologicalSpace.{u1} α] [_inst_19 : LinearOrder.{u1} α] [_inst_20 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19))))] [_inst_21 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] {s : Set.{u1} α}, (Dense.{u1} α _inst_18 s) -> (forall (x : α), (IsBot.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19))))) x) -> (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s)) -> (forall (x : α) (y : α), (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19))))) x y) -> (Eq.{succ u1} (Set.{u1} α) (Set.Ioo.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19)))) x y) (EmptyCollection.emptyCollection.{u1} (Set.{u1} α) (Set.hasEmptyc.{u1} α))) -> (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) y s)) -> (Eq.{succ u1} (MeasurableSpace.{u1} α) (borel.{u1} α _inst_18) (MeasurableSpace.generateFrom.{u1} α (setOf.{u1} (Set.{u1} α) (fun (S : Set.{u1} α) => Exists.{succ u1} α (fun (l : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) l s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) l s) => Exists.{succ u1} α (fun (u : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) u s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) u s) => Exists.{0} (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19))))) l u) (fun (h : LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19))))) l u) => Eq.{succ u1} (Set.{u1} α) (Set.Ico.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19)))) l u) S)))))))))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_18 : TopologicalSpace.{u1} α] [_inst_19 : LinearOrder.{u1} α] [_inst_20 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19)))))] [_inst_21 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] {s : Set.{u1} α}, (Dense.{u1} α _inst_18 s) -> (forall (x : α), (IsBot.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19)))))) x) -> (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s)) -> (forall (x : α) (y : α), (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19)))))) x y) -> (Eq.{succ u1} (Set.{u1} α) (Set.Ioo.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19))))) x y) (EmptyCollection.emptyCollection.{u1} (Set.{u1} α) (Set.instEmptyCollectionSet.{u1} α))) -> (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) y s)) -> (Eq.{succ u1} (MeasurableSpace.{u1} α) (borel.{u1} α _inst_18) (MeasurableSpace.generateFrom.{u1} α (setOf.{u1} (Set.{u1} α) (fun (S : Set.{u1} α) => Exists.{succ u1} α (fun (l : α) => And (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) l s) (Exists.{succ u1} α (fun (u : α) => And (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) u s) (And (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19)))))) l u) (Eq.{succ u1} (Set.{u1} α) (Set.Ico.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19))))) l u) S)))))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align dense.borel_eq_generate_from_Ico_mem_aux Dense.borel_eq_generateFrom_Ico_mem_auxₓ'. -/
theorem Dense.borel_eq_generateFrom_Ico_mem_aux {α : Type _} [TopologicalSpace α] [LinearOrder α]
[OrderTopology α] [SecondCountableTopology α] {s : Set α} (hd : Dense s)
@@ -861,10 +855,7 @@ theorem Dense.borel_eq_generateFrom_Ico_mem_aux {α : Type _} [TopologicalSpace
#align dense.borel_eq_generate_from_Ico_mem_aux Dense.borel_eq_generateFrom_Ico_mem_aux
/- warning: dense.borel_eq_generate_from_Ico_mem -> Dense.borel_eq_generateFrom_Ico_mem is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_18 : TopologicalSpace.{u1} α] [_inst_19 : LinearOrder.{u1} α] [_inst_20 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19))))] [_inst_21 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] [_inst_22 : DenselyOrdered.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19)))))] [_inst_23 : NoMinOrder.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19)))))] {s : Set.{u1} α}, (Dense.{u1} α _inst_18 s) -> (Eq.{succ u1} (MeasurableSpace.{u1} α) (borel.{u1} α _inst_18) (MeasurableSpace.generateFrom.{u1} α (setOf.{u1} (Set.{u1} α) (fun (S : Set.{u1} α) => Exists.{succ u1} α (fun (l : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) l s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) l s) => Exists.{succ u1} α (fun (u : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) u s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) u s) => Exists.{0} (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19))))) l u) (fun (h : LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19))))) l u) => Eq.{succ u1} (Set.{u1} α) (Set.Ico.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19)))) l u) S)))))))))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_18 : TopologicalSpace.{u1} α] [_inst_19 : LinearOrder.{u1} α] [_inst_20 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19)))))] [_inst_21 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] [_inst_22 : DenselyOrdered.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19))))))] [_inst_23 : NoMinOrder.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19))))))] {s : Set.{u1} α}, (Dense.{u1} α _inst_18 s) -> (Eq.{succ u1} (MeasurableSpace.{u1} α) (borel.{u1} α _inst_18) (MeasurableSpace.generateFrom.{u1} α (setOf.{u1} (Set.{u1} α) (fun (S : Set.{u1} α) => Exists.{succ u1} α (fun (l : α) => And (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) l s) (Exists.{succ u1} α (fun (u : α) => And (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) u s) (And (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19)))))) l u) (Eq.{succ u1} (Set.{u1} α) (Set.Ico.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19))))) l u) S)))))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align dense.borel_eq_generate_from_Ico_mem Dense.borel_eq_generateFrom_Ico_memₓ'. -/
theorem Dense.borel_eq_generateFrom_Ico_mem {α : Type _} [TopologicalSpace α] [LinearOrder α]
[OrderTopology α] [SecondCountableTopology α] [DenselyOrdered α] [NoMinOrder α] {s : Set α}
@@ -889,10 +880,7 @@ theorem borel_eq_generateFrom_Ico (α : Type _) [TopologicalSpace α] [SecondCou
#align borel_eq_generate_from_Ico borel_eq_generateFrom_Ico
/- warning: dense.borel_eq_generate_from_Ioc_mem_aux -> Dense.borel_eq_generateFrom_Ioc_mem_aux is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_18 : TopologicalSpace.{u1} α] [_inst_19 : LinearOrder.{u1} α] [_inst_20 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19))))] [_inst_21 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] {s : Set.{u1} α}, (Dense.{u1} α _inst_18 s) -> (forall (x : α), (IsTop.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19))))) x) -> (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s)) -> (forall (x : α) (y : α), (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19))))) x y) -> (Eq.{succ u1} (Set.{u1} α) (Set.Ioo.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19)))) x y) (EmptyCollection.emptyCollection.{u1} (Set.{u1} α) (Set.hasEmptyc.{u1} α))) -> (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s)) -> (Eq.{succ u1} (MeasurableSpace.{u1} α) (borel.{u1} α _inst_18) (MeasurableSpace.generateFrom.{u1} α (setOf.{u1} (Set.{u1} α) (fun (S : Set.{u1} α) => Exists.{succ u1} α (fun (l : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) l s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) l s) => Exists.{succ u1} α (fun (u : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) u s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) u s) => Exists.{0} (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19))))) l u) (fun (h : LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19))))) l u) => Eq.{succ u1} (Set.{u1} α) (Set.Ioc.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19)))) l u) S)))))))))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_18 : TopologicalSpace.{u1} α] [_inst_19 : LinearOrder.{u1} α] [_inst_20 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19)))))] [_inst_21 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] {s : Set.{u1} α}, (Dense.{u1} α _inst_18 s) -> (forall (x : α), (IsTop.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19)))))) x) -> (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s)) -> (forall (x : α) (y : α), (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19)))))) x y) -> (Eq.{succ u1} (Set.{u1} α) (Set.Ioo.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19))))) x y) (EmptyCollection.emptyCollection.{u1} (Set.{u1} α) (Set.instEmptyCollectionSet.{u1} α))) -> (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s)) -> (Eq.{succ u1} (MeasurableSpace.{u1} α) (borel.{u1} α _inst_18) (MeasurableSpace.generateFrom.{u1} α (setOf.{u1} (Set.{u1} α) (fun (S : Set.{u1} α) => Exists.{succ u1} α (fun (l : α) => And (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) l s) (Exists.{succ u1} α (fun (u : α) => And (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) u s) (And (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19)))))) l u) (Eq.{succ u1} (Set.{u1} α) (Set.Ioc.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19))))) l u) S)))))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align dense.borel_eq_generate_from_Ioc_mem_aux Dense.borel_eq_generateFrom_Ioc_mem_auxₓ'. -/
theorem Dense.borel_eq_generateFrom_Ioc_mem_aux {α : Type _} [TopologicalSpace α] [LinearOrder α]
[OrderTopology α] [SecondCountableTopology α] {s : Set α} (hd : Dense s)
@@ -908,10 +896,7 @@ theorem Dense.borel_eq_generateFrom_Ioc_mem_aux {α : Type _} [TopologicalSpace
#align dense.borel_eq_generate_from_Ioc_mem_aux Dense.borel_eq_generateFrom_Ioc_mem_aux
/- warning: dense.borel_eq_generate_from_Ioc_mem -> Dense.borel_eq_generateFrom_Ioc_mem is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_18 : TopologicalSpace.{u1} α] [_inst_19 : LinearOrder.{u1} α] [_inst_20 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19))))] [_inst_21 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] [_inst_22 : DenselyOrdered.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19)))))] [_inst_23 : NoMaxOrder.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19)))))] {s : Set.{u1} α}, (Dense.{u1} α _inst_18 s) -> (Eq.{succ u1} (MeasurableSpace.{u1} α) (borel.{u1} α _inst_18) (MeasurableSpace.generateFrom.{u1} α (setOf.{u1} (Set.{u1} α) (fun (S : Set.{u1} α) => Exists.{succ u1} α (fun (l : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) l s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) l s) => Exists.{succ u1} α (fun (u : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) u s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) u s) => Exists.{0} (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19))))) l u) (fun (h : LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19))))) l u) => Eq.{succ u1} (Set.{u1} α) (Set.Ioc.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19)))) l u) S)))))))))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_18 : TopologicalSpace.{u1} α] [_inst_19 : LinearOrder.{u1} α] [_inst_20 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19)))))] [_inst_21 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] [_inst_22 : DenselyOrdered.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19))))))] [_inst_23 : NoMaxOrder.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19))))))] {s : Set.{u1} α}, (Dense.{u1} α _inst_18 s) -> (Eq.{succ u1} (MeasurableSpace.{u1} α) (borel.{u1} α _inst_18) (MeasurableSpace.generateFrom.{u1} α (setOf.{u1} (Set.{u1} α) (fun (S : Set.{u1} α) => Exists.{succ u1} α (fun (l : α) => And (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) l s) (Exists.{succ u1} α (fun (u : α) => And (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) u s) (And (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19)))))) l u) (Eq.{succ u1} (Set.{u1} α) (Set.Ioc.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19))))) l u) S)))))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align dense.borel_eq_generate_from_Ioc_mem Dense.borel_eq_generateFrom_Ioc_memₓ'. -/
theorem Dense.borel_eq_generateFrom_Ioc_mem {α : Type _} [TopologicalSpace α] [LinearOrder α]
[OrderTopology α] [SecondCountableTopology α] [DenselyOrdered α] [NoMaxOrder α] {s : Set α}
@@ -1625,7 +1610,6 @@ private theorem ae_measurable.is_lub_of_nonempty {ι} (hι : Nonempty ι) {μ :
exact
(ite_ae_eq_of_measure_compl_zero g (fun x => (⟨g x⟩ : Nonempty α).some) (aeSeqSet hf p)
(aeSeq.measure_compl_aeSeqSet_eq_zero hf hg)).symm
-#align ae_measurable.is_lub_of_nonempty ae_measurable.is_lub_of_nonempty
#print AEMeasurable.isLUB /-
theorem AEMeasurable.isLUB {ι} {μ : Measure δ} [Countable ι] {f : ι → δ → α} {g : δ → α}
mathlib commit https://github.com/leanprover-community/mathlib/commit/8d33f09cd7089ecf074b4791907588245aec5d1b
@@ -156,7 +156,7 @@ theorem borel_eq_generateFrom_Iio : borel α = generateFrom (range Iio) :=
letI : MeasurableSpace α := MeasurableSpace.generateFrom (range Iio)
have H : ∀ a : α, MeasurableSet (Iio a) := fun a => generate_measurable.basic _ ⟨_, rfl⟩
refine' generate_from_le _
- rintro _ ⟨a, rfl | rfl⟩ <;> [skip, apply H]
+ rintro _ ⟨a, rfl | rfl⟩ <;> [skip;apply H]
by_cases h : ∃ a', ∀ b, a < b ↔ a' ≤ b
· rcases h with ⟨a', ha'⟩
rw [(_ : Ioi a = Iio a'ᶜ)]
mathlib commit https://github.com/leanprover-community/mathlib/commit/75e7fca56381d056096ce5d05e938f63a6567828
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Johannes Hölzl, Yury Kudryashov
! This file was ported from Lean 3 source module measure_theory.constructions.borel_space.basic
-! leanprover-community/mathlib commit 20d5763051978e9bc6428578ed070445df6a18b3
+! leanprover-community/mathlib commit 4280f5f32e16755ec7985ce11e189b6cd6ff6735
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -24,6 +24,9 @@ import Mathbin.Topology.Semicontinuous
/-!
# Borel (measurable) space
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
## Main definitions
* `borel α` : the least `σ`-algebra that contains all open sets;
mathlib commit https://github.com/leanprover-community/mathlib/commit/33c67ae661dd8988516ff7f247b0be3018cdd952
@@ -59,15 +59,29 @@ variable {α β γ γ₂ δ : Type _} {ι : Sort y} {s t u : Set α}
open MeasurableSpace TopologicalSpace
+#print borel /-
/-- `measurable_space` structure generated by `topological_space`. -/
def borel (α : Type u) [TopologicalSpace α] : MeasurableSpace α :=
generateFrom { s : Set α | IsOpen s }
#align borel borel
+-/
+/- warning: borel_eq_top_of_discrete -> borel_eq_top_of_discrete is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : DiscreteTopology.{u1} α _inst_1], Eq.{succ u1} (MeasurableSpace.{u1} α) (borel.{u1} α _inst_1) (Top.top.{u1} (MeasurableSpace.{u1} α) (CompleteLattice.toHasTop.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.completeLattice.{u1} α)))
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : DiscreteTopology.{u1} α _inst_1], Eq.{succ u1} (MeasurableSpace.{u1} α) (borel.{u1} α _inst_1) (Top.top.{u1} (MeasurableSpace.{u1} α) (CompleteLattice.toTop.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.instCompleteLatticeMeasurableSpace.{u1} α)))
+Case conversion may be inaccurate. Consider using '#align borel_eq_top_of_discrete borel_eq_top_of_discreteₓ'. -/
theorem borel_eq_top_of_discrete [TopologicalSpace α] [DiscreteTopology α] : borel α = ⊤ :=
top_le_iff.1 fun s hs => GenerateMeasurable.basic s (isOpen_discrete s)
#align borel_eq_top_of_discrete borel_eq_top_of_discrete
+/- warning: borel_eq_top_of_countable -> borel_eq_top_of_countable is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : T1Space.{u1} α _inst_1] [_inst_3 : Countable.{succ u1} α], Eq.{succ u1} (MeasurableSpace.{u1} α) (borel.{u1} α _inst_1) (Top.top.{u1} (MeasurableSpace.{u1} α) (CompleteLattice.toHasTop.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.completeLattice.{u1} α)))
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : T1Space.{u1} α _inst_1] [_inst_3 : Countable.{succ u1} α], Eq.{succ u1} (MeasurableSpace.{u1} α) (borel.{u1} α _inst_1) (Top.top.{u1} (MeasurableSpace.{u1} α) (CompleteLattice.toTop.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.instCompleteLatticeMeasurableSpace.{u1} α)))
+Case conversion may be inaccurate. Consider using '#align borel_eq_top_of_countable borel_eq_top_of_countableₓ'. -/
theorem borel_eq_top_of_countable [TopologicalSpace α] [T1Space α] [Countable α] : borel α = ⊤ :=
by
refine' top_le_iff.1 fun s hs => bUnion_of_singleton s ▸ _
@@ -78,6 +92,7 @@ theorem borel_eq_top_of_countable [TopologicalSpace α] [T1Space α] [Countable
exact is_closed_singleton.is_open_compl
#align borel_eq_top_of_countable borel_eq_top_of_countable
+#print borel_eq_generateFrom_of_subbasis /-
theorem borel_eq_generateFrom_of_subbasis {s : Set (Set α)} [t : TopologicalSpace α]
[SecondCountableTopology α] (hs : t = generateFrom s) : borel α = generateFrom s :=
le_antisymm
@@ -96,17 +111,23 @@ theorem borel_eq_generateFrom_of_subbasis {s : Set (Set α)} [t : TopologicalSpa
(generateFrom_le fun u hu =>
GenerateMeasurable.basic _ <| show t.IsOpen u by rw [hs] <;> exact generate_open.basic _ hu)
#align borel_eq_generate_from_of_subbasis borel_eq_generateFrom_of_subbasis
+-/
+#print TopologicalSpace.IsTopologicalBasis.borel_eq_generateFrom /-
theorem TopologicalSpace.IsTopologicalBasis.borel_eq_generateFrom [TopologicalSpace α]
[SecondCountableTopology α] {s : Set (Set α)} (hs : IsTopologicalBasis s) :
borel α = generateFrom s :=
borel_eq_generateFrom_of_subbasis hs.eq_generateFrom
#align topological_space.is_topological_basis.borel_eq_generate_from TopologicalSpace.IsTopologicalBasis.borel_eq_generateFrom
+-/
+#print isPiSystem_isOpen /-
theorem isPiSystem_isOpen [TopologicalSpace α] : IsPiSystem (IsOpen : Set α → Prop) :=
fun s hs t ht hst => IsOpen.inter hs ht
#align is_pi_system_is_open isPiSystem_isOpen
+-/
+#print borel_eq_generateFrom_isClosed /-
theorem borel_eq_generateFrom_isClosed [TopologicalSpace α] :
borel α = generateFrom { s | IsClosed s } :=
le_antisymm
@@ -116,6 +137,7 @@ theorem borel_eq_generateFrom_isClosed [TopologicalSpace α] :
(generateFrom_le fun t ht =>
@MeasurableSet.of_compl α _ (borel α) (GenerateMeasurable.basic _ <| isOpen_compl_iff.2 ht))
#align borel_eq_generate_from_is_closed borel_eq_generateFrom_isClosed
+-/
section OrderTopology
@@ -123,6 +145,7 @@ variable (α)
variable [TopologicalSpace α] [SecondCountableTopology α] [LinearOrder α] [OrderTopology α]
+#print borel_eq_generateFrom_Iio /-
theorem borel_eq_generateFrom_Iio : borel α = generateFrom (range Iio) :=
by
refine' le_antisymm _ (generate_from_le _)
@@ -155,11 +178,15 @@ theorem borel_eq_generateFrom_Iio : borel α = generateFrom (range Iio) :=
intro a
exact generate_measurable.basic _ isOpen_Iio
#align borel_eq_generate_from_Iio borel_eq_generateFrom_Iio
+-/
+#print borel_eq_generateFrom_Ioi /-
theorem borel_eq_generateFrom_Ioi : borel α = generateFrom (range Ioi) :=
@borel_eq_generateFrom_Iio αᵒᵈ _ (by infer_instance : SecondCountableTopology α) _ _
#align borel_eq_generate_from_Ioi borel_eq_generateFrom_Ioi
+-/
+#print borel_eq_generateFrom_Iic /-
theorem borel_eq_generateFrom_Iic : borel α = MeasurableSpace.generateFrom (range Iic) :=
by
rw [borel_eq_generateFrom_Ioi]
@@ -173,35 +200,50 @@ theorem borel_eq_generateFrom_Iic : borel α = MeasurableSpace.generateFrom (ran
rw [← compl_Ioi]
exact (MeasurableSpace.measurableSet_generateFrom (mem_range.mpr ⟨u, rfl⟩)).compl
#align borel_eq_generate_from_Iic borel_eq_generateFrom_Iic
+-/
+#print borel_eq_generateFrom_Ici /-
theorem borel_eq_generateFrom_Ici : borel α = MeasurableSpace.generateFrom (range Ici) :=
@borel_eq_generateFrom_Iic αᵒᵈ _ _ _ _
#align borel_eq_generate_from_Ici borel_eq_generateFrom_Ici
+-/
end OrderTopology
+#print borel_comap /-
theorem borel_comap {f : α → β} {t : TopologicalSpace β} :
@borel α (t.induced f) = (@borel β t).comap f :=
comap_generateFrom.symm
#align borel_comap borel_comap
+-/
+/- warning: continuous.borel_measurable -> Continuous.borel_measurable is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] {f : α -> β}, (Continuous.{u1, u2} α β _inst_1 _inst_2 f) -> (Measurable.{u1, u2} α β (borel.{u1} α _inst_1) (borel.{u2} β _inst_2) f)
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] {f : α -> β}, (Continuous.{u2, u1} α β _inst_1 _inst_2 f) -> (Measurable.{u2, u1} α β (borel.{u2} α _inst_1) (borel.{u1} β _inst_2) f)
+Case conversion may be inaccurate. Consider using '#align continuous.borel_measurable Continuous.borel_measurableₓ'. -/
theorem Continuous.borel_measurable [TopologicalSpace α] [TopologicalSpace β] {f : α → β}
(hf : Continuous f) : @Measurable α β (borel α) (borel β) f :=
Measurable.of_le_map <|
generateFrom_le fun s hs => GenerateMeasurable.basic (f ⁻¹' s) (hs.Preimage hf)
#align continuous.borel_measurable Continuous.borel_measurable
+#print OpensMeasurableSpace /-
/-- A space with `measurable_space` and `topological_space` structures such that
all open sets are measurable. -/
class OpensMeasurableSpace (α : Type _) [TopologicalSpace α] [h : MeasurableSpace α] : Prop where
borel_le : borel α ≤ h
#align opens_measurable_space OpensMeasurableSpace
+-/
+#print BorelSpace /-
/-- A space with `measurable_space` and `topological_space` structures such that
the `σ`-algebra of measurable sets is exactly the `σ`-algebra generated by open sets. -/
class BorelSpace (α : Type _) [TopologicalSpace α] [MeasurableSpace α] : Prop where
measurable_eq : ‹MeasurableSpace α› = borel α
#align borel_space BorelSpace
+-/
namespace Tactic
@@ -268,35 +310,46 @@ end Interactive
end Tactic
+#print OrderDual.opensMeasurableSpace /-
instance (priority := 100) OrderDual.opensMeasurableSpace {α : Type _} [TopologicalSpace α]
[MeasurableSpace α] [h : OpensMeasurableSpace α] : OpensMeasurableSpace αᵒᵈ
where borel_le := h.borel_le
#align order_dual.opens_measurable_space OrderDual.opensMeasurableSpace
+-/
+#print OrderDual.borelSpace /-
instance (priority := 100) OrderDual.borelSpace {α : Type _} [TopologicalSpace α]
[MeasurableSpace α] [h : BorelSpace α] : BorelSpace αᵒᵈ where measurable_eq := h.measurable_eq
#align order_dual.borel_space OrderDual.borelSpace
+-/
+#print BorelSpace.opensMeasurable /-
/-- In a `borel_space` all open sets are measurable. -/
-instance (priority := 100) BorelSpace.opens_measurable {α : Type _} [TopologicalSpace α]
+instance (priority := 100) BorelSpace.opensMeasurable {α : Type _} [TopologicalSpace α]
[MeasurableSpace α] [BorelSpace α] : OpensMeasurableSpace α :=
⟨ge_of_eq <| BorelSpace.measurable_eq⟩
-#align borel_space.opens_measurable BorelSpace.opens_measurable
+#align borel_space.opens_measurable BorelSpace.opensMeasurable
+-/
+#print Subtype.borelSpace /-
instance Subtype.borelSpace {α : Type _} [TopologicalSpace α] [MeasurableSpace α]
[hα : BorelSpace α] (s : Set α) : BorelSpace s :=
⟨by
rw [hα.1, Subtype.instMeasurableSpace, ← borel_comap]
rfl⟩
#align subtype.borel_space Subtype.borelSpace
+-/
+#print Subtype.opensMeasurableSpace /-
instance Subtype.opensMeasurableSpace {α : Type _} [TopologicalSpace α] [MeasurableSpace α]
[h : OpensMeasurableSpace α] (s : Set α) : OpensMeasurableSpace s :=
⟨by
rw [borel_comap]
exact comap_mono h.1⟩
#align subtype.opens_measurable_space Subtype.opensMeasurableSpace
+-/
+#print BorelSpace.countablyGenerated /-
instance (priority := 100) BorelSpace.countablyGenerated {α : Type _} [TopologicalSpace α]
[MeasurableSpace α] [BorelSpace α] [SecondCountableTopology α] : CountablyGenerated α :=
by
@@ -305,7 +358,14 @@ instance (priority := 100) BorelSpace.countablyGenerated {α : Type _} [Topologi
borelize α
exact hb.borel_eq_generate_from
#align borel_space.countably_generated BorelSpace.countablyGenerated
+-/
+/- warning: measurable_set.induction_on_open -> MeasurableSet.induction_on_open is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] {C : (Set.{u1} α) -> Prop}, (forall (U : Set.{u1} α), (IsOpen.{u1} α _inst_1 U) -> (C U)) -> (forall (t : Set.{u1} α), (MeasurableSet.{u1} α _inst_2 t) -> (C t) -> (C (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) t))) -> (forall (f : Nat -> (Set.{u1} α)), (Pairwise.{0} Nat (Function.onFun.{1, succ u1, 1} Nat (Set.{u1} α) Prop (Disjoint.{u1} (Set.{u1} α) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} α) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)))) f)) -> (forall (i : Nat), MeasurableSet.{u1} α _inst_2 (f i)) -> (forall (i : Nat), C (f i)) -> (C (Set.iUnion.{u1, 1} α Nat (fun (i : Nat) => f i)))) -> (forall {{t : Set.{u1} α}}, (MeasurableSet.{u1} α _inst_2 t) -> (C t))
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] {C : (Set.{u1} α) -> Prop}, (forall (U : Set.{u1} α), (IsOpen.{u1} α _inst_1 U) -> (C U)) -> (forall (t : Set.{u1} α), (MeasurableSet.{u1} α _inst_2 t) -> (C t) -> (C (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) t))) -> (forall (f : Nat -> (Set.{u1} α)), (Pairwise.{0} Nat (Function.onFun.{1, succ u1, 1} Nat (Set.{u1} α) Prop (Disjoint.{u1} (Set.{u1} α) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α)))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} α) (Preorder.toLE.{u1} (Set.{u1} α) (PartialOrder.toPreorder.{u1} (Set.{u1} α) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α)))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α))))))) f)) -> (forall (i : Nat), MeasurableSet.{u1} α _inst_2 (f i)) -> (forall (i : Nat), C (f i)) -> (C (Set.iUnion.{u1, 1} α Nat (fun (i : Nat) => f i)))) -> (forall {{t : Set.{u1} α}}, (MeasurableSet.{u1} α _inst_2 t) -> (C t))
+Case conversion may be inaccurate. Consider using '#align measurable_set.induction_on_open MeasurableSet.induction_on_openₓ'. -/
theorem MeasurableSet.induction_on_open [TopologicalSpace α] [MeasurableSpace α] [BorelSpace α]
{C : Set α → Prop} (h_open : ∀ U, IsOpen U → C U)
(h_compl : ∀ t, MeasurableSet t → C t → C (tᶜ))
@@ -323,51 +383,83 @@ variable [TopologicalSpace α] [MeasurableSpace α] [OpensMeasurableSpace α] [T
[MeasurableSpace β] [OpensMeasurableSpace β] [TopologicalSpace γ] [MeasurableSpace γ]
[BorelSpace γ] [TopologicalSpace γ₂] [MeasurableSpace γ₂] [BorelSpace γ₂] [MeasurableSpace δ]
+#print IsOpen.measurableSet /-
theorem IsOpen.measurableSet (h : IsOpen s) : MeasurableSet s :=
OpensMeasurableSpace.borel_le _ <| GenerateMeasurable.basic _ h
#align is_open.measurable_set IsOpen.measurableSet
+-/
+#print measurableSet_interior /-
@[measurability]
theorem measurableSet_interior : MeasurableSet (interior s) :=
isOpen_interior.MeasurableSet
#align measurable_set_interior measurableSet_interior
+-/
+#print IsGδ.measurableSet /-
theorem IsGδ.measurableSet (h : IsGδ s) : MeasurableSet s :=
by
rcases h with ⟨S, hSo, hSc, rfl⟩
exact MeasurableSet.sInter hSc fun t ht => (hSo t ht).MeasurableSet
#align is_Gδ.measurable_set IsGδ.measurableSet
+-/
+#print measurableSet_of_continuousAt /-
theorem measurableSet_of_continuousAt {β} [EMetricSpace β] (f : α → β) :
MeasurableSet { x | ContinuousAt f x } :=
(isGδ_setOf_continuousAt f).MeasurableSet
#align measurable_set_of_continuous_at measurableSet_of_continuousAt
+-/
+#print IsClosed.measurableSet /-
theorem IsClosed.measurableSet (h : IsClosed s) : MeasurableSet s :=
h.isOpen_compl.MeasurableSet.ofCompl
#align is_closed.measurable_set IsClosed.measurableSet
+-/
+#print IsCompact.measurableSet /-
theorem IsCompact.measurableSet [T2Space α] (h : IsCompact s) : MeasurableSet s :=
h.IsClosed.MeasurableSet
#align is_compact.measurable_set IsCompact.measurableSet
+-/
+#print measurableSet_closure /-
@[measurability]
theorem measurableSet_closure : MeasurableSet (closure s) :=
isClosed_closure.MeasurableSet
#align measurable_set_closure measurableSet_closure
+-/
+/- warning: measurable_of_is_open -> measurable_of_isOpen is a dubious translation:
+lean 3 declaration is
+ forall {γ : Type.{u1}} {δ : Type.{u2}} [_inst_7 : TopologicalSpace.{u1} γ] [_inst_8 : MeasurableSpace.{u1} γ] [_inst_9 : BorelSpace.{u1} γ _inst_7 _inst_8] [_inst_13 : MeasurableSpace.{u2} δ] {f : δ -> γ}, (forall (s : Set.{u1} γ), (IsOpen.{u1} γ _inst_7 s) -> (MeasurableSet.{u2} δ _inst_13 (Set.preimage.{u2, u1} δ γ f s))) -> (Measurable.{u2, u1} δ γ _inst_13 _inst_8 f)
+but is expected to have type
+ forall {γ : Type.{u2}} {δ : Type.{u1}} [_inst_7 : TopologicalSpace.{u2} γ] [_inst_8 : MeasurableSpace.{u2} γ] [_inst_9 : BorelSpace.{u2} γ _inst_7 _inst_8] [_inst_13 : MeasurableSpace.{u1} δ] {f : δ -> γ}, (forall (s : Set.{u2} γ), (IsOpen.{u2} γ _inst_7 s) -> (MeasurableSet.{u1} δ _inst_13 (Set.preimage.{u1, u2} δ γ f s))) -> (Measurable.{u1, u2} δ γ _inst_13 _inst_8 f)
+Case conversion may be inaccurate. Consider using '#align measurable_of_is_open measurable_of_isOpenₓ'. -/
theorem measurable_of_isOpen {f : δ → γ} (hf : ∀ s, IsOpen s → MeasurableSet (f ⁻¹' s)) :
Measurable f := by
rw [‹BorelSpace γ›.measurable_eq]
exact measurable_generateFrom hf
#align measurable_of_is_open measurable_of_isOpen
+/- warning: measurable_of_is_closed -> measurable_of_isClosed is a dubious translation:
+lean 3 declaration is
+ forall {γ : Type.{u1}} {δ : Type.{u2}} [_inst_7 : TopologicalSpace.{u1} γ] [_inst_8 : MeasurableSpace.{u1} γ] [_inst_9 : BorelSpace.{u1} γ _inst_7 _inst_8] [_inst_13 : MeasurableSpace.{u2} δ] {f : δ -> γ}, (forall (s : Set.{u1} γ), (IsClosed.{u1} γ _inst_7 s) -> (MeasurableSet.{u2} δ _inst_13 (Set.preimage.{u2, u1} δ γ f s))) -> (Measurable.{u2, u1} δ γ _inst_13 _inst_8 f)
+but is expected to have type
+ forall {γ : Type.{u2}} {δ : Type.{u1}} [_inst_7 : TopologicalSpace.{u2} γ] [_inst_8 : MeasurableSpace.{u2} γ] [_inst_9 : BorelSpace.{u2} γ _inst_7 _inst_8] [_inst_13 : MeasurableSpace.{u1} δ] {f : δ -> γ}, (forall (s : Set.{u2} γ), (IsClosed.{u2} γ _inst_7 s) -> (MeasurableSet.{u1} δ _inst_13 (Set.preimage.{u1, u2} δ γ f s))) -> (Measurable.{u1, u2} δ γ _inst_13 _inst_8 f)
+Case conversion may be inaccurate. Consider using '#align measurable_of_is_closed measurable_of_isClosedₓ'. -/
theorem measurable_of_isClosed {f : δ → γ} (hf : ∀ s, IsClosed s → MeasurableSet (f ⁻¹' s)) :
Measurable f := by
apply measurable_of_isOpen; intro s hs
rw [← MeasurableSet.compl_iff, ← preimage_compl]; apply hf; rw [isClosed_compl_iff]; exact hs
#align measurable_of_is_closed measurable_of_isClosed
+/- warning: measurable_of_is_closed' -> measurable_of_is_closed' is a dubious translation:
+lean 3 declaration is
+ forall {γ : Type.{u1}} {δ : Type.{u2}} [_inst_7 : TopologicalSpace.{u1} γ] [_inst_8 : MeasurableSpace.{u1} γ] [_inst_9 : BorelSpace.{u1} γ _inst_7 _inst_8] [_inst_13 : MeasurableSpace.{u2} δ] {f : δ -> γ}, (forall (s : Set.{u1} γ), (IsClosed.{u1} γ _inst_7 s) -> (Set.Nonempty.{u1} γ s) -> (Ne.{succ u1} (Set.{u1} γ) s (Set.univ.{u1} γ)) -> (MeasurableSet.{u2} δ _inst_13 (Set.preimage.{u2, u1} δ γ f s))) -> (Measurable.{u2, u1} δ γ _inst_13 _inst_8 f)
+but is expected to have type
+ forall {γ : Type.{u2}} {δ : Type.{u1}} [_inst_7 : TopologicalSpace.{u2} γ] [_inst_8 : MeasurableSpace.{u2} γ] [_inst_9 : BorelSpace.{u2} γ _inst_7 _inst_8] [_inst_13 : MeasurableSpace.{u1} δ] {f : δ -> γ}, (forall (s : Set.{u2} γ), (IsClosed.{u2} γ _inst_7 s) -> (Set.Nonempty.{u2} γ s) -> (Ne.{succ u2} (Set.{u2} γ) s (Set.univ.{u2} γ)) -> (MeasurableSet.{u1} δ _inst_13 (Set.preimage.{u1, u2} δ γ f s))) -> (Measurable.{u1, u2} δ γ _inst_13 _inst_8 f)
+Case conversion may be inaccurate. Consider using '#align measurable_of_is_closed' measurable_of_is_closed'ₓ'. -/
theorem measurable_of_is_closed' {f : δ → γ}
(hf : ∀ s, IsClosed s → s.Nonempty → s ≠ univ → MeasurableSet (f ⁻¹' s)) : Measurable f :=
by
@@ -377,13 +469,16 @@ theorem measurable_of_is_closed' {f : δ → γ}
exact hf s hs h1 h2
#align measurable_of_is_closed' measurable_of_is_closed'
+#print nhds_isMeasurablyGenerated /-
instance nhds_isMeasurablyGenerated (a : α) : (𝓝 a).IsMeasurablyGenerated :=
by
rw [nhds, iInf_subtype']
refine' @Filter.iInf_isMeasurablyGenerated _ _ _ _ fun i => _
exact i.2.2.MeasurableSet.principal_isMeasurablyGenerated
#align nhds_is_measurably_generated nhds_isMeasurablyGenerated
+-/
+#print MeasurableSet.nhdsWithin_isMeasurablyGenerated /-
/-- If `s` is a measurable set, then `𝓝[s] a` is a measurably generated filter for
each `a`. This cannot be an `instance` because it depends on a non-instance `hs : measurable_set s`.
-/
@@ -392,13 +487,17 @@ theorem MeasurableSet.nhdsWithin_isMeasurablyGenerated {s : Set α} (hs : Measur
haveI := hs.principal_is_measurably_generated
Filter.inf_isMeasurablyGenerated _ _
#align measurable_set.nhds_within_is_measurably_generated MeasurableSet.nhdsWithin_isMeasurablyGenerated
+-/
+#print OpensMeasurableSpace.toMeasurableSingletonClass /-
-- see Note [lower instance priority]
-instance (priority := 100) OpensMeasurableSpace.to_measurableSingletonClass [T1Space α] :
+instance (priority := 100) OpensMeasurableSpace.toMeasurableSingletonClass [T1Space α] :
MeasurableSingletonClass α :=
⟨fun x => isClosed_singleton.MeasurableSet⟩
-#align opens_measurable_space.to_measurable_singleton_class OpensMeasurableSpace.to_measurableSingletonClass
+#align opens_measurable_space.to_measurable_singleton_class OpensMeasurableSpace.toMeasurableSingletonClass
+-/
+#print Pi.opensMeasurableSpace /-
instance Pi.opensMeasurableSpace {ι : Type _} {π : ι → Type _} [Countable ι]
[t' : ∀ i, TopologicalSpace (π i)] [∀ i, MeasurableSpace (π i)]
[∀ i, SecondCountableTopology (π i)] [∀ i, OpensMeasurableSpace (π i)] :
@@ -418,7 +517,14 @@ instance Pi.opensMeasurableSpace {ι : Type _} {π : ι → Type _} [Countable
rw [eq_generate_from_countable_basis (π a)]
exact generate_open.basic _ (hi a ha)
#align pi.opens_measurable_space Pi.opensMeasurableSpace
+-/
+/- warning: prod.opens_measurable_space -> Prod.opensMeasurableSpace is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u2} β] [_inst_5 : MeasurableSpace.{u2} β] [_inst_6 : OpensMeasurableSpace.{u2} β _inst_4 _inst_5] [_inst_14 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] [_inst_15 : TopologicalSpace.SecondCountableTopology.{u2} β _inst_4], OpensMeasurableSpace.{max u1 u2} (Prod.{u1, u2} α β) (Prod.topologicalSpace.{u1, u2} α β _inst_1 _inst_4) (Prod.instMeasurableSpace.{u1, u2} α β _inst_2 _inst_5)
+but is expected to have type
+ forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u2} β] [_inst_5 : MeasurableSpace.{u2} β] [_inst_6 : OpensMeasurableSpace.{u2} β _inst_4 _inst_5] [_inst_14 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] [_inst_15 : TopologicalSpace.SecondCountableTopology.{u2} β _inst_4], OpensMeasurableSpace.{max u2 u1} (Prod.{u1, u2} α β) (instTopologicalSpaceProd.{u1, u2} α β _inst_1 _inst_4) (Prod.instMeasurableSpace.{u1, u2} α β _inst_2 _inst_5)
+Case conversion may be inaccurate. Consider using '#align prod.opens_measurable_space Prod.opensMeasurableSpaceₓ'. -/
instance Prod.opensMeasurableSpace [SecondCountableTopology α] [SecondCountableTopology β] :
OpensMeasurableSpace (α × β) := by
constructor
@@ -432,26 +538,56 @@ instance Prod.opensMeasurableSpace [SecondCountableTopology α] [SecondCountable
variable {α' : Type _} [TopologicalSpace α'] [MeasurableSpace α']
+/- warning: interior_ae_eq_of_null_frontier -> interior_ae_eq_of_null_frontier is a dubious translation:
+lean 3 declaration is
+ forall {α' : Type.{u1}} [_inst_14 : TopologicalSpace.{u1} α'] [_inst_15 : MeasurableSpace.{u1} α'] {μ : MeasureTheory.Measure.{u1} α' _inst_15} {s : Set.{u1} α'}, (Eq.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α' _inst_15) (fun (_x : MeasureTheory.Measure.{u1} α' _inst_15) => (Set.{u1} α') -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α' _inst_15) μ (frontier.{u1} α' _inst_14 s)) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero)))) -> (Filter.EventuallyEq.{u1, 0} α' Prop (MeasureTheory.Measure.ae.{u1} α' _inst_15 μ) (interior.{u1} α' _inst_14 s) s)
+but is expected to have type
+ forall {α' : Type.{u1}} [_inst_14 : TopologicalSpace.{u1} α'] [_inst_15 : MeasurableSpace.{u1} α'] {μ : MeasureTheory.Measure.{u1} α' _inst_15} {s : Set.{u1} α'}, (Eq.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α' (MeasureTheory.Measure.toOuterMeasure.{u1} α' _inst_15 μ) (frontier.{u1} α' _inst_14 s)) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero))) -> (Filter.EventuallyEq.{u1, 0} α' Prop (MeasureTheory.Measure.ae.{u1} α' _inst_15 μ) (interior.{u1} α' _inst_14 s) s)
+Case conversion may be inaccurate. Consider using '#align interior_ae_eq_of_null_frontier interior_ae_eq_of_null_frontierₓ'. -/
theorem interior_ae_eq_of_null_frontier {μ : Measure α'} {s : Set α'} (h : μ (frontier s) = 0) :
interior s =ᵐ[μ] s :=
interior_subset.EventuallyLE.antisymm <| subset_closure.EventuallyLE.trans (ae_le_set.2 h)
#align interior_ae_eq_of_null_frontier interior_ae_eq_of_null_frontier
+/- warning: measure_interior_of_null_frontier -> measure_interior_of_null_frontier is a dubious translation:
+lean 3 declaration is
+ forall {α' : Type.{u1}} [_inst_14 : TopologicalSpace.{u1} α'] [_inst_15 : MeasurableSpace.{u1} α'] {μ : MeasureTheory.Measure.{u1} α' _inst_15} {s : Set.{u1} α'}, (Eq.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α' _inst_15) (fun (_x : MeasureTheory.Measure.{u1} α' _inst_15) => (Set.{u1} α') -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α' _inst_15) μ (frontier.{u1} α' _inst_14 s)) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero)))) -> (Eq.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α' _inst_15) (fun (_x : MeasureTheory.Measure.{u1} α' _inst_15) => (Set.{u1} α') -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α' _inst_15) μ (interior.{u1} α' _inst_14 s)) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α' _inst_15) (fun (_x : MeasureTheory.Measure.{u1} α' _inst_15) => (Set.{u1} α') -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α' _inst_15) μ s))
+but is expected to have type
+ forall {α' : Type.{u1}} [_inst_14 : TopologicalSpace.{u1} α'] [_inst_15 : MeasurableSpace.{u1} α'] {μ : MeasureTheory.Measure.{u1} α' _inst_15} {s : Set.{u1} α'}, (Eq.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α' (MeasureTheory.Measure.toOuterMeasure.{u1} α' _inst_15 μ) (frontier.{u1} α' _inst_14 s)) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero))) -> (Eq.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α' (MeasureTheory.Measure.toOuterMeasure.{u1} α' _inst_15 μ) (interior.{u1} α' _inst_14 s)) (MeasureTheory.OuterMeasure.measureOf.{u1} α' (MeasureTheory.Measure.toOuterMeasure.{u1} α' _inst_15 μ) s))
+Case conversion may be inaccurate. Consider using '#align measure_interior_of_null_frontier measure_interior_of_null_frontierₓ'. -/
theorem measure_interior_of_null_frontier {μ : Measure α'} {s : Set α'} (h : μ (frontier s) = 0) :
μ (interior s) = μ s :=
measure_congr (interior_ae_eq_of_null_frontier h)
#align measure_interior_of_null_frontier measure_interior_of_null_frontier
+/- warning: null_measurable_set_of_null_frontier -> nullMeasurableSet_of_null_frontier is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] {s : Set.{u1} α} {μ : MeasureTheory.Measure.{u1} α _inst_2}, (Eq.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α _inst_2) (fun (_x : MeasureTheory.Measure.{u1} α _inst_2) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α _inst_2) μ (frontier.{u1} α _inst_1 s)) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero)))) -> (MeasureTheory.NullMeasurableSet.{u1} α _inst_2 s μ)
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] {s : Set.{u1} α} {μ : MeasureTheory.Measure.{u1} α _inst_2}, (Eq.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α _inst_2 μ) (frontier.{u1} α _inst_1 s)) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero))) -> (MeasureTheory.NullMeasurableSet.{u1} α _inst_2 s μ)
+Case conversion may be inaccurate. Consider using '#align null_measurable_set_of_null_frontier nullMeasurableSet_of_null_frontierₓ'. -/
theorem nullMeasurableSet_of_null_frontier {s : Set α} {μ : Measure α} (h : μ (frontier s) = 0) :
NullMeasurableSet s μ :=
⟨interior s, isOpen_interior.MeasurableSet, (interior_ae_eq_of_null_frontier h).symm⟩
#align null_measurable_set_of_null_frontier nullMeasurableSet_of_null_frontier
+/- warning: closure_ae_eq_of_null_frontier -> closure_ae_eq_of_null_frontier is a dubious translation:
+lean 3 declaration is
+ forall {α' : Type.{u1}} [_inst_14 : TopologicalSpace.{u1} α'] [_inst_15 : MeasurableSpace.{u1} α'] {μ : MeasureTheory.Measure.{u1} α' _inst_15} {s : Set.{u1} α'}, (Eq.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α' _inst_15) (fun (_x : MeasureTheory.Measure.{u1} α' _inst_15) => (Set.{u1} α') -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α' _inst_15) μ (frontier.{u1} α' _inst_14 s)) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero)))) -> (Filter.EventuallyEq.{u1, 0} α' Prop (MeasureTheory.Measure.ae.{u1} α' _inst_15 μ) (closure.{u1} α' _inst_14 s) s)
+but is expected to have type
+ forall {α' : Type.{u1}} [_inst_14 : TopologicalSpace.{u1} α'] [_inst_15 : MeasurableSpace.{u1} α'] {μ : MeasureTheory.Measure.{u1} α' _inst_15} {s : Set.{u1} α'}, (Eq.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α' (MeasureTheory.Measure.toOuterMeasure.{u1} α' _inst_15 μ) (frontier.{u1} α' _inst_14 s)) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero))) -> (Filter.EventuallyEq.{u1, 0} α' Prop (MeasureTheory.Measure.ae.{u1} α' _inst_15 μ) (closure.{u1} α' _inst_14 s) s)
+Case conversion may be inaccurate. Consider using '#align closure_ae_eq_of_null_frontier closure_ae_eq_of_null_frontierₓ'. -/
theorem closure_ae_eq_of_null_frontier {μ : Measure α'} {s : Set α'} (h : μ (frontier s) = 0) :
closure s =ᵐ[μ] s :=
((ae_le_set.2 h).trans interior_subset.EventuallyLE).antisymm <| subset_closure.EventuallyLE
#align closure_ae_eq_of_null_frontier closure_ae_eq_of_null_frontier
+/- warning: measure_closure_of_null_frontier -> measure_closure_of_null_frontier is a dubious translation:
+lean 3 declaration is
+ forall {α' : Type.{u1}} [_inst_14 : TopologicalSpace.{u1} α'] [_inst_15 : MeasurableSpace.{u1} α'] {μ : MeasureTheory.Measure.{u1} α' _inst_15} {s : Set.{u1} α'}, (Eq.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α' _inst_15) (fun (_x : MeasureTheory.Measure.{u1} α' _inst_15) => (Set.{u1} α') -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α' _inst_15) μ (frontier.{u1} α' _inst_14 s)) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero)))) -> (Eq.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α' _inst_15) (fun (_x : MeasureTheory.Measure.{u1} α' _inst_15) => (Set.{u1} α') -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α' _inst_15) μ (closure.{u1} α' _inst_14 s)) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α' _inst_15) (fun (_x : MeasureTheory.Measure.{u1} α' _inst_15) => (Set.{u1} α') -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α' _inst_15) μ s))
+but is expected to have type
+ forall {α' : Type.{u1}} [_inst_14 : TopologicalSpace.{u1} α'] [_inst_15 : MeasurableSpace.{u1} α'] {μ : MeasureTheory.Measure.{u1} α' _inst_15} {s : Set.{u1} α'}, (Eq.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α' (MeasureTheory.Measure.toOuterMeasure.{u1} α' _inst_15 μ) (frontier.{u1} α' _inst_14 s)) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero))) -> (Eq.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α' (MeasureTheory.Measure.toOuterMeasure.{u1} α' _inst_15 μ) (closure.{u1} α' _inst_14 s)) (MeasureTheory.OuterMeasure.measureOf.{u1} α' (MeasureTheory.Measure.toOuterMeasure.{u1} α' _inst_15 μ) s))
+Case conversion may be inaccurate. Consider using '#align measure_closure_of_null_frontier measure_closure_of_null_frontierₓ'. -/
theorem measure_closure_of_null_frontier {μ : Measure α'} {s : Set α'} (h : μ (frontier s) = 0) :
μ (closure s) = μ s :=
measure_congr (closure_ae_eq_of_null_frontier h)
@@ -461,44 +597,60 @@ section Preorder
variable [Preorder α] [OrderClosedTopology α] {a b x : α}
+#print measurableSet_Ici /-
@[simp, measurability]
theorem measurableSet_Ici : MeasurableSet (Ici a) :=
isClosed_Ici.MeasurableSet
#align measurable_set_Ici measurableSet_Ici
+-/
+#print measurableSet_Iic /-
@[simp, measurability]
theorem measurableSet_Iic : MeasurableSet (Iic a) :=
isClosed_Iic.MeasurableSet
#align measurable_set_Iic measurableSet_Iic
+-/
+#print measurableSet_Icc /-
@[simp, measurability]
theorem measurableSet_Icc : MeasurableSet (Icc a b) :=
isClosed_Icc.MeasurableSet
#align measurable_set_Icc measurableSet_Icc
+-/
+#print nhdsWithin_Ici_isMeasurablyGenerated /-
instance nhdsWithin_Ici_isMeasurablyGenerated : (𝓝[Ici b] a).IsMeasurablyGenerated :=
measurableSet_Ici.nhdsWithin_isMeasurablyGenerated _
#align nhds_within_Ici_is_measurably_generated nhdsWithin_Ici_isMeasurablyGenerated
+-/
+#print nhdsWithin_Iic_isMeasurablyGenerated /-
instance nhdsWithin_Iic_isMeasurablyGenerated : (𝓝[Iic b] a).IsMeasurablyGenerated :=
measurableSet_Iic.nhdsWithin_isMeasurablyGenerated _
#align nhds_within_Iic_is_measurably_generated nhdsWithin_Iic_isMeasurablyGenerated
+-/
+#print nhdsWithin_Icc_isMeasurablyGenerated /-
instance nhdsWithin_Icc_isMeasurablyGenerated : IsMeasurablyGenerated (𝓝[Icc a b] x) :=
by
rw [← Ici_inter_Iic, nhdsWithin_inter]
infer_instance
#align nhds_within_Icc_is_measurably_generated nhdsWithin_Icc_isMeasurablyGenerated
+-/
+#print atTop_isMeasurablyGenerated /-
instance atTop_isMeasurablyGenerated : (Filter.atTop : Filter α).IsMeasurablyGenerated :=
@Filter.iInf_isMeasurablyGenerated _ _ _ _ fun a =>
(measurableSet_Ici : MeasurableSet (Ici a)).principal_isMeasurablyGenerated
#align at_top_is_measurably_generated atTop_isMeasurablyGenerated
+-/
+#print atBot_isMeasurablyGenerated /-
instance atBot_isMeasurablyGenerated : (Filter.atBot : Filter α).IsMeasurablyGenerated :=
@Filter.iInf_isMeasurablyGenerated _ _ _ _ fun a =>
(measurableSet_Iic : MeasurableSet (Iic a)).principal_isMeasurablyGenerated
#align at_bot_is_measurably_generated atBot_isMeasurablyGenerated
+-/
end Preorder
@@ -506,11 +658,23 @@ section PartialOrder
variable [PartialOrder α] [OrderClosedTopology α] [SecondCountableTopology α] {a b : α}
+/- warning: measurable_set_le' -> measurableSet_le' is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_16 : PartialOrder.{u1} α] [_inst_17 : OrderClosedTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α _inst_16)] [_inst_18 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1], MeasurableSet.{u1} (Prod.{u1, u1} α α) (Prod.instMeasurableSpace.{u1, u1} α α _inst_2 _inst_2) (setOf.{u1} (Prod.{u1, u1} α α) (fun (p : Prod.{u1, u1} α α) => LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_16)) (Prod.fst.{u1, u1} α α p) (Prod.snd.{u1, u1} α α p)))
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_16 : PartialOrder.{u1} α] [_inst_17 : OrderClosedTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α _inst_16)] [_inst_18 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1], MeasurableSet.{u1} (Prod.{u1, u1} α α) (Prod.instMeasurableSpace.{u1, u1} α α _inst_2 _inst_2) (setOf.{u1} (Prod.{u1, u1} α α) (fun (p : Prod.{u1, u1} α α) => LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_16)) (Prod.fst.{u1, u1} α α p) (Prod.snd.{u1, u1} α α p)))
+Case conversion may be inaccurate. Consider using '#align measurable_set_le' measurableSet_le'ₓ'. -/
@[measurability]
theorem measurableSet_le' : MeasurableSet { p : α × α | p.1 ≤ p.2 } :=
OrderClosedTopology.isClosed_le'.MeasurableSet
#align measurable_set_le' measurableSet_le'
+/- warning: measurable_set_le -> measurableSet_le is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_13 : MeasurableSpace.{u2} δ] [_inst_16 : PartialOrder.{u1} α] [_inst_17 : OrderClosedTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α _inst_16)] [_inst_18 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {f : δ -> α} {g : δ -> α}, (Measurable.{u2, u1} δ α _inst_13 _inst_2 f) -> (Measurable.{u2, u1} δ α _inst_13 _inst_2 g) -> (MeasurableSet.{u2} δ _inst_13 (setOf.{u2} δ (fun (a : δ) => LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_16)) (f a) (g a))))
+but is expected to have type
+ forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_13 : MeasurableSpace.{u2} δ] [_inst_16 : PartialOrder.{u1} α] [_inst_17 : OrderClosedTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α _inst_16)] [_inst_18 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {f : δ -> α} {g : δ -> α}, (Measurable.{u2, u1} δ α _inst_13 _inst_2 f) -> (Measurable.{u2, u1} δ α _inst_13 _inst_2 g) -> (MeasurableSet.{u2} δ _inst_13 (setOf.{u2} δ (fun (a : δ) => LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_16)) (f a) (g a))))
+Case conversion may be inaccurate. Consider using '#align measurable_set_le measurableSet_leₓ'. -/
@[measurability]
theorem measurableSet_le {f g : δ → α} (hf : Measurable f) (hg : Measurable g) :
MeasurableSet { a | f a ≤ g a } :=
@@ -526,59 +690,94 @@ variable [LinearOrder α] [OrderClosedTopology α] {a b x : α}
-- we open this locale only here to avoid issues with list being treated as intervals above
open Interval
+#print measurableSet_Iio /-
@[simp, measurability]
theorem measurableSet_Iio : MeasurableSet (Iio a) :=
isOpen_Iio.MeasurableSet
#align measurable_set_Iio measurableSet_Iio
+-/
+#print measurableSet_Ioi /-
@[simp, measurability]
theorem measurableSet_Ioi : MeasurableSet (Ioi a) :=
isOpen_Ioi.MeasurableSet
#align measurable_set_Ioi measurableSet_Ioi
+-/
+#print measurableSet_Ioo /-
@[simp, measurability]
theorem measurableSet_Ioo : MeasurableSet (Ioo a b) :=
isOpen_Ioo.MeasurableSet
#align measurable_set_Ioo measurableSet_Ioo
+-/
+#print measurableSet_Ioc /-
@[simp, measurability]
theorem measurableSet_Ioc : MeasurableSet (Ioc a b) :=
measurableSet_Ioi.inter measurableSet_Iic
#align measurable_set_Ioc measurableSet_Ioc
+-/
+#print measurableSet_Ico /-
@[simp, measurability]
theorem measurableSet_Ico : MeasurableSet (Ico a b) :=
measurableSet_Ici.inter measurableSet_Iio
#align measurable_set_Ico measurableSet_Ico
+-/
+#print nhdsWithin_Ioi_isMeasurablyGenerated /-
instance nhdsWithin_Ioi_isMeasurablyGenerated : (𝓝[Ioi b] a).IsMeasurablyGenerated :=
measurableSet_Ioi.nhdsWithin_isMeasurablyGenerated _
#align nhds_within_Ioi_is_measurably_generated nhdsWithin_Ioi_isMeasurablyGenerated
+-/
+#print nhdsWithin_Iio_isMeasurablyGenerated /-
instance nhdsWithin_Iio_isMeasurablyGenerated : (𝓝[Iio b] a).IsMeasurablyGenerated :=
measurableSet_Iio.nhdsWithin_isMeasurablyGenerated _
#align nhds_within_Iio_is_measurably_generated nhdsWithin_Iio_isMeasurablyGenerated
+-/
+#print nhdsWithin_uIcc_isMeasurablyGenerated /-
instance nhdsWithin_uIcc_isMeasurablyGenerated : IsMeasurablyGenerated (𝓝[[a, b]] x) :=
nhdsWithin_Icc_isMeasurablyGenerated
#align nhds_within_uIcc_is_measurably_generated nhdsWithin_uIcc_isMeasurablyGenerated
+-/
+/- warning: measurable_set_lt' -> measurableSet_lt' is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_16 : LinearOrder.{u1} α] [_inst_17 : OrderClosedTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_16))))] [_inst_18 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1], MeasurableSet.{u1} (Prod.{u1, u1} α α) (Prod.instMeasurableSpace.{u1, u1} α α _inst_2 _inst_2) (setOf.{u1} (Prod.{u1, u1} α α) (fun (p : Prod.{u1, u1} α α) => LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_16))))) (Prod.fst.{u1, u1} α α p) (Prod.snd.{u1, u1} α α p)))
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_16 : LinearOrder.{u1} α] [_inst_17 : OrderClosedTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_16)))))] [_inst_18 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1], MeasurableSet.{u1} (Prod.{u1, u1} α α) (Prod.instMeasurableSpace.{u1, u1} α α _inst_2 _inst_2) (setOf.{u1} (Prod.{u1, u1} α α) (fun (p : Prod.{u1, u1} α α) => LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_16)))))) (Prod.fst.{u1, u1} α α p) (Prod.snd.{u1, u1} α α p)))
+Case conversion may be inaccurate. Consider using '#align measurable_set_lt' measurableSet_lt'ₓ'. -/
@[measurability]
theorem measurableSet_lt' [SecondCountableTopology α] : MeasurableSet { p : α × α | p.1 < p.2 } :=
(isOpen_lt continuous_fst continuous_snd).MeasurableSet
#align measurable_set_lt' measurableSet_lt'
+/- warning: measurable_set_lt -> measurableSet_lt is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_13 : MeasurableSpace.{u2} δ] [_inst_16 : LinearOrder.{u1} α] [_inst_17 : OrderClosedTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_16))))] [_inst_18 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {f : δ -> α} {g : δ -> α}, (Measurable.{u2, u1} δ α _inst_13 _inst_2 f) -> (Measurable.{u2, u1} δ α _inst_13 _inst_2 g) -> (MeasurableSet.{u2} δ _inst_13 (setOf.{u2} δ (fun (a : δ) => LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_16))))) (f a) (g a))))
+but is expected to have type
+ forall {α : Type.{u2}} {δ : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : MeasurableSpace.{u2} α] [_inst_3 : OpensMeasurableSpace.{u2} α _inst_1 _inst_2] [_inst_13 : MeasurableSpace.{u1} δ] [_inst_16 : LinearOrder.{u2} α] [_inst_17 : OrderClosedTopology.{u2} α _inst_1 (PartialOrder.toPreorder.{u2} α (SemilatticeInf.toPartialOrder.{u2} α (Lattice.toSemilatticeInf.{u2} α (DistribLattice.toLattice.{u2} α (instDistribLattice.{u2} α _inst_16)))))] [_inst_18 : TopologicalSpace.SecondCountableTopology.{u2} α _inst_1] {f : δ -> α} {g : δ -> α}, (Measurable.{u1, u2} δ α _inst_13 _inst_2 f) -> (Measurable.{u1, u2} δ α _inst_13 _inst_2 g) -> (MeasurableSet.{u1} δ _inst_13 (setOf.{u1} δ (fun (a : δ) => LT.lt.{u2} α (Preorder.toLT.{u2} α (PartialOrder.toPreorder.{u2} α (SemilatticeInf.toPartialOrder.{u2} α (Lattice.toSemilatticeInf.{u2} α (DistribLattice.toLattice.{u2} α (instDistribLattice.{u2} α _inst_16)))))) (f a) (g a))))
+Case conversion may be inaccurate. Consider using '#align measurable_set_lt measurableSet_ltₓ'. -/
@[measurability]
theorem measurableSet_lt [SecondCountableTopology α] {f g : δ → α} (hf : Measurable f)
(hg : Measurable g) : MeasurableSet { a | f a < g a } :=
hf.prod_mk hg measurableSet_lt'
#align measurable_set_lt measurableSet_lt
+/- warning: null_measurable_set_lt -> nullMeasurableSet_lt is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_13 : MeasurableSpace.{u2} δ] [_inst_16 : LinearOrder.{u1} α] [_inst_17 : OrderClosedTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_16))))] [_inst_18 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {μ : MeasureTheory.Measure.{u2} δ _inst_13} {f : δ -> α} {g : δ -> α}, (AEMeasurable.{u2, u1} δ α _inst_2 _inst_13 f μ) -> (AEMeasurable.{u2, u1} δ α _inst_2 _inst_13 g μ) -> (MeasureTheory.NullMeasurableSet.{u2} δ _inst_13 (setOf.{u2} δ (fun (a : δ) => LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_16))))) (f a) (g a))) μ)
+but is expected to have type
+ forall {α : Type.{u2}} {δ : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : MeasurableSpace.{u2} α] [_inst_3 : OpensMeasurableSpace.{u2} α _inst_1 _inst_2] [_inst_13 : MeasurableSpace.{u1} δ] [_inst_16 : LinearOrder.{u2} α] [_inst_17 : OrderClosedTopology.{u2} α _inst_1 (PartialOrder.toPreorder.{u2} α (SemilatticeInf.toPartialOrder.{u2} α (Lattice.toSemilatticeInf.{u2} α (DistribLattice.toLattice.{u2} α (instDistribLattice.{u2} α _inst_16)))))] [_inst_18 : TopologicalSpace.SecondCountableTopology.{u2} α _inst_1] {μ : MeasureTheory.Measure.{u1} δ _inst_13} {f : δ -> α} {g : δ -> α}, (AEMeasurable.{u1, u2} δ α _inst_2 _inst_13 f μ) -> (AEMeasurable.{u1, u2} δ α _inst_2 _inst_13 g μ) -> (MeasureTheory.NullMeasurableSet.{u1} δ _inst_13 (setOf.{u1} δ (fun (a : δ) => LT.lt.{u2} α (Preorder.toLT.{u2} α (PartialOrder.toPreorder.{u2} α (SemilatticeInf.toPartialOrder.{u2} α (Lattice.toSemilatticeInf.{u2} α (DistribLattice.toLattice.{u2} α (instDistribLattice.{u2} α _inst_16)))))) (f a) (g a))) μ)
+Case conversion may be inaccurate. Consider using '#align null_measurable_set_lt nullMeasurableSet_ltₓ'. -/
theorem nullMeasurableSet_lt [SecondCountableTopology α] {μ : Measure δ} {f g : δ → α}
(hf : AEMeasurable f μ) (hg : AEMeasurable g μ) : NullMeasurableSet { a | f a < g a } μ :=
(hf.prod_mk hg).NullMeasurable measurableSet_lt'
#align null_measurable_set_lt nullMeasurableSet_lt
+#print Set.OrdConnected.measurableSet /-
theorem Set.OrdConnected.measurableSet (h : OrdConnected s) : MeasurableSet s :=
by
let u := ⋃ (x ∈ s) (y ∈ s), Ioo x y
@@ -590,11 +789,20 @@ theorem Set.OrdConnected.measurableSet (h : OrdConnected s) : MeasurableSet s :=
rw [← union_diff_cancel this]
exact humeas.union hfinite.measurable_set
#align set.ord_connected.measurable_set Set.OrdConnected.measurableSet
+-/
+#print IsPreconnected.measurableSet /-
theorem IsPreconnected.measurableSet (h : IsPreconnected s) : MeasurableSet s :=
h.OrdConnected.MeasurableSet
#align is_preconnected.measurable_set IsPreconnected.measurableSet
+-/
+/- warning: generate_from_Ico_mem_le_borel -> generateFrom_Ico_mem_le_borel is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_18 : TopologicalSpace.{u1} α] [_inst_19 : LinearOrder.{u1} α] [_inst_20 : OrderClosedTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19))))] (s : Set.{u1} α) (t : Set.{u1} α), LE.le.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.hasLe.{u1} α) (MeasurableSpace.generateFrom.{u1} α (setOf.{u1} (Set.{u1} α) (fun (S : Set.{u1} α) => Exists.{succ u1} α (fun (l : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) l s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) l s) => Exists.{succ u1} α (fun (u : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) u t) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) u t) => Exists.{0} (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19))))) l u) (fun (h : LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19))))) l u) => Eq.{succ u1} (Set.{u1} α) (Set.Ico.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19)))) l u) S)))))))) (borel.{u1} α _inst_18)
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_18 : TopologicalSpace.{u1} α] [_inst_19 : LinearOrder.{u1} α] [_inst_20 : OrderClosedTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19)))))] (s : Set.{u1} α) (t : Set.{u1} α), LE.le.{u1} (MeasurableSpace.{u1} α) (MeasurableSpace.instLEMeasurableSpace.{u1} α) (MeasurableSpace.generateFrom.{u1} α (setOf.{u1} (Set.{u1} α) (fun (S : Set.{u1} α) => Exists.{succ u1} α (fun (l : α) => And (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) l s) (Exists.{succ u1} α (fun (u : α) => And (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) u t) (And (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19)))))) l u) (Eq.{succ u1} (Set.{u1} α) (Set.Ico.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19))))) l u) S)))))))) (borel.{u1} α _inst_18)
+Case conversion may be inaccurate. Consider using '#align generate_from_Ico_mem_le_borel generateFrom_Ico_mem_le_borelₓ'. -/
theorem generateFrom_Ico_mem_le_borel {α : Type _} [TopologicalSpace α] [LinearOrder α]
[OrderClosedTopology α] (s t : Set α) :
MeasurableSpace.generateFrom { S | ∃ l ∈ s, ∃ u ∈ t, ∃ h : l < u, Ico l u = S } ≤ borel α :=
@@ -605,6 +813,12 @@ theorem generateFrom_Ico_mem_le_borel {α : Type _} [TopologicalSpace α] [Linea
exact measurableSet_Ico
#align generate_from_Ico_mem_le_borel generateFrom_Ico_mem_le_borel
+/- warning: dense.borel_eq_generate_from_Ico_mem_aux -> Dense.borel_eq_generateFrom_Ico_mem_aux is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_18 : TopologicalSpace.{u1} α] [_inst_19 : LinearOrder.{u1} α] [_inst_20 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19))))] [_inst_21 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] {s : Set.{u1} α}, (Dense.{u1} α _inst_18 s) -> (forall (x : α), (IsBot.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19))))) x) -> (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s)) -> (forall (x : α) (y : α), (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19))))) x y) -> (Eq.{succ u1} (Set.{u1} α) (Set.Ioo.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19)))) x y) (EmptyCollection.emptyCollection.{u1} (Set.{u1} α) (Set.hasEmptyc.{u1} α))) -> (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) y s)) -> (Eq.{succ u1} (MeasurableSpace.{u1} α) (borel.{u1} α _inst_18) (MeasurableSpace.generateFrom.{u1} α (setOf.{u1} (Set.{u1} α) (fun (S : Set.{u1} α) => Exists.{succ u1} α (fun (l : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) l s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) l s) => Exists.{succ u1} α (fun (u : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) u s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) u s) => Exists.{0} (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19))))) l u) (fun (h : LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19))))) l u) => Eq.{succ u1} (Set.{u1} α) (Set.Ico.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19)))) l u) S)))))))))
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_18 : TopologicalSpace.{u1} α] [_inst_19 : LinearOrder.{u1} α] [_inst_20 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19)))))] [_inst_21 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] {s : Set.{u1} α}, (Dense.{u1} α _inst_18 s) -> (forall (x : α), (IsBot.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19)))))) x) -> (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s)) -> (forall (x : α) (y : α), (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19)))))) x y) -> (Eq.{succ u1} (Set.{u1} α) (Set.Ioo.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19))))) x y) (EmptyCollection.emptyCollection.{u1} (Set.{u1} α) (Set.instEmptyCollectionSet.{u1} α))) -> (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) y s)) -> (Eq.{succ u1} (MeasurableSpace.{u1} α) (borel.{u1} α _inst_18) (MeasurableSpace.generateFrom.{u1} α (setOf.{u1} (Set.{u1} α) (fun (S : Set.{u1} α) => Exists.{succ u1} α (fun (l : α) => And (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) l s) (Exists.{succ u1} α (fun (u : α) => And (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) u s) (And (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19)))))) l u) (Eq.{succ u1} (Set.{u1} α) (Set.Ico.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19))))) l u) S)))))))))
+Case conversion may be inaccurate. Consider using '#align dense.borel_eq_generate_from_Ico_mem_aux Dense.borel_eq_generateFrom_Ico_mem_auxₓ'. -/
theorem Dense.borel_eq_generateFrom_Ico_mem_aux {α : Type _} [TopologicalSpace α] [LinearOrder α]
[OrderTopology α] [SecondCountableTopology α] {s : Set α} (hd : Dense s)
(hbot : ∀ x, IsBot x → x ∈ s) (hIoo : ∀ x y : α, x < y → Ioo x y = ∅ → y ∈ s) :
@@ -643,6 +857,12 @@ theorem Dense.borel_eq_generateFrom_Ico_mem_aux {α : Type _} [TopologicalSpace
exact generate_measurable.basic _ ⟨x, hts hx, a, ha, hlt, mem_singleton _⟩
#align dense.borel_eq_generate_from_Ico_mem_aux Dense.borel_eq_generateFrom_Ico_mem_aux
+/- warning: dense.borel_eq_generate_from_Ico_mem -> Dense.borel_eq_generateFrom_Ico_mem is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_18 : TopologicalSpace.{u1} α] [_inst_19 : LinearOrder.{u1} α] [_inst_20 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19))))] [_inst_21 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] [_inst_22 : DenselyOrdered.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19)))))] [_inst_23 : NoMinOrder.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19)))))] {s : Set.{u1} α}, (Dense.{u1} α _inst_18 s) -> (Eq.{succ u1} (MeasurableSpace.{u1} α) (borel.{u1} α _inst_18) (MeasurableSpace.generateFrom.{u1} α (setOf.{u1} (Set.{u1} α) (fun (S : Set.{u1} α) => Exists.{succ u1} α (fun (l : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) l s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) l s) => Exists.{succ u1} α (fun (u : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) u s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) u s) => Exists.{0} (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19))))) l u) (fun (h : LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19))))) l u) => Eq.{succ u1} (Set.{u1} α) (Set.Ico.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19)))) l u) S)))))))))
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_18 : TopologicalSpace.{u1} α] [_inst_19 : LinearOrder.{u1} α] [_inst_20 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19)))))] [_inst_21 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] [_inst_22 : DenselyOrdered.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19))))))] [_inst_23 : NoMinOrder.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19))))))] {s : Set.{u1} α}, (Dense.{u1} α _inst_18 s) -> (Eq.{succ u1} (MeasurableSpace.{u1} α) (borel.{u1} α _inst_18) (MeasurableSpace.generateFrom.{u1} α (setOf.{u1} (Set.{u1} α) (fun (S : Set.{u1} α) => Exists.{succ u1} α (fun (l : α) => And (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) l s) (Exists.{succ u1} α (fun (u : α) => And (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) u s) (And (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19)))))) l u) (Eq.{succ u1} (Set.{u1} α) (Set.Ico.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19))))) l u) S)))))))))
+Case conversion may be inaccurate. Consider using '#align dense.borel_eq_generate_from_Ico_mem Dense.borel_eq_generateFrom_Ico_memₓ'. -/
theorem Dense.borel_eq_generateFrom_Ico_mem {α : Type _} [TopologicalSpace α] [LinearOrder α]
[OrderTopology α] [SecondCountableTopology α] [DenselyOrdered α] [NoMinOrder α] {s : Set α}
(hd : Dense s) :
@@ -651,6 +871,12 @@ theorem Dense.borel_eq_generateFrom_Ico_mem {α : Type _} [TopologicalSpace α]
((nonempty_Ioo.2 hxy).ne_empty H).elim
#align dense.borel_eq_generate_from_Ico_mem Dense.borel_eq_generateFrom_Ico_mem
+/- warning: borel_eq_generate_from_Ico -> borel_eq_generateFrom_Ico is a dubious translation:
+lean 3 declaration is
+ forall (α : Type.{u1}) [_inst_18 : TopologicalSpace.{u1} α] [_inst_19 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] [_inst_20 : LinearOrder.{u1} α] [_inst_21 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20))))], Eq.{succ u1} (MeasurableSpace.{u1} α) (borel.{u1} α _inst_18) (MeasurableSpace.generateFrom.{u1} α (setOf.{u1} (Set.{u1} α) (fun (S : Set.{u1} α) => Exists.{succ u1} α (fun (l : α) => Exists.{succ u1} α (fun (u : α) => Exists.{0} (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20))))) l u) (fun (h : LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20))))) l u) => Eq.{succ u1} (Set.{u1} α) (Set.Ico.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20)))) l u) S))))))
+but is expected to have type
+ forall (α : Type.{u1}) [_inst_18 : TopologicalSpace.{u1} α] [_inst_19 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] [_inst_20 : LinearOrder.{u1} α] [_inst_21 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20)))))], Eq.{succ u1} (MeasurableSpace.{u1} α) (borel.{u1} α _inst_18) (MeasurableSpace.generateFrom.{u1} α (setOf.{u1} (Set.{u1} α) (fun (S : Set.{u1} α) => Exists.{succ u1} α (fun (l : α) => Exists.{succ u1} α (fun (u : α) => And (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20)))))) l u) (Eq.{succ u1} (Set.{u1} α) (Set.Ico.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20))))) l u) S))))))
+Case conversion may be inaccurate. Consider using '#align borel_eq_generate_from_Ico borel_eq_generateFrom_Icoₓ'. -/
theorem borel_eq_generateFrom_Ico (α : Type _) [TopologicalSpace α] [SecondCountableTopology α]
[LinearOrder α] [OrderTopology α] :
borel α = generateFrom { S : Set α | ∃ (l u : _)(h : l < u), Ico l u = S } := by
@@ -659,6 +885,12 @@ theorem borel_eq_generateFrom_Ico (α : Type _) [TopologicalSpace α] [SecondCou
mem_univ _
#align borel_eq_generate_from_Ico borel_eq_generateFrom_Ico
+/- warning: dense.borel_eq_generate_from_Ioc_mem_aux -> Dense.borel_eq_generateFrom_Ioc_mem_aux is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_18 : TopologicalSpace.{u1} α] [_inst_19 : LinearOrder.{u1} α] [_inst_20 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19))))] [_inst_21 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] {s : Set.{u1} α}, (Dense.{u1} α _inst_18 s) -> (forall (x : α), (IsTop.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19))))) x) -> (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s)) -> (forall (x : α) (y : α), (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19))))) x y) -> (Eq.{succ u1} (Set.{u1} α) (Set.Ioo.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19)))) x y) (EmptyCollection.emptyCollection.{u1} (Set.{u1} α) (Set.hasEmptyc.{u1} α))) -> (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s)) -> (Eq.{succ u1} (MeasurableSpace.{u1} α) (borel.{u1} α _inst_18) (MeasurableSpace.generateFrom.{u1} α (setOf.{u1} (Set.{u1} α) (fun (S : Set.{u1} α) => Exists.{succ u1} α (fun (l : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) l s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) l s) => Exists.{succ u1} α (fun (u : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) u s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) u s) => Exists.{0} (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19))))) l u) (fun (h : LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19))))) l u) => Eq.{succ u1} (Set.{u1} α) (Set.Ioc.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19)))) l u) S)))))))))
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_18 : TopologicalSpace.{u1} α] [_inst_19 : LinearOrder.{u1} α] [_inst_20 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19)))))] [_inst_21 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] {s : Set.{u1} α}, (Dense.{u1} α _inst_18 s) -> (forall (x : α), (IsTop.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19)))))) x) -> (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s)) -> (forall (x : α) (y : α), (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19)))))) x y) -> (Eq.{succ u1} (Set.{u1} α) (Set.Ioo.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19))))) x y) (EmptyCollection.emptyCollection.{u1} (Set.{u1} α) (Set.instEmptyCollectionSet.{u1} α))) -> (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s)) -> (Eq.{succ u1} (MeasurableSpace.{u1} α) (borel.{u1} α _inst_18) (MeasurableSpace.generateFrom.{u1} α (setOf.{u1} (Set.{u1} α) (fun (S : Set.{u1} α) => Exists.{succ u1} α (fun (l : α) => And (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) l s) (Exists.{succ u1} α (fun (u : α) => And (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) u s) (And (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19)))))) l u) (Eq.{succ u1} (Set.{u1} α) (Set.Ioc.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19))))) l u) S)))))))))
+Case conversion may be inaccurate. Consider using '#align dense.borel_eq_generate_from_Ioc_mem_aux Dense.borel_eq_generateFrom_Ioc_mem_auxₓ'. -/
theorem Dense.borel_eq_generateFrom_Ioc_mem_aux {α : Type _} [TopologicalSpace α] [LinearOrder α]
[OrderTopology α] [SecondCountableTopology α] {s : Set α} (hd : Dense s)
(hbot : ∀ x, IsTop x → x ∈ s) (hIoo : ∀ x y : α, x < y → Ioo x y = ∅ → x ∈ s) :
@@ -672,6 +904,12 @@ theorem Dense.borel_eq_generateFrom_Ioc_mem_aux {α : Type _} [TopologicalSpace
exact he
#align dense.borel_eq_generate_from_Ioc_mem_aux Dense.borel_eq_generateFrom_Ioc_mem_aux
+/- warning: dense.borel_eq_generate_from_Ioc_mem -> Dense.borel_eq_generateFrom_Ioc_mem is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_18 : TopologicalSpace.{u1} α] [_inst_19 : LinearOrder.{u1} α] [_inst_20 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19))))] [_inst_21 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] [_inst_22 : DenselyOrdered.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19)))))] [_inst_23 : NoMaxOrder.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19)))))] {s : Set.{u1} α}, (Dense.{u1} α _inst_18 s) -> (Eq.{succ u1} (MeasurableSpace.{u1} α) (borel.{u1} α _inst_18) (MeasurableSpace.generateFrom.{u1} α (setOf.{u1} (Set.{u1} α) (fun (S : Set.{u1} α) => Exists.{succ u1} α (fun (l : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) l s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) l s) => Exists.{succ u1} α (fun (u : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) u s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) u s) => Exists.{0} (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19))))) l u) (fun (h : LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19))))) l u) => Eq.{succ u1} (Set.{u1} α) (Set.Ioc.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_19)))) l u) S)))))))))
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_18 : TopologicalSpace.{u1} α] [_inst_19 : LinearOrder.{u1} α] [_inst_20 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19)))))] [_inst_21 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] [_inst_22 : DenselyOrdered.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19))))))] [_inst_23 : NoMaxOrder.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19))))))] {s : Set.{u1} α}, (Dense.{u1} α _inst_18 s) -> (Eq.{succ u1} (MeasurableSpace.{u1} α) (borel.{u1} α _inst_18) (MeasurableSpace.generateFrom.{u1} α (setOf.{u1} (Set.{u1} α) (fun (S : Set.{u1} α) => Exists.{succ u1} α (fun (l : α) => And (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) l s) (Exists.{succ u1} α (fun (u : α) => And (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) u s) (And (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19)))))) l u) (Eq.{succ u1} (Set.{u1} α) (Set.Ioc.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_19))))) l u) S)))))))))
+Case conversion may be inaccurate. Consider using '#align dense.borel_eq_generate_from_Ioc_mem Dense.borel_eq_generateFrom_Ioc_memₓ'. -/
theorem Dense.borel_eq_generateFrom_Ioc_mem {α : Type _} [TopologicalSpace α] [LinearOrder α]
[OrderTopology α] [SecondCountableTopology α] [DenselyOrdered α] [NoMaxOrder α] {s : Set α}
(hd : Dense s) :
@@ -680,6 +918,12 @@ theorem Dense.borel_eq_generateFrom_Ioc_mem {α : Type _} [TopologicalSpace α]
((nonempty_Ioo.2 hxy).ne_empty H).elim
#align dense.borel_eq_generate_from_Ioc_mem Dense.borel_eq_generateFrom_Ioc_mem
+/- warning: borel_eq_generate_from_Ioc -> borel_eq_generateFrom_Ioc is a dubious translation:
+lean 3 declaration is
+ forall (α : Type.{u1}) [_inst_18 : TopologicalSpace.{u1} α] [_inst_19 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] [_inst_20 : LinearOrder.{u1} α] [_inst_21 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20))))], Eq.{succ u1} (MeasurableSpace.{u1} α) (borel.{u1} α _inst_18) (MeasurableSpace.generateFrom.{u1} α (setOf.{u1} (Set.{u1} α) (fun (S : Set.{u1} α) => Exists.{succ u1} α (fun (l : α) => Exists.{succ u1} α (fun (u : α) => Exists.{0} (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20))))) l u) (fun (h : LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20))))) l u) => Eq.{succ u1} (Set.{u1} α) (Set.Ioc.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20)))) l u) S))))))
+but is expected to have type
+ forall (α : Type.{u1}) [_inst_18 : TopologicalSpace.{u1} α] [_inst_19 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] [_inst_20 : LinearOrder.{u1} α] [_inst_21 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20)))))], Eq.{succ u1} (MeasurableSpace.{u1} α) (borel.{u1} α _inst_18) (MeasurableSpace.generateFrom.{u1} α (setOf.{u1} (Set.{u1} α) (fun (S : Set.{u1} α) => Exists.{succ u1} α (fun (l : α) => Exists.{succ u1} α (fun (u : α) => And (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20)))))) l u) (Eq.{succ u1} (Set.{u1} α) (Set.Ioc.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20))))) l u) S))))))
+Case conversion may be inaccurate. Consider using '#align borel_eq_generate_from_Ioc borel_eq_generateFrom_Iocₓ'. -/
theorem borel_eq_generateFrom_Ioc (α : Type _) [TopologicalSpace α] [SecondCountableTopology α]
[LinearOrder α] [OrderTopology α] :
borel α = generateFrom { S : Set α | ∃ (l u : _)(h : l < u), Ioc l u = S } := by
@@ -690,6 +934,12 @@ theorem borel_eq_generateFrom_Ioc (α : Type _) [TopologicalSpace α] [SecondCou
namespace MeasureTheory.Measure
+/- warning: measure_theory.measure.ext_of_Ico_finite -> MeasureTheory.Measure.ext_of_Ico_finite is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_18 : TopologicalSpace.{u1} α] {m : MeasurableSpace.{u1} α} [_inst_19 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] [_inst_20 : LinearOrder.{u1} α] [_inst_21 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20))))] [_inst_22 : BorelSpace.{u1} α _inst_18 m] (μ : MeasureTheory.Measure.{u1} α m) (ν : MeasureTheory.Measure.{u1} α m) [_inst_23 : MeasureTheory.FiniteMeasure.{u1} α m μ], (Eq.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α m) (fun (_x : MeasureTheory.Measure.{u1} α m) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α m) μ (Set.univ.{u1} α)) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α m) (fun (_x : MeasureTheory.Measure.{u1} α m) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α m) ν (Set.univ.{u1} α))) -> (forall {{a : α}} {{b : α}}, (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20))))) a b) -> (Eq.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α m) (fun (_x : MeasureTheory.Measure.{u1} α m) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α m) μ (Set.Ico.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20)))) a b)) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α m) (fun (_x : MeasureTheory.Measure.{u1} α m) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α m) ν (Set.Ico.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20)))) a b)))) -> (Eq.{succ u1} (MeasureTheory.Measure.{u1} α m) μ ν)
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_18 : TopologicalSpace.{u1} α] {m : MeasurableSpace.{u1} α} [_inst_19 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] [_inst_20 : LinearOrder.{u1} α] [_inst_21 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20)))))] [_inst_22 : BorelSpace.{u1} α _inst_18 m] (μ : MeasureTheory.Measure.{u1} α m) (ν : MeasureTheory.Measure.{u1} α m) [_inst_23 : MeasureTheory.FiniteMeasure.{u1} α m μ], (Eq.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α m μ) (Set.univ.{u1} α)) (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α m ν) (Set.univ.{u1} α))) -> (forall {{a : α}} {{b : α}}, (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20)))))) a b) -> (Eq.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α m μ) (Set.Ico.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20))))) a b)) (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α m ν) (Set.Ico.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20))))) a b)))) -> (Eq.{succ u1} (MeasureTheory.Measure.{u1} α m) μ ν)
+Case conversion may be inaccurate. Consider using '#align measure_theory.measure.ext_of_Ico_finite MeasureTheory.Measure.ext_of_Ico_finiteₓ'. -/
/-- Two finite measures on a Borel space are equal if they agree on all closed-open intervals. If
`α` is a conditionally complete linear order with no top element,
`measure_theory.measure..ext_of_Ico` is an extensionality lemma with weaker assumptions on `μ` and
@@ -706,6 +956,12 @@ theorem ext_of_Ico_finite {α : Type _} [TopologicalSpace α] {m : MeasurableSpa
exact h hlt
#align measure_theory.measure.ext_of_Ico_finite MeasureTheory.Measure.ext_of_Ico_finite
+/- warning: measure_theory.measure.ext_of_Ioc_finite -> MeasureTheory.Measure.ext_of_Ioc_finite is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_18 : TopologicalSpace.{u1} α] {m : MeasurableSpace.{u1} α} [_inst_19 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] [_inst_20 : LinearOrder.{u1} α] [_inst_21 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20))))] [_inst_22 : BorelSpace.{u1} α _inst_18 m] (μ : MeasureTheory.Measure.{u1} α m) (ν : MeasureTheory.Measure.{u1} α m) [_inst_23 : MeasureTheory.FiniteMeasure.{u1} α m μ], (Eq.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α m) (fun (_x : MeasureTheory.Measure.{u1} α m) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α m) μ (Set.univ.{u1} α)) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α m) (fun (_x : MeasureTheory.Measure.{u1} α m) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α m) ν (Set.univ.{u1} α))) -> (forall {{a : α}} {{b : α}}, (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20))))) a b) -> (Eq.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α m) (fun (_x : MeasureTheory.Measure.{u1} α m) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α m) μ (Set.Ioc.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20)))) a b)) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α m) (fun (_x : MeasureTheory.Measure.{u1} α m) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α m) ν (Set.Ioc.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20)))) a b)))) -> (Eq.{succ u1} (MeasureTheory.Measure.{u1} α m) μ ν)
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_18 : TopologicalSpace.{u1} α] {m : MeasurableSpace.{u1} α} [_inst_19 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] [_inst_20 : LinearOrder.{u1} α] [_inst_21 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20)))))] [_inst_22 : BorelSpace.{u1} α _inst_18 m] (μ : MeasureTheory.Measure.{u1} α m) (ν : MeasureTheory.Measure.{u1} α m) [_inst_23 : MeasureTheory.FiniteMeasure.{u1} α m μ], (Eq.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α m μ) (Set.univ.{u1} α)) (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α m ν) (Set.univ.{u1} α))) -> (forall {{a : α}} {{b : α}}, (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20)))))) a b) -> (Eq.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α m μ) (Set.Ioc.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20))))) a b)) (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α m ν) (Set.Ioc.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20))))) a b)))) -> (Eq.{succ u1} (MeasureTheory.Measure.{u1} α m) μ ν)
+Case conversion may be inaccurate. Consider using '#align measure_theory.measure.ext_of_Ioc_finite MeasureTheory.Measure.ext_of_Ioc_finiteₓ'. -/
/-- Two finite measures on a Borel space are equal if they agree on all open-closed intervals. If
`α` is a conditionally complete linear order with no top element,
`measure_theory.measure..ext_of_Ioc` is an extensionality lemma with weaker assumptions on `μ` and
@@ -719,6 +975,12 @@ theorem ext_of_Ioc_finite {α : Type _} [TopologicalSpace α] {m : MeasurableSpa
exact h hab
#align measure_theory.measure.ext_of_Ioc_finite MeasureTheory.Measure.ext_of_Ioc_finite
+/- warning: measure_theory.measure.ext_of_Ico' -> MeasureTheory.Measure.ext_of_Ico' is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_18 : TopologicalSpace.{u1} α] {m : MeasurableSpace.{u1} α} [_inst_19 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] [_inst_20 : LinearOrder.{u1} α] [_inst_21 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20))))] [_inst_22 : BorelSpace.{u1} α _inst_18 m] [_inst_23 : NoMaxOrder.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20)))))] (μ : MeasureTheory.Measure.{u1} α m) (ν : MeasureTheory.Measure.{u1} α m), (forall {{a : α}} {{b : α}}, (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20))))) a b) -> (Ne.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α m) (fun (_x : MeasureTheory.Measure.{u1} α m) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α m) μ (Set.Ico.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20)))) a b)) (Top.top.{0} ENNReal (CompleteLattice.toHasTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) -> (forall {{a : α}} {{b : α}}, (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20))))) a b) -> (Eq.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α m) (fun (_x : MeasureTheory.Measure.{u1} α m) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α m) μ (Set.Ico.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20)))) a b)) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α m) (fun (_x : MeasureTheory.Measure.{u1} α m) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α m) ν (Set.Ico.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20)))) a b)))) -> (Eq.{succ u1} (MeasureTheory.Measure.{u1} α m) μ ν)
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_18 : TopologicalSpace.{u1} α] {m : MeasurableSpace.{u1} α} [_inst_19 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] [_inst_20 : LinearOrder.{u1} α] [_inst_21 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20)))))] [_inst_22 : BorelSpace.{u1} α _inst_18 m] [_inst_23 : NoMaxOrder.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20))))))] (μ : MeasureTheory.Measure.{u1} α m) (ν : MeasureTheory.Measure.{u1} α m), (forall {{a : α}} {{b : α}}, (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20)))))) a b) -> (Ne.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α m μ) (Set.Ico.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20))))) a b)) (Top.top.{0} ENNReal (CompleteLattice.toTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal))))) -> (forall {{a : α}} {{b : α}}, (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20)))))) a b) -> (Eq.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α m μ) (Set.Ico.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20))))) a b)) (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α m ν) (Set.Ico.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20))))) a b)))) -> (Eq.{succ u1} (MeasureTheory.Measure.{u1} α m) μ ν)
+Case conversion may be inaccurate. Consider using '#align measure_theory.measure.ext_of_Ico' MeasureTheory.Measure.ext_of_Ico'ₓ'. -/
/-- Two measures which are finite on closed-open intervals are equal if the agree on all
closed-open intervals. -/
theorem ext_of_Ico' {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
@@ -746,6 +1008,12 @@ theorem ext_of_Ico' {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
exact h hlt
#align measure_theory.measure.ext_of_Ico' MeasureTheory.Measure.ext_of_Ico'
+/- warning: measure_theory.measure.ext_of_Ioc' -> MeasureTheory.Measure.ext_of_Ioc' is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_18 : TopologicalSpace.{u1} α] {m : MeasurableSpace.{u1} α} [_inst_19 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] [_inst_20 : LinearOrder.{u1} α] [_inst_21 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20))))] [_inst_22 : BorelSpace.{u1} α _inst_18 m] [_inst_23 : NoMinOrder.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20)))))] (μ : MeasureTheory.Measure.{u1} α m) (ν : MeasureTheory.Measure.{u1} α m), (forall {{a : α}} {{b : α}}, (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20))))) a b) -> (Ne.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α m) (fun (_x : MeasureTheory.Measure.{u1} α m) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α m) μ (Set.Ioc.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20)))) a b)) (Top.top.{0} ENNReal (CompleteLattice.toHasTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) -> (forall {{a : α}} {{b : α}}, (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20))))) a b) -> (Eq.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α m) (fun (_x : MeasureTheory.Measure.{u1} α m) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α m) μ (Set.Ioc.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20)))) a b)) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α m) (fun (_x : MeasureTheory.Measure.{u1} α m) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α m) ν (Set.Ioc.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_20)))) a b)))) -> (Eq.{succ u1} (MeasureTheory.Measure.{u1} α m) μ ν)
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_18 : TopologicalSpace.{u1} α] {m : MeasurableSpace.{u1} α} [_inst_19 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] [_inst_20 : LinearOrder.{u1} α] [_inst_21 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20)))))] [_inst_22 : BorelSpace.{u1} α _inst_18 m] [_inst_23 : NoMinOrder.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20))))))] (μ : MeasureTheory.Measure.{u1} α m) (ν : MeasureTheory.Measure.{u1} α m), (forall {{a : α}} {{b : α}}, (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20)))))) a b) -> (Ne.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α m μ) (Set.Ioc.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20))))) a b)) (Top.top.{0} ENNReal (CompleteLattice.toTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal))))) -> (forall {{a : α}} {{b : α}}, (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20)))))) a b) -> (Eq.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α m μ) (Set.Ioc.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20))))) a b)) (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α m ν) (Set.Ioc.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_20))))) a b)))) -> (Eq.{succ u1} (MeasureTheory.Measure.{u1} α m) μ ν)
+Case conversion may be inaccurate. Consider using '#align measure_theory.measure.ext_of_Ioc' MeasureTheory.Measure.ext_of_Ioc'ₓ'. -/
/-- Two measures which are finite on closed-open intervals are equal if the agree on all
open-closed intervals. -/
theorem ext_of_Ioc' {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
@@ -757,6 +1025,12 @@ theorem ext_of_Ioc' {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
exacts[hμ hab, h hab]
#align measure_theory.measure.ext_of_Ioc' MeasureTheory.Measure.ext_of_Ioc'
+/- warning: measure_theory.measure.ext_of_Ico -> MeasureTheory.Measure.ext_of_Ico is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_18 : TopologicalSpace.{u1} α] {m : MeasurableSpace.{u1} α} [_inst_19 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] [_inst_20 : ConditionallyCompleteLinearOrder.{u1} α] [_inst_21 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_20)))))] [_inst_22 : BorelSpace.{u1} α _inst_18 m] [_inst_23 : NoMaxOrder.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_20))))))] (μ : MeasureTheory.Measure.{u1} α m) (ν : MeasureTheory.Measure.{u1} α m) [_inst_24 : MeasureTheory.LocallyFiniteMeasure.{u1} α m _inst_18 μ], (forall {{a : α}} {{b : α}}, (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_20)))))) a b) -> (Eq.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α m) (fun (_x : MeasureTheory.Measure.{u1} α m) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α m) μ (Set.Ico.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_20))))) a b)) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α m) (fun (_x : MeasureTheory.Measure.{u1} α m) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α m) ν (Set.Ico.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_20))))) a b)))) -> (Eq.{succ u1} (MeasureTheory.Measure.{u1} α m) μ ν)
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_18 : TopologicalSpace.{u1} α] {m : MeasurableSpace.{u1} α} [_inst_19 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] [_inst_20 : ConditionallyCompleteLinearOrder.{u1} α] [_inst_21 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_20)))))] [_inst_22 : BorelSpace.{u1} α _inst_18 m] [_inst_23 : NoMaxOrder.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_20))))))] (μ : MeasureTheory.Measure.{u1} α m) (ν : MeasureTheory.Measure.{u1} α m) [_inst_24 : MeasureTheory.LocallyFiniteMeasure.{u1} α m _inst_18 μ], (forall {{a : α}} {{b : α}}, (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_20)))))) a b) -> (Eq.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α m μ) (Set.Ico.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_20))))) a b)) (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α m ν) (Set.Ico.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_20))))) a b)))) -> (Eq.{succ u1} (MeasureTheory.Measure.{u1} α m) μ ν)
+Case conversion may be inaccurate. Consider using '#align measure_theory.measure.ext_of_Ico MeasureTheory.Measure.ext_of_Icoₓ'. -/
/-- Two measures which are finite on closed-open intervals are equal if the agree on all
closed-open intervals. -/
theorem ext_of_Ico {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
@@ -766,6 +1040,12 @@ theorem ext_of_Ico {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
μ.ext_of_Ico' ν (fun a b hab => measure_Ico_lt_top.Ne) h
#align measure_theory.measure.ext_of_Ico MeasureTheory.Measure.ext_of_Ico
+/- warning: measure_theory.measure.ext_of_Ioc -> MeasureTheory.Measure.ext_of_Ioc is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_18 : TopologicalSpace.{u1} α] {m : MeasurableSpace.{u1} α} [_inst_19 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] [_inst_20 : ConditionallyCompleteLinearOrder.{u1} α] [_inst_21 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_20)))))] [_inst_22 : BorelSpace.{u1} α _inst_18 m] [_inst_23 : NoMinOrder.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_20))))))] (μ : MeasureTheory.Measure.{u1} α m) (ν : MeasureTheory.Measure.{u1} α m) [_inst_24 : MeasureTheory.LocallyFiniteMeasure.{u1} α m _inst_18 μ], (forall {{a : α}} {{b : α}}, (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_20)))))) a b) -> (Eq.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α m) (fun (_x : MeasureTheory.Measure.{u1} α m) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α m) μ (Set.Ioc.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_20))))) a b)) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α m) (fun (_x : MeasureTheory.Measure.{u1} α m) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α m) ν (Set.Ioc.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_20))))) a b)))) -> (Eq.{succ u1} (MeasureTheory.Measure.{u1} α m) μ ν)
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_18 : TopologicalSpace.{u1} α] {m : MeasurableSpace.{u1} α} [_inst_19 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_18] [_inst_20 : ConditionallyCompleteLinearOrder.{u1} α] [_inst_21 : OrderTopology.{u1} α _inst_18 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_20)))))] [_inst_22 : BorelSpace.{u1} α _inst_18 m] [_inst_23 : NoMinOrder.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_20))))))] (μ : MeasureTheory.Measure.{u1} α m) (ν : MeasureTheory.Measure.{u1} α m) [_inst_24 : MeasureTheory.LocallyFiniteMeasure.{u1} α m _inst_18 μ], (forall {{a : α}} {{b : α}}, (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_20)))))) a b) -> (Eq.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α m μ) (Set.Ioc.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_20))))) a b)) (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α m ν) (Set.Ioc.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_20))))) a b)))) -> (Eq.{succ u1} (MeasureTheory.Measure.{u1} α m) μ ν)
+Case conversion may be inaccurate. Consider using '#align measure_theory.measure.ext_of_Ioc MeasureTheory.Measure.ext_of_Iocₓ'. -/
/-- Two measures which are finite on closed-open intervals are equal if the agree on all
open-closed intervals. -/
theorem ext_of_Ioc {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
@@ -775,6 +1055,7 @@ theorem ext_of_Ioc {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
μ.ext_of_Ioc' ν (fun a b hab => measure_Ioc_lt_top.Ne) h
#align measure_theory.measure.ext_of_Ioc MeasureTheory.Measure.ext_of_Ioc
+#print MeasureTheory.Measure.ext_of_Iic /-
/-- Two finite measures on a Borel space are equal if they agree on all left-infinite right-closed
intervals. -/
theorem ext_of_Iic {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
@@ -791,7 +1072,9 @@ theorem ext_of_Iic {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
exact (measure_lt_top μ _).Ne
· exact (measure_lt_top μ _).Ne
#align measure_theory.measure.ext_of_Iic MeasureTheory.Measure.ext_of_Iic
+-/
+#print MeasureTheory.Measure.ext_of_Ici /-
/-- Two finite measures on a Borel space are equal if they agree on all left-closed right-infinite
intervals. -/
theorem ext_of_Ici {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
@@ -799,6 +1082,7 @@ theorem ext_of_Ici {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
[FiniteMeasure μ] (h : ∀ a, μ (Ici a) = ν (Ici a)) : μ = ν :=
@ext_of_Iic αᵒᵈ _ _ _ _ _ ‹_› _ _ _ h
#align measure_theory.measure.ext_of_Ici MeasureTheory.Measure.ext_of_Ici
+-/
end MeasureTheory.Measure
@@ -808,24 +1092,40 @@ section LinearOrder
variable [LinearOrder α] [OrderClosedTopology α] {a b : α}
+#print measurableSet_uIcc /-
@[measurability]
theorem measurableSet_uIcc : MeasurableSet (uIcc a b) :=
measurableSet_Icc
#align measurable_set_uIcc measurableSet_uIcc
+-/
+#print measurableSet_uIoc /-
@[measurability]
theorem measurableSet_uIoc : MeasurableSet (uIoc a b) :=
measurableSet_Ioc
#align measurable_set_uIoc measurableSet_uIoc
+-/
variable [SecondCountableTopology α]
+/- warning: measurable.max -> Measurable.max is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_13 : MeasurableSpace.{u2} δ] [_inst_16 : LinearOrder.{u1} α] [_inst_17 : OrderClosedTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_16))))] [_inst_18 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {f : δ -> α} {g : δ -> α}, (Measurable.{u2, u1} δ α _inst_13 _inst_2 f) -> (Measurable.{u2, u1} δ α _inst_13 _inst_2 g) -> (Measurable.{u2, u1} δ α _inst_13 _inst_2 (fun (a : δ) => LinearOrder.max.{u1} α _inst_16 (f a) (g a)))
+but is expected to have type
+ forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_13 : MeasurableSpace.{u2} δ] [_inst_16 : LinearOrder.{u1} α] [_inst_17 : OrderClosedTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_16)))))] [_inst_18 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {f : δ -> α} {g : δ -> α}, (Measurable.{u2, u1} δ α _inst_13 _inst_2 f) -> (Measurable.{u2, u1} δ α _inst_13 _inst_2 g) -> (Measurable.{u2, u1} δ α _inst_13 _inst_2 (fun (a : δ) => Max.max.{u1} α (LinearOrder.toMax.{u1} α _inst_16) (f a) (g a)))
+Case conversion may be inaccurate. Consider using '#align measurable.max Measurable.maxₓ'. -/
@[measurability]
theorem Measurable.max {f g : δ → α} (hf : Measurable f) (hg : Measurable g) :
Measurable fun a => max (f a) (g a) := by
simpa only [max_def'] using hf.piecewise (measurableSet_le hg hf) hg
#align measurable.max Measurable.max
+/- warning: ae_measurable.max -> AEMeasurable.max is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_13 : MeasurableSpace.{u2} δ] [_inst_16 : LinearOrder.{u1} α] [_inst_17 : OrderClosedTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_16))))] [_inst_18 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {f : δ -> α} {g : δ -> α} {μ : MeasureTheory.Measure.{u2} δ _inst_13}, (AEMeasurable.{u2, u1} δ α _inst_2 _inst_13 f μ) -> (AEMeasurable.{u2, u1} δ α _inst_2 _inst_13 g μ) -> (AEMeasurable.{u2, u1} δ α _inst_2 _inst_13 (fun (a : δ) => LinearOrder.max.{u1} α _inst_16 (f a) (g a)) μ)
+but is expected to have type
+ forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_13 : MeasurableSpace.{u2} δ] [_inst_16 : LinearOrder.{u1} α] [_inst_17 : OrderClosedTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_16)))))] [_inst_18 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {f : δ -> α} {g : δ -> α} {μ : MeasureTheory.Measure.{u2} δ _inst_13}, (AEMeasurable.{u2, u1} δ α _inst_2 _inst_13 f μ) -> (AEMeasurable.{u2, u1} δ α _inst_2 _inst_13 g μ) -> (AEMeasurable.{u2, u1} δ α _inst_2 _inst_13 (fun (a : δ) => Max.max.{u1} α (LinearOrder.toMax.{u1} α _inst_16) (f a) (g a)) μ)
+Case conversion may be inaccurate. Consider using '#align ae_measurable.max AEMeasurable.maxₓ'. -/
@[measurability]
theorem AEMeasurable.max {f g : δ → α} {μ : Measure δ} (hf : AEMeasurable f μ)
(hg : AEMeasurable g μ) : AEMeasurable (fun a => max (f a) (g a)) μ :=
@@ -833,12 +1133,24 @@ theorem AEMeasurable.max {f g : δ → α} {μ : Measure δ} (hf : AEMeasurable
EventuallyEq.comp₂ hf.ae_eq_mk _ hg.ae_eq_mk⟩
#align ae_measurable.max AEMeasurable.max
+/- warning: measurable.min -> Measurable.min is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_13 : MeasurableSpace.{u2} δ] [_inst_16 : LinearOrder.{u1} α] [_inst_17 : OrderClosedTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_16))))] [_inst_18 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {f : δ -> α} {g : δ -> α}, (Measurable.{u2, u1} δ α _inst_13 _inst_2 f) -> (Measurable.{u2, u1} δ α _inst_13 _inst_2 g) -> (Measurable.{u2, u1} δ α _inst_13 _inst_2 (fun (a : δ) => LinearOrder.min.{u1} α _inst_16 (f a) (g a)))
+but is expected to have type
+ forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_13 : MeasurableSpace.{u2} δ] [_inst_16 : LinearOrder.{u1} α] [_inst_17 : OrderClosedTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_16)))))] [_inst_18 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {f : δ -> α} {g : δ -> α}, (Measurable.{u2, u1} δ α _inst_13 _inst_2 f) -> (Measurable.{u2, u1} δ α _inst_13 _inst_2 g) -> (Measurable.{u2, u1} δ α _inst_13 _inst_2 (fun (a : δ) => Min.min.{u1} α (LinearOrder.toMin.{u1} α _inst_16) (f a) (g a)))
+Case conversion may be inaccurate. Consider using '#align measurable.min Measurable.minₓ'. -/
@[measurability]
theorem Measurable.min {f g : δ → α} (hf : Measurable f) (hg : Measurable g) :
Measurable fun a => min (f a) (g a) := by
simpa only [min_def] using hf.piecewise (measurableSet_le hf hg) hg
#align measurable.min Measurable.min
+/- warning: ae_measurable.min -> AEMeasurable.min is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_13 : MeasurableSpace.{u2} δ] [_inst_16 : LinearOrder.{u1} α] [_inst_17 : OrderClosedTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_16))))] [_inst_18 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {f : δ -> α} {g : δ -> α} {μ : MeasureTheory.Measure.{u2} δ _inst_13}, (AEMeasurable.{u2, u1} δ α _inst_2 _inst_13 f μ) -> (AEMeasurable.{u2, u1} δ α _inst_2 _inst_13 g μ) -> (AEMeasurable.{u2, u1} δ α _inst_2 _inst_13 (fun (a : δ) => LinearOrder.min.{u1} α _inst_16 (f a) (g a)) μ)
+but is expected to have type
+ forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_13 : MeasurableSpace.{u2} δ] [_inst_16 : LinearOrder.{u1} α] [_inst_17 : OrderClosedTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_16)))))] [_inst_18 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {f : δ -> α} {g : δ -> α} {μ : MeasureTheory.Measure.{u2} δ _inst_13}, (AEMeasurable.{u2, u1} δ α _inst_2 _inst_13 f μ) -> (AEMeasurable.{u2, u1} δ α _inst_2 _inst_13 g μ) -> (AEMeasurable.{u2, u1} δ α _inst_2 _inst_13 (fun (a : δ) => Min.min.{u1} α (LinearOrder.toMin.{u1} α _inst_16) (f a) (g a)) μ)
+Case conversion may be inaccurate. Consider using '#align ae_measurable.min AEMeasurable.minₓ'. -/
@[measurability]
theorem AEMeasurable.min {f g : δ → α} {μ : Measure δ} (hf : AEMeasurable f μ)
(hg : AEMeasurable g μ) : AEMeasurable (fun a => min (f a) (g a)) μ :=
@@ -848,22 +1160,46 @@ theorem AEMeasurable.min {f g : δ → α} {μ : Measure δ} (hf : AEMeasurable
end LinearOrder
+/- warning: continuous.measurable -> Continuous.measurable is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {γ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_7 : TopologicalSpace.{u2} γ] [_inst_8 : MeasurableSpace.{u2} γ] [_inst_9 : BorelSpace.{u2} γ _inst_7 _inst_8] {f : α -> γ}, (Continuous.{u1, u2} α γ _inst_1 _inst_7 f) -> (Measurable.{u1, u2} α γ _inst_2 _inst_8 f)
+but is expected to have type
+ forall {α : Type.{u2}} {γ : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : MeasurableSpace.{u2} α] [_inst_3 : OpensMeasurableSpace.{u2} α _inst_1 _inst_2] [_inst_7 : TopologicalSpace.{u1} γ] [_inst_8 : MeasurableSpace.{u1} γ] [_inst_9 : BorelSpace.{u1} γ _inst_7 _inst_8] {f : α -> γ}, (Continuous.{u2, u1} α γ _inst_1 _inst_7 f) -> (Measurable.{u2, u1} α γ _inst_2 _inst_8 f)
+Case conversion may be inaccurate. Consider using '#align continuous.measurable Continuous.measurableₓ'. -/
/-- A continuous function from an `opens_measurable_space` to a `borel_space`
is measurable. -/
theorem Continuous.measurable {f : α → γ} (hf : Continuous f) : Measurable f :=
hf.borel_measurable.mono OpensMeasurableSpace.borel_le (le_of_eq <| BorelSpace.measurable_eq)
#align continuous.measurable Continuous.measurable
+/- warning: continuous.ae_measurable -> Continuous.aemeasurable is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {γ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_7 : TopologicalSpace.{u2} γ] [_inst_8 : MeasurableSpace.{u2} γ] [_inst_9 : BorelSpace.{u2} γ _inst_7 _inst_8] {f : α -> γ}, (Continuous.{u1, u2} α γ _inst_1 _inst_7 f) -> (forall {μ : MeasureTheory.Measure.{u1} α _inst_2}, AEMeasurable.{u1, u2} α γ _inst_8 _inst_2 f μ)
+but is expected to have type
+ forall {α : Type.{u2}} {γ : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : MeasurableSpace.{u2} α] [_inst_3 : OpensMeasurableSpace.{u2} α _inst_1 _inst_2] [_inst_7 : TopologicalSpace.{u1} γ] [_inst_8 : MeasurableSpace.{u1} γ] [_inst_9 : BorelSpace.{u1} γ _inst_7 _inst_8] {f : α -> γ}, (Continuous.{u2, u1} α γ _inst_1 _inst_7 f) -> (forall {μ : MeasureTheory.Measure.{u2} α _inst_2}, AEMeasurable.{u2, u1} α γ _inst_8 _inst_2 f μ)
+Case conversion may be inaccurate. Consider using '#align continuous.ae_measurable Continuous.aemeasurableₓ'. -/
/-- A continuous function from an `opens_measurable_space` to a `borel_space`
is ae-measurable. -/
-theorem Continuous.aEMeasurable {f : α → γ} (h : Continuous f) {μ : Measure α} : AEMeasurable f μ :=
+theorem Continuous.aemeasurable {f : α → γ} (h : Continuous f) {μ : Measure α} : AEMeasurable f μ :=
h.Measurable.AEMeasurable
-#align continuous.ae_measurable Continuous.aEMeasurable
-
+#align continuous.ae_measurable Continuous.aemeasurable
+
+/- warning: closed_embedding.measurable -> ClosedEmbedding.measurable is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {γ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_7 : TopologicalSpace.{u2} γ] [_inst_8 : MeasurableSpace.{u2} γ] [_inst_9 : BorelSpace.{u2} γ _inst_7 _inst_8] {f : α -> γ}, (ClosedEmbedding.{u1, u2} α γ _inst_1 _inst_7 f) -> (Measurable.{u1, u2} α γ _inst_2 _inst_8 f)
+but is expected to have type
+ forall {α : Type.{u2}} {γ : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : MeasurableSpace.{u2} α] [_inst_3 : OpensMeasurableSpace.{u2} α _inst_1 _inst_2] [_inst_7 : TopologicalSpace.{u1} γ] [_inst_8 : MeasurableSpace.{u1} γ] [_inst_9 : BorelSpace.{u1} γ _inst_7 _inst_8] {f : α -> γ}, (ClosedEmbedding.{u2, u1} α γ _inst_1 _inst_7 f) -> (Measurable.{u2, u1} α γ _inst_2 _inst_8 f)
+Case conversion may be inaccurate. Consider using '#align closed_embedding.measurable ClosedEmbedding.measurableₓ'. -/
theorem ClosedEmbedding.measurable {f : α → γ} (hf : ClosedEmbedding f) : Measurable f :=
hf.Continuous.Measurable
#align closed_embedding.measurable ClosedEmbedding.measurable
+/- warning: continuous.is_open_pos_measure_map -> Continuous.openPosMeasure_map is a dubious translation:
+lean 3 declaration is
+ forall {β : Type.{u1}} {γ : Type.{u2}} [_inst_4 : TopologicalSpace.{u1} β] [_inst_5 : MeasurableSpace.{u1} β] [_inst_6 : OpensMeasurableSpace.{u1} β _inst_4 _inst_5] [_inst_7 : TopologicalSpace.{u2} γ] [_inst_8 : MeasurableSpace.{u2} γ] [_inst_9 : BorelSpace.{u2} γ _inst_7 _inst_8] {f : β -> γ}, (Continuous.{u1, u2} β γ _inst_4 _inst_7 f) -> (Function.Surjective.{succ u1, succ u2} β γ f) -> (forall {μ : MeasureTheory.Measure.{u1} β _inst_5} [_inst_16 : MeasureTheory.Measure.OpenPosMeasure.{u1} β _inst_4 _inst_5 μ], MeasureTheory.Measure.OpenPosMeasure.{u2} γ _inst_7 _inst_8 (MeasureTheory.Measure.map.{u1, u2} β γ _inst_8 _inst_5 f μ))
+but is expected to have type
+ forall {β : Type.{u2}} {γ : Type.{u1}} [_inst_4 : TopologicalSpace.{u2} β] [_inst_5 : MeasurableSpace.{u2} β] [_inst_6 : OpensMeasurableSpace.{u2} β _inst_4 _inst_5] [_inst_7 : TopologicalSpace.{u1} γ] [_inst_8 : MeasurableSpace.{u1} γ] [_inst_9 : BorelSpace.{u1} γ _inst_7 _inst_8] {f : β -> γ}, (Continuous.{u2, u1} β γ _inst_4 _inst_7 f) -> (Function.Surjective.{succ u2, succ u1} β γ f) -> (forall {μ : MeasureTheory.Measure.{u2} β _inst_5} [_inst_16 : MeasureTheory.Measure.OpenPosMeasure.{u2} β _inst_4 _inst_5 μ], MeasureTheory.Measure.OpenPosMeasure.{u1} γ _inst_7 _inst_8 (MeasureTheory.Measure.map.{u2, u1} β γ _inst_8 _inst_5 f μ))
+Case conversion may be inaccurate. Consider using '#align continuous.is_open_pos_measure_map Continuous.openPosMeasure_mapₓ'. -/
theorem Continuous.openPosMeasure_map {f : β → γ} (hf : Continuous f)
(hf_surj : Function.Surjective f) {μ : Measure β} [μ.OpenPosMeasure] :
(Measure.map f μ).OpenPosMeasure :=
@@ -873,6 +1209,12 @@ theorem Continuous.openPosMeasure_map {f : β → γ} (hf : Continuous f)
exact (hUo.preimage hf).measure_ne_zero μ (hf_surj.nonempty_preimage.mpr hUne)
#align continuous.is_open_pos_measure_map Continuous.openPosMeasure_map
+/- warning: continuous_on.measurable_piecewise -> ContinuousOn.measurable_piecewise is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {γ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_7 : TopologicalSpace.{u2} γ] [_inst_8 : MeasurableSpace.{u2} γ] [_inst_9 : BorelSpace.{u2} γ _inst_7 _inst_8] {f : α -> γ} {g : α -> γ} {s : Set.{u1} α} [_inst_16 : forall (j : α), Decidable (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) j s)], (ContinuousOn.{u1, u2} α γ _inst_1 _inst_7 f s) -> (ContinuousOn.{u1, u2} α γ _inst_1 _inst_7 g (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) -> (MeasurableSet.{u1} α _inst_2 s) -> (Measurable.{u1, u2} α γ _inst_2 _inst_8 (Set.piecewise.{u1, succ u2} α (fun (ᾰ : α) => γ) s f g (fun (j : α) => _inst_16 j)))
+but is expected to have type
+ forall {α : Type.{u2}} {γ : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : MeasurableSpace.{u2} α] [_inst_3 : OpensMeasurableSpace.{u2} α _inst_1 _inst_2] [_inst_7 : TopologicalSpace.{u1} γ] [_inst_8 : MeasurableSpace.{u1} γ] [_inst_9 : BorelSpace.{u1} γ _inst_7 _inst_8] {f : α -> γ} {g : α -> γ} {s : Set.{u2} α} [_inst_16 : forall (j : α), Decidable (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) j s)], (ContinuousOn.{u2, u1} α γ _inst_1 _inst_7 f s) -> (ContinuousOn.{u2, u1} α γ _inst_1 _inst_7 g (HasCompl.compl.{u2} (Set.{u2} α) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} α) (Set.instBooleanAlgebraSet.{u2} α)) s)) -> (MeasurableSet.{u2} α _inst_2 s) -> (Measurable.{u2, u1} α γ _inst_2 _inst_8 (Set.piecewise.{u2, succ u1} α (fun (ᾰ : α) => γ) s f g (fun (j : α) => _inst_16 j)))
+Case conversion may be inaccurate. Consider using '#align continuous_on.measurable_piecewise ContinuousOn.measurable_piecewiseₓ'. -/
/-- If a function is defined piecewise in terms of functions which are continuous on their
respective pieces, then it is measurable. -/
theorem ContinuousOn.measurable_piecewise {f g : α → γ} {s : Set α} [∀ j : α, Decidable (j ∈ s)]
@@ -890,67 +1232,94 @@ theorem ContinuousOn.measurable_piecewise {f g : α → γ} {s : Set α} [∀ j
exact u_open.measurable_set.inter hs.compl
#align continuous_on.measurable_piecewise ContinuousOn.measurable_piecewise
+#print ContinuousMul.measurableMul /-
@[to_additive]
instance (priority := 100) ContinuousMul.measurableMul [Mul γ] [ContinuousMul γ] : MeasurableMul γ
where
measurable_const_mul c := (continuous_const.mul continuous_id).Measurable
measurable_mul_const c := (continuous_id.mul continuous_const).Measurable
#align has_continuous_mul.has_measurable_mul ContinuousMul.measurableMul
-#align has_continuous_add.has_measurable_add ContinuousAdd.has_measurable_add
+#align has_continuous_add.has_measurable_add ContinuousAdd.measurableAdd
+-/
+#print ContinuousSub.measurableSub /-
instance (priority := 100) ContinuousSub.measurableSub [Sub γ] [ContinuousSub γ] : MeasurableSub γ
where
measurable_const_sub c := (continuous_const.sub continuous_id).Measurable
measurable_sub_const c := (continuous_id.sub continuous_const).Measurable
#align has_continuous_sub.has_measurable_sub ContinuousSub.measurableSub
+-/
+/- warning: topological_group.has_measurable_inv -> TopologicalGroup.measurableInv is a dubious translation:
+lean 3 declaration is
+ forall {γ : Type.{u1}} [_inst_7 : TopologicalSpace.{u1} γ] [_inst_8 : MeasurableSpace.{u1} γ] [_inst_9 : BorelSpace.{u1} γ _inst_7 _inst_8] [_inst_16 : Group.{u1} γ] [_inst_17 : TopologicalGroup.{u1} γ _inst_7 _inst_16], MeasurableInv.{u1} γ (DivInvMonoid.toHasInv.{u1} γ (Group.toDivInvMonoid.{u1} γ _inst_16)) _inst_8
+but is expected to have type
+ forall {γ : Type.{u1}} [_inst_7 : TopologicalSpace.{u1} γ] [_inst_8 : MeasurableSpace.{u1} γ] [_inst_9 : BorelSpace.{u1} γ _inst_7 _inst_8] [_inst_16 : Group.{u1} γ] [_inst_17 : TopologicalGroup.{u1} γ _inst_7 _inst_16], MeasurableInv.{u1} γ (InvOneClass.toInv.{u1} γ (DivInvOneMonoid.toInvOneClass.{u1} γ (DivisionMonoid.toDivInvOneMonoid.{u1} γ (Group.toDivisionMonoid.{u1} γ _inst_16)))) _inst_8
+Case conversion may be inaccurate. Consider using '#align topological_group.has_measurable_inv TopologicalGroup.measurableInvₓ'. -/
@[to_additive]
instance (priority := 100) TopologicalGroup.measurableInv [Group γ] [TopologicalGroup γ] :
MeasurableInv γ :=
⟨continuous_inv.Measurable⟩
#align topological_group.has_measurable_inv TopologicalGroup.measurableInv
-#align topological_add_group.has_measurable_neg TopologicalAddGroup.has_measurable_neg
+#align topological_add_group.has_measurable_neg TopologicalAddGroup.measurableNeg
+#print ContinuousSMul.measurableSMul /-
instance (priority := 100) ContinuousSMul.measurableSMul {M α} [TopologicalSpace M]
[TopologicalSpace α] [MeasurableSpace M] [MeasurableSpace α] [OpensMeasurableSpace M]
[BorelSpace α] [SMul M α] [ContinuousSMul M α] : MeasurableSMul M α :=
⟨fun c => (continuous_const_smul _).Measurable, fun y =>
(continuous_id.smul continuous_const).Measurable⟩
#align has_continuous_smul.has_measurable_smul ContinuousSMul.measurableSMul
+-/
section Lattice
+#print ContinuousSup.measurableSup /-
instance (priority := 100) ContinuousSup.measurableSup [Sup γ] [ContinuousSup γ] : MeasurableSup γ
where
measurable_const_sup c := (continuous_const.sup continuous_id).Measurable
measurable_sup_const c := (continuous_id.sup continuous_const).Measurable
#align has_continuous_sup.has_measurable_sup ContinuousSup.measurableSup
+-/
+#print ContinuousSup.measurableSup₂ /-
instance (priority := 100) ContinuousSup.measurableSup₂ [SecondCountableTopology γ] [Sup γ]
[ContinuousSup γ] : MeasurableSup₂ γ :=
⟨continuous_sup.Measurable⟩
#align has_continuous_sup.has_measurable_sup₂ ContinuousSup.measurableSup₂
+-/
+#print ContinuousInf.measurableInf /-
instance (priority := 100) ContinuousInf.measurableInf [Inf γ] [ContinuousInf γ] : MeasurableInf γ
where
measurable_const_inf c := (continuous_const.inf continuous_id).Measurable
measurable_inf_const c := (continuous_id.inf continuous_const).Measurable
#align has_continuous_inf.has_measurable_inf ContinuousInf.measurableInf
+-/
+#print ContinuousInf.measurableInf₂ /-
instance (priority := 100) ContinuousInf.measurableInf₂ [SecondCountableTopology γ] [Inf γ]
[ContinuousInf γ] : MeasurableInf₂ γ :=
⟨continuous_inf.Measurable⟩
#align has_continuous_inf.has_measurable_inf₂ ContinuousInf.measurableInf₂
+-/
end Lattice
section Homeomorph
+/- warning: homeomorph.measurable -> Homeomorph.measurable is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {γ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_7 : TopologicalSpace.{u2} γ] [_inst_8 : MeasurableSpace.{u2} γ] [_inst_9 : BorelSpace.{u2} γ _inst_7 _inst_8] (h : Homeomorph.{u1, u2} α γ _inst_1 _inst_7), Measurable.{u1, u2} α γ _inst_2 _inst_8 (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (Homeomorph.{u1, u2} α γ _inst_1 _inst_7) (fun (_x : Homeomorph.{u1, u2} α γ _inst_1 _inst_7) => α -> γ) (Homeomorph.hasCoeToFun.{u1, u2} α γ _inst_1 _inst_7) h)
+but is expected to have type
+ forall {α : Type.{u2}} {γ : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : MeasurableSpace.{u2} α] [_inst_3 : OpensMeasurableSpace.{u2} α _inst_1 _inst_2] [_inst_7 : TopologicalSpace.{u1} γ] [_inst_8 : MeasurableSpace.{u1} γ] [_inst_9 : BorelSpace.{u1} γ _inst_7 _inst_8] (h : Homeomorph.{u2, u1} α γ _inst_1 _inst_7), Measurable.{u2, u1} α γ _inst_2 _inst_8 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Homeomorph.{u2, u1} α γ _inst_1 _inst_7) α (fun (_x : α) => γ) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (Homeomorph.{u2, u1} α γ _inst_1 _inst_7) α γ (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (Homeomorph.{u2, u1} α γ _inst_1 _inst_7) α γ (Homeomorph.instEquivLikeHomeomorph.{u2, u1} α γ _inst_1 _inst_7))) h)
+Case conversion may be inaccurate. Consider using '#align homeomorph.measurable Homeomorph.measurableₓ'. -/
@[measurability]
protected theorem Homeomorph.measurable (h : α ≃ₜ γ) : Measurable h :=
h.Continuous.Measurable
#align homeomorph.measurable Homeomorph.measurable
+#print Homeomorph.toMeasurableEquiv /-
/-- A homeomorphism between two Borel spaces is a measurable equivalence.-/
def Homeomorph.toMeasurableEquiv (h : γ ≃ₜ γ₂) : γ ≃ᵐ γ₂
where
@@ -958,12 +1327,25 @@ def Homeomorph.toMeasurableEquiv (h : γ ≃ₜ γ₂) : γ ≃ᵐ γ₂
measurable_inv_fun := h.symm.Measurable
toEquiv := h.toEquiv
#align homeomorph.to_measurable_equiv Homeomorph.toMeasurableEquiv
+-/
+/- warning: homeomorph.to_measurable_equiv_coe -> Homeomorph.toMeasurableEquiv_coe is a dubious translation:
+lean 3 declaration is
+ forall {γ : Type.{u1}} {γ₂ : Type.{u2}} [_inst_7 : TopologicalSpace.{u1} γ] [_inst_8 : MeasurableSpace.{u1} γ] [_inst_9 : BorelSpace.{u1} γ _inst_7 _inst_8] [_inst_10 : TopologicalSpace.{u2} γ₂] [_inst_11 : MeasurableSpace.{u2} γ₂] [_inst_12 : BorelSpace.{u2} γ₂ _inst_10 _inst_11] (h : Homeomorph.{u1, u2} γ γ₂ _inst_7 _inst_10), Eq.{max (succ u1) (succ u2)} ((fun (_x : MeasurableEquiv.{u1, u2} γ γ₂ _inst_8 _inst_11) => γ -> γ₂) (Homeomorph.toMeasurableEquiv.{u1, u2} γ γ₂ _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12 h)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MeasurableEquiv.{u1, u2} γ γ₂ _inst_8 _inst_11) (fun (_x : MeasurableEquiv.{u1, u2} γ γ₂ _inst_8 _inst_11) => γ -> γ₂) (MeasurableEquiv.hasCoeToFun.{u1, u2} γ γ₂ _inst_8 _inst_11) (Homeomorph.toMeasurableEquiv.{u1, u2} γ γ₂ _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12 h)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (Homeomorph.{u1, u2} γ γ₂ _inst_7 _inst_10) (fun (_x : Homeomorph.{u1, u2} γ γ₂ _inst_7 _inst_10) => γ -> γ₂) (Homeomorph.hasCoeToFun.{u1, u2} γ γ₂ _inst_7 _inst_10) h)
+but is expected to have type
+ forall {γ : Type.{u2}} {γ₂ : Type.{u1}} [_inst_7 : TopologicalSpace.{u2} γ] [_inst_8 : MeasurableSpace.{u2} γ] [_inst_9 : BorelSpace.{u2} γ _inst_7 _inst_8] [_inst_10 : TopologicalSpace.{u1} γ₂] [_inst_11 : MeasurableSpace.{u1} γ₂] [_inst_12 : BorelSpace.{u1} γ₂ _inst_10 _inst_11] (h : Homeomorph.{u2, u1} γ γ₂ _inst_7 _inst_10), Eq.{max (succ u2) (succ u1)} (forall (a : γ), (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : γ) => γ₂) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} γ γ₂ _inst_8 _inst_11) γ (fun (_x : γ) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : γ) => γ₂) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} γ γ₂ _inst_8 _inst_11) γ γ₂ (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MeasurableEquiv.{u2, u1} γ γ₂ _inst_8 _inst_11) γ γ₂ (MeasurableEquiv.instEquivLike.{u2, u1} γ γ₂ _inst_8 _inst_11))) (Homeomorph.toMeasurableEquiv.{u2, u1} γ γ₂ _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12 h)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Homeomorph.{u2, u1} γ γ₂ _inst_7 _inst_10) γ (fun (_x : γ) => γ₂) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (Homeomorph.{u2, u1} γ γ₂ _inst_7 _inst_10) γ γ₂ (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (Homeomorph.{u2, u1} γ γ₂ _inst_7 _inst_10) γ γ₂ (Homeomorph.instEquivLikeHomeomorph.{u2, u1} γ γ₂ _inst_7 _inst_10))) h)
+Case conversion may be inaccurate. Consider using '#align homeomorph.to_measurable_equiv_coe Homeomorph.toMeasurableEquiv_coeₓ'. -/
@[simp]
theorem Homeomorph.toMeasurableEquiv_coe (h : γ ≃ₜ γ₂) : (h.toMeasurableEquiv : γ → γ₂) = h :=
rfl
#align homeomorph.to_measurable_equiv_coe Homeomorph.toMeasurableEquiv_coe
+/- warning: homeomorph.to_measurable_equiv_symm_coe -> Homeomorph.toMeasurableEquiv_symm_coe is a dubious translation:
+lean 3 declaration is
+ forall {γ : Type.{u1}} {γ₂ : Type.{u2}} [_inst_7 : TopologicalSpace.{u1} γ] [_inst_8 : MeasurableSpace.{u1} γ] [_inst_9 : BorelSpace.{u1} γ _inst_7 _inst_8] [_inst_10 : TopologicalSpace.{u2} γ₂] [_inst_11 : MeasurableSpace.{u2} γ₂] [_inst_12 : BorelSpace.{u2} γ₂ _inst_10 _inst_11] (h : Homeomorph.{u1, u2} γ γ₂ _inst_7 _inst_10), Eq.{max (succ u2) (succ u1)} ((fun (_x : MeasurableEquiv.{u2, u1} γ₂ γ _inst_11 _inst_8) => γ₂ -> γ) (MeasurableEquiv.symm.{u1, u2} γ γ₂ _inst_8 _inst_11 (Homeomorph.toMeasurableEquiv.{u1, u2} γ γ₂ _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12 h))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (MeasurableEquiv.{u2, u1} γ₂ γ _inst_11 _inst_8) (fun (_x : MeasurableEquiv.{u2, u1} γ₂ γ _inst_11 _inst_8) => γ₂ -> γ) (MeasurableEquiv.hasCoeToFun.{u2, u1} γ₂ γ _inst_11 _inst_8) (MeasurableEquiv.symm.{u1, u2} γ γ₂ _inst_8 _inst_11 (Homeomorph.toMeasurableEquiv.{u1, u2} γ γ₂ _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12 h))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Homeomorph.{u2, u1} γ₂ γ _inst_10 _inst_7) (fun (_x : Homeomorph.{u2, u1} γ₂ γ _inst_10 _inst_7) => γ₂ -> γ) (Homeomorph.hasCoeToFun.{u2, u1} γ₂ γ _inst_10 _inst_7) (Homeomorph.symm.{u1, u2} γ γ₂ _inst_7 _inst_10 h))
+but is expected to have type
+ forall {γ : Type.{u2}} {γ₂ : Type.{u1}} [_inst_7 : TopologicalSpace.{u2} γ] [_inst_8 : MeasurableSpace.{u2} γ] [_inst_9 : BorelSpace.{u2} γ _inst_7 _inst_8] [_inst_10 : TopologicalSpace.{u1} γ₂] [_inst_11 : MeasurableSpace.{u1} γ₂] [_inst_12 : BorelSpace.{u1} γ₂ _inst_10 _inst_11] (h : Homeomorph.{u2, u1} γ γ₂ _inst_7 _inst_10), Eq.{max (succ u2) (succ u1)} (forall (a : γ₂), (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : γ₂) => γ) a) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} γ₂ γ _inst_11 _inst_8) γ₂ (fun (_x : γ₂) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : γ₂) => γ) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} γ₂ γ _inst_11 _inst_8) γ₂ γ (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u1, succ u2} (MeasurableEquiv.{u1, u2} γ₂ γ _inst_11 _inst_8) γ₂ γ (MeasurableEquiv.instEquivLike.{u1, u2} γ₂ γ _inst_11 _inst_8))) (MeasurableEquiv.symm.{u2, u1} γ γ₂ _inst_8 _inst_11 (Homeomorph.toMeasurableEquiv.{u2, u1} γ γ₂ _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12 h))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Homeomorph.{u1, u2} γ₂ γ _inst_10 _inst_7) γ₂ (fun (_x : γ₂) => γ) (EmbeddingLike.toFunLike.{max (succ u1) (succ u2), succ u1, succ u2} (Homeomorph.{u1, u2} γ₂ γ _inst_10 _inst_7) γ₂ γ (EquivLike.toEmbeddingLike.{max (succ u1) (succ u2), succ u1, succ u2} (Homeomorph.{u1, u2} γ₂ γ _inst_10 _inst_7) γ₂ γ (Homeomorph.instEquivLikeHomeomorph.{u1, u2} γ₂ γ _inst_10 _inst_7))) (Homeomorph.symm.{u2, u1} γ γ₂ _inst_7 _inst_10 h))
+Case conversion may be inaccurate. Consider using '#align homeomorph.to_measurable_equiv_symm_coe Homeomorph.toMeasurableEquiv_symm_coeₓ'. -/
@[simp]
theorem Homeomorph.toMeasurableEquiv_symm_coe (h : γ ≃ₜ γ₂) :
(h.toMeasurableEquiv.symm : γ₂ → γ) = h.symm :=
@@ -972,53 +1354,88 @@ theorem Homeomorph.toMeasurableEquiv_symm_coe (h : γ ≃ₜ γ₂) :
end Homeomorph
+/- warning: continuous_map.measurable -> ContinuousMap.measurable is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {γ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_7 : TopologicalSpace.{u2} γ] [_inst_8 : MeasurableSpace.{u2} γ] [_inst_9 : BorelSpace.{u2} γ _inst_7 _inst_8] (f : ContinuousMap.{u1, u2} α γ _inst_1 _inst_7), Measurable.{u1, u2} α γ _inst_2 _inst_8 (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (ContinuousMap.{u1, u2} α γ _inst_1 _inst_7) (fun (_x : ContinuousMap.{u1, u2} α γ _inst_1 _inst_7) => α -> γ) (ContinuousMap.hasCoeToFun.{u1, u2} α γ _inst_1 _inst_7) f)
+but is expected to have type
+ forall {α : Type.{u2}} {γ : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : MeasurableSpace.{u2} α] [_inst_3 : OpensMeasurableSpace.{u2} α _inst_1 _inst_2] [_inst_7 : TopologicalSpace.{u1} γ] [_inst_8 : MeasurableSpace.{u1} γ] [_inst_9 : BorelSpace.{u1} γ _inst_7 _inst_8] (f : ContinuousMap.{u2, u1} α γ _inst_1 _inst_7), Measurable.{u2, u1} α γ _inst_2 _inst_8 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (ContinuousMap.{u2, u1} α γ _inst_1 _inst_7) α (fun (_x : α) => (fun (x._@.Mathlib.Topology.ContinuousFunction.Basic._hyg.699 : α) => γ) _x) (ContinuousMapClass.toFunLike.{max u2 u1, u2, u1} (ContinuousMap.{u2, u1} α γ _inst_1 _inst_7) α γ _inst_1 _inst_7 (ContinuousMap.instContinuousMapClassContinuousMap.{u2, u1} α γ _inst_1 _inst_7)) f)
+Case conversion may be inaccurate. Consider using '#align continuous_map.measurable ContinuousMap.measurableₓ'. -/
@[measurability]
theorem ContinuousMap.measurable (f : C(α, γ)) : Measurable f :=
f.Continuous.Measurable
#align continuous_map.measurable ContinuousMap.measurable
+/- warning: measurable_of_continuous_on_compl_singleton -> measurable_of_continuousOn_compl_singleton is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {γ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_7 : TopologicalSpace.{u2} γ] [_inst_8 : MeasurableSpace.{u2} γ] [_inst_9 : BorelSpace.{u2} γ _inst_7 _inst_8] [_inst_16 : T1Space.{u1} α _inst_1] {f : α -> γ} (a : α), (ContinuousOn.{u1, u2} α γ _inst_1 _inst_7 f (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) (Singleton.singleton.{u1, u1} α (Set.{u1} α) (Set.hasSingleton.{u1} α) a))) -> (Measurable.{u1, u2} α γ _inst_2 _inst_8 f)
+but is expected to have type
+ forall {α : Type.{u2}} {γ : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : MeasurableSpace.{u2} α] [_inst_3 : OpensMeasurableSpace.{u2} α _inst_1 _inst_2] [_inst_7 : TopologicalSpace.{u1} γ] [_inst_8 : MeasurableSpace.{u1} γ] [_inst_9 : BorelSpace.{u1} γ _inst_7 _inst_8] [_inst_16 : T1Space.{u2} α _inst_1] {f : α -> γ} (a : α), (ContinuousOn.{u2, u1} α γ _inst_1 _inst_7 f (HasCompl.compl.{u2} (Set.{u2} α) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} α) (Set.instBooleanAlgebraSet.{u2} α)) (Singleton.singleton.{u2, u2} α (Set.{u2} α) (Set.instSingletonSet.{u2} α) a))) -> (Measurable.{u2, u1} α γ _inst_2 _inst_8 f)
+Case conversion may be inaccurate. Consider using '#align measurable_of_continuous_on_compl_singleton measurable_of_continuousOn_compl_singletonₓ'. -/
theorem measurable_of_continuousOn_compl_singleton [T1Space α] {f : α → γ} (a : α)
(hf : ContinuousOn f ({a}ᶜ)) : Measurable f :=
measurable_of_measurable_on_compl_singleton a
(continuousOn_iff_continuous_restrict.1 hf).Measurable
#align measurable_of_continuous_on_compl_singleton measurable_of_continuousOn_compl_singleton
+/- warning: continuous.measurable2 -> Continuous.measurable2 is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {δ : Type.{u4}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u2} β] [_inst_5 : MeasurableSpace.{u2} β] [_inst_6 : OpensMeasurableSpace.{u2} β _inst_4 _inst_5] [_inst_7 : TopologicalSpace.{u3} γ] [_inst_8 : MeasurableSpace.{u3} γ] [_inst_9 : BorelSpace.{u3} γ _inst_7 _inst_8] [_inst_13 : MeasurableSpace.{u4} δ] [_inst_16 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] [_inst_17 : TopologicalSpace.SecondCountableTopology.{u2} β _inst_4] {f : δ -> α} {g : δ -> β} {c : α -> β -> γ}, (Continuous.{max u1 u2, u3} (Prod.{u1, u2} α β) γ (Prod.topologicalSpace.{u1, u2} α β _inst_1 _inst_4) _inst_7 (fun (p : Prod.{u1, u2} α β) => c (Prod.fst.{u1, u2} α β p) (Prod.snd.{u1, u2} α β p))) -> (Measurable.{u4, u1} δ α _inst_13 _inst_2 f) -> (Measurable.{u4, u2} δ β _inst_13 _inst_5 g) -> (Measurable.{u4, u3} δ γ _inst_13 _inst_8 (fun (a : δ) => c (f a) (g a)))
+but is expected to have type
+ forall {α : Type.{u4}} {β : Type.{u3}} {γ : Type.{u2}} {δ : Type.{u1}} [_inst_1 : TopologicalSpace.{u4} α] [_inst_2 : MeasurableSpace.{u4} α] [_inst_3 : OpensMeasurableSpace.{u4} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u3} β] [_inst_5 : MeasurableSpace.{u3} β] [_inst_6 : OpensMeasurableSpace.{u3} β _inst_4 _inst_5] [_inst_7 : TopologicalSpace.{u2} γ] [_inst_8 : MeasurableSpace.{u2} γ] [_inst_9 : BorelSpace.{u2} γ _inst_7 _inst_8] [_inst_13 : MeasurableSpace.{u1} δ] [_inst_16 : TopologicalSpace.SecondCountableTopology.{u4} α _inst_1] [_inst_17 : TopologicalSpace.SecondCountableTopology.{u3} β _inst_4] {f : δ -> α} {g : δ -> β} {c : α -> β -> γ}, (Continuous.{max u4 u3, u2} (Prod.{u4, u3} α β) γ (instTopologicalSpaceProd.{u4, u3} α β _inst_1 _inst_4) _inst_7 (fun (p : Prod.{u4, u3} α β) => c (Prod.fst.{u4, u3} α β p) (Prod.snd.{u4, u3} α β p))) -> (Measurable.{u1, u4} δ α _inst_13 _inst_2 f) -> (Measurable.{u1, u3} δ β _inst_13 _inst_5 g) -> (Measurable.{u1, u2} δ γ _inst_13 _inst_8 (fun (a : δ) => c (f a) (g a)))
+Case conversion may be inaccurate. Consider using '#align continuous.measurable2 Continuous.measurable2ₓ'. -/
theorem Continuous.measurable2 [SecondCountableTopology α] [SecondCountableTopology β] {f : δ → α}
{g : δ → β} {c : α → β → γ} (h : Continuous fun p : α × β => c p.1 p.2) (hf : Measurable f)
(hg : Measurable g) : Measurable fun a => c (f a) (g a) :=
h.Measurable.comp (hf.prod_mk hg)
#align continuous.measurable2 Continuous.measurable2
-theorem Continuous.ae_measurable2 [SecondCountableTopology α] [SecondCountableTopology β]
- {f : δ → α} {g : δ → β} {c : α → β → γ} {μ : Measure δ}
- (h : Continuous fun p : α × β => c p.1 p.2) (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
- AEMeasurable (fun a => c (f a) (g a)) μ :=
+/- warning: continuous.ae_measurable2 -> Continuous.aemeasurable2 is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {δ : Type.{u4}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u2} β] [_inst_5 : MeasurableSpace.{u2} β] [_inst_6 : OpensMeasurableSpace.{u2} β _inst_4 _inst_5] [_inst_7 : TopologicalSpace.{u3} γ] [_inst_8 : MeasurableSpace.{u3} γ] [_inst_9 : BorelSpace.{u3} γ _inst_7 _inst_8] [_inst_13 : MeasurableSpace.{u4} δ] [_inst_16 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] [_inst_17 : TopologicalSpace.SecondCountableTopology.{u2} β _inst_4] {f : δ -> α} {g : δ -> β} {c : α -> β -> γ} {μ : MeasureTheory.Measure.{u4} δ _inst_13}, (Continuous.{max u1 u2, u3} (Prod.{u1, u2} α β) γ (Prod.topologicalSpace.{u1, u2} α β _inst_1 _inst_4) _inst_7 (fun (p : Prod.{u1, u2} α β) => c (Prod.fst.{u1, u2} α β p) (Prod.snd.{u1, u2} α β p))) -> (AEMeasurable.{u4, u1} δ α _inst_2 _inst_13 f μ) -> (AEMeasurable.{u4, u2} δ β _inst_5 _inst_13 g μ) -> (AEMeasurable.{u4, u3} δ γ _inst_8 _inst_13 (fun (a : δ) => c (f a) (g a)) μ)
+but is expected to have type
+ forall {α : Type.{u4}} {β : Type.{u3}} {γ : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u4} α] [_inst_2 : MeasurableSpace.{u4} α] [_inst_3 : OpensMeasurableSpace.{u4} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u3} β] [_inst_5 : MeasurableSpace.{u3} β] [_inst_6 : OpensMeasurableSpace.{u3} β _inst_4 _inst_5] [_inst_7 : TopologicalSpace.{u1} γ] [_inst_8 : MeasurableSpace.{u1} γ] [_inst_9 : BorelSpace.{u1} γ _inst_7 _inst_8] [_inst_13 : MeasurableSpace.{u2} δ] [_inst_16 : TopologicalSpace.SecondCountableTopology.{u4} α _inst_1] [_inst_17 : TopologicalSpace.SecondCountableTopology.{u3} β _inst_4] {f : δ -> α} {g : δ -> β} {c : α -> β -> γ} {μ : MeasureTheory.Measure.{u2} δ _inst_13}, (Continuous.{max u4 u3, u1} (Prod.{u4, u3} α β) γ (instTopologicalSpaceProd.{u4, u3} α β _inst_1 _inst_4) _inst_7 (fun (p : Prod.{u4, u3} α β) => c (Prod.fst.{u4, u3} α β p) (Prod.snd.{u4, u3} α β p))) -> (AEMeasurable.{u2, u4} δ α _inst_2 _inst_13 f μ) -> (AEMeasurable.{u2, u3} δ β _inst_5 _inst_13 g μ) -> (AEMeasurable.{u2, u1} δ γ _inst_8 _inst_13 (fun (a : δ) => c (f a) (g a)) μ)
+Case conversion may be inaccurate. Consider using '#align continuous.ae_measurable2 Continuous.aemeasurable2ₓ'. -/
+theorem Continuous.aemeasurable2 [SecondCountableTopology α] [SecondCountableTopology β] {f : δ → α}
+ {g : δ → β} {c : α → β → γ} {μ : Measure δ} (h : Continuous fun p : α × β => c p.1 p.2)
+ (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) : AEMeasurable (fun a => c (f a) (g a)) μ :=
h.Measurable.comp_aemeasurable (hf.prod_mk hg)
-#align continuous.ae_measurable2 Continuous.ae_measurable2
-
+#align continuous.ae_measurable2 Continuous.aemeasurable2
+
+/- warning: has_continuous_inv₀.has_measurable_inv -> HasContinuousInv₀.measurableInv is a dubious translation:
+lean 3 declaration is
+ forall {γ : Type.{u1}} [_inst_7 : TopologicalSpace.{u1} γ] [_inst_8 : MeasurableSpace.{u1} γ] [_inst_9 : BorelSpace.{u1} γ _inst_7 _inst_8] [_inst_16 : GroupWithZero.{u1} γ] [_inst_17 : T1Space.{u1} γ _inst_7] [_inst_18 : HasContinuousInv₀.{u1} γ (MulZeroClass.toHasZero.{u1} γ (MulZeroOneClass.toMulZeroClass.{u1} γ (MonoidWithZero.toMulZeroOneClass.{u1} γ (GroupWithZero.toMonoidWithZero.{u1} γ _inst_16)))) (DivInvMonoid.toHasInv.{u1} γ (GroupWithZero.toDivInvMonoid.{u1} γ _inst_16)) _inst_7], MeasurableInv.{u1} γ (DivInvMonoid.toHasInv.{u1} γ (GroupWithZero.toDivInvMonoid.{u1} γ _inst_16)) _inst_8
+but is expected to have type
+ forall {γ : Type.{u1}} [_inst_7 : TopologicalSpace.{u1} γ] [_inst_8 : MeasurableSpace.{u1} γ] [_inst_9 : BorelSpace.{u1} γ _inst_7 _inst_8] [_inst_16 : GroupWithZero.{u1} γ] [_inst_17 : T1Space.{u1} γ _inst_7] [_inst_18 : HasContinuousInv₀.{u1} γ (MonoidWithZero.toZero.{u1} γ (GroupWithZero.toMonoidWithZero.{u1} γ _inst_16)) (GroupWithZero.toInv.{u1} γ _inst_16) _inst_7], MeasurableInv.{u1} γ (GroupWithZero.toInv.{u1} γ _inst_16) _inst_8
+Case conversion may be inaccurate. Consider using '#align has_continuous_inv₀.has_measurable_inv HasContinuousInv₀.measurableInvₓ'. -/
instance (priority := 100) HasContinuousInv₀.measurableInv [GroupWithZero γ] [T1Space γ]
[HasContinuousInv₀ γ] : MeasurableInv γ :=
⟨measurable_of_continuousOn_compl_singleton 0 continuousOn_inv₀⟩
#align has_continuous_inv₀.has_measurable_inv HasContinuousInv₀.measurableInv
+#print ContinuousMul.measurableMul₂ /-
@[to_additive]
instance (priority := 100) ContinuousMul.measurableMul₂ [SecondCountableTopology γ] [Mul γ]
[ContinuousMul γ] : MeasurableMul₂ γ :=
⟨continuous_mul.Measurable⟩
#align has_continuous_mul.has_measurable_mul₂ ContinuousMul.measurableMul₂
#align has_continuous_add.has_measurable_mul₂ ContinuousAdd.measurableMul₂
+-/
+#print ContinuousSub.measurableSub₂ /-
instance (priority := 100) ContinuousSub.measurableSub₂ [SecondCountableTopology γ] [Sub γ]
[ContinuousSub γ] : MeasurableSub₂ γ :=
⟨continuous_sub.Measurable⟩
#align has_continuous_sub.has_measurable_sub₂ ContinuousSub.measurableSub₂
+-/
+#print ContinuousSMul.measurableSMul₂ /-
instance (priority := 100) ContinuousSMul.measurableSMul₂ {M α} [TopologicalSpace M]
[SecondCountableTopology M] [MeasurableSpace M] [OpensMeasurableSpace M] [TopologicalSpace α]
[SecondCountableTopology α] [MeasurableSpace α] [BorelSpace α] [SMul M α] [ContinuousSMul M α] :
MeasurableSMul₂ M α :=
⟨continuous_smul.Measurable⟩
#align has_continuous_smul.has_measurable_smul₂ ContinuousSMul.measurableSMul₂
+-/
end
@@ -1028,6 +1445,12 @@ variable [TopologicalSpace α] [MeasurableSpace α] [BorelSpace α] [Topological
[MeasurableSpace β] [BorelSpace β] [TopologicalSpace γ] [MeasurableSpace γ] [BorelSpace γ]
[MeasurableSpace δ]
+/- warning: pi_le_borel_pi -> pi_le_borel_pi is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {π : ι -> Type.{u2}} [_inst_11 : forall (i : ι), TopologicalSpace.{u2} (π i)] [_inst_12 : forall (i : ι), MeasurableSpace.{u2} (π i)] [_inst_13 : forall (i : ι), BorelSpace.{u2} (π i) (_inst_11 i) (_inst_12 i)], LE.le.{max u1 u2} (MeasurableSpace.{max u1 u2} (forall (a : ι), π a)) (MeasurableSpace.hasLe.{max u1 u2} (forall (a : ι), π a)) (MeasurableSpace.pi.{u1, u2} ι (fun (a : ι) => π a) (fun (a : ι) => _inst_12 a)) (borel.{max u1 u2} (forall (i : ι), π i) (Pi.topologicalSpace.{u1, u2} ι (fun (a : ι) => π a) (fun (a : ι) => _inst_11 a)))
+but is expected to have type
+ forall {ι : Type.{u2}} {π : ι -> Type.{u1}} [_inst_11 : forall (i : ι), TopologicalSpace.{u1} (π i)] [_inst_12 : forall (i : ι), MeasurableSpace.{u1} (π i)] [_inst_13 : forall (i : ι), BorelSpace.{u1} (π i) (_inst_11 i) (_inst_12 i)], LE.le.{max u2 u1} (MeasurableSpace.{max u2 u1} (forall (a : ι), π a)) (MeasurableSpace.instLEMeasurableSpace.{max u2 u1} (forall (a : ι), π a)) (MeasurableSpace.pi.{u2, u1} ι (fun (a : ι) => π a) (fun (a : ι) => _inst_12 a)) (borel.{max u2 u1} (forall (i : ι), π i) (Pi.topologicalSpace.{u2, u1} ι (fun (a : ι) => π a) (fun (a : ι) => _inst_11 a)))
+Case conversion may be inaccurate. Consider using '#align pi_le_borel_pi pi_le_borel_piₓ'. -/
theorem pi_le_borel_pi {ι : Type _} {π : ι → Type _} [∀ i, TopologicalSpace (π i)]
[∀ i, MeasurableSpace (π i)] [∀ i, BorelSpace (π i)] : MeasurableSpace.pi ≤ borel (∀ i, π i) :=
by
@@ -1037,6 +1460,12 @@ theorem pi_le_borel_pi {ι : Type _} {π : ι → Type _} [∀ i, TopologicalSpa
exact iSup_le fun i => comap_le_iff_le_map.2 <| (continuous_apply i).borel_measurable
#align pi_le_borel_pi pi_le_borel_pi
+/- warning: prod_le_borel_prod -> prod_le_borel_prod is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u2} β] [_inst_5 : MeasurableSpace.{u2} β] [_inst_6 : BorelSpace.{u2} β _inst_4 _inst_5], LE.le.{max u1 u2} (MeasurableSpace.{max u1 u2} (Prod.{u1, u2} α β)) (MeasurableSpace.hasLe.{max u1 u2} (Prod.{u1, u2} α β)) (Prod.instMeasurableSpace.{u1, u2} α β _inst_2 _inst_5) (borel.{max u1 u2} (Prod.{u1, u2} α β) (Prod.topologicalSpace.{u1, u2} α β _inst_1 _inst_4))
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : MeasurableSpace.{u2} α] [_inst_3 : BorelSpace.{u2} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u1} β] [_inst_5 : MeasurableSpace.{u1} β] [_inst_6 : BorelSpace.{u1} β _inst_4 _inst_5], LE.le.{max u2 u1} (MeasurableSpace.{max u1 u2} (Prod.{u2, u1} α β)) (MeasurableSpace.instLEMeasurableSpace.{max u2 u1} (Prod.{u2, u1} α β)) (Prod.instMeasurableSpace.{u2, u1} α β _inst_2 _inst_5) (borel.{max u1 u2} (Prod.{u2, u1} α β) (instTopologicalSpaceProd.{u2, u1} α β _inst_1 _inst_4))
+Case conversion may be inaccurate. Consider using '#align prod_le_borel_prod prod_le_borel_prodₓ'. -/
theorem prod_le_borel_prod : Prod.instMeasurableSpace ≤ borel (α × β) :=
by
rw [‹BorelSpace α›.measurable_eq, ‹BorelSpace β›.measurable_eq]
@@ -1045,28 +1474,54 @@ theorem prod_le_borel_prod : Prod.instMeasurableSpace ≤ borel (α × β) :=
· exact comap_le_iff_le_map.mpr continuous_snd.borel_measurable
#align prod_le_borel_prod prod_le_borel_prod
+#print Pi.borelSpace /-
instance Pi.borelSpace {ι : Type _} {π : ι → Type _} [Countable ι] [∀ i, TopologicalSpace (π i)]
[∀ i, MeasurableSpace (π i)] [∀ i, SecondCountableTopology (π i)] [∀ i, BorelSpace (π i)] :
BorelSpace (∀ i, π i) :=
⟨le_antisymm pi_le_borel_pi OpensMeasurableSpace.borel_le⟩
#align pi.borel_space Pi.borelSpace
+-/
+/- warning: prod.borel_space -> Prod.borelSpace is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u2} β] [_inst_5 : MeasurableSpace.{u2} β] [_inst_6 : BorelSpace.{u2} β _inst_4 _inst_5] [_inst_11 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] [_inst_12 : TopologicalSpace.SecondCountableTopology.{u2} β _inst_4], BorelSpace.{max u1 u2} (Prod.{u1, u2} α β) (Prod.topologicalSpace.{u1, u2} α β _inst_1 _inst_4) (Prod.instMeasurableSpace.{u1, u2} α β _inst_2 _inst_5)
+but is expected to have type
+ forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u2} β] [_inst_5 : MeasurableSpace.{u2} β] [_inst_6 : BorelSpace.{u2} β _inst_4 _inst_5] [_inst_11 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] [_inst_12 : TopologicalSpace.SecondCountableTopology.{u2} β _inst_4], BorelSpace.{max u2 u1} (Prod.{u1, u2} α β) (instTopologicalSpaceProd.{u1, u2} α β _inst_1 _inst_4) (Prod.instMeasurableSpace.{u1, u2} α β _inst_2 _inst_5)
+Case conversion may be inaccurate. Consider using '#align prod.borel_space Prod.borelSpaceₓ'. -/
instance Prod.borelSpace [SecondCountableTopology α] [SecondCountableTopology β] :
BorelSpace (α × β) :=
⟨le_antisymm prod_le_borel_prod OpensMeasurableSpace.borel_le⟩
#align prod.borel_space Prod.borelSpace
+/- warning: embedding.measurable_embedding -> Embedding.measurableEmbedding is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u2} β] [_inst_5 : MeasurableSpace.{u2} β] [_inst_6 : BorelSpace.{u2} β _inst_4 _inst_5] {f : α -> β}, (Embedding.{u1, u2} α β _inst_1 _inst_4 f) -> (MeasurableSet.{u2} β _inst_5 (Set.range.{u2, succ u1} β α f)) -> (MeasurableEmbedding.{u1, u2} α β _inst_2 _inst_5 f)
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : MeasurableSpace.{u2} α] [_inst_3 : BorelSpace.{u2} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u1} β] [_inst_5 : MeasurableSpace.{u1} β] [_inst_6 : BorelSpace.{u1} β _inst_4 _inst_5] {f : α -> β}, (Embedding.{u2, u1} α β _inst_1 _inst_4 f) -> (MeasurableSet.{u1} β _inst_5 (Set.range.{u1, succ u2} β α f)) -> (MeasurableEmbedding.{u2, u1} α β _inst_2 _inst_5 f)
+Case conversion may be inaccurate. Consider using '#align embedding.measurable_embedding Embedding.measurableEmbeddingₓ'. -/
protected theorem Embedding.measurableEmbedding {f : α → β} (h₁ : Embedding f)
(h₂ : MeasurableSet (range f)) : MeasurableEmbedding f :=
show MeasurableEmbedding (coe ∘ (Homeomorph.ofEmbedding f h₁).toMeasurableEquiv) from
(MeasurableEmbedding.subtype_coe h₂).comp (MeasurableEquiv.measurableEmbedding _)
#align embedding.measurable_embedding Embedding.measurableEmbedding
+/- warning: closed_embedding.measurable_embedding -> ClosedEmbedding.measurableEmbedding is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u2} β] [_inst_5 : MeasurableSpace.{u2} β] [_inst_6 : BorelSpace.{u2} β _inst_4 _inst_5] {f : α -> β}, (ClosedEmbedding.{u1, u2} α β _inst_1 _inst_4 f) -> (MeasurableEmbedding.{u1, u2} α β _inst_2 _inst_5 f)
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : MeasurableSpace.{u2} α] [_inst_3 : BorelSpace.{u2} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u1} β] [_inst_5 : MeasurableSpace.{u1} β] [_inst_6 : BorelSpace.{u1} β _inst_4 _inst_5] {f : α -> β}, (ClosedEmbedding.{u2, u1} α β _inst_1 _inst_4 f) -> (MeasurableEmbedding.{u2, u1} α β _inst_2 _inst_5 f)
+Case conversion may be inaccurate. Consider using '#align closed_embedding.measurable_embedding ClosedEmbedding.measurableEmbeddingₓ'. -/
protected theorem ClosedEmbedding.measurableEmbedding {f : α → β} (h : ClosedEmbedding f) :
MeasurableEmbedding f :=
h.toEmbedding.MeasurableEmbedding h.closed_range.MeasurableSet
#align closed_embedding.measurable_embedding ClosedEmbedding.measurableEmbedding
+/- warning: open_embedding.measurable_embedding -> OpenEmbedding.measurableEmbedding is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u2} β] [_inst_5 : MeasurableSpace.{u2} β] [_inst_6 : BorelSpace.{u2} β _inst_4 _inst_5] {f : α -> β}, (OpenEmbedding.{u1, u2} α β _inst_1 _inst_4 f) -> (MeasurableEmbedding.{u1, u2} α β _inst_2 _inst_5 f)
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : MeasurableSpace.{u2} α] [_inst_3 : BorelSpace.{u2} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u1} β] [_inst_5 : MeasurableSpace.{u1} β] [_inst_6 : BorelSpace.{u1} β _inst_4 _inst_5] {f : α -> β}, (OpenEmbedding.{u2, u1} α β _inst_1 _inst_4 f) -> (MeasurableEmbedding.{u2, u1} α β _inst_2 _inst_5 f)
+Case conversion may be inaccurate. Consider using '#align open_embedding.measurable_embedding OpenEmbedding.measurableEmbeddingₓ'. -/
protected theorem OpenEmbedding.measurableEmbedding {f : α → β} (h : OpenEmbedding f) :
MeasurableEmbedding f :=
h.toEmbedding.MeasurableEmbedding h.open_range.MeasurableSet
@@ -1076,44 +1531,57 @@ section LinearOrder
variable [LinearOrder α] [OrderTopology α] [SecondCountableTopology α]
+#print measurable_of_Iio /-
theorem measurable_of_Iio {f : δ → α} (hf : ∀ x, MeasurableSet (f ⁻¹' Iio x)) : Measurable f :=
by
convert measurable_generateFrom _
exact borel_space.measurable_eq.trans (borel_eq_generateFrom_Iio _)
rintro _ ⟨x, rfl⟩; exact hf x
#align measurable_of_Iio measurable_of_Iio
+-/
+#print UpperSemicontinuous.measurable /-
theorem UpperSemicontinuous.measurable [TopologicalSpace δ] [OpensMeasurableSpace δ] {f : δ → α}
(hf : UpperSemicontinuous f) : Measurable f :=
measurable_of_Iio fun y => (hf.isOpen_preimage y).MeasurableSet
#align upper_semicontinuous.measurable UpperSemicontinuous.measurable
+-/
+#print measurable_of_Ioi /-
theorem measurable_of_Ioi {f : δ → α} (hf : ∀ x, MeasurableSet (f ⁻¹' Ioi x)) : Measurable f :=
by
convert measurable_generateFrom _
exact borel_space.measurable_eq.trans (borel_eq_generateFrom_Ioi _)
rintro _ ⟨x, rfl⟩; exact hf x
#align measurable_of_Ioi measurable_of_Ioi
+-/
+#print LowerSemicontinuous.measurable /-
theorem LowerSemicontinuous.measurable [TopologicalSpace δ] [OpensMeasurableSpace δ] {f : δ → α}
(hf : LowerSemicontinuous f) : Measurable f :=
measurable_of_Ioi fun y => (hf.isOpen_preimage y).MeasurableSet
#align lower_semicontinuous.measurable LowerSemicontinuous.measurable
+-/
+#print measurable_of_Iic /-
theorem measurable_of_Iic {f : δ → α} (hf : ∀ x, MeasurableSet (f ⁻¹' Iic x)) : Measurable f :=
by
apply measurable_of_Ioi
simp_rw [← compl_Iic, preimage_compl, MeasurableSet.compl_iff]
assumption
#align measurable_of_Iic measurable_of_Iic
+-/
+#print measurable_of_Ici /-
theorem measurable_of_Ici {f : δ → α} (hf : ∀ x, MeasurableSet (f ⁻¹' Ici x)) : Measurable f :=
by
apply measurable_of_Iio
simp_rw [← compl_Ici, preimage_compl, MeasurableSet.compl_iff]
assumption
#align measurable_of_Ici measurable_of_Ici
+-/
+#print Measurable.isLUB /-
theorem Measurable.isLUB {ι} [Countable ι] {f : ι → δ → α} {g : δ → α} (hf : ∀ i, Measurable (f i))
(hg : ∀ b, IsLUB { a | ∃ i, f i b = a } (g b)) : Measurable g :=
by
@@ -1124,6 +1592,7 @@ theorem Measurable.isLUB {ι} [Countable ι] {f : ι → δ → α} {g : δ →
simp_rw [Set.preimage, mem_Ioi, lt_isLUB_iff (hg _), exists_range_iff, set_of_exists]
exact MeasurableSet.iUnion fun i => hf i (isOpen_lt' _).MeasurableSet
#align measurable.is_lub Measurable.isLUB
+-/
private theorem ae_measurable.is_lub_of_nonempty {ι} (hι : Nonempty ι) {μ : Measure δ} [Countable ι]
{f : ι → δ → α} {g : δ → α} (hf : ∀ i, AEMeasurable (f i) μ)
@@ -1155,6 +1624,7 @@ private theorem ae_measurable.is_lub_of_nonempty {ι} (hι : Nonempty ι) {μ :
(aeSeq.measure_compl_aeSeqSet_eq_zero hf hg)).symm
#align ae_measurable.is_lub_of_nonempty ae_measurable.is_lub_of_nonempty
+#print AEMeasurable.isLUB /-
theorem AEMeasurable.isLUB {ι} {μ : Measure δ} [Countable ι] {f : ι → δ → α} {g : δ → α}
(hf : ∀ i, AEMeasurable (f i) μ) (hg : ∀ᵐ b ∂μ, IsLUB { a | ∃ i, f i b = a } (g b)) :
AEMeasurable g μ := by
@@ -1175,7 +1645,9 @@ theorem AEMeasurable.isLUB {ι} {μ : Measure δ} [Countable ι] {f : ι → δ
simp_rw [h_empty] at hg
exact ⟨hg.exists.some, hg.mono fun y hy => IsLUB.unique hy hg.exists.some_spec⟩
#align ae_measurable.is_lub AEMeasurable.isLUB
+-/
+#print Measurable.isGLB /-
theorem Measurable.isGLB {ι} [Countable ι] {f : ι → δ → α} {g : δ → α} (hf : ∀ i, Measurable (f i))
(hg : ∀ b, IsGLB { a | ∃ i, f i b = a } (g b)) : Measurable g :=
by
@@ -1186,7 +1658,9 @@ theorem Measurable.isGLB {ι} [Countable ι] {f : ι → δ → α} {g : δ →
simp_rw [Set.preimage, mem_Iio, isGLB_lt_iff (hg _), exists_range_iff, set_of_exists]
exact MeasurableSet.iUnion fun i => hf i (isOpen_gt' _).MeasurableSet
#align measurable.is_glb Measurable.isGLB
+-/
+#print AEMeasurable.isGLB /-
theorem AEMeasurable.isGLB {ι} {μ : Measure δ} [Countable ι] {f : ι → δ → α} {g : δ → α}
(hf : ∀ i, AEMeasurable (f i) μ) (hg : ∀ᵐ b ∂μ, IsGLB { a | ∃ i, f i b = a } (g b)) :
AEMeasurable g μ := by
@@ -1214,31 +1688,46 @@ theorem AEMeasurable.isGLB {ι} {μ : Measure δ} [Countable ι] {f : ι → δ
(ite_ae_eq_of_measure_compl_zero g (fun x => hα.some) (aeSeqSet hf p)
(aeSeq.measure_compl_aeSeqSet_eq_zero hf hg)).symm
#align ae_measurable.is_glb AEMeasurable.isGLB
+-/
+#print Monotone.measurable /-
protected theorem Monotone.measurable [LinearOrder β] [OrderClosedTopology β] {f : β → α}
(hf : Monotone f) : Measurable f :=
suffices h : ∀ x, OrdConnected (f ⁻¹' Ioi x) from measurable_of_Ioi fun x => (h x).MeasurableSet
fun x => ordConnected_def.mpr fun a ha b hb c hc => lt_of_lt_of_le ha (hf hc.1)
#align monotone.measurable Monotone.measurable
+-/
-theorem aEMeasurable_restrict_of_monotoneOn [LinearOrder β] [OrderClosedTopology β] {μ : Measure β}
+#print aemeasurable_restrict_of_monotoneOn /-
+theorem aemeasurable_restrict_of_monotoneOn [LinearOrder β] [OrderClosedTopology β] {μ : Measure β}
{s : Set β} (hs : MeasurableSet s) {f : β → α} (hf : MonotoneOn f s) :
AEMeasurable f (μ.restrict s) :=
have this : Monotone (f ∘ coe : s → α) := fun ⟨x, hx⟩ ⟨y, hy⟩ (hxy : x ≤ y) => hf hx hy hxy
aemeasurable_restrict_of_measurable_subtype hs this.Measurable
-#align ae_measurable_restrict_of_monotone_on aEMeasurable_restrict_of_monotoneOn
+#align ae_measurable_restrict_of_monotone_on aemeasurable_restrict_of_monotoneOn
+-/
+#print Antitone.measurable /-
protected theorem Antitone.measurable [LinearOrder β] [OrderClosedTopology β] {f : β → α}
(hf : Antitone f) : Measurable f :=
@Monotone.measurable αᵒᵈ β _ _ ‹_› _ _ _ _ _ ‹_› _ _ _ hf
#align antitone.measurable Antitone.measurable
+-/
-theorem aEMeasurable_restrict_of_antitoneOn [LinearOrder β] [OrderClosedTopology β] {μ : Measure β}
+#print aemeasurable_restrict_of_antitoneOn /-
+theorem aemeasurable_restrict_of_antitoneOn [LinearOrder β] [OrderClosedTopology β] {μ : Measure β}
{s : Set β} (hs : MeasurableSet s) {f : β → α} (hf : AntitoneOn f s) :
AEMeasurable f (μ.restrict s) :=
- @aEMeasurable_restrict_of_monotoneOn αᵒᵈ β _ _ ‹_› _ _ _ _ _ ‹_› _ _ _ _ hs _ hf
-#align ae_measurable_restrict_of_antitone_on aEMeasurable_restrict_of_antitoneOn
+ @aemeasurable_restrict_of_monotoneOn αᵒᵈ β _ _ ‹_› _ _ _ _ _ ‹_› _ _ _ _ hs _ hf
+#align ae_measurable_restrict_of_antitone_on aemeasurable_restrict_of_antitoneOn
+-/
+/- warning: measurable_set_of_mem_nhds_within_Ioi_aux -> measurableSet_of_mem_nhdsWithin_Ioi_aux is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_11 : LinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_11))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {s : Set.{u1} α}, (forall (x : α), (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) -> (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) s (nhdsWithin.{u1} α _inst_1 x (Set.Ioi.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_11)))) x)))) -> (forall (x : α), (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) -> (Exists.{succ u1} α (fun (y : α) => LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_11))))) x y))) -> (MeasurableSet.{u1} α _inst_2 s)
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_11 : LinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_11)))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {s : Set.{u1} α}, (forall (x : α), (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) -> (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) s (nhdsWithin.{u1} α _inst_1 x (Set.Ioi.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_11))))) x)))) -> (forall (x : α), (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) -> (Exists.{succ u1} α (fun (y : α) => LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_11)))))) x y))) -> (MeasurableSet.{u1} α _inst_2 s)
+Case conversion may be inaccurate. Consider using '#align measurable_set_of_mem_nhds_within_Ioi_aux measurableSet_of_mem_nhdsWithin_Ioi_auxₓ'. -/
theorem measurableSet_of_mem_nhdsWithin_Ioi_aux {s : Set α} (h : ∀ x ∈ s, s ∈ 𝓝[>] x)
(h' : ∀ x ∈ s, ∃ y, x < y) : MeasurableSet s :=
by
@@ -1265,6 +1754,7 @@ theorem measurableSet_of_mem_nhdsWithin_Ioi_aux {s : Set α} (h : ∀ x ∈ s, s
exact B.countable_of_Ioo fun x hx => hy x hx.1
#align measurable_set_of_mem_nhds_within_Ioi_aux measurableSet_of_mem_nhdsWithin_Ioi_aux
+#print measurableSet_of_mem_nhdsWithin_Ioi /-
/-- If a set is a right-neighborhood of all of its points, then it is measurable. -/
theorem measurableSet_of_mem_nhdsWithin_Ioi {s : Set α} (h : ∀ x ∈ s, s ∈ 𝓝[>] x) :
MeasurableSet s := by
@@ -1284,9 +1774,16 @@ theorem measurableSet_of_mem_nhdsWithin_Ioi {s : Set α} (h : ∀ x ∈ s, s ∈
push_neg at H
exact H
#align measurable_set_of_mem_nhds_within_Ioi measurableSet_of_mem_nhdsWithin_Ioi
+-/
end LinearOrder
+/- warning: measurable.supr_Prop -> Measurable.iSup_Prop is a dubious translation:
+lean 3 declaration is
+ forall {δ : Type.{u1}} [_inst_10 : MeasurableSpace.{u1} δ] {α : Type.{u2}} [_inst_11 : MeasurableSpace.{u2} α] [_inst_12 : CompleteLattice.{u2} α] (p : Prop) {f : δ -> α}, (Measurable.{u1, u2} δ α _inst_10 _inst_11 f) -> (Measurable.{u1, u2} δ α _inst_10 _inst_11 (fun (b : δ) => iSup.{u2, 0} α (ConditionallyCompleteLattice.toHasSup.{u2} α (CompleteLattice.toConditionallyCompleteLattice.{u2} α _inst_12)) p (fun (h : p) => f b)))
+but is expected to have type
+ forall {δ : Type.{u1}} [_inst_10 : MeasurableSpace.{u1} δ] {α : Type.{u2}} [_inst_11 : MeasurableSpace.{u2} α] [_inst_12 : CompleteLattice.{u2} α] (p : Prop) {f : δ -> α}, (Measurable.{u1, u2} δ α _inst_10 _inst_11 f) -> (Measurable.{u1, u2} δ α _inst_10 _inst_11 (fun (b : δ) => iSup.{u2, 0} α (ConditionallyCompleteLattice.toSupSet.{u2} α (CompleteLattice.toConditionallyCompleteLattice.{u2} α _inst_12)) p (fun (h : p) => f b)))
+Case conversion may be inaccurate. Consider using '#align measurable.supr_Prop Measurable.iSup_Propₓ'. -/
@[measurability]
theorem Measurable.iSup_Prop {α} [MeasurableSpace α] [CompleteLattice α] (p : Prop) {f : δ → α}
(hf : Measurable f) : Measurable fun b => ⨆ h : p, f b :=
@@ -1294,6 +1791,12 @@ theorem Measurable.iSup_Prop {α} [MeasurableSpace α] [CompleteLattice α] (p :
convert measurable_const; funext; exact iSup_neg h
#align measurable.supr_Prop Measurable.iSup_Prop
+/- warning: measurable.infi_Prop -> Measurable.iInf_Prop is a dubious translation:
+lean 3 declaration is
+ forall {δ : Type.{u1}} [_inst_10 : MeasurableSpace.{u1} δ] {α : Type.{u2}} [_inst_11 : MeasurableSpace.{u2} α] [_inst_12 : CompleteLattice.{u2} α] (p : Prop) {f : δ -> α}, (Measurable.{u1, u2} δ α _inst_10 _inst_11 f) -> (Measurable.{u1, u2} δ α _inst_10 _inst_11 (fun (b : δ) => iInf.{u2, 0} α (ConditionallyCompleteLattice.toHasInf.{u2} α (CompleteLattice.toConditionallyCompleteLattice.{u2} α _inst_12)) p (fun (h : p) => f b)))
+but is expected to have type
+ forall {δ : Type.{u1}} [_inst_10 : MeasurableSpace.{u1} δ] {α : Type.{u2}} [_inst_11 : MeasurableSpace.{u2} α] [_inst_12 : CompleteLattice.{u2} α] (p : Prop) {f : δ -> α}, (Measurable.{u1, u2} δ α _inst_10 _inst_11 f) -> (Measurable.{u1, u2} δ α _inst_10 _inst_11 (fun (b : δ) => iInf.{u2, 0} α (ConditionallyCompleteLattice.toInfSet.{u2} α (CompleteLattice.toConditionallyCompleteLattice.{u2} α _inst_12)) p (fun (h : p) => f b)))
+Case conversion may be inaccurate. Consider using '#align measurable.infi_Prop Measurable.iInf_Propₓ'. -/
@[measurability]
theorem Measurable.iInf_Prop {α} [MeasurableSpace α] [CompleteLattice α] (p : Prop) {f : δ → α}
(hf : Measurable f) : Measurable fun b => ⨅ h : p, f b :=
@@ -1305,62 +1808,116 @@ section CompleteLinearOrder
variable [CompleteLinearOrder α] [OrderTopology α] [SecondCountableTopology α]
+/- warning: measurable_supr -> measurable_iSup is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : CompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Sort.{u3}} [_inst_14 : Countable.{u3} ι] {f : ι -> δ -> α}, (forall (i : ι), Measurable.{u2, u1} δ α _inst_10 _inst_2 (f i)) -> (Measurable.{u2, u1} δ α _inst_10 _inst_2 (fun (b : δ) => iSup.{u1, u3} α (ConditionallyCompleteLattice.toHasSup.{u1} α (CompleteLattice.toConditionallyCompleteLattice.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))) ι (fun (i : ι) => f i b)))
+but is expected to have type
+ forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : CompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (OmegaCompletePartialOrder.toPartialOrder.{u1} α (CompleteLattice.instOmegaCompletePartialOrder.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Sort.{u3}} [_inst_14 : Countable.{u3} ι] {f : ι -> δ -> α}, (forall (i : ι), Measurable.{u2, u1} δ α _inst_10 _inst_2 (f i)) -> (Measurable.{u2, u1} δ α _inst_10 _inst_2 (fun (b : δ) => iSup.{u1, u3} α (ConditionallyCompleteLattice.toSupSet.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α (ConditionallyCompleteLinearOrderBot.toConditionallyCompleteLinearOrder.{u1} α (CompleteLinearOrder.toConditionallyCompleteLinearOrderBot.{u1} α _inst_11)))) ι (fun (i : ι) => f i b)))
+Case conversion may be inaccurate. Consider using '#align measurable_supr measurable_iSupₓ'. -/
@[measurability]
theorem measurable_iSup {ι} [Countable ι] {f : ι → δ → α} (hf : ∀ i, Measurable (f i)) :
Measurable fun b => ⨆ i, f i b :=
Measurable.isLUB hf fun b => isLUB_iSup
#align measurable_supr measurable_iSup
+/- warning: ae_measurable_supr -> aemeasurable_iSup is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : CompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Sort.{u3}} {μ : MeasureTheory.Measure.{u2} δ _inst_10} [_inst_14 : Countable.{u3} ι] {f : ι -> δ -> α}, (forall (i : ι), AEMeasurable.{u2, u1} δ α _inst_2 _inst_10 (f i) μ) -> (AEMeasurable.{u2, u1} δ α _inst_2 _inst_10 (fun (b : δ) => iSup.{u1, u3} α (ConditionallyCompleteLattice.toHasSup.{u1} α (CompleteLattice.toConditionallyCompleteLattice.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))) ι (fun (i : ι) => f i b)) μ)
+but is expected to have type
+ forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : CompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (OmegaCompletePartialOrder.toPartialOrder.{u1} α (CompleteLattice.instOmegaCompletePartialOrder.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Sort.{u3}} {μ : MeasureTheory.Measure.{u2} δ _inst_10} [_inst_14 : Countable.{u3} ι] {f : ι -> δ -> α}, (forall (i : ι), AEMeasurable.{u2, u1} δ α _inst_2 _inst_10 (f i) μ) -> (AEMeasurable.{u2, u1} δ α _inst_2 _inst_10 (fun (b : δ) => iSup.{u1, u3} α (ConditionallyCompleteLattice.toSupSet.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α (ConditionallyCompleteLinearOrderBot.toConditionallyCompleteLinearOrder.{u1} α (CompleteLinearOrder.toConditionallyCompleteLinearOrderBot.{u1} α _inst_11)))) ι (fun (i : ι) => f i b)) μ)
+Case conversion may be inaccurate. Consider using '#align ae_measurable_supr aemeasurable_iSupₓ'. -/
@[measurability]
-theorem aEMeasurable_iSup {ι} {μ : Measure δ} [Countable ι] {f : ι → δ → α}
+theorem aemeasurable_iSup {ι} {μ : Measure δ} [Countable ι] {f : ι → δ → α}
(hf : ∀ i, AEMeasurable (f i) μ) : AEMeasurable (fun b => ⨆ i, f i b) μ :=
AEMeasurable.isLUB hf <| ae_of_all μ fun b => isLUB_iSup
-#align ae_measurable_supr aEMeasurable_iSup
+#align ae_measurable_supr aemeasurable_iSup
+/- warning: measurable_infi -> measurable_iInf is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : CompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Sort.{u3}} [_inst_14 : Countable.{u3} ι] {f : ι -> δ -> α}, (forall (i : ι), Measurable.{u2, u1} δ α _inst_10 _inst_2 (f i)) -> (Measurable.{u2, u1} δ α _inst_10 _inst_2 (fun (b : δ) => iInf.{u1, u3} α (ConditionallyCompleteLattice.toHasInf.{u1} α (CompleteLattice.toConditionallyCompleteLattice.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))) ι (fun (i : ι) => f i b)))
+but is expected to have type
+ forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : CompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (OmegaCompletePartialOrder.toPartialOrder.{u1} α (CompleteLattice.instOmegaCompletePartialOrder.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Sort.{u3}} [_inst_14 : Countable.{u3} ι] {f : ι -> δ -> α}, (forall (i : ι), Measurable.{u2, u1} δ α _inst_10 _inst_2 (f i)) -> (Measurable.{u2, u1} δ α _inst_10 _inst_2 (fun (b : δ) => iInf.{u1, u3} α (ConditionallyCompleteLattice.toInfSet.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α (ConditionallyCompleteLinearOrderBot.toConditionallyCompleteLinearOrder.{u1} α (CompleteLinearOrder.toConditionallyCompleteLinearOrderBot.{u1} α _inst_11)))) ι (fun (i : ι) => f i b)))
+Case conversion may be inaccurate. Consider using '#align measurable_infi measurable_iInfₓ'. -/
@[measurability]
theorem measurable_iInf {ι} [Countable ι] {f : ι → δ → α} (hf : ∀ i, Measurable (f i)) :
Measurable fun b => ⨅ i, f i b :=
Measurable.isGLB hf fun b => isGLB_iInf
#align measurable_infi measurable_iInf
+/- warning: ae_measurable_infi -> aemeasurable_iInf is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : CompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Sort.{u3}} {μ : MeasureTheory.Measure.{u2} δ _inst_10} [_inst_14 : Countable.{u3} ι] {f : ι -> δ -> α}, (forall (i : ι), AEMeasurable.{u2, u1} δ α _inst_2 _inst_10 (f i) μ) -> (AEMeasurable.{u2, u1} δ α _inst_2 _inst_10 (fun (b : δ) => iInf.{u1, u3} α (ConditionallyCompleteLattice.toHasInf.{u1} α (CompleteLattice.toConditionallyCompleteLattice.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))) ι (fun (i : ι) => f i b)) μ)
+but is expected to have type
+ forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : CompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (OmegaCompletePartialOrder.toPartialOrder.{u1} α (CompleteLattice.instOmegaCompletePartialOrder.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Sort.{u3}} {μ : MeasureTheory.Measure.{u2} δ _inst_10} [_inst_14 : Countable.{u3} ι] {f : ι -> δ -> α}, (forall (i : ι), AEMeasurable.{u2, u1} δ α _inst_2 _inst_10 (f i) μ) -> (AEMeasurable.{u2, u1} δ α _inst_2 _inst_10 (fun (b : δ) => iInf.{u1, u3} α (ConditionallyCompleteLattice.toInfSet.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α (ConditionallyCompleteLinearOrderBot.toConditionallyCompleteLinearOrder.{u1} α (CompleteLinearOrder.toConditionallyCompleteLinearOrderBot.{u1} α _inst_11)))) ι (fun (i : ι) => f i b)) μ)
+Case conversion may be inaccurate. Consider using '#align ae_measurable_infi aemeasurable_iInfₓ'. -/
@[measurability]
-theorem aEMeasurable_iInf {ι} {μ : Measure δ} [Countable ι] {f : ι → δ → α}
+theorem aemeasurable_iInf {ι} {μ : Measure δ} [Countable ι] {f : ι → δ → α}
(hf : ∀ i, AEMeasurable (f i) μ) : AEMeasurable (fun b => ⨅ i, f i b) μ :=
AEMeasurable.isGLB hf <| ae_of_all μ fun b => isGLB_iInf
-#align ae_measurable_infi aEMeasurable_iInf
-
-theorem measurable_bsupr {ι} (s : Set ι) {f : ι → δ → α} (hs : s.Countable)
+#align ae_measurable_infi aemeasurable_iInf
+
+/- warning: measurable_bsupr -> measurable_biSup is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : CompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Type.{u3}} (s : Set.{u3} ι) {f : ι -> δ -> α}, (Set.Countable.{u3} ι s) -> (forall (i : ι), Measurable.{u2, u1} δ α _inst_10 _inst_2 (f i)) -> (Measurable.{u2, u1} δ α _inst_10 _inst_2 (fun (b : δ) => iSup.{u1, succ u3} α (ConditionallyCompleteLattice.toHasSup.{u1} α (CompleteLattice.toConditionallyCompleteLattice.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))) ι (fun (i : ι) => iSup.{u1, 0} α (ConditionallyCompleteLattice.toHasSup.{u1} α (CompleteLattice.toConditionallyCompleteLattice.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))) (Membership.Mem.{u3, u3} ι (Set.{u3} ι) (Set.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Set.{u3} ι) (Set.hasMem.{u3} ι) i s) => f i b))))
+but is expected to have type
+ forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : CompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (OmegaCompletePartialOrder.toPartialOrder.{u1} α (CompleteLattice.instOmegaCompletePartialOrder.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Type.{u3}} (s : Set.{u3} ι) {f : ι -> δ -> α}, (Set.Countable.{u3} ι s) -> (forall (i : ι), Measurable.{u2, u1} δ α _inst_10 _inst_2 (f i)) -> (Measurable.{u2, u1} δ α _inst_10 _inst_2 (fun (b : δ) => iSup.{u1, succ u3} α (ConditionallyCompleteLattice.toSupSet.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α (ConditionallyCompleteLinearOrderBot.toConditionallyCompleteLinearOrder.{u1} α (CompleteLinearOrder.toConditionallyCompleteLinearOrderBot.{u1} α _inst_11)))) ι (fun (i : ι) => iSup.{u1, 0} α (ConditionallyCompleteLattice.toSupSet.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α (ConditionallyCompleteLinearOrderBot.toConditionallyCompleteLinearOrder.{u1} α (CompleteLinearOrder.toConditionallyCompleteLinearOrderBot.{u1} α _inst_11)))) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i b))))
+Case conversion may be inaccurate. Consider using '#align measurable_bsupr measurable_biSupₓ'. -/
+theorem measurable_biSup {ι} (s : Set ι) {f : ι → δ → α} (hs : s.Countable)
(hf : ∀ i, Measurable (f i)) : Measurable fun b => ⨆ i ∈ s, f i b :=
by
haveI : Encodable s := hs.to_encodable
simp only [iSup_subtype']
exact measurable_iSup fun i => hf i
-#align measurable_bsupr measurable_bsupr
-
-theorem aEMeasurable_bsupr {ι} {μ : Measure δ} (s : Set ι) {f : ι → δ → α} (hs : s.Countable)
+#align measurable_bsupr measurable_biSup
+
+/- warning: ae_measurable_bsupr -> aemeasurable_biSup is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : CompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Type.{u3}} {μ : MeasureTheory.Measure.{u2} δ _inst_10} (s : Set.{u3} ι) {f : ι -> δ -> α}, (Set.Countable.{u3} ι s) -> (forall (i : ι), AEMeasurable.{u2, u1} δ α _inst_2 _inst_10 (f i) μ) -> (AEMeasurable.{u2, u1} δ α _inst_2 _inst_10 (fun (b : δ) => iSup.{u1, succ u3} α (ConditionallyCompleteLattice.toHasSup.{u1} α (CompleteLattice.toConditionallyCompleteLattice.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))) ι (fun (i : ι) => iSup.{u1, 0} α (ConditionallyCompleteLattice.toHasSup.{u1} α (CompleteLattice.toConditionallyCompleteLattice.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))) (Membership.Mem.{u3, u3} ι (Set.{u3} ι) (Set.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Set.{u3} ι) (Set.hasMem.{u3} ι) i s) => f i b))) μ)
+but is expected to have type
+ forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : CompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (OmegaCompletePartialOrder.toPartialOrder.{u1} α (CompleteLattice.instOmegaCompletePartialOrder.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Type.{u3}} {μ : MeasureTheory.Measure.{u2} δ _inst_10} (s : Set.{u3} ι) {f : ι -> δ -> α}, (Set.Countable.{u3} ι s) -> (forall (i : ι), AEMeasurable.{u2, u1} δ α _inst_2 _inst_10 (f i) μ) -> (AEMeasurable.{u2, u1} δ α _inst_2 _inst_10 (fun (b : δ) => iSup.{u1, succ u3} α (ConditionallyCompleteLattice.toSupSet.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α (ConditionallyCompleteLinearOrderBot.toConditionallyCompleteLinearOrder.{u1} α (CompleteLinearOrder.toConditionallyCompleteLinearOrderBot.{u1} α _inst_11)))) ι (fun (i : ι) => iSup.{u1, 0} α (ConditionallyCompleteLattice.toSupSet.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α (ConditionallyCompleteLinearOrderBot.toConditionallyCompleteLinearOrder.{u1} α (CompleteLinearOrder.toConditionallyCompleteLinearOrderBot.{u1} α _inst_11)))) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i b))) μ)
+Case conversion may be inaccurate. Consider using '#align ae_measurable_bsupr aemeasurable_biSupₓ'. -/
+theorem aemeasurable_biSup {ι} {μ : Measure δ} (s : Set ι) {f : ι → δ → α} (hs : s.Countable)
(hf : ∀ i, AEMeasurable (f i) μ) : AEMeasurable (fun b => ⨆ i ∈ s, f i b) μ :=
by
haveI : Encodable s := hs.to_encodable
simp only [iSup_subtype']
- exact aEMeasurable_iSup fun i => hf i
-#align ae_measurable_bsupr aEMeasurable_bsupr
-
-theorem measurable_binfi {ι} (s : Set ι) {f : ι → δ → α} (hs : s.Countable)
+ exact aemeasurable_iSup fun i => hf i
+#align ae_measurable_bsupr aemeasurable_biSup
+
+/- warning: measurable_binfi -> measurable_biInf is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : CompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Type.{u3}} (s : Set.{u3} ι) {f : ι -> δ -> α}, (Set.Countable.{u3} ι s) -> (forall (i : ι), Measurable.{u2, u1} δ α _inst_10 _inst_2 (f i)) -> (Measurable.{u2, u1} δ α _inst_10 _inst_2 (fun (b : δ) => iInf.{u1, succ u3} α (ConditionallyCompleteLattice.toHasInf.{u1} α (CompleteLattice.toConditionallyCompleteLattice.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))) ι (fun (i : ι) => iInf.{u1, 0} α (ConditionallyCompleteLattice.toHasInf.{u1} α (CompleteLattice.toConditionallyCompleteLattice.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))) (Membership.Mem.{u3, u3} ι (Set.{u3} ι) (Set.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Set.{u3} ι) (Set.hasMem.{u3} ι) i s) => f i b))))
+but is expected to have type
+ forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : CompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (OmegaCompletePartialOrder.toPartialOrder.{u1} α (CompleteLattice.instOmegaCompletePartialOrder.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Type.{u3}} (s : Set.{u3} ι) {f : ι -> δ -> α}, (Set.Countable.{u3} ι s) -> (forall (i : ι), Measurable.{u2, u1} δ α _inst_10 _inst_2 (f i)) -> (Measurable.{u2, u1} δ α _inst_10 _inst_2 (fun (b : δ) => iInf.{u1, succ u3} α (ConditionallyCompleteLattice.toInfSet.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α (ConditionallyCompleteLinearOrderBot.toConditionallyCompleteLinearOrder.{u1} α (CompleteLinearOrder.toConditionallyCompleteLinearOrderBot.{u1} α _inst_11)))) ι (fun (i : ι) => iInf.{u1, 0} α (ConditionallyCompleteLattice.toInfSet.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α (ConditionallyCompleteLinearOrderBot.toConditionallyCompleteLinearOrder.{u1} α (CompleteLinearOrder.toConditionallyCompleteLinearOrderBot.{u1} α _inst_11)))) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i b))))
+Case conversion may be inaccurate. Consider using '#align measurable_binfi measurable_biInfₓ'. -/
+theorem measurable_biInf {ι} (s : Set ι) {f : ι → δ → α} (hs : s.Countable)
(hf : ∀ i, Measurable (f i)) : Measurable fun b => ⨅ i ∈ s, f i b :=
by
haveI : Encodable s := hs.to_encodable
simp only [iInf_subtype']
exact measurable_iInf fun i => hf i
-#align measurable_binfi measurable_binfi
-
-theorem aEMeasurable_binfi {ι} {μ : Measure δ} (s : Set ι) {f : ι → δ → α} (hs : s.Countable)
+#align measurable_binfi measurable_biInf
+
+/- warning: ae_measurable_binfi -> aemeasurable_biInf is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : CompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Type.{u3}} {μ : MeasureTheory.Measure.{u2} δ _inst_10} (s : Set.{u3} ι) {f : ι -> δ -> α}, (Set.Countable.{u3} ι s) -> (forall (i : ι), AEMeasurable.{u2, u1} δ α _inst_2 _inst_10 (f i) μ) -> (AEMeasurable.{u2, u1} δ α _inst_2 _inst_10 (fun (b : δ) => iInf.{u1, succ u3} α (ConditionallyCompleteLattice.toHasInf.{u1} α (CompleteLattice.toConditionallyCompleteLattice.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))) ι (fun (i : ι) => iInf.{u1, 0} α (ConditionallyCompleteLattice.toHasInf.{u1} α (CompleteLattice.toConditionallyCompleteLattice.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))) (Membership.Mem.{u3, u3} ι (Set.{u3} ι) (Set.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Set.{u3} ι) (Set.hasMem.{u3} ι) i s) => f i b))) μ)
+but is expected to have type
+ forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : CompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (OmegaCompletePartialOrder.toPartialOrder.{u1} α (CompleteLattice.instOmegaCompletePartialOrder.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Type.{u3}} {μ : MeasureTheory.Measure.{u2} δ _inst_10} (s : Set.{u3} ι) {f : ι -> δ -> α}, (Set.Countable.{u3} ι s) -> (forall (i : ι), AEMeasurable.{u2, u1} δ α _inst_2 _inst_10 (f i) μ) -> (AEMeasurable.{u2, u1} δ α _inst_2 _inst_10 (fun (b : δ) => iInf.{u1, succ u3} α (ConditionallyCompleteLattice.toInfSet.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α (ConditionallyCompleteLinearOrderBot.toConditionallyCompleteLinearOrder.{u1} α (CompleteLinearOrder.toConditionallyCompleteLinearOrderBot.{u1} α _inst_11)))) ι (fun (i : ι) => iInf.{u1, 0} α (ConditionallyCompleteLattice.toInfSet.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α (ConditionallyCompleteLinearOrderBot.toConditionallyCompleteLinearOrder.{u1} α (CompleteLinearOrder.toConditionallyCompleteLinearOrderBot.{u1} α _inst_11)))) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i b))) μ)
+Case conversion may be inaccurate. Consider using '#align ae_measurable_binfi aemeasurable_biInfₓ'. -/
+theorem aemeasurable_biInf {ι} {μ : Measure δ} (s : Set ι) {f : ι → δ → α} (hs : s.Countable)
(hf : ∀ i, AEMeasurable (f i) μ) : AEMeasurable (fun b => ⨅ i ∈ s, f i b) μ :=
by
haveI : Encodable s := hs.to_encodable
simp only [iInf_subtype']
- exact aEMeasurable_iInf fun i => hf i
-#align ae_measurable_binfi aEMeasurable_binfi
-
+ exact aemeasurable_iInf fun i => hf i
+#align ae_measurable_binfi aemeasurable_biInf
+
+/- warning: measurable_liminf' -> measurable_liminf' is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : CompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Type.{u3}} {ι' : Type.{u4}} {f : ι -> δ -> α} {u : Filter.{u3} ι}, (forall (i : ι), Measurable.{u2, u1} δ α _inst_10 _inst_2 (f i)) -> (forall {p : ι' -> Prop} {s : ι' -> (Set.{u3} ι)}, (Filter.HasCountableBasis.{u3, u4} ι ι' u p s) -> (forall (i : ι'), Set.Countable.{u3} ι (s i)) -> (Measurable.{u2, u1} δ α _inst_10 _inst_2 (fun (x : δ) => Filter.liminf.{u1, u3} α ι (CompleteLattice.toConditionallyCompleteLattice.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11)) (fun (i : ι) => f i x) u)))
+but is expected to have type
+ forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : CompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (OmegaCompletePartialOrder.toPartialOrder.{u1} α (CompleteLattice.instOmegaCompletePartialOrder.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Type.{u4}} {ι' : Type.{u3}} {f : ι -> δ -> α} {u : Filter.{u4} ι}, (forall (i : ι), Measurable.{u2, u1} δ α _inst_10 _inst_2 (f i)) -> (forall {p : ι' -> Prop} {s : ι' -> (Set.{u4} ι)}, (Filter.HasCountableBasis.{u4, u3} ι ι' u p s) -> (forall (i : ι'), Set.Countable.{u4} ι (s i)) -> (Measurable.{u2, u1} δ α _inst_10 _inst_2 (fun (x : δ) => Filter.liminf.{u1, u4} α ι (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α (ConditionallyCompleteLinearOrderBot.toConditionallyCompleteLinearOrder.{u1} α (CompleteLinearOrder.toConditionallyCompleteLinearOrderBot.{u1} α _inst_11))) (fun (i : ι) => f i x) u)))
+Case conversion may be inaccurate. Consider using '#align measurable_liminf' measurable_liminf'ₓ'. -/
/-- `liminf` over a general filter is measurable. See `measurable_liminf` for the version over `ℕ`.
-/
theorem measurable_liminf' {ι ι'} {f : ι → δ → α} {u : Filter ι} (hf : ∀ i, Measurable (f i))
@@ -1368,10 +1925,16 @@ theorem measurable_liminf' {ι ι'} {f : ι → δ → α} {u : Filter ι} (hf :
Measurable fun x => liminf (fun i => f i x) u :=
by
simp_rw [hu.to_has_basis.liminf_eq_supr_infi]
- refine' measurable_bsupr _ hu.countable _
- exact fun i => measurable_binfi _ (hs i) hf
+ refine' measurable_biSup _ hu.countable _
+ exact fun i => measurable_biInf _ (hs i) hf
#align measurable_liminf' measurable_liminf'
+/- warning: measurable_limsup' -> measurable_limsup' is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : CompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Type.{u3}} {ι' : Type.{u4}} {f : ι -> δ -> α} {u : Filter.{u3} ι}, (forall (i : ι), Measurable.{u2, u1} δ α _inst_10 _inst_2 (f i)) -> (forall {p : ι' -> Prop} {s : ι' -> (Set.{u3} ι)}, (Filter.HasCountableBasis.{u3, u4} ι ι' u p s) -> (forall (i : ι'), Set.Countable.{u3} ι (s i)) -> (Measurable.{u2, u1} δ α _inst_10 _inst_2 (fun (x : δ) => Filter.limsup.{u1, u3} α ι (CompleteLattice.toConditionallyCompleteLattice.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11)) (fun (i : ι) => f i x) u)))
+but is expected to have type
+ forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : CompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (OmegaCompletePartialOrder.toPartialOrder.{u1} α (CompleteLattice.instOmegaCompletePartialOrder.{u1} α (CompleteLinearOrder.toCompleteLattice.{u1} α _inst_11))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Type.{u4}} {ι' : Type.{u3}} {f : ι -> δ -> α} {u : Filter.{u4} ι}, (forall (i : ι), Measurable.{u2, u1} δ α _inst_10 _inst_2 (f i)) -> (forall {p : ι' -> Prop} {s : ι' -> (Set.{u4} ι)}, (Filter.HasCountableBasis.{u4, u3} ι ι' u p s) -> (forall (i : ι'), Set.Countable.{u4} ι (s i)) -> (Measurable.{u2, u1} δ α _inst_10 _inst_2 (fun (x : δ) => Filter.limsup.{u1, u4} α ι (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α (ConditionallyCompleteLinearOrderBot.toConditionallyCompleteLinearOrder.{u1} α (CompleteLinearOrder.toConditionallyCompleteLinearOrderBot.{u1} α _inst_11))) (fun (i : ι) => f i x) u)))
+Case conversion may be inaccurate. Consider using '#align measurable_limsup' measurable_limsup'ₓ'. -/
/-- `limsup` over a general filter is measurable. See `measurable_limsup` for the version over `ℕ`.
-/
theorem measurable_limsup' {ι ι'} {f : ι → δ → α} {u : Filter ι} (hf : ∀ i, Measurable (f i))
@@ -1379,10 +1942,11 @@ theorem measurable_limsup' {ι ι'} {f : ι → δ → α} {u : Filter ι} (hf :
Measurable fun x => limsup (fun i => f i x) u :=
by
simp_rw [hu.to_has_basis.limsup_eq_infi_supr]
- refine' measurable_binfi _ hu.countable _
- exact fun i => measurable_bsupr _ (hs i) hf
+ refine' measurable_biInf _ hu.countable _
+ exact fun i => measurable_biSup _ (hs i) hf
#align measurable_limsup' measurable_limsup'
+#print measurable_liminf /-
/-- `liminf` over `ℕ` is measurable. See `measurable_liminf'` for a version with a general filter.
-/
@[measurability]
@@ -1390,7 +1954,9 @@ theorem measurable_liminf {f : ℕ → δ → α} (hf : ∀ i, Measurable (f i))
Measurable fun x => liminf (fun i => f i x) atTop :=
measurable_liminf' hf atTop_countable_basis fun i => to_countable _
#align measurable_liminf measurable_liminf
+-/
+#print measurable_limsup /-
/-- `limsup` over `ℕ` is measurable. See `measurable_limsup'` for a version with a general filter.
-/
@[measurability]
@@ -1398,6 +1964,7 @@ theorem measurable_limsup {f : ℕ → δ → α} (hf : ∀ i, Measurable (f i))
Measurable fun x => limsup (fun i => f i x) atTop :=
measurable_limsup' hf atTop_countable_basis fun i => to_countable _
#align measurable_limsup measurable_limsup
+-/
end CompleteLinearOrder
@@ -1405,6 +1972,12 @@ section ConditionallyCompleteLinearOrder
variable [ConditionallyCompleteLinearOrder α] [OrderTopology α] [SecondCountableTopology α]
+/- warning: measurable_cSup -> measurable_cSup is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : ConditionallyCompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11)))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Type.{u3}} {f : ι -> δ -> α} {s : Set.{u3} ι}, (Set.Countable.{u3} ι s) -> (forall (i : ι), Measurable.{u2, u1} δ α _inst_10 _inst_2 (f i)) -> (forall (x : δ), BddAbove.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11))))) (Set.image.{u3, u1} ι α (fun (i : ι) => f i x) s)) -> (Measurable.{u2, u1} δ α _inst_10 _inst_2 (fun (x : δ) => SupSet.sSup.{u1} α (ConditionallyCompleteLattice.toHasSup.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11)) (Set.image.{u3, u1} ι α (fun (i : ι) => f i x) s)))
+but is expected to have type
+ forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : ConditionallyCompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11)))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Type.{u3}} {f : ι -> δ -> α} {s : Set.{u3} ι}, (Set.Countable.{u3} ι s) -> (forall (i : ι), Measurable.{u2, u1} δ α _inst_10 _inst_2 (f i)) -> (forall (x : δ), BddAbove.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11))))) (Set.image.{u3, u1} ι α (fun (i : ι) => f i x) s)) -> (Measurable.{u2, u1} δ α _inst_10 _inst_2 (fun (x : δ) => SupSet.sSup.{u1} α (ConditionallyCompleteLattice.toSupSet.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11)) (Set.image.{u3, u1} ι α (fun (i : ι) => f i x) s)))
+Case conversion may be inaccurate. Consider using '#align measurable_cSup measurable_cSupₓ'. -/
theorem measurable_cSup {ι} {f : ι → δ → α} {s : Set ι} (hs : s.Countable)
(hf : ∀ i, Measurable (f i)) (bdd : ∀ x, BddAbove ((fun i => f i x) '' s)) :
Measurable fun x => sSup ((fun i => f i x) '' s) :=
@@ -1417,27 +1990,46 @@ theorem measurable_cSup {ι} {f : ι → δ → α} {s : Set ι} (hs : s.Countab
exact MeasurableSet.biInter hs fun i hi => measurableSet_le (hf i) measurable_const
#align measurable_cSup measurable_cSup
+/- warning: measurable_cInf -> measurable_cInf is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : ConditionallyCompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11)))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Type.{u3}} {f : ι -> δ -> α} {s : Set.{u3} ι}, (Set.Countable.{u3} ι s) -> (forall (i : ι), Measurable.{u2, u1} δ α _inst_10 _inst_2 (f i)) -> (forall (x : δ), BddBelow.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11))))) (Set.image.{u3, u1} ι α (fun (i : ι) => f i x) s)) -> (Measurable.{u2, u1} δ α _inst_10 _inst_2 (fun (x : δ) => InfSet.sInf.{u1} α (ConditionallyCompleteLattice.toHasInf.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11)) (Set.image.{u3, u1} ι α (fun (i : ι) => f i x) s)))
+but is expected to have type
+ forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : ConditionallyCompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11)))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Type.{u3}} {f : ι -> δ -> α} {s : Set.{u3} ι}, (Set.Countable.{u3} ι s) -> (forall (i : ι), Measurable.{u2, u1} δ α _inst_10 _inst_2 (f i)) -> (forall (x : δ), BddBelow.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11))))) (Set.image.{u3, u1} ι α (fun (i : ι) => f i x) s)) -> (Measurable.{u2, u1} δ α _inst_10 _inst_2 (fun (x : δ) => InfSet.sInf.{u1} α (ConditionallyCompleteLattice.toInfSet.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11)) (Set.image.{u3, u1} ι α (fun (i : ι) => f i x) s)))
+Case conversion may be inaccurate. Consider using '#align measurable_cInf measurable_cInfₓ'. -/
theorem measurable_cInf {ι} {f : ι → δ → α} {s : Set ι} (hs : s.Countable)
(hf : ∀ i, Measurable (f i)) (bdd : ∀ x, BddBelow ((fun i => f i x) '' s)) :
Measurable fun x => sInf ((fun i => f i x) '' s) :=
@measurable_cSup αᵒᵈ _ _ _ _ _ _ _ _ _ _ _ hs hf bdd
#align measurable_cInf measurable_cInf
-theorem measurable_csupr {ι : Type _} [Countable ι] {f : ι → δ → α} (hf : ∀ i, Measurable (f i))
+/- warning: measurable_csupr -> measurable_ciSup is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : ConditionallyCompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11)))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Type.{u3}} [_inst_14 : Countable.{succ u3} ι] {f : ι -> δ -> α}, (forall (i : ι), Measurable.{u2, u1} δ α _inst_10 _inst_2 (f i)) -> (forall (x : δ), BddAbove.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11))))) (Set.range.{u1, succ u3} α ι (fun (i : ι) => f i x))) -> (Measurable.{u2, u1} δ α _inst_10 _inst_2 (fun (x : δ) => iSup.{u1, succ u3} α (ConditionallyCompleteLattice.toHasSup.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11)) ι (fun (i : ι) => f i x)))
+but is expected to have type
+ forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : ConditionallyCompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11)))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Type.{u3}} [_inst_14 : Countable.{succ u3} ι] {f : ι -> δ -> α}, (forall (i : ι), Measurable.{u2, u1} δ α _inst_10 _inst_2 (f i)) -> (forall (x : δ), BddAbove.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11))))) (Set.range.{u1, succ u3} α ι (fun (i : ι) => f i x))) -> (Measurable.{u2, u1} δ α _inst_10 _inst_2 (fun (x : δ) => iSup.{u1, succ u3} α (ConditionallyCompleteLattice.toSupSet.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11)) ι (fun (i : ι) => f i x)))
+Case conversion may be inaccurate. Consider using '#align measurable_csupr measurable_ciSupₓ'. -/
+theorem measurable_ciSup {ι : Type _} [Countable ι] {f : ι → δ → α} (hf : ∀ i, Measurable (f i))
(bdd : ∀ x, BddAbove (range fun i => f i x)) : Measurable fun x => ⨆ i, f i x :=
by
change Measurable fun x => Sup (range fun i : ι => f i x)
simp_rw [← image_univ] at bdd⊢
refine' measurable_cSup countable_univ hf bdd
-#align measurable_csupr measurable_csupr
-
-theorem measurable_cinfi {ι : Type _} [Countable ι] {f : ι → δ → α} (hf : ∀ i, Measurable (f i))
+#align measurable_csupr measurable_ciSup
+
+/- warning: measurable_cinfi -> measurable_ciInf is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : ConditionallyCompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11)))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Type.{u3}} [_inst_14 : Countable.{succ u3} ι] {f : ι -> δ -> α}, (forall (i : ι), Measurable.{u2, u1} δ α _inst_10 _inst_2 (f i)) -> (forall (x : δ), BddBelow.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11))))) (Set.range.{u1, succ u3} α ι (fun (i : ι) => f i x))) -> (Measurable.{u2, u1} δ α _inst_10 _inst_2 (fun (x : δ) => iInf.{u1, succ u3} α (ConditionallyCompleteLattice.toHasInf.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11)) ι (fun (i : ι) => f i x)))
+but is expected to have type
+ forall {α : Type.{u1}} {δ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : BorelSpace.{u1} α _inst_1 _inst_2] [_inst_10 : MeasurableSpace.{u2} δ] [_inst_11 : ConditionallyCompleteLinearOrder.{u1} α] [_inst_12 : OrderTopology.{u1} α _inst_1 (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11)))))] [_inst_13 : TopologicalSpace.SecondCountableTopology.{u1} α _inst_1] {ι : Type.{u3}} [_inst_14 : Countable.{succ u3} ι] {f : ι -> δ -> α}, (forall (i : ι), Measurable.{u2, u1} δ α _inst_10 _inst_2 (f i)) -> (forall (x : δ), BddBelow.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (ConditionallyCompleteLattice.toLattice.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11))))) (Set.range.{u1, succ u3} α ι (fun (i : ι) => f i x))) -> (Measurable.{u2, u1} δ α _inst_10 _inst_2 (fun (x : δ) => iInf.{u1, succ u3} α (ConditionallyCompleteLattice.toInfSet.{u1} α (ConditionallyCompleteLinearOrder.toConditionallyCompleteLattice.{u1} α _inst_11)) ι (fun (i : ι) => f i x)))
+Case conversion may be inaccurate. Consider using '#align measurable_cinfi measurable_ciInfₓ'. -/
+theorem measurable_ciInf {ι : Type _} [Countable ι] {f : ι → δ → α} (hf : ∀ i, Measurable (f i))
(bdd : ∀ x, BddBelow (range fun i => f i x)) : Measurable fun x => ⨅ i, f i x :=
- @measurable_csupr αᵒᵈ _ _ _ _ _ _ _ _ _ _ _ hf bdd
-#align measurable_cinfi measurable_cinfi
+ @measurable_ciSup αᵒᵈ _ _ _ _ _ _ _ _ _ _ _ hf bdd
+#align measurable_cinfi measurable_ciInf
end ConditionallyCompleteLinearOrder
+#print Homemorph.toMeasurableEquiv /-
/-- Convert a `homeomorph` to a `measurable_equiv`. -/
def Homemorph.toMeasurableEquiv (h : α ≃ₜ β) : α ≃ᵐ β
where
@@ -1445,7 +2037,14 @@ def Homemorph.toMeasurableEquiv (h : α ≃ₜ β) : α ≃ᵐ β
measurable_to_fun := h.continuous_toFun.Measurable
measurable_inv_fun := h.continuous_invFun.Measurable
#align homemorph.to_measurable_equiv Homemorph.toMeasurableEquiv
+-/
+/- warning: is_finite_measure_on_compacts.map -> IsFiniteMeasureOnCompacts.map is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {m0 : MeasurableSpace.{u1} α} [_inst_11 : TopologicalSpace.{u1} α] [_inst_12 : OpensMeasurableSpace.{u1} α _inst_11 m0] {β : Type.{u2}} [_inst_13 : MeasurableSpace.{u2} β] [_inst_14 : TopologicalSpace.{u2} β] [_inst_15 : BorelSpace.{u2} β _inst_14 _inst_13] [_inst_16 : T2Space.{u2} β _inst_14] (μ : MeasureTheory.Measure.{u1} α m0) [_inst_17 : MeasureTheory.FiniteMeasureOnCompacts.{u1} α m0 _inst_11 μ] (f : Homeomorph.{u1, u2} α β _inst_11 _inst_14), MeasureTheory.FiniteMeasureOnCompacts.{u2} β _inst_13 _inst_14 (MeasureTheory.Measure.map.{u1, u2} α β _inst_13 m0 (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (Homeomorph.{u1, u2} α β _inst_11 _inst_14) (fun (_x : Homeomorph.{u1, u2} α β _inst_11 _inst_14) => α -> β) (Homeomorph.hasCoeToFun.{u1, u2} α β _inst_11 _inst_14) f) μ)
+but is expected to have type
+ forall {α : Type.{u2}} {m0 : MeasurableSpace.{u2} α} [_inst_11 : TopologicalSpace.{u2} α] [_inst_12 : OpensMeasurableSpace.{u2} α _inst_11 m0] {β : Type.{u1}} [_inst_13 : MeasurableSpace.{u1} β] [_inst_14 : TopologicalSpace.{u1} β] [_inst_15 : BorelSpace.{u1} β _inst_14 _inst_13] [_inst_16 : T2Space.{u1} β _inst_14] (μ : MeasureTheory.Measure.{u2} α m0) [_inst_17 : MeasureTheory.FiniteMeasureOnCompacts.{u2} α m0 _inst_11 μ] (f : Homeomorph.{u2, u1} α β _inst_11 _inst_14), MeasureTheory.FiniteMeasureOnCompacts.{u1} β _inst_13 _inst_14 (MeasureTheory.Measure.map.{u2, u1} α β _inst_13 m0 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Homeomorph.{u2, u1} α β _inst_11 _inst_14) α (fun (_x : α) => β) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (Homeomorph.{u2, u1} α β _inst_11 _inst_14) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (Homeomorph.{u2, u1} α β _inst_11 _inst_14) α β (Homeomorph.instEquivLikeHomeomorph.{u2, u1} α β _inst_11 _inst_14))) f) μ)
+Case conversion may be inaccurate. Consider using '#align is_finite_measure_on_compacts.map IsFiniteMeasureOnCompacts.mapₓ'. -/
protected theorem IsFiniteMeasureOnCompacts.map {α : Type _} {m0 : MeasurableSpace α}
[TopologicalSpace α] [OpensMeasurableSpace α] {β : Type _} [MeasurableSpace β]
[TopologicalSpace β] [BorelSpace β] [T2Space β] (μ : Measure α) [FiniteMeasureOnCompacts μ]
@@ -1459,64 +2058,130 @@ protected theorem IsFiniteMeasureOnCompacts.map {α : Type _} {m0 : MeasurableSp
end BorelSpace
+/- warning: empty.borel_space -> Empty.borelSpace is a dubious translation:
+lean 3 declaration is
+ BorelSpace.{0} Empty Empty.topologicalSpace Empty.instMeasurableSpace
+but is expected to have type
+ BorelSpace.{0} Empty instTopologicalSpaceEmpty Empty.instMeasurableSpace
+Case conversion may be inaccurate. Consider using '#align empty.borel_space Empty.borelSpaceₓ'. -/
instance Empty.borelSpace : BorelSpace Empty :=
⟨borel_eq_top_of_discrete.symm⟩
#align empty.borel_space Empty.borelSpace
+/- warning: unit.borel_space -> Unit.borelSpace is a dubious translation:
+lean 3 declaration is
+ BorelSpace.{0} Unit PUnit.topologicalSpace.{0} PUnit.instMeasurableSpace.{0}
+but is expected to have type
+ BorelSpace.{0} Unit instTopologicalSpacePUnit.{0} PUnit.instMeasurableSpace.{0}
+Case conversion may be inaccurate. Consider using '#align unit.borel_space Unit.borelSpaceₓ'. -/
instance Unit.borelSpace : BorelSpace Unit :=
⟨borel_eq_top_of_discrete.symm⟩
#align unit.borel_space Unit.borelSpace
+/- warning: bool.borel_space -> Bool.borelSpace is a dubious translation:
+lean 3 declaration is
+ BorelSpace.{0} Bool Bool.topologicalSpace Bool.instMeasurableSpace
+but is expected to have type
+ BorelSpace.{0} Bool instTopologicalSpaceBool Bool.instMeasurableSpace
+Case conversion may be inaccurate. Consider using '#align bool.borel_space Bool.borelSpaceₓ'. -/
instance Bool.borelSpace : BorelSpace Bool :=
⟨borel_eq_top_of_discrete.symm⟩
#align bool.borel_space Bool.borelSpace
+/- warning: nat.borel_space -> Nat.borelSpace is a dubious translation:
+lean 3 declaration is
+ BorelSpace.{0} Nat Nat.topologicalSpace Nat.instMeasurableSpace
+but is expected to have type
+ BorelSpace.{0} Nat instTopologicalSpaceNat Nat.instMeasurableSpace
+Case conversion may be inaccurate. Consider using '#align nat.borel_space Nat.borelSpaceₓ'. -/
instance Nat.borelSpace : BorelSpace ℕ :=
⟨borel_eq_top_of_discrete.symm⟩
#align nat.borel_space Nat.borelSpace
+/- warning: int.borel_space -> Int.borelSpace is a dubious translation:
+lean 3 declaration is
+ BorelSpace.{0} Int Int.topologicalSpace Int.instMeasurableSpace
+but is expected to have type
+ BorelSpace.{0} Int instTopologicalSpaceInt Int.instMeasurableSpace
+Case conversion may be inaccurate. Consider using '#align int.borel_space Int.borelSpaceₓ'. -/
instance Int.borelSpace : BorelSpace ℤ :=
⟨borel_eq_top_of_discrete.symm⟩
#align int.borel_space Int.borelSpace
+#print Rat.borelSpace /-
instance Rat.borelSpace : BorelSpace ℚ :=
⟨borel_eq_top_of_countable.symm⟩
#align rat.borel_space Rat.borelSpace
+-/
+#print Real.measurableSpace /-
/- Instances on `real` and `complex` are special cases of `is_R_or_C` but without these instances,
Lean fails to prove `borel_space (ι → ℝ)`, so we leave them here. -/
instance Real.measurableSpace : MeasurableSpace ℝ :=
borel ℝ
#align real.measurable_space Real.measurableSpace
+-/
+#print Real.borelSpace /-
instance Real.borelSpace : BorelSpace ℝ :=
⟨rfl⟩
#align real.borel_space Real.borelSpace
+-/
+#print NNReal.measurableSpace /-
instance NNReal.measurableSpace : MeasurableSpace ℝ≥0 :=
Subtype.instMeasurableSpace
#align nnreal.measurable_space NNReal.measurableSpace
+-/
+/- warning: nnreal.borel_space -> NNReal.borelSpace is a dubious translation:
+lean 3 declaration is
+ BorelSpace.{0} NNReal NNReal.topologicalSpace NNReal.measurableSpace
+but is expected to have type
+ BorelSpace.{0} NNReal NNReal.instTopologicalSpaceNNReal NNReal.measurableSpace
+Case conversion may be inaccurate. Consider using '#align nnreal.borel_space NNReal.borelSpaceₓ'. -/
instance NNReal.borelSpace : BorelSpace ℝ≥0 :=
Subtype.borelSpace _
#align nnreal.borel_space NNReal.borelSpace
+#print ENNReal.measurableSpace /-
instance ENNReal.measurableSpace : MeasurableSpace ℝ≥0∞ :=
borel ℝ≥0∞
#align ennreal.measurable_space ENNReal.measurableSpace
+-/
+/- warning: ennreal.borel_space -> ENNReal.borelSpace is a dubious translation:
+lean 3 declaration is
+ BorelSpace.{0} ENNReal ENNReal.topologicalSpace ENNReal.measurableSpace
+but is expected to have type
+ BorelSpace.{0} ENNReal ENNReal.instTopologicalSpaceENNReal ENNReal.measurableSpace
+Case conversion may be inaccurate. Consider using '#align ennreal.borel_space ENNReal.borelSpaceₓ'. -/
instance ENNReal.borelSpace : BorelSpace ℝ≥0∞ :=
⟨rfl⟩
#align ennreal.borel_space ENNReal.borelSpace
+#print EReal.measurableSpace /-
instance EReal.measurableSpace : MeasurableSpace EReal :=
borel EReal
#align ereal.measurable_space EReal.measurableSpace
+-/
+/- warning: ereal.borel_space -> EReal.borelSpace is a dubious translation:
+lean 3 declaration is
+ BorelSpace.{0} EReal EReal.topologicalSpace EReal.measurableSpace
+but is expected to have type
+ BorelSpace.{0} EReal EReal.instTopologicalSpaceEReal EReal.measurableSpace
+Case conversion may be inaccurate. Consider using '#align ereal.borel_space EReal.borelSpaceₓ'. -/
instance EReal.borelSpace : BorelSpace EReal :=
⟨rfl⟩
#align ereal.borel_space EReal.borelSpace
+/- warning: measure_eq_measure_preimage_add_measure_tsum_Ico_zpow -> measure_eq_measure_preimage_add_measure_tsum_Ico_zpow is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] (μ : MeasureTheory.Measure.{u1} α _inst_1) {f : α -> ENNReal}, (Measurable.{u1, 0} α ENNReal _inst_1 ENNReal.measurableSpace f) -> (forall {s : Set.{u1} α}, (MeasurableSet.{u1} α _inst_1 s) -> (forall {t : NNReal}, (LT.lt.{0} NNReal (Preorder.toHasLt.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (OrderedCancelAddCommMonoid.toPartialOrder.{0} NNReal (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} NNReal NNReal.strictOrderedSemiring)))) (OfNat.ofNat.{0} NNReal 1 (OfNat.mk.{0} NNReal 1 (One.one.{0} NNReal (AddMonoidWithOne.toOne.{0} NNReal (AddCommMonoidWithOne.toAddMonoidWithOne.{0} NNReal (NonAssocSemiring.toAddCommMonoidWithOne.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal NNReal.semiring))))))) t) -> (Eq.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α _inst_1) (fun (_x : MeasureTheory.Measure.{u1} α _inst_1) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α _inst_1) μ s) (HAdd.hAdd.{0, 0, 0} ENNReal ENNReal ENNReal (instHAdd.{0} ENNReal (Distrib.toHasAdd.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring)))))))) (HAdd.hAdd.{0, 0, 0} ENNReal ENNReal ENNReal (instHAdd.{0} ENNReal (Distrib.toHasAdd.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring)))))))) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α _inst_1) (fun (_x : MeasureTheory.Measure.{u1} α _inst_1) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α _inst_1) μ (Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) s (Set.preimage.{u1, 0} α ENNReal f (Singleton.singleton.{0, 0} ENNReal (Set.{0} ENNReal) (Set.hasSingleton.{0} ENNReal) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero))))))) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α _inst_1) (fun (_x : MeasureTheory.Measure.{u1} α _inst_1) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α _inst_1) μ (Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) s (Set.preimage.{u1, 0} α ENNReal f (Singleton.singleton.{0, 0} ENNReal (Set.{0} ENNReal) (Set.hasSingleton.{0} ENNReal) (Top.top.{0} ENNReal (CompleteLattice.toHasTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder)))))))) (tsum.{0, 0} ENNReal (OrderedAddCommMonoid.toAddCommMonoid.{0} ENNReal (OrderedSemiring.toOrderedAddCommMonoid.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring)))) ENNReal.topologicalSpace Int (fun (n : Int) => coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α _inst_1) (fun (_x : MeasureTheory.Measure.{u1} α _inst_1) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α _inst_1) μ (Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) s (Set.preimage.{u1, 0} α ENNReal f (Set.Ico.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder)))) (HPow.hPow.{0, 0, 0} ENNReal Int ENNReal (instHPow.{0, 0} ENNReal Int (DivInvMonoid.Pow.{0} ENNReal ENNReal.divInvMonoid)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal ENNReal (HasLiftT.mk.{1, 1} NNReal ENNReal (CoeTCₓ.coe.{1, 1} NNReal ENNReal (coeBase.{1, 1} NNReal ENNReal ENNReal.hasCoe))) t) n) (HPow.hPow.{0, 0, 0} ENNReal Int ENNReal (instHPow.{0, 0} ENNReal Int (DivInvMonoid.Pow.{0} ENNReal ENNReal.divInvMonoid)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal ENNReal (HasLiftT.mk.{1, 1} NNReal ENNReal (CoeTCₓ.coe.{1, 1} NNReal ENNReal (coeBase.{1, 1} NNReal ENNReal ENNReal.hasCoe))) t) (HAdd.hAdd.{0, 0, 0} Int Int Int (instHAdd.{0} Int Int.hasAdd) n (OfNat.ofNat.{0} Int 1 (OfNat.mk.{0} Int 1 (One.one.{0} Int Int.hasOne))))))))))))))
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] (μ : MeasureTheory.Measure.{u1} α _inst_1) {f : α -> ENNReal}, (Measurable.{u1, 0} α ENNReal _inst_1 ENNReal.measurableSpace f) -> (forall {s : Set.{u1} α}, (MeasurableSet.{u1} α _inst_1 s) -> (forall {t : NNReal}, (LT.lt.{0} NNReal (Preorder.toLT.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (StrictOrderedSemiring.toPartialOrder.{0} NNReal instNNRealStrictOrderedSemiring))) (OfNat.ofNat.{0} NNReal 1 (One.toOfNat1.{0} NNReal instNNRealOne)) t) -> (Eq.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α _inst_1 μ) s) (HAdd.hAdd.{0, 0, 0} ENNReal ENNReal ENNReal (instHAdd.{0} ENNReal (Distrib.toAdd.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal)))))))) (HAdd.hAdd.{0, 0, 0} ENNReal ENNReal ENNReal (instHAdd.{0} ENNReal (Distrib.toAdd.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal)))))))) (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α _inst_1 μ) (Inter.inter.{u1} (Set.{u1} α) (Set.instInterSet.{u1} α) s (Set.preimage.{u1, 0} α ENNReal f (Singleton.singleton.{0, 0} ENNReal (Set.{0} ENNReal) (Set.instSingletonSet.{0} ENNReal) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero)))))) (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α _inst_1 μ) (Inter.inter.{u1} (Set.{u1} α) (Set.instInterSet.{u1} α) s (Set.preimage.{u1, 0} α ENNReal f (Singleton.singleton.{0, 0} ENNReal (Set.{0} ENNReal) (Set.instSingletonSet.{0} ENNReal) (Top.top.{0} ENNReal (CompleteLattice.toTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal)))))))) (tsum.{0, 0} ENNReal (LinearOrderedAddCommMonoid.toAddCommMonoid.{0} ENNReal (LinearOrderedAddCommMonoidWithTop.toLinearOrderedAddCommMonoid.{0} ENNReal ENNReal.instLinearOrderedAddCommMonoidWithTopENNReal)) ENNReal.instTopologicalSpaceENNReal Int (fun (n : Int) => MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α _inst_1 μ) (Inter.inter.{u1} (Set.{u1} α) (Set.instInterSet.{u1} α) s (Set.preimage.{u1, 0} α ENNReal f (Set.Ico.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (OmegaCompletePartialOrder.toPartialOrder.{0} ENNReal (CompleteLattice.instOmegaCompletePartialOrder.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal)))) (HPow.hPow.{0, 0, 0} ENNReal Int ENNReal (instHPow.{0, 0} ENNReal Int (DivInvMonoid.Pow.{0} ENNReal ENNReal.instDivInvMonoidENNReal)) (ENNReal.some t) n) (HPow.hPow.{0, 0, 0} ENNReal Int ENNReal (instHPow.{0, 0} ENNReal Int (DivInvMonoid.Pow.{0} ENNReal ENNReal.instDivInvMonoidENNReal)) (ENNReal.some t) (HAdd.hAdd.{0, 0, 0} Int Int Int (instHAdd.{0} Int Int.instAddInt) n (OfNat.ofNat.{0} Int 1 (instOfNatInt 1)))))))))))))
+Case conversion may be inaccurate. Consider using '#align measure_eq_measure_preimage_add_measure_tsum_Ico_zpow measure_eq_measure_preimage_add_measure_tsum_Ico_zpowₓ'. -/
/-- One can cut out `ℝ≥0∞` into the sets `{0}`, `Ico (t^n) (t^(n+1))` for `n : ℤ` and `{∞}`. This
gives a way to compute the measure of a set in terms of sets on which a given function `f` does not
fluctuate by more than `t`. -/
@@ -1584,66 +2249,92 @@ variable [MeasurableSpace β] {x : α} {ε : ℝ}
open Metric
+#print measurableSet_ball /-
@[measurability]
theorem measurableSet_ball : MeasurableSet (Metric.ball x ε) :=
Metric.isOpen_ball.MeasurableSet
#align measurable_set_ball measurableSet_ball
+-/
+#print measurableSet_closedBall /-
@[measurability]
theorem measurableSet_closedBall : MeasurableSet (Metric.closedBall x ε) :=
Metric.isClosed_ball.MeasurableSet
#align measurable_set_closed_ball measurableSet_closedBall
+-/
+#print measurable_infDist /-
@[measurability]
theorem measurable_infDist {s : Set α} : Measurable fun x => infDist x s :=
(continuous_infDist_pt s).Measurable
#align measurable_inf_dist measurable_infDist
+-/
+#print Measurable.infDist /-
@[measurability]
theorem Measurable.infDist {f : β → α} (hf : Measurable f) {s : Set α} :
Measurable fun x => infDist (f x) s :=
measurable_infDist.comp hf
#align measurable.inf_dist Measurable.infDist
+-/
+#print measurable_infNndist /-
@[measurability]
theorem measurable_infNndist {s : Set α} : Measurable fun x => infNndist x s :=
(continuous_infNndist_pt s).Measurable
#align measurable_inf_nndist measurable_infNndist
+-/
+#print Measurable.infNndist /-
@[measurability]
theorem Measurable.infNndist {f : β → α} (hf : Measurable f) {s : Set α} :
Measurable fun x => infNndist (f x) s :=
measurable_infNndist.comp hf
#align measurable.inf_nndist Measurable.infNndist
+-/
section
variable [SecondCountableTopology α]
+#print measurable_dist /-
@[measurability]
theorem measurable_dist : Measurable fun p : α × α => dist p.1 p.2 :=
continuous_dist.Measurable
#align measurable_dist measurable_dist
+-/
+#print Measurable.dist /-
@[measurability]
theorem Measurable.dist {f g : β → α} (hf : Measurable f) (hg : Measurable g) :
Measurable fun b => dist (f b) (g b) :=
(@continuous_dist α _).measurable2 hf hg
#align measurable.dist Measurable.dist
+-/
+#print measurable_nndist /-
@[measurability]
theorem measurable_nndist : Measurable fun p : α × α => nndist p.1 p.2 :=
continuous_nndist.Measurable
#align measurable_nndist measurable_nndist
+-/
+#print Measurable.nndist /-
@[measurability]
theorem Measurable.nndist {f g : β → α} (hf : Measurable f) (hg : Measurable g) :
Measurable fun b => nndist (f b) (g b) :=
(@continuous_nndist α _).measurable2 hf hg
#align measurable.nndist Measurable.nndist
+-/
end
+/- warning: tendsto_measure_cthickening -> tendsto_measure_cthickening is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_1 : PseudoMetricSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α _inst_1)) _inst_2] {μ : MeasureTheory.Measure.{u1} α _inst_2} {s : Set.{u1} α}, (Exists.{1} Real (fun (R : Real) => Exists.{0} (GT.gt.{0} Real Real.hasLt R (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (fun (H : GT.gt.{0} Real Real.hasLt R (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) => Ne.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α _inst_2) (fun (_x : MeasureTheory.Measure.{u1} α _inst_2) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α _inst_2) μ (Metric.cthickening.{u1} α (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) R s)) (Top.top.{0} ENNReal (CompleteLattice.toHasTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder)))))) -> (Filter.Tendsto.{0, 0} Real ENNReal (fun (r : Real) => coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α _inst_2) (fun (_x : MeasureTheory.Measure.{u1} α _inst_2) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α _inst_2) μ (Metric.cthickening.{u1} α (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) r s)) (nhds.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (nhds.{0} ENNReal ENNReal.topologicalSpace (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α _inst_2) (fun (_x : MeasureTheory.Measure.{u1} α _inst_2) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α _inst_2) μ (closure.{u1} α (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α _inst_1)) s))))
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_1 : PseudoMetricSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α _inst_1)) _inst_2] {μ : MeasureTheory.Measure.{u1} α _inst_2} {s : Set.{u1} α}, (Exists.{1} Real (fun (R : Real) => And (GT.gt.{0} Real Real.instLTReal R (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (Ne.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α _inst_2 μ) (Metric.cthickening.{u1} α (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) R s)) (Top.top.{0} ENNReal (CompleteLattice.toTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal)))))) -> (Filter.Tendsto.{0, 0} Real ENNReal (fun (r : Real) => MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α _inst_2 μ) (Metric.cthickening.{u1} α (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) r s)) (nhds.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (nhds.{0} ENNReal ENNReal.instTopologicalSpaceENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α _inst_2 μ) (closure.{u1} α (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α _inst_1)) s))))
+Case conversion may be inaccurate. Consider using '#align tendsto_measure_cthickening tendsto_measure_cthickeningₓ'. -/
/-- If a set has a closed thickening with finite measure, then the measure of its `r`-closed
thickenings converges to the measure of its closure as `r` tends to `0`. -/
theorem tendsto_measure_cthickening {μ : Measure α} {s : Set α}
@@ -1665,6 +2356,12 @@ theorem tendsto_measure_cthickening {μ : Measure α} {s : Set α}
exact (nhds_left_sup_nhds_right' 0).symm
#align tendsto_measure_cthickening tendsto_measure_cthickening
+/- warning: tendsto_measure_cthickening_of_is_closed -> tendsto_measure_cthickening_of_isClosed is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_1 : PseudoMetricSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α _inst_1)) _inst_2] {μ : MeasureTheory.Measure.{u1} α _inst_2} {s : Set.{u1} α}, (Exists.{1} Real (fun (R : Real) => Exists.{0} (GT.gt.{0} Real Real.hasLt R (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (fun (H : GT.gt.{0} Real Real.hasLt R (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) => Ne.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α _inst_2) (fun (_x : MeasureTheory.Measure.{u1} α _inst_2) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α _inst_2) μ (Metric.cthickening.{u1} α (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) R s)) (Top.top.{0} ENNReal (CompleteLattice.toHasTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder)))))) -> (IsClosed.{u1} α (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α _inst_1)) s) -> (Filter.Tendsto.{0, 0} Real ENNReal (fun (r : Real) => coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α _inst_2) (fun (_x : MeasureTheory.Measure.{u1} α _inst_2) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α _inst_2) μ (Metric.cthickening.{u1} α (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) r s)) (nhds.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (nhds.{0} ENNReal ENNReal.topologicalSpace (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α _inst_2) (fun (_x : MeasureTheory.Measure.{u1} α _inst_2) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α _inst_2) μ s)))
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_1 : PseudoMetricSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α _inst_1)) _inst_2] {μ : MeasureTheory.Measure.{u1} α _inst_2} {s : Set.{u1} α}, (Exists.{1} Real (fun (R : Real) => And (GT.gt.{0} Real Real.instLTReal R (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (Ne.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α _inst_2 μ) (Metric.cthickening.{u1} α (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) R s)) (Top.top.{0} ENNReal (CompleteLattice.toTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal)))))) -> (IsClosed.{u1} α (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α _inst_1)) s) -> (Filter.Tendsto.{0, 0} Real ENNReal (fun (r : Real) => MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α _inst_2 μ) (Metric.cthickening.{u1} α (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) r s)) (nhds.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (nhds.{0} ENNReal ENNReal.instTopologicalSpaceENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α _inst_2 μ) s)))
+Case conversion may be inaccurate. Consider using '#align tendsto_measure_cthickening_of_is_closed tendsto_measure_cthickening_of_isClosedₓ'. -/
/-- If a closed set has a closed thickening with finite measure, then the measure of its `r`-closed
thickenings converges to its measure as `r` tends to `0`. -/
theorem tendsto_measure_cthickening_of_isClosed {μ : Measure α} {s : Set α}
@@ -1677,6 +2374,12 @@ theorem tendsto_measure_cthickening_of_isClosed {μ : Measure α} {s : Set α}
end PseudoMetricSpace
+/- warning: tendsto_measure_cthickening_of_is_compact -> tendsto_measure_cthickening_of_isCompact is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_1 : MetricSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α (MetricSpace.toPseudoMetricSpace.{u1} α _inst_1))) _inst_2] [_inst_4 : ProperSpace.{u1} α (MetricSpace.toPseudoMetricSpace.{u1} α _inst_1)] {μ : MeasureTheory.Measure.{u1} α _inst_2} [_inst_5 : MeasureTheory.FiniteMeasureOnCompacts.{u1} α _inst_2 (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α (MetricSpace.toPseudoMetricSpace.{u1} α _inst_1))) μ] {s : Set.{u1} α}, (IsCompact.{u1} α (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α (MetricSpace.toPseudoMetricSpace.{u1} α _inst_1))) s) -> (Filter.Tendsto.{0, 0} Real ENNReal (fun (r : Real) => coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α _inst_2) (fun (_x : MeasureTheory.Measure.{u1} α _inst_2) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α _inst_2) μ (Metric.cthickening.{u1} α (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α (MetricSpace.toPseudoMetricSpace.{u1} α _inst_1)) r s)) (nhds.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (nhds.{0} ENNReal ENNReal.topologicalSpace (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} α _inst_2) (fun (_x : MeasureTheory.Measure.{u1} α _inst_2) => (Set.{u1} α) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} α _inst_2) μ s)))
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_1 : MetricSpace.{u1} α] [_inst_2 : MeasurableSpace.{u1} α] [_inst_3 : OpensMeasurableSpace.{u1} α (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α (MetricSpace.toPseudoMetricSpace.{u1} α _inst_1))) _inst_2] [_inst_4 : ProperSpace.{u1} α (MetricSpace.toPseudoMetricSpace.{u1} α _inst_1)] {μ : MeasureTheory.Measure.{u1} α _inst_2} [_inst_5 : MeasureTheory.FiniteMeasureOnCompacts.{u1} α _inst_2 (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α (MetricSpace.toPseudoMetricSpace.{u1} α _inst_1))) μ] {s : Set.{u1} α}, (IsCompact.{u1} α (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α (MetricSpace.toPseudoMetricSpace.{u1} α _inst_1))) s) -> (Filter.Tendsto.{0, 0} Real ENNReal (fun (r : Real) => MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α _inst_2 μ) (Metric.cthickening.{u1} α (EMetricSpace.toPseudoEMetricSpace.{u1} α (MetricSpace.toEMetricSpace.{u1} α _inst_1)) r s)) (nhds.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (nhds.{0} ENNReal ENNReal.instTopologicalSpaceENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} α (MeasureTheory.Measure.toOuterMeasure.{u1} α _inst_2 μ) s)))
+Case conversion may be inaccurate. Consider using '#align tendsto_measure_cthickening_of_is_compact tendsto_measure_cthickening_of_isCompactₓ'. -/
/-- Given a compact set in a proper space, the measure of its `r`-closed thickenings converges to
its measure as `r` tends to `0`. -/
theorem tendsto_measure_cthickening_of_isCompact [MetricSpace α] [MeasurableSpace α]
@@ -1694,50 +2397,66 @@ variable [MeasurableSpace β] {x : α} {ε : ℝ≥0∞}
open Emetric
+#print measurableSet_eball /-
@[measurability]
theorem measurableSet_eball : MeasurableSet (EMetric.ball x ε) :=
EMetric.isOpen_ball.MeasurableSet
#align measurable_set_eball measurableSet_eball
+-/
+#print measurable_edist_right /-
@[measurability]
theorem measurable_edist_right : Measurable (edist x) :=
(continuous_const.edist continuous_id).Measurable
#align measurable_edist_right measurable_edist_right
+-/
+#print measurable_edist_left /-
@[measurability]
theorem measurable_edist_left : Measurable fun y => edist y x :=
(continuous_id.edist continuous_const).Measurable
#align measurable_edist_left measurable_edist_left
+-/
+#print measurable_infEdist /-
@[measurability]
theorem measurable_infEdist {s : Set α} : Measurable fun x => infEdist x s :=
continuous_infEdist.Measurable
#align measurable_inf_edist measurable_infEdist
+-/
+#print Measurable.infEdist /-
@[measurability]
theorem Measurable.infEdist {f : β → α} (hf : Measurable f) {s : Set α} :
Measurable fun x => infEdist (f x) s :=
measurable_infEdist.comp hf
#align measurable.inf_edist Measurable.infEdist
+-/
variable [SecondCountableTopology α]
+#print measurable_edist /-
@[measurability]
theorem measurable_edist : Measurable fun p : α × α => edist p.1 p.2 :=
continuous_edist.Measurable
#align measurable_edist measurable_edist
+-/
+#print Measurable.edist /-
@[measurability]
theorem Measurable.edist {f g : β → α} (hf : Measurable f) (hg : Measurable g) :
Measurable fun b => edist (f b) (g b) :=
(@continuous_edist α _).measurable2 hf hg
#align measurable.edist Measurable.edist
+-/
+#print AEMeasurable.edist /-
@[measurability]
theorem AEMeasurable.edist {f g : β → α} {μ : Measure β} (hf : AEMeasurable f μ)
(hg : AEMeasurable g μ) : AEMeasurable (fun a => edist (f a) (g a)) μ :=
- (@continuous_edist α _).ae_measurable2 hf hg
+ (@continuous_edist α _).aemeasurable2 hf hg
#align ae_measurable.edist AEMeasurable.edist
+-/
end PseudoEMetricSpace
@@ -1745,12 +2464,24 @@ namespace Real
open MeasurableSpace MeasureTheory
+/- warning: real.borel_eq_generate_from_Ioo_rat -> Real.borel_eq_generateFrom_Ioo_rat is a dubious translation:
+lean 3 declaration is
+ Eq.{1} (MeasurableSpace.{0} Real) (borel.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace))) (MeasurableSpace.generateFrom.{0} Real (Set.iUnion.{0, 1} (Set.{0} Real) Rat (fun (a : Rat) => Set.iUnion.{0, 1} (Set.{0} Real) Rat (fun (b : Rat) => Set.iUnion.{0, 0} (Set.{0} Real) (LT.lt.{0} Rat Rat.hasLt a b) (fun (h : LT.lt.{0} Rat Rat.hasLt a b) => Singleton.singleton.{0, 0} (Set.{0} Real) (Set.{0} (Set.{0} Real)) (Set.hasSingleton.{0} (Set.{0} Real)) (Set.Ioo.{0} Real Real.preorder ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) a) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) b)))))))
+but is expected to have type
+ Eq.{1} (MeasurableSpace.{0} Real) (borel.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace))) (MeasurableSpace.generateFrom.{0} Real (Set.iUnion.{0, 1} (Set.{0} Real) Rat (fun (a : Rat) => Set.iUnion.{0, 1} (Set.{0} Real) Rat (fun (b : Rat) => Set.iUnion.{0, 0} (Set.{0} Real) (LT.lt.{0} Rat Rat.instLTRat_1 a b) (fun (h : LT.lt.{0} Rat Rat.instLTRat_1 a b) => Singleton.singleton.{0, 0} (Set.{0} Real) (Set.{0} (Set.{0} Real)) (Set.instSingletonSet.{0} (Set.{0} Real)) (Set.Ioo.{0} Real Real.instPreorderReal (Rat.cast.{0} Real Real.ratCast a) (Rat.cast.{0} Real Real.ratCast b)))))))
+Case conversion may be inaccurate. Consider using '#align real.borel_eq_generate_from_Ioo_rat Real.borel_eq_generateFrom_Ioo_ratₓ'. -/
/- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (a b) -/
theorem borel_eq_generateFrom_Ioo_rat :
borel ℝ = generateFrom (⋃ (a : ℚ) (b : ℚ) (h : a < b), {Ioo a b}) :=
isTopologicalBasis_Ioo_rat.borel_eq_generateFrom
#align real.borel_eq_generate_from_Ioo_rat Real.borel_eq_generateFrom_Ioo_rat
+/- warning: real.is_pi_system_Ioo_rat -> Real.isPiSystem_Ioo_rat is a dubious translation:
+lean 3 declaration is
+ IsPiSystem.{0} Real (Set.iUnion.{0, 1} (Set.{0} Real) Rat (fun (a : Rat) => Set.iUnion.{0, 1} (Set.{0} Real) Rat (fun (b : Rat) => Set.iUnion.{0, 0} (Set.{0} Real) (LT.lt.{0} Rat Rat.hasLt a b) (fun (h : LT.lt.{0} Rat Rat.hasLt a b) => Singleton.singleton.{0, 0} (Set.{0} Real) (Set.{0} (Set.{0} Real)) (Set.hasSingleton.{0} (Set.{0} Real)) (Set.Ioo.{0} Real Real.preorder ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) a) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) b))))))
+but is expected to have type
+ IsPiSystem.{0} Real (Set.iUnion.{0, 1} (Set.{0} Real) Rat (fun (a : Rat) => Set.iUnion.{0, 1} (Set.{0} Real) Rat (fun (b : Rat) => Set.iUnion.{0, 0} (Set.{0} Real) (LT.lt.{0} Rat Rat.instLTRat_1 a b) (fun (h : LT.lt.{0} Rat Rat.instLTRat_1 a b) => Singleton.singleton.{0, 0} (Set.{0} Real) (Set.{0} (Set.{0} Real)) (Set.instSingletonSet.{0} (Set.{0} Real)) (Set.Ioo.{0} Real Real.instPreorderReal (Rat.cast.{0} Real Real.ratCast a) (Rat.cast.{0} Real Real.ratCast b))))))
+Case conversion may be inaccurate. Consider using '#align real.is_pi_system_Ioo_rat Real.isPiSystem_Ioo_ratₓ'. -/
/- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (a b) -/
theorem isPiSystem_Ioo_rat : @IsPiSystem ℝ (⋃ (a : ℚ) (b : ℚ) (h : a < b), {Ioo a b}) :=
by
@@ -1759,6 +2490,12 @@ theorem isPiSystem_Ioo_rat : @IsPiSystem ℝ (⋃ (a : ℚ) (b : ℚ) (h : a < b
simp [eq_comm]
#align real.is_pi_system_Ioo_rat Real.isPiSystem_Ioo_rat
+/- warning: real.finite_spanning_sets_in_Ioo_rat -> Real.finiteSpanningSetsInIooRat is a dubious translation:
+lean 3 declaration is
+ forall (μ : MeasureTheory.Measure.{0} Real Real.measurableSpace) [_inst_1 : MeasureTheory.LocallyFiniteMeasure.{0} Real Real.measurableSpace (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) μ], MeasureTheory.Measure.FiniteSpanningSetsIn.{0} Real Real.measurableSpace μ (Set.iUnion.{0, 1} (Set.{0} Real) Rat (fun (a : Rat) => Set.iUnion.{0, 1} (Set.{0} Real) Rat (fun (b : Rat) => Set.iUnion.{0, 0} (Set.{0} Real) (LT.lt.{0} Rat Rat.hasLt a b) (fun (h : LT.lt.{0} Rat Rat.hasLt a b) => Singleton.singleton.{0, 0} (Set.{0} Real) (Set.{0} (Set.{0} Real)) (Set.hasSingleton.{0} (Set.{0} Real)) (Set.Ioo.{0} Real Real.preorder ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) a) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) b))))))
+but is expected to have type
+ forall (μ : MeasureTheory.Measure.{0} Real Real.measurableSpace) [_inst_1 : MeasureTheory.LocallyFiniteMeasure.{0} Real Real.measurableSpace (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) μ], MeasureTheory.Measure.FiniteSpanningSetsIn.{0} Real Real.measurableSpace μ (Set.iUnion.{0, 1} (Set.{0} Real) Rat (fun (a : Rat) => Set.iUnion.{0, 1} (Set.{0} Real) Rat (fun (b : Rat) => Set.iUnion.{0, 0} (Set.{0} Real) (LT.lt.{0} Rat Rat.instLTRat_1 a b) (fun (h : LT.lt.{0} Rat Rat.instLTRat_1 a b) => Singleton.singleton.{0, 0} (Set.{0} Real) (Set.{0} (Set.{0} Real)) (Set.instSingletonSet.{0} (Set.{0} Real)) (Set.Ioo.{0} Real Real.instPreorderReal (Rat.cast.{0} Real Real.ratCast a) (Rat.cast.{0} Real Real.ratCast b))))))
+Case conversion may be inaccurate. Consider using '#align real.finite_spanning_sets_in_Ioo_rat Real.finiteSpanningSetsInIooRatₓ'. -/
/- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (a b) -/
/-- The intervals `(-(n + 1), (n + 1))` form a finite spanning sets in the set of open intervals
with rational endpoints for a locally finite measure `μ` on `ℝ`. -/
@@ -1778,6 +2515,12 @@ def finiteSpanningSetsInIooRat (μ : Measure ℝ) [LocallyFiniteMeasure μ] :
(le_abs_self x).trans_lt (Nat.lt_floor_add_one _)⟩
#align real.finite_spanning_sets_in_Ioo_rat Real.finiteSpanningSetsInIooRat
+/- warning: real.measure_ext_Ioo_rat -> Real.measure_ext_Ioo_rat is a dubious translation:
+lean 3 declaration is
+ forall {μ : MeasureTheory.Measure.{0} Real Real.measurableSpace} {ν : MeasureTheory.Measure.{0} Real Real.measurableSpace} [_inst_1 : MeasureTheory.LocallyFiniteMeasure.{0} Real Real.measurableSpace (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) μ], (forall (a : Rat) (b : Rat), Eq.{1} ENNReal (coeFn.{1, 1} (MeasureTheory.Measure.{0} Real Real.measurableSpace) (fun (_x : MeasureTheory.Measure.{0} Real Real.measurableSpace) => (Set.{0} Real) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{0} Real Real.measurableSpace) μ (Set.Ioo.{0} Real Real.preorder ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) a) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) b))) (coeFn.{1, 1} (MeasureTheory.Measure.{0} Real Real.measurableSpace) (fun (_x : MeasureTheory.Measure.{0} Real Real.measurableSpace) => (Set.{0} Real) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{0} Real Real.measurableSpace) ν (Set.Ioo.{0} Real Real.preorder ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) a) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) b)))) -> (Eq.{1} (MeasureTheory.Measure.{0} Real Real.measurableSpace) μ ν)
+but is expected to have type
+ forall {μ : MeasureTheory.Measure.{0} Real Real.measurableSpace} {ν : MeasureTheory.Measure.{0} Real Real.measurableSpace} [_inst_1 : MeasureTheory.LocallyFiniteMeasure.{0} Real Real.measurableSpace (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) μ], (forall (a : Rat) (b : Rat), Eq.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{0} Real (MeasureTheory.Measure.toOuterMeasure.{0} Real Real.measurableSpace μ) (Set.Ioo.{0} Real Real.instPreorderReal (Rat.cast.{0} Real Real.ratCast a) (Rat.cast.{0} Real Real.ratCast b))) (MeasureTheory.OuterMeasure.measureOf.{0} Real (MeasureTheory.Measure.toOuterMeasure.{0} Real Real.measurableSpace ν) (Set.Ioo.{0} Real Real.instPreorderReal (Rat.cast.{0} Real Real.ratCast a) (Rat.cast.{0} Real Real.ratCast b)))) -> (Eq.{1} (MeasureTheory.Measure.{0} Real Real.measurableSpace) μ ν)
+Case conversion may be inaccurate. Consider using '#align real.measure_ext_Ioo_rat Real.measure_ext_Ioo_ratₓ'. -/
theorem measure_ext_Ioo_rat {μ ν : Measure ℝ} [LocallyFiniteMeasure μ]
(h : ∀ a b : ℚ, μ (Ioo a b) = ν (Ioo a b)) : μ = ν :=
(finiteSpanningSetsInIooRat μ).ext borel_eq_generateFrom_Ioo_rat isPiSystem_Ioo_rat <|
@@ -1787,6 +2530,12 @@ theorem measure_ext_Ioo_rat {μ ν : Measure ℝ} [LocallyFiniteMeasure μ]
apply h
#align real.measure_ext_Ioo_rat Real.measure_ext_Ioo_rat
+/- warning: real.borel_eq_generate_from_Iio_rat -> Real.borel_eq_generateFrom_Iio_rat is a dubious translation:
+lean 3 declaration is
+ Eq.{1} (MeasurableSpace.{0} Real) (borel.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace))) (MeasurableSpace.generateFrom.{0} Real (Set.iUnion.{0, 1} (Set.{0} Real) Rat (fun (a : Rat) => Singleton.singleton.{0, 0} (Set.{0} Real) (Set.{0} (Set.{0} Real)) (Set.hasSingleton.{0} (Set.{0} Real)) (Set.Iio.{0} Real Real.preorder ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Rat Real (HasLiftT.mk.{1, 1} Rat Real (CoeTCₓ.coe.{1, 1} Rat Real (Rat.castCoe.{0} Real Real.hasRatCast))) a)))))
+but is expected to have type
+ Eq.{1} (MeasurableSpace.{0} Real) (borel.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace))) (MeasurableSpace.generateFrom.{0} Real (Set.iUnion.{0, 1} (Set.{0} Real) Rat (fun (a : Rat) => Singleton.singleton.{0, 0} (Set.{0} Real) (Set.{0} (Set.{0} Real)) (Set.instSingletonSet.{0} (Set.{0} Real)) (Set.Iio.{0} Real Real.instPreorderReal (Rat.cast.{0} Real Real.ratCast a)))))
+Case conversion may be inaccurate. Consider using '#align real.borel_eq_generate_from_Iio_rat Real.borel_eq_generateFrom_Iio_ratₓ'. -/
theorem borel_eq_generateFrom_Iio_rat : borel ℝ = generateFrom (⋃ a : ℚ, {Iio a}) :=
by
let g : MeasurableSpace ℝ := generate_from (⋃ a : ℚ, {Iio a})
@@ -1815,131 +2564,203 @@ end Real
variable [MeasurableSpace α]
+#print measurable_real_toNNReal /-
@[measurability]
theorem measurable_real_toNNReal : Measurable Real.toNNReal :=
continuous_real_toNNReal.Measurable
#align measurable_real_to_nnreal measurable_real_toNNReal
+-/
+#print Measurable.real_toNNReal /-
@[measurability]
theorem Measurable.real_toNNReal {f : α → ℝ} (hf : Measurable f) :
Measurable fun x => Real.toNNReal (f x) :=
measurable_real_toNNReal.comp hf
#align measurable.real_to_nnreal Measurable.real_toNNReal
+-/
+#print AEMeasurable.real_toNNReal /-
@[measurability]
theorem AEMeasurable.real_toNNReal {f : α → ℝ} {μ : Measure α} (hf : AEMeasurable f μ) :
AEMeasurable (fun x => Real.toNNReal (f x)) μ :=
measurable_real_toNNReal.comp_aemeasurable hf
#align ae_measurable.real_to_nnreal AEMeasurable.real_toNNReal
+-/
+/- warning: measurable_coe_nnreal_real -> measurable_coe_nnreal_real is a dubious translation:
+lean 3 declaration is
+ Measurable.{0, 0} NNReal Real NNReal.measurableSpace Real.measurableSpace ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal Real (HasLiftT.mk.{1, 1} NNReal Real (CoeTCₓ.coe.{1, 1} NNReal Real (coeBase.{1, 1} NNReal Real NNReal.Real.hasCoe))))
+but is expected to have type
+ Measurable.{0, 0} NNReal Real NNReal.measurableSpace Real.measurableSpace NNReal.toReal
+Case conversion may be inaccurate. Consider using '#align measurable_coe_nnreal_real measurable_coe_nnreal_realₓ'. -/
@[measurability]
-theorem measurable_coe_nNReal_real : Measurable (coe : ℝ≥0 → ℝ) :=
+theorem measurable_coe_nnreal_real : Measurable (coe : ℝ≥0 → ℝ) :=
NNReal.continuous_coe.Measurable
-#align measurable_coe_nnreal_real measurable_coe_nNReal_real
+#align measurable_coe_nnreal_real measurable_coe_nnreal_real
+/- warning: measurable.coe_nnreal_real -> Measurable.coe_nnreal_real is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {f : α -> NNReal}, (Measurable.{u1, 0} α NNReal _inst_1 NNReal.measurableSpace f) -> (Measurable.{u1, 0} α Real _inst_1 Real.measurableSpace (fun (x : α) => (fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal Real (HasLiftT.mk.{1, 1} NNReal Real (CoeTCₓ.coe.{1, 1} NNReal Real (coeBase.{1, 1} NNReal Real NNReal.Real.hasCoe))) (f x)))
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {f : α -> NNReal}, (Measurable.{u1, 0} α NNReal _inst_1 NNReal.measurableSpace f) -> (Measurable.{u1, 0} α Real _inst_1 Real.measurableSpace (fun (x : α) => NNReal.toReal (f x)))
+Case conversion may be inaccurate. Consider using '#align measurable.coe_nnreal_real Measurable.coe_nnreal_realₓ'. -/
@[measurability]
-theorem Measurable.coe_nNReal_real {f : α → ℝ≥0} (hf : Measurable f) :
+theorem Measurable.coe_nnreal_real {f : α → ℝ≥0} (hf : Measurable f) :
Measurable fun x => (f x : ℝ) :=
- measurable_coe_nNReal_real.comp hf
-#align measurable.coe_nnreal_real Measurable.coe_nNReal_real
+ measurable_coe_nnreal_real.comp hf
+#align measurable.coe_nnreal_real Measurable.coe_nnreal_real
+/- warning: ae_measurable.coe_nnreal_real -> AEMeasurable.coe_nnreal_real is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {f : α -> NNReal} {μ : MeasureTheory.Measure.{u1} α _inst_1}, (AEMeasurable.{u1, 0} α NNReal NNReal.measurableSpace _inst_1 f μ) -> (AEMeasurable.{u1, 0} α Real Real.measurableSpace _inst_1 (fun (x : α) => (fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal Real (HasLiftT.mk.{1, 1} NNReal Real (CoeTCₓ.coe.{1, 1} NNReal Real (coeBase.{1, 1} NNReal Real NNReal.Real.hasCoe))) (f x)) μ)
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {f : α -> NNReal} {μ : MeasureTheory.Measure.{u1} α _inst_1}, (AEMeasurable.{u1, 0} α NNReal NNReal.measurableSpace _inst_1 f μ) -> (AEMeasurable.{u1, 0} α Real Real.measurableSpace _inst_1 (fun (x : α) => NNReal.toReal (f x)) μ)
+Case conversion may be inaccurate. Consider using '#align ae_measurable.coe_nnreal_real AEMeasurable.coe_nnreal_realₓ'. -/
@[measurability]
-theorem AEMeasurable.coe_nNReal_real {f : α → ℝ≥0} {μ : Measure α} (hf : AEMeasurable f μ) :
+theorem AEMeasurable.coe_nnreal_real {f : α → ℝ≥0} {μ : Measure α} (hf : AEMeasurable f μ) :
AEMeasurable (fun x => (f x : ℝ)) μ :=
- measurable_coe_nNReal_real.comp_aemeasurable hf
-#align ae_measurable.coe_nnreal_real AEMeasurable.coe_nNReal_real
+ measurable_coe_nnreal_real.comp_aemeasurable hf
+#align ae_measurable.coe_nnreal_real AEMeasurable.coe_nnreal_real
+#print measurable_coe_nnreal_ennreal /-
@[measurability]
-theorem measurable_coe_nNReal_eNNReal : Measurable (coe : ℝ≥0 → ℝ≥0∞) :=
+theorem measurable_coe_nnreal_ennreal : Measurable (coe : ℝ≥0 → ℝ≥0∞) :=
ENNReal.continuous_coe.Measurable
-#align measurable_coe_nnreal_ennreal measurable_coe_nNReal_eNNReal
+#align measurable_coe_nnreal_ennreal measurable_coe_nnreal_ennreal
+-/
+#print Measurable.coe_nnreal_ennreal /-
@[measurability]
-theorem Measurable.coe_nNReal_eNNReal {f : α → ℝ≥0} (hf : Measurable f) :
+theorem Measurable.coe_nnreal_ennreal {f : α → ℝ≥0} (hf : Measurable f) :
Measurable fun x => (f x : ℝ≥0∞) :=
ENNReal.continuous_coe.Measurable.comp hf
-#align measurable.coe_nnreal_ennreal Measurable.coe_nNReal_eNNReal
+#align measurable.coe_nnreal_ennreal Measurable.coe_nnreal_ennreal
+-/
+#print AEMeasurable.coe_nnreal_ennreal /-
@[measurability]
-theorem AEMeasurable.coe_nNReal_eNNReal {f : α → ℝ≥0} {μ : Measure α} (hf : AEMeasurable f μ) :
+theorem AEMeasurable.coe_nnreal_ennreal {f : α → ℝ≥0} {μ : Measure α} (hf : AEMeasurable f μ) :
AEMeasurable (fun x => (f x : ℝ≥0∞)) μ :=
ENNReal.continuous_coe.Measurable.comp_aemeasurable hf
-#align ae_measurable.coe_nnreal_ennreal AEMeasurable.coe_nNReal_eNNReal
+#align ae_measurable.coe_nnreal_ennreal AEMeasurable.coe_nnreal_ennreal
+-/
+#print Measurable.ennreal_ofReal /-
@[measurability]
-theorem Measurable.eNNReal_ofReal {f : α → ℝ} (hf : Measurable f) :
+theorem Measurable.ennreal_ofReal {f : α → ℝ} (hf : Measurable f) :
Measurable fun x => ENNReal.ofReal (f x) :=
ENNReal.continuous_ofReal.Measurable.comp hf
-#align measurable.ennreal_of_real Measurable.eNNReal_ofReal
+#align measurable.ennreal_of_real Measurable.ennreal_ofReal
+-/
+/- warning: measurable_coe_nnreal_real_iff -> measurable_coe_nnreal_real_iff is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {f : α -> NNReal}, Iff (Measurable.{u1, 0} α Real _inst_1 Real.measurableSpace (fun (x : α) => (fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal Real (HasLiftT.mk.{1, 1} NNReal Real (CoeTCₓ.coe.{1, 1} NNReal Real (coeBase.{1, 1} NNReal Real NNReal.Real.hasCoe))) (f x))) (Measurable.{u1, 0} α NNReal _inst_1 NNReal.measurableSpace f)
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {f : α -> NNReal}, Iff (Measurable.{u1, 0} α Real _inst_1 Real.measurableSpace (fun (x : α) => NNReal.toReal (f x))) (Measurable.{u1, 0} α NNReal _inst_1 NNReal.measurableSpace f)
+Case conversion may be inaccurate. Consider using '#align measurable_coe_nnreal_real_iff measurable_coe_nnreal_real_iffₓ'. -/
@[simp, norm_cast]
-theorem measurable_coe_nNReal_real_iff {f : α → ℝ≥0} :
+theorem measurable_coe_nnreal_real_iff {f : α → ℝ≥0} :
Measurable (fun x => f x : α → ℝ) ↔ Measurable f :=
- ⟨fun h => by simpa only [Real.toNNReal_coe] using h.real_to_nnreal, Measurable.coe_nNReal_real⟩
-#align measurable_coe_nnreal_real_iff measurable_coe_nNReal_real_iff
-
+ ⟨fun h => by simpa only [Real.toNNReal_coe] using h.real_to_nnreal, Measurable.coe_nnreal_real⟩
+#align measurable_coe_nnreal_real_iff measurable_coe_nnreal_real_iff
+
+/- warning: ae_measurable_coe_nnreal_real_iff -> aEMeasurable_coe_nnreal_real_iff is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {f : α -> NNReal} {μ : MeasureTheory.Measure.{u1} α _inst_1}, Iff (AEMeasurable.{u1, 0} α Real Real.measurableSpace _inst_1 (fun (x : α) => (fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal Real (HasLiftT.mk.{1, 1} NNReal Real (CoeTCₓ.coe.{1, 1} NNReal Real (coeBase.{1, 1} NNReal Real NNReal.Real.hasCoe))) (f x)) μ) (AEMeasurable.{u1, 0} α NNReal NNReal.measurableSpace _inst_1 f μ)
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {f : α -> NNReal} {μ : MeasureTheory.Measure.{u1} α _inst_1}, Iff (AEMeasurable.{u1, 0} α Real Real.measurableSpace _inst_1 (fun (x : α) => NNReal.toReal (f x)) μ) (AEMeasurable.{u1, 0} α NNReal NNReal.measurableSpace _inst_1 f μ)
+Case conversion may be inaccurate. Consider using '#align ae_measurable_coe_nnreal_real_iff aEMeasurable_coe_nnreal_real_iffₓ'. -/
@[simp, norm_cast]
-theorem aEMeasurable_coe_nNReal_real_iff {f : α → ℝ≥0} {μ : Measure α} :
+theorem aEMeasurable_coe_nnreal_real_iff {f : α → ℝ≥0} {μ : Measure α} :
AEMeasurable (fun x => f x : α → ℝ) μ ↔ AEMeasurable f μ :=
- ⟨fun h => by simpa only [Real.toNNReal_coe] using h.real_to_nnreal, AEMeasurable.coe_nNReal_real⟩
-#align ae_measurable_coe_nnreal_real_iff aEMeasurable_coe_nNReal_real_iff
-
+ ⟨fun h => by simpa only [Real.toNNReal_coe] using h.real_to_nnreal, AEMeasurable.coe_nnreal_real⟩
+#align ae_measurable_coe_nnreal_real_iff aEMeasurable_coe_nnreal_real_iff
+
+/- warning: measurable_equiv.ennreal_equiv_nnreal -> MeasurableEquiv.ennrealEquivNNReal is a dubious translation:
+lean 3 declaration is
+ MeasurableEquiv.{0, 0} (coeSort.{1, 2} (Set.{0} ENNReal) Type (Set.hasCoeToSort.{0} ENNReal) (setOf.{0} ENNReal (fun (r : ENNReal) => Ne.{1} ENNReal r (Top.top.{0} ENNReal (CompleteLattice.toHasTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder)))))) NNReal (Subtype.instMeasurableSpace.{0} ENNReal (fun (x : ENNReal) => Membership.Mem.{0, 0} ENNReal (Set.{0} ENNReal) (Set.hasMem.{0} ENNReal) x (setOf.{0} ENNReal (fun (r : ENNReal) => Ne.{1} ENNReal r (Top.top.{0} ENNReal (CompleteLattice.toHasTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder)))))) ENNReal.measurableSpace) NNReal.measurableSpace
+but is expected to have type
+ MeasurableEquiv.{0, 0} (Set.Elem.{0} ENNReal (setOf.{0} ENNReal (fun (r : ENNReal) => Ne.{1} ENNReal r (Top.top.{0} ENNReal (CompleteLattice.toTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal)))))) NNReal (Subtype.instMeasurableSpace.{0} ENNReal (fun (x : ENNReal) => Membership.mem.{0, 0} ENNReal (Set.{0} ENNReal) (Set.instMembershipSet.{0} ENNReal) x (setOf.{0} ENNReal (fun (r : ENNReal) => Ne.{1} ENNReal r (Top.top.{0} ENNReal (CompleteLattice.toTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal)))))) ENNReal.measurableSpace) NNReal.measurableSpace
+Case conversion may be inaccurate. Consider using '#align measurable_equiv.ennreal_equiv_nnreal MeasurableEquiv.ennrealEquivNNRealₓ'. -/
/-- The set of finite `ℝ≥0∞` numbers is `measurable_equiv` to `ℝ≥0`. -/
-def MeasurableEquiv.ennrealEquivNnreal : { r : ℝ≥0∞ | r ≠ ∞ } ≃ᵐ ℝ≥0 :=
+def MeasurableEquiv.ennrealEquivNNReal : { r : ℝ≥0∞ | r ≠ ∞ } ≃ᵐ ℝ≥0 :=
ENNReal.neTopHomeomorphNNReal.toMeasurableEquiv
-#align measurable_equiv.ennreal_equiv_nnreal MeasurableEquiv.ennrealEquivNnreal
+#align measurable_equiv.ennreal_equiv_nnreal MeasurableEquiv.ennrealEquivNNReal
namespace ENNReal
-theorem measurable_of_measurable_nNReal {f : ℝ≥0∞ → α} (h : Measurable fun p : ℝ≥0 => f p) :
+#print ENNReal.measurable_of_measurable_nnreal /-
+theorem measurable_of_measurable_nnreal {f : ℝ≥0∞ → α} (h : Measurable fun p : ℝ≥0 => f p) :
Measurable f :=
measurable_of_measurable_on_compl_singleton ∞
- (MeasurableEquiv.ennrealEquivNnreal.symm.measurable_comp_iff.1 h)
-#align ennreal.measurable_of_measurable_nnreal ENNReal.measurable_of_measurable_nNReal
+ (MeasurableEquiv.ennrealEquivNNReal.symm.measurable_comp_iff.1 h)
+#align ennreal.measurable_of_measurable_nnreal ENNReal.measurable_of_measurable_nnreal
+-/
+#print ENNReal.ennrealEquivSum /-
/-- `ℝ≥0∞` is `measurable_equiv` to `ℝ≥0 ⊕ unit`. -/
def ennrealEquivSum : ℝ≥0∞ ≃ᵐ Sum ℝ≥0 Unit :=
{
Equiv.optionEquivSumPUnit
ℝ≥0 with
- measurable_to_fun := measurable_of_measurable_nNReal measurable_inl
+ measurable_to_fun := measurable_of_measurable_nnreal measurable_inl
measurable_inv_fun :=
- measurable_sum measurable_coe_nNReal_eNNReal (@measurable_const ℝ≥0∞ Unit _ _ ∞) }
+ measurable_sum measurable_coe_nnreal_ennreal (@measurable_const ℝ≥0∞ Unit _ _ ∞) }
#align ennreal.ennreal_equiv_sum ENNReal.ennrealEquivSum
+-/
open Function (uncurry)
-theorem measurable_of_measurable_nNReal_prod [MeasurableSpace β] [MeasurableSpace γ]
+/- warning: ennreal.measurable_of_measurable_nnreal_prod -> ENNReal.measurable_of_measurable_nnreal_prod is a dubious translation:
+lean 3 declaration is
+ forall {β : Type.{u1}} {γ : Type.{u2}} [_inst_2 : MeasurableSpace.{u1} β] [_inst_3 : MeasurableSpace.{u2} γ] {f : (Prod.{0, u1} ENNReal β) -> γ}, (Measurable.{u1, u2} (Prod.{0, u1} NNReal β) γ (Prod.instMeasurableSpace.{0, u1} NNReal β NNReal.measurableSpace _inst_2) _inst_3 (fun (p : Prod.{0, u1} NNReal β) => f (Prod.mk.{0, u1} ENNReal β ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal ENNReal (HasLiftT.mk.{1, 1} NNReal ENNReal (CoeTCₓ.coe.{1, 1} NNReal ENNReal (coeBase.{1, 1} NNReal ENNReal ENNReal.hasCoe))) (Prod.fst.{0, u1} NNReal β p)) (Prod.snd.{0, u1} NNReal β p)))) -> (Measurable.{u1, u2} β γ _inst_2 _inst_3 (fun (x : β) => f (Prod.mk.{0, u1} ENNReal β (Top.top.{0} ENNReal (CompleteLattice.toHasTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))) x))) -> (Measurable.{u1, u2} (Prod.{0, u1} ENNReal β) γ (Prod.instMeasurableSpace.{0, u1} ENNReal β ENNReal.measurableSpace _inst_2) _inst_3 f)
+but is expected to have type
+ forall {β : Type.{u2}} {γ : Type.{u1}} [_inst_2 : MeasurableSpace.{u2} β] [_inst_3 : MeasurableSpace.{u1} γ] {f : (Prod.{0, u2} ENNReal β) -> γ}, (Measurable.{u2, u1} (Prod.{0, u2} NNReal β) γ (Prod.instMeasurableSpace.{0, u2} NNReal β NNReal.measurableSpace _inst_2) _inst_3 (fun (p : Prod.{0, u2} NNReal β) => f (Prod.mk.{0, u2} ENNReal β (ENNReal.some (Prod.fst.{0, u2} NNReal β p)) (Prod.snd.{0, u2} NNReal β p)))) -> (Measurable.{u2, u1} β γ _inst_2 _inst_3 (fun (x : β) => f (Prod.mk.{0, u2} ENNReal β (Top.top.{0} ENNReal (CompleteLattice.toTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal))) x))) -> (Measurable.{u2, u1} (Prod.{0, u2} ENNReal β) γ (Prod.instMeasurableSpace.{0, u2} ENNReal β ENNReal.measurableSpace _inst_2) _inst_3 f)
+Case conversion may be inaccurate. Consider using '#align ennreal.measurable_of_measurable_nnreal_prod ENNReal.measurable_of_measurable_nnreal_prodₓ'. -/
+theorem measurable_of_measurable_nnreal_prod [MeasurableSpace β] [MeasurableSpace γ]
{f : ℝ≥0∞ × β → γ} (H₁ : Measurable fun p : ℝ≥0 × β => f (p.1, p.2))
(H₂ : Measurable fun x => f (∞, x)) : Measurable f :=
let e : ℝ≥0∞ × β ≃ᵐ Sum (ℝ≥0 × β) (Unit × β) :=
(ennrealEquivSum.prodCongr (MeasurableEquiv.refl β)).trans
(MeasurableEquiv.sumProdDistrib _ _ _)
e.symm.measurable_comp_iff.1 <| measurable_sum H₁ (H₂.comp measurable_id.snd)
-#align ennreal.measurable_of_measurable_nnreal_prod ENNReal.measurable_of_measurable_nNReal_prod
-
-theorem measurable_of_measurable_nNReal_nNReal [MeasurableSpace β] {f : ℝ≥0∞ × ℝ≥0∞ → β}
+#align ennreal.measurable_of_measurable_nnreal_prod ENNReal.measurable_of_measurable_nnreal_prod
+
+/- warning: ennreal.measurable_of_measurable_nnreal_nnreal -> ENNReal.measurable_of_measurable_nnreal_nnreal is a dubious translation:
+lean 3 declaration is
+ forall {β : Type.{u1}} [_inst_2 : MeasurableSpace.{u1} β] {f : (Prod.{0, 0} ENNReal ENNReal) -> β}, (Measurable.{0, u1} (Prod.{0, 0} NNReal NNReal) β (Prod.instMeasurableSpace.{0, 0} NNReal NNReal NNReal.measurableSpace NNReal.measurableSpace) _inst_2 (fun (p : Prod.{0, 0} NNReal NNReal) => f (Prod.mk.{0, 0} ENNReal ENNReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal ENNReal (HasLiftT.mk.{1, 1} NNReal ENNReal (CoeTCₓ.coe.{1, 1} NNReal ENNReal (coeBase.{1, 1} NNReal ENNReal ENNReal.hasCoe))) (Prod.fst.{0, 0} NNReal NNReal p)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal ENNReal (HasLiftT.mk.{1, 1} NNReal ENNReal (CoeTCₓ.coe.{1, 1} NNReal ENNReal (coeBase.{1, 1} NNReal ENNReal ENNReal.hasCoe))) (Prod.snd.{0, 0} NNReal NNReal p))))) -> (Measurable.{0, u1} NNReal β NNReal.measurableSpace _inst_2 (fun (r : NNReal) => f (Prod.mk.{0, 0} ENNReal ENNReal (Top.top.{0} ENNReal (CompleteLattice.toHasTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal ENNReal (HasLiftT.mk.{1, 1} NNReal ENNReal (CoeTCₓ.coe.{1, 1} NNReal ENNReal (coeBase.{1, 1} NNReal ENNReal ENNReal.hasCoe))) r)))) -> (Measurable.{0, u1} NNReal β NNReal.measurableSpace _inst_2 (fun (r : NNReal) => f (Prod.mk.{0, 0} ENNReal ENNReal ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal ENNReal (HasLiftT.mk.{1, 1} NNReal ENNReal (CoeTCₓ.coe.{1, 1} NNReal ENNReal (coeBase.{1, 1} NNReal ENNReal ENNReal.hasCoe))) r) (Top.top.{0} ENNReal (CompleteLattice.toHasTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder)))))) -> (Measurable.{0, u1} (Prod.{0, 0} ENNReal ENNReal) β (Prod.instMeasurableSpace.{0, 0} ENNReal ENNReal ENNReal.measurableSpace ENNReal.measurableSpace) _inst_2 f)
+but is expected to have type
+ forall {β : Type.{u1}} [_inst_2 : MeasurableSpace.{u1} β] {f : (Prod.{0, 0} ENNReal ENNReal) -> β}, (Measurable.{0, u1} (Prod.{0, 0} NNReal NNReal) β (Prod.instMeasurableSpace.{0, 0} NNReal NNReal NNReal.measurableSpace NNReal.measurableSpace) _inst_2 (fun (p : Prod.{0, 0} NNReal NNReal) => f (Prod.mk.{0, 0} ENNReal ENNReal (ENNReal.some (Prod.fst.{0, 0} NNReal NNReal p)) (ENNReal.some (Prod.snd.{0, 0} NNReal NNReal p))))) -> (Measurable.{0, u1} NNReal β NNReal.measurableSpace _inst_2 (fun (r : NNReal) => f (Prod.mk.{0, 0} ENNReal ENNReal (Top.top.{0} ENNReal (CompleteLattice.toTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal))) (ENNReal.some r)))) -> (Measurable.{0, u1} NNReal β NNReal.measurableSpace _inst_2 (fun (r : NNReal) => f (Prod.mk.{0, 0} ENNReal ENNReal (ENNReal.some r) (Top.top.{0} ENNReal (CompleteLattice.toTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal)))))) -> (Measurable.{0, u1} (Prod.{0, 0} ENNReal ENNReal) β (Prod.instMeasurableSpace.{0, 0} ENNReal ENNReal ENNReal.measurableSpace ENNReal.measurableSpace) _inst_2 f)
+Case conversion may be inaccurate. Consider using '#align ennreal.measurable_of_measurable_nnreal_nnreal ENNReal.measurable_of_measurable_nnreal_nnrealₓ'. -/
+theorem measurable_of_measurable_nnreal_nnreal [MeasurableSpace β] {f : ℝ≥0∞ × ℝ≥0∞ → β}
(h₁ : Measurable fun p : ℝ≥0 × ℝ≥0 => f (p.1, p.2)) (h₂ : Measurable fun r : ℝ≥0 => f (∞, r))
(h₃ : Measurable fun r : ℝ≥0 => f (r, ∞)) : Measurable f :=
- measurable_of_measurable_nNReal_prod
- (measurable_swap_iff.1 <| measurable_of_measurable_nNReal_prod (h₁.comp measurable_swap) h₃)
- (measurable_of_measurable_nNReal h₂)
-#align ennreal.measurable_of_measurable_nnreal_nnreal ENNReal.measurable_of_measurable_nNReal_nNReal
+ measurable_of_measurable_nnreal_prod
+ (measurable_swap_iff.1 <| measurable_of_measurable_nnreal_prod (h₁.comp measurable_swap) h₃)
+ (measurable_of_measurable_nnreal h₂)
+#align ennreal.measurable_of_measurable_nnreal_nnreal ENNReal.measurable_of_measurable_nnreal_nnreal
+#print ENNReal.measurable_ofReal /-
@[measurability]
theorem measurable_ofReal : Measurable ENNReal.ofReal :=
ENNReal.continuous_ofReal.Measurable
#align ennreal.measurable_of_real ENNReal.measurable_ofReal
+-/
+#print ENNReal.measurable_toReal /-
@[measurability]
theorem measurable_toReal : Measurable ENNReal.toReal :=
- ENNReal.measurable_of_measurable_nNReal measurable_coe_nNReal_real
+ ENNReal.measurable_of_measurable_nnreal measurable_coe_nnreal_real
#align ennreal.measurable_to_real ENNReal.measurable_toReal
+-/
+#print ENNReal.measurable_toNNReal /-
@[measurability]
theorem measurable_toNNReal : Measurable ENNReal.toNNReal :=
- ENNReal.measurable_of_measurable_nNReal measurable_id
+ ENNReal.measurable_of_measurable_nnreal measurable_id
#align ennreal.measurable_to_nnreal ENNReal.measurable_toNNReal
+-/
instance : MeasurableMul₂ ℝ≥0∞ :=
by
@@ -1960,199 +2781,285 @@ instance : MeasurableInv ℝ≥0∞ :=
end ENNReal
+#print Measurable.ennreal_toNNReal /-
@[measurability]
-theorem Measurable.eNNReal_toNNReal {f : α → ℝ≥0∞} (hf : Measurable f) :
+theorem Measurable.ennreal_toNNReal {f : α → ℝ≥0∞} (hf : Measurable f) :
Measurable fun x => (f x).toNNReal :=
ENNReal.measurable_toNNReal.comp hf
-#align measurable.ennreal_to_nnreal Measurable.eNNReal_toNNReal
+#align measurable.ennreal_to_nnreal Measurable.ennreal_toNNReal
+-/
+#print AEMeasurable.ennreal_toNNReal /-
@[measurability]
-theorem AEMeasurable.eNNReal_toNNReal {f : α → ℝ≥0∞} {μ : Measure α} (hf : AEMeasurable f μ) :
+theorem AEMeasurable.ennreal_toNNReal {f : α → ℝ≥0∞} {μ : Measure α} (hf : AEMeasurable f μ) :
AEMeasurable (fun x => (f x).toNNReal) μ :=
ENNReal.measurable_toNNReal.comp_aemeasurable hf
-#align ae_measurable.ennreal_to_nnreal AEMeasurable.eNNReal_toNNReal
+#align ae_measurable.ennreal_to_nnreal AEMeasurable.ennreal_toNNReal
+-/
+#print measurable_coe_nnreal_ennreal_iff /-
@[simp, norm_cast]
-theorem measurable_coe_nNReal_eNNReal_iff {f : α → ℝ≥0} :
+theorem measurable_coe_nnreal_ennreal_iff {f : α → ℝ≥0} :
(Measurable fun x => (f x : ℝ≥0∞)) ↔ Measurable f :=
- ⟨fun h => h.eNNReal_toNNReal, fun h => h.coe_nNReal_eNNReal⟩
-#align measurable_coe_nnreal_ennreal_iff measurable_coe_nNReal_eNNReal_iff
+ ⟨fun h => h.ennreal_toNNReal, fun h => h.coe_nnreal_ennreal⟩
+#align measurable_coe_nnreal_ennreal_iff measurable_coe_nnreal_ennreal_iff
+-/
+#print aemeasurable_coe_nnreal_ennreal_iff /-
@[simp, norm_cast]
-theorem aEMeasurable_coe_nNReal_eNNReal_iff {f : α → ℝ≥0} {μ : Measure α} :
+theorem aemeasurable_coe_nnreal_ennreal_iff {f : α → ℝ≥0} {μ : Measure α} :
AEMeasurable (fun x => (f x : ℝ≥0∞)) μ ↔ AEMeasurable f μ :=
- ⟨fun h => h.eNNReal_toNNReal, fun h => h.coe_nNReal_eNNReal⟩
-#align ae_measurable_coe_nnreal_ennreal_iff aEMeasurable_coe_nNReal_eNNReal_iff
+ ⟨fun h => h.ennreal_toNNReal, fun h => h.coe_nnreal_ennreal⟩
+#align ae_measurable_coe_nnreal_ennreal_iff aemeasurable_coe_nnreal_ennreal_iff
+-/
+#print Measurable.ennreal_toReal /-
@[measurability]
-theorem Measurable.eNNReal_toReal {f : α → ℝ≥0∞} (hf : Measurable f) :
+theorem Measurable.ennreal_toReal {f : α → ℝ≥0∞} (hf : Measurable f) :
Measurable fun x => ENNReal.toReal (f x) :=
ENNReal.measurable_toReal.comp hf
-#align measurable.ennreal_to_real Measurable.eNNReal_toReal
+#align measurable.ennreal_to_real Measurable.ennreal_toReal
+-/
+#print AEMeasurable.ennreal_toReal /-
@[measurability]
-theorem AEMeasurable.eNNReal_toReal {f : α → ℝ≥0∞} {μ : Measure α} (hf : AEMeasurable f μ) :
+theorem AEMeasurable.ennreal_toReal {f : α → ℝ≥0∞} {μ : Measure α} (hf : AEMeasurable f μ) :
AEMeasurable (fun x => ENNReal.toReal (f x)) μ :=
ENNReal.measurable_toReal.comp_aemeasurable hf
-#align ae_measurable.ennreal_to_real AEMeasurable.eNNReal_toReal
+#align ae_measurable.ennreal_to_real AEMeasurable.ennreal_toReal
+-/
+/- warning: measurable.ennreal_tsum -> Measurable.ennreal_tsum is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {ι : Type.{u2}} [_inst_2 : Countable.{succ u2} ι] {f : ι -> α -> ENNReal}, (forall (i : ι), Measurable.{u1, 0} α ENNReal _inst_1 ENNReal.measurableSpace (f i)) -> (Measurable.{u1, 0} α ENNReal _inst_1 ENNReal.measurableSpace (fun (x : α) => tsum.{0, u2} ENNReal (OrderedAddCommMonoid.toAddCommMonoid.{0} ENNReal (OrderedSemiring.toOrderedAddCommMonoid.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring)))) ENNReal.topologicalSpace ι (fun (i : ι) => f i x)))
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {ι : Type.{u2}} [_inst_2 : Countable.{succ u2} ι] {f : ι -> α -> ENNReal}, (forall (i : ι), Measurable.{u1, 0} α ENNReal _inst_1 ENNReal.measurableSpace (f i)) -> (Measurable.{u1, 0} α ENNReal _inst_1 ENNReal.measurableSpace (fun (x : α) => tsum.{0, u2} ENNReal (LinearOrderedAddCommMonoid.toAddCommMonoid.{0} ENNReal (LinearOrderedAddCommMonoidWithTop.toLinearOrderedAddCommMonoid.{0} ENNReal ENNReal.instLinearOrderedAddCommMonoidWithTopENNReal)) ENNReal.instTopologicalSpaceENNReal ι (fun (i : ι) => f i x)))
+Case conversion may be inaccurate. Consider using '#align measurable.ennreal_tsum Measurable.ennreal_tsumₓ'. -/
/-- note: `ℝ≥0∞` can probably be generalized in a future version of this lemma. -/
@[measurability]
-theorem Measurable.eNNReal_tsum {ι} [Countable ι] {f : ι → α → ℝ≥0∞} (h : ∀ i, Measurable (f i)) :
+theorem Measurable.ennreal_tsum {ι} [Countable ι] {f : ι → α → ℝ≥0∞} (h : ∀ i, Measurable (f i)) :
Measurable fun x => ∑' i, f i x :=
by
simp_rw [ENNReal.tsum_eq_iSup_sum]
apply measurable_iSup
exact fun s => s.measurable_sum fun i _ => h i
-#align measurable.ennreal_tsum Measurable.eNNReal_tsum
+#align measurable.ennreal_tsum Measurable.ennreal_tsum
+/- warning: measurable.ennreal_tsum' -> Measurable.ennreal_tsum' is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {ι : Type.{u2}} [_inst_2 : Countable.{succ u2} ι] {f : ι -> α -> ENNReal}, (forall (i : ι), Measurable.{u1, 0} α ENNReal _inst_1 ENNReal.measurableSpace (f i)) -> (Measurable.{u1, 0} α ENNReal _inst_1 ENNReal.measurableSpace (tsum.{u1, u2} (α -> ENNReal) (Pi.addCommMonoid.{u1, 0} α (fun (ᾰ : α) => ENNReal) (fun (i : α) => OrderedAddCommMonoid.toAddCommMonoid.{0} ENNReal (OrderedSemiring.toOrderedAddCommMonoid.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring))))) (Pi.topologicalSpace.{u1, 0} α (fun (ᾰ : α) => ENNReal) (fun (a : α) => ENNReal.topologicalSpace)) ι (fun (i : ι) => f i)))
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {ι : Type.{u2}} [_inst_2 : Countable.{succ u2} ι] {f : ι -> α -> ENNReal}, (forall (i : ι), Measurable.{u1, 0} α ENNReal _inst_1 ENNReal.measurableSpace (f i)) -> (Measurable.{u1, 0} α ENNReal _inst_1 ENNReal.measurableSpace (tsum.{u1, u2} (α -> ENNReal) (Pi.addCommMonoid.{u1, 0} α (fun (ᾰ : α) => ENNReal) (fun (i : α) => LinearOrderedAddCommMonoid.toAddCommMonoid.{0} ENNReal (LinearOrderedAddCommMonoidWithTop.toLinearOrderedAddCommMonoid.{0} ENNReal ENNReal.instLinearOrderedAddCommMonoidWithTopENNReal))) (Pi.topologicalSpace.{u1, 0} α (fun (ᾰ : α) => ENNReal) (fun (a : α) => ENNReal.instTopologicalSpaceENNReal)) ι (fun (i : ι) => f i)))
+Case conversion may be inaccurate. Consider using '#align measurable.ennreal_tsum' Measurable.ennreal_tsum'ₓ'. -/
@[measurability]
-theorem Measurable.eNNReal_tsum' {ι} [Countable ι] {f : ι → α → ℝ≥0∞} (h : ∀ i, Measurable (f i)) :
+theorem Measurable.ennreal_tsum' {ι} [Countable ι] {f : ι → α → ℝ≥0∞} (h : ∀ i, Measurable (f i)) :
Measurable (∑' i, f i) := by
- convert Measurable.eNNReal_tsum h
+ convert Measurable.ennreal_tsum h
ext1 x
exact tsum_apply (Pi.summable.2 fun _ => ENNReal.summable)
-#align measurable.ennreal_tsum' Measurable.eNNReal_tsum'
+#align measurable.ennreal_tsum' Measurable.ennreal_tsum'
+/- warning: measurable.nnreal_tsum -> Measurable.nnreal_tsum is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {ι : Type.{u2}} [_inst_2 : Countable.{succ u2} ι] {f : ι -> α -> NNReal}, (forall (i : ι), Measurable.{u1, 0} α NNReal _inst_1 NNReal.measurableSpace (f i)) -> (Measurable.{u1, 0} α NNReal _inst_1 NNReal.measurableSpace (fun (x : α) => tsum.{0, u2} NNReal (OrderedCancelAddCommMonoid.toAddCommMonoid.{0} NNReal (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} NNReal NNReal.strictOrderedSemiring)) NNReal.topologicalSpace ι (fun (i : ι) => f i x)))
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {ι : Type.{u2}} [_inst_2 : Countable.{succ u2} ι] {f : ι -> α -> NNReal}, (forall (i : ι), Measurable.{u1, 0} α NNReal _inst_1 NNReal.measurableSpace (f i)) -> (Measurable.{u1, 0} α NNReal _inst_1 NNReal.measurableSpace (fun (x : α) => tsum.{0, u2} NNReal (OrderedCancelAddCommMonoid.toAddCommMonoid.{0} NNReal (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} NNReal instNNRealStrictOrderedSemiring)) NNReal.instTopologicalSpaceNNReal ι (fun (i : ι) => f i x)))
+Case conversion may be inaccurate. Consider using '#align measurable.nnreal_tsum Measurable.nnreal_tsumₓ'. -/
@[measurability]
-theorem Measurable.nNReal_tsum {ι} [Countable ι] {f : ι → α → ℝ≥0} (h : ∀ i, Measurable (f i)) :
+theorem Measurable.nnreal_tsum {ι} [Countable ι] {f : ι → α → ℝ≥0} (h : ∀ i, Measurable (f i)) :
Measurable fun x => ∑' i, f i x :=
by
simp_rw [NNReal.tsum_eq_toNNReal_tsum]
- exact (Measurable.eNNReal_tsum fun i => (h i).coe_nNReal_eNNReal).eNNReal_toNNReal
-#align measurable.nnreal_tsum Measurable.nNReal_tsum
+ exact (Measurable.ennreal_tsum fun i => (h i).coe_nnreal_ennreal).ennreal_toNNReal
+#align measurable.nnreal_tsum Measurable.nnreal_tsum
+/- warning: ae_measurable.ennreal_tsum -> AEMeasurable.ennreal_tsum is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {ι : Type.{u2}} [_inst_2 : Countable.{succ u2} ι] {f : ι -> α -> ENNReal} {μ : MeasureTheory.Measure.{u1} α _inst_1}, (forall (i : ι), AEMeasurable.{u1, 0} α ENNReal ENNReal.measurableSpace _inst_1 (f i) μ) -> (AEMeasurable.{u1, 0} α ENNReal ENNReal.measurableSpace _inst_1 (fun (x : α) => tsum.{0, u2} ENNReal (OrderedAddCommMonoid.toAddCommMonoid.{0} ENNReal (OrderedSemiring.toOrderedAddCommMonoid.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring)))) ENNReal.topologicalSpace ι (fun (i : ι) => f i x)) μ)
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {ι : Type.{u2}} [_inst_2 : Countable.{succ u2} ι] {f : ι -> α -> ENNReal} {μ : MeasureTheory.Measure.{u1} α _inst_1}, (forall (i : ι), AEMeasurable.{u1, 0} α ENNReal ENNReal.measurableSpace _inst_1 (f i) μ) -> (AEMeasurable.{u1, 0} α ENNReal ENNReal.measurableSpace _inst_1 (fun (x : α) => tsum.{0, u2} ENNReal (LinearOrderedAddCommMonoid.toAddCommMonoid.{0} ENNReal (LinearOrderedAddCommMonoidWithTop.toLinearOrderedAddCommMonoid.{0} ENNReal ENNReal.instLinearOrderedAddCommMonoidWithTopENNReal)) ENNReal.instTopologicalSpaceENNReal ι (fun (i : ι) => f i x)) μ)
+Case conversion may be inaccurate. Consider using '#align ae_measurable.ennreal_tsum AEMeasurable.ennreal_tsumₓ'. -/
@[measurability]
-theorem AEMeasurable.eNNReal_tsum {ι} [Countable ι] {f : ι → α → ℝ≥0∞} {μ : Measure α}
+theorem AEMeasurable.ennreal_tsum {ι} [Countable ι] {f : ι → α → ℝ≥0∞} {μ : Measure α}
(h : ∀ i, AEMeasurable (f i) μ) : AEMeasurable (fun x => ∑' i, f i x) μ :=
by
simp_rw [ENNReal.tsum_eq_iSup_sum]
- apply aEMeasurable_iSup
+ apply aemeasurable_iSup
exact fun s => Finset.aemeasurable_sum s fun i _ => h i
-#align ae_measurable.ennreal_tsum AEMeasurable.eNNReal_tsum
+#align ae_measurable.ennreal_tsum AEMeasurable.ennreal_tsum
+/- warning: ae_measurable.nnreal_tsum -> AEMeasurable.nnreal_tsum is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_2 : MeasurableSpace.{u1} α] {ι : Type.{u2}} [_inst_3 : Countable.{succ u2} ι] {f : ι -> α -> NNReal} {μ : MeasureTheory.Measure.{u1} α _inst_2}, (forall (i : ι), AEMeasurable.{u1, 0} α NNReal NNReal.measurableSpace _inst_2 (f i) μ) -> (AEMeasurable.{u1, 0} α NNReal NNReal.measurableSpace _inst_2 (fun (x : α) => tsum.{0, u2} NNReal (OrderedCancelAddCommMonoid.toAddCommMonoid.{0} NNReal (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} NNReal NNReal.strictOrderedSemiring)) NNReal.topologicalSpace ι (fun (i : ι) => f i x)) μ)
+but is expected to have type
+ forall {α : Type.{u2}} [_inst_2 : MeasurableSpace.{u2} α] {ι : Type.{u1}} [_inst_3 : Countable.{succ u1} ι] {f : ι -> α -> NNReal} {μ : MeasureTheory.Measure.{u2} α _inst_2}, (forall (i : ι), AEMeasurable.{u2, 0} α NNReal NNReal.measurableSpace _inst_2 (f i) μ) -> (AEMeasurable.{u2, 0} α NNReal NNReal.measurableSpace _inst_2 (fun (x : α) => tsum.{0, u1} NNReal (OrderedCancelAddCommMonoid.toAddCommMonoid.{0} NNReal (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} NNReal instNNRealStrictOrderedSemiring)) NNReal.instTopologicalSpaceNNReal ι (fun (i : ι) => f i x)) μ)
+Case conversion may be inaccurate. Consider using '#align ae_measurable.nnreal_tsum AEMeasurable.nnreal_tsumₓ'. -/
@[measurability]
-theorem AEMeasurable.nNReal_tsum {α : Type _} [MeasurableSpace α] {ι : Type _} [Countable ι]
+theorem AEMeasurable.nnreal_tsum {α : Type _} [MeasurableSpace α] {ι : Type _} [Countable ι]
{f : ι → α → NNReal} {μ : MeasureTheory.Measure α} (h : ∀ i : ι, AEMeasurable (f i) μ) :
AEMeasurable (fun x : α => ∑' i : ι, f i x) μ :=
by
simp_rw [NNReal.tsum_eq_toNNReal_tsum]
- exact (AEMeasurable.eNNReal_tsum fun i => (h i).coe_nNReal_eNNReal).eNNReal_toNNReal
-#align ae_measurable.nnreal_tsum AEMeasurable.nNReal_tsum
+ exact (AEMeasurable.ennreal_tsum fun i => (h i).coe_nnreal_ennreal).ennreal_toNNReal
+#align ae_measurable.nnreal_tsum AEMeasurable.nnreal_tsum
+#print measurable_coe_real_ereal /-
@[measurability]
-theorem measurable_coe_real_eReal : Measurable (coe : ℝ → EReal) :=
+theorem measurable_coe_real_ereal : Measurable (coe : ℝ → EReal) :=
continuous_coe_real_ereal.Measurable
-#align measurable_coe_real_ereal measurable_coe_real_eReal
+#align measurable_coe_real_ereal measurable_coe_real_ereal
+-/
+#print Measurable.coe_real_ereal /-
@[measurability]
-theorem Measurable.coe_real_eReal {f : α → ℝ} (hf : Measurable f) :
+theorem Measurable.coe_real_ereal {f : α → ℝ} (hf : Measurable f) :
Measurable fun x => (f x : EReal) :=
- measurable_coe_real_eReal.comp hf
-#align measurable.coe_real_ereal Measurable.coe_real_eReal
+ measurable_coe_real_ereal.comp hf
+#align measurable.coe_real_ereal Measurable.coe_real_ereal
+-/
+#print AEMeasurable.coe_real_ereal /-
@[measurability]
-theorem AEMeasurable.coe_real_eReal {f : α → ℝ} {μ : Measure α} (hf : AEMeasurable f μ) :
+theorem AEMeasurable.coe_real_ereal {f : α → ℝ} {μ : Measure α} (hf : AEMeasurable f μ) :
AEMeasurable (fun x => (f x : EReal)) μ :=
- measurable_coe_real_eReal.comp_aemeasurable hf
-#align ae_measurable.coe_real_ereal AEMeasurable.coe_real_eReal
+ measurable_coe_real_ereal.comp_aemeasurable hf
+#align ae_measurable.coe_real_ereal AEMeasurable.coe_real_ereal
+-/
+/- warning: measurable_equiv.ereal_equiv_real -> MeasurableEquiv.erealEquivReal is a dubious translation:
+lean 3 declaration is
+ MeasurableEquiv.{0, 0} (coeSort.{1, 2} (Set.{0} EReal) Type (Set.hasCoeToSort.{0} EReal) (HasCompl.compl.{0} (Set.{0} EReal) (BooleanAlgebra.toHasCompl.{0} (Set.{0} EReal) (Set.booleanAlgebra.{0} EReal)) (Insert.insert.{0, 0} EReal (Set.{0} EReal) (Set.hasInsert.{0} EReal) (Bot.bot.{0} EReal EReal.hasBot) (Singleton.singleton.{0, 0} EReal (Set.{0} EReal) (Set.hasSingleton.{0} EReal) (Top.top.{0} EReal EReal.hasTop))))) Real (Subtype.instMeasurableSpace.{0} EReal (fun (x : EReal) => Membership.Mem.{0, 0} EReal (Set.{0} EReal) (Set.hasMem.{0} EReal) x (HasCompl.compl.{0} (Set.{0} EReal) (BooleanAlgebra.toHasCompl.{0} (Set.{0} EReal) (Set.booleanAlgebra.{0} EReal)) (Insert.insert.{0, 0} EReal (Set.{0} EReal) (Set.hasInsert.{0} EReal) (Bot.bot.{0} EReal EReal.hasBot) (Singleton.singleton.{0, 0} EReal (Set.{0} EReal) (Set.hasSingleton.{0} EReal) (Top.top.{0} EReal EReal.hasTop))))) EReal.measurableSpace) Real.measurableSpace
+but is expected to have type
+ MeasurableEquiv.{0, 0} (Set.Elem.{0} EReal (HasCompl.compl.{0} (Set.{0} EReal) (BooleanAlgebra.toHasCompl.{0} (Set.{0} EReal) (Set.instBooleanAlgebraSet.{0} EReal)) (Insert.insert.{0, 0} EReal (Set.{0} EReal) (Set.instInsertSet.{0} EReal) (Bot.bot.{0} EReal instERealBot) (Singleton.singleton.{0, 0} EReal (Set.{0} EReal) (Set.instSingletonSet.{0} EReal) (Top.top.{0} EReal EReal.instTopEReal))))) Real (Subtype.instMeasurableSpace.{0} EReal (fun (x : EReal) => Membership.mem.{0, 0} EReal (Set.{0} EReal) (Set.instMembershipSet.{0} EReal) x (HasCompl.compl.{0} (Set.{0} EReal) (BooleanAlgebra.toHasCompl.{0} (Set.{0} EReal) (Set.instBooleanAlgebraSet.{0} EReal)) (Insert.insert.{0, 0} EReal (Set.{0} EReal) (Set.instInsertSet.{0} EReal) (Bot.bot.{0} EReal instERealBot) (Singleton.singleton.{0, 0} EReal (Set.{0} EReal) (Set.instSingletonSet.{0} EReal) (Top.top.{0} EReal EReal.instTopEReal))))) EReal.measurableSpace) Real.measurableSpace
+Case conversion may be inaccurate. Consider using '#align measurable_equiv.ereal_equiv_real MeasurableEquiv.erealEquivRealₓ'. -/
/-- The set of finite `ereal` numbers is `measurable_equiv` to `ℝ`. -/
def MeasurableEquiv.erealEquivReal : ({⊥, ⊤}ᶜ : Set EReal) ≃ᵐ ℝ :=
EReal.neBotTopHomeomorphReal.toMeasurableEquiv
#align measurable_equiv.ereal_equiv_real MeasurableEquiv.erealEquivReal
+#print EReal.measurable_of_measurable_real /-
theorem EReal.measurable_of_measurable_real {f : EReal → α} (h : Measurable fun p : ℝ => f p) :
Measurable f :=
measurable_of_measurable_on_compl_finite {⊥, ⊤} (by simp)
(MeasurableEquiv.erealEquivReal.symm.measurable_comp_iff.1 h)
#align ereal.measurable_of_measurable_real EReal.measurable_of_measurable_real
+-/
+#print measurable_ereal_toReal /-
@[measurability]
-theorem measurable_eReal_toReal : Measurable EReal.toReal :=
+theorem measurable_ereal_toReal : Measurable EReal.toReal :=
EReal.measurable_of_measurable_real (by simpa using measurable_id)
-#align measurable_ereal_to_real measurable_eReal_toReal
+#align measurable_ereal_to_real measurable_ereal_toReal
+-/
+#print Measurable.ereal_toReal /-
@[measurability]
-theorem Measurable.eReal_toReal {f : α → EReal} (hf : Measurable f) :
+theorem Measurable.ereal_toReal {f : α → EReal} (hf : Measurable f) :
Measurable fun x => (f x).toReal :=
- measurable_eReal_toReal.comp hf
-#align measurable.ereal_to_real Measurable.eReal_toReal
+ measurable_ereal_toReal.comp hf
+#align measurable.ereal_to_real Measurable.ereal_toReal
+-/
+#print AEMeasurable.ereal_toReal /-
@[measurability]
-theorem AEMeasurable.eReal_toReal {f : α → EReal} {μ : Measure α} (hf : AEMeasurable f μ) :
+theorem AEMeasurable.ereal_toReal {f : α → EReal} {μ : Measure α} (hf : AEMeasurable f μ) :
AEMeasurable (fun x => (f x).toReal) μ :=
- measurable_eReal_toReal.comp_aemeasurable hf
-#align ae_measurable.ereal_to_real AEMeasurable.eReal_toReal
+ measurable_ereal_toReal.comp_aemeasurable hf
+#align ae_measurable.ereal_to_real AEMeasurable.ereal_toReal
+-/
+#print measurable_coe_ennreal_ereal /-
@[measurability]
-theorem measurable_coe_eNNReal_eReal : Measurable (coe : ℝ≥0∞ → EReal) :=
+theorem measurable_coe_ennreal_ereal : Measurable (coe : ℝ≥0∞ → EReal) :=
continuous_coe_ennreal_ereal.Measurable
-#align measurable_coe_ennreal_ereal measurable_coe_eNNReal_eReal
+#align measurable_coe_ennreal_ereal measurable_coe_ennreal_ereal
+-/
+#print Measurable.coe_ereal_ennreal /-
@[measurability]
-theorem Measurable.coe_eReal_eNNReal {f : α → ℝ≥0∞} (hf : Measurable f) :
+theorem Measurable.coe_ereal_ennreal {f : α → ℝ≥0∞} (hf : Measurable f) :
Measurable fun x => (f x : EReal) :=
- measurable_coe_eNNReal_eReal.comp hf
-#align measurable.coe_ereal_ennreal Measurable.coe_eReal_eNNReal
+ measurable_coe_ennreal_ereal.comp hf
+#align measurable.coe_ereal_ennreal Measurable.coe_ereal_ennreal
+-/
+#print AEMeasurable.coe_ereal_ennreal /-
@[measurability]
-theorem AEMeasurable.coe_eReal_eNNReal {f : α → ℝ≥0∞} {μ : Measure α} (hf : AEMeasurable f μ) :
+theorem AEMeasurable.coe_ereal_ennreal {f : α → ℝ≥0∞} {μ : Measure α} (hf : AEMeasurable f μ) :
AEMeasurable (fun x => (f x : EReal)) μ :=
- measurable_coe_eNNReal_eReal.comp_aemeasurable hf
-#align ae_measurable.coe_ereal_ennreal AEMeasurable.coe_eReal_eNNReal
+ measurable_coe_ennreal_ereal.comp_aemeasurable hf
+#align ae_measurable.coe_ereal_ennreal AEMeasurable.coe_ereal_ennreal
+-/
section NormedAddCommGroup
variable [NormedAddCommGroup α] [OpensMeasurableSpace α] [MeasurableSpace β]
+#print measurable_norm /-
@[measurability]
theorem measurable_norm : Measurable (norm : α → ℝ) :=
continuous_norm.Measurable
#align measurable_norm measurable_norm
+-/
+#print Measurable.norm /-
@[measurability]
theorem Measurable.norm {f : β → α} (hf : Measurable f) : Measurable fun a => norm (f a) :=
measurable_norm.comp hf
#align measurable.norm Measurable.norm
+-/
+#print AEMeasurable.norm /-
@[measurability]
theorem AEMeasurable.norm {f : β → α} {μ : Measure β} (hf : AEMeasurable f μ) :
AEMeasurable (fun a => norm (f a)) μ :=
measurable_norm.comp_aemeasurable hf
#align ae_measurable.norm AEMeasurable.norm
+-/
+#print measurable_nnnorm /-
@[measurability]
theorem measurable_nnnorm : Measurable (nnnorm : α → ℝ≥0) :=
continuous_nnnorm.Measurable
#align measurable_nnnorm measurable_nnnorm
+-/
+#print Measurable.nnnorm /-
@[measurability]
theorem Measurable.nnnorm {f : β → α} (hf : Measurable f) : Measurable fun a => ‖f a‖₊ :=
measurable_nnnorm.comp hf
#align measurable.nnnorm Measurable.nnnorm
+-/
+#print AEMeasurable.nnnorm /-
@[measurability]
theorem AEMeasurable.nnnorm {f : β → α} {μ : Measure β} (hf : AEMeasurable f μ) :
AEMeasurable (fun a => ‖f a‖₊) μ :=
measurable_nnnorm.comp_aemeasurable hf
#align ae_measurable.nnnorm AEMeasurable.nnnorm
+-/
+#print measurable_ennnorm /-
@[measurability]
theorem measurable_ennnorm : Measurable fun x : α => (‖x‖₊ : ℝ≥0∞) :=
- measurable_nnnorm.coe_nNReal_eNNReal
+ measurable_nnnorm.coe_nnreal_ennreal
#align measurable_ennnorm measurable_ennnorm
+-/
+#print Measurable.ennnorm /-
@[measurability]
theorem Measurable.ennnorm {f : β → α} (hf : Measurable f) : Measurable fun a => (‖f a‖₊ : ℝ≥0∞) :=
- hf.nnnorm.coe_nNReal_eNNReal
+ hf.nnnorm.coe_nnreal_ennreal
#align measurable.ennnorm Measurable.ennnorm
+-/
+#print AEMeasurable.ennnorm /-
@[measurability]
theorem AEMeasurable.ennnorm {f : β → α} {μ : Measure β} (hf : AEMeasurable f μ) :
AEMeasurable (fun a => (‖f a‖₊ : ℝ≥0∞)) μ :=
measurable_ennnorm.comp_aemeasurable hf
#align ae_measurable.ennnorm AEMeasurable.ennnorm
+-/
end NormedAddCommGroup
mathlib commit https://github.com/leanprover-community/mathlib/commit/c89fe2d59ae06402c3f55f978016d1ada444f57e
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Johannes Hölzl, Yury Kudryashov
! This file was ported from Lean 3 source module measure_theory.constructions.borel_space.basic
-! leanprover-community/mathlib commit bf6a01357ff5684b1ebcd0f1a13be314fc82c0bf
+! leanprover-community/mathlib commit 20d5763051978e9bc6428578ed070445df6a18b3
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -160,6 +160,24 @@ theorem borel_eq_generateFrom_Ioi : borel α = generateFrom (range Ioi) :=
@borel_eq_generateFrom_Iio αᵒᵈ _ (by infer_instance : SecondCountableTopology α) _ _
#align borel_eq_generate_from_Ioi borel_eq_generateFrom_Ioi
+theorem borel_eq_generateFrom_Iic : borel α = MeasurableSpace.generateFrom (range Iic) :=
+ by
+ rw [borel_eq_generateFrom_Ioi]
+ refine' le_antisymm _ _
+ · refine' MeasurableSpace.generateFrom_le fun t ht => _
+ obtain ⟨u, rfl⟩ := ht
+ rw [← compl_Iic]
+ exact (MeasurableSpace.measurableSet_generateFrom (mem_range.mpr ⟨u, rfl⟩)).compl
+ · refine' MeasurableSpace.generateFrom_le fun t ht => _
+ obtain ⟨u, rfl⟩ := ht
+ rw [← compl_Ioi]
+ exact (MeasurableSpace.measurableSet_generateFrom (mem_range.mpr ⟨u, rfl⟩)).compl
+#align borel_eq_generate_from_Iic borel_eq_generateFrom_Iic
+
+theorem borel_eq_generateFrom_Ici : borel α = MeasurableSpace.generateFrom (range Ici) :=
+ @borel_eq_generateFrom_Iic αᵒᵈ _ _ _ _
+#align borel_eq_generate_from_Ici borel_eq_generateFrom_Ici
+
end OrderTopology
theorem borel_comap {f : α → β} {t : TopologicalSpace β} :
mathlib commit https://github.com/leanprover-community/mathlib/commit/0b9eaaa7686280fad8cce467f5c3c57ee6ce77f8
@@ -3,25 +3,23 @@ Copyright (c) 2017 Johannes Hölzl. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Johannes Hölzl, Yury Kudryashov
-! This file was ported from Lean 3 source module measure_theory.constructions.borel_space
-! leanprover-community/mathlib commit 9c5398f2ded9f4ff733d3c7e2c90457b943fc4fc
+! This file was ported from Lean 3 source module measure_theory.constructions.borel_space.basic
+! leanprover-community/mathlib commit bf6a01357ff5684b1ebcd0f1a13be314fc82c0bf
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
-import Mathbin.Analysis.Complex.Basic
-import Mathbin.Analysis.NormedSpace.FiniteDimension
+import Mathbin.Analysis.Normed.Group.Basic
import Mathbin.MeasureTheory.Function.AeMeasurableSequence
import Mathbin.MeasureTheory.Group.Arithmetic
import Mathbin.MeasureTheory.Lattice
import Mathbin.MeasureTheory.Measure.OpenPos
import Mathbin.Topology.Algebra.Order.LiminfLimsup
import Mathbin.Topology.ContinuousFunction.Basic
-import Mathbin.Topology.Instances.AddCircle
import Mathbin.Topology.Instances.Ereal
+import Mathbin.Topology.MetricSpace.HausdorffDistance
import Mathbin.Topology.GDelta
import Mathbin.Topology.Order.Lattice
import Mathbin.Topology.Semicontinuous
-import Mathbin.Topology.MetricSpace.Metrizable
/-!
# Borel (measurable) space
@@ -1467,14 +1465,6 @@ instance Rat.borelSpace : BorelSpace ℚ :=
⟨borel_eq_top_of_countable.symm⟩
#align rat.borel_space Rat.borelSpace
-instance (priority := 900) IsROrC.measurableSpace {𝕜 : Type _} [IsROrC 𝕜] : MeasurableSpace 𝕜 :=
- borel 𝕜
-#align is_R_or_C.measurable_space IsROrC.measurableSpace
-
-instance (priority := 900) IsROrC.borelSpace {𝕜 : Type _} [IsROrC 𝕜] : BorelSpace 𝕜 :=
- ⟨rfl⟩
-#align is_R_or_C.borel_space IsROrC.borelSpace
-
/- Instances on `real` and `complex` are special cases of `is_R_or_C` but without these instances,
Lean fails to prove `borel_space (ι → ℝ)`, so we leave them here. -/
instance Real.measurableSpace : MeasurableSpace ℝ :=
@@ -1509,27 +1499,6 @@ instance EReal.borelSpace : BorelSpace EReal :=
⟨rfl⟩
#align ereal.borel_space EReal.borelSpace
-instance Complex.measurableSpace : MeasurableSpace ℂ :=
- borel ℂ
-#align complex.measurable_space Complex.measurableSpace
-
-instance Complex.borelSpace : BorelSpace ℂ :=
- ⟨rfl⟩
-#align complex.borel_space Complex.borelSpace
-
-instance AddCircle.measurableSpace {a : ℝ} : MeasurableSpace (AddCircle a) :=
- borel (AddCircle a)
-#align add_circle.measurable_space AddCircle.measurableSpace
-
-instance AddCircle.borelSpace {a : ℝ} : BorelSpace (AddCircle a) :=
- ⟨rfl⟩
-#align add_circle.borel_space AddCircle.borelSpace
-
-@[measurability]
-protected theorem AddCircle.measurable_mk' {a : ℝ} : Measurable (coe : ℝ → AddCircle a) :=
- Continuous.measurable <| AddCircle.continuous_mk' a
-#align add_circle.measurable_mk' AddCircle.measurable_mk'
-
/-- One can cut out `ℝ≥0∞` into the sets `{0}`, `Ico (t^n) (t^(n+1))` for `n : ℤ` and `{∞}`. This
gives a way to compute the measure of a set in terms of sets on which a given function `f` does not
fluctuate by more than `t`. -/
@@ -2169,262 +2138,3 @@ theorem AEMeasurable.ennnorm {f : β → α} {μ : Measure β} (hf : AEMeasurabl
end NormedAddCommGroup
-section Limits
-
-variable [TopologicalSpace β] [PseudoMetrizableSpace β] [MeasurableSpace β] [BorelSpace β]
-
-open Metric
-
-/-- A limit (over a general filter) of measurable `ℝ≥0∞` valued functions is measurable. -/
-theorem measurable_of_tendsto_ennreal' {ι} {f : ι → α → ℝ≥0∞} {g : α → ℝ≥0∞} (u : Filter ι)
- [NeBot u] [IsCountablyGenerated u] (hf : ∀ i, Measurable (f i)) (lim : Tendsto f u (𝓝 g)) :
- Measurable g := by
- rcases u.exists_seq_tendsto with ⟨x, hx⟩
- rw [tendsto_pi_nhds] at lim
- have : (fun y => liminf (fun n => (f (x n) y : ℝ≥0∞)) at_top) = g :=
- by
- ext1 y
- exact ((limUnder y).comp hx).liminf_eq
- rw [← this]
- show Measurable fun y => liminf (fun n => (f (x n) y : ℝ≥0∞)) at_top
- exact measurable_liminf fun n => hf (x n)
-#align measurable_of_tendsto_ennreal' measurable_of_tendsto_ennreal'
-
-/-- A sequential limit of measurable `ℝ≥0∞` valued functions is measurable. -/
-theorem measurable_of_tendsto_eNNReal {f : ℕ → α → ℝ≥0∞} {g : α → ℝ≥0∞} (hf : ∀ i, Measurable (f i))
- (lim : Tendsto f atTop (𝓝 g)) : Measurable g :=
- measurable_of_tendsto_ennreal' atTop hf limUnder
-#align measurable_of_tendsto_ennreal measurable_of_tendsto_eNNReal
-
-/-- A limit (over a general filter) of measurable `ℝ≥0` valued functions is measurable. -/
-theorem measurable_of_tendsto_nnreal' {ι} {f : ι → α → ℝ≥0} {g : α → ℝ≥0} (u : Filter ι) [NeBot u]
- [IsCountablyGenerated u] (hf : ∀ i, Measurable (f i)) (lim : Tendsto f u (𝓝 g)) :
- Measurable g := by
- simp_rw [← measurable_coe_nNReal_eNNReal_iff] at hf⊢
- refine' measurable_of_tendsto_ennreal' u hf _
- rw [tendsto_pi_nhds] at lim⊢
- exact fun x => (ennreal.continuous_coe.tendsto (g x)).comp (limUnder x)
-#align measurable_of_tendsto_nnreal' measurable_of_tendsto_nnreal'
-
-/-- A sequential limit of measurable `ℝ≥0` valued functions is measurable. -/
-theorem measurable_of_tendsto_nNReal {f : ℕ → α → ℝ≥0} {g : α → ℝ≥0} (hf : ∀ i, Measurable (f i))
- (lim : Tendsto f atTop (𝓝 g)) : Measurable g :=
- measurable_of_tendsto_nnreal' atTop hf limUnder
-#align measurable_of_tendsto_nnreal measurable_of_tendsto_nNReal
-
-/-- A limit (over a general filter) of measurable functions valued in a (pseudo) metrizable space is
-measurable. -/
-theorem measurable_of_tendsto_metrizable' {ι} {f : ι → α → β} {g : α → β} (u : Filter ι) [NeBot u]
- [IsCountablyGenerated u] (hf : ∀ i, Measurable (f i)) (lim : Tendsto f u (𝓝 g)) :
- Measurable g :=
- by
- letI : PseudoMetricSpace β := pseudo_metrizable_space_pseudo_metric β
- apply measurable_of_is_closed'
- intro s h1s h2s h3s
- have : Measurable fun x => inf_nndist (g x) s :=
- by
- suffices : tendsto (fun i x => inf_nndist (f i x) s) u (𝓝 fun x => inf_nndist (g x) s)
- exact measurable_of_tendsto_nnreal' u (fun i => (hf i).infNndist) this
- rw [tendsto_pi_nhds] at lim⊢
- intro x
- exact ((continuous_inf_nndist_pt s).Tendsto (g x)).comp (limUnder x)
- have h4s : g ⁻¹' s = (fun x => inf_nndist (g x) s) ⁻¹' {0} :=
- by
- ext x
- simp [h1s, ← h1s.mem_iff_inf_dist_zero h2s, ← NNReal.coe_eq_zero]
- rw [h4s]
- exact this (measurable_set_singleton 0)
-#align measurable_of_tendsto_metrizable' measurable_of_tendsto_metrizable'
-
-/-- A sequential limit of measurable functions valued in a (pseudo) metrizable space is
-measurable. -/
-theorem measurable_of_tendsto_metrizable {f : ℕ → α → β} {g : α → β} (hf : ∀ i, Measurable (f i))
- (lim : Tendsto f atTop (𝓝 g)) : Measurable g :=
- measurable_of_tendsto_metrizable' atTop hf limUnder
-#align measurable_of_tendsto_metrizable measurable_of_tendsto_metrizable
-
-theorem aEMeasurable_of_tendsto_metrizable_ae {ι} {μ : Measure α} {f : ι → α → β} {g : α → β}
- (u : Filter ι) [hu : NeBot u] [IsCountablyGenerated u] (hf : ∀ n, AEMeasurable (f n) μ)
- (h_tendsto : ∀ᵐ x ∂μ, Tendsto (fun n => f n x) u (𝓝 (g x))) : AEMeasurable g μ :=
- by
- rcases u.exists_seq_tendsto with ⟨v, hv⟩
- have h'f : ∀ n, AEMeasurable (f (v n)) μ := fun n => hf (v n)
- set p : α → (ℕ → β) → Prop := fun x f' => tendsto (fun n => f' n) at_top (𝓝 (g x))
- have hp : ∀ᵐ x ∂μ, p x fun n => f (v n) x := by
- filter_upwards [h_tendsto]with x hx using hx.comp hv
- set ae_seq_lim := fun x => ite (x ∈ aeSeqSet h'f p) (g x) (⟨f (v 0) x⟩ : Nonempty β).some with hs
- refine'
- ⟨ae_seq_lim,
- measurable_of_tendsto_metrizable' at_top (aeSeq.measurable h'f p)
- (tendsto_pi_nhds.mpr fun x => _),
- _⟩
- · simp_rw [aeSeq, ae_seq_lim]
- split_ifs with hx
- · simp_rw [aeSeq.mk_eq_fun_of_mem_aeSeqSet h'f hx]
- exact @aeSeq.fun_prop_of_mem_aeSeqSet _ α β _ _ _ _ _ h'f x hx
- · exact tendsto_const_nhds
- ·
- exact
- (ite_ae_eq_of_measure_compl_zero g (fun x => (⟨f (v 0) x⟩ : Nonempty β).some) (aeSeqSet h'f p)
- (aeSeq.measure_compl_aeSeqSet_eq_zero h'f hp)).symm
-#align ae_measurable_of_tendsto_metrizable_ae aEMeasurable_of_tendsto_metrizable_ae
-
-theorem aEMeasurable_of_tendsto_metrizable_ae' {μ : Measure α} {f : ℕ → α → β} {g : α → β}
- (hf : ∀ n, AEMeasurable (f n) μ)
- (h_ae_tendsto : ∀ᵐ x ∂μ, Tendsto (fun n => f n x) atTop (𝓝 (g x))) : AEMeasurable g μ :=
- aEMeasurable_of_tendsto_metrizable_ae atTop hf h_ae_tendsto
-#align ae_measurable_of_tendsto_metrizable_ae' aEMeasurable_of_tendsto_metrizable_ae'
-
-theorem aEMeasurable_of_unif_approx {β} [MeasurableSpace β] [PseudoMetricSpace β] [BorelSpace β]
- {μ : Measure α} {g : α → β}
- (hf : ∀ ε > (0 : ℝ), ∃ f : α → β, AEMeasurable f μ ∧ ∀ᵐ x ∂μ, dist (f x) (g x) ≤ ε) :
- AEMeasurable g μ :=
- by
- obtain ⟨u, u_anti, u_pos, u_lim⟩ :
- ∃ u : ℕ → ℝ, StrictAnti u ∧ (∀ n : ℕ, 0 < u n) ∧ tendsto u at_top (𝓝 0) :=
- exists_seq_strictAnti_tendsto (0 : ℝ)
- choose f Hf using fun n : ℕ => hf (u n) (u_pos n)
- have : ∀ᵐ x ∂μ, tendsto (fun n => f n x) at_top (𝓝 (g x)) :=
- by
- have : ∀ᵐ x ∂μ, ∀ n, dist (f n x) (g x) ≤ u n := ae_all_iff.2 fun n => (Hf n).2
- filter_upwards [this]
- intro x hx
- rw [tendsto_iff_dist_tendsto_zero]
- exact squeeze_zero (fun n => dist_nonneg) hx u_lim
- exact aEMeasurable_of_tendsto_metrizable_ae' (fun n => (Hf n).1) this
-#align ae_measurable_of_unif_approx aEMeasurable_of_unif_approx
-
-theorem measurable_of_tendsto_metrizable_ae {μ : Measure α} [μ.IsComplete] {f : ℕ → α → β}
- {g : α → β} (hf : ∀ n, Measurable (f n))
- (h_ae_tendsto : ∀ᵐ x ∂μ, Tendsto (fun n => f n x) atTop (𝓝 (g x))) : Measurable g :=
- aemeasurable_iff_measurable.mp
- (aEMeasurable_of_tendsto_metrizable_ae' (fun i => (hf i).AEMeasurable) h_ae_tendsto)
-#align measurable_of_tendsto_metrizable_ae measurable_of_tendsto_metrizable_ae
-
-theorem measurable_limit_of_tendsto_metrizable_ae {ι} [Countable ι] [Nonempty ι] {μ : Measure α}
- {f : ι → α → β} {L : Filter ι} [L.IsCountablyGenerated] (hf : ∀ n, AEMeasurable (f n) μ)
- (h_ae_tendsto : ∀ᵐ x ∂μ, ∃ l : β, Tendsto (fun n => f n x) L (𝓝 l)) :
- ∃ (f_lim : α → β)(hf_lim_meas : Measurable f_lim),
- ∀ᵐ x ∂μ, Tendsto (fun n => f n x) L (𝓝 (f_lim x)) :=
- by
- inhabit ι
- rcases eq_or_ne L ⊥ with (rfl | hL)
- · exact ⟨(hf default).mk _, (hf default).measurable_mk, eventually_of_forall fun x => tendsto_bot⟩
- haveI : ne_bot L := ⟨hL⟩
- let p : α → (ι → β) → Prop := fun x f' => ∃ l : β, tendsto (fun n => f' n) L (𝓝 l)
- have hp_mem : ∀ x ∈ aeSeqSet hf p, p x fun n => f n x := fun x hx =>
- aeSeq.fun_prop_of_mem_aeSeqSet hf hx
- have h_ae_eq : ∀ᵐ x ∂μ, ∀ n, aeSeq hf p n x = f n x := aeSeq.aeSeq_eq_fun_ae hf h_ae_tendsto
- let f_lim : α → β := fun x =>
- dite (x ∈ aeSeqSet hf p) (fun h => (hp_mem x h).some) fun h => (⟨f default x⟩ : Nonempty β).some
- have hf_lim : ∀ x, tendsto (fun n => aeSeq hf p n x) L (𝓝 (f_lim x)) :=
- by
- intro x
- simp only [f_lim, aeSeq]
- split_ifs
- · refine' (hp_mem x h).choose_spec.congr fun n => _
- exact (aeSeq.mk_eq_fun_of_mem_aeSeqSet hf h n).symm
- · exact tendsto_const_nhds
- have h_ae_tendsto_f_lim : ∀ᵐ x ∂μ, tendsto (fun n => f n x) L (𝓝 (f_lim x)) :=
- h_ae_eq.mono fun x hx => (hf_lim x).congr hx
- have h_f_lim_meas : Measurable f_lim :=
- measurable_of_tendsto_metrizable' L (aeSeq.measurable hf p)
- (tendsto_pi_nhds.mpr fun x => hf_lim x)
- exact ⟨f_lim, h_f_lim_meas, h_ae_tendsto_f_lim⟩
-#align measurable_limit_of_tendsto_metrizable_ae measurable_limit_of_tendsto_metrizable_ae
-
-end Limits
-
-namespace ContinuousLinearMap
-
-variable {𝕜 : Type _} [NormedField 𝕜]
-
-variable {E : Type _} [NormedAddCommGroup E] [NormedSpace 𝕜 E] [MeasurableSpace E]
- [OpensMeasurableSpace E] {F : Type _} [NormedAddCommGroup F] [NormedSpace 𝕜 F] [MeasurableSpace F]
- [BorelSpace F]
-
-@[measurability]
-protected theorem measurable (L : E →L[𝕜] F) : Measurable L :=
- L.Continuous.Measurable
-#align continuous_linear_map.measurable ContinuousLinearMap.measurable
-
-theorem measurable_comp (L : E →L[𝕜] F) {φ : α → E} (φ_meas : Measurable φ) :
- Measurable fun a : α => L (φ a) :=
- L.Measurable.comp φ_meas
-#align continuous_linear_map.measurable_comp ContinuousLinearMap.measurable_comp
-
-end ContinuousLinearMap
-
-namespace ContinuousLinearMap
-
-variable {𝕜 : Type _} [NontriviallyNormedField 𝕜]
-
-variable {E : Type _} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type _} [NormedAddCommGroup F]
- [NormedSpace 𝕜 F]
-
-instance : MeasurableSpace (E →L[𝕜] F) :=
- borel _
-
-instance : BorelSpace (E →L[𝕜] F) :=
- ⟨rfl⟩
-
-@[measurability]
-theorem measurable_apply [MeasurableSpace F] [BorelSpace F] (x : E) :
- Measurable fun f : E →L[𝕜] F => f x :=
- (apply 𝕜 F x).Continuous.Measurable
-#align continuous_linear_map.measurable_apply ContinuousLinearMap.measurable_apply
-
-@[measurability]
-theorem measurable_apply' [MeasurableSpace E] [OpensMeasurableSpace E] [MeasurableSpace F]
- [BorelSpace F] : Measurable fun (x : E) (f : E →L[𝕜] F) => f x :=
- measurable_pi_lambda _ fun f => f.Measurable
-#align continuous_linear_map.measurable_apply' ContinuousLinearMap.measurable_apply'
-
-@[measurability]
-theorem measurable_coe [MeasurableSpace F] [BorelSpace F] :
- Measurable fun (f : E →L[𝕜] F) (x : E) => f x :=
- measurable_pi_lambda _ measurable_apply
-#align continuous_linear_map.measurable_coe ContinuousLinearMap.measurable_coe
-
-end ContinuousLinearMap
-
-section ContinuousLinearMapNontriviallyNormedField
-
-variable {𝕜 : Type _} [NontriviallyNormedField 𝕜]
-
-variable {E : Type _} [NormedAddCommGroup E] [NormedSpace 𝕜 E] [MeasurableSpace E] [BorelSpace E]
- {F : Type _} [NormedAddCommGroup F] [NormedSpace 𝕜 F]
-
-@[measurability]
-theorem Measurable.apply_continuousLinearMap {φ : α → F →L[𝕜] E} (hφ : Measurable φ) (v : F) :
- Measurable fun a => φ a v :=
- (ContinuousLinearMap.apply 𝕜 E v).Measurable.comp hφ
-#align measurable.apply_continuous_linear_map Measurable.apply_continuousLinearMap
-
-@[measurability]
-theorem AEMeasurable.apply_continuousLinearMap {φ : α → F →L[𝕜] E} {μ : Measure α}
- (hφ : AEMeasurable φ μ) (v : F) : AEMeasurable (fun a => φ a v) μ :=
- (ContinuousLinearMap.apply 𝕜 E v).Measurable.comp_aemeasurable hφ
-#align ae_measurable.apply_continuous_linear_map AEMeasurable.apply_continuousLinearMap
-
-end ContinuousLinearMapNontriviallyNormedField
-
-section NormedSpace
-
-variable {𝕜 : Type _} [NontriviallyNormedField 𝕜] [CompleteSpace 𝕜] [MeasurableSpace 𝕜]
-
-variable [BorelSpace 𝕜] {E : Type _} [NormedAddCommGroup E] [NormedSpace 𝕜 E] [MeasurableSpace E]
- [BorelSpace E]
-
-theorem measurable_smul_const {f : α → 𝕜} {c : E} (hc : c ≠ 0) :
- (Measurable fun x => f x • c) ↔ Measurable f :=
- (closedEmbedding_smul_left hc).MeasurableEmbedding.measurable_comp_iff
-#align measurable_smul_const measurable_smul_const
-
-theorem aEMeasurable_smul_const {f : α → 𝕜} {μ : Measure α} {c : E} (hc : c ≠ 0) :
- AEMeasurable (fun x => f x • c) μ ↔ AEMeasurable f μ :=
- (closedEmbedding_smul_left hc).MeasurableEmbedding.aemeasurable_comp_iff
-#align ae_measurable_smul_const aEMeasurable_smul_const
-
-end NormedSpace
-
Several theorems in MeasureTheory/Constructions/Polish.lean about measurable sets, functions, etc. assume that a space is a BorelSpace
or OpensMeasurableSpace
for some nice topology. This PR removes the topological data from such theorems when possible, replacing them with sufficient and natural assumptions on MeasurableSpace
's.
The old versions of the theorems still work automatically thanks to TC inference.
TODO: Add CountablySeparated
typeclass abbreviating HasCountableSeparatingOn _ MeasurableSet univ
.
Co-authored-by: Felix-Weilacher <112423742+Felix-Weilacher@users.noreply.github.com>
@@ -418,6 +418,14 @@ theorem MeasurableSet.nhdsWithin_isMeasurablyGenerated {s : Set α} (hs : Measur
Filter.inf_isMeasurablyGenerated _ _
#align measurable_set.nhds_within_is_measurably_generated MeasurableSet.nhdsWithin_isMeasurablyGenerated
+instance (priority := 100) OpensMeasurableSpace.separatesPoints [T0Space α] :
+ SeparatesPoints α := by
+ rw [separatesPoints_iff]
+ intro x y hxy
+ apply Inseparable.eq
+ rw [inseparable_iff_forall_open]
+ exact fun s hs => hxy _ hs.measurableSet
+
-- see Note [lower instance priority]
instance (priority := 100) OpensMeasurableSpace.toMeasurableSingletonClass [T1Space α] :
MeasurableSingletonClass α :=
@@ -1895,6 +1903,27 @@ theorem tendsto_measure_cthickening_of_isCompact [MetricSpace α] [MeasurableSpa
⟨1, zero_lt_one, hs.isBounded.cthickening.measure_lt_top.ne⟩ hs.isClosed
#align tendsto_measure_cthickening_of_is_compact tendsto_measure_cthickening_of_isCompact
+/-- If a measurable space is countably generated and separates points, it arises as
+the borel sets of some second countable t4 topology (i.e. a separable metrizable one). -/
+theorem exists_borelSpace_of_countablyGenerated_of_separatesPoints (α : Type*)
+ [m : MeasurableSpace α] [CountablyGenerated α] [SeparatesPoints α] :
+ ∃ τ : TopologicalSpace α, SecondCountableTopology α ∧ T4Space α ∧ BorelSpace α := by
+ rcases measurableEquiv_nat_bool_of_countablyGenerated α with ⟨s, ⟨f⟩⟩
+ letI := induced f inferInstance
+ let F := f.toEquiv.toHomeomorphOfInducing $ inducing_induced _
+ exact ⟨inferInstance, F.secondCountableTopology, F.symm.t4Space,
+ MeasurableEmbedding.borelSpace f.measurableEmbedding F.inducing⟩
+
+/-- If a measurable space on `α` is countably generated and separates points, there is some
+second countable t4 topology on `α` (i.e. a separable metrizable one) for which every
+open set is measurable. -/
+theorem exists_opensMeasurableSpace_of_hasCountableSeparatingOn (α : Type*)
+ [m : MeasurableSpace α] [HasCountableSeparatingOn α MeasurableSet univ] :
+ ∃ τ : TopologicalSpace α, SecondCountableTopology α ∧ T4Space α ∧ OpensMeasurableSpace α := by
+ rcases exists_countablyGenerated_le_of_hasCountableSeparatingOn α with ⟨m', _, _, m'le⟩
+ rcases exists_borelSpace_of_countablyGenerated_of_separatesPoints (m := m') with ⟨τ, _, _, τm'⟩
+ exact ⟨τ, ‹_›, ‹_›, @OpensMeasurableSpace.mk _ _ m (τm'.measurable_eq.symm.le.trans m'le)⟩
+
namespace Real
open MeasurableSpace MeasureTheory
@@ -1709,7 +1709,7 @@ theorem measure_eq_measure_preimage_add_measure_tsum_Ico_zpow [MeasurableSpace
refine disjoint_left.2 fun x hx h'x => lt_irrefl (f x) ?_
calc
f x < (t : ℝ≥0∞) ^ (i + 1) := hx.2.2
- _ ≤ (t : ℝ≥0∞) ^ j := (ENNReal.zpow_le_of_le (ENNReal.one_le_coe_iff.2 ht.le) h)
+ _ ≤ (t : ℝ≥0∞) ^ j := ENNReal.zpow_le_of_le (ENNReal.one_le_coe_iff.2 ht.le) h
_ ≤ f x := h'x.2.1
· intro n
exact hs.inter (hf measurableSet_Ico)
Purely automatic replacement. If this is in any way controversial; I'm happy to just close this PR.
@@ -1029,7 +1029,7 @@ protected theorem Homeomorph.measurable (h : α ≃ₜ γ) : Measurable h :=
h.continuous.measurable
#align homeomorph.measurable Homeomorph.measurable
-/-- A homeomorphism between two Borel spaces is a measurable equivalence.-/
+/-- A homeomorphism between two Borel spaces is a measurable equivalence. -/
def Homeomorph.toMeasurableEquiv (h : γ ≃ₜ γ₂) : γ ≃ᵐ γ₂ where
measurable_toFun := h.measurable
measurable_invFun := h.symm.measurable
IsROrC
to RCLike
(#10819)
IsROrC
contains data, which goes against the expectation that classes prefixed with Is
are prop-valued. People have been complaining about this on and off, so this PR renames IsROrC
to RCLike
.
@@ -1636,7 +1636,7 @@ instance Rat.borelSpace : BorelSpace ℚ :=
⟨borel_eq_top_of_countable.symm⟩
#align rat.borel_space Rat.borelSpace
-/- Instances on `Real` and `Complex` are special cases of `IsROrC` but without these instances,
+/- Instances on `Real` and `Complex` are special cases of `RCLike` but without these instances,
Lean fails to prove `BorelSpace (ι → ℝ)`, so we leave them here. -/
instance Real.measurableSpace : MeasurableSpace ℝ :=
borel ℝ
@@ -2075,6 +2075,9 @@ theorem aemeasurable_coe_nnreal_real_iff {f : α → ℝ≥0} {μ : Measure α}
⟨fun h => by simpa only [Real.toNNReal_coe] using h.real_toNNReal, AEMeasurable.coe_nnreal_real⟩
#align ae_measurable_coe_nnreal_real_iff aemeasurable_coe_nnreal_real_iff
+@[deprecated] -- 2024-03-02
+alias aEMeasurable_coe_nnreal_real_iff := aemeasurable_coe_nnreal_real_iff
+
/-- The set of finite `ℝ≥0∞` numbers is `MeasurableEquiv` to `ℝ≥0`. -/
def MeasurableEquiv.ennrealEquivNNReal : { r : ℝ≥0∞ | r ≠ ∞ } ≃ᵐ ℝ≥0 :=
ENNReal.neTopHomeomorphNNReal.toMeasurableEquiv
I removed some redundant instance arguments throughout Mathlib. To do this, I used VS Code's regex search. See https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/repeating.20instances.20from.20variable.20command I closed the previous PR for this and reopened it.
@@ -1145,7 +1145,7 @@ lemma MeasurableEmbedding.borelSpace {α β : Type*} [MeasurableSpace α] [Topol
have : MeasurableSpace.comap e (borel β) = ‹_› := by simpa [hβ.measurable_eq] using h'e.comap_eq
rw [← this, ← borel_comap, h''e.induced]
-instance _root_.ULift.instBorelSpace [BorelSpace α] : BorelSpace (ULift α) :=
+instance _root_.ULift.instBorelSpace : BorelSpace (ULift α) :=
MeasurableEquiv.ulift.measurableEmbedding.borelSpace Homeomorph.ulift.inducing
instance DiscreteMeasurableSpace.toBorelSpace {α : Type*} [TopologicalSpace α] [DiscreteTopology α]
Standardizes the following names for distributivity laws across Finset
and Set
:
inter_union_distrib_left
inter_union_distrib_right
union_inter_distrib_left
union_inter_distrib_right
Makes arguments explicit in:
Set.union_inter_distrib_right
Set.union_inter_distrib_left
Set.inter_union_distrib_right
Deprecates these theorem names:
Finset.inter_distrib_left
Finset.inter_distrib_right
Finset.union_distrib_right
Finset.union_distrib_left
Set.inter_distrib_left
Set.inter_distrib_right
Set.union_distrib_right
Set.union_distrib_left
Fixes use of deprecated names and implicit arguments in these files:
@@ -1680,8 +1680,8 @@ theorem measure_eq_measure_preimage_add_measure_tsum_Ico_zpow [MeasurableSpace
∑' n : ℤ, μ (s ∩ f ⁻¹' Ico ((t : ℝ≥0∞) ^ n) ((t : ℝ≥0∞) ^ (n + 1))) := by
have A : μ s = μ (s ∩ f ⁻¹' {0}) + μ (s ∩ f ⁻¹' Ioi 0) := by
rw [← measure_union]
- · rw [← inter_distrib_left, ← preimage_union, singleton_union, Ioi_insert, ← _root_.bot_eq_zero,
- Ici_bot, preimage_univ, inter_univ]
+ · rw [← inter_union_distrib_left, ← preimage_union, singleton_union, Ioi_insert,
+ ← _root_.bot_eq_zero, Ici_bot, preimage_univ, inter_univ]
· exact disjoint_singleton_left.mpr not_mem_Ioi_self
|>.preimage f |>.inter_right' s |>.inter_left' s
· exact hs.inter (hf measurableSet_Ioi)
Some small changes to adapt to the 2024-03-16 nightly that can land in advance.
@@ -1703,9 +1703,7 @@ theorem measure_eq_measure_preimage_add_measure_tsum_Ico_zpow [MeasurableSpace
rw [← measure_iUnion,
ENNReal.Ioo_zero_top_eq_iUnion_Ico_zpow (ENNReal.one_lt_coe_iff.2 ht) ENNReal.coe_ne_top,
preimage_iUnion, inter_iUnion]
- · intro i j
- simp only [Function.onFun]
- intro hij
+ · intro i j hij
wlog h : i < j generalizing i j
· exact (this hij.symm (hij.lt_or_lt.resolve_left h)).symm
refine disjoint_left.2 fun x hx h'x => lt_irrefl (f x) ?_
All these lemmas refer to the range of some function being open/range (i.e. isOpen
or isClosed
).
@@ -1161,12 +1161,12 @@ protected theorem Embedding.measurableEmbedding {f : α → β} (h₁ : Embeddin
protected theorem ClosedEmbedding.measurableEmbedding {f : α → β} (h : ClosedEmbedding f) :
MeasurableEmbedding f :=
- h.toEmbedding.measurableEmbedding h.closed_range.measurableSet
+ h.toEmbedding.measurableEmbedding h.isClosed_range.measurableSet
#align closed_embedding.measurable_embedding ClosedEmbedding.measurableEmbedding
protected theorem OpenEmbedding.measurableEmbedding {f : α → β} (h : OpenEmbedding f) :
MeasurableEmbedding f :=
- h.toEmbedding.measurableEmbedding h.open_range.measurableSet
+ h.toEmbedding.measurableEmbedding h.isOpen_range.measurableSet
#align open_embedding.measurable_embedding OpenEmbedding.measurableEmbedding
section LinearOrder
Empty lines were removed by executing the following Python script twice
import os
import re
# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
for filename in files:
if filename.endswith('.lean'):
file_path = os.path.join(dir_path, filename)
# Open the file and read its contents
with open(file_path, 'r') as file:
content = file.read()
# Use a regular expression to replace sequences of "variable" lines separated by empty lines
# with sequences without empty lines
modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)
# Write the modified content back to the file
with open(file_path, 'w') as file:
file.write(modified_content)
@@ -118,7 +118,6 @@ theorem borel_eq_generateFrom_isClosed [TopologicalSpace α] :
section OrderTopology
variable (α)
-
variable [TopologicalSpace α] [SecondCountableTopology α] [LinearOrder α] [OrderTopology α]
theorem borel_eq_generateFrom_Iio : borel α = .generateFrom (range Iio) := by
@@ -1722,7 +1721,6 @@ theorem measure_eq_measure_preimage_add_measure_tsum_Ico_zpow [MeasurableSpace
section PseudoMetricSpace
variable [PseudoMetricSpace α] [MeasurableSpace α] [OpensMeasurableSpace α]
-
variable [MeasurableSpace β] {x : α} {ε : ℝ}
open Metric
@@ -1792,7 +1790,6 @@ end PseudoMetricSpace
section PseudoEMetricSpace
variable [PseudoEMetricSpace α] [MeasurableSpace α] [OpensMeasurableSpace α]
-
variable [MeasurableSpace β] {x : α} {ε : ℝ≥0∞}
open EMetric
tendsto_of_integral_tendsto_of_monotone
(#11167)
Add tendsto_of_integral_tendsto_of_monotone
, as well as ...of_antitone
and the corresponding results for lintegral
.
Also:
lintegral_iInf'
, a version of lintegral_iInf
for a.e.-measurable functions. We already have the corresponding lintegral_iSup'
.Co-authored-by: sgouezel <sebastien.gouezel@univ-rennes1.fr>
@@ -2162,6 +2162,61 @@ instance : MeasurableSMul ℝ≥0 ℝ≥0∞ where
simp_rw [ENNReal.smul_def]
exact measurable_coe_nnreal_ennreal.mul_const _
+/-- A limit (over a general filter) of measurable `ℝ≥0∞` valued functions is measurable. -/
+theorem measurable_of_tendsto' {ι : Type*} {f : ι → α → ℝ≥0∞} {g : α → ℝ≥0∞} (u : Filter ι)
+ [NeBot u] [IsCountablyGenerated u] (hf : ∀ i, Measurable (f i)) (lim : Tendsto f u (𝓝 g)) :
+ Measurable g := by
+ rcases u.exists_seq_tendsto with ⟨x, hx⟩
+ rw [tendsto_pi_nhds] at lim
+ have : (fun y => liminf (fun n => (f (x n) y : ℝ≥0∞)) atTop) = g := by
+ ext1 y
+ exact ((lim y).comp hx).liminf_eq
+ rw [← this]
+ show Measurable fun y => liminf (fun n => (f (x n) y : ℝ≥0∞)) atTop
+ exact measurable_liminf fun n => hf (x n)
+#align measurable_of_tendsto_ennreal' ENNReal.measurable_of_tendsto'
+
+-- 2024-03-09
+@[deprecated] alias _root_.measurable_of_tendsto_ennreal' := ENNReal.measurable_of_tendsto'
+
+/-- A sequential limit of measurable `ℝ≥0∞` valued functions is measurable. -/
+theorem measurable_of_tendsto {f : ℕ → α → ℝ≥0∞} {g : α → ℝ≥0∞} (hf : ∀ i, Measurable (f i))
+ (lim : Tendsto f atTop (𝓝 g)) : Measurable g :=
+ measurable_of_tendsto' atTop hf lim
+#align measurable_of_tendsto_ennreal ENNReal.measurable_of_tendsto
+
+-- 2024-03-09
+@[deprecated] alias _root_.measurable_of_tendsto_ennreal := ENNReal.measurable_of_tendsto
+
+/-- A limit (over a general filter) of a.e.-measurable `ℝ≥0∞` valued functions is
+a.e.-measurable. -/
+lemma aemeasurable_of_tendsto' {ι : Type*} {f : ι → α → ℝ≥0∞} {g : α → ℝ≥0∞}
+ {μ : Measure α} (u : Filter ι) [NeBot u] [IsCountablyGenerated u]
+ (hf : ∀ i, AEMeasurable (f i) μ) (hlim : ∀ᵐ a ∂μ, Tendsto (fun i ↦ f i a) u (𝓝 (g a))) :
+ AEMeasurable g μ := by
+ rcases u.exists_seq_tendsto with ⟨v, hv⟩
+ have h'f : ∀ n, AEMeasurable (f (v n)) μ := fun n ↦ hf (v n)
+ set p : α → (ℕ → ℝ≥0∞) → Prop := fun x f' ↦ Tendsto f' atTop (𝓝 (g x))
+ have hp : ∀ᵐ x ∂μ, p x fun n ↦ f (v n) x := by
+ filter_upwards [hlim] with x hx using hx.comp hv
+ set aeSeqLim := fun x ↦ ite (x ∈ aeSeqSet h'f p) (g x) (⟨f (v 0) x⟩ : Nonempty ℝ≥0∞).some
+ refine ⟨aeSeqLim, measurable_of_tendsto' atTop (aeSeq.measurable h'f p)
+ (tendsto_pi_nhds.mpr fun x ↦ ?_), ?_⟩
+ · unfold_let aeSeqLim
+ simp_rw [aeSeq]
+ split_ifs with hx
+ · simp_rw [aeSeq.mk_eq_fun_of_mem_aeSeqSet h'f hx]
+ exact aeSeq.fun_prop_of_mem_aeSeqSet h'f hx
+ · exact tendsto_const_nhds
+ · exact (ite_ae_eq_of_measure_compl_zero g (fun x ↦ (⟨f (v 0) x⟩ : Nonempty ℝ≥0∞).some)
+ (aeSeqSet h'f p) (aeSeq.measure_compl_aeSeqSet_eq_zero h'f hp)).symm
+
+/-- A limit of a.e.-measurable `ℝ≥0∞` valued functions is a.e.-measurable. -/
+lemma aemeasurable_of_tendsto {f : ℕ → α → ℝ≥0∞} {g : α → ℝ≥0∞} {μ : Measure α}
+ (hf : ∀ i, AEMeasurable (f i) μ) (hlim : ∀ᵐ a ∂μ, Tendsto (fun i ↦ f i a) atTop (𝓝 (g a))) :
+ AEMeasurable g μ :=
+ aemeasurable_of_tendsto' atTop hf hlim
+
end ENNReal
@[measurability]
@@ -2301,6 +2356,32 @@ theorem AEMeasurable.coe_ereal_ennreal {f : α → ℝ≥0∞} {μ : Measure α}
measurable_coe_ennreal_ereal.comp_aemeasurable hf
#align ae_measurable.coe_ereal_ennreal AEMeasurable.coe_ereal_ennreal
+namespace NNReal
+
+/-- A limit (over a general filter) of measurable `ℝ≥0` valued functions is measurable. -/
+theorem measurable_of_tendsto' {ι} {f : ι → α → ℝ≥0} {g : α → ℝ≥0} (u : Filter ι) [NeBot u]
+ [IsCountablyGenerated u] (hf : ∀ i, Measurable (f i)) (lim : Tendsto f u (𝓝 g)) :
+ Measurable g := by
+ simp_rw [← measurable_coe_nnreal_ennreal_iff] at hf ⊢
+ refine' ENNReal.measurable_of_tendsto' u hf _
+ rw [tendsto_pi_nhds] at lim ⊢
+ exact fun x => (ENNReal.continuous_coe.tendsto (g x)).comp (lim x)
+#align measurable_of_tendsto_nnreal' NNReal.measurable_of_tendsto'
+
+-- 2024-03-09
+@[deprecated] alias _root_.measurable_of_tendsto_nnreal' := NNReal.measurable_of_tendsto'
+
+/-- A sequential limit of measurable `ℝ≥0` valued functions is measurable. -/
+theorem measurable_of_tendsto {f : ℕ → α → ℝ≥0} {g : α → ℝ≥0} (hf : ∀ i, Measurable (f i))
+ (lim : Tendsto f atTop (𝓝 g)) : Measurable g :=
+ measurable_of_tendsto' atTop hf lim
+#align measurable_of_tendsto_nnreal NNReal.measurable_of_tendsto
+
+-- 2024-03-09
+@[deprecated] alias _root_.measurable_of_tendsto_nnreal := NNReal.measurable_of_tendsto
+
+end NNReal
+
/-- If a function `f : α → ℝ≥0` is measurable and the measure is σ-finite, then there exists
spanning measurable sets with finite measure on which `f` is bounded.
See also `StronglyMeasurable.exists_spanning_measurableSet_norm_le` for functions into normed
ball
and bex
from lemma names (#10816)
ball
for "bounded forall" and bex
for "bounded exists" are from experience very confusing abbreviations. This PR renames them to forall_mem
and exists_mem
in the few Set
lemma names that mention them.
Also deprecate ball_image_of_ball
, mem_image_elim
, mem_image_elim_on
since those lemmas are duplicates of the renamed lemmas (apart from argument order and implicitness, which I am also fixing by making the binder in the RHS of forall_mem_image
semi-implicit), have obscure names and are completely unused.
@@ -139,7 +139,7 @@ theorem borel_eq_generateFrom_Iio : borel α = .generateFrom (range Iio) := by
simp only [this, ← compl_Iio]
exact .biUnion htc <| fun _ _ ↦ (H _).compl
· apply H
- · rw [forall_range_iff]
+ · rw [forall_mem_range]
intro a
exact GenerateMeasurable.basic _ isOpen_Iio
#align borel_eq_generate_from_Iio borel_eq_generateFrom_Iio
@@ -707,7 +707,7 @@ theorem Dense.borel_eq_generateFrom_Ico_mem_aux {α : Type*} [TopologicalSpace
refine' le_antisymm _ (generateFrom_Ico_mem_le_borel _ _)
letI : MeasurableSpace α := generateFrom S
rw [borel_eq_generateFrom_Iio]
- refine' generateFrom_le (forall_range_iff.2 fun a => _)
+ refine' generateFrom_le (forall_mem_range.2 fun a => _)
rcases hd.exists_countable_dense_subset_bot_top with ⟨t, hts, hc, htd, htb, -⟩
by_cases ha : ∀ b < a, (Ioo b a).Nonempty
· convert_to MeasurableSet (⋃ (l ∈ t) (u ∈ t) (_ : l < u) (_ : u ≤ a), Ico l u)
A lemma on interchanging sums and integrals (pretty much equivalent tointegral_tsum
, but without explicitly mentioning ENNReals
, lintegrals
etc). Also, correct a random capitalisation glitch I spotted in the process.
@@ -2075,10 +2075,10 @@ theorem measurable_coe_nnreal_real_iff {f : α → ℝ≥0} :
#align measurable_coe_nnreal_real_iff measurable_coe_nnreal_real_iff
@[simp, norm_cast]
-theorem aEMeasurable_coe_nnreal_real_iff {f : α → ℝ≥0} {μ : Measure α} :
+theorem aemeasurable_coe_nnreal_real_iff {f : α → ℝ≥0} {μ : Measure α} :
AEMeasurable (fun x => f x : α → ℝ) μ ↔ AEMeasurable f μ :=
⟨fun h => by simpa only [Real.toNNReal_coe] using h.real_toNNReal, AEMeasurable.coe_nnreal_real⟩
-#align ae_measurable_coe_nnreal_real_iff aEMeasurable_coe_nnreal_real_iff
+#align ae_measurable_coe_nnreal_real_iff aemeasurable_coe_nnreal_real_iff
/-- The set of finite `ℝ≥0∞` numbers is `MeasurableEquiv` to `ℝ≥0`. -/
def MeasurableEquiv.ennrealEquivNNReal : { r : ℝ≥0∞ | r ≠ ∞ } ≃ᵐ ℝ≥0 :=
@@ -1246,9 +1246,9 @@ theorem Measurable.isLUB_of_mem {ι} [Countable ι] {f : ι → δ → α} {g g'
Measurable.isLUB (fun i ↦ Measurable.piecewise hs (hf i) g'_meas) this
intro b
by_cases hb : b ∈ s
- · have A : ∀ i, f' i b = f i b := fun i ↦ by simp [hb]
+ · have A : ∀ i, f' i b = f i b := fun i ↦ by simp [f', hb]
simpa [A] using hg b hb
- · have A : ∀ i, f' i b = g' b := fun i ↦ by simp [hb]
+ · have A : ∀ i, f' i b = g' b := fun i ↦ by simp [f', hb]
have : {a | ∃ (_i : ι), g' b = a} = {g' b} := by
apply Subset.antisymm
· rintro - ⟨_j, rfl⟩
@@ -1269,7 +1269,7 @@ theorem AEMeasurable.isLUB {ι} {μ : Measure δ} [Countable ι] {f : ι → δ
let g_seq := (aeSeqSet hf p).piecewise g fun _ => hα.some
have hg_seq : ∀ b, IsLUB { a | ∃ i, aeSeq hf p i b = a } (g_seq b) := by
intro b
- simp only [aeSeq, Set.piecewise]
+ simp only [g_seq, aeSeq, Set.piecewise]
split_ifs with h
· have h_set_eq : { a : α | ∃ i : ι, (hf i).mk (f i) b = a } =
{ a : α | ∃ i : ι, f i b = a } := by
@@ -1499,10 +1499,10 @@ theorem aemeasurable_biSup {ι} {μ : Measure δ} (s : Set ι) {f : ι → δ
let g : ι → δ → α := fun i ↦ if hi : i ∈ s then (hf i hi).mk (f i) else fun _b ↦ sSup ∅
have : ∀ i ∈ s, Measurable (g i) := by
intro i hi
- simpa [hi] using (hf i hi).measurable_mk
+ simpa [g, hi] using (hf i hi).measurable_mk
refine ⟨fun b ↦ ⨆ (i) (_ : i ∈ s), g i b, measurable_biSup s hs this, ?_⟩
have : ∀ i ∈ s, ∀ᵐ b ∂μ, f i b = g i b :=
- fun i hi ↦ by simpa [hi] using (hf i hi).ae_eq_mk
+ fun i hi ↦ by simpa [g, hi] using (hf i hi).ae_eq_mk
filter_upwards [(ae_ball_iff hs).2 this] with b hb
exact iSup_congr fun i => iSup_congr (hb i)
#align ae_measurable_bsupr aemeasurable_biSup
@@ -2329,7 +2329,7 @@ theorem exists_spanning_measurableSet_le {m : MeasurableSpace α} {f : α →
· have :
⋃ i, sigma_finite_sets i ∩ norm_sets i = (⋃ i, sigma_finite_sets i) ∩ ⋃ i, norm_sets i := by
refine' Set.iUnion_inter_of_monotone (monotone_spanningSets μ) fun i j hij x => _
- simp only [Set.mem_setOf_eq]
+ simp only [norm_sets, Set.mem_setOf_eq]
refine' fun hif => hif.trans _
exact mod_cast hij
rw [this, norm_sets_spanning, iUnion_spanningSets μ, Set.inter_univ]
Rename many isGδ_some
lemmas to IsGδ.some
.
Also resolve a TODO.
@@ -338,7 +338,7 @@ set_option linter.uppercaseLean3 false in
theorem measurableSet_of_continuousAt {β} [EMetricSpace β] (f : α → β) :
MeasurableSet { x | ContinuousAt f x } :=
- (isGδ_setOf_continuousAt f).measurableSet
+ (IsGδ.setOf_continuousAt f).measurableSet
#align measurable_set_of_continuous_at measurableSet_of_continuousAt
theorem IsClosed.measurableSet (h : IsClosed s) : MeasurableSet s :=
@@ -1607,8 +1607,7 @@ def Homemorph.toMeasurableEquiv (h : α ≃ₜ β) : α ≃ᵐ β where
protected theorem IsFiniteMeasureOnCompacts.map (μ : Measure α) [IsFiniteMeasureOnCompacts μ]
(f : α ≃ₜ β) : IsFiniteMeasureOnCompacts (Measure.map f μ) := by
refine ⟨fun K hK ↦ ?_⟩
- change Measure.map f.toMeasurableEquiv μ K < ∞
- rw [MeasurableEquiv.map_apply]
+ rw [← Homeomorph.toMeasurableEquiv_coe, MeasurableEquiv.map_apply]
exact IsCompact.measure_lt_top (f.isCompact_preimage.2 hK)
#align is_finite_measure_on_compacts.map IsFiniteMeasureOnCompacts.map
@@ -579,6 +579,13 @@ instance atBot_isMeasurablyGenerated : (Filter.atBot : Filter α).IsMeasurablyGe
(measurableSet_Iic : MeasurableSet (Iic a)).principal_isMeasurablyGenerated
#align at_bot_is_measurably_generated atBot_isMeasurablyGenerated
+instance [R1Space α] : IsMeasurablyGenerated (cocompact α) where
+ exists_measurable_subset := by
+ intro _ hs
+ obtain ⟨t, ht, hts⟩ := mem_cocompact.mp hs
+ exact ⟨(closure t)ᶜ, ht.closure.compl_mem_cocompact, isClosed_closure.measurableSet.compl,
+ (compl_subset_compl.2 subset_closure).trans hts⟩
+
end Preorder
section PartialOrder
The file was becoming a bit large (1550 lines). Split in two files of about 900 and 700 lines: the first file contains more basic material, the second file contains all material related to thickenings.
Extend the module docstrings by mentioning the main results in this file.
@@ -8,7 +8,7 @@ import Mathlib.MeasureTheory.Function.AEMeasurableSequence
import Mathlib.MeasureTheory.Group.Arithmetic
import Mathlib.MeasureTheory.Order.Lattice
import Mathlib.Topology.Instances.EReal
-import Mathlib.Topology.MetricSpace.HausdorffDistance
+import Mathlib.Topology.MetricSpace.Thickening
import Mathlib.Topology.GDelta
import Mathlib.Topology.Order.Lattice
import Mathlib.Topology.Semicontinuous
Set.Countable
(#9831)
Redefine Set.Countable s
as _root_.Countable s
.
Fix compile, golf some of the broken proofs.
@@ -43,9 +43,9 @@ import Mathlib.Topology.Semicontinuous
noncomputable section
-open Classical Set Filter MeasureTheory
+open Set Filter MeasureTheory
-open Classical BigOperators Topology NNReal ENNReal MeasureTheory
+open scoped Classical BigOperators Topology NNReal ENNReal MeasureTheory
universe u v w x y
@@ -128,30 +128,17 @@ theorem borel_eq_generateFrom_Iio : borel α = .generateFrom (range Iio) := by
have H : ∀ a : α, MeasurableSet (Iio a) := fun a => GenerateMeasurable.basic _ ⟨_, rfl⟩
refine' generateFrom_le _
rintro _ ⟨a, rfl | rfl⟩
- swap
+ · rcases em (∃ b, a ⋖ b) with ⟨b, hb⟩ | hcovBy
+ · rw [hb.Ioi_eq, ← compl_Iio]
+ exact (H _).compl
+ · rcases isOpen_biUnion_countable (Ioi a) Ioi fun _ _ ↦ isOpen_Ioi with ⟨t, hat, htc, htU⟩
+ have : Ioi a = ⋃ b ∈ t, Ici b := by
+ refine Subset.antisymm ?_ <| iUnion₂_subset fun b hb ↦ Ici_subset_Ioi.2 (hat hb)
+ refine Subset.trans ?_ <| iUnion₂_mono fun _ _ ↦ Ioi_subset_Ici_self
+ simpa [CovBy, htU, subset_def] using hcovBy
+ simp only [this, ← compl_Iio]
+ exact .biUnion htc <| fun _ _ ↦ (H _).compl
· apply H
- by_cases h : ∃ a', ∀ b, a < b ↔ a' ≤ b
- · rcases h with ⟨a', ha'⟩
- rw [(_ : Ioi a = (Iio a')ᶜ)]
- · exact (H _).compl
- simp [Set.ext_iff, ha']
- · rcases isOpen_iUnion_countable (fun a' : { a' : α // a < a' } => { b | a'.1 < b }) fun a' =>
- isOpen_lt' _ with ⟨v, ⟨hv⟩, vu⟩
- simp? [Set.ext_iff] at vu says
- simp only [Set.ext_iff, mem_iUnion, mem_setOf_eq, exists_prop, Subtype.exists,
- exists_and_right] at vu
- have : Ioi a = ⋃ x : v, (Iio x.1.1)ᶜ := by
- simp only [compl_Iio, iUnion_coe_set, Set.ext_iff, mem_Ioi, mem_iUnion, mem_Ici,
- exists_prop, Subtype.exists, exists_and_right]
- refine' fun x => ⟨fun ax => _, fun ⟨a', ⟨h, _⟩, ax⟩ => lt_of_lt_of_le h ax⟩
- rcases (vu x).2 (by
- refine' not_imp_comm.1 (fun h => _) h
- exact ⟨x, fun b =>
- ⟨fun ab => le_of_not_lt fun h' => h ⟨b, ab, h'⟩, lt_of_lt_of_le ax⟩⟩) with ⟨a', h₁, h₂⟩
- · exact ⟨a', h₁, le_of_lt h₂⟩
- rw [this]
- apply MeasurableSet.iUnion
- exact fun _ => (H _).compl
· rw [forall_range_iff]
intro a
exact GenerateMeasurable.basic _ isOpen_Iio
@@ -1527,14 +1514,14 @@ theorem aemeasurable_biInf {ι} {μ : Measure δ} (s : Set ι) {f : ι → δ
-/
theorem measurable_liminf' {ι ι'} {f : ι → δ → α} {v : Filter ι} (hf : ∀ i, Measurable (f i))
{p : ι' → Prop} {s : ι' → Set ι} (hv : v.HasCountableBasis p s) (hs : ∀ j, (s j).Countable) :
- Measurable fun x => liminf (fun i => f i x) v := by
+ Measurable fun x => liminf (f · x) v := by
/- We would like to write the liminf as `⨆ (j : Subtype p), ⨅ (i : s j), f i x`, as the
measurability would follow from the measurability of infs and sups. Unfortunately, this is not
true in general conditionally complete linear orders because of issues with empty sets or sets
which are not bounded above or below. A slightly more complicated expression for the liminf,
valid in general, is given in `Filter.HasBasis.liminf_eq_ite`. This expression, built from
`if ... then ... else` and infs and sups, can be readily checked to be measurable. -/
- have : Countable (Subtype p) := Encodable.nonempty_encodable.1 hv.countable
+ have : Countable (Subtype p) := hv.countable
rcases isEmpty_or_nonempty (Subtype p) with hp|hp
· simp [hv.liminf_eq_sSup_iUnion_iInter]
by_cases H : ∃ (j : Subtype p), s j = ∅
@@ -1554,12 +1541,12 @@ theorem measurable_liminf' {ι ι'} {f : ι → δ → α} {v : Filter ι} (hf :
have F0_meas : ∀ j, Measurable (F0 j) := fun j ↦ measurable_iInf (fun (i : s j) ↦ hf i)
set F1 : δ → α := fun x ↦ F0 (reparam x j) x with hF1
change Measurable F1
- let g : ℕ → Subtype p := choose (exists_surjective_nat (Subtype p))
+ let g : ℕ → Subtype p := Classical.choose (exists_surjective_nat (Subtype p))
have Z : ∀ x, ∃ n, x ∈ m (g n) ∨ ∀ k, x ∉ m k := by
intro x
by_cases H : ∃ k, x ∈ m k
· rcases H with ⟨k, hk⟩
- rcases choose_spec (exists_surjective_nat (Subtype p)) k with ⟨n, rfl⟩
+ rcases Classical.choose_spec (exists_surjective_nat (Subtype p)) k with ⟨n, rfl⟩
exact ⟨n, Or.inl hk⟩
· push_neg at H
exact ⟨0, Or.inr H⟩
@@ -1699,9 +1686,8 @@ theorem measure_eq_measure_preimage_add_measure_tsum_Ico_zpow [MeasurableSpace
congr
ext x
simp only [mem_singleton_iff, mem_union, mem_Ioo, mem_Ioi, mem_preimage]
- have H : f x = ∞ ∨ f x < ∞ := eq_or_lt_of_le le_top
- cases' H with H H
- · simp only [H, eq_self_iff_true, or_false_iff, zero_lt_top, not_top_lt, and_false_iff]
+ obtain (H | H) : f x = ∞ ∨ f x < ∞ := eq_or_lt_of_le le_top
+ · simp only [H, eq_self_iff_true, or_false_iff, ENNReal.zero_lt_top, not_top_lt, and_false]
· simp only [H, H.ne, and_true_iff, false_or_iff]
· refine disjoint_left.2 fun x hx h'x => ?_
have : f x < ∞ := h'x.2.2
R1Space
, a.k.a. preregular space.T2OrLocallyCompactRegularSpace
.T2OrLocallyCompactRegularSpace
to R1Space
.[T2OrLocallyCompactRegularSpace _]
assumption
if the space is known to be regular for other reason
(e.g., because it's a topological group).Specializes.not_disjoint
:
if x ⤳ y
, then 𝓝 x
and 𝓝 y
aren't disjoint;specializes_iff_not_disjoint
, Specializes.inseparable
,
disjoint_nhds_nhds_iff_not_inseparable
,
r1Space_iff_inseparable_or_disjoint_nhds
: basic API about R1Space
s;Inducing.r1Space
, R1Space.induced
, R1Space.sInf
, R1Space.iInf
,
R1Space.inf
, instances for Subtype _
, X × Y
, and ∀ i, X i
:
basic instances for R1Space
;IsCompact.mem_closure_iff_exists_inseparable
,
IsCompact.closure_eq_biUnion_inseparable
:
characterizations of the closure of a compact set in a preregular space;Inseparable.mem_measurableSet_iff
: topologically inseparable points
can't be separated by a Borel measurable set;IsCompact.closure_subset_measurableSet
, IsCompact.measure_closure
:
in a preregular space, a measurable superset of a compact set
includes its closure as well;
as a corollary, closure K
has the same measure as K
.exists_mem_nhds_isCompact_mapsTo_of_isCompact_mem_nhds
:
an auxiliary lemma extracted from a LocallyCompactPair
instance;IsCompact.isCompact_isClosed_basis_nhds
:
if x
admits a compact neighborhood,
then it admits a basis of compact closed neighborhoods;
in particular, a weakly locally compact preregular space
is a locally compact regular space;isCompact_isClosed_basis_nhds
: a version of the previous theorem
for weakly locally compact spaces;exists_mem_nhds_isCompact_isClosed
: in a locally compact regular space,
each point admits a compact closed neighborhood.Some theorems about topological groups are true for any (pre)regular space, so we deprecate the special cases.
exists_isCompact_isClosed_subset_isCompact_nhds_one
:
use new IsCompact.isCompact_isClosed_basis_nhds
instead;instLocallyCompactSpaceOfWeaklyOfGroup
,
instLocallyCompactSpaceOfWeaklyOfAddGroup
:
are now implied by WeaklyLocallyCompactSpace.locallyCompactSpace
;local_isCompact_isClosed_nhds_of_group
,
local_isCompact_isClosed_nhds_of_addGroup
:
use isCompact_isClosed_basis_nhds
instead;exists_isCompact_isClosed_nhds_one
, exists_isCompact_isClosed_nhds_zero
:
use exists_mem_nhds_isCompact_isClosed
instead.For each renamed theorem, the old theorem is redefined as a deprecated alias.
isOpen_setOf_disjoint_nhds_nhds
: moved to Constructions
;isCompact_closure_of_subset_compact
-> IsCompact.closure_of_subset
;IsCompact.measure_eq_infi_isOpen
-> IsCompact.measure_eq_iInf_isOpen
;exists_compact_superset_iff
-> exists_isCompact_superset_iff
;separatedNhds_of_isCompact_isCompact_isClosed
-> SeparatedNhds.of_isCompact_isCompact_isClosed
;separatedNhds_of_isCompact_isCompact
-> SeparatedNhds.of_isCompact_isCompact
;separatedNhds_of_finset_finset
-> SeparatedNhds.of_finset_finset
;point_disjoint_finset_opens_of_t2
-> SeparatedNhds.of_singleton_finset
;separatedNhds_of_isCompact_isClosed
-> SeparatedNhds.of_isCompact_isClosed
;exists_open_superset_and_isCompact_closure
-> exists_isOpen_superset_and_isCompact_closure
;exists_open_with_compact_closure
-> exists_isOpen_mem_isCompact_closure
;@@ -362,6 +362,34 @@ theorem IsCompact.measurableSet [T2Space α] (h : IsCompact s) : MeasurableSet s
h.isClosed.measurableSet
#align is_compact.measurable_set IsCompact.measurableSet
+/-- If two points are topologically inseparable,
+then they can't be separated by a Borel measurable set. -/
+theorem Inseparable.mem_measurableSet_iff {x y : γ} (h : Inseparable x y) {s : Set γ}
+ (hs : MeasurableSet s) : x ∈ s ↔ y ∈ s :=
+ hs.induction_on_open (C := fun s ↦ (x ∈ s ↔ y ∈ s)) (fun _ ↦ h.mem_open_iff) (fun s _ hs ↦ hs.not)
+ fun _ _ _ h ↦ by simp [h]
+
+/-- If `K` is a compact set in an R₁ space and `s ⊇ K` is a Borel measurable superset,
+then `s` includes the closure of `K` as well. -/
+theorem IsCompact.closure_subset_measurableSet [R1Space γ] {K s : Set γ} (hK : IsCompact K)
+ (hs : MeasurableSet s) (hKs : K ⊆ s) : closure K ⊆ s := by
+ rw [hK.closure_eq_biUnion_inseparable, iUnion₂_subset_iff]
+ exact fun x hx y hy ↦ (hy.mem_measurableSet_iff hs).1 (hKs hx)
+
+/-- In an R₁ topological space with Borel measure `μ`,
+the measure of the closure of a compact set `K` is equal to the measure of `K`.
+
+See also `MeasureTheory.Measure.OuterRegular.measure_closure_eq_of_isCompact`
+for a version that assumes `μ` to be outer regular
+but does not assume the `σ`-algebra to be Borel. -/
+theorem IsCompact.measure_closure [R1Space γ] {K : Set γ} (hK : IsCompact K) (μ : Measure γ) :
+ μ (closure K) = μ K := by
+ refine le_antisymm ?_ (measure_mono subset_closure)
+ calc
+ μ (closure K) ≤ μ (toMeasurable μ K) := measure_mono <|
+ hK.closure_subset_measurableSet (measurableSet_toMeasurable ..) (subset_toMeasurable ..)
+ _ = μ K := measure_toMeasurable ..
+
@[measurability]
theorem measurableSet_closure : MeasurableSet (closure s) :=
isClosed_closure.measurableSet
nullMeasurableSet_lt'
and nullMeasurableSet_le
(#10074)
Prior to this commit the state of Mathlib was:
import Mathlib
#check measurableSet_lt -- Exists
#check measurableSet_lt' -- Exists
#check measurableSet_le -- Exists
#check nullMeasurableSet_lt -- Exists
#check nullMeasurableSet_lt' -- Missing
#check nullMeasurableSet_le -- Missing
Co-authored-by: teorth <tao@math.ucla.edu>
@@ -643,6 +643,15 @@ theorem nullMeasurableSet_lt [SecondCountableTopology α] {μ : Measure δ} {f g
(hf.prod_mk hg).nullMeasurable measurableSet_lt'
#align null_measurable_set_lt nullMeasurableSet_lt
+theorem nullMeasurableSet_lt' [SecondCountableTopology α] {μ : Measure (α × α)} :
+ NullMeasurableSet { p : α × α | p.1 < p.2 } μ :=
+ measurableSet_lt'.nullMeasurableSet
+
+theorem nullMeasurableSet_le [SecondCountableTopology α] {μ : Measure δ}
+ {f g : δ → α} (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
+ NullMeasurableSet { a | f a ≤ g a } μ :=
+ (hf.prod_mk hg).nullMeasurable measurableSet_le'
+
theorem Set.OrdConnected.measurableSet (h : OrdConnected s) : MeasurableSet s := by
let u := ⋃ (x ∈ s) (y ∈ s), Ioo x y
have huopen : IsOpen u := isOpen_biUnion fun _ _ => isOpen_biUnion fun _ _ => isOpen_Ioo
@@ -6,9 +6,7 @@ Authors: Johannes Hölzl, Yury Kudryashov
import Mathlib.Analysis.Normed.Group.Basic
import Mathlib.MeasureTheory.Function.AEMeasurableSequence
import Mathlib.MeasureTheory.Group.Arithmetic
-import Mathlib.MeasureTheory.Lattice
-import Mathlib.Topology.Algebra.Order.LiminfLimsup
-import Mathlib.Topology.ContinuousFunction.Basic
+import Mathlib.MeasureTheory.Order.Lattice
import Mathlib.Topology.Instances.EReal
import Mathlib.Topology.MetricSpace.HausdorffDistance
import Mathlib.Topology.GDelta
abs
(#9553)
The current design for abs
is flawed:
Abs
notation typeclass has exactly two instances: one for [Neg α] [Sup α]
, one for [Inv α] [Sup α]
. This means that:
Abs.abs
Abs
instances!Algebra.Order.Group.Abs
are about the additive version.Algebra.Order.Group.PosPart
, and they get additivised to duplicates of the lemmas in Algebra.Order.Group.Abs
!This PR changes the notation typeclass with two new definitions (related through to_additive
): mabs
and abs
. abs
inherits the |a|
notation and mabs
gets |a|ₘ
instead.
The first half of Algebra.Order.Group.Abs
gets multiplicativised. A later PR will multiplicativise the second half, and another one will deduplicate the lemmas in Algebra.Order.Group.PosPart
.
Part of #9411.
Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com>
@@ -1963,7 +1963,7 @@ def finiteSpanningSetsInIooRat (μ : Measure ℝ) [IsLocallyFiniteMeasure μ] :
finite n := measure_Ioo_lt_top
spanning :=
iUnion_eq_univ_iff.2 fun x =>
- ⟨⌊|x|⌋₊, neg_lt.1 ((neg_le_abs_self x).trans_lt (Nat.lt_floor_add_one _)),
+ ⟨⌊|x|⌋₊, neg_lt.1 ((neg_le_abs x).trans_lt (Nat.lt_floor_add_one _)),
(le_abs_self x).trans_lt (Nat.lt_floor_add_one _)⟩
#align real.finite_spanning_sets_in_Ioo_rat Real.finiteSpanningSetsInIooRat
For error messages that span multiple lines, now we can use the new "string gap" escape sequence (a \
at the end of the line, which causes all the whitespace at the beginning of the next line ignored), rather than using append operations or hacks involving {
and }
for s!
and m!
strings.
Style-wise, we suggest for long messages that the body of the message start on the next line if possible, by starting the message with a string gap sequence. This eliminates needing to decide whether to indent continuing lines at the "
or at the next column. For example:
logError m!"\
Tactic 'more_magic' cannot \
apply expression{indentD e}\n\
due to some reason or another."
Note that to get whitespace to appear between one line and the next, you include it before the \
.
@@ -243,11 +243,11 @@ def borelToRefl (e : Expr) (i : FVarId) : TacticM Unit := do
liftMetaTactic fun m => return [← subst m i]
catch _ =>
let et ← synthInstance (← mkAppOptM ``TopologicalSpace #[e])
- throwError
- (m!"`‹TopologicalSpace {e}› := {et}" ++ MessageData.ofFormat Format.line ++
- m!"depends on" ++ MessageData.ofFormat Format.line ++
- m!"{Expr.fvar i} : MeasurableSpace {e}`" ++ MessageData.ofFormat Format.line ++
- "so `borelize` isn't avaliable")
+ throwError m!"\
+ `‹TopologicalSpace {e}› := {et}\n\
+ depends on\n\
+ {Expr.fvar i} : MeasurableSpace {e}`\n\
+ so `borelize` isn't avaliable"
evalTactic <| ← `(tactic|
refine_lift
letI : MeasurableSpace $te := borel $te
cases x with | ...
instead of cases x; case => ...
(#9321)
This converts usages of the pattern
cases h
case inl h' => ...
case inr h' => ...
which derive from mathported code, to the "structured cases
" syntax:
cases h with
| inl h' => ...
| inr h' => ...
The case where the subgoals are handled with ·
instead of case
is more contentious (and much more numerous) so I left those alone. This pattern also appears with cases'
, induction
, induction'
, and rcases
. Furthermore, there is a similar transformation for by_cases
:
by_cases h : cond
case pos => ...
case neg => ...
is replaced by:
if h : cond then
...
else
...
Co-authored-by: Mario Carneiro <di.gama@gmail.com>
@@ -82,12 +82,11 @@ theorem borel_eq_generateFrom_of_subbasis {s : Set (Set α)} [t : TopologicalSpa
le_antisymm
(generateFrom_le fun u (hu : t.IsOpen u) => by
rw [hs] at hu
- induction hu
- case basic u hu => exact GenerateMeasurable.basic u hu
- case univ => exact @MeasurableSet.univ α (generateFrom s)
- case inter s₁ s₂ _ _ hs₁ hs₂ => exact @MeasurableSet.inter α (generateFrom s) _ _ hs₁ hs₂
- case
- sUnion f hf ih =>
+ induction hu with
+ | basic u hu => exact GenerateMeasurable.basic u hu
+ | univ => exact @MeasurableSet.univ α (generateFrom s)
+ | inter s₁ s₂ _ _ hs₁ hs₂ => exact @MeasurableSet.inter α (generateFrom s) _ _ hs₁ hs₂
+ | sUnion f hf ih =>
rcases isOpen_sUnion_countable f (by rwa [hs]) with ⟨v, hv, vf, vu⟩
rw [← vu]
exact @MeasurableSet.sUnion α (generateFrom s) _ hv fun x xv => ih _ (vf xv))
cases'
(#9171)
I literally went through and regex'd some uses of cases'
, replacing them with rcases
; this is meant to be a low effort PR as I hope that tools can do this in the future.
rcases
is an easier replacement than cases
, though with better tools we could in future do a second pass converting simple rcases
added here (and existing ones) to cases
.
@@ -385,7 +385,7 @@ theorem measurable_of_isClosed {f : δ → γ} (hf : ∀ s, IsClosed s → Measu
theorem measurable_of_isClosed' {f : δ → γ}
(hf : ∀ s, IsClosed s → s.Nonempty → s ≠ univ → MeasurableSet (f ⁻¹' s)) : Measurable f := by
apply measurable_of_isClosed; intro s hs
- cases' eq_empty_or_nonempty s with h1 h1
+ rcases eq_empty_or_nonempty s with h1 | h1
· simp [h1]
by_cases h2 : s = univ
· simp [h2]
@@ -101,11 +101,11 @@ theorem TopologicalSpace.IsTopologicalBasis.borel_eq_generateFrom [TopologicalSp
borel_eq_generateFrom_of_subbasis hs.eq_generateFrom
#align topological_space.is_topological_basis.borel_eq_generate_from TopologicalSpace.IsTopologicalBasis.borel_eq_generateFrom
-theorem isPiSystem_isOpen [TopologicalSpace α] : IsPiSystem (IsOpen : Set α → Prop) :=
+theorem isPiSystem_isOpen [TopologicalSpace α] : IsPiSystem ({s : Set α | IsOpen s}) :=
fun _s hs _t ht _ => IsOpen.inter hs ht
#align is_pi_system_is_open isPiSystem_isOpen
-lemma isPiSystem_isClosed [TopologicalSpace α] : IsPiSystem (IsClosed : Set α → Prop) :=
+lemma isPiSystem_isClosed [TopologicalSpace α] : IsPiSystem ({s : Set α | IsClosed s}) :=
fun _s hs _t ht _ ↦ IsClosed.inter hs ht
theorem borel_eq_generateFrom_isClosed [TopologicalSpace α] :
@@ -130,7 +130,9 @@ theorem borel_eq_generateFrom_Iio : borel α = .generateFrom (range Iio) := by
letI : MeasurableSpace α := MeasurableSpace.generateFrom (range Iio)
have H : ∀ a : α, MeasurableSet (Iio a) := fun a => GenerateMeasurable.basic _ ⟨_, rfl⟩
refine' generateFrom_le _
- rintro _ ⟨a, rfl | rfl⟩ <;> [skip; apply H]
+ rintro _ ⟨a, rfl | rfl⟩
+ swap
+ · apply H
by_cases h : ∃ a', ∀ b, a < b ↔ a' ≤ b
· rcases h with ⟨a', ha'⟩
rw [(_ : Ioi a = (Iio a')ᶜ)]
@@ -151,7 +153,6 @@ theorem borel_eq_generateFrom_Iio : borel α = .generateFrom (range Iio) := by
⟨fun ab => le_of_not_lt fun h' => h ⟨b, ab, h'⟩, lt_of_lt_of_le ax⟩⟩) with ⟨a', h₁, h₂⟩
· exact ⟨a', h₁, le_of_lt h₂⟩
rw [this]
- skip
apply MeasurableSet.iUnion
exact fun _ => (H _).compl
· rw [forall_range_iff]
@@ -1285,7 +1286,7 @@ protected theorem Monotone.measurable [LinearOrder β] [OrderClosedTopology β]
theorem aemeasurable_restrict_of_monotoneOn [LinearOrder β] [OrderClosedTopology β] {μ : Measure β}
{s : Set β} (hs : MeasurableSet s) {f : β → α} (hf : MonotoneOn f s) :
AEMeasurable f (μ.restrict s) :=
- have : Monotone (f ∘ (↑) : s → α) := fun ⟨x, hx⟩ ⟨y, hy⟩=> fun (hxy : x ≤ y) => hf hx hy hxy
+ have : Monotone (f ∘ (↑) : s → α) := fun ⟨x, hx⟩ ⟨y, hy⟩ => fun (hxy : x ≤ y) => hf hx hy hxy
aemeasurable_restrict_of_measurable_subtype hs this.measurable
#align ae_measurable_restrict_of_monotone_on aemeasurable_restrict_of_monotoneOn
MeasurableSpace
instance for ULift
(#8967)
Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: sgouezel <sebastien.gouezel@univ-rennes1.fr>
@@ -1107,6 +1107,19 @@ instance Prod.borelSpace [SecondCountableTopologyEither α β] :
⟨le_antisymm prod_le_borel_prod OpensMeasurableSpace.borel_le⟩
#align prod.borel_space Prod.borelSpace
+/-- Given a measurable embedding to a Borel space which is also a topological embedding, then the
+source space is also a Borel space. -/
+lemma MeasurableEmbedding.borelSpace {α β : Type*} [MeasurableSpace α] [TopologicalSpace α]
+ [MeasurableSpace β] [TopologicalSpace β] [hβ : BorelSpace β] {e : α → β}
+ (h'e : MeasurableEmbedding e) (h''e : Inducing e) :
+ BorelSpace α := by
+ constructor
+ have : MeasurableSpace.comap e (borel β) = ‹_› := by simpa [hβ.measurable_eq] using h'e.comap_eq
+ rw [← this, ← borel_comap, h''e.induced]
+
+instance _root_.ULift.instBorelSpace [BorelSpace α] : BorelSpace (ULift α) :=
+ MeasurableEquiv.ulift.measurableEmbedding.borelSpace Homeomorph.ulift.inducing
+
instance DiscreteMeasurableSpace.toBorelSpace {α : Type*} [TopologicalSpace α] [DiscreteTopology α]
[MeasurableSpace α] [DiscreteMeasurableSpace α] : BorelSpace α := by
constructor; ext; simp [MeasurableSpace.measurableSet_generateFrom, measurableSet_discrete]
Rationale: this instance creates (empty) data out of nothing, which may conflict with other data. If you have in the context [Fintype i]
and case on whether i
is empty or not, then this gave two non-defeq instances of [Fintype i]
around.
@@ -1334,7 +1334,7 @@ theorem measurableSet_of_mem_nhdsWithin_Ioi {s : Set α} (h : ∀ x ∈ s, s ∈
lemma measurableSet_bddAbove_range {ι} [Countable ι] {f : ι → δ → α} (hf : ∀ i, Measurable (f i)) :
MeasurableSet {b | BddAbove (range (fun i ↦ f i b))} := by
rcases isEmpty_or_nonempty α with hα|hα
- · have : ∀ b, range (fun i ↦ f i b) = ∅ := fun b ↦ Iff.mp toFinset_eq_empty rfl
+ · have : ∀ b, range (fun i ↦ f i b) = ∅ := fun b ↦ eq_empty_of_isEmpty _
simp [this]
have A : ∀ (i : ι) (c : α), MeasurableSet {x | f i x ≤ c} := by
intro i c
@@ -138,7 +138,9 @@ theorem borel_eq_generateFrom_Iio : borel α = .generateFrom (range Iio) := by
simp [Set.ext_iff, ha']
· rcases isOpen_iUnion_countable (fun a' : { a' : α // a < a' } => { b | a'.1 < b }) fun a' =>
isOpen_lt' _ with ⟨v, ⟨hv⟩, vu⟩
- simp [Set.ext_iff] at vu
+ simp? [Set.ext_iff] at vu says
+ simp only [Set.ext_iff, mem_iUnion, mem_setOf_eq, exists_prop, Subtype.exists,
+ exists_and_right] at vu
have : Ioi a = ⋃ x : v, (Iio x.1.1)ᶜ := by
simp only [compl_Iio, iUnion_coe_set, Set.ext_iff, mem_Ioi, mem_iUnion, mem_Ici,
exists_prop, Subtype.exists, exists_and_right]
@@ -1105,6 +1105,10 @@ instance Prod.borelSpace [SecondCountableTopologyEither α β] :
⟨le_antisymm prod_le_borel_prod OpensMeasurableSpace.borel_le⟩
#align prod.borel_space Prod.borelSpace
+instance DiscreteMeasurableSpace.toBorelSpace {α : Type*} [TopologicalSpace α] [DiscreteTopology α]
+ [MeasurableSpace α] [DiscreteMeasurableSpace α] : BorelSpace α := by
+ constructor; ext; simp [MeasurableSpace.measurableSet_generateFrom, measurableSet_discrete]
+
protected theorem Embedding.measurableEmbedding {f : α → β} (h₁ : Embedding f)
(h₂ : MeasurableSet (range f)) : MeasurableEmbedding f :=
show MeasurableEmbedding
This PR adds a type class HasOuterApproxClosed
for topological spaces in which indicator functions of closed sets can be approximated from above by sequences of bounded continuous functions. All pseudo-(e)metrizable spaces satisfy this.
In spaces with this property, finite Borel measures are characterized by the integrals of bounded continuous functions. Also weak limits of finite Borel measures are unique. More precisely, the topologies of weak convergence of finite Borel measures and of Borel probability measures are Hausdorff.
Co-authored-by: Peter Pfaffelhuber <p.p@stochastik.uni-freiburg.de>
Co-authored-by: kkytola <39528102+kkytola@users.noreply.github.com> Co-authored-by: kkytola <“kalle.kytola@aalto.fi”>
@@ -105,6 +105,9 @@ theorem isPiSystem_isOpen [TopologicalSpace α] : IsPiSystem (IsOpen : Set α
fun _s hs _t ht _ => IsOpen.inter hs ht
#align is_pi_system_is_open isPiSystem_isOpen
+lemma isPiSystem_isClosed [TopologicalSpace α] : IsPiSystem (IsClosed : Set α → Prop) :=
+ fun _s hs _t ht _ ↦ IsClosed.inter hs ht
+
theorem borel_eq_generateFrom_isClosed [TopologicalSpace α] :
borel α = .generateFrom { s | IsClosed s } :=
le_antisymm
Extracted from the PFR Project: https://github.com/teorth/pfr/pull/67
@@ -283,6 +283,12 @@ instance Subtype.borelSpace {α : Type*} [TopologicalSpace α] [MeasurableSpace
⟨by borelize α; symm; apply borel_comap⟩
#align subtype.borel_space Subtype.borelSpace
+instance Countable.instBorelSpace [Countable α] [MeasurableSpace α] [MeasurableSingletonClass α]
+ [TopologicalSpace α] [DiscreteTopology α] : BorelSpace α := by
+ have : ∀ s, @MeasurableSet α inferInstance s := fun s ↦ s.to_countable.measurableSet
+ have : ∀ s, @MeasurableSet α (borel α) s := fun s ↦ measurableSet_generateFrom (isOpen_discrete s)
+ exact ⟨by aesop⟩
+
instance Subtype.opensMeasurableSpace {α : Type*} [TopologicalSpace α] [MeasurableSpace α]
[h : OpensMeasurableSpace α] (s : Set α) : OpensMeasurableSpace s :=
⟨by
exact_mod_cast
tactic with mod_cast
elaborator where possible (#8404)
We still have the exact_mod_cast
tactic, used in a few places, which somehow (?) works a little bit harder to prevent the expected type influencing the elaboration of the term. I would like to get to the bottom of this, and it will be easier once the only usages of exact_mod_cast
are the ones that don't work using the term elaborator by itself.
Co-authored-by: Scott Morrison <scott.morrison@gmail.com>
@@ -2276,7 +2276,7 @@ theorem exists_spanning_measurableSet_le {m : MeasurableSpace α} {f : α →
refine' Set.iUnion_inter_of_monotone (monotone_spanningSets μ) fun i j hij x => _
simp only [Set.mem_setOf_eq]
refine' fun hif => hif.trans _
- exact_mod_cast hij
+ exact mod_cast hij
rw [this, norm_sets_spanning, iUnion_spanningSets μ, Set.inter_univ]
section NormedAddCommGroup
This is the supremum of
along with some minor fixes from failures on nightly-testing as Mathlib master
is merged into it.
Note that some PRs for changes that are already compatible with the current toolchain and will be necessary have already been split out: #8380.
I am hopeful that in future we will be able to progressively merge adaptation PRs into a bump/v4.X.0
branch, so we never end up with a "big merge" like this. However one of these adaptation PRs (#8056) predates my new scheme for combined CI, and it wasn't possible to keep that PR viable in the meantime.
In particular this includes adjustments for the Lean PRs
We can get rid of all the
local macro_rules | `($x ^ $y) => `(HPow.hPow $x $y) -- Porting note: See issue [lean4#2220](https://github.com/leanprover/lean4/pull/2220)
macros across Mathlib (and in any projects that want to write natural number powers of reals).
Changes the default behaviour of simp
to (config := {decide := false})
. This makes simp
(and consequentially norm_num
) less powerful, but also more consistent, and less likely to blow up in long failures. This requires a variety of changes: changing some previously by simp
or norm_num
to decide
or rfl
, or adding (config := {decide := true})
.
This changed the behaviour of simp
so that simp [f]
will only unfold "fully applied" occurrences of f
. The old behaviour can be recovered with simp (config := { unfoldPartialApp := true })
. We may in future add a syntax for this, e.g. simp [!f]
; please provide feedback! In the meantime, we have made the following changes:
(config := { unfoldPartialApp := true })
in some places, to recover the old behaviour@[eqns]
to manually adjust the equation lemmas for a particular definition, recovering the old behaviour just for that definition. See #8371, where we do this for Function.comp
and Function.flip
.This change in Lean may require further changes down the line (e.g. adding the !f
syntax, and/or upstreaming the special treatment for Function.comp
and Function.flip
, and/or removing this special treatment). Please keep an open and skeptical mind about these changes!
Co-authored-by: leanprover-community-mathlib4-bot <leanprover-community-mathlib4-bot@users.noreply.github.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Mauricio Collares <mauricio@collares.org>
@@ -1632,10 +1632,17 @@ theorem measure_eq_measure_preimage_add_measure_tsum_Ico_zpow [MeasurableSpace
· exact hs.inter (hf measurableSet_Ioi)
have B : μ (s ∩ f ⁻¹' Ioi 0) = μ (s ∩ f ⁻¹' {∞}) + μ (s ∩ f ⁻¹' Ioo 0 ∞) := by
rw [← measure_union]
- · rw [← inter_union_distrib_left, ← preimage_union,
- ← Ioo_union_Ici_eq_Ioi ENNReal.zero_ne_top.lt_top, Ici_top, union_comm]
- · refine disjoint_singleton_left.mpr right_mem_Ioo.mp
- |>.preimage f |>.inter_right' s |>.inter_left' s
+ · rw [← inter_union_distrib_left]
+ congr
+ ext x
+ simp only [mem_singleton_iff, mem_union, mem_Ioo, mem_Ioi, mem_preimage]
+ have H : f x = ∞ ∨ f x < ∞ := eq_or_lt_of_le le_top
+ cases' H with H H
+ · simp only [H, eq_self_iff_true, or_false_iff, zero_lt_top, not_top_lt, and_false_iff]
+ · simp only [H, H.ne, and_true_iff, false_or_iff]
+ · refine disjoint_left.2 fun x hx h'x => ?_
+ have : f x < ∞ := h'x.2.2
+ exact lt_irrefl _ (this.trans_le (le_of_eq hx.2.symm))
· exact hs.inter (hf measurableSet_Ioo)
have C : μ (s ∩ f ⁻¹' Ioo 0 ∞) =
∑' n : ℤ, μ (s ∩ f ⁻¹' Ico ((t : ℝ≥0∞) ^ n) ((t : ℝ≥0∞) ^ (n + 1))) := by
InnerRegular
of measures (#8251)
Towards general uniqueness results for the Haar measure, we introduce a new class of regular measures called InnerRegular
, for measures which are inner regular with respect to compact sets. We also introduce InnerRegularWRT
for more general classes of inner regular measures with properties to be prescribed, and InnerRegularCompactLTTop
for measures which are regular for finite measure sets with respect to compact sets -- the latter property is the common denominator to the two main classes of Haar measures, the regular ones and the inner regular ones.
@@ -1547,15 +1547,12 @@ def Homemorph.toMeasurableEquiv (h : α ≃ₜ β) : α ≃ᵐ β where
measurable_invFun := h.continuous_invFun.measurable
#align homemorph.to_measurable_equiv Homemorph.toMeasurableEquiv
-protected theorem IsFiniteMeasureOnCompacts.map {α : Type*} {m0 : MeasurableSpace α}
- [TopologicalSpace α] [OpensMeasurableSpace α] {β : Type*} [MeasurableSpace β]
- [TopologicalSpace β] [BorelSpace β] [T2Space β] (μ : Measure α) [IsFiniteMeasureOnCompacts μ]
- (f : α ≃ₜ β) : IsFiniteMeasureOnCompacts (Measure.map f μ) :=
- ⟨by
- intro K hK
- rw [Measure.map_apply f.measurable hK.measurableSet]
- apply IsCompact.measure_lt_top
- rwa [f.isCompact_preimage]⟩
+protected theorem IsFiniteMeasureOnCompacts.map (μ : Measure α) [IsFiniteMeasureOnCompacts μ]
+ (f : α ≃ₜ β) : IsFiniteMeasureOnCompacts (Measure.map f μ) := by
+ refine ⟨fun K hK ↦ ?_⟩
+ change Measure.map f.toMeasurableEquiv μ K < ∞
+ rw [MeasurableEquiv.map_apply]
+ exact IsCompact.measure_lt_top (f.isCompact_preimage.2 hK)
#align is_finite_measure_on_compacts.map IsFiniteMeasureOnCompacts.map
end BorelSpace
If a measure μ
is sigma-finite, then μ.withDensity f
is sigma-finite for any a.e.-measurable and a.e. finite function f
.
@@ -2004,6 +2004,11 @@ theorem Measurable.ennreal_ofReal {f : α → ℝ} (hf : Measurable f) :
ENNReal.continuous_ofReal.measurable.comp hf
#align measurable.ennreal_of_real Measurable.ennreal_ofReal
+@[measurability]
+lemma AEMeasurable.ennreal_ofReal {f : α → ℝ} {μ : Measure α} (hf : AEMeasurable f μ) :
+ AEMeasurable (fun x ↦ ENNReal.ofReal (f x)) μ :=
+ ENNReal.continuous_ofReal.measurable.comp_aemeasurable hf
+
@[simp, norm_cast]
theorem measurable_coe_nnreal_real_iff {f : α → ℝ≥0} :
Measurable (fun x => f x : α → ℝ) ↔ Measurable f :=
@@ -2237,6 +2242,39 @@ theorem AEMeasurable.coe_ereal_ennreal {f : α → ℝ≥0∞} {μ : Measure α}
measurable_coe_ennreal_ereal.comp_aemeasurable hf
#align ae_measurable.coe_ereal_ennreal AEMeasurable.coe_ereal_ennreal
+/-- If a function `f : α → ℝ≥0` is measurable and the measure is σ-finite, then there exists
+spanning measurable sets with finite measure on which `f` is bounded.
+See also `StronglyMeasurable.exists_spanning_measurableSet_norm_le` for functions into normed
+groups. -/
+theorem exists_spanning_measurableSet_le {m : MeasurableSpace α} {f : α → ℝ≥0}
+ (hf : Measurable f) (μ : Measure α) [SigmaFinite μ] :
+ ∃ s : ℕ → Set α,
+ (∀ n, MeasurableSet (s n) ∧ μ (s n) < ∞ ∧ ∀ x ∈ s n, f x ≤ n) ∧
+ ⋃ i, s i = Set.univ := by
+ let sigma_finite_sets := spanningSets μ
+ let norm_sets := fun n : ℕ => { x | f x ≤ n }
+ have norm_sets_spanning : ⋃ n, norm_sets n = Set.univ := by
+ ext1 x
+ simp only [Set.mem_iUnion, Set.mem_setOf_eq, Set.mem_univ, iff_true_iff]
+ exact exists_nat_ge (f x)
+ let sets n := sigma_finite_sets n ∩ norm_sets n
+ have h_meas : ∀ n, MeasurableSet (sets n) := by
+ refine' fun n => MeasurableSet.inter _ _
+ · exact measurable_spanningSets μ n
+ · exact hf measurableSet_Iic
+ have h_finite : ∀ n, μ (sets n) < ∞ := by
+ refine' fun n => (measure_mono (Set.inter_subset_left _ _)).trans_lt _
+ exact measure_spanningSets_lt_top μ n
+ refine' ⟨sets, fun n => ⟨h_meas n, h_finite n, _⟩, _⟩
+ · exact fun x hx => hx.2
+ · have :
+ ⋃ i, sigma_finite_sets i ∩ norm_sets i = (⋃ i, sigma_finite_sets i) ∩ ⋃ i, norm_sets i := by
+ refine' Set.iUnion_inter_of_monotone (monotone_spanningSets μ) fun i j hij x => _
+ simp only [Set.mem_setOf_eq]
+ refine' fun hif => hif.trans _
+ exact_mod_cast hij
+ rw [this, norm_sets_spanning, iUnion_spanningSets μ, Set.inter_univ]
+
section NormedAddCommGroup
variable [NormedAddCommGroup α] [OpensMeasurableSpace α] [MeasurableSpace β]
@@ -370,13 +370,15 @@ theorem measurable_of_isClosed {f : δ → γ} (hf : ∀ s, IsClosed s → Measu
rw [← MeasurableSet.compl_iff, ← preimage_compl]; apply hf; rw [isClosed_compl_iff]; exact hs
#align measurable_of_is_closed measurable_of_isClosed
-theorem measurable_of_is_closed' {f : δ → γ}
+theorem measurable_of_isClosed' {f : δ → γ}
(hf : ∀ s, IsClosed s → s.Nonempty → s ≠ univ → MeasurableSet (f ⁻¹' s)) : Measurable f := by
apply measurable_of_isClosed; intro s hs
- cases' eq_empty_or_nonempty s with h1 h1; · simp [h1]
- by_cases h2 : s = univ; · simp [h2]
+ cases' eq_empty_or_nonempty s with h1 h1
+ · simp [h1]
+ by_cases h2 : s = univ
+ · simp [h2]
exact hf s hs h1 h2
-#align measurable_of_is_closed' measurable_of_is_closed'
+#align measurable_of_is_closed' measurable_of_isClosed'
instance nhds_isMeasurablyGenerated (a : α) : (𝓝 a).IsMeasurablyGenerated := by
rw [nhds, iInf_subtype']
@@ -431,7 +433,8 @@ instance (priority := 100) secondCountableTopologyEither_of_left (α β : Type*)
instance (priority := 100) secondCountableTopologyEither_of_right (α β : Type*)
[TopologicalSpace α] [TopologicalSpace β] [SecondCountableTopology β] :
- SecondCountableTopologyEither α β where out := Or.inr (by infer_instance)
+ SecondCountableTopologyEither α β where
+ out := Or.inr (by infer_instance)
#align second_countable_topology_either_of_right secondCountableTopologyEither_of_right
/-- If either `α` or `β` has second-countable topology, then the open sets in `α × β` belong to the
@@ -1116,8 +1119,8 @@ variable [LinearOrder α] [OrderTopology α] [SecondCountableTopology α]
theorem measurable_of_Iio {f : δ → α} (hf : ∀ x, MeasurableSet (f ⁻¹' Iio x)) : Measurable f := by
convert measurable_generateFrom (α := δ) _
- exact BorelSpace.measurable_eq.trans (borel_eq_generateFrom_Iio _)
- rintro _ ⟨x, rfl⟩; exact hf x
+ · exact BorelSpace.measurable_eq.trans (borel_eq_generateFrom_Iio _)
+ · rintro _ ⟨x, rfl⟩; exact hf x
#align measurable_of_Iio measurable_of_Iio
theorem UpperSemicontinuous.measurable [TopologicalSpace δ] [OpensMeasurableSpace δ] {f : δ → α}
@@ -1127,8 +1130,8 @@ theorem UpperSemicontinuous.measurable [TopologicalSpace δ] [OpensMeasurableSpa
theorem measurable_of_Ioi {f : δ → α} (hf : ∀ x, MeasurableSet (f ⁻¹' Ioi x)) : Measurable f := by
convert measurable_generateFrom (α := δ) _
- exact BorelSpace.measurable_eq.trans (borel_eq_generateFrom_Ioi _)
- rintro _ ⟨x, rfl⟩; exact hf x
+ · exact BorelSpace.measurable_eq.trans (borel_eq_generateFrom_Ioi _)
+ · rintro _ ⟨x, rfl⟩; exact hf x
#align measurable_of_Ioi measurable_of_Ioi
theorem LowerSemicontinuous.measurable [TopologicalSpace δ] [OpensMeasurableSpace δ] {f : δ → α}
@@ -1169,9 +1172,7 @@ theorem Measurable.isLUB_of_mem {ι} [Countable ι] {f : ι → δ → α} {g g'
rcases isEmpty_or_nonempty ι with hι|⟨⟨i⟩⟩
· rcases eq_empty_or_nonempty s with rfl|⟨x, hx⟩
· convert g'_meas
- ext x
- simp only [compl_empty] at hg'
- exact hg' (mem_univ x)
+ rwa [compl_empty, eqOn_univ] at hg'
· have A : ∀ b ∈ s, IsBot (g b) := by simpa using hg
have B : ∀ b ∈ s, g b = g x := by
intro b hb
@@ -1274,8 +1275,8 @@ theorem aemeasurable_restrict_of_antitoneOn [LinearOrder β] [OrderClosedTopolog
theorem measurableSet_of_mem_nhdsWithin_Ioi_aux {s : Set α} (h : ∀ x ∈ s, s ∈ 𝓝[>] x)
(h' : ∀ x ∈ s, ∃ y, x < y) : MeasurableSet s := by
choose! M hM using h'
- suffices H : (s \ interior s).Countable
- · have : s = interior s ∪ s \ interior s := by rw [union_diff_cancel interior_subset]
+ suffices H : (s \ interior s).Countable by
+ have : s = interior s ∪ s \ interior s := by rw [union_diff_cancel interior_subset]
rw [this]
exact isOpen_interior.measurableSet.union H.measurableSet
have A : ∀ x ∈ s, ∃ y ∈ Ioi x, Ioo x y ⊆ s := fun x hx =>
@@ -1348,16 +1349,20 @@ end LinearOrder
@[measurability]
theorem Measurable.iSup_Prop {α} [MeasurableSpace α] [ConditionallyCompleteLattice α]
- (p : Prop) {f : δ → α} (hf : Measurable f) : Measurable fun b => ⨆ _ : p, f b :=
- _root_.by_cases (fun h : p => by convert hf; funext; exact ciSup_pos h) fun h : ¬p => by
- convert measurable_const using 1; funext; exact ciSup_neg h
+ (p : Prop) {f : δ → α} (hf : Measurable f) : Measurable fun b => ⨆ _ : p, f b := by
+ simp_rw [ciSup_eq_ite]
+ split_ifs with h
+ · exact hf
+ · exact measurable_const
#align measurable.supr_Prop Measurable.iSup_Prop
@[measurability]
theorem Measurable.iInf_Prop {α} [MeasurableSpace α] [ConditionallyCompleteLattice α]
- (p : Prop) {f : δ → α} (hf : Measurable f) : Measurable fun b => ⨅ _ : p, f b :=
- _root_.by_cases (fun h : p => by convert hf; funext; exact ciInf_pos h) fun h : ¬p => by
- convert measurable_const using 1; funext; exact ciInf_neg h
+ (p : Prop) {f : δ → α} (hf : Measurable f) : Measurable fun b => ⨅ _ : p, f b := by
+ simp_rw [ciInf_eq_ite]
+ split_ifs with h
+ · exact hf
+ · exact measurable_const
#align measurable.infi_Prop Measurable.iInf_Prop
section ConditionallyCompleteLinearOrder
@@ -1442,11 +1447,7 @@ theorem aemeasurable_biSup {ι} {μ : Measure δ} (s : Set ι) {f : ι → δ
have : ∀ i ∈ s, ∀ᵐ b ∂μ, f i b = g i b :=
fun i hi ↦ by simpa [hi] using (hf i hi).ae_eq_mk
filter_upwards [(ae_ball_iff hs).2 this] with b hb
- congr
- ext i
- congr
- ext hi
- simp [hi, hb]
+ exact iSup_congr fun i => iSup_congr (hb i)
#align ae_measurable_bsupr aemeasurable_biSup
theorem measurable_biInf {ι} (s : Set ι) {f : ι → δ → α} (hs : s.Countable)
@@ -1627,30 +1628,17 @@ theorem measure_eq_measure_preimage_add_measure_tsum_Ico_zpow [MeasurableSpace
∑' n : ℤ, μ (s ∩ f ⁻¹' Ico ((t : ℝ≥0∞) ^ n) ((t : ℝ≥0∞) ^ (n + 1))) := by
have A : μ s = μ (s ∩ f ⁻¹' {0}) + μ (s ∩ f ⁻¹' Ioi 0) := by
rw [← measure_union]
- · congr 1
- ext x
- have : 0 = f x ∨ 0 < f x := eq_or_lt_of_le bot_le
- rw [eq_comm] at this
- simp only [← and_or_left, this, mem_singleton_iff, mem_inter_iff, and_true_iff, mem_union,
- mem_Ioi, mem_preimage]
- · refine disjoint_left.2 fun x hx h'x => ?_
- have : 0 < f x := h'x.2
- exact lt_irrefl 0 (this.trans_le hx.2.le)
+ · rw [← inter_distrib_left, ← preimage_union, singleton_union, Ioi_insert, ← _root_.bot_eq_zero,
+ Ici_bot, preimage_univ, inter_univ]
+ · exact disjoint_singleton_left.mpr not_mem_Ioi_self
+ |>.preimage f |>.inter_right' s |>.inter_left' s
· exact hs.inter (hf measurableSet_Ioi)
have B : μ (s ∩ f ⁻¹' Ioi 0) = μ (s ∩ f ⁻¹' {∞}) + μ (s ∩ f ⁻¹' Ioo 0 ∞) := by
rw [← measure_union]
- · rw [← inter_union_distrib_left]
- congr
- ext x
- simp only [mem_singleton_iff, mem_union, mem_Ioo, mem_Ioi, mem_preimage]
- have H : f x = ∞ ∨ f x < ∞ := eq_or_lt_of_le le_top
- cases' H with H H
- · simp only [H, eq_self_iff_true, or_false_iff, WithTop.zero_lt_top, not_top_lt,
- and_false_iff]
- · simp only [H, H.ne, and_true_iff, false_or_iff]
- · refine disjoint_left.2 fun x hx h'x => ?_
- have : f x < ∞ := h'x.2.2
- exact lt_irrefl _ (this.trans_le (le_of_eq hx.2.symm))
+ · rw [← inter_union_distrib_left, ← preimage_union,
+ ← Ioo_union_Ici_eq_Ioi ENNReal.zero_ne_top.lt_top, Ici_top, union_comm]
+ · refine disjoint_singleton_left.mpr right_mem_Ioo.mp
+ |>.preimage f |>.inter_right' s |>.inter_left' s
· exact hs.inter (hf measurableSet_Ioo)
have C : μ (s ∩ f ⁻¹' Ioo 0 ∞) =
∑' n : ℤ, μ (s ∩ f ⁻¹' Ico ((t : ℝ≥0∞) ^ n) ((t : ℝ≥0∞) ^ (n + 1))) := by
@@ -1938,7 +1926,8 @@ def finiteSpanningSetsInIooRat (μ : Measure ℝ) [IsLocallyFiniteMeasure μ] :
simp only [mem_iUnion, mem_singleton_iff]
refine' ⟨-(n + 1 : ℕ), n + 1, _, by simp⟩
-- TODO: norm_cast fails here?
- exact (neg_nonpos.2 (@Nat.cast_nonneg ℚ _ (n + 1))).trans_lt n.cast_add_one_pos
+ push_cast
+ exact neg_lt_self n.cast_add_one_pos
finite n := measure_Ioo_lt_top
spanning :=
iUnion_eq_univ_iff.2 fun x =>
μ.singularPart (r • ν) = μ.singularPart ν
(#8040)
Prove 3 lemmas:
MeasurableSMul ℝ≥0 ℝ≥0∞
instance haveLebesgueDecomposition_smul_right (μ ν : Measure α) [HaveLebesgueDecomposition μ ν] (r : ℝ≥0) : μ.HaveLebesgueDecomposition (r • ν)
theorem singularPart_smul_right (μ ν : Measure α) (r : ℝ≥0) (hr : r ≠ 0) : μ.singularPart (r • ν) = μ.singularPart ν
@@ -2101,6 +2101,14 @@ instance instMeasurableInv : MeasurableInv ℝ≥0∞ :=
⟨continuous_inv.measurable⟩
#align ennreal.has_measurable_inv ENNReal.instMeasurableInv
+instance : MeasurableSMul ℝ≥0 ℝ≥0∞ where
+ measurable_const_smul := by
+ simp_rw [ENNReal.smul_def]
+ exact fun _ ↦ MeasurableSMul.measurable_const_smul _
+ measurable_smul_const := fun x ↦ by
+ simp_rw [ENNReal.smul_def]
+ exact measurable_coe_nnreal_ennreal.mul_const _
+
end ENNReal
@[measurability]
Filter.hasAntitoneBasis_atTop
;Filter.HasAntitoneBasis.iInf_principal
;ProbabilityTheory.measure_eq_zero_or_one_of_indepSetCat_self
->
ProbabilityTheory.measure_eq_zero_or_one_of_indepSet_self
.MeasureTheory.tendsto_measure_iUnion
;MeasureTheory.tendsto_measure_iInter
;Monotone.directed_le
, Monotone.directed_ge
;Antitone.directed_le
, Antitone.directed_ge
;directed_of_sup
, renamed to directed_of_isDirected_le
;directed_of_inf
, renamed to directed_of_isDirected_ge
;tendsto_nat_cast_atTop_atTop
;Filter.Eventually.nat_cast_atTop
;atTop_hasAntitoneBasis_of_archimedean
;@@ -768,7 +768,7 @@ theorem ext_of_Ioc_finite {α : Type*} [TopologicalSpace α] {m : MeasurableSpac
exact h hab
#align measure_theory.measure.ext_of_Ioc_finite MeasureTheory.Measure.ext_of_Ioc_finite
-/-- Two measures which are finite on closed-open intervals are equal if the agree on all
+/-- Two measures which are finite on closed-open intervals are equal if they agree on all
closed-open intervals. -/
theorem ext_of_Ico' {α : Type*} [TopologicalSpace α] {m : MeasurableSpace α}
[SecondCountableTopology α] [LinearOrder α] [OrderTopology α] [BorelSpace α] [NoMaxOrder α]
@@ -794,7 +794,7 @@ theorem ext_of_Ico' {α : Type*} [TopologicalSpace α] {m : MeasurableSpace α}
exact h hlt
#align measure_theory.measure.ext_of_Ico' MeasureTheory.Measure.ext_of_Ico'
-/-- Two measures which are finite on closed-open intervals are equal if the agree on all
+/-- Two measures which are finite on closed-open intervals are equal if they agree on all
open-closed intervals. -/
theorem ext_of_Ioc' {α : Type*} [TopologicalSpace α] {m : MeasurableSpace α}
[SecondCountableTopology α] [LinearOrder α] [OrderTopology α] [BorelSpace α] [NoMinOrder α]
@@ -804,7 +804,7 @@ theorem ext_of_Ioc' {α : Type*} [TopologicalSpace α] {m : MeasurableSpace α}
exacts [hμ hab, h hab]
#align measure_theory.measure.ext_of_Ioc' MeasureTheory.Measure.ext_of_Ioc'
-/-- Two measures which are finite on closed-open intervals are equal if the agree on all
+/-- Two measures which are finite on closed-open intervals are equal if they agree on all
closed-open intervals. -/
theorem ext_of_Ico {α : Type*} [TopologicalSpace α] {_m : MeasurableSpace α}
[SecondCountableTopology α] [ConditionallyCompleteLinearOrder α] [OrderTopology α]
@@ -813,7 +813,7 @@ theorem ext_of_Ico {α : Type*} [TopologicalSpace α] {_m : MeasurableSpace α}
μ.ext_of_Ico' ν (fun _ _ _ => measure_Ico_lt_top.ne) h
#align measure_theory.measure.ext_of_Ico MeasureTheory.Measure.ext_of_Ico
-/-- Two measures which are finite on closed-open intervals are equal if the agree on all
+/-- Two measures which are finite on closed-open intervals are equal if they agree on all
open-closed intervals. -/
theorem ext_of_Ioc {α : Type*} [TopologicalSpace α] {_m : MeasurableSpace α}
[SecondCountableTopology α] [ConditionallyCompleteLinearOrder α] [OrderTopology α]
@@ -829,7 +829,7 @@ theorem ext_of_Iic {α : Type*} [TopologicalSpace α] {m : MeasurableSpace α}
[IsFiniteMeasure μ] (h : ∀ a, μ (Iic a) = ν (Iic a)) : μ = ν := by
refine' ext_of_Ioc_finite μ ν _ fun a b hlt => _
· rcases exists_countable_dense_bot_top α with ⟨s, hsc, hsd, -, hst⟩
- have : DirectedOn (· ≤ ·) s := directedOn_iff_directed.2 (directed_of_sup fun _ _ => id)
+ have : DirectedOn (· ≤ ·) s := directedOn_iff_directed.2 (Subtype.mono_coe _).directed_le
simp only [← biSup_measure_Iic hsc (hsd.exists_ge' hst) this, h]
rw [← Iic_diff_Iic, measure_diff (Iic_subset_Iic.2 hlt.le) measurableSet_Iic,
measure_diff (Iic_subset_Iic.2 hlt.le) measurableSet_Iic, h a, h b]
borelize
fails (#7231)
borelize X
fails when ‹TopologicalSpace X›
depends on i : MeasurableSpace X
, but this message isn't readable:
failed to create binder due to failure when reverting variable dependencies
This is probrem in this case: https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/borelize.20gives.20.22failed.20to.20create.20binder.2E.2E.2E.22
This PR make error messages more readable:
‹TopologicalSpace X› := (expr depends on i)"
depends on
i : MeasurableSpace X
so `borelize` isn't avaliable
@@ -231,13 +231,21 @@ def addBorelInstance (e : Expr) : TacticM Unit := do
/-- Given a type `e`, an assumption `i : MeasurableSpace e`, and an instance `[BorelSpace e]`,
replace `i` with `borel e`. -/
def borelToRefl (e : Expr) (i : FVarId) : TacticM Unit := do
- let t ← Lean.Elab.Term.exprToSyntax e
+ let te ← Lean.Elab.Term.exprToSyntax e
evalTactic <| ← `(tactic|
- have := @BorelSpace.measurable_eq $t _ _ _)
- liftMetaTactic fun m => return [← subst m i]
+ have := @BorelSpace.measurable_eq $te _ _ _)
+ try
+ liftMetaTactic fun m => return [← subst m i]
+ catch _ =>
+ let et ← synthInstance (← mkAppOptM ``TopologicalSpace #[e])
+ throwError
+ (m!"`‹TopologicalSpace {e}› := {et}" ++ MessageData.ofFormat Format.line ++
+ m!"depends on" ++ MessageData.ofFormat Format.line ++
+ m!"{Expr.fvar i} : MeasurableSpace {e}`" ++ MessageData.ofFormat Format.line ++
+ "so `borelize` isn't avaliable")
evalTactic <| ← `(tactic|
refine_lift
- letI : MeasurableSpace $t := borel $t
+ letI : MeasurableSpace $te := borel $te
?_)
/-- Given a type `$t`, if there is an assumption `[i : MeasurableSpace $t]`, then try to prove
Removes nonterminal simps on lines looking like simp [...]
@@ -137,7 +137,8 @@ theorem borel_eq_generateFrom_Iio : borel α = .generateFrom (range Iio) := by
isOpen_lt' _ with ⟨v, ⟨hv⟩, vu⟩
simp [Set.ext_iff] at vu
have : Ioi a = ⋃ x : v, (Iio x.1.1)ᶜ := by
- simp [Set.ext_iff]
+ simp only [compl_Iio, iUnion_coe_set, Set.ext_iff, mem_Ioi, mem_iUnion, mem_Ici,
+ exists_prop, Subtype.exists, exists_and_right]
refine' fun x => ⟨fun ax => _, fun ⟨a', ⟨h, _⟩, ax⟩ => lt_of_lt_of_le h ax⟩
rcases (vu x).2 (by
refine' not_imp_comm.1 (fun h => _) h
@@ -985,6 +985,9 @@ def Homeomorph.toMeasurableEquiv (h : γ ≃ₜ γ₂) : γ ≃ᵐ γ₂ where
toEquiv := h.toEquiv
#align homeomorph.to_measurable_equiv Homeomorph.toMeasurableEquiv
+lemma Homeomorph.measurableEmbedding (h : γ ≃ₜ γ₂) : MeasurableEmbedding h :=
+ h.toMeasurableEquiv.measurableEmbedding
+
@[simp]
theorem Homeomorph.toMeasurableEquiv_coe (h : γ ≃ₜ γ₂) : (h.toMeasurableEquiv : γ → γ₂) = h :=
rfl
Set
/Finset
lemmas match lattice lemma names (#7378)
Rename union_eq_left_iff_subset
to union_eq_left
to match sup_eq_left
. Similarly for the right
and inter
versions.
@@ -675,7 +675,7 @@ theorem Dense.borel_eq_generateFrom_Ico_mem_aux {α : Type*} [TopologicalSpace
replace ha : a ∈ s := hIoo ha.choose a ha.choose_spec.fst ha.choose_spec.snd
convert_to MeasurableSet (⋃ (l ∈ t) (_ : l < a), Ico l a)
· symm
- simp only [← Ici_inter_Iio, ← iUnion_inter, inter_eq_right_iff_subset, subset_def, mem_iUnion,
+ simp only [← Ici_inter_Iio, ← iUnion_inter, inter_eq_right, subset_def, mem_iUnion,
mem_Ici, mem_Iio]
intro x hx
rcases htd.exists_le' (fun b hb => htb _ hb (hbot b hb)) x with ⟨z, hzt, hzx⟩
Metric.Bounded
(#7240)
Use Bornology.IsBounded
instead.
@@ -1837,8 +1837,8 @@ theorem tendsto_measure_cthickening_of_isCompact [MetricSpace α] [MeasurableSpa
[OpensMeasurableSpace α] [ProperSpace α] {μ : Measure α} [IsFiniteMeasureOnCompacts μ]
{s : Set α} (hs : IsCompact s) :
Tendsto (fun r => μ (Metric.cthickening r s)) (𝓝 0) (𝓝 (μ s)) :=
- tendsto_measure_cthickening_of_isClosed ⟨1, zero_lt_one, hs.bounded.cthickening.measure_lt_top.ne⟩
- hs.isClosed
+ tendsto_measure_cthickening_of_isClosed
+ ⟨1, zero_lt_one, hs.isBounded.cthickening.measure_lt_top.ne⟩ hs.isClosed
#align tendsto_measure_cthickening_of_is_compact tendsto_measure_cthickening_of_isCompact
namespace Real
@@ -416,8 +416,8 @@ class SecondCountableTopologyEither (α β : Type*) [TopologicalSpace α] [Topol
#align second_countable_topology_either SecondCountableTopologyEither
instance (priority := 100) secondCountableTopologyEither_of_left (α β : Type*) [TopologicalSpace α]
- [TopologicalSpace β] [SecondCountableTopology α] : SecondCountableTopologyEither α β
- where out := Or.inl (by infer_instance)
+ [TopologicalSpace β] [SecondCountableTopology α] : SecondCountableTopologyEither α β where
+ out := Or.inl (by infer_instance)
#align second_countable_topology_either_of_left secondCountableTopologyEither_of_left
instance (priority := 100) secondCountableTopologyEither_of_right (α β : Type*)
Currently, we only have that sups and limsups are measurable in complete linear orders, which excludes the main case of the real line. With more complicated proofs, these measurability results can be extended to all conditionally complete linear orders, without any further assumption in the statements.
@@ -1136,6 +1136,8 @@ theorem measurable_of_Ici {f : δ → α} (hf : ∀ x, MeasurableSet (f ⁻¹' I
assumption
#align measurable_of_Ici measurable_of_Ici
+/-- If a function is the least upper bound of countably many measurable functions,
+then it is measurable. -/
theorem Measurable.isLUB {ι} [Countable ι] {f : ι → δ → α} {g : δ → α} (hf : ∀ i, Measurable (f i))
(hg : ∀ b, IsLUB { a | ∃ i, f i b = a } (g b)) : Measurable g := by
change ∀ b, IsLUB (range fun i => f i b) (g b) at hg
@@ -1146,71 +1148,56 @@ theorem Measurable.isLUB {ι} [Countable ι] {f : ι → δ → α} {g : δ →
exact MeasurableSet.iUnion fun i => hf i (isOpen_lt' _).measurableSet
#align measurable.is_lub Measurable.isLUB
-private theorem AEMeasurable.is_lub_of_nonempty {ι} (hι : Nonempty ι) {μ : Measure δ} [Countable ι]
- {f : ι → δ → α} {g : δ → α} (hf : ∀ i, AEMeasurable (f i) μ)
- (hg : ∀ᵐ b ∂μ, IsLUB { a | ∃ i, f i b = a } (g b)) : AEMeasurable g μ := by
- let p : δ → (ι → α) → Prop := fun x f' => IsLUB { a | ∃ i, f' i = a } (g x)
- let g_seq x := ite (x ∈ aeSeqSet hf p) (g x) (⟨g x⟩ : Nonempty α).some
- have hg_seq : ∀ b, IsLUB { a | ∃ i, aeSeq hf p i b = a } (g_seq b) := by
+/-- If a function is the least upper bound of countably many measurable functions on a measurable
+set `s`, and coincides with a measurable function outside of `s`, then it is measurable. -/
+theorem Measurable.isLUB_of_mem {ι} [Countable ι] {f : ι → δ → α} {g g' : δ → α}
+ (hf : ∀ i, Measurable (f i))
+ {s : Set δ} (hs : MeasurableSet s) (hg : ∀ b ∈ s, IsLUB { a | ∃ i, f i b = a } (g b))
+ (hg' : EqOn g g' sᶜ) (g'_meas : Measurable g') : Measurable g := by
+ rcases isEmpty_or_nonempty ι with hι|⟨⟨i⟩⟩
+ · rcases eq_empty_or_nonempty s with rfl|⟨x, hx⟩
+ · convert g'_meas
+ ext x
+ simp only [compl_empty] at hg'
+ exact hg' (mem_univ x)
+ · have A : ∀ b ∈ s, IsBot (g b) := by simpa using hg
+ have B : ∀ b ∈ s, g b = g x := by
+ intro b hb
+ apply le_antisymm (A b hb (g x)) (A x hx (g b))
+ have : g = s.piecewise (fun _y ↦ g x) g' := by
+ ext b
+ by_cases hb : b ∈ s
+ · simp [hb, B]
+ · simp [hb, hg' hb]
+ rw [this]
+ exact Measurable.piecewise hs measurable_const g'_meas
+ · let f' : ι → δ → α := fun i ↦ s.piecewise (f i) g'
+ suffices ∀ b, IsLUB { a | ∃ i, f' i b = a } (g b) from
+ Measurable.isLUB (fun i ↦ Measurable.piecewise hs (hf i) g'_meas) this
intro b
- haveI hα : Nonempty α := Nonempty.map g ⟨b⟩
- simp only [aeSeq]
- split_ifs with h
- · have h_set_eq :
- { a : α | ∃ i : ι, (hf i).mk (f i) b = a } = { a : α | ∃ i : ι, f i b = a } := by
- ext x
- simp_rw [Set.mem_setOf_eq, aeSeq.mk_eq_fun_of_mem_aeSeqSet hf h]
- rw [h_set_eq]
- exact aeSeq.fun_prop_of_mem_aeSeqSet hf h
- · have h_singleton : { a : α | ∃ _ : ι, hα.some = a } = {hα.some} := by
- ext1 x
- exact ⟨fun hx => hx.choose_spec.symm, fun hx => ⟨hι.some, hx.symm⟩⟩
- rw [h_singleton]
- exact isLUB_singleton
- refine' ⟨g_seq, Measurable.isLUB (aeSeq.measurable hf p) hg_seq, _⟩
- exact
- (ite_ae_eq_of_measure_compl_zero g (fun x => (⟨g x⟩ : Nonempty α).some) (aeSeqSet hf p)
- (aeSeq.measure_compl_aeSeqSet_eq_zero hf hg)).symm
+ by_cases hb : b ∈ s
+ · have A : ∀ i, f' i b = f i b := fun i ↦ by simp [hb]
+ simpa [A] using hg b hb
+ · have A : ∀ i, f' i b = g' b := fun i ↦ by simp [hb]
+ have : {a | ∃ (_i : ι), g' b = a} = {g' b} := by
+ apply Subset.antisymm
+ · rintro - ⟨_j, rfl⟩
+ simp only [mem_singleton_iff]
+ · rintro - rfl
+ exact ⟨i, rfl⟩
+ simp [A, this, hg' hb, isLUB_singleton]
theorem AEMeasurable.isLUB {ι} {μ : Measure δ} [Countable ι] {f : ι → δ → α} {g : δ → α}
(hf : ∀ i, AEMeasurable (f i) μ) (hg : ∀ᵐ b ∂μ, IsLUB { a | ∃ i, f i b = a } (g b)) :
AEMeasurable g μ := by
- rcases eq_zero_or_neZero μ with rfl | hμ
- · exact aemeasurable_zero_measure
- by_cases hι : Nonempty ι
- · exact AEMeasurable.is_lub_of_nonempty hι hf hg
- suffices ∃ x, g =ᵐ[μ] fun _ => g x by
- exact ⟨fun _ => g this.choose, measurable_const, this.choose_spec⟩
- have h_empty : ∀ x, { a : α | ∃ i : ι, f i x = a } = ∅ := by
- intro x
- ext1 y
- rw [Set.mem_setOf_eq, Set.mem_empty_iff_false, iff_false_iff]
- exact fun hi => hι (nonempty_of_exists hi)
- simp_rw [h_empty] at hg
- exact ⟨hg.exists.choose, hg.mono fun y hy => IsLUB.unique hy hg.exists.choose_spec⟩
-#align ae_measurable.is_lub AEMeasurable.isLUB
-
-theorem Measurable.isGLB {ι} [Countable ι] {f : ι → δ → α} {g : δ → α} (hf : ∀ i, Measurable (f i))
- (hg : ∀ b, IsGLB { a | ∃ i, f i b = a } (g b)) : Measurable g := by
- change ∀ b, IsGLB (range fun i => f i b) (g b) at hg
- rw [‹BorelSpace α›.measurable_eq, borel_eq_generateFrom_Iio α]
- apply measurable_generateFrom
- rintro _ ⟨a, rfl⟩
- simp_rw [Set.preimage, mem_Iio, isGLB_lt_iff (hg _), exists_range_iff, setOf_exists]
- exact MeasurableSet.iUnion fun i => hf i (isOpen_gt' _).measurableSet
-#align measurable.is_glb Measurable.isGLB
-
-theorem AEMeasurable.isGLB {ι} {μ : Measure δ} [Countable ι] {f : ι → δ → α} {g : δ → α}
- (hf : ∀ i, AEMeasurable (f i) μ) (hg : ∀ᵐ b ∂μ, IsGLB { a | ∃ i, f i b = a } (g b)) :
- AEMeasurable g μ := by
nontriviality α
haveI hα : Nonempty α := inferInstance
cases' isEmpty_or_nonempty ι with hι hι
- · simp only [IsEmpty.exists_iff, setOf_false, isGLB_empty_iff] at hg
- exact aemeasurable_const' (hg.mono fun a ha => hg.mono fun b hb => (hb _).antisymm (ha _))
- let p : δ → (ι → α) → Prop := fun x f' => IsGLB { a | ∃ i, f' i = a } (g x)
+ · simp only [IsEmpty.exists_iff, setOf_false, isLUB_empty_iff] at hg
+ exact aemeasurable_const' (hg.mono fun a ha => hg.mono fun b hb => (ha _).antisymm (hb _))
+ let p : δ → (ι → α) → Prop := fun x f' => IsLUB { a | ∃ i, f' i = a } (g x)
let g_seq := (aeSeqSet hf p).piecewise g fun _ => hα.some
- have hg_seq : ∀ b, IsGLB { a | ∃ i, aeSeq hf p i b = a } (g_seq b) := by
+ have hg_seq : ∀ b, IsLUB { a | ∃ i, aeSeq hf p i b = a } (g_seq b) := by
intro b
simp only [aeSeq, Set.piecewise]
split_ifs with h
@@ -1220,11 +1207,32 @@ theorem AEMeasurable.isGLB {ι} {μ : Measure δ} [Countable ι] {f : ι → δ
simp_rw [Set.mem_setOf_eq, aeSeq.mk_eq_fun_of_mem_aeSeqSet hf h]
rw [h_set_eq]
exact aeSeq.fun_prop_of_mem_aeSeqSet hf h
- · exact IsLeast.isGLB ⟨(@exists_const (hα.some = hα.some) ι _).2 rfl, fun x ⟨i, hi⟩ => hi.le⟩
- refine' ⟨g_seq, Measurable.isGLB (aeSeq.measurable hf p) hg_seq, _⟩
+ · exact IsGreatest.isLUB ⟨(@exists_const (hα.some = hα.some) ι _).2 rfl, fun x ⟨i, hi⟩ => hi.ge⟩
+ refine' ⟨g_seq, Measurable.isLUB (aeSeq.measurable hf p) hg_seq, _⟩
exact
(ite_ae_eq_of_measure_compl_zero g (fun _ => hα.some) (aeSeqSet hf p)
(aeSeq.measure_compl_aeSeqSet_eq_zero hf hg)).symm
+#align ae_measurable.is_lub AEMeasurable.isLUB
+
+/-- If a function is the greatest lower bound of countably many measurable functions,
+then it is measurable. -/
+theorem Measurable.isGLB {ι} [Countable ι] {f : ι → δ → α} {g : δ → α} (hf : ∀ i, Measurable (f i))
+ (hg : ∀ b, IsGLB { a | ∃ i, f i b = a } (g b)) : Measurable g :=
+ Measurable.isLUB (α := αᵒᵈ) hf hg
+#align measurable.is_glb Measurable.isGLB
+
+/-- If a function is the greatest lower bound of countably many measurable functions on a measurable
+set `s`, and coincides with a measurable function outside of `s`, then it is measurable. -/
+theorem Measurable.isGLB_of_mem {ι} [Countable ι] {f : ι → δ → α} {g g' : δ → α}
+ (hf : ∀ i, Measurable (f i))
+ {s : Set δ} (hs : MeasurableSet s) (hg : ∀ b ∈ s, IsGLB { a | ∃ i, f i b = a } (g b))
+ (hg' : EqOn g g' sᶜ) (g'_meas : Measurable g') : Measurable g :=
+ Measurable.isLUB_of_mem (α := αᵒᵈ) hf hs hg hg' g'_meas
+
+theorem AEMeasurable.isGLB {ι} {μ : Measure δ} [Countable ι] {f : ι → δ → α} {g : δ → α}
+ (hf : ∀ i, AEMeasurable (f i) μ) (hg : ∀ᵐ b ∂μ, IsGLB { a | ∃ i, f i b = a } (g b)) :
+ AEMeasurable g μ :=
+ AEMeasurable.isLUB (α := αᵒᵈ) hf hg
#align ae_measurable.is_glb AEMeasurable.isGLB
protected theorem Monotone.measurable [LinearOrder β] [OrderClosedTopology β] {f : β → α}
@@ -1295,96 +1303,210 @@ theorem measurableSet_of_mem_nhdsWithin_Ioi {s : Set α} (h : ∀ x ∈ s, s ∈
exact H
#align measurable_set_of_mem_nhds_within_Ioi measurableSet_of_mem_nhdsWithin_Ioi
+lemma measurableSet_bddAbove_range {ι} [Countable ι] {f : ι → δ → α} (hf : ∀ i, Measurable (f i)) :
+ MeasurableSet {b | BddAbove (range (fun i ↦ f i b))} := by
+ rcases isEmpty_or_nonempty α with hα|hα
+ · have : ∀ b, range (fun i ↦ f i b) = ∅ := fun b ↦ Iff.mp toFinset_eq_empty rfl
+ simp [this]
+ have A : ∀ (i : ι) (c : α), MeasurableSet {x | f i x ≤ c} := by
+ intro i c
+ exact measurableSet_le (hf i) measurable_const
+ have B : ∀ (c : α), MeasurableSet {x | ∀ i, f i x ≤ c} := by
+ intro c
+ rw [setOf_forall]
+ exact MeasurableSet.iInter (fun i ↦ A i c)
+ obtain ⟨u, hu⟩ : ∃ (u : ℕ → α), Tendsto u atTop atTop := exists_seq_tendsto (atTop : Filter α)
+ have : {b | BddAbove (range (fun i ↦ f i b))} = {x | ∃ n, ∀ i, f i x ≤ u n} := by
+ apply Subset.antisymm
+ · rintro x ⟨c, hc⟩
+ obtain ⟨n, hn⟩ : ∃ n, c ≤ u n := (tendsto_atTop.1 hu c).exists
+ exact ⟨n, fun i ↦ (hc ((mem_range_self i))).trans hn⟩
+ · rintro x ⟨n, hn⟩
+ refine ⟨u n, ?_⟩
+ rintro - ⟨i, rfl⟩
+ exact hn i
+ rw [this, setOf_exists]
+ exact MeasurableSet.iUnion (fun n ↦ B (u n))
+
+lemma measurableSet_bddBelow_range {ι} [Countable ι] {f : ι → δ → α} (hf : ∀ i, Measurable (f i)) :
+ MeasurableSet {b | BddBelow (range (fun i ↦ f i b))} :=
+ measurableSet_bddAbove_range (α := αᵒᵈ) hf
+
end LinearOrder
@[measurability]
-theorem Measurable.iSup_Prop {α} [MeasurableSpace α] [CompleteLattice α] (p : Prop) {f : δ → α}
- (hf : Measurable f) : Measurable fun b => ⨆ _ : p, f b :=
- _root_.by_cases (fun h : p => by convert hf; funext; exact iSup_pos h) fun h : ¬p => by
- convert measurable_const using 1; funext; exact iSup_neg h
+theorem Measurable.iSup_Prop {α} [MeasurableSpace α] [ConditionallyCompleteLattice α]
+ (p : Prop) {f : δ → α} (hf : Measurable f) : Measurable fun b => ⨆ _ : p, f b :=
+ _root_.by_cases (fun h : p => by convert hf; funext; exact ciSup_pos h) fun h : ¬p => by
+ convert measurable_const using 1; funext; exact ciSup_neg h
#align measurable.supr_Prop Measurable.iSup_Prop
@[measurability]
-theorem Measurable.iInf_Prop {α} [MeasurableSpace α] [CompleteLattice α] (p : Prop) {f : δ → α}
- (hf : Measurable f) : Measurable fun b => ⨅ _ : p, f b :=
- _root_.by_cases (fun h : p => by convert hf; funext; exact iInf_pos h) fun h : ¬p => by
- convert measurable_const using 1; funext; exact iInf_neg h
+theorem Measurable.iInf_Prop {α} [MeasurableSpace α] [ConditionallyCompleteLattice α]
+ (p : Prop) {f : δ → α} (hf : Measurable f) : Measurable fun b => ⨅ _ : p, f b :=
+ _root_.by_cases (fun h : p => by convert hf; funext; exact ciInf_pos h) fun h : ¬p => by
+ convert measurable_const using 1; funext; exact ciInf_neg h
#align measurable.infi_Prop Measurable.iInf_Prop
-section CompleteLinearOrder
+section ConditionallyCompleteLinearOrder
-variable [CompleteLinearOrder α] [OrderTopology α] [SecondCountableTopology α]
+variable [ConditionallyCompleteLinearOrder α] [OrderTopology α] [SecondCountableTopology α]
@[measurability]
theorem measurable_iSup {ι} [Countable ι] {f : ι → δ → α} (hf : ∀ i, Measurable (f i)) :
- Measurable fun b => ⨆ i, f i b :=
- Measurable.isLUB hf fun _ => isLUB_iSup
-#align measurable_supr measurable_iSup
+ Measurable (fun b ↦ ⨆ i, f i b) := by
+ rcases isEmpty_or_nonempty ι with hι|hι
+ · simp [iSup_of_empty']
+ have A : MeasurableSet {b | BddAbove (range (fun i ↦ f i b))} :=
+ measurableSet_bddAbove_range hf
+ have : Measurable (fun (_b : δ) ↦ sSup (∅ : Set α)) := measurable_const
+ apply Measurable.isLUB_of_mem hf A _ _ this
+ · rintro b ⟨c, hc⟩
+ apply isLUB_ciSup
+ refine ⟨c, ?_⟩
+ rintro d ⟨i, rfl⟩
+ exact hc (mem_range_self i)
+ · intro b hb
+ apply csSup_of_not_bddAbove
+ exact hb
@[measurability]
theorem aemeasurable_iSup {ι} {μ : Measure δ} [Countable ι] {f : ι → δ → α}
- (hf : ∀ i, AEMeasurable (f i) μ) : AEMeasurable (fun b => ⨆ i, f i b) μ :=
- AEMeasurable.isLUB hf <| ae_of_all μ fun _ => isLUB_iSup
+ (hf : ∀ i, AEMeasurable (f i) μ) : AEMeasurable (fun b => ⨆ i, f i b) μ := by
+ refine ⟨fun b ↦ ⨆ i, (hf i).mk (f i) b, measurable_iSup (fun i ↦ (hf i).measurable_mk), ?_⟩
+ filter_upwards [ae_all_iff.2 (fun i ↦ (hf i).ae_eq_mk)] with b hb using by simp [hb]
#align ae_measurable_supr aemeasurable_iSup
@[measurability]
theorem measurable_iInf {ι} [Countable ι] {f : ι → δ → α} (hf : ∀ i, Measurable (f i)) :
Measurable fun b => ⨅ i, f i b :=
- Measurable.isGLB hf fun _ => isGLB_iInf
+ measurable_iSup (α := αᵒᵈ) hf
#align measurable_infi measurable_iInf
@[measurability]
theorem aemeasurable_iInf {ι} {μ : Measure δ} [Countable ι] {f : ι → δ → α}
(hf : ∀ i, AEMeasurable (f i) μ) : AEMeasurable (fun b => ⨅ i, f i b) μ :=
- AEMeasurable.isGLB hf <| ae_of_all μ fun _ => isGLB_iInf
+ aemeasurable_iSup (α := αᵒᵈ) hf
#align ae_measurable_infi aemeasurable_iInf
+theorem measurable_sSup {ι} {f : ι → δ → α} {s : Set ι} (hs : s.Countable)
+ (hf : ∀ i ∈ s, Measurable (f i)) :
+ Measurable fun x => sSup ((fun i => f i x) '' s) := by
+ have : Countable ↑s := countable_coe_iff.2 hs
+ convert measurable_iSup (f := (fun (i : s) ↦ f i)) (fun i ↦ hf i i.2) using 1
+ ext b
+ congr
+ exact image_eq_range (fun i ↦ f i b) s
+#align measurable_cSup measurable_sSup
+
+theorem measurable_sInf {ι} {f : ι → δ → α} {s : Set ι} (hs : s.Countable)
+ (hf : ∀ i ∈ s, Measurable (f i)) :
+ Measurable fun x => sInf ((fun i => f i x) '' s) :=
+ measurable_sSup (α := αᵒᵈ) hs hf
+#align measurable_cInf measurable_sInf
+
theorem measurable_biSup {ι} (s : Set ι) {f : ι → δ → α} (hs : s.Countable)
- (hf : ∀ i, Measurable (f i)) : Measurable fun b => ⨆ i ∈ s, f i b := by
+ (hf : ∀ i ∈ s, Measurable (f i)) : Measurable fun b => ⨆ i ∈ s, f i b := by
haveI : Encodable s := hs.toEncodable
- simp only [iSup_subtype']
- exact measurable_iSup fun i => hf i
+ by_cases H : ∀ i, i ∈ s
+ · have : ∀ b, ⨆ i ∈ s, f i b = ⨆ (i : s), f i b :=
+ fun b ↦ cbiSup_eq_of_forall (f := fun i ↦ f i b) H
+ simp only [this]
+ exact measurable_iSup (fun (i : s) ↦ hf i i.2)
+ · have : ∀ b, ⨆ i ∈ s, f i b = (⨆ (i : s), f i b) ⊔ sSup ∅ :=
+ fun b ↦ cbiSup_eq_of_not_forall (f := fun i ↦ f i b) H
+ simp only [this]
+ apply Measurable.sup _ measurable_const
+ exact measurable_iSup (fun (i : s) ↦ hf i i.2)
#align measurable_bsupr measurable_biSup
theorem aemeasurable_biSup {ι} {μ : Measure δ} (s : Set ι) {f : ι → δ → α} (hs : s.Countable)
- (hf : ∀ i, AEMeasurable (f i) μ) : AEMeasurable (fun b => ⨆ i ∈ s, f i b) μ := by
- haveI : Encodable s := hs.toEncodable
- simp only [iSup_subtype']
- exact aemeasurable_iSup fun i => hf i
+ (hf : ∀ i ∈ s, AEMeasurable (f i) μ) : AEMeasurable (fun b => ⨆ i ∈ s, f i b) μ := by
+ let g : ι → δ → α := fun i ↦ if hi : i ∈ s then (hf i hi).mk (f i) else fun _b ↦ sSup ∅
+ have : ∀ i ∈ s, Measurable (g i) := by
+ intro i hi
+ simpa [hi] using (hf i hi).measurable_mk
+ refine ⟨fun b ↦ ⨆ (i) (_ : i ∈ s), g i b, measurable_biSup s hs this, ?_⟩
+ have : ∀ i ∈ s, ∀ᵐ b ∂μ, f i b = g i b :=
+ fun i hi ↦ by simpa [hi] using (hf i hi).ae_eq_mk
+ filter_upwards [(ae_ball_iff hs).2 this] with b hb
+ congr
+ ext i
+ congr
+ ext hi
+ simp [hi, hb]
#align ae_measurable_bsupr aemeasurable_biSup
theorem measurable_biInf {ι} (s : Set ι) {f : ι → δ → α} (hs : s.Countable)
- (hf : ∀ i, Measurable (f i)) : Measurable fun b => ⨅ i ∈ s, f i b := by
- haveI : Encodable s := hs.toEncodable
- simp only [iInf_subtype']
- exact measurable_iInf fun i => hf i
+ (hf : ∀ i ∈ s, Measurable (f i)) : Measurable fun b => ⨅ i ∈ s, f i b :=
+ measurable_biSup (α := αᵒᵈ) s hs hf
#align measurable_binfi measurable_biInf
theorem aemeasurable_biInf {ι} {μ : Measure δ} (s : Set ι) {f : ι → δ → α} (hs : s.Countable)
- (hf : ∀ i, AEMeasurable (f i) μ) : AEMeasurable (fun b => ⨅ i ∈ s, f i b) μ := by
- haveI : Encodable s := hs.toEncodable
- simp only [iInf_subtype']
- exact aemeasurable_iInf fun i => hf i
+ (hf : ∀ i ∈ s, AEMeasurable (f i) μ) : AEMeasurable (fun b => ⨅ i ∈ s, f i b) μ :=
+ aemeasurable_biSup (α := αᵒᵈ) s hs hf
#align ae_measurable_binfi aemeasurable_biInf
/-- `liminf` over a general filter is measurable. See `measurable_liminf` for the version over `ℕ`.
-/
-theorem measurable_liminf' {ι ι'} {f : ι → δ → α} {u : Filter ι} (hf : ∀ i, Measurable (f i))
- {p : ι' → Prop} {s : ι' → Set ι} (hu : u.HasCountableBasis p s) (hs : ∀ i, (s i).Countable) :
- Measurable fun x => liminf (fun i => f i x) u := by
- simp_rw [hu.toHasBasis.liminf_eq_iSup_iInf]
- refine' measurable_biSup _ hu.countable _
- exact fun i => measurable_biInf _ (hs i) hf
+theorem measurable_liminf' {ι ι'} {f : ι → δ → α} {v : Filter ι} (hf : ∀ i, Measurable (f i))
+ {p : ι' → Prop} {s : ι' → Set ι} (hv : v.HasCountableBasis p s) (hs : ∀ j, (s j).Countable) :
+ Measurable fun x => liminf (fun i => f i x) v := by
+ /- We would like to write the liminf as `⨆ (j : Subtype p), ⨅ (i : s j), f i x`, as the
+ measurability would follow from the measurability of infs and sups. Unfortunately, this is not
+ true in general conditionally complete linear orders because of issues with empty sets or sets
+ which are not bounded above or below. A slightly more complicated expression for the liminf,
+ valid in general, is given in `Filter.HasBasis.liminf_eq_ite`. This expression, built from
+ `if ... then ... else` and infs and sups, can be readily checked to be measurable. -/
+ have : Countable (Subtype p) := Encodable.nonempty_encodable.1 hv.countable
+ rcases isEmpty_or_nonempty (Subtype p) with hp|hp
+ · simp [hv.liminf_eq_sSup_iUnion_iInter]
+ by_cases H : ∃ (j : Subtype p), s j = ∅
+ · simp_rw [hv.liminf_eq_ite, if_pos H, measurable_const]
+ simp_rw [hv.liminf_eq_ite, if_neg H]
+ have : ∀ i, Countable (s i) := fun i ↦ countable_coe_iff.2 (hs i)
+ let m : Subtype p → Set δ := fun j ↦ {x | BddBelow (range (fun (i : s j) ↦ f i x))}
+ have m_meas : ∀ j, MeasurableSet (m j) :=
+ fun j ↦ measurableSet_bddBelow_range (fun (i : s j) ↦ hf i)
+ have mc_meas : MeasurableSet {x | ∀ (j : Subtype p), x ∉ m j} := by
+ rw [setOf_forall]
+ exact MeasurableSet.iInter (fun j ↦ (m_meas j).compl)
+ apply Measurable.piecewise mc_meas measurable_const
+ apply measurable_iSup (fun j ↦ ?_)
+ let reparam : δ → Subtype p → Subtype p := fun x ↦ liminf_reparam (fun i ↦ f i x) s p
+ let F0 : Subtype p → δ → α := fun j x ↦ ⨅ (i : s j), f i x
+ have F0_meas : ∀ j, Measurable (F0 j) := fun j ↦ measurable_iInf (fun (i : s j) ↦ hf i)
+ set F1 : δ → α := fun x ↦ F0 (reparam x j) x with hF1
+ change Measurable F1
+ let g : ℕ → Subtype p := choose (exists_surjective_nat (Subtype p))
+ have Z : ∀ x, ∃ n, x ∈ m (g n) ∨ ∀ k, x ∉ m k := by
+ intro x
+ by_cases H : ∃ k, x ∈ m k
+ · rcases H with ⟨k, hk⟩
+ rcases choose_spec (exists_surjective_nat (Subtype p)) k with ⟨n, rfl⟩
+ exact ⟨n, Or.inl hk⟩
+ · push_neg at H
+ exact ⟨0, Or.inr H⟩
+ have : F1 = fun x ↦ if x ∈ m j then F0 j x else F0 (g (Nat.find (Z x))) x := by
+ ext x
+ have A : reparam x j = if x ∈ m j then j else g (Nat.find (Z x)) := rfl
+ split_ifs with hjx
+ · have : reparam x j = j := by rw [A, if_pos hjx]
+ simp only [hF1, this]
+ · have : reparam x j = g (Nat.find (Z x)) := by rw [A, if_neg hjx]
+ simp only [hF1, this]
+ rw [this]
+ apply Measurable.piecewise (m_meas j) (F0_meas j)
+ apply Measurable.find (fun n ↦ F0_meas (g n)) (fun n ↦ ?_)
+ exact (m_meas (g n)).union mc_meas
#align measurable_liminf' measurable_liminf'
/-- `limsup` over a general filter is measurable. See `measurable_limsup` for the version over `ℕ`.
-/
theorem measurable_limsup' {ι ι'} {f : ι → δ → α} {u : Filter ι} (hf : ∀ i, Measurable (f i))
{p : ι' → Prop} {s : ι' → Set ι} (hu : u.HasCountableBasis p s) (hs : ∀ i, (s i).Countable) :
- Measurable fun x => limsup (fun i => f i x) u := by
- simp_rw [hu.toHasBasis.limsup_eq_iInf_iSup]
- refine' measurable_biInf _ hu.countable _
- exact fun i => measurable_biSup _ (hs i) hf
+ Measurable fun x => limsup (fun i => f i x) u :=
+ measurable_liminf' (α := αᵒᵈ) hf hu hs
#align measurable_limsup' measurable_limsup'
/-- `liminf` over `ℕ` is measurable. See `measurable_liminf'` for a version with a general filter.
@@ -1403,41 +1525,6 @@ theorem measurable_limsup {f : ℕ → δ → α} (hf : ∀ i, Measurable (f i))
measurable_limsup' hf atTop_countable_basis fun _ => to_countable _
#align measurable_limsup measurable_limsup
-end CompleteLinearOrder
-
-section ConditionallyCompleteLinearOrder
-
-variable [ConditionallyCompleteLinearOrder α] [OrderTopology α] [SecondCountableTopology α]
-
-theorem measurable_cSup {ι} {f : ι → δ → α} {s : Set ι} (hs : s.Countable)
- (hf : ∀ i, Measurable (f i)) (bdd : ∀ x, BddAbove ((fun i => f i x) '' s)) :
- Measurable fun x => sSup ((fun i => f i x) '' s) := by
- cases' eq_empty_or_nonempty s with h2s h2s
- · simp [h2s, measurable_const]
- · apply measurable_of_Iic
- intro y
- simp_rw [preimage, mem_Iic, csSup_le_iff (bdd _) (h2s.image _), ball_image_iff, setOf_forall]
- exact MeasurableSet.biInter hs fun i _ => measurableSet_le (hf i) measurable_const
-#align measurable_cSup measurable_cSup
-
-theorem measurable_cInf {ι} {f : ι → δ → α} {s : Set ι} (hs : s.Countable)
- (hf : ∀ i, Measurable (f i)) (bdd : ∀ x, BddBelow ((fun i => f i x) '' s)) :
- Measurable fun x => sInf ((fun i => f i x) '' s) :=
- @measurable_cSup αᵒᵈ _ _ _ _ _ _ _ _ _ _ _ hs hf bdd
-#align measurable_cInf measurable_cInf
-
-theorem measurable_ciSup {ι : Type*} [Countable ι] {f : ι → δ → α} (hf : ∀ i, Measurable (f i))
- (bdd : ∀ x, BddAbove (range fun i => f i x)) : Measurable fun x => ⨆ i, f i x := by
- change Measurable fun x => sSup (range fun i : ι => f i x)
- simp_rw [← image_univ] at bdd ⊢
- refine' measurable_cSup countable_univ hf bdd
-#align measurable_csupr measurable_ciSup
-
-theorem measurable_ciInf {ι : Type*} [Countable ι] {f : ι → δ → α} (hf : ∀ i, Measurable (f i))
- (bdd : ∀ x, BddBelow (range fun i => f i x)) : Measurable fun x => ⨅ i, f i x :=
- @measurable_ciSup αᵒᵈ _ _ _ _ _ _ _ _ _ _ _ hf bdd
-#align measurable_cinfi measurable_ciInf
-
end ConditionallyCompleteLinearOrder
/-- Convert a `Homeomorph` to a `MeasurableEquiv`. -/
We have currently that the product of two Borel spaces is Borel when both of them are second-countable. It is in fact sufficient to assume that only one of them is second-countable. We prove this in this PR.
Also move the definition of SecondCountableEither
from Function.StronglyMeasurable
to BorelSpace.Basic
to be able to use it in the statement of the above theorem.
@@ -191,6 +191,7 @@ theorem Continuous.borel_measurable [TopologicalSpace α] [TopologicalSpace β]
/-- A space with `MeasurableSpace` and `TopologicalSpace` structures such that
all open sets are measurable. -/
class OpensMeasurableSpace (α : Type*) [TopologicalSpace α] [h : MeasurableSpace α] : Prop where
+ /-- Borel-measurable sets are measurable. -/
borel_le : borel α ≤ h
#align opens_measurable_space OpensMeasurableSpace
#align opens_measurable_space.borel_le OpensMeasurableSpace.borel_le
@@ -198,6 +199,7 @@ class OpensMeasurableSpace (α : Type*) [TopologicalSpace α] [h : MeasurableSpa
/-- A space with `MeasurableSpace` and `TopologicalSpace` structures such that
the `σ`-algebra of measurable sets is exactly the `σ`-algebra generated by open sets. -/
class BorelSpace (α : Type*) [TopologicalSpace α] [MeasurableSpace α] : Prop where
+ /-- The measurable sets are exactly the Borel-measurable sets. -/
measurable_eq : ‹MeasurableSpace α› = borel α
#align borel_space BorelSpace
#align borel_space.measurable_eq BorelSpace.measurable_eq
@@ -279,6 +281,12 @@ instance Subtype.opensMeasurableSpace {α : Type*} [TopologicalSpace α] [Measur
exact comap_mono h.1⟩
#align subtype.opens_measurable_space Subtype.opensMeasurableSpace
+lemma opensMeasurableSpace_iff_forall_measurableSet
+ [TopologicalSpace α] [MeasurableSpace α] :
+ OpensMeasurableSpace α ↔ (∀ (s : Set α), IsOpen s → MeasurableSet s) := by
+ refine ⟨fun h s hs ↦ ?_, fun h ↦ ⟨generateFrom_le h⟩⟩
+ exact OpensMeasurableSpace.borel_le _ <| GenerateMeasurable.basic _ hs
+
instance (priority := 100) BorelSpace.countablyGenerated {α : Type*} [TopologicalSpace α]
[MeasurableSpace α] [BorelSpace α] [SecondCountableTopology α] : CountablyGenerated α := by
obtain ⟨b, bct, -, hb⟩ := exists_countable_basis α
@@ -398,15 +406,73 @@ instance Pi.opensMeasurableSpace {ι : Type*} {π : ι → Type*} [Countable ι]
exact .basic _ (hi a ha)
#align pi.opens_measurable_space Pi.opensMeasurableSpace
-instance Prod.opensMeasurableSpace [SecondCountableTopology α] [SecondCountableTopology β] :
+/-- The typeclass `SecondCountableTopologyEither α β` registers the fact that at least one of
+the two spaces has second countable topology. This is the right assumption to ensure that continuous
+maps from `α` to `β` are strongly measurable. -/
+class SecondCountableTopologyEither (α β : Type*) [TopologicalSpace α] [TopologicalSpace β] :
+ Prop where
+ /-- The projection out of `SecondCountableTopologyEither` -/
+ out : SecondCountableTopology α ∨ SecondCountableTopology β
+#align second_countable_topology_either SecondCountableTopologyEither
+
+instance (priority := 100) secondCountableTopologyEither_of_left (α β : Type*) [TopologicalSpace α]
+ [TopologicalSpace β] [SecondCountableTopology α] : SecondCountableTopologyEither α β
+ where out := Or.inl (by infer_instance)
+#align second_countable_topology_either_of_left secondCountableTopologyEither_of_left
+
+instance (priority := 100) secondCountableTopologyEither_of_right (α β : Type*)
+ [TopologicalSpace α] [TopologicalSpace β] [SecondCountableTopology β] :
+ SecondCountableTopologyEither α β where out := Or.inr (by infer_instance)
+#align second_countable_topology_either_of_right secondCountableTopologyEither_of_right
+
+/-- If either `α` or `β` has second-countable topology, then the open sets in `α × β` belong to the
+product sigma-algebra. -/
+instance Prod.opensMeasurableSpace [h : SecondCountableTopologyEither α β] :
OpensMeasurableSpace (α × β) := by
- constructor
- rw [((isBasis_countableBasis α).prod (isBasis_countableBasis β)).borel_eq_generateFrom]
- apply generateFrom_le
- rintro _ ⟨u, v, hu, hv, rfl⟩
- exact (isOpen_of_mem_countableBasis hu).measurableSet.prod
- (isOpen_of_mem_countableBasis hv).measurableSet
-#align prod.opens_measurable_space Prod.opensMeasurableSpace
+ apply opensMeasurableSpace_iff_forall_measurableSet.2 (fun s hs ↦ ?_)
+ rcases h.out with hα|hβ
+ · let F : Set α → Set β := fun a ↦ {y | ∃ b, IsOpen b ∧ y ∈ b ∧ a ×ˢ b ⊆ s}
+ have A : ∀ a, IsOpen (F a) := by
+ intro a
+ apply isOpen_iff_forall_mem_open.2
+ rintro y ⟨b, b_open, yb, hb⟩
+ exact ⟨b, fun z zb ↦ ⟨b, b_open, zb, hb⟩, b_open, yb⟩
+ have : s = ⋃ a ∈ countableBasis α, a ×ˢ F a := by
+ apply Subset.antisymm
+ · rintro ⟨y1, y2⟩ hy
+ rcases isOpen_prod_iff.1 hs y1 y2 hy with ⟨u, v, u_open, v_open, yu, yv, huv⟩
+ obtain ⟨a, ha, ya, au⟩ : ∃ a ∈ countableBasis α, y1 ∈ a ∧ a ⊆ u :=
+ IsTopologicalBasis.exists_subset_of_mem_open (isBasis_countableBasis α) yu u_open
+ simp only [mem_iUnion, mem_prod, mem_setOf_eq, exists_and_left, exists_prop]
+ exact ⟨a, ya, ha, v, v_open, yv, (Set.prod_mono_left au).trans huv⟩
+ · rintro ⟨y1, y2⟩ hy
+ simp only [mem_iUnion, mem_prod, mem_setOf_eq, exists_and_left, exists_prop] at hy
+ rcases hy with ⟨a, ya, -, b, -, yb, hb⟩
+ exact hb (mem_prod.2 ⟨ya, yb⟩)
+ rw [this]
+ apply MeasurableSet.biUnion (countable_countableBasis α) (fun a ha ↦ ?_)
+ exact (isOpen_of_mem_countableBasis ha).measurableSet.prod (A a).measurableSet
+ · let F : Set β → Set α := fun a ↦ {y | ∃ b, IsOpen b ∧ y ∈ b ∧ b ×ˢ a ⊆ s}
+ have A : ∀ a, IsOpen (F a) := by
+ intro a
+ apply isOpen_iff_forall_mem_open.2
+ rintro y ⟨b, b_open, yb, hb⟩
+ exact ⟨b, fun z zb ↦ ⟨b, b_open, zb, hb⟩, b_open, yb⟩
+ have : s = ⋃ a ∈ countableBasis β, F a ×ˢ a := by
+ apply Subset.antisymm
+ · rintro ⟨y1, y2⟩ hy
+ rcases isOpen_prod_iff.1 hs y1 y2 hy with ⟨u, v, u_open, v_open, yu, yv, huv⟩
+ obtain ⟨a, ha, ya, au⟩ : ∃ a ∈ countableBasis β, y2 ∈ a ∧ a ⊆ v :=
+ IsTopologicalBasis.exists_subset_of_mem_open (isBasis_countableBasis β) yv v_open
+ simp only [mem_iUnion, mem_prod, mem_setOf_eq, exists_and_left, exists_prop]
+ exact ⟨a, ⟨u, u_open, yu, (Set.prod_mono_right au).trans huv⟩, ha, ya⟩
+ · rintro ⟨y1, y2⟩ hy
+ simp only [mem_iUnion, mem_prod, mem_setOf_eq, exists_and_left, exists_prop] at hy
+ rcases hy with ⟨a, ⟨b, -, yb, hb⟩, -, ya⟩
+ exact hb (mem_prod.2 ⟨yb, ya⟩)
+ rw [this]
+ apply MeasurableSet.biUnion (countable_countableBasis β) (fun a ha ↦ ?_)
+ exact (A a).measurableSet.prod (isOpen_of_mem_countableBasis ha).measurableSet
variable {α' : Type*} [TopologicalSpace α'] [MeasurableSpace α']
@@ -943,13 +1009,13 @@ theorem measurable_of_continuousOn_compl_singleton [T1Space α] {f : α → γ}
(continuousOn_iff_continuous_restrict.1 hf).measurable
#align measurable_of_continuous_on_compl_singleton measurable_of_continuousOn_compl_singleton
-theorem Continuous.measurable2 [SecondCountableTopology α] [SecondCountableTopology β] {f : δ → α}
+theorem Continuous.measurable2 [SecondCountableTopologyEither α β] {f : δ → α}
{g : δ → β} {c : α → β → γ} (h : Continuous fun p : α × β => c p.1 p.2) (hf : Measurable f)
(hg : Measurable g) : Measurable fun a => c (f a) (g a) :=
h.measurable.comp (hf.prod_mk hg)
#align continuous.measurable2 Continuous.measurable2
-theorem Continuous.aemeasurable2 [SecondCountableTopology α] [SecondCountableTopology β]
+theorem Continuous.aemeasurable2 [SecondCountableTopologyEither α β]
{f : δ → α} {g : δ → β} {c : α → β → γ} {μ : Measure δ}
(h : Continuous fun p : α × β => c p.1 p.2) (hf : AEMeasurable f μ) (hg : AEMeasurable g μ) :
AEMeasurable (fun a => c (f a) (g a)) μ :=
@@ -974,9 +1040,9 @@ instance (priority := 100) ContinuousSub.measurableSub₂ [SecondCountableTopolo
#align has_continuous_sub.has_measurable_sub₂ ContinuousSub.measurableSub₂
instance (priority := 100) ContinuousSMul.measurableSMul₂ {M α} [TopologicalSpace M]
- [SecondCountableTopology M] [MeasurableSpace M] [OpensMeasurableSpace M] [TopologicalSpace α]
- [SecondCountableTopology α] [MeasurableSpace α] [BorelSpace α] [SMul M α] [ContinuousSMul M α] :
- MeasurableSMul₂ M α :=
+ [MeasurableSpace M] [OpensMeasurableSpace M] [TopologicalSpace α]
+ [SecondCountableTopologyEither M α] [MeasurableSpace α] [BorelSpace α] [SMul M α]
+ [ContinuousSMul M α] : MeasurableSMul₂ M α :=
⟨continuous_smul.measurable⟩
#align has_continuous_smul.has_measurable_smul₂ ContinuousSMul.measurableSMul₂
@@ -1010,7 +1076,7 @@ instance Pi.borelSpace {ι : Type*} {π : ι → Type*} [Countable ι] [∀ i, T
⟨le_antisymm pi_le_borel_pi OpensMeasurableSpace.borel_le⟩
#align pi.borel_space Pi.borelSpace
-instance Prod.borelSpace [SecondCountableTopology α] [SecondCountableTopology β] :
+instance Prod.borelSpace [SecondCountableTopologyEither α β] :
BorelSpace (α × β) :=
⟨le_antisymm prod_le_borel_prod OpensMeasurableSpace.borel_le⟩
#align prod.borel_space Prod.borelSpace
Add borel_eq_generateFrom_Ioi_rat
, borel_eq_generateFrom_Ici_rat
, borel_eq_generateFrom_Iic_rat
(we already have the Iio
result). Also prove that these sets of intervals are pi-systems.
Co-authored-by: RemyDegenne <remydegenne@gmail.com>
@@ -1697,13 +1697,73 @@ theorem borel_eq_generateFrom_Ioo_rat :
isTopologicalBasis_Ioo_rat.borel_eq_generateFrom
#align real.borel_eq_generate_from_Ioo_rat Real.borel_eq_generateFrom_Ioo_rat
+theorem borel_eq_generateFrom_Iio_rat : borel ℝ = .generateFrom (⋃ a : ℚ, {Iio (a : ℝ)}) := by
+ rw [borel_eq_generateFrom_Iio]
+ refine le_antisymm
+ (generateFrom_le ?_)
+ (generateFrom_mono <| iUnion_subset fun q ↦ singleton_subset_iff.mpr <| mem_range_self _)
+ rintro _ ⟨a, rfl⟩
+ have : IsLUB (range ((↑) : ℚ → ℝ) ∩ Iio a) a := by
+ simp [isLUB_iff_le_iff, mem_upperBounds, ← le_iff_forall_rat_lt_imp_le]
+ rw [← this.biUnion_Iio_eq, ← image_univ, ← image_inter_preimage, univ_inter, biUnion_image]
+ exact MeasurableSet.biUnion (to_countable _)
+ fun b _ => GenerateMeasurable.basic (Iio (b : ℝ)) (by simp)
+
+theorem borel_eq_generateFrom_Ioi_rat : borel ℝ = .generateFrom (⋃ a : ℚ, {Ioi (a : ℝ)}) := by
+ rw [borel_eq_generateFrom_Ioi]
+ refine le_antisymm
+ (generateFrom_le ?_)
+ (generateFrom_mono <| iUnion_subset fun q ↦ singleton_subset_iff.mpr <| mem_range_self _)
+ rintro _ ⟨a, rfl⟩
+ have : IsGLB (range ((↑) : ℚ → ℝ) ∩ Ioi a) a := by
+ simp [isGLB_iff_le_iff, mem_lowerBounds, ← le_iff_forall_lt_rat_imp_le]
+ rw [← this.biUnion_Ioi_eq, ← image_univ, ← image_inter_preimage, univ_inter, biUnion_image]
+ exact MeasurableSet.biUnion (to_countable _)
+ fun b _ => GenerateMeasurable.basic (Ioi (b : ℝ)) (by simp)
+
+theorem borel_eq_generateFrom_Iic_rat : borel ℝ = .generateFrom (⋃ a : ℚ, {Iic (a : ℝ)}) := by
+ rw [borel_eq_generateFrom_Ioi_rat, iUnion_singleton_eq_range, iUnion_singleton_eq_range]
+ refine le_antisymm (generateFrom_le ?_) (generateFrom_le ?_) <;>
+ rintro _ ⟨q, rfl⟩ <;>
+ dsimp only <;>
+ [rw [← compl_Iic]; rw [← compl_Ioi]] <;>
+ exact MeasurableSet.compl (GenerateMeasurable.basic _ (mem_range_self q))
+
+theorem borel_eq_generateFrom_Ici_rat : borel ℝ = .generateFrom (⋃ a : ℚ, {Ici (a : ℝ)}) := by
+ rw [borel_eq_generateFrom_Iio_rat, iUnion_singleton_eq_range, iUnion_singleton_eq_range]
+ refine le_antisymm (generateFrom_le ?_) (generateFrom_le ?_) <;>
+ rintro _ ⟨q, rfl⟩ <;>
+ dsimp only <;>
+ [rw [← compl_Ici]; rw [← compl_Iio]] <;>
+ exact MeasurableSet.compl (GenerateMeasurable.basic _ (mem_range_self q))
+
theorem isPiSystem_Ioo_rat :
- @IsPiSystem ℝ (⋃ (a : ℚ) (b : ℚ) (_ : a < b), {Ioo (a : ℝ) (b : ℝ)}) := by
+ IsPiSystem (⋃ (a : ℚ) (b : ℚ) (_ : a < b), {Ioo (a : ℝ) (b : ℝ)}) := by
convert isPiSystem_Ioo ((↑) : ℚ → ℝ) ((↑) : ℚ → ℝ)
ext x
simp [eq_comm]
#align real.is_pi_system_Ioo_rat Real.isPiSystem_Ioo_rat
+theorem isPiSystem_Iio_rat : IsPiSystem (⋃ a : ℚ, {Iio (a : ℝ)}) := by
+ convert isPiSystem_image_Iio (((↑) : ℚ → ℝ) '' univ)
+ ext x
+ simp only [iUnion_singleton_eq_range, mem_range, image_univ, mem_image, exists_exists_eq_and]
+
+theorem isPiSystem_Ioi_rat : IsPiSystem (⋃ a : ℚ, {Ioi (a : ℝ)}) := by
+ convert isPiSystem_image_Ioi (((↑) : ℚ → ℝ) '' univ)
+ ext x
+ simp only [iUnion_singleton_eq_range, mem_range, image_univ, mem_image, exists_exists_eq_and]
+
+theorem isPiSystem_Iic_rat : IsPiSystem (⋃ a : ℚ, {Iic (a : ℝ)}) := by
+ convert isPiSystem_image_Iic (((↑) : ℚ → ℝ) '' univ)
+ ext x
+ simp only [iUnion_singleton_eq_range, mem_range, image_univ, mem_image, exists_exists_eq_and]
+
+theorem isPiSystem_Ici_rat : IsPiSystem (⋃ a : ℚ, {Ici (a : ℝ)}) := by
+ convert isPiSystem_image_Ici (((↑) : ℚ → ℝ) '' univ)
+ ext x
+ simp only [iUnion_singleton_eq_range, mem_range, image_univ, mem_image, exists_exists_eq_and]
+
/-- The intervals `(-(n + 1), (n + 1))` form a finite spanning sets in the set of open intervals
with rational endpoints for a locally finite measure `μ` on `ℝ`. -/
def finiteSpanningSetsInIooRat (μ : Measure ℝ) [IsLocallyFiniteMeasure μ] :
@@ -1729,30 +1789,6 @@ theorem measure_ext_Ioo_rat {μ ν : Measure ℝ} [IsLocallyFiniteMeasure μ]
apply h
#align real.measure_ext_Ioo_rat Real.measure_ext_Ioo_rat
-theorem borel_eq_generateFrom_Iio_rat : borel ℝ = .generateFrom (⋃ a : ℚ, {Iio (a : ℝ)}) := by
- let g : MeasurableSpace ℝ := .generateFrom (⋃ a : ℚ, {Iio (a : ℝ)})
- refine' le_antisymm _ _
- · rw [borel_eq_generateFrom_Ioo_rat]
- refine' generateFrom_le fun t => _
- simp only [mem_iUnion, mem_singleton_iff]
- rintro ⟨a, b, _, rfl⟩
- rw [(Set.ext fun x => by
- suffices x < ↑b → (↑a < x ↔ ∃ i : ℚ, a < i ∧ ↑i ≤ x) by simpa
- refine' fun _ => ⟨fun h => _, fun ⟨i, hai, hix⟩ => (Rat.cast_lt.2 hai).trans_le hix⟩
- rcases exists_rat_btwn h with ⟨c, ac, cx⟩
- exact ⟨c, Rat.cast_lt.1 ac, cx.le⟩
- : Ioo (a : ℝ) b = (⋃ c > a, (Iio (c : ℝ))ᶜ) ∩ Iio (b : ℝ))]
- · have hg : ∀ q : ℚ, MeasurableSet[g] (Iio (q : ℝ)) := fun q =>
- GenerateMeasurable.basic (Iio (q : ℝ)) (by simp)
- refine' @MeasurableSet.inter _ g _ _ _ (hg _)
- refine' @MeasurableSet.biUnion _ _ g _ _ (to_countable _) fun c _ => _
- exact @MeasurableSet.compl _ _ g (hg _)
- · refine' MeasurableSpace.generateFrom_le fun _ => _
- simp only [mem_iUnion, mem_singleton_iff]
- rintro ⟨r, rfl⟩
- exact @measurableSet_Iio _ _ (borel ℝ) _ _ _ _
-#align real.borel_eq_generate_from_Iio_rat Real.borel_eq_generateFrom_Iio_rat
-
end Real
variable [MeasurableSpace α]
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -51,7 +51,7 @@ open Classical BigOperators Topology NNReal ENNReal MeasureTheory
universe u v w x y
-variable {α β γ γ₂ δ : Type _} {ι : Sort y} {s t u : Set α}
+variable {α β γ γ₂ δ : Type*} {ι : Sort y} {s t u : Set α}
open MeasurableSpace TopologicalSpace
@@ -190,14 +190,14 @@ theorem Continuous.borel_measurable [TopologicalSpace α] [TopologicalSpace β]
/-- A space with `MeasurableSpace` and `TopologicalSpace` structures such that
all open sets are measurable. -/
-class OpensMeasurableSpace (α : Type _) [TopologicalSpace α] [h : MeasurableSpace α] : Prop where
+class OpensMeasurableSpace (α : Type*) [TopologicalSpace α] [h : MeasurableSpace α] : Prop where
borel_le : borel α ≤ h
#align opens_measurable_space OpensMeasurableSpace
#align opens_measurable_space.borel_le OpensMeasurableSpace.borel_le
/-- A space with `MeasurableSpace` and `TopologicalSpace` structures such that
the `σ`-algebra of measurable sets is exactly the `σ`-algebra generated by open sets. -/
-class BorelSpace (α : Type _) [TopologicalSpace α] [MeasurableSpace α] : Prop where
+class BorelSpace (α : Type*) [TopologicalSpace α] [MeasurableSpace α] : Prop where
measurable_eq : ‹MeasurableSpace α› = borel α
#align borel_space BorelSpace
#align borel_space.measurable_eq BorelSpace.measurable_eq
@@ -251,35 +251,35 @@ elab_rules : tactic
end Mathlib.Tactic.Borelize
-instance (priority := 100) OrderDual.opensMeasurableSpace {α : Type _} [TopologicalSpace α]
+instance (priority := 100) OrderDual.opensMeasurableSpace {α : Type*} [TopologicalSpace α]
[MeasurableSpace α] [h : OpensMeasurableSpace α] : OpensMeasurableSpace αᵒᵈ where
borel_le := h.borel_le
#align order_dual.opens_measurable_space OrderDual.opensMeasurableSpace
-instance (priority := 100) OrderDual.borelSpace {α : Type _} [TopologicalSpace α]
+instance (priority := 100) OrderDual.borelSpace {α : Type*} [TopologicalSpace α]
[MeasurableSpace α] [h : BorelSpace α] : BorelSpace αᵒᵈ where
measurable_eq := h.measurable_eq
#align order_dual.borel_space OrderDual.borelSpace
/-- In a `BorelSpace` all open sets are measurable. -/
-instance (priority := 100) BorelSpace.opensMeasurable {α : Type _} [TopologicalSpace α]
+instance (priority := 100) BorelSpace.opensMeasurable {α : Type*} [TopologicalSpace α]
[MeasurableSpace α] [BorelSpace α] : OpensMeasurableSpace α :=
⟨ge_of_eq <| BorelSpace.measurable_eq⟩
#align borel_space.opens_measurable BorelSpace.opensMeasurable
-instance Subtype.borelSpace {α : Type _} [TopologicalSpace α] [MeasurableSpace α]
+instance Subtype.borelSpace {α : Type*} [TopologicalSpace α] [MeasurableSpace α]
[hα : BorelSpace α] (s : Set α) : BorelSpace s :=
⟨by borelize α; symm; apply borel_comap⟩
#align subtype.borel_space Subtype.borelSpace
-instance Subtype.opensMeasurableSpace {α : Type _} [TopologicalSpace α] [MeasurableSpace α]
+instance Subtype.opensMeasurableSpace {α : Type*} [TopologicalSpace α] [MeasurableSpace α]
[h : OpensMeasurableSpace α] (s : Set α) : OpensMeasurableSpace s :=
⟨by
rw [borel_comap]
exact comap_mono h.1⟩
#align subtype.opens_measurable_space Subtype.opensMeasurableSpace
-instance (priority := 100) BorelSpace.countablyGenerated {α : Type _} [TopologicalSpace α]
+instance (priority := 100) BorelSpace.countablyGenerated {α : Type*} [TopologicalSpace α]
[MeasurableSpace α] [BorelSpace α] [SecondCountableTopology α] : CountablyGenerated α := by
obtain ⟨b, bct, -, hb⟩ := exists_countable_basis α
refine' ⟨⟨b, bct, _⟩⟩
@@ -382,7 +382,7 @@ instance (priority := 100) OpensMeasurableSpace.toMeasurableSingletonClass [T1Sp
⟨fun _ => isClosed_singleton.measurableSet⟩
#align opens_measurable_space.to_measurable_singleton_class OpensMeasurableSpace.toMeasurableSingletonClass
-instance Pi.opensMeasurableSpace {ι : Type _} {π : ι → Type _} [Countable ι]
+instance Pi.opensMeasurableSpace {ι : Type*} {π : ι → Type*} [Countable ι]
[t' : ∀ i, TopologicalSpace (π i)] [∀ i, MeasurableSpace (π i)]
[∀ i, SecondCountableTopology (π i)] [∀ i, OpensMeasurableSpace (π i)] :
OpensMeasurableSpace (∀ i, π i) := by
@@ -408,7 +408,7 @@ instance Prod.opensMeasurableSpace [SecondCountableTopology α] [SecondCountable
(isOpen_of_mem_countableBasis hv).measurableSet
#align prod.opens_measurable_space Prod.opensMeasurableSpace
-variable {α' : Type _} [TopologicalSpace α'] [MeasurableSpace α']
+variable {α' : Type*} [TopologicalSpace α'] [MeasurableSpace α']
theorem interior_ae_eq_of_null_frontier {μ : Measure α'} {s : Set α'} (h : μ (frontier s) = 0) :
interior s =ᵐ[μ] s :=
@@ -571,7 +571,7 @@ theorem IsPreconnected.measurableSet (h : IsPreconnected s) : MeasurableSet s :=
h.ordConnected.measurableSet
#align is_preconnected.measurable_set IsPreconnected.measurableSet
-theorem generateFrom_Ico_mem_le_borel {α : Type _} [TopologicalSpace α] [LinearOrder α]
+theorem generateFrom_Ico_mem_le_borel {α : Type*} [TopologicalSpace α] [LinearOrder α]
[OrderClosedTopology α] (s t : Set α) :
MeasurableSpace.generateFrom { S | ∃ l ∈ s, ∃ u ∈ t, l < u ∧ Ico l u = S }
≤ borel α := by
@@ -581,7 +581,7 @@ theorem generateFrom_Ico_mem_le_borel {α : Type _} [TopologicalSpace α] [Linea
exact measurableSet_Ico
#align generate_from_Ico_mem_le_borel generateFrom_Ico_mem_le_borel
-theorem Dense.borel_eq_generateFrom_Ico_mem_aux {α : Type _} [TopologicalSpace α] [LinearOrder α]
+theorem Dense.borel_eq_generateFrom_Ico_mem_aux {α : Type*} [TopologicalSpace α] [LinearOrder α]
[OrderTopology α] [SecondCountableTopology α] {s : Set α} (hd : Dense s)
(hbot : ∀ x, IsBot x → x ∈ s) (hIoo : ∀ x y : α, x < y → Ioo x y = ∅ → y ∈ s) :
borel α = .generateFrom { S : Set α | ∃ l ∈ s, ∃ u ∈ s, l < u ∧ Ico l u = S } := by
@@ -618,7 +618,7 @@ theorem Dense.borel_eq_generateFrom_Ico_mem_aux {α : Type _} [TopologicalSpace
exact .basic _ ⟨x, hts hx, a, ha, hlt, mem_singleton _⟩
#align dense.borel_eq_generate_from_Ico_mem_aux Dense.borel_eq_generateFrom_Ico_mem_aux
-theorem Dense.borel_eq_generateFrom_Ico_mem {α : Type _} [TopologicalSpace α] [LinearOrder α]
+theorem Dense.borel_eq_generateFrom_Ico_mem {α : Type*} [TopologicalSpace α] [LinearOrder α]
[OrderTopology α] [SecondCountableTopology α] [DenselyOrdered α] [NoMinOrder α] {s : Set α}
(hd : Dense s) :
borel α = .generateFrom { S : Set α | ∃ l ∈ s, ∃ u ∈ s, l < u ∧ Ico l u = S } :=
@@ -626,7 +626,7 @@ theorem Dense.borel_eq_generateFrom_Ico_mem {α : Type _} [TopologicalSpace α]
((nonempty_Ioo.2 hxy).ne_empty H).elim
#align dense.borel_eq_generate_from_Ico_mem Dense.borel_eq_generateFrom_Ico_mem
-theorem borel_eq_generateFrom_Ico (α : Type _) [TopologicalSpace α] [SecondCountableTopology α]
+theorem borel_eq_generateFrom_Ico (α : Type*) [TopologicalSpace α] [SecondCountableTopology α]
[LinearOrder α] [OrderTopology α] :
borel α = .generateFrom { S : Set α | ∃ (l u : α), l < u ∧ Ico l u = S } := by
simpa only [exists_prop, mem_univ, true_and_iff] using
@@ -634,7 +634,7 @@ theorem borel_eq_generateFrom_Ico (α : Type _) [TopologicalSpace α] [SecondCou
mem_univ _
#align borel_eq_generate_from_Ico borel_eq_generateFrom_Ico
-theorem Dense.borel_eq_generateFrom_Ioc_mem_aux {α : Type _} [TopologicalSpace α] [LinearOrder α]
+theorem Dense.borel_eq_generateFrom_Ioc_mem_aux {α : Type*} [TopologicalSpace α] [LinearOrder α]
[OrderTopology α] [SecondCountableTopology α] {s : Set α} (hd : Dense s)
(hbot : ∀ x, IsTop x → x ∈ s) (hIoo : ∀ x y : α, x < y → Ioo x y = ∅ → x ∈ s) :
borel α = .generateFrom { S : Set α | ∃ l ∈ s, ∃ u ∈ s, l < u ∧ Ioc l u = S } := by
@@ -647,7 +647,7 @@ theorem Dense.borel_eq_generateFrom_Ioc_mem_aux {α : Type _} [TopologicalSpace
exact he
#align dense.borel_eq_generate_from_Ioc_mem_aux Dense.borel_eq_generateFrom_Ioc_mem_aux
-theorem Dense.borel_eq_generateFrom_Ioc_mem {α : Type _} [TopologicalSpace α] [LinearOrder α]
+theorem Dense.borel_eq_generateFrom_Ioc_mem {α : Type*} [TopologicalSpace α] [LinearOrder α]
[OrderTopology α] [SecondCountableTopology α] [DenselyOrdered α] [NoMaxOrder α] {s : Set α}
(hd : Dense s) :
borel α = .generateFrom { S : Set α | ∃ l ∈ s, ∃ u ∈ s, l < u ∧ Ioc l u = S } :=
@@ -655,7 +655,7 @@ theorem Dense.borel_eq_generateFrom_Ioc_mem {α : Type _} [TopologicalSpace α]
((nonempty_Ioo.2 hxy).ne_empty H).elim
#align dense.borel_eq_generate_from_Ioc_mem Dense.borel_eq_generateFrom_Ioc_mem
-theorem borel_eq_generateFrom_Ioc (α : Type _) [TopologicalSpace α] [SecondCountableTopology α]
+theorem borel_eq_generateFrom_Ioc (α : Type*) [TopologicalSpace α] [SecondCountableTopology α]
[LinearOrder α] [OrderTopology α] :
borel α = .generateFrom { S : Set α | ∃ l u, l < u ∧ Ioc l u = S } := by
simpa only [exists_prop, mem_univ, true_and_iff] using
@@ -669,7 +669,7 @@ namespace MeasureTheory.Measure
`α` is a conditionally complete linear order with no top element,
`MeasureTheory.Measure.ext_of_Ico` is an extensionality lemma with weaker assumptions on `μ` and
`ν`. -/
-theorem ext_of_Ico_finite {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
+theorem ext_of_Ico_finite {α : Type*} [TopologicalSpace α] {m : MeasurableSpace α}
[SecondCountableTopology α] [LinearOrder α] [OrderTopology α] [BorelSpace α] (μ ν : Measure α)
[IsFiniteMeasure μ] (hμν : μ univ = ν univ) (h : ∀ ⦃a b⦄, a < b → μ (Ico a b) = ν (Ico a b)) :
μ = ν := by
@@ -684,7 +684,7 @@ theorem ext_of_Ico_finite {α : Type _} [TopologicalSpace α] {m : MeasurableSpa
`α` is a conditionally complete linear order with no top element,
`MeasureTheory.Measure.ext_of_Ioc` is an extensionality lemma with weaker assumptions on `μ` and
`ν`. -/
-theorem ext_of_Ioc_finite {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
+theorem ext_of_Ioc_finite {α : Type*} [TopologicalSpace α] {m : MeasurableSpace α}
[SecondCountableTopology α] [LinearOrder α] [OrderTopology α] [BorelSpace α] (μ ν : Measure α)
[IsFiniteMeasure μ] (hμν : μ univ = ν univ) (h : ∀ ⦃a b⦄, a < b → μ (Ioc a b) = ν (Ioc a b)) :
μ = ν := by
@@ -695,7 +695,7 @@ theorem ext_of_Ioc_finite {α : Type _} [TopologicalSpace α] {m : MeasurableSpa
/-- Two measures which are finite on closed-open intervals are equal if the agree on all
closed-open intervals. -/
-theorem ext_of_Ico' {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
+theorem ext_of_Ico' {α : Type*} [TopologicalSpace α] {m : MeasurableSpace α}
[SecondCountableTopology α] [LinearOrder α] [OrderTopology α] [BorelSpace α] [NoMaxOrder α]
(μ ν : Measure α) (hμ : ∀ ⦃a b⦄, a < b → μ (Ico a b) ≠ ∞)
(h : ∀ ⦃a b⦄, a < b → μ (Ico a b) = ν (Ico a b)) : μ = ν := by
@@ -721,7 +721,7 @@ theorem ext_of_Ico' {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
/-- Two measures which are finite on closed-open intervals are equal if the agree on all
open-closed intervals. -/
-theorem ext_of_Ioc' {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
+theorem ext_of_Ioc' {α : Type*} [TopologicalSpace α] {m : MeasurableSpace α}
[SecondCountableTopology α] [LinearOrder α] [OrderTopology α] [BorelSpace α] [NoMinOrder α]
(μ ν : Measure α) (hμ : ∀ ⦃a b⦄, a < b → μ (Ioc a b) ≠ ∞)
(h : ∀ ⦃a b⦄, a < b → μ (Ioc a b) = ν (Ioc a b)) : μ = ν := by
@@ -731,7 +731,7 @@ theorem ext_of_Ioc' {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
/-- Two measures which are finite on closed-open intervals are equal if the agree on all
closed-open intervals. -/
-theorem ext_of_Ico {α : Type _} [TopologicalSpace α] {_m : MeasurableSpace α}
+theorem ext_of_Ico {α : Type*} [TopologicalSpace α] {_m : MeasurableSpace α}
[SecondCountableTopology α] [ConditionallyCompleteLinearOrder α] [OrderTopology α]
[BorelSpace α] [NoMaxOrder α] (μ ν : Measure α) [IsLocallyFiniteMeasure μ]
(h : ∀ ⦃a b⦄, a < b → μ (Ico a b) = ν (Ico a b)) : μ = ν :=
@@ -740,7 +740,7 @@ theorem ext_of_Ico {α : Type _} [TopologicalSpace α] {_m : MeasurableSpace α}
/-- Two measures which are finite on closed-open intervals are equal if the agree on all
open-closed intervals. -/
-theorem ext_of_Ioc {α : Type _} [TopologicalSpace α] {_m : MeasurableSpace α}
+theorem ext_of_Ioc {α : Type*} [TopologicalSpace α] {_m : MeasurableSpace α}
[SecondCountableTopology α] [ConditionallyCompleteLinearOrder α] [OrderTopology α]
[BorelSpace α] [NoMinOrder α] (μ ν : Measure α) [IsLocallyFiniteMeasure μ]
(h : ∀ ⦃a b⦄, a < b → μ (Ioc a b) = ν (Ioc a b)) : μ = ν :=
@@ -749,7 +749,7 @@ theorem ext_of_Ioc {α : Type _} [TopologicalSpace α] {_m : MeasurableSpace α}
/-- Two finite measures on a Borel space are equal if they agree on all left-infinite right-closed
intervals. -/
-theorem ext_of_Iic {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
+theorem ext_of_Iic {α : Type*} [TopologicalSpace α] {m : MeasurableSpace α}
[SecondCountableTopology α] [LinearOrder α] [OrderTopology α] [BorelSpace α] (μ ν : Measure α)
[IsFiniteMeasure μ] (h : ∀ a, μ (Iic a) = ν (Iic a)) : μ = ν := by
refine' ext_of_Ioc_finite μ ν _ fun a b hlt => _
@@ -765,7 +765,7 @@ theorem ext_of_Iic {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
/-- Two finite measures on a Borel space are equal if they agree on all left-closed right-infinite
intervals. -/
-theorem ext_of_Ici {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
+theorem ext_of_Ici {α : Type*} [TopologicalSpace α] {m : MeasurableSpace α}
[SecondCountableTopology α] [LinearOrder α] [OrderTopology α] [BorelSpace α] (μ ν : Measure α)
[IsFiniteMeasure μ] (h : ∀ a, μ (Ici a) = ν (Ici a)) : μ = ν :=
@ext_of_Iic αᵒᵈ _ _ _ _ _ ‹_› _ _ _ h
@@ -988,7 +988,7 @@ variable [TopologicalSpace α] [MeasurableSpace α] [BorelSpace α] [Topological
[MeasurableSpace β] [BorelSpace β] [TopologicalSpace γ] [MeasurableSpace γ] [BorelSpace γ]
[MeasurableSpace δ]
-theorem pi_le_borel_pi {ι : Type _} {π : ι → Type _} [∀ i, TopologicalSpace (π i)]
+theorem pi_le_borel_pi {ι : Type*} {π : ι → Type*} [∀ i, TopologicalSpace (π i)]
[∀ i, MeasurableSpace (π i)] [∀ i, BorelSpace (π i)] :
MeasurableSpace.pi ≤ borel (∀ i, π i) := by
have : ‹∀ i, MeasurableSpace (π i)› = fun i => borel (π i) :=
@@ -1004,7 +1004,7 @@ theorem prod_le_borel_prod : Prod.instMeasurableSpace ≤ borel (α × β) := by
· exact comap_le_iff_le_map.mpr continuous_snd.borel_measurable
#align prod_le_borel_prod prod_le_borel_prod
-instance Pi.borelSpace {ι : Type _} {π : ι → Type _} [Countable ι] [∀ i, TopologicalSpace (π i)]
+instance Pi.borelSpace {ι : Type*} {π : ι → Type*} [Countable ι] [∀ i, TopologicalSpace (π i)]
[∀ i, MeasurableSpace (π i)] [∀ i, SecondCountableTopology (π i)] [∀ i, BorelSpace (π i)] :
BorelSpace (∀ i, π i) :=
⟨le_antisymm pi_le_borel_pi OpensMeasurableSpace.borel_le⟩
@@ -1360,14 +1360,14 @@ theorem measurable_cInf {ι} {f : ι → δ → α} {s : Set ι} (hs : s.Countab
@measurable_cSup αᵒᵈ _ _ _ _ _ _ _ _ _ _ _ hs hf bdd
#align measurable_cInf measurable_cInf
-theorem measurable_ciSup {ι : Type _} [Countable ι] {f : ι → δ → α} (hf : ∀ i, Measurable (f i))
+theorem measurable_ciSup {ι : Type*} [Countable ι] {f : ι → δ → α} (hf : ∀ i, Measurable (f i))
(bdd : ∀ x, BddAbove (range fun i => f i x)) : Measurable fun x => ⨆ i, f i x := by
change Measurable fun x => sSup (range fun i : ι => f i x)
simp_rw [← image_univ] at bdd ⊢
refine' measurable_cSup countable_univ hf bdd
#align measurable_csupr measurable_ciSup
-theorem measurable_ciInf {ι : Type _} [Countable ι] {f : ι → δ → α} (hf : ∀ i, Measurable (f i))
+theorem measurable_ciInf {ι : Type*} [Countable ι] {f : ι → δ → α} (hf : ∀ i, Measurable (f i))
(bdd : ∀ x, BddBelow (range fun i => f i x)) : Measurable fun x => ⨅ i, f i x :=
@measurable_ciSup αᵒᵈ _ _ _ _ _ _ _ _ _ _ _ hf bdd
#align measurable_cinfi measurable_ciInf
@@ -1381,8 +1381,8 @@ def Homemorph.toMeasurableEquiv (h : α ≃ₜ β) : α ≃ᵐ β where
measurable_invFun := h.continuous_invFun.measurable
#align homemorph.to_measurable_equiv Homemorph.toMeasurableEquiv
-protected theorem IsFiniteMeasureOnCompacts.map {α : Type _} {m0 : MeasurableSpace α}
- [TopologicalSpace α] [OpensMeasurableSpace α] {β : Type _} [MeasurableSpace β]
+protected theorem IsFiniteMeasureOnCompacts.map {α : Type*} {m0 : MeasurableSpace α}
+ [TopologicalSpace α] [OpensMeasurableSpace α] {β : Type*} [MeasurableSpace β]
[TopologicalSpace β] [BorelSpace β] [T2Space β] (μ : Measure α) [IsFiniteMeasureOnCompacts μ]
(f : α ≃ₜ β) : IsFiniteMeasureOnCompacts (Measure.map f μ) :=
⟨by
@@ -1970,7 +1970,7 @@ theorem AEMeasurable.ennreal_tsum {ι} [Countable ι] {f : ι → α → ℝ≥0
#align ae_measurable.ennreal_tsum AEMeasurable.ennreal_tsum
@[measurability]
-theorem AEMeasurable.nnreal_tsum {α : Type _} [MeasurableSpace α] {ι : Type _} [Countable ι]
+theorem AEMeasurable.nnreal_tsum {α : Type*} [MeasurableSpace α] {ι : Type*} [Countable ι]
{f : ι → α → NNReal} {μ : MeasureTheory.Measure α} (h : ∀ i : ι, AEMeasurable (f i) μ) :
AEMeasurable (fun x : α => ∑' i : ι, f i x) μ := by
simp_rw [NNReal.tsum_eq_toNNReal_tsum]
This PR mainly makes the generalization so that tendsto_measure_cthickening
and tendsto_measure_cthickening_of_isClosed
assume [PseudoEMetricSpace]
instead of [PseudoMetricSpace]
(the proofs require no changes, but the generality seems valuable).
Also the counterparts tendsto_measure_thickening
and tendsto_measure_thickening_of_isClosed
for open thickenings (instead of closed thickenings) are added.
@@ -1575,45 +1575,8 @@ theorem Measurable.nndist {f g : β → α} (hf : Measurable f) (hg : Measurable
end
-/-- If a set has a closed thickening with finite measure, then the measure of its `r`-closed
-thickenings converges to the measure of its closure as `r` tends to `0`. -/
-theorem tendsto_measure_cthickening {μ : Measure α} {s : Set α}
- (hs : ∃ R > 0, μ (cthickening R s) ≠ ∞) :
- Tendsto (fun r => μ (cthickening r s)) (𝓝 0) (𝓝 (μ (closure s))) := by
- have A : Tendsto (fun r => μ (cthickening r s)) (𝓝[Ioi 0] 0) (𝓝 (μ (closure s))) := by
- rw [closure_eq_iInter_cthickening]
- exact
- tendsto_measure_biInter_gt (fun r _ => isClosed_cthickening.measurableSet)
- (fun i j _ ij => cthickening_mono ij _) hs
- have B : Tendsto (fun r => μ (cthickening r s)) (𝓝[Iic 0] 0) (𝓝 (μ (closure s))) := by
- apply Tendsto.congr' _ tendsto_const_nhds
- filter_upwards [self_mem_nhdsWithin (α := ℝ)] with _ hr
- rw [cthickening_of_nonpos hr]
- convert B.sup A
- exact (nhds_left_sup_nhds_right' 0).symm
-#align tendsto_measure_cthickening tendsto_measure_cthickening
-
-/-- If a closed set has a closed thickening with finite measure, then the measure of its `r`-closed
-thickenings converges to its measure as `r` tends to `0`. -/
-theorem tendsto_measure_cthickening_of_isClosed {μ : Measure α} {s : Set α}
- (hs : ∃ R > 0, μ (cthickening R s) ≠ ∞) (h's : IsClosed s) :
- Tendsto (fun r => μ (cthickening r s)) (𝓝 0) (𝓝 (μ s)) := by
- convert tendsto_measure_cthickening hs
- exact h's.closure_eq.symm
-#align tendsto_measure_cthickening_of_is_closed tendsto_measure_cthickening_of_isClosed
-
end PseudoMetricSpace
-/-- Given a compact set in a proper space, the measure of its `r`-closed thickenings converges to
-its measure as `r` tends to `0`. -/
-theorem tendsto_measure_cthickening_of_isCompact [MetricSpace α] [MeasurableSpace α]
- [OpensMeasurableSpace α] [ProperSpace α] {μ : Measure α} [IsFiniteMeasureOnCompacts μ]
- {s : Set α} (hs : IsCompact s) :
- Tendsto (fun r => μ (Metric.cthickening r s)) (𝓝 0) (𝓝 (μ s)) :=
- tendsto_measure_cthickening_of_isClosed ⟨1, zero_lt_one, hs.bounded.cthickening.measure_lt_top.ne⟩
- hs.isClosed
-#align tendsto_measure_cthickening_of_is_compact tendsto_measure_cthickening_of_isCompact
-
section PseudoEMetricSpace
variable [PseudoEMetricSpace α] [MeasurableSpace α] [OpensMeasurableSpace α]
@@ -1648,6 +1611,52 @@ theorem Measurable.infEdist {f : β → α} (hf : Measurable f) {s : Set α} :
measurable_infEdist.comp hf
#align measurable.inf_edist Measurable.infEdist
+open Metric EMetric
+
+/-- If a set has a closed thickening with finite measure, then the measure of its `r`-closed
+thickenings converges to the measure of its closure as `r` tends to `0`. -/
+theorem tendsto_measure_cthickening {μ : Measure α} {s : Set α}
+ (hs : ∃ R > 0, μ (cthickening R s) ≠ ∞) :
+ Tendsto (fun r => μ (cthickening r s)) (𝓝 0) (𝓝 (μ (closure s))) := by
+ have A : Tendsto (fun r => μ (cthickening r s)) (𝓝[Ioi 0] 0) (𝓝 (μ (closure s))) := by
+ rw [closure_eq_iInter_cthickening]
+ exact
+ tendsto_measure_biInter_gt (fun r _ => isClosed_cthickening.measurableSet)
+ (fun i j _ ij => cthickening_mono ij _) hs
+ have B : Tendsto (fun r => μ (cthickening r s)) (𝓝[Iic 0] 0) (𝓝 (μ (closure s))) := by
+ apply Tendsto.congr' _ tendsto_const_nhds
+ filter_upwards [self_mem_nhdsWithin (α := ℝ)] with _ hr
+ rw [cthickening_of_nonpos hr]
+ convert B.sup A
+ exact (nhds_left_sup_nhds_right' 0).symm
+#align tendsto_measure_cthickening tendsto_measure_cthickening
+
+/-- If a closed set has a closed thickening with finite measure, then the measure of its closed
+`r`-thickenings converge to its measure as `r` tends to `0`. -/
+theorem tendsto_measure_cthickening_of_isClosed {μ : Measure α} {s : Set α}
+ (hs : ∃ R > 0, μ (cthickening R s) ≠ ∞) (h's : IsClosed s) :
+ Tendsto (fun r => μ (cthickening r s)) (𝓝 0) (𝓝 (μ s)) := by
+ convert tendsto_measure_cthickening hs
+ exact h's.closure_eq.symm
+#align tendsto_measure_cthickening_of_is_closed tendsto_measure_cthickening_of_isClosed
+
+/-- If a set has a thickening with finite measure, then the measures of its `r`-thickenings
+converge to the measure of its closure as `r > 0` tends to `0`. -/
+theorem tendsto_measure_thickening {μ : Measure α} {s : Set α}
+ (hs : ∃ R > 0, μ (thickening R s) ≠ ∞) :
+ Tendsto (fun r => μ (thickening r s)) (𝓝[>] 0) (𝓝 (μ (closure s))) := by
+ rw [closure_eq_iInter_thickening]
+ exact tendsto_measure_biInter_gt (fun r _ => isOpen_thickening.measurableSet)
+ (fun i j _ ij => thickening_mono ij _) hs
+
+/-- If a closed set has a thickening with finite measure, then the measure of its
+`r`-thickenings converge to its measure as `r > 0` tends to `0`. -/
+theorem tendsto_measure_thickening_of_isClosed {μ : Measure α} {s : Set α}
+ (hs : ∃ R > 0, μ (thickening R s) ≠ ∞) (h's : IsClosed s) :
+ Tendsto (fun r => μ (thickening r s)) (𝓝[>] 0) (𝓝 (μ s)) := by
+ convert tendsto_measure_thickening hs
+ exact h's.closure_eq.symm
+
variable [SecondCountableTopology α]
@[measurability]
@@ -1669,6 +1678,16 @@ theorem AEMeasurable.edist {f g : β → α} {μ : Measure β} (hf : AEMeasurabl
end PseudoEMetricSpace
+/-- Given a compact set in a proper space, the measure of its `r`-closed thickenings converges to
+its measure as `r` tends to `0`. -/
+theorem tendsto_measure_cthickening_of_isCompact [MetricSpace α] [MeasurableSpace α]
+ [OpensMeasurableSpace α] [ProperSpace α] {μ : Measure α} [IsFiniteMeasureOnCompacts μ]
+ {s : Set α} (hs : IsCompact s) :
+ Tendsto (fun r => μ (Metric.cthickening r s)) (𝓝 0) (𝓝 (μ s)) :=
+ tendsto_measure_cthickening_of_isClosed ⟨1, zero_lt_one, hs.bounded.cthickening.measure_lt_top.ne⟩
+ hs.isClosed
+#align tendsto_measure_cthickening_of_is_compact tendsto_measure_cthickening_of_isCompact
+
namespace Real
open MeasurableSpace MeasureTheory
NeZero
for measures (#6048)
Assume NeZero μ
instead of μ.ae.NeBot
everywhere,
and sometimes instead of μ ≠ 0
.
Convex.average_mem
, Convex.set_average_mem
,
ConvexOn.average_mem_epigraph
, ConcaveOn.average_mem_hypograph
,
ConvexOn.map_average_le
, ConcaveOn.le_map_average
:
assume [NeZero μ]
instead of μ ≠ 0
;MeasureTheory.condexp_bot'
, essSup_const'
, essInf_const'
,
MeasureTheory.laverage_const
, MeasureTheory.laverage_one
,
MeasureTheory.average_const
:
assume [NeZero μ]
instead of [μ.ae.NeBot]
MeasureTheory.Measure.measure_ne_zero
: replace with an instance;@[simp]
from MeasureTheory.ae_restrict_neBot
,
use ≠ 0
in the RHS;MeasureTheory.IsProbabilityMeasure.ae_neBot
into a theorem because inferInstance
can find it now;[NeZero μ] : NeZero (μ univ)
;[NeZero (μ s)] : NeZero (μ.restrict s)
;[NeZero μ] : μ.ae.NeBot
;[IsProbabilityMeasure μ] : NeZero μ
;[IsFiniteMeasure μ] [NeZero μ] : IsProbabilityMeasure ((μ univ)⁻¹ • μ)
this was a theorem MeasureTheory.isProbabilityMeasureSmul
assuming μ ≠ 0
;@@ -1109,10 +1109,8 @@ private theorem AEMeasurable.is_lub_of_nonempty {ι} (hι : Nonempty ι) {μ : M
theorem AEMeasurable.isLUB {ι} {μ : Measure δ} [Countable ι] {f : ι → δ → α} {g : δ → α}
(hf : ∀ i, AEMeasurable (f i) μ) (hg : ∀ᵐ b ∂μ, IsLUB { a | ∃ i, f i b = a } (g b)) :
AEMeasurable g μ := by
- by_cases hμ : μ = 0
- · rw [hμ]
- exact aemeasurable_zero_measure
- have : μ.ae.NeBot := by simpa [neBot_iff]
+ rcases eq_zero_or_neZero μ with rfl | hμ
+ · exact aemeasurable_zero_measure
by_cases hι : Nonempty ι
· exact AEMeasurable.is_lub_of_nonempty hι hf hg
suffices ∃ x, g =ᵐ[μ] fun _ => g x by
@@ -2,11 +2,6 @@
Copyright (c) 2017 Johannes Hölzl. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Johannes Hölzl, Yury Kudryashov
-
-! This file was ported from Lean 3 source module measure_theory.constructions.borel_space.basic
-! leanprover-community/mathlib commit 9f55d0d4363ae59948c33864cbc52e0b12e0e8ce
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Analysis.Normed.Group.Basic
import Mathlib.MeasureTheory.Function.AEMeasurableSequence
@@ -20,6 +15,8 @@ import Mathlib.Topology.GDelta
import Mathlib.Topology.Order.Lattice
import Mathlib.Topology.Semicontinuous
+#align_import measure_theory.constructions.borel_space.basic from "leanprover-community/mathlib"@"9f55d0d4363ae59948c33864cbc52e0b12e0e8ce"
+
/-!
# Borel (measurable) space
Also invert the import order so that MeasureTheory.Measure.OpenPos
imports MeasureTheory.Constructions.BorelSpace.Basic
rather than the other way around.
@@ -12,7 +12,6 @@ import Mathlib.Analysis.Normed.Group.Basic
import Mathlib.MeasureTheory.Function.AEMeasurableSequence
import Mathlib.MeasureTheory.Group.Arithmetic
import Mathlib.MeasureTheory.Lattice
-import Mathlib.MeasureTheory.Measure.OpenPos
import Mathlib.Topology.Algebra.Order.LiminfLimsup
import Mathlib.Topology.ContinuousFunction.Basic
import Mathlib.Topology.Instances.EReal
@@ -839,14 +838,6 @@ theorem ClosedEmbedding.measurable {f : α → γ} (hf : ClosedEmbedding f) : Me
hf.continuous.measurable
#align closed_embedding.measurable ClosedEmbedding.measurable
-theorem Continuous.isOpenPosMeasure_map {f : β → γ} (hf : Continuous f)
- (hf_surj : Function.Surjective f) {μ : Measure β} [μ.IsOpenPosMeasure] :
- (Measure.map f μ).IsOpenPosMeasure := by
- refine' ⟨fun U hUo hUne => _⟩
- rw [Measure.map_apply hf.measurable hUo.measurableSet]
- exact (hUo.preimage hf).measure_ne_zero μ (hf_surj.nonempty_preimage.mpr hUne)
-#align continuous.is_open_pos_measure_map Continuous.isOpenPosMeasure_map
-
/-- If a function is defined piecewise in terms of functions which are continuous on their
respective pieces, then it is measurable. -/
theorem ContinuousOn.measurable_piecewise {f g : α → γ} {s : Set α} [∀ j : α, Decidable (j ∈ s)]
HasCountableSeparatingOn
(#5675)
See Zulip for motivation.
@@ -312,6 +312,10 @@ theorem IsOpen.measurableSet (h : IsOpen s) : MeasurableSet s :=
OpensMeasurableSpace.borel_le _ <| GenerateMeasurable.basic _ h
#align is_open.measurable_set IsOpen.measurableSet
+instance (priority := 500) {s : Set α} [HasCountableSeparatingOn α IsOpen s] :
+ HasCountableSeparatingOn α MeasurableSet s :=
+ .mono (fun _ ↦ IsOpen.measurableSet) Subset.rfl
+
@[measurability]
theorem measurableSet_interior : MeasurableSet (interior s) :=
isOpen_interior.measurableSet
@@ -134,13 +134,13 @@ theorem borel_eq_generateFrom_Iio : borel α = .generateFrom (range Iio) := by
rintro _ ⟨a, rfl | rfl⟩ <;> [skip; apply H]
by_cases h : ∃ a', ∀ b, a < b ↔ a' ≤ b
· rcases h with ⟨a', ha'⟩
- rw [(_ : Ioi a = Iio a'ᶜ)]
+ rw [(_ : Ioi a = (Iio a')ᶜ)]
· exact (H _).compl
simp [Set.ext_iff, ha']
· rcases isOpen_iUnion_countable (fun a' : { a' : α // a < a' } => { b | a'.1 < b }) fun a' =>
isOpen_lt' _ with ⟨v, ⟨hv⟩, vu⟩
simp [Set.ext_iff] at vu
- have : Ioi a = ⋃ x : v, Iio x.1.1ᶜ := by
+ have : Ioi a = ⋃ x : v, (Iio x.1.1)ᶜ := by
simp [Set.ext_iff]
refine' fun x => ⟨fun ax => _, fun ⟨a', ⟨h, _⟩, ax⟩ => lt_of_lt_of_le h ax⟩
rcases (vu x).2 (by
@@ -293,7 +293,7 @@ instance (priority := 100) BorelSpace.countablyGenerated {α : Type _} [Topologi
theorem MeasurableSet.induction_on_open [TopologicalSpace α] [MeasurableSpace α] [BorelSpace α]
{C : Set α → Prop} (h_open : ∀ U, IsOpen U → C U)
- (h_compl : ∀ t, MeasurableSet t → C t → C (tᶜ))
+ (h_compl : ∀ t, MeasurableSet t → C t → C tᶜ)
(h_union :
∀ f : ℕ → Set α,
Pairwise (Disjoint on f) → (∀ i, MeasurableSet (f i)) → (∀ i, C (f i)) → C (⋃ i, f i)) :
@@ -846,7 +846,7 @@ theorem Continuous.isOpenPosMeasure_map {f : β → γ} (hf : Continuous f)
/-- If a function is defined piecewise in terms of functions which are continuous on their
respective pieces, then it is measurable. -/
theorem ContinuousOn.measurable_piecewise {f g : α → γ} {s : Set α} [∀ j : α, Decidable (j ∈ s)]
- (hf : ContinuousOn f s) (hg : ContinuousOn g (sᶜ)) (hs : MeasurableSet s) :
+ (hf : ContinuousOn f s) (hg : ContinuousOn g sᶜ) (hs : MeasurableSet s) :
Measurable (s.piecewise f g) := by
refine' measurable_of_isOpen fun t ht => _
rw [piecewise_preimage, Set.ite]
@@ -946,7 +946,7 @@ theorem ContinuousMap.measurable (f : C(α, γ)) : Measurable f :=
#align continuous_map.measurable ContinuousMap.measurable
theorem measurable_of_continuousOn_compl_singleton [T1Space α] {f : α → γ} (a : α)
- (hf : ContinuousOn f ({a}ᶜ)) : Measurable f :=
+ (hf : ContinuousOn f {a}ᶜ) : Measurable f :=
measurable_of_measurable_on_compl_singleton a
(continuousOn_iff_continuous_restrict.1 hf).measurable
#align measurable_of_continuous_on_compl_singleton measurable_of_continuousOn_compl_singleton
@@ -1732,7 +1732,7 @@ theorem borel_eq_generateFrom_Iio_rat : borel ℝ = .generateFrom (⋃ a : ℚ,
refine' fun _ => ⟨fun h => _, fun ⟨i, hai, hix⟩ => (Rat.cast_lt.2 hai).trans_le hix⟩
rcases exists_rat_btwn h with ⟨c, ac, cx⟩
exact ⟨c, Rat.cast_lt.1 ac, cx.le⟩
- : Ioo (a : ℝ) b = (⋃ c > a, Iio (c : ℝ)ᶜ) ∩ Iio (b : ℝ))]
+ : Ioo (a : ℝ) b = (⋃ c > a, (Iio (c : ℝ))ᶜ) ∩ Iio (b : ℝ))]
· have hg : ∀ q : ℚ, MeasurableSet[g] (Iio (q : ℝ)) := fun q =>
GenerateMeasurable.basic (Iio (q : ℝ)) (by simp)
refine' @MeasurableSet.inter _ g _ _ _ (hg _)
at
and goals (#5387)
Changes are of the form
some_tactic at h⊢
-> some_tactic at h ⊢
some_tactic at h
-> some_tactic at h
@@ -1235,7 +1235,7 @@ theorem measurableSet_of_mem_nhdsWithin_Ioi {s : Set α} (h : ∀ x ∈ s, s ∈
exact ne_of_lt (hy.2.trans_le (h₀ _))
· apply measurableSet_of_mem_nhdsWithin_Ioi_aux h
simp only [IsTop] at H
- push_neg at H
+ push_neg at H
exact H
#align measurable_set_of_mem_nhds_within_Ioi measurableSet_of_mem_nhdsWithin_Ioi
@@ -1373,7 +1373,7 @@ theorem measurable_cInf {ι} {f : ι → δ → α} {s : Set ι} (hs : s.Countab
theorem measurable_ciSup {ι : Type _} [Countable ι] {f : ι → δ → α} (hf : ∀ i, Measurable (f i))
(bdd : ∀ x, BddAbove (range fun i => f i x)) : Measurable fun x => ⨆ i, f i x := by
change Measurable fun x => sSup (range fun i : ι => f i x)
- simp_rw [← image_univ] at bdd⊢
+ simp_rw [← image_univ] at bdd ⊢
refine' measurable_cSup countable_univ hf bdd
#align measurable_csupr measurable_ciSup
@@ -220,17 +220,19 @@ Finally, `borelize α β γ` runs `borelize α; borelize β; borelize γ`.
-/
syntax "borelize" (ppSpace colGt term:max)* : tactic
-/-- Add instances `borel $t : MeasurableSpace $t` and `⟨rfl⟩ : BorelSpace $t`. -/
-def addBorelInstance (t : Term) : TacticM Unit := do
+/-- Add instances `borel e : MeasurableSpace e` and `⟨rfl⟩ : BorelSpace e`. -/
+def addBorelInstance (e : Expr) : TacticM Unit := do
+ let t ← Lean.Elab.Term.exprToSyntax e
evalTactic <| ← `(tactic|
refine_lift
letI : MeasurableSpace $t := borel $t
haveI : BorelSpace $t := ⟨rfl⟩
?_)
-/-- Given a type `$t`, an assumption `i : MeasurableSpace $t`, and an instance `[BorelSpace $t]`,
-replace `i` with `borel $t`. -/
-def borelToRefl (t : Term) (i : FVarId) : TacticM Unit := do
+/-- Given a type `e`, an assumption `i : MeasurableSpace e`, and an instance `[BorelSpace e]`,
+replace `i` with `borel e`. -/
+def borelToRefl (e : Expr) (i : FVarId) : TacticM Unit := do
+ let t ← Lean.Elab.Term.exprToSyntax e
evalTactic <| ← `(tactic|
have := @BorelSpace.measurable_eq $t _ _ _)
liftMetaTactic fun m => return [← subst m i]
@@ -242,11 +244,11 @@ def borelToRefl (t : Term) (i : FVarId) : TacticM Unit := do
/-- Given a type `$t`, if there is an assumption `[i : MeasurableSpace $t]`, then try to prove
`[BorelSpace $t]` and replace `i` with `borel $t`. Otherwise, add instances
`borel $t : MeasurableSpace $t` and `⟨rfl⟩ : BorelSpace $t`. -/
-def borelize (t : Term) : TacticM Unit := do
+def borelize (t : Term) : TacticM Unit := withMainContext <| do
let u ← mkFreshLevelMVar
- let e ← Tactic.elabTermEnsuringType t (mkSort (mkLevelSucc u))
+ let e ← withoutRecover <| Tactic.elabTermEnsuringType t (mkSort (mkLevelSucc u))
let i? ← findLocalDeclWithType? (← mkAppOptM ``MeasurableSpace #[e])
- i?.elim (addBorelInstance t) (borelToRefl t)
+ i?.elim (addBorelInstance e) (borelToRefl e)
elab_rules : tactic
| `(tactic| borelize $[$t:term]*) => t.forM borelize
Co-authored-by: Yury G. Kudryashov <urkud@urkud.name>
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Johannes Hölzl, Yury Kudryashov
! This file was ported from Lean 3 source module measure_theory.constructions.borel_space.basic
-! leanprover-community/mathlib commit 20d5763051978e9bc6428578ed070445df6a18b3
+! leanprover-community/mathlib commit 9f55d0d4363ae59948c33864cbc52e0b12e0e8ce
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -64,6 +64,10 @@ def borel (α : Type u) [TopologicalSpace α] : MeasurableSpace α :=
generateFrom { s : Set α | IsOpen s }
#align borel borel
+theorem borel_anti : Antitone (@borel α) := fun _ _ h =>
+ MeasurableSpace.generateFrom_le fun _ hs => .basic _ (h _ hs)
+#align borel_anti borel_anti
+
theorem borel_eq_top_of_discrete [TopologicalSpace α] [DiscreteTopology α] : borel α = ⊤ :=
top_le_iff.1 fun s _ => GenerateMeasurable.basic s (isOpen_discrete s)
#align borel_eq_top_of_discrete borel_eq_top_of_discrete
@@ -381,7 +381,7 @@ instance Pi.opensMeasurableSpace {ι : Type _} {π : ι → Type _} [Countable
[∀ i, SecondCountableTopology (π i)] [∀ i, OpensMeasurableSpace (π i)] :
OpensMeasurableSpace (∀ i, π i) := by
constructor
- have : Pi.topologicalSpace = .generateFrom { t | ∃ (s : ∀ a, Set (π a))(i : Finset ι),
+ have : Pi.topologicalSpace = .generateFrom { t | ∃ (s : ∀ a, Set (π a)) (i : Finset ι),
(∀ a ∈ i, s a ∈ countableBasis (π a)) ∧ t = pi (↑i) s } := by
rw [funext fun a => @eq_generateFrom_countableBasis (π a) _ _, pi_generateFrom_eq]
rw [borel_eq_generateFrom_of_subbasis this]
@@ -720,7 +720,7 @@ theorem ext_of_Ioc' {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
(μ ν : Measure α) (hμ : ∀ ⦃a b⦄, a < b → μ (Ioc a b) ≠ ∞)
(h : ∀ ⦃a b⦄, a < b → μ (Ioc a b) = ν (Ioc a b)) : μ = ν := by
refine' @ext_of_Ico' αᵒᵈ _ _ _ _ _ ‹_› _ μ ν _ _ <;> intro a b hab <;> erw [dual_Ico (α := α)]
- exacts[hμ hab, h hab]
+ exacts [hμ hab, h hab]
#align measure_theory.measure.ext_of_Ioc' MeasureTheory.Measure.ext_of_Ioc'
/-- Two measures which are finite on closed-open intervals are equal if the agree on all
@@ -586,7 +586,7 @@ theorem Dense.borel_eq_generateFrom_Ico_mem_aux {α : Type _} [TopologicalSpace
refine' generateFrom_le (forall_range_iff.2 fun a => _)
rcases hd.exists_countable_dense_subset_bot_top with ⟨t, hts, hc, htd, htb, -⟩
by_cases ha : ∀ b < a, (Ioo b a).Nonempty
- · convert_to MeasurableSet (⋃ (l ∈ t) (u ∈ t) (_hlu : l < u) (_hu : u ≤ a), Ico l u)
+ · convert_to MeasurableSet (⋃ (l ∈ t) (u ∈ t) (_ : l < u) (_ : u ≤ a), Ico l u)
· ext y
simp only [mem_iUnion, mem_Iio, mem_Ico]
constructor
@@ -601,7 +601,7 @@ theorem Dense.borel_eq_generateFrom_Ico_mem_aux {α : Type _} [TopologicalSpace
exact .basic _ ⟨a, hts ha, b, hts hb, hab, mem_singleton _⟩
· simp only [not_forall, not_nonempty_iff_eq_empty] at ha
replace ha : a ∈ s := hIoo ha.choose a ha.choose_spec.fst ha.choose_spec.snd
- convert_to MeasurableSet (⋃ (l ∈ t) (_hl : l < a), Ico l a)
+ convert_to MeasurableSet (⋃ (l ∈ t) (_ : l < a), Ico l a)
· symm
simp only [← Ici_inter_Iio, ← iUnion_inter, inter_eq_right_iff_subset, subset_def, mem_iUnion,
mem_Ici, mem_Iio]
@@ -694,7 +694,7 @@ theorem ext_of_Ico' {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
(μ ν : Measure α) (hμ : ∀ ⦃a b⦄, a < b → μ (Ico a b) ≠ ∞)
(h : ∀ ⦃a b⦄, a < b → μ (Ico a b) = ν (Ico a b)) : μ = ν := by
rcases exists_countable_dense_bot_top α with ⟨s, hsc, hsd, hsb, _⟩
- have : (⋃ (l ∈ s) (u ∈ s) (_h : l < u), {Ico l u} : Set (Set α)).Countable :=
+ have : (⋃ (l ∈ s) (u ∈ s) (_ : l < u), {Ico l u} : Set (Set α)).Countable :=
hsc.biUnion fun l _ => hsc.biUnion fun u _ => countable_iUnion fun _ => countable_singleton _
simp only [← setOf_eq_eq_singleton, ← setOf_exists] at this
refine'
@@ -1237,14 +1237,14 @@ end LinearOrder
@[measurability]
theorem Measurable.iSup_Prop {α} [MeasurableSpace α] [CompleteLattice α] (p : Prop) {f : δ → α}
- (hf : Measurable f) : Measurable fun b => ⨆ _h : p, f b :=
+ (hf : Measurable f) : Measurable fun b => ⨆ _ : p, f b :=
_root_.by_cases (fun h : p => by convert hf; funext; exact iSup_pos h) fun h : ¬p => by
convert measurable_const using 1; funext; exact iSup_neg h
#align measurable.supr_Prop Measurable.iSup_Prop
@[measurability]
theorem Measurable.iInf_Prop {α} [MeasurableSpace α] [CompleteLattice α] (p : Prop) {f : δ → α}
- (hf : Measurable f) : Measurable fun b => ⨅ _h : p, f b :=
+ (hf : Measurable f) : Measurable fun b => ⨅ _ : p, f b :=
_root_.by_cases (fun h : p => by convert hf; funext; exact iInf_pos h) fun h : ¬p => by
convert measurable_const using 1; funext; exact iInf_neg h
#align measurable.infi_Prop Measurable.iInf_Prop
@@ -1678,12 +1678,12 @@ namespace Real
open MeasurableSpace MeasureTheory
theorem borel_eq_generateFrom_Ioo_rat :
- borel ℝ = .generateFrom (⋃ (a : ℚ) (b : ℚ) (_h : a < b), {Ioo (a : ℝ) (b : ℝ)}) :=
+ borel ℝ = .generateFrom (⋃ (a : ℚ) (b : ℚ) (_ : a < b), {Ioo (a : ℝ) (b : ℝ)}) :=
isTopologicalBasis_Ioo_rat.borel_eq_generateFrom
#align real.borel_eq_generate_from_Ioo_rat Real.borel_eq_generateFrom_Ioo_rat
theorem isPiSystem_Ioo_rat :
- @IsPiSystem ℝ (⋃ (a : ℚ) (b : ℚ) (_h : a < b), {Ioo (a : ℝ) (b : ℝ)}) := by
+ @IsPiSystem ℝ (⋃ (a : ℚ) (b : ℚ) (_ : a < b), {Ioo (a : ℝ) (b : ℝ)}) := by
convert isPiSystem_Ioo ((↑) : ℚ → ℝ) ((↑) : ℚ → ℝ)
ext x
simp [eq_comm]
@@ -1692,7 +1692,7 @@ theorem isPiSystem_Ioo_rat :
/-- The intervals `(-(n + 1), (n + 1))` form a finite spanning sets in the set of open intervals
with rational endpoints for a locally finite measure `μ` on `ℝ`. -/
def finiteSpanningSetsInIooRat (μ : Measure ℝ) [IsLocallyFiniteMeasure μ] :
- μ.FiniteSpanningSetsIn (⋃ (a : ℚ) (b : ℚ) (_h : a < b), {Ioo (a : ℝ) (b : ℝ)}) where
+ μ.FiniteSpanningSetsIn (⋃ (a : ℚ) (b : ℚ) (_ : a < b), {Ioo (a : ℝ) (b : ℝ)}) where
set n := Ioo (-(n + 1)) (n + 1)
set_mem n := by
simp only [mem_iUnion, mem_singleton_iff]
Is
of Foo
which is ported from is_foo
(#4639)
I have misported is_foo
to Foo
because I misunderstood the rule for IsLawfulFoo
.
This PR recover Is
of Foo
which is ported from is_foo
.
This PR also renames some misported theorems.
@@ -665,7 +665,7 @@ namespace MeasureTheory.Measure
`ν`. -/
theorem ext_of_Ico_finite {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
[SecondCountableTopology α] [LinearOrder α] [OrderTopology α] [BorelSpace α] (μ ν : Measure α)
- [FiniteMeasure μ] (hμν : μ univ = ν univ) (h : ∀ ⦃a b⦄, a < b → μ (Ico a b) = ν (Ico a b)) :
+ [IsFiniteMeasure μ] (hμν : μ univ = ν univ) (h : ∀ ⦃a b⦄, a < b → μ (Ico a b) = ν (Ico a b)) :
μ = ν := by
refine'
ext_of_generate_finite _ (BorelSpace.measurable_eq.trans (borel_eq_generateFrom_Ico α))
@@ -680,7 +680,7 @@ theorem ext_of_Ico_finite {α : Type _} [TopologicalSpace α] {m : MeasurableSpa
`ν`. -/
theorem ext_of_Ioc_finite {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
[SecondCountableTopology α] [LinearOrder α] [OrderTopology α] [BorelSpace α] (μ ν : Measure α)
- [FiniteMeasure μ] (hμν : μ univ = ν univ) (h : ∀ ⦃a b⦄, a < b → μ (Ioc a b) = ν (Ioc a b)) :
+ [IsFiniteMeasure μ] (hμν : μ univ = ν univ) (h : ∀ ⦃a b⦄, a < b → μ (Ioc a b) = ν (Ioc a b)) :
μ = ν := by
refine' @ext_of_Ico_finite αᵒᵈ _ _ _ _ _ ‹_› μ ν _ hμν fun a b hab => _
erw [dual_Ico (α := α)]
@@ -727,7 +727,7 @@ theorem ext_of_Ioc' {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
closed-open intervals. -/
theorem ext_of_Ico {α : Type _} [TopologicalSpace α] {_m : MeasurableSpace α}
[SecondCountableTopology α] [ConditionallyCompleteLinearOrder α] [OrderTopology α]
- [BorelSpace α] [NoMaxOrder α] (μ ν : Measure α) [LocallyFiniteMeasure μ]
+ [BorelSpace α] [NoMaxOrder α] (μ ν : Measure α) [IsLocallyFiniteMeasure μ]
(h : ∀ ⦃a b⦄, a < b → μ (Ico a b) = ν (Ico a b)) : μ = ν :=
μ.ext_of_Ico' ν (fun _ _ _ => measure_Ico_lt_top.ne) h
#align measure_theory.measure.ext_of_Ico MeasureTheory.Measure.ext_of_Ico
@@ -736,7 +736,7 @@ theorem ext_of_Ico {α : Type _} [TopologicalSpace α] {_m : MeasurableSpace α}
open-closed intervals. -/
theorem ext_of_Ioc {α : Type _} [TopologicalSpace α] {_m : MeasurableSpace α}
[SecondCountableTopology α] [ConditionallyCompleteLinearOrder α] [OrderTopology α]
- [BorelSpace α] [NoMinOrder α] (μ ν : Measure α) [LocallyFiniteMeasure μ]
+ [BorelSpace α] [NoMinOrder α] (μ ν : Measure α) [IsLocallyFiniteMeasure μ]
(h : ∀ ⦃a b⦄, a < b → μ (Ioc a b) = ν (Ioc a b)) : μ = ν :=
μ.ext_of_Ioc' ν (fun _ _ _ => measure_Ioc_lt_top.ne) h
#align measure_theory.measure.ext_of_Ioc MeasureTheory.Measure.ext_of_Ioc
@@ -745,7 +745,7 @@ theorem ext_of_Ioc {α : Type _} [TopologicalSpace α] {_m : MeasurableSpace α}
intervals. -/
theorem ext_of_Iic {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
[SecondCountableTopology α] [LinearOrder α] [OrderTopology α] [BorelSpace α] (μ ν : Measure α)
- [FiniteMeasure μ] (h : ∀ a, μ (Iic a) = ν (Iic a)) : μ = ν := by
+ [IsFiniteMeasure μ] (h : ∀ a, μ (Iic a) = ν (Iic a)) : μ = ν := by
refine' ext_of_Ioc_finite μ ν _ fun a b hlt => _
· rcases exists_countable_dense_bot_top α with ⟨s, hsc, hsd, -, hst⟩
have : DirectedOn (· ≤ ·) s := directedOn_iff_directed.2 (directed_of_sup fun _ _ => id)
@@ -761,7 +761,7 @@ theorem ext_of_Iic {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
intervals. -/
theorem ext_of_Ici {α : Type _} [TopologicalSpace α] {m : MeasurableSpace α}
[SecondCountableTopology α] [LinearOrder α] [OrderTopology α] [BorelSpace α] (μ ν : Measure α)
- [FiniteMeasure μ] (h : ∀ a, μ (Ici a) = ν (Ici a)) : μ = ν :=
+ [IsFiniteMeasure μ] (h : ∀ a, μ (Ici a) = ν (Ici a)) : μ = ν :=
@ext_of_Iic αᵒᵈ _ _ _ _ _ ‹_› _ _ _ h
#align measure_theory.measure.ext_of_Ici MeasureTheory.Measure.ext_of_Ici
@@ -829,13 +829,13 @@ theorem ClosedEmbedding.measurable {f : α → γ} (hf : ClosedEmbedding f) : Me
hf.continuous.measurable
#align closed_embedding.measurable ClosedEmbedding.measurable
-theorem Continuous.openPosMeasure_map {f : β → γ} (hf : Continuous f)
- (hf_surj : Function.Surjective f) {μ : Measure β} [μ.OpenPosMeasure] :
- (Measure.map f μ).OpenPosMeasure := by
+theorem Continuous.isOpenPosMeasure_map {f : β → γ} (hf : Continuous f)
+ (hf_surj : Function.Surjective f) {μ : Measure β} [μ.IsOpenPosMeasure] :
+ (Measure.map f μ).IsOpenPosMeasure := by
refine' ⟨fun U hUo hUne => _⟩
rw [Measure.map_apply hf.measurable hUo.measurableSet]
exact (hUo.preimage hf).measure_ne_zero μ (hf_surj.nonempty_preimage.mpr hUne)
-#align continuous.is_open_pos_measure_map Continuous.openPosMeasure_map
+#align continuous.is_open_pos_measure_map Continuous.isOpenPosMeasure_map
/-- If a function is defined piecewise in terms of functions which are continuous on their
respective pieces, then it is measurable. -/
@@ -1387,8 +1387,8 @@ def Homemorph.toMeasurableEquiv (h : α ≃ₜ β) : α ≃ᵐ β where
protected theorem IsFiniteMeasureOnCompacts.map {α : Type _} {m0 : MeasurableSpace α}
[TopologicalSpace α] [OpensMeasurableSpace α] {β : Type _} [MeasurableSpace β]
- [TopologicalSpace β] [BorelSpace β] [T2Space β] (μ : Measure α) [FiniteMeasureOnCompacts μ]
- (f : α ≃ₜ β) : FiniteMeasureOnCompacts (Measure.map f μ) :=
+ [TopologicalSpace β] [BorelSpace β] [T2Space β] (μ : Measure α) [IsFiniteMeasureOnCompacts μ]
+ (f : α ≃ₜ β) : IsFiniteMeasureOnCompacts (Measure.map f μ) :=
⟨by
intro K hK
rw [Measure.map_apply f.measurable hK.measurableSet]
@@ -1611,8 +1611,9 @@ end PseudoMetricSpace
/-- Given a compact set in a proper space, the measure of its `r`-closed thickenings converges to
its measure as `r` tends to `0`. -/
theorem tendsto_measure_cthickening_of_isCompact [MetricSpace α] [MeasurableSpace α]
- [OpensMeasurableSpace α] [ProperSpace α] {μ : Measure α} [FiniteMeasureOnCompacts μ] {s : Set α}
- (hs : IsCompact s) : Tendsto (fun r => μ (Metric.cthickening r s)) (𝓝 0) (𝓝 (μ s)) :=
+ [OpensMeasurableSpace α] [ProperSpace α] {μ : Measure α} [IsFiniteMeasureOnCompacts μ]
+ {s : Set α} (hs : IsCompact s) :
+ Tendsto (fun r => μ (Metric.cthickening r s)) (𝓝 0) (𝓝 (μ s)) :=
tendsto_measure_cthickening_of_isClosed ⟨1, zero_lt_one, hs.bounded.cthickening.measure_lt_top.ne⟩
hs.isClosed
#align tendsto_measure_cthickening_of_is_compact tendsto_measure_cthickening_of_isCompact
@@ -1690,7 +1691,7 @@ theorem isPiSystem_Ioo_rat :
/-- The intervals `(-(n + 1), (n + 1))` form a finite spanning sets in the set of open intervals
with rational endpoints for a locally finite measure `μ` on `ℝ`. -/
-def finiteSpanningSetsInIooRat (μ : Measure ℝ) [LocallyFiniteMeasure μ] :
+def finiteSpanningSetsInIooRat (μ : Measure ℝ) [IsLocallyFiniteMeasure μ] :
μ.FiniteSpanningSetsIn (⋃ (a : ℚ) (b : ℚ) (_h : a < b), {Ioo (a : ℝ) (b : ℝ)}) where
set n := Ioo (-(n + 1)) (n + 1)
set_mem n := by
@@ -1705,7 +1706,7 @@ def finiteSpanningSetsInIooRat (μ : Measure ℝ) [LocallyFiniteMeasure μ] :
(le_abs_self x).trans_lt (Nat.lt_floor_add_one _)⟩
#align real.finite_spanning_sets_in_Ioo_rat Real.finiteSpanningSetsInIooRat
-theorem measure_ext_Ioo_rat {μ ν : Measure ℝ} [LocallyFiniteMeasure μ]
+theorem measure_ext_Ioo_rat {μ ν : Measure ℝ} [IsLocallyFiniteMeasure μ]
(h : ∀ a b : ℚ, μ (Ioo a b) = ν (Ioo a b)) : μ = ν :=
(finiteSpanningSetsInIooRat μ).ext borel_eq_generateFrom_Ioo_rat isPiSystem_Ioo_rat <| by
simp only [mem_iUnion, mem_singleton_iff]
The main breaking change is that tac <;> [t1, t2]
is now written tac <;> [t1; t2]
, to avoid clashing with tactics like cases
and use
that take comma-separated lists.
@@ -127,7 +127,7 @@ theorem borel_eq_generateFrom_Iio : borel α = .generateFrom (range Iio) := by
letI : MeasurableSpace α := MeasurableSpace.generateFrom (range Iio)
have H : ∀ a : α, MeasurableSet (Iio a) := fun a => GenerateMeasurable.basic _ ⟨_, rfl⟩
refine' generateFrom_le _
- rintro _ ⟨a, rfl | rfl⟩ <;> [skip, apply H]
+ rintro _ ⟨a, rfl | rfl⟩ <;> [skip; apply H]
by_cases h : ∃ a', ∀ b, a < b ↔ a' ≤ b
· rcases h with ⟨a', ha'⟩
rw [(_ : Ioi a = Iio a'ᶜ)]
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