Skip to content

Commit

Permalink
feat(probability/martingale): positive part of a submartingale is als…
Browse files Browse the repository at this point in the history
…o a submartingale (#14932)

Co-authored-by: RemyDegenne <Remydegenne@gmail.com>
  • Loading branch information
JasonKYi and RemyDegenne committed Jul 5, 2022
1 parent f10d0ab commit 071dc90
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 0 deletions.
10 changes: 10 additions & 0 deletions src/measure_theory/function/ae_eq_of_integral.lean
Expand Up @@ -282,6 +282,16 @@ begin
hf'_integrable hf'_zero).trans hf_ae.symm.le,
end

lemma ae_le_of_forall_set_integral_le {f g : α → ℝ} (hf : integrable f μ) (hg : integrable g μ)
(hf_le : ∀ s, measurable_set s → ∫ x in s, f x ∂μ ≤ ∫ x in s, g x ∂μ) :
f ≤ᵐ[μ] g :=
begin
rw ← eventually_sub_nonneg,
refine ae_nonneg_of_forall_set_integral_nonneg_of_finite_measure (hg.sub hf) (λ s hs, _),
rw [integral_sub' hg.integrable_on hf.integrable_on, sub_nonneg],
exact hf_le s hs
end

end real_finite_measure

lemma ae_nonneg_restrict_of_forall_set_integral_nonneg_inter {f : α → ℝ} {t : set α} (hμt : μ t ≠ ∞)
Expand Down
20 changes: 20 additions & 0 deletions src/order/filter/basic.lean
Expand Up @@ -1454,6 +1454,26 @@ lemma eventually_sub_nonneg [ordered_ring β] {l : filter α} {f g : α → β}
0 ≤ᶠ[l] g - f ↔ f ≤ᶠ[l] g :=
eventually_congr $ eventually_of_forall $ λ x, sub_nonneg

lemma eventually_le.sup [semilattice_sup β] {l : filter α} {f₁ f₂ g₁ g₂ : α → β}
(hf : f₁ ≤ᶠ[l] f₂) (hg : g₁ ≤ᶠ[l] g₂) :
f₁ ⊔ g₁ ≤ᶠ[l] f₂ ⊔ g₂ :=
by filter_upwards [hf, hg] with x hfx hgx using sup_le_sup hfx hgx

lemma eventually_le.sup_le [semilattice_sup β] {l : filter α} {f g h : α → β}
(hf : f ≤ᶠ[l] h) (hg : g ≤ᶠ[l] h) :
f ⊔ g ≤ᶠ[l] h :=
by filter_upwards [hf, hg] with x hfx hgx using sup_le hfx hgx

lemma eventually_le.le_sup_of_le_left [semilattice_sup β] {l : filter α} {f g h : α → β}
(hf : h ≤ᶠ[l] f) :
h ≤ᶠ[l] f ⊔ g :=
by filter_upwards [hf] with x hfx using le_sup_of_le_left hfx

lemma eventually_le.le_sup_of_le_right [semilattice_sup β] {l : filter α} {f g h : α → β}
(hg : h ≤ᶠ[l] g) :
h ≤ᶠ[l] f ⊔ g :=
by filter_upwards [hg] with x hgx using le_sup_of_le_right hgx

lemma join_le {f : filter (filter α)} {l : filter α} (h : ∀ᶠ m in f, m ≤ l) : join f ≤ l :=
λ s hs, h.mono $ λ m hm, hm hs

Expand Down
18 changes: 18 additions & 0 deletions src/probability/martingale.lean
Expand Up @@ -239,6 +239,24 @@ lemma sub_martingale [preorder E] [covariant_class E E (+) (≤)]
(hf : submartingale f ℱ μ) (hg : martingale g ℱ μ) : submartingale (f - g) ℱ μ :=
hf.sub_supermartingale hg.supermartingale

protected lemma sup {f g : ι → α → ℝ} (hf : submartingale f ℱ μ) (hg : submartingale g ℱ μ) :
submartingale (f ⊔ g) ℱ μ :=
begin
refine ⟨λ i, @strongly_measurable.sup _ _ _ _ (ℱ i) _ _ _ (hf.adapted i) (hg.adapted i),
λ i j hij, _, λ i, integrable.sup (hf.integrable _) (hg.integrable _)⟩,
refine eventually_le.sup_le _ _,
{ exact eventually_le.trans (hf.2.1 i j hij)
(condexp_mono (hf.integrable _) (integrable.sup (hf.integrable j) (hg.integrable j))
(eventually_of_forall (λ x, le_max_left _ _))) },
{ exact eventually_le.trans (hg.2.1 i j hij)
(condexp_mono (hg.integrable _) (integrable.sup (hf.integrable j) (hg.integrable j))
(eventually_of_forall (λ x, le_max_right _ _))) }
end

protected lemma pos {f : ι → α → ℝ} (hf : submartingale f ℱ μ) :
submartingale (f⁺) ℱ μ :=
hf.sup (martingale_zero _ _ _).submartingale

end submartingale

section submartingale
Expand Down

0 comments on commit 071dc90

Please sign in to comment.