Proof with Geometry.
intros.
rename H2 into T.
unfold on_line_d in H.
decompose [and] H.
clear H.
assert (not (parallel A Y P Q)).
unfold not;intro.
unfold parallel, S4 in H.
assert ((S A Y Q) = (S A Y P) + (S A P Q) + (S P Y Q))...
rewrite H3 in H.
assert ((S A P Y) = - (S A Y P))...
rewrite H6 in H.
assert ((S P Y Q) = (-0)).
unfold Col in H2.
rewrite <- H2...
rewrite H7 in H.
assert  (-(S A Y P)+((S A Y P)+(S A P Q)+-0) = (S A P Q)).
ring.
rewrite H8 in H.
unfold Col in H0.
intuition.
unfold not;intro.
assert (parallel C D P Q)...
assert (parallel A Y P Q).
eapply parallel_transitivity;try apply H1 || auto.
auto.
intuition.
Qed.

(* Specifications: *)
Lemma non_zero_denom_on_line_2_length_ratio :
forall (A C D P Q Y : Point),
on_line Y P Q ->
S A P Q <> 0 ->
parallel A Y C D ->
C <> D ->
S4 C P D Q <> 0.