# Documentation

Mathlib.Analysis.Convex.StrictConvexSpace

# Strictly convex spaces #

This file defines strictly convex spaces. A normed space is strictly convex if all closed balls are strictly convex. This does not mean that the norm is strictly convex (in fact, it never is).

## Main definitions #

StrictConvexSpace: a typeclass saying that a given normed space over a normed linear ordered field (e.g., ℝ or ℚ) is strictly convex. The definition requires strict convexity of a closed ball of positive radius with center at the origin; strict convexity of any other closed ball follows from this assumption.

## Main results #

In a strictly convex space, we prove

• strictConvex_closedBall: a closed ball is strictly convex.
• combo_mem_ball_of_ne, openSegment_subset_ball_of_ne, norm_combo_lt_of_ne: a nontrivial convex combination of two points in a closed ball belong to the corresponding open ball;
• norm_add_lt_of_not_sameRay, sameRay_iff_norm_add, dist_add_dist_eq_iff: the triangle inequality dist x y + dist y z ≤ dist x z is a strict inequality unless y belongs to the segment [x -[ℝ] z].
• Isometry.affineIsometryOfStrictConvexSpace: an isometry of NormedAddTorsors for real normed spaces, strictly convex in the case of the codomain, is an affine isometry.

We also provide several lemmas that can be used as alternative constructors for StrictConvex ℝ E:

• StrictConvexSpace.of_strictConvex_closed_unit_ball: if closed_ball (0 : E) 1 is strictly convex, then E is a strictly convex space;

• StrictConvexSpace.of_norm_add: if ‖x + y‖ = ‖x‖ + ‖y‖ implies SameRay ℝ x y for all nonzero x y : E, then E is a strictly convex space.

## Implementation notes #

While the definition is formulated for any normed linear ordered field, most of the lemmas are formulated only for the case 𝕜 = ℝ.

## Tags #

convex, strictly convex

class StrictConvexSpace (𝕜 : Type u_1) (E : Type u_2) [] :
• strictConvex_closedBall : ∀ (r : ), 0 < r

A strictly convex space is a normed space where the closed balls are strictly convex. We only require balls of positive radius with center at the origin to be strictly convex in the definition, then prove that any closed ball is strictly convex in strictConvex_closedBall below.

See also StrictConvexSpace.of_strictConvex_closed_unit_ball.

Instances
theorem strictConvex_closedBall (𝕜 : Type u_1) {E : Type u_2} [] [] (x : E) (r : ) :

A closed ball in a strictly convex space is strictly convex.

theorem StrictConvexSpace.of_strictConvex_closed_unit_ball (𝕜 : Type u_1) {E : Type u_2} [] [] [] (h : ) :

A real normed vector space is strictly convex provided that the unit ball is strictly convex.

theorem StrictConvexSpace.of_norm_combo_lt_one {E : Type u_2} [] (h : ∀ (x y : E), x = 1y = 1x ya b, a + b = 1 a x + b y < 1) :

Strict convexity is equivalent to ‖a • x + b • y‖ < 1 for all x and y of norm at most 1 and all strictly positive a and b such that a + b = 1. This lemma shows that it suffices to check this for points of norm one and some a, b such that a + b = 1.

theorem StrictConvexSpace.of_norm_combo_ne_one {E : Type u_2} [] (h : ∀ (x y : E), x = 1y = 1x ya b, 0 a 0 b a + b = 1 a x + b y 1) :
theorem StrictConvexSpace.of_norm_add_ne_two {E : Type u_2} [] (h : ∀ ⦃x y : E⦄, x = 1y = 1x yx + y 2) :
theorem StrictConvexSpace.of_norm_add {E : Type u_2} [] (h : ∀ (x y : E), x = 1y = 1x + y = 2SameRay x y) :

If ‖x + y‖ = ‖x‖ + ‖y‖ implies that x y : E are in the same ray, then E is a strictly convex space. See also a more

theorem combo_mem_ball_of_ne {E : Type u_2} [] [] {x : E} {y : E} {z : E} {a : } {b : } {r : } (hx : x ) (hy : y ) (hne : x y) (ha : 0 < a) (hb : 0 < b) (hab : a + b = 1) :
a x + b y

If x ≠ y belong to the same closed ball, then a convex combination of x and y with positive coefficients belongs to the corresponding open ball.

