reserve i,k,n,m for Element of NAT;
reserve a,b,r,r1,r2,s,x,x1,x2 for Real;
reserve A for non empty closed_interval Subset of REAL;
reserve X for set;

theorem Th11:
  for f being PartFunc of REAL,REAL st A c= dom f & f|A is
  continuous holds f is_integrable_on A
proof
  let f be PartFunc of REAL,REAL;
  assume
A1: A c= dom f;
  reconsider g=f|A as PartFunc of A,REAL by PARTFUN1:10;
A2: dom g = dom f /\ A by RELAT_1:61
    .= A by A1,XBOOLE_1:28;
  then
A3: g is total by PARTFUN1:def 2;
  for y being object st y in f.:A holds y in rng g
  proof
    let y be object;
    assume y in f.:A;
    then consider x being object such that
    x in dom f and
A4: x in A and
A5: y = f.x by FUNCT_1:def 6;
    g.x in rng g by A2,A4,FUNCT_1:def 3;
    hence thesis by A2,A4,A5,FUNCT_1:47;
  end;
  then
A6: f.:A c= rng g by TARSKI:def 3;
  for y being object st y in rng g holds y in f.:A
  proof
    let y be object;
    assume y in rng g;
    then consider x being object such that
A7: x in dom g and
A8: y=g.x by FUNCT_1:def 3;
    f.x in f.:A by A1,A2,A7,FUNCT_1:def 6;
    hence thesis by A7,A8,FUNCT_1:47;
  end;
  then rng g c= f.:A by TARSKI:def 3;
  then
A9: rng g = f.:A by A6,XBOOLE_0:def 10;
  assume
A10: f|A is continuous;
  then f.:A is real-bounded by A1,FCONT_1:29,RCOMP_1:10;
  then
A11: g|A is bounded_above & g|A is bounded_below by A9,INTEGRA1:12,14;
  reconsider g as Function of A,REAL by A3;
A12: f|A is uniformly_continuous by A1,A10,FCONT_2:11;
  for T being DivSequence of A st delta(T) is convergent & lim delta(T)=0
  holds lim upper_sum(g,T)-lim lower_sum(g,T)=0
  proof
    let T be DivSequence of A;
    reconsider osc=upper_sum(g,T)-lower_sum(g,T) as Real_Sequence;
    assume
A13: delta(T) is convergent & lim delta(T)=0;
A14: for r be Real st 0<r
   ex n being Nat st for m being Nat st n<=m holds |.osc.m-0.|<
    r
    proof
      let r be Real;
      assume
A15:  r>0;
      ex r1 st r1>0 & r1*vol(A)<r
      proof
          per cases by INTEGRA1:9;
          suppose
A16:        vol(A)=0;
            take 1;
            r1*vol(A)<r by A15,A16;
            hence thesis;
          end;
          suppose
A17:        vol(A)>0;
            then r/vol(A) > 0 by A15,XREAL_1:139;
            then consider r1 being Real such that
A18:        0<r1 and
A19:        r1<r/vol(A) by XREAL_1:5;
            take r1;
            r1*vol(A)<r by A17,A19,XREAL_1:79;
            hence thesis by A18;
          end;
      end;
      then consider r1 such that
A20:  r1>0 and
A21:  r1*vol(A) < r;
      consider s such that
A22:  0<s and
A23:  for x1,x2 st x1 in dom(f|A) & x2 in dom(f|A) & |.x1-x2.| < s
      holds |.f.x1 - f.x2.| < r1 by A12,A20,FCONT_2:1;
      consider n being Nat such that
A24:  for m being Nat st n<=m
    holds |.delta(T).m-0.|<s by A13,A22,SEQ_2:def 7;
A25:  for m st n<=m holds upper_sum(g,T).m-lower_sum(g,T).m <=r1*vol(A)
      proof
        let m;
        reconsider D=T.m as Division of A;
        len upper_volume(g,D) = len D by INTEGRA1:def 6;
        then reconsider
        UV=upper_volume(g,D) as Element of (len D)-tuples_on REAL
        by FINSEQ_2:92;
        len lower_volume(g,D) = len D by INTEGRA1:def 7;
        then reconsider
        LV=lower_volume(g,D) as Element of (len D)-tuples_on REAL
        by FINSEQ_2:92;
        reconsider OSC=UV-LV as Element of (len D)-tuples_on REAL;
        len upper_volume(chi(A,A),D) = len D by INTEGRA1:def 6;
        then reconsider VOL=upper_volume(chi(A,A),D) as Element of (len D)
        -tuples_on REAL by FINSEQ_2:92;
        assume
A26:    n<=m;
A27:    for k st k in dom D holds upper_volume(g,D).k-lower_volume(g,D).k
        <=r1*upper_volume(chi(A,A),D).k
        proof
          let k;
          assume
