let f, g be PartFunc of REAL,REAL; :: thesis: for x0 being Real st ex N being Neighbourhood of x0 st
( N c= dom f & N c= dom g & f is_differentiable_on N & g is_differentiable_on N & N \ {x0} c= dom (f / g) & N c= dom ((f `| N) / (g `| N)) & f . x0 = 0 & g . x0 = 0 & (f `| N) / (g `| N) is_convergent_in x0 ) holds
( f / g is_convergent_in x0 & ex N being Neighbourhood of x0 st lim ((f / g),x0) = lim (((f `| N) / (g `| N)),x0) )

let x0 be Real; :: thesis: ( ex N being Neighbourhood of x0 st
( N c= dom f & N c= dom g & f is_differentiable_on N & g is_differentiable_on N & N \ {x0} c= dom (f / g) & N c= dom ((f `| N) / (g `| N)) & f . x0 = 0 & g . x0 = 0 & (f `| N) / (g `| N) is_convergent_in x0 ) implies ( f / g is_convergent_in x0 & ex N being Neighbourhood of x0 st lim ((f / g),x0) = lim (((f `| N) / (g `| N)),x0) ) )

given N being Neighbourhood of x0 such that A1: N c= dom f and
A2: N c= dom g and
A3: f is_differentiable_on N and
A4: g is_differentiable_on N and
A5: N \ {x0} c= dom (f / g) and
A6: N c= dom ((f `| N) / (g `| N)) and
A7: ( f . x0 = 0 & g . x0 = 0 ) and
A8: (f `| N) / (g `| N) is_convergent_in x0 ; :: thesis: ( f / g is_convergent_in x0 & ex N being Neighbourhood of x0 st lim ((f / g),x0) = lim (((f `| N) / (g `| N)),x0) )
consider r being real number such that
A9: 0 < r and
A10: N = ].(x0 - r),(x0 + r).[ by RCOMP_1:def 6;
A11: r is Real by XREAL_0:def 1;
A12: for x being Real st x0 < x & x < x0 + r holds
ex c being Real st
( c in ].x0,x.[ & (f / g) . x = ((f `| N) / (g `| N)) . c )
proof
A13: x0 - r < x0 by A9, XREAL_1:44;
x0 + 0 < x0 + r by A9, XREAL_1:8;
then x0 in { g1 where g1 is Real : ( x0 - r < g1 & g1 < x0 + r ) } by A13;
then A14: x0 in ].(x0 - r),(x0 + r).[ by RCOMP_1:def 2;
A15: (dom (f `| N)) /\ ((dom (g `| N)) \ ((g `| N) " {0})) c= (dom (g `| N)) \ ((g `| N) " {0}) by XBOOLE_1:17;
A16: (dom f) /\ ((dom g) \ (g " {0})) c= (dom g) \ (g " {0}) by XBOOLE_1:17;
let x be Real; :: thesis: ( x0 < x & x < x0 + r implies ex c being Real st
( c in ].x0,x.[ & (f / g) . x = ((f `| N) / (g `| N)) . c ) )

assume that
A17: x0 < x and
A18: x < x0 + r ; :: thesis: ex c being Real st
( c in ].x0,x.[ & (f / g) . x = ((f `| N) / (g `| N)) . c )

set f1 = ((f . x) (#) g) - ((g . x) (#) f);
A19: ( dom ((f . x) (#) g) = dom g & dom ((g . x) (#) f) = dom f ) by VALUED_1:def 5;
then A20: dom (((f . x) (#) g) - ((g . x) (#) f)) = (dom f) /\ (dom g) by VALUED_1:12;
x0 - r < x by A17, A13, XXREAL_0:2;
then x in { g1 where g1 is Real : ( x0 - r < g1 & g1 < x0 + r ) } by A18;
then x in ].(x0 - r),(x0 + r).[ by RCOMP_1:def 2;
then A21: [.x0,x.] c= N by A10, A14, XXREAL_2:def 12;
then A22: ( [.x0,x.] c= dom f & [.x0,x.] c= dom g ) by A1, A2, XBOOLE_1:1;
then A23: [.x0,x.] c= dom (((f . x) (#) g) - ((g . x) (#) f)) by A20, XBOOLE_1:19;
g | N is continuous by A4, FDIFF_1:25;
then g | [.x0,x.] is continuous by A21, FCONT_1:16;
then A24: ((f . x) (#) g) | [.x0,x.] is continuous by A2, A21, FCONT_1:20, XBOOLE_1:1;
f | N is continuous by A3, FDIFF_1:25;
then f | [.x0,x.] is continuous by A21, FCONT_1:16;
then A25: ((g . x) (#) f) | [.x0,x.] is continuous by A1, A21, FCONT_1:20, XBOOLE_1:1;
[.x0,x.] c= dom (((f . x) (#) g) - ((g . x) (#) f)) by A22, A20, XBOOLE_1:19;
then A26: (((f . x) (#) g) - ((g . x) (#) f)) | [.x0,x.] is continuous by A19, A20, A25, A24, FCONT_1:18;
A27: ].x0,x.[ c= [.x0,x.] by XXREAL_1:25;
then A28: ].x0,x.[ c= N by A21, XBOOLE_1:1;
A29: x in [.x0,x.] by A17, XXREAL_1:1;
then x in dom (((f . x) (#) g) - ((g . x) (#) f)) by A23;
then A30: x in (dom ((f . x) (#) g)) /\ (dom ((g . x) (#) f)) by VALUED_1:12;
then A31: x in dom ((f . x) (#) g) by XBOOLE_0:def 4;
A32: x0 in [.x0,x.] by A17, XXREAL_1:1;
then x0 in dom (((f . x) (#) g) - ((g . x) (#) f)) by A23;
then A33: x0 in (dom ((f . x) (#) g)) /\ (dom ((g . x) (#) f)) by VALUED_1:12;
then A34: x0 in dom ((f . x) (#) g) by XBOOLE_0:def 4;
A35: x in dom ((g . x) (#) f) by A30, XBOOLE_0:def 4;
A36: (((f . x) (#) g) - ((g . x) (#) f)) . x = (((f . x) (#) g) . x) - (((g . x) (#) f) . x) by A23, A29, VALUED_1:13
.= ((f . x) * (g . x)) - (((g . x) (#) f) . x) by A31, VALUED_1:def 5
.= ((g . x) * (f . x)) - ((g . x) * (f . x)) by A35, VALUED_1:def 5
.= 0 ;
A37: x0 in dom ((g . x) (#) f) by A33, XBOOLE_0:def 4;
not x in {x0} by A17, TARSKI:def 1;
then A38: x in [.x0,x.] \ {x0} by A29, XBOOLE_0:def 5;
N c= dom ((f . x) (#) g) by A2, VALUED_1:def 5;
then A39: ].x0,x.[ c= dom ((f . x) (#) g) by A28, XBOOLE_1:1;
N c= dom ((g . x) (#) f) by A1, VALUED_1:def 5;
then A40: ].x0,x.[ c= dom ((g . x) (#) f) by A28, XBOOLE_1:1;
then ].x0,x.[ c= (dom ((f . x) (#) g)) /\ (dom ((g . x) (#) f)) by A39, XBOOLE_1:19;
then A41: ].x0,x.[ c= dom (((f . x) (#) g) - ((g . x) (#) f)) by VALUED_1:12;
f is_differentiable_on ].x0,x.[ by A3, A21, A27, FDIFF_1:26, XBOOLE_1:1;
then A42: (g . x) (#) f is_differentiable_on ].x0,x.[ by A40, FDIFF_1:20;
g is_differentiable_on ].x0,x.[ by A4, A21, A27, FDIFF_1:26, XBOOLE_1:1;
then A43: (f . x) (#) g is_differentiable_on ].x0,x.[ by A39, FDIFF_1:20;
(((f . x) (#) g) - ((g . x) (#) f)) . x0 = (((f . x) (#) g) . x0) - (((g . x) (#) f) . x0) by A23, A32, VALUED_1:13
.= ((f . x) * (g . x0)) - (((g . x) (#) f) . x0) by A34, VALUED_1:def 5
.= 0 - ((g . x) * 0) by A7, A37, VALUED_1:def 5
.= 0 ;
then consider t being Real such that
A44: t in ].x0,x.[ and
A45: diff ((((f . x) (#) g) - ((g . x) (#) f)),t) = 0 by A17, A26, A42, A41, A43, A23, A36, FDIFF_1:19, ROLLE:1;
A46: (g . x) (#) f is_differentiable_in t by A42, A44, FDIFF_1:9;
A47: f is_differentiable_in t by A3, A28, A44, FDIFF_1:9;
(f . x) (#) g is_differentiable_in t by A43, A44, FDIFF_1:9;
then 0 = (diff (((f . x) (#) g),t)) - (diff (((g . x) (#) f),t)) by A45, A46, FDIFF_1:14;
then A48: 0 = (diff (((f . x) (#) g),t)) - ((g . x) * (diff (f,t))) by A47, FDIFF_1:15;
take t ; :: thesis: ( t in ].x0,x.[ & (f / g) . x = ((f `| N) / (g `| N)) . t )
A49: t in [.x0,x.] by A27, A44;
[.x0,x.] \ {x0} c= N \ {x0} by A21, XBOOLE_1:33;
then A50: [.x0,x.] \ {x0} c= dom (f / g) by A5, XBOOLE_1:1;
then [.x0,x.] \ {x0} c= (dom f) /\ ((dom g) \ (g " {0})) by RFUNCT_1:def 1;
then [.x0,x.] \ {x0} c= (dom g) \ (g " {0}) by A16, XBOOLE_1:1;
then A51: ( x in dom g & not x in g " {0} ) by A38, XBOOLE_0:def 5;
A52: now end;
A53: [.x0,x.] c= dom ((f `| N) / (g `| N)) by A6, A21, XBOOLE_1:1;
then [.x0,x.] c= (dom (f `| N)) /\ ((dom (g `| N)) \ ((g `| N) " {0})) by RFUNCT_1:def 1;
then [.x0,x.] c= (dom (g `| N)) \ ((g `| N) " {0}) by A15, XBOOLE_1:1;
then A54: ( t in dom (g `| N) & not t in (g `| N) " {0} ) by A49, XBOOLE_0:def 5;
A55: now end;
g is_differentiable_in t by A4, A28, A44, FDIFF_1:9;
then 0 = ((f . x) * (diff (g,t))) - ((g . x) * (diff (f,t))) by A48, FDIFF_1:15;
then (f . x) / (g . x) = (diff (f,t)) / (diff (g,t)) by A52, A55, XCMPLX_1:94;
then (f . x) * ((g . x) ") = (diff (f,t)) / (diff (g,t)) by XCMPLX_0:def 9;
then (f . x) * ((g . x) ") = (diff (f,t)) * ((diff (g,t)) ") by XCMPLX_0:def 9;
then (f / g) . x = (diff (f,t)) * ((diff (g,t)) ") by A50, A38, RFUNCT_1:def 1;
then (f / g) . x = ((f `| N) . t) * ((diff (g,t)) ") by A3, A21, A49, FDIFF_1:def 7;
then (f / g) . x = ((f `| N) . t) * (((g `| N) . t) ") by A4, A21, A49, FDIFF_1:def 7;
hence ( t in ].x0,x.[ & (f / g) . x = ((f `| N) / (g `| N)) . t ) by A44, A53, A49, RFUNCT_1:def 1; :: thesis: verum
end;
A56: for a being Real_Sequence st a is convergent & lim a = x0 & rng a c= (dom (f / g)) /\ (right_open_halfline x0) holds
( (f / g) /* a is convergent & lim ((f / g) /* a) = lim (((f `| N) / (g `| N)),x0) )
proof
reconsider d = NAT --> x0 as Real_Sequence ;
let a be Real_Sequence; :: thesis: ( a is convergent & lim a = x0 & rng a c= (dom (f / g)) /\ (right_open_halfline x0) implies ( (f / g) /* a is convergent & lim ((f / g) /* a) = lim (((f `| N) / (g `| N)),x0) ) )
assume that
A57: a is convergent and
A58: lim a = x0 and
A59: rng a c= (dom (f / g)) /\ (right_open_halfline x0) ; :: thesis: ( (f / g) /* a is convergent & lim ((f / g) /* a) = lim (((f `| N) / (g `| N)),x0) )
consider k being Element of NAT such that
A60: for n being Element of NAT st k <= n holds
( x0 - r < a . n & a . n < x0 + r ) by A9, A11, A57, A58, LIMFUNC3:7;
set a1 = a ^\ k;
defpred S1[ Element of NAT , real number ] means ( $2 in ].x0,((a ^\ k) . $1).[ & (((f / g) /* a) ^\ k) . $1 = ((f `| N) / (g `| N)) . $2 );
A61: now
let n be Element of NAT ; :: thesis: ( x0 < (a ^\ k) . n & (a ^\ k) . n < x0 + r )
a . (n + k) in rng a by VALUED_0:28;
then a . (n + k) in right_open_halfline x0 by A59, XBOOLE_0:def 4;
then a . (n + k) in { g1 where g1 is Real : x0 < g1 } by XXREAL_1:230;
then ex g1 being Real st
( a . (n + k) = g1 & x0 < g1 ) ;
hence x0 < (a ^\ k) . n by NAT_1:def 3; :: thesis: (a ^\ k) . n < x0 + r
( (a ^\ k) . n = a . (n + k) & k <= n + k ) by NAT_1:12, NAT_1:def 3;
hence (a ^\ k) . n < x0 + r by A60; :: thesis: verum
end;
A62: for n being Element of NAT ex c being Real st S1[n,c]
proof
let n be Element of NAT ; :: thesis: ex c being Real st S1[n,c]
A63: rng (a ^\ k) c= rng a by VALUED_0:21;
( x0 < (a ^\ k) . n & (a ^\ k) . n < x0 + r ) by A61;
then consider c being Real such that
A64: c in ].x0,((a ^\ k) . n).[ and
A65: (f / g) . ((a ^\ k) . n) = ((f `| N) / (g `| N)) . c by A12;
take c ; :: thesis: S1[n,c]
A66: (dom (f / g)) /\ (right_open_halfline x0) c= dom (f / g) by XBOOLE_1:17;
then rng a c= dom (f / g) by A59, XBOOLE_1:1;
then ((f / g) /* (a ^\ k)) . n = ((f `| N) / (g `| N)) . c by A65, A63, FUNCT_2:108, XBOOLE_1:1;
hence S1[n,c] by A59, A64, A66, VALUED_0:27, XBOOLE_1:1; :: thesis: verum
end;
consider b being Real_Sequence such that
A67: for n being Element of NAT holds S1[n,b . n] from FUNCT_2:sch 3(A62);
A68: now
let n be Element of NAT ; :: thesis: ( d . n <= b . n & b . n <= (a ^\ k) . n )
b . n in ].x0,((a ^\ k) . n).[ by A67;
then b . n in { g1 where g1 is Real : ( x0 < g1 & g1 < (a ^\ k) . n ) } by RCOMP_1:def 2;
then ex g1 being Real st
( g1 = b . n & x0 < g1 & g1 < (a ^\ k) . n ) ;
hence ( d . n <= b . n & b . n <= (a ^\ k) . n ) by FUNCOP_1:7; :: thesis: verum
end;
A69: lim d = d . 0 by SEQ_4:26
.= x0 by FUNCOP_1:7 ;
lim (a ^\ k) = x0 by A57, A58, SEQ_4:20;
then A70: ( b is convergent & lim b = x0 ) by A57, A69, A68, SEQ_2:19, SEQ_2:20;
A71: x0 - r < x0 by A9, XREAL_1:44;
x0 < x0 + r by A9, XREAL_1:29;
then x0 in { g2 where g2 is Real : ( x0 - r < g2 & g2 < x0 + r ) } by A71;
then A72: x0 in ].(x0 - r),(x0 + r).[ by RCOMP_1:def 2;
A73: rng b c= (dom ((f `| N) / (g `| N))) \ {x0}
proof
let x be set ; :: according to TARSKI:def 3 :: thesis: ( not x in rng b or x in (dom ((f `| N) / (g `| N))) \ {x0} )
assume x in rng b ; :: thesis: x in (dom ((f `| N) / (g `| N))) \ {x0}
then consider n being Element of NAT such that
A74: x = b . n by FUNCT_2:113;
x0 < (a ^\ k) . n by A61;
then A75: x0 - r < (a ^\ k) . n by A71, XXREAL_0:2;
(a ^\ k) . n < x0 + r by A61;
then (a ^\ k) . n in { g3 where g3 is Real : ( x0 - r < g3 & g3 < x0 + r ) } by A75;
then (a ^\ k) . n in ].(x0 - r),(x0 + r).[ by RCOMP_1:def 2;
then ( ].x0,((a ^\ k) . n).[ c= [.x0,((a ^\ k) . n).] & [.x0,((a ^\ k) . n).] c= ].(x0 - r),(x0 + r).[ ) by A72, XXREAL_1:25, XXREAL_2:def 12;
then ].x0,((a ^\ k) . n).[ c= ].(x0 - r),(x0 + r).[ by XBOOLE_1:1;
then A76: ].x0,((a ^\ k) . n).[ c= dom ((f `| N) / (g `| N)) by A6, A10, XBOOLE_1:1;
A77: x in ].x0,((a ^\ k) . n).[ by A67, A74;
then x in { g1 where g1 is Real : ( x0 < g1 & g1 < (a ^\ k) . n ) } by RCOMP_1:def 2;
then ex g1 being Real st
( g1 = x & x0 < g1 & g1 < (a ^\ k) . n ) ;
then not x in {x0} by TARSKI:def 1;
hence x in (dom ((f `| N) / (g `| N))) \ {x0} by A77, A76, XBOOLE_0:def 5; :: thesis: verum
end;
A78: (dom ((f `| N) / (g `| N))) \ {x0} c= dom ((f `| N) / (g `| N)) by XBOOLE_1:36;
A79: now
take m = 0 ; :: thesis: for n being Element of NAT st m <= n holds
(((f / g) /* a) ^\ k) . n = (((f `| N) / (g `| N)) /* b) . n

let n be Element of NAT ; :: thesis: ( m <= n implies (((f / g) /* a) ^\ k) . n = (((f `| N) / (g `| N)) /* b) . n )
assume m <= n ; :: thesis: (((f / g) /* a) ^\ k) . n = (((f `| N) / (g `| N)) /* b) . n
(((f / g) /* a) ^\ k) . n = ((f `| N) / (g `| N)) . (b . n) by A67;
hence (((f / g) /* a) ^\ k) . n = (((f `| N) / (g `| N)) /* b) . n by A73, A78, FUNCT_2:108, XBOOLE_1:1; :: thesis: verum
end;
lim (((f `| N) / (g `| N)),x0) = lim (((f `| N) / (g `| N)),x0) ;
then A80: ((f `| N) / (g `| N)) /* b is convergent by A8, A70, A73, LIMFUNC3:def 4;
then A81: ((f / g) /* a) ^\ k is convergent by A79, SEQ_4:18;
lim (((f `| N) / (g `| N)) /* b) = lim (((f `| N) / (g `| N)),x0) by A8, A70, A73, LIMFUNC3:def 4;
then lim (((f / g) /* a) ^\ k) = lim (((f `| N) / (g `| N)),x0) by A80, A79, SEQ_4:19;
hence ( (f / g) /* a is convergent & lim ((f / g) /* a) = lim (((f `| N) / (g `| N)),x0) ) by A81, SEQ_4:21, SEQ_4:22; :: thesis: verum
end;
A82: 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 / g) & g2 < r2 & x0 < g2 & g2 in dom (f / g) ) by A5, Th4;
then for r1 being Real st x0 < r1 holds
ex t being Real st
( t < r1 & x0 < t & t in dom (f / g) ) by LIMFUNC3:8;
then A83: ( f / g is_right_convergent_in x0 & lim_right ((f / g),x0) = lim (((f `| N) / (g `| N)),x0) ) by A56, Th2;
A84: for x being Real st x0 - r < x & x < x0 holds
ex c being Real st
( c in ].x,x0.[ & (f / g) . x = ((f `| N) / (g `| N)) . c )
proof
A85: x0 + 0 < x0 + r by A9, XREAL_1:8;
x0 - r < x0 by A9, XREAL_1:44;
then x0 in { g1 where g1 is Real : ( x0 - r < g1 & g1 < x0 + r ) } by A85;
then A86: x0 in ].(x0 - r),(x0 + r).[ by RCOMP_1:def 2;
A87: (dom (f `| N)) /\ ((dom (g `| N)) \ ((g `| N) " {0})) c= (dom (g `| N)) \ ((g `| N) " {0}) by XBOOLE_1:17;
A88: (dom f) /\ ((dom g) \ (g " {0})) c= (dom g) \ (g " {0}) by XBOOLE_1:17;
let x be Real; :: thesis: ( x0 - r < x & x < x0 implies ex c being Real st
( c in ].x,x0.[ & (f / g) . x = ((f `| N) / (g `| N)) . c ) )

assume that
A89: x0 - r < x and
A90: x < x0 ; :: thesis: ex c being Real st
( c in ].x,x0.[ & (f / g) . x = ((f `| N) / (g `| N)) . c )

set f1 = ((f . x) (#) g) - ((g . x) (#) f);
A91: ( dom ((f . x) (#) g) = dom g & dom ((g . x) (#) f) = dom f ) by VALUED_1:def 5;
then A92: dom (((f . x) (#) g) - ((g . x) (#) f)) = (dom f) /\ (dom g) by VALUED_1:12;
x < x0 + r by A90, A85, XXREAL_0:2;
then x in { g1 where g1 is Real : ( x0 - r < g1 & g1 < x0 + r ) } by A89;
then x in ].(x0 - r),(x0 + r).[ by RCOMP_1:def 2;
then A93: [.x,x0.] c= N by A10, A86, XXREAL_2:def 12;
then A94: ( [.x,x0.] c= dom f & [.x,x0.] c= dom g ) by A1, A2, XBOOLE_1:1;
then A95: [.x,x0.] c= dom (((f . x) (#) g) - ((g . x) (#) f)) by A92, XBOOLE_1:19;
g | N is continuous by A4, FDIFF_1:25;
then g | [.x,x0.] is continuous by A93, FCONT_1:16;
then A96: ((f . x) (#) g) | [.x,x0.] is continuous by A2, A93, FCONT_1:20, XBOOLE_1:1;
f | N is continuous by A3, FDIFF_1:25;
then f | [.x,x0.] is continuous by A93, FCONT_1:16;
then A97: ((g . x) (#) f) | [.x,x0.] is continuous by A1, A93, FCONT_1:20, XBOOLE_1:1;
[.x,x0.] c= dom (((f . x) (#) g) - ((g . x) (#) f)) by A94, A92, XBOOLE_1:19;
then A98: (((f . x) (#) g) - ((g . x) (#) f)) | [.x,x0.] is continuous by A91, A92, A97, A96, FCONT_1:18;
A99: ].x,x0.[ c= [.x,x0.] by XXREAL_1:25;
then A100: ].x,x0.[ c= N by A93, XBOOLE_1:1;
A101: x in [.x,x0.] by A90, XXREAL_1:1;
then x in dom (((f . x) (#) g) - ((g . x) (#) f)) by A95;
then A102: x in (dom ((f . x) (#) g)) /\ (dom ((g . x) (#) f)) by VALUED_1:12;
then A103: x in dom ((f . x) (#) g) by XBOOLE_0:def 4;
A104: x0 in [.x,x0.] by A90, XXREAL_1:1;
then x0 in dom (((f . x) (#) g) - ((g . x) (#) f)) by A95;
then A105: x0 in (dom ((f . x) (#) g)) /\ (dom ((g . x) (#) f)) by VALUED_1:12;
then A106: x0 in dom ((f . x) (#) g) by XBOOLE_0:def 4;
A107: x in dom ((g . x) (#) f) by A102, XBOOLE_0:def 4;
A108: (((f . x) (#) g) - ((g . x) (#) f)) . x = (((f . x) (#) g) . x) - (((g . x) (#) f) . x) by A95, A101, VALUED_1:13
.= ((f . x) * (g . x)) - (((g . x) (#) f) . x) by A103, VALUED_1:def 5
.= ((g . x) * (f . x)) - ((g . x) * (f . x)) by A107, VALUED_1:def 5
.= 0 ;
A109: x0 in dom ((g . x) (#) f) by A105, XBOOLE_0:def 4;
not x in {x0} by A90, TARSKI:def 1;
then A110: x in [.x,x0.] \ {x0} by A101, XBOOLE_0:def 5;
N c= dom ((f . x) (#) g) by A2, VALUED_1:def 5;
then A111: ].x,x0.[ c= dom ((f . x) (#) g) by A100, XBOOLE_1:1;
N c= dom ((g . x) (#) f) by A1, VALUED_1:def 5;
then A112: ].x,x0.[ c= dom ((g . x) (#) f) by A100, XBOOLE_1:1;
then ].x,x0.[ c= (dom ((f . x) (#) g)) /\ (dom ((g . x) (#) f)) by A111, XBOOLE_1:19;
then A113: ].x,x0.[ c= dom (((f . x) (#) g) - ((g . x) (#) f)) by VALUED_1:12;
f is_differentiable_on ].x,x0.[ by A3, A93, A99, FDIFF_1:26, XBOOLE_1:1;
then A114: (g . x) (#) f is_differentiable_on ].x,x0.[ by A112, FDIFF_1:20;
g is_differentiable_on ].x,x0.[ by A4, A93, A99, FDIFF_1:26, XBOOLE_1:1;
then A115: (f . x) (#) g is_differentiable_on ].x,x0.[ by A111, FDIFF_1:20;
(((f . x) (#) g) - ((g . x) (#) f)) . x0 = (((f . x) (#) g) . x0) - (((g . x) (#) f) . x0) by A95, A104, VALUED_1:13
.= ((f . x) * (g . x0)) - (((g . x) (#) f) . x0) by A106, VALUED_1:def 5
.= 0 - ((g . x) * 0) by A7, A109, VALUED_1:def 5
.= 0 ;
then consider t being Real such that
A116: t in ].x,x0.[ and
A117: diff ((((f . x) (#) g) - ((g . x) (#) f)),t) = 0 by A90, A98, A114, A113, A115, A95, A108, FDIFF_1:19, ROLLE:1;
A118: (g . x) (#) f is_differentiable_in t by A114, A116, FDIFF_1:9;
A119: f is_differentiable_in t by A3, A100, A116, FDIFF_1:9;
(f . x) (#) g is_differentiable_in t by A115, A116, FDIFF_1:9;
then 0 = (diff (((f . x) (#) g),t)) - (diff (((g . x) (#) f),t)) by A117, A118, FDIFF_1:14;
then A120: 0 = (diff (((f . x) (#) g),t)) - ((g . x) * (diff (f,t))) by A119, FDIFF_1:15;
take t ; :: thesis: ( t in ].x,x0.[ & (f / g) . x = ((f `| N) / (g `| N)) . t )
A121: t in [.x,x0.] by A99, A116;
[.x,x0.] \ {x0} c= N \ {x0} by A93, XBOOLE_1:33;
then A122: [.x,x0.] \ {x0} c= dom (f / g) by A5, XBOOLE_1:1;
then [.x,x0.] \ {x0} c= (dom f) /\ ((dom g) \ (g " {0})) by RFUNCT_1:def 1;
then [.x,x0.] \ {x0} c= (dom g) \ (g " {0}) by A88, XBOOLE_1:1;
then A123: ( x in dom g & not x in g " {0} ) by A110, XBOOLE_0:def 5;
A124: now end;
A125: [.x,x0.] c= dom ((f `| N) / (g `| N)) by A6, A93, XBOOLE_1:1;
then [.x,x0.] c= (dom (f `| N)) /\ ((dom (g `| N)) \ ((g `| N) " {0})) by RFUNCT_1:def 1;
then [.x,x0.] c= (dom (g `| N)) \ ((g `| N) " {0}) by A87, XBOOLE_1:1;
then A126: ( t in dom (g `| N) & not t in (g `| N) " {0} ) by A121, XBOOLE_0:def 5;
A127: now end;
g is_differentiable_in t by A4, A100, A116, FDIFF_1:9;
then 0 = ((f . x) * (diff (g,t))) - ((g . x) * (diff (f,t))) by A120, FDIFF_1:15;
then (f . x) / (g . x) = (diff (f,t)) / (diff (g,t)) by A124, A127, XCMPLX_1:94;
then (f . x) * ((g . x) ") = (diff (f,t)) / (diff (g,t)) by XCMPLX_0:def 9;
then (f . x) * ((g . x) ") = (diff (f,t)) * ((diff (g,t)) ") by XCMPLX_0:def 9;
then (f / g) . x = (diff (f,t)) * ((diff (g,t)) ") by A122, A110, RFUNCT_1:def 1;
then (f / g) . x = ((f `| N) . t) * ((diff (g,t)) ") by A3, A93, A121, FDIFF_1:def 7;
then (f / g) . x = ((f `| N) . t) * (((g `| N) . t) ") by A4, A93, A121, FDIFF_1:def 7;
hence ( t in ].x,x0.[ & (f / g) . x = ((f `| N) / (g `| N)) . t ) by A116, A125, A121, RFUNCT_1:def 1; :: thesis: verum
end;
A128: for a being Real_Sequence st a is convergent & lim a = x0 & rng a c= (dom (f / g)) /\ (left_open_halfline x0) holds
( (f / g) /* a is convergent & lim ((f / g) /* a) = lim (((f `| N) / (g `| N)),x0) )
proof
reconsider d = NAT --> x0 as Real_Sequence ;
let a be Real_Sequence; :: thesis: ( a is convergent & lim a = x0 & rng a c= (dom (f / g)) /\ (left_open_halfline x0) implies ( (f / g) /* a is convergent & lim ((f / g) /* a) = lim (((f `| N) / (g `| N)),x0) ) )
assume that
A129: a is convergent and
A130: lim a = x0 and
A131: rng a c= (dom (f / g)) /\ (left_open_halfline x0) ; :: thesis: ( (f / g) /* a is convergent & lim ((f / g) /* a) = lim (((f `| N) / (g `| N)),x0) )
consider k being Element of NAT such that
A132: for n being Element of NAT st k <= n holds
( x0 - r < a . n & a . n < x0 + r ) by A9, A11, A129, A130, LIMFUNC3:7;
set a1 = a ^\ k;
defpred S1[ Element of NAT , real number ] means ( $2 in ].((a ^\ k) . $1),x0.[ & (((f / g) /* a) ^\ k) . $1 = ((f `| N) / (g `| N)) . $2 );
A133: now
let n be Element of NAT ; :: thesis: ( (a ^\ k) . n < x0 & x0 - r < (a ^\ k) . n )
a . (n + k) in rng a by VALUED_0:28;
then a . (n + k) in left_open_halfline x0 by A131, XBOOLE_0:def 4;
then a . (n + k) in { g1 where g1 is Real : g1 < x0 } by XXREAL_1:229;
then ex g1 being Real st
( a . (n + k) = g1 & g1 < x0 ) ;
hence (a ^\ k) . n < x0 by NAT_1:def 3; :: thesis: x0 - r < (a ^\ k) . n
( (a ^\ k) . n = a . (n + k) & k <= n + k ) by NAT_1:12, NAT_1:def 3;
hence x0 - r < (a ^\ k) . n by A132; :: thesis: verum
end;
A134: for n being Element of NAT ex c being Real st S1[n,c]
proof
let n be Element of NAT ; :: thesis: ex c being Real st S1[n,c]
A135: rng (a ^\ k) c= rng a by VALUED_0:21;
( x0 - r < (a ^\ k) . n & (a ^\ k) . n < x0 ) by A133;
then consider c being Real such that
A136: c in ].((a ^\ k) . n),x0.[ and
A137: (f / g) . ((a ^\ k) . n) = ((f `| N) / (g `| N)) . c by A84;
take c ; :: thesis: S1[n,c]
A138: (dom (f / g)) /\ (left_open_halfline x0) c= dom (f / g) by XBOOLE_1:17;
then rng a c= dom (f / g) by A131, XBOOLE_1:1;
then ((f / g) /* (a ^\ k)) . n = ((f `| N) / (g `| N)) . c by A137, A135, FUNCT_2:108, XBOOLE_1:1;
hence S1[n,c] by A131, A136, A138, VALUED_0:27, XBOOLE_1:1; :: thesis: verum
end;
consider b being Real_Sequence such that
A139: for n being Element of NAT holds S1[n,b . n] from FUNCT_2:sch 3(A134);
A140: now
let n be Element of NAT ; :: thesis: ( (a ^\ k) . n <= b . n & b . n <= d . n )
b . n in ].((a ^\ k) . n),x0.[ by A139;
then b . n in { g1 where g1 is Real : ( (a ^\ k) . n < g1 & g1 < x0 ) } by RCOMP_1:def 2;
then ex g1 being Real st
( g1 = b . n & (a ^\ k) . n < g1 & g1 < x0 ) ;
hence ( (a ^\ k) . n <= b . n & b . n <= d . n ) by FUNCOP_1:7; :: thesis: verum
end;
A141: lim d = d . 0 by SEQ_4:26
.= x0 by FUNCOP_1:7 ;
lim (a ^\ k) = x0 by A129, A130, SEQ_4:20;
then A142: ( b is convergent & lim b = x0 ) by A129, A141, A140, SEQ_2:19, SEQ_2:20;
A143: x0 < x0 + r by A9, XREAL_1:29;
x0 - r < x0 by A9, XREAL_1:44;
then x0 in { g2 where g2 is Real : ( x0 - r < g2 & g2 < x0 + r ) } by A143;
then A144: x0 in ].(x0 - r),(x0 + r).[ by RCOMP_1:def 2;
A145: rng b c= (dom ((f `| N) / (g `| N))) \ {x0}
proof
let x be set ; :: according to TARSKI:def 3 :: thesis: ( not x in rng b or x in (dom ((f `| N) / (g `| N))) \ {x0} )
assume x in rng b ; :: thesis: x in (dom ((f `| N) / (g `| N))) \ {x0}
then consider n being Element of NAT such that
A146: x = b . n by FUNCT_2:113;
(a ^\ k) . n < x0 by A133;
then A147: (a ^\ k) . n < x0 + r by A143, XXREAL_0:2;
x0 - r < (a ^\ k) . n by A133;
then (a ^\ k) . n in { g3 where g3 is Real : ( x0 - r < g3 & g3 < x0 + r ) } by A147;
then (a ^\ k) . n in ].(x0 - r),(x0 + r).[ by RCOMP_1:def 2;
then ( ].((a ^\ k) . n),x0.[ c= [.((a ^\ k) . n),x0.] & [.((a ^\ k) . n),x0.] c= ].(x0 - r),(x0 + r).[ ) by A144, XXREAL_1:25, XXREAL_2:def 12;
then ].((a ^\ k) . n),x0.[ c= ].(x0 - r),(x0 + r).[ by XBOOLE_1:1;
then A148: ].((a ^\ k) . n),x0.[ c= dom ((f `| N) / (g `| N)) by A6, A10, XBOOLE_1:1;
A149: x in ].((a ^\ k) . n),x0.[ by A139, A146;
then x in { g1 where g1 is Real : ( (a ^\ k) . n < g1 & g1 < x0 ) } by RCOMP_1:def 2;
then ex g1 being Real st
( g1 = x & (a ^\ k) . n < g1 & g1 < x0 ) ;
then not x in {x0} by TARSKI:def 1;
hence x in (dom ((f `| N) / (g `| N))) \ {x0} by A149, A148, XBOOLE_0:def 5; :: thesis: verum
end;
A150: (dom ((f `| N) / (g `| N))) \ {x0} c= dom ((f `| N) / (g `| N)) by XBOOLE_1:36;
A151: now
take m = 0 ; :: thesis: for n being Element of NAT st m <= n holds
(((f / g) /* a) ^\ k) . n = (((f `| N) / (g `| N)) /* b) . n

let n be Element of NAT ; :: thesis: ( m <= n implies (((f / g) /* a) ^\ k) . n = (((f `| N) / (g `| N)) /* b) . n )
assume m <= n ; :: thesis: (((f / g) /* a) ^\ k) . n = (((f `| N) / (g `| N)) /* b) . n
(((f / g) /* a) ^\ k) . n = ((f `| N) / (g `| N)) . (b . n) by A139;
hence (((f / g) /* a) ^\ k) . n = (((f `| N) / (g `| N)) /* b) . n by A145, A150, FUNCT_2:108, XBOOLE_1:1; :: thesis: verum
end;
lim (((f `| N) / (g `| N)),x0) = lim (((f `| N) / (g `| N)),x0) ;
then A152: ((f `| N) / (g `| N)) /* b is convergent by A8, A142, A145, LIMFUNC3:def 4;
then A153: ((f / g) /* a) ^\ k is convergent by A151, SEQ_4:18;
lim (((f `| N) / (g `| N)) /* b) = lim (((f `| N) / (g `| N)),x0) by A8, A142, A145, LIMFUNC3:def 4;
then lim (((f / g) /* a) ^\ k) = lim (((f `| N) / (g `| N)),x0) by A152, A151, SEQ_4:19;
hence ( (f / g) /* a is convergent & lim ((f / g) /* a) = lim (((f `| N) / (g `| N)),x0) ) by A153, SEQ_4:21, SEQ_4:22; :: thesis: verum
end;
for r1 being Real st r1 < x0 holds
ex t being Real st
( r1 < t & t < x0 & t in dom (f / g) ) by A82, LIMFUNC3:8;
then A154: ( f / g is_left_convergent_in x0 & lim_left ((f / g),x0) = lim (((f `| N) / (g `| N)),x0) ) by A128, Th3;
hence f / g is_convergent_in x0 by A83, LIMFUNC3:30; :: thesis: ex N being Neighbourhood of x0 st lim ((f / g),x0) = lim (((f `| N) / (g `| N)),x0)
take N ; :: thesis: lim ((f / g),x0) = lim (((f `| N) / (g `| N)),x0)
thus lim ((f / g),x0) = lim (((f `| N) / (g `| N)),x0) by A83, A154, LIMFUNC3:30; :: thesis: verum