Add Relation R req
  reflexivity proved by (@Equivalence_Reflexive _ _ (SORsetoid sor))
  symmetry proved by (@Equivalence_Symmetric _ _ (SORsetoid sor))
  transitivity proved by (@Equivalence_Transitive _ _ (SORsetoid sor))
as sor_setoid.Add Morphism rplus with signature req ==> req ==> req as rplus_morph.Add Morphism rtimes with signature req ==> req ==> req as rtimes_morph.Add Morphism ropp with signature req ==> req as ropp_morph.Add Morphism rle with signature req ==> req ==> iff as rle_morph.Add Morphism rlt with signature req ==> req ==> iff as rlt_morph.Add Morphism rminus with signature req ==> req ==> req as rminus_morph.Ltac le_less := rewrite (Rle_lt_eq sor); left; try assumption.Ltac le_equal := rewrite (Rle_lt_eq sor); right; try reflexivity; try assumption.Definition gen_order_phi_Z : Z -> R := gen_phiZ 0 1 rplus rtimes ropp.Notation phi_pos := (gen_phiPOS 1 rplus rtimes).Notation phi_pos1 := (gen_phiPOS1 1 rplus rtimes).Notation "[ x ]" := (gen_order_phi_Z x).

Lemma Zring_morph : ring_morph 0 1 rplus rtimes rminus ropp req 0%Z 1%Z Z.add Z.mul Z.sub Z.opp Zeq_bool gen_order_phi_Z.