reserve x,a,b,c for Real,
  n for Nat,
  Z for open Subset of REAL,
  f, f1,f2 for PartFunc of REAL,REAL;

theorem
  (Z c= dom (f(#)cosec) & for x st x in Z holds f.x=a*x+b) implies (f(#)
  cosec) is_differentiable_on Z & for x st x in Z holds ((f(#)cosec)`|Z).x = a/
  sin.x-(a*x+b)*cos.x/(sin.x)^2
proof
  assume that
A1: Z c= dom (f(#)cosec) and
A2: for x st x in Z holds f.x=a*x+b;
A3: Z c= dom f /\ dom cosec by A1,VALUED_1:def 4;
  then
A4: Z c= dom cosec by XBOOLE_1:18;
A5: Z c= dom f by A3,XBOOLE_1:18;
  then
A6: f is_differentiable_on Z by A2,FDIFF_1:23;
A7: for x st x in Z holds cosec is_differentiable_in x & diff(cosec, x)=-cos
  .x/(sin.x)^2
  proof
    let x;
    assume x in Z;
    then sin.x<>0 by A4,RFUNCT_1:3;
    hence thesis by Th2;
  end;
  then for x st x in Z holds cosec is_differentiable_in x;
  then
A8: cosec is_differentiable_on Z by A4,FDIFF_1:9;
  for x st x in Z holds ((f(#)cosec)`|Z).x = a/sin.x-(a*x+b)*cos.x/(sin.x )^2
  proof
    let x;
    assume
A9: x in Z;
    then
    ((f(#)cosec)`|Z).x= (cosec.x)*diff(f,x)+(f.x)*diff(cosec,x) by A1,A6,A8,
FDIFF_1:21
      .=(cosec.x)*((f`|Z).x)+(f.x)*diff(cosec,x) by A6,A9,FDIFF_1:def 7
      .=(cosec.x)*a+(f.x)*diff(cosec,x) by A2,A5,A9,FDIFF_1:23
      .=(cosec.x)*a+(a*x+b)*diff(cosec,x) by A2,A9
      .=(cosec.x)*a+(a*x+b)*(-cos.x/(sin.x)^2) by A7,A9
      .=a/sin.x-(a*x+b)*cos.x/(sin.x)^2 by A4,A9,RFUNCT_1:def 2;
    hence thesis;
  end;
  hence thesis by A1,A6,A8,FDIFF_1:21;
end;
