(* An object to return when an expression is not recognized as a constant *)
Definition NotConstant := false.

(* Specifications: *)
Lemma Zsth : Equivalence (@eq Z).
Lemma Zsth : Setoid_Theory Z (@eq Z).
Lemma Zeqe : ring_eq_ext Z.add Z.mul Z.opp (@eq Z).
Lemma Zth : ring_theory Z0 (Zpos xH) Z.add Z.mul Z.sub Z.opp (@eq Z).