(*******************************************************)
(** * Some properties of cos, sin and tan              *)
(*******************************************************)

(* Specifications: *)
Lemma sin_2a : forall x:R, sin (2 * x) = 2 * sin x * cos x.
Lemma cos_2a : forall x:R, cos (2 * x) = cos x * cos x - sin x * sin x.
Lemma cos_2a_cos : forall x:R, cos (2 * x) = 2 * cos x * cos x - 1.
Lemma cos_2a_sin : forall x:R, cos (2 * x) = 1 - 2 * sin x * sin x.
Lemma tan_2a :
forall x:R,
cos x <> 0 ->
cos (2 * x) <> 0 ->
1 - tan x * tan x <> 0 -> tan (2 * x) = 2 * tan x / (1 - tan x * tan x).
Lemma sin_neg : forall x:R, sin (- x) = - sin x.
Lemma cos_neg : forall x:R, cos (- x) = cos x.
Lemma tan_0 : tan 0 = 0.
Lemma tan_neg : forall x:R, tan (- x) = - tan x.
Lemma tan_minus :
forall x y:R,
cos x <> 0 ->
cos y <> 0 ->
cos (x - y) <> 0 ->
1 + tan x * tan y <> 0 ->
tan (x - y) = (tan x - tan y) / (1 + tan x * tan y).
Lemma cos_3PI2 : cos (3 * (PI / 2)) = 0.
Lemma sin_2PI : sin (2 * PI) = 0.
Lemma cos_2PI : cos (2 * PI) = 1.
Lemma neg_sin : forall x:R, sin (x + PI) = - sin x.
Lemma sin_PI_x : forall x:R, sin (PI - x) = sin x.
Lemma sin_period : forall (x:R) (k:nat), sin (x + 2 * INR k * PI) = sin x.
Lemma cos_period : forall (x:R) (k:nat), cos (x + 2 * INR k * PI) = cos x.
Lemma sin_shift : forall x:R, sin (PI / 2 - x) = cos x.
Lemma cos_shift : forall x:R, cos (PI / 2 - x) = sin x.
Lemma cos_sin : forall x:R, cos x = sin (PI / 2 + x).
Lemma PI2_RGT_0 : 0 < PI / 2.
Lemma SIN_bound : forall x:R, -1 <= sin x <= 1.
Lemma COS_bound : forall x:R, -1 <= cos x <= 1.
Lemma cos_sin_0 : forall x:R, ~ (cos x = 0 /\ sin x = 0).
Lemma cos_sin_0_var : forall x:R, cos x <> 0 \/ sin x <> 0.
Definition sin_lb (a:R) : R := sin_approx a 3.