let x0 be Real; for f being PartFunc of REAL ,REAL st ex N being Neighbourhood of x0 st N c= dom f & ( for h being convergent_to_0 Real_Sequence
for c being V8() Real_Sequence st rng c = {x0} & rng (h + c) c= dom f holds
(h " ) (#) ((f /* (h + c)) - (f /* c)) is convergent ) holds
( f is_differentiable_in x0 & ( for h being convergent_to_0 Real_Sequence
for c being V8() Real_Sequence st rng c = {x0} & rng (h + c) c= dom f holds
diff f,x0 = lim ((h " ) (#) ((f /* (h + c)) - (f /* c))) ) )
let f be PartFunc of REAL ,REAL ; ( ex N being Neighbourhood of x0 st N c= dom f & ( for h being convergent_to_0 Real_Sequence
for c being V8() Real_Sequence st rng c = {x0} & rng (h + c) c= dom f holds
(h " ) (#) ((f /* (h + c)) - (f /* c)) is convergent ) implies ( f is_differentiable_in x0 & ( for h being convergent_to_0 Real_Sequence
for c being V8() Real_Sequence st rng c = {x0} & rng (h + c) c= dom f holds
diff f,x0 = lim ((h " ) (#) ((f /* (h + c)) - (f /* c))) ) ) )
deffunc H1( Real) -> Element of NAT = 0 ;
defpred S1[ set ] means $1 in REAL ;
given N being Neighbourhood of x0 such that A1:
N c= dom f
; ( ex h being convergent_to_0 Real_Sequence ex c being V8() Real_Sequence st
( rng c = {x0} & rng (h + c) c= dom f & not (h " ) (#) ((f /* (h + c)) - (f /* c)) is convergent ) or ( f is_differentiable_in x0 & ( for h being convergent_to_0 Real_Sequence
for c being V8() Real_Sequence st rng c = {x0} & rng (h + c) c= dom f holds
diff f,x0 = lim ((h " ) (#) ((f /* (h + c)) - (f /* c))) ) ) )
assume A2:
for h being convergent_to_0 Real_Sequence
for c being V8() Real_Sequence st rng c = {x0} & rng (h + c) c= dom f holds
(h " ) (#) ((f /* (h + c)) - (f /* c)) is convergent
; ( f is_differentiable_in x0 & ( for h being convergent_to_0 Real_Sequence
for c being V8() Real_Sequence st rng c = {x0} & rng (h + c) c= dom f holds
diff f,x0 = lim ((h " ) (#) ((f /* (h + c)) - (f /* c))) ) )
then A3:
for h being convergent_to_0 Real_Sequence
for c being V8() Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & {x0} c= dom f holds
(h " ) (#) ((f /* (h + c)) - (f /* c)) is convergent
;
consider r being real number such that
A4:
0 < r
and
A5:
N = ].(x0 - r),(x0 + r).[
by RCOMP_1:def 7;
consider h being convergent_to_0 Real_Sequence, c being V8() Real_Sequence such that
A6:
rng c = {x0}
and
A7:
rng (h + c) c= dom f
and
A8:
{x0} c= dom f
by A1, Th8;
set l = lim ((h " ) (#) ((f /* (h + c)) - (f /* c)));
deffunc H2( Real) -> Element of REAL = (lim ((h " ) (#) ((f /* (h + c)) - (f /* c)))) * $1;
consider L being PartFunc of REAL ,REAL such that
A9:
for g being Real holds
( g in dom L iff S1[g] )
and
A10:
for g being Real st g in dom L holds
L . g = H2(g)
from SEQ_1:sch 3();
A11:
dom L = REAL
by A9, FDIFF_1:1;
then A12:
for g being Real holds L . g = (lim ((h " ) (#) ((f /* (h + c)) - (f /* c)))) * g
by A10;
A13:
L is total
by A11, PARTFUN1:def 4;
deffunc H3( Real) -> Element of REAL = $1 + x0;
consider T being PartFunc of REAL ,REAL such that
A14:
for g being Real holds
( g in dom T iff S1[g] )
and
A15:
for g being Real st g in dom T holds
T . g = H3(g)
from SEQ_1:sch 3();
A16:
dom T = REAL
by A14, FDIFF_1:1;
deffunc H4( real number ) -> Element of REAL = ((f * T) . $1) - (f . x0);
consider T1 being PartFunc of REAL ,REAL such that
A17:
for g being Real holds
( g in dom T1 iff S1[g] )
and
A18:
for g being Real st g in dom T1 holds
T1 . g = H4(g)
from SEQ_1:sch 3();
deffunc H5( Real) -> Element of REAL = (T1 - L) . $1;
A19:
dom T1 = REAL
by A17, FDIFF_1:1;
then A20:
T1 is total
by PARTFUN1:def 4;
reconsider L = L as LINEAR by A13, A12, FDIFF_1:def 4;
defpred S2[ set ] means $1 in ].(- r),r.[;
consider R being PartFunc of REAL ,REAL such that
A21:
R is total
and
A22:
for g being Real st g in dom R holds
( ( S2[g] implies R . g = H5(g) ) & ( not S2[g] implies R . g = H1(g) ) )
from SCHEME1:sch 8();
A23:
dom R = REAL
by A21, PARTFUN1:def 4;
now let h1 be
convergent_to_0 Real_Sequence;
( (h1 " ) (#) (R /* h1) is convergent & lim ((h1 " ) (#) (R /* h1)) = 0 )A25:
lim h1 = 0
by FDIFF_1:def 1;
h1 is
convergent
by FDIFF_1:def 1;
then consider k being
Element of
NAT such that A26:
for
n being
Element of
NAT st
k <= n holds
abs ((h1 . n) - 0 ) < r
by A4, A25, SEQ_2:def 7;
set h2 =
h1 ^\ k;
A28:
rng ((h1 ^\ k) + c) c= dom f
set b =
((h1 ^\ k) " ) (#) (L /* (h1 ^\ k));
set a =
((h1 ^\ k) " ) (#) (T1 /* (h1 ^\ k));
A33:
((h1 " ) (#) (R /* h1)) ^\ k =
((h1 " ) ^\ k) (#) ((R /* h1) ^\ k)
by SEQM_3:42
.=
((h1 ^\ k) " ) (#) ((R /* h1) ^\ k)
by SEQM_3:41
.=
((h1 ^\ k) " ) (#) (R /* (h1 ^\ k))
by A21, VALUED_0:29
;
A34:
(((h1 ^\ k) " ) (#) (T1 /* (h1 ^\ k))) - (((h1 ^\ k) " ) (#) (L /* (h1 ^\ k))) =
((h1 ^\ k) " ) (#) ((T1 /* (h1 ^\ k)) - (L /* (h1 ^\ k)))
by SEQ_1:29
.=
((h1 ^\ k) " ) (#) ((T1 - L) /* (h1 ^\ k))
by A13, A20, RFUNCT_2:32
;
A37:
h1 ^\ k is
non-empty
by FDIFF_1:def 1;
then A41:
((h1 ^\ k) " ) (#) (L /* (h1 ^\ k)) is
constant
by VALUED_0:def 18;
then A43:
((h1 ^\ k) " ) (#) (T1 /* (h1 ^\ k)) = ((h1 ^\ k) " ) (#) ((f /* ((h1 ^\ k) + c)) - (f /* c))
by FUNCT_2:113;
then A44:
((h1 ^\ k) " ) (#) (T1 /* (h1 ^\ k)) is
convergent
by A2, A6, A28;
then
(((h1 ^\ k) " ) (#) (T1 /* (h1 ^\ k))) - (((h1 ^\ k) " ) (#) (L /* (h1 ^\ k))) is
convergent
by A41, SEQ_2:25;
then A45:
((h1 ^\ k) " ) (#) (R /* (h1 ^\ k)) is
convergent
by A35, FUNCT_2:113;
hence
(h1 " ) (#) (R /* h1) is
convergent
by A33, SEQ_4:35;
lim ((h1 " ) (#) (R /* h1)) = 0 A46:
lim ((h " ) (#) ((f /* (h + c)) - (f /* c))) = lim (((h1 ^\ k) " ) (#) (T1 /* (h1 ^\ k)))
by A3, A6, A7, A8, A28, A43, Th7;
lim (((h1 ^\ k) " ) (#) (L /* (h1 ^\ k))) =
(((h1 ^\ k) " ) (#) (L /* (h1 ^\ k))) . 0
by A41, SEQ_4:40
.=
lim ((h " ) (#) ((f /* (h + c)) - (f /* c)))
by A38
;
then lim ((((h1 ^\ k) " ) (#) (T1 /* (h1 ^\ k))) - (((h1 ^\ k) " ) (#) (L /* (h1 ^\ k)))) =
(lim ((h " ) (#) ((f /* (h + c)) - (f /* c)))) - (lim ((h " ) (#) ((f /* (h + c)) - (f /* c))))
by A44, A46, A41, SEQ_2:26
.=
0
;
then
lim (((h1 ^\ k) " ) (#) (R /* (h1 ^\ k))) = 0
by A35, FUNCT_2:113;
hence
lim ((h1 " ) (#) (R /* h1)) = 0
by A45, A33, SEQ_4:36;
verum end;
then reconsider R = R as REST by A21, FDIFF_1:def 3;
thus
f is_differentiable_in x0
for h being convergent_to_0 Real_Sequence
for c being V8() Real_Sequence st rng c = {x0} & rng (h + c) c= dom f holds
diff f,x0 = lim ((h " ) (#) ((f /* (h + c)) - (f /* c)))
then A51:
diff f,x0 = lim ((h " ) (#) ((f /* (h + c)) - (f /* c)))
by A47, FDIFF_1:def 6;
let h1 be convergent_to_0 Real_Sequence; for c being V8() Real_Sequence st rng c = {x0} & rng (h1 + c) c= dom f holds
diff f,x0 = lim ((h1 " ) (#) ((f /* (h1 + c)) - (f /* c)))
let c1 be V8() Real_Sequence; ( rng c1 = {x0} & rng (h1 + c1) c= dom f implies diff f,x0 = lim ((h1 " ) (#) ((f /* (h1 + c1)) - (f /* c1))) )
assume that
A52:
rng c1 = {x0}
and
A53:
rng (h1 + c1) c= dom f
; diff f,x0 = lim ((h1 " ) (#) ((f /* (h1 + c1)) - (f /* c1)))
c1 = c
by A6, A52, Th5;
hence
diff f,x0 = lim ((h1 " ) (#) ((f /* (h1 + c1)) - (f /* c1)))
by A3, A6, A7, A8, A51, A53, Th7; verum