reserve y for set;
reserve x,a,b,c for Real;
reserve n for Element of NAT;
reserve Z for open Subset of REAL;
reserve f,f1,f2 for PartFunc of REAL,REAL;

theorem
  Z c= dom (sin(#)cos) implies sin(#)cos is_differentiable_on Z & for x
  st x in Z holds ((sin(#)cos)`|Z).x = cos(2*x)
proof
A1: sin is_differentiable_on Z & cos is_differentiable_on Z by FDIFF_1:26
,SIN_COS:67,68;
  assume
A2: Z c= dom (sin(#)cos);
  now
    let x;
    assume x in Z;
    hence ((sin(#)cos)`|Z).x =(cos.x)*diff(sin,x) + (sin.x)*diff(cos,x) by A2
,A1,FDIFF_1:21
      .=cos.x * cos.x + (sin.x)*diff(cos,x) by SIN_COS:64
      .=cos.x * cos.x + (sin.x)*(-sin.x) by SIN_COS:63
      .=(cos.x)^2-sin.x*sin.x
      .=(cos(x))^2-(sin.x)^2 by SIN_COS:def 19
      .=(cos(x))^2-(sin(x))^2 by SIN_COS:def 17
      .=cos(2*x) by SIN_COS5:7;
  end;
  hence thesis by A2,A1,FDIFF_1:21;
end;
