@@ -41,7 +41,7 @@ open scoped NNReal ENNReal MeasureTheory ProbabilityTheory
4141namespace MeasureTheory
4242
4343variable {Ω E : Type *} {m0 : MeasurableSpace Ω} {μ : Measure Ω} [NormedAddCommGroup E]
44- [NormedSpace ℝ E] [CompleteSpace E] {f : ℕ → Ω → E} {ℱ : Filtration ℕ m0}
44+ [NormedSpace ℝ E] [CompleteSpace E] {f g : ℕ → Ω → E} {ℱ : Filtration ℕ m0}
4545
4646/-- Any `ℕ`-indexed stochastic process can be written as the sum of a martingale and a predictable
4747process. This is the predictable process. See `martingalePart` for the martingale. -/
@@ -52,11 +52,70 @@ noncomputable def predictablePart {m0 : MeasurableSpace Ω} (f : ℕ → Ω →
5252theorem predictablePart_zero : predictablePart f ℱ μ 0 = 0 := by
5353 simp_rw [predictablePart, Finset.range_zero, Finset.sum_empty]
5454
55+ lemma predictablePart_add_one (n : ℕ) :
56+ predictablePart f ℱ μ (n + 1 ) =
57+ predictablePart f ℱ μ n + μ[f (n + 1 ) - f n | ℱ n] := by
58+ simp [predictablePart, Finset.sum_range_add]
59+
60+ lemma predictablePart_smul (c : ℝ) (n : ℕ) :
61+ predictablePart (c • f) ℱ μ n =ᵐ[μ] c • predictablePart f ℱ μ n := by
62+ simp only [predictablePart, Finset.smul_sum]
63+ refine eventuallyEq_sum fun i hi => ?_
64+ simp [← smul_sub, condExp_smul]
65+
66+ lemma predictablePart_add (hfint : ∀ n, Integrable (f n) μ)
67+ (hgint : ∀ n, Integrable (g n) μ) (n : ℕ) :
68+ predictablePart (f + g) ℱ μ n =ᵐ[μ] predictablePart f ℱ μ n + predictablePart g ℱ μ n := by
69+ simp only [predictablePart, ← Finset.sum_add_distrib]
70+ refine eventuallyEq_sum fun i hi => ?_
71+ calc
72+ _ =ᵐ[μ] μ[(f (i + 1 ) - f i) + (g (i + 1 ) - g i) | ℱ i] := by simp; abel_nf; rfl
73+ _ =ᵐ[μ] _ := by apply condExp_add ((hfint (i + 1 )).sub (hfint i)) ((hgint (i + 1 )).sub (hgint i))
74+
75+ lemma Martingale.predictablePart_eq_zero (hf : Martingale f ℱ μ) (n : ℕ) :
76+ predictablePart f ℱ μ n =ᵐ[μ] 0 := by
77+ rw [predictablePart, ← Finset.sum_const_zero (s := Finset.range n)]
78+ refine eventuallyEq_sum fun i hi => ?_
79+ calc
80+ _ =ᵐ[μ] μ[f (i + 1 ) | ℱ i] - μ[f i | ℱ i] := by
81+ simp [condExp_sub (hf.integrable (i + 1 )) (hf.integrable i) (ℱ i)]
82+ _ =ᵐ[μ] f i - f i := (hf.condExp_ae_eq (Nat.le_succ i)).sub (hf.condExp_ae_eq le_rfl)
83+ _ =ᵐ[μ] 0 := by simp
84+
85+ lemma Submartingale.monotone_predictablePart [PartialOrder E] [IsOrderedAddMonoid E]
86+ (hf : Submartingale f ℱ μ) :
87+ ∀ᵐ ω ∂μ, Monotone (predictablePart f ℱ μ · ω) := by
88+ have := ae_all_iff.2 <| fun n : ℕ ↦ hf.condExp_sub_nonneg n.le_succ
89+ filter_upwards [this] with ω h
90+ simp only [Pi.zero_apply, Nat.succ_eq_add_one, ← ge_iff_le] at h
91+ refine monotone_nat_of_le_succ fun n ↦ (?_ : _ ≥ _)
92+ grw [predictablePart_add_one, Pi.add_apply, h n, add_zero]
93+
94+ lemma Submartingale.predictablePart_nonneg [PartialOrder E] [IsOrderedAddMonoid E]
95+ (hf : Submartingale f ℱ μ) :
96+ ∀ᵐ ω ∂μ, ∀ n, 0 ≤ predictablePart f ℱ μ n ω := by
97+ filter_upwards [hf.monotone_predictablePart] with ω hω n
98+ simpa [predictablePart_zero] using hω (Nat.zero_le n)
99+
100+ lemma IsPredictable.predictablePart_eq [SecondCountableTopology E] [MeasurableSpace E]
101+ [BorelSpace E] [SigmaFiniteFiltration μ ℱ] (hf : IsPredictable ℱ f)
102+ (hfint : ∀ n, Integrable (f n) μ) (n : ℕ) :
103+ predictablePart f ℱ μ n =ᵐ[μ] f n - f 0 := by
104+ simp only [predictablePart, ← Finset.sum_range_sub]
105+ exact eventuallyEq_sum fun i hi => (condExp_of_stronglyMeasurable (ℱ.le i)
106+ ((hf.measurable_add_one i).stronglyMeasurable.sub (hf.adapted i))
107+ ((hfint (i + 1 )).sub (hfint i))).eventuallyEq
108+
55109theorem stronglyAdapted_predictablePart :
56110 StronglyAdapted ℱ fun n => predictablePart f ℱ μ (n + 1 ) :=
57111 fun _ => Finset.stronglyMeasurable_sum _ fun _ hin =>
58112 stronglyMeasurable_condExp.mono (ℱ.mono (Finset.mem_range_succ_iff.mp hin))
59113
114+ lemma isPredictable_predictablePart [SecondCountableTopology E] [MeasurableSpace E] [BorelSpace E] :
115+ IsPredictable ℱ (predictablePart f ℱ μ) :=
116+ isPredictable_of_measurable_add_one (by simp [measurable_const'])
117+ fun n ↦ (stronglyAdapted_predictablePart n).measurable
118+
60119theorem stronglyAdapted_predictablePart' : StronglyAdapted ℱ fun n => predictablePart f ℱ μ n :=
61120 fun _ => Finset.stronglyMeasurable_sum _ fun _ hin =>
62121 stronglyMeasurable_condExp.mono (ℱ.mono (Finset.mem_range_le hin))
@@ -66,6 +125,34 @@ process. This is the martingale. See `predictablePart` for the predictable proce
66125noncomputable def martingalePart {m0 : MeasurableSpace Ω} (f : ℕ → Ω → E) (ℱ : Filtration ℕ m0)
67126 (μ : Measure Ω) : ℕ → Ω → E := fun n => f n - predictablePart f ℱ μ n
68127
128+ @[simp]
129+ lemma martingalePart_zero : martingalePart f ℱ μ 0 = f 0 := by
130+ simp [martingalePart]
131+
132+ lemma martingalePart_smul (c : ℝ) (n : ℕ) :
133+ martingalePart (c • f) ℱ μ n =ᵐ[μ] c • martingalePart f ℱ μ n := by
134+ filter_upwards [predictablePart_smul (f := f) c n] with ω hω
135+ simpa [martingalePart, smul_sub]
136+
137+ lemma martingalePart_add (hfint : ∀ n, Integrable (f n) μ)
138+ (hgint : ∀ n, Integrable (g n) μ) (n : ℕ) :
139+ martingalePart (f + g) ℱ μ n =ᵐ[μ] martingalePart f ℱ μ n + martingalePart g ℱ μ n := by
140+ filter_upwards [predictablePart_add (ℱ := ℱ) hfint hgint n] with ω hω
141+ simp_all [martingalePart]
142+ abel
143+
144+ lemma Martingale.martingalePart_eq (hf : Martingale f ℱ μ) (n : ℕ) :
145+ martingalePart f ℱ μ n =ᵐ[μ] f n := by
146+ filter_upwards [hf.predictablePart_eq_zero n] with ω hω
147+ simp [martingalePart, hω]
148+
149+ lemma IsPredictable.martingalePart_eq [SecondCountableTopology E] [MeasurableSpace E]
150+ [BorelSpace E] [SigmaFiniteFiltration μ ℱ] (hf : IsPredictable ℱ f)
151+ (hfint : ∀ n, Integrable (f n) μ) (n : ℕ) :
152+ martingalePart f ℱ μ n =ᵐ[μ] f 0 := by
153+ filter_upwards [hf.predictablePart_eq (μ := μ) hfint n] with ω hω
154+ simp [martingalePart, hω, sub_eq_add_neg]
155+
69156theorem martingalePart_add_predictablePart (ℱ : Filtration ℕ m0) (μ : Measure Ω) (f : ℕ → Ω → E) :
70157 martingalePart f ℱ μ + predictablePart f ℱ μ = f :=
71158 sub_add_cancel _ _
0 commit comments