reserve Z for set;

theorem Th8:
  for A be non empty closed_interval Subset of REAL, f being Function of A,
  REAL, T being DivSequence of A, e be Element of REAL st 0 < e & f|A is
  bounded_above holds ex S be middle_volume_Sequence of f,T st for i be Element
  of NAT holds (upper_sum(f,T)).i - e <= (middle_sum(f,S)).i
proof
  let A be non empty closed_interval Subset of REAL,
  f being Function of A,REAL, T being
  DivSequence of A, e be Element of REAL;
  defpred P[Element of NAT,set ] means $2 is middle_volume of f,T.$1 & ex z be
  middle_volume of f,T.$1 st z=$2 & upper_sum(f,T.$1) -e <= middle_sum(f,z);
  assume
A1: 0 < e & f|A is bounded_above;
A2: for x being Element of NAT ex y being Element of (REAL)* st P[x, y]
  proof
    let x being Element of NAT;
    consider z be middle_volume of f,T.x such that
A3: upper_sum (f,T.x) - e <= middle_sum(f,z) by A1,Th4;
    reconsider y=z as Element of (REAL)* by FINSEQ_1:def 11;
    take y;
    thus thesis by A3;
  end;
  consider F being sequence of  (REAL)* such that
A4: for x being Element of NAT holds P[x, F.x] from FUNCT_2:sch 3(A2);
  reconsider F as middle_volume_Sequence of f,T by A4,Def3;
  now
    let x being Element of NAT;
    ex z be middle_volume of f,T.x st z=F.x & upper_sum (f,T.x) - e <=
    middle_sum(f,z) by A4;
    then upper_sum(f,T.x) - e <= (middle_sum(f,F)).x by Def4;
    hence (upper_sum(f,T)).x - e <=(middle_sum(f,F)).x by INTEGRA2:def 2;
  end;
  hence thesis;
end;
