@@ -3,10 +3,9 @@ Copyright (c) 2022 Sébastien Gouëzel. All rights reserved.
3
3
Released under Apache 2.0 license as described in the file LICENSE.
4
4
Authors: Sébastien Gouëzel, Felix Weilacher
5
5
-/
6
- import Mathlib.Data.Real.Cardinality
7
- import Mathlib.Topology.MetricSpace.Perfect
8
6
import Mathlib.MeasureTheory.Constructions.BorelSpace.Metric
9
7
import Mathlib.Topology.CountableSeparatingOn
8
+ import Mathlib.Topology.MetricSpace.Perfect
10
9
11
10
/-!
12
11
# The Borel sigma-algebra on Polish spaces
@@ -1005,58 +1004,3 @@ noncomputable def Equiv.measurableEquiv (e : α ≃ β) : α ≃ᵐ β := by
1005
1004
rwa [e.countable_iff] at h
1006
1005
1007
1006
end PolishSpace
1008
-
1009
- namespace MeasureTheory
1010
-
1011
- variable (α)
1012
- variable [MeasurableSpace α] [StandardBorelSpace α]
1013
-
1014
- theorem exists_nat_measurableEquiv_range_coe_fin_of_finite [Finite α] :
1015
- ∃ n : ℕ, Nonempty (α ≃ᵐ range ((↑) : Fin n → ℝ)) := by
1016
- obtain ⟨n, ⟨n_equiv⟩⟩ := Finite.exists_equiv_fin α
1017
- refine ⟨n, ⟨PolishSpace.Equiv.measurableEquiv (n_equiv.trans ?_)⟩⟩
1018
- exact Equiv.ofInjective _ (Nat.cast_injective.comp Fin.val_injective)
1019
-
1020
- theorem measurableEquiv_range_coe_nat_of_infinite_of_countable [Infinite α] [Countable α] :
1021
- Nonempty (α ≃ᵐ range ((↑) : ℕ → ℝ)) := by
1022
- have : PolishSpace (range ((↑) : ℕ → ℝ)) :=
1023
- Nat.closedEmbedding_coe_real.isClosedMap.isClosed_range.polishSpace
1024
- refine ⟨PolishSpace.Equiv.measurableEquiv ?_⟩
1025
- refine (nonempty_equiv_of_countable.some : α ≃ ℕ).trans ?_
1026
- exact Equiv.ofInjective ((↑) : ℕ → ℝ) Nat.cast_injective
1027
-
1028
- /-- Any standard Borel space is measurably equivalent to a subset of the reals. -/
1029
- theorem exists_subset_real_measurableEquiv : ∃ s : Set ℝ, MeasurableSet s ∧ Nonempty (α ≃ᵐ s) := by
1030
- by_cases hα : Countable α
1031
- · cases finite_or_infinite α
1032
- · obtain ⟨n, h_nonempty_equiv⟩ := exists_nat_measurableEquiv_range_coe_fin_of_finite α
1033
- refine ⟨_, ?_, h_nonempty_equiv⟩
1034
- letI : MeasurableSpace (Fin n) := borel (Fin n)
1035
- haveI : BorelSpace (Fin n) := ⟨rfl⟩
1036
- apply MeasurableEmbedding.measurableSet_range (mα := by infer_instance)
1037
- exact continuous_of_discreteTopology.measurableEmbedding
1038
- (Nat.cast_injective.comp Fin.val_injective)
1039
- · refine ⟨_, ?_, measurableEquiv_range_coe_nat_of_infinite_of_countable α⟩
1040
- apply MeasurableEmbedding.measurableSet_range (mα := by infer_instance)
1041
- exact continuous_of_discreteTopology.measurableEmbedding Nat.cast_injective
1042
- · refine
1043
- ⟨univ, MeasurableSet.univ,
1044
- ⟨(PolishSpace.measurableEquivOfNotCountable hα ?_ : α ≃ᵐ (univ : Set ℝ))⟩⟩
1045
- rw [countable_coe_iff]
1046
- exact Cardinal.not_countable_real
1047
-
1048
- /-- Any standard Borel space embeds measurably into the reals. -/
1049
- theorem exists_measurableEmbedding_real : ∃ f : α → ℝ, MeasurableEmbedding f := by
1050
- obtain ⟨s, hs, ⟨e⟩⟩ := exists_subset_real_measurableEquiv α
1051
- exact ⟨(↑) ∘ e, (MeasurableEmbedding.subtype_coe hs).comp e.measurableEmbedding⟩
1052
-
1053
- /-- A measurable embedding of a standard Borel space into `ℝ`. -/
1054
- noncomputable
1055
- def embeddingReal (Ω : Type *) [MeasurableSpace Ω] [StandardBorelSpace Ω] : Ω → ℝ :=
1056
- (exists_measurableEmbedding_real Ω).choose
1057
-
1058
- lemma measurableEmbedding_embeddingReal (Ω : Type *) [MeasurableSpace Ω] [StandardBorelSpace Ω] :
1059
- MeasurableEmbedding (embeddingReal Ω) :=
1060
- (exists_measurableEmbedding_real Ω).choose_spec
1061
-
1062
- end MeasureTheory
0 commit comments