generalize (euclide a b H);intros.
elim s;intro q;intro.
elim p;intro r;intro.
tauto.
Qed.

(* Specifications: *)
(** a mod b where b<>0 *)
Lemma rem_euclide : forall (a b:nat)(H:(b<>O)),(remainder_euclide a b H)<b.
unfold remainder_euclide;intros.
(** Euclide division is unique *)
Lemma euclide_unique : forall (a b q r q' r':nat),(b<>O)->a=b*q+r->a=b*q'+r'->r<b->r'<b->(q=q')/\(r=r').
intros.