let p be Real; :: thesis: for f being one-to-one PartFunc of REAL ,REAL st right_open_halfline p c= dom f & f is_differentiable_on right_open_halfline p & ( for x0 being Real st x0 in right_open_halfline p holds
0 < diff f,x0 or for x0 being Real st x0 in right_open_halfline p holds
diff f,x0 < 0 ) holds
( f | (right_open_halfline p) is one-to-one & (f | (right_open_halfline p)) " is_differentiable_on dom ((f | (right_open_halfline p)) " ) & ( for x0 being Real st x0 in dom ((f | (right_open_halfline p)) " ) holds
diff ((f | (right_open_halfline p)) " ),x0 = 1 / (diff f,(((f | (right_open_halfline p)) " ) . x0)) ) )

let f be one-to-one PartFunc of REAL ,REAL ; :: thesis: ( right_open_halfline p c= dom f & f is_differentiable_on right_open_halfline p & ( for x0 being Real st x0 in right_open_halfline p holds
0 < diff f,x0 or for x0 being Real st x0 in right_open_halfline p holds
diff f,x0 < 0 ) implies ( f | (right_open_halfline p) is one-to-one & (f | (right_open_halfline p)) " is_differentiable_on dom ((f | (right_open_halfline p)) " ) & ( for x0 being Real st x0 in dom ((f | (right_open_halfline p)) " ) holds
diff ((f | (right_open_halfline p)) " ),x0 = 1 / (diff f,(((f | (right_open_halfline p)) " ) . x0)) ) ) )

set l = right_open_halfline p;
assume that
A0: right_open_halfline p c= dom f and
A1: f is_differentiable_on right_open_halfline p and
A2: ( for x0 being Real st x0 in right_open_halfline p holds
0 < diff f,x0 or for x0 being Real st x0 in right_open_halfline p holds
diff f,x0 < 0 ) ; :: thesis: ( f | (right_open_halfline p) is one-to-one & (f | (right_open_halfline p)) " is_differentiable_on dom ((f | (right_open_halfline p)) " ) & ( for x0 being Real st x0 in dom ((f | (right_open_halfline p)) " ) holds
diff ((f | (right_open_halfline p)) " ),x0 = 1 / (diff f,(((f | (right_open_halfline p)) " ) . x0)) ) )

A3: rng (f | (right_open_halfline p)) is open by A1, A2, Th43, A0;
set f1 = f | (right_open_halfline p);
thus f | (right_open_halfline p) is one-to-one ; :: thesis: ( (f | (right_open_halfline p)) " is_differentiable_on dom ((f | (right_open_halfline p)) " ) & ( for x0 being Real st x0 in dom ((f | (right_open_halfline p)) " ) holds
diff ((f | (right_open_halfline p)) " ),x0 = 1 / (diff f,(((f | (right_open_halfline p)) " ) . x0)) ) )

