:: POLYEQ_3 semantic presentation

Lemma1: 0 = [*0,0*]
by ARYTM_0:def 7;

definition
let c1 be Real;
let c2 be Element of COMPLEX ;
redefine func * as c1 * c2 -> Element of COMPLEX ;
correctness
coherence
c1 * c2 is Element of COMPLEX
;
by XCMPLX_0:def 2;
redefine func + as c1 + c2 -> Element of COMPLEX ;
correctness
coherence
c1 + c2 is Element of COMPLEX
;
by XCMPLX_0:def 2;
end;

definition
let c1 be Element of COMPLEX ;
redefine func ^2 as c1 ^2 -> Element of COMPLEX equals :: POLYEQ_3:def 1
(((Re a1) ^2 ) - ((Im a1) ^2 )) + ((2 * ((Re a1) * (Im a1))) * <i> );
compatibility
for b1 being Element of COMPLEX holds
( b1 = c1 ^2 iff b1 = (((Re c1) ^2 ) - ((Im c1) ^2 )) + ((2 * ((Re c1) * (Im c1))) * <i> ) )
proof end;
correctness
coherence
c1 ^2 is Element of COMPLEX
;
by XCMPLX_0:def 2;
end;

:: deftheorem Def1 defines ^2 POLYEQ_3:def 1 :
for b1 being Element of COMPLEX holds b1 ^2 = (((Re b1) ^2 ) - ((Im b1) ^2 )) + ((2 * ((Re b1) * (Im b1))) * <i> );

definition
let c1, c2, c3 be Real;
let c4 be Element of COMPLEX ;
redefine func Poly2 as Poly2 c1,c2,c3,c4 -> Element of COMPLEX ;
coherence
Poly2 c1,c2,c3,c4 is Element of COMPLEX
by XCMPLX_0:def 2;
end;

theorem Th1: :: POLYEQ_3:1
for b1, b2, b3, b4 being Real holds (b1 + (b2 * <i> )) * (b3 + (b4 * <i> )) = ((b1 * b3) - (b2 * b4)) + (((b1 * b4) + (b3 * b2)) * <i> ) ;

theorem Th2: :: POLYEQ_3:2
for b1, b2 being Real holds [*b1,b2*] ^2 = ((b1 ^2 ) - (b2 ^2 )) + (((2 * b1) * b2) * <i> )
proof end;

theorem Th3: :: POLYEQ_3:3
canceled;

theorem Th4: :: POLYEQ_3:4
for b1, b2, b3 being Real
for b4 being Element of COMPLEX st b1 <> 0 & delta b1,b2,b3 >= 0 & Poly2 b1,b2,b3,b4 = 0 & not b4 = ((- b2) + (sqrt (delta b1,b2,b3))) / (2 * b1) & not b4 = ((- b2) - (sqrt (delta b1,b2,b3))) / (2 * b1) holds
b4 = - (b2 / (2 * b1))
proof end;

theorem Th5: :: POLYEQ_3:5
for b1, b2, b3 being Real
for b4 being Element of COMPLEX st b1 <> 0 & delta b1,b2,b3 < 0 & Poly2 b1,b2,b3,b4 = 0 & not b4 = (- (b2 / (2 * b1))) + (((sqrt (- (delta b1,b2,b3))) / (2 * b1)) * <i> ) holds
b4 = (- (b2 / (2 * b1))) + ((- ((sqrt (- (delta b1,b2,b3))) / (2 * b1))) * <i> )
proof end;

theorem Th6: :: POLYEQ_3:6
for b1, b2 being Real
for b3 being Element of COMPLEX st b1 <> 0 & ( for b4 being Element of COMPLEX holds Poly2 0,b1,b2,b4 = 0 ) holds
b3 = - (b2 / b1)
proof end;

theorem Th7: :: POLYEQ_3:7
for b1, b2, b3 being Real
for b4, b5, b6 being complex number st b1 <> 0 & ( for b7 being complex number holds Poly2 b1,b2,b3,b7 = Quard b1,b5,b6,b7 ) holds
( b2 / b1 = - (b5 + b6) & b3 / b1 = b5 * b6 )
proof end;

definition
let c1 be complex number ;
func c1 ^3 -> Element of COMPLEX equals :: POLYEQ_3:def 2
(a1 ^2 ) * a1;
correctness
coherence
(c1 ^2 ) * c1 is Element of COMPLEX
;
by XCMPLX_0:def 2;
end;

:: deftheorem Def2 defines ^3 POLYEQ_3:def 2 :
for b1 being complex number holds b1 ^3 = (b1 ^2 ) * b1;

definition
let c1, c2, c3, c4 be Real;
let c5 be complex number ;
func Poly_3 c1,c2,c3,c4,c5 -> Element of COMPLEX equals :: POLYEQ_3:def 3
(((a1 * (a5 ^3 )) + (a2 * (a5 ^2 ))) + (a3 * a5)) + a4;
coherence
(((c1 * (c5 ^3 )) + (c2 * (c5 ^2 ))) + (c3 * c5)) + c4 is Element of COMPLEX
by XCMPLX_0:def 2;
end;

