Inductive weak_topology_subbasis : Family X :=
  | intro_fa_inv_image: forall (a:A) (V:Ensemble (point_set (Y a))),
    open V -> In weak_topology_subbasis (inverse_image (f a) V).Inductive weak_topology_subbasis : Family X :=
  | intro_fa_inv_image: forall (a:A) (V:Ensemble (point_set (Y a))),
    open V -> In weak_topology_subbasis (inverse_image (f a) V).Definition WeakTopology : TopologicalSpace :=
  Build_TopologicalSpace_from_subbasis X weak_topology_subbasis.

(* Specifications: *)
Lemma weak_topology_makes_continuous_funcs: forall a:A, continuous (f a) (X:=WeakTopology).
Lemma weak_topology_is_weakest: forall (T':Family X) (H1:_) (H2:_) (H3:_), (forall a:A, continuous (f a) (X := Build_TopologicalSpace X T' H1 H2 H3)) -> forall U:Ensemble X, @open WeakTopology U -> T' U.
Lemma net_limit_in_weak_topology_impl_net_limit_in_projections : net_limit x x0 -> forall a:A, net_limit (fun i:DS_set I => (f a) (x i)) ((f a) x0).
Lemma net_limit_in_projections_impl_net_limit_in_weak_topology : (forall a:A, net_limit (fun i:DS_set I => (f a) (x i)) ((f a) x0)) -> net_limit x x0.