File: Mathlib/Probability/Process/HittingTime.lean

full_name: MeasureTheory.hitting
code: /-- Hitting time: given a stochastic process `u` and a set `s`, `hitting u s n m` is the first time
`u` is in `s` after time `n` and before time `m` (if `u` does not hit `s` after time `n` and
before `m` then the hitting time is simply `m`).

The hitting time is a stopping time if the process is adapted and discrete. -/
noncomputable def hitting [Preorder ι] [InfSet ι] (u : ι → Ω → β) (s : Set β) (n m : ι) : Ω → ι 
goal: Ω → ι

full_name: MeasureTheory.hitting_def
code: theorem hitting_def [Preorder ι] [InfSet ι] (u : ι → Ω → β) (s : Set β) (n m : ι) :
    hitting u s n m =
    fun x => if ∃ j ∈ Set.Icc n m, u j x ∈ s then sInf (Set.Icc n m ∩ {i : ι | u i x ∈ s}) else m 
goal: MeasureTheory.hitting u s n m = fun x =>
  if ∃ j ∈ Set.Icc n m, u j x ∈ s then sInf (Set.Icc n m ∩ {i | u i x ∈ s}) else m

full_name: MeasureTheory.hitting_of_lt
code: /-- This lemma is strictly weaker than `hitting_of_le`. -/
theorem hitting_of_lt {m : ι} (h : m < n) : hitting u s n m ω = m 
goal: MeasureTheory.hitting u s n m ω = m

full_name: MeasureTheory.hitting_le
code: theorem hitting_le {m : ι} (ω : Ω) : hitting u s n m ω ≤ m 
goal: MeasureTheory.hitting u s n m ω ≤ m

full_name: MeasureTheory.not_mem_of_lt_hitting
code: theorem not_mem_of_lt_hitting {m k : ι} (hk₁ : k < hitting u s n m ω) (hk₂ : n ≤ k) :
    u k ω ∉ s 
goal: u k ω ∉ s

full_name: MeasureTheory.hitting_eq_end_iff
code: theorem hitting_eq_end_iff {m : ι} : hitting u s n m ω = m ↔
    (∃ j ∈ Set.Icc n m, u j ω ∈ s) → sInf (Set.Icc n m ∩ {i : ι | u i ω ∈ s}) = m 
goal: MeasureTheory.hitting u s n m ω = m ↔ (∃ j ∈ Set.Icc n m, u j ω ∈ s) → sInf (Set.Icc n m ∩ {i | u i ω ∈ s}) = m

full_name: MeasureTheory.hitting_of_le
code: theorem hitting_of_le {m : ι} (hmn : m ≤ n) : hitting u s n m ω = m 
goal: MeasureTheory.hitting u s n m ω = m

full_name: MeasureTheory.le_hitting
code: theorem le_hitting {m : ι} (hnm : n ≤ m) (ω : Ω) : n ≤ hitting u s n m ω 
goal: n ≤ MeasureTheory.hitting u s n m ω

full_name: MeasureTheory.le_hitting_of_exists
code: theorem le_hitting_of_exists {m : ι} (h_exists : ∃ j ∈ Set.Icc n m, u j ω ∈ s) :
    n ≤ hitting u s n m ω 
goal: n ≤ MeasureTheory.hitting u s n m ω

full_name: MeasureTheory.hitting_mem_Icc
code: theorem hitting_mem_Icc {m : ι} (hnm : n ≤ m) (ω : Ω) : hitting u s n m ω ∈ Set.Icc n m 
goal: MeasureTheory.hitting u s n m ω ∈ Set.Icc n m

full_name: MeasureTheory.hitting_mem_set
code: theorem hitting_mem_set [IsWellOrder ι (· < ·)] {m : ι} (h_exists : ∃ j ∈ Set.Icc n m, u j ω ∈ s) :
    u (hitting u s n m ω) ω ∈ s 
goal: u (MeasureTheory.hitting u s n m ω) ω ∈ s

full_name: MeasureTheory.hitting_mem_set_of_hitting_lt
code: theorem hitting_mem_set_of_hitting_lt [IsWellOrder ι (· < ·)] {m : ι} (hl : hitting u s n m ω < m) :
    u (hitting u s n m ω) ω ∈ s 
goal: u (MeasureTheory.hitting u s n m ω) ω ∈ s

full_name: MeasureTheory.hitting_le_of_mem
code: theorem hitting_le_of_mem {m : ι} (hin : n ≤ i) (him : i ≤ m) (his : u i ω ∈ s) :
    hitting u s n m ω ≤ i 
goal: MeasureTheory.hitting u s n m ω ≤ i

full_name: MeasureTheory.hitting_le_iff_of_exists
code: theorem hitting_le_iff_of_exists [IsWellOrder ι (· < ·)] {m : ι}
    (h_exists : ∃ j ∈ Set.Icc n m, u j ω ∈ s) :
    hitting u s n m ω ≤ i ↔ ∃ j ∈ Set.Icc n i, u j ω ∈ s 
