(** The different divisions will only differ in the conditions they impose on [modulo]. For NZ, we have only described the behavior on positive numbers. *)
Module Type NZDiv (A : NZOrdAxiomsSig) := DivMod A <+ NZDivSpec A.
Module Type NZDiv' (A : NZOrdAxiomsSig) := NZDiv A <+ DivModNotation A.
Module Type NZDivProp
(Import A : NZOrdAxiomsSig')
(Import B : NZDiv' A)
(Import C : NZMulOrderProp A).
(** Uniqueness theorems *)

Theorem div_mod_unique :
forall b q1 q2 r1 r2, 0<=r1<b -> 0<=r2<b ->
b*q1+r1 == b*q2+r2 -> q1 == q2 /\ r1 == r2.