A4: ( dom ((f | (right_open_halfline p)) " ) = rng (f | (right_open_halfline p)) & rng ((f | (right_open_halfline p)) " ) = dom (f | (right_open_halfline p)) ) by FUNCT_1:55;
A5: for y0 being Real st y0 in dom ((f | (right_open_halfline p)) " ) holds
( (f | (right_open_halfline p)) " is_differentiable_in y0 & diff ((f | (right_open_halfline p)) " ),y0 = 1 / (diff f,(((f | (right_open_halfline p)) " ) . y0)) )
proof
let y0 be Real; :: thesis: ( y0 in dom ((f | (right_open_halfline p)) " ) implies ( (f | (right_open_halfline p)) " is_differentiable_in y0 & diff ((f | (right_open_halfline p)) " ),y0 = 1 / (diff f,(((f | (right_open_halfline p)) " ) . y0)) ) )
assume A6: y0 in dom ((f | (right_open_halfline p)) " ) ; :: thesis: ( (f | (right_open_halfline p)) " is_differentiable_in y0 & diff ((f | (right_open_halfline p)) " ),y0 = 1 / (diff f,(((f | (right_open_halfline p)) " ) . y0)) )
then consider x0 being Real such that
A7: ( x0 in dom (f | (right_open_halfline p)) & y0 = (f | (right_open_halfline p)) . x0 ) by A4, PARTFUN1:26;
A8: ex N being Neighbourhood of y0 st N c= dom ((f | (right_open_halfline p)) " ) by A3, A4, A6, RCOMP_1:39;
for h being convergent_to_0 Real_Sequence
for c being V8() Real_Sequence st rng c = {y0} & rng (h + c) c= dom ((f | (right_open_halfline p)) " ) holds
( (h " ) (#) ((((f | (right_open_halfline p)) " ) /* (h + c)) - (((f | (right_open_halfline p)) " ) /* c)) is convergent & lim ((h " ) (#) ((((f | (right_open_halfline p)) " ) /* (h + c)) - (((f | (right_open_halfline p)) " ) /* c))) = 1 / (diff f,(((f | (right_open_halfline p)) " ) . y0)) )
proof
let h be convergent_to_0 Real_Sequence; :: thesis: for c being V8() Real_Sequence st rng c = {y0} & rng (h + c) c= dom ((f | (right_open_halfline p)) " ) holds
( (h " ) (#) ((((f | (right_open_halfline p)) " ) /* (h + c)) - (((f | (right_open_halfline p)) " ) /* c)) is convergent & lim ((h " ) (#) ((((f | (right_open_halfline p)) " ) /* (h + c)) - (((f | (right_open_halfline p)) " ) /* c))) = 1 / (diff f,(((f | (right_open_halfline p)) " ) . y0)) )

let c be V8() Real_Sequence; :: thesis: ( rng c = {y0} & rng (h + c) c= dom ((f | (right_open_halfline p)) " ) implies ( (h " ) (#) ((((f | (right_open_halfline p)) " ) /* (h + c)) - (((f | (right_open_halfline p)) " ) /* c)) is convergent & lim ((h " ) (#) ((((f | (right_open_halfline p)) " ) /* (h + c)) - (((f | (right_open_halfline p)) " ) /* c))) = 1 / (diff f,(((f | (right_open_halfline p)) " ) . y0)) ) )
assume A9: ( rng c = {y0} & rng (h + c) c= dom ((f | (right_open_halfline p)) " ) ) ; :: thesis: ( (h " ) (#) ((((f | (right_open_halfline p)) " ) /* (h + c)) - (((f | (right_open_halfline p)) " ) /* c)) is convergent & lim ((h " ) (#) ((((f | (right_open_halfline p)) " ) /* (h + c)) - (((f | (right_open_halfline p)) " ) /* c))) = 1 / (diff f,(((f | (right_open_halfline p)) " ) . y0)) )
reconsider a = NAT --> (((f | (right_open_halfline p)) " ) . y0) as Real_Sequence by FUNCOP_1:57;
reconsider a = a as V8() Real_Sequence ;
A10: rng a = {(((f | (right_open_halfline p)) " ) . y0)}
proof
thus rng a c= {(((f | (right_open_halfline p)) " ) . y0)} :: according to XBOOLE_0:def 10 :: thesis: {(((f | (right_open_halfline p)) " ) . y0)} c= rng a
proof
let x be set ; :: according to TARSKI:def 3 :: thesis: ( not x in rng a or x in {(((f | (right_open_halfline p)) " ) . y0)} )
assume x in rng a ; :: thesis: x in {(((f | (right_open_halfline p)) " ) . y0)}
then ex n being Element of NAT st x = a . n by FUNCT_2:190;
then x = ((f | (right_open_halfline p)) " ) . y0 by FUNCOP_1:13;
hence x in {(((f | (right_open_halfline p)) " ) . y0)} by TARSKI:def 1; :: thesis: verum
end;
let x be set ; :: according to TARSKI:def 3 :: thesis: ( not x in {(((f | (right_open_halfline p)) " ) . y0)} or x in rng a )
assume x in {(((f | (right_open_halfline p)) " ) . y0)} ; :: thesis: x in rng a
then x = ((f | (right_open_halfline p)) " ) . y0 by TARSKI:def 1;
then a . 0 = x by FUNCOP_1:13;
hence x in rng a by VALUED_0:28; :: thesis: verum
end;
A11: now
let n be Element of NAT ; :: thesis: c . n = (f | (right_open_halfline p)) . x0
c . n in rng c by VALUED_0:28;
hence c . n = (f | (right_open_halfline p)) . x0 by A7, A9, TARSKI:def 1; :: thesis: verum
end;
defpred S1[ Element of NAT , real number ] means for r1, r2 being real number st r1 = (h + c) . $1 & r2 = a . $1 holds
( r1 = f . (r2 + $2) & r2 + $2 in dom f & r2 + $2 in dom (f | (right_open_halfline p)) );
A12: for n being Element of NAT ex r being Real st S1[n,r]
proof
let n be Element of NAT ; :: thesis: ex r being Real st S1[n,r]
(h + c) . n in rng (h + c) by VALUED_0:28;
then consider g being Real such that
A13: ( g in dom (f | (right_open_halfline p)) & (h + c) . n = (f | (right_open_halfline p)) . g ) by A4, A9, PARTFUN1:26;
A14: a . n = ((f | (right_open_halfline p)) " ) . ((f | (right_open_halfline p)) . x0) by A7, FUNCOP_1:13
.= x0 by A7, FUNCT_1:56 ;
take r = g - x0; :: thesis: S1[n,r]
let r1, r2 be real number ; :: thesis: ( r1 = (h + c) . n & r2 = a . n implies ( r1 = f . (r2 + r) & r2 + r in dom f & r2 + r in dom (f | (right_open_halfline p)) ) )
assume A15: ( r1 = (h + c) . n & r2 = a . n ) ; :: thesis: ( r1 = f . (r2 + r) & r2 + r in dom f & r2 + r in dom (f | (right_open_halfline p)) )
hence r1 = f . (r2 + r) by A13, A14, FUNCT_1:70; :: thesis: ( r2 + r in dom f & r2 + r in dom (f | (right_open_halfline p)) )
g in (dom f) /\ (right_open_halfline p) by A13, RELAT_1:90;
hence ( r2 + r in dom f & r2 + r in dom (f | (right_open_halfline p)) ) by A13, A14, A15, XBOOLE_0:def 4; :: thesis: verum
end;
consider b being Real_Sequence such that
A16: for n being Element of NAT holds S1[n,b . n] from FUNCT_2:sch 3(A12);
A17: ( h is non-zero & h is convergent & lim h = 0 ) by FDIFF_1:def 1;
now
given n being Element of NAT such that A18: b . n = 0 ; :: thesis: contradiction
A19: (h + c) . n = (h . n) + (c . n) by SEQ_1:11
.= (h . n) + ((f | (right_open_halfline p)) . x0) by A11 ;
a . n = ((f | (right_open_halfline p)) " ) . ((f | (right_open_halfline p)) . x0) by A7, FUNCOP_1:13
.= x0 by A7, FUNCT_1:56 ;
then f . ((a . n) + (b . n)) = (f | (right_open_halfline p)) . x0 by A7, A18, FUNCT_1:70;
then (h . n) + ((f | (right_open_halfline p)) . x0) = (f | (right_open_halfline p)) . x0 by A16, A19;
hence contradiction by A17, SEQ_1:7; :: thesis: verum
end;
then A20: b is non-zero by SEQ_1:7;
A21: ( h + c is convergent & lim (h + c) = y0 ) by A9, Th4;
A22: ( f | (right_open_halfline p) is increasing or f | (right_open_halfline p) is decreasing ) by A1, A2, Th33, Th34, A0;
X: y0 in dom (((f | (right_open_halfline p)) " ) | (rng (f | (right_open_halfline p)))) by A4, A6, RELAT_1:98;
right_open_halfline p c= dom f by A1, FDIFF_1:def 7;
then ((f | (right_open_halfline p)) " ) | (f .: (right_open_halfline p)) is continuous by A22, FCONT_3:27;
then ((f | (right_open_halfline p)) " ) | (rng (f | (right_open_halfline p))) is continuous by RELAT_1:148;
then ((f | (right_open_halfline p)) " ) | (rng (f | (right_open_halfline p))) is_continuous_in y0 by X, FCONT_1:def 2;
then (f | (right_open_halfline p)) " is_continuous_in y0 by A4, RELAT_1:97;
then A23: ( ((f | (right_open_halfline p)) " ) /* (h + c) is convergent & ((f | (right_open_halfline p)) " ) . y0 = lim (((f | (right_open_halfline p)) " ) /* (h + c)) ) by A9, A21, FCONT_1:def 1;
A25: lim a = a . 0 by SEQ_4:41
.= ((f | (right_open_halfline p)) " ) . y0 by FUNCOP_1:13 ;
A26: (((f | (right_open_halfline p)) " ) /* (h + c)) - a is convergent by A23, SEQ_2:25;
A27: lim ((((f | (right_open_halfline p)) " ) /* (h + c)) - a) = (((f | (right_open_halfline p)) " ) . y0) - (((f | (right_open_halfline p)) " ) . y0) by A23, A25, SEQ_2:26
.= 0 ;
A28: rng (b + a) c= dom f
proof
let x be set ; :: according to TARSKI:def 3 :: thesis: ( not x in rng (b + a) or x in dom f )
assume x in rng (b + a) ; :: thesis: x in dom f
then consider n being Element of NAT such that
A29: x = (b + a) . n by FUNCT_2:190;
A30: ( (h + c) . n = (h + c) . n & a . n = a . n ) ;
x = (a . n) + (b . n) by A29, SEQ_1:11;
hence x in dom f by A16, A30; :: thesis: verum
end;
now
let n be Element of NAT ; :: thesis: ((((f | (right_open_halfline p)) " ) /* (h + c)) - a) . n = b . n
( (h + c) . n = (h + c) . n & a . n = a . n ) ;
then A31: (a . n) + (b . n) in dom (f | (right_open_halfline p)) by A16;
thus ((((f | (right_open_halfline p)) " ) /* (h + c)) - a) . n = ((((f | (right_open_halfline p)) " ) /* (h + c)) . n) - (a . n) by RFUNCT_2:6
.= (((f | (right_open_halfline p)) " ) . ((h + c) . n)) - (a . n) by A9, FUNCT_2:185
.= (((f | (right_open_halfline p)) " ) . (f . ((a . n) + (b . n)))) - (a . n) by A16
.= (((f | (right_open_halfline p)) " ) . ((f | (right_open_halfline p)) . ((a . n) + (b . n)))) - (a . n) by A31, FUNCT_1:70
.= ((a . n) + (b . n)) - (a . n) by A31, FUNCT_1:56
.= b . n ; :: thesis: verum
end;
then ( b is convergent & lim b = 0 ) by A26, A27, FUNCT_2:113;
then reconsider b = b as convergent_to_0 Real_Sequence by A20, FDIFF_1:def 1;
A32: rng a c= dom f
proof
let x be set ; :: according to TARSKI:def 3 :: thesis: ( not x in rng a or x in dom f )
assume x in rng a ; :: thesis: x in dom f
then x = ((f | (right_open_halfline p)) " ) . y0 by A10, TARSKI:def 1;
then x = x0 by A7, FUNCT_1:56;
then x in (dom f) /\ (right_open_halfline p) by A7, RELAT_1:90;
hence x in dom f by XBOOLE_0:def 4; :: thesis: verum
end;
now
let n be Element of NAT ; :: thesis: (f /* a) . n = c . n
c . n in rng c by VALUED_0:28;
then A33: c . n = y0 by A9, TARSKI:def 1;
A34: ((f | (right_open_halfline p)) " ) . y0 in rng ((f | (right_open_halfline p)) " ) by A6, FUNCT_1:def 5;
thus (f /* a) . n = f . (a . n) by A32, FUNCT_2:185
.= f . (((f | (right_open_halfline p)) " ) . y0) by FUNCOP_1:13
.= (f | (right_open_halfline p)) . (((f | (right_open_halfline p)) " ) . y0) by A4, A34, FUNCT_1:70
.= c . n by A4, A6, A33, FUNCT_1:57 ; :: thesis: verum
end;
then A35: f /* a = c by FUNCT_2:113;
now
let n be Element of NAT ; :: thesis: h . n = ((f /* (b + a)) - (f /* a)) . n
(h + c) . n = f . ((a . n) + (b . n)) by A16;
then (h . n) + (c . n) = f . ((a . n) + (b . n)) by SEQ_1:11;
hence h . n = (f . ((b . n) + (a . n))) - ((f /* a) . n) by A35
.= (f . ((b + a) . n)) - ((f /* a) . n) by SEQ_1:11
.= ((f /* (b + a)) . n) - ((f /* a) . n) by A28, FUNCT_2:185
.= ((f /* (b + a)) - (f /* a)) . n by RFUNCT_2:6 ;
:: thesis: verum
end;
then A36: h = (f /* (b + a)) - (f /* a) by FUNCT_2:113;
then A37: (f /* (b + a)) - (f /* a) is non-zero by FDIFF_1:def 1;
A38: rng c c= dom ((f | (right_open_halfline p)) " )
proof
let x be set ; :: according to TARSKI:def 3 :: thesis: ( not x in rng c or x in dom ((f | (right_open_halfline p)) " ) )
assume x in rng c ; :: thesis: x in dom ((f | (right_open_halfline p)) " )
hence x in dom ((f | (right_open_halfline p)) " ) by A6, A9, TARSKI:def 1; :: thesis: verum
end;
A39: b " is non-zero by A20, SEQ_1:41;
now
let n be Element of NAT ; :: thesis: ((h " ) (#) ((((f | (right_open_halfline p)) " ) /* (h + c)) - (((f | (right_open_halfline p)) " ) /* c))) . n = (((b " ) (#) ((f /* (b + a)) - (f /* a))) " ) . n
( (h + c) . n = (h + c) . n & a . n = a . n ) ;
then A40: (a . n) + (b . n) in dom (f | (right_open_halfline p)) by A16;
c . n in rng c by VALUED_0:28;
then A41: c . n = y0 by A9, TARSKI:def 1;
thus ((h " ) (#) ((((f | (right_open_halfline p)) " ) /* (h + c)) - (((f | (right_open_halfline p)) " ) /* c))) . n = ((h " ) . n) * (((((f | (right_open_halfline p)) " ) /* (h + c)) - (((f | (right_open_halfline p)) " ) /* c)) . n) by SEQ_1:12
.= ((h " ) . n) * (((((f | (right_open_halfline p)) " ) /* (h + c)) . n) - ((((f | (right_open_halfline p)) " ) /* c) . n)) by RFUNCT_2:6
.= ((h " ) . n) * ((((f | (right_open_halfline p)) " ) . ((h + c) . n)) - ((((f | (right_open_halfline p)) " ) /* c) . n)) by A9, FUNCT_2:185
.= ((h " ) . n) * ((((f | (right_open_halfline p)) " ) . (f . ((a . n) + (b . n)))) - ((((f | (right_open_halfline p)) " ) /* c) . n)) by A16
.= ((h " ) . n) * ((((f | (right_open_halfline p)) " ) . ((f | (right_open_halfline p)) . ((a . n) + (b . n)))) - ((((f | (right_open_halfline p)) " ) /* c) . n)) by A40, FUNCT_1:70
.= ((h " ) . n) * (((a . n) + (b . n)) - ((((f | (right_open_halfline p)) " ) /* c) . n)) by A40, FUNCT_1:56
.= ((h " ) . n) * (((a . n) + (b . n)) - (((f | (right_open_halfline p)) " ) . (c . n))) by A38, FUNCT_2:185
.= ((h " ) . n) * (((a . n) + (b . n)) - (a . n)) by A41, FUNCOP_1:13
.= ((h " ) (#) ((b " ) " )) . n by SEQ_1:12
.= (((b " ) (#) ((f /* (b + a)) - (f /* a))) " ) . n by A36, SEQ_1:44 ; :: thesis: verum
end;
then A42: (h " ) (#) ((((f | (right_open_halfline p)) " ) /* (h + c)) - (((f | (right_open_halfline p)) " ) /* c)) = ((b " ) (#) ((f /* (b + a)) - (f /* a))) " by FUNCT_2:113;
A43: (b " ) (#) ((f /* (b + a)) - (f /* a)) is non-zero by A37, A39, SEQ_1:43;
((f | (right_open_halfline p)) " ) . y0 in dom (f | (right_open_halfline p)) by A4, A6, FUNCT_1:def 5;
then ((f | (right_open_halfline p)) " ) . y0 in (dom f) /\ (right_open_halfline p) by RELAT_1:90;
then A44: ((f | (right_open_halfline p)) " ) . y0 in right_open_halfline p by XBOOLE_0:def 4;
then ( f is_differentiable_in ((f | (right_open_halfline p)) " ) . y0 & diff f,(((f | (right_open_halfline p)) " ) . y0) = diff f,(((f | (right_open_halfline p)) " ) . y0) ) by A1, FDIFF_1:16;
then A45: ( (b " ) (#) ((f /* (b + a)) - (f /* a)) is convergent & lim ((b " ) (#) ((f /* (b + a)) - (f /* a))) = diff f,(((f | (right_open_halfline p)) " ) . y0) ) by A10, A28, Th12;
A46: 0 <> diff f,(((f | (right_open_halfline p)) " ) . y0) by A2, A44;
hence (h " ) (#) ((((f | (right_open_halfline p)) " ) /* (h + c)) - (((f | (right_open_halfline p)) " ) /* c)) is convergent by A42, A43, A45, SEQ_2:35; :: thesis: lim ((h " ) (#) ((((f | (right_open_halfline p)) " ) /* (h + c)) - (((f | (right_open_halfline p)) " ) /* c))) = 1 / (diff f,(((f | (right_open_halfline p)) " ) . y0))
thus lim ((h " ) (#) ((((f | (right_open_halfline p)) " ) /* (h + c)) - (((f | (right_open_halfline p)) " ) /* c))) = (diff f,(((f | (right_open_halfline p)) " ) . y0)) " by A42, A43, A45, A46, SEQ_2:36
.= 1 / (diff f,(((f | (right_open_halfline p)) " ) . y0)) by XCMPLX_1:217 ; :: thesis: verum
end;
hence ( (f | (right_open_halfline p)) " is_differentiable_in y0 & diff ((f | (right_open_halfline p)) " ),y0 = 1 / (diff f,(((f | (right_open_halfline p)) " ) . y0)) ) by A8, Th12; :: thesis: verum
end;
then for y0 being Real st y0 in dom ((f | (right_open_halfline p)) " ) holds
(f | (right_open_halfline p)) " is_differentiable_in y0 ;
hence (f | (right_open_halfline p)) " is_differentiable_on dom ((f | (right_open_halfline p)) " ) by A3, A4, FDIFF_1:16; :: thesis: for x0 being Real st x0 in dom ((f | (right_open_halfline p)) " ) holds
diff ((f | (right_open_halfline p)) " ),x0 = 1 / (diff f,(((f | (right_open_halfline p)) " ) . x0))

let x0 be Real; :: thesis: ( x0 in dom ((f | (right_open_halfline p)) " ) implies diff ((f | (right_open_halfline p)) " ),x0 = 1 / (diff f,(((f | (right_open_halfline p)) " ) . x0)) )
assume x0 in dom ((f | (right_open_halfline p)) " ) ; :: thesis: diff ((f | (right_open_halfline p)) " ),x0 = 1 / (diff f,(((f | (right_open_halfline p)) " ) . x0))
hence diff ((f | (right_open_halfline p)) " ),x0 = 1 / (diff f,(((f | (right_open_halfline p)) " ) . x0)) by A5; :: thesis: verum