Proof with Geometry.
intros.
assert (A<>B)
by (intro;subst;auto with Geom).
assert (P<>Q)
by (intro;subst;auto with Geom).
assert (Col A M N)
by (apply (col_trans_1 A B M N);auto).
assert (Col P M N)
by (apply (col_trans_1 P Q M N);auto).
cases_equality M N;auto.
assert (Col M A P)
by (apply (col_trans_1 M N A P); auto with Geom).
assert (Col B M N)
by (apply (col_trans_1 B A M N);auto with Geom).
assert (Col Q M N)
by (apply (col_trans_1 Q P M N);auto with Geom).
assert (Col M Q B)
by (apply (col_trans_1 M N Q B);auto with Geom).
cases_equality P M.
subst.
unfold parallel, S4 in *.
rewrite H12 in H.
basic_simpl.
clear H7 H9 H1 H3.
assert (Col M A Q)
by (apply  (col_trans_1 M N A Q);auto with Geom).
intuition.
assert (Col P A Q)
by (apply (col_trans_1 P M A Q);auto with Geom).
unfold parallel, S4 in *.
rewrite H14 in H.
basic_simpl.
cases_equality Q M.
subst.
clear H1 H11 H12 H14.
assert (Col M P B)
by (apply (col_trans_1 M N P B);auto with Geom).
assert (Col P M B) by auto with Geom.
intuition.
assert (Col Q B P)
by (apply (col_trans_1 Q M B P);auto with Geom).
assert (Col P Q B) by auto with Geom.
intuition.
Qed.

(* Specifications: *)
Theorem co_side_bis :
forall A B P Q M : Point,
~ parallel P Q A B ->
Col A B M -> Col P Q M -> Q ** M / P ** Q = S Q A B / S4 P A Q B.