# Polynomial bounds for trigonometric functions #

## Main statements #

This file contains upper and lower bounds for real trigonometric functions in terms of polynomials. See Trigonometric.Basic for more elementary inequalities, establishing the ranges of these functions, and their monotonicity in suitable intervals.

Here we prove the following:

• sin_lt: for x > 0 we have sin x < x.
• sin_gt_sub_cube: For 0 < x ≤ 1 we have x - x ^ 3 / 4 < sin x.
• lt_tan: for 0 < x < π/2 we have x < tan x.
• cos_le_one_div_sqrt_sq_add_one and cos_lt_one_div_sqrt_sq_add_one: for -3 * π / 2 ≤ x ≤ 3 * π / 2, we have cos x ≤ 1 / sqrt (x ^ 2 + 1), with strict inequality if x ≠ 0. (This bound is not quite optimal, but not far off)

## Tags #

sin, cos, tan, angle

theorem Real.sin_lt {x : } (h : 0 < x) :
< x

For 0 < x, we have sin x < x.

theorem Real.sin_le {x : } (hx : 0 x) :
x
theorem Real.lt_sin {x : } (hx : x < 0) :
x <
theorem Real.le_sin {x : } (hx : x 0) :
x
theorem Real.lt_sin_mul {x : } (hx : 0 < x) (hx' : x < 1) :
x < Real.sin ( * x)
theorem Real.le_sin_mul {x : } (hx : 0 x) (hx' : x 1) :
x Real.sin ( * x)
theorem Real.mul_lt_sin {x : } (hx : 0 < x) (hx' : x < ) :
* x <
theorem Real.mul_le_sin {x : } (hx : 0 x) (hx' : x ) :
* x

One half of Jordan's inequality.

In the range [0, π / 2], we have a linear lower bound on sin. The other half is given by Real.sin_le.

theorem Real.sin_le_mul {x : } (hx : -(Real.pi / 2) x) (hx₀ : x 0) :
* x

Half of Jordan's inequality for negative values.

theorem Real.mul_abs_le_abs_sin {x : } (hx : |x| ) :
* |x| ||

Half of Jordan's inequality for absolute values.

theorem Real.sin_sq_lt_sq {x : } (hx : x 0) :
^ 2 < x ^ 2
theorem Real.sin_sq_le_sq {x : } :
^ 2 x ^ 2
theorem Real.abs_sin_lt_abs {x : } (hx : x 0) :
|| < |x|
theorem Real.abs_sin_le_abs {x : } :
|| |x|
theorem Real.one_sub_sq_div_two_lt_cos {x : } (hx : x 0) :
1 - x ^ 2 / 2 <
theorem Real.one_sub_mul_le_cos {x : } (hx₀ : 0 x) (hx : x ) :
1 - * x

Half of Jordan's inequality for cos.

theorem Real.one_add_mul_le_cos {x : } (hx₀ : -(Real.pi / 2) x) (hx : x 0) :
1 + * x

Half of Jordan's inequality for cos and negative values.

theorem Real.cos_le_one_sub_mul_cos_sq {x : } (hx : |x| Real.pi) :
1 - 2 / * x ^ 2
@[deprecated Real.mul_le_sin]
theorem Real.two_div_pi_mul_le_sin {x : } (hx : 0 x) (hx' : x ) :
* x

Alias of Real.mul_le_sin.

One half of Jordan's inequality.

In the range [0, π / 2], we have a linear lower bound on sin. The other half is given by Real.sin_le.

@[deprecated Real.sin_le_mul]
theorem Real.sin_le_two_div_pi_mul {x : } (hx : -(Real.pi / 2) x) (hx₀ : x 0) :
* x

Alias of Real.sin_le_mul.

Half of Jordan's inequality for negative values.

@[deprecated Real.one_sub_mul_le_cos]
theorem Real.one_sub_two_div_pi_mul_le_cos {x : } (hx₀ : 0 x) (hx : x ) :
1 - * x

Alias of Real.one_sub_mul_le_cos.

Half of Jordan's inequality for cos.

@[deprecated Real.cos_le_one_sub_mul_cos_sq]
theorem Real.cos_quadratic_upper_bound {x : } (hx : |x| Real.pi) :
1 - 2 / * x ^ 2

Alias of Real.cos_le_one_sub_mul_cos_sq.

theorem Real.sin_gt_sub_cube {x : } (h : 0 < x) (h' : x 1) :
x - x ^ 3 / 4 <

For 0 < x ≤ 1 we have x - x ^ 3 / 4 < sin x.

This is also true for x > 1, but it's nontrivial for x just above 1. This inequality is not tight; the tighter inequality is sin x > x - x ^ 3 / 6 for all x > 0, but this inequality has a simpler proof.

theorem Real.deriv_tan_sub_id (x : ) (h : 0) :
deriv (fun (y : ) => - y) x = 1 / ^ 2 - 1

The derivative of tan x - x is 1/(cos x)^2 - 1 away from the zeroes of cos.

theorem Real.lt_tan {x : } (h1 : 0 < x) (h2 : x < ) :
x <

For all 0 < x < π/2 we have x < tan x.

This is proved by checking that the function tan x - x vanishes at zero and has non-negative derivative.

theorem Real.le_tan {x : } (h1 : 0 x) (h2 : x < ) :
x
theorem Real.cos_lt_one_div_sqrt_sq_add_one {x : } (hx1 : -( / 2) x) (hx2 : x / 2) (hx3 : x 0) :
< 1 / (x ^ 2 + 1)
theorem Real.cos_le_one_div_sqrt_sq_add_one {x : } (hx1 : -( / 2) x) (hx2 : x / 2) :
1 / (x ^ 2 + 1)