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 x (monoid_unit R)); auto with algebra.
Qed.

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