
theorem Th17:
  for M be non empty MetrSpace,S be non empty compact TopSpace,
      T be non empty MetrSpace,
      G be Subset of Funcs(the carrier of M, the carrier of T),
      H be non empty Subset of
        MetricSpace_of_ContinuousFunctions(S,T)
  st S = TopSpaceMetr(M) & T is complete & G = H holds
  (MetricSpace_of_ContinuousFunctions(S,T))
     | H is totally_bounded
    iff
    G is equicontinuous &
    for x be Point of S,
        Hx be non empty Subset of T
    st Hx = { f.x where f is Function of S,T : f in H }
       holds T | Cl(Hx) is compact
  proof
    let M be non empty MetrSpace, S be non empty compact TopSpace,
        T be non empty MetrSpace;
    let G be Subset of Funcs(the carrier of M, the carrier of T),
        H be non empty Subset of MetricSpace_of_ContinuousFunctions(S,T);
    assume A1: S = TopSpaceMetr(M) & T is complete;
    assume A2: G = H;
    set Z = MetricSpace_of_ContinuousFunctions(S,T);
    set MZH = Z | H;
A3: the carrier of MZH = H by TOPMETR:def 2;
    hereby assume A4: Z | H is totally_bounded;
      hence G is equicontinuous by Th16,A1,A2;
      thus for x be Point of S, Hx be non empty Subset of T
       st Hx = {f.x where f is Function of S,T :f in H } holds
      T | Cl(Hx) is compact
      proof
        let x be Point of S, Hx be non empty Subset of T;
        assume A5: Hx = {f.x where f is Function of S,T :f in H };
        T | Hx is totally_bounded by Th16,A1,A2,A4,A5;
        hence T | Cl(Hx) is compact by Th5,A1;
      end;
    end;
    assume
 A6:G is equicontinuous &
    for x be Point of S, Hx be non empty Subset of T
       st Hx = {f.x where f is Function of S,T :f in H }
     holds (T) | Cl(Hx) is compact;
    for e being Real st e > 0 holds
     ex L being Subset-Family of MZH st
       L is finite & the carrier of MZH = union L
       & for C being Subset of MZH st C in L holds
    ex w being Element of MZH st C = Ball (w,e)
    proof
      let e0 be Real;
      assume
 A7:  e0 > 0; then
 A8:  0 < e0/2 & e0/2 < e0 by XREAL_1:216;
      set e=e0/2;
      consider d be Real such that
  A9: 0 < d &
        for f be Function of the carrier of M,the carrier of T
             st f in G holds
      for x1,x2 be Point of M
          st dist(x1,x2) < d holds dist(f.x1,f.x2) < e/4 by A6,A7;
      set BM = the set of all Ball (x0,d) where x0 is Element of M;
      BM c= bool the carrier of S
      proof
        let z be object;
        assume z in BM; then
        consider x0 be Point of M such that
  A10:  z = Ball (x0,d);
        thus z in bool the carrier of S by A10,A1;
      end; then
      reconsider BM as Subset-Family of S;
      for P being Subset of S st P in BM holds P is open
      proof
        let P be Subset of S;
        assume P in BM; then
        consider x0 be Point of M such that
