let x0 be Real; for f1, f2 being PartFunc of REAL,REAL st ex N being Neighbourhood of x0 st N c= dom (f2 * f1) & f1 is_differentiable_in x0 & f2 is_differentiable_in f1 . x0 holds
( f2 * f1 is_differentiable_in x0 & diff ((f2 * f1),x0) = (diff (f2,(f1 . x0))) * (diff (f1,x0)) )
let f1, f2 be PartFunc of REAL,REAL; ( ex N being Neighbourhood of x0 st N c= dom (f2 * f1) & f1 is_differentiable_in x0 & f2 is_differentiable_in f1 . x0 implies ( f2 * f1 is_differentiable_in x0 & diff ((f2 * f1),x0) = (diff (f2,(f1 . x0))) * (diff (f1,x0)) ) )
given N being Neighbourhood of x0 such that A1:
N c= dom (f2 * f1)
; ( not f1 is_differentiable_in x0 or not f2 is_differentiable_in f1 . x0 or ( f2 * f1 is_differentiable_in x0 & diff ((f2 * f1),x0) = (diff (f2,(f1 . x0))) * (diff (f1,x0)) ) )
assume that
A2:
f1 is_differentiable_in x0
and
A3:
f2 is_differentiable_in f1 . x0
; ( f2 * f1 is_differentiable_in x0 & diff ((f2 * f1),x0) = (diff (f2,(f1 . x0))) * (diff (f1,x0)) )
for h being non-zero 0 -convergent Real_Sequence
for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom (f2 * f1) holds
( (h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c)) is convergent & lim ((h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c))) = (diff (f2,(f1 . x0))) * (diff (f1,x0)) )
proof
let h be
non-zero 0 -convergent Real_Sequence;
for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom (f2 * f1) holds
( (h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c)) is convergent & lim ((h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c))) = (diff (f2,(f1 . x0))) * (diff (f1,x0)) )let c be
constant Real_Sequence;
( rng c = {x0} & rng (h + c) c= dom (f2 * f1) implies ( (h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c)) is convergent & lim ((h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c))) = (diff (f2,(f1 . x0))) * (diff (f1,x0)) ) )
assume that A4:
rng c = {x0}
and A5:
rng (h + c) c= dom (f2 * f1)
;
( (h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c)) is convergent & lim ((h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c))) = (diff (f2,(f1 . x0))) * (diff (f1,x0)) )
A6:
rng (h + c) c= dom f1
by A5, Th9;
set a =
f1 /* c;
A8:
rng c c= dom (f2 * f1)
set d =
(f1 /* (h + c)) - (f1 /* c);
A10:
lim h = 0
;
lim c = c . 0
by SEQ_4:25;
then
lim c = x0
by A7;
then A11:
lim (h + c) =
0 + x0
by A10, SEQ_2:6
.=
x0
;
A12:
f1 is_continuous_in x0
by A2, FDIFF_1:24;
then A13:
f1 /* (h + c) is
convergent
by A6, A11, FCONT_1:def 1;
A14:
f1 . x0 = lim (f1 /* (h + c))
by A6, A11, A12, FCONT_1:def 1;
A15:
rng (f1 /* (h + c)) c= dom f2
by A5, Th9;
A16:
rng c c= dom f1
A18:
rng (f1 /* c) = {(f1 . x0)}
A22:
rng (f1 /* c) c= dom f2
A24:
now for n being Nat holds (f1 /* c) . n = (f1 /* c) . (n + 1)end;
then
f1 /* c is
constant
by VALUED_0:25;
then A26:
(f1 /* (h + c)) - (f1 /* c) is
convergent
by A13;
reconsider a =
f1 /* c as
constant Real_Sequence by A24, VALUED_0:25;
a . 0 in rng a
by VALUED_0:28;
then
a . 0 = f1 . x0
by A18, TARSKI:def 1;
then
lim a = f1 . x0
by SEQ_4:25;
then A27:
lim ((f1 /* (h + c)) - (f1 /* c)) =
(f1 . x0) - (f1 . x0)
by A13, A14, SEQ_2:12
.=
0
;
(
(h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c)) is
convergent &
lim ((h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c))) = (diff (f2,(f1 . x0))) * (diff (f1,x0)) )
proof
per cases
( ex k being Element of NAT st
for n being Element of NAT st k <= n holds
(f1 /* (h + c)) . n <> f1 . x0 or for k being Element of NAT ex n being Element of NAT st
( k <= n & (f1 /* (h + c)) . n = f1 . x0 ) )
;
suppose
ex
k being
Element of
NAT st
for
n being
Element of
NAT st
k <= n holds
(f1 /* (h + c)) . n <> f1 . x0
;
( (h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c)) is convergent & lim ((h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c))) = (diff (f2,(f1 . x0))) * (diff (f1,x0)) )then consider k being
Element of
NAT such that A28:
for
n being
Element of
NAT st
k <= n holds
(f1 /* (h + c)) . n <> f1 . x0
;
then A30:
((f1 /* (h + c)) - (f1 /* c)) ^\ k is
non-zero
by SEQ_1:5;
set c1 =
c ^\ k;
set h1 =
h ^\ k;
set a1 =
a ^\ k;
set s =
((h ^\ k) ") (#) ((f1 /* ((h ^\ k) + (c ^\ k))) - (f1 /* (c ^\ k)));
lim (((f1 /* (h + c)) - (f1 /* c)) ^\ k) = 0
by A26, A27, SEQ_4:20;
then reconsider d1 =
((f1 /* (h + c)) - (f1 /* c)) ^\ k as
non-zero 0 -convergent Real_Sequence by A26, A30, FDIFF_1:def 1;
set t =
(d1 ") (#) ((f2 /* (d1 + (a ^\ k))) - (f2 /* (a ^\ k)));
d1 + (a ^\ k) = (((f1 /* (h + c)) - (f1 /* c)) + a) ^\ k
by SEQM_3:15;
then A32:
d1 + (a ^\ k) = (f1 /* (h + c)) ^\ k
by A31, FUNCT_2:63;
rng ((f1 /* (h + c)) ^\ k) c= rng (f1 /* (h + c))
by VALUED_0:21;
then A33:
rng (d1 + (a ^\ k)) c= dom f2
by A15, A32;
A34:
rng (a ^\ k) = {(f1 . x0)}
by A18, VALUED_0:26;
then A35:
lim ((d1 ") (#) ((f2 /* (d1 + (a ^\ k))) - (f2 /* (a ^\ k)))) = diff (
f2,
(f1 . x0))
by A3, A33, Th12;
diff (
f2,
(f1 . x0))
= diff (
f2,
(f1 . x0))
;
then A36:
(d1 ") (#) ((f2 /* (d1 + (a ^\ k))) - (f2 /* (a ^\ k))) is
convergent
by A3, A34, A33, Th12;
rng ((h + c) ^\ k) c= rng (h + c)
by VALUED_0:21;
then
rng ((h + c) ^\ k) c= dom f1
by A6;
then A37:
rng ((h ^\ k) + (c ^\ k)) c= dom f1
by SEQM_3:15;
A38:
rng (c ^\ k) = {x0}
by A4, VALUED_0:26;
diff (
f1,
x0)
= diff (
f1,
x0)
;
then A39:
((h ^\ k) ") (#) ((f1 /* ((h ^\ k) + (c ^\ k))) - (f1 /* (c ^\ k))) is
convergent
by A2, A38, A37, Th12;
A40:
((d1 ") (#) ((f2 /* (d1 + (a ^\ k))) - (f2 /* (a ^\ k)))) (#) (((h ^\ k) ") (#) ((f1 /* ((h ^\ k) + (c ^\ k))) - (f1 /* (c ^\ k)))) =
((d1 ") (#) ((f2 /* (d1 + (a ^\ k))) - (f2 /* (a ^\ k)))) (#) (((f1 /* ((h + c) ^\ k)) - (f1 /* (c ^\ k))) (#) ((h ^\ k) "))
by SEQM_3:15
.=
((d1 ") (#) ((f2 /* (d1 + (a ^\ k))) - (f2 /* (a ^\ k)))) (#) ((((f1 /* (h + c)) ^\ k) - (f1 /* (c ^\ k))) (#) ((h ^\ k) "))
by A6, VALUED_0:27
.=
((d1 ") (#) ((f2 /* (d1 + (a ^\ k))) - (f2 /* (a ^\ k)))) (#) ((((f1 /* (h + c)) ^\ k) - ((f1 /* c) ^\ k)) (#) ((h ^\ k) "))
by A16, VALUED_0:27
.=
(((f2 /* (d1 + (a ^\ k))) - (f2 /* (a ^\ k))) /" d1) (#) (d1 (#) ((h ^\ k) "))
by SEQM_3:17
.=
((((f2 /* (d1 + (a ^\ k))) - (f2 /* (a ^\ k))) /" d1) (#) d1) (#) ((h ^\ k) ")
by SEQ_1:14
.=
((f2 /* (d1 + (a ^\ k))) - (f2 /* (a ^\ k))) (#) ((h ^\ k) ")
by SEQ_1:37
.=
(((f2 /* (f1 /* (h + c))) ^\ k) - (f2 /* (a ^\ k))) (#) ((h ^\ k) ")
by A15, A32, VALUED_0:27
.=
((((f2 * f1) /* (h + c)) ^\ k) - (f2 /* (a ^\ k))) (#) ((h ^\ k) ")
by A5, VALUED_0:31
.=
((((f2 * f1) /* (h + c)) ^\ k) - ((f2 /* a) ^\ k)) (#) ((h ^\ k) ")
by A22, VALUED_0:27
.=
((((f2 * f1) /* (h + c)) ^\ k) - (((f2 * f1) /* c) ^\ k)) (#) ((h ^\ k) ")
by A8, VALUED_0:31
.=
((((f2 * f1) /* (h + c)) - ((f2 * f1) /* c)) ^\ k) (#) ((h ^\ k) ")
by SEQM_3:17
.=
((((f2 * f1) /* (h + c)) - ((f2 * f1) /* c)) ^\ k) (#) ((h ") ^\ k)
by SEQM_3:18
.=
((h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c))) ^\ k
by SEQM_3:19
;
then A41:
((h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c))) ^\ k is
convergent
by A39, A36;
hence
(h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c)) is
convergent
by SEQ_4:21;
lim ((h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c))) = (diff (f2,(f1 . x0))) * (diff (f1,x0))
lim (((h ^\ k) ") (#) ((f1 /* ((h ^\ k) + (c ^\ k))) - (f1 /* (c ^\ k)))) = diff (
f1,
x0)
by A2, A38, A37, Th12;
then
lim (((h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c))) ^\ k) = (diff (f2,(f1 . x0))) * (diff (f1,x0))
by A40, A39, A36, A35, SEQ_2:15;
hence
lim ((h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c))) = (diff (f2,(f1 . x0))) * (diff (f1,x0))
by A41, SEQ_4:22;
verum end; suppose A42:
for
k being
Element of
NAT ex
n being
Element of
NAT st
(
k <= n &
(f1 /* (h + c)) . n = f1 . x0 )
;
( (h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c)) is convergent & lim ((h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c))) = (diff (f2,(f1 . x0))) * (diff (f1,x0)) )defpred S1[
object ]
means $1
= f1 . x0;
A43:
for
k being
Element of
NAT ex
n being
Element of
NAT st
(
k <= n &
S1[
(f1 /* (h + c)) . n] )
by A42;
consider I1 being
increasing sequence of
NAT such that A44:
for
n being
Nat holds
S1[
((f1 /* (h + c)) * I1) . n]
and
for
n being
Element of
NAT st ( for
r being
Real st
r = (f1 /* (h + c)) . n holds
S1[
r] ) holds
ex
m being
Element of
NAT st
n = I1 . m
from FDIFF_2:sch 1(A43);
h * I1 is
subsequence of
h
by VALUED_0:def 17;
then reconsider h1 =
h * I1 as
non-zero 0 -convergent Real_Sequence by Th6;
set c1 =
c * I1;
A45:
c * I1 is
subsequence of
c
by VALUED_0:def 17;
then A46:
c * I1 = c
by VALUED_0:26;
A47:
rng (c * I1) = {x0}
by A4, A45, VALUED_0:26;
reconsider c1 =
c * I1 as
constant Real_Sequence ;
(h + c) * I1 is
subsequence of
h + c
by VALUED_0:def 17;
then
rng ((h + c) * I1) c= rng (h + c)
by VALUED_0:21;
then
rng ((h + c) * I1) c= dom f1
by A6;
then A51:
rng (h1 + c1) c= dom f1
by RFUNCT_2:2;
then A52:
lim ((h1 ") (#) ((f1 /* (h1 + c1)) - (f1 /* c1))) = diff (
f1,
x0)
by A2, A47, Th12;
diff (
f1,
x0)
= diff (
f1,
x0)
;
then
(h1 ") (#) ((f1 /* (h1 + c1)) - (f1 /* c1)) is
convergent
by A2, A47, A51, Th12;
then A53:
diff (
f1,
x0)
= 0
by A52, A48, SEQ_2:def 7;
now ( (h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c)) is convergent & lim ((h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c))) = (diff (f2,(f1 . x0))) * (diff (f1,x0)) )per cases
( ex k being Element of NAT st
for n being Element of NAT st k <= n holds
(f1 /* (h + c)) . n = f1 . x0 or for k being Element of NAT ex n being Element of NAT st
( k <= n & (f1 /* (h + c)) . n <> f1 . x0 ) )
;
suppose
ex
k being
Element of
NAT st
for
n being
Element of
NAT st
k <= n holds
(f1 /* (h + c)) . n = f1 . x0
;
( (h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c)) is convergent & lim ((h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c))) = (diff (f2,(f1 . x0))) * (diff (f1,x0)) )then consider k being
Element of
NAT such that A54:
for
n being
Element of
NAT st
k <= n holds
(f1 /* (h + c)) . n = f1 . x0
;
A55:
now for g being Real st 0 < g holds
ex n being Nat st
for m being Nat st n <= m holds
|.((((h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c))) . m) - ((diff (f2,(f1 . x0))) * (diff (f1,x0)))).| < glet g be
Real;
( 0 < g implies ex n being Nat st
for m being Nat st n <= m holds
|.((((h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c))) . m) - ((diff (f2,(f1 . x0))) * (diff (f1,x0)))).| < g )assume A56:
0 < g
;
ex n being Nat st
for m being Nat st n <= m holds
|.((((h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c))) . m) - ((diff (f2,(f1 . x0))) * (diff (f1,x0)))).| < greconsider n =
k as
Nat ;
take n =
n;
for m being Nat st n <= m holds
|.((((h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c))) . m) - ((diff (f2,(f1 . x0))) * (diff (f1,x0)))).| < glet m be
Nat;
( n <= m implies |.((((h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c))) . m) - ((diff (f2,(f1 . x0))) * (diff (f1,x0)))).| < g )A57:
m in NAT
by ORDINAL1:def 12;
assume
n <= m
;
|.((((h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c))) . m) - ((diff (f2,(f1 . x0))) * (diff (f1,x0)))).| < gthen A58:
(f1 /* (h + c)) . m = f1 . x0
by A54, A57;
|.((((h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c))) . m) - ((diff (f2,(f1 . x0))) * (diff (f1,x0)))).| =
|.(((h ") . m) * ((((f2 * f1) /* (h + c)) - ((f2 * f1) /* c)) . m)).|
by A53, SEQ_1:8
.=
|.(((h ") . m) * ((((f2 * f1) /* (h + c)) . m) - (((f2 * f1) /* c) . m))).|
by RFUNCT_2:1
.=
|.(((h ") . m) * (((f2 /* (f1 /* (h + c))) . m) - (((f2 * f1) /* c) . m))).|
by A5, VALUED_0:31
.=
|.(((h ") . m) * ((f2 . ((f1 /* (h + c)) . m)) - (((f2 * f1) /* c) . m))).|
by A15, FUNCT_2:108, A57
.=
|.(((h ") . m) * ((f2 . (f1 . x0)) - ((f2 /* (f1 /* c)) . m))).|
by A8, A58, VALUED_0:31
.=
|.(((h ") . m) * ((f2 . (f1 . x0)) - (f2 . ((f1 /* c) . m)))).|
by A22, FUNCT_2:108, A57
.=
|.(((h ") . m) * ((f2 . (f1 . x0)) - (f2 . (f1 . (c . m))))).|
by A16, FUNCT_2:108, A57
.=
|.(((h ") . m) * ((f2 . (f1 . x0)) - (f2 . (f1 . x0)))).|
by A7, A57
.=
0
by ABSVALUE:2
;
hence
|.((((h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c))) . m) - ((diff (f2,(f1 . x0))) * (diff (f1,x0)))).| < g
by A56;
verum end; hence
(h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c)) is
convergent
by SEQ_2:def 6;
lim ((h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c))) = (diff (f2,(f1 . x0))) * (diff (f1,x0))hence
lim ((h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c))) = (diff (f2,(f1 . x0))) * (diff (f1,x0))
by A55, SEQ_2:def 7;
verum end; suppose A59:
for
k being
Element of
NAT ex
n being
Element of
NAT st
(
k <= n &
(f1 /* (h + c)) . n <> f1 . x0 )
;
( (h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c)) is convergent & lim ((h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c))) = (diff (f2,(f1 . x0))) * (diff (f1,x0)) )defpred S2[
object ]
means $1
<> f1 . x0;
A60:
for
k being
Element of
NAT ex
n being
Element of
NAT st
(
k <= n &
S2[
(f1 /* (h + c)) . n] )
by A59;
consider I2 being
increasing sequence of
NAT such that A61:
for
n being
Nat holds
S2[
((f1 /* (h + c)) * I2) . n]
and A62:
for
n being
Element of
NAT st ( for
r being
Real st
r = (f1 /* (h + c)) . n holds
S2[
r] ) holds
ex
m being
Element of
NAT st
n = I2 . m
from FDIFF_2:sch 1(A60);
then A65:
((f1 /* (h + c)) - (f1 /* c)) * I2 is
non-zero
by SEQ_1:5;
h * I2 is
subsequence of
h
by VALUED_0:def 17;
then reconsider h2 =
h * I2 as
non-zero 0 -convergent Real_Sequence by Th6;
set a1 =
a * I2;
set c2 =
c * I2;
reconsider c2 =
c * I2 as
constant Real_Sequence ;
set s =
(h2 ") (#) ((f1 /* (h2 + c2)) - (f1 /* c2));
A66:
((f1 /* (h + c)) - (f1 /* c)) * I2 is
subsequence of
(f1 /* (h + c)) - (f1 /* c)
by VALUED_0:def 17;
then A67:
((f1 /* (h + c)) - (f1 /* c)) * I2 is
convergent
by A26, SEQ_4:16;
lim (((f1 /* (h + c)) - (f1 /* c)) * I2) = 0
by A26, A27, A66, SEQ_4:17;
then reconsider d1 =
((f1 /* (h + c)) - (f1 /* c)) * I2 as
non-zero 0 -convergent Real_Sequence by A67, A65, FDIFF_1:def 1;
set t =
(d1 ") (#) ((f2 /* (d1 + (a * I2))) - (f2 /* (a * I2)));
a * I2 is
subsequence of
a
by VALUED_0:def 17;
then A68:
rng (a * I2) = {(f1 . x0)}
by A18, VALUED_0:26;
d1 + (a * I2) = (((f1 /* (h + c)) - (f1 /* c)) + a) * I2
by RFUNCT_2:2;
then A70:
d1 + (a * I2) = (f1 /* (h + c)) * I2
by A69, FUNCT_2:63;
A71:
((d1 ") (#) ((f2 /* (d1 + (a * I2))) - (f2 /* (a * I2)))) (#) ((h2 ") (#) ((f1 /* (h2 + c2)) - (f1 /* c2))) =
((d1 ") (#) ((f2 /* (d1 + (a * I2))) - (f2 /* (a * I2)))) (#) (((f1 /* ((h + c) * I2)) - (f1 /* c2)) (#) (h2 "))
by RFUNCT_2:2
.=
((d1 ") (#) ((f2 /* (d1 + (a * I2))) - (f2 /* (a * I2)))) (#) ((((f1 /* (h + c)) * I2) - (f1 /* c2)) (#) (h2 "))
by A6, FUNCT_2:110
.=
((d1 ") (#) ((f2 /* (d1 + (a * I2))) - (f2 /* (a * I2)))) (#) ((((f1 /* (h + c)) * I2) - ((f1 /* c) * I2)) (#) (h2 "))
by A16, FUNCT_2:110
.=
(((f2 /* (d1 + (a * I2))) - (f2 /* (a * I2))) /" d1) (#) (d1 (#) (h2 "))
by RFUNCT_2:2
.=
((((f2 /* (d1 + (a * I2))) - (f2 /* (a * I2))) /" d1) (#) d1) (#) (h2 ")
by SEQ_1:14
.=
((f2 /* (d1 + (a * I2))) - (f2 /* (a * I2))) (#) (h2 ")
by SEQ_1:37
.=
(((f2 /* (f1 /* (h + c))) * I2) - (f2 /* (a * I2))) (#) (h2 ")
by A15, A70, FUNCT_2:110
.=
((((f2 * f1) /* (h + c)) * I2) - (f2 /* (a * I2))) (#) (h2 ")
by A5, VALUED_0:31
.=
((((f2 * f1) /* (h + c)) * I2) - ((f2 /* a) * I2)) (#) (h2 ")
by A22, FUNCT_2:110
.=
((((f2 * f1) /* (h + c)) * I2) - (((f2 * f1) /* c) * I2)) (#) (h2 ")
by A8, VALUED_0:31
.=
((((f2 * f1) /* (h + c)) - ((f2 * f1) /* c)) * I2) (#) (h2 ")
by RFUNCT_2:2
.=
((((f2 * f1) /* (h + c)) - ((f2 * f1) /* c)) * I2) (#) ((h ") * I2)
by RFUNCT_2:5
.=
((h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c))) * I2
by RFUNCT_2:2
;
reconsider a1 =
a * I2 as
constant Real_Sequence ;
(f1 /* (h + c)) * I2 is
subsequence of
f1 /* (h + c)
by VALUED_0:def 17;
then
rng ((f1 /* (h + c)) * I2) c= rng (f1 /* (h + c))
by VALUED_0:21;
then A72:
rng (d1 + a1) c= dom f2
by A15, A70;
(h + c) * I2 is
subsequence of
h + c
by VALUED_0:def 17;
then
rng ((h + c) * I2) c= rng (h + c)
by VALUED_0:21;
then
rng ((h + c) * I2) c= dom f1
by A6;
then A73:
rng (h2 + c2) c= dom f1
by RFUNCT_2:2;
c2 is
subsequence of
c
by VALUED_0:def 17;
then A74:
rng c2 = {x0}
by A4, VALUED_0:26;
then A75:
lim ((h2 ") (#) ((f1 /* (h2 + c2)) - (f1 /* c2))) = diff (
f1,
x0)
by A2, A73, Th12;
diff (
f1,
x0)
= diff (
f1,
x0)
;
then A76:
(h2 ") (#) ((f1 /* (h2 + c2)) - (f1 /* c2)) is
convergent
by A2, A74, A73, Th12;
diff (
f2,
(f1 . x0))
= diff (
f2,
(f1 . x0))
;
then A77:
(d1 ") (#) ((f2 /* (d1 + (a * I2))) - (f2 /* (a * I2))) is
convergent
by A3, A68, A72, Th12;
then A78:
((h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c))) * I2 is
convergent
by A71, A76;
lim ((d1 ") (#) ((f2 /* (d1 + (a * I2))) - (f2 /* (a * I2)))) = diff (
f2,
(f1 . x0))
by A3, A68, A72, Th12;
then A79:
lim (((h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c))) * I2) = (diff (f2,(f1 . x0))) * (diff (f1,x0))
by A71, A76, A75, A77, SEQ_2:15;
A80:
now for g being Real st 0 < g holds
ex n being Nat st
for m being Nat st n <= m holds
|.((((h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c))) . m) - ((diff (f2,(f1 . x0))) * (diff (f1,x0)))).| < gset DF =
(diff (f2,(f1 . x0))) * (diff (f1,x0));
let g be
Real;
( 0 < g implies ex n being Nat st
for m being Nat st n <= m holds
|.((((h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c))) . m) - ((diff (f2,(f1 . x0))) * (diff (f1,x0)))).| < g )assume A81:
0 < g
;
ex n being Nat st
for m being Nat st n <= m holds
|.((((h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c))) . m) - ((diff (f2,(f1 . x0))) * (diff (f1,x0)))).| < gconsider k being
Nat such that A82:
for
m being
Nat st
k <= m holds
|.(((((h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c))) * I2) . m) - ((diff (f2,(f1 . x0))) * (diff (f1,x0)))).| < g
by A78, A79, A81, SEQ_2:def 7;
A83:
k in NAT
by ORDINAL1:def 12;
reconsider n =
I2 . k as
Nat ;
take n =
n;
for m being Nat st n <= m holds
|.((((h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c))) . m) - ((diff (f2,(f1 . x0))) * (diff (f1,x0)))).| < glet m be
Nat;
( n <= m implies |.((((h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c))) . m) - ((diff (f2,(f1 . x0))) * (diff (f1,x0)))).| < g )assume A84:
n <= m
;
|.((((h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c))) . m) - ((diff (f2,(f1 . x0))) * (diff (f1,x0)))).| < gA85:
m in NAT
by ORDINAL1:def 12;
now |.((((h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c))) . m) - ((diff (f2,(f1 . x0))) * (diff (f1,x0)))).| < gper cases
( (f1 /* (h + c)) . m = f1 . x0 or (f1 /* (h + c)) . m <> f1 . x0 )
;
suppose A86:
(f1 /* (h + c)) . m = f1 . x0
;
|.((((h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c))) . m) - ((diff (f2,(f1 . x0))) * (diff (f1,x0)))).| < g|.((((h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c))) . m) - ((diff (f2,(f1 . x0))) * (diff (f1,x0)))).| =
|.(((h ") . m) * ((((f2 * f1) /* (h + c)) - ((f2 * f1) /* c)) . m)).|
by A53, SEQ_1:8
.=
|.(((h ") . m) * ((((f2 * f1) /* (h + c)) . m) - (((f2 * f1) /* c) . m))).|
by RFUNCT_2:1
.=
|.(((h ") . m) * ((((f2 * f1) /* (h + c)) . m) - ((f2 /* (f1 /* c)) . m))).|
by A8, VALUED_0:31
.=
|.(((h ") . m) * ((((f2 * f1) /* (h + c)) . m) - (f2 . ((f1 /* c) . m)))).|
by A22, FUNCT_2:108, A85
.=
|.(((h ") . m) * ((((f2 * f1) /* (h + c)) . m) - (f2 . (f1 . (c . m))))).|
by A16, FUNCT_2:108, A85
.=
|.(((h ") . m) * ((((f2 * f1) /* (h + c)) . m) - (f2 . (f1 . x0)))).|
by A7, A85
.=
|.(((h ") . m) * (((f2 /* (f1 /* (h + c))) . m) - (f2 . (f1 . x0)))).|
by A5, VALUED_0:31
.=
|.(((h ") . m) * ((f2 . (f1 . x0)) - (f2 . (f1 . x0)))).|
by A15, A86, FUNCT_2:108, A85
.=
0
by ABSVALUE:2
;
hence
|.((((h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c))) . m) - ((diff (f2,(f1 . x0))) * (diff (f1,x0)))).| < g
by A81;
verum end; end; end; hence
|.((((h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c))) . m) - ((diff (f2,(f1 . x0))) * (diff (f1,x0)))).| < g
;
verum end; hence
(h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c)) is
convergent
by SEQ_2:def 6;
lim ((h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c))) = (diff (f2,(f1 . x0))) * (diff (f1,x0))hence
lim ((h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c))) = (diff (f2,(f1 . x0))) * (diff (f1,x0))
by A80, SEQ_2:def 7;
verum end; end; end; hence
(
(h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c)) is
convergent &
lim ((h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c))) = (diff (f2,(f1 . x0))) * (diff (f1,x0)) )
;
verum end; end;
end;
hence
(
(h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c)) is
convergent &
lim ((h ") (#) (((f2 * f1) /* (h + c)) - ((f2 * f1) /* c))) = (diff (f2,(f1 . x0))) * (diff (f1,x0)) )
;
verum
end;
hence
( f2 * f1 is_differentiable_in x0 & diff ((f2 * f1),x0) = (diff (f2,(f1 . x0))) * (diff (f1,x0)) )
by A1, Th12; verum