reserve V for non empty RealLinearSpace;
reserve S for Real_Sequence;
reserve k,n,m,m1 for Nat;
reserve g,h,r,x for Real;

theorem Th42:
  for X be RealNormSpace, seq be sequence of DualSp X
    st seq is Cauchy_sequence_by_Norm holds seq is convergent
proof
  let X be RealNormSpace;
  let vseq be sequence of DualSp X such that
A2: vseq is Cauchy_sequence_by_Norm;
  defpred P[set, set] means ex xseq be sequence of REAL st
   (for n be Nat holds xseq.n=(Bound2Lipschitz((vseq.n),X)).$1 ) &
     xseq is convergent & $2= lim xseq;
A3: for x be Element of X ex y be Element of REAL st P[x,y]
  proof
    let x be Element of X;
    deffunc F(Nat) = (Bound2Lipschitz((vseq.$1),X)).x;
    consider xseq be Real_Sequence such that
A4: for n be Nat holds xseq.n = F(n) from SEQ_1:sch 1;
    reconsider y = lim xseq as Element of REAL by XREAL_0:def 1;
    take y;
A6: for m,k be Nat holds |.xseq.m-xseq.k.| <= ||.vseq.m -
    vseq.k.|| * ||.x.||
    proof
      let m,k be Nat;
      reconsider h1=vseq.m-vseq.k as Lipschitzian linear-Functional of X
      by Def9;
A7:   xseq.k =(Bound2Lipschitz(vseq.k,X)).x
    & xseq.m =(Bound2Lipschitz(vseq.m,X)).x by A4;
      vseq.m is Lipschitzian linear-Functional of X
    & vseq.k is Lipschitzian linear-Functional of X by Def9;
      then
      Bound2Lipschitz(vseq.m,X)=vseq.m &
      Bound2Lipschitz(vseq.k,X)=vseq.k by Th29;
      then xseq.m - xseq.k = h1.x by A7,Th40;
      hence thesis by Th32;
    end;
    now
      let e be Real such that
A10:  e > 0;
      per cases;
      suppose
A11:    x=0.X;
        reconsider k=0 as Nat;
        take k;
        thus for n be Nat st n >= k holds |.xseq.n - xseq.k.| < e
        proof
          let n be Nat such that
          n >= k;
A12:      xseq.k =(Bound2Lipschitz((vseq.k),X)).(0 * x) by A4,A11
              .=0* (Bound2Lipschitz((vseq.k),X)).x by HAHNBAN:def 3;
          xseq.n =(Bound2Lipschitz((vseq.n),X)).(0*x) by A4,A11
              .=0*(Bound2Lipschitz((vseq.n),X)).x by HAHNBAN:def 3;
          hence thesis by A10,A12,COMPLEX1:44;
        end;
      end;
      suppose x <>0.X; then
A13:    ||.x.|| <> 0 by NORMSP_0:def 5; then
        consider k be Nat such that
X2:      for n,m be Nat st n >= k & m>=k holds
          ||.(vseq.n) - (vseq.m).|| < e/||.x.|| by A10,A2,RSSPACE3:8;
        take k;
        thus for n be Nat st n >= k  holds |.xseq.n-xseq.k.| < e
        proof
          let n be Nat;
          assume n >=k; then
          ||.(vseq.n) - (vseq.k).|| < e/||.x.|| by X2; then
A18:      ||.(vseq.n) - (vseq.k).|| * ||.x.|| < e/||.x.|| * ||.x.||
            by A13,XREAL_1:68;
