intros.
elim H;intro q;intro.
elim H0;intro q';intro.
rewrite H2 in H1.
assert ((a = 0) \/ (q' * q)=1).
apply mult_lemma4.
replace (a*(q'*q)) with (a*q'*q);try (auto with arith).
case H3;intro.
rewrite H4 in H2;simpl in H2;rewrite H2;trivial.
elim (mult_lemma5 q' q H4);intros.
rewrite H5 in H2;rewrite mult_comm in H2;simpl in H2;rewrite plus_comm in H2;simpl in H2;symmetry;trivial.
Qed.

(* Specifications: *)
(** corollary: forall a<>1, not(a | 1) *)
Lemma non_div_1 : forall (a:nat),(a<>1)->~(divides 1 a).
intros.