Ornstein–Uhlenbeck process
DefinitionCovariance of the Ornstein–Uhlenbeck process started at zero#✓fully proved
The covariance function of the Ornstein–Uhlenbeck process started at 0:
(σ² / (2θ)) (e^{-θ|t-s|} - e^{-θ(t+s)}) (Karatzas–Shreve 1991, Section 5.6). It is meant
for θ > 0 and times s, t ≥ 0; at θ = 0 the division by zero makes it 0.
noncomputable def ouCovariance (θ σ s t : ℝ) : ℝ :=
σ ^ 2 / (2 * θ) * (exp (-θ * |t - s|) - exp (-θ * (t + s)))
Used by 10
DefinitionCovariance of the stationary Ornstein–Uhlenbeck process#✓fully proved
The covariance function of the stationary Ornstein–Uhlenbeck process:
(σ² / (2θ)) e^{-θ|t-s|} (Uhlenbeck–Ornstein 1930). It is meant for θ > 0.
noncomputable def ouStationaryCovariance (θ σ s t : ℝ) : ℝ :=
σ ^ 2 / (2 * θ) * exp (-θ * |t - s|)
Used by 11
TheoremSymmetry of the Ornstein–Uhlenbeck covariance#✓fully proved
The OU covariance is symmetric.
theorem ouCovariance_comm (θ σ s t : ℝ) : ouCovariance θ σ s t = ouCovariance θ σ t s
noncomputable def ouCovariance (θ σ s t : ℝ) : ℝ :=
σ ^ 2 / (2 * θ) * (exp (-θ * |t - s|) - exp (-θ * (t + s)))
MathlibExt/Probability/OrnsteinUhlenbeck.lean:108
Uses 1
TheoremVariance of the Ornstein–Uhlenbeck process started at zero#✓fully proved
The variance of the OU process started at 0: (σ² / (2θ)) (1 - e^{-2θt}).
theorem ouCovariance_self (θ σ t : ℝ) :
ouCovariance θ σ t t = σ ^ 2 / (2 * θ) * (1 - exp (-2 * θ * t))
noncomputable def ouCovariance (θ σ s t : ℝ) : ℝ :=
σ ^ 2 / (2 * θ) * (exp (-θ * |t - s|) - exp (-θ * (t + s)))
MathlibExt/Probability/OrnsteinUhlenbeck.lean:108
Uses 1 · Used by 2
TheoremVariance of the stationary Ornstein–Uhlenbeck process#✓fully proved
The stationary variance σ² / (2θ).
theorem ouStationaryCovariance_self (θ σ t : ℝ) :
ouStationaryCovariance θ σ t t = σ ^ 2 / (2 * θ)
noncomputable def ouStationaryCovariance (θ σ s t : ℝ) : ℝ :=
σ ^ 2 / (2 * θ) * exp (-θ * |t - s|)
MathlibExt/Probability/OrnsteinUhlenbeck.lean:113
Uses 1 · Used by 2
TheoremOrnstein–Uhlenbeck covariance converges to the stationary one#✓fully proved
Shifting both times by h → ∞ turns ouCovariance into ouStationaryCovariance.
theorem tendsto_ouCovariance_add {θ : ℝ} (hθ : 0 < θ) (σ s t : ℝ) :
Tendsto (fun h : ℝ ↦ ouCovariance θ σ (s + h) (t + h)) atTop
(𝓝 (ouStationaryCovariance θ σ s t))
noncomputable def ouCovariance (θ σ s t : ℝ) : ℝ :=
σ ^ 2 / (2 * θ) * (exp (-θ * |t - s|) - exp (-θ * (t + s)))
MathlibExt/Probability/OrnsteinUhlenbeck.lean:108
noncomputable def ouStationaryCovariance (θ σ s t : ℝ) : ℝ :=
σ ^ 2 / (2 * θ) * exp (-θ * |t - s|)
MathlibExt/Probability/OrnsteinUhlenbeck.lean:113
Uses 2 · Used by 1
StructureOrnstein–Uhlenbeck process started at zero#✓fully proved
X is an Ornstein–Uhlenbeck process started at 0 with rate θ > 0 and noise
amplitude σ under P: a centered Gaussian process with covariance ouCovariance θ σ.
Only the finite-dimensional laws are fixed (no path regularity).
structure IsOrnsteinUhlenbeckFromZero (θ σ : ℝ) (X : ℝ≥0 → Ω → ℝ) (P : Measure Ω := by volume_tac) :
Prop where
rate_pos : 0 < θ
isGaussianProcess : IsGaussianProcess X P
integral_eval : ∀ t, P[X t] = 0
covariance_eval : ∀ s t, cov[X s, X t; P] = ouCovariance θ σ s t
Uses 1 · Used by 8
StructureStationary Ornstein–Uhlenbeck process#✓fully proved
X is a stationary Ornstein–Uhlenbeck process with rate θ > 0 and noise
amplitude σ under P: a centered Gaussian process with covariance
ouStationaryCovariance θ σ. Only the finite-dimensional laws are fixed.
structure IsStationaryOrnsteinUhlenbeck (θ σ : ℝ) (X : ℝ≥0 → Ω → ℝ)
(P : Measure Ω := by volume_tac) : Prop where
rate_pos : 0 < θ
isGaussianProcess : IsGaussianProcess X P
integral_eval : ∀ t, P[X t] = 0
covariance_eval : ∀ s t, cov[X s, X t; P] = ouStationaryCovariance θ σ s t
Uses 1 · Used by 8
DefinitionDoob's clock for the Ornstein–Uhlenbeck process from zero#✓fully proved
Doob's clock τ t = (e^{2θt} - 1)/(2θ) for the process started at 0. The value is
nonnegative for every real θ, so Real.toNNReal only changes its type.
noncomputable def ouClock (θ : ℝ) (t : ℝ≥0) : ℝ≥0 :=
Real.toNNReal ((exp (2 * θ * t) - 1) / (2 * θ))
Used by 2
DefinitionDoob's clock for the stationary Ornstein–Uhlenbeck process#✓fully proved
Doob's clock t ↦ e^{2θt}/(2θ) for the stationary process (positive for θ > 0).
noncomputable def ouStationaryClock (θ : ℝ) (t : ℝ≥0) : ℝ≥0 :=
Real.toNNReal (exp (2 * θ * t) / (2 * θ))
Used by 2
DefinitionDoob's time change of Brownian motion#✓fully proved
Doob's time change t ↦ σ e^{-θt} B(τ t) of a process B, with τ = ouClock θ.
noncomputable def ouOfBrownian (θ σ : ℝ) (B : ℝ≥0 → Ω → ℝ) (t : ℝ≥0) (ω : Ω) : ℝ :=
σ * exp (-θ * t) * B (ouClock θ t) ω
noncomputable def ouClock (θ : ℝ) (t : ℝ≥0) : ℝ≥0 :=
Real.toNNReal ((exp (2 * θ * t) - 1) / (2 * θ))
MathlibExt/Probability/OrnsteinUhlenbeck.lean:169
Uses 1 · Used by 2
DefinitionDoob's stationary time change of Brownian motion#✓fully proved
Doob's stationary time change t ↦ σ e^{-θt} B(e^{2θt}/(2θ)) of a process B.
noncomputable def ouStationaryOfBrownian (θ σ : ℝ) (B : ℝ≥0 → Ω → ℝ) (t : ℝ≥0) (ω : Ω) : ℝ :=
σ * exp (-θ * t) * B (ouStationaryClock θ t) ω
noncomputable def ouStationaryClock (θ : ℝ) (t : ℝ≥0) : ℝ≥0 :=
Real.toNNReal (exp (2 * θ * t) / (2 * θ))
MathlibExt/Probability/OrnsteinUhlenbeck.lean:173
Uses 1 · Used by 2
TheoremConstruction (Doob 1942)#✓fully proved
The time change σ e^{-θt} B((e^{2θt} - 1)/(2θ)) of a
pre-Brownian motion is an Ornstein–Uhlenbeck process started at 0.
theorem IsPreBrownianReal.isOrnsteinUhlenbeckFromZero_ouOfBrownian {B : ℝ≥0 → Ω → ℝ}
(hB : IsPreBrownianReal B P) {θ : ℝ} (hθ : 0 < θ) (σ : ℝ) :
IsOrnsteinUhlenbeckFromZero θ σ (ouOfBrownian θ σ B) P
structure IsOrnsteinUhlenbeckFromZero (θ σ : ℝ) (X : ℝ≥0 → Ω → ℝ) (P : Measure Ω := by volume_tac) :
Prop where
rate_pos : 0 < θ
isGaussianProcess : IsGaussianProcess X P
integral_eval : ∀ t, P[X t] = 0
covariance_eval : ∀ s t, cov[X s, X t; P] = ouCovariance θ σ s t
MathlibExt/Probability/OrnsteinUhlenbeck.lean:150
noncomputable def ouOfBrownian (θ σ : ℝ) (B : ℝ≥0 → Ω → ℝ) (t : ℝ≥0) (ω : Ω) : ℝ :=
σ * exp (-θ * t) * B (ouClock θ t) ω
MathlibExt/Probability/OrnsteinUhlenbeck.lean:177
Uses 4 · Used by 1
TheoremConstruction (Doob 1942)#✓fully proved
The time change σ e^{-θt} B(e^{2θt}/(2θ)) of a
pre-Brownian motion is a stationary Ornstein–Uhlenbeck process.
theorem IsPreBrownianReal.isStationaryOrnsteinUhlenbeck_ouStationaryOfBrownian
{B : ℝ≥0 → Ω → ℝ} (hB : IsPreBrownianReal B P) {θ : ℝ} (hθ : 0 < θ) (σ : ℝ) :
IsStationaryOrnsteinUhlenbeck θ σ (ouStationaryOfBrownian θ σ B) P
structure IsStationaryOrnsteinUhlenbeck (θ σ : ℝ) (X : ℝ≥0 → Ω → ℝ)
(P : Measure Ω := by volume_tac) : Prop where
rate_pos : 0 < θ
isGaussianProcess : IsGaussianProcess X P
integral_eval : ∀ t, P[X t] = 0
covariance_eval : ∀ s t, cov[X s, X t; P] = ouStationaryCovariance θ σ s t
MathlibExt/Probability/OrnsteinUhlenbeck.lean:160
noncomputable def ouStationaryOfBrownian (θ σ : ℝ) (B : ℝ≥0 → Ω → ℝ) (t : ℝ≥0) (ω : Ω) : ℝ :=
σ * exp (-θ * t) * B (ouStationaryClock θ t) ω
MathlibExt/Probability/OrnsteinUhlenbeck.lean:181
Uses 4 · Used by 1
TheoremExistence of a pre-Brownian motion on path space#✓fully proved
There is a probability measure on paths ℝ≥0 → ℝ under which the coordinate process is a
pre-Brownian motion (Kolmogorov extension of the Brownian finite-dimensional laws).
theorem exists_isPreBrownianReal_eval :
∃ μ : Measure (ℝ≥0 → ℝ), IsPreBrownianReal (fun t f ↦ f t) μ
Uses 1 · Used by 2
TheoremExistence of the Ornstein–Uhlenbeck process started at zero#✓fully proved
An Ornstein–Uhlenbeck process started at 0 exists for every θ > 0 and σ.
theorem exists_isOrnsteinUhlenbeckFromZero {θ : ℝ} (hθ : 0 < θ) (σ : ℝ) :
∃ μ : Measure (ℝ≥0 → ℝ), ∃ X : ℝ≥0 → (ℝ≥0 → ℝ) → ℝ, IsOrnsteinUhlenbeckFromZero θ σ X μ
structure IsOrnsteinUhlenbeckFromZero (θ σ : ℝ) (X : ℝ≥0 → Ω → ℝ) (P : Measure Ω := by volume_tac) :
Prop where
rate_pos : 0 < θ
isGaussianProcess : IsGaussianProcess X P
integral_eval : ∀ t, P[X t] = 0
covariance_eval : ∀ s t, cov[X s, X t; P] = ouCovariance θ σ s t
MathlibExt/Probability/OrnsteinUhlenbeck.lean:150
Uses 4
TheoremExistence of the stationary Ornstein–Uhlenbeck process#✓fully proved
A stationary Ornstein–Uhlenbeck process exists for every θ > 0 and σ.
theorem exists_isStationaryOrnsteinUhlenbeck {θ : ℝ} (hθ : 0 < θ) (σ : ℝ) :
∃ μ : Measure (ℝ≥0 → ℝ), ∃ X : ℝ≥0 → (ℝ≥0 → ℝ) → ℝ,
IsStationaryOrnsteinUhlenbeck θ σ X μ
structure IsStationaryOrnsteinUhlenbeck (θ σ : ℝ) (X : ℝ≥0 → Ω → ℝ)
(P : Measure Ω := by volume_tac) : Prop where
rate_pos : 0 < θ
isGaussianProcess : IsGaussianProcess X P
integral_eval : ∀ t, P[X t] = 0
covariance_eval : ∀ s t, cov[X s, X t; P] = ouStationaryCovariance θ σ s t
MathlibExt/Probability/OrnsteinUhlenbeck.lean:160
TheoremOne-time law of the Ornstein–Uhlenbeck process from zero#✓fully proved
The one-time law of the OU process started at 0:
X t ~ N(0, (σ² / (2θ)) (1 - e^{-2θt})).
theorem IsOrnsteinUhlenbeckFromZero.hasLaw_eval {θ σ : ℝ} {X : ℝ≥0 → Ω → ℝ}
(hX : IsOrnsteinUhlenbeckFromZero θ σ X P) (t : ℝ≥0) :
HasLaw (X t) (gaussianReal 0 (σ ^ 2 / (2 * θ) * (1 - exp (-2 * θ * t))).toNNReal) P
structure IsOrnsteinUhlenbeckFromZero (θ σ : ℝ) (X : ℝ≥0 → Ω → ℝ) (P : Measure Ω := by volume_tac) :
Prop where
rate_pos : 0 < θ
isGaussianProcess : IsGaussianProcess X P
integral_eval : ∀ t, P[X t] = 0
covariance_eval : ∀ s t, cov[X s, X t; P] = ouCovariance θ σ s t
MathlibExt/Probability/OrnsteinUhlenbeck.lean:150
Uses 3 · Used by 1
TheoremThe Ornstein–Uhlenbeck process from zero starts at zero#✓fully proved
The OU process of IsOrnsteinUhlenbeckFromZero starts at 0 almost surely.
theorem IsOrnsteinUhlenbeckFromZero.eval_zero_ae_eq_zero {θ σ : ℝ} {X : ℝ≥0 → Ω → ℝ}
(hX : IsOrnsteinUhlenbeckFromZero θ σ X P) : ∀ᵐ ω ∂P, X 0 ω = 0
structure IsOrnsteinUhlenbeckFromZero (θ σ : ℝ) (X : ℝ≥0 → Ω → ℝ) (P : Measure Ω := by volume_tac) :
Prop where
rate_pos : 0 < θ
isGaussianProcess : IsGaussianProcess X P
integral_eval : ∀ t, P[X t] = 0
covariance_eval : ∀ s t, cov[X s, X t; P] = ouCovariance θ σ s t
MathlibExt/Probability/OrnsteinUhlenbeck.lean:150
Uses 2
TheoremRelaxation to stationarity#✓fully proved
For the process started at 0,
cov(X (s + h), X (t + h)) → (σ² / (2θ)) e^{-θ|t-s|} as h → ∞.
theorem IsOrnsteinUhlenbeckFromZero.tendsto_covariance_add {θ σ : ℝ} {X : ℝ≥0 → Ω → ℝ}
(hX : IsOrnsteinUhlenbeckFromZero θ σ X P) (s t : ℝ≥0) :
Tendsto (fun h : ℝ≥0 ↦ cov[X (s + h), X (t + h); P]) atTop
(𝓝 (ouStationaryCovariance θ σ s t))
structure IsOrnsteinUhlenbeckFromZero (θ σ : ℝ) (X : ℝ≥0 → Ω → ℝ) (P : Measure Ω := by volume_tac) :
Prop where
rate_pos : 0 < θ
isGaussianProcess : IsGaussianProcess X P
integral_eval : ∀ t, P[X t] = 0
covariance_eval : ∀ s t, cov[X s, X t; P] = ouCovariance θ σ s t
MathlibExt/Probability/OrnsteinUhlenbeck.lean:150
noncomputable def ouStationaryCovariance (θ σ s t : ℝ) : ℝ :=
σ ^ 2 / (2 * θ) * exp (-θ * |t - s|)
MathlibExt/Probability/OrnsteinUhlenbeck.lean:113
TheoremStationary law#✓fully proved
Each X t of a stationary OU process is N(0, σ² / (2θ)).
theorem IsStationaryOrnsteinUhlenbeck.hasLaw_eval {θ σ : ℝ} {X : ℝ≥0 → Ω → ℝ}
(hX : IsStationaryOrnsteinUhlenbeck θ σ X P) (t : ℝ≥0) :
HasLaw (X t) (gaussianReal 0 (σ ^ 2 / (2 * θ)).toNNReal) P
structure IsStationaryOrnsteinUhlenbeck (θ σ : ℝ) (X : ℝ≥0 → Ω → ℝ)
(P : Measure Ω := by volume_tac) : Prop where
rate_pos : 0 < θ
isGaussianProcess : IsGaussianProcess X P
integral_eval : ∀ t, P[X t] = 0
covariance_eval : ∀ s t, cov[X s, X t; P] = ouStationaryCovariance θ σ s t
MathlibExt/Probability/OrnsteinUhlenbeck.lean:160
TheoremGaussian process laws are determined by mean and covariance#✓fully proved
The finite-dimensional laws of a real Gaussian process are determined by its mean and covariance functions: two Gaussian processes with the same means and covariances (possibly on different probability spaces) have the same finite-dimensional laws.
theorem IsGaussianProcess.map_restrict_eq_of_covariance_eq {T Ω' : Type*}
{mΩ' : MeasurableSpace Ω'} {Q : Measure Ω'} {X : T → Ω → ℝ} {Y : T → Ω' → ℝ}
(hX : IsGaussianProcess X P) (hY : IsGaussianProcess Y Q)
(hmean : ∀ t, P[X t] = Q[Y t]) (hcov : ∀ s t, cov[X s, X t; P] = cov[Y s, Y t; Q])
(I : Finset T) :
P.map (fun ω ↦ I.restrict (X · ω)) = Q.map (fun ω ↦ I.restrict (Y · ω))
Used by 1
TheoremTime shifts of a stationary Ornstein–Uhlenbeck process#✓fully proved
A time shift of a stationary OU process is a stationary OU process.
theorem IsStationaryOrnsteinUhlenbeck.shift {θ σ : ℝ} {X : ℝ≥0 → Ω → ℝ}
(hX : IsStationaryOrnsteinUhlenbeck θ σ X P) (h : ℝ≥0) :
IsStationaryOrnsteinUhlenbeck θ σ (fun t ↦ X (t + h)) P
structure IsStationaryOrnsteinUhlenbeck (θ σ : ℝ) (X : ℝ≥0 → Ω → ℝ)
(P : Measure Ω := by volume_tac) : Prop where
rate_pos : 0 < θ
isGaussianProcess : IsGaussianProcess X P
integral_eval : ∀ t, P[X t] = 0
covariance_eval : ∀ s t, cov[X s, X t; P] = ouStationaryCovariance θ σ s t
MathlibExt/Probability/OrnsteinUhlenbeck.lean:160
Uses 2 · Used by 1
TheoremStrict stationarity#✓fully proved
Every finite-dimensional law of a stationary OU process is invariant under time shifts.
theorem IsStationaryOrnsteinUhlenbeck.map_restrict_shift {θ σ : ℝ} {X : ℝ≥0 → Ω → ℝ}
(hX : IsStationaryOrnsteinUhlenbeck θ σ X P) (h : ℝ≥0) (I : Finset ℝ≥0) :
P.map (fun ω ↦ I.restrict (fun t ↦ X (t + h) ω)) = P.map (fun ω ↦ I.restrict (X · ω))
structure IsStationaryOrnsteinUhlenbeck (θ σ : ℝ) (X : ℝ≥0 → Ω → ℝ)
(P : Measure Ω := by volume_tac) : Prop where
rate_pos : 0 < θ
isGaussianProcess : IsGaussianProcess X P
integral_eval : ∀ t, P[X t] = 0
covariance_eval : ∀ s t, cov[X s, X t; P] = ouStationaryCovariance θ σ s t
MathlibExt/Probability/OrnsteinUhlenbeck.lean:160
TheoremConditional expectation of a Gaussian process given its past#✓fully proved
For a centered Gaussian process with cov(X u, X t) = c cov(X u, X s) for all u ≤ s,
the conditional expectation of X t given the natural filtration at s is c X s.
theorem IsGaussianProcess.condExp_natural_eq_of_covariance {X : ℝ≥0 → Ω → ℝ}
(hX : IsGaussianProcess X P) (hm : ∀ t, StronglyMeasurable (X t))
(hint : ∀ t, P[X t] = 0) {s t : ℝ≥0} (c : ℝ)
(hc : ∀ u ≤ s, cov[X u, X t; P] = c * cov[X u, X s; P]) :
P[X t | Filtration.natural X hm s] =ᵐ[P] fun ω ↦ c * X s ω
Used by 2
TheoremConditional law of a Gaussian process at one time given another#✓fully proved
For a centered Gaussian process with cov(X s, X t) = c Var(X s), the conditional law of
X t given X s = x is N(c x, Var(X t) - c² Var(X s)) for almost every x.
theorem IsGaussianProcess.condDistrib_eval_eq_of_covariance {T : Type*}
{X : T → Ω → ℝ} (hX : IsGaussianProcess X P) (hm : ∀ t, Measurable (X t))
(hint : ∀ t, P[X t] = 0) {s t : T} (c : ℝ) (hc : cov[X s, X t; P] = c * Var[X s; P]) :
haveI := hX.isProbabilityMeasure
∀ᵐ x ∂(P.map (X s)),
condDistrib (X t) (X s) P x =
gaussianReal (c * x) (Var[X t; P] - c ^ 2 * Var[X s; P]).toNNReal
Uses 2 · Used by 2
TheoremMean reversion#✓fully proved
For the OU process started at 0 and s ≤ t,
E[X t | F s] = e^{-θ(t-s)} X s, where F is the natural filtration of X.
theorem IsOrnsteinUhlenbeckFromZero.condExp_natural {θ σ : ℝ} {X : ℝ≥0 → Ω → ℝ}
(hX : IsOrnsteinUhlenbeckFromZero θ σ X P) (hm : ∀ t, StronglyMeasurable (X t)) {s t : ℝ≥0}
(hst : s ≤ t) :
P[X t | Filtration.natural X hm s] =ᵐ[P] fun ω ↦ exp (-θ * (t - s)) * X s ω
structure IsOrnsteinUhlenbeckFromZero (θ σ : ℝ) (X : ℝ≥0 → Ω → ℝ) (P : Measure Ω := by volume_tac) :
Prop where
rate_pos : 0 < θ
isGaussianProcess : IsGaussianProcess X P
integral_eval : ∀ t, P[X t] = 0
covariance_eval : ∀ s t, cov[X s, X t; P] = ouCovariance θ σ s t
MathlibExt/Probability/OrnsteinUhlenbeck.lean:150
TheoremMean reversion#✓fully proved
For the stationary OU process and s ≤ t,
E[X t | F s] = e^{-θ(t-s)} X s, where F is the natural filtration of X.
theorem IsStationaryOrnsteinUhlenbeck.condExp_natural {θ σ : ℝ} {X : ℝ≥0 → Ω → ℝ}
(hX : IsStationaryOrnsteinUhlenbeck θ σ X P) (hm : ∀ t, StronglyMeasurable (X t))
{s t : ℝ≥0} (hst : s ≤ t) :
P[X t | Filtration.natural X hm s] =ᵐ[P] fun ω ↦ exp (-θ * (t - s)) * X s ω
structure IsStationaryOrnsteinUhlenbeck (θ σ : ℝ) (X : ℝ≥0 → Ω → ℝ)
(P : Measure Ω := by volume_tac) : Prop where
rate_pos : 0 < θ
isGaussianProcess : IsGaussianProcess X P
integral_eval : ∀ t, P[X t] = 0
covariance_eval : ∀ s t, cov[X s, X t; P] = ouStationaryCovariance θ σ s t
MathlibExt/Probability/OrnsteinUhlenbeck.lean:160
TheoremTransition law#✓fully proved
For the OU process started at 0 and s ≤ t, the conditional law of
X t given X s = x is N(e^{-θ(t-s)} x, (σ² / (2θ)) (1 - e^{-2θ(t-s)})) for almost every
x.
theorem IsOrnsteinUhlenbeckFromZero.condDistrib_eval {θ σ : ℝ}
{X : ℝ≥0 → Ω → ℝ} (hX : IsOrnsteinUhlenbeckFromZero θ σ X P)
(hm : ∀ t, Measurable (X t)) {s t : ℝ≥0} (hst : s ≤ t) :
haveI := hX.isGaussianProcess.isProbabilityMeasure
∀ᵐ x ∂(P.map (X s)), condDistrib (X t) (X s) P x =
gaussianReal (exp (-θ * (t - s)) * x)
(σ ^ 2 / (2 * θ) * (1 - exp (-2 * θ * (t - s)))).toNNReal
structure IsOrnsteinUhlenbeckFromZero (θ σ : ℝ) (X : ℝ≥0 → Ω → ℝ) (P : Measure Ω := by volume_tac) :
Prop where
rate_pos : 0 < θ
isGaussianProcess : IsGaussianProcess X P
integral_eval : ∀ t, P[X t] = 0
covariance_eval : ∀ s t, cov[X s, X t; P] = ouCovariance θ σ s t
MathlibExt/Probability/OrnsteinUhlenbeck.lean:150
TheoremTransition law#✓fully proved
For the stationary OU process and s ≤ t, the conditional law of
X t given X s = x is N(e^{-θ(t-s)} x, (σ² / (2θ)) (1 - e^{-2θ(t-s)})) for almost every
x.
theorem IsStationaryOrnsteinUhlenbeck.condDistrib_eval {θ σ : ℝ}
{X : ℝ≥0 → Ω → ℝ} (hX : IsStationaryOrnsteinUhlenbeck θ σ X P)
(hm : ∀ t, Measurable (X t)) {s t : ℝ≥0} (hst : s ≤ t) :
haveI := hX.isGaussianProcess.isProbabilityMeasure
∀ᵐ x ∂(P.map (X s)), condDistrib (X t) (X s) P x =
gaussianReal (exp (-θ * (t - s)) * x)
(σ ^ 2 / (2 * θ) * (1 - exp (-2 * θ * (t - s)))).toNNReal
structure IsStationaryOrnsteinUhlenbeck (θ σ : ℝ) (X : ℝ≥0 → Ω → ℝ)
(P : Measure Ω := by volume_tac) : Prop where
rate_pos : 0 < θ
isGaussianProcess : IsGaussianProcess X P
integral_eval : ∀ t, P[X t] = 0
covariance_eval : ∀ s t, cov[X s, X t; P] = ouStationaryCovariance θ σ s t
MathlibExt/Probability/OrnsteinUhlenbeck.lean:160
DefinitionPathwise solution of the Langevin equation#✓fully proved
The explicit solution of the pathwise Langevin equation driven by a path w:
e^{-θt} x₀ + σ (w t - e^{-θt} w 0 - θ ∫_0^t e^{-θ(t-u)} w u du). This is
e^{-θt} x₀ + σ ∫_0^t e^{-θ(t-u)} dw(u) after integration by parts (the Itô-integral form for a
Brownian path is a wanted statement).
noncomputable def ouPathSolution (θ σ x₀ : ℝ) (w : ℝ → ℝ) (t : ℝ) : ℝ :=
exp (-θ * t) * x₀ +
σ * (w t - exp (-θ * t) * w 0 - θ * ∫ u in (0 : ℝ)..t, exp (-θ * (t - u)) * w u)
Used by 9
TheoremContinuity of the pathwise Langevin solution#✓fully proved
The pathwise solution is continuous when the driving path is.
theorem continuous_ouPathSolution (θ σ x₀ : ℝ) {w : ℝ → ℝ} (hw : Continuous w) :
Continuous (ouPathSolution θ σ x₀ w)
noncomputable def ouPathSolution (θ σ x₀ : ℝ) (w : ℝ → ℝ) (t : ℝ) : ℝ :=
exp (-θ * t) * x₀ +
σ * (w t - exp (-θ * t) * w 0 - θ * ∫ u in (0 : ℝ)..t, exp (-θ * (t - u)) * w u)
MathlibExt/Probability/OrnsteinUhlenbeck.lean:600
Uses 1 · Used by 2
TheoremPathwise Langevin equation#✓fully proved
For a continuous path w and every real t,
ouPathSolution θ σ x₀ w satisfies x t = x₀ - θ ∫_0^t x + σ (w t - w 0) (any real θ,
σ, x₀).
theorem ouPathSolution_integral_eq (θ σ x₀ : ℝ) {w : ℝ → ℝ} (hw : Continuous w) (t : ℝ) :
ouPathSolution θ σ x₀ w t =
x₀ - θ * (∫ u in (0 : ℝ)..t, ouPathSolution θ σ x₀ w u) + σ * (w t - w 0)
noncomputable def ouPathSolution (θ σ x₀ : ℝ) (w : ℝ → ℝ) (t : ℝ) : ℝ :=
exp (-θ * t) * x₀ +
σ * (w t - exp (-θ * t) * w 0 - θ * ∫ u in (0 : ℝ)..t, exp (-θ * (t - u)) * w u)
MathlibExt/Probability/OrnsteinUhlenbeck.lean:600
Uses 2 · Used by 1
TheoremUniqueness#✓fully proved
A continuous solution of x t = x₀ - θ ∫_0^t x + σ (w t - w 0) on
t ≥ 0 equals ouPathSolution θ σ x₀ w there.
theorem eq_ouPathSolution_of_integral_eq {θ σ x₀ : ℝ} {w x : ℝ → ℝ} (hw : Continuous w)
(hx : Continuous x)
(h : ∀ t, 0 ≤ t → x t = x₀ - θ * (∫ u in (0 : ℝ)..t, x u) + σ * (w t - w 0))
{t : ℝ} (ht : 0 ≤ t) : x t = ouPathSolution θ σ x₀ w t
noncomputable def ouPathSolution (θ σ x₀ : ℝ) (w : ℝ → ℝ) (t : ℝ) : ℝ :=
exp (-θ * t) * x₀ +
σ * (w t - exp (-θ * t) * w 0 - θ * ∫ u in (0 : ℝ)..t, exp (-θ * (t - u)) * w u)
MathlibExt/Probability/OrnsteinUhlenbeck.lean:600
Uses 3
TheoremElementary Itô integrals agree for modifications#✓fully proved
Elementary Itô integrals against two modifications of the same process agree almost surely.
theorem ElementaryIntegrand.itoIntegral_ae_eq_of_ae_eq {Ω : Type*} {mΩ : MeasurableSpace Ω}
{F : Filtration ℝ≥0 mΩ} {P : Measure Ω} (H : ElementaryIntegrand F) {B B' : ℝ≥0 → Ω → ℝ}
(h : ∀ t, B t =ᵐ[P] B' t) (t : ℝ≥0) : H.itoIntegral B t =ᵐ[P] H.itoIntegral B' t
structure ElementaryIntegrand (F : Filtration ℝ≥0 mΩ) where
/-- The number of partition intervals. -/
n : ℕ
/-- The partition times `time 0 ≤ time 1 ≤ ⋯ ≤ time n`. -/
time : Fin (n + 1) → ℝ≥0
/-- The partition times are nondecreasing. -/
monotone_time : Monotone time
/-- The coefficient on the interval `(time i, time (i + 1)]`. -/
coeff : Fin n → Ω → ℝ
/-- Each coefficient is known at the left end of its interval. -/
measurable_coeff : ∀ i, Measurable[F (time i.castSucc)] (coeff i)
/-- A uniform bound on the coefficients. -/
⋯
MathlibExt/Probability/ElementaryItoIntegral.lean:74
Uses 2 · Used by 1
TheoremAdjoining an independent Gaussian variable#✓fully proved
If X₀ is a real Gaussian random variable
independent of the real Gaussian process B, the process indexed by Option T that is X₀ at
none and B t at some t is a Gaussian process.
theorem IsGaussianProcess.option_elim {Ω : Type*} {mΩ : MeasurableSpace Ω} {P : Measure Ω}
{T : Type*} {X₀ : Ω → ℝ} {B : T → Ω → ℝ} (hX₀ : HasGaussianLaw X₀ P)
(hB : IsGaussianProcess B P) (hind : IndepFun X₀ (fun ω t ↦ B t ω) P) :
IsGaussianProcess (fun (o : Option T) ω ↦ o.elim (X₀ ω) (fun t ↦ B t ω)) P
Used by 1
TheoremCovariance of the Wiener integrals#✓fully proved
Covariance of the Wiener integrals I_t = ∫_0^t e^{θu} dB_u: for a pre-Brownian motion
B adapted to F with increments independent of the past and θ ≠ 0,
E[I_s I_t] = (e^{2θ (s ∧ t)} - 1) / (2θ), by the martingale property and the Itô isometry.
theorem integral_itoIntegralL2_exp_mul {Ω : Type*} {mΩ : MeasurableSpace Ω} {P : Measure Ω}
{F : Filtration ℝ≥0 mΩ} {B : ℝ≥0 → Ω → ℝ} (hB : IsPreBrownianReal B P) (hBF : Adapted F B)
(hInd : ∀ s t, s ≤ t → Indep (MeasurableSpace.comap (fun ω ↦ B t ω - B s ω) inferInstance)
(F s) P) {θ : ℝ} (hθ : θ ≠ 0) (s t : ℝ≥0) :
∫ ω, (itoIntegralL2 P F B (fun u _ ↦ exp (θ * u)) s : Ω → ℝ) ω *
(itoIntegralL2 P F B (fun u _ ↦ exp (θ * u)) t : Ω → ℝ) ω ∂P =
(exp (2 * θ * min (s : ℝ) t) - 1) / (2 * θ)
noncomputable def itoIntegralL2 (P : Measure Ω) (F : Filtration ℝ≥0 mΩ) (B H : ℝ≥0 → Ω → ℝ)
(t : ℝ≥0) : Lp ℝ 2 P :=
if h : IsItoApproximable P F H t then
limUnder atTop fun n ↦ toL2 P ((h.2.choose n).itoIntegral B t)
else 0
MathlibExt/Probability/ItoIntegral.lean:118
Uses 13 · Used by 1
TheoremThe pathwise Langevin solution driven by Brownian motion is Gaussian#✓fully proved
For a Brownian
motion B, θ ≠ 0, any real σ, and a start X₀ ~ N(0, v) independent of B, the process
X t = ouPathSolution θ σ X₀ B t (t ≥ 0) is a Gaussian process with E[X t] = 0 and
cov[X s, X t] = e^{-θ(s+t)} (v + σ² (e^{2θ (s ∧ t)} - 1) / (2θ)) (Karatzas–Shreve 1991,
Section 5.6).
theorem IsBrownianReal.isGaussianProcess_ouPathSolution {Ω : Type*} {mΩ : MeasurableSpace Ω}
{P : Measure Ω} {B : ℝ≥0 → Ω → ℝ} (hB : IsBrownianReal B P) {θ : ℝ} (hθ : θ ≠ 0) (σ : ℝ)
{X₀ : Ω → ℝ} {v : ℝ≥0} (hX₀ : HasLaw X₀ (gaussianReal 0 v) P)
(hind : IndepFun X₀ (fun ω t ↦ B t ω) P) :
IsGaussianProcess
(fun (t : ℝ≥0) ω ↦ ouPathSolution θ σ (X₀ ω) (fun u ↦ B (Real.toNNReal u) ω) t) P ∧
(∀ t : ℝ≥0, P[fun ω ↦ ouPathSolution θ σ (X₀ ω) (fun u ↦ B (Real.toNNReal u) ω) t] = 0) ∧
∀ s t : ℝ≥0,
cov[fun ω ↦ ouPathSolution θ σ (X₀ ω) (fun u ↦ B (Real.toNNReal u) ω) s,
fun ω ↦ ouPathSolution θ σ (X₀ ω) (fun u ↦ B (Real.toNNReal u) ω) t; P] =
exp (-θ * (s + t)) * (v + σ ^ 2 * ((exp (2 * θ * min (s : ℝ) t) - 1) / (2 * θ)))
noncomputable def ouPathSolution (θ σ x₀ : ℝ) (w : ℝ → ℝ) (t : ℝ) : ℝ :=
exp (-θ * t) * x₀ +
σ * (w t - exp (-θ * t) * w 0 - θ * ∫ u in (0 : ℝ)..t, exp (-θ * (t - u)) * w u)
MathlibExt/Probability/OrnsteinUhlenbeck.lean:600
Uses 18 · Used by 2
L² limits · Adjoining an independent Gaussian variable · Increments are independent of the past · Processes with measurable coordinates are adapted to their natural filtration · Covariance of the Wiener integrals · Itô integral as an element of \(L^2\) · Restriction to (0, t) preserves joint measurability · Continuity of the second moment pairing in L² · \(L^2\) convergence of left-point approximations of a continuous function · The Itô integral is well defined · Function as an element of \(L^2\)TheoremThe pathwise Langevin solution is an OU process#✓fully proved
Driven by a Brownian motion and started
at 0, ouPathSolution is an Ornstein–Uhlenbeck process started at 0 (Karatzas–Shreve 1991,
Section 5.6). No filtration and no measurability of the coordinates of B is assumed.
theorem IsBrownianReal.isOrnsteinUhlenbeckFromZero_ouPathSolution {Ω : Type*}
{mΩ : MeasurableSpace Ω} {P : Measure Ω} {B : ℝ≥0 → Ω → ℝ} (hB : IsBrownianReal B P)
{θ : ℝ} (hθ : 0 < θ) (σ : ℝ) :
IsOrnsteinUhlenbeckFromZero θ σ
(fun t ω ↦ ouPathSolution θ σ 0 (fun u ↦ B (Real.toNNReal u) ω) t) P
structure IsOrnsteinUhlenbeckFromZero (θ σ : ℝ) (X : ℝ≥0 → Ω → ℝ) (P : Measure Ω := by volume_tac) :
Prop where
rate_pos : 0 < θ
isGaussianProcess : IsGaussianProcess X P
integral_eval : ∀ t, P[X t] = 0
covariance_eval : ∀ s t, cov[X s, X t; P] = ouCovariance θ σ s t
MathlibExt/Probability/OrnsteinUhlenbeck.lean:150
noncomputable def ouPathSolution (θ σ x₀ : ℝ) (w : ℝ → ℝ) (t : ℝ) : ℝ :=
exp (-θ * t) * x₀ +
σ * (w t - exp (-θ * t) * w 0 - θ * ∫ u in (0 : ℝ)..t, exp (-θ * (t - u)) * w u)
MathlibExt/Probability/OrnsteinUhlenbeck.lean:600
TheoremStationary start#✓fully proved
Driven by a Brownian motion B and started from X₀ ~ N(0, σ²/(2θ))
independent of B, ouPathSolution is a stationary Ornstein–Uhlenbeck process
(Karatzas–Shreve 1991, Section 5.6).
theorem IsBrownianReal.isStationaryOrnsteinUhlenbeck_ouPathSolution {Ω : Type*}
{mΩ : MeasurableSpace Ω} {P : Measure Ω} {B : ℝ≥0 → Ω → ℝ} (hB : IsBrownianReal B P)
{θ : ℝ} (hθ : 0 < θ) (σ : ℝ) {X₀ : Ω → ℝ}
(hX₀ : HasLaw X₀ (gaussianReal 0 (σ ^ 2 / (2 * θ)).toNNReal) P)
(hind : IndepFun X₀ (fun ω t ↦ B t ω) P) :
IsStationaryOrnsteinUhlenbeck θ σ
(fun t ω ↦ ouPathSolution θ σ (X₀ ω) (fun u ↦ B (Real.toNNReal u) ω) t) P
structure IsStationaryOrnsteinUhlenbeck (θ σ : ℝ) (X : ℝ≥0 → Ω → ℝ)
(P : Measure Ω := by volume_tac) : Prop where
rate_pos : 0 < θ
isGaussianProcess : IsGaussianProcess X P
integral_eval : ∀ t, P[X t] = 0
covariance_eval : ∀ s t, cov[X s, X t; P] = ouStationaryCovariance θ σ s t
MathlibExt/Probability/OrnsteinUhlenbeck.lean:160
noncomputable def ouPathSolution (θ σ x₀ : ℝ) (w : ℝ → ℝ) (t : ℝ) : ℝ :=
exp (-θ * t) * x₀ +
σ * (w t - exp (-θ * t) * w 0 - θ * ∫ u in (0 : ℝ)..t, exp (-θ * (t - u)) * w u)
MathlibExt/Probability/OrnsteinUhlenbeck.lean:600
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.