Definition continuous_2arg :=
  continuous (fun p:point_set X * point_set Y =>
              let (x,y):=p in f x y)
  (X:=ProductTopology2 X Y).Definition continuous_at_2arg (x:point_set X) (y:point_set Y) :=
  continuous_at (fun p:point_set X * point_set Y =>
                 let (x,y):=p in f x y)  (x, y)
  (X:=ProductTopology2 X Y).

Lemma continuous_composition_at_2arg: forall (W X Y Z:TopologicalSpace) (f:point_set X -> point_set Y -> point_set Z) (g:point_set W -> point_set X) (h:point_set W -> point_set Y) (w:point_set W), continuous_at_2arg f (g w) (h w) -> continuous_at g w -> continuous_at h w -> continuous_at (fun w:point_set W => f (g w) (h w)) w.