let f1, f2 be PartFunc of REAL , REAL ; :: thesis: for x0 being Real st f1 is_left_differentiable_in x0 & f2 is_left_differentiable_in x0 & ex r0 being Real st
( r0 > 0 & ( for g being Real st g in dom f2 & g in [.(x0 - r0),x0.] holds
f2 . g <> 0 ) ) holds
( f1 / f2 is_left_differentiable_in x0 & Ldiff (f1 / f2),x0 = (((Ldiff f1,x0) * (f2 . x0)) - ((Ldiff f2,x0) * (f1 . x0))) / ((f2 . x0) ^2 ) )
let x0 be Real; :: thesis: ( f1 is_left_differentiable_in x0 & f2 is_left_differentiable_in x0 & ex r0 being Real st
( r0 > 0 & ( for g being Real st g in dom f2 & g in [.(x0 - r0),x0.] holds
f2 . g <> 0 ) ) implies ( f1 / f2 is_left_differentiable_in x0 & Ldiff (f1 / f2),x0 = (((Ldiff f1,x0) * (f2 . x0)) - ((Ldiff f2,x0) * (f1 . x0))) / ((f2 . x0) ^2 ) ) )
assume A1:
( f1 is_left_differentiable_in x0 & f2 is_left_differentiable_in x0 )
; :: thesis: ( for r0 being Real holds
( not r0 > 0 or ex g being Real st
( g in dom f2 & g in [.(x0 - r0),x0.] & not f2 . g <> 0 ) ) or ( f1 / f2 is_left_differentiable_in x0 & Ldiff (f1 / f2),x0 = (((Ldiff f1,x0) * (f2 . x0)) - ((Ldiff f2,x0) * (f1 . x0))) / ((f2 . x0) ^2 ) ) )
given r0 being Real such that A2:
( r0 > 0 & ( for g being Real st g in dom f2 & g in [.(x0 - r0),x0.] holds
f2 . g <> 0 ) )
; :: thesis: ( f1 / f2 is_left_differentiable_in x0 & Ldiff (f1 / f2),x0 = (((Ldiff f1,x0) * (f2 . x0)) - ((Ldiff f2,x0) * (f1 . x0))) / ((f2 . x0) ^2 ) )
consider r1 being Real such that
A3:
( 0 < r1 & [.(x0 - r1),x0.] c= dom f1 )
by A1, Def4;
consider r2 being Real such that
A4:
( 0 < r2 & [.(x0 - r2),x0.] c= dom f2 )
by A1, Def4;
set r3 = min r0,r2;
A5:
0 < min r0,r2
by A2, A4, XXREAL_0:15;
then A6:
x0 - (min r0,r2) <= x0
by XREAL_1:45;
min r0,r2 <= r0
by XXREAL_0:17;
then A7:
x0 - r0 <= x0 - (min r0,r2)
by XREAL_1:15;
then
x0 - (min r0,r2) in { g where g is Real : ( x0 - r0 <= g & g <= x0 ) }
by A6;
then A8:
x0 - (min r0,r2) in [.(x0 - r0),x0.]
by RCOMP_1:def 1;
x0 - r0 <= x0
by A6, A7, XXREAL_0:2;
then A9:
x0 in [.(x0 - r0),x0.]
by XXREAL_1:1;
then A10:
[.(x0 - (min r0,r2)),x0.] c= [.(x0 - r0),x0.]
by A8, XXREAL_2:def 12;
min r0,r2 <= r2
by XXREAL_0:17;
then A11:
x0 - r2 <= x0 - (min r0,r2)
by XREAL_1:15;
then
x0 - (min r0,r2) in { g where g is Real : ( x0 - r2 <= g & g <= x0 ) }
by A6;
then A12:
x0 - (min r0,r2) in [.(x0 - r2),x0.]
by RCOMP_1:def 1;
x0 - r2 <= x0
by A6, A11, XXREAL_0:2;
then A13:
x0 in [.(x0 - r2),x0.]
by XXREAL_1:1;
then
[.(x0 - (min r0,r2)),x0.] c= [.(x0 - r2),x0.]
by A12, XXREAL_2:def 12;
then A14:
[.(x0 - (min r0,r2)),x0.] c= dom f2
by A4, XBOOLE_1:1;
set r = min r1,(min r0,r2);
A15:
0 < min r1,(min r0,r2)
by A3, A5, XXREAL_0:15;
then A16:
x0 - (min r1,(min r0,r2)) <= x0
by XREAL_1:45;
min r1,(min r0,r2) <= r1
by XXREAL_0:17;
then A17:
x0 - r1 <= x0 - (min r1,(min r0,r2))
by XREAL_1:15;
then
x0 - (min r1,(min r0,r2)) in { g where g is Real : ( x0 - r1 <= g & g <= x0 ) }
by A16;
then A18:
x0 - (min r1,(min r0,r2)) in [.(x0 - r1),x0.]
by RCOMP_1:def 1;
x0 - r1 <= x0
by A16, A17, XXREAL_0:2;
then
x0 in [.(x0 - r1),x0.]
by XXREAL_1:1;
then A19:
[.(x0 - (min r1,(min r0,r2))),x0.] c= [.(x0 - r1),x0.]
by A18, XXREAL_2:def 12;
min r1,(min r0,r2) <= min r0,r2
by XXREAL_0:17;
then A20:
x0 - (min r0,r2) <= x0 - (min r1,(min r0,r2))
by XREAL_1:15;
then
x0 - (min r1,(min r0,r2)) in { g where g is Real : ( x0 - (min r0,r2) <= g & g <= x0 ) }
by A16;
then A21:
x0 - (min r1,(min r0,r2)) in [.(x0 - (min r0,r2)),x0.]
by RCOMP_1:def 1;
x0 - (min r0,r2) <= x0
by A16, A20, XXREAL_0:2;
then
x0 in [.(x0 - (min r0,r2)),x0.]
by XXREAL_1:1;
then A22:
[.(x0 - (min r1,(min r0,r2))),x0.] c= [.(x0 - (min r0,r2)),x0.]
by A21, XXREAL_2:def 12;
A23:
[.(x0 - (min r1,(min r0,r2))),x0.] c= dom f1
by A3, A19, XBOOLE_1:1;
[.(x0 - (min r1,(min r0,r2))),x0.] c= dom (f2 ^ )
proof
assume
not
[.(x0 - (min r1,(min r0,r2))),x0.] c= dom (f2 ^ )
;
:: thesis: contradiction
then consider x being
set such that A24:
(
x in [.(x0 - (min r1,(min r0,r2))),x0.] & not
x in dom (f2 ^ ) )
by TARSKI:def 3;
reconsider x =
x as
Real by A24;
A25:
not
x in (dom f2) \ (f2 " {0 })
by A24, RFUNCT_1:def 8;
A26:
x in [.(x0 - (min r0,r2)),x0.]
by A22, A24;
hence
contradiction
;
:: thesis: verum
end;
then A27:
[.(x0 - (min r1,(min r0,r2))),x0.] c= (dom f2) \ (f2 " {0 })
by RFUNCT_1:def 8;
then
[.(x0 - (min r1,(min r0,r2))),x0.] c= (dom f1) /\ ((dom f2) \ (f2 " {0 }))
by A23, XBOOLE_1:19;
then A28:
[.(x0 - (min r1,(min r0,r2))),x0.] c= dom (f1 / f2)
by RFUNCT_1:def 4;
for h being convergent_to_0 Real_Sequence
for c being V6 Real_Sequence st rng c = {x0} & rng (h + c) c= dom (f1 / f2) & ( for n being Element of NAT holds h . n < 0 ) holds
( (h " ) (#) (((f1 / f2) /* (h + c)) - ((f1 / f2) /* c)) is convergent & lim ((h " ) (#) (((f1 / f2) /* (h + c)) - ((f1 / f2) /* c))) = (((Ldiff f1,x0) * (f2 . x0)) - ((Ldiff f2,x0) * (f1 . x0))) / ((f2 . x0) ^2 ) )
proof
let h be
convergent_to_0 Real_Sequence;
:: thesis: for c being V6 Real_Sequence st rng c = {x0} & rng (h + c) c= dom (f1 / f2) & ( for n being Element of NAT holds h . n < 0 ) holds
( (h " ) (#) (((f1 / f2) /* (h + c)) - ((f1 / f2) /* c)) is convergent & lim ((h " ) (#) (((f1 / f2) /* (h + c)) - ((f1 / f2) /* c))) = (((Ldiff f1,x0) * (f2 . x0)) - ((Ldiff f2,x0) * (f1 . x0))) / ((f2 . x0) ^2 ) )let c be
V6 Real_Sequence;
:: thesis: ( rng c = {x0} & rng (h + c) c= dom (f1 / f2) & ( for n being Element of NAT holds h . n < 0 ) implies ( (h " ) (#) (((f1 / f2) /* (h + c)) - ((f1 / f2) /* c)) is convergent & lim ((h " ) (#) (((f1 / f2) /* (h + c)) - ((f1 / f2) /* c))) = (((Ldiff f1,x0) * (f2 . x0)) - ((Ldiff f2,x0) * (f1 . x0))) / ((f2 . x0) ^2 ) ) )
assume that A29:
rng c = {x0}
and A30:
rng (h + c) c= dom (f1 / f2)
and A31:
for
n being
Element of
NAT holds
h . n < 0
;
:: thesis: ( (h " ) (#) (((f1 / f2) /* (h + c)) - ((f1 / f2) /* c)) is convergent & lim ((h " ) (#) (((f1 / f2) /* (h + c)) - ((f1 / f2) /* c))) = (((Ldiff f1,x0) * (f2 . x0)) - ((Ldiff f2,x0) * (f1 . x0))) / ((f2 . x0) ^2 ) )
A32:
rng (h + c) c= (dom f1) /\ ((dom f2) \ (f2 " {0 }))
by A30, RFUNCT_1:def 4;
(
(dom f1) /\ ((dom f2) \ (f2 " {0 })) c= dom f1 &
(dom f1) /\ ((dom f2) \ (f2 " {0 })) c= (dom f2) \ (f2 " {0 }) )
by XBOOLE_1:17;
then A33:
(
rng (h + c) c= dom f1 &
rng (h + c) c= (dom f2) \ (f2 " {0 }) )
by A32, XBOOLE_1:1;
(dom f2) \ (f2 " {0 }) c= dom f2
by XBOOLE_1:36;
then A34:
rng (h + c) c= dom f2
by A33, XBOOLE_1:1;
Ldiff f1,
x0 = Ldiff f1,
x0
;
then A35:
(
(h " ) (#) ((f1 /* (h + c)) - (f1 /* c)) is
convergent &
lim ((h " ) (#) ((f1 /* (h + c)) - (f1 /* c))) = Ldiff f1,
x0 )
by A1, A29, A31, A33, Th9;
Ldiff f2,
x0 = Ldiff f2,
x0
;
then A36:
(
(h " ) (#) ((f2 /* (h + c)) - (f2 /* c)) is
convergent &
lim ((h " ) (#) ((f2 /* (h + c)) - (f2 /* c))) = Ldiff f2,
x0 )
by A1, A29, A31, A34, Th9;
A37:
rng (h + c) c= dom (f2 ^ )
by A33, RFUNCT_1:def 8;
then A38:
rng (h + c) c= (dom f1) /\ (dom (f2 ^ ))
by A33, XBOOLE_1:19;
A39:
f2 /* (h + c) is
non-zero
by A37, RFUNCT_2:26;
A40:
for
m being
Element of
NAT holds
c . m = x0
0 <= min r1,
(min r0,r2)
by A3, A5, XXREAL_0:15;
then
x0 - (min r1,(min r0,r2)) <= x0
by XREAL_1:45;
then A41:
x0 in [.(x0 - (min r1,(min r0,r2))),x0.]
by XXREAL_1:1;
then A42:
x0 in dom f1
by A23;
A43:
rng c c= dom f1
A44:
for
g being
real number st
0 < g holds
ex
n being
Element of
NAT st
for
m being
Element of
NAT st
n <= m holds
abs (((f1 /* c) . m) - (f1 . x0)) < g
A46:
(
h is
convergent &
lim h = 0 )
by FDIFF_1:def 1;
A47:
f1 /* c is
convergent
by A44, SEQ_2:def 6;
then A48:
lim (f1 /* c) = f1 . x0
by A44, SEQ_2:def 7;
A49:
(
(h " ) (#) ((f1 /* (h + c)) - (f1 /* c)) is
convergent &
(h " ) (#) ((f2 /* (h + c)) - (f2 /* c)) is
convergent )
by A1, A29, A31, A33, A34, Def4;
A50:
x0 in (dom f2) \ (f2 " {0 })
by A27, A41;
rng c c= (dom f2) \ (f2 " {0 })
then A51:
rng c c= dom (f2 ^ )
by RFUNCT_1:def 8;
then A52:
rng c c= (dom f1) /\ (dom (f2 ^ ))
by A43, XBOOLE_1:19;
A53:
f2 /* c is
non-zero
by A51, RFUNCT_2:26;
then A54:
(f2 /* (h + c)) (#) (f2 /* c) is
non-zero
by A39, SEQ_1:43;
dom (f2 ^ ) = (dom f2) \ (f2 " {0 })
by RFUNCT_1:def 8;
then A55:
dom (f2 ^ ) c= dom f2
by XBOOLE_1:36;
A56:
for
g being
real number st
0 < g holds
ex
n being
Element of
NAT st
for
m being
Element of
NAT st
n <= m holds
abs (((f2 /* c) . m) - (f2 . x0)) < g
then A58:
f2 /* c is
convergent
by SEQ_2:def 6;
then A59:
lim (f2 /* c) = f2 . x0
by A56, SEQ_2:def 7;
A60:
h (#) ((h " ) (#) ((f2 /* (h + c)) - (f2 /* c))) is
convergent
by A36, A46, SEQ_2:28;
A61:
h (#) ((h " ) (#) ((f2 /* (h + c)) - (f2 /* c))) = (f2 /* (h + c)) - (f2 /* c)
(f2 /* c) + ((f2 /* (h + c)) - (f2 /* c)) = f2 /* (h + c)
then A63:
f2 /* (h + c) is
convergent
by A58, A60, A61, SEQ_2:19;
lim (h (#) ((h " ) (#) ((f2 /* (h + c)) - (f2 /* c)))) =
(lim h) * (lim ((h " ) (#) ((f2 /* (h + c)) - (f2 /* c))))
by A46, A49, SEQ_2:29
.=
0
by A46
;
then A64:
0 = (lim (f2 /* (h + c))) - (f2 . x0)
by A58, A59, A61, A63, SEQ_2:26;
A65:
(f2 /* (h + c)) (#) (f2 /* c) is
convergent
by A58, A63, SEQ_2:28;
A66:
lim ((f2 /* (h + c)) (#) (f2 /* c)) = (f2 . x0) ^2
by A58, A59, A63, A64, SEQ_2:29;
A67:
lim ((f2 /* (h + c)) (#) (f2 /* c)) <> 0
A68:
(f1 /* c) (#) ((h " ) (#) ((f2 /* (h + c)) - (f2 /* c))) is
convergent
by A36, A47, SEQ_2:28;
A69:
((h " ) (#) ((f1 /* (h + c)) - (f1 /* c))) (#) (f2 /* c) is
convergent
by A35, A58, SEQ_2:28;
A70:
(h " ) (#) (((f1 / f2) /* (h + c)) - ((f1 / f2) /* c)) =
(h " ) (#) (((f1 (#) (f2 ^ )) /* (h + c)) - ((f1 / f2) /* c))
by RFUNCT_1:47
.=
(h " ) (#) (((f1 (#) (f2 ^ )) /* (h + c)) - ((f1 (#) (f2 ^ )) /* c))
by RFUNCT_1:47
.=
(h " ) (#) (((f1 /* (h + c)) (#) ((f2 ^ ) /* (h + c))) - ((f1 (#) (f2 ^ )) /* c))
by A38, RFUNCT_2:23
.=
(h " ) (#) (((f1 /* (h + c)) /" (f2 /* (h + c))) - ((f1 (#) (f2 ^ )) /* c))
by A37, RFUNCT_2:27
.=
(h " ) (#) (((f1 /* (h + c)) /" (f2 /* (h + c))) - ((f1 /* c) (#) ((f2 ^ ) /* c)))
by A52, RFUNCT_2:23
.=
(h " ) (#) (((f1 /* (h + c)) /" (f2 /* (h + c))) - ((f1 /* c) /" (f2 /* c)))
by A51, RFUNCT_2:27
.=
(h " ) (#) ((((f1 /* (h + c)) (#) (f2 /* c)) - ((f1 /* c) (#) (f2 /* (h + c)))) /" ((f2 /* (h + c)) (#) (f2 /* c)))
by A39, A53, SEQ_1:58
.=
((h " ) (#) (((f1 /* (h + c)) (#) (f2 /* c)) - ((f1 /* c) (#) (f2 /* (h + c))))) /" ((f2 /* (h + c)) (#) (f2 /* c))
by SEQ_1:49
;
A71:
(((h " ) (#) ((f1 /* (h + c)) - (f1 /* c))) (#) (f2 /* c)) - ((f1 /* c) (#) ((h " ) (#) ((f2 /* (h + c)) - (f2 /* c)))) is
convergent
by A68, A69, SEQ_2:25;
then A72:
(h " ) (#) (((f1 / f2) /* (h + c)) - ((f1 / f2) /* c)) = ((((h " ) (#) ((f1 /* (h + c)) - (f1 /* c))) (#) (f2 /* c)) - ((f1 /* c) (#) ((h " ) (#) ((f2 /* (h + c)) - (f2 /* c))))) /" ((f2 /* (h + c)) (#) (f2 /* c))
by A70, FUNCT_2:113;
then lim ((h " ) (#) (((f1 / f2) /* (h + c)) - ((f1 / f2) /* c))) =
(lim ((((h " ) (#) ((f1 /* (h + c)) - (f1 /* c))) (#) (f2 /* c)) - ((f1 /* c) (#) ((h " ) (#) ((f2 /* (h + c)) - (f2 /* c)))))) / (lim ((f2 /* (h + c)) (#) (f2 /* c)))
by A54, A65, A67, A71, SEQ_2:38
.=
((lim (((h " ) (#) ((f1 /* (h + c)) - (f1 /* c))) (#) (f2 /* c))) - (lim ((f1 /* c) (#) ((h " ) (#) ((f2 /* (h + c)) - (f2 /* c)))))) / (lim ((f2 /* (h + c)) (#) (f2 /* c)))
by A68, A69, SEQ_2:26
.=
(((lim ((h " ) (#) ((f1 /* (h + c)) - (f1 /* c)))) * (lim (f2 /* c))) - (lim ((f1 /* c) (#) ((h " ) (#) ((f2 /* (h + c)) - (f2 /* c)))))) / (lim ((f2 /* (h + c)) (#) (f2 /* c)))
by A49, A58, SEQ_2:29
.=
(((Ldiff f1,x0) * (f2 . x0)) - ((Ldiff f2,x0) * (f1 . x0))) / ((f2 . x0) ^2 )
by A35, A36, A47, A48, A59, A66, SEQ_2:29
;
hence
(
(h " ) (#) (((f1 / f2) /* (h + c)) - ((f1 / f2) /* c)) is
convergent &
lim ((h " ) (#) (((f1 / f2) /* (h + c)) - ((f1 / f2) /* c))) = (((Ldiff f1,x0) * (f2 . x0)) - ((Ldiff f2,x0) * (f1 . x0))) / ((f2 . x0) ^2 ) )
by A54, A65, A67, A71, A72, SEQ_2:37;
:: thesis: verum
end;
hence
( f1 / f2 is_left_differentiable_in x0 & Ldiff (f1 / f2),x0 = (((Ldiff f1,x0) * (f2 . x0)) - ((Ldiff f2,x0) * (f1 . x0))) / ((f2 . x0) ^2 ) )
by A15, A28, Th9; :: thesis: verum