reserve x,x0, r, s, h for Real,

  n for Element of NAT,
  rr, y for set,
  Z for open Subset of REAL,

  f, f1, f2 for PartFunc of REAL,REAL;

theorem Th96:
  Z c= ].-1,1.[ implies (id Z)(#)(arccot) is_differentiable_on Z &
  for x st x in Z holds (((id Z)(#)(arccot))`|Z).x = arccot.x - x/(1+x^2)
proof
  assume
A1: Z c= ].-1,1.[;
A2: Z c= dom (id Z) by FUNCT_1:17;
  ].-1,1.[ c= [.-1,1.] by XXREAL_1:25;
  then ].-1,1.[ c= dom arccot by Th24;
  then Z c= dom arccot by A1;
  then Z c= dom (id Z) /\ dom arccot by A2,XBOOLE_1:19;
  then
A3: Z c= dom ((id Z)(#)(arccot)) by VALUED_1:def 4;
A4: for x st x in Z holds (id Z).x = 1*x+0 by FUNCT_1:18;
  then
A5: id Z is_differentiable_on Z by A2,FDIFF_1:23;
A6: arccot is_differentiable_on Z by A1,Th82;
  for x st x in Z holds (((id Z)(#)(arccot))`|Z).x = arccot.x - x/(1+x^2)
  proof
    let x;
    assume
A7: x in Z;
    then
A8: -1 < x by A1,XXREAL_1:4;
A9: x < 1 by A1,A7,XXREAL_1:4;
    (((id Z)(#)(arccot))`|Z).x = (arccot.x)*diff((id Z),x) + ((id Z).x)*
    diff(arccot,x) by A3,A5,A6,A7,FDIFF_1:21
      .= (arccot.x)*((id Z)`|Z).x + ((id Z).x)*diff(arccot,x) by A5,A7,
FDIFF_1:def 7
      .= (arccot.x)*1 + ((id Z).x)*diff(arccot,x) by A2,A4,A7,FDIFF_1:23
      .= arccot.x + x*diff(arccot,x) by A7,FUNCT_1:18
      .= arccot.x + x*(-1/(1+x^2)) by A8,A9,Th76
      .= arccot.x - x/(1+x^2);
    hence thesis;
  end;
  hence thesis by A3,A5,A6,FDIFF_1:21;
end;