:: deftheorem Def3 defines Poly_3 POLYEQ_3:def 3 :
for b1, b2, b3, b4 being Real
for b5 being complex number holds Poly_3 b1,b2,b3,b4,b5 = (((b1 * (b5 ^3 )) + (b2 * (b5 ^2 ))) + (b3 * b5)) + b4;

theorem Th8: :: POLYEQ_3:8
0c ^3 = 0 by COMPLEX1:def 6;

theorem Th9: :: POLYEQ_3:9
1 ^3 = 1 ;

theorem Th10: :: POLYEQ_3:10
(- 1) ^3 = - 1 ;

theorem Th11: :: POLYEQ_3:11
for b1 being Element of COMPLEX holds
( Re (b1 ^3 ) = ((Re b1) |^ 3) - ((3 * (Re b1)) * ((Im b1) ^2 )) & Im (b1 ^3 ) = (- ((Im b1) |^ 3)) + ((3 * ((Re b1) ^2 )) * (Im b1)) )
proof end;

theorem Th12: :: POLYEQ_3:12
for b1, b2, b3, b4, b5, b6, b7, b8 being Real st ( for b9 being complex number holds Poly_3 b1,b2,b3,b4,b9 = Poly_3 b5,b6,b7,b8,b9 ) holds
( b1 = b5 & b2 = b6 & b3 = b7 & b4 = b8 )
proof end;

theorem Th13: :: POLYEQ_3:13
for b1, b2 being Element of COMPLEX holds (b1 + b2) ^3 = (((b1 ^3 ) + ((3 * b2) * (b1 ^2 ))) + ((3 * (b2 ^2 )) * b1)) + (b2 ^3 ) ;

theorem Th14: :: POLYEQ_3:14
for b1, b2 being Element of COMPLEX holds (b1 * b2) ^3 = (b1 ^3 ) * (b2 ^3 ) ;

theorem Th15: :: POLYEQ_3:15
for b1, b2, b3 being Real
for b4 being Element of COMPLEX st b1 <> 0 & Poly_3 0,b1,b2,b3,b4 = 0 & delta b1,b2,b3 >= 0 & not b4 = ((- b2) + (sqrt (delta b1,b2,b3))) / (2 * b1) & not b4 = ((- b2) - (sqrt (delta b1,b2,b3))) / (2 * b1) holds
b4 = - (b2 / (2 * b1))
proof end;

theorem Th16: :: POLYEQ_3:16
for b1, b2, b3 being Real
for b4 being Element of COMPLEX st b1 <> 0 & Poly_3 0,b1,b2,b3,b4 = 0 & delta b1,b2,b3 < 0 & not b4 = (- (b2 / (2 * b1))) + (((sqrt (- (delta b1,b2,b3))) / (2 * b1)) * <i> ) holds
b4 = (- (b2 / (2 * b1))) + ((- ((sqrt (- (delta b1,b2,b3))) / (2 * b1))) * <i> )
proof end;

theorem Th17: :: POLYEQ_3:17
for b1, b2 being Real
for b3 being Element of COMPLEX st b1 <> 0 & Poly_3 b1,0,b2,0,b3 = 0 & (4 * b1) * b2 <= 0 & not b3 = (sqrt (- ((4 * b1) * b2))) / (2 * b1) & not b3 = (- (sqrt (- ((4 * b1) * b2)))) / (2 * b1) holds
b3 = 0
proof end;

theorem Th18: :: POLYEQ_3:18
for b1, b2, b3 being Real
for b4 being Element of COMPLEX st b1 <> 0 & Poly_3 b1,b2,b3,0,b4 = 0 & delta b1,b2,b3 >= 0 & not b4 = ((- b2) + (sqrt (delta b1,b2,b3))) / (2 * b1) & not b4 = ((- b2) - (sqrt (delta b1,b2,b3))) / (2 * b1) & not b4 = - (b2 / (2 * b1)) holds
b4 = 0
proof end;

theorem Th19: :: POLYEQ_3:19
for b1, b2, b3 being Real
for b4 being Element of COMPLEX st b1 <> 0 & Poly_3 b1,b2,b3,0,b4 = 0 & delta b1,b2,b3 < 0 & not b4 = (- (b2 / (2 * b1))) + (((sqrt (- (delta b1,b2,b3))) / (2 * b1)) * <i> ) & not b4 = (- (b2 / (2 * b1))) + ((- ((sqrt (- (delta b1,b2,b3))) / (2 * b1))) * <i> ) holds
b4 = 0
proof end;

theorem Th20: :: POLYEQ_3:20
for b1, b2 being Real holds
( not b1 ^2 = b2 or b1 = sqrt b2 or b1 = - (sqrt b2) )
proof end;

