let Z be open Subset of REAL ; :: thesis: ( Z c= dom (cosec * cot ) implies ( cosec * cot is_differentiable_on Z & ( for x being Real st x in Z holds
((cosec * cot ) `| Z) . x = ((cos . (cot . x)) / ((sin . x) ^2 )) / ((sin . (cot . x)) ^2 ) ) ) )

assume A1: Z c= dom (cosec * cot ) ; :: thesis: ( cosec * cot is_differentiable_on Z & ( for x being Real st x in Z holds
((cosec * cot ) `| Z) . x = ((cos . (cot . x)) / ((sin . x) ^2 )) / ((sin . (cot . x)) ^2 ) ) )

dom (cosec * cot ) c= dom cot by RELAT_1:44;
then A2: Z c= dom cot by A1, XBOOLE_1:1;
A3: for x being Real st x in Z holds
sin . (cot . x) <> 0
proof
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 cosec by A1, FUNCT_1:21;
hence sin . (cot . x) <> 0 by RFUNCT_1:13; :: thesis: verum
end;
A4: for x being Real st x in Z holds
cosec * cot is_differentiable_in x
proof end;
then A7: cosec * cot is_differentiable_on Z by A1, FDIFF_1:16;
for x being Real st x in Z holds
((cosec * cot ) `| Z) . x = ((cos . (cot . x)) / ((sin . x) ^2 )) / ((sin . (cot . x)) ^2 )
proof
let x be Real; :: thesis: ( x in Z implies ((cosec * cot ) `| Z) . x = ((cos . (cot . x)) / ((sin . x) ^2 )) / ((sin . (cot . x)) ^2 ) )
assume A8: x in Z ; :: thesis: ((cosec * cot ) `| Z) . x = ((cos . (cot . x)) / ((sin . x) ^2 )) / ((sin . (cot . x)) ^2 )
then A9: sin . x <> 0 by A2, FDIFF_8:2;
then A10: cot is_differentiable_in x by FDIFF_7:47;
A11: sin . (cot . x) <> 0 by A3, A8;
then cosec is_differentiable_in cot . x by Th2;
then diff (cosec * cot ),x = (diff cosec ,(cot . x)) * (diff cot ,x) by A10, FDIFF_2:13
.= (- ((cos . (cot . x)) / ((sin . (cot . x)) ^2 ))) * (diff cot ,x) by A11, Th2
.= (- (1 / ((sin . x) ^2 ))) * (- ((cos . (cot . x)) / ((sin . (cot . x)) ^2 ))) by A9, FDIFF_7:47
.= ((cos . (cot . x)) / ((sin . x) ^2 )) / ((sin . (cot . x)) ^2 ) ;
hence ((cosec * cot ) `| Z) . x = ((cos . (cot . x)) / ((sin . x) ^2 )) / ((sin . (cot . x)) ^2 ) by A7, A8, FDIFF_1:def 8; :: thesis: verum
end;
hence ( cosec * cot is_differentiable_on Z & ( for x being Real st x in Z holds
((cosec * cot ) `| Z) . x = ((cos . (cot . x)) / ((sin . x) ^2 )) / ((sin . (cot . x)) ^2 ) ) ) by A1, A4, FDIFF_1:16; :: thesis: verum