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 y
is the type of paths fromx
toy
, i.e., continuous maps fromI
toX
mapping0
tox
and1
toy
.Path.refl x : Path x x
is the constant path atx
.Path.symm γ : Path y x
is the reverse of a pathγ : Path x y
.Path.trans γ γ' : Path x z
is 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 y
under a continuous mapf
.Path.reparam γ f hf hf₀ hf₁ : Path x y
is the reparametrisation ofγ : Path x y
by a continuous mapf : I → I
fixing0
and1
.Path.truncate γ t₀ t₁ : Path (γ t₀) (γ t₁)
is the path that followsγ
fromt₀
tot₁
and stays constant otherwise.Path.extend γ : ℝ → X
is the extensionγ
toℝ
that is constant before0
and 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.funLike = { coe := fun (γ : Path x y) => ⇑γ.toContinuousMap, coe_injective' := ⋯ }
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
Any function φ : Π (a : α), Path (x a) (y a)
can be seen as a function α × I → X
.
Equations
- Path.hasUncurryPath = { 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 = { toFun := fun (_t : ↑unitInterval) => x, continuous_toFun := ⋯, source' := ⋯, target' := ⋯ }
Instances For
The reverse of a path from x
to y
, as a path from y
to x
Equations
- γ.symm = { toFun := ⇑γ ∘ unitInterval.symm, continuous_toFun := ⋯, 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
.
Alias of ContinuousEval.continuous_eval
.
Evaluation of a bundled morphism at a point is continuous in both variables.
A continuous map extending a path to ℝ
, constant before 0
and after 1
.
Equations
Instances For
See Note [continuity lemma statement].
A useful special case of Continuous.path_extend
.
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
- γ₁.prod γ₂ = { toContinuousMap := γ₁.prodMk γ₂.toContinuousMap, source' := ⋯, target' := ⋯ }
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 multiplication/addition of two paths in a topological (additive) group #
Pointwise multiplication of paths in a topological group. The additive version is probably more useful.
Instances For
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
.