End IsNZDomain.
(** ** Axiomatization of some more constants *)
(** Simply denoting "1" for (S 0) and so on works ok when implementing by [nat], but leaves some ([N.succ N0]) when implementing by [N]. *)
Module Type OneTwo (Import T:Typ).
Parameter Inline(20) one two : t.
End OneTwo.
Module Type OneTwoNotation (T:Typ)(Import NZ:OneTwo T).
Notation "1" := one.
Notation "2" := two.
End OneTwoNotation.
Module Type OneTwo' (T:Typ) := OneTwo T <+ OneTwoNotation T.
Module Type IsOneTwo (E:Eq')(Z:ZeroSuccPred' E)(O:OneTwo' E).

(* Specifications: *)
Axiom one_succ : 1 == S 0.
Axiom two_succ : 2 == S 1.
End IsOneTwo.