Rough Differential Equation Expansions #
This file records the algebraic part of rough differential equation expansions. The iterated vector fields are kept abstract, so the API applies to ordinary Taylor expansions, RDE Taylor expansions, and log-ODE vector fields.
Main definitions #
Word.wordsOfLength- all words of a fixed length over a finite alphabetWord.wordsUpToLength- all words up to a fixed lengthIteratedVectorFields- abstract iterated vector fields indexed by wordsIteratedVectorFields.applySeriesTruncated- finite series actionIteratedVectorFields.taylorIncrement- truncated RDE Taylor incrementIteratedVectorFields.logODEVectorField- log-signature-driven vector field
References #
- Terry Lyons, Michael Caruana, Thierry Levy, Differential Equations Driven by Rough Paths
- Peter Friz, Nicolas Victoir, Multidimensional Stochastic Processes as Rough Paths
- Martin Hairer, Kelly, Geometric versus non-geometric rough paths
Branched (forest-indexed) analogues live downstream in LeanBSeries.
List form of all words of a fixed length over a finite alphabet.
Equations
- RoughPaths.Word.wordsOfLengthList α 0 = [[]]
- RoughPaths.Word.wordsOfLengthList α n.succ = List.flatMap (fun (a : α) => List.map (fun (word : List α) => a :: word) (RoughPaths.Word.wordsOfLengthList α n)) Finset.univ.toList
Instances For
All words of a fixed length over a finite alphabet.
Equations
Instances For
@[simp]
theorem
RoughPaths.Word.mem_wordsOfLength_iff
{α : Type u}
[Fintype α]
[DecidableEq α]
{word : List α}
{n : ℕ}
:
noncomputable def
RoughPaths.Word.wordsUpToLength
(α : Type u)
[Fintype α]
[DecidableEq α]
(n : ℕ)
:
All words whose length is at most n.
Equations
- RoughPaths.Word.wordsUpToLength α n = (Finset.range (n + 1)).biUnion fun (k : ℕ) => RoughPaths.Word.wordsOfLength α k
Instances For
@[simp]
theorem
RoughPaths.Word.mem_wordsUpToLength_iff
{α : Type u}
[Fintype α]
[DecidableEq α]
{word : List α}
{n : ℕ}
:
@[simp]
theorem
RoughPaths.IteratedVectorFields.ext
{α : Type u}
{E : Type z}
{V W : IteratedVectorFields α E}
(h : ∀ (word : List α) (y : E), V.eval word y = W.eval word y)
:
@[simp]
theorem
RoughPaths.IteratedVectorFields.eval_empty_apply
{α : Type u}
{E : Type z}
(V : IteratedVectorFields α E)
(y : E)
:
def
RoughPaths.IteratedVectorFields.comapMapLetters
{α : Type u}
{β : Type v}
{E : Type z}
(f : α → β)
(V : IteratedVectorFields β E)
:
Pull iterated vector fields back along a map of alphabets.
Equations
Instances For
@[simp]
theorem
RoughPaths.IteratedVectorFields.comapMapLetters_eval
{α : Type u}
{β : Type v}
{E : Type z}
(f : α → β)
(V : IteratedVectorFields β E)
(word : List α)
(y : E)
:
@[simp]
theorem
RoughPaths.IteratedVectorFields.comapMapLetters_id
{α : Type u}
{E : Type z}
(V : IteratedVectorFields α E)
:
theorem
RoughPaths.IteratedVectorFields.comapMapLetters_comp
{α : Type u}
{β : Type v}
{E : Type z}
{γ : Type u}
(f : α → β)
(g : β → γ)
(V : IteratedVectorFields γ E)
:
noncomputable def
RoughPaths.IteratedVectorFields.applySeriesTruncated
{α : Type u}
{R : Type w}
{E : Type z}
[Fintype α]
[DecidableEq α]
[Semiring R]
[AddCommMonoid E]
[Module R E]
(V : IteratedVectorFields α E)
(a : List α → R)
(n : ℕ)
(y : E)
:
E
Apply a word-indexed series through degree n to iterated vector fields.
Equations
- V.applySeriesTruncated a n y = ∑ word ∈ RoughPaths.Word.wordsUpToLength α n, RoughPaths.Word.coeff a word • V.eval word y
Instances For
theorem
RoughPaths.IteratedVectorFields.applySeriesTruncated_congr
{α : Type u}
{R : Type w}
{E : Type z}
[Fintype α]
[DecidableEq α]
[Semiring R]
[AddCommMonoid E]
[Module R E]
(V : IteratedVectorFields α E)
{a b : List α → R}
{n : ℕ}
(h : Word.AgreeUpToDegree a b n)
(y : E)
:
@[simp]
theorem
RoughPaths.IteratedVectorFields.applySeriesTruncated_zero_series
{α : Type u}
{R : Type w}
{E : Type z}
[Fintype α]
[DecidableEq α]
[Semiring R]
[AddCommMonoid E]
[Module R E]
(V : IteratedVectorFields α E)
(n : ℕ)
(y : E)
:
@[simp]
theorem
RoughPaths.IteratedVectorFields.applySeriesTruncated_unit
{α : Type u}
{R : Type w}
{E : Type z}
[Fintype α]
[DecidableEq α]
[Semiring R]
[AddCommMonoid E]
[Module R E]
(V : IteratedVectorFields α E)
(n : ℕ)
(y : E)
:
noncomputable def
RoughPaths.IteratedVectorFields.taylorIncrement
{α : Type u}
{R : Type w}
{E : Type z}
{T : Type y}
[Fintype α]
[DecidableEq α]
[Semiring R]
[AddCommMonoid E]
[Module R E]
(V : IteratedVectorFields α E)
(X : AlgebraicRoughPath T α R)
(n : ℕ)
(s t : T)
(y : E)
:
E
The truncated Taylor increment driven by a rough path signature.
Equations
- V.taylorIncrement X n s t y = V.applySeriesTruncated (X.increment s t) n y
Instances For
@[simp]
theorem
RoughPaths.IteratedVectorFields.taylorIncrement_self
{α : Type u}
{R : Type w}
{E : Type z}
{T : Type y}
[Fintype α]
[DecidableEq α]
[Semiring R]
[AddCommMonoid E]
[Module R E]
(V : IteratedVectorFields α E)
(X : AlgebraicRoughPath T α R)
(n : ℕ)
(t : T)
(y : E)
:
@[simp]
theorem
RoughPaths.IteratedVectorFields.taylorIncrement_unit
{α : Type u}
{R : Type w}
{E : Type z}
{T : Type y}
[Fintype α]
[DecidableEq α]
[Semiring R]
[AddCommMonoid E]
[Module R E]
(V : IteratedVectorFields α E)
(n : ℕ)
(s t : T)
(y : E)
:
@[simp]
theorem
RoughPaths.IteratedVectorFields.taylorIncrement_comapTime
{α : Type u}
{R : Type w}
{E : Type z}
{T : Type y}
[Fintype α]
[DecidableEq α]
[Semiring R]
[AddCommMonoid E]
[Module R E]
{S : Type x}
(f : S → T)
(V : IteratedVectorFields α E)
(X : AlgebraicRoughPath T α R)
(n : ℕ)
(s t : S)
(y : E)
:
theorem
RoughPaths.IteratedVectorFields.taylorIncrement_eq_of_agreeUpToDegree
{α : Type u}
{R : Type w}
{E : Type z}
{T : Type y}
[Fintype α]
[DecidableEq α]
[Semiring R]
[AddCommMonoid E]
[Module R E]
(V : IteratedVectorFields α E)
{X Y : AlgebraicRoughPath T α R}
{n : ℕ}
(h : X.AgreeUpToDegree Y n)
(s t : T)
(y : E)
:
noncomputable def
RoughPaths.IteratedVectorFields.logODEVectorField
{α : Type u}
{R : Type w}
{E : Type z}
{T : Type y}
[Fintype α]
[DecidableEq α]
[Field R]
[AddCommMonoid E]
[Module R E]
(V : IteratedVectorFields α E)
(X : AlgebraicRoughPath T α R)
(n : ℕ)
(s t : T)
:
E → E
The log-signature vector field used by the log-ODE method.
Equations
- V.logODEVectorField X n s t y = V.applySeriesTruncated (X.logIncrementTruncated s t n) n y
Instances For
@[simp]
theorem
RoughPaths.IteratedVectorFields.logODEVectorField_apply
{α : Type u}
{R : Type w}
{E : Type z}
{T : Type y}
[Fintype α]
[DecidableEq α]
[Field R]
[AddCommMonoid E]
[Module R E]
(V : IteratedVectorFields α E)
(X : AlgebraicRoughPath T α R)
(n : ℕ)
(s t : T)
(y : E)
:
@[simp]
theorem
RoughPaths.IteratedVectorFields.logODEVectorField_self
{α : Type u}
{R : Type w}
{E : Type z}
{T : Type y}
[Fintype α]
[DecidableEq α]
[Field R]
[AddCommMonoid E]
[Module R E]
(V : IteratedVectorFields α E)
(X : AlgebraicRoughPath T α R)
(n : ℕ)
(t : T)
(y : E)
:
@[simp]
theorem
RoughPaths.IteratedVectorFields.logODEVectorField_zero
{α : Type u}
{R : Type w}
{E : Type z}
{T : Type y}
[Fintype α]
[DecidableEq α]
[Field R]
[AddCommMonoid E]
[Module R E]
(V : IteratedVectorFields α E)
(X : AlgebraicRoughPath T α R)
(s t : T)
(y : E)
:
@[simp]
theorem
RoughPaths.IteratedVectorFields.logODEVectorField_comapTime
{α : Type u}
{R : Type w}
{E : Type z}
{T : Type y}
[Fintype α]
[DecidableEq α]
[Field R]
[AddCommMonoid E]
[Module R E]
{S : Type x}
(f : S → T)
(V : IteratedVectorFields α E)
(X : AlgebraicRoughPath T α R)
(n : ℕ)
(s t : S)
(y : E)
:
V.logODEVectorField (AlgebraicRoughPath.comapTime f X) n s t y = V.logODEVectorField X n (f s) (f t) y
theorem
RoughPaths.IteratedVectorFields.logODEVectorField_eq_of_agreeUpToDegree
{α : Type u}
{R : Type w}
{E : Type z}
{T : Type y}
[Fintype α]
[DecidableEq α]
[Field R]
[AddCommMonoid E]
[Module R E]
(V : IteratedVectorFields α E)
{X Y : AlgebraicRoughPath T α R}
{n : ℕ}
(h : X.AgreeUpToDegree Y n)
(s t : T)
(y : E)
: