|
| 1 | +import Mathlib.Probability.HasLaw |
| 2 | +import Mathlib.Probability.IdentDistrib |
| 3 | +import Mathlib.Probability.ProductMeasure |
| 4 | +import Mathlib.Probability.Independence.InfinitePi |
| 5 | + |
| 6 | +open MeasureTheory ProbabilityTheory Filter |
| 7 | + |
| 8 | +/-- |
| 9 | +If the push-forward measure of `(X, Y)` assigns zero mass to the complement |
| 10 | +of the diagonal, then `X = Y` almost everywhere. |
| 11 | +-/ |
| 12 | +lemma ae_eq_of_map_supported_diagonal |
| 13 | + {Ω : Type*} {α : Type*} [MeasurableSpace Ω] [MeasurableSpace α] [MeasurableEq α] {μ : Measure Ω} |
| 14 | + {X Y : Ω → α} (hX : Measurable X) (hY : Measurable Y) |
| 15 | + (h : μ.map (fun ω => (X ω, Y ω)) (Set.diagonal α)ᶜ = 0) : |
| 16 | + X =ᵐ[μ] Y := by |
| 17 | + rw [Measure.map_apply (by measurability) (by measurability)] at h |
| 18 | + simpa |
| 19 | + |
| 20 | +lemma ae_eq_iff_map_meas_diag_comp_zero |
| 21 | + {Ω : Type*} {α : Type*} [MeasurableSpace Ω] [MeasurableSpace α] [MeasurableEq α] {μ : Measure Ω} |
| 22 | + {X Y : Ω → α} (hX : Measurable X) (hY : Measurable Y) : |
| 23 | + X =ᵐ[μ] Y ↔ (μ.map (fun ω => (X ω, Y ω)) (Set.diagonal α)ᶜ = 0) := by |
| 24 | + refine ⟨fun h ↦ ?_, fun h ↦ ?_⟩ |
| 25 | + · sorry |
| 26 | + · rw [Measure.map_apply (by measurability) (by measurability)] at h |
| 27 | + simpa |
| 28 | + |
| 29 | + |
| 30 | +abbrev V := ℝ |
| 31 | +instance : MeasurableSpace V := inferInstance |
| 32 | + |
| 33 | +variable (ρ : Measure V) [IsProbabilityMeasure ρ] |
| 34 | + |
| 35 | +noncomputable section |
| 36 | + |
| 37 | + |
| 38 | + |
| 39 | +-- our probability space, consisting of infinite copies of V |
| 40 | +def Ω := (ℕ → V) |
| 41 | + |
| 42 | +abbrev U₁ := (ℕ → V) |
| 43 | +abbrev U₂ := V |
| 44 | + |
| 45 | +-- product σ-algebra |
| 46 | +instance : MeasurableSpace Ω := .pi |
| 47 | +-- product measure |
| 48 | +noncomputable def θ : Measure Ω := MeasureTheory.Measure.infinitePi (fun _ ↦ ρ) |
| 49 | + |
| 50 | +instance : IsProbabilityMeasure (θ ρ) := by apply Measure.instIsProbabilityMeasureForallInfinitePi |
| 51 | + |
| 52 | +-- the random varialbe A, which is just the identity |
| 53 | +abbrev A : Ω → U₁ := id |
| 54 | +-- the random varialbe B n is the n-th component of A |
| 55 | +abbrev B (n : ℕ) (ω : Ω) : U₂ := ω n |
| 56 | + |
| 57 | +-- the sequence of measures μ n which will form the contradiction |
| 58 | +example n : Measurable (fun ω ↦ (A ω, B n ω)) := by measurability |
| 59 | + |
| 60 | +def μ n := (θ ρ).map (fun ω ↦ (A ω, B n ω)) |
| 61 | + |
| 62 | +lemma hasLaw_proj_A (n : ℕ) : HasLaw (fun ω ↦ A ω n) ρ (θ ρ) := by |
| 63 | + sorry |
| 64 | + |
| 65 | +-- theorem: μ n converges weakly to θ |
| 66 | + |
| 67 | +-- theorem: if the strong skorokhod theorem conclusion holds, then ρ is a dirac measure |
| 68 | +theorem measure_const_of_strong_skorokhod |
| 69 | + (Ω' : Type*) [MeasurableSpace Ω'] {P' : Measure Ω'} |
| 70 | + (A' : Ω' → U₁) |
| 71 | + (B' : ℕ → Ω' → U₂) |
| 72 | + (B'_lim : Ω' → U₂) |
| 73 | + (hmeas : Measurable A' ∧ ∀ n, Measurable (B' n) ∧ Measurable B'_lim) |
| 74 | + (h_law : ∀ n, IdentDistrib (fun ω ↦ (A ω, B n ω)) (fun ω' ↦ (A' ω', B' n ω')) (θ ρ) P') |
| 75 | + (h_conv : ∀ᵐ ω' ∂P', Tendsto (fun n ↦ B' n ω') atTop (nhds (B'_lim ω'))) : |
| 76 | + ∃ x : V, ρ = Measure.dirac x := by |
| 77 | + -- the n-th component of A' agrees a.s. with B' n |
| 78 | + have : ∀ n, ∀ᵐ ω' ∂P', A' ω' n = B' n ω' := by |
| 79 | + intro n |
| 80 | + rw [← Filter.EventuallyEq] |
| 81 | + rw [ae_eq_iff_map_meas_diag_comp_zero (by measurability) (by measurability)] |
| 82 | + have : IdentDistrib (fun ω ↦ (A ω n, B n ω)) (fun ω' ↦ (A' ω' n, B' n ω')) (θ ρ) P' := |
| 83 | + (h_law n).comp (u := fun (u, v) ↦ ((u n, v))) (by measurability) |
| 84 | + rw [← this.map_eq, ← ae_eq_iff_map_meas_diag_comp_zero (by measurability) (by measurability)] |
| 85 | + simp |
| 86 | + -- the joint law of B' n × B' m is ρ × ρ |
| 87 | + have : ∀ n m, n ≠ m → HasLaw (fun ω' ↦ (B' n ω', B' m ω')) (Measure.prod ρ ρ) P' := by |
| 88 | + intro n m hmn |
| 89 | + have : ∀ᵐ ω' ∂P', (B' n ω', B' m ω') = (A' ω' n, A' ω' m) := by |
| 90 | + filter_upwards [this n, this m] with ω' hω'1 hω'2 using by aesop |
| 91 | + rw [← Filter.EventuallyEq] at this |
| 92 | + apply HasLaw.congr _ this |
| 93 | + have : IdentDistrib (fun ω ↦ (A ω n, A ω m)) (fun ω' ↦ (A' ω' n, A' ω' m)) (θ ρ) P' := |
| 94 | + (h_law 0).comp (u := fun (u, v) ↦ (u n, u m)) (by measurability) |
| 95 | + apply this.hasLaw |
| 96 | + apply IndepFun.hasLaw_prod |
| 97 | + · apply hasLaw_proj_A |
| 98 | + · apply hasLaw_proj_A |
| 99 | + apply iIndepFun.indepFun (f := fun n ω ↦ A ω n) |
| 100 | + · apply ProbabilityTheory.iIndepFun_infinitePi (X := fun n v ↦ v) |
| 101 | + measurability |
| 102 | + exact hmn |
| 103 | + -- ρ × ρ is concentrated on the diagonal |
| 104 | + have : (Measure.prod ρ ρ) (Set.diagonal V) = 1 := by |
| 105 | + sorry |
| 106 | + -- thus ρ is a dirac measure |
| 107 | + sorry |
| 108 | + |
| 109 | +end |
0 commit comments