A28:      k in dom D;
          reconsider h=g|divset(D,k) as PartFunc of divset(D,k),REAL by
PARTFUN1:10;
          dom g = A by PARTFUN1:def 2;
          then dom g /\ divset(D,k) = divset(D,k) by A28,INTEGRA1:8,XBOOLE_1:28
;
          then dom h = divset(D,k) by RELAT_1:61;
          then h is total by PARTFUN1:def 2;
          then reconsider h as Function of divset(D,k),REAL;
A29:      for x1,x2 st x1 in divset(D,k) & x2 in divset(D,k) holds |.h.
          x1-h.x2.|<=r1
          proof
            upper_volume(chi(A,A),D).k=vol(divset(D,k)) by A28,INTEGRA1:20;
            then
A30:        upper_volume(chi(A,A),D).k>=0 by INTEGRA1:9;
            k in Seg(len D) by A28,FINSEQ_1:def 3;
            then k in Seg(len(upper_volume(chi(A,A),D))) by INTEGRA1:def 6;
            then k in dom(upper_volume(chi(A,A),D)) by FINSEQ_1:def 3;
            then
A31:        upper_volume(chi(A,A),D).k in rng(upper_volume(chi(A,A),D))
            by FUNCT_1:def 3;
            dom h = dom g /\ divset(D,k) by RELAT_1:61;
            then
A32:        dom h c= dom g by XBOOLE_1:17;
            let x1,x2;
            assume that
A33:        x1 in divset(D,k) and
A34:        x2 in divset(D,k);
A35:        x2 in dom h by A34,PARTFUN1:def 2;
            then g.x2=h.x2 by FUNCT_1:47;
            then
A36:        f.x2=h.x2 by A35,A32,FUNCT_1:47;
A37:        |.x1-x2.|<=delta(T).m
            proof
              now
                per cases;
                suppose
                  x1 >= x2;
                  then x1-x2>=0 by XREAL_1:48;
                  then
A38:              |.x1-x2.|=x1-x2 by ABSVALUE:def 1;
                  x1<=upper_bound divset(D,k) & x2>=lower_bound divset(D,k)
                  by A33,A34,INTEGRA2:1;
                  then |.x1-x2.|<=
                  upper_bound divset(D,k)-lower_bound divset(D,k) by A38,
XREAL_1:13;
                  then
A39:              |.x1-x2.|<=vol(divset(D,k)) by INTEGRA1:def 5;
                  k in Seg(len D) by A28,FINSEQ_1:def 3;
                  then k in Seg(len (upper_volume(chi(A,A),D))) by
INTEGRA1:def 6;
                  then k in dom(upper_volume(chi(A,A),D)) by FINSEQ_1:def 3;
                  then
                  upper_volume(chi(A,A),D).k in rng(upper_volume(chi(A,A)
                  ,D)) by FUNCT_1:def 3;
                  then
                  upper_volume(chi(A,A),D).k<=max rng(upper_volume(chi(A,
                  A),D)) by XXREAL_2:def 8;
                  then
A40:              upper_volume(chi(A,A),D).k<=delta(T.m) by INTEGRA3:def 1;
                  upper_volume(chi(A,A),D).k=vol(divset( D,k)) by A28,
INTEGRA1:20;
                  then |.x1-x2.|<=delta(T.m) by A39,A40,XXREAL_0:2;
                  hence thesis by INTEGRA3:def 2;
                end;
                suppose
                  x1<x2;
                  then x1-x2<0 by XREAL_1:49;
                  then |.x1-x2.|=-(x1-x2) by ABSVALUE:def 1;
                  then
A41:              |.x1-x2.|=x2-x1;
                  x2<=upper_bound divset(D,k) & x1>=lower_bound divset(D,k)
                  by A33,A34,INTEGRA2:1;
                  then |.x1-x2.|<=
                  upper_bound divset(D,k)-lower_bound divset(D,k) by A41,
XREAL_1:13;
                  then
A42:              |.x1-x2.|<=vol(divset(D,k)) by INTEGRA1:def 5;
                  k in Seg(len D) by A28,FINSEQ_1:def 3;
                  then k in Seg(len (upper_volume(chi(A,A),D))) by
INTEGRA1:def 6;
                  then k in dom(upper_volume(chi(A,A),D)) by FINSEQ_1:def 3;
                  then
                  upper_volume(chi(A,A),D).k in rng(upper_volume(chi(A,A)
                  ,D)) by FUNCT_1:def 3;
                  then
                  upper_volume(chi(A,A),D).k<=max rng(upper_volume(chi(A,
                  A),D)) by XXREAL_2:def 8;
                  then
A43:              upper_volume(chi(A,A),D).k<=delta(T.m) by INTEGRA3:def 1;
                  upper_volume(chi(A,A),D).k=vol(divset( D,k)) by A28,
