proposition: Theorem nroot_Cpown : forall n:nat,forall z:C,n<>O-> Cpow (nroot n z) n=z.
proof: Proof. intros n z nneq0. unfold nroot. induction (Ceq_dec z 0) as [zeq0|zneq0]. rewrite zeq0. unfold Cpow. induction n. contradiction nneq0. reflexivity. apply Cmult_0_l. rewrite comCpow. rewrite moivre. rewrite (RCpow n). rewrite Cpowexp. rewrite (trigoform z) at 4. unfold Rdiv. repeat rewrite<-Rmult_assoc. repeat rewrite Rinv_r_simpl_m. rewrite exp_ln. reflexivity. apply Cmod_gt_0. assumption. apply not_0_INR. assumption. apply not_0_INR. assumption. Qed.
imports: Reals Coq.Reals.Rtrigo_def Coquelicot.Coquelicot Coquelicot.ElemFct Lra