Samplinglib
Lean gate passed 2026-08-19T06:04:36.257124+00:00 · 77184245109a
production module

AutoSamplingTheory.TechnicalLemmas.StochasticProcesses.ElementaryItoProcess

13 named declarations scanned from AutoSamplingTheory/TechnicalLemmas/StochasticProcesses/ElementaryItoProcess.lean.

Imports
Imported by
Placeholder scan
0 declaration(s) flagged
Gate status
Compiled

Declarations

def AutoSamplingTheory.TechnicalLemmas.StochasticProcesses.ElementaryItoProcess.elementaryItoProcess Compiled Not mapped

- The elementary Ito integral accumulated up to `t` and stopped at `T`.

noncomputable def elementaryItoProcess
    (eta : ElementaryAdaptedProcess filtration n)
    (B : ℝ≥0 → Omega → ℝ) (T : ℝ≥0) (t : ℝ≥0) (omega : Omega) : ℝ :=
  elementaryItoIntegral eta B (min t T) omega

/-- An elementary Ito process starts at zero. -/
theorem AutoSamplingTheory.TechnicalLemmas.StochasticProcesses.ElementaryItoProcess.elementaryItoProcess_zero Compiled Not mapped

- An elementary Ito process starts at zero.

theorem elementaryItoProcess_zero
    (eta : ElementaryAdaptedProcess filtration n)
    (B : ℝ≥0 → Omega → ℝ) (T : ℝ≥0) :
    elementaryItoProcess eta B T 0 = 0 := by
  funext omega
  simp [elementaryItoProcess, elementaryItoIntegral]

/-- Every elementary Ito value is measurable with respect to the information
available at that time. -/
theorem AutoSamplingTheory.TechnicalLemmas.StochasticProcesses.ElementaryItoProcess.elementaryItoProcess_stronglyAdapted Compiled Not mapped

- Every elementary Ito value is measurable with respect to the information available at that time.

theorem elementaryItoProcess_stronglyAdapted
    (eta : ElementaryAdaptedProcess filtration n)
    (hB : IsBrownianMotionWithFiltration B filtration mu) (T : ℝ≥0) :
    StronglyAdapted filtration (elementaryItoProcess eta B T) := by
  intro t
  unfold elementaryItoProcess elementaryItoIntegral
  have hsum : StronglyMeasurable[filtration t]
      (∑ i : Fin n, fun omega => eta.coeff i omega *
        (B (min (eta.times i.succ) (min t T)) omega -
          B (min (eta.times i.castSucc) (min t T)) omega)) := by
    apply Finset.stronglyMeasurable_sum Finset.univ
    intro i _
    by_cases hait : eta.times i.castSucc ≤ t
    · have hleft : min (eta.times i.castSucc) (min t T) ≤ t :=
        (min_le_left _ _).trans hait
      have hright : min (eta.times i.succ) (min t T) ≤ t :=
        (min_le_right _ _).trans (min_le_left _ _)
      exact ((eta.coeff_stronglyMeasurable i).mono (filtration.mono hait)).mul
        (((hB.stronglyAdapted _).mono (filtration.mono hright)).sub
          ((hB.stronglyAdapted _).mono (filtration.mono hleft)))
    · have hta : t ≤ eta.times i.castSucc := le_of_not_ge hait
      have htb : t ≤ eta.times i.succ :=
        hta.trans (eta.times_strictMono Fin.castSucc_lt_succ).le
      have hminA : min (eta.times i.castSucc) (min t T) = min t T :=
        min_eq_right ((min_le_left t T).trans hta)
      have hminB : min (eta.times i.succ) (min t T) = min t T :=
        min_eq_right ((min_le_left t T).trans htb)
      simpa [hminA, hminB] using
        (stronglyMeasurable_const : StronglyMeasurable[filtration t] (fun _ : Omega => (0 : ℝ)))
  have heq :
      (fun omega => ∑ i, eta.coeff i omega *
        (B (min (eta.times i.succ) (min t T)) omega -
          B (min (eta.times i.castSucc) (min t T)) omega)) =
      ∑ i : Fin n, fun omega => eta.coeff i omega *
        (B (min (eta.times i.succ) (min t T)) omega -
          B (min (eta.times i.castSucc) (min t T)) omega) := by
    funext omega
    simp
  rw [heq]
  exact hsum

