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 r1<r & 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 r1<r & r1 in
  dom f holds |.f.r1-g.|<g1
  proof
    deffunc U(Nat) = -$1;
    assume
A2: lim_in-infty f=g;
    consider s1 be Real_Sequence such that
A3: for n holds s1.n=U(n) from SEQ_1:sch 1;
    given g1 such that
A4: 0<g1 and
A5: for r ex r1 st r1<r & r1 in dom f & |.f.r1-g.|>=g1;
    defpred X[Nat,Real] means $2<-$1 & $2 in dom f & |.f.
    $2-g.|>=g1;
A6: 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
A7:      X[n,r] by A5;
       reconsider r as Real;
       X[n,r] by A7;
      hence thesis;
     end;
    consider s be Real_Sequence such that
A8: for n being Element of NAT holds X[n,s.n] from FUNCT_2:sch 3(A6);
    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 A8;
    end;
    then
A9: rng s c=dom f;
    now
      let n;
 n in NAT by ORDINAL1:def 12;
      then s.n<-n by A8;
      hence s.n<=s1.n by A3;
    end;
    then s is divergent_to-infty by A3,Th21,Th43;
    then f/*s is convergent & lim(f/*s)=g by A1,A2,A9,Def13;
    then consider n such that
A10: for m st n<=m holds |.(f/*s).m-g.|<g1 by A4,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 A9,FUNCT_2:108,A11;
    hence contradiction by A8,A11;
  end;
  assume
A12: for g1 st 0<g1 ex r st for r1 st r1<r & 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 r1<r & r1 in dom f holds |.f.r1-g.|<g1 by A12,A16;
      consider n such that
A18:  for m st n<=m holds s.m<r 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,Def13;
end;
