@@ -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
786786time `τ` is the map `x ↦ u (τ ω) ω`. -/
787787noncomputable
788788def 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
793817variable [LinearOrder ι]
794818
@@ -800,14 +824,42 @@ noncomputable
800824def stoppedProcess (u : ι → Ω → β) (τ : Ω → WithTop ι) : ι → Ω → β :=
801825 fun i ω => u (min (i : WithTop ι) (τ ω)).untopA ω
802826
803- variable {u : ι → Ω → β} {τ σ : Ω → WithTop ι}
804-
805827theorem stoppedProcess_eq_stoppedValue :
806828 stoppedProcess u τ = fun i : ι => stoppedValue u fun ω => min i (τ ω) := rfl
807829
808830theorem 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+
811863theorem stoppedValue_stoppedProcess :
812864 stoppedValue (stoppedProcess u τ) σ =
813865 fun ω ↦ if σ ω ≠ ⊤ then stoppedValue u (fun ω ↦ min (σ ω) (τ ω)) ω
0 commit comments