A19:      e/||.x.|| * ||.x.|| = e*||.x.||"* ||.x.|| by XCMPLX_0:def 9
                             .= e*(||.x.||"* ||.x.||)
                             .= e*1 by A13,XCMPLX_0:def 7;
          |.xseq.n-xseq.k.| <= ||.(vseq.n) - (vseq.k).|| * ||.x.|| by A6;
          hence thesis by A18,A19,XXREAL_0:2;
        end;
      end;
    end;
    hence thesis by A4,SEQ_4:41;
  end;
  consider f be Function of the carrier of X,REAL such that
A20: for x be Element of X holds P[x,f.x] from FUNCT_2:sch 3(A3);
  reconsider tseq=f as Function of the carrier of X,REAL;
A21: now
    let x,y be VECTOR of X;
    consider xseq be sequence of REAL such that
A22: ( for n be Nat holds xseq.n=(Bound2Lipschitz(vseq.n,X)).x )
   & xseq is convergent & tseq.x = lim xseq by A20;
    consider zseq be sequence of REAL such that
A25: ( for n be Nat holds zseq.n=(Bound2Lipschitz(vseq.n,X)).(x+y) )
   & zseq is convergent & tseq.(x+y) = lim zseq by A20;
    consider yseq be sequence of REAL such that
A27: ( for n be Nat holds yseq.n=(Bound2Lipschitz(vseq.n,X)).y )
   & yseq is convergent & tseq.y = lim yseq by A20;
    now
      let n be Nat;
      thus zseq.n=(Bound2Lipschitz(vseq.n,X)).(x+y) by A25
        .= (Bound2Lipschitz(vseq.n,X)).x+(Bound2Lipschitz(vseq.n,X)).y
            by HAHNBAN:def 2
        .= xseq.n + (Bound2Lipschitz(vseq.n,X)).y by A22
        .= xseq.n +yseq.n by A27;
    end;
    then zseq=xseq+yseq by SEQ_1:7;
    hence tseq.(x+y)=tseq.x+tseq.y by A22,A27,A25,SEQ_2:6;
  end;
  now
    let x be VECTOR of X;
    let a be Real;
    consider xseq be sequence of REAL such that
A30: ( for n be Nat holds xseq.n=(Bound2Lipschitz(vseq.n,X)).x )
   & xseq is convergent & tseq.x = lim xseq by A20;
    consider zseq be sequence of REAL such that
A33: ( for n be Nat holds zseq.n=(Bound2Lipschitz(vseq.n,X)).(a*x) )
   & zseq is convergent & tseq.(a*x) = lim zseq by A20;
    now
      let n be Nat;
      thus zseq.n=(Bound2Lipschitz((vseq.n),X)).(a*x) by A33
        .= a*(Bound2Lipschitz((vseq.n),X)).x by HAHNBAN:def 3
        .= a*xseq.n by A30;
    end;
    then zseq=a(#)xseq by SEQ_1:9;
    hence tseq.(a*x)=a*tseq.x by A30,A33,SEQ_2:8;
  end;
  then reconsider tseq as linear-Functional of X by A21,HAHNBAN:def 2,def 3;
B40: now
    let e be Real;
    assume e >0; then
    consider k be Nat such that
A36: for n,m be Nat st n >= k & m >= k holds ||.vseq.n - vseq.m.|| < e
        by A2,RSSPACE3:8;
    take k;
    hereby let m be Nat;
     assume m >= k; then
A37: ||.(vseq.m) - (vseq.k).|| <e by A36;
A38: ||.vseq.m.||= ||.vseq.||.m & ||.vseq.k.||= ||.vseq.||.k by NORMSP_0:def 4;
     |. ||.vseq.m.||- ||.vseq.k.|| .| <= ||.(vseq.m) - (vseq.k).||
      by NORMSP_1:9;
     hence |. ||.vseq.||.m - ||.vseq.||.k .| <e by A38,A37,XXREAL_0:2;
    end;
  end; then
A40: ||.vseq.|| is convergent by SEQ_4:41;
A41: tseq is Lipschitzian
  proof
    take lim ||.vseq.||;
A42: now
      let x be VECTOR of X;
      consider xseq be sequence of REAL such that
A43:   ( for n be Nat holds xseq.n=(Bound2Lipschitz(vseq.n,X)).x )
     & xseq is convergent & tseq.x = lim xseq by A20;
A46:  |.tseq.x.| = lim |.xseq.| by A43,SEQ_4:14;
A49:  for n be Nat holds |.xseq.| .n <= ( ||.x.||(#)||.vseq .||).n
      proof
        let n be Nat;
A50:    |.xseq.|.n = |.(xseq.n).| by SEQ_1:12;
A51:    ||.vseq.n.|| = ||.vseq.||.n by NORMSP_0:def 4;
A48:    xseq.n =(Bound2Lipschitz((vseq.n),X)).x by A43;
        vseq.n is Lipschitzian linear-Functional of X by Def9; then
        |.(xseq.n).| <= ||.vseq.n.|| * ||.x.|| by A48,Th29,Th32;
        hence thesis by A50,A51,SEQ_1:9;
      end;
      lim ( ||.x.||(#)||.vseq.|| ) = lim (||.vseq.|| )* ||.x.||
         by B40,SEQ_4:41,SEQ_2:8;
      hence |.tseq.x.| <= lim (||.vseq.|| )* ||.x.||
                             by A46,A49,A40,SEQ_2:18,A43;
    end;
    now
      let n be Nat;
      ||.vseq.n.|| >=0;
      hence ||.vseq.||.n >=0 by NORMSP_0:def 4;
    end;
    hence thesis by B40,SEQ_4:41,A42,SEQ_2:17;
  end;
A54: for e be Real
    st e > 0 ex k be Nat st for n be Nat st n >= k
    holds for x be VECTOR of X holds
  |.(Bound2Lipschitz((vseq.n),X)).x - tseq.x.| <= e* ||.x.||
  proof
    let e be Real;
    assume e > 0;
    then consider k be Nat such that
A55: for n, m be Nat st n >= k & m >= k holds ||.vseq.n - vseq.m.|| < e
        by A2,RSSPACE3:8;
    take k;
    now
      let n be Nat such that
A56:  n >= k;
      now
        let x be VECTOR of X;
        consider xseq be sequence of REAL such that
A57:     for n be Nat holds xseq.n=(Bound2Lipschitz(vseq.n,X)). x
       & xseq is convergent & tseq.x = lim xseq by A20;
A60:    for m,k be Nat holds
          |.xseq.m-xseq.k.| <= ||.vseq.m - vseq.k.|| * ||.x.||
        proof
          let m,k be Nat;
          reconsider h1=vseq.m-vseq.k as Lipschitzian linear-Functional of X
          by Def9;
A61:      xseq.k =(Bound2Lipschitz((vseq.k),X)).x
        & xseq.m =(Bound2Lipschitz((vseq.m),X)).x by A57;
          vseq.m is Lipschitzian linear-Functional of X
        & vseq.k is Lipschitzian linear-Functional of X by Def9;
          then Bound2Lipschitz(vseq.m,X)=vseq.m &
               Bound2Lipschitz(vseq.k,X)=vseq.k by Th29;
          then xseq.m - xseq.k =h1.x by A61,Th40;
          hence thesis by Th32;
        end;
A64:    for m be Nat st m >=k holds |.xseq.n-xseq.m.| <= e *||.x.||
        proof
          let m be Nat;
          assume m >=k;
          then ||.vseq.n - vseq.m.|| <e by A55,A56;
          then
A66:      ||.vseq.n - vseq.m.|| * ||.x.|| <= e* ||.x.|| by XREAL_1:64;
          |.xseq.n-xseq.m.| <= ||.vseq.n - vseq.m.|| * ||.x.|| by A60;
          hence thesis by A66,XXREAL_0:2;
        end;
        |.xseq.n-tseq.x.| <= e * ||.x.||
        proof
          deffunc F(Nat) = |.xseq.$1 - xseq.n.|;
          consider rseq be Real_Sequence such that
A67:      for m be Nat holds rseq.m = F(m) from SEQ_1:sch 1;
          now
            let x be object;
            assume x in NAT;
            then reconsider k=x as Nat;
            thus rseq.x = |.xseq.k - xseq.n.| by A67
              .= |.(xseq - xseq.n).k.| by Def14
              .= |.(xseq - xseq.n).|.x by SEQ_1:12;
          end; then
A68:      rseq = |.xseq - xseq.n.|;
A69:      xseq- xseq.n is convergent by A57,Th121;
          lim (xseq-xseq.n) = tseq.x - xseq.n by A57,Th121;
          then
A70:      lim rseq = |.tseq.x-xseq.n.| by A57,Th121,A68,SEQ_4:14;
          for m be Nat st m >= k holds rseq.m <= e * ||.x.||
          proof
            let m be Nat such that
A71:        m >=k;
            rseq.m = |.xseq.m-xseq.n.| by A67
              .= |.xseq.n-xseq.m.| by COMPLEX1:60;
            hence thesis by A64,A71;
          end;
          then lim rseq <= e * ||.x.|| by A69,A68,Lm3;
          hence thesis by A70,COMPLEX1:60;
        end;
        hence |.(Bound2Lipschitz((vseq.n),X)).x - tseq.x.|
             <= e* ||.x.|| by A57;
      end;
      hence
      for x be VECTOR of X holds |.(Bound2Lipschitz((vseq.n),X)).x - tseq.x.|
      <= e* ||.x.||;
    end;
    hence thesis;
  end;
  reconsider tseq as Lipschitzian linear-Functional of X by A41;
  reconsider tv=tseq as Point of DualSp X by Def9;
A72: for e be Real st e > 0
  ex k be Nat st for n be Nat st n >= k holds ||.vseq.n - tv.|| <= e
  proof
    let e be Real such that
A73: e > 0;
    consider k be Nat such that
A74: for n be Nat st n >= k holds for x be VECTOR of X
    holds |.(Bound2Lipschitz((vseq.n),X)).x - tseq.x.| <= e* ||.x.||
     by A54,A73;
    now
      set g1=tseq;
      let n be Nat such that
A75:  n >= k;
      reconsider h1=vseq.n-tv as Lipschitzian linear-Functional of X by Def9;
      set f1=Bound2Lipschitz((vseq.n),X);
A76:  now
        let t be VECTOR of X;
        assume ||.t.|| <= 1; then
A77:    e*||.t.|| <= e*1 by A73,XREAL_1:64;
A78:    |.f1.t-g1.t.| <=e* ||.t.|| by A74,A75;
        vseq.n is Lipschitzian linear-Functional of X by Def9;
        then Bound2Lipschitz((vseq.n),X)=vseq.n by Th29;
        then |.h1.t.|= |.f1.t-g1.t.| by Th40;
        hence |.h1.t.| <=e by A78,A77,XXREAL_0:2;
      end;
A79:  now
        let r be Real;
        assume r in PreNorms h1;
        then ex t be VECTOR of X st r=|.h1.t.| & ||.t.|| <= 1;
        hence r <=e by A76;
      end;
      (for s be Real st s in PreNorms h1 holds s <= e) implies
      upper_bound PreNorms h1 <=e by SEQ_4:45;
      hence ||.vseq.n-tv.|| <=e by A79,Th30;
    end;
    hence thesis;
  end;
  for e be Real st e > 0 ex m be Nat st for n be Nat st n >= m
         holds ||.(vseq.n) - tv.|| < e
  proof
    let e be Real;
    assume A81: e > 0; then
    consider m be Nat such that
A82: for n be Nat st n >= m holds ||.(vseq.n) - tv.|| <= e/2 by A72;
    take m;
    hereby let n be Nat;
      assume n >= m;
      then ||.(vseq.n) - tv.|| <= e/2 & e/2 < e by A82,A81,XREAL_1:216;
      hence ||.(vseq.n) - tv.|| < e by XXREAL_0:2;
    end;
  end;
  hence thesis;
end;
