measure_theory.constructions.borel_space.metrizable
⟷
Mathlib.MeasureTheory.Constructions.BorelSpace.Metrizable
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Floris van Doorn
-/
import MeasureTheory.Constructions.BorelSpace.Basic
-import Topology.MetricSpace.Metrizable
+import Topology.Metrizable.Basic
#align_import measure_theory.constructions.borel_space.metrizable from "leanprover-community/mathlib"@"38df578a6450a8c5142b3727e3ae894c2300cae0"
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -28,47 +28,47 @@ variable [TopologicalSpace β] [PseudoMetrizableSpace β] [MeasurableSpace β] [
open Metric
-#print measurable_of_tendsto_ennreal' /-
+#print ENNReal.measurable_of_tendsto' /-
/-- A limit (over a general filter) of measurable `ℝ≥0∞` valued functions is measurable. -/
-theorem measurable_of_tendsto_ennreal' {ι} {f : ι → α → ℝ≥0∞} {g : α → ℝ≥0∞} (u : Filter ι)
+theorem ENNReal.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
rcases u.exists_seq_tendsto with ⟨x, hx⟩
- rw [tendsto_pi_nhds] at lim
+ 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'
+#align measurable_of_tendsto_ennreal' ENNReal.measurable_of_tendsto'
-/
-#print measurable_of_tendsto_ennreal /-
+#print ENNReal.measurable_of_tendsto /-
/-- A sequential limit of measurable `ℝ≥0∞` valued functions is measurable. -/
-theorem measurable_of_tendsto_ennreal {f : ℕ → α → ℝ≥0∞} {g : α → ℝ≥0∞} (hf : ∀ i, Measurable (f i))
+theorem ENNReal.measurable_of_tendsto {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
+ ENNReal.measurable_of_tendsto' atTop hf limUnder
+#align measurable_of_tendsto_ennreal ENNReal.measurable_of_tendsto
-/
-#print measurable_of_tendsto_nnreal' /-
+#print NNReal.measurable_of_tendsto' /-
/-- 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]
+theorem NNReal.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' measurable_of_tendsto_ennreal' u hf _
+ refine' ENNReal.measurable_of_tendsto' 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'
+#align measurable_of_tendsto_nnreal' NNReal.measurable_of_tendsto'
-/
-#print measurable_of_tendsto_nnreal /-
+#print NNReal.measurable_of_tendsto /-
/-- A sequential limit of measurable `ℝ≥0` valued functions is measurable. -/
-theorem measurable_of_tendsto_nnreal {f : ℕ → α → ℝ≥0} {g : α → ℝ≥0} (hf : ∀ i, Measurable (f i))
+theorem NNReal.measurable_of_tendsto {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
+ NNReal.measurable_of_tendsto' atTop hf limUnder
+#align measurable_of_tendsto_nnreal NNReal.measurable_of_tendsto
-/
#print measurable_of_tendsto_metrizable' /-
@@ -83,7 +83,7 @@ theorem measurable_of_tendsto_metrizable' {ι} {f : ι → α → β} {g : α
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
+ exact NNReal.measurable_of_tendsto' 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;
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -79,7 +79,7 @@ theorem measurable_of_tendsto_metrizable' {ι} {f : ι → α → β} {g : α
Measurable g :=
by
letI : PseudoMetricSpace β := pseudo_metrizable_space_pseudo_metric β
- apply measurable_of_is_closed'; intro s h1s h2s h3s
+ apply measurable_of_isClosed'; 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)
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,8 +3,8 @@ Copyright (c) 2020 Floris van Doorn. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Floris van Doorn
-/
-import Mathbin.MeasureTheory.Constructions.BorelSpace.Basic
-import Mathbin.Topology.MetricSpace.Metrizable
+import MeasureTheory.Constructions.BorelSpace.Basic
+import Topology.MetricSpace.Metrizable
#align_import measure_theory.constructions.borel_space.metrizable from "leanprover-community/mathlib"@"38df578a6450a8c5142b3727e3ae894c2300cae0"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,15 +2,12 @@
Copyright (c) 2020 Floris van Doorn. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Floris van Doorn
-
-! This file was ported from Lean 3 source module measure_theory.constructions.borel_space.metrizable
-! leanprover-community/mathlib commit 38df578a6450a8c5142b3727e3ae894c2300cae0
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.MeasureTheory.Constructions.BorelSpace.Basic
import Mathbin.Topology.MetricSpace.Metrizable
+#align_import measure_theory.constructions.borel_space.metrizable from "leanprover-community/mathlib"@"38df578a6450a8c5142b3727e3ae894c2300cae0"
+
/-!
# Measurable functions in (pseudo-)metrizable Borel spaces
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -31,6 +31,7 @@ variable [TopologicalSpace β] [PseudoMetrizableSpace β] [MeasurableSpace β] [
open Metric
+#print measurable_of_tendsto_ennreal' /-
/-- 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)) :
@@ -43,13 +44,17 @@ theorem measurable_of_tendsto_ennreal' {ι} {f : ι → α → ℝ≥0∞} {g :
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'
+-/
+#print 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
+-/
+#print measurable_of_tendsto_nnreal' /-
/-- 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)) :
@@ -59,13 +64,17 @@ theorem measurable_of_tendsto_nnreal' {ι} {f : ι → α → ℝ≥0} {g : α
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'
+-/
+#print 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
+-/
+#print measurable_of_tendsto_metrizable' /-
/-- 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]
@@ -84,14 +93,18 @@ theorem measurable_of_tendsto_metrizable' {ι} {f : ι → α → β} {g : α
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'
+-/
+#print 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
+-/
+#print aemeasurable_of_tendsto_metrizable_ae /-
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 μ :=
@@ -117,13 +130,17 @@ theorem aemeasurable_of_tendsto_metrizable_ae {ι} {μ : Measure α} {f : ι →
(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
+-/
+#print 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'
+-/
+#print aemeasurable_of_unif_approx /-
theorem aemeasurable_of_unif_approx {β} [MeasurableSpace β] [PseudoMetricSpace β] [BorelSpace β]
{μ : Measure α} {g : α → β}
(hf : ∀ ε > (0 : ℝ), ∃ f : α → β, AEMeasurable f μ ∧ ∀ᵐ x ∂μ, dist (f x) (g x) ≤ ε) :
@@ -142,14 +159,18 @@ theorem aemeasurable_of_unif_approx {β} [MeasurableSpace β] [PseudoMetricSpace
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
+-/
+#print measurable_of_tendsto_metrizable_ae /-
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
+-/
+#print measurable_limit_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)) :
@@ -181,6 +202,7 @@ theorem measurable_limit_of_tendsto_metrizable_ae {ι} [Countable ι] [Nonempty
(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
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -100,7 +100,7 @@ theorem aemeasurable_of_tendsto_metrizable_ae {ι} {μ : Measure α} {f : ι →
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
+ 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,
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -36,7 +36,7 @@ theorem measurable_of_tendsto_ennreal' {ι} {f : ι → α → ℝ≥0∞} {g :
[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
+ 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]
@@ -54,9 +54,9 @@ theorem measurable_of_tendsto_ennreal {f : ℕ → α → ℝ≥0∞} {g : α
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⊢
+ simp_rw [← measurable_coe_nnreal_ennreal_iff] at hf ⊢
refine' measurable_of_tendsto_ennreal' u hf _
- rw [tendsto_pi_nhds] at lim⊢
+ 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'
@@ -78,7 +78,7 @@ theorem measurable_of_tendsto_metrizable' {ι} {f : ι → α → β} {g : α
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
+ 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]
@@ -153,7 +153,7 @@ theorem measurable_of_tendsto_metrizable_ae {μ : Measure α} [μ.IsComplete] {f
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),
+ ∃ (f_lim : α → β) (hf_lim_meas : Measurable f_lim),
∀ᵐ x ∂μ, Tendsto (fun n => f n x) L (𝓝 (f_lim x)) :=
by
inhabit ι
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -21,7 +21,7 @@ import Mathbin.Topology.MetricSpace.Metrizable
open Filter MeasureTheory TopologicalSpace
-open Classical Topology NNReal ENNReal MeasureTheory
+open scoped Classical Topology NNReal ENNReal MeasureTheory
variable {α β : Type _} [MeasurableSpace α]
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -31,12 +31,6 @@ variable [TopologicalSpace β] [PseudoMetrizableSpace β] [MeasurableSpace β] [
open Metric
-/- warning: measurable_of_tendsto_ennreal' -> measurable_of_tendsto_ennreal' is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {ι : Type.{u2}} {f : ι -> α -> ENNReal} {g : α -> ENNReal} (u : Filter.{u2} ι) [_inst_6 : Filter.NeBot.{u2} ι u] [_inst_7 : Filter.IsCountablyGenerated.{u2} ι u], (forall (i : ι), Measurable.{u1, 0} α ENNReal _inst_1 ENNReal.measurableSpace (f i)) -> (Filter.Tendsto.{u2, u1} ι (α -> ENNReal) f u (nhds.{u1} (α -> ENNReal) (Pi.topologicalSpace.{u1, 0} α (fun (ᾰ : α) => ENNReal) (fun (a : α) => ENNReal.topologicalSpace)) g)) -> (Measurable.{u1, 0} α ENNReal _inst_1 ENNReal.measurableSpace g)
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {ι : Type.{u2}} {f : ι -> α -> ENNReal} {g : α -> ENNReal} (u : Filter.{u2} ι) [_inst_6 : Filter.NeBot.{u2} ι u] [_inst_7 : Filter.IsCountablyGenerated.{u2} ι u], (forall (i : ι), Measurable.{u1, 0} α ENNReal _inst_1 ENNReal.measurableSpace (f i)) -> (Filter.Tendsto.{u2, u1} ι (α -> ENNReal) f u (nhds.{u1} (α -> ENNReal) (Pi.topologicalSpace.{u1, 0} α (fun (ᾰ : α) => ENNReal) (fun (a : α) => ENNReal.instTopologicalSpaceENNReal)) g)) -> (Measurable.{u1, 0} α ENNReal _inst_1 ENNReal.measurableSpace g)
-Case conversion may be inaccurate. Consider using '#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_ennreal' {ι} {f : ι → α → ℝ≥0∞} {g : α → ℝ≥0∞} (u : Filter ι)
[NeBot u] [IsCountablyGenerated u] (hf : ∀ i, Measurable (f i)) (lim : Tendsto f u (𝓝 g)) :
@@ -50,24 +44,12 @@ theorem measurable_of_tendsto_ennreal' {ι} {f : ι → α → ℝ≥0∞} {g :
exact measurable_liminf fun n => hf (x n)
#align measurable_of_tendsto_ennreal' measurable_of_tendsto_ennreal'
-/- warning: measurable_of_tendsto_ennreal -> measurable_of_tendsto_ennreal is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {f : Nat -> α -> ENNReal} {g : α -> ENNReal}, (forall (i : Nat), Measurable.{u1, 0} α ENNReal _inst_1 ENNReal.measurableSpace (f i)) -> (Filter.Tendsto.{0, u1} Nat (α -> ENNReal) f (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)))) (nhds.{u1} (α -> ENNReal) (Pi.topologicalSpace.{u1, 0} α (fun (ᾰ : α) => ENNReal) (fun (a : α) => ENNReal.topologicalSpace)) g)) -> (Measurable.{u1, 0} α ENNReal _inst_1 ENNReal.measurableSpace g)
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {f : Nat -> α -> ENNReal} {g : α -> ENNReal}, (forall (i : Nat), Measurable.{u1, 0} α ENNReal _inst_1 ENNReal.measurableSpace (f i)) -> (Filter.Tendsto.{0, u1} Nat (α -> ENNReal) f (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring))) (nhds.{u1} (α -> ENNReal) (Pi.topologicalSpace.{u1, 0} α (fun (ᾰ : α) => ENNReal) (fun (a : α) => ENNReal.instTopologicalSpaceENNReal)) g)) -> (Measurable.{u1, 0} α ENNReal _inst_1 ENNReal.measurableSpace g)
-Case conversion may be inaccurate. Consider using '#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
-/- warning: measurable_of_tendsto_nnreal' -> measurable_of_tendsto_nnreal' is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {ι : Type.{u2}} {f : ι -> α -> NNReal} {g : α -> NNReal} (u : Filter.{u2} ι) [_inst_6 : Filter.NeBot.{u2} ι u] [_inst_7 : Filter.IsCountablyGenerated.{u2} ι u], (forall (i : ι), Measurable.{u1, 0} α NNReal _inst_1 NNReal.measurableSpace (f i)) -> (Filter.Tendsto.{u2, u1} ι (α -> NNReal) f u (nhds.{u1} (α -> NNReal) (Pi.topologicalSpace.{u1, 0} α (fun (ᾰ : α) => NNReal) (fun (a : α) => NNReal.topologicalSpace)) g)) -> (Measurable.{u1, 0} α NNReal _inst_1 NNReal.measurableSpace g)
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {ι : Type.{u2}} {f : ι -> α -> NNReal} {g : α -> NNReal} (u : Filter.{u2} ι) [_inst_6 : Filter.NeBot.{u2} ι u] [_inst_7 : Filter.IsCountablyGenerated.{u2} ι u], (forall (i : ι), Measurable.{u1, 0} α NNReal _inst_1 NNReal.measurableSpace (f i)) -> (Filter.Tendsto.{u2, u1} ι (α -> NNReal) f u (nhds.{u1} (α -> NNReal) (Pi.topologicalSpace.{u1, 0} α (fun (ᾰ : α) => NNReal) (fun (a : α) => NNReal.instTopologicalSpaceNNReal)) g)) -> (Measurable.{u1, 0} α NNReal _inst_1 NNReal.measurableSpace g)
-Case conversion may be inaccurate. Consider using '#align measurable_of_tendsto_nnreal' measurable_of_tendsto_nnreal'ₓ'. -/
/-- 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)) :
@@ -78,24 +60,12 @@ theorem measurable_of_tendsto_nnreal' {ι} {f : ι → α → ℝ≥0} {g : α
exact fun x => (ennreal.continuous_coe.tendsto (g x)).comp (limUnder x)
#align measurable_of_tendsto_nnreal' measurable_of_tendsto_nnreal'
-/- warning: measurable_of_tendsto_nnreal -> measurable_of_tendsto_nnreal is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {f : Nat -> α -> NNReal} {g : α -> NNReal}, (forall (i : Nat), Measurable.{u1, 0} α NNReal _inst_1 NNReal.measurableSpace (f i)) -> (Filter.Tendsto.{0, u1} Nat (α -> NNReal) f (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)))) (nhds.{u1} (α -> NNReal) (Pi.topologicalSpace.{u1, 0} α (fun (ᾰ : α) => NNReal) (fun (a : α) => NNReal.topologicalSpace)) g)) -> (Measurable.{u1, 0} α NNReal _inst_1 NNReal.measurableSpace g)
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {f : Nat -> α -> NNReal} {g : α -> NNReal}, (forall (i : Nat), Measurable.{u1, 0} α NNReal _inst_1 NNReal.measurableSpace (f i)) -> (Filter.Tendsto.{0, u1} Nat (α -> NNReal) f (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring))) (nhds.{u1} (α -> NNReal) (Pi.topologicalSpace.{u1, 0} α (fun (ᾰ : α) => NNReal) (fun (a : α) => NNReal.instTopologicalSpaceNNReal)) g)) -> (Measurable.{u1, 0} α NNReal _inst_1 NNReal.measurableSpace g)
-Case conversion may be inaccurate. Consider using '#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
-/- warning: measurable_of_tendsto_metrizable' -> measurable_of_tendsto_metrizable' is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] [_inst_3 : TopologicalSpace.PseudoMetrizableSpace.{u2} β _inst_2] [_inst_4 : MeasurableSpace.{u2} β] [_inst_5 : BorelSpace.{u2} β _inst_2 _inst_4] {ι : Type.{u3}} {f : ι -> α -> β} {g : α -> β} (u : Filter.{u3} ι) [_inst_6 : Filter.NeBot.{u3} ι u] [_inst_7 : Filter.IsCountablyGenerated.{u3} ι u], (forall (i : ι), Measurable.{u1, u2} α β _inst_1 _inst_4 (f i)) -> (Filter.Tendsto.{u3, max u1 u2} ι (α -> β) f u (nhds.{max u1 u2} (α -> β) (Pi.topologicalSpace.{u1, u2} α (fun (ᾰ : α) => β) (fun (a : α) => _inst_2)) g)) -> (Measurable.{u1, u2} α β _inst_1 _inst_4 g)
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] [_inst_3 : TopologicalSpace.PseudoMetrizableSpace.{u1} β _inst_2] [_inst_4 : MeasurableSpace.{u1} β] [_inst_5 : BorelSpace.{u1} β _inst_2 _inst_4] {ι : Type.{u3}} {f : ι -> α -> β} {g : α -> β} (u : Filter.{u3} ι) [_inst_6 : Filter.NeBot.{u3} ι u] [_inst_7 : Filter.IsCountablyGenerated.{u3} ι u], (forall (i : ι), Measurable.{u2, u1} α β _inst_1 _inst_4 (f i)) -> (Filter.Tendsto.{u3, max u2 u1} ι (α -> β) f u (nhds.{max u2 u1} (α -> β) (Pi.topologicalSpace.{u2, u1} α (fun (ᾰ : α) => β) (fun (a : α) => _inst_2)) g)) -> (Measurable.{u2, u1} α β _inst_1 _inst_4 g)
-Case conversion may be inaccurate. Consider using '#align measurable_of_tendsto_metrizable' measurable_of_tendsto_metrizable'ₓ'. -/
/-- 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]
@@ -115,12 +85,6 @@ theorem measurable_of_tendsto_metrizable' {ι} {f : ι → α → β} {g : α
rw [h4s]; exact this (measurable_set_singleton 0)
#align measurable_of_tendsto_metrizable' measurable_of_tendsto_metrizable'
-/- warning: measurable_of_tendsto_metrizable -> measurable_of_tendsto_metrizable is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] [_inst_3 : TopologicalSpace.PseudoMetrizableSpace.{u2} β _inst_2] [_inst_4 : MeasurableSpace.{u2} β] [_inst_5 : BorelSpace.{u2} β _inst_2 _inst_4] {f : Nat -> α -> β} {g : α -> β}, (forall (i : Nat), Measurable.{u1, u2} α β _inst_1 _inst_4 (f i)) -> (Filter.Tendsto.{0, max u1 u2} Nat (α -> β) f (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)))) (nhds.{max u1 u2} (α -> β) (Pi.topologicalSpace.{u1, u2} α (fun (ᾰ : α) => β) (fun (a : α) => _inst_2)) g)) -> (Measurable.{u1, u2} α β _inst_1 _inst_4 g)
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] [_inst_3 : TopologicalSpace.PseudoMetrizableSpace.{u1} β _inst_2] [_inst_4 : MeasurableSpace.{u1} β] [_inst_5 : BorelSpace.{u1} β _inst_2 _inst_4] {f : Nat -> α -> β} {g : α -> β}, (forall (i : Nat), Measurable.{u2, u1} α β _inst_1 _inst_4 (f i)) -> (Filter.Tendsto.{0, max u2 u1} Nat (α -> β) f (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring))) (nhds.{max u2 u1} (α -> β) (Pi.topologicalSpace.{u2, u1} α (fun (ᾰ : α) => β) (fun (a : α) => _inst_2)) g)) -> (Measurable.{u2, u1} α β _inst_1 _inst_4 g)
-Case conversion may be inaccurate. Consider using '#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))
@@ -128,12 +92,6 @@ theorem measurable_of_tendsto_metrizable {f : ℕ → α → β} {g : α → β}
measurable_of_tendsto_metrizable' atTop hf limUnder
#align measurable_of_tendsto_metrizable measurable_of_tendsto_metrizable
-/- warning: ae_measurable_of_tendsto_metrizable_ae -> aemeasurable_of_tendsto_metrizable_ae is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] [_inst_3 : TopologicalSpace.PseudoMetrizableSpace.{u2} β _inst_2] [_inst_4 : MeasurableSpace.{u2} β] [_inst_5 : BorelSpace.{u2} β _inst_2 _inst_4] {ι : Type.{u3}} {μ : MeasureTheory.Measure.{u1} α _inst_1} {f : ι -> α -> β} {g : α -> β} (u : Filter.{u3} ι) [hu : Filter.NeBot.{u3} ι u] [_inst_6 : Filter.IsCountablyGenerated.{u3} ι u], (forall (n : ι), AEMeasurable.{u1, u2} α β _inst_4 _inst_1 (f n) μ) -> (Filter.Eventually.{u1} α (fun (x : α) => Filter.Tendsto.{u3, u2} ι β (fun (n : ι) => f n x) u (nhds.{u2} β _inst_2 (g x))) (MeasureTheory.Measure.ae.{u1} α _inst_1 μ)) -> (AEMeasurable.{u1, u2} α β _inst_4 _inst_1 g μ)
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] [_inst_3 : TopologicalSpace.PseudoMetrizableSpace.{u1} β _inst_2] [_inst_4 : MeasurableSpace.{u1} β] [_inst_5 : BorelSpace.{u1} β _inst_2 _inst_4] {ι : Type.{u3}} {μ : MeasureTheory.Measure.{u2} α _inst_1} {f : ι -> α -> β} {g : α -> β} (u : Filter.{u3} ι) [hu : Filter.NeBot.{u3} ι u] [_inst_6 : Filter.IsCountablyGenerated.{u3} ι u], (forall (n : ι), AEMeasurable.{u2, u1} α β _inst_4 _inst_1 (f n) μ) -> (Filter.Eventually.{u2} α (fun (x : α) => Filter.Tendsto.{u3, u1} ι β (fun (n : ι) => f n x) u (nhds.{u1} β _inst_2 (g x))) (MeasureTheory.Measure.ae.{u2} α _inst_1 μ)) -> (AEMeasurable.{u2, u1} α β _inst_4 _inst_1 g μ)
-Case conversion may be inaccurate. Consider using '#align ae_measurable_of_tendsto_metrizable_ae aemeasurable_of_tendsto_metrizable_aeₓ'. -/
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 μ :=
@@ -160,24 +118,12 @@ theorem aemeasurable_of_tendsto_metrizable_ae {ι} {μ : Measure α} {f : ι →
(aeSeq.measure_compl_aeSeqSet_eq_zero h'f hp)).symm
#align ae_measurable_of_tendsto_metrizable_ae aemeasurable_of_tendsto_metrizable_ae
-/- warning: ae_measurable_of_tendsto_metrizable_ae' -> aemeasurable_of_tendsto_metrizable_ae' is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] [_inst_3 : TopologicalSpace.PseudoMetrizableSpace.{u2} β _inst_2] [_inst_4 : MeasurableSpace.{u2} β] [_inst_5 : BorelSpace.{u2} β _inst_2 _inst_4] {μ : MeasureTheory.Measure.{u1} α _inst_1} {f : Nat -> α -> β} {g : α -> β}, (forall (n : Nat), AEMeasurable.{u1, u2} α β _inst_4 _inst_1 (f n) μ) -> (Filter.Eventually.{u1} α (fun (x : α) => Filter.Tendsto.{0, u2} Nat β (fun (n : Nat) => f n x) (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)))) (nhds.{u2} β _inst_2 (g x))) (MeasureTheory.Measure.ae.{u1} α _inst_1 μ)) -> (AEMeasurable.{u1, u2} α β _inst_4 _inst_1 g μ)
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] [_inst_3 : TopologicalSpace.PseudoMetrizableSpace.{u1} β _inst_2] [_inst_4 : MeasurableSpace.{u1} β] [_inst_5 : BorelSpace.{u1} β _inst_2 _inst_4] {μ : MeasureTheory.Measure.{u2} α _inst_1} {f : Nat -> α -> β} {g : α -> β}, (forall (n : Nat), AEMeasurable.{u2, u1} α β _inst_4 _inst_1 (f n) μ) -> (Filter.Eventually.{u2} α (fun (x : α) => Filter.Tendsto.{0, u1} Nat β (fun (n : Nat) => f n x) (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring))) (nhds.{u1} β _inst_2 (g x))) (MeasureTheory.Measure.ae.{u2} α _inst_1 μ)) -> (AEMeasurable.{u2, u1} α β _inst_4 _inst_1 g μ)
-Case conversion may be inaccurate. Consider using '#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'
-/- warning: ae_measurable_of_unif_approx -> aemeasurable_of_unif_approx is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {β : Type.{u2}} [_inst_6 : MeasurableSpace.{u2} β] [_inst_7 : PseudoMetricSpace.{u2} β] [_inst_8 : BorelSpace.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β _inst_7)) _inst_6] {μ : MeasureTheory.Measure.{u1} α _inst_1} {g : α -> β}, (forall (ε : Real), (GT.gt.{0} Real Real.hasLt ε (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) -> (Exists.{max (succ u1) (succ u2)} (α -> β) (fun (f : α -> β) => And (AEMeasurable.{u1, u2} α β _inst_6 _inst_1 f μ) (Filter.Eventually.{u1} α (fun (x : α) => LE.le.{0} Real Real.hasLe (Dist.dist.{u2} β (PseudoMetricSpace.toHasDist.{u2} β _inst_7) (f x) (g x)) ε) (MeasureTheory.Measure.ae.{u1} α _inst_1 μ))))) -> (AEMeasurable.{u1, u2} α β _inst_6 _inst_1 g μ)
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {β : Type.{u2}} [_inst_6 : MeasurableSpace.{u2} β] [_inst_7 : PseudoMetricSpace.{u2} β] [_inst_8 : BorelSpace.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β _inst_7)) _inst_6] {μ : MeasureTheory.Measure.{u1} α _inst_1} {g : α -> β}, (forall (ε : Real), (GT.gt.{0} Real Real.instLTReal ε (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) -> (Exists.{max (succ u1) (succ u2)} (α -> β) (fun (f : α -> β) => And (AEMeasurable.{u1, u2} α β _inst_6 _inst_1 f μ) (Filter.Eventually.{u1} α (fun (x : α) => LE.le.{0} Real Real.instLEReal (Dist.dist.{u2} β (PseudoMetricSpace.toDist.{u2} β _inst_7) (f x) (g x)) ε) (MeasureTheory.Measure.ae.{u1} α _inst_1 μ))))) -> (AEMeasurable.{u1, u2} α β _inst_6 _inst_1 g μ)
-Case conversion may be inaccurate. Consider using '#align ae_measurable_of_unif_approx aemeasurable_of_unif_approxₓ'. -/
theorem aemeasurable_of_unif_approx {β} [MeasurableSpace β] [PseudoMetricSpace β] [BorelSpace β]
{μ : Measure α} {g : α → β}
(hf : ∀ ε > (0 : ℝ), ∃ f : α → β, AEMeasurable f μ ∧ ∀ᵐ x ∂μ, dist (f x) (g x) ≤ ε) :
@@ -197,12 +143,6 @@ theorem aemeasurable_of_unif_approx {β} [MeasurableSpace β] [PseudoMetricSpace
exact aemeasurable_of_tendsto_metrizable_ae' (fun n => (Hf n).1) this
#align ae_measurable_of_unif_approx aemeasurable_of_unif_approx
-/- warning: measurable_of_tendsto_metrizable_ae -> measurable_of_tendsto_metrizable_ae is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] [_inst_3 : TopologicalSpace.PseudoMetrizableSpace.{u2} β _inst_2] [_inst_4 : MeasurableSpace.{u2} β] [_inst_5 : BorelSpace.{u2} β _inst_2 _inst_4] {μ : MeasureTheory.Measure.{u1} α _inst_1} [_inst_6 : MeasureTheory.Measure.IsComplete.{u1} α _inst_1 μ] {f : Nat -> α -> β} {g : α -> β}, (forall (n : Nat), Measurable.{u1, u2} α β _inst_1 _inst_4 (f n)) -> (Filter.Eventually.{u1} α (fun (x : α) => Filter.Tendsto.{0, u2} Nat β (fun (n : Nat) => f n x) (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)))) (nhds.{u2} β _inst_2 (g x))) (MeasureTheory.Measure.ae.{u1} α _inst_1 μ)) -> (Measurable.{u1, u2} α β _inst_1 _inst_4 g)
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] [_inst_3 : TopologicalSpace.PseudoMetrizableSpace.{u1} β _inst_2] [_inst_4 : MeasurableSpace.{u1} β] [_inst_5 : BorelSpace.{u1} β _inst_2 _inst_4] {μ : MeasureTheory.Measure.{u2} α _inst_1} [_inst_6 : MeasureTheory.Measure.IsComplete.{u2} α _inst_1 μ] {f : Nat -> α -> β} {g : α -> β}, (forall (n : Nat), Measurable.{u2, u1} α β _inst_1 _inst_4 (f n)) -> (Filter.Eventually.{u2} α (fun (x : α) => Filter.Tendsto.{0, u1} Nat β (fun (n : Nat) => f n x) (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring))) (nhds.{u1} β _inst_2 (g x))) (MeasureTheory.Measure.ae.{u2} α _inst_1 μ)) -> (Measurable.{u2, u1} α β _inst_1 _inst_4 g)
-Case conversion may be inaccurate. Consider using '#align measurable_of_tendsto_metrizable_ae measurable_of_tendsto_metrizable_aeₓ'. -/
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 :=
@@ -210,12 +150,6 @@ theorem measurable_of_tendsto_metrizable_ae {μ : Measure α} [μ.IsComplete] {f
(aemeasurable_of_tendsto_metrizable_ae' (fun i => (hf i).AEMeasurable) h_ae_tendsto)
#align measurable_of_tendsto_metrizable_ae measurable_of_tendsto_metrizable_ae
-/- warning: measurable_limit_of_tendsto_metrizable_ae -> measurable_limit_of_tendsto_metrizable_ae is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] [_inst_3 : TopologicalSpace.PseudoMetrizableSpace.{u2} β _inst_2] [_inst_4 : MeasurableSpace.{u2} β] [_inst_5 : BorelSpace.{u2} β _inst_2 _inst_4] {ι : Type.{u3}} [_inst_6 : Countable.{succ u3} ι] [_inst_7 : Nonempty.{succ u3} ι] {μ : MeasureTheory.Measure.{u1} α _inst_1} {f : ι -> α -> β} {L : Filter.{u3} ι} [_inst_8 : Filter.IsCountablyGenerated.{u3} ι L], (forall (n : ι), AEMeasurable.{u1, u2} α β _inst_4 _inst_1 (f n) μ) -> (Filter.Eventually.{u1} α (fun (x : α) => Exists.{succ u2} β (fun (l : β) => Filter.Tendsto.{u3, u2} ι β (fun (n : ι) => f n x) L (nhds.{u2} β _inst_2 l))) (MeasureTheory.Measure.ae.{u1} α _inst_1 μ)) -> (Exists.{max (succ u1) (succ u2)} (α -> β) (fun (f_lim : α -> β) => Exists.{0} (Measurable.{u1, u2} α β _inst_1 _inst_4 f_lim) (fun (hf_lim_meas : Measurable.{u1, u2} α β _inst_1 _inst_4 f_lim) => Filter.Eventually.{u1} α (fun (x : α) => Filter.Tendsto.{u3, u2} ι β (fun (n : ι) => f n x) L (nhds.{u2} β _inst_2 (f_lim x))) (MeasureTheory.Measure.ae.{u1} α _inst_1 μ))))
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] [_inst_3 : TopologicalSpace.PseudoMetrizableSpace.{u1} β _inst_2] [_inst_4 : MeasurableSpace.{u1} β] [_inst_5 : BorelSpace.{u1} β _inst_2 _inst_4] {ι : Type.{u3}} [_inst_6 : Countable.{succ u3} ι] [_inst_7 : Nonempty.{succ u3} ι] {μ : MeasureTheory.Measure.{u2} α _inst_1} {f : ι -> α -> β} {L : Filter.{u3} ι} [_inst_8 : Filter.IsCountablyGenerated.{u3} ι L], (forall (n : ι), AEMeasurable.{u2, u1} α β _inst_4 _inst_1 (f n) μ) -> (Filter.Eventually.{u2} α (fun (x : α) => Exists.{succ u1} β (fun (l : β) => Filter.Tendsto.{u3, u1} ι β (fun (n : ι) => f n x) L (nhds.{u1} β _inst_2 l))) (MeasureTheory.Measure.ae.{u2} α _inst_1 μ)) -> (Exists.{max (succ u2) (succ u1)} (α -> β) (fun (f_lim : α -> β) => Exists.{0} (Measurable.{u2, u1} α β _inst_1 _inst_4 f_lim) (fun (hf_lim_meas : Measurable.{u2, u1} α β _inst_1 _inst_4 f_lim) => Filter.Eventually.{u2} α (fun (x : α) => Filter.Tendsto.{u3, u1} ι β (fun (n : ι) => f n x) L (nhds.{u1} β _inst_2 (f_lim x))) (MeasureTheory.Measure.ae.{u2} α _inst_1 μ))))
-Case conversion may be inaccurate. Consider using '#align measurable_limit_of_tendsto_metrizable_ae measurable_limit_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)) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -43,9 +43,7 @@ theorem measurable_of_tendsto_ennreal' {ι} {f : ι → α → ℝ≥0∞} {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
+ 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
@@ -105,21 +103,16 @@ theorem measurable_of_tendsto_metrizable' {ι} {f : ι → α → β} {g : α
Measurable g :=
by
letI : PseudoMetricSpace β := pseudo_metrizable_space_pseudo_metric β
- apply measurable_of_is_closed'
- intro s h1s h2s h3s
+ 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
+ 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
+ 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)
+ rw [h4s]; exact this (measurable_set_singleton 0)
#align measurable_of_tendsto_metrizable' measurable_of_tendsto_metrizable'
/- warning: measurable_of_tendsto_metrizable -> measurable_of_tendsto_metrizable is a dubious translation:
mathlib commit https://github.com/leanprover-community/mathlib/commit/8d33f09cd7089ecf074b4791907588245aec5d1b
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Floris van Doorn
! This file was ported from Lean 3 source module measure_theory.constructions.borel_space.metrizable
-! leanprover-community/mathlib commit bf6a01357ff5684b1ebcd0f1a13be314fc82c0bf
+! leanprover-community/mathlib commit 38df578a6450a8c5142b3727e3ae894c2300cae0
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -13,6 +13,9 @@ import Mathbin.Topology.MetricSpace.Metrizable
/-!
# Measurable functions in (pseudo-)metrizable Borel spaces
+
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/75e7fca56381d056096ce5d05e938f63a6567828
@@ -28,6 +28,12 @@ variable [TopologicalSpace β] [PseudoMetrizableSpace β] [MeasurableSpace β] [
open Metric
+/- warning: measurable_of_tendsto_ennreal' -> measurable_of_tendsto_ennreal' is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {ι : Type.{u2}} {f : ι -> α -> ENNReal} {g : α -> ENNReal} (u : Filter.{u2} ι) [_inst_6 : Filter.NeBot.{u2} ι u] [_inst_7 : Filter.IsCountablyGenerated.{u2} ι u], (forall (i : ι), Measurable.{u1, 0} α ENNReal _inst_1 ENNReal.measurableSpace (f i)) -> (Filter.Tendsto.{u2, u1} ι (α -> ENNReal) f u (nhds.{u1} (α -> ENNReal) (Pi.topologicalSpace.{u1, 0} α (fun (ᾰ : α) => ENNReal) (fun (a : α) => ENNReal.topologicalSpace)) g)) -> (Measurable.{u1, 0} α ENNReal _inst_1 ENNReal.measurableSpace g)
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {ι : Type.{u2}} {f : ι -> α -> ENNReal} {g : α -> ENNReal} (u : Filter.{u2} ι) [_inst_6 : Filter.NeBot.{u2} ι u] [_inst_7 : Filter.IsCountablyGenerated.{u2} ι u], (forall (i : ι), Measurable.{u1, 0} α ENNReal _inst_1 ENNReal.measurableSpace (f i)) -> (Filter.Tendsto.{u2, u1} ι (α -> ENNReal) f u (nhds.{u1} (α -> ENNReal) (Pi.topologicalSpace.{u1, 0} α (fun (ᾰ : α) => ENNReal) (fun (a : α) => ENNReal.instTopologicalSpaceENNReal)) g)) -> (Measurable.{u1, 0} α ENNReal _inst_1 ENNReal.measurableSpace g)
+Case conversion may be inaccurate. Consider using '#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_ennreal' {ι} {f : ι → α → ℝ≥0∞} {g : α → ℝ≥0∞} (u : Filter ι)
[NeBot u] [IsCountablyGenerated u] (hf : ∀ i, Measurable (f i)) (lim : Tendsto f u (𝓝 g)) :
@@ -43,12 +49,24 @@ theorem measurable_of_tendsto_ennreal' {ι} {f : ι → α → ℝ≥0∞} {g :
exact measurable_liminf fun n => hf (x n)
#align measurable_of_tendsto_ennreal' measurable_of_tendsto_ennreal'
+/- warning: measurable_of_tendsto_ennreal -> measurable_of_tendsto_ennreal is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {f : Nat -> α -> ENNReal} {g : α -> ENNReal}, (forall (i : Nat), Measurable.{u1, 0} α ENNReal _inst_1 ENNReal.measurableSpace (f i)) -> (Filter.Tendsto.{0, u1} Nat (α -> ENNReal) f (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)))) (nhds.{u1} (α -> ENNReal) (Pi.topologicalSpace.{u1, 0} α (fun (ᾰ : α) => ENNReal) (fun (a : α) => ENNReal.topologicalSpace)) g)) -> (Measurable.{u1, 0} α ENNReal _inst_1 ENNReal.measurableSpace g)
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {f : Nat -> α -> ENNReal} {g : α -> ENNReal}, (forall (i : Nat), Measurable.{u1, 0} α ENNReal _inst_1 ENNReal.measurableSpace (f i)) -> (Filter.Tendsto.{0, u1} Nat (α -> ENNReal) f (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring))) (nhds.{u1} (α -> ENNReal) (Pi.topologicalSpace.{u1, 0} α (fun (ᾰ : α) => ENNReal) (fun (a : α) => ENNReal.instTopologicalSpaceENNReal)) g)) -> (Measurable.{u1, 0} α ENNReal _inst_1 ENNReal.measurableSpace g)
+Case conversion may be inaccurate. Consider using '#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))
+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
+#align measurable_of_tendsto_ennreal measurable_of_tendsto_ennreal
+/- warning: measurable_of_tendsto_nnreal' -> measurable_of_tendsto_nnreal' is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {ι : Type.{u2}} {f : ι -> α -> NNReal} {g : α -> NNReal} (u : Filter.{u2} ι) [_inst_6 : Filter.NeBot.{u2} ι u] [_inst_7 : Filter.IsCountablyGenerated.{u2} ι u], (forall (i : ι), Measurable.{u1, 0} α NNReal _inst_1 NNReal.measurableSpace (f i)) -> (Filter.Tendsto.{u2, u1} ι (α -> NNReal) f u (nhds.{u1} (α -> NNReal) (Pi.topologicalSpace.{u1, 0} α (fun (ᾰ : α) => NNReal) (fun (a : α) => NNReal.topologicalSpace)) g)) -> (Measurable.{u1, 0} α NNReal _inst_1 NNReal.measurableSpace g)
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {ι : Type.{u2}} {f : ι -> α -> NNReal} {g : α -> NNReal} (u : Filter.{u2} ι) [_inst_6 : Filter.NeBot.{u2} ι u] [_inst_7 : Filter.IsCountablyGenerated.{u2} ι u], (forall (i : ι), Measurable.{u1, 0} α NNReal _inst_1 NNReal.measurableSpace (f i)) -> (Filter.Tendsto.{u2, u1} ι (α -> NNReal) f u (nhds.{u1} (α -> NNReal) (Pi.topologicalSpace.{u1, 0} α (fun (ᾰ : α) => NNReal) (fun (a : α) => NNReal.instTopologicalSpaceNNReal)) g)) -> (Measurable.{u1, 0} α NNReal _inst_1 NNReal.measurableSpace g)
+Case conversion may be inaccurate. Consider using '#align measurable_of_tendsto_nnreal' measurable_of_tendsto_nnreal'ₓ'. -/
/-- 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)) :
@@ -59,12 +77,24 @@ theorem measurable_of_tendsto_nnreal' {ι} {f : ι → α → ℝ≥0} {g : α
exact fun x => (ennreal.continuous_coe.tendsto (g x)).comp (limUnder x)
#align measurable_of_tendsto_nnreal' measurable_of_tendsto_nnreal'
+/- warning: measurable_of_tendsto_nnreal -> measurable_of_tendsto_nnreal is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {f : Nat -> α -> NNReal} {g : α -> NNReal}, (forall (i : Nat), Measurable.{u1, 0} α NNReal _inst_1 NNReal.measurableSpace (f i)) -> (Filter.Tendsto.{0, u1} Nat (α -> NNReal) f (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)))) (nhds.{u1} (α -> NNReal) (Pi.topologicalSpace.{u1, 0} α (fun (ᾰ : α) => NNReal) (fun (a : α) => NNReal.topologicalSpace)) g)) -> (Measurable.{u1, 0} α NNReal _inst_1 NNReal.measurableSpace g)
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {f : Nat -> α -> NNReal} {g : α -> NNReal}, (forall (i : Nat), Measurable.{u1, 0} α NNReal _inst_1 NNReal.measurableSpace (f i)) -> (Filter.Tendsto.{0, u1} Nat (α -> NNReal) f (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring))) (nhds.{u1} (α -> NNReal) (Pi.topologicalSpace.{u1, 0} α (fun (ᾰ : α) => NNReal) (fun (a : α) => NNReal.instTopologicalSpaceNNReal)) g)) -> (Measurable.{u1, 0} α NNReal _inst_1 NNReal.measurableSpace g)
+Case conversion may be inaccurate. Consider using '#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))
+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
+#align measurable_of_tendsto_nnreal measurable_of_tendsto_nnreal
+/- warning: measurable_of_tendsto_metrizable' -> measurable_of_tendsto_metrizable' is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] [_inst_3 : TopologicalSpace.PseudoMetrizableSpace.{u2} β _inst_2] [_inst_4 : MeasurableSpace.{u2} β] [_inst_5 : BorelSpace.{u2} β _inst_2 _inst_4] {ι : Type.{u3}} {f : ι -> α -> β} {g : α -> β} (u : Filter.{u3} ι) [_inst_6 : Filter.NeBot.{u3} ι u] [_inst_7 : Filter.IsCountablyGenerated.{u3} ι u], (forall (i : ι), Measurable.{u1, u2} α β _inst_1 _inst_4 (f i)) -> (Filter.Tendsto.{u3, max u1 u2} ι (α -> β) f u (nhds.{max u1 u2} (α -> β) (Pi.topologicalSpace.{u1, u2} α (fun (ᾰ : α) => β) (fun (a : α) => _inst_2)) g)) -> (Measurable.{u1, u2} α β _inst_1 _inst_4 g)
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] [_inst_3 : TopologicalSpace.PseudoMetrizableSpace.{u1} β _inst_2] [_inst_4 : MeasurableSpace.{u1} β] [_inst_5 : BorelSpace.{u1} β _inst_2 _inst_4] {ι : Type.{u3}} {f : ι -> α -> β} {g : α -> β} (u : Filter.{u3} ι) [_inst_6 : Filter.NeBot.{u3} ι u] [_inst_7 : Filter.IsCountablyGenerated.{u3} ι u], (forall (i : ι), Measurable.{u2, u1} α β _inst_1 _inst_4 (f i)) -> (Filter.Tendsto.{u3, max u2 u1} ι (α -> β) f u (nhds.{max u2 u1} (α -> β) (Pi.topologicalSpace.{u2, u1} α (fun (ᾰ : α) => β) (fun (a : α) => _inst_2)) g)) -> (Measurable.{u2, u1} α β _inst_1 _inst_4 g)
+Case conversion may be inaccurate. Consider using '#align measurable_of_tendsto_metrizable' measurable_of_tendsto_metrizable'ₓ'. -/
/-- 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]
@@ -89,6 +119,12 @@ theorem measurable_of_tendsto_metrizable' {ι} {f : ι → α → β} {g : α
exact this (measurable_set_singleton 0)
#align measurable_of_tendsto_metrizable' measurable_of_tendsto_metrizable'
+/- warning: measurable_of_tendsto_metrizable -> measurable_of_tendsto_metrizable is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] [_inst_3 : TopologicalSpace.PseudoMetrizableSpace.{u2} β _inst_2] [_inst_4 : MeasurableSpace.{u2} β] [_inst_5 : BorelSpace.{u2} β _inst_2 _inst_4] {f : Nat -> α -> β} {g : α -> β}, (forall (i : Nat), Measurable.{u1, u2} α β _inst_1 _inst_4 (f i)) -> (Filter.Tendsto.{0, max u1 u2} Nat (α -> β) f (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)))) (nhds.{max u1 u2} (α -> β) (Pi.topologicalSpace.{u1, u2} α (fun (ᾰ : α) => β) (fun (a : α) => _inst_2)) g)) -> (Measurable.{u1, u2} α β _inst_1 _inst_4 g)
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] [_inst_3 : TopologicalSpace.PseudoMetrizableSpace.{u1} β _inst_2] [_inst_4 : MeasurableSpace.{u1} β] [_inst_5 : BorelSpace.{u1} β _inst_2 _inst_4] {f : Nat -> α -> β} {g : α -> β}, (forall (i : Nat), Measurable.{u2, u1} α β _inst_1 _inst_4 (f i)) -> (Filter.Tendsto.{0, max u2 u1} Nat (α -> β) f (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring))) (nhds.{max u2 u1} (α -> β) (Pi.topologicalSpace.{u2, u1} α (fun (ᾰ : α) => β) (fun (a : α) => _inst_2)) g)) -> (Measurable.{u2, u1} α β _inst_1 _inst_4 g)
+Case conversion may be inaccurate. Consider using '#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))
@@ -96,7 +132,13 @@ theorem measurable_of_tendsto_metrizable {f : ℕ → α → β} {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 : α → β}
+/- warning: ae_measurable_of_tendsto_metrizable_ae -> aemeasurable_of_tendsto_metrizable_ae is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] [_inst_3 : TopologicalSpace.PseudoMetrizableSpace.{u2} β _inst_2] [_inst_4 : MeasurableSpace.{u2} β] [_inst_5 : BorelSpace.{u2} β _inst_2 _inst_4] {ι : Type.{u3}} {μ : MeasureTheory.Measure.{u1} α _inst_1} {f : ι -> α -> β} {g : α -> β} (u : Filter.{u3} ι) [hu : Filter.NeBot.{u3} ι u] [_inst_6 : Filter.IsCountablyGenerated.{u3} ι u], (forall (n : ι), AEMeasurable.{u1, u2} α β _inst_4 _inst_1 (f n) μ) -> (Filter.Eventually.{u1} α (fun (x : α) => Filter.Tendsto.{u3, u2} ι β (fun (n : ι) => f n x) u (nhds.{u2} β _inst_2 (g x))) (MeasureTheory.Measure.ae.{u1} α _inst_1 μ)) -> (AEMeasurable.{u1, u2} α β _inst_4 _inst_1 g μ)
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] [_inst_3 : TopologicalSpace.PseudoMetrizableSpace.{u1} β _inst_2] [_inst_4 : MeasurableSpace.{u1} β] [_inst_5 : BorelSpace.{u1} β _inst_2 _inst_4] {ι : Type.{u3}} {μ : MeasureTheory.Measure.{u2} α _inst_1} {f : ι -> α -> β} {g : α -> β} (u : Filter.{u3} ι) [hu : Filter.NeBot.{u3} ι u] [_inst_6 : Filter.IsCountablyGenerated.{u3} ι u], (forall (n : ι), AEMeasurable.{u2, u1} α β _inst_4 _inst_1 (f n) μ) -> (Filter.Eventually.{u2} α (fun (x : α) => Filter.Tendsto.{u3, u1} ι β (fun (n : ι) => f n x) u (nhds.{u1} β _inst_2 (g x))) (MeasureTheory.Measure.ae.{u2} α _inst_1 μ)) -> (AEMeasurable.{u2, u1} α β _inst_4 _inst_1 g μ)
+Case conversion may be inaccurate. Consider using '#align ae_measurable_of_tendsto_metrizable_ae aemeasurable_of_tendsto_metrizable_aeₓ'. -/
+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
@@ -120,15 +162,27 @@ theorem aEMeasurable_of_tendsto_metrizable_ae {ι} {μ : Measure α} {f : ι →
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
+#align ae_measurable_of_tendsto_metrizable_ae aemeasurable_of_tendsto_metrizable_ae
-theorem aEMeasurable_of_tendsto_metrizable_ae' {μ : Measure α} {f : ℕ → α → β} {g : α → β}
+/- warning: ae_measurable_of_tendsto_metrizable_ae' -> aemeasurable_of_tendsto_metrizable_ae' is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] [_inst_3 : TopologicalSpace.PseudoMetrizableSpace.{u2} β _inst_2] [_inst_4 : MeasurableSpace.{u2} β] [_inst_5 : BorelSpace.{u2} β _inst_2 _inst_4] {μ : MeasureTheory.Measure.{u1} α _inst_1} {f : Nat -> α -> β} {g : α -> β}, (forall (n : Nat), AEMeasurable.{u1, u2} α β _inst_4 _inst_1 (f n) μ) -> (Filter.Eventually.{u1} α (fun (x : α) => Filter.Tendsto.{0, u2} Nat β (fun (n : Nat) => f n x) (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)))) (nhds.{u2} β _inst_2 (g x))) (MeasureTheory.Measure.ae.{u1} α _inst_1 μ)) -> (AEMeasurable.{u1, u2} α β _inst_4 _inst_1 g μ)
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] [_inst_3 : TopologicalSpace.PseudoMetrizableSpace.{u1} β _inst_2] [_inst_4 : MeasurableSpace.{u1} β] [_inst_5 : BorelSpace.{u1} β _inst_2 _inst_4] {μ : MeasureTheory.Measure.{u2} α _inst_1} {f : Nat -> α -> β} {g : α -> β}, (forall (n : Nat), AEMeasurable.{u2, u1} α β _inst_4 _inst_1 (f n) μ) -> (Filter.Eventually.{u2} α (fun (x : α) => Filter.Tendsto.{0, u1} Nat β (fun (n : Nat) => f n x) (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring))) (nhds.{u1} β _inst_2 (g x))) (MeasureTheory.Measure.ae.{u2} α _inst_1 μ)) -> (AEMeasurable.{u2, u1} α β _inst_4 _inst_1 g μ)
+Case conversion may be inaccurate. Consider using '#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'
+ 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 β]
+/- warning: ae_measurable_of_unif_approx -> aemeasurable_of_unif_approx is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {β : Type.{u2}} [_inst_6 : MeasurableSpace.{u2} β] [_inst_7 : PseudoMetricSpace.{u2} β] [_inst_8 : BorelSpace.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β _inst_7)) _inst_6] {μ : MeasureTheory.Measure.{u1} α _inst_1} {g : α -> β}, (forall (ε : Real), (GT.gt.{0} Real Real.hasLt ε (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) -> (Exists.{max (succ u1) (succ u2)} (α -> β) (fun (f : α -> β) => And (AEMeasurable.{u1, u2} α β _inst_6 _inst_1 f μ) (Filter.Eventually.{u1} α (fun (x : α) => LE.le.{0} Real Real.hasLe (Dist.dist.{u2} β (PseudoMetricSpace.toHasDist.{u2} β _inst_7) (f x) (g x)) ε) (MeasureTheory.Measure.ae.{u1} α _inst_1 μ))))) -> (AEMeasurable.{u1, u2} α β _inst_6 _inst_1 g μ)
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_1 : MeasurableSpace.{u1} α] {β : Type.{u2}} [_inst_6 : MeasurableSpace.{u2} β] [_inst_7 : PseudoMetricSpace.{u2} β] [_inst_8 : BorelSpace.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β _inst_7)) _inst_6] {μ : MeasureTheory.Measure.{u1} α _inst_1} {g : α -> β}, (forall (ε : Real), (GT.gt.{0} Real Real.instLTReal ε (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) -> (Exists.{max (succ u1) (succ u2)} (α -> β) (fun (f : α -> β) => And (AEMeasurable.{u1, u2} α β _inst_6 _inst_1 f μ) (Filter.Eventually.{u1} α (fun (x : α) => LE.le.{0} Real Real.instLEReal (Dist.dist.{u2} β (PseudoMetricSpace.toDist.{u2} β _inst_7) (f x) (g x)) ε) (MeasureTheory.Measure.ae.{u1} α _inst_1 μ))))) -> (AEMeasurable.{u1, u2} α β _inst_6 _inst_1 g μ)
+Case conversion may be inaccurate. Consider using '#align ae_measurable_of_unif_approx aemeasurable_of_unif_approxₓ'. -/
+theorem aemeasurable_of_unif_approx {β} [MeasurableSpace β] [PseudoMetricSpace β] [BorelSpace β]
{μ : Measure α} {g : α → β}
(hf : ∀ ε > (0 : ℝ), ∃ f : α → β, AEMeasurable f μ ∧ ∀ᵐ x ∂μ, dist (f x) (g x) ≤ ε) :
AEMeasurable g μ :=
@@ -144,16 +198,28 @@ theorem aEMeasurable_of_unif_approx {β} [MeasurableSpace β] [PseudoMetricSpace
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
+ exact aemeasurable_of_tendsto_metrizable_ae' (fun n => (Hf n).1) this
+#align ae_measurable_of_unif_approx aemeasurable_of_unif_approx
+/- warning: measurable_of_tendsto_metrizable_ae -> measurable_of_tendsto_metrizable_ae is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] [_inst_3 : TopologicalSpace.PseudoMetrizableSpace.{u2} β _inst_2] [_inst_4 : MeasurableSpace.{u2} β] [_inst_5 : BorelSpace.{u2} β _inst_2 _inst_4] {μ : MeasureTheory.Measure.{u1} α _inst_1} [_inst_6 : MeasureTheory.Measure.IsComplete.{u1} α _inst_1 μ] {f : Nat -> α -> β} {g : α -> β}, (forall (n : Nat), Measurable.{u1, u2} α β _inst_1 _inst_4 (f n)) -> (Filter.Eventually.{u1} α (fun (x : α) => Filter.Tendsto.{0, u2} Nat β (fun (n : Nat) => f n x) (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)))) (nhds.{u2} β _inst_2 (g x))) (MeasureTheory.Measure.ae.{u1} α _inst_1 μ)) -> (Measurable.{u1, u2} α β _inst_1 _inst_4 g)
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] [_inst_3 : TopologicalSpace.PseudoMetrizableSpace.{u1} β _inst_2] [_inst_4 : MeasurableSpace.{u1} β] [_inst_5 : BorelSpace.{u1} β _inst_2 _inst_4] {μ : MeasureTheory.Measure.{u2} α _inst_1} [_inst_6 : MeasureTheory.Measure.IsComplete.{u2} α _inst_1 μ] {f : Nat -> α -> β} {g : α -> β}, (forall (n : Nat), Measurable.{u2, u1} α β _inst_1 _inst_4 (f n)) -> (Filter.Eventually.{u2} α (fun (x : α) => Filter.Tendsto.{0, u1} Nat β (fun (n : Nat) => f n x) (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring))) (nhds.{u1} β _inst_2 (g x))) (MeasureTheory.Measure.ae.{u2} α _inst_1 μ)) -> (Measurable.{u2, u1} α β _inst_1 _inst_4 g)
+Case conversion may be inaccurate. Consider using '#align measurable_of_tendsto_metrizable_ae measurable_of_tendsto_metrizable_aeₓ'. -/
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)
+ (aemeasurable_of_tendsto_metrizable_ae' (fun i => (hf i).AEMeasurable) h_ae_tendsto)
#align measurable_of_tendsto_metrizable_ae measurable_of_tendsto_metrizable_ae
+/- warning: measurable_limit_of_tendsto_metrizable_ae -> measurable_limit_of_tendsto_metrizable_ae is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : MeasurableSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] [_inst_3 : TopologicalSpace.PseudoMetrizableSpace.{u2} β _inst_2] [_inst_4 : MeasurableSpace.{u2} β] [_inst_5 : BorelSpace.{u2} β _inst_2 _inst_4] {ι : Type.{u3}} [_inst_6 : Countable.{succ u3} ι] [_inst_7 : Nonempty.{succ u3} ι] {μ : MeasureTheory.Measure.{u1} α _inst_1} {f : ι -> α -> β} {L : Filter.{u3} ι} [_inst_8 : Filter.IsCountablyGenerated.{u3} ι L], (forall (n : ι), AEMeasurable.{u1, u2} α β _inst_4 _inst_1 (f n) μ) -> (Filter.Eventually.{u1} α (fun (x : α) => Exists.{succ u2} β (fun (l : β) => Filter.Tendsto.{u3, u2} ι β (fun (n : ι) => f n x) L (nhds.{u2} β _inst_2 l))) (MeasureTheory.Measure.ae.{u1} α _inst_1 μ)) -> (Exists.{max (succ u1) (succ u2)} (α -> β) (fun (f_lim : α -> β) => Exists.{0} (Measurable.{u1, u2} α β _inst_1 _inst_4 f_lim) (fun (hf_lim_meas : Measurable.{u1, u2} α β _inst_1 _inst_4 f_lim) => Filter.Eventually.{u1} α (fun (x : α) => Filter.Tendsto.{u3, u2} ι β (fun (n : ι) => f n x) L (nhds.{u2} β _inst_2 (f_lim x))) (MeasureTheory.Measure.ae.{u1} α _inst_1 μ))))
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : MeasurableSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] [_inst_3 : TopologicalSpace.PseudoMetrizableSpace.{u1} β _inst_2] [_inst_4 : MeasurableSpace.{u1} β] [_inst_5 : BorelSpace.{u1} β _inst_2 _inst_4] {ι : Type.{u3}} [_inst_6 : Countable.{succ u3} ι] [_inst_7 : Nonempty.{succ u3} ι] {μ : MeasureTheory.Measure.{u2} α _inst_1} {f : ι -> α -> β} {L : Filter.{u3} ι} [_inst_8 : Filter.IsCountablyGenerated.{u3} ι L], (forall (n : ι), AEMeasurable.{u2, u1} α β _inst_4 _inst_1 (f n) μ) -> (Filter.Eventually.{u2} α (fun (x : α) => Exists.{succ u1} β (fun (l : β) => Filter.Tendsto.{u3, u1} ι β (fun (n : ι) => f n x) L (nhds.{u1} β _inst_2 l))) (MeasureTheory.Measure.ae.{u2} α _inst_1 μ)) -> (Exists.{max (succ u2) (succ u1)} (α -> β) (fun (f_lim : α -> β) => Exists.{0} (Measurable.{u2, u1} α β _inst_1 _inst_4 f_lim) (fun (hf_lim_meas : Measurable.{u2, u1} α β _inst_1 _inst_4 f_lim) => Filter.Eventually.{u2} α (fun (x : α) => Filter.Tendsto.{u3, u1} ι β (fun (n : ι) => f n x) L (nhds.{u1} β _inst_2 (f_lim x))) (MeasureTheory.Measure.ae.{u2} α _inst_1 μ))))
+Case conversion may be inaccurate. Consider using '#align measurable_limit_of_tendsto_metrizable_ae measurable_limit_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)) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/33c67ae661dd8988516ff7f247b0be3018cdd952
@@ -53,7 +53,7 @@ theorem measurable_of_tendsto_eNNReal {f : ℕ → α → ℝ≥0∞} {g : α
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⊢
+ 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)
mathlib commit https://github.com/leanprover-community/mathlib/commit/0b9eaaa7686280fad8cce467f5c3c57ee6ce77f8
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>
@@ -26,42 +26,6 @@ variable [TopologicalSpace β] [PseudoMetrizableSpace β] [MeasurableSpace β] [
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∞)) 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' 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 lim
-#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 (lim 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 lim
-#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]
@@ -72,7 +36,7 @@ theorem measurable_of_tendsto_metrizable' {ι} {f : ι → α → β} {g : α
intro s h1s h2s h3s
have : Measurable fun x => infNndist (g x) s := by
suffices Tendsto (fun i x => infNndist (f i x) s) u (𝓝 fun x => infNndist (g x) s) from
- measurable_of_tendsto_nnreal' u (fun i => (hf i).infNndist) this
+ NNReal.measurable_of_tendsto' u (fun i => (hf i).infNndist) this
rw [tendsto_pi_nhds] at lim ⊢
intro x
exact ((continuous_infNndist_pt s).tendsto (g x)).comp (lim x)
@@ -185,7 +149,7 @@ lemma measurableSet_of_tendsto_indicator [NeBot L] (As_mble : ∀ i, MeasurableS
(h_lim : ∀ x, ∀ᶠ i in L, x ∈ As i ↔ x ∈ A) :
MeasurableSet A := by
simp_rw [← measurable_indicator_const_iff (1 : ℝ≥0∞)] at As_mble ⊢
- exact measurable_of_tendsto_ennreal' L As_mble
+ exact ENNReal.measurable_of_tendsto' L As_mble
((tendsto_indicator_const_iff_forall_eventually L (1 : ℝ≥0∞)).mpr h_lim)
/-- If the indicator functions of a.e.-measurable sets `Aᵢ` converge a.e. to the indicator function
open Classical
(#11199)
We remove all but one open Classical
s, instead preferring to use open scoped Classical
. The only real side-effect this led to is moving a couple declarations to use Exists.choose
instead of Classical.choose
.
The first few commits are explicitly labelled regex replaces for ease of review.
@@ -15,7 +15,8 @@ import Mathlib.Topology.IndicatorConstPointwise
open Filter MeasureTheory TopologicalSpace
-open Classical Topology NNReal ENNReal MeasureTheory
+open scoped Classical
+open Topology NNReal ENNReal MeasureTheory
variable {α β : Type*} [MeasurableSpace α]
This is a very large PR, but it has been reviewed piecemeal already in PRs to the bump/v4.7.0
branch as we update to intermediate nightlies.
Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Kyle Miller <kmill31415@gmail.com> Co-authored-by: damiano <adomani@gmail.com>
@@ -103,7 +103,7 @@ theorem aemeasurable_of_tendsto_metrizable_ae {ι} {μ : Measure α} {f : ι →
measurable_of_tendsto_metrizable' atTop (aeSeq.measurable h'f p)
(tendsto_pi_nhds.mpr fun x => _),
_⟩
- · simp_rw [aeSeq]
+ · simp_rw [aeSeqLim, 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 x hx
@@ -158,7 +158,7 @@ theorem measurable_limit_of_tendsto_metrizable_ae {ι} [Countable ι] [Nonempty
fun _ => (⟨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 [aeSeq]
+ simp only [aeSeq, f_lim]
split_ifs with h
· refine' (hp_mem x h).choose_spec.congr fun n => _
exact (aeSeq.mk_eq_fun_of_mem_aeSeqSet hf h n).symm
have
, replace
and suffices
(#10640)
No changes to tactic file, it's just boring fixes throughout the library.
This follows on from #6964.
Co-authored-by: sgouezel <sebastien.gouezel@univ-rennes1.fr> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
@@ -70,8 +70,8 @@ theorem measurable_of_tendsto_metrizable' {ι} {f : ι → α → β} {g : α
apply measurable_of_isClosed'
intro s h1s h2s h3s
have : Measurable fun x => infNndist (g x) s := by
- suffices : Tendsto (fun i x => infNndist (f i x) s) u (𝓝 fun x => infNndist (g x) s)
- exact measurable_of_tendsto_nnreal' u (fun i => (hf i).infNndist) this
+ suffices Tendsto (fun i x => infNndist (f i x) s) u (𝓝 fun x => infNndist (g x) s) from
+ measurable_of_tendsto_nnreal' u (fun i => (hf i).infNndist) this
rw [tendsto_pi_nhds] at lim ⊢
intro x
exact ((continuous_infNndist_pt s).tendsto (g x)).comp (lim x)
∃ x ∈ s, _
instead of ∃ (x) (_ : x ∈ s), _
(#9184)
Search for [∀∃].*(_
and manually replace some occurrences with more readable versions.
In case of ∀
, the new expressions are defeq to the old ones.
In case of ∃
, they differ by exists_prop
.
In some rare cases, golf proofs that needed fixing.
@@ -146,8 +146,7 @@ theorem measurable_of_tendsto_metrizable_ae {μ : Measure α} [μ.IsComplete] {f
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
+ ∃ f_lim : α → β, Measurable f_lim ∧ ∀ᵐ x ∂μ, Tendsto (fun n => f n x) L (𝓝 (f_lim x)) := by
inhabit ι
rcases eq_or_neBot L with (rfl | hL)
· exact ⟨(hf default).mk _, (hf default).measurable_mk, eventually_of_forall fun x => tendsto_bot⟩
In some recently added results, pointwise convergence of constant indicators of sets was phrased in terms of Tendsto
in the product topology. The relevant notion is more elementary, however: it is (usually) equivalent to eventually constantness of the set membership of any point; in particular the topology of the underlying set plays almost no role (apart from mild separation axioms). This PR adds equivalences between the conditions and refactors some results.
Co-authored-by: Floris van Doorn <@fpvandoorn>.
@@ -5,6 +5,7 @@ Authors: Floris van Doorn
-/
import Mathlib.MeasureTheory.Constructions.BorelSpace.Basic
import Mathlib.Topology.Metrizable.Basic
+import Mathlib.Topology.IndicatorConstPointwise
#align_import measure_theory.constructions.borel_space.metrizable from "leanprover-community/mathlib"@"bf6a01357ff5684b1ebcd0f1a13be314fc82c0bf"
@@ -12,7 +13,6 @@ import Mathlib.Topology.Metrizable.Basic
# Measurable functions in (pseudo-)metrizable Borel spaces
-/
-
open Filter MeasureTheory TopologicalSpace
open Classical Topology NNReal ENNReal MeasureTheory
@@ -182,19 +182,20 @@ variable {ι : Type*} (L : Filter ι) [IsCountablyGenerated L] {As : ι → Set
/-- If the indicator functions of measurable sets `Aᵢ` converge to the indicator function of
a set `A` along a nontrivial countably generated filter, then `A` is also measurable. -/
lemma measurableSet_of_tendsto_indicator [NeBot L] (As_mble : ∀ i, MeasurableSet (As i))
- (h_lim : Tendsto (fun i ↦ (As i).indicator (1 : α → ℝ≥0∞)) L (𝓝 (A.indicator 1))) :
+ (h_lim : ∀ x, ∀ᶠ i in L, x ∈ As i ↔ x ∈ A) :
MeasurableSet A := by
simp_rw [← measurable_indicator_const_iff (1 : ℝ≥0∞)] at As_mble ⊢
- exact measurable_of_tendsto_ennreal' L As_mble h_lim
+ exact measurable_of_tendsto_ennreal' L As_mble
+ ((tendsto_indicator_const_iff_forall_eventually L (1 : ℝ≥0∞)).mpr h_lim)
/-- If the indicator functions of a.e.-measurable sets `Aᵢ` converge a.e. to the indicator function
of a set `A` along a nontrivial countably generated filter, then `A` is also a.e.-measurable. -/
lemma nullMeasurableSet_of_tendsto_indicator [NeBot L] {μ : Measure α}
(As_mble : ∀ i, NullMeasurableSet (As i) μ)
- (h_lim : ∀ᵐ x ∂μ, Tendsto (fun i ↦ (As i).indicator (1 : α → ℝ≥0∞) x)
- L (𝓝 (A.indicator 1 x))) :
+ (h_lim : ∀ᵐ x ∂μ, ∀ᶠ i in L, x ∈ As i ↔ x ∈ A) :
NullMeasurableSet A μ := by
simp_rw [← aemeasurable_indicator_const_iff (1 : ℝ≥0∞)] at As_mble ⊢
- exact aemeasurable_of_tendsto_metrizable_ae L As_mble h_lim
+ apply aemeasurable_of_tendsto_metrizable_ae L As_mble
+ simpa [tendsto_indicator_const_apply_iff_eventually] using h_lim
end TendstoIndicator
@@ -67,7 +67,7 @@ theorem measurable_of_tendsto_metrizable' {ι} {f : ι → α → β} {g : α
[IsCountablyGenerated u] (hf : ∀ i, Measurable (f i)) (lim : Tendsto f u (𝓝 g)) :
Measurable g := by
letI : PseudoMetricSpace β := pseudoMetrizableSpacePseudoMetric β
- apply measurable_of_is_closed'
+ apply measurable_of_isClosed'
intro s h1s h2s h3s
have : Measurable fun x => infNndist (g x) s := by
suffices : Tendsto (fun i x => infNndist (f i x) s) u (𝓝 fun x => infNndist (g x) s)
Topology.MetricSpace.Metrizable*
(#7912)
Move
Topology.Metrizable.Basic
,Topology.Metrizable.Uniform
.The next step is to redefine Metrizable
as "uniformizable with countably generated uniformity"
and make this definition available much earlier.
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Floris van Doorn
-/
import Mathlib.MeasureTheory.Constructions.BorelSpace.Basic
-import Mathlib.Topology.MetricSpace.Metrizable
+import Mathlib.Topology.Metrizable.Basic
#align_import measure_theory.constructions.borel_space.metrizable from "leanprover-community/mathlib"@"bf6a01357ff5684b1ebcd0f1a13be314fc82c0bf"
filter_upwards
(#7719)
mathport was forgetting a space in filter_upwards [...]with
instead of filter_upwards [...] with
.
@@ -96,7 +96,7 @@ theorem aemeasurable_of_tendsto_metrizable_ae {ι} {μ : Measure α} {f : ι →
have h'f : ∀ n, AEMeasurable (f (v n)) μ := fun n => hf (v n)
set p : α → (ℕ → β) → Prop := fun x f' => Tendsto (fun n => f' n) atTop (𝓝 (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
+ filter_upwards [h_tendsto] with x hx using hx.comp hv
set aeSeqLim := fun x => ite (x ∈ aeSeqSet h'f p) (g x) (⟨f (v 0) x⟩ : Nonempty β).some
refine'
⟨aeSeqLim,
Type _
before the colon (#7718)
We have turned to Type*
instead of Type _
, but many of them remained in mathlib because the straight replacement did not work. In general, having Type _
before the colon is a code smell, though, as it hides which types should be in the same universe and which shouldn't, and is not very robust.
This PR replaces most of the remaining Type _
before the colon (except those in category theory) by Type*
or Type u
. This has uncovered a few bugs (where declarations were not as polymorphic as they should be).
I had to increase heartbeats at two places when replacing Type _
by Type*
, but I think it's worth it as it's really more robust.
@@ -176,8 +176,8 @@ end Limits
section TendstoIndicator
-variable {α : Type _} [MeasurableSpace α] {A : Set α}
-variable {ι : Type _} (L : Filter ι) [IsCountablyGenerated L] {As : ι → Set α}
+variable {α : Type*} [MeasurableSpace α] {A : Set α}
+variable {ι : Type*} (L : Filter ι) [IsCountablyGenerated L] {As : ι → Set α}
/-- If the indicator functions of measurable sets `Aᵢ` converge to the indicator function of
a set `A` along a nontrivial countably generated filter, then `A` is also measurable. -/
Adding results about convergence of measures of sets assuming convergence of indicator functions.
Co-authored-by: kkytola <“kalle.kytola@aalto.fi”> Co-authored-by: kkytola <39528102+kkytola@users.noreply.github.com>
@@ -173,3 +173,28 @@ theorem measurable_limit_of_tendsto_metrizable_ae {ι} [Countable ι] [Nonempty
#align measurable_limit_of_tendsto_metrizable_ae measurable_limit_of_tendsto_metrizable_ae
end Limits
+
+section TendstoIndicator
+
+variable {α : Type _} [MeasurableSpace α] {A : Set α}
+variable {ι : Type _} (L : Filter ι) [IsCountablyGenerated L] {As : ι → Set α}
+
+/-- If the indicator functions of measurable sets `Aᵢ` converge to the indicator function of
+a set `A` along a nontrivial countably generated filter, then `A` is also measurable. -/
+lemma measurableSet_of_tendsto_indicator [NeBot L] (As_mble : ∀ i, MeasurableSet (As i))
+ (h_lim : Tendsto (fun i ↦ (As i).indicator (1 : α → ℝ≥0∞)) L (𝓝 (A.indicator 1))) :
+ MeasurableSet A := by
+ simp_rw [← measurable_indicator_const_iff (1 : ℝ≥0∞)] at As_mble ⊢
+ exact measurable_of_tendsto_ennreal' L As_mble h_lim
+
+/-- If the indicator functions of a.e.-measurable sets `Aᵢ` converge a.e. to the indicator function
+of a set `A` along a nontrivial countably generated filter, then `A` is also a.e.-measurable. -/
+lemma nullMeasurableSet_of_tendsto_indicator [NeBot L] {μ : Measure α}
+ (As_mble : ∀ i, NullMeasurableSet (As i) μ)
+ (h_lim : ∀ᵐ x ∂μ, Tendsto (fun i ↦ (As i).indicator (1 : α → ℝ≥0∞) x)
+ L (𝓝 (A.indicator 1 x))) :
+ NullMeasurableSet A μ := by
+ simp_rw [← aemeasurable_indicator_const_iff (1 : ℝ≥0∞)] at As_mble ⊢
+ exact aemeasurable_of_tendsto_metrizable_ae L As_mble h_lim
+
+end TendstoIndicator
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -17,7 +17,7 @@ open Filter MeasureTheory TopologicalSpace
open Classical Topology NNReal ENNReal MeasureTheory
-variable {α β : Type _} [MeasurableSpace α]
+variable {α β : Type*} [MeasurableSpace α]
section Limits
@@ -2,15 +2,12 @@
Copyright (c) 2020 Floris van Doorn. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Floris van Doorn
-
-! This file was ported from Lean 3 source module measure_theory.constructions.borel_space.metrizable
-! leanprover-community/mathlib commit bf6a01357ff5684b1ebcd0f1a13be314fc82c0bf
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.MeasureTheory.Constructions.BorelSpace.Basic
import Mathlib.Topology.MetricSpace.Metrizable
+#align_import measure_theory.constructions.borel_space.metrizable from "leanprover-community/mathlib"@"bf6a01357ff5684b1ebcd0f1a13be314fc82c0bf"
+
/-!
# Measurable functions in (pseudo-)metrizable Borel spaces
-/
This PR is the result of running
find . -type f -name "*.lean" -exec sed -i -E 's/^( +)\. /\1· /' {} \;
find . -type f -name "*.lean" -exec sed -i -E 'N;s/^( +·)\n +(.*)$/\1 \2/;P;D' {} \;
which firstly replaces .
focusing dots with ·
and secondly removes isolated instances of such dots, unifying them with the following line. A new rule is placed in the style linter to verify this.
@@ -111,8 +111,7 @@ theorem aemeasurable_of_tendsto_metrizable_ae {ι} {μ : Measure α} {f : ι →
· 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
+ · 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
Filter.eq_or_neBot
(#5230)
Also add Filter.limsup_bot
, Filter.liminf_bot
, and golf some proofs using new lemmas.
@@ -153,9 +153,8 @@ theorem measurable_limit_of_tendsto_metrizable_ae {ι} [Countable ι] [Nonempty
∃ (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)
+ rcases eq_or_neBot L with (rfl | hL)
· exact ⟨(hf default).mk _, (hf default).measurable_mk, eventually_of_forall fun x => tendsto_bot⟩
- haveI : NeBot 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
Fix the set tactic to not time out when dealing with slow to elaborate terms and many local hypotheses.
The root cause of this is that the rewrite [blah] at *
tactic causes blah to be elaborated again and again for each local hypothesis, this is possibly a core issue that should be fixed separately, but in set
we have the elaborated term already so we can just use it.
We also add some functionality to simply test / demonstrate failures when elaboration takes too long, namely sleepAtLeastHeartbeats
and a sleep_heartbeats
tactic.
@urkud was facing some slow running set's in https://github.com/leanprover-community/mathlib4/pull/4912, see https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Timeout.20in.20.60set.20.2E.2E.20with.60/near/367958828 that this issue was minimized from and should fix.
Some other linter failures show up due to changes to the set internals so fix these too.
Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com>
@@ -161,7 +161,7 @@ theorem measurable_limit_of_tendsto_metrizable_ae {ι} [Countable ι] [Nonempty
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
set f_lim : α → β := fun x => dite (x ∈ aeSeqSet hf p) (fun h => (hp_mem x h).choose)
- fun h => (⟨f default x⟩ : Nonempty β).some
+ fun _ => (⟨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 [aeSeq]
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
@@ -52,9 +52,9 @@ theorem measurable_of_tendsto_ennreal {f : ℕ → α → ℝ≥0∞} {g : α
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⊢
+ simp_rw [← measurable_coe_nnreal_ennreal_iff] at hf ⊢
refine' measurable_of_tendsto_ennreal' u hf _
- rw [tendsto_pi_nhds] at lim⊢
+ rw [tendsto_pi_nhds] at lim ⊢
exact fun x => (ENNReal.continuous_coe.tendsto (g x)).comp (lim x)
#align measurable_of_tendsto_nnreal' measurable_of_tendsto_nnreal'
@@ -75,7 +75,7 @@ theorem measurable_of_tendsto_metrizable' {ι} {f : ι → α → β} {g : α
have : Measurable fun x => infNndist (g x) s := by
suffices : Tendsto (fun i x => infNndist (f i x) s) u (𝓝 fun x => infNndist (g x) s)
exact measurable_of_tendsto_nnreal' u (fun i => (hf i).infNndist) this
- rw [tendsto_pi_nhds] at lim⊢
+ rw [tendsto_pi_nhds] at lim ⊢
intro x
exact ((continuous_infNndist_pt s).tendsto (g x)).comp (lim x)
have h4s : g ⁻¹' s = (fun x => infNndist (g x) s) ⁻¹' {0} := by
@@ -150,7 +150,7 @@ theorem measurable_of_tendsto_metrizable_ae {μ : Measure α} [μ.IsComplete] {f
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),
+ ∃ (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)
The unported dependencies are
algebra.order.module
init.core
algebra.order.monoid.cancel.defs
algebra.abs
algebra.group_power.lemmas
init.data.list.basic
algebra.order.monoid.cancel.basic
init.data.list.default
topology.subset_properties
init.logic
The following 1 dependencies have changed in mathlib3 since they were ported, which may complicate porting this file