End Scal_l.

(* Specifications: *)
Lemma Derive_scal_l (f : R -> R) (k x : R) :
Derive (fun x => f x * k) x = Derive f x * k.
Lemma is_derive_mult :
forall (f g : R -> R) (x : R) (df dg : R),
is_derive f x df ->
is_derive g x dg ->
is_derive (fun t : R => f t * g t) x (df * g x + f x * dg) .
Lemma ex_derive_mult (f g : R -> R) (x : R) :
ex_derive f x -> ex_derive g x
-> ex_derive (fun x : R => f x * g x) x.
Lemma Derive_mult (f g : R -> R) (x : R) :
ex_derive f x -> ex_derive g x
-> Derive (fun x => f x * g x) x = Derive f x * g x + f x * Derive g x.
Lemma is_derive_pow (f : R -> R) (n : nat) (x : R) (l : R) :
is_derive f x l -> is_derive (fun x : R => (f x)^n) x (INR n * l * (f x)^(pred n)).
Lemma ex_derive_pow (f : R -> R) (n : nat) (x : R) :
ex_derive f x -> ex_derive (fun x : R => (f x)^n) x.
Lemma Derive_pow (f : R -> R) (n : nat) (x : R) :
ex_derive f x -> Derive (fun x => (f x)^n) x = (INR n * Derive f x * (f x)^(pred n)).
Lemma is_derive_div :
forall (f g : R -> R) (x : R) (df dg : R),
is_derive f x df ->
is_derive g x dg ->
g x <> 0 ->
is_derive (fun t : R => f t / g t) x ((df * g x - f x * dg) / (g x ^ 2)).
Lemma ex_derive_div (f g : R -> R) (x : R) :
ex_derive f x -> ex_derive g x -> g x <> 0
-> ex_derive (fun y => f y / g y) x.
Lemma Derive_div (f g : R -> R) (x : R) :
ex_derive f x -> ex_derive g x -> g x <> 0
-> Derive (fun y => f y / g y) x = (Derive f x * g x - f x * Derive g x) / (g x) ^ 2.