let x0 be Real; :: thesis: for f being PartFunc of REAL,REAL st f is_left_convergent_in x0 & f is_right_convergent_in x0 & lim_left (f,x0) = lim_right (f,x0) holds
( f is_convergent_in x0 & lim (f,x0) = lim_left (f,x0) & lim (f,x0) = lim_right (f,x0) )

let f be PartFunc of REAL,REAL; :: thesis: ( f is_left_convergent_in x0 & f is_right_convergent_in x0 & lim_left (f,x0) = lim_right (f,x0) implies ( f is_convergent_in x0 & lim (f,x0) = lim_left (f,x0) & lim (f,x0) = lim_right (f,x0) ) )
assume that
A1: f is_left_convergent_in x0 and
A2: f is_right_convergent_in x0 and
A3: lim_left (f,x0) = lim_right (f,x0) ; :: thesis: ( f is_convergent_in x0 & lim (f,x0) = lim_left (f,x0) & lim (f,x0) = lim_right (f,x0) )
A4: now :: thesis: for s being Real_Sequence st s is convergent & lim s = x0 & rng s c= (dom f) \ {x0} holds
( f /* s is convergent & lim (f /* s) = lim_left (f,x0) )
let s be Real_Sequence; :: thesis: ( s is convergent & lim s = x0 & rng s c= (dom f) \ {x0} implies ( f /* s is convergent & lim (f /* s) = lim_left (f,x0) ) )
assume that
A5: s is convergent and
A6: lim s = x0 and
A7: rng s c= (dom f) \ {x0} ; :: thesis: ( f /* s is convergent & lim (f /* s) = lim_left (f,x0) )
now :: thesis: ( f /* s is convergent & lim (f /* s) = lim_left (f,x0) )
per cases ( ex k being Element of NAT st
for n being Element of NAT st k <= n holds
s . n < x0 or for k being Element of NAT ex n being Element of NAT st
( k <= n & s . n >= x0 ) )
;
suppose ex k being Element of NAT st
for n being Element of NAT st k <= n holds
s . n < x0 ; :: thesis: ( f /* s is convergent & lim (f /* s) = lim_left (f,x0) )
then consider k being Element of NAT such that
A8: for n being Element of NAT st k <= n holds
s . n < x0 ;
A9: rng s c= dom f by A7, XBOOLE_1:1;
A10: rng (s ^\ k) c= (dom f) /\ (left_open_halfline x0)
proof
let x be object ; :: according to TARSKI:def 3 :: thesis: ( not x in rng (s ^\ k) or x in (dom f) /\ (left_open_halfline x0) )
assume x in rng (s ^\ k) ; :: thesis: x in (dom f) /\ (left_open_halfline x0)
then consider n being Element of NAT such that
A11: (s ^\ k) . n = x by FUNCT_2:113;
s . (n + k) < x0 by A8, NAT_1:12;
then s . (n + k) in { g1 where g1 is Real : g1 < x0 } ;
then s . (n + k) in left_open_halfline x0 by XXREAL_1:229;
then A12: x in left_open_halfline x0 by A11, NAT_1:def 3;
s . (n + k) in rng s by VALUED_0:28;
then x in rng s by A11, NAT_1:def 3;
hence x in (dom f) /\ (left_open_halfline x0) by A9, A12, XBOOLE_0:def 4; :: thesis: verum
end;
A13: f /* (s ^\ k) = (f /* s) ^\ k by A7, VALUED_0:27, XBOOLE_1:1;
A14: lim (s ^\ k) = x0 by A5, A6, SEQ_4:20;
then A15: f /* (s ^\ k) is convergent by A1, A3, A5, A10, LIMFUNC2:def 7;
hence f /* s is convergent by A13, SEQ_4:21; :: thesis: lim (f /* s) = lim_left (f,x0)
lim (f /* (s ^\ k)) = lim_left (f,x0) by A1, A5, A14, A10, LIMFUNC2:def 7;
hence lim (f /* s) = lim_left (f,x0) by A15, A13, SEQ_4:22; :: thesis: verum
end;
suppose A16: for k being Element of NAT ex n being Element of NAT st
( k <= n & s . n >= x0 ) ; :: thesis: ( f /* s is convergent & lim (f /* s) = lim_left (f,x0) )
now :: thesis: ( f /* s is convergent & lim (f /* s) = lim_left (f,x0) )
per cases ( ex k being Element of NAT st
for n being Element of NAT st k <= n holds
x0 < s . n or for k being Element of NAT ex n being Element of NAT st
( k <= n & x0 >= s . n ) )
;
suppose ex k being Element of NAT st
for n being Element of NAT st k <= n holds
x0 < s . n ; :: thesis: ( f /* s is convergent & lim (f /* s) = lim_left (f,x0) )
then consider k being Element of NAT such that
A17: for n being Element of NAT st k <= n holds
s . n > x0 ;
A18: rng s c= dom f by A7, XBOOLE_1:1;
A19: rng (s ^\ k) c= (dom f) /\ (right_open_halfline x0)
proof
let x be object ; :: according to TARSKI:def 3 :: thesis: ( not x in rng (s ^\ k) or x in (dom f) /\ (right_open_halfline x0) )
assume x in rng (s ^\ k) ; :: thesis: x in (dom f) /\ (right_open_halfline x0)
then consider n being Element of NAT such that
A20: (s ^\ k) . n = x by FUNCT_2:113;
x0 < s . (n + k) by A17, NAT_1:12;
then s . (n + k) in { g1 where g1 is Real : x0 < g1 } ;
then s . (n + k) in right_open_halfline x0 by XXREAL_1:230;
then A21: x in right_open_halfline x0 by A20, NAT_1:def 3;
s . (n + k) in rng s by VALUED_0:28;
then x in rng s by A20, NAT_1:def 3;
hence x in (dom f) /\ (right_open_halfline x0) by A18, A21, XBOOLE_0:def 4; :: thesis: verum
end;
A22: f /* (s ^\ k) = (f /* s) ^\ k by A7, VALUED_0:27, XBOOLE_1:1;
A23: lim (s ^\ k) = x0 by A5, A6, SEQ_4:20;
then A24: f /* (s ^\ k) is convergent by A2, A3, A5, A19, LIMFUNC2:def 8;
hence f /* s is convergent by A22, SEQ_4:21; :: thesis: lim (f /* s) = lim_left (f,x0)
lim (f /* (s ^\ k)) = lim_left (f,x0) by A2, A3, A5, A23, A19, LIMFUNC2:def 8;
hence lim (f /* s) = lim_left (f,x0) by A24, A22, SEQ_4:22; :: thesis: verum
end;
suppose A25: for k being Element of NAT ex n being Element of NAT st
( k <= n & x0 >= s . n ) ; :: thesis: ( f /* s is convergent & lim (f /* s) = lim_left (f,x0) )
set GR = lim_left (f,x0);
defpred S1[ set , set ] means for n, m being Element of NAT st $1 = n & $2 = m holds
( n < m & s . m < x0 & ( for k being Element of NAT st n < k & s . k < x0 holds
m <= k ) );
defpred S2[ Nat, set , set ] means S1[$2,$3];
defpred S3[ Nat] means s . $1 < x0;
A26: now :: thesis: for k being Element of NAT ex n being Element of NAT st
( k <= n & s . n < x0 )
let k be Element of NAT ; :: thesis: ex n being Element of NAT st
( k <= n & s . n < x0 )

consider n being Element of NAT such that
A27: k <= n and
A28: s . n <= x0 by A25;
take n = n; :: thesis: ( k <= n & s . n < x0 )
thus k <= n by A27; :: thesis: s . n < x0
s . n in rng s by VALUED_0:28;
then not s . n in {x0} by A7, XBOOLE_0:def 5;
then s . n <> x0 by TARSKI:def 1;
hence s . n < x0 by A28, XXREAL_0:1; :: thesis: verum
end;
then ex m1 being Element of NAT st
( 0 <= m1 & s . m1 < x0 ) ;
then A29: ex m being Nat st S3[m] ;
consider M being Nat such that
A30: ( S3[M] & ( for n being Nat st S3[n] holds
M <= n ) ) from NAT_1:sch 5(A29);
reconsider M9 = M as Element of NAT by ORDINAL1:def 12;
A31: now :: thesis: for n being Element of NAT ex m being Element of NAT st
( n < m & s . m < x0 )
let n be Element of NAT ; :: thesis: ex m being Element of NAT st
( n < m & s . m < x0 )

consider m being Element of NAT such that
A32: n + 1 <= m and
A33: s . m < x0 by A26;
take m = m; :: thesis: ( n < m & s . m < x0 )
thus ( n < m & s . m < x0 ) by A32, A33, NAT_1:13; :: thesis: verum
end;
A34: for n being Nat
for x being Element of NAT ex y being Element of NAT st S2[n,x,y]
proof
let n be Nat; :: thesis: for x being Element of NAT ex y being Element of NAT st S2[n,x,y]
let x be Element of NAT ; :: thesis: ex y being Element of NAT st S2[n,x,y]
defpred S4[ Nat] means ( x < $1 & s . $1 < x0 );
ex m being Element of NAT st S4[m] by A31;
then A35: ex m being Nat st S4[m] ;
consider l being Nat such that
A36: ( S4[l] & ( for k being Nat st S4[k] holds
l <= k ) ) from NAT_1:sch 5(A35);
take l ; :: thesis: ( l is Element of NAT & S2[n,x,l] )
l in NAT by ORDINAL1:def 12;
hence ( l is Element of NAT & S2[n,x,l] ) by A36; :: thesis: verum
end;
consider F being sequence of NAT such that
A37: ( F . 0 = M9 & ( for n being Nat holds S2[n,F . n,F . (n + 1)] ) ) from RECDEF_1:sch 2(A34);
A38: rng F c= NAT by RELAT_1:def 19;
then A39: rng F c= REAL by NUMBERS:19;
A40: dom F = NAT by FUNCT_2:def 1;
then reconsider F = F as Real_Sequence by A39, RELSET_1:4;
A41: now :: thesis: for n being Element of NAT holds F . n is Element of NAT
let n be Element of NAT ; :: thesis: F . n is Element of NAT
F . n in rng F by A40, FUNCT_1:def 3;
hence F . n is Element of NAT by A38; :: thesis: verum
end;
now :: thesis: for n being Nat holds F . n < F . (n + 1)
let n be Nat; :: thesis: F . n < F . (n + 1)
A42: n in NAT by ORDINAL1:def 12;
A43: F . (n + 1) is Element of NAT by A41;
F . n is Element of NAT by A41, A42;
hence F . n < F . (n + 1) by A37, A43; :: thesis: verum
end;
then reconsider F = F as increasing sequence of NAT by SEQM_3:def 6;
A44: s * F is subsequence of s by VALUED_0:def 17;
then rng (s * F) c= rng s by VALUED_0:21;
then A45: rng (s * F) c= (dom f) \ {x0} by A7;
defpred S4[ Nat] means ( s . $1 < x0 & ( for m being Element of NAT holds F . m <> $1 ) );
A46: for n being Element of NAT st s . n < x0 holds
ex m being Element of NAT st F . m = n
proof
assume ex n being Element of NAT st S4[n] ; :: thesis: contradiction
then A47: ex n being Nat st S4[n] ;
consider M1 being Nat such that
A48: ( S4[M1] & ( for n being Nat st S4[n] holds
M1 <= n ) ) from NAT_1:sch 5(A47);
defpred S5[ Nat] means ( $1 < M1 & s . $1 < x0 & ex m being Element of NAT st F . m = $1 );
A49: ex n being Nat st S5[n]
proof
take M ; :: thesis: S5[M]
A50: M <> M1 by A37, A48;
M <= M1 by A30, A48;
hence M < M1 by A50, XXREAL_0:1; :: thesis: ( s . M < x0 & ex m being Element of NAT st F . m = M )
thus s . M < x0 by A30; :: thesis: ex m being Element of NAT st F . m = M
take 0 ; :: thesis: F . 0 = M
thus F . 0 = M by A37; :: thesis: verum
end;
A51: for n being Nat st S5[n] holds
n <= M1 ;
consider MX being Nat such that
A52: ( S5[MX] & ( for n being Nat st S5[n] holds
n <= MX ) ) from NAT_1:sch 6(A51, A49);
A53: for k being Element of NAT st MX < k & k < M1 holds
s . k >= x0
proof
given k being Element of NAT such that A54: MX < k and
A55: k < M1 and
A56: s . k < x0 ; :: thesis: contradiction
now :: thesis: contradiction
per cases ( ex m being Element of NAT st F . m = k or for m being Element of NAT holds F . m <> k ) ;
end;
end;
hence contradiction ; :: thesis: verum
end;
consider m being Element of NAT such that
A57: F . m = MX by A52;
M1 in NAT by ORDINAL1:def 12;
then A58: F . (m + 1) <= M1 by A37, A48, A52, A57;
A59: s . (F . (m + 1)) < x0 by A37, A57;
A60: MX < F . (m + 1) by A37, A57;
now :: thesis: not F . (m + 1) <> M1
assume F . (m + 1) <> M1 ; :: thesis: contradiction
then F . (m + 1) < M1 by A58, XXREAL_0:1;
hence contradiction by A53, A60, A59; :: thesis: verum
end;
hence contradiction by A48; :: thesis: verum
end;
defpred S5[ Nat] means s . $1 > x0;
A61: now :: thesis: for k being Element of NAT ex n being Element of NAT st
( k <= n & s . n > x0 )
let k be Element of NAT ; :: thesis: ex n being Element of NAT st
( k <= n & s . n > x0 )

consider n being Element of NAT such that
A62: k <= n and
A63: s . n >= x0 by A16;
take n = n; :: thesis: ( k <= n & s . n > x0 )
thus k <= n by A62; :: thesis: s . n > x0
s . n in rng s by VALUED_0:28;
then not s . n in {x0} by A7, XBOOLE_0:def 5;
then s . n <> x0 by TARSKI:def 1;
hence s . n > x0 by A63, XXREAL_0:1; :: thesis: verum
end;
then ex mn being Element of NAT st
( 0 <= mn & s . mn > x0 ) ;
then A64: ex m being Nat st S5[m] ;
consider N being Nat such that
A65: ( S5[N] & ( for n being Nat st S5[n] holds
N <= n ) ) from NAT_1:sch 5(A64);
defpred S6[ Nat] means (s * F) . $1 < x0;
A66: for k being Nat st S6[k] holds
S6[k + 1]
proof
let k be Nat; :: thesis: ( S6[k] implies S6[k + 1] )
assume (s * F) . k < x0 ; :: thesis: S6[k + 1]
S1[F . k,F . (k + 1)] by A37;
then s . (F . (k + 1)) < x0 ;
hence S6[k + 1] by FUNCT_2:15; :: thesis: verum
end;
A67: S6[ 0 ] by A30, A37, FUNCT_2:15;
A68: for k being Nat holds S6[k] from NAT_1:sch 2(A67, A66);
A69: rng (s * F) c= (dom f) /\ (left_open_halfline x0)
proof
let x be object ; :: according to TARSKI:def 3 :: thesis: ( not x in rng (s * F) or x in (dom f) /\ (left_open_halfline x0) )
assume A70: x in rng (s * F) ; :: thesis: x in (dom f) /\ (left_open_halfline x0)
then consider n being Element of NAT such that
A71: (s * F) . n = x by FUNCT_2:113;
(s * F) . n < x0 by A68;
then x in { g1 where g1 is Real : g1 < x0 } by A71;
then A72: x in left_open_halfline x0 by XXREAL_1:229;
x in dom f by A45, A70, XBOOLE_0:def 5;
hence x in (dom f) /\ (left_open_halfline x0) by A72, XBOOLE_0:def 4; :: thesis: verum
end;
defpred S7[ set , set ] means for n, m being Element of NAT st $1 = n & $2 = m holds
( n < m & s . m > x0 & ( for k being Element of NAT st n < k & s . k > x0 holds
m <= k ) );
defpred S8[ Nat, set , set ] means S7[$2,$3];
A73: s * F is convergent by A5, A44, SEQ_4:16;
reconsider N9 = N as Element of NAT by ORDINAL1:def 12;
A74: now :: thesis: for n being Element of NAT ex m being Element of NAT st
( n < m & s . m > x0 )
let n be Element of NAT ; :: thesis: ex m being Element of NAT st
( n < m & s . m > x0 )

consider m being Element of NAT such that
A75: n + 1 <= m and
A76: s . m > x0 by A61;
take m = m; :: thesis: ( n < m & s . m > x0 )
thus ( n < m & s . m > x0 ) by A75, A76, NAT_1:13; :: thesis: verum
end;
A77: for n being Nat
for x being Element of NAT ex y being Element of NAT st S8[n,x,y]
proof
let n be Nat; :: thesis: for x being Element of NAT ex y being Element of NAT st S8[n,x,y]
let x be Element of NAT ; :: thesis: ex y being Element of NAT st S8[n,x,y]
defpred S9[ Nat] means ( x < $1 & s . $1 > x0 );
ex m being Element of NAT st S9[m] by A74;
then A78: ex m being Nat st S9[m] ;
consider l being Nat such that
A79: ( S9[l] & ( for k being Nat st S9[k] holds
l <= k ) ) from NAT_1:sch 5(A78);
take l ; :: thesis: ( l is Element of NAT & S8[n,x,l] )
l in NAT by ORDINAL1:def 12;
hence ( l is Element of NAT & S8[n,x,l] ) by A79; :: thesis: verum
end;
consider G being sequence of NAT such that
A80: ( G . 0 = N9 & ( for n being Nat holds S8[n,G . n,G . (n + 1)] ) ) from RECDEF_1:sch 2(A77);
A81: rng G c= NAT by RELAT_1:def 19;
then A82: rng G c= REAL by NUMBERS:19;
A83: dom G = NAT by FUNCT_2:def 1;
then reconsider G = G as Real_Sequence by A82, RELSET_1:4;
A84: now :: thesis: for n being Element of NAT holds G . n is Element of NAT
let n be Element of NAT ; :: thesis: G . n is Element of NAT
G . n in rng G by A83, FUNCT_1:def 3;
hence G . n is Element of NAT by A81; :: thesis: verum
end;
now :: thesis: for n being Nat holds G . n < G . (n + 1)
let n be Nat; :: thesis: G . n < G . (n + 1)
A85: n in NAT by ORDINAL1:def 12;
A86: G . (n + 1) is Element of NAT by A84;
G . n is Element of NAT by A84, A85;
hence G . n < G . (n + 1) by A80, A86; :: thesis: verum
end;
then reconsider G = G as increasing sequence of NAT by SEQM_3:def 6;
A87: s * G is subsequence of s by VALUED_0:def 17;
then rng (s * G) c= rng s by VALUED_0:21;
then A88: rng (s * G) c= (dom f) \ {x0} by A7;
A89: lim (s * F) = x0 by A5, A6, A44, SEQ_4:17;
then A90: lim (f /* (s * F)) = lim_left (f,x0) by A1, A73, A69, LIMFUNC2:def 7;
A91: f /* (s * F) is convergent by A1, A3, A73, A89, A69, LIMFUNC2:def 7;
A92: s * G is convergent by A5, A87, SEQ_4:16;
defpred S9[ Nat] means ( s . $1 > x0 & ( for m being Element of NAT holds G . m <> $1 ) );
A93: for n being Element of NAT st s . n > x0 holds
ex m being Element of NAT st G . m = n
proof
assume ex n being Element of NAT st S9[n] ; :: thesis: contradiction
then A94: ex n being Nat st S9[n] ;
consider N1 being Nat such that
A95: ( S9[N1] & ( for n being Nat st S9[n] holds
N1 <= n ) ) from NAT_1:sch 5(A94);
defpred S10[ Nat] means ( $1 < N1 & s . $1 > x0 & ex m being Element of NAT st G . m = $1 );
A96: ex n being Nat st S10[n]
proof
take N ; :: thesis: S10[N]
A97: N <> N1 by A80, A95;
N <= N1 by A65, A95;
hence N < N1 by A97, XXREAL_0:1; :: thesis: ( s . N > x0 & ex m being Element of NAT st G . m = N )
thus s . N > x0 by A65; :: thesis: ex m being Element of NAT st G . m = N
take 0 ; :: thesis: G . 0 = N
thus G . 0 = N by A80; :: thesis: verum
end;
A98: for n being Nat st S10[n] holds
n <= N1 ;
consider NX being Nat such that
A99: ( S10[NX] & ( for n being Nat st S10[n] holds
n <= NX ) ) from NAT_1:sch 6(A98, A96);
A100: for k being Element of NAT st NX < k & k < N1 holds
s . k <= x0
proof
given k being Element of NAT such that A101: NX < k and
A102: k < N1 and
A103: s . k > x0 ; :: thesis: contradiction
now :: thesis: contradiction
per cases ( ex m being Element of NAT st G . m = k or for m being Element of NAT holds G . m <> k ) ;
end;
end;
hence contradiction ; :: thesis: verum
end;
consider m being Element of NAT such that
A104: G . m = NX by A99;
N1 in NAT by ORDINAL1:def 12;
then A105: G . (m + 1) <= N1 by A80, A95, A99, A104;
A106: s . (G . (m + 1)) > x0 by A80, A104;
A107: NX < G . (m + 1) by A80, A104;
now :: thesis: not G . (m + 1) <> N1
assume G . (m + 1) <> N1 ; :: thesis: contradiction
then G . (m + 1) < N1 by A105, XXREAL_0:1;
hence contradiction by A100, A107, A106; :: thesis: verum
end;
hence contradiction by A95; :: thesis: verum
end;
defpred S10[ Nat] means (s * G) . $1 > x0;
A108: for k being Nat st S10[k] holds
S10[k + 1]
proof
let k be Nat; :: thesis: ( S10[k] implies S10[k + 1] )
assume (s * G) . k > x0 ; :: thesis: S10[k + 1]
S7[G . k,G . (k + 1)] by A80;
then s . (G . (k + 1)) > x0 ;
hence S10[k + 1] by FUNCT_2:15; :: thesis: verum
end;
A109: S10[ 0 ] by A65, A80, FUNCT_2:15;
A110: for k being Nat holds S10[k] from NAT_1:sch 2(A109, A108);
A111: rng (s * G) c= (dom f) /\ (right_open_halfline x0)
proof
let x be object ; :: according to TARSKI:def 3 :: thesis: ( not x in rng (s * G) or x in (dom f) /\ (right_open_halfline x0) )
assume A112: x in rng (s * G) ; :: thesis: x in (dom f) /\ (right_open_halfline x0)
then consider n being Element of NAT such that
A113: (s * G) . n = x by FUNCT_2:113;
(s * G) . n > x0 by A110;
then x in { g1 where g1 is Real : x0 < g1 } by A113;
then A114: x in right_open_halfline x0 by XXREAL_1:230;
x in dom f by A88, A112, XBOOLE_0:def 5;
hence x in (dom f) /\ (right_open_halfline x0) by A114, XBOOLE_0:def 4; :: thesis: verum
end;
A115: lim (s * G) = x0 by A5, A6, A87, SEQ_4:17;
then A116: lim (f /* (s * G)) = lim_left (f,x0) by A2, A3, A92, A111, LIMFUNC2:def 8;
A117: f /* (s * G) is convergent by A2, A3, A92, A115, A111, LIMFUNC2:def 8;
A118: now :: thesis: for r being Real st 0 < r holds
ex n being Nat st
for k being Nat st n <= k holds
|.(((f /* s) . k) - (lim_left (f,x0))).| < r
let r be Real; :: thesis: ( 0 < r implies ex n being Nat st
for k being Nat st n <= k holds
|.(((f /* s) . k) - (lim_left (f,x0))).| < r )

assume A119: 0 < r ; :: thesis: ex n being Nat st
for k being Nat st n <= k holds
|.(((f /* s) . k) - (lim_left (f,x0))).| < r

then consider n1 being Nat such that
A120: for k being Nat st n1 <= k holds
|.(((f /* (s * F)) . k) - (lim_left (f,x0))).| < r by A91, A90, SEQ_2:def 7;
consider n2 being Nat such that
A121: for k being Nat st n2 <= k holds
|.(((f /* (s * G)) . k) - (lim_left (f,x0))).| < r by A117, A116, A119, SEQ_2:def 7;
reconsider n = max ((F . n1),(G . n2)) as Nat ;
take n = n; :: thesis: for k being Nat st n <= k holds
|.(((f /* s) . k) - (lim_left (f,x0))).| < r

let k be Nat; :: thesis: ( n <= k implies |.(((f /* s) . k) - (lim_left (f,x0))).| < r )
A122: k in NAT by ORDINAL1:def 12;
assume A123: n <= k ; :: thesis: |.(((f /* s) . k) - (lim_left (f,x0))).| < r
s . k in rng s by VALUED_0:28;
then not s . k in {x0} by A7, XBOOLE_0:def 5;
then A124: s . k <> x0 by TARSKI:def 1;
now :: thesis: |.(((f /* s) . k) - (lim_left (f,x0))).| < r
per cases ( s . k < x0 or s . k > x0 ) by A124, XXREAL_0:1;
suppose s . k < x0 ; :: thesis: |.(((f /* s) . k) - (lim_left (f,x0))).| < r
then consider l being Element of NAT such that
A125: k = F . l by A46, A122;
F . n1 <= n by XXREAL_0:25;
then F . n1 <= k by A123, XXREAL_0:2;
then l >= n1 by A125, SEQM_3:1;
then |.(((f /* (s * F)) . l) - (lim_left (f,x0))).| < r by A120;
then |.((f . ((s * F) . l)) - (lim_left (f,x0))).| < r by A45, FUNCT_2:108, XBOOLE_1:1;
then |.((f . (s . k)) - (lim_left (f,x0))).| < r by A125, FUNCT_2:15;
hence |.(((f /* s) . k) - (lim_left (f,x0))).| < r by A7, FUNCT_2:108, XBOOLE_1:1, A122; :: thesis: verum
end;
suppose s . k > x0 ; :: thesis: |.(((f /* s) . k) - (lim_left (f,x0))).| < r
then consider l being Element of NAT such that
A126: k = G . l by A93, A122;
G . n2 <= n by XXREAL_0:25;
then G . n2 <= k by A123, XXREAL_0:2;
then l >= n2 by A126, SEQM_3:1;
then |.(((f /* (s * G)) . l) - (lim_left (f,x0))).| < r by A121;
then |.((f . ((s * G) . l)) - (lim_left (f,x0))).| < r by A88, FUNCT_2:108, XBOOLE_1:1;
then |.((f . (s . k)) - (lim_left (f,x0))).| < r by A126, FUNCT_2:15;
hence |.(((f /* s) . k) - (lim_left (f,x0))).| < r by A7, FUNCT_2:108, XBOOLE_1:1, A122; :: thesis: verum
end;
end;
end;
hence |.(((f /* s) . k) - (lim_left (f,x0))).| < r ; :: thesis: verum
end;
hence f /* s is convergent by SEQ_2:def 6; :: thesis: lim (f /* s) = lim_left (f,x0)
hence lim (f /* s) = lim_left (f,x0) by A118, SEQ_2:def 7; :: thesis: verum
end;
end;
end;
hence ( f /* s is convergent & lim (f /* s) = lim_left (f,x0) ) ; :: thesis: verum
end;
end;
end;
hence ( f /* s is convergent & lim (f /* s) = lim_left (f,x0) ) ; :: thesis: verum
end;
now :: thesis: for r1, r2 being Real st r1 < x0 & x0 < r2 holds
ex g1, g2 being Real st
( r1 < g1 & g1 < x0 & g1 in dom f & g2 < r2 & x0 < g2 & g2 in dom f )
let r1, r2 be Real; :: thesis: ( r1 < x0 & x0 < r2 implies ex g1, g2 being Real st
( r1 < g1 & g1 < x0 & g1 in dom f & g2 < r2 & x0 < g2 & g2 in dom f ) )

assume that
A127: r1 < x0 and
A128: x0 < r2 ; :: thesis: ex g1, g2 being Real st
( r1 < g1 & g1 < x0 & g1 in dom f & g2 < r2 & x0 < g2 & g2 in dom f )

consider g1 being Real such that
A129: r1 < g1 and
A130: g1 < x0 and
A131: g1 in dom f by A1, A127, LIMFUNC2:def 1;
consider g2 being Real such that
A132: g2 < r2 and
A133: x0 < g2 and
A134: g2 in dom f by A2, A128, LIMFUNC2:def 4;
take g1 = g1; :: thesis: ex g2 being Real st
( r1 < g1 & g1 < x0 & g1 in dom f & g2 < r2 & x0 < g2 & g2 in dom f )

take g2 = g2; :: thesis: ( r1 < g1 & g1 < x0 & g1 in dom f & g2 < r2 & x0 < g2 & g2 in dom f )
thus ( r1 < g1 & g1 < x0 & g1 in dom f & g2 < r2 & x0 < g2 & g2 in dom f ) by A129, A130, A131, A132, A133, A134; :: thesis: verum
end;
hence f is_convergent_in x0 by A4; :: thesis: ( lim (f,x0) = lim_left (f,x0) & lim (f,x0) = lim_right (f,x0) )
hence ( lim (f,x0) = lim_left (f,x0) & lim (f,x0) = lim_right (f,x0) ) by A3, A4, Def4; :: thesis: verum