unfold not in |- *.
intros x y H' H'0; try assumption.
absurd (Equal (ring_mult x y) (monoid_unit R)); auto with algebra.
apply Trans with (ring_mult (monoid_unit R) y); auto with algebra.
Qed.

(* Specifications: *)
Lemma INTEGRAL_DOMAIN_mult_r :
forall x y : R,
~ Equal (ring_mult x y) (monoid_unit R) -> ~ Equal y (monoid_unit R).