Section Lemmas.
Variable R : RING.
exact (sgroup_assoc_prf (E:=R) (ring_monoid R)).
Qed.
unfold ring_mult in |- *; auto with algebra.
Qed.
exact (monoid_unit_r_prf (ring_monoid R)).
Qed.
exact (monoid_unit_l_prf (ring_monoid R)).
Qed.
exact (ring_dist_r_prf R).
Qed.
exact (ring_dist_l_prf R).
Qed.
Hint Resolve RING_assoc RING_comp RING_unit_r RING_unit_l RING_dist_r
RING_dist_l: algebra.
intros x; try assumption.
apply GROUP_reg_right with (ring_mult x (monoid_unit R)).
apply Trans with (ring_mult x (sgroup_law R (monoid_unit R) (monoid_unit R)));
auto with algebra.
apply Trans with (ring_mult x (monoid_unit R)); auto with algebra.
Qed.
Hint Resolve RING_absorbant_r: algebra.

Lemma RING_absorbant_l :
forall x : R, Equal (ring_mult (monoid_unit R) x) (monoid_unit R).