Proof with Geometry.
intros.
assert (P<>Q).
unfold not;intro.
assert (parallel P Q U V).
subst P.
Geometry.
intuition.
cases_col R P Q.
assert {Y : Point | Col Y P Q /\ Col Y U V}.
apply inter_llex...
DecompEx H2 Y.
exists Y.
intuition idtac.
cut (parallel P Q R Y).
Geometry.
unfold parallel,S4.
replace (S P R Q) with (- S R P Q).
2:symmetry;Geometry.
replace (S P Q Y) with (S Y P Q).
2:symmetry;Geometry.
rewrite H1.
rewrite H2.
ring.
assert ({Y':Point | (parallel P Q R Y') /\ R<>Y'}).
apply euclid_parallel_existence_strong...
DecompExAnd H2 Y'.
suppose (~ parallel Y' R U V).
assert {Y:Point | (Col Y Y' R) /\ (Col Y U V) }.
eapply inter_llex...
DecompExAnd H3 Y.
exists Y.
split;try assumption.
cut (parallel P Q R Y).
Geometry.
eapply col_par_par.
apply H5.
assumption.
Geometry.
unfold not;intro.
assert (parallel P Q U V).
eapply parallel_transitivity;eauto.
Geometry.
intuition.
Qed.

(* Specifications: *)
Theorem on_inter_parallel_parallel_ex_aux: forall P Q R U V W:Point,
~(parallel P Q U V) ->
{Y:Point | (parallel Y R P Q) /\ (parallel Y W U V)}.