let x0 be Real; :: thesis: for f1, f2, f being PartFunc of REAL,REAL st f1 is_convergent_in x0 & f2 is_convergent_in x0 & lim (f1,x0) = lim (f2,x0) & ( 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 ) ) & ex r being Real st
( 0 < r & ( for g being Real st g in (dom f) /\ (].(x0 - r),x0.[ \/ ].x0,(x0 + r).[) holds
( f1 . g <= f . g & f . g <= f2 . g ) ) & ( ( (dom f1) /\ (].(x0 - r),x0.[ \/ ].x0,(x0 + r).[) c= (dom f2) /\ (].(x0 - r),x0.[ \/ ].x0,(x0 + r).[) & (dom f) /\ (].(x0 - r),x0.[ \/ ].x0,(x0 + r).[) c= (dom f1) /\ (].(x0 - r),x0.[ \/ ].x0,(x0 + r).[) ) or ( (dom f2) /\ (].(x0 - r),x0.[ \/ ].x0,(x0 + r).[) c= (dom f1) /\ (].(x0 - r),x0.[ \/ ].x0,(x0 + r).[) & (dom f) /\ (].(x0 - r),x0.[ \/ ].x0,(x0 + r).[) c= (dom f2) /\ (].(x0 - r),x0.[ \/ ].x0,(x0 + r).[) ) ) ) holds
( f is_convergent_in x0 & lim (f,x0) = lim (f1,x0) )

let f1, f2, f be PartFunc of REAL,REAL; :: thesis: ( f1 is_convergent_in x0 & f2 is_convergent_in x0 & lim (f1,x0) = lim (f2,x0) & ( 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 ) ) & ex r being Real st
( 0 < r & ( for g being Real st g in (dom f) /\ (].(x0 - r),x0.[ \/ ].x0,(x0 + r).[) holds
( f1 . g <= f . g & f . g <= f2 . g ) ) & ( ( (dom f1) /\ (].(x0 - r),x0.[ \/ ].x0,(x0 + r).[) c= (dom f2) /\ (].(x0 - r),x0.[ \/ ].x0,(x0 + r).[) & (dom f) /\ (].(x0 - r),x0.[ \/ ].x0,(x0 + r).[) c= (dom f1) /\ (].(x0 - r),x0.[ \/ ].x0,(x0 + r).[) ) or ( (dom f2) /\ (].(x0 - r),x0.[ \/ ].x0,(x0 + r).[) c= (dom f1) /\ (].(x0 - r),x0.[ \/ ].x0,(x0 + r).[) & (dom f) /\ (].(x0 - r),x0.[ \/ ].x0,(x0 + r).[) c= (dom f2) /\ (].(x0 - r),x0.[ \/ ].x0,(x0 + r).[) ) ) ) implies ( f is_convergent_in x0 & lim (f,x0) = lim (f1,x0) ) )

assume that
A1: f1 is_convergent_in x0 and
A2: f2 is_convergent_in x0 and
A3: lim (f1,x0) = lim (f2,x0) and
A4: 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 ) ; :: thesis: ( for r being Real holds
( not 0 < r or ex g being Real st
( g in (dom f) /\ (].(x0 - r),x0.[ \/ ].x0,(x0 + r).[) & not ( f1 . g <= f . g & f . g <= f2 . g ) ) or ( not ( (dom f1) /\ (].(x0 - r),x0.[ \/ ].x0,(x0 + r).[) c= (dom f2) /\ (].(x0 - r),x0.[ \/ ].x0,(x0 + r).[) & (dom f) /\ (].(x0 - r),x0.[ \/ ].x0,(x0 + r).[) c= (dom f1) /\ (].(x0 - r),x0.[ \/ ].x0,(x0 + r).[) ) & not ( (dom f2) /\ (].(x0 - r),x0.[ \/ ].x0,(x0 + r).[) c= (dom f1) /\ (].(x0 - r),x0.[ \/ ].x0,(x0 + r).[) & (dom f) /\ (].(x0 - r),x0.[ \/ ].x0,(x0 + r).[) c= (dom f2) /\ (].(x0 - r),x0.[ \/ ].x0,(x0 + r).[) ) ) ) or ( f is_convergent_in x0 & lim (f,x0) = lim (f1,x0) ) )

