Skip to content

Commit 81197a4

Browse files
committed
feat: generalize the index set and the codomain of leastGE (leanprover-community#34715)
1 parent cce210e commit 81197a4

1 file changed

Lines changed: 15 additions & 8 deletions

File tree

Mathlib/Probability/Martingale/BorelCantelli.lean

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -43,25 +43,32 @@ open scoped NNReal ENNReal MeasureTheory ProbabilityTheory Topology
4343

4444
namespace MeasureTheory
4545

46-
variable {Ω : Type*} {m0 : MeasurableSpace Ω} {μ : Measure Ω} {ℱ : Filtration ℕ m0} {f : ℕ → Ω → ℝ}
47-
46+
variable {ι Ω β : Type*} {m0 : MeasurableSpace Ω} {μ : Measure Ω}
4847
/-!
4948
### One-sided martingale bound
5049
-/
5150

5251
/-- `leastGE f r` is the stopping time corresponding to the first time `f ≥ r`. -/
53-
noncomputable def leastGE (f : ℕ → Ω → ℝ) (r : ℝ) : Ω → ℕ∞ :=
54-
hittingAfter f (Set.Ici r) 0
55-
56-
theorem StronglyAdapted.isStoppingTime_leastGE (r : ℝ) (hf : StronglyAdapted ℱ f) :
52+
noncomputable def leastGE [Preorder ι] [OrderBot ι] [InfSet ι] [Preorder β]
53+
(f : ι → Ω → β) (r : β) : Ω → WithTop ι :=
54+
hittingAfter f (Set.Ici r) ⊥
55+
56+
theorem StronglyAdapted.isStoppingTime_leastGE [ConditionallyCompleteLinearOrderBot ι]
57+
{ℱ : Filtration ι m0} [WellFoundedLT ι] [Countable ι] [TopologicalSpace β]
58+
[Preorder β] [ClosedIciTopology β] [TopologicalSpace.PseudoMetrizableSpace β]
59+
[MeasurableSpace β] [BorelSpace β]
60+
{f : ι → Ω → β} (r : β) (hf : StronglyAdapted ℱ f) :
5761
IsStoppingTime ℱ (leastGE f r) :=
5862
hf.adapted.isStoppingTime_hittingAfter measurableSet_Ici
5963

6064
/-- The stopped process of `f` above `r` is the process that is equal to `f` until `leastGE f r`
6165
(the first time `f` passes above `r`), and then is constant afterwards. -/
62-
noncomputable def stoppedAbove (f : ℕ → Ω → ℝ) (r : ℝ) : ℕ → Ω → ℝ :=
66+
noncomputable def stoppedAbove [LinearOrder ι] [OrderBot ι] [InfSet ι] [Preorder β]
67+
(f : ι → Ω → β) (r : β) : ι → Ω → β :=
6368
stoppedProcess f (leastGE f r)
6469

70+
variable {ℱ : Filtration ℕ m0} {f : ℕ → Ω → ℝ}
71+
6572
protected lemma Submartingale.stoppedAbove [IsFiniteMeasure μ] (hf : Submartingale f ℱ μ) (r : ℝ) :
6673
Submartingale (stoppedAbove f r) ℱ μ :=
6774
hf.stoppedProcess (hf.stronglyAdapted.isStoppingTime_leastGE r)
@@ -82,7 +89,7 @@ theorem stoppedAbove_le (hr : 0 ≤ r) (hf0 : f 0 = 0)
8289
obtain ⟨k, hk⟩ := Nat.exists_eq_add_one_of_ne_zero h_zero
8390
rw [hk, add_comm r, ← sub_le_iff_le_add]
8491
have := notMem_of_lt_hittingAfter (?_ : k < leastGE f r ω)
85-
· simp only [zero_le, Set.mem_Ici, not_le, forall_const] at this
92+
· simp only [bot_eq_zero, zero_le, Set.mem_Ici, not_le, forall_const] at this
8693
exact (sub_lt_sub_left this _).le.trans ((le_abs_self _).trans (hbddω _))
8794
· suffices (k : ℕ∞) < min (i : ℕ∞) (leastGE f r ω) from this.trans_le (min_le_right _ _)
8895
have h_top : min (i : ℕ∞) (leastGE f r ω) ≠ ⊤ :=

0 commit comments

Comments
 (0)