1 (**************************************************************************)
4 (* ||A|| A project by Andrea Asperti *)
6 (* ||I|| Developers: *)
7 (* ||T|| The HELM team. *)
8 (* ||A|| http://helm.cs.unibo.it *)
10 (* \ / This file is distributed under the terms of the *)
11 (* v GNU General Public License Version 2 *)
13 (**************************************************************************)
15 (* This file was automatically generated: do not edit *********************)
19 (* $Id: NRootCC.v,v 1.9 2004/04/23 10:00:55 lcf Exp $ *)
21 (*#* printing sqrt_Half %\ensuremath{\sqrt{\frac12}}% *)
23 (*#* printing sqrt_I %\ensuremath{\sqrt{\imath}}% *)
25 (*#* printing nroot_I %\ensuremath{\sqrt[n]{\imath}}% *)
27 (*#* printing nroot_minus_I %\ensuremath{\sqrt[n]{-\imath}}% *)
29 include "complex/CComplex.ma".
31 (*#* * Roots of Complex Numbers
33 Properties of non-zero complex numbers
40 inline procedural "cic:/CoRN/complex/NRootCC/cc_ap_zero.con" as lemma.
42 inline procedural "cic:/CoRN/complex/NRootCC/C_cc_ap_zero.con" as lemma.
54 inline procedural "cic:/CoRN/complex/NRootCC/imag_to_real.con" as lemma.
60 (*#* ** Roots of the imaginary unit *)
66 inline procedural "cic:/CoRN/complex/NRootCC/sqrt_Half.con" as definition.
68 inline procedural "cic:/CoRN/complex/NRootCC/sqrt_I.con" as definition.
70 inline procedural "cic:/CoRN/complex/NRootCC/sqrt_I_nexp.con" as lemma.
72 inline procedural "cic:/CoRN/complex/NRootCC/nroot_I_nexp_aux.con" as lemma.
74 inline procedural "cic:/CoRN/complex/NRootCC/nroot_I.con" as definition.
76 inline procedural "cic:/CoRN/complex/NRootCC/nroot_I_nexp.con" as lemma.
79 Hint Resolve nroot_I_nexp: algebra.
82 inline procedural "cic:/CoRN/complex/NRootCC/nroot_minus_I.con" as definition.
84 inline procedural "cic:/CoRN/complex/NRootCC/nroot_minus_I_nexp.con" as lemma.
90 (*#* ** Roots of complex numbers *)
96 (*#* We define the nth root of a complex number with a non zero imaginary part.
100 Section NRootCC_1_ap_real
104 %\begin{convention}% Let [a,b : IR] and [b_ : (b [#] Zero)].
105 Define [c2 := a[^]2[+]b[^]2], [c := sqrt c2], [a'2 := (c[+]a) [*]Half],
106 [a' := sqrt a'2], [b'2 := (c[-]a) [*]Half] and [b' := sqrt b'2].
111 cic:/CoRN/complex/NRootCC/NRootCC_1/NRootCC_1_ap_real/a.var
115 cic:/CoRN/complex/NRootCC/NRootCC_1/NRootCC_1_ap_real/b.var
119 cic:/CoRN/complex/NRootCC/NRootCC_1/NRootCC_1_ap_real/b_.var
124 inline procedural "cic:/CoRN/complex/NRootCC/NRootCC_1/NRootCC_1_ap_real/c2.con" "NRootCC_1__NRootCC_1_ap_real__" as definition.
128 inline procedural "cic:/CoRN/complex/NRootCC/nrCC1_c2pos.con" as lemma.
132 inline procedural "cic:/CoRN/complex/NRootCC/NRootCC_1/NRootCC_1_ap_real/c.con" "NRootCC_1__NRootCC_1_ap_real__" as definition.
134 inline procedural "cic:/CoRN/complex/NRootCC/NRootCC_1/NRootCC_1_ap_real/a'2.con" "NRootCC_1__NRootCC_1_ap_real__" as definition.
138 inline procedural "cic:/CoRN/complex/NRootCC/nrCC1_a'2pos.con" as lemma.
142 inline procedural "cic:/CoRN/complex/NRootCC/NRootCC_1/NRootCC_1_ap_real/a'.con" "NRootCC_1__NRootCC_1_ap_real__" as definition.
144 inline procedural "cic:/CoRN/complex/NRootCC/NRootCC_1/NRootCC_1_ap_real/b'2.con" "NRootCC_1__NRootCC_1_ap_real__" as definition.
148 inline procedural "cic:/CoRN/complex/NRootCC/nrCC1_b'2pos.con" as lemma.
152 inline procedural "cic:/CoRN/complex/NRootCC/NRootCC_1/NRootCC_1_ap_real/b'.con" "NRootCC_1__NRootCC_1_ap_real__" as definition.
156 inline procedural "cic:/CoRN/complex/NRootCC/nrCC1_a3.con" as lemma.
158 inline procedural "cic:/CoRN/complex/NRootCC/nrCC1_a4.con" as lemma.
161 Hint Resolve nrCC1_a4: algebra.
164 inline procedural "cic:/CoRN/complex/NRootCC/nrCC1_a5.con" as lemma.
166 inline procedural "cic:/CoRN/complex/NRootCC/nrCC1_a6.con" as lemma.
168 inline procedural "cic:/CoRN/complex/NRootCC/nrCC1_a6'.con" as lemma.
171 Hint Resolve nrCC1_a5: algebra.
174 inline procedural "cic:/CoRN/complex/NRootCC/nrCC1_a7_upper.con" as lemma.
176 inline procedural "cic:/CoRN/complex/NRootCC/nrCC1_a7_lower.con" as lemma.
179 Hint Resolve nrCC1_a3 nrCC1_a7_upper nrCC1_a7_lower: algebra.
182 inline procedural "cic:/CoRN/complex/NRootCC/nrootCC_1_upper.con" as lemma.
184 inline procedural "cic:/CoRN/complex/NRootCC/nrootCC_1_lower.con" as lemma.
186 inline procedural "cic:/CoRN/complex/NRootCC/nrootCC_1_ap_real.con" as lemma.
189 End NRootCC_1_ap_real
192 (*#* We now define the nth root of a complex number with a non zero real part.
196 Section NRootCC_1_ap_imag
200 %\begin{convention}% Let [a,b : IR] and [a_ : (a [#] Zero)] and define
201 [c' := (a[+I*]b) [*][--]II := a'[+I*]b'].
206 cic:/CoRN/complex/NRootCC/NRootCC_1/NRootCC_1_ap_imag/a.var
210 cic:/CoRN/complex/NRootCC/NRootCC_1/NRootCC_1_ap_imag/b.var
214 cic:/CoRN/complex/NRootCC/NRootCC_1/NRootCC_1_ap_imag/a_.var
219 inline procedural "cic:/CoRN/complex/NRootCC/NRootCC_1/NRootCC_1_ap_imag/c'.con" "NRootCC_1__NRootCC_1_ap_imag__" as definition.
221 inline procedural "cic:/CoRN/complex/NRootCC/NRootCC_1/NRootCC_1_ap_imag/a'.con" "NRootCC_1__NRootCC_1_ap_imag__" as definition.
223 inline procedural "cic:/CoRN/complex/NRootCC/NRootCC_1/NRootCC_1_ap_imag/b'.con" "NRootCC_1__NRootCC_1_ap_imag__" as definition.
228 Hint Resolve sqrt_I_nexp: algebra.
231 inline procedural "cic:/CoRN/complex/NRootCC/nrootCC_1_ap_imag.con" as lemma.
234 End NRootCC_1_ap_imag
237 (*#* We now define the roots of arbitrary non zero complex numbers. *)
239 inline procedural "cic:/CoRN/complex/NRootCC/nrootCC_1.con" as lemma.
250 %\begin{convention}% Let [n : nat] and [c,z : CC] and [c_:(c [#] Zero)].
255 cic:/CoRN/complex/NRootCC/NRootCC_2/n.var
259 cic:/CoRN/complex/NRootCC/NRootCC_2/c.var
263 cic:/CoRN/complex/NRootCC/NRootCC_2/z.var
267 cic:/CoRN/complex/NRootCC/NRootCC_2/c_.var
270 inline procedural "cic:/CoRN/complex/NRootCC/nrootCC_2'.con" as lemma.
272 inline procedural "cic:/CoRN/complex/NRootCC/nrootCC_2.con" as lemma.
282 inline procedural "cic:/CoRN/complex/NRootCC/Im_poly.con" as definition.
284 inline procedural "cic:/CoRN/complex/NRootCC/nrCC3_a1.con" as lemma.
286 inline procedural "cic:/CoRN/complex/NRootCC/nrCC3_a2.con" as lemma.
289 %\begin{convention}% Let [a,b : IR], [b_ : (b [#] Zero)] and [n : nat].
294 cic:/CoRN/complex/NRootCC/NRootCC_3/a.var
298 cic:/CoRN/complex/NRootCC/NRootCC_3/b.var
302 cic:/CoRN/complex/NRootCC/NRootCC_3/b_.var
306 cic:/CoRN/complex/NRootCC/NRootCC_3/n.var
309 inline procedural "cic:/CoRN/complex/NRootCC/nrCC3_poly''.con" as definition.
311 inline procedural "cic:/CoRN/complex/NRootCC/nrCC3_a3.con" as lemma.
313 inline procedural "cic:/CoRN/complex/NRootCC/nrCC3_a4.con" as lemma.
315 inline procedural "cic:/CoRN/complex/NRootCC/nrCC3_a5.con" as lemma.
317 inline procedural "cic:/CoRN/complex/NRootCC/nrCC3_a6.con" as lemma.
319 inline procedural "cic:/CoRN/complex/NRootCC/nrCC3_poly'.con" as definition.
322 Hint Resolve nrCC3_a3: algebra.
325 inline procedural "cic:/CoRN/complex/NRootCC/nrCC3_a7.con" as lemma.
327 inline procedural "cic:/CoRN/complex/NRootCC/nrCC3_a8.con" as lemma.
330 Hint Resolve nth_coeff_p_mult_c_: algebra.
334 Hint Resolve nrCC3_a6: algebra.
337 inline procedural "cic:/CoRN/complex/NRootCC/nrCC3_a9.con" as lemma.
339 inline procedural "cic:/CoRN/complex/NRootCC/nrootCC_3_poly.con" as definition.
342 Hint Resolve nrCC3_a1 nrCC3_a7: algebra.
345 inline procedural "cic:/CoRN/complex/NRootCC/nrootCC_3_.con" as lemma.
348 Hint Resolve nrootCC_3_: algebra.
352 Hint Resolve calculate_Im: algebra.
355 inline procedural "cic:/CoRN/complex/NRootCC/nrootCC_3.con" as lemma.
358 Hint Resolve nrCC3_a2: algebra.
362 Hint Resolve nrCC3_a9: algebra.
365 inline procedural "cic:/CoRN/complex/NRootCC/nrootCC_3_degree.con" as lemma.
376 %\begin{convention}% Let [c:IR], [n:nat] and [n_:(lt (0) n)].
381 cic:/CoRN/complex/NRootCC/NRootCC_3'/c.var
385 cic:/CoRN/complex/NRootCC/NRootCC_3'/n.var
389 cic:/CoRN/complex/NRootCC/NRootCC_3'/n_.var
392 inline procedural "cic:/CoRN/complex/NRootCC/nrootCC_3'_poly.con" as definition.
394 inline procedural "cic:/CoRN/complex/NRootCC/nrootCC_3'.con" as lemma.
396 inline procedural "cic:/CoRN/complex/NRootCC/nrootCC_3'_degree.con" as lemma.
407 Section NRootCC_4_ap_real
411 %\begin{convention}% Let [a,b : IR], [b_ : (b [#] Zero)], [n : nat] and
412 [n_:(odd n)]; define [c := a[+I*]b].
417 cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_real/a.var
421 cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_real/b.var
425 cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_real/b_.var
429 cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_real/n.var
433 cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_real/n_.var
438 inline procedural "cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_real/c.con" "NRootCC_4__NRootCC_4_ap_real__" as definition.
443 Section NRootCC_4_solutions
447 Hint Resolve nrootCC_3: algebra.
450 inline procedural "cic:/CoRN/complex/NRootCC/nrCC4_a1.con" as lemma.
453 %\begin{convention}% Let [r2',c2 : IR] and [r2'_ : (r2' [#] Zero)].
458 cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_real/NRootCC_4_solutions/r2'.var
462 cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_real/NRootCC_4_solutions/c2.var
466 cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_real/NRootCC_4_solutions/r2'_.var
470 Hint Resolve nrootCC_3': algebra.
473 inline procedural "cic:/CoRN/complex/NRootCC/nrCC4_a1'.con" as lemma.
476 End NRootCC_4_solutions
480 Section NRootCC_4_equations
484 %\begin{convention}% Let [r,y2 : IR] be such that
485 [(r[+I*]One) [^]n[*] (CC_conj c) [-] (r[+I*][--]One) [^]n[*]c [=] Zero]
486 and [(y2[*] (r[^] (2) [+]One)) [^]n [=] a[^] (2) [+]b[^] (2)].
491 cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_real/NRootCC_4_equations/r.var
495 cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_real/NRootCC_4_equations/r_property.var
499 cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_real/NRootCC_4_equations/y2.var
503 cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_real/NRootCC_4_equations/y2_property.var
506 inline procedural "cic:/CoRN/complex/NRootCC/nrCC4_a2.con" as lemma.
508 inline procedural "cic:/CoRN/complex/NRootCC/nrCC4_a3.con" as lemma.
510 inline procedural "cic:/CoRN/complex/NRootCC/nrCC4_a4.con" as lemma.
512 inline procedural "cic:/CoRN/complex/NRootCC/nrCC4_y.con" as definition.
514 inline procedural "cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_real/NRootCC_4_equations/y.con" "NRootCC_4__NRootCC_4_ap_real__NRootCC_4_equations__" as definition.
516 inline procedural "cic:/CoRN/complex/NRootCC/nrCC4_x.con" as definition.
518 inline procedural "cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_real/NRootCC_4_equations/x.con" "NRootCC_4__NRootCC_4_ap_real__NRootCC_4_equations__" as definition.
520 inline procedural "cic:/CoRN/complex/NRootCC/nrCC4_a5.con" as lemma.
522 inline procedural "cic:/CoRN/complex/NRootCC/nrCC4_a6.con" as lemma.
524 inline procedural "cic:/CoRN/complex/NRootCC/nrCC4_z.con" as definition.
526 inline procedural "cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_real/NRootCC_4_equations/z.con" "NRootCC_4__NRootCC_4_ap_real__NRootCC_4_equations__" as definition.
528 inline procedural "cic:/CoRN/complex/NRootCC/nrCC4_a7.con" as lemma.
531 Hint Resolve nrCC4_a6: algebra.
534 inline procedural "cic:/CoRN/complex/NRootCC/nrCC4_a8.con" as lemma.
536 inline procedural "cic:/CoRN/complex/NRootCC/nrCC4_a9.con" as lemma.
539 End NRootCC_4_equations
542 inline procedural "cic:/CoRN/complex/NRootCC/nrCC4_a10.con" as lemma.
544 inline procedural "cic:/CoRN/complex/NRootCC/nrootCC_4_ap_real.con" as lemma.
547 End NRootCC_4_ap_real
551 Section NRootCC_4_ap_imag
555 %\begin{convention}% Let [a,b : IR] and [n : nat] with [a [#] Zero]
556 and [(odd n)]; define [c' := (a[+I*]b) [*]II := a'[+I*]b'].
561 cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_imag/a.var
565 cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_imag/b.var
569 cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_imag/a_.var
573 cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_imag/n.var
577 cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_imag/n_.var
582 inline procedural "cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_imag/c'.con" "NRootCC_4__NRootCC_4_ap_imag__" as definition.
584 inline procedural "cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_imag/a'.con" "NRootCC_4__NRootCC_4_ap_imag__" as definition.
586 inline procedural "cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_imag/b'.con" "NRootCC_4__NRootCC_4_ap_imag__" as definition.
590 inline procedural "cic:/CoRN/complex/NRootCC/nrootCC_4_ap_real'.con" as lemma.
593 Hint Resolve nroot_minus_I_nexp: algebra.
596 inline procedural "cic:/CoRN/complex/NRootCC/nrootCC_4_ap_imag.con" as lemma.
599 End NRootCC_4_ap_imag
602 inline procedural "cic:/CoRN/complex/NRootCC/nrootCC_4.con" as lemma.
608 (*#* Finally, the general definition of nth root. *)
614 inline procedural "cic:/CoRN/complex/NRootCC/nrCC_5a2.con" as lemma.
616 inline procedural "cic:/CoRN/complex/NRootCC/nrCC_5a3.con" as lemma.
619 Hint Resolve nrCC_5a3: algebra.
623 %\begin{convention}% Let [c : CC] with [c [#] Zero].
628 cic:/CoRN/complex/NRootCC/NRootCC_5/c.var
632 cic:/CoRN/complex/NRootCC/NRootCC_5/c_.var
635 inline procedural "cic:/CoRN/complex/NRootCC/nrCC_5a4.con" as lemma.
637 inline procedural "cic:/CoRN/complex/NRootCC/nrootCC_5.con" as lemma.
643 (*#* Final definition *)
645 inline procedural "cic:/CoRN/complex/NRootCC/CnrootCC.con" as definition.