Section NullDerivative.
Context {V : NormedModule R_AbsRing}.
End NullDerivative.
(** * Iterated differential *)
(** ** Definition *)
Fixpoint Derive_n (f : R -> R) (n : nat) x :=
match n with
| O => f x
| S n => Derive (Derive_n f n) x
end.
Definition ex_derive_n f n x :=
match n with
| O => True
| S n => ex_derive (Derive_n f n) x
end.
Definition is_derive_n f n x l :=
match n with
| O => f x = l
| S n => is_derive (Derive_n f n) x l
end.
(** Extensionality *)
(** Constant function *)
(** ** Operations *)
(** *** Additive operators *)
(** Opposite *)
(** Addition of functions *)
(** Subtraction of functions *)
(** *** Multiplicative operators *)
(** Scalar multiplication *)
(** *** Composition *)
(** Composition with linear functions *)
(** * Taylor-Lagrange formula *)

Theorem Taylor_Lagrange :
forall f n x y, x < y ->
( forall t, x <= t <= y -> forall k, (k <= S n)%nat -> ex_derive_n f k t ) ->
exists zeta, x < zeta < y /\
f y =  sum_f_R0 (fun m => (y-x) ^ m / INR (fact m) * Derive_n f m x )  n
+ (y-x) ^ (S n) / INR (fact (S n)) * Derive_n f (S n) zeta.