given r1 being Real such that A5: 0 < r1 and
A6: for g being Real st g in (dom f) /\ (].(x0 - r1),x0.[ \/ ].x0,(x0 + r1).[) holds
( f1 . g <= f . g & f . g <= f2 . g ) and
A7: ( ( (dom f1) /\ (].(x0 - r1),x0.[ \/ ].x0,(x0 + r1).[) c= (dom f2) /\ (].(x0 - r1),x0.[ \/ ].x0,(x0 + r1).[) & (dom f) /\ (].(x0 - r1),x0.[ \/ ].x0,(x0 + r1).[) c= (dom f1) /\ (].(x0 - r1),x0.[ \/ ].x0,(x0 + r1).[) ) or ( (dom f2) /\ (].(x0 - r1),x0.[ \/ ].x0,(x0 + r1).[) c= (dom f1) /\ (].(x0 - r1),x0.[ \/ ].x0,(x0 + r1).[) & (dom f) /\ (].(x0 - r1),x0.[ \/ ].x0,(x0 + r1).[) c= (dom f2) /\ (].(x0 - r1),x0.[ \/ ].x0,(x0 + r1).[) ) ) ; :: thesis: ( f is_convergent_in x0 & lim (f,x0) = lim (f1,x0) )
now
per cases ( ( (dom f1) /\ (].(x0 - r1),x0.[ \/ ].x0,(x0 + r1).[) c= (dom f2) /\ (].(x0 - r1),x0.[ \/ ].x0,(x0 + r1).[) & (dom f) /\ (].(x0 - r1),x0.[ \/ ].x0,(x0 + r1).[) c= (dom f1) /\ (].(x0 - r1),x0.[ \/ ].x0,(x0 + r1).[) ) or ( (dom f2) /\ (].(x0 - r1),x0.[ \/ ].x0,(x0 + r1).[) c= (dom f1) /\ (].(x0 - r1),x0.[ \/ ].x0,(x0 + r1).[) & (dom f) /\ (].(x0 - r1),x0.[ \/ ].x0,(x0 + r1).[) c= (dom f2) /\ (].(x0 - r1),x0.[ \/ ].x0,(x0 + r1).[) ) ) by A7;
suppose A8: ( (dom f1) /\ (].(x0 - r1),x0.[ \/ ].x0,(x0 + r1).[) c= (dom f2) /\ (].(x0 - r1),x0.[ \/ ].x0,(x0 + r1).[) & (dom f) /\ (].(x0 - r1),x0.[ \/ ].x0,(x0 + r1).[) c= (dom f1) /\ (].(x0 - r1),x0.[ \/ ].x0,(x0 + r1).[) ) ; :: thesis: ( f is_convergent_in x0 & f is_convergent_in x0 & lim (f,x0) = lim (f1,x0) )
A9: now
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 (f1,x0) ) )
assume that
A10: s is convergent and
A11: lim s = x0 and
A12: rng s c= (dom f) \ {x0} ; :: thesis: ( f /* s is convergent & lim (f /* s) = lim (f1,x0) )
consider k being Element of NAT such that
A13: for n being Element of NAT st k <= n holds
( x0 - r1 < s . n & s . n < x0 + r1 ) by A5, A10, A11, Th7;
A14: rng (s ^\ k) c= rng s by VALUED_0:21;
then A15: rng (s ^\ k) c= (dom f) \ {x0} by A12, XBOOLE_1:1;
now
let x be set ; :: thesis: ( x in rng (s ^\ k) implies x in ].(x0 - r1),x0.[ \/ ].x0,(x0 + r1).[ )
assume A16: x in rng (s ^\ k) ; :: thesis: x in ].(x0 - r1),x0.[ \/ ].x0,(x0 + r1).[
then consider n being Element of NAT such that
A17: x = (s ^\ k) . n by FUNCT_2:113;
A18: k <= n + k by NAT_1:12;
then s . (n + k) < x0 + r1 by A13;
then A19: (s ^\ k) . n < x0 + r1 by NAT_1:def 3;
x0 - r1 < s . (n + k) by A13, A18;
then x0 - r1 < (s ^\ k) . n by NAT_1:def 3;
then (s ^\ k) . n in { g1 where g1 is Real : ( x0 - r1 < g1 & g1 < x0 + r1 ) } by A19;
then A20: (s ^\ k) . n in ].(x0 - r1),(x0 + r1).[ by RCOMP_1:def 2;
not (s ^\ k) . n in {x0} by A15, A16, A17, XBOOLE_0:def 5;
then x in ].(x0 - r1),(x0 + r1).[ \ {x0} by A17, A20, XBOOLE_0:def 5;
hence x in ].(x0 - r1),x0.[ \/ ].x0,(x0 + r1).[ by A5, Th4; :: thesis: verum
end;
then A21: rng (s ^\ k) c= ].(x0 - r1),x0.[ \/ ].x0,(x0 + r1).[ by TARSKI:def 3;
A22: rng s c= dom f by A12, XBOOLE_1:1;
then rng (s ^\ k) c= dom f by A14, XBOOLE_1:1;
then A23: rng (s ^\ k) c= (dom f) /\ (].(x0 - r1),x0.[ \/ ].x0,(x0 + r1).[) by A21, XBOOLE_1:19;
then A24: rng (s ^\ k) c= (dom f1) /\ (].(x0 - r1),x0.[ \/ ].x0,(x0 + r1).[) by A8, XBOOLE_1:1;
then A25: rng (s ^\ k) c= (dom f2) /\ (].(x0 - r1),x0.[ \/ ].x0,(x0 + r1).[) by A8, XBOOLE_1:1;
A26: lim (s ^\ k) = x0 by A10, A11, SEQ_4:20;
A27: (dom f2) /\ (].(x0 - r1),x0.[ \/ ].x0,(x0 + r1).[) c= dom f2 by XBOOLE_1:17;
then A28: rng (s ^\ k) c= dom f2 by A25, XBOOLE_1:1;
A29: rng (s ^\ k) c= (dom f2) \ {x0}
proof
let x be set ; :: according to TARSKI:def 3 :: thesis: ( not x in rng (s ^\ k) or x in (dom f2) \ {x0} )
assume A30: x in rng (s ^\ k) ; :: thesis: x in (dom f2) \ {x0}
then not x in {x0} by A15, XBOOLE_0:def 5;
hence x in (dom f2) \ {x0} by A28, A30, XBOOLE_0:def 5; :: thesis: verum
end;
then A31: lim (f2 /* (s ^\ k)) = lim (f2,x0) by A2, A10, A26, Def4;
A32: (dom f1) /\ (].(x0 - r1),x0.[ \/ ].x0,(x0 + r1).[) c= dom f1 by XBOOLE_1:17;
then A33: rng (s ^\ k) c= dom f1 by A24, XBOOLE_1:1;
A34: rng (s ^\ k) c= (dom f1) \ {x0}
proof
let x be set ; :: according to TARSKI:def 3 :: thesis: ( not x in rng (s ^\ k) or x in (dom f1) \ {x0} )
assume A35: x in rng (s ^\ k) ; :: thesis: x in (dom f1) \ {x0}
then not x in {x0} by A15, XBOOLE_0:def 5;
hence x in (dom f1) \ {x0} by A33, A35, XBOOLE_0:def 5; :: thesis: verum
end;
then A36: lim (f1 /* (s ^\ k)) = lim (f1,x0) by A1, A10, A26, Def4;
A37: now
let n be Element of NAT ; :: thesis: ( (f1 /* (s ^\ k)) . n <= (f /* (s ^\ k)) . n & (f /* (s ^\ k)) . n <= (f2 /* (s ^\ k)) . n )
A38: (s ^\ k) . n in rng (s ^\ k) by VALUED_0:28;
then f . ((s ^\ k) . n) <= f2 . ((s ^\ k) . n) by A6, A23;
then A39: (f /* (s ^\ k)) . n <= f2 . ((s ^\ k) . n) by A14, A22, FUNCT_2:108, XBOOLE_1:1;
f1 . ((s ^\ k) . n) <= f . ((s ^\ k) . n) by A6, A23, A38;
then f1 . ((s ^\ k) . n) <= (f /* (s ^\ k)) . n by A14, A22, FUNCT_2:108, XBOOLE_1:1;
hence ( (f1 /* (s ^\ k)) . n <= (f /* (s ^\ k)) . n & (f /* (s ^\ k)) . n <= (f2 /* (s ^\ k)) . n ) by A32, A27, A24, A25, A39, FUNCT_2:108, XBOOLE_1:1; :: thesis: verum
end;
A40: f2 /* (s ^\ k) is convergent by A2, A3, A10, A26, A29, Def4;
A41: f1 /* (s ^\ k) is convergent by A1, A3, A10, A26, A34, Def4;
then f /* (s ^\ k) is convergent by A3, A36, A40, A31, A37, SEQ_2:19;
then A42: (f /* s) ^\ k is convergent by A12, VALUED_0:27, XBOOLE_1:1;
hence f /* s is convergent by SEQ_4:21; :: thesis: lim (f /* s) = lim (f1,x0)
lim (f /* (s ^\ k)) = lim (f1,x0) by A3, A41, A36, A40, A31, A37, SEQ_2:20;
then lim ((f /* s) ^\ k) = lim (f1,x0) by A12, VALUED_0:27, XBOOLE_1:1;
hence lim (f /* s) = lim (f1,x0) by A42, SEQ_4:22; :: thesis: verum
end;
hence f is_convergent_in x0 by A4, Def1; :: thesis: ( f is_convergent_in x0 & lim (f,x0) = lim (f1,x0) )
hence ( f is_convergent_in x0 & lim (f,x0) = lim (f1,x0) ) by A9, Def4; :: thesis: verum
end;
suppose A43: ( (dom f2) /\ (].(x0 - r1),x0.[ \/ ].x0,(x0 + r1).[) c= (dom f1) /\ (].(x0 - r1),x0.[ \/ ].x0,(x0 + r1).[) & (dom f) /\ (].(x0 - r1),x0.[ \/ ].x0,(x0 + r1).[) c= (dom f2) /\ (].(x0 - r1),x0.[ \/ ].x0,(x0 + r1).[) ) ; :: thesis: ( f is_convergent_in x0 & f is_convergent_in x0 & lim (f,x0) = lim (f1,x0) )
A44: now
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 (f1,x0) ) )
assume that
A45: s is convergent and
A46: lim s = x0 and
A47: rng s c= (dom f) \ {x0} ; :: thesis: ( f /* s is convergent & lim (f /* s) = lim (f1,x0) )
consider k being Element of NAT such that
A48: for n being Element of NAT st k <= n holds
( x0 - r1 < s . n & s . n < x0 + r1 ) by A5, A45, A46, Th7;
A49: rng (s ^\ k) c= rng s by VALUED_0:21;
then A50: rng (s ^\ k) c= (dom f) \ {x0} by A47, XBOOLE_1:1;
now
let x be set ; :: thesis: ( x in rng (s ^\ k) implies x in ].(x0 - r1),x0.[ \/ ].x0,(x0 + r1).[ )
assume A51: x in rng (s ^\ k) ; :: thesis: x in ].(x0 - r1),x0.[ \/ ].x0,(x0 + r1).[
then consider n being Element of NAT such that
A52: x = (s ^\ k) . n by FUNCT_2:113;
A53: k <= n + k by NAT_1:12;
then s . (n + k) < x0 + r1 by A48;
then A54: (s ^\ k) . n < x0 + r1 by NAT_1:def 3;
x0 - r1 < s . (n + k) by A48, A53;
then x0 - r1 < (s ^\ k) . n by NAT_1:def 3;
then (s ^\ k) . n in { g1 where g1 is Real : ( x0 - r1 < g1 & g1 < x0 + r1 ) } by A54;
then A55: (s ^\ k) . n in ].(x0 - r1),(x0 + r1).[ by RCOMP_1:def 2;
not (s ^\ k) . n in {x0} by A50, A51, A52, XBOOLE_0:def 5;
then x in ].(x0 - r1),(x0 + r1).[ \ {x0} by A52, A55, XBOOLE_0:def 5;
hence x in ].(x0 - r1),x0.[ \/ ].x0,(x0 + r1).[ by A5, Th4; :: thesis: verum
end;
then A56: rng (s ^\ k) c= ].(x0 - r1),x0.[ \/ ].x0,(x0 + r1).[ by TARSKI:def 3;
A57: rng s c= dom f by A47, XBOOLE_1:1;
then rng (s ^\ k) c= dom f by A49, XBOOLE_1:1;
then A58: rng (s ^\ k) c= (dom f) /\ (].(x0 - r1),x0.[ \/ ].x0,(x0 + r1).[) by A56, XBOOLE_1:19;
then A59: rng (s ^\ k) c= (dom f2) /\ (].(x0 - r1),x0.[ \/ ].x0,(x0 + r1).[) by A43, XBOOLE_1:1;
then A60: rng (s ^\ k) c= (dom f1) /\ (].(x0 - r1),x0.[ \/ ].x0,(x0 + r1).[) by A43, XBOOLE_1:1;
A61: lim (s ^\ k) = x0 by A45, A46, SEQ_4:20;
A62: (dom f2) /\ (].(x0 - r1),x0.[ \/ ].x0,(x0 + r1).[) c= dom f2 by XBOOLE_1:17;
then A63: rng (s ^\ k) c= dom f2 by A59, XBOOLE_1:1;
A64: rng (s ^\ k) c= (dom f2) \ {x0}
proof
let x be set ; :: according to TARSKI:def 3 :: thesis: ( not x in rng (s ^\ k) or x in (dom f2) \ {x0} )
assume A65: x in rng (s ^\ k) ; :: thesis: x in (dom f2) \ {x0}
then not x in {x0} by A50, XBOOLE_0:def 5;
hence x in (dom f2) \ {x0} by A63, A65, XBOOLE_0:def 5; :: thesis: verum
end;
then A66: lim (f2 /* (s ^\ k)) = lim (f2,x0) by A2, A45, A61, Def4;
A67: (dom f1) /\ (].(x0 - r1),x0.[ \/ ].x0,(x0 + r1).[) c= dom f1 by XBOOLE_1:17;
then A68: rng (s ^\ k) c= dom f1 by A60, XBOOLE_1:1;
A69: rng (s ^\ k) c= (dom f1) \ {x0}
proof
let x be set ; :: according to TARSKI:def 3 :: thesis: ( not x in rng (s ^\ k) or x in (dom f1) \ {x0} )
assume A70: x in rng (s ^\ k) ; :: thesis: x in (dom f1) \ {x0}
then not x in {x0} by A50, XBOOLE_0:def 5;
hence x in (dom f1) \ {x0} by A68, A70, XBOOLE_0:def 5; :: thesis: verum
end;
then A71: lim (f1 /* (s ^\ k)) = lim (f1,x0) by A1, A45, A61, Def4;
A72: now
let n be Element of NAT ; :: thesis: ( (f1 /* (s ^\ k)) . n <= (f /* (s ^\ k)) . n & (f /* (s ^\ k)) . n <= (f2 /* (s ^\ k)) . n )
A73: (s ^\ k) . n in rng (s ^\ k) by VALUED_0:28;
then f . ((s ^\ k) . n) <= f2 . ((s ^\ k) . n) by A6, A58;
then A74: (f /* (s ^\ k)) . n <= f2 . ((s ^\ k) . n) by A49, A57, FUNCT_2:108, XBOOLE_1:1;
f1 . ((s ^\ k) . n) <= f . ((s ^\ k) . n) by A6, A58, A73;
then f1 . ((s ^\ k) . n) <= (f /* (s ^\ k)) . n by A49, A57, FUNCT_2:108, XBOOLE_1:1;
hence ( (f1 /* (s ^\ k)) . n <= (f /* (s ^\ k)) . n & (f /* (s ^\ k)) . n <= (f2 /* (s ^\ k)) . n ) by A67, A62, A59, A60, A74, FUNCT_2:108, XBOOLE_1:1; :: thesis: verum
end;
A75: f2 /* (s ^\ k) is convergent by A2, A3, A45, A61, A64, Def4;
A76: f1 /* (s ^\ k) is convergent by A1, A3, A45, A61, A69, Def4;
then f /* (s ^\ k) is convergent by A3, A71, A75, A66, A72, SEQ_2:19;
then A77: (f /* s) ^\ k is convergent by A47, VALUED_0:27, XBOOLE_1:1;
hence f /* s is convergent by SEQ_4:21; :: thesis: lim (f /* s) = lim (f1,x0)
lim (f /* (s ^\ k)) = lim (f1,x0) by A3, A76, A71, A75, A66, A72, SEQ_2:20;
then lim ((f /* s) ^\ k) = lim (f1,x0) by A47, VALUED_0:27, XBOOLE_1:1;
hence lim (f /* s) = lim (f1,x0) by A77, SEQ_4:22; :: thesis: verum
end;
hence f is_convergent_in x0 by A4, Def1; :: thesis: ( f is_convergent_in x0 & lim (f,x0) = lim (f1,x0) )
hence ( f is_convergent_in x0 & lim (f,x0) = lim (f1,x0) ) by A44, Def4; :: thesis: verum
end;
end;
end;
hence ( f is_convergent_in x0 & lim (f,x0) = lim (f1,x0) ) ; :: thesis: verum