reserve r,r1,g for Real,
  n,m,k for Nat,
  seq,seq1, seq2 for Real_Sequence,
  f,f1,f2 for PartFunc of REAL,REAL,
  x for set;
reserve r,r1,r2,g,g1,g2 for Real;

theorem
  f is convergent_in+infty implies (lim_in+infty f=g iff for g1 st 0<g1
  ex r st for r1 st r<r1 & r1 in dom f holds |.f.r1-g.|<g1)
proof
  assume
A1: f is convergent_in+infty;
  thus lim_in+infty f=g implies for g1 st 0<g1 ex r st for r1 st r<r1 & r1 in
  dom f holds |.f.r1-g.|<g1
  proof
    assume
A2: lim_in+infty f=g;
    given g1 such that
A3: 0<g1 and
A4: for r ex r1 st r<r1 & r1 in dom f & |.f.r1-g.|>=g1;
    defpred X[Nat,Real] means $1<$2 & $2 in dom f & |.f.$2
    -g.|>=g1;
A5: for n being Element of NAT ex r being Element of REAL st X[n,r]
     proof let n being Element of NAT ;
       consider r such that
A6:      X[n,r] by A4;
       reconsider r as Real;
       X[n,r] by A6;
      hence thesis;
     end;
    consider s be Real_Sequence such that
A7: for n being Element of NAT holds X[n,s.n] from FUNCT_2:sch 3(A5);
    now
      let x be object;
      assume x in rng s;
      then ex n being Element of NAT st s.n=x by FUNCT_2:113;
      hence x in dom f by A7;
    end;
    then
A8: rng s c=dom f;
    now
      let n;
A9: n in NAT by ORDINAL1:def 12;
      then n<s.n by A7;
      hence s1.n<=s.n by FUNCT_1:18,A9;
    end;
    then s is divergent_to+infty by Lm5,Th20,Th42;
    then f/*s is convergent & lim(f/*s)=g by A1,A2,A8,Def12;
    then consider n such that
A10: for m st n<=m holds |.(f/*s).m-g.|<g1 by A3,SEQ_2:def 7;
A11: n in NAT by ORDINAL1:def 12;
    |.(f/*s).n-g.|<g1 by A10;
    then |.f.(s.n)-g.|<g1 by A8,FUNCT_2:108,A11;
    hence contradiction by A7,A11;
  end;
  assume
A12: for g1 st 0<g1 ex r st for r1 st r<r1 & r1 in dom f holds |.f.r1- g.|<g1;
   reconsider g as Real;
  now
    let s be Real_Sequence such that
A13: s is divergent_to+infty and
A14: rng s c=dom f;
A15: now
      let g1 be Real;
      assume
A16:  0<g1;
      consider r such that
A17:  for r1 st r<r1 & r1 in dom f holds |.f.r1-g.|<g1 by A12,A16;
      consider n such that
A18:  for m st n<=m holds r<s.m by A13;
      take n;
      let m;
A19:  s.m in rng s by VALUED_0:28;
A20: m in NAT by ORDINAL1:def 12;
      assume n<=m;
      then |.f.(s.m)-g.|<g1 by A14,A17,A18,A19;
      hence |.(f/*s).m-g.|<g1 by A14,FUNCT_2:108,A20;
    end;
    hence f/*s is convergent;
    hence lim(f/*s)=g by A15,SEQ_2:def 7;
  end;
  hence thesis by A1,Def12;
end;
