# mathlib3documentation

analysis.convex.slope

# Slopes of convex functions #

THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.

This file relates convexity/concavity of functions in a linearly ordered field and the monotonicity of their slopes.

The main use is to show convexity/concavity from monotonicity of the derivative.

theorem convex_on.slope_mono_adjacent {𝕜 : Type u_1} {s : set 𝕜} {f : 𝕜 𝕜} (hf : s f) {x y z : 𝕜} (hx : x s) (hz : z s) (hxy : x < y) (hyz : y < z) :
(f y - f x) / (y - x) (f z - f y) / (z - y)

If f : 𝕜 → 𝕜 is convex, then for any three points x < y < z the slope of the secant line of f on [x, y] is less than the slope of the secant line of f on [x, z].

theorem concave_on.slope_anti_adjacent {𝕜 : Type u_1} {s : set 𝕜} {f : 𝕜 𝕜} (hf : s f) {x y z : 𝕜} (hx : x s) (hz : z s) (hxy : x < y) (hyz : y < z) :
(f z - f y) / (z - y) (f y - f x) / (y - x)

If f : 𝕜 → 𝕜 is concave, then for any three points x < y < z the slope of the secant line of f on [x, y] is greater than the slope of the secant line of f on [x, z].

theorem strict_convex_on.slope_strict_mono_adjacent {𝕜 : Type u_1} {s : set 𝕜} {f : 𝕜 𝕜} (hf : f) {x y z : 𝕜} (hx : x s) (hz : z s) (hxy : x < y) (hyz : y < z) :
(f y - f x) / (y - x) < (f z - f y) / (z - y)

If f : 𝕜 → 𝕜 is strictly convex, then for any three points x < y < z the slope of the secant line of f on [x, y] is strictly less than the slope of the secant line of f on [x, z].

theorem strict_concave_on.slope_anti_adjacent {𝕜 : Type u_1} {s : set 𝕜} {f : 𝕜 𝕜} (hf : f) {x y z : 𝕜} (hx : x s) (hz : z s) (hxy : x < y) (hyz : y < z) :
(f z - f y) / (z - y) < (f y - f x) / (y - x)

If f : 𝕜 → 𝕜 is strictly concave, then for any three points x < y < z the slope of the secant line of f on [x, y] is strictly greater than the slope of the secant line of f on [x, z].

theorem convex_on_of_slope_mono_adjacent {𝕜 : Type u_1} {s : set 𝕜} {f : 𝕜 𝕜} (hs : s) (hf : {x y z : 𝕜}, x s z s x < y y < z (f y - f x) / (y - x) (f z - f y) / (z - y)) :
s f

If for any three points x < y < z, the slope of the secant line of f : 𝕜 → 𝕜 on [x, y] is less than the slope of the secant line of f on [x, z], then f is convex.

theorem concave_on_of_slope_anti_adjacent {𝕜 : Type u_1} {s : set 𝕜} {f : 𝕜 𝕜} (hs : s) (hf : {x y z : 𝕜}, x s z s x < y y < z (f z - f y) / (z - y) (f y - f x) / (y - x)) :
s f

If for any three points x < y < z, the slope of the secant line of f : 𝕜 → 𝕜 on [x, y] is greater than the slope of the secant line of f on [x, z], then f is concave.

theorem strict_convex_on_of_slope_strict_mono_adjacent {𝕜 : Type u_1} {s : set 𝕜} {f : 𝕜 𝕜} (hs : s) (hf : {x y z : 𝕜}, x s z s x < y y < z (f y - f x) / (y - x) < (f z - f y) / (z - y)) :
f

If for any three points x < y < z, the slope of the secant line of f : 𝕜 → 𝕜 on [x, y] is strictly less than the slope of the secant line of f on [x, z], then f is strictly convex.

theorem strict_concave_on_of_slope_strict_anti_adjacent {𝕜 : Type u_1} {s : set 𝕜} {f : 𝕜 𝕜} (hs : s) (hf : {x y z : 𝕜}, x s z s x < y y < z (f z - f y) / (z - y) < (f y - f x) / (y - x)) :
f

If for any three points x < y < z, the slope of the secant line of f : 𝕜 → 𝕜 on [x, y] is strictly greater than the slope of the secant line of f on [x, z], then f is strictly concave.

theorem convex_on_iff_slope_mono_adjacent {𝕜 : Type u_1} {s : set 𝕜} {f : 𝕜 𝕜} :
s f s ⦃x y z : 𝕜⦄, x s z s x < y y < z (f y - f x) / (y - x) (f z - f y) / (z - y)

A function f : 𝕜 → 𝕜 is convex iff for any three points x < y < z the slope of the secant line of f on [x, y] is less than the slope of the secant line of f on [x, z].

theorem concave_on_iff_slope_anti_adjacent {𝕜 : Type u_1} {s : set 𝕜} {f : 𝕜 𝕜} :
s f s ⦃x y z : 𝕜⦄, x s z s x < y y < z (f z - f y) / (z - y) (f y - f x) / (y - x)

