let Z be open Subset of REAL; :: thesis: for f being PartFunc of REAL,REAL st Z c= dom f & f | Z = id Z holds
( f is_differentiable_on Z & ( for x being Real st x in Z holds
(f `| Z) . x = 1 ) )

let f be PartFunc of REAL,REAL; :: thesis: ( Z c= dom f & f | Z = id Z implies ( f is_differentiable_on Z & ( for x being Real st x in Z holds
(f `| Z) . x = 1 ) ) )

reconsider j = 1 as Element of REAL by XREAL_0:def 1;
reconsider cf = REAL --> (In (0,REAL)) as Function of REAL,REAL ;
set R = cf;
now :: thesis: for h being non-zero 0 -convergent Real_Sequence holds
( (h ") (#) (cf /* h) is convergent & lim ((h ") (#) (cf /* h)) = 0 )
let h be non-zero 0 -convergent Real_Sequence; :: thesis: ( (h ") (#) (cf /* h) is convergent & lim ((h ") (#) (cf /* h)) = 0 )
A2: now :: thesis: for n being Nat holds ((h ") (#) (cf /* h)) . n = 0
let n be Nat; :: thesis: ((h ") (#) (cf /* h)) . n = 0
A3: rng h c= dom cf ;
A5: n in NAT by ORDINAL1:def 12;
thus ((h ") (#) (cf /* h)) . n = ((h ") . n) * ((cf /* h) . n) by SEQ_1:8
.= ((h ") . n) * (cf . (h . n)) by A5, A3, FUNCT_2:108
.= ((h ") . n) * 0
.= 0 ; :: thesis: verum
end;
then A6: (h ") (#) (cf /* h) is constant by VALUED_0:def 18;
hence (h ") (#) (cf /* h) is convergent ; :: thesis: lim ((h ") (#) (cf /* h)) = 0
((h ") (#) (cf /* h)) . 0 = 0 by A2;
hence lim ((h ") (#) (cf /* h)) = 0 by A6, SEQ_4:25; :: thesis: verum
end;
then reconsider R = cf as RestFunc by Def2;
reconsider L = id REAL as PartFunc of REAL,REAL ;
for p being Real holds L . p = 1 * p by XREAL_0:def 1, FUNCT_1:18;
then reconsider L = L as LinearFunc by Def3;
assume that
A7: Z c= dom f and
A8: f | Z = id Z ; :: thesis: ( f is_differentiable_on Z & ( for x being Real st x in Z holds
(f `| Z) . x = 1 ) )

A9: now :: thesis: for x being Real st x in Z holds
f . x = x
let x be Real; :: thesis: ( x in Z implies f . x = x )
assume A10: x in Z ; :: thesis: f . x = x
then (f | Z) . x = x by A8, FUNCT_1:18;
hence f . x = x by A10, FUNCT_1:49; :: thesis: verum
end;
A11: now :: thesis: for x0 being Real st x0 in Z holds
f is_differentiable_in x0
let x0 be Real; :: thesis: ( x0 in Z implies f is_differentiable_in x0 )
assume A12: x0 in Z ; :: thesis: f is_differentiable_in x0
then consider N being Neighbourhood of x0 such that
A13: N c= Z by RCOMP_1:18;
A14: for x being Real st x in N holds
(f . x) - (f . x0) = (L . (x - x0)) + (R . (x - x0))
proof
let x be Real; :: thesis: ( x in N implies (f . x) - (f . x0) = (L . (x - x0)) + (R . (x - x0)) )
reconsider xx = x, xx0 = x0 as Element of REAL by XREAL_0:def 1;
assume x in N ; :: thesis: (f . x) - (f . x0) = (L . (x - x0)) + (R . (x - x0))
hence (f . x) - (f . x0) = x - (f . x0) by A9, A13
.= x - x0 by A9, A12
.= (L . (xx - xx0)) + 0
.= (L . (x - x0)) + (R . (x - x0)) ;
:: thesis: verum
end;
N c= dom f by A7, A13;
hence f is_differentiable_in x0 by A14; :: thesis: verum
end;
hence A15: f is_differentiable_on Z by A7, Th9; :: thesis: for x being Real st x in Z holds
(f `| Z) . x = 1

let x0 be Real; :: thesis: ( x0 in Z implies (f `| Z) . x0 = 1 )
assume A16: x0 in Z ; :: thesis: (f `| Z) . x0 = 1
then consider N1 being Neighbourhood of x0 such that
A17: N1 c= Z by RCOMP_1:18;
A18: f is_differentiable_in x0 by A11, A16;
then ex N being Neighbourhood of x0 st
( N c= dom f & ex L being LinearFunc ex R being RestFunc st
for x being Real st x in N holds
(f . x) - (f . x0) = (L . (x - x0)) + (R . (x - x0)) ) ;
then consider N being Neighbourhood of x0 such that
A19: N c= dom f ;
consider N2 being Neighbourhood of x0 such that
A20: N2 c= N1 and
A21: N2 c= N by RCOMP_1:17;
A22: N2 c= dom f by A19, A21;
A23: for x being Real st x in N2 holds
(f . x) - (f . x0) = (L . (x - x0)) + (R . (x - x0))
proof
let x be Real; :: thesis: ( x in N2 implies (f . x) - (f . x0) = (L . (x - x0)) + (R . (x - x0)) )
reconsider xx = x, xx0 = x0 as Element of REAL by XREAL_0:def 1;
assume x in N2 ; :: thesis: (f . x) - (f . x0) = (L . (x - x0)) + (R . (x - x0))
then x in N1 by A20;
hence (f . x) - (f . x0) = x - (f . x0) by A9, A17
.= x - x0 by A9, A16
.= (L . (xx - xx0)) + 0
.= (L . (x - x0)) + (R . (x - x0)) ;
:: thesis: verum
end;
thus (f `| Z) . x0 = diff (f,x0) by A15, A16, Def7
.= L . j by A18, A22, A23, Def5
.= 1 ; :: thesis: verum