@@ -50,7 +50,7 @@ stopping time, stochastic process
5050
5151-/
5252
53- open Filter Order TopologicalSpace
53+ open Filter Order TopologicalSpace WithTop
5454
5555open scoped MeasureTheory NNReal ENNReal Topology
5656
@@ -99,7 +99,7 @@ theorem IsStoppingTime.measurableSet_lt_of_pred [PredOrder ι] (hτ : IsStopping
9999 cases τ ω with
100100 | top => simp
101101 | coe t =>
102- simp only [WithTop. coe_lt_coe, WithTop. coe_le_coe]
102+ simp only [coe_lt_coe, coe_le_coe]
103103 rw [le_pred_iff_of_not_isMin hi_min]
104104 rw [this]
105105 exact f.mono (pred_le i) _ (hτ.measurableSet_le <| pred i)
@@ -219,7 +219,7 @@ theorem IsStoppingTime.measurableSet_lt (hτ : IsStoppingTime f τ) (i : ι) :
219219 exact hτ.measurableSet_lt_of_isLUB i' hi'_lub
220220 · have h_lt_eq_preimage : {ω : Ω | τ ω < i} = τ ⁻¹' Set.Iio i := rfl
221221 have h_Iio_eq_Iic' : Set.Iio (i : WithTop ι) = Set.Iic (i' : WithTop ι) := by
222- rw [← WithTop. image_coe_Iio, ← WithTop. image_coe_Iic, h_Iio_eq_Iic]
222+ rw [← image_coe_Iio, ← image_coe_Iic, h_Iio_eq_Iic]
223223 rw [h_lt_eq_preimage, h_Iio_eq_Iic']
224224 exact f.mono (lub_Iio_le i hi'_lub) _ (hτ.measurableSet_le i')
225225
@@ -299,7 +299,7 @@ theorem add_const [AddGroup ι] [Preorder ι] [AddRightMono ι]
299299 simp only
300300 have h_eq : {ω | τ ω + i ≤ j} = {ω | τ ω ≤ j - i} := by
301301 ext ω
302- simp only [Set.mem_setOf_eq, WithTop. coe_sub]
302+ simp only [Set.mem_setOf_eq, coe_sub]
303303 cases τ ω with
304304 | top => simp
305305 | coe a => norm_cast; simp_rw [← le_sub_iff_add_le]
@@ -729,32 +729,80 @@ noncomputable
729729def stoppedProcess (u : ι → Ω → β) (τ : Ω → WithTop ι) : ι → Ω → β :=
730730 fun i ω => u (min (i : WithTop ι) (τ ω)).untopA ω
731731
732- theorem stoppedProcess_eq_stoppedValue {u : ι → Ω → β} {τ : Ω → WithTop ι} :
732+ variable {u : ι → Ω → β} {τ σ : Ω → WithTop ι}
733+
734+ theorem stoppedProcess_eq_stoppedValue :
733735 stoppedProcess u τ = fun i : ι => stoppedValue u fun ω => min i (τ ω) := rfl
734736
735- theorem stoppedValue_stoppedProcess {u : ι → Ω → β} {τ σ : Ω → WithTop ι} :
737+ theorem stoppedProcess_eq_stoppedValue_apply (i : ι) (ω : Ω) :
738+ stoppedProcess u τ i ω = stoppedValue u (fun ω ↦ min i (τ ω)) ω := rfl
739+
740+ theorem stoppedValue_stoppedProcess :
736741 stoppedValue (stoppedProcess u τ) σ =
737742 fun ω ↦ if σ ω ≠ ⊤ then stoppedValue u (fun ω ↦ min (σ ω) (τ ω)) ω
738743 else stoppedValue u (fun ω ↦ min (Classical.arbitrary ι) (τ ω)) ω := by
739744 ext ω
740745 simp only [stoppedValue, stoppedProcess, ne_eq, ite_not]
741746 cases σ ω <;> cases τ ω <;> simp
742747
743- theorem stoppedValue_stoppedProcess_ae_eq {u : ι → Ω → β} {τ σ : Ω → WithTop ι} {μ : Measure Ω}
748+ theorem stoppedValue_stoppedProcess_apply {ω : Ω} (hω : σ ω ≠ ⊤) :
749+ stoppedValue (stoppedProcess u τ) σ ω = stoppedValue u (fun ω ↦ min (σ ω) (τ ω)) ω := by
750+ simp [stoppedValue_stoppedProcess, hω]
751+
752+ theorem stoppedValue_stoppedProcess_ae_eq {μ : Measure Ω}
744753 (hσ : ∀ᵐ ω ∂μ, σ ω ≠ ⊤) :
745754 stoppedValue (stoppedProcess u τ) σ =ᵐ[μ] stoppedValue u (fun ω ↦ min (σ ω) (τ ω)) := by
746755 filter_upwards [hσ] with ω hσ using by simp [stoppedValue_stoppedProcess, hσ]
747756
748- theorem stoppedProcess_eq_of_le {u : ι → Ω → β} {τ : Ω → WithTop ι} { i : ι} {ω : Ω} (h : i ≤ τ ω) :
757+ theorem stoppedProcess_eq_of_le {i : ι} {ω : Ω} (h : i ≤ τ ω) :
749758 stoppedProcess u τ i ω = u i ω := by simp [stoppedProcess, min_eq_left h]
750759
751- theorem stoppedProcess_eq_of_ge {u : ι → Ω → β} {τ : Ω → WithTop ι} { i : ι} {ω : Ω} (h : τ ω ≤ i) :
760+ theorem stoppedProcess_eq_of_ge {i : ι} {ω : Ω} (h : τ ω ≤ i) :
752761 stoppedProcess u τ i ω = u (τ ω).untopA ω := by simp [stoppedProcess, min_eq_right h]
753762
763+ lemma stoppedProcess_indicator_comm [Zero β] {s : Set Ω} (i : ι) :
764+ stoppedProcess (fun i ↦ s.indicator (u i)) τ i = s.indicator (stoppedProcess u τ i) := by
765+ ext ω
766+ by_cases hω : ω ∈ s <;> simp [stoppedProcess, hω]
767+
768+ lemma stoppedProcess_indicator_comm' [Zero β] {s : Set Ω} :
769+ stoppedProcess (fun i ↦ s.indicator (u i)) τ = fun i ↦ s.indicator (stoppedProcess u τ i) := by
770+ ext i ω
771+ rw [stoppedProcess_indicator_comm]
772+
773+ @[simp]
774+ theorem stoppedProcess_stoppedProcess :
775+ stoppedProcess (stoppedProcess u τ) σ = stoppedProcess u (σ ⊓ τ) := by
776+ ext i ω
777+ simp_rw [stoppedProcess]
778+ by_cases hτ : τ ω = ⊤
779+ · simp [hτ]
780+ by_cases hσ : σ ω = ⊤
781+ · simp [hσ]
782+ by_cases hστ : σ ω ≤ τ ω
783+ · rw [min_eq_left, untopA_eq_untop coe_ne_top]
784+ · simp [hστ]
785+ · refine le_trans ?_ hστ
786+ simp [untopA_eq_untop]
787+ · nth_rewrite 2 [untopA_eq_untop]
788+ · rw [coe_untop, min_assoc]
789+ rfl
790+ · exact (lt_of_le_of_lt (min_le_right _ _) <| lt_top_iff_ne_top.2 hσ).ne
791+
792+ theorem stoppedProcess_stoppedProcess' :
793+ stoppedProcess (stoppedProcess u τ) σ = stoppedProcess u (fun ω ↦ min (σ ω) (τ ω)) := by
794+ rw [stoppedProcess_stoppedProcess]; rfl
795+
796+ theorem stoppedProcess_stoppedProcess_of_le_right (h : σ ≤ τ) :
797+ stoppedProcess (stoppedProcess u τ) σ = stoppedProcess u σ := by simp [h]
798+
799+ theorem stoppedProcess_stoppedProcess_of_le_left (h : τ ≤ σ) :
800+ stoppedProcess (stoppedProcess u τ) σ = stoppedProcess u τ := by simp [h]
801+
754802section ProgMeasurable
755803
756804variable [MeasurableSpace ι] [TopologicalSpace ι] [OrderTopology ι] [SecondCountableTopology ι]
757- [BorelSpace ι] [TopologicalSpace β] {u : ι → Ω → β} {τ : Ω → WithTop ι} { f : Filtration ι m}
805+ [BorelSpace ι] [TopologicalSpace β] {f : Filtration ι m}
758806
759807theorem progMeasurable_min_stopping_time [PseudoMetrizableSpace ι] (hτ : IsStoppingTime f τ) :
760808 ProgMeasurable f fun i ω ↦ (min (i : WithTop ι) (τ ω)).untopA := by
@@ -776,7 +824,7 @@ theorem progMeasurable_min_stopping_time [PseudoMetrizableSpace ι] (hτ : IsSto
776824 have h_set_eq : (fun x : s => τ (x : Set.Iic i × Ω).snd) ⁻¹' Set.Iic j =
777825 (fun x : s => (x : Set.Iic i × Ω).snd) ⁻¹' {ω | τ ω ≤ min i j} := by
778826 ext1 ω
779- simp only [Set.mem_preimage, Set.mem_Iic, WithTop. coe_min, le_inf_iff,
827+ simp only [Set.mem_preimage, Set.mem_Iic, coe_min, le_inf_iff,
780828 Set.preimage_setOf_eq, Set.mem_setOf_eq, iff_and_self]
781829 exact fun _ => ω.prop
782830 rw [h_set_eq]
@@ -823,7 +871,7 @@ theorem ProgMeasurable.stronglyMeasurable_stoppedProcess [PseudoMetrizableSpace
823871
824872theorem stronglyMeasurable_stoppedValue_of_le (h : ProgMeasurable f u) (hτ : IsStoppingTime f τ)
825873 {n : ι} (hτ_le : ∀ ω, τ ω ≤ n) : StronglyMeasurable[f n] (stoppedValue u τ) := by
826- have hτ_le' ω : (τ ω).untopA ≤ n := WithTop. untopA_le (hτ_le ω)
874+ have hτ_le' ω : (τ ω).untopA ≤ n := untopA_le (hτ_le ω)
827875 have : stoppedValue u τ =
828876 (fun p : Set.Iic n × Ω => u (↑p.fst) p.snd) ∘ fun ω => (⟨(τ ω).untopA, hτ_le' ω⟩, ω) := by
829877 ext1 ω; simp only [stoppedValue, Function.comp_apply]
@@ -867,7 +915,7 @@ theorem measurable_stoppedValue [PseudoMetrizableSpace β] [MeasurableSpace β]
867915 by_cases h : τ ω = ⊤
868916 · exact .inr h
869917 · lift τ ω to ι using h with t
870- simp only [WithTop. coe_le_coe, WithTop. coe_ne_top, or_false]
918+ simp only [coe_le_coe, coe_ne_top, or_false]
871919 rw [tendsto_atTop] at h_seq_tendsto
872920 exact (h_seq_tendsto t).exists
873921 rw [this]
@@ -877,7 +925,7 @@ theorem measurable_stoppedValue [PseudoMetrizableSpace β] [MeasurableSpace β]
877925 · have : stoppedValue u τ ⁻¹' t ∩ {ω | τ ω = ⊤}
878926 = (fun ω ↦ u (Classical.arbitrary ι) ω) ⁻¹' t ∩ {ω | τ ω = ⊤} := by
879927 ext ω
880- simp only [Set.mem_inter_iff, Set.mem_preimage, stoppedValue, WithTop. untopA,
928+ simp only [Set.mem_inter_iff, Set.mem_preimage, stoppedValue, untopA,
881929 Set.mem_setOf_eq, and_congr_left_iff]
882930 intro h
883931 simp [h]
@@ -942,13 +990,13 @@ theorem stoppedProcess_eq_of_mem_finset [LinearOrder ι] [AddCommMonoid E] {s :
942990 specialize hbdd ω h
943991 lift τ ω to ι using h_top with i hi
944992 rw [Finset.sum_eq_single_of_mem i]
945- · simp only [WithTop. untopD_coe]
993+ · simp only [untopD_coe]
946994 rw [Set.indicator_of_notMem, zero_add, Set.indicator_of_mem] <;> rw [Set.mem_setOf]
947995 · exact hi.symm
948996 · rw [← hi]
949997 exact not_le.2 h
950998 · rw [Finset.mem_filter]
951- simp only [Set.mem_image, Finset.mem_coe, WithTop. coe_eq_coe, exists_eq_right] at hbdd
999+ simp only [Set.mem_image, Finset.mem_coe, coe_eq_coe, exists_eq_right] at hbdd
9521000 exact ⟨hbdd, mod_cast h⟩
9531001 · intro b _ hneq
9541002 rw [Set.indicator_of_notMem]
@@ -1100,7 +1148,7 @@ theorem stoppedValue_sub_eq_sum [AddCommGroup β] (hle : τ ≤ π) (hπ : ∀
11001148 stoppedValue u π - stoppedValue u τ = fun ω =>
11011149 (∑ i ∈ Finset.Ico (τ ω).untopA (π ω).untopA, (u (i + 1 ) - u i)) ω := by
11021150 ext ω
1103- have h_le' : (τ ω).untopA ≤ (π ω).untopA := WithTop. untopA_mono (mod_cast hπ ω) (hle ω)
1151+ have h_le' : (τ ω).untopA ≤ (π ω).untopA := untopA_mono (mod_cast hπ ω) (hle ω)
11041152 rw [Finset.sum_Ico_eq_sub _ h_le', Finset.sum_range_sub, Finset.sum_range_sub]
11051153 simp [stoppedValue]
11061154
0 commit comments