theorem Th21: :: POLYEQ_3:21
for b1, b2, b3 being Real
for b4 being Element of COMPLEX st b1 <> 0 & Poly_3 b1,0,b2,b3,b4 = 0 & Im b4 = 0 holds
for b5, b6 being Real st Re b4 = b5 + b6 & ((3 * b6) * b5) + (b2 / b1) = 0 & not b4 = (3 -root ((- (b3 / (2 * b1))) + (sqrt (((b3 ^2 ) / (4 * (b1 ^2 ))) + ((b2 / (3 * b1)) |^ 3))))) + (3 -root ((- (b3 / (2 * b1))) - (sqrt (((b3 ^2 ) / (4 * (b1 ^2 ))) + ((b2 / (3 * b1)) |^ 3))))) & not b4 = (3 -root ((- (b3 / (2 * b1))) + (sqrt (((b3 ^2 ) / (4 * (b1 ^2 ))) + ((b2 / (3 * b1)) |^ 3))))) + (3 -root ((- (b3 / (2 * b1))) + (sqrt (((b3 ^2 ) / (4 * (b1 ^2 ))) + ((b2 / (3 * b1)) |^ 3))))) holds
b4 = (3 -root ((- (b3 / (2 * b1))) - (sqrt (((b3 ^2 ) / (4 * (b1 ^2 ))) + ((b2 / (3 * b1)) |^ 3))))) + (3 -root ((- (b3 / (2 * b1))) - (sqrt (((b3 ^2 ) / (4 * (b1 ^2 ))) + ((b2 / (3 * b1)) |^ 3)))))
proof end;

theorem Th22: :: POLYEQ_3:22
for b1, b2, b3 being Real
for b4 being Element of COMPLEX st b1 <> 0 & Poly_3 b1,0,b2,b3,b4 = 0 & Im b4 <> 0 holds
for b5, b6 being Real st Re b4 = b5 + b6 & ((3 * b6) * b5) + (b2 / (4 * b1)) = 0 & b2 / b1 >= 0 & not b4 = ((3 -root ((b3 / (16 * b1)) + (sqrt (((b3 / (16 * b1)) ^2 ) + ((b2 / (12 * b1)) |^ 3))))) + (3 -root ((b3 / (16 * b1)) - (sqrt (((b3 / (16 * b1)) ^2 ) + ((b2 / (12 * b1)) |^ 3)))))) + ((sqrt ((3 * (((3 -root ((b3 / (16 * b1)) + (sqrt (((b3 / (16 * b1)) ^2 ) + ((b2 / (12 * b1)) |^ 3))))) + (3 -root ((b3 / (16 * b1)) - (sqrt (((b3 / (16 * b1)) ^2 ) + ((b2 / (12 * b1)) |^ 3)))))) ^2 )) + (b2 / b1))) * <i> ) & not b4 = ((3 -root ((b3 / (16 * b1)) + (sqrt (((b3 / (16 * b1)) ^2 ) + ((b2 / (12 * b1)) |^ 3))))) + (3 -root ((b3 / (16 * b1)) - (sqrt (((b3 / (16 * b1)) ^2 ) + ((b2 / (12 * b1)) |^ 3)))))) - ((sqrt ((3 * (((3 -root ((b3 / (16 * b1)) + (sqrt (((b3 / (16 * b1)) ^2 ) + ((b2 / (12 * b1)) |^ 3))))) + (3 -root ((b3 / (16 * b1)) - (sqrt (((b3 / (16 * b1)) ^2 ) + ((b2 / (12 * b1)) |^ 3)))))) ^2 )) + (b2 / b1))) * <i> ) & not b4 = (2 * (3 -root ((b3 / (16 * b1)) + (sqrt (((b3 / (16 * b1)) ^2 ) + ((b2 / (12 * b1)) |^ 3)))))) + ((sqrt ((3 * ((2 * (3 -root ((b3 / (16 * b1)) + (sqrt (((b3 / (16 * b1)) ^2 ) + ((b2 / (12 * b1)) |^ 3)))))) ^2 )) + (b2 / b1))) * <i> ) & not b4 = (2 * (3 -root ((b3 / (16 * b1)) + (sqrt (((b3 / (16 * b1)) ^2 ) + ((b2 / (12 * b1)) |^ 3)))))) - ((sqrt ((3 * ((2 * (3 -root ((b3 / (16 * b1)) + (sqrt (((b3 / (16 * b1)) ^2 ) + ((b2 / (12 * b1)) |^ 3)))))) ^2 )) + (b2 / b1))) * <i> ) & not b4 = (2 * (3 -root ((b3 / (16 * b1)) - (sqrt (((b3 / (16 * b1)) ^2 ) + ((b2 / (12 * b1)) |^ 3)))))) + ((sqrt ((3 * ((2 * (3 -root ((b3 / (16 * b1)) - (sqrt (((b3 / (16 * b1)) ^2 ) + ((b2 / (12 * b1)) |^ 3)))))) ^2 )) + (b2 / b1))) * <i> ) holds
b4 = (2 * (3 -root ((b3 / (16 * b1)) - (sqrt (((b3 / (16 * b1)) ^2 ) + ((b2 / (12 * b1)) |^ 3)))))) - ((sqrt ((3 * ((2 * (3 -root ((b3 / (16 * b1)) - (sqrt (((b3 / (16 * b1)) ^2 ) + ((b2 / (12 * b1)) |^ 3)))))) ^2 )) + (b2 / b1))) * <i> )
proof end;

