Convex metric spaces #
A convex metric space is a convex space with a compatible metric structure.
Concretely, we ask for dist(∑ tᵢ xᵢ, ∑ tᵢ yᵢ) ≤ ∑ tᵢ dist(xᵢ, yᵢ),
which is what one would expect from the triangle inequality.
Main results #
IsConvexMetricSpace: The (Prop-valued) class of convex metric spaces.continuous_convexComboPair: Binary convex combination is continuous.Convex.isConvexMetricSpace: Convex subspaces of normed spaces are convex metric spaces.
TODO #
- Equip
StdSimplexwith a topology and show the analogous continuity result for n-ary convex combinations. - Tidy up the imports with
Mathlib.LinearAlgebra.ConvexSpace.AffineSpaceetc once those files are moved to proper places.
A convex metric space is a real convex space with a compatible metric structure.
Concretely, we ask for dist(∑ tᵢ xᵢ, ∑ tᵢ yᵢ) ≤ ∑ tᵢ dist(xᵢ, yᵢ),
which is what one would expect from the triangle inequality.
In particular, convex subsets of normed affine spaces are convex metric spaces.
- dist_convexCombination_map_le' (f : StdSimplex ℝ ℕ) (x y : ℕ → X) : dist (ConvexSpace.convexCombination (StdSimplex.map x f)) (ConvexSpace.convexCombination (StdSimplex.map y f)) ≤ f.sum fun (i : ℕ) (r : ℝ) => r * dist (x i) (y i)
Use
dist_convexCombination_map_leinstead.
Instances
dist(∑ tᵢ xᵢ, ∑ tᵢ yᵢ) ≤ ∑ tᵢ dist(xᵢ, yᵢ)
dist(sx + (1-s)y, s'x + (1-s')y) = |s - s'| dist(x, y).
See dist_convexComboPair_convexComboPair_le
for the version where the weights are fixed and the points change.
dist(sx + (1-s)y, sx' + (1-s)y') ≤ s dist(x, x') + (1-s) dist(y, y').
See dist_convexComboPair_convexComboPair
for the version where the points are fixed and the weights change.
The convex combination (t, p, q) ↦ t • p + (1 - t) • q is continuous on [0, 1] × X × X
for a convex metric space X.
When X is a bounded convex metric space, to check continuity of
t ↦ f(t) • x(t) + (1 - f(t)) • y(t) it suffices to show that f is continuous,
x is continuous away from f(t) = 0, and y is continuous away from f(t) = 1.
A convex subset of a vector space is a convex space.
Equations
- ConvexSpace.ofConvex H = { convexCombination := fun (f : StdSimplex R ↑S) => ⟨ConvexSpace.convexCombination (StdSimplex.map Subtype.val f), ⋯⟩, assoc := ⋯, single := ⋯ }