let Z be open Subset of REAL; :: thesis: ( Z c= dom (cot * cot) implies ( cot * cot is_differentiable_on Z & ( for x being Real st x in Z holds

((cot * cot) `| Z) . x = (1 / ((sin . (cot . x)) ^2)) * (1 / ((sin . x) ^2)) ) ) )

assume A1: Z c= dom (cot * cot) ; :: thesis: ( cot * cot is_differentiable_on Z & ( for x being Real st x in Z holds

((cot * cot) `| Z) . x = (1 / ((sin . (cot . x)) ^2)) * (1 / ((sin . x) ^2)) ) )

A2: for x being Real st x in Z holds

sin . (cot . x) <> 0

sin . x <> 0

cot * cot is_differentiable_in x

for x being Real st x in Z holds

((cot * cot) `| Z) . x = (1 / ((sin . (cot . x)) ^2)) * (1 / ((sin . x) ^2))

((cot * cot) `| Z) . x = (1 / ((sin . (cot . x)) ^2)) * (1 / ((sin . x) ^2)) ) ) by A1, A4, FDIFF_1:9; :: thesis: verum

((cot * cot) `| Z) . x = (1 / ((sin . (cot . x)) ^2)) * (1 / ((sin . x) ^2)) ) ) )

assume A1: Z c= dom (cot * cot) ; :: thesis: ( cot * cot is_differentiable_on Z & ( for x being Real st x in Z holds

((cot * cot) `| Z) . x = (1 / ((sin . (cot . x)) ^2)) * (1 / ((sin . x) ^2)) ) )

A2: for x being Real st x in Z holds

sin . (cot . x) <> 0

proof

A3:
for x being Real st x in Z holds
let x be Real; :: thesis: ( x in Z implies sin . (cot . x) <> 0 )

assume x in Z ; :: thesis: sin . (cot . x) <> 0

then cot . x in dom cot by A1, FUNCT_1:11;

hence sin . (cot . x) <> 0 by FDIFF_8:2; :: thesis: verum

end;assume x in Z ; :: thesis: sin . (cot . x) <> 0

then cot . x in dom cot by A1, FUNCT_1:11;

hence sin . (cot . x) <> 0 by FDIFF_8:2; :: thesis: verum

sin . x <> 0

proof

A4:
for x being Real st x in Z holds
let x be Real; :: thesis: ( x in Z implies sin . x <> 0 )

assume x in Z ; :: thesis: sin . x <> 0

then x in dom (cos / sin) by A1, FUNCT_1:11;

hence sin . x <> 0 by FDIFF_8:2; :: thesis: verum

end;assume x in Z ; :: thesis: sin . x <> 0

then x in dom (cos / sin) by A1, FUNCT_1:11;

hence sin . x <> 0 by FDIFF_8:2; :: thesis: verum

cot * cot is_differentiable_in x

proof

then A7:
cot * cot is_differentiable_on Z
by A1, FDIFF_1:9;
let x be Real; :: thesis: ( x in Z implies cot * cot is_differentiable_in x )

assume A5: x in Z ; :: thesis: cot * cot is_differentiable_in x

then sin . (cot . x) <> 0 by A2;

then A6: cot is_differentiable_in cot . x by FDIFF_7:47;

sin . x <> 0 by A3, A5;

then cot is_differentiable_in x by FDIFF_7:47;

hence cot * cot is_differentiable_in x by A6, FDIFF_2:13; :: thesis: verum

end;assume A5: x in Z ; :: thesis: cot * cot is_differentiable_in x

then sin . (cot . x) <> 0 by A2;

then A6: cot is_differentiable_in cot . x by FDIFF_7:47;

sin . x <> 0 by A3, A5;

then cot is_differentiable_in x by FDIFF_7:47;

hence cot * cot is_differentiable_in x by A6, FDIFF_2:13; :: thesis: verum

for x being Real st x in Z holds

((cot * cot) `| Z) . x = (1 / ((sin . (cot . x)) ^2)) * (1 / ((sin . x) ^2))

proof

hence
( cot * cot is_differentiable_on Z & ( for x being Real st x in Z holds
let x be Real; :: thesis: ( x in Z implies ((cot * cot) `| Z) . x = (1 / ((sin . (cot . x)) ^2)) * (1 / ((sin . x) ^2)) )

assume A8: x in Z ; :: thesis: ((cot * cot) `| Z) . x = (1 / ((sin . (cot . x)) ^2)) * (1 / ((sin . x) ^2))

then A9: sin . (cot . x) <> 0 by A2;

then A10: cot is_differentiable_in cot . x by FDIFF_7:47;

A11: sin . x <> 0 by A3, A8;

then cot is_differentiable_in x by FDIFF_7:47;

then diff ((cot * cot),x) = (diff (cot,(cot . x))) * (diff (cot,x)) by A10, FDIFF_2:13

.= (- (1 / ((sin . (cot . x)) ^2))) * (diff (cot,x)) by A9, FDIFF_7:47

.= (- (1 / ((sin . (cot . x)) ^2))) * (- (1 / ((sin . x) ^2))) by A11, FDIFF_7:47 ;

hence ((cot * cot) `| Z) . x = (1 / ((sin . (cot . x)) ^2)) * (1 / ((sin . x) ^2)) by A7, A8, FDIFF_1:def 7; :: thesis: verum

end;assume A8: x in Z ; :: thesis: ((cot * cot) `| Z) . x = (1 / ((sin . (cot . x)) ^2)) * (1 / ((sin . x) ^2))

then A9: sin . (cot . x) <> 0 by A2;

then A10: cot is_differentiable_in cot . x by FDIFF_7:47;

A11: sin . x <> 0 by A3, A8;

then cot is_differentiable_in x by FDIFF_7:47;

then diff ((cot * cot),x) = (diff (cot,(cot . x))) * (diff (cot,x)) by A10, FDIFF_2:13

.= (- (1 / ((sin . (cot . x)) ^2))) * (diff (cot,x)) by A9, FDIFF_7:47

.= (- (1 / ((sin . (cot . x)) ^2))) * (- (1 / ((sin . x) ^2))) by A11, FDIFF_7:47 ;

hence ((cot * cot) `| Z) . x = (1 / ((sin . (cot . x)) ^2)) * (1 / ((sin . x) ^2)) by A7, A8, FDIFF_1:def 7; :: thesis: verum

((cot * cot) `| Z) . x = (1 / ((sin . (cot . x)) ^2)) * (1 / ((sin . x) ^2)) ) ) by A1, A4, FDIFF_1:9; :: thesis: verum