split.
intros.
elim (subspace_construction H).
intros.
exists x; auto.
intro; inversion_clear H.
generalize (is_subspace_OK x).
intro H; red in H; split; try split; intuition;
(apply in_part_comp_r with (x:part_set V); auto with algebra).
apply H; auto with algebra; (apply in_part_comp_r with Ws; auto with algebra).
apply H3; auto with algebra;
(apply in_part_comp_r with Ws; auto with algebra).
Qed.
Definition Set_of_subspaces : part_set (part_set V).
apply (Build_Predicate (Pred_fun:=fun W => is_subspace W)).
red in |- *.
intros.
red in |- *; red in H.
inversion_clear H.
inversion_clear H2.
split; try split.
apply in_part_comp_r with x; auto with algebra.
intros; (apply in_part_comp_r with x; auto with algebra).
apply H; auto with algebra.
apply in_part_comp_r with y; auto with algebra.
apply in_part_comp_r with y; auto with algebra.
intros.
apply in_part_comp_r with x; auto with algebra.
apply H3; auto with algebra; (apply in_part_comp_r with y; auto with algebra).
Defined.

(* Specifications: *)
(** - %\intoc{\bf Theorem 1.4}% *)
Lemma Set_of_subspaces_closed_under_intersection :
forall WS : part_set Set_of_subspaces,
is_subspace (intersection (inject_subsets WS)).