theorem openSegment_subset_ball_of_ne {E : Type u_2} [] [] {x : E} {y : E} {z : E} {r : } (hx : x ) (hy : y ) (hne : x y) :

If x ≠ y belong to the same closed ball, then the open segment with endpoints x and y is included in the corresponding open ball.

theorem norm_combo_lt_of_ne {E : Type u_2} [] [] {x : E} {y : E} {a : } {b : } {r : } (hx : x r) (hy : y r) (hne : x y) (ha : 0 < a) (hb : 0 < b) (hab : a + b = 1) :
a x + b y < r

If x and y are two distinct vectors of norm at most r, then a convex combination of x and y with positive coefficients has norm strictly less than r.

theorem norm_add_lt_of_not_sameRay {E : Type u_2} [] [] {x : E} {y : E} (h : ¬SameRay x y) :

In a strictly convex space, if x and y are not in the same ray, then ‖x + y‖ < ‖x‖ + ‖y‖.

theorem lt_norm_sub_of_not_sameRay {E : Type u_2} [] [] {x : E} {y : E} (h : ¬SameRay x y) :
theorem abs_lt_norm_sub_of_not_sameRay {E : Type u_2} [] [] {x : E} {y : E} (h : ¬SameRay x y) :
theorem sameRay_iff_norm_add {E : Type u_2} [] [] {x : E} {y : E} :

In a strictly convex space, two vectors x, y are in the same ray if and only if the triangle inequality for x and y becomes an equality.

theorem eq_of_norm_eq_of_norm_add_eq {E : Type u_2} [] [] {x : E} {y : E} (h₁ : x = y) (h₂ : x + y = x + y) :
x = y

If x and y are two vectors in a strictly convex space have the same norm and the norm of their sum is equal to the sum of their norms, then they are equal.

theorem not_sameRay_iff_norm_add_lt {E : Type u_2} [] [] {x : E} {y : E} :

In a strictly convex space, two vectors x, y are not in the same ray if and only if the triangle inequality for x and y is strict.

theorem sameRay_iff_norm_sub {E : Type u_2} [] [] {x : E} {y : E} :
theorem not_sameRay_iff_abs_lt_norm_sub {E : Type u_2} [] [] {x : E} {y : E} :
theorem dist_add_dist_eq_iff {E : Type u_2} [] [] {x : E} {y : E} {z : E} :
dist x y + dist y z = dist x z y segment x z

In a strictly convex space, the triangle inequality turns into an equality if and only if the middle point belongs to the segment joining two other points.

theorem norm_midpoint_lt_iff {E : Type u_2} [] [] {x : E} {y : E} (h : x = y) :
(1 / 2) (x + y) < x x y
theorem eq_lineMap_of_dist_eq_mul_of_dist_eq_mul {E : Type u_2} [] [] {r : } {PE : Type u_4} [] [] {x : PE} {y : PE} {z : PE} (hxy : dist x y = r * dist x z) (hyz : dist y z = (1 - r) * dist x z) :
y = ↑() r
theorem eq_midpoint_of_dist_eq_half {E : Type u_2} [] [] {PE : Type u_4} [] [] {x : PE} {y : PE} {z : PE} (hx : dist x y = dist x z / 2) (hy : dist y z = dist x z / 2) :
y =
noncomputable def Isometry.affineIsometryOfStrictConvexSpace {E : Type u_2} [] [] {F : Type u_3} [] {PF : Type u} {PE : Type u_4} [] [] [] [] {f : PFPE} (hi : ) :

An isometry of NormedAddTorsors for real normed spaces, strictly convex in the case of the codomain, is an affine isometry. Unlike Mazur-Ulam, this does not require the isometry to be surjective.

Instances For
@[simp]
theorem Isometry.coe_affineIsometryOfStrictConvexSpace {E : Type u_2} [] [] {F : Type u_3} [] {PF : Type u} {PE : Type u_4} [] [] [] [] {f : PFPE} (hi : ) :
@[simp]
theorem Isometry.affineIsometryOfStrictConvexSpace_apply {E : Type u_2} [] [] {F : Type u_3} [] {PF : Type u} {PE : Type u_4} [] [] [] [] {f : PFPE} (hi : ) (p : PF) :
= f p