Add Parametric Relation : R req
       reflexivity  proved by (@Equivalence_Reflexive _ _ Rsth)
       symmetry     proved by (@Equivalence_Symmetric _ _ Rsth)
       transitivity proved by (@Equivalence_Transitive _ _ Rsth)
       as R_setoid4.Add Morphism radd with signature (req ==> req ==> req) as radd_ext4.Add Morphism rmul with signature (req ==> req ==> req) as rmul_ext4.Definition gen_phiN1 x :=
  match x with
  | N0 => 0
  | Npos x => gen_phiPOS1 1 radd rmul x
  end.Definition gen_phiN x :=
  match x with
  | N0 => 0
  | Npos x => gen_phiPOS 1 radd rmul x
  end.

(* Specifications: *)
Lemma same_genN : forall x, [x] == gen_phiN1 x.
Lemma gen_phiN_add : forall x y, [x + y] == [x] + [y].
Lemma gen_phiN_mult : forall x y, [x * y] == [x] * [y].
Lemma gen_phiN_sub : forall x y, [Nsub x y] == [x] - [y].
Lemma gen_phiN_morph : ring_morph 0 1 radd rmul rsub ropp req 0%N 1%N N.add N.mul Nsub Nopp N.eqb gen_phiN.