INTEGRA1:20;
                  then |.x1-x2.|<=delta(T.m) by A42,A43,XXREAL_0:2;
                  hence thesis by INTEGRA3:def 2;
                end;
              end;
              hence thesis;
            end;
            delta(T).m = delta(D) by INTEGRA3:def 2
              .=max rng(upper_volume(chi(A,A),D)) by INTEGRA3:def 1;
            then delta(T).m-0>=0 by A30,A31,XXREAL_2:def 8;
            then
A44:        |.x1-x2.|<=|.delta(T).m-0.| by A37,ABSVALUE:def 1;
            |.delta(T).m-0.|<s by A24,A26;
            then
A45:        |.x1-x2.|<s by A44,XXREAL_0:2;
A46:        x1 in dom h by A33,PARTFUN1:def 2;
            then g.x1=h.x1 by FUNCT_1:47;
            then f.x1=h.x1 by A46,A32,FUNCT_1:47;
            hence thesis by A23,A45,A46,A35,A32,A36;
          end;
          vol(divset(D,k)) >= 0 by INTEGRA1:9;
          then (upper_bound rng(g|divset(D,k))-
          lower_bound rng(g|divset(D,k)))*vol(divset(D,k
          ) ) <=r1*vol(divset(D,k)) by A29,INTEGRA4:24,XREAL_1:64;
          then upper_bound rng(g|divset(D,k))*vol(divset(D,k))
          -lower_bound rng(g|divset(D,k)
          )*vol(divset(D,k))<=r1*vol(divset(D,k));
          then upper_volume(g,D).k -
          lower_bound rng(g|divset(D,k))*vol(divset(D,k))<=
          r1*vol(divset(D,k)) by A28,INTEGRA1:def 6;
          then upper_volume(g,D).k-lower_volume(g,D).k<=r1*vol(divset(D,k))
          by A28,INTEGRA1:def 7;
          hence thesis by A28,INTEGRA1:20;
        end;
        for k be Nat st k in Seg len D holds OSC.k<=(r1*VOL).k
        proof
          let k be Nat;
          assume k in Seg len D;
          then
A47:      k in dom D by FINSEQ_1:def 3;
          OSC.k = upper_volume(g,D).k-lower_volume(g,D).k by RVSUM_1:27;
          then OSC.k<=r1*VOL.k by A27,A47;
          hence thesis by RVSUM_1:45;
        end;
        then Sum OSC <= Sum(r1*VOL) by RVSUM_1:82;
        then Sum OSC <= r1*Sum VOL by RVSUM_1:87;
        then Sum UV-Sum LV <= r1*Sum VOL by RVSUM_1:90;
        then upper_sum(g,D)-Sum LV <= r1*Sum VOL by INTEGRA1:def 8;
        then upper_sum(g,D)-lower_sum(g,D) <= r1*Sum VOL by INTEGRA1:def 9;
        then upper_sum(g,D)-lower_sum(g,D) <= r1*vol(A) by INTEGRA1:24;
        then upper_sum(g,T).m-lower_sum(g,D)<=r1*vol(A) by INTEGRA2:def 2;
        hence thesis by INTEGRA2:def 3;
      end;
        take n;
        let m be Nat;
         reconsider mm=m as Element of NAT by ORDINAL1:def 12;
        reconsider D=T.mm as Division of A;
        assume n<=m;
        then upper_sum(g,T).mm-lower_sum(g,T).mm <= r1*vol(A) by A25;
        then
A48:    upper_sum(g,T).m-lower_sum(g,T).m < r by A21,XXREAL_0:2;
        upper_sum(g,D)>=lower_sum(g,D) by A11,INTEGRA1:28;
        then upper_sum(g,T).mm>=lower_sum(g,D) by INTEGRA2:def 2;
        then upper_sum(g,T).mm>=lower_sum(g,T).mm by INTEGRA2:def 3;
        then
A49:    upper_sum(g,T).m-lower_sum(g,T).m >= 0 by XREAL_1:48;
        osc.m=upper_sum(g,T).m+(-lower_sum(g,T)).m by SEQ_1:7
          .=upper_sum(g,T).m+-lower_sum(g,T).m by SEQ_1:10
          .=upper_sum(g,T).m-lower_sum(g,T).m;
        hence thesis by A48,A49,ABSVALUE:def 1;
    end;
    then osc is convergent by SEQ_2:def 6;
    then
A50: lim osc = 0 by A14,SEQ_2:def 7;
    upper_sum(g,T) is convergent & lower_sum(g,T) is convergent by A11,A13,
INTEGRA4:8,9;
    hence thesis by A50,SEQ_2:12;
  end;
  then g is integrable by A11,INTEGRA4:12;
  hence thesis;
end;
