(** * Operations *)

(* Specifications: *)
Lemma differentiable_pt_lim_comp : forall f1 f2 f3 x y l1x l1y l2x l2y l3x l3y,
differentiable_pt_lim f1 (f2 x y) (f3 x y) l1x l1y ->
differentiable_pt_lim f2 x y l2x l2y -> differentiable_pt_lim f3 x y l3x l3y ->
differentiable_pt_lim (fun u v => f1 (f2 u v) (f3 u v)) x y
(l1x * l2x + l1y * l3x) (l1x * l2y + l1y * l3y).
Lemma derivable_pt_lim_comp_2d : forall f1 f2 f3 x l1x l1y l2 l3,
differentiable_pt_lim f1 (f2 x) (f3 x) l1x l1y ->
derivable_pt_lim f2 x l2 -> derivable_pt_lim f3 x l3 ->
derivable_pt_lim (fun t => f1 (f2 t) (f3 t)) x (l1x * l2 + l1y * l3).