red.
split;intro.
generalize (quo_rem_euclide a b H);intro.
generalize (rem_euclide a b H);intro.
elim H0;intro q;intro.
assert (a=b*q+0).
rewrite plus_comm;simpl;trivial.
assert (0<b);try omega.
generalize (euclide_unique a b (quotient_euclide a b H) (remainder_euclide a b H) q 0 H H1 H4 H2 H5).
intros;tauto.
generalize (quo_rem_euclide a b H).
rewrite H0;rewrite plus_comm;simpl.
intro;exists (quotient_euclide a b H);trivial.
Qed.

(** divisibility is decidable *)
Lemma divides_dec : forall (a b:nat),{divides a b}+{~(divides a b)}.
intros.