elim (mult_eq_zero (S n) m); auto with arith.
intro; absurd (S n = 0); auto with arith.
Qed.

(* Specifications: *)
Lemma mult_reg_l : forall a b p : nat, p * a = p * b -> p = 0 \/ a = b.
intros a b p; generalize b; generalize a; clear a b.