Definition intr_inj := @mulrIz 1 (oner_neq0 R).

(* Specifications: *)
Lemma expr0z x : x ^ 0 = 1.
Lemma expr1z x : x ^ 1 = x.
Lemma exprN1 x : x ^ (-1) = x^-1.
Lemma invr_expz x n : (x ^ n)^-1 = x ^ (- n).
Lemma exprz_inv x n : (x^-1) ^ n = x ^ (- n).
Lemma exp1rz n : 1 ^ n = 1 :> R.
Lemma exprzD_ss x m n : (0 <= m) && (0 <= n) || (m <= 0) && (n <= 0) -> x ^ (m + n) = x ^ m * x ^ n.
Lemma commrXz x y n : GRing.comm x y -> GRing.comm x (y ^ n).
Lemma commrXz_wmulls x y n : 0 <= n -> GRing.comm x y -> (x * y) ^ n = x ^ n * y ^ n.
Lemma exprz_exp x m n : (x ^ m) ^ n = (x ^ (m * n)).
Lemma exprzAC x m n : (x ^ m) ^ n = (x ^ n) ^ m.
Lemma exprz_pmulzl x m n : 0 <= n -> (x *~ m) ^ n = x ^ n *~ (m ^ n).
Lemma expNrz x n : (- x) ^ n = (-1) ^ n * x ^ n :> R.
Lemma expfV (x : R) (i : int) : (x ^ i) ^-1 = (x ^-1) ^ i.
Lemma expfzMl x y n : (x * y) ^ n = x ^ n * y ^ n.
Lemma exprz_ge0 n x (hx : 0 <= x) : (0 <= x ^ n).
Lemma exprz_gt0 n x (hx : 0 < x) : (0 < x ^ n).