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