Length spaces and geodesic spaces #
A metric space is a length space when the distance between two points is the infimum of the
lengths of the continuous curves joining them, and a geodesic space when that infimum is
realised by a curve on [0, 1] whose distance function is the affine one, dist (γ s) (γ t) = |s - t| * dist x y. This file sets up both notions, together with the length of a curve that
they are phrased in terms of, and proves that a geodesic space is a length space.
The length of a curve #
The length of a curve γ : ℝ → X over a parameter interval [a, b] is the supremum of the sums
∑ i, edist (γ (u (i + 1))) (γ (u i)) over finite increasing families u in [a, b]. This is
exactly Mathlib's total variation eVariationOn γ (Set.Icc a b), which this file uses directly.
Two conventions are inherited deliberately:
- curves are functions on all of
ℝ, read on a parameter interval, rather than functions on a subtype. This is the convention ofManifold.pathELength I γ a b, the Riemannian length to be compared against, and it avoids subtype juggling in the API; - the value is an extended nonnegative real, since a continuous curve can have infinite length.
Mathlib's bundled Path x y is bridged to this convention in both directions, by
TauCeti.IsCurveJoining.joined and TauCeti.isCurveJoining_extend.
Continuity is load-bearing #
The infimum defining a length space must range over continuous curves. Dropping continuity makes
every metric space a length space: the two-valued curve which is x on [0, 1) and y at 1
already has length edist x y, by eVariationOn.edist_le.
Main definitions #
TauCeti.IsCurveJoining γ x y—γis continuous on[0, 1]and runs fromxtoythere.TauCeti.IsGeodesicSegment γ x y—γparametrises a shortest curve fromxtoyproportionally to arclength on[0, 1].TauCeti.IsLengthSpace X— the distance is the infimum of the lengths of the joining curves.TauCeti.IsGeodesicSpace X— any two points are joined by a geodesic segment.
Main results #
TauCeti.exists_isCurveJoining_of_continuousOnshows that the parameter interval[0, 1]is no loss of generality.TauCeti.IsGeodesicSegment.eVariationOn_eq_edist— a geodesic segment realises the distance between any two of its points, and in particular between its endpoints.TauCeti.IsGeodesicSpace.toIsLengthSpace— a geodesic space is a length space; there the infimum is attained, byTauCeti.IsGeodesicSpace.exists_eVariationOn_eq.TauCeti.IsLengthSpace.pathConnectedSpace— a nonempty length space with finite distances is path connected.TauCeti.instIsGeodesicSpace— a real seminormed space is a geodesic space, its geodesic segments being the affine ones (TauCeti.isGeodesicSegment_lineMap).TauCeti.IsGeodesicSegment.eq_lineMap— in a strictly convex real normed torsor the affine segment is the only geodesic segment, so geodesic segments are unique in every metric space that embeds isometrically in one (TauCeti.IsGeodesicSegment.eqOn_of_isometry).
Curves joining two points #
IsCurveJoining γ x y says that the curve γ, read on the parameter interval [0, 1], is
continuous and runs from x to y.
- continuousOn : ContinuousOn γ (Set.Icc 0 1)
A joining curve is continuous on its parameter interval.
A joining curve starts at
x.A joining curve ends at
y.
Instances For
The extension to ℝ of a bundled path is a joining curve.
A joining curve restricts to a bundled path, so it witnesses Joined.
A joining curve is at least as long as the distance between the points it joins.
One half of the length-space condition holds in any space: no curve joining x to y is
shorter than edist x y.
A continuous curve joining x to y on an arbitrary parameter interval can be renormalised
to [0, 1] without changing its length. This is how curves produced on other parameter intervals
enter the length-space condition below.
Length spaces #
A length space is a space in which the distance between two points is the infimum of the lengths of the continuous curves joining them.
- edist_eq_iInf (x y : X) : edist x y = ⨅ (γ : ℝ → X), ⨅ (_ : IsCurveJoining γ x y), eVariationOn γ (Set.Icc 0 1)
The distance between two points is the infimum of the lengths of the curves joining them.
Instances
To check that a space is a length space it suffices to produce, for every pair of points and every bound strictly above their distance, a joining curve shorter than that bound.
In a length space, joining curves of length arbitrarily close to the distance exist.
Any two points of a length space with finite distances are joined by a continuous curve.
A nonempty length space with finite distances is path connected. This is not an instance:
PathConnectedSpace is a goal about a bare topological space, and searching a metric structure
and a length-space structure on every such goal is not worth it.
The metric form of TauCeti.IsLengthSpace.exists_eVariationOn_lt.
Geodesic segments and geodesic spaces #
IsGeodesicSegment γ x y says that the curve γ, read on the parameter interval [0, 1],
runs from x to y with dist (γ s) (γ t) = |s - t| * dist x y: it is a shortest curve from x
to y, parametrised proportionally to arclength.
A geodesic segment starts at
x.A geodesic segment ends at
y.A geodesic segment is affinely parametrised by arclength.
Instances For
A geodesic segment is Lipschitz on its parameter interval, with constant dist x y.
The point at time t of a geodesic segment from x to y is at distance t * dist x y
from x.
The extended distance from the source along a geodesic segment.
The point at time t of a geodesic segment from x to y is at distance
(1 - t) * dist x y from y.
A geodesic segment between two points at positive distance leaves its source immediately: as
t → 0⁺, its point at time t tends to x without being x.
The constant curve is a geodesic segment from a point to itself.
Running a geodesic segment backwards gives a geodesic segment between the same points.
The piece of a geodesic segment between the times a and b, reparametrised over [0, 1], is
a geodesic segment from γ a to γ b.
The point of a geodesic segment at the midpoint of two times s and t is at distance
dist (γ s) (γ t) / 2 from γ s.
The point of a geodesic segment at the midpoint of two times s and t is at distance
dist (γ s) (γ t) / 2 from γ t.
An isometry maps a geodesic segment from x to y to a geodesic segment from f x to
f y.
Being a geodesic segment depends only on the values of the curve on [0, 1].
A curve from x to y whose pieces obey the affine bound
dist (γ s) (γ t) ≤ (t - s) * dist x y for 0 ≤ s ≤ t ≤ 1 is a geodesic segment: the triangle
inequality along 0 ≤ s ≤ t ≤ 1 turns each bound into an equality.
No piece of a geodesic segment is longer than the affine bound its parametrisation predicts.
The reverse inequality is eVariationOn.edist_le, so the two together identify the length of
every piece.
A geodesic segment realises the distance between any two of its points.
A geodesic segment from x to y has length edist x y.
A geodesic space is a space in which any two points are joined by a geodesic segment.
- exists_isGeodesicSegment (x y : X) : ∃ (γ : ℝ → X), IsGeodesicSegment γ x y
Any two points are joined by a geodesic segment.
Instances
In a geodesic space the infimum defining the length-space condition is attained.
A space isometric to a geodesic space is a geodesic space.
A geodesic space is a length space.
Seminormed spaces #
In a real normed torsor the affine segment from x to y is a geodesic segment.
A real normed torsor is a geodesic space. This is stated as a theorem rather than an instance
because the acting space V would have to be guessed before the torsor structure is found; the
instance below covers the case of a seminormed space acting on itself.
Geodesic segments of a strictly convex space are affine. In a strictly convex real normed
torsor, the point at time t ∈ [0, 1] of a geodesic segment from x to y is
AffineMap.lineMap x y t. Without strict convexity this fails: in ℝ² with the sup norm, the
curve running first diagonally and then vertically is a geodesic segment from (0, 0) to
(1, 2).
Uniqueness of geodesic segments. In a metric space that embeds isometrically in a strictly
convex real normed torsor, two geodesic segments with the same endpoints agree on [0, 1]: their
images are both the affine segment between the images of the endpoints.