proposition: Lemma Z_pow_compat_pos : forall (p:positive) (x:Z), Z.pow_pos x p = N_bpow x (Npos p).
proof: Proof. intros; unfold Z.pow_pos. rewrite (Pos_iter_op_ok _ _ _ ZMult). rewrite (binary_power_mult_ok (E_one := 1%Z) (E_eq := eq_equiv)). rewrite N_bpow_ok. rewrite (one_left (Monoid := ZMult)) . reflexivity. Qed.
imports: additions(Monoid_def Monoid_instances Pow) Coq(Lia ArithRing)