:: SIN_COS2 semantic presentation

Lemma1: ( 0 < PI / 2 & PI / 2 < PI & PI < (3 / 2) * PI & (3 / 2) * PI < 2 * PI )
proof end;

theorem Th1: :: SIN_COS2:1
for b1, b2 being real number st b1 >= 0 & b2 >= 0 holds
b1 + b2 >= 2 * (sqrt (b1 * b2))
proof end;

theorem Th2: :: SIN_COS2:2
sin is_increasing_on ].0,(PI / 2).[
proof end;

Lemma3: for b1 being real number st b1 in ].0,(PI / 2).[ holds
0 < sin . b1
proof end;

theorem Th3: :: SIN_COS2:3
sin is_decreasing_on ].(PI / 2),PI .[
proof end;

theorem Th4: :: SIN_COS2:4
cos is_decreasing_on ].0,(PI / 2).[
proof end;

theorem Th5: :: SIN_COS2:5
cos is_decreasing_on ].(PI / 2),PI .[
proof end;

theorem Th6: :: SIN_COS2:6
sin is_decreasing_on ].PI ,((3 / 2) * PI ).[
proof end;

theorem Th7: :: SIN_COS2:7
sin is_increasing_on ].((3 / 2) * PI ),(2 * PI ).[
proof end;

theorem Th8: :: SIN_COS2:8
cos is_increasing_on ].PI ,((3 / 2) * PI ).[
proof end;

theorem Th9: :: SIN_COS2:9
cos is_increasing_on ].((3 / 2) * PI ),(2 * PI ).[
proof end;

theorem Th10: :: SIN_COS2:10
for b1 being real number
for b2 being Nat holds sin . b1 = sin . (((2 * PI ) * b2) + b1)
proof end;

theorem Th11: :: SIN_COS2:11
for b1 being real number
for b2 being Nat holds cos . b1 = cos . (((2 * PI ) * b2) + b1)
proof end;

definition
func sinh -> PartFunc of REAL , REAL means :Def1: :: SIN_COS2:def 1
( dom a1 = REAL & ( for b1 being real number holds a1 . b1 = ((exp . b1) - (exp . (- b1))) / 2 ) );
existence
ex b1 being PartFunc of REAL , REAL st
( dom b1 = REAL & ( for b2 being real number holds b1 . b2 = ((exp . b2) - (exp . (- b2))) / 2 ) )
proof end;
uniqueness
for b1, b2 being PartFunc of REAL , REAL st dom b1 = REAL & ( for b3 being real number holds b1 . b3 = ((exp . b3) - (exp . (- b3))) / 2 ) & dom b2 = REAL & ( for b3 being real number holds b2 . b3 = ((exp . b3) - (exp . (- b3))) / 2 ) holds
b1 = b2
proof end;
end;

:: deftheorem Def1 defines sinh SIN_COS2:def 1 :
for b1 being PartFunc of REAL , REAL holds
( b1 = sinh iff ( dom b1 = REAL & ( for b2 being real number holds b1 . b2 = ((exp . b2) - (exp . (- b2))) / 2 ) ) );

definition
let c1 be number ;
func sinh c1 -> set equals :: SIN_COS2:def 2
sinh . a1;
coherence
sinh . c1 is set
;
end;

:: deftheorem Def2 defines sinh SIN_COS2:def 2 :
for b1 being number holds sinh b1 = sinh . b1;

registration
let c1 be number ;
cluster sinh a1 -> real ;
coherence
sinh c1 is real
;
end;

definition
let c1 be number ;
redefine func sinh as sinh c1 -> Real;
coherence
sinh c1 is Real
;
end;

definition
func cosh -> PartFunc of REAL , REAL means :Def3: :: SIN_COS2:def 3
( dom a1 = REAL & ( for b1 being real number holds a1 . b1 = ((exp . b1) + (exp . (- b1))) / 2 ) );
existence
ex b1 being PartFunc of REAL , REAL st
( dom b1 = REAL & ( for b2 being real number holds b1 . b2 = ((exp . b2) + (exp . (- b2))) / 2 ) )
proof end;
uniqueness
for b1, b2 being PartFunc of REAL , REAL st dom b1 = REAL & ( for b3 being real number holds b1 . b3 = ((exp . b3) + (exp . (- b3))) / 2 ) & dom b2 = REAL & ( for b3 being real number holds b2 . b3 = ((exp . b3) + (exp . (- b3))) / 2 ) holds
b1 = b2
proof end;
end;

:: deftheorem Def3 defines cosh SIN_COS2:def 3 :
for b1 being PartFunc of REAL , REAL holds
( b1 = cosh iff ( dom b1 = REAL & ( for b2 being real number holds b1 . b2 = ((exp . b2) + (exp . (- b2))) / 2 ) ) );

definition
let c1 be number ;
func cosh c1 -> set equals :: SIN_COS2:def 4
cosh . a1;
coherence
cosh . c1 is set
;
end;

:: deftheorem Def4 defines cosh SIN_COS2:def 4 :
for b1 being number holds cosh b1 = cosh . b1;

registration
let c1 be number ;
cluster cosh a1 -> real ;
coherence
cosh c1 is real
;
end;

definition
let c1 be number ;
redefine func cosh as cosh c1 -> Real;
coherence
cosh c1 is Real
;
end;

definition
func tanh -> PartFunc of REAL , REAL means :Def5: :: SIN_COS2:def 5
( dom a1 = REAL & ( for b1 being real number holds a1 . b1 = ((exp . b1) - (exp . (- b1))) / ((exp . b1) + (exp . (- b1))) ) );
existence
ex b1 being PartFunc of REAL , REAL st
( dom b1 = REAL & ( for b2 being real number holds b1 . b2 = ((exp . b2) - (exp . (- b2))) / ((exp . b2) + (exp . (- b2))) ) )
proof end;
uniqueness
for b1, b2 being PartFunc of REAL , REAL st dom b1 = REAL & ( for b3 being real number holds b1 . b3 = ((exp . b3) - (exp . (- b3))) / ((exp . b3) + (exp . (- b3))) ) & dom b2 = REAL & ( for b3 being real number holds b2 . b3 = ((exp . b3) - (exp . (- b3))) / ((exp . b3) + (exp . (- b3))) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def5 defines tanh SIN_COS2:def 5 :
for b1 being PartFunc of REAL , REAL holds
( b1 = tanh iff ( dom b1 = REAL & ( for b2 being real number holds b1 . b2 = ((exp . b2) - (exp . (- b2))) / ((exp . b2) + (exp . (- b2))) ) ) );

definition
let c1 be number ;
func tanh c1 -> set equals :: SIN_COS2:def 6
tanh . a1;
coherence
tanh . c1 is set
;
end;

:: deftheorem Def6 defines tanh SIN_COS2:def 6 :
for b1 being number holds tanh b1 = tanh . b1;

registration
let c1 be number ;
cluster tanh a1 -> real ;
coherence
tanh c1 is real
;
end;

definition
let c1 be number ;
redefine func tanh as tanh c1 -> Real;
coherence
tanh c1 is Real
;
end;

theorem Th12: :: SIN_COS2:12
for b1, b2 being real number holds exp . (b1 + b2) = (exp . b1) * (exp . b2)
proof end;

theorem Th13: :: SIN_COS2:13
exp . 0 = 1 by SIN_COS:56, SIN_COS:def 27;

theorem Th14: :: SIN_COS2:14
for b1 being real number holds
( ((cosh . b1) ^2 ) - ((sinh . b1) ^2 ) = 1 & ((cosh . b1) * (cosh . b1)) - ((sinh . b1) * (sinh . b1)) = 1 )
proof end;

Lemma10: for b1, b2 being real number holds cosh . (b1 + b2) = ((cosh . b1) * (cosh . b2)) + ((sinh . b1) * (sinh . b2))
proof end;

Lemma11: for b1, b2 being real number holds sinh . (b1 + b2) = ((sinh . b1) * (cosh . b2)) + ((cosh . b1) * (sinh . b2))
proof end;

theorem Th15: :: SIN_COS2:15
for b1 being real number holds
( cosh . b1 <> 0 & cosh . b1 > 0 & cosh . 0 = 1 )
proof end;

theorem Th16: :: SIN_COS2:16
sinh . 0 = 0
proof end;

theorem Th17: :: SIN_COS2:17
for b1 being real number holds tanh . b1 = (sinh . b1) / (cosh . b1)
proof end;

Lemma15: for b1, b2, b3, b4 being real number st b1 <> 0 & b2 <> 0 & (b1 * b2) + (b3 * b4) <> 0 holds
((b3 * b2) + (b1 * b4)) / ((b1 * b2) + (b3 * b4)) = ((b3 / b1) + (b4 / b2)) / (1 + ((b3 / b1) * (b4 / b2)))
proof end;

Lemma16: for b1, b2 being real number holds tanh . (b1 + b2) = ((tanh . b1) + (tanh . b2)) / (1 + ((tanh . b1) * (tanh . b2)))
proof end;

theorem Th18: :: SIN_COS2:18
for b1 being real number holds
( (sinh . b1) ^2 = (1 / 2) * ((cosh . (2 * b1)) - 1) & (cosh . b1) ^2 = (1 / 2) * ((cosh . (2 * b1)) + 1) )
proof end;

Lemma18: for b1 being real number holds
( sinh . (2 * b1) = (2 * (sinh . b1)) * (cosh . b1) & cosh . (2 * b1) = (2 * ((cosh . b1) ^2 )) - 1 )
proof end;

theorem Th19: :: SIN_COS2:19
for b1 being real number holds
( cosh . (- b1) = cosh . b1 & sinh . (- b1) = - (sinh . b1) & tanh . (- b1) = - (tanh . b1) )
proof end;

Lemma20: for b1, b2 being real number holds cosh . (b1 - b2) = ((cosh . b1) * (cosh . b2)) - ((sinh . b1) * (sinh . b2))
proof end;

theorem Th20: :: SIN_COS2:20
for b1, b2 being real number holds
( cosh . (b1 + b2) = ((cosh . b1) * (cosh . b2)) + ((sinh . b1) * (sinh . b2)) & cosh . (b1 - b2) = ((cosh . b1) * (cosh . b2)) - ((sinh . b1) * (sinh . b2)) ) by Lemma10, Lemma20;

Lemma21: for b1, b2 being real number holds sinh . (b1 - b2) = ((sinh . b1) * (cosh . b2)) - ((cosh . b1) * (sinh . b2))
proof end;

theorem Th21: :: SIN_COS2:21
for b1, b2 being real number holds
( sinh . (b1 + b2) = ((sinh . b1) * (cosh . b2)) + ((cosh . b1) * (sinh . b2)) & sinh . (b1 - b2) = ((sinh . b1) * (cosh . b2)) - ((cosh . b1) * (sinh . b2)) ) by Lemma11, Lemma21;

Lemma22: for b1, b2 being real number holds tanh . (b1 - b2) = ((tanh . b1) - (tanh . b2)) / (1 - ((tanh . b1) * (tanh . b2)))
proof end;

theorem Th22: :: SIN_COS2:22
for b1, b2 being real number holds
( tanh . (b1 + b2) = ((tanh . b1) + (tanh . b2)) / (1 + ((tanh . b1) * (tanh . b2))) & tanh . (b1 - b2) = ((tanh . b1) - (tanh . b2)) / (1 - ((tanh . b1) * (tanh . b2))) ) by Lemma16, Lemma22;

theorem Th23: :: SIN_COS2:23
for b1 being real number holds
( sinh . (2 * b1) = (2 * (sinh . b1)) * (cosh . b1) & cosh . (2 * b1) = (2 * ((cosh . b1) ^2 )) - 1 & tanh . (2 * b1) = (2 * (tanh . b1)) / (1 + ((tanh . b1) ^2 )) )
proof end;

theorem Th24: :: SIN_COS2:24
for b1, b2 being real number holds
( ((sinh . b1) ^2 ) - ((sinh . b2) ^2 ) = (sinh . (b1 + b2)) * (sinh . (b1 - b2)) & (sinh . (b1 + b2)) * (sinh . (b1 - b2)) = ((cosh . b1) ^2 ) - ((cosh . b2) ^2 ) & ((sinh . b1) ^2 ) - ((sinh . b2) ^2 ) = ((cosh . b1) ^2 ) - ((cosh . b2) ^2 ) )
proof end;

theorem Th25: :: SIN_COS2:25
for b1, b2 being real number holds
( ((sinh . b1) ^2 ) + ((cosh . b2) ^2 ) = (cosh . (b1 + b2)) * (cosh . (b1 - b2)) & (cosh . (b1 + b2)) * (cosh . (b1 - b2)) = ((cosh . b1) ^2 ) + ((sinh . b2) ^2 ) & ((sinh . b1) ^2 ) + ((cosh . b2) ^2 ) = ((cosh . b1) ^2 ) + ((sinh . b2) ^2 ) )
proof end;

theorem Th26: :: SIN_COS2:26
for b1, b2 being real number holds
( (sinh . b1) + (sinh . b2) = (2 * (sinh . ((b1 / 2) + (b2 / 2)))) * (cosh . ((b1 / 2) - (b2 / 2))) & (sinh . b1) - (sinh . b2) = (2 * (sinh . ((b1 / 2) - (b2 / 2)))) * (cosh . ((b1 / 2) + (b2 / 2))) )
proof end;

theorem Th27: :: SIN_COS2:27
for b1, b2 being real number holds
( (cosh . b1) + (cosh . b2) = (2 * (cosh . ((b1 / 2) + (b2 / 2)))) * (cosh . ((b1 / 2) - (b2 / 2))) & (cosh . b1) - (cosh . b2) = (2 * (sinh . ((b1 / 2) - (b2 / 2)))) * (sinh . ((b1 / 2) + (b2 / 2))) )
proof end;

theorem Th28: :: SIN_COS2:28
for b1, b2 being real number holds
( (tanh . b1) + (tanh . b2) = (sinh . (b1 + b2)) / ((cosh . b1) * (cosh . b2)) & (tanh . b1) - (tanh . b2) = (sinh . (b1 - b2)) / ((cosh . b1) * (cosh . b2)) )
proof end;

theorem Th29: :: SIN_COS2:29
for b1 being real number
for b2 being Nat holds ((cosh . b1) + (sinh . b1)) |^ b2 = (cosh . (b2 * b1)) + (sinh . (b2 * b1))
proof end;

registration
cluster sinh -> total ;
coherence
sinh is total
proof end;
cluster cosh -> total ;
coherence
cosh is total
proof end;
cluster tanh -> total ;
coherence
tanh is total
proof end;
end;

theorem Th30: :: SIN_COS2:30
( dom sinh = REAL & dom cosh = REAL & dom tanh = REAL ) by Def1, Def3, Def5;

Lemma26: for b1 being real number holds compreal . b1 = (- 1) * b1
proof end;

Lemma27: ( dom compreal = REAL & rng compreal c= REAL )
by FUNCT_2:def 1, RELSET_1:12;

Lemma28: for b1 being PartFunc of REAL , REAL st b1 = compreal holds
for b2 being real number holds
( b1 is_differentiable_in b2 & diff b1,b2 = - 1 )
proof end;

Lemma29: for b1 being real number
for b2 being PartFunc of REAL , REAL st b2 = compreal holds
( exp * b2 is_differentiable_in b1 & diff (exp * b2),b1 = (- 1) * (exp . (b2 . b1)) )
proof end;

Lemma30: for b1 being real number
for b2 being PartFunc of REAL , REAL st b2 = compreal holds
exp . ((- 1) * b1) = (exp * b2) . b1
proof end;

Lemma31: for b1 being real number
for b2 being PartFunc of REAL , REAL st b2 = compreal holds
( exp - (exp * b2) is_differentiable_in b1 & exp + (exp * b2) is_differentiable_in b1 & diff (exp - (exp * b2)),b1 = (exp . b1) + (exp . (- b1)) & diff (exp + (exp * b2)),b1 = (exp . b1) - (exp . (- b1)) )
proof end;

Lemma32: for b1 being real number
for b2 being PartFunc of REAL , REAL st b2 = compreal holds
( (1 / 2) (#) (exp - (exp * b2)) is_differentiable_in b1 & diff ((1 / 2) (#) (exp - (exp * b2))),b1 = (1 / 2) * (diff (exp - (exp * b2)),b1) )
proof end;

Lemma33: for b1 being real number
for b2 being PartFunc of REAL , REAL st b2 = compreal holds
sinh . b1 = ((1 / 2) (#) (exp - (exp * b2))) . b1
proof end;

Lemma34: for b1 being PartFunc of REAL , REAL st b1 = compreal holds
sinh = (1 / 2) (#) (exp - (exp * b1))
proof end;

theorem Th31: :: SIN_COS2:31
for b1 being real number holds
( sinh is_differentiable_in b1 & diff sinh ,b1 = cosh . b1 )
proof end;

Lemma36: for b1 being real number
for b2 being PartFunc of REAL , REAL st b2 = compreal holds
( (1 / 2) (#) (exp + (exp * b2)) is_differentiable_in b1 & diff ((1 / 2) (#) (exp + (exp * b2))),b1 = (1 / 2) * (diff (exp + (exp * b2)),b1) )
proof end;

Lemma37: for b1 being real number
for b2 being PartFunc of REAL , REAL st b2 = compreal holds
cosh . b1 = ((1 / 2) (#) (exp + (exp * b2))) . b1
proof end;

Lemma38: for b1 being PartFunc of REAL , REAL st b1 = compreal holds
cosh = (1 / 2) (#) (exp + (exp * b1))
proof end;

theorem Th32: :: SIN_COS2:32
for b1 being real number holds
( cosh is_differentiable_in b1 & diff cosh ,b1 = sinh . b1 )
proof end;

Lemma40: for b1 being real number holds
( sinh / cosh is_differentiable_in b1 & diff (sinh / cosh ),b1 = 1 / ((cosh . b1) ^2 ) )
proof end;

Lemma41: tanh = sinh / cosh
proof end;

theorem Th33: :: SIN_COS2:33
for b1 being real number holds
( tanh is_differentiable_in b1 & diff tanh ,b1 = 1 / ((cosh . b1) ^2 ) ) by Lemma40, Lemma41;

theorem Th34: :: SIN_COS2:34
for b1 being real number holds
( sinh is_differentiable_on REAL & diff sinh ,b1 = cosh . b1 )
proof end;

theorem Th35: :: SIN_COS2:35
for b1 being real number holds
( cosh is_differentiable_on REAL & diff cosh ,b1 = sinh . b1 )
proof end;

theorem Th36: :: SIN_COS2:36
for b1 being real number holds
( tanh is_differentiable_on REAL & diff tanh ,b1 = 1 / ((cosh . b1) ^2 ) )
proof end;

Lemma45: for b1 being real number holds (exp . b1) + (exp . (- b1)) >= 2
proof end;

theorem Th37: :: SIN_COS2:37
for b1 being real number holds cosh . b1 >= 1
proof end;

theorem Th38: :: SIN_COS2:38
for b1 being real number holds sinh is_continuous_in b1
proof end;

theorem Th39: :: SIN_COS2:39
for b1 being real number holds cosh is_continuous_in b1
proof end;

theorem Th40: :: SIN_COS2:40
for b1 being real number holds tanh is_continuous_in b1
proof end;

theorem Th41: :: SIN_COS2:41
sinh is_continuous_on REAL by Th34, FDIFF_1:33;

theorem Th42: :: SIN_COS2:42
cosh is_continuous_on REAL by Th35, FDIFF_1:33;

theorem Th43: :: SIN_COS2:43
tanh is_continuous_on REAL by Th36, FDIFF_1:33;

theorem Th44: :: SIN_COS2:44
for b1 being real number holds
( tanh . b1 < 1 & tanh . b1 > - 1 )
proof end;