forked from leanprover-community/mathlib4
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathFiniteDimensionalLaws.lean
More file actions
106 lines (88 loc) · 5.11 KB
/
FiniteDimensionalLaws.lean
File metadata and controls
106 lines (88 loc) · 5.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
/-
Copyright (c) 2025 Rémy Degenne. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Rémy Degenne, Jonas Bayer
-/
module
public import Mathlib.MeasureTheory.Constructions.Projective
public import Mathlib.Probability.IdentDistrib
/-!
# Finite-dimensional distributions of a stochastic process
For a stochastic process `X : T → Ω → 𝓧` and a finite measure `P` on `Ω`, the law of the process is
`P.map (fun ω ↦ (X · ω))`, and its finite-dimensional distributions are
`P.map (fun ω ↦ I.restrict (X · ω))` for `I : Finset T`.
We show that two stochastic processes have the same laws if and only if they have the same
finite-dimensional distributions.
## Main statements
* `map_eq_iff_forall_finset_map_restrict_eq`: two processes have the same law if and only if
their finite-dimensional distributions are equal.
* `identDistrib_iff_forall_finset_identDistrib`: same statement, but stated in terms of
`IdentDistrib`.
* `map_restrict_eq_of_forall_ae_eq`: if two processes are modifications of each other, then
their finite-dimensional distributions are equal.
* `map_eq_of_forall_ae_eq`: if two processes are modifications of each other, then they have the
same law.
-/
public section
open MeasureTheory
namespace ProbabilityTheory
variable {T Ω : Type*} {𝓧 : T → Type*} {mΩ : MeasurableSpace Ω} {mα : ∀ t, MeasurableSpace (𝓧 t)}
{X Y : (t : T) → Ω → 𝓧 t} {P : Measure Ω}
/-- The finite-dimensional distributions of a stochastic process are a projective measure family. -/
lemma isProjectiveMeasureFamily_map_restrict (hX : ∀ t, AEMeasurable (X t) P) :
IsProjectiveMeasureFamily (fun I ↦ P.map (fun ω ↦ I.restrict (X · ω))) := by
intro I J hJI
rw [AEMeasurable.map_map_of_aemeasurable (Finset.measurable_restrict₂ _).aemeasurable]
· simp [Finset.restrict_def, Finset.restrict₂_def, Function.comp_def]
· exact aemeasurable_pi_lambda _ fun _ ↦ hX _
/-- The projective limit of the finite-dimensional distributions of a stochastic process is the law
of the process. -/
lemma isProjectiveLimit_map (hX : AEMeasurable (fun ω ↦ (X · ω)) P) :
IsProjectiveLimit (P.map (fun ω ↦ (X · ω))) (fun I ↦ P.map (fun ω ↦ I.restrict (X · ω))) := by
intro I
rw [AEMeasurable.map_map_of_aemeasurable (Finset.measurable_restrict _).aemeasurable hX,
Function.comp_def]
/-- Two stochastic processes have same law iff they have the same
finite-dimensional distributions. -/
lemma map_eq_iff_forall_finset_map_restrict_eq [IsFiniteMeasure P]
(hX : AEMeasurable (fun ω ↦ (X · ω)) P) (hY : AEMeasurable (fun ω ↦ (Y · ω)) P) :
P.map (fun ω ↦ (X · ω)) = P.map (fun ω ↦ (Y · ω))
↔ ∀ I : Finset T, P.map (fun ω ↦ I.restrict (X · ω)) = P.map (fun ω ↦ I.restrict (Y · ω)) := by
refine ⟨fun h I ↦ ?_, fun h ↦ ?_⟩
· have hX' : P.map (fun ω ↦ I.restrict (X · ω)) = (P.map (fun ω ↦ (X · ω))).map I.restrict := by
rw [AEMeasurable.map_map_of_aemeasurable (by fun_prop) hX, Function.comp_def]
have hY' : P.map (fun ω ↦ I.restrict (Y · ω)) = (P.map (fun ω ↦ (Y · ω))).map I.restrict := by
rw [AEMeasurable.map_map_of_aemeasurable (by fun_prop) hY, Function.comp_def]
rw [hX', hY', h]
· have hX' := isProjectiveLimit_map hX
simp_rw [h] at hX'
exact hX'.unique (isProjectiveLimit_map hY)
/-- Two stochastic processes are identically distributed iff they have the same
finite-dimensional distributions. -/
lemma identDistrib_iff_forall_finset_identDistrib [IsFiniteMeasure P]
(hX : AEMeasurable (fun ω ↦ (X · ω)) P) (hY : AEMeasurable (fun ω ↦ (Y · ω)) P) :
IdentDistrib (fun ω ↦ (X · ω)) (fun ω ↦ (Y · ω)) P P
↔ ∀ I : Finset T,
IdentDistrib (fun ω ↦ I.restrict (X · ω)) (fun ω ↦ I.restrict (Y · ω)) P P := by
refine ⟨fun h I ↦ ⟨?_, ?_, ?_⟩, fun h ↦ ⟨hX, hY, ?_⟩⟩
· exact (Finset.measurable_restrict _).comp_aemeasurable hX
· exact (Finset.measurable_restrict _).comp_aemeasurable hY
· exact (map_eq_iff_forall_finset_map_restrict_eq hX hY).mp h.map_eq I
· exact (map_eq_iff_forall_finset_map_restrict_eq hX hY).mpr (fun I ↦ (h I).map_eq)
/-- If two processes are modifications of each other, then they have the same finite-dimensional
distributions. -/
lemma map_restrict_eq_of_forall_ae_eq (h : ∀ t, X t =ᵐ[P] Y t) (I : Finset T) :
P.map (fun ω ↦ I.restrict (X · ω)) = P.map (fun ω ↦ I.restrict (Y · ω)) := by
have h' : ∀ᵐ ω ∂P, ∀ (i : I), X i ω = Y i ω := by
rw [MeasureTheory.ae_all_iff]
exact fun i ↦ h i
refine Measure.map_congr ?_
filter_upwards [h'] with ω h using funext h
/-- If two processes are modifications of each other, then they have the same distribution. -/
lemma map_eq_of_forall_ae_eq [IsFiniteMeasure P]
(hX : AEMeasurable (fun ω ↦ (X · ω)) P) (hY : AEMeasurable (fun ω ↦ (Y · ω)) P)
(h : ∀ t, X t =ᵐ[P] Y t) :
P.map (fun ω ↦ (X · ω)) = P.map (fun ω ↦ (Y · ω)) := by
rw [map_eq_iff_forall_finset_map_restrict_eq hX hY]
exact fun I ↦ map_restrict_eq_of_forall_ae_eq h I
end ProbabilityTheory