# Documentation

Mathlib.Analysis.Convex.SpecificFunctions.Basic

# Collection of convex functions #

In this file we prove that the following functions are convex or strictly convex:

• strictConvexOn_exp : The exponential function is strictly convex.
• Even.convexOn_pow: For an even n : ℕ, fun x ↦ x ^ n is convex.
• convexOn_pow: For n : ℕ, fun x ↦ x ^ n is convex on $[0, +∞)$.
• convexOn_zpow: For m : ℤ, fun x ↦ x ^ m is convex on $[0, +∞)$.
• strictConcaveOn_log_Ioi, strictConcaveOn_log_Iio: Real.log is strictly concave on $(0, +∞)$ and $(-∞, 0)$ respectively.
• convexOn_rpow, strictConvexOn_rpow : For p : ℝ, fun x ↦ x ^ p is convex on $[0, +∞)$ when 1 ≤ p and strictly convex when 1 < p.

The proofs in this file are deliberately elementary, not by appealing to the sign of the second derivative. This is in order to keep this file early in the import hierarchy, since it is on the path to Hölder's and Minkowski's inequalities and after that to Lp spaces and most of measure theory.

## TODO #

For p : ℝ, prove that fun x ↦ x ^ p is concave when 0 ≤ p ≤ 1 and strictly concave when 0 < p < 1.

Real.exp is strictly convex on the whole real line.

We give an elementary proof rather than using the second derivative test, since this lemma is needed early in the analysis library.

theorem convexOn_exp :

Real.exp is convex on the whole real line.

theorem convexOn_pow (n : ) :
ConvexOn () fun x => x ^ n

x^n, n : ℕ is convex on [0, +∞) for all n.

We give an elementary proof rather than using the second derivative test, since this lemma is needed early in the analysis library.

theorem Even.convexOn_pow {n : } (hn : Even n) :
ConvexOn Set.univ fun x => x ^ n

x^n, n : ℕ is convex on the whole real line whenever n is even.

We give an elementary proof rather than using the second derivative test, since this lemma is needed early in the analysis library.

theorem convexOn_zpow (m : ) :
ConvexOn () fun x => x ^ m

x^m, m : ℤ is convex on (0, +∞) for all m.

We give an elementary proof rather than using the second derivative test, since this lemma is needed early in the analysis library.

theorem one_add_mul_self_lt_rpow_one_add {s : } (hs : -1 s) (hs' : s 0) {p : } (hp : 1 < p) :
1 + p * s < (1 + s) ^ p

Bernoulli's inequality for real exponents, strict version: for 1 < p and -1 ≤ s, with s ≠ 0, we have 1 + p * s < (1 + s) ^ p.

theorem one_add_mul_self_le_rpow_one_add {s : } (hs : -1 s) {p : } (hp : 1 p) :
1 + p * s (1 + s) ^ p

Bernoulli's inequality for real exponents, non-strict version: for 1 ≤ p and -1 ≤ s we have 1 + p * s ≤ (1 + s) ^ p.

theorem strictConvexOn_rpow {p : } (hp : 1 < p) :
StrictConvexOn () fun x => x ^ p
theorem convexOn_rpow {p : } (hp : 1 p) :
ConvexOn () fun x => x ^ p