Require Export TopologicalSpaces.
Require Export WeakTopology.
Section product_topology.
Variable A:Type.
Variable X:forall a:A, TopologicalSpace.
Definition product_space_point_set : Type :=
forall a:A, point_set (X a).
Definition product_space_proj (a:A) : product_space_point_set ->
point_set (X a) :=
fun (x:product_space_point_set) => x a.
Definition ProductTopology : TopologicalSpace :=
WeakTopology product_space_proj.

(* Specifications: *)
Lemma product_space_proj_continuous: forall a:A,
continuous (product_space_proj a) (X:=ProductTopology).
Lemma product_net_limit: forall (I:DirectedSet)
(x:Net I ProductTopology) (x0:point_set ProductTopology),
inhabited (DS_set I) ->
(forall a:A, net_limit (fun i:DS_set I => x i a) (x0 a)) ->
net_limit x x0.