goal: MeasureTheory.hitting u s n m ω ≤ i ↔ ∃ j ∈ Set.Icc n i, u j ω ∈ s

full_name: MeasureTheory.hitting_le_iff_of_lt
code: theorem hitting_le_iff_of_lt [IsWellOrder ι (· < ·)] {m : ι} (i : ι) (hi : i < m) :
    hitting u s n m ω ≤ i ↔ ∃ j ∈ Set.Icc n i, u j ω ∈ s 
goal: MeasureTheory.hitting u s n m ω ≤ i ↔ ∃ j ∈ Set.Icc n i, u j ω ∈ s

full_name: MeasureTheory.hitting_lt_iff
code: theorem hitting_lt_iff [IsWellOrder ι (· < ·)] {m : ι} (i : ι) (hi : i ≤ m) :
    hitting u s n m ω < i ↔ ∃ j ∈ Set.Ico n i, u j ω ∈ s 
goal: MeasureTheory.hitting u s n m ω < i ↔ ∃ j ∈ Set.Ico n i, u j ω ∈ s

full_name: MeasureTheory.hitting_eq_hitting_of_exists
code: theorem hitting_eq_hitting_of_exists {m₁ m₂ : ι} (h : m₁ ≤ m₂)
    (h' : ∃ j ∈ Set.Icc n m₁, u j ω ∈ s) : hitting u s n m₁ ω = hitting u s n m₂ ω 
goal: MeasureTheory.hitting u s n m₁ ω = MeasureTheory.hitting u s n m₂ ω

full_name: MeasureTheory.hitting_mono
code: theorem hitting_mono {m₁ m₂ : ι} (hm : m₁ ≤ m₂) : hitting u s n m₁ ω ≤ hitting u s n m₂ ω 
goal: MeasureTheory.hitting u s n m₁ ω ≤ MeasureTheory.hitting u s n m₂ ω

full_name: MeasureTheory.hitting_isStoppingTime
code: /-- A discrete hitting time is a stopping time. -/
theorem hitting_isStoppingTime [ConditionallyCompleteLinearOrder ι] [IsWellOrder ι (· < ·)]
    [Countable ι] [TopologicalSpace β] [PseudoMetrizableSpace β] [MeasurableSpace β] [BorelSpace β]
    {f : Filtration ι m} {u : ι → Ω → β} {s : Set β} {n n' : ι} (hu : Adapted f u)
    (hs : MeasurableSet s) : IsStoppingTime f (hitting u s n n') 
goal: MeasureTheory.IsStoppingTime f (MeasureTheory.hitting u s n n')

full_name: MeasureTheory.stoppedValue_hitting_mem
code: theorem stoppedValue_hitting_mem [ConditionallyCompleteLinearOrder ι] [IsWellOrder ι (· < ·)]
    {u : ι → Ω → β} {s : Set β} {n m : ι} {ω : Ω} (h : ∃ j ∈ Set.Icc n m, u j ω ∈ s) :
    stoppedValue u (hitting u s n m) ω ∈ s 
goal: MeasureTheory.stoppedValue u (MeasureTheory.hitting u s n m) ω ∈ s

full_name: MeasureTheory.isStoppingTime_hitting_isStoppingTime
code: /-- The hitting time of a discrete process with the starting time indexed by a stopping time
is a stopping time. -/
theorem isStoppingTime_hitting_isStoppingTime [ConditionallyCompleteLinearOrder ι]
    [IsWellOrder ι (· < ·)] [Countable ι] [TopologicalSpace ι] [OrderTopology ι]
    [FirstCountableTopology ι] [TopologicalSpace β] [PseudoMetrizableSpace β] [MeasurableSpace β]
    [BorelSpace β] {f : Filtration ι m} {u : ι → Ω → β} {τ : Ω → ι} (hτ : IsStoppingTime f τ)
    {N : ι} (hτbdd : ∀ x, τ x ≤ N) {s : Set β} (hs : MeasurableSet s) (hf : Adapted f u) :
    IsStoppingTime f fun x => hitting u s (τ x) N x 
goal: MeasureTheory.IsStoppingTime f fun x => MeasureTheory.hitting u s (τ x) N x

full_name: MeasureTheory.hitting_eq_sInf
code: theorem hitting_eq_sInf (ω : Ω) : hitting u s ⊥ ⊤ ω = sInf {i : ι | u i ω ∈ s} 
goal: MeasureTheory.hitting u s ⊥ ⊤ ω = sInf {i | u i ω ∈ s}

full_name: MeasureTheory.hitting_bot_le_iff
code: theorem hitting_bot_le_iff {i n : ι} {ω : Ω} (hx : ∃ j, j ≤ n ∧ u j ω ∈ s) :
    hitting u s ⊥ n ω ≤ i ↔ ∃ j ≤ i, u j ω ∈ s 
goal: MeasureTheory.hitting u s ⊥ n ω ≤ i ↔ ∃ j ≤ i, u j ω ∈ s