replace V2' with (map injdroite V2).
unfold injdroite in |- *.
intros.
elimtype (exists y : Elt, dans y V2 /\ S' = (fun e : Elt => couple e un) y).
intros x temp; elim temp; clear temp.
intros dans_x_V2 S_egal.
absurd (S' = couple x un).
unfold S', zero in |- *.
discriminate.
auto.
apply (dans_map (fun e : Elt => couple e un)).
assumption.
unfold V2' in |- *.
simpl in |- *.
auto.
Qed.
Hint Resolve N_dans_S_V2'.

(* Specifications: *)
Lemma is_mono_u_X_V1_injproducg_V1 : is_mono (union X V1) (injproducg V1).
unfold is_mono in |- *.