let Z be open Subset of REAL; :: thesis: ( cos * cos is_differentiable_on Z & ( for x being Real st x in Z holds
((cos * cos) `| Z) . x = (sin . (cos . x)) * (sin . x) ) )

A1: for x being Real st x in Z holds
cos * cos is_differentiable_in x
proof end;
rng cos c= REAL ;
then A3: dom (cos * cos) = REAL by RELAT_1:27, SIN_COS:24;
then A4: cos * cos is_differentiable_on Z by A1, FDIFF_1:9;
for x being Real st x in Z holds
((cos * cos) `| Z) . x = (sin . (cos . x)) * (sin . x)
proof
let x be Real; :: thesis: ( x in Z implies ((cos * cos) `| Z) . x = (sin . (cos . x)) * (sin . x) )
assume A5: x in Z ; :: thesis: ((cos * cos) `| Z) . x = (sin . (cos . x)) * (sin . x)
A6: cos is_differentiable_in cos . x by SIN_COS:63;
cos is_differentiable_in x by SIN_COS:63;
then diff ((cos * cos),x) = (diff (cos,(cos . x))) * (diff (cos,x)) by A6, FDIFF_2:13
.= (- (sin . (cos . x))) * (diff (cos,x)) by SIN_COS:63
.= (- (sin . (cos . x))) * (- (sin . x)) by SIN_COS:63 ;
hence ((cos * cos) `| Z) . x = (sin . (cos . x)) * (sin . x) by A4, A5, FDIFF_1:def 7; :: thesis: verum
end;
hence ( cos * cos is_differentiable_on Z & ( for x being Real st x in Z holds
((cos * cos) `| Z) . x = (sin . (cos . x)) * (sin . x) ) ) by A3, A1, FDIFF_1:9; :: thesis: verum