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

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