:: COMPTRIG semantic presentation

Lemma1: for b1 being complex number st |.b1.| = 0 holds
b1 = 0
by COMPLEX1:131;

Lemma2: for b1 being complex number holds
( b1 <> 0 iff 0 < |.b1.| )
by COMPLEX1:133;

Lemma3: 0. F_Complex = 0
by COMPLFLD:9;

Lemma4: for b1, b2 being Real holds [*b1,b2*] = b1 + (b2 * <i> )
by COMPLEX1:27;

Lemma5: for b1, b2 being Real holds [**b1,b2**] = b1 + (b2 * <i> )
by HAHNBAN1:def 1;

Lemma6: for b1 being complex number holds b1 = (Re b1) + ((Im b1) * <i> )
by COMPLEX1:29;

scheme :: COMPTRIG:sch 1
s1{ P1[ Nat] } :
P1[1]
provided
E7: ex b1 being non empty Nat st P1[b1] and
E8: for b1 being non empty Nat st b1 <> 1 & P1[b1] holds
ex b2 being non empty Nat st
( b2 < b1 & P1[b2] )
proof end;

theorem Th1: :: COMPTRIG:1
canceled;

theorem Th2: :: COMPTRIG:2
canceled;

theorem Th3: :: COMPTRIG:3
for b1 being complex number holds Re b1 >= - |.b1.|
proof end;

theorem Th4: :: COMPTRIG:4
for b1 being complex number holds Im b1 >= - |.b1.|
proof end;

theorem Th5: :: COMPTRIG:5
canceled;

theorem Th6: :: COMPTRIG:6
canceled;

theorem Th7: :: COMPTRIG:7
for b1 being complex number holds |.b1.| ^2 = ((Re b1) ^2 ) + ((Im b1) ^2 )
proof end;

theorem Th8: :: COMPTRIG:8
for b1, b2, b3, b4 being Real st [**b1,b2**] = [**b3,b4**] holds
( b1 = b3 & b2 = b4 )
proof end;

theorem Th9: :: COMPTRIG:9
for b1 being complex number holds b1 = [**(Re b1),(Im b1)**]
proof end;

Lemma11: 0 + (0 * <i> ) = [**0,0**]
by HAHNBAN1:def 1;

Lemma12: 0. F_Complex = the Zero of F_Complex
by RLVECT_1:def 2;

theorem Th10: :: COMPTRIG:10
canceled;

theorem Th11: :: COMPTRIG:11
canceled;

theorem Th12: :: COMPTRIG:12
for b1 being non empty unital HGrStr
for b2 being Element of b1 holds (power b1) . b2,1 = b2
proof end;

theorem Th13: :: COMPTRIG:13
for b1 being non empty unital HGrStr
for b2 being Element of b1 holds (power b1) . b2,2 = b2 * b2
proof end;

theorem Th14: :: COMPTRIG:14
for b1 being non empty add-associative right_zeroed right_complementable unital right-distributive doubleLoopStr
for b2 being Nat st b2 > 0 holds
(power b1) . (0. b1),b2 = 0. b1
proof end;

theorem Th15: :: COMPTRIG:15
for b1 being non empty unital associative commutative HGrStr
for b2, b3 being Element of b1
for b4 being Nat holds (power b1) . (b2 * b3),b4 = ((power b1) . b2,b4) * ((power b1) . b3,b4)
proof end;

theorem Th16: :: COMPTRIG:16
for b1 being Real st b1 > 0 holds
for b2 being Nat holds (power F_Complex ) . [**b1,0**],b2 = [**(b1 to_power b2),0**]
proof end;

theorem Th17: :: COMPTRIG:17
for b1 being real number
for b2 being Nat st b1 >= 0 & b2 <> 0 holds
(b2 -root b1) to_power b2 = b1
proof end;

theorem Th18: :: COMPTRIG:18
canceled;

theorem Th19: :: COMPTRIG:19
canceled;

theorem Th20: :: COMPTRIG:20
( PI + (PI / 2) = (3 / 2) * PI & ((3 / 2) * PI ) + (PI / 2) = 2 * PI & ((3 / 2) * PI ) - PI = PI / 2 ) ;

