Section Commutative_rings.
Variable R1 : CRING.
exact (cring_com_prf R1).
Qed.
Hint Immediate CRING_com: algebra.
intros a b c d; try assumption.
apply Trans with (ring_mult a (ring_mult b (ring_mult c d)));
auto with algebra.
apply Trans with (ring_mult a (ring_mult (ring_mult b c) d));
auto with algebra.
apply Trans with (ring_mult a (ring_mult (ring_mult c b) d));
auto with algebra.
apply Trans with (ring_mult a (ring_mult c (ring_mult b d)));
auto with algebra.
Qed.
Hint Resolve CRING_mult4: algebra.

Lemma CRING_mult3 :
forall x y z : R1,
Equal (ring_mult x (ring_mult y z)) (ring_mult y (ring_mult x z)).