theorem Th23: :: POLYEQ_3:23
for b1, b2, b3, b4 being Real
for b5 being Element of COMPLEX st b1 <> 0 & Poly_3 b1,b2,b3,b4,b5 = 0 & Im b5 = 0 holds
for b6, b7, b8 being Real st b8 = (Re b5) + (b2 / (3 * b1)) & Re b5 = (b6 + b7) - (b2 / (3 * b1)) & ((3 * b6) * b7) + ((((3 * b1) * b3) - (b2 ^2 )) / (3 * (b1 ^2 ))) = 0 & not b5 = (((3 -root (((- ((b2 / (3 * b1)) |^ 3)) - ((((3 * b1) * b4) - (b2 * b3)) / (6 * (b1 ^2 )))) + (sqrt (((((2 * ((b2 / (3 * b1)) |^ 3)) + ((((3 * b1) * b4) - (b2 * b3)) / (3 * (b1 ^2 )))) ^2 ) / 4) + (((((3 * b1) * b3) - (b2 ^2 )) / (9 * (b1 ^2 ))) |^ 3))))) + (3 -root (((- ((b2 / (3 * b1)) |^ 3)) - ((((3 * b1) * b4) - (b2 * b3)) / (6 * (b1 ^2 )))) - (sqrt (((((2 * ((b2 / (3 * b1)) |^ 3)) + ((((3 * b1) * b4) - (b2 * b3)) / (3 * (b1 ^2 )))) ^2 ) / 4) + (((((3 * b1) * b3) - (b2 ^2 )) / (9 * (b1 ^2 ))) |^ 3)))))) - (b2 / (3 * b1))) + (0 * <i> ) & not b5 = (((3 -root (((- ((b2 / (3 * b1)) |^ 3)) - ((((3 * b1) * b4) - (b2 * b3)) / (6 * (b1 ^2 )))) + (sqrt (((((2 * ((b2 / (3 * b1)) |^ 3)) + ((((3 * b1) * b4) - (b2 * b3)) / (3 * (b1 ^2 )))) ^2 ) / 4) + (((((3 * b1) * b3) - (b2 ^2 )) / (9 * (b1 ^2 ))) |^ 3))))) + (3 -root (((- ((b2 / (3 * b1)) |^ 3)) - ((((3 * b1) * b4) - (b2 * b3)) / (6 * (b1 ^2 )))) + (sqrt (((((2 * ((b2 / (3 * b1)) |^ 3)) + ((((3 * b1) * b4) - (b2 * b3)) / (3 * (b1 ^2 )))) ^2 ) / 4) + (((((3 * b1) * b3) - (b2 ^2 )) / (9 * (b1 ^2 ))) |^ 3)))))) - (b2 / (3 * b1))) + (0 * <i> ) holds
b5 = (((3 -root (((- ((b2 / (3 * b1)) |^ 3)) - ((((3 * b1) * b4) - (b2 * b3)) / (6 * (b1 ^2 )))) - (sqrt (((((2 * ((b2 / (3 * b1)) |^ 3)) + ((((3 * b1) * b4) - (b2 * b3)) / (3 * (b1 ^2 )))) ^2 ) / 4) + (((((3 * b1) * b3) - (b2 ^2 )) / (9 * (b1 ^2 ))) |^ 3))))) + (3 -root (((- ((b2 / (3 * b1)) |^ 3)) - ((((3 * b1) * b4) - (b2 * b3)) / (6 * (b1 ^2 )))) - (sqrt (((((2 * ((b2 / (3 * b1)) |^ 3)) + ((((3 * b1) * b4) - (b2 * b3)) / (3 * (b1 ^2 )))) ^2 ) / 4) + (((((3 * b1) * b3) - (b2 ^2 )) / (9 * (b1 ^2 ))) |^ 3)))))) - (b2 / (3 * b1))) + (0 * <i> )
proof end;

theorem Th24: :: POLYEQ_3:24
for b1, b2, b3 being Element of COMPLEX st b1 <> 0 & Poly1 b1,b2,b3 = 0 holds
b3 = - (b2 / b1)
proof end;

theorem Th25: :: POLYEQ_3:25
for b1 being Element of COMPLEX st b1 <> 0 holds
for b2 being Element of COMPLEX holds not Poly1 0,b1,b2 = 0 ;

