reserve r,r1,r2,g,g1,g2,x0,t for Real;
reserve n,k,m for Element of NAT;
reserve seq for Real_Sequence;
reserve f,f1,f2 for PartFunc of REAL,REAL;

theorem
  f is_divergent_to-infty_in x0 iff (for r1,r2 st r1<x0 & x0<r2 ex g1,g2
st r1<g1 & g1<x0 & g1 in dom f & g2<r2 & x0<g2 & g2 in dom f) & for g1 ex g2 st
  0<g2 & for r1 st 0<|.x0-r1.| & |.x0-r1.|<g2 & r1 in dom f holds f.r1<g1
proof
  thus f is_divergent_to-infty_in x0 implies (for r1,r2 st r1<x0 & x0<r2 ex g1
  ,g2 st r1<g1 & g1<x0 & g1 in dom f & g2<r2 & x0<g2 & g2 in dom f) & for g1 ex
g2 st 0<g2 & for r1 st 0<|.x0-r1.| & |.x0-r1.|<g2 & r1 in dom f holds f.r1<g1
  proof
    assume that
A1: f is_divergent_to-infty_in x0 and
A2: (not for r1,r2 st r1<x0 & x0<r2 ex g1,g2 st r1<g1 & g1<x0 & g1 in
dom f & g2<r2 & x0<g2 & g2 in dom f) or ex g1 st for g2 st 0<g2 ex r1 st 0<
    |.x0-r1.| & |.x0-r1.|<g2 & r1 in dom f & g1<=f.r1;
    consider g1 such that
A3: for g2 st 0<g2 ex r1 st 0<|.x0-r1.| & |.x0-r1.|<g2 & r1 in dom f
    & g1<=f.r1 by A1,A2;
    defpred X[Element of NAT,Real] means 0<|.x0-$2.| & |.x0-$2.|<1/(
    $1+1) & $2 in dom f & g1<=f.($2);
A4: for n ex r1 being Element of REAL st X[n,r1]
     proof let n;
       consider r1 such that
A5:       X[n,r1] by A3,XREAL_1:139;
       reconsider r1 as Element of REAL by XREAL_0:def 1;
      take r1;
      thus thesis by A5;
     end;
    consider s be Real_Sequence such that
A6: for n holds X[n,s.n] from FUNCT_2:sch 3(A4);
A7: rng s c=dom f\{x0} by A6,Th2;
A8: lim s=x0 by A6,Th2;
    s is convergent by A6,Th2;
    then f/*s is divergent_to-infty by A1,A8,A7;
    then consider n being Nat such that
A9: for k being Nat st n<=k holds (f/*s).k<g1;
A10: (f/*s).n<g1 by A9;
A11: n in NAT by ORDINAL1:def 12;
    rng s c=dom f by A6,Th2;
    then f.(s.n)<g1 by A10,FUNCT_2:108,A11;
    hence contradiction by A6,A11;
  end;
  assume that
A12: for r1,r2 st r1<x0 & x0<r2 ex g1,g2 st r1<g1 & g1<x0 & g1 in dom f
  & g2<r2 & x0<g2 & g2 in dom f and
A13: for g1 ex g2 st 0<g2 & for r1 st 0<|.x0-r1.| & |.x0-r1.|<g2 & r1
  in dom f holds f.r1<g1;
  now
    let s be Real_Sequence;
    assume that
A14: s is convergent and
A15: lim s=x0 and
A16: rng s c=dom f\{x0};
    now
      let g1;
      consider g2 such that
A17:  0<g2 and
A18:  for r1 st 0<|.x0-r1.| & |.x0-r1.|<g2 & r1 in dom f holds f.r1
      <g1 by A13;
      consider n such that
A19:  for k st n<=k holds 0<|.x0-s.k.| & |.x0-s.k.|<g2 & s.k in dom
      f by A14,A15,A16,A17,Th3;
       reconsider n as Nat;
      take n;
      let k be Nat;
A20:    k in NAT by ORDINAL1:def 12;
      assume
A21:  n<=k;
      then
A22:  |.x0-s.k.|<g2 by A19,A20;
A23:  s.k in dom f by A19,A21,A20;
      0<|.x0-s.k.| by A19,A21,A20;
      then f.(s.k)<g1 by A18,A22,A23;
      hence (f/*s).k<g1 by A16,FUNCT_2:108,XBOOLE_1:1,A20;
    end;
    hence f/*s is divergent_to-infty;
  end;
  hence thesis by A12;
end;