A11:    P = Ball (x0,d);
        thus P is open by A1,A11,PCOMPS_1:29;
      end; then
 A12: BM is open by TOPS_2:def 1;
      the carrier of S c= union BM
      proof
        let z be object;
        assume z in the carrier of S; then
        reconsider x0=z as Point of M by A1;
    A13:Ball(x0,d) in BM;
        dist(x0,x0) < d by A9,METRIC_1:1; then
        x0 in { y where y is Element of M : dist (x0,y) < d }; then
        x0 in Ball(x0,d) by METRIC_1:def 14;
        hence z in union BM by TARSKI:def 4,A13;
      end; then
      BM is Cover of [#] S by SETFAM_1:def 11; then
      consider BM0 being Subset-Family of S such that
A14:  BM0 c= BM & BM0 is Cover of [#] S & BM0 is finite
        by COMPTS_1:def 4,COMPTS_1:1,A12;
      reconsider BM0 as finite set by A14;
      defpred P1[object,object] means
        ex w be Point of M st $2 = w & $1 =Ball(w,d);
A15:  for D be object st D in BM
         ex w be object st w in the carrier of M & P1[D,w]
      proof
        let D be object;
        assume D in BM; then
        consider w being Element of M such that
A16:    D = Ball (w,d);
        take w;
        thus w in the carrier of M & P1[D,w] by A16;
      end;
      consider U being Function of BM,the carrier of M such that
A17:  for D being object st D in BM
        holds P1[D,U.D] from FUNCT_2:sch 1(A15);
A18:  for D being object st D in BM holds D = Ball(U/.D,d)
      proof
        let D be object;
        assume A19: D in BM; then
A20:    ex x0 be Point of M st U.D = x0 & D = Ball(x0,d) by A17;
        dom U = BM by FUNCT_2:def 1;
        hence D = Ball(U/.D,d) by A20,A19,PARTFUN1:def 6;
      end;
      set CF = canFS BM0;
A21:  len CF = card BM0 by FINSEQ_1:93;
A22:  rng CF = BM0 by FUNCT_2:def 3;
A23:  dom U = BM by FUNCT_2:def 1; then
      reconsider PS = U*CF as FinSequence by A22,A14,FINSEQ_1:16;
      rng PS c= rng U by RELAT_1:26; then
      reconsider PS as FinSequence of the carrier of S
        by FINSEQ_1:def 4,A1,XBOOLE_1:1;
A24:  dom PS = dom CF by A22,A23,A14,RELAT_1:27
           .= Seg card BM0 by A21,FINSEQ_1:def 3;
A25:  dom CF = Seg len CF by FINSEQ_1:def 3
           .= dom PS by A24,FINSEQ_1:93;
A26:  for i be Nat st i in dom PS holds CF.i = Ball((U*CF)/.i,d)
      proof
        let i be Nat;
        assume A27: i in dom PS; then
  A28:  CF.i in rng CF by FUNCT_1:3,A25; then
        U/.(CF.i) = U.(CF.i) by PARTFUN1:def 6,A23,A14
           .=PS.i by FUNCT_1:12,A27
           .=(U*CF)/.i by PARTFUN1:def 6,A27;
        hence thesis by A28,A18,A14;
      end;
      union rng CF = union BM0 by FUNCT_2:def 3; then
A29:  the carrier of S c=union rng CF by A14,SETFAM_1:def 11;
A30:  BM0 <> {}
      proof
        assume BM0 = {}; then
        [#]S c= {} by SETFAM_1:def 11,A14,ZFMISC_1:2;
        hence contradiction;
      end;
      defpred Q1[object,object] means
       ex x be Point of S,
          NHx be non empty Subset of T,
          CHx be non empty Subset of T st
       $1 = x & NHx={f.x where f is Function of S,T :f in H } &
       $2 = Cl NHx;
A31:   for x be object st x in the carrier of S
         ex B be object st
           B in bool the carrier of T & Q1[x,B]
       proof
         let x be object;
         assume x in the carrier of S; then
         reconsider x0= x as Point of S;
         set NHx = {f.x0 where f is Function of S,T : f in H };
         consider f0 be object such that
A32:     f0 in H by XBOOLE_0:def 1;
         f0 in Z by A32; then
         ex g be Function of the carrier of S,TopSpaceMetr T
           st f0=g & g is continuous; then
         reconsider g=f0 as Function of S,T;
    A33: g.x0 in NHx by A32;
         NHx c= the carrier of T
         proof
           let z be object;
           assume z in NHx; then
           consider f be Function of S,T such that
      A34: z= f.x0 & f in H;
           thus z in the carrier of T by A34;
         end; then
         reconsider NHx as non empty Subset of T by A33;
         reconsider CHx = Cl NHx as non empty Subset of T;
         CHx in bool the carrier of T;
         hence thesis;
       end;
       consider ST being Function of
       the carrier of S, bool the carrier of T such that
  A35: for x being object
         st x in the carrier of S
        holds Q1[x,ST.x] from FUNCT_2:sch 1(A31);
A36:   dom ST = the carrier of S by FUNCT_2:def 1;
A37:   rng PS c= the carrier of S; then
       reconsider STPS = ST*PS as FinSequence by A36,FINSEQ_1:16;
       rng STPS c= rng ST by RELAT_1:26; then
       reconsider STPS as FinSequence of bool the carrier of TopSpaceMetr T
         by FINSEQ_1:def 4,XBOOLE_1:1;
A38:   dom STPS = Seg card BM0 by A24,A36,A37,RELAT_1:27;
A39:   for i be Nat st i in dom STPS holds
         (ex NHx be non empty Subset of T,
            CHx be non empty Subset of T
         st NHx = {f.(PS/.i) where f is Function of S,T :f in H }
       & STPS/.i = Cl(NHx) ) & STPS/.i is non empty
       proof
         let i be Nat;
         assume
  A40:   i in dom STPS; then
  A41:   STPS/.i = STPS.i by PARTFUN1:def 6
              .= ST.(PS.i) by FUNCT_1:12,A40;
         consider x be Point of S,
                  NHx be non empty Subset of T,
                  CHx be non empty Subset of T such that
   A42:  PS/.i = x &
         NHx={f.x where f is Function of S,T :f in H } &
         ST.(PS/.i) = Cl NHx by A35;
   A43:  STPS/.i = Cl NHx by A42,A41,A38,A24,A40,PARTFUN1:def 6;
         consider f0 be object such that
   A44:  f0 in H by XBOOLE_0:def 1;
         f0 in Z by A44; then
         ex g be Function of S, TopSpaceMetr T st f0=g & g is continuous; then
         reconsider g=f0 as Function of S,T;
         thus thesis by A42,A43;
       end;
       for i be Nat st i in Seg len STPS holds STPS/.i is compact
       proof
         let i be Nat;
         assume i in Seg len STPS; then
         i in dom STPS by FINSEQ_1:def 3; then
         consider NHx be non empty Subset of T,
         CHx be non empty Subset of T such that
A45:     NHx= {f.(PS/.i) where f is Function of S,T :f in H } &
         STPS/.i = Cl NHx by A39;
         reconsider Hx1 = NHx as non empty Subset of T;
    A46: T | Cl(Hx1) is compact by A45,A6;
         Cl Hx1 is sequentially_compact by TOPMETR4:14,A46;
         hence thesis by A45,TOPMETR4:15;
       end; then
A47:   union rng STPS is compact by ASCOLI:2;
       consider i0 be object such that
  A48: i0 in dom STPS by A30,A38,XBOOLE_0:def 1;
       reconsider i0 as Nat by A48;
       STPS/.i0 = STPS.i0 by A48,PARTFUN1:def 6; then
       STPS/.i0 c= union rng STPS by ZFMISC_1:74,A48,FUNCT_1:3; then
       reconsider URSTPS = union rng STPS
         as non empty Subset of T by A48,A39;
       URSTPS is sequentially_compact by A47,TOPMETR4:15; then
A49:   T | URSTPS is compact by TOPMETR4:14;
       set MURSTPS = T | URSTPS;
       set BM2 = the set of all
         Ball (w,e/4) where w is Element of MURSTPS;
       BM2 c= bool the carrier of MURSTPS
       proof
         let z be object;
         assume z in BM2; then
         consider x0 be Point of MURSTPS such that
   A50:  z = Ball (x0,e/4);
         thus z in bool the carrier of MURSTPS by A50;
       end; then
       reconsider BM2 as Subset-Family of MURSTPS;
A51:   for P being set st P in BM2 holds
         ex x0 be Point of MURSTPS st
           ex r be Real st P = Ball(x0,r)
       proof
         let P be set;
         assume P in BM2; then
         consider x0 be Point of MURSTPS such that
  A52:   P = Ball (x0,e/4);
         take x0,e/4;
         thus thesis by A52;
       end;
       the carrier of MURSTPS c= union BM2
       proof
         let z be object;
         assume z in the carrier of MURSTPS; then
         reconsider x0=z as Point of MURSTPS;
     A53:Ball(x0,e/4) in BM2;
         dist(x0,x0) = 0 by METRIC_1:1; then
         x0 in { y where y is Element of MURSTPS : dist (x0,y) < e/4 }
           by A7; then
         x0 in Ball(x0,e/4) by METRIC_1:def 14;
         hence z in union BM2 by TARSKI:def 4,A53;
       end; then
       BM2 is Cover of [#] MURSTPS by SETFAM_1:def 11; then
       consider BM02 being Subset-Family of MURSTPS such that
  A54: BM02 c= BM2 & BM02 is Cover of [#] MURSTPS & BM02 is finite
         by A49,TOPMETR:16,A51,TOPMETR:def 4;
       reconsider BM02 as finite set by A54;
A55:   BM02 <> {}
       proof
         assume BM02 = {}; then
         [#]MURSTPS c= {} by SETFAM_1:def 11,A54,ZFMISC_1:2;
         hence contradiction;
       end;
       defpred P2[object,object] means ex w be Point of MURSTPS st $2 = w &
         $1 = Ball(w,e/4);
A56:   for D be object st D in BM2
         ex w be object st w in the carrier of MURSTPS & P2[D,w]
       proof
         let D be object;
         assume D in BM2; then
         consider w being Element of MURSTPS such that
    A57: D = Ball (w,e/4);
         take w;
         thus w in the carrier of MURSTPS & P2[D,w] by A57;
       end;
       consider U2 being Function of BM2,the carrier of MURSTPS such that
  A58: for D being object st D in BM2 holds P2[D,U2.D] from FUNCT_2:sch 1(A56);
A59:   for D being object st D in BM2 holds D = Ball(U2/.D,e/4)
       proof
         let D be object;
         assume A60: D in BM2; then
A61:     ex x0 be Point of MURSTPS st U2.D = x0 & D =Ball(x0,e/4) by A58;
         dom U2 = BM2 by FUNCT_2:def 1;
         hence D = Ball(U2/.D,e/4) by A61,A60,PARTFUN1:def 6;
       end;
       set CF2 = canFS BM02;
A62:   len CF2 = card BM02 by FINSEQ_1:93;
A63:   rng CF2 = BM02 by FUNCT_2:def 3;
A64:   dom U2 = BM2 by FUNCT_2:def 1; then
       reconsider PS2 = U2*CF2 as FinSequence by A63,A54,FINSEQ_1:16;
       rng PS2 c= rng U2 by RELAT_1:26; then
       reconsider PS2 as FinSequence of the carrier of MURSTPS
         by FINSEQ_1:def 4,XBOOLE_1:1;
A65:   dom PS2 = dom CF2 by A63,A64,A54,RELAT_1:27
             .= Seg card BM02 by A62,FINSEQ_1:def 3;
A66:   dom CF2 = Seg len CF2 by FINSEQ_1:def 3
            .= dom PS2 by A65,FINSEQ_1:93;
A67:   for i be Nat st i in dom PS2 holds CF2.i = Ball((U2*CF2)/.i,e/4)
       proof
         let i be Nat;
         assume A68: i in dom PS2;
     A69:CF2.i in rng CF2 by FUNCT_1:3,A66,A68; then
         U2/.(CF2.i) = U2.(CF2.i) by PARTFUN1:def 6,A64,A54
             .= PS2.i by FUNCT_1:12,A68
             .= (U2*CF2)/.i by PARTFUN1:def 6,A68;
         hence thesis by A69,A59,A54;
       end;
       union rng CF2 = union BM02 by FUNCT_2:def 3; then
A70:   the carrier of MURSTPS c=union rng CF2 by A54,SETFAM_1:def 11;
       defpred Q2[object,object] means
         ex sigm be Function of Seg len PS,Seg len CF2 st
         $1 = sigm & $2={ f where f is Function of S,T :f in MZH
         & for i be Nat st i in Seg len PS
           holds f.(PS/.i) in Ball( (U2*CF2)/.(sigm.i),e/4 ) };
A71:   for x be object st x in Funcs(Seg len PS,Seg len CF2)
         ex B be object st B in bool the carrier of MZH & Q2[x,B]
       proof
         let x be object;
         assume x in Funcs(Seg len PS,Seg len CF2); then
         reconsider sigm = x as Function of Seg len PS,Seg len CF2
           by FUNCT_2:66;
         set NHx = { f where f is Function of S,T : f in MZH
           & for i be Nat st i in Seg len PS
             holds f.(PS/.i) in Ball ((U2*CF2)/.(sigm.i),e/4) };
         NHx c= the carrier of MZH
         proof
           let z be object;
           assume z in NHx; then
           ex f be Function of S,T st z=f & f in MZH
           & for i be Nat st i in Seg len PS
           holds f.(PS/.i) in Ball( (U2*CF2)/.(sigm.i),e/4 );
           hence z in the carrier of MZH;
         end;
         hence thesis;
       end;
       consider BST being Function of
       Funcs(Seg len PS,Seg len CF2),bool the carrier of MZH such that
  A72: for x being object
         st x in Funcs(Seg len PS,Seg len CF2)
        holds Q2[x,BST.x] from FUNCT_2:sch 1(A71);
  A73: for sigm be Function of Seg len PS,Seg len CF2 holds BST.sigm
          = { f where f is Function of S,T :f in MZH
         & for i be Nat st i in Seg len PS
            holds f.(PS/.i) in Ball ((U2*CF2)/.(sigm.i),e/4 ) }
       proof
         let sigm be Function of Seg len PS,Seg len CF2;
         sigm in Funcs(Seg len PS,Seg len CF2) by FUNCT_2:8,A55; then
         ex sigm1 be Function of Seg len PS,Seg len CF2 st sigm = sigm1 &
         BST.sigm={ f where f is Function of S,T :f in MZH
         & for i be Nat st i in Seg len PS
         holds f.(PS/.i) in Ball( (U2*CF2)/.(sigm1.i),e/4 ) } by A72;
         hence thesis;
       end;
   A74:Funcs(Seg len PS,Seg len CF2) c= bool [:Seg len PS,Seg len CF2:]
       proof
         let x be object;
         assume x in Funcs(Seg len PS,Seg len CF2); then
         reconsider f = x as Function of Seg len PS,Seg len CF2 by FUNCT_2:66;
         f in bool [:Seg len PS,Seg len CF2:];
         hence x in bool [:Seg len PS,Seg len CF2:];
       end;
  A75: for sigm be Function of Seg len PS,Seg len CF2 holds
       for f,g be Point of MZH
         st f in BST.sigm & g in BST.sigm holds dist(f,g) < e0
       proof
         let sigm be Function of Seg len PS,Seg len CF2;
         let f,g be Point of MZH;
         assume A76:f in BST.sigm & g in BST.sigm;
A77:     BST.sigm = { f where f is Function of S,T :f in MZH
           & for i be Nat st i in Seg len PS
         holds f.(PS/.i) in Ball( (U2*CF2)/.(sigm.i),e/4 ) } by A73; then
A78:     ex f0 be Function of S,T st f=f0 & f0 in MZH
           & for i be Nat st i in Seg len PS
             holds f0.(PS/.i) in Ball( (U2*CF2)/.(sigm.i),e/4 ) by A76; then
         reconsider f0=f as Function of S,T;
         reconsider f1=f0 as Function of M,T by A1;
A79:     ex f0 be Function of S,T st g=f0 & f0 in MZH
           & for i be Nat st i in Seg len PS
         holds f0.(PS/.i) in Ball( (U2*CF2)/.(sigm.i),e/4 ) by A76,A77; then
         reconsider g0=g as Function of S,T;
         reconsider g1=g0 as Function of M,T by A1;
A80:     for x be Point of S holds dist(f0.x,g0.x) <= e
         proof
           let x be Point of S;
           x in union rng CF by A29; then
           consider D be set such that
  A81:     x in D & D in rng CF by TARSKI:def 4;
           consider i be object such that
  A82:     i in dom CF & D=CF.i by A81,FUNCT_1:def 3;
           reconsider i as Nat by A82;
  A83:     x in Ball((U*CF)/.i,d) by A82,A81,A25,A26;
  A84:     PS/.i = PS.i by A25,A82,PARTFUN1:def 6
             .= (U*CF)/.i by A25,A82,PARTFUN1:def 6;
           reconsider ym = (U*CF)/.i as Point of M;
           reconsider ys = PS/.i as Point of S;
           x in { z where z is Point of M : dist(ym,z) < d }
             by METRIC_1:def 14,A83; then
  A85:     ex z be Point of M st x=z & dist(ym,z) < d; then
           reconsider xm = x as Point of M;
  A86:     dist(f1.ym,f1.xm) < e/4 by A3,A9,A85,A2;
  A87:     dist(g1.ym,g1.xm) < e/4 by A3,A9,A85,A2;
           i in Seg len PS by A25,A82,FINSEQ_1:def 3; then
           f0.ys in Ball((U2*CF2)/.(sigm.i),e/4) by A78; then
           f0.ys in { y where y is Element of MURSTPS :
             dist ((U2*CF2)/.(sigm.i),y) < e/4 } by METRIC_1:def 14; then
     A88:  ex y be Element of MURSTPS st f0.ys = y
             & dist ((U2*CF2)/.(sigm.i),y) < e/4; then
           reconsider f0ys=f0.ys as Point of MURSTPS;
           reconsider u2cf2n = (U2*CF2)/.(sigm.i) as
             Point of T by TOPMETR:def 1,TARSKI:def 3;
           reconsider f0ysm = f0ys as Point of T;
  A90:     dist(u2cf2n,f1.ym) < e/4 by A84,A88,TOPMETR:def 1;
           i in Seg len PS by A25,A82,FINSEQ_1:def 3; then
           g0.ys in Ball( (U2*CF2)/.(sigm.i),e/4 ) by A79; then
           g0.ys in { y where y is Element of MURSTPS :
             dist ((U2*CF2)/.(sigm.i),y) < e/4 } by METRIC_1:def 14; then
     A91:  ex y be Element of MURSTPS st g0.ys = y
             & dist ((U2*CF2)/.(sigm.i),y) < e/4; then
           reconsider g0ys=g0.ys as Point of MURSTPS;
           reconsider g0ysm = g0ys as Point of T;
           reconsider g0ysn=g0ysm as Point of T;
  A93:     dist(u2cf2n,g1.ym) < e/4 by A84,A91,TOPMETR:def 1;
A94:       dist(u2cf2n,f1.xm)
             <= dist(u2cf2n,f1.ym) + dist(f1.ym,f1.xm) by METRIC_1:4;
           dist(u2cf2n,f1.ym) + dist(f1.ym,f1.xm)
             < e/4 + e/4 by A86,A90,XREAL_1:8; then
A95:       dist(u2cf2n,f1.xm) < e/2 by XXREAL_0:2,A94;
A96:       dist(u2cf2n,g1.xm)
             <= dist(u2cf2n,g1.ym) + dist(g1.ym,g1.xm) by METRIC_1:4;
           dist(u2cf2n,g1.ym) + dist(g1.ym,g1.xm)
             < e/4 + e/4 by A87,A93,XREAL_1:8; then
A97:       dist(u2cf2n,g1.xm) < e/2 by XXREAL_0:2,A96;
A98:       dist(f1.xm,g1.xm) <= dist(u2cf2n,f1.xm) + dist(u2cf2n,g1.xm)
             by METRIC_1:4;
           dist(u2cf2n,f1.xm) + dist(u2cf2n, g1.xm)
             < e/2 + e/2 by A95,A97,XREAL_1:8;
           hence dist(f0.x,g0.x) <= e by XXREAL_0:2,A98;
         end;
         reconsider f1=f,g1=g as Point of Z by TOPMETR:def 1,TARSKI:def 3;
         dist(f1,g1) <= e by A80,Th12; then
         dist(f,g) <= e by TOPMETR:def 1;
         hence dist(f,g) < e0 by A8,XXREAL_0:2;
       end;
  A99: for f be Point of MZH holds
         ex sigm be Function of Seg len PS,Seg len CF2 st f in BST.sigm
       proof
         let f be Point of MZH;
         f in H by A3; then
         f in Z; then
         ex g be Function of S, TopSpaceMetr T st f=g & g is continuous; then
         reconsider g=f as Function of the carrier of S, the carrier of T;
         defpred QQ[object,object] means
         ex i,j be Nat st i=$1 & j=$2 &
         g.(PS/.i) in Ball ((U2*CF2)/.j,e/4);
A100:    for x be object st x in Seg len PS
           ex y be object st y in Seg len CF2 & QQ[x,y]
         proof
           let x be object;
           assume A101: x in Seg len PS; then
           reconsider i = x as Nat;
     A102: i in dom PS by A101,FINSEQ_1:def 3;
           consider NHx be non empty Subset of T,
           CHx be non empty Subset of T such that
A103:      NHx = {f.(PS/.i) where f is Function of S,T :f in H }
             & STPS/.i = Cl(NHx) by A39,A102,A24,A38;
A104:      g.(PS/.i) in NHx by A103,A3;
           NHx c= Cl NHx by Th1; then
A105:      g.(PS/.i) in STPS/.i by A104,A103;
A107:      g.(PS/.i) in STPS.i by A105,PARTFUN1:def 6,A102,A24,A38;
           STPS.i in rng STPS by A102,A24,A38,FUNCT_1:3; then
           g.(PS/.i) in URSTPS by A107,TARSKI:def 4; then
           g.(PS/.i) in the carrier of MURSTPS by TOPMETR:def 2; then
           consider V be set such that
A108:      g.(PS/.i) in V & V in rng CF2 by A70,TARSKI:def 4;
           consider j be object such that
A109:      j in dom CF2 & V=CF2.j by A108,FUNCT_1:def 3;
A110:      j in Seg card BM02 by A62,FINSEQ_1:def 3,A109;
           reconsider j as Nat by A109;
A111:      CF2.j = Ball((U2*CF2)/.j,e/4) by A67,A65,A110;
           j in Seg len CF2 by FINSEQ_1:def 3,A109;
           hence thesis by A108,A109,A111;
         end;
         consider sigm being Function of Seg len PS,Seg len CF2 such that
  A112:  for x being object st x in Seg len PS
           holds QQ[x,sigm.x] from FUNCT_2:sch 1(A100);
  A113:  for i be Nat st i in Seg len PS
           holds g.(PS/.i) in Ball( (U2*CF2)/.(sigm.i),e/4 )
         proof
           let i be Nat;
           assume i in Seg len PS; then
           ex i0,j0 be Nat st i0=i & j0=sigm.i &
           g.(PS/.i0) in Ball ((U2*CF2)/.j0,e/4) by A112;
           hence thesis;
         end;
  A114:  BST.sigm = { f where f is Function of S,T :f in MZH
           & for i be Nat st i in Seg len PS
         holds f.(PS/.i) in Ball( (U2*CF2)/.(sigm.i),e/4 ) } by A73;
         take sigm;
         g in MZH;
         hence f in BST.sigm by A114,A113;
       end;
 A115: for sigm be Function of Seg len PS,Seg len CF2
         holds ex f be Point of MZH st BST.sigm c= Ball (f,e0)
       proof
         let sigm be Function of Seg len PS,Seg len CF2;
         per cases;
         suppose A116: BST.sigm = {};
           take f = the Point of MZH;
           thus BST.sigm c= Ball (f,e0) by A116;
         end;
         suppose BST.sigm <> {}; then
           consider f be object such that
     A117: f in BST.sigm by XBOOLE_0:def 1;
           sigm in Funcs(Seg len PS,Seg len CF2) by A55,FUNCT_2:8; then
    A118: BST.sigm in bool the carrier of MZH by FUNCT_2:5; then
          reconsider f as Point of MZH by A117;
          take f;
          let z be object;
          assume A119:z in BST.sigm; then
          reconsider g = z as Point of MZH by A118;
          dist(f,g) < e0 by A117,A119,A75; then
          g in { y where y is Point of MZH : dist(f,y) < e0 };
          hence z in Ball (f,e0) by METRIC_1:def 14;
        end;
      end;
      defpred PP[object,object] means
        ex f be Point of MZH st BST.$1 c= Ball(f,e0) & $2 = Ball(f,e0);
A120: for z be object st z in Funcs(Seg len PS,Seg len CF2)
        ex f be object st f in bool (the carrier of MZH) & PP[z,f]
      proof
        let z be object;
        assume z in Funcs(Seg len PS,Seg len CF2); then
        reconsider sigm = z as Function of Seg len PS,Seg len CF2
          by FUNCT_2:66;
        ex f being Point of MZH st BST.sigm c= Ball (f,e0) by A115;
        hence thesis;
      end;
      consider FF be Function of Funcs(Seg len PS,Seg len CF2),
        bool the carrier of MZH such that
A121: for z being object
         st z in Funcs(Seg len PS,Seg len CF2)
        holds PP[z,FF.z] from FUNCT_2:sch 1(A120);
A122: dom FF = Funcs(Seg len PS,Seg len CF2) by FUNCT_2:def 1;
      reconsider L = rng FF as finite set by A74;
      reconsider L as Subset-Family of MZH;
      take L;
      thus L is finite;
      the carrier of MZH c= union L
      proof
        let f be object;
        assume f in the carrier of MZH; then
        reconsider g = f as Point of MZH;
        consider sigm be Function of Seg len PS,Seg len CF2 such that
  A123: g in BST.sigm by A99;
  A124: sigm in Funcs(Seg len PS,Seg len CF2) by A55,FUNCT_2:8; then
        consider w be Point of MZH such that
  A125: BST.sigm c= Ball(w,e0) & FF.sigm = Ball(w,e0) by A121;
        FF.sigm in rng FF by FUNCT_1:3,A124,A122;
        hence f in union L by TARSKI:def 4,A123,A125;
      end;
      hence the carrier of MZH = union L;
      thus for C being Subset of MZH st C in L holds
      ex w being Element of MZH st C = Ball (w,e0)
      proof
        let C be Subset of MZH;
        assume C in L; then
        consider x be object such that
  A126: x in dom FF & C = FF.x by FUNCT_1:def 3;
        consider w be Point of MZH such that
  A127: BST.x c= Ball(w,e0) & FF.x = Ball(w,e0) by A121,A126;
        take w;
        thus C = Ball (w,e0) by A126,A127;
      end;
    end;
    hence Z | H is totally_bounded;
  end;