definition
let c1, c2, c3, c4 be Element of COMPLEX ;
func CPoly2 c1,c2,c3,c4 -> Element of COMPLEX equals :: POLYEQ_3:def 4
((a1 * (a4 ^2 )) + (a2 * a4)) + a3;
coherence
((c1 * (c4 ^2 )) + (c2 * c4)) + c3 is Element of COMPLEX
;
end;

:: deftheorem Def4 defines CPoly2 POLYEQ_3:def 4 :
for b1, b2, b3, b4 being Element of COMPLEX holds CPoly2 b1,b2,b3,b4 = ((b1 * (b4 ^2 )) + (b2 * b4)) + b3;

theorem Th26: :: POLYEQ_3:26
for b1, b2, b3, b4, b5, b6 being Element of COMPLEX st ( for b7 being Element of COMPLEX holds CPoly2 b1,b2,b3,b7 = CPoly2 b4,b5,b6,b7 ) holds
( b1 = b4 & b2 = b5 & b3 = b6 )
proof end;

theorem Th27: :: POLYEQ_3:27
for b1, b2 being Real holds
( ((- b1) + (sqrt ((b1 ^2 ) + (b2 ^2 )))) / 2 >= 0 & (b1 + (sqrt ((b1 ^2 ) + (b2 ^2 )))) / 2 >= 0 )
proof end;

theorem Th28: :: POLYEQ_3:28
for b1, b2 being Element of COMPLEX st b1 ^2 = b2 & Im b2 >= 0 & not b1 = (sqrt (((Re b2) + (sqrt (((Re b2) ^2 ) + ((Im b2) ^2 )))) / 2)) + ((sqrt (((- (Re b2)) + (sqrt (((Re b2) ^2 ) + ((Im b2) ^2 )))) / 2)) * <i> ) holds
b1 = (- (sqrt (((Re b2) + (sqrt (((Re b2) ^2 ) + ((Im b2) ^2 )))) / 2))) + ((- (sqrt (((- (Re b2)) + (sqrt (((Re b2) ^2 ) + ((Im b2) ^2 )))) / 2))) * <i> )
proof end;

theorem Th29: :: POLYEQ_3:29
for b1, b2 being Element of COMPLEX st b1 ^2 = b2 & Im b2 = 0 & Re b2 > 0 & not b1 = sqrt (Re b2) holds
b1 = - (sqrt (Re b2))
proof end;

theorem Th30: :: POLYEQ_3:30
for b1, b2 being Element of COMPLEX st b1 ^2 = b2 & Im b2 = 0 & Re b2 < 0 & not b1 = (sqrt (- (Re b2))) * <i> holds
b1 = - ((sqrt (- (Re b2))) * <i> )
proof end;

theorem Th31: :: POLYEQ_3:31
for b1, b2 being Element of COMPLEX st b1 ^2 = b2 & Im b2 < 0 & not b1 = (sqrt (((Re b2) + (sqrt (((Re b2) ^2 ) + ((Im b2) ^2 )))) / 2)) + ((- (sqrt (((- (Re b2)) + (sqrt (((Re b2) ^2 ) + ((Im b2) ^2 )))) / 2))) * <i> ) holds
b1 = (- (sqrt (((Re b2) + (sqrt (((Re b2) ^2 ) + ((Im b2) ^2 )))) / 2))) + ((sqrt (((- (Re b2)) + (sqrt (((Re b2) ^2 ) + ((Im b2) ^2 )))) / 2)) * <i> )
proof end;

theorem Th32: :: POLYEQ_3:32
for b1, b2 being Element of COMPLEX holds
( not b1 ^2 = b2 or b1 = (sqrt (((Re b2) + (sqrt (((Re b2) ^2 ) + ((Im b2) ^2 )))) / 2)) + ((sqrt (((- (Re b2)) + (sqrt (((Re b2) ^2 ) + ((Im b2) ^2 )))) / 2)) * <i> ) or b1 = (- (sqrt (((Re b2) + (sqrt (((Re b2) ^2 ) + ((Im b2) ^2 )))) / 2))) + ((- (sqrt (((- (Re b2)) + (sqrt (((Re b2) ^2 ) + ((Im b2) ^2 )))) / 2))) * <i> ) or b1 = (sqrt (((Re b2) + (sqrt (((Re b2) ^2 ) + ((Im b2) ^2 )))) / 2)) + ((- (sqrt (((- (Re b2)) + (sqrt (((Re b2) ^2 ) + ((Im b2) ^2 )))) / 2))) * <i> ) or b1 = (- (sqrt (((Re b2) + (sqrt (((Re b2) ^2 ) + ((Im b2) ^2 )))) / 2))) + ((sqrt (((- (Re b2)) + (sqrt (((Re b2) ^2 ) + ((Im b2) ^2 )))) / 2)) * <i> ) )
proof end;

