Let prod2_proj := fun i:twoT =>
match i return (point_set X * point_set Y ->
point_set (prod2_fun i)) with
| twoT_1 => @fst (point_set X) (point_set Y)
| twoT_2 => @snd (point_set X) (point_set Y)
end.
Definition ProductTopology2 : TopologicalSpace :=
WeakTopology prod2_proj.

Lemma product2_map_continuous: forall (W:TopologicalSpace)
(f:point_set W -> point_set X) (g:point_set W -> point_set Y)
(w:point_set W),
continuous_at f w -> continuous_at g w ->
continuous_at (fun w:point_set W => (f w, g w)) w
(Y:=ProductTopology2).