theorem Th21: :: COMPTRIG:21
( 0 < PI / 2 & PI / 2 < PI & 0 < PI & - (PI / 2) < PI / 2 & PI < 2 * PI & PI / 2 < (3 / 2) * PI & - (PI / 2) < 0 & 0 < 2 * PI & PI < (3 / 2) * PI & (3 / 2) * PI < 2 * PI & 0 < (3 / 2) * PI )
proof end;

theorem Th22: :: COMPTRIG:22
for b1, b2, b3, b4 being real number holds
( not b4 in ].b1,b3.[ or b4 in ].b1,b2.[ or b4 = b2 or b4 in ].b2,b3.[ )
proof end;

theorem Th23: :: COMPTRIG:23
for b1 being real number st b1 in ].0,PI .[ holds
sin . b1 > 0
proof end;

theorem Th24: :: COMPTRIG:24
for b1 being real number st b1 in [.0,PI .] holds
sin . b1 >= 0
proof end;

theorem Th25: :: COMPTRIG:25
for b1 being real number st b1 in ].PI ,(2 * PI ).[ holds
sin . b1 < 0
proof end;

theorem Th26: :: COMPTRIG:26
for b1 being real number st b1 in [.PI ,(2 * PI ).] holds
sin . b1 <= 0
proof end;

theorem Th27: :: COMPTRIG:27
for b1 being real number st b1 in ].(- (PI / 2)),(PI / 2).[ holds
cos . b1 > 0
proof end;

theorem Th28: :: COMPTRIG:28
for b1 being real number st b1 in [.(- (PI / 2)),(PI / 2).] holds
cos . b1 >= 0
proof end;

theorem Th29: :: COMPTRIG:29
for b1 being real number st b1 in ].(PI / 2),((3 / 2) * PI ).[ holds
cos . b1 < 0
proof end;

theorem Th30: :: COMPTRIG:30
for b1 being real number st b1 in [.(PI / 2),((3 / 2) * PI ).] holds
cos . b1 <= 0
proof end;

theorem Th31: :: COMPTRIG:31
for b1 being real number st b1 in ].((3 / 2) * PI ),(2 * PI ).[ holds
cos . b1 > 0
proof end;

theorem Th32: :: COMPTRIG:32
for b1 being real number st b1 in [.((3 / 2) * PI ),(2 * PI ).] holds
cos . b1 >= 0
proof end;

theorem Th33: :: COMPTRIG:33
for b1 being real number st 0 <= b1 & b1 < 2 * PI & sin b1 = 0 & not b1 = 0 holds
b1 = PI
proof end;

theorem Th34: :: COMPTRIG:34
for b1 being real number st 0 <= b1 & b1 < 2 * PI & cos b1 = 0 & not b1 = PI / 2 holds
b1 = (3 / 2) * PI
proof end;

theorem Th35: :: COMPTRIG:35
sin is_increasing_on ].(- (PI / 2)),(PI / 2).[
proof end;

theorem Th36: :: COMPTRIG:36
sin is_decreasing_on ].(PI / 2),((3 / 2) * PI ).[
proof end;

theorem Th37: :: COMPTRIG:37
cos is_decreasing_on ].0,PI .[
proof end;

theorem Th38: :: COMPTRIG:38
cos is_increasing_on ].PI ,(2 * PI ).[
proof end;

theorem Th39: :: COMPTRIG:39
sin is_increasing_on [.(- (PI / 2)),(PI / 2).]
proof end;

theorem Th40: :: COMPTRIG:40
sin is_decreasing_on [.(PI / 2),((3 / 2) * PI ).]
proof end;

theorem Th41: :: COMPTRIG:41
cos is_decreasing_on [.0,PI .]
proof end;

theorem Th42: :: COMPTRIG:42
cos is_increasing_on [.PI ,(2 * PI ).]
proof end;

theorem Th43: :: COMPTRIG:43
( sin is_continuous_on REAL & ( for b1, b2 being real number holds
( sin is_continuous_on [.b1,b2.] & sin is_continuous_on ].b1,b2.[ ) ) )
proof end;

theorem Th44: :: COMPTRIG:44
( cos is_continuous_on REAL & ( for b1, b2 being real number holds
( cos is_continuous_on [.b1,b2.] & cos is_continuous_on ].b1,b2.[ ) ) )
proof end;

theorem Th45: :: COMPTRIG:45
for b1 being real number holds
( sin . b1 in [.(- 1),1.] & cos . b1 in [.(- 1),1.] )
proof end;

theorem Th46: :: COMPTRIG:46
rng sin = [.(- 1),1.]
proof end;

theorem Th47: :: COMPTRIG:47
rng cos = [.(- 1),1.]
proof end;

theorem Th48: :: COMPTRIG:48
rng (sin | [.(- (PI / 2)),(PI / 2).]) = [.(- 1),1.]
proof end;

theorem Th49: :: COMPTRIG:49
rng (sin | [.(PI / 2),((3 / 2) * PI ).]) = [.(- 1),1.]
proof end;

theorem Th50: :: COMPTRIG:50
rng (cos | [.0,PI .]) = [.(- 1),1.]
proof end;

theorem Th51: :: COMPTRIG:51
rng (cos | [.PI ,(2 * PI ).]) = [.(- 1),1.]
proof end;

definition
let c1 be complex number ;
func Arg c1 -> Real means :Def1: :: COMPTRIG:def 1
( a1 = (|.a1.| * (cos a2)) + ((|.a1.| * (sin a2)) * <i> ) & 0 <= a2 & a2 < 2 * PI ) if a1 <> 0
otherwise a2 = 0;
existence
( ( c1 <> 0 implies ex b1 being Real st
( c1 = (|.c1.| * (cos b1)) + ((|.c1.| * (sin b1)) * <i> ) & 0 <= b1 & b1 < 2 * PI ) ) & ( not c1 <> 0 implies ex b1 being Real st b1 = 0 ) )
proof end;
uniqueness
for b1, b2 being Real holds
( ( c1 <> 0 & c1 = (|.c1.| * (cos b1)) + ((|.c1.| * (sin b1)) * <i> ) & 0 <= b1 & b1 < 2 * PI & c1 = (|.c1.| * (cos b2)) + ((|.c1.| * (sin b2)) * <i> ) & 0 <= b2 & b2 < 2 * PI implies b1 = b2 ) & ( not c1 <> 0 & b1 = 0 & b2 = 0 implies b1 = b2 ) )
proof end;
consistency
for b1 being Real holds verum
;
end;

:: deftheorem Def1 defines Arg COMPTRIG:def 1 :
for b1 being complex number
for b2 being Real holds
( ( b1 <> 0 implies ( b2 = Arg b1 iff ( b1 = (|.b1.| * (cos b2)) + ((|.b1.| * (sin b2)) * <i> ) & 0 <= b2 & b2 < 2 * PI ) ) ) & ( not b1 <> 0 implies ( b2 = Arg b1 iff b2 = 0 ) ) );

theorem Th52: :: COMPTRIG:52
for b1 being complex number holds
( 0 <= Arg b1 & Arg b1 < 2 * PI )
proof end;

Lemma46: for b1 being complex number st b1 <> 0 holds
b1 = [**(|.b1.| * (cos (Arg b1))),(|.b1.| * (sin (Arg b1)))**]
proof end;

theorem Th53: :: COMPTRIG:53
for b1 being Real st b1 >= 0 holds
Arg [**b1,0**] = 0
proof end;

theorem Th54: :: COMPTRIG:54
for b1 being Real st b1 < 0 holds
Arg [**b1,0**] = PI
proof end;

theorem Th55: :: COMPTRIG:55
for b1 being Real st b1 > 0 holds
Arg [**0,b1**] = PI / 2
proof end;

theorem Th56: :: COMPTRIG:56
for b1 being Real st b1 < 0 holds
Arg [**0,b1**] = (3 / 2) * PI
proof end;

theorem Th57: :: COMPTRIG:57
Arg (1. F_Complex ) = 0
proof end;

theorem Th58: :: COMPTRIG:58
Arg i_FC = PI / 2 by Th55, HAHNBAN1:6;

theorem Th59: :: COMPTRIG:59
for b1 being complex number holds
( Arg b1 in ].0,(PI / 2).[ iff ( Re b1 > 0 & Im b1 > 0 ) )
proof end;

theorem Th60: :: COMPTRIG:60
for b1 being complex number holds
( Arg b1 in ].(PI / 2),PI .[ iff ( Re b1 < 0 & Im b1 > 0 ) )
proof end;

theorem Th61: :: COMPTRIG:61
for b1 being complex number holds
( Arg b1 in ].PI ,((3 / 2) * PI ).[ iff ( Re b1 < 0 & Im b1 < 0 ) )
proof end;

theorem Th62: :: COMPTRIG:62
for b1 being complex number holds
( Arg b1 in ].((3 / 2) * PI ),(2 * PI ).[ iff ( Re b1 > 0 & Im b1 < 0 ) )
proof end;

theorem Th63: :: COMPTRIG:63
for b1 being complex number st Im b1 > 0 holds
sin (Arg b1) > 0
proof end;

theorem Th64: :: COMPTRIG:64
for b1 being complex number st Im b1 < 0 holds
sin (Arg b1) < 0
proof end;

theorem Th65: :: COMPTRIG:65
for b1 being complex number st Im b1 >= 0 holds
sin (Arg b1) >= 0
proof end;

theorem Th66: :: COMPTRIG:66
for b1 being complex number st Im b1 <= 0 holds
sin (Arg b1) <= 0
proof end;

theorem Th67: :: COMPTRIG:67
for b1 being complex number st Re b1 > 0 holds
cos (Arg b1) > 0
proof end;

theorem Th68: :: COMPTRIG:68
for b1 being complex number st Re b1 < 0 holds
cos (Arg b1) < 0
proof end;

theorem Th69: :: COMPTRIG:69
for b1 being complex number st Re b1 >= 0 holds
cos (Arg b1) >= 0
proof end;

theorem Th70: :: COMPTRIG:70
for b1 being complex number st Re b1 <= 0 & b1 <> 0 holds
cos (Arg b1) <= 0
proof end;

theorem Th71: :: COMPTRIG:71
for b1 being Real
for b2 being Nat holds (power F_Complex ) . [**(cos b1),(sin b1)**],b2 = [**(cos (b2 * b1)),(sin (b2 * b1))**]
proof end;

theorem Th72: :: COMPTRIG:72
for b1 being Element of F_Complex
for b2 being Nat st ( b1 <> 0. F_Complex or b2 <> 0 ) holds
(power F_Complex ) . b1,b2 = [**((|.b1.| to_power b2) * (cos (b2 * (Arg b1)))),((|.b1.| to_power b2) * (sin (b2 * (Arg b1))))**]
proof end;

theorem Th73: :: COMPTRIG:73
for b1 being Real
for b2, b3 being Nat st b2 <> 0 holds
(power F_Complex ) . [**(cos ((b1 + ((2 * PI ) * b3)) / b2)),(sin ((b1 + ((2 * PI ) * b3)) / b2))**],b2 = [**(cos b1),(sin b1)**]
proof end;

theorem Th74: :: COMPTRIG:74
for b1 being Element of F_Complex
for b2, b3 being Nat st b2 <> 0 holds
b1 = (power F_Complex ) . [**((b2 -root |.b1.|) * (cos (((Arg b1) + ((2 * PI ) * b3)) / b2))),((b2 -root |.b1.|) * (sin (((Arg b1) + ((2 * PI ) * b3)) / b2)))**],b2
proof end;

definition
let c1 be Element of F_Complex ;
let c2 be non empty Nat;
mode CRoot of c2,c1 -> Element of F_Complex means :Def2: :: COMPTRIG:def 2
(power F_Complex ) . a3,a2 = a1;
existence
ex b1 being Element of F_Complex st (power F_Complex ) . b1,c2 = c1
proof end;
end;

:: deftheorem Def2 defines CRoot COMPTRIG:def 2 :
for b1 being Element of F_Complex
for b2 being non empty Nat
for b3 being Element of F_Complex holds
( b3 is CRoot of b2,b1 iff (power F_Complex ) . b3,b2 = b1 );

theorem Th75: :: COMPTRIG:75
for b1 being Element of F_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 Th76: :: COMPTRIG:76
for b1 being Element of F_Complex
for b2 being CRoot of 1,b1 holds b2 = b1
proof end;

theorem Th77: :: COMPTRIG:77
for b1 being non empty Nat
for b2 being CRoot of b1, 0. F_Complex holds b2 = 0. F_Complex
proof end;

theorem Th78: :: COMPTRIG:78
for b1 being non empty Nat
for b2 being Element of F_Complex
for b3 being CRoot of b1,b2 st b3 = 0. F_Complex holds
b2 = 0. F_Complex
proof end;