Section Def.
Variable R : INTEGRAL_DOMAIN.
Variable diff10 : ~ Equal (ring_unit R) (monoid_unit R).
Set Strict Implicit.
Unset Implicit Arguments.
Record fraction : Type :=
{num : R; den : R; den_prf : ~ Equal den (monoid_unit R)}.
Set Implicit Arguments.
Unset Strict Implicit.
Hint Resolve den_prf: algebra.
Definition eqfraction (x y : fraction) :=
Equal (ring_mult (num x) (den y)) (ring_mult (num y) (den x)).
red in |- *.
intros x; red in |- *.
red in |- *.
auto with algebra.
Qed.
Definition fraction0 := Build_fraction (monoid_unit R) (ring_unit R) diff10.

Lemma eqfraction0 :
forall x : fraction, eqfraction x fraction0 -> Equal (num x) (monoid_unit R).