
theorem Lm814:
  for X be RealNormSpace, f be sequence of DualSp X, x be sequence of X
    st ||.f.|| is bounded holds
     ex M be sequence of DualSp X st
        M is subsequence of f & for k be Nat holds M#(x.k) is convergent
proof
  let X be RealNormSpace, f be sequence of DualSp X, x be sequence of X;
  assume ||.f.|| is bounded; then
  consider F be sequence of Funcs(NAT,the carrier of DualSp X),
           N be sequence of Funcs(NAT,NAT) such that
A0: F.0 is subsequence of f & (F.0)#(x.0) is convergent
  & N.0 is increasing sequence of NAT & F.0 = f*N.0
  & (for k be Nat holds F.(k+1) is subsequence of F.k)
  & (for k be Nat holds (F.(k+1))#(x.(k+1)) is convergent)
  & (for k be Nat holds (F.(k+1))#(x.(k+1)) is subsequence of (F.k)#(x.(k+1)))
  & (for k be Nat holds N.(k+1) is increasing sequence of NAT)
  & for k be Nat holds F.(k+1) = (F.k)*N.(k+1) by Lm814C;
  deffunc F1(Element of NAT) = (F.$1).$1;
  consider M be Function of NAT,DualSp X such that
A1: for k be Element of NAT holds M.k = F1(k) from FUNCT_2:sch 4;
  reconsider M as sequence of DualSp X;
A2:  for k be Nat holds M.k = (F.k).k
  proof
    let k be Nat;
    reconsider k1=k as Element of NAT by ORDINAL1:def 12;
    M.k1 = (F.k1).k1 by A1;
    hence thesis;
  end;
  set D = Funcs(NAT,NAT);
  reconsider A = N.0 as Element of D by FUNCT_2:8;
  defpred P[Nat,sequence of NAT,sequence of NAT] means
    $3 = $2*(N.($1+1));
P1: for n being Nat for x being Element of D
      ex y being Element of D st P[n,x,y]
  proof
    let n be Nat;
    let x be Element of D;
    reconsider y=x*N.(n+1) as Element of D by FUNCT_2:8;
    take y;
    thus y = x*N.(n+1);
  end;
  consider J being sequence of D such that
P2: J.0 = A &
    for n being Nat holds P[n, J.n, J.(n+1)] from RECDEF_1:sch 2(P1);
  defpred Q[Nat] means J.$1 is increasing sequence of NAT;
Q0: Q[0] by P2,A0;
Q1: for n be Nat st Q[n] holds Q[n+1]
  proof
    let n be Nat;
    assume X10: Q[n];
    N.(n+1) is increasing sequence of NAT by A0; then
    (J.n)*N.(n+1) is increasing sequence of NAT by X10;
    hence J.(n+1) is increasing sequence of NAT by P2;
  end;
Q2: for n be Nat holds Q[n] from NAT_1:sch 2(Q0,Q1);
  defpred P1[Nat] means F.$1 = f*(J.$1);
Q0: P1[0] by P2,A0;
Q1: for n be Nat st P1[n] holds P1[n+1]
  proof
    let n be Nat;
    assume X2: P1[n];
    F.(n+1) = (F.n)*N.(n+1) by A0
           .= f*((J.n)*N.(n+1)) by X2,RELAT_1:36;
    hence F.(n+1) = f*(J.(n+1)) by P2;
  end;
A41: for n be Nat holds P1[n] from NAT_1:sch 2(Q0,Q1);
  deffunc F2(Element of NAT) = (J.$1).$1;
  consider L be Function of NAT,NAT such that
A5: for k be Element of NAT holds L.k = F2(k) from FUNCT_2:sch 4;
  reconsider L as sequence of NAT;
A6: for k be Nat holds L.k = (J.k).k
  proof
    let k be Nat;
    reconsider k1=k as Element of NAT by ORDINAL1:def 12;
    L.k1 = (J.k1).k1 by A5;
    hence thesis;
  end;
  reconsider L0=L as Real_Sequence by FUNCT_2:7,NUMBERS:19;
  for k be Nat holds L0.k < L0.(k+1)
  proof
    let k be Nat;
B2: J.k is increasing Real_Sequence by Q2,FUNCT_2:7,NUMBERS:19;
B3: L.(k+1) = (J.(k+1)).(k+1) by A6
           .= ((J.k)*N.(k+1)).(k+1) by P2
           .= (J.k).(N.(k+1).(k+1)) by FUNCT_2:15;
    N.(k+1) is increasing sequence of NAT by A0; then
    (k+1) <= N.(k+1).(k+1) by SEQM_3:14; then
    k < N.(k+1).(k+1) by XREAL_1:145; then
    (J.k).k < (J.k).(N.(k+1).(k+1)) by B2,SEQM_3:1;
    hence thesis by B3,A6;
  end; then
  L0 is increasing; then
  reconsider L as increasing sequence of NAT;
  for k be Nat holds M.k = (f*L).k
  proof
    let k be Nat;
    M.k = (F.k).k by A2
       .= (f*(J.k)).k by A41
       .= f.((J.k).k) by ORDINAL1:def 12,FUNCT_2:15
       .= f.(L.k) by A6;
   hence M.k = (f*L).k by ORDINAL1:def 12,FUNCT_2:15;
  end; then
A71: M = f*L;
  for k be Nat holds M#(x.k) is convergent
  proof
    let k be Nat;
Q1: (F.k)#(x.k) is convergent
    proof
      per cases;
       suppose k = 0;
         hence (F.k)#(x.k) is convergent by A0;
       end;
       suppose k <> 0; then
         ex n be Nat st k=n+1 by NAT_1:6;
         hence (F.k)#(x.k) is convergent by A0;
      end;
    end;
A0X: for k be Nat holds N.k is increasing sequence of NAT
    proof
      let k be Nat;
      per cases;
       suppose k = 0;
         hence N.k is increasing sequence of NAT by A0;
       end;
       suppose k <> 0; then
         ex n be Nat st k=n+1 by NAT_1:6;
         hence N.k is increasing sequence of NAT by A0;
      end;
    end;
    defpred PNk[Nat,sequence of NAT] means
      for i be Nat holds ($2).i=(N.(k+$1)).(k+i)-k;
P11: for n being Element of NAT
       ex y being Element of D st PNk[n,y]
    proof
      let n be Element of NAT;
      defpred PNk1[Nat,object] means $2=(N.(k+n)).(k+$1)-k;
P111: for i being Element of NAT
        ex y being Element of NAT st PNk1[i,y]
      proof
        let i be Element of NAT;
B5:     k <= k + i by NAT_1:11;
        N.(k+n) is increasing sequence of NAT by A0X; then
        k+i <= N.(k+n).(k+i) by SEQM_3:14; then
        k <= N.(k+n).(k+i) by B5,XXREAL_0:2; then
        reconsider y = (N.(k+n)).(k+i)-k as Element of NAT
          by INT_1:3,XREAL_1:48;
        take y;
        thus y = (N.(k+n)).(k+i)-k;
      end;
      consider y be Function of NAT,NAT such that
P121:   for i being Element of NAT holds PNk1[i,y.i] from FUNCT_2:sch 3(P111);
      reconsider y as Element of D by FUNCT_2:8;
      take y;
      thus for i be Nat holds y.i=(N.(k+n)).(k+i)-k
      proof
        let i be Nat;
        i in NAT by ORDINAL1:def 12;
        hence y.i=(N.(k+n)).(k+i)-k by P121;
      end;
    end;
    consider Nk be Function of NAT,D such that
P12:  for n being Element of NAT holds PNk[n,Nk.n] from FUNCT_2:sch 3(P11);
P13: for n being Element of NAT holds
       Nk.n is increasing sequence of NAT
    proof
      let n be Element of NAT;
      reconsider Nkn=Nk.n as Real_Sequence by FUNCT_2:7,NUMBERS:19;
D1:   N.(k+n) is increasing Real_Sequence by FUNCT_2:7,NUMBERS:19,A0X;
      for i be Nat holds Nkn.i < Nkn.(i+1)
      proof
        let i be Nat;
D2:     (Nk.n).i = (N.(k+n)).(k+i)-k &
        (Nk.n).(i+1) = (N.(k+n)).(k+(i+1))-k by P12;
        (N.(k+n)).(k+i)-k < (N.(k+n)).(k+i+1)-k by XREAL_1:14,D1,SEQM_3:def 6;
        hence thesis by D2;
      end;
      hence Nk.n is increasing sequence of NAT by SEQM_3:def 6;
    end;
A0k: for n be Nat holds (F.(k+(n+1)))^\k = ((F.(k+n))^\k)*Nk.(n+1)
    proof
      let n be Nat;
XX1:  F.(k+1+n) = F.(k+n)* N.((k+n)+1) by A0;
      for i be Nat holds
        (( F.(k+n))^\k *Nk.(n+1) ).i = (( F.(k+n) * N.(k+n+1))^\k).i
      proof
        let i be Nat;
N3:     (Nk.(n+1)).i = (N.(k+(n+1))).(k+i)-k by P12;
        thus ((F.(k+n))^\k *Nk.(n+1) ).i
               = ((F.(k+n))^\k).((Nk.(n+1)).i) by FUNCT_2:15,ORDINAL1:def 12
              .= (F.(k+n)).(k+((N.(k+(n+1))).(k+i)-k)) by NAT_1:def 3,N3
              .= ( F.(k+n)*N.(k+(n+1))).(k+i) by FUNCT_2:15,ORDINAL1:def 12
              .= (( F.(k+n) * N.(k+n+1))^\k).i by NAT_1:def 3;
      end;
      hence thesis by XX1;
    end;
    reconsider Ak = id NAT as Element of D by FUNCT_2:8;
    defpred PJk[Nat,sequence of NAT,sequence of NAT] means
      $3 = $2*(Nk.($1+1));
P14: for n being Nat for x being Element of D
      ex y being Element of D st PJk[n,x,y]
    proof
      let n be Nat;
      let x be Element of D;
      reconsider y=x*(Nk.(n+1)) as Element of D by FUNCT_2:8;
      take y;
      thus y = x*(Nk.(n+1));
    end;
    consider Jk being sequence of D such that
P15:  Jk.0 = Ak & for n being Nat holds PJk[n, Jk.n, Jk.(n+1)]
        from RECDEF_1:sch 2(P14);
    defpred QJk[Nat] means Jk.$1 is increasing sequence of NAT;
QJ0: QJk[0] by P15;
QJ1: for n be Nat st QJk[n] holds QJk[n+1]
    proof
      let n be Nat;
      assume X10: QJk[n];
      Nk.(n+1) is increasing sequence of NAT by P13; then
      (Jk.n)*Nk.(n+1) is increasing sequence of NAT by X10;
      hence Jk.(n+1) is increasing sequence of NAT by P15;
    end;
AJ32: for n be Nat holds QJk[n] from NAT_1:sch 2(QJ0,QJ1);
    defpred P1Jk[Nat] means (F.(k+$1))^\k = (F.k)^\k *(Jk.$1);
QJ0: P1Jk[0] by P15,FUNCT_2:17;
QJ1: for n be Nat st P1Jk[n] holds P1Jk[n+1]
    proof
      let n be Nat;
      assume X2: P1Jk[n];
      thus (F.(k+(n+1)))^\k = (( F.(k+n) )^\k)*Nk.(n+1) by A0k
       .= (F.k)^\k *((Jk.n)*Nk.(n+1)) by X2,RELAT_1:36
       .= (F.k)^\k *(Jk.(n+1)) by P15;
    end;
BJ4: for n be Nat holds P1Jk[n] from NAT_1:sch 2(QJ0,QJ1);
    deffunc FJk2(Element of NAT) = (Jk.$1).$1;
    consider Lk be Function of NAT,NAT such that
AJ5:  for n be Element of NAT holds Lk.n = FJk2(n) from FUNCT_2:sch 4;
    reconsider Lk as sequence of NAT;
AJ6: for k be Nat holds Lk.k = (Jk.k).k
    proof
      let k be Nat;
      reconsider k1=k as Element of NAT by ORDINAL1:def 12;
      Lk.k1 = (Jk.k1).k1 by AJ5;
      hence thesis;
    end;
    reconsider L0k=Lk as Real_Sequence by FUNCT_2:7,NUMBERS:19;
    for k be Nat holds L0k.k < L0k.(k+1)
    proof
      let k be Nat;
B2:   Jk.k is increasing Real_Sequence by AJ32,FUNCT_2:7,NUMBERS:19;
B3:   Lk.(k+1) = (Jk.(k+1)).(k+1) by AJ6
              .= ((Jk.k)*Nk.(k+1)).(k+1) by P15
              .= (Jk.k).(Nk.(k+1).(k+1)) by FUNCT_2:15;
      Nk.(k+1) is increasing sequence of NAT by P13; then
      (k+1) <= Nk.(k+1).(k+1) by SEQM_3:14; then
      k < Nk.(k+1).(k+1) by XREAL_1:145; then
      (Jk.k).k < (Jk.k).(Nk.(k+1).(k+1)) by B2,SEQM_3:1;
      hence thesis by B3,AJ6;
    end; then
    L0k is increasing; then
    reconsider Lk as increasing sequence of NAT;
    for n be Nat holds (M^\k).n = ((F.k)^\k *Lk).n
    proof
      let n be Nat;
      thus (M^\k).n = M.(k+n) by NAT_1:def 3
              .= (F.(k+n)).(k+n) by A2
              .= ((F.(k+n))^\k).n by NAT_1:def 3
              .= ((F.k)^\k *(Jk.n)).n by BJ4
              .= ((F.k)^\k).((Jk.n).n) by ORDINAL1:def 12,FUNCT_2:15
              .= ((F.k)^\k).(Lk.n) by AJ6
              .= ((F.k)^\k *Lk).n by ORDINAL1:def 12,FUNCT_2:15;
    end; then
P11: M^\k = (F.k)^\k*Lk;
Q12: for n be Nat holds ((M^\k)#(x.k)).n = ((M#(x.k))^\k).n
    proof
      let n be Nat;
      thus ((M^\k)#(x.k)).n = ((M^\k).n).(x.k) by Def1
                           .= M.(k+n).(x.k) by NAT_1:def 3
                           .= (M#(x.k)).(k+n) by Def1
                           .= ((M#(x.k))^\k).n by NAT_1:def 3;
    end;
    for n be Nat holds (((F.k)^\k*Lk)#(x.k)).n = (((F.k)^\k)#(x.k)*Lk).n
    proof
      let n be Nat;
      thus (((F.k)^\k*Lk)#(x.k)).n
             = (((F.k)^\k*Lk).n).(x.k) by Def1
            .= (((F.k)^\k).(Lk.n)).(x.k) by ORDINAL1:def 12,FUNCT_2:15
            .= (((F.k)^\k)#(x.k)).(Lk.n) by Def1
            .= (((F.k)^\k)#(x.k)*Lk).n by ORDINAL1:def 12,FUNCT_2:15;
    end; then
    ((F.k)^\k*Lk)#(x.k) = ((F.k)^\k)#(x.k)*Lk; then
Q2: (M#(x.k))^\k = ((F.k)^\k)#(x.k)*Lk by P11,Q12;
    for n be Nat holds (((F.k)#(x.k))^\k).n = ((F.k)^\k#(x.k)).n
    proof
      let n be Nat;
      thus (((F.k)#(x.k))^\k).n = ((F.k)#(x.k)).(k+n) by NAT_1:def 3
                               .= ((F.k).(k+n)).(x.k) by Def1
                               .= (((F.k)^\k).n).(x.k) by NAT_1:def 3
                               .= ((F.k)^\k#(x.k)).n by Def1;
    end; then
    ((F.k)#(x.k))^\k = (F.k)^\k#(x.k); then
    (M#(x.k)) ^\k is convergent by Q1,Q2,SEQ_4:16;
    hence M#(x.k) is convergent by SEQ_4:21;
  end;
  hence thesis by A71;
end;
