Section Ring1.
Context {K : Ring}.
Definition mult : K -> K -> K := Ring.mult _ (Ring.class K).
Definition one : K := Ring.one _ (Ring.class K).
(** pow_n *)
Fixpoint pow_n (x : K) (N : nat) {struct N} : K :=
match N with
| 0%nat => one
| S i => mult x (pow_n x i)
end.

Lemma pow_n_comm :
forall (x : K) n m, mult (pow_n x n) (pow_n x m) = mult (pow_n x m) (pow_n x n).