let x0 be Real; :: thesis: for S being RealNormSpace
for f being PartFunc of REAL, the carrier of S holds
( f is_continuous_in x0 iff ( x0 in dom f & ( for s1 being Real_Sequence st rng s1 c= dom f & s1 is convergent & lim s1 = x0 & ( for n being Nat holds s1 . n <> x0 ) holds
( f /* s1 is convergent & f /. x0 = lim (f /* s1) ) ) ) )

let S be RealNormSpace; :: thesis: for f being PartFunc of REAL, the carrier of S holds
( f is_continuous_in x0 iff ( x0 in dom f & ( for s1 being Real_Sequence st rng s1 c= dom f & s1 is convergent & lim s1 = x0 & ( for n being Nat holds s1 . n <> x0 ) holds
( f /* s1 is convergent & f /. x0 = lim (f /* s1) ) ) ) )

let f be PartFunc of REAL, the carrier of S; :: thesis: ( f is_continuous_in x0 iff ( x0 in dom f & ( for s1 being Real_Sequence st rng s1 c= dom f & s1 is convergent & lim s1 = x0 & ( for n being Nat holds s1 . n <> x0 ) holds
( f /* s1 is convergent & f /. x0 = lim (f /* s1) ) ) ) )

thus ( f is_continuous_in x0 implies ( x0 in dom f & ( for s1 being Real_Sequence st rng s1 c= dom f & s1 is convergent & lim s1 = x0 & ( for n being Nat holds s1 . n <> x0 ) holds
( f /* s1 is convergent & f /. x0 = lim (f /* s1) ) ) ) ) ; :: thesis: ( x0 in dom f & ( for s1 being Real_Sequence st rng s1 c= dom f & s1 is convergent & lim s1 = x0 & ( for n being Nat holds s1 . n <> x0 ) holds
( f /* s1 is convergent & f /. x0 = lim (f /* s1) ) ) implies f is_continuous_in x0 )

assume A1: ( x0 in dom f & ( for s1 being Real_Sequence st rng s1 c= dom f & s1 is convergent & lim s1 = x0 & ( for n being Nat holds s1 . n <> x0 ) holds
( f /* s1 is convergent & f /. x0 = lim (f /* s1) ) ) ) ; :: thesis: f is_continuous_in x0
thus x0 in dom f by A1; :: according to NFCONT_3:def 1 :: thesis: for s1 being Real_Sequence st rng s1 c= dom f & s1 is convergent & lim s1 = x0 holds
( f /* s1 is convergent & f /. x0 = lim (f /* s1) )

let s2 be Real_Sequence; :: thesis: ( rng s2 c= dom f & s2 is convergent & lim s2 = x0 implies ( f /* s2 is convergent & f /. x0 = lim (f /* s2) ) )
assume that
A2: rng s2 c= dom f and
A3: ( s2 is convergent & lim s2 = x0 ) ; :: thesis: ( f /* s2 is convergent & f /. x0 = lim (f /* s2) )
per cases ( ex n being Nat st
for m being Nat st n <= m holds
s2 . m = x0 or for n being Nat ex m being Nat st
( n <= m & s2 . m <> x0 ) )
;
suppose ex n being Nat st
for m being Nat st n <= m holds
s2 . m = x0 ; :: thesis: ( f /* s2 is convergent & f /. x0 = lim (f /* s2) )
then consider N being Nat such that
A4: for m being Nat st N <= m holds
s2 . m = x0 ;
A5: f /* (s2 ^\ N) = (f /* s2) ^\ N by A2, VALUED_0:27;
A6: now :: thesis: for p being Real st p > 0 holds
ex n being Nat st
for m being Nat st n <= m holds
||.(((f /* (s2 ^\ N)) . m) - (f /. x0)).|| < p
let p be Real; :: thesis: ( p > 0 implies ex n being Nat st
for m being Nat st n <= m holds
||.(((f /* (s2 ^\ N)) . m) - (f /. x0)).|| < p )

assume A7: p > 0 ; :: thesis: ex n being Nat st
for m being Nat st n <= m holds
||.(((f /* (s2 ^\ N)) . m) - (f /. x0)).|| < p

reconsider n = 0 as Nat ;
take n = n; :: thesis: for m being Nat st n <= m holds
||.(((f /* (s2 ^\ N)) . m) - (f /. x0)).|| < p

let m be Nat; :: thesis: ( n <= m implies ||.(((f /* (s2 ^\ N)) . m) - (f /. x0)).|| < p )
assume n <= m ; :: thesis: ||.(((f /* (s2 ^\ N)) . m) - (f /. x0)).|| < p
A8: s2 . (m + N) = x0 by A4, NAT_1:12;
A9: m in NAT by ORDINAL1:def 12;
rng (s2 ^\ N) c= rng s2 by VALUED_0:21;
then ||.(((f /* (s2 ^\ N)) . m) - (f /. x0)).|| = ||.((f /. ((s2 ^\ N) . m)) - (f /. x0)).|| by A2, FUNCT_2:109, XBOOLE_1:1, A9
.= ||.((f /. x0) - (f /. x0)).|| by A8, NAT_1:def 3
.= 0 by NORMSP_1:6 ;
hence ||.(((f /* (s2 ^\ N)) . m) - (f /. x0)).|| < p by A7; :: thesis: verum
end;
then A10: f /* (s2 ^\ N) is convergent by NORMSP_1:def 6;
then f /. x0 = lim ((f /* s2) ^\ N) by A6, A5, NORMSP_1:def 7;
hence ( f /* s2 is convergent & f /. x0 = lim (f /* s2) ) by A10, A5, LOPBAN_3:10, LOPBAN_3:11; :: thesis: verum
end;
suppose A11: for n being Nat ex m being Nat st
( n <= m & s2 . m <> x0 ) ; :: thesis: ( f /* s2 is convergent & f /. x0 = lim (f /* s2) )
defpred S1[ Nat, set , set ] means for n, m being Nat st $2 = n & $3 = m holds
( n < m & s2 . m <> x0 & ( for k being Nat st n < k & s2 . k <> x0 holds
m <= k ) );
defpred S2[ set ] means s2 . $1 <> x0;
ex m1 being Nat st
( 0 <= m1 & s2 . m1 <> x0 ) by A11;
then A12: ex m being Nat st S2[m] ;
consider M being Nat such that
A13: ( S2[M] & ( for n being Nat st S2[n] holds
M <= n ) ) from NAT_1:sch 5(A12);
reconsider M9 = M as Element of NAT by ORDINAL1:def 12;
A14: now :: thesis: for n being Nat ex m being Nat st
( n < m & s2 . m <> x0 )
let n be Nat; :: thesis: ex m being Nat st
( n < m & s2 . m <> x0 )

consider m being Nat such that
A15: ( n + 1 <= m & s2 . m <> x0 ) by A11;
take m = m; :: thesis: ( n < m & s2 . m <> x0 )
thus ( n < m & s2 . m <> x0 ) by A15, NAT_1:13; :: thesis: verum
end;
A16: for n being Nat
for x being Element of NAT ex y being Element of NAT st S1[n,x,y]
proof
let n be Nat; :: thesis: for x being Element of NAT ex y being Element of NAT st S1[n,x,y]
let x be Element of NAT ; :: thesis: ex y being Element of NAT st S1[n,x,y]
defpred S3[ Nat] means ( x < $1 & s2 . $1 <> x0 );
ex m being Nat st S3[m] by A14;
then A17: ex m being Nat st S3[m] ;
consider l being Nat such that
A18: ( S3[l] & ( for k being Nat st S3[k] holds
l <= k ) ) from NAT_1:sch 5(A17);
take l ; :: thesis: ( l is Element of NAT & S1[n,x,l] )
l in NAT by ORDINAL1:def 12;
hence ( l is Element of NAT & S1[n,x,l] ) by A18; :: thesis: verum
end;
consider F being sequence of NAT such that
A19: ( F . 0 = M9 & ( for n being Nat holds S1[n,F . n,F . (n + 1)] ) ) from RECDEF_1:sch 2(A16);
( dom F = NAT & rng F c= REAL ) by FUNCT_2:def 1, XBOOLE_1:1, NUMBERS:19;
then reconsider F = F as Real_Sequence by RELSET_1:4;
for n being Nat holds F . n < F . (n + 1) by A19;
then reconsider F = F as increasing sequence of NAT by SEQM_3:def 6;
A20: for n being Nat st s2 . n <> x0 holds
ex m being Nat st F . m = n
proof
defpred S3[ set ] means ( s2 . $1 <> x0 & ( for m being Nat holds F . m <> $1 ) );
assume ex n being Nat st S3[n] ; :: thesis: contradiction
then A21: ex n being Nat st S3[n] ;
consider M1 being Nat such that
A22: ( S3[M1] & ( for n being Nat st S3[n] holds
M1 <= n ) ) from NAT_1:sch 5(A21);
reconsider M1 = M1 as Nat ;
defpred S4[ Nat] means ( $1 < M1 & s2 . $1 <> x0 & ex m being Nat st F . m = $1 );
A23: ex n being Nat st S4[n]
proof
take M ; :: thesis: S4[M]
( M <= M1 & M <> M1 ) by A13, A19, A22;
hence M < M1 by XXREAL_0:1; :: thesis: ( s2 . M <> x0 & ex m being Nat st F . m = M )
thus s2 . M <> x0 by A13; :: thesis: ex m being Nat st F . m = M
take 0 ; :: thesis: F . 0 = M
thus F . 0 = M by A19; :: thesis: verum
end;
A24: for n being Nat st S4[n] holds
n <= M1 ;
consider MX being Nat such that
A25: ( S4[MX] & ( for n being Nat st S4[n] holds
n <= MX ) ) from NAT_1:sch 6(A24, A23);
consider m being Nat such that
A26: F . m = MX by A25;
A27: ( MX < F . (m + 1) & s2 . (F . (m + 1)) <> x0 ) by A19, A26;
( F . (m + 1) <> M1 & F . (m + 1) <= M1 ) by A19, A22, A25, A26;
then F . (m + 1) < M1 by XXREAL_0:1;
hence contradiction by A25, A27; :: thesis: verum
end;
A28: for n being Nat holds (s2 * F) . n <> x0
proof
defpred S3[ Nat] means (s2 * F) . $1 <> x0;
A29: for k being Nat st S3[k] holds
S3[k + 1]
proof
let k be Nat; :: thesis: ( S3[k] implies S3[k + 1] )
assume (s2 * F) . k <> x0 ; :: thesis: S3[k + 1]
reconsider k = k as Element of NAT by ORDINAL1:def 12;
( F . k in NAT & F . (k + 1) in NAT ) ;
then s2 . (F . (k + 1)) <> x0 by A19;
hence S3[k + 1] by FUNCT_2:15; :: thesis: verum
end;
A30: S3[ 0 ] by A13, A19, FUNCT_2:15;
thus for n being Nat holds S3[n] from NAT_1:sch 2(A30, A29); :: thesis: verum
end;
A31: ( s2 * F is convergent & lim (s2 * F) = x0 ) by A3, SEQ_4:16, SEQ_4:17;
A32: rng (s2 * F) c= rng s2 by VALUED_0:21;
then rng (s2 * F) c= dom f by A2, XBOOLE_1:1;
then A33: ( f /* (s2 * F) is convergent & f /. x0 = lim (f /* (s2 * F)) ) by A1, A28, A31;
A34: now :: thesis: for p being Real st 0 < p holds
ex k being Nat st
for m being Nat st k <= m holds
||.(((f /* s2) . m) - (f /. x0)).|| < p
let p be Real; :: thesis: ( 0 < p implies ex k being Nat st
for m being Nat st k <= m holds
||.(((f /* s2) . b5) - (f /. x0)).|| < b3 )

assume A35: 0 < p ; :: thesis: ex k being Nat st
for m being Nat st k <= m holds
||.(((f /* s2) . b5) - (f /. x0)).|| < b3

then consider n being Nat such that
A36: for m being Nat st n <= m holds
||.(((f /* (s2 * F)) . m) - (f /. x0)).|| < p by A33, NORMSP_1:def 7;
reconsider k = F . n as Nat ;
take k = k; :: thesis: for m being Nat st k <= m holds
||.(((f /* s2) . b4) - (f /. x0)).|| < b2

let m be Nat; :: thesis: ( k <= m implies ||.(((f /* s2) . b3) - (f /. x0)).|| < b1 )
assume A37: k <= m ; :: thesis: ||.(((f /* s2) . b3) - (f /. x0)).|| < b1
A38: m in NAT by ORDINAL1:def 12;
per cases ( s2 . m = x0 or s2 . m <> x0 ) ;
suppose s2 . m = x0 ; :: thesis: ||.(((f /* s2) . b3) - (f /. x0)).|| < b1
then ||.(((f /* s2) . m) - (f /. x0)).|| = ||.((f /. x0) - (f /. x0)).|| by A2, FUNCT_2:109, A38
.= 0 by NORMSP_1:6 ;
hence ||.(((f /* s2) . m) - (f /. x0)).|| < p by A35; :: thesis: verum
end;
suppose s2 . m <> x0 ; :: thesis: ||.(((f /* s2) . b3) - (f /. x0)).|| < b1
then consider l being Nat such that
A39: m = F . l by A20;
A40: l in NAT by ORDINAL1:def 12;
n <= l by A37, A39, SEQM_3:1;
then ||.(((f /* (s2 * F)) . l) - (f /. x0)).|| < p by A36;
then ||.((f /. ((s2 * F) . l)) - (f /. x0)).|| < p by A2, A32, FUNCT_2:109, XBOOLE_1:1, A40;
then ||.((f /. (s2 . m)) - (f /. x0)).|| < p by A39, FUNCT_2:15, A40;
hence ||.(((f /* s2) . m) - (f /. x0)).|| < p by A2, FUNCT_2:109, A38; :: thesis: verum
end;
end;
end;
hence f /* s2 is convergent by NORMSP_1:def 6; :: thesis: f /. x0 = lim (f /* s2)
hence f /. x0 = lim (f /* s2) by A34, NORMSP_1:def 7; :: thesis: verum
end;
end;