A function f : 𝕜 → 𝕜 is concave iff for any three points x < y < z the slope of the secant line of f on [x, y] is greater than the slope of the secant line of f on [x, z].

theorem strict_convex_on_iff_slope_strict_mono_adjacent {𝕜 : Type u_1} {s : set 𝕜} {f : 𝕜 𝕜} :
f s ⦃x y z : 𝕜⦄, x s z s x < y y < z (f y - f x) / (y - x) < (f z - f y) / (z - y)

A function f : 𝕜 → 𝕜 is strictly convex iff for any three points x < y < z the slope of the secant line of f on [x, y] is strictly less than the slope of the secant line of f on [x, z].

theorem strict_concave_on_iff_slope_strict_anti_adjacent {𝕜 : Type u_1} {s : set 𝕜} {f : 𝕜 𝕜} :
f s ⦃x y z : 𝕜⦄, x s z s x < y y < z (f z - f y) / (z - y) < (f y - f x) / (y - x)

A function f : 𝕜 → 𝕜 is strictly concave iff for any three points x < y < z the slope of the secant line of f on [x, y] is strictly greater than the slope of the secant line of f on [x, z].

theorem convex_on.secant_mono_aux1 {𝕜 : Type u_1} {s : set 𝕜} {f : 𝕜 𝕜} (hf : s f) {x y z : 𝕜} (hx : x s) (hz : z s) (hxy : x < y) (hyz : y < z) :
(z - x) * f y (z - y) * f x + (y - x) * f z
theorem convex_on.secant_mono_aux2 {𝕜 : Type u_1} {s : set 𝕜} {f : 𝕜 𝕜} (hf : s f) {x y z : 𝕜} (hx : x s) (hz : z s) (hxy : x < y) (hyz : y < z) :
(f y - f x) / (y - x) (f z - f x) / (z - x)
theorem convex_on.secant_mono_aux3 {𝕜 : Type u_1} {s : set 𝕜} {f : 𝕜 𝕜} (hf : s f) {x y z : 𝕜} (hx : x s) (hz : z s) (hxy : x < y) (hyz : y < z) :
(f z - f x) / (z - x) (f z - f y) / (z - y)
theorem convex_on.secant_mono {𝕜 : Type u_1} {s : set 𝕜} {f : 𝕜 𝕜} (hf : s f) {a x y : 𝕜} (ha : a s) (hx : x s) (hy : y s) (hxa : x a) (hya : y a) (hxy : x y) :
(f x - f a) / (x - a) (f y - f a) / (y - a)
theorem strict_convex_on.secant_strict_mono_aux1 {𝕜 : Type u_1} {s : set 𝕜} {f : 𝕜 𝕜} (hf : f) {x y z : 𝕜} (hx : x s) (hz : z s) (hxy : x < y) (hyz : y < z) :
(z - x) * f y < (z - y) * f x + (y - x) * f z
theorem strict_convex_on.secant_strict_mono_aux2 {𝕜 : Type u_1} {s : set 𝕜} {f : 𝕜 𝕜} (hf : f) {x y z : 𝕜} (hx : x s) (hz : z s) (hxy : x < y) (hyz : y < z) :
(f y - f x) / (y - x) < (f z - f x) / (z - x)
theorem strict_convex_on.secant_strict_mono_aux3 {𝕜 : Type u_1} {s : set 𝕜} {f : 𝕜 𝕜} (hf : f) {x y z : 𝕜} (hx : x s) (hz : z s) (hxy : x < y) (hyz : y < z) :
(f z - f x) / (z - x) < (f z - f y) / (z - y)
theorem strict_convex_on.secant_strict_mono {𝕜 : Type u_1} {s : set 𝕜} {f : 𝕜 𝕜} (hf : f) {a x y : 𝕜} (ha : a s) (hx : x s) (hy : y s) (hxa : x a) (hya : y a) (hxy : x < y) :
(f x - f a) / (x - a) < (f y - f a) / (y - a)
theorem strict_concave_on.secant_strict_mono {𝕜 : Type u_1} {s : set 𝕜} {f : 𝕜 𝕜} (hf : f) {a x y : 𝕜} (ha : a s) (hx : x s) (hy : y s) (hxa : x a) (hya : y a) (hxy : x < y) :
(f y - f a) / (y - a) < (f x - f a) / (x - a)
theorem convex_on.strict_mono_of_lt {𝕜 : Type u_1} {s : set 𝕜} {f : 𝕜 𝕜} (hf : s f) {x y : 𝕜} (hx : x s) (hxy : x < y) (hxy' : f x < f y) :
(s set.Ici y)

If f is convex on a set s in a linearly ordered field, and f x < f y for two points x < y in s, then f is strictly monotone on s ∩ [y, ∞).