(* Results about [pow_pos] and [pow_N] *)

Instance pow_ext : Proper (req ==> eq ==> req) (pow_pos rmul).Instance pow_N_ext : Proper (req ==> eq ==> req) (pow_N rI rmul).

(* Specifications: *)
Lemma pow_pos_0 p : pow_pos rmul 0 p == 0.
Lemma pow_pos_1 p : pow_pos rmul 1 p == 1.
Lemma pow_pos_cst c p : pow_pos rmul [c] p == [pow_pos cmul c p].
Lemma pow_pos_mul_l x y p : pow_pos rmul (x * y) p == pow_pos rmul x p * pow_pos rmul y p.
Lemma pow_pos_add_r x p1 p2 : pow_pos rmul x (p1+p2) == pow_pos rmul x p1 * pow_pos rmul x p2.
Lemma pow_pos_mul_r x p1 p2 : pow_pos rmul x (p1*p2) == pow_pos rmul (pow_pos rmul x p1) p2.
Lemma pow_pos_nz x p : ~x==0 -> ~pow_pos rmul x p == 0.
Lemma pow_pos_div a b p : ~ b == 0 -> pow_pos rmul (a / b) p == pow_pos rmul a p / pow_pos rmul b p.