theorem Th33: :: POLYEQ_3:33
for b1 being Element of COMPLEX holds CPoly2 0c ,0c ,0c ,b1 = 0 by COMPLEX1:def 6;

theorem Th34: :: POLYEQ_3:34
for b1, b2 being Element of COMPLEX st b1 <> 0 & CPoly2 b1,0c ,0c ,b2 = 0 holds
b2 = 0
proof end;

theorem Th35: :: POLYEQ_3:35
for b1, b2, b3 being Element of COMPLEX st b1 <> 0 & CPoly2 b1,b2,0c ,b3 = 0 & not b3 = - (b2 / b1) holds
b3 = 0
proof end;

theorem Th36: :: POLYEQ_3:36
for b1, b2, b3 being Element of COMPLEX st b1 <> 0 & CPoly2 b1,0c ,b2,b3 = 0 holds
for b4 being Element of COMPLEX holds
( not b4 = - (b2 / b1) or b3 = (sqrt (((Re b4) + (sqrt (((Re b4) ^2 ) + ((Im b4) ^2 )))) / 2)) + ((sqrt (((- (Re b4)) + (sqrt (((Re b4) ^2 ) + ((Im b4) ^2 )))) / 2)) * <i> ) or b3 = (- (sqrt (((Re b4) + (sqrt (((Re b4) ^2 ) + ((Im b4) ^2 )))) / 2))) + ((- (sqrt (((- (Re b4)) + (sqrt (((Re b4) ^2 ) + ((Im b4) ^2 )))) / 2))) * <i> ) or b3 = (sqrt (((Re b4) + (sqrt (((Re b4) ^2 ) + ((Im b4) ^2 )))) / 2)) + ((- (sqrt (((- (Re b4)) + (sqrt (((Re b4) ^2 ) + ((Im b4) ^2 )))) / 2))) * <i> ) or b3 = (- (sqrt (((Re b4) + (sqrt (((Re b4) ^2 ) + ((Im b4) ^2 )))) / 2))) + ((sqrt (((- (Re b4)) + (sqrt (((Re b4) ^2 ) + ((Im b4) ^2 )))) / 2)) * <i> ) )
proof end;

theorem Th37: :: POLYEQ_3:37
for b1, b2, b3, b4 being Element of COMPLEX st b1 <> 0 & CPoly2 b1,b2,b3,b4 = 0 holds
for b5, b6 being Element of COMPLEX st b5 = ((b2 / (2 * b1)) ^2 ) - (b3 / b1) & b6 = b2 / (2 * b1) & not b4 = ((sqrt (((Re b5) + (sqrt (((Re b5) ^2 ) + ((Im b5) ^2 )))) / 2)) + ((sqrt (((- (Re b5)) + (sqrt (((Re b5) ^2 ) + ((Im b5) ^2 )))) / 2)) * <i> )) - b6 & not b4 = ((- (sqrt (((Re b5) + (sqrt (((Re b5) ^2 ) + ((Im b5) ^2 )))) / 2))) + ((- (sqrt (((- (Re b5)) + (sqrt (((Re b5) ^2 ) + ((Im b5) ^2 )))) / 2))) * <i> )) - b6 & not b4 = ((sqrt (((Re b5) + (sqrt (((Re b5) ^2 ) + ((Im b5) ^2 )))) / 2)) + ((- (sqrt (((- (Re b5)) + (sqrt (((Re b5) ^2 ) + ((Im b5) ^2 )))) / 2))) * <i> )) - b6 holds
b4 = ((- (sqrt (((Re b5) + (sqrt (((Re b5) ^2 ) + ((Im b5) ^2 )))) / 2))) + ((sqrt (((- (Re b5)) + (sqrt (((Re b5) ^2 ) + ((Im b5) ^2 )))) / 2)) * <i> )) - b6
proof end;

definition
let c1, c2, c3, c4, c5 be Element of COMPLEX ;
func CPoly3 c1,c2,c3,c4,c5 -> Element of COMPLEX equals :: POLYEQ_3:def 5
(((a1 * (a5 ^3 )) + (a2 * (a5 ^2 ))) + (a3 * a5)) + a4;
coherence
(((c1 * (c5 ^3 )) + (c2 * (c5 ^2 ))) + (c3 * c5)) + c4 is Element of COMPLEX
;
end;

:: deftheorem Def5 defines CPoly3 POLYEQ_3:def 5 :
for b1, b2, b3, b4, b5 being Element of COMPLEX holds CPoly3 b1,b2,b3,b4,b5 = (((b1 * (b5 ^3 )) + (b2 * (b5 ^2 ))) + (b3 * b5)) + b4;

theorem Th38: :: POLYEQ_3:38
for b1 being Element of COMPLEX holds
( not b1 ^2 = 1 or b1 = 1 or b1 = - 1 ) by XCMPLX_1:183;