/-- Every elementary Ito value is integrable (in fact square integrable). -/
theorem AutoSamplingTheory.TechnicalLemmas.StochasticProcesses.ElementaryItoProcess.elementaryItoProcess_integrable Compiled Not mapped

- Every elementary Ito value is integrable (in fact square integrable).

theorem elementaryItoProcess_integrable
    (eta : ElementaryAdaptedProcess filtration n)
    (hB : IsBrownianMotionWithFiltration B filtration mu) (T t : ℝ≥0) :
    Integrable (elementaryItoProcess eta B T t) mu := by
  let _ : IsProbabilityMeasure mu := hB.isProbabilityMeasure
  exact (elementaryItoIntegral_memLp_two eta hB (min t T)).integrable one_le_two

/-! ## A reusable stopped weighted Brownian increment -/
def AutoSamplingTheory.TechnicalLemmas.StochasticProcesses.ElementaryItoProcess.stoppedWeightedIncrement Compiled Not mapped

## A reusable stopped weighted Brownian increment

private noncomputable def stoppedWeightedIncrement
    (Z : Omega → ℝ) (B : ℝ≥0 → Omega → ℝ)
    (a c t : ℝ≥0) (omega : Omega) : ℝ :=
  Z omega * (B (min t c) omega - B (min t a) omega)
theorem AutoSamplingTheory.TechnicalLemmas.StochasticProcesses.ElementaryItoProcess.stoppedWeightedIncrement_memLp_two Compiled Not mapped

No declaration docstring.

private theorem stoppedWeightedIncrement_memLp_two
    (hB : IsBrownianMotionWithFiltration B filtration mu)
    {Z : Omega → ℝ} (hZ : MemLp Z ∞ mu) (a c t : ℝ≥0) :
    MemLp (stoppedWeightedIncrement Z B a c t) 2 mu := by
  let _ : IsProbabilityMeasure mu := hB.isProbabilityMeasure
  have hpre := hB.isBrownian.toIsPreBrownianReal
  have hinc : MemLp (fun omega => B (min t c) omega - B (min t a) omega) 2 mu :=
    (hpre.isGaussianProcess.hasGaussianLaw_eval (min t c) |>.memLp_two).sub
      (hpre.isGaussianProcess.hasGaussianLaw_eval (min t a) |>.memLp_two)
  exact hinc.mul' hZ
theorem AutoSamplingTheory.TechnicalLemmas.StochasticProcesses.ElementaryItoProcess.stoppedWeightedIncrement_stronglyAdapted Compiled Not mapped

No declaration docstring.

private theorem stoppedWeightedIncrement_stronglyAdapted
    (hB : IsBrownianMotionWithFiltration B filtration mu)
    {Z : Omega → ℝ} {a c : ℝ≥0} (hac : a ≤ c)
    (hZ : StronglyMeasurable[filtration a] Z) :
    StronglyAdapted filtration (stoppedWeightedIncrement Z B a c) := by
  intro t
  by_cases hat : a ≤ t
  · exact (hZ.mono (filtration.mono hat)).mul
      (((hB.stronglyAdapted _).mono (filtration.mono (min_le_left _ _))).sub
        ((hB.stronglyAdapted _).mono (filtration.mono (min_le_left _ _))))
  · have hta : t ≤ a := le_of_not_ge hat
    have htc : t ≤ c := hta.trans hac
    have heq : stoppedWeightedIncrement Z B a c t = (fun _ : Omega => 0) := by
      funext omega
      simp [stoppedWeightedIncrement, min_eq_left hta, min_eq_left htc]
    rw [heq]
    exact stronglyMeasurable_const
theorem AutoSamplingTheory.TechnicalLemmas.StochasticProcesses.ElementaryItoProcess.stoppedWeightedIncrement_martingale Compiled Not mapped

No declaration docstring.

