Skip to content

Commit 6a92c4d

Browse files
RemyDegenneReemMelamed
authored andcommitted
feat: API for stoppedValue and StoppedProcess (leanprover-community#37429)
Co-authored-by: Thomas Zhu Co-authored-by: Alessio Rondelli Co-authored-by: Remy Degenne <remydegenne@gmail.com>
1 parent 6c9edae commit 6a92c4d

1 file changed

Lines changed: 57 additions & 5 deletions

File tree

Mathlib/Probability/Process/Stopping.lean

Lines changed: 57 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -780,15 +780,39 @@ section LinearOrder
780780

781781
/-! ## Stopped value and stopped process -/
782782

783-
variable [Nonempty ι]
783+
variable [Nonempty ι] {u v : ι → Ω → β} {τ σ : Ω → WithTop ι}
784784

785785
/-- Given a map `u : ι → Ω → E`, its stopped value with respect to the stopping
786786
time `τ` is the map `x ↦ u (τ ω) ω`. -/
787787
noncomputable
788788
def stoppedValue (u : ι → Ω → β) (τ : Ω → WithTop ι) : Ω → β := fun ω => u (τ ω).untopA ω
789789

790-
theorem stoppedValue_const (u : ι → Ω → β) (i : ι) : (stoppedValue u fun _ => i) = u i :=
791-
rfl
790+
@[simp]
791+
theorem stoppedValue_const (u : ι → Ω → β) (i : ι) : (stoppedValue u fun _ => i) = u i := rfl
792+
793+
@[simp] lemma stoppedValue_comp {γ : Type*} (f : β → γ) :
794+
stoppedValue (fun t ω ↦ f (u t ω)) τ = fun ω ↦ f (stoppedValue u τ ω) := rfl
795+
796+
lemma stoppedValue_norm [SeminormedAddCommGroup β] :
797+
stoppedValue (fun t ω ↦ ‖u t ω‖) τ = fun ω ↦ ‖stoppedValue u τ ω‖ := rfl
798+
799+
@[to_additive (attr := simp)]
800+
lemma stoppedValue_inv [Inv β] : stoppedValue (u⁻¹) τ = (stoppedValue u τ)⁻¹ := rfl
801+
802+
@[to_additive (attr := simp)]
803+
lemma stoppedValue_mul [Mul β] :
804+
stoppedValue (u * v) τ = stoppedValue u τ * stoppedValue v τ := rfl
805+
806+
@[to_additive (attr := simp)]
807+
lemma stoppedValue_div [Div β] :
808+
stoppedValue (u / v) τ = stoppedValue u τ / stoppedValue v τ := rfl
809+
810+
@[simp] lemma stoppedValue_const_smul {𝕜 : Type*} [SMul 𝕜 β] (c : 𝕜) :
811+
stoppedValue (c • u) τ = c • stoppedValue u τ := rfl
812+
813+
@[simp] lemma stoppedValue_const_bot [Bot ι] :
814+
stoppedValue u (fun _ ↦ ⊥) = u ⊥ := by
815+
ext; simp [stoppedValue, ← WithTop.coe_bot]
792816

793817
variable [LinearOrder ι]
794818

@@ -800,14 +824,42 @@ noncomputable
800824
def stoppedProcess (u : ι → Ω → β) (τ : Ω → WithTop ι) : ι → Ω → β :=
801825
fun i ω => u (min (i : WithTop ι) (τ ω)).untopA ω
802826

803-
variable {u : ι → Ω → β} {τ σ : Ω → WithTop ι}
804-
805827
theorem stoppedProcess_eq_stoppedValue :
806828
stoppedProcess u τ = fun i : ι => stoppedValue u fun ω => min i (τ ω) := rfl
807829

808830
theorem stoppedProcess_eq_stoppedValue_apply (i : ι) (ω : Ω) :
809831
stoppedProcess u τ i ω = stoppedValue u (fun ω ↦ min i (τ ω)) ω := rfl
810832

833+
@[simp] lemma stoppedProcess_const {u₀ : Ω → β} :
834+
stoppedProcess (fun _ ↦ u₀) τ = fun _ ↦ u₀ := rfl
835+
836+
@[simp] lemma stoppedProcess_comp {γ : Type*} (f : β → γ) :
837+
stoppedProcess (fun t ω ↦ f (u t ω)) τ = fun i ω ↦ f (stoppedProcess u τ i ω) := rfl
838+
839+
lemma stoppedProcess_norm [SeminormedAddCommGroup β] :
840+
stoppedProcess (fun t ω ↦ ‖u t ω‖) τ = fun i ω ↦ ‖stoppedProcess u τ i ω‖ := rfl
841+
842+
@[to_additive (attr := simp)]
843+
lemma stoppedProcess_inv [Inv β] : stoppedProcess (u⁻¹) τ = (stoppedProcess u τ)⁻¹ := rfl
844+
845+
@[to_additive (attr := simp)]
846+
lemma stoppedProcess_mul [Mul β] :
847+
stoppedProcess (u * v) τ = stoppedProcess u τ * stoppedProcess v τ := rfl
848+
849+
@[to_additive (attr := simp)]
850+
lemma stoppedProcess_div [Div β] :
851+
stoppedProcess (u / v) τ = stoppedProcess u τ / stoppedProcess v τ := rfl
852+
853+
@[simp] lemma stoppedProcess_const_smul {𝕜 : Type*} [SMul 𝕜 β] (c : 𝕜) :
854+
stoppedProcess (c • u) τ = c • stoppedProcess u τ := rfl
855+
856+
@[simp] lemma stoppedProcess_const_bot [OrderBot ι] :
857+
stoppedProcess u (fun _ ↦ ⊥) = fun _ ↦ u ⊥ := by
858+
ext; simp [stoppedProcess, ← WithTop.coe_bot]
859+
860+
@[simp] lemma stoppedProcess_const_top : stoppedProcess u (fun _ ↦ ⊤) = u := by
861+
ext; simp [stoppedProcess]
862+
811863
theorem stoppedValue_stoppedProcess :
812864
stoppedValue (stoppedProcess u τ) σ =
813865
fun ω ↦ if σ ω ≠ ⊤ then stoppedValue u (fun ω ↦ min (σ ω) (τ ω)) ω

0 commit comments

Comments
 (0)