 reserve a,x for Real;
 reserve n for Nat;
 reserve A for non empty closed_interval Subset of REAL;
 reserve f,f1 for PartFunc of REAL,REAL;
 reserve Z for open Subset of REAL;

theorem
A c= Z & (for x st x in Z holds f.x=(1/(sin.(cot.x))^2) *(1/(sin.x)^2))
& Z c= dom (cot*cot) & Z = dom f & f|A is continuous
implies integral(f,A)=(cot*cot).(upper_bound A)-(cot*cot).(lower_bound A)
proof
   assume
A1:A c= Z & (for x st x in Z holds f.x=(1/(sin.(cot.x))^2) *(1/(sin.x)^2))
& Z c= dom (cot*cot) & Z = dom f & f|A is continuous; then
A2:f is_integrable_on A & f|A is bounded by INTEGRA5:10,11;
A3:cot*cot is_differentiable_on Z by A1,FDIFF_10:3;
A4:for x being Element of REAL st x in dom ((cot*cot)`|Z)
holds ((cot*cot)`|Z).x=f.x
  proof
    let x be Element of REAL;
    assume x in dom ((cot*cot)`|Z);then
A5:x in Z by A3,FDIFF_1:def 7;then
  ((cot*cot)`|Z).x = (1/(sin.(cot.x))^2) *(1/(sin.x)^2) by A1,FDIFF_10:3
  .= f.x by A1,A5;
   hence thesis;
   end;
  dom ((cot*cot)`|Z)=dom f by A1,A3,FDIFF_1:def 7;
  then ((cot*cot)`|Z)= f by A4,PARTFUN1:5;
  hence thesis by A1,A2,A3,INTEGRA5:13;
end;
