Module Type NZPowProp
(Import A : NZOrdAxiomsSig')
(Import B : NZPow' A)
(Import C : NZMulOrderProp A).
Hint Rewrite pow_0_r pow_succ_r : nz.
(** Power and basic constants *)
Hint Rewrite pow_1_r pow_1_l : nz.
Hint Rewrite pow_2_r : nz.
(** Power and nullity *)
(** Power and addition, multiplication *)
(** Positivity *)
(** Monotonicity *)
(** NB: since 0^0 > 0^1, the following result isn't valid with a=0 *)
(** Injectivity *)
(** Monotonicity results, both ways *)
(** For any a>1, the a^x function is above the identity function *)
(** Someday, we should say something about the full Newton formula. In the meantime, we can at least provide some inequalities about (a+b)^c. *)
(** This upper bound can also be seen as a convexity proof for x^c : image of (a+b)/2 is below the middle of the images of a and b *)

Lemma pow_add_upper : forall a b c, 0<=a -> 0<=b -> 0<c ->
(a+b)^c <= 2^(pred c) * (a^c + b^c).