reserve r,x,x0,a,b for Real;
reserve n,m for Element of NAT;
reserve A for non empty closed_interval Subset of REAL;
reserve Z for open Subset of REAL;
reserve f, f1, f2, f3 for PartFunc of REAL, REAL;

theorem
  A c= Z & (for x st x in Z holds sin.x >0) & Z c= dom (ln*sin) & Z =
  dom cot & cot|A is continuous implies
   integral(cot,A) = (ln*sin).(upper_bound A)-(ln*
  sin).(lower_bound A)
proof
  set f = cot;
  assume that
A1: A c= Z and
A2: for x st x in Z holds sin.x >0 and
A3: Z c= dom (ln*sin) and
A4: Z = dom cot and
A5: f|A is continuous;
A6: (ln*sin) is_differentiable_on Z by A2,A3,FDIFF_4:43;
A7: for x being Element of REAL
st x in dom ((ln*sin)`|Z) holds ((ln*sin)`|Z).x = f.x
  proof
    let x be Element of REAL;
    assume x in dom ((ln*sin)`|Z);
    then
A8: x in Z by A6,FDIFF_1:def 7;
    then
A9: sin.x <> 0 by A2;
    ((ln*sin)`|Z).x = cot(x) by A2,A3,A8,FDIFF_4:43
      .= f.x by A9,SIN_COS9:16;
    hence thesis;
  end;
  dom ((ln*sin)`|Z) = dom f by A4,A6,FDIFF_1:def 7;
  then
A10: ((ln*sin)`|Z) = f by A7,PARTFUN1:5;
  f is_integrable_on A & f|A is bounded by A1,A4,A5,INTEGRA5:10,11;
  hence thesis by A1,A2,A3,A10,FDIFF_4:43,INTEGRA5:13;
end;
