Paths in topological spaces #
This file introduces continuous paths and provides API for them.
Main definitions #
In this file the unit interval [0, 1] in ℝ is denoted by I, and X is a topological space.
Path x yis the type of paths fromxtoy, i.e., continuous maps fromItoXmapping0toxand1toy.Path.refl x : Path x xis the constant path atx.Path.symm γ : Path y xis the reverse of a pathγ : Path x y.Path.trans γ γ' : Path x zis the concatenation of two pathsγ : Path x y,γ' : Path y z.Path.map γ hf : Path (f x) (f y)is the image ofγ : Path x yunder a continuous mapf.Path.reparam γ f hf hf₀ hf₁ : Path x yis the reparametrisation ofγ : Path x yby a continuous mapf : I → Ifixing0and1.Path.truncate γ t₀ t₁ : Path (γ t₀) (γ t₁)is the path that followsγfromt₀tot₁and stays constant otherwise.Path.extend γ : C(ℝ, X)is the extensionγtoℝthat is constant before0and after1.
Path x y is equipped with the topology induced by the compact-open topology on C(I,X), and
several of the above constructions are shown to be continuous.
Implementation notes #
By default, all paths have I as their source and X as their target, but there is an
operation Set.IccExtend that will extend any continuous map γ : I → X into a continuous map
IccExtend zero_le_one γ : ℝ → X that is constant before 0 and after 1.
This is used to define Path.extend that turns γ : Path x y into a continuous map
γ.extend : ℝ → X whose restriction to I is the original γ, and is equal to x
on (-∞, 0] and to y on [1, +∞).
Paths #
Continuous path connecting two points x and y in a topological space
- toFun : ↑unitInterval → X
- continuous_toFun : Continuous self.toFun
The start point of a
Path.The end point of a
Path.
Instances For
Equations
- Path.instFunLike = { coe := fun (γ : Path x y) => ⇑γ.toContinuousMap, coe_injective' := ⋯ }
A path constructed from a continuous map f has the same underlying function.
See Note [custom simps projection]. We need to specify this projection explicitly in this case, because it is a composition of multiple projections.
Equations
- Path.simps.apply γ = ⇑γ
Instances For
A special version of ContinuousMap.coe_coe.
When you delete this deprecated lemma, please rename Path.coe_mk' to Path.coe_mk.
Any function φ : Π (a : α), Path (x a) (y a) can be seen as a function α × I → X.
Equations
- Path.instHasUncurryPath = { uncurry := fun (φ : (a : α) → Path (x a) (y a)) (p : α × ↑unitInterval) => (φ p.1) p.2 }
The constant path from a point to itself
Equations
- Path.refl x = { toContinuousMap := ContinuousMap.const (↑unitInterval) x, source' := ⋯, target' := ⋯ }
Instances For
Space of paths #
The following instance defines the topology on the path space to be induced from the
compact-open topology on the space C(I,X) of continuous maps from I to X.
A continuous map extending a path to ℝ, constant before 0 and after 1.
Equations
- γ.extend = { toFun := Set.IccExtend Path.extend._proof_1 ⇑γ, continuous_toFun := ⋯ }
Instances For
See Note [continuity lemma statement].
Alias of Continuous.pathExtend.
See Note [continuity lemma statement].
A useful special case of Continuous.path_extend.
Alias of Filter.Tendsto.pathExtend.
Alias of ContinuousAt.pathExtend.
The path obtained from a map defined on ℝ by restriction to the unit interval.
Equations
- Path.ofLine hf h₀ h₁ = { toFun := f ∘ Subtype.val, continuous_toFun := ⋯, source' := h₀, target' := h₁ }
Instances For
Concatenation of two paths from x to y and from y to z, putting the first
path on [0, 1/2] and the second one on [1/2, 1].
Equations
Instances For
Image of a path from x to y by a map which is continuous on the path.
Instances For
Image of a path from x to y by a continuous map
Instances For
Product of paths #
Given a path in X and a path in Y, we can take their pointwise product to get a path in
X × Y.
Equations
Instances For
Path composition commutes with products
Given a family of paths, one in each Xᵢ, we take their pointwise product to get a path in Π i, Xᵢ.
Equations
- Path.pi γ = { toContinuousMap := ContinuousMap.pi fun (i : ι) => (γ i).toContinuousMap, source' := ⋯, target' := ⋯ }
Instances For
Path composition commutes with products
Pointwise operations on paths in a topological (additive) group #
Truncating a path #
γ.truncate t₀ t₁ is the path which follows the path γ on the time interval [t₀, t₁]
and stays still otherwise.
Equations
Instances For
γ.truncateOfLE t₀ t₁ h, where h : t₀ ≤ t₁ is γ.truncate t₀ t₁
casted as a path from γ.extend t₀ to γ.extend t₁.
Equations
- γ.truncateOfLE h = (γ.truncate t₀ t₁).cast ⋯ ⋯
Instances For
For a path γ, γ.truncate gives a "continuous family of paths", by which we mean
the uncurried function which maps (t₀, t₁, s) to γ.truncate t₀ t₁ s is continuous.
Reparametrising a path #
Given a path γ and a function f : I → I where f 0 = 0 and f 1 = 1, γ.reparam f is the
path defined by γ ∘ f.