private theorem stoppedWeightedIncrement_martingale
    (hB : IsBrownianMotionWithFiltration B filtration mu)
    {Z : Omega → ℝ} {a c : ℝ≥0} (hac : a ≤ c)
    (hZmeas : StronglyMeasurable[filtration a] Z) (hZLp : MemLp Z ∞ mu) :
    Martingale (stoppedWeightedIncrement Z B a c) filtration mu := by
  let _ : IsProbabilityMeasure mu := hB.isProbabilityMeasure
  have hadapt := stoppedWeightedIncrement_stronglyAdapted hB hac hZmeas
  refine ⟨hadapt, ?_⟩
  intro s t hst
  have hInt (u : ℝ≥0) : Integrable (stoppedWeightedIncrement Z B a c u) mu :=
    (stoppedWeightedIncrement_memLp_two hB hZLp a c u).integrable one_le_two
  by_cases hta : t ≤ a
  · have hsa : s ≤ a := hst.trans hta
    have htc : t ≤ c := hta.trans hac
    have hsc : s ≤ c := hsa.trans hac
    have htEq : stoppedWeightedIncrement Z B a c t = 0 := by
      funext omega
      simp [stoppedWeightedIncrement, min_eq_left hta, min_eq_left htc]
    have hsEq : stoppedWeightedIncrement Z B a c s = 0 := by
      funext omega
      simp [stoppedWeightedIncrement, min_eq_left hsa, min_eq_left hsc]
    rw [htEq, hsEq]
    simp
  by_cases has : a ≤ s
  · by_cases hcs : c ≤ s
    · have hct : c ≤ t := hcs.trans hst
      have hat : a ≤ t := has.trans hst
      have heq : stoppedWeightedIncrement Z B a c t =
          stoppedWeightedIncrement Z B a c s := by
        funext omega
        simp [stoppedWeightedIncrement, min_eq_right hct, min_eq_right hcs,
          min_eq_right hat, min_eq_right has]
      rw [heq]
      rw [condExp_of_stronglyMeasurable (filtration.le s) (hadapt s) (hInt s)]
    · have hsc : s ≤ c := le_of_not_ge hcs
      have hat : a ≤ t := has.trans hst
      have hsd : s ≤ min t c := le_min hst hsc
      let future : Omega → ℝ := fun omega => B (min t c) omega - B s omega
      have hfutureInt : Integrable future mu :=
        (hB.isBrownian.integrable_eval (min t c)).sub
          (hB.isBrownian.integrable_eval s)
      have hZs : StronglyMeasurable[filtration s] Z :=
        hZmeas.mono (filtration.mono has)
      have hprodInt : Integrable (Z * future) mu := by
-- Source excerpt truncated; follow the exact source link.

Excerpt truncated; the exact source link is authoritative.

def AutoSamplingTheory.TechnicalLemmas.StochasticProcesses.ElementaryItoProcess.elementaryItoSummand Compiled Not mapped

- One grid-cell contribution to the elementary Ito process.

private noncomputable def elementaryItoSummand
    (eta : ElementaryAdaptedProcess filtration n)
    (B : ℝ≥0 → Omega → ℝ) (T : ℝ≥0) (i : Fin n)
    (t : ℝ≥0) (omega : Omega) : ℝ :=
  eta.coeff i omega *
    (B (min (eta.times i.succ) (min t T)) omega -
      B (min (eta.times i.castSucc) (min t T)) omega)
theorem AutoSamplingTheory.TechnicalLemmas.StochasticProcesses.ElementaryItoProcess.elementaryItoSummand_martingale Compiled Not mapped

No declaration docstring.

