(** The above [pow_neg_r] specification is useless (and trivially provable) for N. Having it here already allows deriving some slightly more general statements. *)
Module Type NZPow (A : NZOrdAxiomsSig) := Pow A <+ NZPowSpec A.
Module Type NZPow' (A : NZOrdAxiomsSig) := Pow' A <+ NZPowSpec A.
(** Derived properties of power *)
Module Type NZPowProp
(Import A : NZOrdAxiomsSig')
(Import B : NZPow' A)
(Import C : NZMulOrderProp A).
Global Hint Rewrite pow_0_r pow_succ_r : nz.
(** Power and basic constants *)

Lemma pow_1_l : forall a, 0<=a -> 1^a == 1.
Global Hint Rewrite pow_1_r pow_1_l : nz.