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