private theorem elementaryItoSummand_martingale
    (eta : ElementaryAdaptedProcess filtration n)
    (hB : IsBrownianMotionWithFiltration B filtration mu)
    (T : ℝ≥0) (i : Fin n) :
    Martingale (elementaryItoSummand eta B T i) filtration mu := by
  let _ : IsProbabilityMeasure mu := hB.isProbabilityMeasure
  let a := eta.times i.castSucc
  let b := eta.times i.succ
  have hab : a ≤ b := eta.times_strictMono Fin.castSucc_lt_succ |>.le
  by_cases hTa : T ≤ a
  · have hTb : T ≤ b := hTa.trans hab
    have heq : elementaryItoSummand eta B T i = 0 := by
      funext t omega
      have htA : min t T ≤ a := (min_le_right t T).trans hTa
      have htB : min t T ≤ b := (min_le_right t T).trans hTb
      simp [elementaryItoSummand, a, b, min_eq_right htA, min_eq_right htB]
    rw [heq]
    exact martingale_zero ℝ filtration mu
  · have haT : a ≤ T := le_of_not_ge hTa
    let c := min b T
    have hac : a ≤ c := le_min hab haT
    have hbase := stoppedWeightedIncrement_martingale hB hac
      (eta.coeff_stronglyMeasurable i) (coeff_memLp eta mu i ∞)
    have heq : elementaryItoSummand eta B T i =
        stoppedWeightedIncrement (eta.coeff i) B a c := by
      funext t omega
      have hminT : min t a ≤ T := (min_le_right t a).trans haT
      simp [elementaryItoSummand, stoppedWeightedIncrement, a, b, c,
        min_assoc, min_left_comm, min_comm, min_eq_right hminT]
    rw [heq]
    exact hbase

/-- The elementary Ito integral process is a genuine martingale, obtained as
a finite sum of stopped weighted Brownian-increment martingales. -/
theorem AutoSamplingTheory.TechnicalLemmas.StochasticProcesses.ElementaryItoProcess.elementaryItoProcess_martingale Compiled Not mapped

- The elementary Ito integral process is a genuine martingale, obtained as a finite sum of stopped weighted Brownian-increment martingales.

theorem elementaryItoProcess_martingale
    (eta : ElementaryAdaptedProcess filtration n)
    (hB : IsBrownianMotionWithFiltration B filtration mu) (T : ℝ≥0) :
    Martingale (elementaryItoProcess eta B T) filtration mu := by
  let _ : IsProbabilityMeasure mu := hB.isProbabilityMeasure
  have hsum : Martingale
      (∑ i : Fin n, elementaryItoSummand eta B T i) filtration mu := by
    classical
    induction (Finset.univ : Finset (Fin n)) using Finset.induction_on with
    | empty => simpa using (martingale_zero ℝ filtration mu)
    | @insert i s hi ih =>
        simpa [hi] using (elementaryItoSummand_martingale eta hB T i).add ih
  have heq : elementaryItoProcess eta B T =
      ∑ i : Fin n, elementaryItoSummand eta B T i := by
    funext t omega
    simp [elementaryItoProcess, elementaryItoIntegral, elementaryItoSummand]
  rw [heq]
  exact hsum

/-- At the stopping horizon, the process agrees definitionally with the
terminal elementary Ito integral. -/
theorem AutoSamplingTheory.TechnicalLemmas.StochasticProcesses.ElementaryItoProcess.elementaryItoProcess_terminal Compiled Not mapped

- At the stopping horizon, the process agrees definitionally with the terminal elementary Ito integral.

theorem elementaryItoProcess_terminal
    (eta : ElementaryAdaptedProcess filtration n)
    (B : ℝ≥0 → Omega → ℝ) (T : ℝ≥0) :
    elementaryItoProcess eta B T T = elementaryItoIntegral eta B T := by
  change elementaryItoIntegral eta B (min T T) = elementaryItoIntegral eta B T
  rw [min_self]

/-- Elementary Ito paths are continuous outside the Brownian null set. -/
theorem AutoSamplingTheory.TechnicalLemmas.StochasticProcesses.ElementaryItoProcess.elementaryItoProcess_continuous_ae Compiled Not mapped

- Elementary Ito paths are continuous outside the Brownian null set.

theorem elementaryItoProcess_continuous_ae
    (eta : ElementaryAdaptedProcess filtration n)
    (hB : IsBrownianMotionWithFiltration B filtration mu) (T : ℝ≥0) :
    ∀ᵐ omega ∂mu, Continuous (fun t => elementaryItoProcess eta B T t omega) := by
  filter_upwards [hB.isBrownian.cont] with omega hcont
  unfold elementaryItoProcess elementaryItoIntegral
  apply continuous_finsetSum
  intro i _
  exact continuous_const.mul
    ((hcont.comp (continuous_const.min (continuous_id.min continuous_const))).sub
      (hcont.comp (continuous_const.min (continuous_id.min continuous_const))))

end ElementaryItoProcess
end StochasticProcesses
end TechnicalLemmas
end AutoSamplingTheory