theorem Th39: :: POLYEQ_3:39
for b1 being Element of COMPLEX holds
( b1 #N 3 = (b1 * b1) * b1 & b1 #N 3 = (b1 ^2 ) * b1 & b1 #N 3 = b1 ^3 )
proof end;

theorem Th40: :: POLYEQ_3:40
for b1, b2, b3 being Element of COMPLEX st b1 <> 0 & CPoly3 b1,b2,0c ,0c ,b3 = 0 & not b3 = - (b2 / b1) holds
b3 = 0
proof end;

theorem Th41: :: POLYEQ_3:41
for b1, b2, b3 being Element of COMPLEX st b1 <> 0 & CPoly3 b1,0c ,b2,0c ,b3 = 0 holds
for b4 being Element of COMPLEX holds
( not b4 = - (b2 / b1) or b3 = 0 or b3 = (sqrt (((Re b4) + (sqrt (((Re b4) ^2 ) + ((Im b4) ^2 )))) / 2)) + ((sqrt (((- (Re b4)) + (sqrt (((Re b4) ^2 ) + ((Im b4) ^2 )))) / 2)) * <i> ) or b3 = (- (sqrt (((Re b4) + (sqrt (((Re b4) ^2 ) + ((Im b4) ^2 )))) / 2))) + ((- (sqrt (((- (Re b4)) + (sqrt (((Re b4) ^2 ) + ((Im b4) ^2 )))) / 2))) * <i> ) or b3 = (sqrt (((Re b4) + (sqrt (((Re b4) ^2 ) + ((Im b4) ^2 )))) / 2)) + ((- (sqrt (((- (Re b4)) + (sqrt (((Re b4) ^2 ) + ((Im b4) ^2 )))) / 2))) * <i> ) or b3 = (- (sqrt (((Re b4) + (sqrt (((Re b4) ^2 ) + ((Im b4) ^2 )))) / 2))) + ((sqrt (((- (Re b4)) + (sqrt (((Re b4) ^2 ) + ((Im b4) ^2 )))) / 2)) * <i> ) )
proof end;

theorem Th42: :: POLYEQ_3:42
for b1, b2, b3, b4 being Element of COMPLEX st b1 <> 0 & CPoly3 b1,b2,b3,0c ,b4 = 0 holds
for b5, b6, b7 being Element of COMPLEX st b5 = - (b3 / b1) & b6 = ((b2 / (2 * b1)) ^2 ) - (b3 / b1) & b7 = b2 / (2 * b1) & not b4 = 0 & not b4 = ((sqrt (((Re b6) + (sqrt (((Re b6) ^2 ) + ((Im b6) ^2 )))) / 2)) + ((sqrt (((- (Re b6)) + (sqrt (((Re b6) ^2 ) + ((Im b6) ^2 )))) / 2)) * <i> )) - b7 & not b4 = ((- (sqrt (((Re b6) + (sqrt (((Re b6) ^2 ) + ((Im b6) ^2 )))) / 2))) + ((- (sqrt (((- (Re b6)) + (sqrt (((Re b6) ^2 ) + ((Im b6) ^2 )))) / 2))) * <i> )) - b7 & not b4 = ((sqrt (((Re b6) + (sqrt (((Re b6) ^2 ) + ((Im b6) ^2 )))) / 2)) + ((- (sqrt (((- (Re b6)) + (sqrt (((Re b6) ^2 ) + ((Im b6) ^2 )))) / 2))) * <i> )) - b7 holds
b4 = ((- (sqrt (((Re b6) + (sqrt (((Re b6) ^2 ) + ((Im b6) ^2 )))) / 2))) + ((sqrt (((- (Re b6)) + (sqrt (((Re b6) ^2 ) + ((Im b6) ^2 )))) / 2)) * <i> )) - b7
proof end;

theorem Th43: :: POLYEQ_3:43
for b1, b2 being Element of COMPLEX holds (b1 - ((1 / 3) * b2)) ^2 = ((b1 ^2 ) + (((- (2 / 3)) * b2) * b1)) + ((1 / 9) * (b2 ^2 )) ;

theorem Th44: :: POLYEQ_3:44
for b1, b2, b3 being Element of COMPLEX st b1 = b2 - ((1 / 3) * b3) holds
b1 ^3 = (((b2 ^3 ) - (b3 * (b2 ^2 ))) + (((1 / 3) * (b3 ^2 )) * b2)) - ((1 / 27) * (b3 ^3 )) ;

theorem Th45: :: POLYEQ_3:45
for b1, b2, b3, b4 being Element of COMPLEX st CPoly3 1r ,b1,b2,b3,b4 = 0 holds
for b5, b6, b7 being Element of COMPLEX st b4 = b7 - ((1 / 3) * b1) & b5 = (- ((1 / 3) * (b1 ^2 ))) + b2 & b6 = (((2 / 27) * (b1 ^3 )) - (((1 / 3) * b1) * b2)) + b3 holds
CPoly3 1r ,0c ,b5,b6,b7 = 0 by COMPLEX1:def 6, COMPLEX1:def 7;

theorem Th46: :: POLYEQ_3:46
for b1 being Element of COMPLEX holds [*(|.b1.| * (cos (Arg b1))),(|.b1.| * (sin (Arg b1)))*] = [*|.b1.|,0*] * [*(cos (Arg b1)),(sin (Arg b1))*]
proof end;

theorem Th47: :: POLYEQ_3:47
for b1 being Element of COMPLEX
for b2 being Nat holds b1 #N (b2 + 1) = (b1 #N b2) * b1
proof end;

theorem Th48: :: POLYEQ_3:48
for b1 being Element of COMPLEX holds b1 #N 1 = b1
proof end;

theorem Th49: :: POLYEQ_3:49
for b1 being Element of COMPLEX holds b1 #N 2 = b1 * b1
proof end;

theorem Th50: :: POLYEQ_3:50
for b1 being Nat st b1 > 0 holds
0c #N b1 = 0
proof end;

theorem Th51: :: POLYEQ_3:51
for b1, b2 being Element of COMPLEX
for b3 being Nat holds (b1 * b2) #N b3 = (b1 #N b3) * (b2 #N b3)
proof end;

theorem Th52: :: POLYEQ_3:52
for b1 being Real st b1 > 0 holds
for b2 being Nat holds [*b1,0*] #N b2 = b1 to_power b2
proof end;

theorem Th53: :: POLYEQ_3:53
for b1 being Real
for b2 being Nat holds [*(cos b1),(sin b1)*] #N b2 = (cos (b2 * b1)) + ((sin (b2 * b1)) * <i> )
proof end;

theorem Th54: :: POLYEQ_3:54
for b1 being Element of COMPLEX
for b2 being Nat st ( b1 <> 0 or b2 > 0 ) holds
b1 #N b2 = ((|.b1.| to_power b2) * (cos (b2 * (Arg b1)))) + (((|.b1.| to_power b2) * (sin (b2 * (Arg b1)))) * <i> )
proof end;

theorem Th55: :: POLYEQ_3:55
for b1, b2 being Nat
for b3 being Real st b1 <> 0 holds
[*(cos ((b3 + ((2 * PI ) * b2)) / b1)),(sin ((b3 + ((2 * PI ) * b2)) / b1))*] #N b1 = (cos b3) + ((sin b3) * <i> )
proof end;

theorem Th56: :: POLYEQ_3:56
for b1 being complex number
for b2, b3 being Nat st b2 <> 0 holds
b1 = [*((b2 -root |.b1.|) * (cos (((Arg b1) + ((2 * PI ) * b3)) / b2))),((b2 -root |.b1.|) * (sin (((Arg b1) + ((2 * PI ) * b3)) / b2)))*] #N b2
proof end;

definition
let c1 be complex number ;
let c2 be non empty Nat;
mode CRoot of c2,c1 -> Element of COMPLEX means :Def6: :: POLYEQ_3:def 6
a3 #N a2 = a1;
existence
ex b1 being Element of COMPLEX st b1 #N c2 = c1
proof end;
end;

:: deftheorem Def6 defines CRoot POLYEQ_3:def 6 :
for b1 being complex number
for b2 being non empty Nat
for b3 being Element of COMPLEX holds
( b3 is CRoot of b2,b1 iff b3 #N b2 = b1 );

theorem Th57: :: POLYEQ_3:57
for b1 being Element of COMPLEX
for b2 being non empty Nat
for b3 being Nat holds [*((b2 -root |.b1.|) * (cos (((Arg b1) + ((2 * PI ) * b3)) / b2))),((b2 -root |.b1.|) * (sin (((Arg b1) + ((2 * PI ) * b3)) / b2)))*] is CRoot of b2,b1
proof end;

theorem Th58: :: POLYEQ_3:58
for b1 being complex number
for b2 being CRoot of 1,b1 holds b2 = b1
proof end;

theorem Th59: :: POLYEQ_3:59
for b1 being non empty Nat
for b2 being CRoot of b1,0 holds b2 = 0
proof end;

theorem Th60: :: POLYEQ_3:60
for b1 being non empty Nat
for b2 being complex number
for b3 being CRoot of b1,b2 st b3 = 0 holds
b2 = 0
proof end;

theorem Th61: :: POLYEQ_3:61
for b1 being non empty Nat
for b2 being Nat holds (cos (((2 * PI ) * b2) / b1)) + ((sin (((2 * PI ) * b2) / b1)) * <i> ) is CRoot of b1,1
proof end;

theorem Th62: :: POLYEQ_3:62
canceled;

theorem Th63: :: POLYEQ_3:63
for b1, b2 being Element of COMPLEX
for b3 being Nat st b2 <> 0 & b1 <> 0 & b3 >= 1 & b2 #N b3 = b1 #N b3 holds
|.b2.| = |.b1.|
proof end;