intros p H' H'0; case (mult_eqO p n); auto.
intros H'1; absurd (0 < n); auto; rewrite H'1; auto with arith.
intros m' H' p; case p; simpl in |- *; auto.
case n; simpl in |- *; intros; try discriminate; absurd (0 < 0);
auto with arith.
intros p' H'0 H'1.
rewrite (H' p'); auto.
apply plus_reg_l with (p := n); auto.
Qed.

(* Specifications: *)
Lemma div_unic_q :
forall a b q1 q2 r1 r2 : nat,
is_div a b q1 r1 -> is_div a b q2 r2 -> q1 = q2.
Lemma quot_eq :
forall a b c q1 r1 q2 r2 : nat,
a = b -> is_div a c q1 r1 -> is_div b c q2 r2 -> q1 = q2.
Lemma mult_div_r : forall x y q r : nat, is_div (x * y) y q r -> r = 0.
intros x y q r H'.