:: FDIFF_3 semantic presentation begin theorem Th1: :: FDIFF_3:1 for f being PartFunc of REAL,REAL for x0 being Real st ex r being Real st ( r > 0 & [.(x0 - r),x0.] c= dom f ) holds ex h being non-zero 0 -convergent Real_Sequence ex c being constant Real_Sequence st ( rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n < 0 ) ) proof let f be PartFunc of REAL,REAL; ::_thesis: for x0 being Real st ex r being Real st ( r > 0 & [.(x0 - r),x0.] c= dom f ) holds ex h being non-zero 0 -convergent Real_Sequence ex c being constant Real_Sequence st ( rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n < 0 ) ) let x0 be Real; ::_thesis: ( ex r being Real st ( r > 0 & [.(x0 - r),x0.] c= dom f ) implies ex h being non-zero 0 -convergent Real_Sequence ex c being constant Real_Sequence st ( rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n < 0 ) ) ) given r being Real such that A1: r > 0 and A2: [.(x0 - r),x0.] c= dom f ; ::_thesis: ex h being non-zero 0 -convergent Real_Sequence ex c being constant Real_Sequence st ( rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n < 0 ) ) reconsider a = NAT --> x0 as Real_Sequence ; reconsider a = a as constant Real_Sequence ; deffunc H1( Element of NAT ) -> Element of REAL = (- r) / ($1 + 2); consider b being Real_Sequence such that A3: for n being Element of NAT holds b . n = H1(n) from SEQ_1:sch_1(); A4: now__::_thesis:_for_n_being_Element_of_NAT_holds_b_._n_<_0 let n be Element of NAT ; ::_thesis: b . n < 0 0 <= n by NAT_1:2; then 0 < r / (n + 2) by A1, XREAL_1:139; then - (r / (n + 2)) < - 0 by XREAL_1:24; then (- r) / (n + 2) < 0 by XCMPLX_1:187; hence b . n < 0 by A3; ::_thesis: verum end; then for n being Element of NAT holds 0 <> b . n ; then A5: b is non-zero by SEQ_1:5; ( b is convergent & lim b = 0 ) by A3, SEQ_4:31; then reconsider b = b as non-zero 0 -convergent Real_Sequence by A5, FDIFF_1:def_1; take b ; ::_thesis: ex c being constant Real_Sequence st ( rng c = {x0} & rng (b + c) c= dom f & ( for n being Element of NAT holds b . n < 0 ) ) take a ; ::_thesis: ( rng a = {x0} & rng (b + a) c= dom f & ( for n being Element of NAT holds b . n < 0 ) ) thus rng a = {x0} ::_thesis: ( rng (b + a) c= dom f & ( for n being Element of NAT holds b . n < 0 ) ) proof thus rng a c= {x0} :: according to XBOOLE_0:def_10 ::_thesis: {x0} c= rng a proof let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in rng a or x in {x0} ) assume x in rng a ; ::_thesis: x in {x0} then ex n being Element of NAT st x = a . n by FUNCT_2:113; then x = x0 by FUNCOP_1:7; hence x in {x0} by TARSKI:def_1; ::_thesis: verum end; let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in {x0} or x in rng a ) assume x in {x0} ; ::_thesis: x in rng a then x = x0 by TARSKI:def_1 .= a . 0 by FUNCOP_1:7 ; hence x in rng a by VALUED_0:28; ::_thesis: verum end; thus rng (b + a) c= dom f ::_thesis: for n being Element of NAT holds b . n < 0 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 A6: x = (b + a) . n by FUNCT_2:113; A7: 0 + 1 < n + 2 by NAT_1:2, XREAL_1:8; then r * 1 < r * (n + 2) by A1, XREAL_1:97; then r * ((n + 2) ") < (r * (n + 2)) * ((n + 2) ") by A7, XREAL_1:68; then r * ((n + 2) ") < r * ((n + 2) * ((n + 2) ")) ; then r * ((n + 2) ") < r * 1 by A7, XCMPLX_0:def_7; then r / (n + 2) < r by XCMPLX_0:def_9; then x0 - r < x0 - (r / (n + 2)) by XREAL_1:15; then x0 - r < x0 + (- (r / (n + 2))) ; then A8: x0 - r <= x0 + ((- r) / (n + 2)) by XCMPLX_1:187; 0 < r / (n + 2) by A1, A7, XREAL_1:139; then x0 - (r / (n + 2)) < x0 - 0 by XREAL_1:15; then x0 + (- (r / (n + 2))) <= x0 ; then x0 + ((- r) / (n + 2)) <= x0 by XCMPLX_1:187; then A9: x0 + ((- r) / (n + 2)) in { g1 where g1 is Real : ( x0 - r <= g1 & g1 <= x0 ) } by A8; x = (b . n) + (a . n) by A6, SEQ_1:7 .= ((- r) / (n + 2)) + (a . n) by A3 .= x0 + ((- r) / (n + 2)) by FUNCOP_1:7 ; then x in [.(x0 - r),x0.] by A9, RCOMP_1:def_1; hence x in dom f by A2; ::_thesis: verum end; thus for n being Element of NAT holds b . n < 0 by A4; ::_thesis: verum end; theorem Th2: :: FDIFF_3:2 for f being PartFunc of REAL,REAL for x0 being Real st ex r being Real st ( r > 0 & [.x0,(x0 + r).] c= dom f ) holds ex h being non-zero 0 -convergent Real_Sequence ex c being constant Real_Sequence st ( rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n > 0 ) ) proof let f be PartFunc of REAL,REAL; ::_thesis: for x0 being Real st ex r being Real st ( r > 0 & [.x0,(x0 + r).] c= dom f ) holds ex h being non-zero 0 -convergent Real_Sequence ex c being constant Real_Sequence st ( rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n > 0 ) ) let x0 be Real; ::_thesis: ( ex r being Real st ( r > 0 & [.x0,(x0 + r).] c= dom f ) implies ex h being non-zero 0 -convergent Real_Sequence ex c being constant Real_Sequence st ( rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n > 0 ) ) ) given r being Real such that A1: r > 0 and A2: [.x0,(x0 + r).] c= dom f ; ::_thesis: ex h being non-zero 0 -convergent Real_Sequence ex c being constant Real_Sequence st ( rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n > 0 ) ) reconsider a = NAT --> x0 as Real_Sequence ; reconsider a = a as constant Real_Sequence ; deffunc H1( Element of NAT ) -> Element of REAL = r / ($1 + 2); consider b being Real_Sequence such that A3: for n being Element of NAT holds b . n = H1(n) from SEQ_1:sch_1(); A4: now__::_thesis:_for_n_being_Element_of_NAT_holds_0_<_b_._n let n be Element of NAT ; ::_thesis: 0 < b . n 0 <= n by NAT_1:2; then 0 < r / (n + 2) by A1, XREAL_1:139; hence 0 < b . n by A3; ::_thesis: verum end; then for n being Element of NAT holds 0 <> b . n ; then A5: b is non-zero by SEQ_1:5; ( b is convergent & lim b = 0 ) by A3, SEQ_4:31; then reconsider b = b as non-zero 0 -convergent Real_Sequence by A5, FDIFF_1:def_1; take b ; ::_thesis: ex c being constant Real_Sequence st ( rng c = {x0} & rng (b + c) c= dom f & ( for n being Element of NAT holds b . n > 0 ) ) take a ; ::_thesis: ( rng a = {x0} & rng (b + a) c= dom f & ( for n being Element of NAT holds b . n > 0 ) ) thus rng a = {x0} ::_thesis: ( rng (b + a) c= dom f & ( for n being Element of NAT holds b . n > 0 ) ) proof thus rng a c= {x0} :: according to XBOOLE_0:def_10 ::_thesis: {x0} c= rng a proof let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in rng a or x in {x0} ) assume x in rng a ; ::_thesis: x in {x0} then ex n being Element of NAT st x = a . n by FUNCT_2:113; then x = x0 by FUNCOP_1:7; hence x in {x0} by TARSKI:def_1; ::_thesis: verum end; let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in {x0} or x in rng a ) assume x in {x0} ; ::_thesis: x in rng a then x = x0 by TARSKI:def_1 .= a . 0 by FUNCOP_1:7 ; hence x in rng a by VALUED_0:28; ::_thesis: verum end; thus rng (b + a) c= dom f ::_thesis: for n being Element of NAT holds b . n > 0 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 A6: x = (b + a) . n by FUNCT_2:113; A7: 0 + 1 < n + 2 by NAT_1:2, XREAL_1:8; then r * 1 < r * (n + 2) by A1, XREAL_1:97; then r * ((n + 2) ") < (r * (n + 2)) * ((n + 2) ") by A7, XREAL_1:68; then r * ((n + 2) ") < r * ((n + 2) * ((n + 2) ")) ; then r * ((n + 2) ") < r * 1 by A7, XCMPLX_0:def_7; then r / (n + 2) < r by XCMPLX_0:def_9; then A8: x0 + (r / (n + 2)) <= x0 + r by XREAL_1:6; 0 < r / (n + 2) by A1, A7, XREAL_1:139; then x0 + 0 < x0 + (r / (n + 2)) by XREAL_1:8; then A9: x0 + (r / (n + 2)) in { g1 where g1 is Real : ( x0 <= g1 & g1 <= x0 + r ) } by A8; x = (b . n) + (a . n) by A6, SEQ_1:7 .= (r / (n + 2)) + (a . n) by A3 .= (r / (n + 2)) + x0 by FUNCOP_1:7 ; then x in [.x0,(x0 + r).] by A9, RCOMP_1:def_1; hence x in dom f by A2; ::_thesis: verum end; thus for n being Element of NAT holds b . n > 0 by A4; ::_thesis: verum end; theorem Th3: :: FDIFF_3:3 for f being PartFunc of REAL,REAL for x0 being Real st ( for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n < 0 ) holds (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent ) & {x0} c= dom f holds for h1, h2 being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h1 + c) c= dom f & ( for n being Element of NAT holds h1 . n < 0 ) & rng (h2 + c) c= dom f & ( for n being Element of NAT holds h2 . n < 0 ) holds lim ((h1 ") (#) ((f /* (h1 + c)) - (f /* c))) = lim ((h2 ") (#) ((f /* (h2 + c)) - (f /* c))) proof let f be PartFunc of REAL,REAL; ::_thesis: for x0 being Real st ( for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n < 0 ) holds (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent ) & {x0} c= dom f holds for h1, h2 being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h1 + c) c= dom f & ( for n being Element of NAT holds h1 . n < 0 ) & rng (h2 + c) c= dom f & ( for n being Element of NAT holds h2 . n < 0 ) holds lim ((h1 ") (#) ((f /* (h1 + c)) - (f /* c))) = lim ((h2 ") (#) ((f /* (h2 + c)) - (f /* c))) let x0 be Real; ::_thesis: ( ( for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n < 0 ) holds (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent ) & {x0} c= dom f implies for h1, h2 being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h1 + c) c= dom f & ( for n being Element of NAT holds h1 . n < 0 ) & rng (h2 + c) c= dom f & ( for n being Element of NAT holds h2 . n < 0 ) holds lim ((h1 ") (#) ((f /* (h1 + c)) - (f /* c))) = lim ((h2 ") (#) ((f /* (h2 + c)) - (f /* c))) ) assume that A1: for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n < 0 ) holds (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent and A2: {x0} c= dom f ; ::_thesis: for h1, h2 being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h1 + c) c= dom f & ( for n being Element of NAT holds h1 . n < 0 ) & rng (h2 + c) c= dom f & ( for n being Element of NAT holds h2 . n < 0 ) holds lim ((h1 ") (#) ((f /* (h1 + c)) - (f /* c))) = lim ((h2 ") (#) ((f /* (h2 + c)) - (f /* c))) let h1, h2 be non-zero 0 -convergent Real_Sequence; ::_thesis: for c being constant Real_Sequence st rng c = {x0} & rng (h1 + c) c= dom f & ( for n being Element of NAT holds h1 . n < 0 ) & rng (h2 + c) c= dom f & ( for n being Element of NAT holds h2 . n < 0 ) holds lim ((h1 ") (#) ((f /* (h1 + c)) - (f /* c))) = lim ((h2 ") (#) ((f /* (h2 + c)) - (f /* c))) let c be constant Real_Sequence; ::_thesis: ( rng c = {x0} & rng (h1 + c) c= dom f & ( for n being Element of NAT holds h1 . n < 0 ) & rng (h2 + c) c= dom f & ( for n being Element of NAT holds h2 . n < 0 ) implies lim ((h1 ") (#) ((f /* (h1 + c)) - (f /* c))) = lim ((h2 ") (#) ((f /* (h2 + c)) - (f /* c))) ) assume that A3: rng c = {x0} and A4: rng (h1 + c) c= dom f and A5: for n being Element of NAT holds h1 . n < 0 and A6: rng (h2 + c) c= dom f and A7: for n being Element of NAT holds h2 . n < 0 ; ::_thesis: lim ((h1 ") (#) ((f /* (h1 + c)) - (f /* c))) = lim ((h2 ") (#) ((f /* (h2 + c)) - (f /* c))) deffunc H1( Element of NAT ) -> Element of REAL = h2 . $1; deffunc H2( Element of NAT ) -> Element of REAL = h1 . $1; consider d being Real_Sequence such that A8: for n being Element of NAT holds ( d . (2 * n) = H2(n) & d . ((2 * n) + 1) = H1(n) ) from SCHEME1:sch_2(); now__::_thesis:_for_n_being_Element_of_NAT_holds_d_._n_<>_0 let n be Element of NAT ; ::_thesis: d . n <> 0 consider m being Element of NAT such that A11: ( n = 2 * m or n = (2 * m) + 1 ) by SCHEME1:1; now__::_thesis:_d_._n_<>_0 percases ( n = 2 * m or n = (2 * m) + 1 ) by A11; supposeA12: n = 2 * m ; ::_thesis: d . n <> 0 d . (2 * m) = h1 . m by A8; hence d . n <> 0 by A12, SEQ_1:5; ::_thesis: verum end; supposeA13: n = (2 * m) + 1 ; ::_thesis: d . n <> 0 d . ((2 * m) + 1) = h2 . m by A8; hence d . n <> 0 by A13, SEQ_1:5; ::_thesis: verum end; end; end; hence d . n <> 0 ; ::_thesis: verum end; then A14: d is non-zero by SEQ_1:5; A15: ( h2 is convergent & lim h2 = 0 ) ; ( h1 is convergent & lim h1 = 0 ) ; then ( d is convergent & lim d = 0 ) by A8, A15, FDIFF_2:1; then reconsider d = d as non-zero 0 -convergent Real_Sequence by A14, FDIFF_1:def_1; deffunc H3( Element of NAT ) -> Element of NAT = 2 * $1; consider a being Real_Sequence such that A16: for n being Element of NAT holds a . n = H3(n) from SEQ_1:sch_1(); deffunc H4( Element of NAT ) -> Element of NAT = (2 * $1) + 1; consider b being Real_Sequence such that A17: for n being Element of NAT holds b . n = H4(n) from SEQ_1:sch_1(); reconsider b = b as V39() sequence of NAT by A17, FDIFF_2:3; A18: rng (d + c) c= dom f proof let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in rng (d + c) or x in dom f ) assume x in rng (d + c) ; ::_thesis: x in dom f then consider n being Element of NAT such that A19: x = (d + c) . n by FUNCT_2:113; consider m being Element of NAT such that A20: ( n = 2 * m or n = (2 * m) + 1 ) by SCHEME1:1; A21: x = (d . n) + (c . n) by A19, SEQ_1:7; now__::_thesis:_x_in_dom_f percases ( n = 2 * m or n = (2 * m) + 1 ) by A20; suppose n = 2 * m ; ::_thesis: x in dom f then x = (h1 . m) + (c . (2 * m)) by A8, A21 .= (h1 . m) + (c . m) by VALUED_0:23 .= (h1 + c) . m by SEQ_1:7 ; then x in rng (h1 + c) by VALUED_0:28; hence x in dom f by A4; ::_thesis: verum end; suppose n = (2 * m) + 1 ; ::_thesis: x in dom f then x = (h2 . m) + (c . ((2 * m) + 1)) by A8, A21 .= (h2 . m) + (c . m) by VALUED_0:23 .= (h2 + c) . m by SEQ_1:7 ; then x in rng (h2 + c) by VALUED_0:28; hence x in dom f by A6; ::_thesis: verum end; end; end; hence x in dom f ; ::_thesis: verum end; now__::_thesis:_for_n_being_Element_of_NAT_holds_(((d_")_(#)_((f_/*_(d_+_c))_-_(f_/*_c)))_*_b)_._n_=_((h2_")_(#)_((f_/*_(h2_+_c))_-_(f_/*_c)))_._n let n be Element of NAT ; ::_thesis: (((d ") (#) ((f /* (d + c)) - (f /* c))) * b) . n = ((h2 ") (#) ((f /* (h2 + c)) - (f /* c))) . n thus (((d ") (#) ((f /* (d + c)) - (f /* c))) * b) . n = ((d ") (#) ((f /* (d + c)) - (f /* c))) . (b . n) by FUNCT_2:15 .= ((d ") (#) ((f /* (d + c)) - (f /* c))) . ((2 * n) + 1) by A17 .= ((d ") . ((2 * n) + 1)) * (((f /* (d + c)) - (f /* c)) . ((2 * n) + 1)) by SEQ_1:8 .= ((d ") . ((2 * n) + 1)) * (((f /* (d + c)) . ((2 * n) + 1)) - ((f /* c) . ((2 * n) + 1))) by RFUNCT_2:1 .= ((d . ((2 * n) + 1)) ") * (((f /* (d + c)) . ((2 * n) + 1)) - ((f /* c) . ((2 * n) + 1))) by VALUED_1:10 .= ((h2 . n) ") * (((f /* (d + c)) . ((2 * n) + 1)) - ((f /* c) . ((2 * n) + 1))) by A8 .= ((h2 ") . n) * (((f /* (d + c)) . ((2 * n) + 1)) - ((f /* c) . ((2 * n) + 1))) by VALUED_1:10 .= ((h2 ") . n) * ((f . ((d + c) . ((2 * n) + 1))) - ((f /* c) . ((2 * n) + 1))) by A18, FUNCT_2:108 .= ((h2 ") . n) * ((f . ((d . ((2 * n) + 1)) + (c . ((2 * n) + 1)))) - ((f /* c) . ((2 * n) + 1))) by SEQ_1:7 .= ((h2 ") . n) * ((f . ((h2 . n) + (c . ((2 * n) + 1)))) - ((f /* c) . ((2 * n) + 1))) by A8 .= ((h2 ") . n) * ((f . ((h2 . n) + (c . n))) - ((f /* c) . ((2 * n) + 1))) by VALUED_0:23 .= ((h2 ") . n) * ((f . ((h2 + c) . n)) - ((f /* c) . ((2 * n) + 1))) by SEQ_1:7 .= ((h2 ") . n) * (((f /* (h2 + c)) . n) - ((f /* c) . ((2 * n) + 1))) by A6, FUNCT_2:108 .= ((h2 ") . n) * (((f /* (h2 + c)) . n) - (f . (c . ((2 * n) + 1)))) by A2, A3, FUNCT_2:108 .= ((h2 ") . n) * (((f /* (h2 + c)) . n) - (f . (c . n))) by VALUED_0:23 .= ((h2 ") . n) * (((f /* (h2 + c)) . n) - ((f /* c) . n)) by A2, A3, FUNCT_2:108 .= ((h2 ") . n) * (((f /* (h2 + c)) - (f /* c)) . n) by RFUNCT_2:1 .= ((h2 ") (#) ((f /* (h2 + c)) - (f /* c))) . n by SEQ_1:8 ; ::_thesis: verum end; then A22: (h2 ") (#) ((f /* (h2 + c)) - (f /* c)) is subsequence of (d ") (#) ((f /* (d + c)) - (f /* c)) by FUNCT_2:63; now__::_thesis:_for_n_being_Element_of_NAT_holds_d_._n_<_0 let n be Element of NAT ; ::_thesis: d . n < 0 consider m being Element of NAT such that A23: ( n = 2 * m or n = (2 * m) + 1 ) by SCHEME1:1; now__::_thesis:_d_._n_<_0 percases ( n = 2 * m or n = (2 * m) + 1 ) by A23; supposeA24: n = 2 * m ; ::_thesis: d . n < 0 d . (2 * m) = h1 . m by A8; hence d . n < 0 by A5, A24; ::_thesis: verum end; supposeA25: n = (2 * m) + 1 ; ::_thesis: d . n < 0 d . ((2 * m) + 1) = h2 . m by A8; hence d . n < 0 by A7, A25; ::_thesis: verum end; end; end; hence d . n < 0 ; ::_thesis: verum end; then A26: (d ") (#) ((f /* (d + c)) - (f /* c)) is convergent by A1, A3, A18; reconsider a = a as V39() sequence of NAT by A16, FDIFF_2:2; now__::_thesis:_for_n_being_Element_of_NAT_holds_(((d_")_(#)_((f_/*_(d_+_c))_-_(f_/*_c)))_*_a)_._n_=_((h1_")_(#)_((f_/*_(h1_+_c))_-_(f_/*_c)))_._n let n be Element of NAT ; ::_thesis: (((d ") (#) ((f /* (d + c)) - (f /* c))) * a) . n = ((h1 ") (#) ((f /* (h1 + c)) - (f /* c))) . n thus (((d ") (#) ((f /* (d + c)) - (f /* c))) * a) . n = ((d ") (#) ((f /* (d + c)) - (f /* c))) . (a . n) by FUNCT_2:15 .= ((d ") (#) ((f /* (d + c)) - (f /* c))) . (2 * n) by A16 .= ((d ") . (2 * n)) * (((f /* (d + c)) - (f /* c)) . (2 * n)) by SEQ_1:8 .= ((d ") . (2 * n)) * (((f /* (d + c)) . (2 * n)) - ((f /* c) . (2 * n))) by RFUNCT_2:1 .= ((d . (2 * n)) ") * (((f /* (d + c)) . (2 * n)) - ((f /* c) . (2 * n))) by VALUED_1:10 .= ((h1 . n) ") * (((f /* (d + c)) . (2 * n)) - ((f /* c) . (2 * n))) by A8 .= ((h1 ") . n) * (((f /* (d + c)) . (2 * n)) - ((f /* c) . (2 * n))) by VALUED_1:10 .= ((h1 ") . n) * ((f . ((d + c) . (2 * n))) - ((f /* c) . (2 * n))) by A18, FUNCT_2:108 .= ((h1 ") . n) * ((f . ((d . (2 * n)) + (c . (2 * n)))) - ((f /* c) . (2 * n))) by SEQ_1:7 .= ((h1 ") . n) * ((f . ((h1 . n) + (c . (2 * n)))) - ((f /* c) . (2 * n))) by A8 .= ((h1 ") . n) * ((f . ((h1 . n) + (c . n))) - ((f /* c) . (2 * n))) by VALUED_0:23 .= ((h1 ") . n) * ((f . ((h1 + c) . n)) - ((f /* c) . (2 * n))) by SEQ_1:7 .= ((h1 ") . n) * (((f /* (h1 + c)) . n) - ((f /* c) . (2 * n))) by A4, FUNCT_2:108 .= ((h1 ") . n) * (((f /* (h1 + c)) . n) - (f . (c . (2 * n)))) by A2, A3, FUNCT_2:108 .= ((h1 ") . n) * (((f /* (h1 + c)) . n) - (f . (c . n))) by VALUED_0:23 .= ((h1 ") . n) * (((f /* (h1 + c)) . n) - ((f /* c) . n)) by A2, A3, FUNCT_2:108 .= ((h1 ") . n) * (((f /* (h1 + c)) - (f /* c)) . n) by RFUNCT_2:1 .= ((h1 ") (#) ((f /* (h1 + c)) - (f /* c))) . n by SEQ_1:8 ; ::_thesis: verum end; then (h1 ") (#) ((f /* (h1 + c)) - (f /* c)) is subsequence of (d ") (#) ((f /* (d + c)) - (f /* c)) by FUNCT_2:63; then lim ((h1 ") (#) ((f /* (h1 + c)) - (f /* c))) = lim ((d ") (#) ((f /* (d + c)) - (f /* c))) by A26, SEQ_4:17; hence lim ((h1 ") (#) ((f /* (h1 + c)) - (f /* c))) = lim ((h2 ") (#) ((f /* (h2 + c)) - (f /* c))) by A26, A22, SEQ_4:17; ::_thesis: verum end; theorem Th4: :: FDIFF_3:4 for f being PartFunc of REAL,REAL for x0 being Real st ( for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n > 0 ) holds (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent ) & {x0} c= dom f holds for h1, h2 being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h1 + c) c= dom f & rng (h2 + c) c= dom f & ( for n being Element of NAT holds h1 . n > 0 ) & ( for n being Element of NAT holds h2 . n > 0 ) holds lim ((h1 ") (#) ((f /* (h1 + c)) - (f /* c))) = lim ((h2 ") (#) ((f /* (h2 + c)) - (f /* c))) proof let f be PartFunc of REAL,REAL; ::_thesis: for x0 being Real st ( for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n > 0 ) holds (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent ) & {x0} c= dom f holds for h1, h2 being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h1 + c) c= dom f & rng (h2 + c) c= dom f & ( for n being Element of NAT holds h1 . n > 0 ) & ( for n being Element of NAT holds h2 . n > 0 ) holds lim ((h1 ") (#) ((f /* (h1 + c)) - (f /* c))) = lim ((h2 ") (#) ((f /* (h2 + c)) - (f /* c))) let x0 be Real; ::_thesis: ( ( for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n > 0 ) holds (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent ) & {x0} c= dom f implies for h1, h2 being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h1 + c) c= dom f & rng (h2 + c) c= dom f & ( for n being Element of NAT holds h1 . n > 0 ) & ( for n being Element of NAT holds h2 . n > 0 ) holds lim ((h1 ") (#) ((f /* (h1 + c)) - (f /* c))) = lim ((h2 ") (#) ((f /* (h2 + c)) - (f /* c))) ) assume that A1: for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n > 0 ) holds (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent and A2: {x0} c= dom f ; ::_thesis: for h1, h2 being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h1 + c) c= dom f & rng (h2 + c) c= dom f & ( for n being Element of NAT holds h1 . n > 0 ) & ( for n being Element of NAT holds h2 . n > 0 ) holds lim ((h1 ") (#) ((f /* (h1 + c)) - (f /* c))) = lim ((h2 ") (#) ((f /* (h2 + c)) - (f /* c))) let h1, h2 be non-zero 0 -convergent Real_Sequence; ::_thesis: for c being constant Real_Sequence st rng c = {x0} & rng (h1 + c) c= dom f & rng (h2 + c) c= dom f & ( for n being Element of NAT holds h1 . n > 0 ) & ( for n being Element of NAT holds h2 . n > 0 ) holds lim ((h1 ") (#) ((f /* (h1 + c)) - (f /* c))) = lim ((h2 ") (#) ((f /* (h2 + c)) - (f /* c))) let c be constant Real_Sequence; ::_thesis: ( rng c = {x0} & rng (h1 + c) c= dom f & rng (h2 + c) c= dom f & ( for n being Element of NAT holds h1 . n > 0 ) & ( for n being Element of NAT holds h2 . n > 0 ) implies lim ((h1 ") (#) ((f /* (h1 + c)) - (f /* c))) = lim ((h2 ") (#) ((f /* (h2 + c)) - (f /* c))) ) assume that A3: rng c = {x0} and A4: rng (h1 + c) c= dom f and A5: rng (h2 + c) c= dom f and A6: for n being Element of NAT holds h1 . n > 0 and A7: for n being Element of NAT holds h2 . n > 0 ; ::_thesis: lim ((h1 ") (#) ((f /* (h1 + c)) - (f /* c))) = lim ((h2 ") (#) ((f /* (h2 + c)) - (f /* c))) deffunc H1( Element of NAT ) -> Element of REAL = h2 . $1; deffunc H2( Element of NAT ) -> Element of REAL = h1 . $1; consider d being Real_Sequence such that A8: for n being Element of NAT holds ( d . (2 * n) = H2(n) & d . ((2 * n) + 1) = H1(n) ) from SCHEME1:sch_2(); now__::_thesis:_for_n_being_Element_of_NAT_holds_d_._n_<>_0 let n be Element of NAT ; ::_thesis: d . n <> 0 consider m being Element of NAT such that A11: ( n = 2 * m or n = (2 * m) + 1 ) by SCHEME1:1; now__::_thesis:_d_._n_<>_0 percases ( n = 2 * m or n = (2 * m) + 1 ) by A11; suppose n = 2 * m ; ::_thesis: d . n <> 0 then d . n = h1 . m by A8; hence d . n <> 0 by SEQ_1:5; ::_thesis: verum end; suppose n = (2 * m) + 1 ; ::_thesis: d . n <> 0 then d . n = h2 . m by A8; hence d . n <> 0 by SEQ_1:5; ::_thesis: verum end; end; end; hence d . n <> 0 ; ::_thesis: verum end; then A12: d is non-zero by SEQ_1:5; A13: ( h2 is convergent & lim h2 = 0 ) ; ( h1 is convergent & lim h1 = 0 ) ; then ( d is convergent & lim d = 0 ) by A8, A13, FDIFF_2:1; then reconsider d = d as non-zero 0 -convergent Real_Sequence by A12, FDIFF_1:def_1; deffunc H3( Element of NAT ) -> Element of NAT = 2 * $1; consider a being Real_Sequence such that A14: for n being Element of NAT holds a . n = H3(n) from SEQ_1:sch_1(); deffunc H4( Element of NAT ) -> Element of NAT = (2 * $1) + 1; consider b being Real_Sequence such that A15: for n being Element of NAT holds b . n = H4(n) from SEQ_1:sch_1(); reconsider b = b as V39() sequence of NAT by A15, FDIFF_2:3; A16: rng (d + c) c= dom f proof let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in rng (d + c) or x in dom f ) assume x in rng (d + c) ; ::_thesis: x in dom f then consider n being Element of NAT such that A17: x = (d + c) . n by FUNCT_2:113; consider m being Element of NAT such that A18: ( n = 2 * m or n = (2 * m) + 1 ) by SCHEME1:1; now__::_thesis:_x_in_dom_f percases ( n = 2 * m or n = (2 * m) + 1 ) by A18; suppose n = 2 * m ; ::_thesis: x in dom f then x = (d . (2 * m)) + (c . (2 * m)) by A17, SEQ_1:7 .= (h1 . m) + (c . (2 * m)) by A8 .= (h1 . m) + (c . m) by VALUED_0:23 .= (h1 + c) . m by SEQ_1:7 ; then x in rng (h1 + c) by VALUED_0:28; hence x in dom f by A4; ::_thesis: verum end; suppose n = (2 * m) + 1 ; ::_thesis: x in dom f then x = (d . ((2 * m) + 1)) + (c . ((2 * m) + 1)) by A17, SEQ_1:7 .= (h2 . m) + (c . ((2 * m) + 1)) by A8 .= (h2 . m) + (c . m) by VALUED_0:23 .= (h2 + c) . m by SEQ_1:7 ; then x in rng (h2 + c) by VALUED_0:28; hence x in dom f by A5; ::_thesis: verum end; end; end; hence x in dom f ; ::_thesis: verum end; now__::_thesis:_for_n_being_Element_of_NAT_holds_(((d_")_(#)_((f_/*_(d_+_c))_-_(f_/*_c)))_*_b)_._n_=_((h2_")_(#)_((f_/*_(h2_+_c))_-_(f_/*_c)))_._n let n be Element of NAT ; ::_thesis: (((d ") (#) ((f /* (d + c)) - (f /* c))) * b) . n = ((h2 ") (#) ((f /* (h2 + c)) - (f /* c))) . n thus (((d ") (#) ((f /* (d + c)) - (f /* c))) * b) . n = ((d ") (#) ((f /* (d + c)) - (f /* c))) . (b . n) by FUNCT_2:15 .= ((d ") (#) ((f /* (d + c)) - (f /* c))) . ((2 * n) + 1) by A15 .= ((d ") . ((2 * n) + 1)) * (((f /* (d + c)) - (f /* c)) . ((2 * n) + 1)) by SEQ_1:8 .= ((d . ((2 * n) + 1)) ") * (((f /* (d + c)) - (f /* c)) . ((2 * n) + 1)) by VALUED_1:10 .= ((h2 . n) ") * (((f /* (d + c)) - (f /* c)) . ((2 * n) + 1)) by A8 .= ((h2 ") . n) * (((f /* (d + c)) - (f /* c)) . ((2 * n) + 1)) by VALUED_1:10 .= ((h2 ") . n) * (((f /* (d + c)) . ((2 * n) + 1)) - ((f /* c) . ((2 * n) + 1))) by RFUNCT_2:1 .= ((h2 ") . n) * ((f . ((d + c) . ((2 * n) + 1))) - ((f /* c) . ((2 * n) + 1))) by A16, FUNCT_2:108 .= ((h2 ") . n) * ((f . ((d + c) . ((2 * n) + 1))) - (f . (c . ((2 * n) + 1)))) by A2, A3, FUNCT_2:108 .= ((h2 ") . n) * ((f . ((d . ((2 * n) + 1)) + (c . ((2 * n) + 1)))) - (f . (c . ((2 * n) + 1)))) by SEQ_1:7 .= ((h2 ") . n) * ((f . ((h2 . n) + (c . ((2 * n) + 1)))) - (f . (c . ((2 * n) + 1)))) by A8 .= ((h2 ") . n) * ((f . ((h2 . n) + (c . ((2 * n) + 1)))) - (f . (c . n))) by VALUED_0:23 .= ((h2 ") . n) * ((f . ((h2 . n) + (c . n))) - (f . (c . n))) by VALUED_0:23 .= ((h2 ") . n) * ((f . ((h2 + c) . n)) - (f . (c . n))) by SEQ_1:7 .= ((h2 ") . n) * (((f /* (h2 + c)) . n) - (f . (c . n))) by A5, FUNCT_2:108 .= ((h2 ") . n) * (((f /* (h2 + c)) . n) - ((f /* c) . n)) by A2, A3, FUNCT_2:108 .= ((h2 ") . n) * (((f /* (h2 + c)) - (f /* c)) . n) by RFUNCT_2:1 .= ((h2 ") (#) ((f /* (h2 + c)) - (f /* c))) . n by SEQ_1:8 ; ::_thesis: verum end; then A19: (h2 ") (#) ((f /* (h2 + c)) - (f /* c)) is subsequence of (d ") (#) ((f /* (d + c)) - (f /* c)) by FUNCT_2:63; for n being Element of NAT holds d . n > 0 proof let n be Element of NAT ; ::_thesis: d . n > 0 consider m being Element of NAT such that A20: ( n = 2 * m or n = (2 * m) + 1 ) by SCHEME1:1; now__::_thesis:_d_._n_>_0 percases ( n = 2 * m or n = (2 * m) + 1 ) by A20; suppose n = 2 * m ; ::_thesis: d . n > 0 then d . n = h1 . m by A8; hence d . n > 0 by A6; ::_thesis: verum end; suppose n = (2 * m) + 1 ; ::_thesis: d . n > 0 then d . n = h2 . m by A8; hence d . n > 0 by A7; ::_thesis: verum end; end; end; hence d . n > 0 ; ::_thesis: verum end; then A21: (d ") (#) ((f /* (d + c)) - (f /* c)) is convergent by A1, A3, A16; reconsider a = a as V39() sequence of NAT by A14, FDIFF_2:2; now__::_thesis:_for_n_being_Element_of_NAT_holds_(((d_")_(#)_((f_/*_(d_+_c))_-_(f_/*_c)))_*_a)_._n_=_((h1_")_(#)_((f_/*_(h1_+_c))_-_(f_/*_c)))_._n let n be Element of NAT ; ::_thesis: (((d ") (#) ((f /* (d + c)) - (f /* c))) * a) . n = ((h1 ") (#) ((f /* (h1 + c)) - (f /* c))) . n thus (((d ") (#) ((f /* (d + c)) - (f /* c))) * a) . n = ((d ") (#) ((f /* (d + c)) - (f /* c))) . (a . n) by FUNCT_2:15 .= ((d ") (#) ((f /* (d + c)) - (f /* c))) . (2 * n) by A14 .= ((d ") . (2 * n)) * (((f /* (d + c)) - (f /* c)) . (2 * n)) by SEQ_1:8 .= ((d . (2 * n)) ") * (((f /* (d + c)) - (f /* c)) . (2 * n)) by VALUED_1:10 .= ((h1 . n) ") * (((f /* (d + c)) - (f /* c)) . (2 * n)) by A8 .= ((h1 ") . n) * (((f /* (d + c)) - (f /* c)) . (2 * n)) by VALUED_1:10 .= ((h1 ") . n) * (((f /* (d + c)) . (2 * n)) - ((f /* c) . (2 * n))) by RFUNCT_2:1 .= ((h1 ") . n) * ((f . ((d + c) . (2 * n))) - ((f /* c) . (2 * n))) by A16, FUNCT_2:108 .= ((h1 ") . n) * ((f . ((d + c) . (2 * n))) - (f . (c . (2 * n)))) by A2, A3, FUNCT_2:108 .= ((h1 ") . n) * ((f . ((d . (2 * n)) + (c . (2 * n)))) - (f . (c . (2 * n)))) by SEQ_1:7 .= ((h1 ") . n) * ((f . ((h1 . n) + (c . (2 * n)))) - (f . (c . (2 * n)))) by A8 .= ((h1 ") . n) * ((f . ((h1 . n) + (c . (2 * n)))) - (f . (c . n))) by VALUED_0:23 .= ((h1 ") . n) * ((f . ((h1 . n) + (c . n))) - (f . (c . n))) by VALUED_0:23 .= ((h1 ") . n) * ((f . ((h1 + c) . n)) - (f . (c . n))) by SEQ_1:7 .= ((h1 ") . n) * (((f /* (h1 + c)) . n) - (f . (c . n))) by A4, FUNCT_2:108 .= ((h1 ") . n) * (((f /* (h1 + c)) . n) - ((f /* c) . n)) by A2, A3, FUNCT_2:108 .= ((h1 ") . n) * (((f /* (h1 + c)) - (f /* c)) . n) by RFUNCT_2:1 .= ((h1 ") (#) ((f /* (h1 + c)) - (f /* c))) . n by SEQ_1:8 ; ::_thesis: verum end; then (h1 ") (#) ((f /* (h1 + c)) - (f /* c)) is subsequence of (d ") (#) ((f /* (d + c)) - (f /* c)) by FUNCT_2:63; then lim ((h1 ") (#) ((f /* (h1 + c)) - (f /* c))) = lim ((d ") (#) ((f /* (d + c)) - (f /* c))) by A21, SEQ_4:17; hence lim ((h1 ") (#) ((f /* (h1 + c)) - (f /* c))) = lim ((h2 ") (#) ((f /* (h2 + c)) - (f /* c))) by A21, A19, SEQ_4:17; ::_thesis: verum end; definition let f be PartFunc of REAL,REAL; let x0 be Real; predf is_Lcontinuous_in x0 means :Def1: :: FDIFF_3:def 1 ( x0 in dom f & ( for a being Real_Sequence st rng a c= (left_open_halfline x0) /\ (dom f) & a is convergent & lim a = x0 holds ( f /* a is convergent & f . x0 = lim (f /* a) ) ) ); predf is_Rcontinuous_in x0 means :Def2: :: FDIFF_3:def 2 ( x0 in dom f & ( for a being Real_Sequence st rng a c= (right_open_halfline x0) /\ (dom f) & a is convergent & lim a = x0 holds ( f /* a is convergent & f . x0 = lim (f /* a) ) ) ); predf is_right_differentiable_in x0 means :Def3: :: FDIFF_3:def 3 ( ex r being Real st ( r > 0 & [.x0,(x0 + r).] c= dom f ) & ( for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n > 0 ) holds (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent ) ); predf is_left_differentiable_in x0 means :Def4: :: FDIFF_3:def 4 ( ex r being Real st ( r > 0 & [.(x0 - r),x0.] c= dom f ) & ( for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n < 0 ) holds (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent ) ); end; :: deftheorem Def1 defines is_Lcontinuous_in FDIFF_3:def_1_:_ for f being PartFunc of REAL,REAL for x0 being Real holds ( f is_Lcontinuous_in x0 iff ( x0 in dom f & ( for a being Real_Sequence st rng a c= (left_open_halfline x0) /\ (dom f) & a is convergent & lim a = x0 holds ( f /* a is convergent & f . x0 = lim (f /* a) ) ) ) ); :: deftheorem Def2 defines is_Rcontinuous_in FDIFF_3:def_2_:_ for f being PartFunc of REAL,REAL for x0 being Real holds ( f is_Rcontinuous_in x0 iff ( x0 in dom f & ( for a being Real_Sequence st rng a c= (right_open_halfline x0) /\ (dom f) & a is convergent & lim a = x0 holds ( f /* a is convergent & f . x0 = lim (f /* a) ) ) ) ); :: deftheorem Def3 defines is_right_differentiable_in FDIFF_3:def_3_:_ for f being PartFunc of REAL,REAL for x0 being Real holds ( f is_right_differentiable_in x0 iff ( ex r being Real st ( r > 0 & [.x0,(x0 + r).] c= dom f ) & ( for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n > 0 ) holds (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent ) ) ); :: deftheorem Def4 defines is_left_differentiable_in FDIFF_3:def_4_:_ for f being PartFunc of REAL,REAL for x0 being Real holds ( f is_left_differentiable_in x0 iff ( ex r being Real st ( r > 0 & [.(x0 - r),x0.] c= dom f ) & ( for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n < 0 ) holds (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent ) ) ); theorem Th5: :: FDIFF_3:5 for f being PartFunc of REAL,REAL for x0 being Real st f is_left_differentiable_in x0 holds f is_Lcontinuous_in x0 proof let f be PartFunc of REAL,REAL; ::_thesis: for x0 being Real st f is_left_differentiable_in x0 holds f is_Lcontinuous_in x0 let x0 be Real; ::_thesis: ( f is_left_differentiable_in x0 implies f is_Lcontinuous_in x0 ) assume A1: f is_left_differentiable_in x0 ; ::_thesis: f is_Lcontinuous_in x0 A2: for a being Real_Sequence st rng a c= (left_open_halfline x0) /\ (dom f) & a is convergent & lim a = x0 holds ( f /* a is convergent & f . x0 = lim (f /* a) ) proof reconsider b = NAT --> x0 as Real_Sequence ; let a be Real_Sequence; ::_thesis: ( rng a c= (left_open_halfline x0) /\ (dom f) & a is convergent & lim a = x0 implies ( f /* a is convergent & f . x0 = lim (f /* a) ) ) assume that A3: rng a c= (left_open_halfline x0) /\ (dom f) and A4: a is convergent and A5: lim a = x0 ; ::_thesis: ( f /* a is convergent & f . x0 = lim (f /* a) ) consider r being Real such that A6: 0 < r and A7: [.(x0 - r),x0.] c= dom f by A1, Def4; consider n0 being Element of NAT such that A8: for k being Element of NAT st k >= n0 holds x0 - r < a . k by A4, A5, A6, LIMFUNC2:1, XREAL_1:44; deffunc H1( Element of NAT ) -> Element of REAL = (a . $1) - (b . $1); consider d being Real_Sequence such that A9: for n being Element of NAT holds d . n = H1(n) from SEQ_1:sch_1(); A10: d = a - b by A9, RFUNCT_2:1; then A11: d is convergent by A4, SEQ_2:11; reconsider c = b ^\ n0 as constant Real_Sequence ; A12: rng c = {x0} proof thus rng c c= {x0} :: according to XBOOLE_0:def_10 ::_thesis: {x0} c= rng c proof let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in rng c or x in {x0} ) assume x in rng c ; ::_thesis: x in {x0} then consider n being Element of NAT such that A13: x = (b ^\ n0) . n by FUNCT_2:113; x = b . (n + n0) by A13, NAT_1:def_3; then x = x0 by FUNCOP_1:7; hence x in {x0} by TARSKI:def_1; ::_thesis: verum end; let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in {x0} or x in rng c ) assume x in {x0} ; ::_thesis: x in rng c then A14: x = x0 by TARSKI:def_1; c . 0 = b . (0 + n0) by NAT_1:def_3 .= x by A14, FUNCOP_1:7 ; hence x in rng c by VALUED_0:28; ::_thesis: verum end; A15: now__::_thesis:_for_g_being_real_number_st_0_<_g_holds_ ex_n_being_Element_of_NAT_st_ for_m_being_Element_of_NAT_st_n_<=_m_holds_ abs_(((f_/*_c)_._m)_-_(f_._x0))_<_g let g be real number ; ::_thesis: ( 0 < g implies ex n being Element of NAT st for m being Element of NAT st n <= m holds abs (((f /* c) . m) - (f . x0)) < g ) assume A16: 0 < g ; ::_thesis: ex n being Element of NAT st for m being Element of NAT st n <= m holds abs (((f /* c) . m) - (f . x0)) < g take n = 0 ; ::_thesis: for m being Element of NAT st n <= m holds abs (((f /* c) . m) - (f . x0)) < g let m be Element of NAT ; ::_thesis: ( n <= m implies abs (((f /* c) . m) - (f . x0)) < g ) assume n <= m ; ::_thesis: abs (((f /* c) . m) - (f . x0)) < g x0 - r <= x0 by A6, XREAL_1:44; then x0 in [.(x0 - r),x0.] by XXREAL_1:1; then rng c c= dom f by A7, A12, ZFMISC_1:31; then abs (((f /* c) . m) - (f . x0)) = abs ((f . (c . m)) - (f . x0)) by FUNCT_2:108 .= abs ((f . (b . (m + n0))) - (f . x0)) by NAT_1:def_3 .= abs ((f . x0) - (f . x0)) by FUNCOP_1:7 .= 0 by ABSVALUE:2 ; hence abs (((f /* c) . m) - (f . x0)) < g by A16; ::_thesis: verum end; then A17: f /* c is convergent by SEQ_2:def_6; lim b = b . 0 by SEQ_4:26 .= x0 by FUNCOP_1:7 ; then lim d = x0 - x0 by A4, A5, A10, SEQ_2:12 .= 0 ; then A18: lim (d ^\ n0) = 0 by A11, SEQ_4:20; A19: for n being Element of NAT holds ( d . n < 0 & d . n <> 0 ) proof let n be Element of NAT ; ::_thesis: ( d . n < 0 & d . n <> 0 ) A20: d . n = (a . n) - (b . n) by A9; a . n in rng a by VALUED_0:28; then a . n in left_open_halfline x0 by A3, XBOOLE_0:def_4; then a . n in { r1 where r1 is Real : r1 < x0 } by XXREAL_1:229; then A21: ex r1 being Real st ( r1 = a . n & r1 < x0 ) ; then (a . n) - x0 < x0 - x0 by XREAL_1:9; hence d . n < 0 by A20, FUNCOP_1:7; ::_thesis: d . n <> 0 thus d . n <> 0 by A20, A21, FUNCOP_1:7; ::_thesis: verum end; A22: for n being Element of NAT holds (d ^\ n0) . n < 0 proof let n be Element of NAT ; ::_thesis: (d ^\ n0) . n < 0 (d ^\ n0) . n = d . (n + n0) by NAT_1:def_3; hence (d ^\ n0) . n < 0 by A19; ::_thesis: verum end; then for n being Element of NAT holds (d ^\ n0) . n <> 0 ; then d ^\ n0 is non-zero by SEQ_1:5; then reconsider h = d ^\ n0 as non-zero 0 -convergent Real_Sequence by A11, A18, FDIFF_1:def_1; A23: 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 hence x in dom f by A3, XBOOLE_0:def_4; ::_thesis: verum end; now__::_thesis:_for_n_being_Element_of_NAT_holds_(((f_/*_(h_+_c))_-_(f_/*_c))_+_(f_/*_c))_._n_=_(f_/*_(h_+_c))_._n let n be Element of NAT ; ::_thesis: (((f /* (h + c)) - (f /* c)) + (f /* c)) . n = (f /* (h + c)) . n thus (((f /* (h + c)) - (f /* c)) + (f /* c)) . n = (((f /* (h + c)) - (f /* c)) . n) + ((f /* c) . n) by SEQ_1:7 .= (((f /* (h + c)) . n) - ((f /* c) . n)) + ((f /* c) . n) by RFUNCT_2:1 .= (f /* (h + c)) . n ; ::_thesis: verum end; then A24: ((f /* (h + c)) - (f /* c)) + (f /* c) = f /* (h + c) by FUNCT_2:63; now__::_thesis:_for_n_being_Element_of_NAT_holds_(h_+_c)_._n_=_(a_^\_n0)_._n let n be Element of NAT ; ::_thesis: (h + c) . n = (a ^\ n0) . n thus (h + c) . n = (((a - b) + b) ^\ n0) . n by A10, SEQM_3:15 .= ((a - b) + b) . (n + n0) by NAT_1:def_3 .= ((a - b) . (n + n0)) + (b . (n + n0)) by SEQ_1:7 .= ((a . (n + n0)) - (b . (n + n0))) + (b . (n + n0)) by RFUNCT_2:1 .= (a ^\ n0) . n by NAT_1:def_3 ; ::_thesis: verum end; then A25: ((f /* (h + c)) - (f /* c)) + (f /* c) = f /* (a ^\ n0) by A24, FUNCT_2:63 .= (f /* a) ^\ n0 by A23, VALUED_0:27 ; A26: for n being Element of NAT holds (a ^\ n0) . n in [.(x0 - r),x0.] proof let n be Element of NAT ; ::_thesis: (a ^\ n0) . n in [.(x0 - r),x0.] a . (n + n0) in rng a by VALUED_0:28; then (a ^\ n0) . n in rng a by NAT_1:def_3; then (a ^\ n0) . n in left_open_halfline x0 by A3, XBOOLE_0:def_4; then (a ^\ n0) . n in { g where g is Real : g < x0 } by XXREAL_1:229; then A27: ex g being Real st ( g = (a ^\ n0) . n & g < x0 ) ; ( 0 <= n & 0 + n0 = n0 ) by NAT_1:2; then n0 <= n0 + n by XREAL_1:6; then x0 - r <= a . (n + n0) by A8; then x0 - r <= (a ^\ n0) . n by NAT_1:def_3; then (a ^\ n0) . n in { g where g is Real : ( x0 - r <= g & g <= x0 ) } by A27; hence (a ^\ n0) . n in [.(x0 - r),x0.] by RCOMP_1:def_1; ::_thesis: verum end; rng (h + c) c= [.(x0 - r),x0.] proof let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in rng (h + c) or x in [.(x0 - r),x0.] ) assume x in rng (h + c) ; ::_thesis: x in [.(x0 - r),x0.] then consider n being Element of NAT such that A28: x = (h + c) . n by FUNCT_2:113; (h + c) . n = (((a - b) + b) ^\ n0) . n by A10, SEQM_3:15 .= ((a - b) + b) . (n + n0) by NAT_1:def_3 .= ((a - b) . (n + n0)) + (b . (n + n0)) by SEQ_1:7 .= ((a . (n + n0)) - (b . (n + n0))) + (b . (n + n0)) by RFUNCT_2:1 .= (a ^\ n0) . n by NAT_1:def_3 ; hence x in [.(x0 - r),x0.] by A26, A28; ::_thesis: verum end; then rng (h + c) c= dom f by A7, XBOOLE_1:1; then A29: (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent by A1, A22, A12, Def4; then A30: lim (h (#) ((h ") (#) ((f /* (h + c)) - (f /* c)))) = 0 * (lim ((h ") (#) ((f /* (h + c)) - (f /* c)))) by A18, SEQ_2:15 .= 0 ; now__::_thesis:_for_n_being_Element_of_NAT_holds_(h_(#)_((h_")_(#)_((f_/*_(h_+_c))_-_(f_/*_c))))_._n_=_((f_/*_(h_+_c))_-_(f_/*_c))_._n let n be Element of NAT ; ::_thesis: (h (#) ((h ") (#) ((f /* (h + c)) - (f /* c)))) . n = ((f /* (h + c)) - (f /* c)) . n A31: h . n <> 0 by A22; thus (h (#) ((h ") (#) ((f /* (h + c)) - (f /* c)))) . n = (h . n) * (((h ") (#) ((f /* (h + c)) - (f /* c))) . n) by SEQ_1:8 .= (h . n) * (((h ") . n) * (((f /* (h + c)) - (f /* c)) . n)) by SEQ_1:8 .= (h . n) * (((h . n) ") * (((f /* (h + c)) - (f /* c)) . n)) by VALUED_1:10 .= ((h . n) * ((h . n) ")) * (((f /* (h + c)) - (f /* c)) . n) .= 1 * (((f /* (h + c)) - (f /* c)) . n) by A31, XCMPLX_0:def_7 .= ((f /* (h + c)) - (f /* c)) . n ; ::_thesis: verum end; then A32: h (#) ((h ") (#) ((f /* (h + c)) - (f /* c))) = (f /* (h + c)) - (f /* c) by FUNCT_2:63; then A33: (f /* (h + c)) - (f /* c) is convergent by A29, SEQ_2:14; then A34: ((f /* (h + c)) - (f /* c)) + (f /* c) is convergent by A17, SEQ_2:5; hence f /* a is convergent by A25, SEQ_4:21; ::_thesis: f . x0 = lim (f /* a) lim (f /* c) = f . x0 by A15, A17, SEQ_2:def_7; then lim (((f /* (h + c)) - (f /* c)) + (f /* c)) = 0 + (f . x0) by A30, A32, A33, A17, SEQ_2:6 .= f . x0 ; hence f . x0 = lim (f /* a) by A34, A25, SEQ_4:22; ::_thesis: verum end; x0 in dom f proof consider r being Real such that A35: 0 < r and A36: [.(x0 - r),x0.] c= dom f by A1, Def4; x0 - r <= x0 by A35, XREAL_1:44; then x0 in [.(x0 - r),x0.] by XXREAL_1:1; hence x0 in dom f by A36; ::_thesis: verum end; hence f is_Lcontinuous_in x0 by A2, Def1; ::_thesis: verum end; theorem Th6: :: FDIFF_3:6 for f being PartFunc of REAL,REAL for x0, g2 being Real st f is_Lcontinuous_in x0 & f . x0 <> g2 & ex r being Real st ( r > 0 & [.(x0 - r),x0.] c= dom f ) holds ex r1 being Real st ( r1 > 0 & [.(x0 - r1),x0.] c= dom f & ( for g being Real st g in [.(x0 - r1),x0.] holds f . g <> g2 ) ) proof let f be PartFunc of REAL,REAL; ::_thesis: for x0, g2 being Real st f is_Lcontinuous_in x0 & f . x0 <> g2 & ex r being Real st ( r > 0 & [.(x0 - r),x0.] c= dom f ) holds ex r1 being Real st ( r1 > 0 & [.(x0 - r1),x0.] c= dom f & ( for g being Real st g in [.(x0 - r1),x0.] holds f . g <> g2 ) ) let x0, g2 be Real; ::_thesis: ( f is_Lcontinuous_in x0 & f . x0 <> g2 & ex r being Real st ( r > 0 & [.(x0 - r),x0.] c= dom f ) implies ex r1 being Real st ( r1 > 0 & [.(x0 - r1),x0.] c= dom f & ( for g being Real st g in [.(x0 - r1),x0.] holds f . g <> g2 ) ) ) assume that A1: f is_Lcontinuous_in x0 and A2: f . x0 <> g2 ; ::_thesis: ( for r being Real holds ( not r > 0 or not [.(x0 - r),x0.] c= dom f ) or ex r1 being Real st ( r1 > 0 & [.(x0 - r1),x0.] c= dom f & ( for g being Real st g in [.(x0 - r1),x0.] holds f . g <> g2 ) ) ) given r being Real such that A3: r > 0 and A4: [.(x0 - r),x0.] c= dom f ; ::_thesis: ex r1 being Real st ( r1 > 0 & [.(x0 - r1),x0.] c= dom f & ( for g being Real st g in [.(x0 - r1),x0.] holds f . g <> g2 ) ) defpred S1[ Element of NAT , set ] means ( $2 in [.(x0 - (r / ($1 + 1))),x0.] & $2 in dom f & f . $2 = g2 ); assume A5: for r1 being Real st r1 > 0 & [.(x0 - r1),x0.] c= dom f holds ex g being Real st ( g in [.(x0 - r1),x0.] & f . g = g2 ) ; ::_thesis: contradiction A6: for n being Element of NAT ex g being Real st S1[n,g] proof let n be Element of NAT ; ::_thesis: ex g being Real st S1[n,g] x0 - r <= x0 by A3, XREAL_1:44; then A7: x0 in [.(x0 - r),x0.] by XXREAL_1:1; A8: 0 <= n by NAT_1:2; then 0 + 1 <= n + 1 by XREAL_1:7; then r / (n + 1) <= r / 1 by A3, XREAL_1:118; then A9: x0 - r <= x0 - (r / (n + 1)) by XREAL_1:13; x0 - (r / (n + 1)) <= x0 by A3, A8, XREAL_1:44, XREAL_1:139; then x0 - (r / (n + 1)) in { g1 where g1 is Real : ( x0 - r <= g1 & g1 <= x0 ) } by A9; then x0 - (r / (n + 1)) in [.(x0 - r),x0.] by RCOMP_1:def_1; then [.(x0 - (r / (n + 1))),x0.] c= [.(x0 - r),x0.] by A7, XXREAL_2:def_12; then A10: [.(x0 - (r / (n + 1))),x0.] c= dom f by A4, XBOOLE_1:1; then consider g being Real such that A11: ( g in [.(x0 - (r / (n + 1))),x0.] & f . g = g2 ) by A3, A5, A8, XREAL_1:139; take g ; ::_thesis: S1[n,g] thus S1[n,g] by A10, A11; ::_thesis: verum end; consider a being Real_Sequence such that A12: for n being Element of NAT holds S1[n,a . n] from FUNCT_2:sch_3(A6); A13: rng a c= (left_open_halfline x0) /\ (dom f) proof let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in rng a or x in (left_open_halfline x0) /\ (dom f) ) assume x in rng a ; ::_thesis: x in (left_open_halfline x0) /\ (dom f) then consider n being Element of NAT such that A14: x = a . n by FUNCT_2:113; a . n in [.(x0 - (r / (n + 1))),x0.] by A12; then a . n in { g1 where g1 is Real : ( x0 - (r / (n + 1)) <= g1 & g1 <= x0 ) } by RCOMP_1:def_1; then A15: ex g1 being Real st ( g1 = a . n & x0 - (r / (n + 1)) <= g1 & g1 <= x0 ) ; a . n <> x0 by A2, A12; then a . n < x0 by A15, XXREAL_0:1; then a . n in { g1 where g1 is Real : g1 < x0 } ; then A16: a . n in left_open_halfline x0 by XXREAL_1:229; a . n in dom f by A12; hence x in (left_open_halfline x0) /\ (dom f) by A14, A16, XBOOLE_0:def_4; ::_thesis: verum end; A17: (left_open_halfline x0) /\ (dom f) c= dom f by XBOOLE_1:17; A18: for n being Element of NAT holds (f /* a) . n = g2 proof let n be Element of NAT ; ::_thesis: (f /* a) . n = g2 thus (f /* a) . n = f . (a . n) by A13, A17, FUNCT_2:108, XBOOLE_1:1 .= g2 by A12 ; ::_thesis: verum end; now__::_thesis:_for_n_being_Nat_holds_(f_/*_a)_._n_=_(f_/*_a)_._(n_+_1) let n be Nat; ::_thesis: (f /* a) . n = (f /* a) . (n + 1) n in NAT by ORDINAL1:def_12; then (f /* a) . n = g2 by A18; hence (f /* a) . n = (f /* a) . (n + 1) by A18; ::_thesis: verum end; then A19: lim (f /* a) = (f /* a) . 0 by SEQ_4:26, VALUED_0:25 .= g2 by A18 ; reconsider d = NAT --> x0 as Real_Sequence ; deffunc H1( Element of NAT ) -> Element of REAL = x0 - (r / ($1 + 1)); consider b being Real_Sequence such that A20: for n being Element of NAT holds b . n = H1(n) from SEQ_1:sch_1(); A21: now__::_thesis:_for_n_being_Element_of_NAT_holds_ (_b_._n_<=_a_._n_&_a_._n_<=_d_._n_) let n be Element of NAT ; ::_thesis: ( b . n <= a . n & a . n <= d . n ) a . n in [.(x0 - (r / (n + 1))),x0.] by A12; then a . n in { g1 where g1 is Real : ( x0 - (r / (n + 1)) <= g1 & g1 <= x0 ) } by RCOMP_1:def_1; then ex g1 being Real st ( g1 = a . n & x0 - (r / (n + 1)) <= g1 & g1 <= x0 ) ; hence ( b . n <= a . n & a . n <= d . n ) by A20, FUNCOP_1:7; ::_thesis: verum end; A22: lim d = d . 0 by SEQ_4:26 .= x0 by FUNCOP_1:7 ; ( b is convergent & lim b = x0 ) by A20, FCONT_3:5; then ( a is convergent & lim a = x0 ) by A22, A21, SEQ_2:19, SEQ_2:20; hence contradiction by A1, A2, A13, A19, Def1; ::_thesis: verum end; theorem Th7: :: FDIFF_3:7 for f being PartFunc of REAL,REAL for x0 being Real st f is_right_differentiable_in x0 holds f is_Rcontinuous_in x0 proof let f be PartFunc of REAL,REAL; ::_thesis: for x0 being Real st f is_right_differentiable_in x0 holds f is_Rcontinuous_in x0 let x0 be Real; ::_thesis: ( f is_right_differentiable_in x0 implies f is_Rcontinuous_in x0 ) assume A1: f is_right_differentiable_in x0 ; ::_thesis: f is_Rcontinuous_in x0 then consider r being Real such that A2: r > 0 and A3: [.x0,(x0 + r).] c= dom f by Def3; A4: for a being Real_Sequence st rng a c= (right_open_halfline x0) /\ (dom f) & a is convergent & lim a = x0 holds ( f /* a is convergent & f . x0 = lim (f /* a) ) proof reconsider b = NAT --> x0 as Real_Sequence ; let a be Real_Sequence; ::_thesis: ( rng a c= (right_open_halfline x0) /\ (dom f) & a is convergent & lim a = x0 implies ( f /* a is convergent & f . x0 = lim (f /* a) ) ) assume that A5: rng a c= (right_open_halfline x0) /\ (dom f) and A6: a is convergent and A7: lim a = x0 ; ::_thesis: ( f /* a is convergent & f . x0 = lim (f /* a) ) consider r being Real such that A8: r > 0 and A9: [.x0,(x0 + r).] c= dom f by A1, Def3; x0 + 0 < x0 + r by A8, XREAL_1:6; then consider n0 being Element of NAT such that A10: for k being Element of NAT st k >= n0 holds a . k < x0 + r by A6, A7, LIMFUNC2:2; deffunc H1( Element of NAT ) -> Element of REAL = (a . $1) - (b . $1); consider d being Real_Sequence such that A11: for n being Element of NAT holds d . n = H1(n) from SEQ_1:sch_1(); A12: d = a - b by A11, RFUNCT_2:1; then A13: d is convergent by A6, SEQ_2:11; reconsider c = b ^\ n0 as constant Real_Sequence ; A14: rng c = {x0} proof thus rng c c= {x0} :: according to XBOOLE_0:def_10 ::_thesis: {x0} c= rng c proof let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in rng c or x in {x0} ) assume x in rng c ; ::_thesis: x in {x0} then consider n being Element of NAT such that A15: x = (b ^\ n0) . n by FUNCT_2:113; x = b . (n + n0) by A15, NAT_1:def_3; then x = x0 by FUNCOP_1:7; hence x in {x0} by TARSKI:def_1; ::_thesis: verum end; let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in {x0} or x in rng c ) assume x in {x0} ; ::_thesis: x in rng c then A16: x = x0 by TARSKI:def_1; c . 0 = b . (0 + n0) by NAT_1:def_3 .= x by A16, FUNCOP_1:7 ; hence x in rng c by VALUED_0:28; ::_thesis: verum end; A17: now__::_thesis:_for_g_being_real_number_st_0_<_g_holds_ ex_n_being_Element_of_NAT_st_ for_m_being_Element_of_NAT_st_n_<=_m_holds_ abs_(((f_/*_c)_._m)_-_(f_._x0))_<_g let g be real number ; ::_thesis: ( 0 < g implies ex n being Element of NAT st for m being Element of NAT st n <= m holds abs (((f /* c) . m) - (f . x0)) < g ) assume A18: 0 < g ; ::_thesis: ex n being Element of NAT st for m being Element of NAT st n <= m holds abs (((f /* c) . m) - (f . x0)) < g take n = 0 ; ::_thesis: for m being Element of NAT st n <= m holds abs (((f /* c) . m) - (f . x0)) < g let m be Element of NAT ; ::_thesis: ( n <= m implies abs (((f /* c) . m) - (f . x0)) < g ) assume n <= m ; ::_thesis: abs (((f /* c) . m) - (f . x0)) < g x0 + 0 <= x0 + r by A8, XREAL_1:7; then x0 in [.x0,(x0 + r).] by XXREAL_1:1; then rng c c= dom f by A9, A14, ZFMISC_1:31; then abs (((f /* c) . m) - (f . x0)) = abs ((f . (c . m)) - (f . x0)) by FUNCT_2:108 .= abs ((f . (b . (m + n0))) - (f . x0)) by NAT_1:def_3 .= abs ((f . x0) - (f . x0)) by FUNCOP_1:7 .= 0 by ABSVALUE:2 ; hence abs (((f /* c) . m) - (f . x0)) < g by A18; ::_thesis: verum end; then A19: f /* c is convergent by SEQ_2:def_6; lim b = b . 0 by SEQ_4:26 .= x0 by FUNCOP_1:7 ; then lim d = x0 - x0 by A6, A7, A12, SEQ_2:12 .= 0 ; then A20: lim (d ^\ n0) = 0 by A13, SEQ_4:20; A21: for n being Element of NAT holds ( d . n > 0 & d . n <> 0 ) proof let n be Element of NAT ; ::_thesis: ( d . n > 0 & d . n <> 0 ) A22: d . n = (a . n) - (b . n) by A11; a . n in rng a by VALUED_0:28; then a . n in right_open_halfline x0 by A5, XBOOLE_0:def_4; then a . n in { r1 where r1 is Real : x0 < r1 } by XXREAL_1:230; then A23: ex r1 being Real st ( r1 = a . n & x0 < r1 ) ; then (a . n) - x0 > x0 - x0 by XREAL_1:9; hence d . n > 0 by A22, FUNCOP_1:7; ::_thesis: d . n <> 0 thus d . n <> 0 by A22, A23, FUNCOP_1:7; ::_thesis: verum end; A24: for n being Element of NAT holds (d ^\ n0) . n > 0 proof let n be Element of NAT ; ::_thesis: (d ^\ n0) . n > 0 (d ^\ n0) . n = d . (n + n0) by NAT_1:def_3; hence (d ^\ n0) . n > 0 by A21; ::_thesis: verum end; then for n being Element of NAT holds (d ^\ n0) . n <> 0 ; then d ^\ n0 is non-zero by SEQ_1:5; then reconsider h = d ^\ n0 as non-zero 0 -convergent Real_Sequence by A13, A20, FDIFF_1:def_1; A25: 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 hence x in dom f by A5, XBOOLE_0:def_4; ::_thesis: verum end; now__::_thesis:_for_n_being_Element_of_NAT_holds_(((f_/*_(h_+_c))_-_(f_/*_c))_+_(f_/*_c))_._n_=_(f_/*_(h_+_c))_._n let n be Element of NAT ; ::_thesis: (((f /* (h + c)) - (f /* c)) + (f /* c)) . n = (f /* (h + c)) . n thus (((f /* (h + c)) - (f /* c)) + (f /* c)) . n = (((f /* (h + c)) - (f /* c)) . n) + ((f /* c) . n) by SEQ_1:7 .= (((f /* (h + c)) . n) - ((f /* c) . n)) + ((f /* c) . n) by RFUNCT_2:1 .= (f /* (h + c)) . n ; ::_thesis: verum end; then A26: ((f /* (h + c)) - (f /* c)) + (f /* c) = f /* (h + c) by FUNCT_2:63; now__::_thesis:_for_n_being_Element_of_NAT_holds_(h_+_c)_._n_=_(a_^\_n0)_._n let n be Element of NAT ; ::_thesis: (h + c) . n = (a ^\ n0) . n thus (h + c) . n = (((a - b) + b) ^\ n0) . n by A12, SEQM_3:15 .= ((a - b) + b) . (n + n0) by NAT_1:def_3 .= ((a - b) . (n + n0)) + (b . (n + n0)) by SEQ_1:7 .= ((a . (n + n0)) - (b . (n + n0))) + (b . (n + n0)) by RFUNCT_2:1 .= (a ^\ n0) . n by NAT_1:def_3 ; ::_thesis: verum end; then A27: ((f /* (h + c)) - (f /* c)) + (f /* c) = f /* (a ^\ n0) by A26, FUNCT_2:63 .= (f /* a) ^\ n0 by A25, VALUED_0:27 ; A28: for n being Element of NAT holds (a ^\ n0) . n in [.x0,(x0 + r).] proof let n be Element of NAT ; ::_thesis: (a ^\ n0) . n in [.x0,(x0 + r).] a . (n + n0) in rng a by VALUED_0:28; then (a ^\ n0) . n in rng a by NAT_1:def_3; then (a ^\ n0) . n in right_open_halfline x0 by A5, XBOOLE_0:def_4; then (a ^\ n0) . n in { g where g is Real : x0 < g } by XXREAL_1:230; then A29: ex g being Real st ( g = (a ^\ n0) . n & x0 < g ) ; ( 0 <= n & 0 + n0 = n0 ) by NAT_1:2; then n0 <= n0 + n by XREAL_1:6; then a . (n + n0) <= x0 + r by A10; then (a ^\ n0) . n <= x0 + r by NAT_1:def_3; then (a ^\ n0) . n in { g where g is Real : ( x0 <= g & g <= x0 + r ) } by A29; hence (a ^\ n0) . n in [.x0,(x0 + r).] by RCOMP_1:def_1; ::_thesis: verum end; rng (h + c) c= [.x0,(x0 + r).] proof let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in rng (h + c) or x in [.x0,(x0 + r).] ) assume x in rng (h + c) ; ::_thesis: x in [.x0,(x0 + r).] then consider n being Element of NAT such that A30: x = (h + c) . n by FUNCT_2:113; (h + c) . n = (((a - b) + b) ^\ n0) . n by A12, SEQM_3:15 .= ((a - b) + b) . (n + n0) by NAT_1:def_3 .= ((a - b) . (n + n0)) + (b . (n + n0)) by SEQ_1:7 .= ((a . (n + n0)) - (b . (n + n0))) + (b . (n + n0)) by RFUNCT_2:1 .= (a ^\ n0) . n by NAT_1:def_3 ; hence x in [.x0,(x0 + r).] by A28, A30; ::_thesis: verum end; then rng (h + c) c= dom f by A9, XBOOLE_1:1; then A31: (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent by A1, A24, A14, Def3; then A32: lim (h (#) ((h ") (#) ((f /* (h + c)) - (f /* c)))) = 0 * (lim ((h ") (#) ((f /* (h + c)) - (f /* c)))) by A20, SEQ_2:15 .= 0 ; now__::_thesis:_for_n_being_Element_of_NAT_holds_(h_(#)_((h_")_(#)_((f_/*_(h_+_c))_-_(f_/*_c))))_._n_=_((f_/*_(h_+_c))_-_(f_/*_c))_._n let n be Element of NAT ; ::_thesis: (h (#) ((h ") (#) ((f /* (h + c)) - (f /* c)))) . n = ((f /* (h + c)) - (f /* c)) . n A33: h . n <> 0 by A24; thus (h (#) ((h ") (#) ((f /* (h + c)) - (f /* c)))) . n = (h . n) * (((h ") (#) ((f /* (h + c)) - (f /* c))) . n) by SEQ_1:8 .= (h . n) * (((h ") . n) * (((f /* (h + c)) - (f /* c)) . n)) by SEQ_1:8 .= (h . n) * (((h . n) ") * (((f /* (h + c)) - (f /* c)) . n)) by VALUED_1:10 .= ((h . n) * ((h . n) ")) * (((f /* (h + c)) - (f /* c)) . n) .= 1 * (((f /* (h + c)) - (f /* c)) . n) by A33, XCMPLX_0:def_7 .= ((f /* (h + c)) - (f /* c)) . n ; ::_thesis: verum end; then A34: h (#) ((h ") (#) ((f /* (h + c)) - (f /* c))) = (f /* (h + c)) - (f /* c) by FUNCT_2:63; then A35: (f /* (h + c)) - (f /* c) is convergent by A31, SEQ_2:14; then A36: ((f /* (h + c)) - (f /* c)) + (f /* c) is convergent by A19, SEQ_2:5; hence f /* a is convergent by A27, SEQ_4:21; ::_thesis: f . x0 = lim (f /* a) lim (f /* c) = f . x0 by A17, A19, SEQ_2:def_7; then lim (((f /* (h + c)) - (f /* c)) + (f /* c)) = 0 + (f . x0) by A32, A34, A35, A19, SEQ_2:6 .= f . x0 ; hence f . x0 = lim (f /* a) by A36, A27, SEQ_4:22; ::_thesis: verum end; x0 + 0 <= x0 + r by A2, XREAL_1:7; then x0 in [.x0,(x0 + r).] by XXREAL_1:1; hence f is_Rcontinuous_in x0 by A3, A4, Def2; ::_thesis: verum end; theorem Th8: :: FDIFF_3:8 for f being PartFunc of REAL,REAL for x0, g2 being Real st f is_Rcontinuous_in x0 & f . x0 <> g2 & ex r being Real st ( r > 0 & [.x0,(x0 + r).] c= dom f ) holds ex r1 being Real st ( r1 > 0 & [.x0,(x0 + r1).] c= dom f & ( for g being Real st g in [.x0,(x0 + r1).] holds f . g <> g2 ) ) proof let f be PartFunc of REAL,REAL; ::_thesis: for x0, g2 being Real st f is_Rcontinuous_in x0 & f . x0 <> g2 & ex r being Real st ( r > 0 & [.x0,(x0 + r).] c= dom f ) holds ex r1 being Real st ( r1 > 0 & [.x0,(x0 + r1).] c= dom f & ( for g being Real st g in [.x0,(x0 + r1).] holds f . g <> g2 ) ) let x0, g2 be Real; ::_thesis: ( f is_Rcontinuous_in x0 & f . x0 <> g2 & ex r being Real st ( r > 0 & [.x0,(x0 + r).] c= dom f ) implies ex r1 being Real st ( r1 > 0 & [.x0,(x0 + r1).] c= dom f & ( for g being Real st g in [.x0,(x0 + r1).] holds f . g <> g2 ) ) ) assume that A1: f is_Rcontinuous_in x0 and A2: f . x0 <> g2 ; ::_thesis: ( for r being Real holds ( not r > 0 or not [.x0,(x0 + r).] c= dom f ) or ex r1 being Real st ( r1 > 0 & [.x0,(x0 + r1).] c= dom f & ( for g being Real st g in [.x0,(x0 + r1).] holds f . g <> g2 ) ) ) given r being Real such that A3: r > 0 and A4: [.x0,(x0 + r).] c= dom f ; ::_thesis: ex r1 being Real st ( r1 > 0 & [.x0,(x0 + r1).] c= dom f & ( for g being Real st g in [.x0,(x0 + r1).] holds f . g <> g2 ) ) defpred S1[ Element of NAT , set ] means ( $2 in [.x0,(x0 + (r / ($1 + 1))).] & $2 in dom f & f . $2 = g2 ); assume A5: for r1 being Real st r1 > 0 & [.x0,(x0 + r1).] c= dom f holds ex g being Real st ( g in [.x0,(x0 + r1).] & f . g = g2 ) ; ::_thesis: contradiction A6: for n being Element of NAT ex g being Real st S1[n,g] proof let n be Element of NAT ; ::_thesis: ex g being Real st S1[n,g] x0 + 0 <= x0 + r by A3, XREAL_1:7; then A7: x0 in [.x0,(x0 + r).] by XXREAL_1:1; A8: 0 <= n by NAT_1:2; then 0 + 1 <= n + 1 by XREAL_1:7; then r / (n + 1) <= r / 1 by A3, XREAL_1:118; then A9: x0 + (r / (n + 1)) <= x0 + r by XREAL_1:7; x0 + 0 = x0 ; then x0 <= x0 + (r / (n + 1)) by A3, A8, XREAL_1:7; then x0 + (r / (n + 1)) in { g1 where g1 is Real : ( x0 <= g1 & g1 <= x0 + r ) } by A9; then x0 + (r / (n + 1)) in [.x0,(x0 + r).] by RCOMP_1:def_1; then [.x0,(x0 + (r / (n + 1))).] c= [.x0,(x0 + r).] by A7, XXREAL_2:def_12; then A10: [.x0,(x0 + (r / (n + 1))).] c= dom f by A4, XBOOLE_1:1; then consider g being Real such that A11: ( g in [.x0,(x0 + (r / (n + 1))).] & f . g = g2 ) by A3, A5, A8, XREAL_1:139; take g ; ::_thesis: S1[n,g] thus S1[n,g] by A10, A11; ::_thesis: verum end; consider a being Real_Sequence such that A12: for n being Element of NAT holds S1[n,a . n] from FUNCT_2:sch_3(A6); A13: rng a c= (right_open_halfline x0) /\ (dom f) proof let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in rng a or x in (right_open_halfline x0) /\ (dom f) ) assume x in rng a ; ::_thesis: x in (right_open_halfline x0) /\ (dom f) then consider n being Element of NAT such that A14: x = a . n by FUNCT_2:113; a . n in [.x0,(x0 + (r / (n + 1))).] by A12; then a . n in { g1 where g1 is Real : ( x0 <= g1 & g1 <= x0 + (r / (n + 1)) ) } by RCOMP_1:def_1; then A15: ex g1 being Real st ( g1 = a . n & x0 <= g1 & g1 <= x0 + (r / (n + 1)) ) ; x0 <> a . n by A2, A12; then x0 < a . n by A15, XXREAL_0:1; then a . n in { g1 where g1 is Real : x0 < g1 } ; then A16: a . n in right_open_halfline x0 by XXREAL_1:230; a . n in dom f by A12; hence x in (right_open_halfline x0) /\ (dom f) by A14, A16, XBOOLE_0:def_4; ::_thesis: verum end; A17: (right_open_halfline x0) /\ (dom f) c= dom f by XBOOLE_1:17; A18: for n being Element of NAT holds (f /* a) . n = g2 proof let n be Element of NAT ; ::_thesis: (f /* a) . n = g2 thus g2 = f . (a . n) by A12 .= (f /* a) . n by A13, A17, FUNCT_2:108, XBOOLE_1:1 ; ::_thesis: verum end; now__::_thesis:_for_n_being_Nat_holds_(f_/*_a)_._n_=_(f_/*_a)_._(n_+_1) let n be Nat; ::_thesis: (f /* a) . n = (f /* a) . (n + 1) n in NAT by ORDINAL1:def_12; then (f /* a) . n = g2 by A18; hence (f /* a) . n = (f /* a) . (n + 1) by A18; ::_thesis: verum end; then A19: lim (f /* a) = (f /* a) . 0 by SEQ_4:26, VALUED_0:25 .= g2 by A18 ; deffunc H1( Element of NAT ) -> Element of REAL = x0 + (r / ($1 + 1)); reconsider b = NAT --> x0 as Real_Sequence ; A20: lim b = b . 0 by SEQ_4:26 .= x0 by FUNCOP_1:7 ; consider d being Real_Sequence such that A21: for n being Element of NAT holds d . n = H1(n) from SEQ_1:sch_1(); A22: now__::_thesis:_for_n_being_Element_of_NAT_holds_ (_b_._n_<=_a_._n_&_a_._n_<=_d_._n_) let n be Element of NAT ; ::_thesis: ( b . n <= a . n & a . n <= d . n ) a . n in [.x0,(x0 + (r / (n + 1))).] by A12; then a . n in { g1 where g1 is Real : ( x0 <= g1 & g1 <= x0 + (r / (n + 1)) ) } by RCOMP_1:def_1; then ex g1 being Real st ( g1 = a . n & x0 <= g1 & g1 <= x0 + (r / (n + 1)) ) ; hence ( b . n <= a . n & a . n <= d . n ) by A21, FUNCOP_1:7; ::_thesis: verum end; ( d is convergent & lim d = x0 ) by A21, FCONT_3:6; then ( a is convergent & lim a = x0 ) by A20, A22, SEQ_2:19, SEQ_2:20; hence contradiction by A1, A2, A13, A19, Def2; ::_thesis: verum end; definition let x0 be Real; let f be PartFunc of REAL,REAL; assume A1: f is_left_differentiable_in x0 ; func Ldiff (f,x0) -> Real means :Def5: :: FDIFF_3:def 5 for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n < 0 ) holds it = lim ((h ") (#) ((f /* (h + c)) - (f /* c))); existence ex b1 being Real st for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n < 0 ) holds b1 = lim ((h ") (#) ((f /* (h + c)) - (f /* c))) proof A2: {x0} c= dom f proof let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in {x0} or x in dom f ) assume x in {x0} ; ::_thesis: x in dom f then A3: x = x0 by TARSKI:def_1; consider r being Real such that A4: r > 0 and A5: [.(x0 - r),x0.] c= dom f by A1, Def4; x0 - r <= x0 by A4, XREAL_1:44; then x0 in [.(x0 - r),x0.] by XXREAL_1:1; hence x in dom f by A3, A5; ::_thesis: verum end; A6: for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n < 0 ) holds (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent by A1, Def4; ex r being Real st ( r > 0 & [.(x0 - r),x0.] c= dom f ) by A1, Def4; then consider h1 being non-zero 0 -convergent Real_Sequence, c1 being constant Real_Sequence such that A7: rng c1 = {x0} and A8: ( rng (h1 + c1) c= dom f & ( for n being Element of NAT holds h1 . n < 0 ) ) by Th1; take lim ((h1 ") (#) ((f /* (h1 + c1)) - (f /* c1))) ; ::_thesis: for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n < 0 ) holds lim ((h1 ") (#) ((f /* (h1 + c1)) - (f /* c1))) = lim ((h ") (#) ((f /* (h + c)) - (f /* c))) let h be non-zero 0 -convergent Real_Sequence; ::_thesis: for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n < 0 ) holds lim ((h1 ") (#) ((f /* (h1 + c1)) - (f /* c1))) = lim ((h ") (#) ((f /* (h + c)) - (f /* c))) let c be constant Real_Sequence; ::_thesis: ( rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n < 0 ) implies lim ((h1 ") (#) ((f /* (h1 + c1)) - (f /* c1))) = lim ((h ") (#) ((f /* (h + c)) - (f /* c))) ) assume that A9: rng c = {x0} and A10: ( rng (h + c) c= dom f & ( for n being Element of NAT holds h . n < 0 ) ) ; ::_thesis: lim ((h1 ") (#) ((f /* (h1 + c1)) - (f /* c1))) = lim ((h ") (#) ((f /* (h + c)) - (f /* c))) c1 = c by A7, A9, FDIFF_2:5; hence lim ((h1 ") (#) ((f /* (h1 + c1)) - (f /* c1))) = lim ((h ") (#) ((f /* (h + c)) - (f /* c))) by A7, A8, A2, A10, A6, Th3; ::_thesis: verum end; uniqueness for b1, b2 being Real st ( for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n < 0 ) holds b1 = lim ((h ") (#) ((f /* (h + c)) - (f /* c))) ) & ( for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n < 0 ) holds b2 = lim ((h ") (#) ((f /* (h + c)) - (f /* c))) ) holds b1 = b2 proof ex r being Real st ( r > 0 & [.(x0 - r),x0.] c= dom f ) by A1, Def4; then consider h being non-zero 0 -convergent Real_Sequence, c being constant Real_Sequence such that A11: ( rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n < 0 ) ) by Th1; let g1, g2 be Real; ::_thesis: ( ( for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n < 0 ) holds g1 = lim ((h ") (#) ((f /* (h + c)) - (f /* c))) ) & ( for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n < 0 ) holds g2 = lim ((h ") (#) ((f /* (h + c)) - (f /* c))) ) implies g1 = g2 ) assume that A12: for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n < 0 ) holds g1 = lim ((h ") (#) ((f /* (h + c)) - (f /* c))) and A13: for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n < 0 ) holds g2 = lim ((h ") (#) ((f /* (h + c)) - (f /* c))) ; ::_thesis: g1 = g2 g1 = lim ((h ") (#) ((f /* (h + c)) - (f /* c))) by A12, A11; hence g1 = g2 by A13, A11; ::_thesis: verum end; end; :: deftheorem Def5 defines Ldiff FDIFF_3:def_5_:_ for x0 being Real for f being PartFunc of REAL,REAL st f is_left_differentiable_in x0 holds for b3 being Real holds ( b3 = Ldiff (f,x0) iff for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n < 0 ) holds b3 = lim ((h ") (#) ((f /* (h + c)) - (f /* c))) ); definition let x0 be Real; let f be PartFunc of REAL,REAL; assume A1: f is_right_differentiable_in x0 ; func Rdiff (f,x0) -> Real means :Def6: :: FDIFF_3:def 6 for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n > 0 ) holds it = lim ((h ") (#) ((f /* (h + c)) - (f /* c))); existence ex b1 being Real st for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n > 0 ) holds b1 = lim ((h ") (#) ((f /* (h + c)) - (f /* c))) proof A2: {x0} c= dom f proof let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in {x0} or x in dom f ) assume x in {x0} ; ::_thesis: x in dom f then A3: x = x0 by TARSKI:def_1; consider r being Real such that A4: r > 0 and A5: [.x0,(x0 + r).] c= dom f by A1, Def3; x0 + 0 <= x0 + r by A4, XREAL_1:7; then x0 in [.x0,(x0 + r).] by XXREAL_1:1; hence x in dom f by A3, A5; ::_thesis: verum end; A6: for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n > 0 ) holds (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent by A1, Def3; ex r being Real st ( r > 0 & [.x0,(x0 + r).] c= dom f ) by A1, Def3; then consider h being non-zero 0 -convergent Real_Sequence, c being constant Real_Sequence such that A7: rng c = {x0} and A8: ( rng (h + c) c= dom f & ( for n being Element of NAT holds h . n > 0 ) ) by Th2; take lim ((h ") (#) ((f /* (h + c)) - (f /* c))) ; ::_thesis: for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n > 0 ) holds lim ((h ") (#) ((f /* (h + c)) - (f /* c))) = lim ((h ") (#) ((f /* (h + c)) - (f /* c))) let h1 be non-zero 0 -convergent Real_Sequence; ::_thesis: for c being constant Real_Sequence st rng c = {x0} & rng (h1 + c) c= dom f & ( for n being Element of NAT holds h1 . n > 0 ) holds lim ((h ") (#) ((f /* (h + c)) - (f /* c))) = lim ((h1 ") (#) ((f /* (h1 + c)) - (f /* c))) let c1 be constant Real_Sequence; ::_thesis: ( rng c1 = {x0} & rng (h1 + c1) c= dom f & ( for n being Element of NAT holds h1 . n > 0 ) implies lim ((h ") (#) ((f /* (h + c)) - (f /* c))) = lim ((h1 ") (#) ((f /* (h1 + c1)) - (f /* c1))) ) assume that A9: rng c1 = {x0} and A10: ( rng (h1 + c1) c= dom f & ( for n being Element of NAT holds h1 . n > 0 ) ) ; ::_thesis: lim ((h ") (#) ((f /* (h + c)) - (f /* c))) = lim ((h1 ") (#) ((f /* (h1 + c1)) - (f /* c1))) c1 = c by A7, A9, FDIFF_2:5; hence lim ((h ") (#) ((f /* (h + c)) - (f /* c))) = lim ((h1 ") (#) ((f /* (h1 + c1)) - (f /* c1))) by A7, A8, A10, A6, A2, Th4; ::_thesis: verum end; uniqueness for b1, b2 being Real st ( for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n > 0 ) holds b1 = lim ((h ") (#) ((f /* (h + c)) - (f /* c))) ) & ( for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n > 0 ) holds b2 = lim ((h ") (#) ((f /* (h + c)) - (f /* c))) ) holds b1 = b2 proof ex r being Real st ( r > 0 & [.x0,(x0 + r).] c= dom f ) by A1, Def3; then consider h being non-zero 0 -convergent Real_Sequence, c being constant Real_Sequence such that A11: ( rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n > 0 ) ) by Th2; let g1, g2 be Real; ::_thesis: ( ( for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n > 0 ) holds g1 = lim ((h ") (#) ((f /* (h + c)) - (f /* c))) ) & ( for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n > 0 ) holds g2 = lim ((h ") (#) ((f /* (h + c)) - (f /* c))) ) implies g1 = g2 ) assume that A12: for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n > 0 ) holds g1 = lim ((h ") (#) ((f /* (h + c)) - (f /* c))) and A13: for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n > 0 ) holds g2 = lim ((h ") (#) ((f /* (h + c)) - (f /* c))) ; ::_thesis: g1 = g2 g1 = lim ((h ") (#) ((f /* (h + c)) - (f /* c))) by A12, A11; hence g1 = g2 by A13, A11; ::_thesis: verum end; end; :: deftheorem Def6 defines Rdiff FDIFF_3:def_6_:_ for x0 being Real for f being PartFunc of REAL,REAL st f is_right_differentiable_in x0 holds for b3 being Real holds ( b3 = Rdiff (f,x0) iff for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n > 0 ) holds b3 = lim ((h ") (#) ((f /* (h + c)) - (f /* c))) ); theorem Th9: :: FDIFF_3:9 for f being PartFunc of REAL,REAL for x0, g being Real holds ( f is_left_differentiable_in x0 & Ldiff (f,x0) = g iff ( ex r being Real st ( 0 < r & [.(x0 - r),x0.] c= dom f ) & ( for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n < 0 ) holds ( (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent & lim ((h ") (#) ((f /* (h + c)) - (f /* c))) = g ) ) ) ) proof let f be PartFunc of REAL,REAL; ::_thesis: for x0, g being Real holds ( f is_left_differentiable_in x0 & Ldiff (f,x0) = g iff ( ex r being Real st ( 0 < r & [.(x0 - r),x0.] c= dom f ) & ( for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n < 0 ) holds ( (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent & lim ((h ") (#) ((f /* (h + c)) - (f /* c))) = g ) ) ) ) let x0, g be Real; ::_thesis: ( f is_left_differentiable_in x0 & Ldiff (f,x0) = g iff ( ex r being Real st ( 0 < r & [.(x0 - r),x0.] c= dom f ) & ( for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n < 0 ) holds ( (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent & lim ((h ") (#) ((f /* (h + c)) - (f /* c))) = g ) ) ) ) thus ( f is_left_differentiable_in x0 & Ldiff (f,x0) = g implies ( ex r being Real st ( 0 < r & [.(x0 - r),x0.] c= dom f ) & ( for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n < 0 ) holds ( (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent & lim ((h ") (#) ((f /* (h + c)) - (f /* c))) = g ) ) ) ) by Def4, Def5; ::_thesis: ( ex r being Real st ( 0 < r & [.(x0 - r),x0.] c= dom f ) & ( for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n < 0 ) holds ( (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent & lim ((h ") (#) ((f /* (h + c)) - (f /* c))) = g ) ) implies ( f is_left_differentiable_in x0 & Ldiff (f,x0) = g ) ) thus ( ex r being Real st ( 0 < r & [.(x0 - r),x0.] c= dom f ) & ( for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n < 0 ) holds ( (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent & lim ((h ") (#) ((f /* (h + c)) - (f /* c))) = g ) ) implies ( f is_left_differentiable_in x0 & Ldiff (f,x0) = g ) ) ::_thesis: verum proof assume that A1: ex r being Real st ( 0 < r & [.(x0 - r),x0.] c= dom f ) and A2: for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n < 0 ) holds ( (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent & lim ((h ") (#) ((f /* (h + c)) - (f /* c))) = g ) ; ::_thesis: ( f is_left_differentiable_in x0 & Ldiff (f,x0) = g ) for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n < 0 ) holds (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent by A2; hence A3: f is_left_differentiable_in x0 by A1, Def4; ::_thesis: Ldiff (f,x0) = g for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n < 0 ) holds lim ((h ") (#) ((f /* (h + c)) - (f /* c))) = g by A2; hence Ldiff (f,x0) = g by A3, Def5; ::_thesis: verum end; end; theorem :: FDIFF_3:10 for f1, f2 being PartFunc of REAL,REAL for x0 being Real st f1 is_left_differentiable_in x0 & f2 is_left_differentiable_in x0 holds ( f1 + f2 is_left_differentiable_in x0 & Ldiff ((f1 + f2),x0) = (Ldiff (f1,x0)) + (Ldiff (f2,x0)) ) proof let f1, f2 be PartFunc of REAL,REAL; ::_thesis: for x0 being Real st f1 is_left_differentiable_in x0 & f2 is_left_differentiable_in x0 holds ( f1 + f2 is_left_differentiable_in x0 & Ldiff ((f1 + f2),x0) = (Ldiff (f1,x0)) + (Ldiff (f2,x0)) ) let x0 be Real; ::_thesis: ( f1 is_left_differentiable_in x0 & f2 is_left_differentiable_in x0 implies ( f1 + f2 is_left_differentiable_in x0 & Ldiff ((f1 + f2),x0) = (Ldiff (f1,x0)) + (Ldiff (f2,x0)) ) ) assume that A1: f1 is_left_differentiable_in x0 and A2: f2 is_left_differentiable_in x0 ; ::_thesis: ( f1 + f2 is_left_differentiable_in x0 & Ldiff ((f1 + f2),x0) = (Ldiff (f1,x0)) + (Ldiff (f2,x0)) ) consider r2 being Real such that A3: 0 < r2 and A4: [.(x0 - r2),x0.] c= dom f2 by A2, Def4; consider r1 being Real such that A5: 0 < r1 and A6: [.(x0 - r1),x0.] c= dom f1 by A1, Def4; set r = min (r1,r2); A7: 0 < min (r1,r2) by A5, A3, XXREAL_0:15; then A8: x0 - (min (r1,r2)) <= x0 by XREAL_1:43; min (r1,r2) <= r2 by XXREAL_0:17; then A9: x0 - r2 <= x0 - (min (r1,r2)) by XREAL_1:13; then x0 - r2 <= x0 by A8, XXREAL_0:2; then A10: x0 in [.(x0 - r2),x0.] by XXREAL_1:1; x0 - (min (r1,r2)) in { g where g is Real : ( x0 - r2 <= g & g <= x0 ) } by A8, A9; then x0 - (min (r1,r2)) in [.(x0 - r2),x0.] by RCOMP_1:def_1; then [.(x0 - (min (r1,r2))),x0.] c= [.(x0 - r2),x0.] by A10, XXREAL_2:def_12; then A11: [.(x0 - (min (r1,r2))),x0.] c= dom f2 by A4, XBOOLE_1:1; min (r1,r2) <= r1 by XXREAL_0:17; then A12: x0 - r1 <= x0 - (min (r1,r2)) by XREAL_1:13; then x0 - r1 <= x0 by A8, XXREAL_0:2; then A13: x0 in [.(x0 - r1),x0.] by XXREAL_1:1; x0 - (min (r1,r2)) in { g where g is Real : ( x0 - r1 <= g & g <= x0 ) } by A8, A12; then x0 - (min (r1,r2)) in [.(x0 - r1),x0.] by RCOMP_1:def_1; then [.(x0 - (min (r1,r2))),x0.] c= [.(x0 - r1),x0.] by A13, XXREAL_2:def_12; then [.(x0 - (min (r1,r2))),x0.] c= dom f1 by A6, XBOOLE_1:1; then A14: [.(x0 - (min (r1,r2))),x0.] c= (dom f1) /\ (dom f2) by A11, XBOOLE_1:19; A15: for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom (f1 + f2) & ( for n being Element of NAT holds h . n < 0 ) holds ( (h ") (#) (((f1 + f2) /* (h + c)) - ((f1 + f2) /* c)) is convergent & lim ((h ") (#) (((f1 + f2) /* (h + c)) - ((f1 + f2) /* c))) = (Ldiff (f1,x0)) + (Ldiff (f2,x0)) ) proof let h be non-zero 0 -convergent Real_Sequence; ::_thesis: for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom (f1 + f2) & ( for n being Element of NAT holds h . n < 0 ) holds ( (h ") (#) (((f1 + f2) /* (h + c)) - ((f1 + f2) /* c)) is convergent & lim ((h ") (#) (((f1 + f2) /* (h + c)) - ((f1 + f2) /* c))) = (Ldiff (f1,x0)) + (Ldiff (f2,x0)) ) let c be constant Real_Sequence; ::_thesis: ( rng c = {x0} & rng (h + c) c= dom (f1 + f2) & ( for n being Element of NAT holds h . n < 0 ) implies ( (h ") (#) (((f1 + f2) /* (h + c)) - ((f1 + f2) /* c)) is convergent & lim ((h ") (#) (((f1 + f2) /* (h + c)) - ((f1 + f2) /* c))) = (Ldiff (f1,x0)) + (Ldiff (f2,x0)) ) ) assume that A16: rng c = {x0} and A17: rng (h + c) c= dom (f1 + f2) and A18: for n being Element of NAT holds h . n < 0 ; ::_thesis: ( (h ") (#) (((f1 + f2) /* (h + c)) - ((f1 + f2) /* c)) is convergent & lim ((h ") (#) (((f1 + f2) /* (h + c)) - ((f1 + f2) /* c))) = (Ldiff (f1,x0)) + (Ldiff (f2,x0)) ) A19: rng (h + c) c= (dom f1) /\ (dom f2) by A17, VALUED_1:def_1; A20: now__::_thesis:_for_n_being_Element_of_NAT_holds_(((f1_/*_(h_+_c))_-_(f1_/*_c))_+_((f2_/*_(h_+_c))_-_(f2_/*_c)))_._n_=_(((f1_+_f2)_/*_(h_+_c))_-_((f1_+_f2)_/*_c))_._n let n be Element of NAT ; ::_thesis: (((f1 /* (h + c)) - (f1 /* c)) + ((f2 /* (h + c)) - (f2 /* c))) . n = (((f1 + f2) /* (h + c)) - ((f1 + f2) /* c)) . n A21: rng c c= (dom f1) /\ (dom f2) proof let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in rng c or x in (dom f1) /\ (dom f2) ) assume x in rng c ; ::_thesis: x in (dom f1) /\ (dom f2) then A22: x = x0 by A16, TARSKI:def_1; x0 in [.(x0 - (min (r1,r2))),x0.] by A8, XXREAL_1:1; hence x in (dom f1) /\ (dom f2) by A14, A22; ::_thesis: verum end; thus (((f1 /* (h + c)) - (f1 /* c)) + ((f2 /* (h + c)) - (f2 /* c))) . n = (((f1 /* (h + c)) + (- (f1 /* c))) . n) + (((f2 /* (h + c)) - (f2 /* c)) . n) by SEQ_1:7 .= (((f1 /* (h + c)) . n) + ((- (f1 /* c)) . n)) + (((f2 /* (h + c)) + (- (f2 /* c))) . n) by SEQ_1:7 .= (((f1 /* (h + c)) . n) + ((- (f1 /* c)) . n)) + (((f2 /* (h + c)) . n) + ((- (f2 /* c)) . n)) by SEQ_1:7 .= (((f1 /* (h + c)) . n) + ((f2 /* (h + c)) . n)) + (((- (f1 /* c)) . n) + ((- (f2 /* c)) . n)) .= (((f1 /* (h + c)) . n) + ((f2 /* (h + c)) . n)) + ((- ((f1 /* c) . n)) + ((- (f2 /* c)) . n)) by SEQ_1:10 .= (((f1 /* (h + c)) . n) + ((f2 /* (h + c)) . n)) + ((- ((f1 /* c) . n)) + (- ((f2 /* c) . n))) by SEQ_1:10 .= (((f1 /* (h + c)) . n) + ((f2 /* (h + c)) . n)) - (((f1 /* c) . n) + ((f2 /* c) . n)) .= (((f1 /* (h + c)) + (f2 /* (h + c))) . n) - (((f1 /* c) . n) + ((f2 /* c) . n)) by SEQ_1:7 .= (((f1 /* (h + c)) + (f2 /* (h + c))) . n) - (((f1 /* c) + (f2 /* c)) . n) by SEQ_1:7 .= (((f1 /* (h + c)) + (f2 /* (h + c))) - ((f1 /* c) + (f2 /* c))) . n by RFUNCT_2:1 .= (((f1 + f2) /* (h + c)) - ((f1 /* c) + (f2 /* c))) . n by A19, RFUNCT_2:8 .= (((f1 + f2) /* (h + c)) - ((f1 + f2) /* c)) . n by A21, RFUNCT_2:8 ; ::_thesis: verum end; then A23: ((f1 /* (h + c)) - (f1 /* c)) + ((f2 /* (h + c)) - (f2 /* c)) = ((f1 + f2) /* (h + c)) - ((f1 + f2) /* c) by FUNCT_2:63; (dom f1) /\ (dom f2) c= dom f2 by XBOOLE_1:17; then A24: rng (h + c) c= dom f2 by A19, XBOOLE_1:1; then A25: lim ((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) = Ldiff (f2,x0) by A2, A16, A18, Th9; Ldiff (f2,x0) = Ldiff (f2,x0) ; then A26: (h ") (#) ((f2 /* (h + c)) - (f2 /* c)) is convergent by A2, A16, A18, A24, Th9; (dom f1) /\ (dom f2) c= dom f1 by XBOOLE_1:17; then A27: rng (h + c) c= dom f1 by A19, XBOOLE_1:1; A28: ((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) + ((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) = (h ") (#) (((f1 /* (h + c)) - (f1 /* c)) + ((f2 /* (h + c)) - (f2 /* c))) by SEQ_1:16; Ldiff (f1,x0) = Ldiff (f1,x0) ; then A29: (h ") (#) ((f1 /* (h + c)) - (f1 /* c)) is convergent by A1, A16, A18, A27, Th9; then ((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) + ((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) is convergent by A26, SEQ_2:5; hence (h ") (#) (((f1 + f2) /* (h + c)) - ((f1 + f2) /* c)) is convergent by A28, A20, FUNCT_2:63; ::_thesis: lim ((h ") (#) (((f1 + f2) /* (h + c)) - ((f1 + f2) /* c))) = (Ldiff (f1,x0)) + (Ldiff (f2,x0)) lim ((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) = Ldiff (f1,x0) by A1, A16, A18, A27, Th9; hence lim ((h ") (#) (((f1 + f2) /* (h + c)) - ((f1 + f2) /* c))) = (Ldiff (f1,x0)) + (Ldiff (f2,x0)) by A29, A26, A25, A28, A23, SEQ_2:6; ::_thesis: verum end; [.(x0 - (min (r1,r2))),x0.] c= dom (f1 + f2) by A14, VALUED_1:def_1; hence ( f1 + f2 is_left_differentiable_in x0 & Ldiff ((f1 + f2),x0) = (Ldiff (f1,x0)) + (Ldiff (f2,x0)) ) by A7, A15, Th9; ::_thesis: verum end; theorem :: FDIFF_3:11 for f1, f2 being PartFunc of REAL,REAL for x0 being Real st f1 is_left_differentiable_in x0 & f2 is_left_differentiable_in x0 holds ( f1 - f2 is_left_differentiable_in x0 & Ldiff ((f1 - f2),x0) = (Ldiff (f1,x0)) - (Ldiff (f2,x0)) ) proof let f1, f2 be PartFunc of REAL,REAL; ::_thesis: for x0 being Real st f1 is_left_differentiable_in x0 & f2 is_left_differentiable_in x0 holds ( f1 - f2 is_left_differentiable_in x0 & Ldiff ((f1 - f2),x0) = (Ldiff (f1,x0)) - (Ldiff (f2,x0)) ) let x0 be Real; ::_thesis: ( f1 is_left_differentiable_in x0 & f2 is_left_differentiable_in x0 implies ( f1 - f2 is_left_differentiable_in x0 & Ldiff ((f1 - f2),x0) = (Ldiff (f1,x0)) - (Ldiff (f2,x0)) ) ) assume that A1: f1 is_left_differentiable_in x0 and A2: f2 is_left_differentiable_in x0 ; ::_thesis: ( f1 - f2 is_left_differentiable_in x0 & Ldiff ((f1 - f2),x0) = (Ldiff (f1,x0)) - (Ldiff (f2,x0)) ) consider r2 being Real such that A3: 0 < r2 and A4: [.(x0 - r2),x0.] c= dom f2 by A2, Def4; consider r1 being Real such that A5: 0 < r1 and A6: [.(x0 - r1),x0.] c= dom f1 by A1, Def4; set r = min (r1,r2); A7: 0 < min (r1,r2) by A5, A3, XXREAL_0:15; then A8: x0 - (min (r1,r2)) <= x0 by XREAL_1:43; min (r1,r2) <= r2 by XXREAL_0:17; then A9: x0 - r2 <= x0 - (min (r1,r2)) by XREAL_1:13; then x0 - r2 <= x0 by A8, XXREAL_0:2; then A10: x0 in [.(x0 - r2),x0.] by XXREAL_1:1; x0 - (min (r1,r2)) in { g where g is Real : ( x0 - r2 <= g & g <= x0 ) } by A8, A9; then x0 - (min (r1,r2)) in [.(x0 - r2),x0.] by RCOMP_1:def_1; then [.(x0 - (min (r1,r2))),x0.] c= [.(x0 - r2),x0.] by A10, XXREAL_2:def_12; then A11: [.(x0 - (min (r1,r2))),x0.] c= dom f2 by A4, XBOOLE_1:1; min (r1,r2) <= r1 by XXREAL_0:17; then A12: x0 - r1 <= x0 - (min (r1,r2)) by XREAL_1:13; then x0 - r1 <= x0 by A8, XXREAL_0:2; then A13: x0 in [.(x0 - r1),x0.] by XXREAL_1:1; x0 - (min (r1,r2)) in { g where g is Real : ( x0 - r1 <= g & g <= x0 ) } by A8, A12; then x0 - (min (r1,r2)) in [.(x0 - r1),x0.] by RCOMP_1:def_1; then [.(x0 - (min (r1,r2))),x0.] c= [.(x0 - r1),x0.] by A13, XXREAL_2:def_12; then [.(x0 - (min (r1,r2))),x0.] c= dom f1 by A6, XBOOLE_1:1; then A14: [.(x0 - (min (r1,r2))),x0.] c= (dom f1) /\ (dom f2) by A11, XBOOLE_1:19; A15: for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom (f1 - f2) & ( for n being Element of NAT holds h . n < 0 ) holds ( (h ") (#) (((f1 - f2) /* (h + c)) - ((f1 - f2) /* c)) is convergent & lim ((h ") (#) (((f1 - f2) /* (h + c)) - ((f1 - f2) /* c))) = (Ldiff (f1,x0)) - (Ldiff (f2,x0)) ) proof let h be non-zero 0 -convergent Real_Sequence; ::_thesis: for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom (f1 - f2) & ( for n being Element of NAT holds h . n < 0 ) holds ( (h ") (#) (((f1 - f2) /* (h + c)) - ((f1 - f2) /* c)) is convergent & lim ((h ") (#) (((f1 - f2) /* (h + c)) - ((f1 - f2) /* c))) = (Ldiff (f1,x0)) - (Ldiff (f2,x0)) ) let c be constant Real_Sequence; ::_thesis: ( rng c = {x0} & rng (h + c) c= dom (f1 - f2) & ( for n being Element of NAT holds h . n < 0 ) implies ( (h ") (#) (((f1 - f2) /* (h + c)) - ((f1 - f2) /* c)) is convergent & lim ((h ") (#) (((f1 - f2) /* (h + c)) - ((f1 - f2) /* c))) = (Ldiff (f1,x0)) - (Ldiff (f2,x0)) ) ) assume that A16: rng c = {x0} and A17: rng (h + c) c= dom (f1 - f2) and A18: for n being Element of NAT holds h . n < 0 ; ::_thesis: ( (h ") (#) (((f1 - f2) /* (h + c)) - ((f1 - f2) /* c)) is convergent & lim ((h ") (#) (((f1 - f2) /* (h + c)) - ((f1 - f2) /* c))) = (Ldiff (f1,x0)) - (Ldiff (f2,x0)) ) A19: rng (h + c) c= (dom f1) /\ (dom f2) by A17, VALUED_1:12; A20: now__::_thesis:_for_n_being_Element_of_NAT_holds_(((f1_/*_(h_+_c))_-_(f1_/*_c))_-_((f2_/*_(h_+_c))_-_(f2_/*_c)))_._n_=_(((f1_-_f2)_/*_(h_+_c))_-_((f1_-_f2)_/*_c))_._n let n be Element of NAT ; ::_thesis: (((f1 /* (h + c)) - (f1 /* c)) - ((f2 /* (h + c)) - (f2 /* c))) . n = (((f1 - f2) /* (h + c)) - ((f1 - f2) /* c)) . n A21: rng c c= (dom f1) /\ (dom f2) proof let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in rng c or x in (dom f1) /\ (dom f2) ) assume x in rng c ; ::_thesis: x in (dom f1) /\ (dom f2) then A22: x = x0 by A16, TARSKI:def_1; x0 in [.(x0 - (min (r1,r2))),x0.] by A8, XXREAL_1:1; hence x in (dom f1) /\ (dom f2) by A14, A22; ::_thesis: verum end; thus (((f1 /* (h + c)) - (f1 /* c)) - ((f2 /* (h + c)) - (f2 /* c))) . n = (((f1 /* (h + c)) - (f1 /* c)) . n) - (((f2 /* (h + c)) - (f2 /* c)) . n) by RFUNCT_2:1 .= (((f1 /* (h + c)) . n) - ((f1 /* c) . n)) - (((f2 /* (h + c)) - (f2 /* c)) . n) by RFUNCT_2:1 .= (((f1 /* (h + c)) . n) - ((f1 /* c) . n)) - (((f2 /* (h + c)) . n) - ((f2 /* c) . n)) by RFUNCT_2:1 .= (((f1 /* (h + c)) . n) - ((f2 /* (h + c)) . n)) - (((f1 /* c) . n) - ((f2 /* c) . n)) .= (((f1 /* (h + c)) - (f2 /* (h + c))) . n) - (((f1 /* c) . n) - ((f2 /* c) . n)) by RFUNCT_2:1 .= (((f1 /* (h + c)) - (f2 /* (h + c))) . n) - (((f1 /* c) - (f2 /* c)) . n) by RFUNCT_2:1 .= (((f1 /* (h + c)) - (f2 /* (h + c))) - ((f1 /* c) - (f2 /* c))) . n by RFUNCT_2:1 .= (((f1 - f2) /* (h + c)) - ((f1 /* c) - (f2 /* c))) . n by A19, RFUNCT_2:8 .= (((f1 - f2) /* (h + c)) - ((f1 - f2) /* c)) . n by A21, RFUNCT_2:8 ; ::_thesis: verum end; then A23: ((f1 /* (h + c)) - (f1 /* c)) - ((f2 /* (h + c)) - (f2 /* c)) = ((f1 - f2) /* (h + c)) - ((f1 - f2) /* c) by FUNCT_2:63; (dom f1) /\ (dom f2) c= dom f2 by XBOOLE_1:17; then A24: rng (h + c) c= dom f2 by A19, XBOOLE_1:1; then A25: lim ((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) = Ldiff (f2,x0) by A2, A16, A18, Th9; Ldiff (f2,x0) = Ldiff (f2,x0) ; then A26: (h ") (#) ((f2 /* (h + c)) - (f2 /* c)) is convergent by A2, A16, A18, A24, Th9; (dom f1) /\ (dom f2) c= dom f1 by XBOOLE_1:17; then A27: rng (h + c) c= dom f1 by A19, XBOOLE_1:1; A28: ((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) - ((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) = (h ") (#) (((f1 /* (h + c)) - (f1 /* c)) - ((f2 /* (h + c)) - (f2 /* c))) by SEQ_1:21; Ldiff (f1,x0) = Ldiff (f1,x0) ; then A29: (h ") (#) ((f1 /* (h + c)) - (f1 /* c)) is convergent by A1, A16, A18, A27, Th9; then ((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) - ((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) is convergent by A26, SEQ_2:11; hence (h ") (#) (((f1 - f2) /* (h + c)) - ((f1 - f2) /* c)) is convergent by A28, A20, FUNCT_2:63; ::_thesis: lim ((h ") (#) (((f1 - f2) /* (h + c)) - ((f1 - f2) /* c))) = (Ldiff (f1,x0)) - (Ldiff (f2,x0)) lim ((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) = Ldiff (f1,x0) by A1, A16, A18, A27, Th9; hence lim ((h ") (#) (((f1 - f2) /* (h + c)) - ((f1 - f2) /* c))) = (Ldiff (f1,x0)) - (Ldiff (f2,x0)) by A29, A26, A25, A28, A23, SEQ_2:12; ::_thesis: verum end; [.(x0 - (min (r1,r2))),x0.] c= dom (f1 - f2) by A14, VALUED_1:12; hence ( f1 - f2 is_left_differentiable_in x0 & Ldiff ((f1 - f2),x0) = (Ldiff (f1,x0)) - (Ldiff (f2,x0)) ) by A7, A15, Th9; ::_thesis: verum end; theorem :: FDIFF_3:12 for f1, f2 being PartFunc of REAL,REAL for x0 being Real st f1 is_left_differentiable_in x0 & f2 is_left_differentiable_in x0 holds ( f1 (#) f2 is_left_differentiable_in x0 & Ldiff ((f1 (#) f2),x0) = ((Ldiff (f1,x0)) * (f2 . x0)) + ((Ldiff (f2,x0)) * (f1 . x0)) ) proof let f1, f2 be PartFunc of REAL,REAL; ::_thesis: for x0 being Real st f1 is_left_differentiable_in x0 & f2 is_left_differentiable_in x0 holds ( f1 (#) f2 is_left_differentiable_in x0 & Ldiff ((f1 (#) f2),x0) = ((Ldiff (f1,x0)) * (f2 . x0)) + ((Ldiff (f2,x0)) * (f1 . x0)) ) let x0 be Real; ::_thesis: ( f1 is_left_differentiable_in x0 & f2 is_left_differentiable_in x0 implies ( f1 (#) f2 is_left_differentiable_in x0 & Ldiff ((f1 (#) f2),x0) = ((Ldiff (f1,x0)) * (f2 . x0)) + ((Ldiff (f2,x0)) * (f1 . x0)) ) ) assume that A1: f1 is_left_differentiable_in x0 and A2: f2 is_left_differentiable_in x0 ; ::_thesis: ( f1 (#) f2 is_left_differentiable_in x0 & Ldiff ((f1 (#) f2),x0) = ((Ldiff (f1,x0)) * (f2 . x0)) + ((Ldiff (f2,x0)) * (f1 . x0)) ) consider r2 being Real such that A3: 0 < r2 and A4: [.(x0 - r2),x0.] c= dom f2 by A2, Def4; consider r1 being Real such that A5: 0 < r1 and A6: [.(x0 - r1),x0.] c= dom f1 by A1, Def4; set r = min (r1,r2); A7: 0 < min (r1,r2) by A5, A3, XXREAL_0:15; then A8: x0 - (min (r1,r2)) <= x0 by XREAL_1:43; min (r1,r2) <= r2 by XXREAL_0:17; then A9: x0 - r2 <= x0 - (min (r1,r2)) by XREAL_1:13; then x0 - r2 <= x0 by A8, XXREAL_0:2; then A10: x0 in [.(x0 - r2),x0.] by XXREAL_1:1; x0 - (min (r1,r2)) in { g where g is Real : ( x0 - r2 <= g & g <= x0 ) } by A8, A9; then x0 - (min (r1,r2)) in [.(x0 - r2),x0.] by RCOMP_1:def_1; then [.(x0 - (min (r1,r2))),x0.] c= [.(x0 - r2),x0.] by A10, XXREAL_2:def_12; then A11: [.(x0 - (min (r1,r2))),x0.] c= dom f2 by A4, XBOOLE_1:1; min (r1,r2) <= r1 by XXREAL_0:17; then A12: x0 - r1 <= x0 - (min (r1,r2)) by XREAL_1:13; then x0 - r1 <= x0 by A8, XXREAL_0:2; then A13: x0 in [.(x0 - r1),x0.] by XXREAL_1:1; x0 - (min (r1,r2)) in { g where g is Real : ( x0 - r1 <= g & g <= x0 ) } by A8, A12; then x0 - (min (r1,r2)) in [.(x0 - r1),x0.] by RCOMP_1:def_1; then [.(x0 - (min (r1,r2))),x0.] c= [.(x0 - r1),x0.] by A13, XXREAL_2:def_12; then A14: [.(x0 - (min (r1,r2))),x0.] c= dom f1 by A6, XBOOLE_1:1; A15: for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom (f1 (#) f2) & ( for n being Element of NAT holds h . n < 0 ) holds ( (h ") (#) (((f1 (#) f2) /* (h + c)) - ((f1 (#) f2) /* c)) is convergent & lim ((h ") (#) (((f1 (#) f2) /* (h + c)) - ((f1 (#) f2) /* c))) = ((Ldiff (f1,x0)) * (f2 . x0)) + ((Ldiff (f2,x0)) * (f1 . x0)) ) proof let h be non-zero 0 -convergent Real_Sequence; ::_thesis: for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom (f1 (#) f2) & ( for n being Element of NAT holds h . n < 0 ) holds ( (h ") (#) (((f1 (#) f2) /* (h + c)) - ((f1 (#) f2) /* c)) is convergent & lim ((h ") (#) (((f1 (#) f2) /* (h + c)) - ((f1 (#) f2) /* c))) = ((Ldiff (f1,x0)) * (f2 . x0)) + ((Ldiff (f2,x0)) * (f1 . x0)) ) let c be constant Real_Sequence; ::_thesis: ( rng c = {x0} & rng (h + c) c= dom (f1 (#) f2) & ( for n being Element of NAT holds h . n < 0 ) implies ( (h ") (#) (((f1 (#) f2) /* (h + c)) - ((f1 (#) f2) /* c)) is convergent & lim ((h ") (#) (((f1 (#) f2) /* (h + c)) - ((f1 (#) f2) /* c))) = ((Ldiff (f1,x0)) * (f2 . x0)) + ((Ldiff (f2,x0)) * (f1 . x0)) ) ) assume that A16: rng c = {x0} and A17: rng (h + c) c= dom (f1 (#) f2) and A18: for n being Element of NAT holds h . n < 0 ; ::_thesis: ( (h ") (#) (((f1 (#) f2) /* (h + c)) - ((f1 (#) f2) /* c)) is convergent & lim ((h ") (#) (((f1 (#) f2) /* (h + c)) - ((f1 (#) f2) /* c))) = ((Ldiff (f1,x0)) * (f2 . x0)) + ((Ldiff (f2,x0)) * (f1 . x0)) ) A19: rng (h + c) c= (dom f1) /\ (dom f2) by A17, VALUED_1:def_4; now__::_thesis:_for_n_being_Element_of_NAT_holds_((f1_/*_c)_+_((f1_/*_(h_+_c))_-_(f1_/*_c)))_._n_=_(f1_/*_(h_+_c))_._n let n be Element of NAT ; ::_thesis: ((f1 /* c) + ((f1 /* (h + c)) - (f1 /* c))) . n = (f1 /* (h + c)) . n thus ((f1 /* c) + ((f1 /* (h + c)) - (f1 /* c))) . n = ((f1 /* c) . n) + (((f1 /* (h + c)) - (f1 /* c)) . n) by SEQ_1:7 .= ((f1 /* c) . n) + (((f1 /* (h + c)) . n) - ((f1 /* c) . n)) by RFUNCT_2:1 .= (f1 /* (h + c)) . n ; ::_thesis: verum end; then A20: (f1 /* c) + ((f1 /* (h + c)) - (f1 /* c)) = f1 /* (h + c) by FUNCT_2:63; A21: for m being Element of NAT holds c . m = x0 proof let m be Element of NAT ; ::_thesis: c . m = x0 c . m in rng c by VALUED_0:28; hence c . m = x0 by A16, TARSKI:def_1; ::_thesis: verum end; 0 <= min (r1,r2) by A5, A3, XXREAL_0:15; then x0 - (min (r1,r2)) <= x0 by XREAL_1:43; then A22: x0 in [.(x0 - (min (r1,r2))),x0.] by XXREAL_1:1; then A23: x0 in dom f1 by A14; A24: rng c c= dom f1 proof let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in rng c or x in dom f1 ) assume x in rng c ; ::_thesis: x in dom f1 hence x in dom f1 by A16, A23, TARSKI:def_1; ::_thesis: verum end; A25: for g being real number st 0 < g holds ex n being Element of NAT st for m being Element of NAT st n <= m holds abs (((f1 /* c) . m) - (f1 . x0)) < g proof let g be real number ; ::_thesis: ( 0 < g implies ex n being Element of NAT st for m being Element of NAT st n <= m holds abs (((f1 /* c) . m) - (f1 . x0)) < g ) assume A26: 0 < g ; ::_thesis: ex n being Element of NAT st for m being Element of NAT st n <= m holds abs (((f1 /* c) . m) - (f1 . x0)) < g take n = 0 ; ::_thesis: for m being Element of NAT st n <= m holds abs (((f1 /* c) . m) - (f1 . x0)) < g let m be Element of NAT ; ::_thesis: ( n <= m implies abs (((f1 /* c) . m) - (f1 . x0)) < g ) assume n <= m ; ::_thesis: abs (((f1 /* c) . m) - (f1 . x0)) < g abs (((f1 /* c) . m) - (f1 . x0)) = abs ((f1 . (c . m)) - (f1 . x0)) by A24, FUNCT_2:108 .= abs ((f1 . x0) - (f1 . x0)) by A21 .= 0 by ABSVALUE:def_1 ; hence abs (((f1 /* c) . m) - (f1 . x0)) < g by A26; ::_thesis: verum end; then A27: f1 /* c is convergent by SEQ_2:def_6; A28: x0 in dom f2 by A11, A22; A29: rng c c= dom f2 proof let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in rng c or x in dom f2 ) assume x in rng c ; ::_thesis: x in dom f2 hence x in dom f2 by A16, A28, TARSKI:def_1; ::_thesis: verum end; A30: for g being real number st 0 < g holds ex n being Element of NAT st for m being Element of NAT st n <= m holds abs (((f2 /* c) . m) - (f2 . x0)) < g proof let g be real number ; ::_thesis: ( 0 < g implies ex n being Element of NAT st for m being Element of NAT st n <= m holds abs (((f2 /* c) . m) - (f2 . x0)) < g ) assume A31: 0 < g ; ::_thesis: ex n being Element of NAT st for m being Element of NAT st n <= m holds abs (((f2 /* c) . m) - (f2 . x0)) < g take n = 0 ; ::_thesis: for m being Element of NAT st n <= m holds abs (((f2 /* c) . m) - (f2 . x0)) < g let m be Element of NAT ; ::_thesis: ( n <= m implies abs (((f2 /* c) . m) - (f2 . x0)) < g ) assume n <= m ; ::_thesis: abs (((f2 /* c) . m) - (f2 . x0)) < g abs (((f2 /* c) . m) - (f2 . x0)) = abs ((f2 . (c . m)) - (f2 . x0)) by A29, FUNCT_2:108 .= abs ((f2 . x0) - (f2 . x0)) by A21 .= 0 by ABSVALUE:def_1 ; hence abs (((f2 /* c) . m) - (f2 . x0)) < g by A31; ::_thesis: verum end; then A32: f2 /* c is convergent by SEQ_2:def_6; (dom f1) /\ (dom f2) c= dom f1 by XBOOLE_1:17; then A33: rng (h + c) c= dom f1 by A19, XBOOLE_1:1; then A34: lim ((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) = Ldiff (f1,x0) by A1, A16, A18, Th9; A36: ( h is convergent & (h ") (#) ((f1 /* (h + c)) - (f1 /* c)) is convergent ) by A1, A16, A18, A33, Def4; then A37: lim (h (#) ((h ") (#) ((f1 /* (h + c)) - (f1 /* c)))) = (lim h) * (lim ((h ") (#) ((f1 /* (h + c)) - (f1 /* c)))) by SEQ_2:15 .= 0 ; (dom f1) /\ (dom f2) c= dom f2 by XBOOLE_1:17; then A38: rng (h + c) c= dom f2 by A19, XBOOLE_1:1; then A39: lim ((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) = Ldiff (f2,x0) by A2, A16, A18, Th9; Ldiff (f1,x0) = Ldiff (f1,x0) ; then A40: (h ") (#) ((f1 /* (h + c)) - (f1 /* c)) is convergent by A1, A16, A18, A33, Th9; then A41: ((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) (#) (f2 /* c) is convergent by A32, SEQ_2:14; A42: rng c c= (dom f1) /\ (dom f2) by A24, A29, XBOOLE_1:19; A43: now__::_thesis:_for_n_being_Element_of_NAT_holds_((h_")_(#)_(((f1_(#)_f2)_/*_(h_+_c))_-_((f1_(#)_f2)_/*_c)))_._n_=_((((h_")_(#)_((f2_/*_(h_+_c))_-_(f2_/*_c)))_(#)_(f1_/*_(h_+_c)))_+_(((h_")_(#)_((f1_/*_(h_+_c))_-_(f1_/*_c)))_(#)_(f2_/*_c)))_._n let n be Element of NAT ; ::_thesis: ((h ") (#) (((f1 (#) f2) /* (h + c)) - ((f1 (#) f2) /* c))) . n = ((((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) (#) (f1 /* (h + c))) + (((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) (#) (f2 /* c))) . n thus ((h ") (#) (((f1 (#) f2) /* (h + c)) - ((f1 (#) f2) /* c))) . n = ((h ") . n) * ((((f1 (#) f2) /* (h + c)) - ((f1 (#) f2) /* c)) . n) by SEQ_1:8 .= ((h ") . n) * ((((f1 (#) f2) /* (h + c)) . n) - (((f1 (#) f2) /* c) . n)) by RFUNCT_2:1 .= ((h ") . n) * ((((f1 /* (h + c)) (#) (f2 /* (h + c))) . n) - (((f1 (#) f2) /* c) . n)) by A19, RFUNCT_2:8 .= ((h ") . n) * ((((f1 /* (h + c)) (#) (f2 /* (h + c))) . n) - (((f1 /* c) (#) (f2 /* c)) . n)) by A42, RFUNCT_2:8 .= ((h ") . n) * ((((f1 /* (h + c)) . n) * ((f2 /* (h + c)) . n)) - (((f1 /* c) (#) (f2 /* c)) . n)) by SEQ_1:8 .= ((h ") . n) * ((((f1 /* (h + c)) . n) * ((f2 /* (h + c)) . n)) - (((f1 /* c) . n) * ((f2 /* c) . n))) by SEQ_1:8 .= ((((h ") . n) * (((f2 /* (h + c)) . n) - ((f2 /* c) . n))) * ((f1 /* (h + c)) . n)) + ((((h ") . n) * (((f1 /* (h + c)) . n) - ((f1 /* c) . n))) * ((f2 /* c) . n)) .= ((((h ") . n) * (((f2 /* (h + c)) - (f2 /* c)) . n)) * ((f1 /* (h + c)) . n)) + ((((h ") . n) * (((f1 /* (h + c)) . n) - ((f1 /* c) . n))) * ((f2 /* c) . n)) by RFUNCT_2:1 .= ((((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) . n) * ((f1 /* (h + c)) . n)) + ((((h ") . n) * (((f1 /* (h + c)) . n) - ((f1 /* c) . n))) * ((f2 /* c) . n)) by SEQ_1:8 .= ((((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) . n) * ((f1 /* (h + c)) . n)) + ((((h ") . n) * (((f1 /* (h + c)) - (f1 /* c)) . n)) * ((f2 /* c) . n)) by RFUNCT_2:1 .= ((((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) . n) * ((f1 /* (h + c)) . n)) + ((((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) . n) * ((f2 /* c) . n)) by SEQ_1:8 .= ((((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) (#) (f1 /* (h + c))) . n) + ((((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) . n) * ((f2 /* c) . n)) by SEQ_1:8 .= ((((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) (#) (f1 /* (h + c))) . n) + ((((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) (#) (f2 /* c)) . n) by SEQ_1:8 .= ((((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) (#) (f1 /* (h + c))) + (((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) (#) (f2 /* c))) . n by SEQ_1:7 ; ::_thesis: verum end; then A44: (h ") (#) (((f1 (#) f2) /* (h + c)) - ((f1 (#) f2) /* c)) = (((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) (#) (f1 /* (h + c))) + (((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) (#) (f2 /* c)) by FUNCT_2:63; now__::_thesis:_for_n_being_Element_of_NAT_holds_(h_(#)_((h_")_(#)_((f1_/*_(h_+_c))_-_(f1_/*_c))))_._n_=_((f1_/*_(h_+_c))_-_(f1_/*_c))_._n let n be Element of NAT ; ::_thesis: (h (#) ((h ") (#) ((f1 /* (h + c)) - (f1 /* c)))) . n = ((f1 /* (h + c)) - (f1 /* c)) . n A45: h . n <> 0 by A18; thus (h (#) ((h ") (#) ((f1 /* (h + c)) - (f1 /* c)))) . n = ((h (#) (h ")) (#) ((f1 /* (h + c)) - (f1 /* c))) . n by SEQ_1:14 .= ((h (#) (h ")) . n) * (((f1 /* (h + c)) - (f1 /* c)) . n) by SEQ_1:8 .= ((h . n) * ((h ") . n)) * (((f1 /* (h + c)) - (f1 /* c)) . n) by SEQ_1:8 .= ((h . n) * ((h . n) ")) * (((f1 /* (h + c)) - (f1 /* c)) . n) by VALUED_1:10 .= 1 * (((f1 /* (h + c)) - (f1 /* c)) . n) by A45, XCMPLX_0:def_7 .= ((f1 /* (h + c)) - (f1 /* c)) . n ; ::_thesis: verum end; then A46: h (#) ((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) = (f1 /* (h + c)) - (f1 /* c) by FUNCT_2:63; h (#) ((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) is convergent by A36, SEQ_2:14; then A47: f1 /* (h + c) is convergent by A27, A46, A20, SEQ_2:5; lim (f1 /* c) = f1 . x0 by A25, A27, SEQ_2:def_7; then A48: 0 = (lim (f1 /* (h + c))) - (f1 . x0) by A27, A46, A47, A37, SEQ_2:12; Ldiff (f2,x0) = Ldiff (f2,x0) ; then A49: (h ") (#) ((f2 /* (h + c)) - (f2 /* c)) is convergent by A2, A16, A18, A38, Th9; then A50: ((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) (#) (f1 /* (h + c)) is convergent by A47, SEQ_2:14; lim ((h ") (#) (((f1 (#) f2) /* (h + c)) - ((f1 (#) f2) /* c))) = lim ((((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) (#) (f1 /* (h + c))) + (((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) (#) (f2 /* c))) by A43, FUNCT_2:63 .= (lim (((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) (#) (f1 /* (h + c)))) + (lim (((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) (#) (f2 /* c))) by A50, A41, SEQ_2:6 .= ((lim ((h ") (#) ((f2 /* (h + c)) - (f2 /* c)))) * (lim (f1 /* (h + c)))) + (lim (((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) (#) (f2 /* c))) by A49, A47, SEQ_2:15 .= ((lim ((h ") (#) ((f2 /* (h + c)) - (f2 /* c)))) * (f1 . x0)) + ((lim ((h ") (#) ((f1 /* (h + c)) - (f1 /* c)))) * (lim (f2 /* c))) by A40, A48, A32, SEQ_2:15 .= ((Ldiff (f1,x0)) * (f2 . x0)) + ((Ldiff (f2,x0)) * (f1 . x0)) by A34, A39, A30, A32, SEQ_2:def_7 ; hence ( (h ") (#) (((f1 (#) f2) /* (h + c)) - ((f1 (#) f2) /* c)) is convergent & lim ((h ") (#) (((f1 (#) f2) /* (h + c)) - ((f1 (#) f2) /* c))) = ((Ldiff (f1,x0)) * (f2 . x0)) + ((Ldiff (f2,x0)) * (f1 . x0)) ) by A50, A41, A44, SEQ_2:5; ::_thesis: verum end; [.(x0 - (min (r1,r2))),x0.] c= (dom f1) /\ (dom f2) by A14, A11, XBOOLE_1:19; then [.(x0 - (min (r1,r2))),x0.] c= dom (f1 (#) f2) by VALUED_1:def_4; hence ( f1 (#) f2 is_left_differentiable_in x0 & Ldiff ((f1 (#) f2),x0) = ((Ldiff (f1,x0)) * (f2 . x0)) + ((Ldiff (f2,x0)) * (f1 . x0)) ) by A7, A15, Th9; ::_thesis: verum end; Lm1: for f1, f2 being PartFunc of REAL,REAL for x0 being Real st f1 is_left_differentiable_in x0 & f2 is_left_differentiable_in x0 & ex r0 being Real st ( r0 > 0 & ( for g being Real st g in dom f2 & g in [.(x0 - r0),x0.] holds f2 . g <> 0 ) ) holds ( f1 / f2 is_left_differentiable_in x0 & Ldiff ((f1 / f2),x0) = (((Ldiff (f1,x0)) * (f2 . x0)) - ((Ldiff (f2,x0)) * (f1 . x0))) / ((f2 . x0) ^2) ) proof let f1, f2 be PartFunc of REAL,REAL; ::_thesis: for x0 being Real st f1 is_left_differentiable_in x0 & f2 is_left_differentiable_in x0 & ex r0 being Real st ( r0 > 0 & ( for g being Real st g in dom f2 & g in [.(x0 - r0),x0.] holds f2 . g <> 0 ) ) holds ( f1 / f2 is_left_differentiable_in x0 & Ldiff ((f1 / f2),x0) = (((Ldiff (f1,x0)) * (f2 . x0)) - ((Ldiff (f2,x0)) * (f1 . x0))) / ((f2 . x0) ^2) ) let x0 be Real; ::_thesis: ( f1 is_left_differentiable_in x0 & f2 is_left_differentiable_in x0 & ex r0 being Real st ( r0 > 0 & ( for g being Real st g in dom f2 & g in [.(x0 - r0),x0.] holds f2 . g <> 0 ) ) implies ( f1 / f2 is_left_differentiable_in x0 & Ldiff ((f1 / f2),x0) = (((Ldiff (f1,x0)) * (f2 . x0)) - ((Ldiff (f2,x0)) * (f1 . x0))) / ((f2 . x0) ^2) ) ) assume that A1: f1 is_left_differentiable_in x0 and A2: f2 is_left_differentiable_in x0 ; ::_thesis: ( for r0 being Real holds ( not r0 > 0 or ex g being Real st ( g in dom f2 & g in [.(x0 - r0),x0.] & not f2 . g <> 0 ) ) or ( f1 / f2 is_left_differentiable_in x0 & Ldiff ((f1 / f2),x0) = (((Ldiff (f1,x0)) * (f2 . x0)) - ((Ldiff (f2,x0)) * (f1 . x0))) / ((f2 . x0) ^2) ) ) consider r1 being Real such that A3: 0 < r1 and A4: [.(x0 - r1),x0.] c= dom f1 by A1, Def4; given r0 being Real such that A5: r0 > 0 and A6: for g being Real st g in dom f2 & g in [.(x0 - r0),x0.] holds f2 . g <> 0 ; ::_thesis: ( f1 / f2 is_left_differentiable_in x0 & Ldiff ((f1 / f2),x0) = (((Ldiff (f1,x0)) * (f2 . x0)) - ((Ldiff (f2,x0)) * (f1 . x0))) / ((f2 . x0) ^2) ) consider r2 being Real such that A7: 0 < r2 and A8: [.(x0 - r2),x0.] c= dom f2 by A2, Def4; set r3 = min (r0,r2); A9: 0 < min (r0,r2) by A5, A7, XXREAL_0:15; then A10: x0 - (min (r0,r2)) <= x0 by XREAL_1:43; min (r0,r2) <= r2 by XXREAL_0:17; then A11: x0 - r2 <= x0 - (min (r0,r2)) by XREAL_1:13; then x0 - r2 <= x0 by A10, XXREAL_0:2; then A12: x0 in [.(x0 - r2),x0.] by XXREAL_1:1; x0 - (min (r0,r2)) in { g where g is Real : ( x0 - r2 <= g & g <= x0 ) } by A10, A11; then x0 - (min (r0,r2)) in [.(x0 - r2),x0.] by RCOMP_1:def_1; then [.(x0 - (min (r0,r2))),x0.] c= [.(x0 - r2),x0.] by A12, XXREAL_2:def_12; then A13: [.(x0 - (min (r0,r2))),x0.] c= dom f2 by A8, XBOOLE_1:1; min (r0,r2) <= r0 by XXREAL_0:17; then A14: x0 - r0 <= x0 - (min (r0,r2)) by XREAL_1:13; then x0 - r0 <= x0 by A10, XXREAL_0:2; then A15: x0 in [.(x0 - r0),x0.] by XXREAL_1:1; x0 - (min (r0,r2)) in { g where g is Real : ( x0 - r0 <= g & g <= x0 ) } by A10, A14; then x0 - (min (r0,r2)) in [.(x0 - r0),x0.] by RCOMP_1:def_1; then A16: [.(x0 - (min (r0,r2))),x0.] c= [.(x0 - r0),x0.] by A15, XXREAL_2:def_12; set r = min (r1,(min (r0,r2))); A17: 0 < min (r1,(min (r0,r2))) by A3, A9, XXREAL_0:15; then A18: x0 - (min (r1,(min (r0,r2)))) <= x0 by XREAL_1:43; min (r1,(min (r0,r2))) <= min (r0,r2) by XXREAL_0:17; then A19: x0 - (min (r0,r2)) <= x0 - (min (r1,(min (r0,r2)))) by XREAL_1:13; then x0 - (min (r0,r2)) <= x0 by A18, XXREAL_0:2; then A20: x0 in [.(x0 - (min (r0,r2))),x0.] by XXREAL_1:1; x0 - (min (r1,(min (r0,r2)))) in { g where g is Real : ( x0 - (min (r0,r2)) <= g & g <= x0 ) } by A18, A19; then x0 - (min (r1,(min (r0,r2)))) in [.(x0 - (min (r0,r2))),x0.] by RCOMP_1:def_1; then A21: [.(x0 - (min (r1,(min (r0,r2))))),x0.] c= [.(x0 - (min (r0,r2))),x0.] by A20, XXREAL_2:def_12; [.(x0 - (min (r1,(min (r0,r2))))),x0.] c= dom (f2 ^) proof assume not [.(x0 - (min (r1,(min (r0,r2))))),x0.] c= dom (f2 ^) ; ::_thesis: contradiction then consider x being set such that A22: x in [.(x0 - (min (r1,(min (r0,r2))))),x0.] and A23: not x in dom (f2 ^) by TARSKI:def_3; reconsider x = x as Real by A22; A24: x in [.(x0 - (min (r0,r2))),x0.] by A21, A22; A25: not x in (dom f2) \ (f2 " {0}) by A23, RFUNCT_1:def_2; now__::_thesis:_contradiction percases ( not x in dom f2 or x in f2 " {0} ) by A25, XBOOLE_0:def_5; suppose not x in dom f2 ; ::_thesis: contradiction hence contradiction by A13, A24; ::_thesis: verum end; supposeA26: x in f2 " {0} ; ::_thesis: contradiction then f2 . x in {0} by FUNCT_1:def_7; then A27: f2 . x = 0 by TARSKI:def_1; x in dom f2 by A26, FUNCT_1:def_7; hence contradiction by A6, A16, A24, A27; ::_thesis: verum end; end; end; hence contradiction ; ::_thesis: verum end; then A28: [.(x0 - (min (r1,(min (r0,r2))))),x0.] c= (dom f2) \ (f2 " {0}) by RFUNCT_1:def_2; min (r1,(min (r0,r2))) <= r1 by XXREAL_0:17; then A29: x0 - r1 <= x0 - (min (r1,(min (r0,r2)))) by XREAL_1:13; then x0 - r1 <= x0 by A18, XXREAL_0:2; then A30: x0 in [.(x0 - r1),x0.] by XXREAL_1:1; x0 - (min (r1,(min (r0,r2)))) in { g where g is Real : ( x0 - r1 <= g & g <= x0 ) } by A18, A29; then x0 - (min (r1,(min (r0,r2)))) in [.(x0 - r1),x0.] by RCOMP_1:def_1; then [.(x0 - (min (r1,(min (r0,r2))))),x0.] c= [.(x0 - r1),x0.] by A30, XXREAL_2:def_12; then A31: [.(x0 - (min (r1,(min (r0,r2))))),x0.] c= dom f1 by A4, XBOOLE_1:1; A32: for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom (f1 / f2) & ( for n being Element of NAT holds h . n < 0 ) holds ( (h ") (#) (((f1 / f2) /* (h + c)) - ((f1 / f2) /* c)) is convergent & lim ((h ") (#) (((f1 / f2) /* (h + c)) - ((f1 / f2) /* c))) = (((Ldiff (f1,x0)) * (f2 . x0)) - ((Ldiff (f2,x0)) * (f1 . x0))) / ((f2 . x0) ^2) ) proof let h be non-zero 0 -convergent Real_Sequence; ::_thesis: for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom (f1 / f2) & ( for n being Element of NAT holds h . n < 0 ) holds ( (h ") (#) (((f1 / f2) /* (h + c)) - ((f1 / f2) /* c)) is convergent & lim ((h ") (#) (((f1 / f2) /* (h + c)) - ((f1 / f2) /* c))) = (((Ldiff (f1,x0)) * (f2 . x0)) - ((Ldiff (f2,x0)) * (f1 . x0))) / ((f2 . x0) ^2) ) let c be constant Real_Sequence; ::_thesis: ( rng c = {x0} & rng (h + c) c= dom (f1 / f2) & ( for n being Element of NAT holds h . n < 0 ) implies ( (h ") (#) (((f1 / f2) /* (h + c)) - ((f1 / f2) /* c)) is convergent & lim ((h ") (#) (((f1 / f2) /* (h + c)) - ((f1 / f2) /* c))) = (((Ldiff (f1,x0)) * (f2 . x0)) - ((Ldiff (f2,x0)) * (f1 . x0))) / ((f2 . x0) ^2) ) ) assume that A33: rng c = {x0} and A34: rng (h + c) c= dom (f1 / f2) and A35: for n being Element of NAT holds h . n < 0 ; ::_thesis: ( (h ") (#) (((f1 / f2) /* (h + c)) - ((f1 / f2) /* c)) is convergent & lim ((h ") (#) (((f1 / f2) /* (h + c)) - ((f1 / f2) /* c))) = (((Ldiff (f1,x0)) * (f2 . x0)) - ((Ldiff (f2,x0)) * (f1 . x0))) / ((f2 . x0) ^2) ) A36: rng (h + c) c= (dom f1) /\ ((dom f2) \ (f2 " {0})) by A34, RFUNCT_1:def_1; 0 <= min (r1,(min (r0,r2))) by A3, A9, XXREAL_0:15; then x0 - (min (r1,(min (r0,r2)))) <= x0 by XREAL_1:43; then A37: x0 in [.(x0 - (min (r1,(min (r0,r2))))),x0.] by XXREAL_1:1; then A38: x0 in dom f1 by A31; A39: rng c c= dom f1 proof let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in rng c or x in dom f1 ) assume x in rng c ; ::_thesis: x in dom f1 hence x in dom f1 by A33, A38, TARSKI:def_1; ::_thesis: verum end; (dom f1) /\ ((dom f2) \ (f2 " {0})) c= dom f1 by XBOOLE_1:17; then A40: rng (h + c) c= dom f1 by A36, XBOOLE_1:1; then A41: lim ((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) = Ldiff (f1,x0) by A1, A33, A35, Th9; A42: x0 in (dom f2) \ (f2 " {0}) by A28, A37; rng c c= (dom f2) \ (f2 " {0}) proof let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in rng c or x in (dom f2) \ (f2 " {0}) ) assume x in rng c ; ::_thesis: x in (dom f2) \ (f2 " {0}) hence x in (dom f2) \ (f2 " {0}) by A33, A42, TARSKI:def_1; ::_thesis: verum end; then A43: rng c c= dom (f2 ^) by RFUNCT_1:def_2; then A44: rng c c= (dom f1) /\ (dom (f2 ^)) by A39, XBOOLE_1:19; A45: (h ") (#) ((f1 /* (h + c)) - (f1 /* c)) is convergent by A1, A33, A35, A40, Def4; A46: f2 /* c is non-zero by A43, RFUNCT_2:11; A47: now__::_thesis:_for_n_being_Element_of_NAT_holds_((h_")_(#)_(((f1_/*_(h_+_c))_(#)_(f2_/*_c))_-_((f1_/*_c)_(#)_(f2_/*_(h_+_c)))))_._n_=_((((h_")_(#)_((f1_/*_(h_+_c))_-_(f1_/*_c)))_(#)_(f2_/*_c))_-_((f1_/*_c)_(#)_((h_")_(#)_((f2_/*_(h_+_c))_-_(f2_/*_c)))))_._n let n be Element of NAT ; ::_thesis: ((h ") (#) (((f1 /* (h + c)) (#) (f2 /* c)) - ((f1 /* c) (#) (f2 /* (h + c))))) . n = ((((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) (#) (f2 /* c)) - ((f1 /* c) (#) ((h ") (#) ((f2 /* (h + c)) - (f2 /* c))))) . n thus ((h ") (#) (((f1 /* (h + c)) (#) (f2 /* c)) - ((f1 /* c) (#) (f2 /* (h + c))))) . n = ((h ") . n) * ((((f1 /* (h + c)) (#) (f2 /* c)) - ((f1 /* c) (#) (f2 /* (h + c)))) . n) by SEQ_1:8 .= ((h ") . n) * ((((f1 /* (h + c)) (#) (f2 /* c)) . n) - (((f1 /* c) (#) (f2 /* (h + c))) . n)) by RFUNCT_2:1 .= ((h ") . n) * ((((f1 /* (h + c)) . n) * ((f2 /* c) . n)) - (((f1 /* c) (#) (f2 /* (h + c))) . n)) by SEQ_1:8 .= ((h ") . n) * ((((((f1 /* (h + c)) . n) - ((f1 /* c) . n)) * ((f2 /* c) . n)) + (((f1 /* c) . n) * ((f2 /* c) . n))) - (((f1 /* c) . n) * ((f2 /* (h + c)) . n))) by SEQ_1:8 .= ((((h ") . n) * (((f1 /* (h + c)) . n) - ((f1 /* c) . n))) * ((f2 /* c) . n)) - (((f1 /* c) . n) * (((h ") . n) * (((f2 /* (h + c)) . n) - ((f2 /* c) . n)))) .= ((((h ") . n) * (((f1 /* (h + c)) - (f1 /* c)) . n)) * ((f2 /* c) . n)) - (((f1 /* c) . n) * (((h ") . n) * (((f2 /* (h + c)) . n) - ((f2 /* c) . n)))) by RFUNCT_2:1 .= ((((h ") . n) * (((f1 /* (h + c)) - (f1 /* c)) . n)) * ((f2 /* c) . n)) - (((f1 /* c) . n) * (((h ") . n) * (((f2 /* (h + c)) - (f2 /* c)) . n))) by RFUNCT_2:1 .= ((((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) . n) * ((f2 /* c) . n)) - (((f1 /* c) . n) * (((h ") . n) * (((f2 /* (h + c)) - (f2 /* c)) . n))) by SEQ_1:8 .= ((((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) . n) * ((f2 /* c) . n)) - (((f1 /* c) . n) * (((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) . n)) by SEQ_1:8 .= ((((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) (#) (f2 /* c)) . n) - (((f1 /* c) . n) * (((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) . n)) by SEQ_1:8 .= ((((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) (#) (f2 /* c)) . n) - (((f1 /* c) (#) ((h ") (#) ((f2 /* (h + c)) - (f2 /* c)))) . n) by SEQ_1:8 .= ((((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) (#) (f2 /* c)) - ((f1 /* c) (#) ((h ") (#) ((f2 /* (h + c)) - (f2 /* c))))) . n by RFUNCT_2:1 ; ::_thesis: verum end; now__::_thesis:_for_n_being_Element_of_NAT_holds_((f2_/*_c)_+_((f2_/*_(h_+_c))_-_(f2_/*_c)))_._n_=_(f2_/*_(h_+_c))_._n let n be Element of NAT ; ::_thesis: ((f2 /* c) + ((f2 /* (h + c)) - (f2 /* c))) . n = (f2 /* (h + c)) . n thus ((f2 /* c) + ((f2 /* (h + c)) - (f2 /* c))) . n = ((f2 /* c) . n) + (((f2 /* (h + c)) - (f2 /* c)) . n) by SEQ_1:7 .= ((f2 /* c) . n) + (((f2 /* (h + c)) . n) - ((f2 /* c) . n)) by RFUNCT_2:1 .= (f2 /* (h + c)) . n ; ::_thesis: verum end; then A48: (f2 /* c) + ((f2 /* (h + c)) - (f2 /* c)) = f2 /* (h + c) by FUNCT_2:63; (dom f1) /\ ((dom f2) \ (f2 " {0})) c= (dom f2) \ (f2 " {0}) by XBOOLE_1:17; then A50: rng (h + c) c= (dom f2) \ (f2 " {0}) by A36, XBOOLE_1:1; then A51: rng (h + c) c= dom (f2 ^) by RFUNCT_1:def_2; then A52: rng (h + c) c= (dom f1) /\ (dom (f2 ^)) by A40, XBOOLE_1:19; A53: f2 /* (h + c) is non-zero by A51, RFUNCT_2:11; then A54: (f2 /* (h + c)) (#) (f2 /* c) is non-zero by A46, SEQ_1:35; (h ") (#) (((f1 / f2) /* (h + c)) - ((f1 / f2) /* c)) = (h ") (#) (((f1 (#) (f2 ^)) /* (h + c)) - ((f1 / f2) /* c)) by RFUNCT_1:31 .= (h ") (#) (((f1 (#) (f2 ^)) /* (h + c)) - ((f1 (#) (f2 ^)) /* c)) by RFUNCT_1:31 .= (h ") (#) (((f1 /* (h + c)) (#) ((f2 ^) /* (h + c))) - ((f1 (#) (f2 ^)) /* c)) by A52, RFUNCT_2:8 .= (h ") (#) (((f1 /* (h + c)) /" (f2 /* (h + c))) - ((f1 (#) (f2 ^)) /* c)) by A51, RFUNCT_2:12 .= (h ") (#) (((f1 /* (h + c)) /" (f2 /* (h + c))) - ((f1 /* c) (#) ((f2 ^) /* c))) by A44, RFUNCT_2:8 .= (h ") (#) (((f1 /* (h + c)) /" (f2 /* (h + c))) - ((f1 /* c) /" (f2 /* c))) by A43, RFUNCT_2:12 .= (h ") (#) ((((f1 /* (h + c)) (#) (f2 /* c)) - ((f1 /* c) (#) (f2 /* (h + c)))) /" ((f2 /* (h + c)) (#) (f2 /* c))) by A53, A46, SEQ_1:50 .= ((h ") (#) (((f1 /* (h + c)) (#) (f2 /* c)) - ((f1 /* c) (#) (f2 /* (h + c))))) /" ((f2 /* (h + c)) (#) (f2 /* c)) by SEQ_1:41 ; then A55: (h ") (#) (((f1 / f2) /* (h + c)) - ((f1 / f2) /* c)) = ((((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) (#) (f2 /* c)) - ((f1 /* c) (#) ((h ") (#) ((f2 /* (h + c)) - (f2 /* c))))) /" ((f2 /* (h + c)) (#) (f2 /* c)) by A47, FUNCT_2:63; (dom f2) \ (f2 " {0}) c= dom f2 by XBOOLE_1:36; then A56: rng (h + c) c= dom f2 by A50, XBOOLE_1:1; then A57: lim ((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) = Ldiff (f2,x0) by A2, A33, A35, Th9; Ldiff (f2,x0) = Ldiff (f2,x0) ; then A58: (h ") (#) ((f2 /* (h + c)) - (f2 /* c)) is convergent by A2, A33, A35, A56, Th9; now__::_thesis:_for_n_being_Element_of_NAT_holds_(h_(#)_((h_")_(#)_((f2_/*_(h_+_c))_-_(f2_/*_c))))_._n_=_((f2_/*_(h_+_c))_-_(f2_/*_c))_._n let n be Element of NAT ; ::_thesis: (h (#) ((h ") (#) ((f2 /* (h + c)) - (f2 /* c)))) . n = ((f2 /* (h + c)) - (f2 /* c)) . n A59: h . n <> 0 by A35; thus (h (#) ((h ") (#) ((f2 /* (h + c)) - (f2 /* c)))) . n = ((h (#) (h ")) (#) ((f2 /* (h + c)) - (f2 /* c))) . n by SEQ_1:14 .= ((h (#) (h ")) . n) * (((f2 /* (h + c)) - (f2 /* c)) . n) by SEQ_1:8 .= ((h . n) * ((h ") . n)) * (((f2 /* (h + c)) - (f2 /* c)) . n) by SEQ_1:8 .= ((h . n) * ((h . n) ")) * (((f2 /* (h + c)) - (f2 /* c)) . n) by VALUED_1:10 .= 1 * (((f2 /* (h + c)) - (f2 /* c)) . n) by A59, XCMPLX_0:def_7 .= ((f2 /* (h + c)) - (f2 /* c)) . n ; ::_thesis: verum end; then A60: h (#) ((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) = (f2 /* (h + c)) - (f2 /* c) by FUNCT_2:63; A61: for m being Element of NAT holds c . m = x0 proof let m be Element of NAT ; ::_thesis: c . m = x0 c . m in rng c by VALUED_0:28; hence c . m = x0 by A33, TARSKI:def_1; ::_thesis: verum end; A62: for g being real number st 0 < g holds ex n being Element of NAT st for m being Element of NAT st n <= m holds abs (((f1 /* c) . m) - (f1 . x0)) < g proof let g be real number ; ::_thesis: ( 0 < g implies ex n being Element of NAT st for m being Element of NAT st n <= m holds abs (((f1 /* c) . m) - (f1 . x0)) < g ) assume A63: 0 < g ; ::_thesis: ex n being Element of NAT st for m being Element of NAT st n <= m holds abs (((f1 /* c) . m) - (f1 . x0)) < g take n = 0 ; ::_thesis: for m being Element of NAT st n <= m holds abs (((f1 /* c) . m) - (f1 . x0)) < g let m be Element of NAT ; ::_thesis: ( n <= m implies abs (((f1 /* c) . m) - (f1 . x0)) < g ) assume n <= m ; ::_thesis: abs (((f1 /* c) . m) - (f1 . x0)) < g abs (((f1 /* c) . m) - (f1 . x0)) = abs ((f1 . (c . m)) - (f1 . x0)) by A39, FUNCT_2:108 .= abs ((f1 . x0) - (f1 . x0)) by A61 .= 0 by ABSVALUE:def_1 ; hence abs (((f1 /* c) . m) - (f1 . x0)) < g by A63; ::_thesis: verum end; then A64: f1 /* c is convergent by SEQ_2:def_6; then A65: lim (f1 /* c) = f1 . x0 by A62, SEQ_2:def_7; dom (f2 ^) = (dom f2) \ (f2 " {0}) by RFUNCT_1:def_2; then A66: dom (f2 ^) c= dom f2 by XBOOLE_1:36; A67: for g being real number st 0 < g holds ex n being Element of NAT st for m being Element of NAT st n <= m holds abs (((f2 /* c) . m) - (f2 . x0)) < g proof let g be real number ; ::_thesis: ( 0 < g implies ex n being Element of NAT st for m being Element of NAT st n <= m holds abs (((f2 /* c) . m) - (f2 . x0)) < g ) assume A68: 0 < g ; ::_thesis: ex n being Element of NAT st for m being Element of NAT st n <= m holds abs (((f2 /* c) . m) - (f2 . x0)) < g take n = 0 ; ::_thesis: for m being Element of NAT st n <= m holds abs (((f2 /* c) . m) - (f2 . x0)) < g let m be Element of NAT ; ::_thesis: ( n <= m implies abs (((f2 /* c) . m) - (f2 . x0)) < g ) assume n <= m ; ::_thesis: abs (((f2 /* c) . m) - (f2 . x0)) < g abs (((f2 /* c) . m) - (f2 . x0)) = abs ((f2 . (c . m)) - (f2 . x0)) by A43, A66, FUNCT_2:108, XBOOLE_1:1 .= abs ((f2 . x0) - (f2 . x0)) by A61 .= 0 by ABSVALUE:def_1 ; hence abs (((f2 /* c) . m) - (f2 . x0)) < g by A68; ::_thesis: verum end; then A69: f2 /* c is convergent by SEQ_2:def_6; then A70: lim (f2 /* c) = f2 . x0 by A67, SEQ_2:def_7; h (#) ((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) is convergent by A58, SEQ_2:14; then A72: f2 /* (h + c) is convergent by A69, A60, A48, SEQ_2:5; then A73: (f2 /* (h + c)) (#) (f2 /* c) is convergent by A69, SEQ_2:14; (h ") (#) ((f2 /* (h + c)) - (f2 /* c)) is convergent by A2, A33, A35, A56, Def4; then lim (h (#) ((h ") (#) ((f2 /* (h + c)) - (f2 /* c)))) = (lim h) * (lim ((h ") (#) ((f2 /* (h + c)) - (f2 /* c)))) by SEQ_2:15 .= 0 ; then 0 = (lim (f2 /* (h + c))) - (f2 . x0) by A69, A70, A60, A72, SEQ_2:12; then A74: lim ((f2 /* (h + c)) (#) (f2 /* c)) = (f2 . x0) ^2 by A69, A70, A72, SEQ_2:15; A75: lim ((f2 /* (h + c)) (#) (f2 /* c)) <> 0 proof assume not lim ((f2 /* (h + c)) (#) (f2 /* c)) <> 0 ; ::_thesis: contradiction then f2 . x0 = 0 by A74, XCMPLX_1:6; hence contradiction by A6, A8, A15, A12; ::_thesis: verum end; Ldiff (f1,x0) = Ldiff (f1,x0) ; then (h ") (#) ((f1 /* (h + c)) - (f1 /* c)) is convergent by A1, A33, A35, A40, Th9; then A76: ((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) (#) (f2 /* c) is convergent by A69, SEQ_2:14; A77: (f1 /* c) (#) ((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) is convergent by A58, A64, SEQ_2:14; then A78: (((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) (#) (f2 /* c)) - ((f1 /* c) (#) ((h ") (#) ((f2 /* (h + c)) - (f2 /* c)))) is convergent by A76, SEQ_2:11; then lim ((h ") (#) (((f1 / f2) /* (h + c)) - ((f1 / f2) /* c))) = (lim ((((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) (#) (f2 /* c)) - ((f1 /* c) (#) ((h ") (#) ((f2 /* (h + c)) - (f2 /* c)))))) / (lim ((f2 /* (h + c)) (#) (f2 /* c))) by A54, A73, A75, A55, SEQ_2:24 .= ((lim (((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) (#) (f2 /* c))) - (lim ((f1 /* c) (#) ((h ") (#) ((f2 /* (h + c)) - (f2 /* c)))))) / (lim ((f2 /* (h + c)) (#) (f2 /* c))) by A77, A76, SEQ_2:12 .= (((lim ((h ") (#) ((f1 /* (h + c)) - (f1 /* c)))) * (lim (f2 /* c))) - (lim ((f1 /* c) (#) ((h ") (#) ((f2 /* (h + c)) - (f2 /* c)))))) / (lim ((f2 /* (h + c)) (#) (f2 /* c))) by A45, A69, SEQ_2:15 .= (((Ldiff (f1,x0)) * (f2 . x0)) - ((Ldiff (f2,x0)) * (f1 . x0))) / ((f2 . x0) ^2) by A41, A58, A57, A64, A65, A70, A74, SEQ_2:15 ; hence ( (h ") (#) (((f1 / f2) /* (h + c)) - ((f1 / f2) /* c)) is convergent & lim ((h ") (#) (((f1 / f2) /* (h + c)) - ((f1 / f2) /* c))) = (((Ldiff (f1,x0)) * (f2 . x0)) - ((Ldiff (f2,x0)) * (f1 . x0))) / ((f2 . x0) ^2) ) by A54, A73, A75, A78, A55, SEQ_2:23; ::_thesis: verum end; [.(x0 - (min (r1,(min (r0,r2))))),x0.] c= (dom f1) /\ ((dom f2) \ (f2 " {0})) by A31, A28, XBOOLE_1:19; then [.(x0 - (min (r1,(min (r0,r2))))),x0.] c= dom (f1 / f2) by RFUNCT_1:def_1; hence ( f1 / f2 is_left_differentiable_in x0 & Ldiff ((f1 / f2),x0) = (((Ldiff (f1,x0)) * (f2 . x0)) - ((Ldiff (f2,x0)) * (f1 . x0))) / ((f2 . x0) ^2) ) by A17, A32, Th9; ::_thesis: verum end; theorem :: FDIFF_3:13 for f1, f2 being PartFunc of REAL,REAL for x0 being Real st f1 is_left_differentiable_in x0 & f2 is_left_differentiable_in x0 & f2 . x0 <> 0 holds ( f1 / f2 is_left_differentiable_in x0 & Ldiff ((f1 / f2),x0) = (((Ldiff (f1,x0)) * (f2 . x0)) - ((Ldiff (f2,x0)) * (f1 . x0))) / ((f2 . x0) ^2) ) proof let f1, f2 be PartFunc of REAL,REAL; ::_thesis: for x0 being Real st f1 is_left_differentiable_in x0 & f2 is_left_differentiable_in x0 & f2 . x0 <> 0 holds ( f1 / f2 is_left_differentiable_in x0 & Ldiff ((f1 / f2),x0) = (((Ldiff (f1,x0)) * (f2 . x0)) - ((Ldiff (f2,x0)) * (f1 . x0))) / ((f2 . x0) ^2) ) let x0 be Real; ::_thesis: ( f1 is_left_differentiable_in x0 & f2 is_left_differentiable_in x0 & f2 . x0 <> 0 implies ( f1 / f2 is_left_differentiable_in x0 & Ldiff ((f1 / f2),x0) = (((Ldiff (f1,x0)) * (f2 . x0)) - ((Ldiff (f2,x0)) * (f1 . x0))) / ((f2 . x0) ^2) ) ) assume that A1: f1 is_left_differentiable_in x0 and A2: f2 is_left_differentiable_in x0 and A3: f2 . x0 <> 0 ; ::_thesis: ( f1 / f2 is_left_differentiable_in x0 & Ldiff ((f1 / f2),x0) = (((Ldiff (f1,x0)) * (f2 . x0)) - ((Ldiff (f2,x0)) * (f1 . x0))) / ((f2 . x0) ^2) ) ex r being Real st ( r > 0 & [.(x0 - r),x0.] c= dom f2 ) by A2, Def4; then consider r1 being Real such that A4: r1 > 0 and [.(x0 - r1),x0.] c= dom f2 and A5: for g being Real st g in [.(x0 - r1),x0.] holds f2 . g <> 0 by A2, A3, Th5, Th6; now__::_thesis:_ex_r1_being_Real_st_ (_r1_>_0_&_(_for_g_being_Real_st_g_in_dom_f2_&_g_in_[.(x0_-_r1),x0.]_holds_ f2_._g_<>_0_)_) take r1 = r1; ::_thesis: ( r1 > 0 & ( for g being Real st g in dom f2 & g in [.(x0 - r1),x0.] holds f2 . g <> 0 ) ) thus r1 > 0 by A4; ::_thesis: for g being Real st g in dom f2 & g in [.(x0 - r1),x0.] holds f2 . g <> 0 let g be Real; ::_thesis: ( g in dom f2 & g in [.(x0 - r1),x0.] implies f2 . g <> 0 ) assume that g in dom f2 and A6: g in [.(x0 - r1),x0.] ; ::_thesis: f2 . g <> 0 thus f2 . g <> 0 by A5, A6; ::_thesis: verum end; hence ( f1 / f2 is_left_differentiable_in x0 & Ldiff ((f1 / f2),x0) = (((Ldiff (f1,x0)) * (f2 . x0)) - ((Ldiff (f2,x0)) * (f1 . x0))) / ((f2 . x0) ^2) ) by A1, A2, Lm1; ::_thesis: verum end; Lm2: for f being PartFunc of REAL,REAL for x0 being Real st f is_left_differentiable_in x0 & ex r0 being Real st ( r0 > 0 & ( for g being Real st g in dom f & g in [.(x0 - r0),x0.] holds f . g <> 0 ) ) holds ( f ^ is_left_differentiable_in x0 & Ldiff ((f ^),x0) = - ((Ldiff (f,x0)) / ((f . x0) ^2)) ) proof let f be PartFunc of REAL,REAL; ::_thesis: for x0 being Real st f is_left_differentiable_in x0 & ex r0 being Real st ( r0 > 0 & ( for g being Real st g in dom f & g in [.(x0 - r0),x0.] holds f . g <> 0 ) ) holds ( f ^ is_left_differentiable_in x0 & Ldiff ((f ^),x0) = - ((Ldiff (f,x0)) / ((f . x0) ^2)) ) let x0 be Real; ::_thesis: ( f is_left_differentiable_in x0 & ex r0 being Real st ( r0 > 0 & ( for g being Real st g in dom f & g in [.(x0 - r0),x0.] holds f . g <> 0 ) ) implies ( f ^ is_left_differentiable_in x0 & Ldiff ((f ^),x0) = - ((Ldiff (f,x0)) / ((f . x0) ^2)) ) ) assume A1: f is_left_differentiable_in x0 ; ::_thesis: ( for r0 being Real holds ( not r0 > 0 or ex g being Real st ( g in dom f & g in [.(x0 - r0),x0.] & not f . g <> 0 ) ) or ( f ^ is_left_differentiable_in x0 & Ldiff ((f ^),x0) = - ((Ldiff (f,x0)) / ((f . x0) ^2)) ) ) then consider r2 being Real such that A2: 0 < r2 and A3: [.(x0 - r2),x0.] c= dom f by Def4; given r0 being Real such that A4: r0 > 0 and A5: for g being Real st g in dom f & g in [.(x0 - r0),x0.] holds f . g <> 0 ; ::_thesis: ( f ^ is_left_differentiable_in x0 & Ldiff ((f ^),x0) = - ((Ldiff (f,x0)) / ((f . x0) ^2)) ) set r3 = min (r0,r2); A6: 0 < min (r0,r2) by A4, A2, XXREAL_0:15; then A7: x0 - (min (r0,r2)) <= x0 by XREAL_1:43; min (r0,r2) <= r2 by XXREAL_0:17; then A8: x0 - r2 <= x0 - (min (r0,r2)) by XREAL_1:13; then x0 - r2 <= x0 by A7, XXREAL_0:2; then A9: x0 in [.(x0 - r2),x0.] by XXREAL_1:1; x0 - (min (r0,r2)) in { g where g is Real : ( x0 - r2 <= g & g <= x0 ) } by A7, A8; then x0 - (min (r0,r2)) in [.(x0 - r2),x0.] by RCOMP_1:def_1; then [.(x0 - (min (r0,r2))),x0.] c= [.(x0 - r2),x0.] by A9, XXREAL_2:def_12; then A10: [.(x0 - (min (r0,r2))),x0.] c= dom f by A3, XBOOLE_1:1; min (r0,r2) <= r0 by XXREAL_0:17; then A11: x0 - r0 <= x0 - (min (r0,r2)) by XREAL_1:13; then x0 - r0 <= x0 by A7, XXREAL_0:2; then A12: x0 in [.(x0 - r0),x0.] by XXREAL_1:1; x0 - (min (r0,r2)) in { g where g is Real : ( x0 - r0 <= g & g <= x0 ) } by A7, A11; then x0 - (min (r0,r2)) in [.(x0 - r0),x0.] by RCOMP_1:def_1; then A13: [.(x0 - (min (r0,r2))),x0.] c= [.(x0 - r0),x0.] by A12, XXREAL_2:def_12; A14: [.(x0 - (min (r0,r2))),x0.] c= dom (f ^) proof assume not [.(x0 - (min (r0,r2))),x0.] c= dom (f ^) ; ::_thesis: contradiction then consider x being set such that A15: x in [.(x0 - (min (r0,r2))),x0.] and A16: not x in dom (f ^) by TARSKI:def_3; reconsider x = x as Real by A15; A17: not x in (dom f) \ (f " {0}) by A16, RFUNCT_1:def_2; now__::_thesis:_contradiction percases ( not x in dom f or x in f " {0} ) by A17, XBOOLE_0:def_5; suppose not x in dom f ; ::_thesis: contradiction hence contradiction by A10, A15; ::_thesis: verum end; supposeA18: x in f " {0} ; ::_thesis: contradiction then f . x in {0} by FUNCT_1:def_7; then A19: f . x = 0 by TARSKI:def_1; x in dom f by A18, FUNCT_1:def_7; hence contradiction by A5, A13, A15, A19; ::_thesis: verum end; end; end; hence contradiction ; ::_thesis: verum end; A20: x0 in [.(x0 - (min (r0,r2))),x0.] by A7, XXREAL_1:1; for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom (f ^) & ( for n being Element of NAT holds h . n < 0 ) holds ( (h ") (#) (((f ^) /* (h + c)) - ((f ^) /* c)) is convergent & lim ((h ") (#) (((f ^) /* (h + c)) - ((f ^) /* c))) = - ((Ldiff (f,x0)) / ((f . x0) ^2)) ) proof let h be non-zero 0 -convergent Real_Sequence; ::_thesis: for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom (f ^) & ( for n being Element of NAT holds h . n < 0 ) holds ( (h ") (#) (((f ^) /* (h + c)) - ((f ^) /* c)) is convergent & lim ((h ") (#) (((f ^) /* (h + c)) - ((f ^) /* c))) = - ((Ldiff (f,x0)) / ((f . x0) ^2)) ) let c be constant Real_Sequence; ::_thesis: ( rng c = {x0} & rng (h + c) c= dom (f ^) & ( for n being Element of NAT holds h . n < 0 ) implies ( (h ") (#) (((f ^) /* (h + c)) - ((f ^) /* c)) is convergent & lim ((h ") (#) (((f ^) /* (h + c)) - ((f ^) /* c))) = - ((Ldiff (f,x0)) / ((f . x0) ^2)) ) ) assume that A21: rng c = {x0} and A22: rng (h + c) c= dom (f ^) and A23: for n being Element of NAT holds h . n < 0 ; ::_thesis: ( (h ") (#) (((f ^) /* (h + c)) - ((f ^) /* c)) is convergent & lim ((h ") (#) (((f ^) /* (h + c)) - ((f ^) /* c))) = - ((Ldiff (f,x0)) / ((f . x0) ^2)) ) A25: for m being Element of NAT holds c . m = x0 proof let m be Element of NAT ; ::_thesis: c . m = x0 c . m in rng c by VALUED_0:28; hence c . m = x0 by A21, TARSKI:def_1; ::_thesis: verum end; A26: (dom f) \ (f " {0}) c= dom f by XBOOLE_1:36; rng (h + c) c= (dom f) \ (f " {0}) by A22, RFUNCT_1:def_2; then A27: rng (h + c) c= dom f by A26, XBOOLE_1:1; then A28: lim ((h ") (#) ((f /* (h + c)) - (f /* c))) = Ldiff (f,x0) by A1, A21, A23, Th9; Ldiff (f,x0) = Ldiff (f,x0) ; then A29: (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent by A1, A21, A23, A27, Th9; then A30: - ((h ") (#) ((f /* (h + c)) - (f /* c))) is convergent by SEQ_2:9; x0 in dom (f ^) by A20, A14; then A31: x0 in (dom f) \ (f " {0}) by RFUNCT_1:def_2; rng c c= (dom f) \ (f " {0}) proof let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in rng c or x in (dom f) \ (f " {0}) ) assume x in rng c ; ::_thesis: x in (dom f) \ (f " {0}) hence x in (dom f) \ (f " {0}) by A21, A31, TARSKI:def_1; ::_thesis: verum end; then A32: rng c c= dom (f ^) by RFUNCT_1:def_2; then A33: f /* c is non-zero by RFUNCT_2:11; now__::_thesis:_for_n_being_Element_of_NAT_holds_(h_(#)_((h_")_(#)_((f_/*_(h_+_c))_-_(f_/*_c))))_._n_=_((f_/*_(h_+_c))_-_(f_/*_c))_._n let n be Element of NAT ; ::_thesis: (h (#) ((h ") (#) ((f /* (h + c)) - (f /* c)))) . n = ((f /* (h + c)) - (f /* c)) . n A34: h . n <> 0 by A23; thus (h (#) ((h ") (#) ((f /* (h + c)) - (f /* c)))) . n = ((h (#) (h ")) (#) ((f /* (h + c)) - (f /* c))) . n by SEQ_1:14 .= ((h (#) (h ")) . n) * (((f /* (h + c)) - (f /* c)) . n) by SEQ_1:8 .= ((h . n) * ((h ") . n)) * (((f /* (h + c)) - (f /* c)) . n) by SEQ_1:8 .= ((h . n) * ((h . n) ")) * (((f /* (h + c)) - (f /* c)) . n) by VALUED_1:10 .= 1 * (((f /* (h + c)) - (f /* c)) . n) by A34, XCMPLX_0:def_7 .= ((f /* (h + c)) - (f /* c)) . n ; ::_thesis: verum end; then A35: h (#) ((h ") (#) ((f /* (h + c)) - (f /* c))) = (f /* (h + c)) - (f /* c) by FUNCT_2:63; A36: f /* (h + c) is non-zero by A22, RFUNCT_2:11; then A37: (f /* (h + c)) (#) (f /* c) is non-zero by A33, SEQ_1:35; now__::_thesis:_for_n_being_Element_of_NAT_holds_((f_/*_c)_+_((f_/*_(h_+_c))_-_(f_/*_c)))_._n_=_(f_/*_(h_+_c))_._n let n be Element of NAT ; ::_thesis: ((f /* c) + ((f /* (h + c)) - (f /* c))) . n = (f /* (h + c)) . n thus ((f /* c) + ((f /* (h + c)) - (f /* c))) . n = ((f /* c) . n) + (((f /* (h + c)) - (f /* c)) . n) by SEQ_1:7 .= ((f /* c) . n) + (((f /* (h + c)) . n) - ((f /* c) . n)) by RFUNCT_2:1 .= (f /* (h + c)) . n ; ::_thesis: verum end; then A38: (f /* c) + ((f /* (h + c)) - (f /* c)) = f /* (h + c) by FUNCT_2:63; dom (f ^) = (dom f) \ (f " {0}) by RFUNCT_1:def_2; then A39: dom (f ^) c= dom f by XBOOLE_1:36; A40: for g being real number st 0 < g holds ex n being Element of NAT st for m being Element of NAT st n <= m holds abs (((f /* c) . m) - (f . x0)) < g proof let g be real number ; ::_thesis: ( 0 < g implies ex n being Element of NAT st for m being Element of NAT st n <= m holds abs (((f /* c) . m) - (f . x0)) < g ) assume A41: 0 < g ; ::_thesis: ex n being Element of NAT st for m being Element of NAT st n <= m holds abs (((f /* c) . m) - (f . x0)) < g take n = 0 ; ::_thesis: for m being Element of NAT st n <= m holds abs (((f /* c) . m) - (f . x0)) < g let m be Element of NAT ; ::_thesis: ( n <= m implies abs (((f /* c) . m) - (f . x0)) < g ) assume n <= m ; ::_thesis: abs (((f /* c) . m) - (f . x0)) < g abs (((f /* c) . m) - (f . x0)) = abs ((f . (c . m)) - (f . x0)) by A32, A39, FUNCT_2:108, XBOOLE_1:1 .= abs ((f . x0) - (f . x0)) by A25 .= 0 by ABSVALUE:def_1 ; hence abs (((f /* c) . m) - (f . x0)) < g by A41; ::_thesis: verum end; then A42: f /* c is convergent by SEQ_2:def_6; then A43: lim (f /* c) = f . x0 by A40, SEQ_2:def_7; h (#) ((h ") (#) ((f /* (h + c)) - (f /* c))) is convergent by A29, SEQ_2:14; then A45: f /* (h + c) is convergent by A42, A35, A38, SEQ_2:5; lim (h (#) ((h ") (#) ((f /* (h + c)) - (f /* c)))) = (lim h) * (lim ((h ") (#) ((f /* (h + c)) - (f /* c)))) by A29, SEQ_2:15 .= 0 ; then 0 = (lim (f /* (h + c))) - (f . x0) by A42, A43, A35, A45, SEQ_2:12; then A46: lim ((f /* (h + c)) (#) (f /* c)) = (f . x0) ^2 by A42, A43, A45, SEQ_2:15; A47: lim ((f /* (h + c)) (#) (f /* c)) <> 0 proof assume not lim ((f /* (h + c)) (#) (f /* c)) <> 0 ; ::_thesis: contradiction then f . x0 = 0 by A46, XCMPLX_1:6; hence contradiction by A5, A3, A12, A9; ::_thesis: verum end; now__::_thesis:_for_n_being_Element_of_NAT_holds_((h_")_(#)_(((f_^)_/*_(h_+_c))_-_((f_^)_/*_c)))_._n_=_((-_((h_")_(#)_((f_/*_(h_+_c))_-_(f_/*_c))))_/"_((f_/*_(h_+_c))_(#)_(f_/*_c)))_._n let n be Element of NAT ; ::_thesis: ((h ") (#) (((f ^) /* (h + c)) - ((f ^) /* c))) . n = ((- ((h ") (#) ((f /* (h + c)) - (f /* c)))) /" ((f /* (h + c)) (#) (f /* c))) . n A48: ( (f /* (h + c)) . n <> 0 & (f /* c) . n <> 0 ) by A36, A33, SEQ_1:5; thus ((h ") (#) (((f ^) /* (h + c)) - ((f ^) /* c))) . n = ((h ") . n) * ((((f ^) /* (h + c)) - ((f ^) /* c)) . n) by SEQ_1:8 .= ((h ") . n) * ((((f ^) /* (h + c)) . n) - (((f ^) /* c) . n)) by RFUNCT_2:1 .= ((h ") . n) * ((((f /* (h + c)) ") . n) - (((f ^) /* c) . n)) by A22, RFUNCT_2:12 .= ((h ") . n) * ((((f /* (h + c)) ") . n) - (((f /* c) ") . n)) by A32, RFUNCT_2:12 .= ((h ") . n) * ((((f /* (h + c)) . n) ") - (((f /* c) ") . n)) by VALUED_1:10 .= ((h ") . n) * ((((f /* (h + c)) . n) ") - (((f /* c) . n) ")) by VALUED_1:10 .= ((h ") . n) * ((1 / ((f /* (h + c)) . n)) - (((f /* c) . n) ")) by XCMPLX_1:215 .= ((h ") . n) * ((1 / ((f /* (h + c)) . n)) - (1 / ((f /* c) . n))) by XCMPLX_1:215 .= ((h ") . n) * (((1 * ((f /* c) . n)) - (1 * ((f /* (h + c)) . n))) / (((f /* (h + c)) . n) * ((f /* c) . n))) by A48, XCMPLX_1:130 .= ((h ") . n) * ((- (((f /* (h + c)) . n) - ((f /* c) . n))) / (((f /* (h + c)) (#) (f /* c)) . n)) by SEQ_1:8 .= ((h ") . n) * ((- (((f /* (h + c)) - (f /* c)) . n)) / (((f /* (h + c)) (#) (f /* c)) . n)) by RFUNCT_2:1 .= ((h ") . n) * (- ((((f /* (h + c)) - (f /* c)) . n) / (((f /* (h + c)) (#) (f /* c)) . n))) by XCMPLX_1:187 .= - (((h ") . n) * ((((f /* (h + c)) - (f /* c)) . n) / (((f /* (h + c)) (#) (f /* c)) . n))) .= - ((((h ") . n) * (((f /* (h + c)) - (f /* c)) . n)) / (((f /* (h + c)) (#) (f /* c)) . n)) by XCMPLX_1:74 .= - ((((h ") (#) ((f /* (h + c)) - (f /* c))) . n) / (((f /* (h + c)) (#) (f /* c)) . n)) by SEQ_1:8 .= - ((((h ") (#) ((f /* (h + c)) - (f /* c))) . n) * ((((f /* (h + c)) (#) (f /* c)) . n) ")) by XCMPLX_0:def_9 .= - ((((h ") (#) ((f /* (h + c)) - (f /* c))) . n) * ((((f /* (h + c)) (#) (f /* c)) ") . n)) by VALUED_1:10 .= - ((((h ") (#) ((f /* (h + c)) - (f /* c))) /" ((f /* (h + c)) (#) (f /* c))) . n) by SEQ_1:8 .= (- (((h ") (#) ((f /* (h + c)) - (f /* c))) /" ((f /* (h + c)) (#) (f /* c)))) . n by SEQ_1:10 .= ((- ((h ") (#) ((f /* (h + c)) - (f /* c)))) /" ((f /* (h + c)) (#) (f /* c))) . n by SEQ_1:48 ; ::_thesis: verum end; then A49: (h ") (#) (((f ^) /* (h + c)) - ((f ^) /* c)) = (- ((h ") (#) ((f /* (h + c)) - (f /* c)))) /" ((f /* (h + c)) (#) (f /* c)) by FUNCT_2:63; A50: (f /* (h + c)) (#) (f /* c) is convergent by A42, A45, SEQ_2:14; then lim ((h ") (#) (((f ^) /* (h + c)) - ((f ^) /* c))) = (lim (- ((h ") (#) ((f /* (h + c)) - (f /* c))))) / ((f . x0) ^2) by A37, A46, A47, A30, A49, SEQ_2:24 .= (- (Ldiff (f,x0))) / ((f . x0) ^2) by A29, A28, SEQ_2:10 .= - ((Ldiff (f,x0)) / ((f . x0) ^2)) by XCMPLX_1:187 ; hence ( (h ") (#) (((f ^) /* (h + c)) - ((f ^) /* c)) is convergent & lim ((h ") (#) (((f ^) /* (h + c)) - ((f ^) /* c))) = - ((Ldiff (f,x0)) / ((f . x0) ^2)) ) by A37, A50, A47, A30, A49, SEQ_2:23; ::_thesis: verum end; hence ( f ^ is_left_differentiable_in x0 & Ldiff ((f ^),x0) = - ((Ldiff (f,x0)) / ((f . x0) ^2)) ) by A6, A14, Th9; ::_thesis: verum end; theorem :: FDIFF_3:14 for f being PartFunc of REAL,REAL for x0 being Real st f is_left_differentiable_in x0 & f . x0 <> 0 holds ( f ^ is_left_differentiable_in x0 & Ldiff ((f ^),x0) = - ((Ldiff (f,x0)) / ((f . x0) ^2)) ) proof let f be PartFunc of REAL,REAL; ::_thesis: for x0 being Real st f is_left_differentiable_in x0 & f . x0 <> 0 holds ( f ^ is_left_differentiable_in x0 & Ldiff ((f ^),x0) = - ((Ldiff (f,x0)) / ((f . x0) ^2)) ) let x0 be Real; ::_thesis: ( f is_left_differentiable_in x0 & f . x0 <> 0 implies ( f ^ is_left_differentiable_in x0 & Ldiff ((f ^),x0) = - ((Ldiff (f,x0)) / ((f . x0) ^2)) ) ) assume that A1: f is_left_differentiable_in x0 and A2: f . x0 <> 0 ; ::_thesis: ( f ^ is_left_differentiable_in x0 & Ldiff ((f ^),x0) = - ((Ldiff (f,x0)) / ((f . x0) ^2)) ) ex r being Real st ( r > 0 & [.(x0 - r),x0.] c= dom f ) by A1, Def4; then consider r1 being Real such that A3: r1 > 0 and [.(x0 - r1),x0.] c= dom f and A4: for g being Real st g in [.(x0 - r1),x0.] holds f . g <> 0 by A1, A2, Th5, Th6; now__::_thesis:_ex_r1_being_Real_st_ (_r1_>_0_&_(_for_g_being_Real_st_g_in_dom_f_&_g_in_[.(x0_-_r1),x0.]_holds_ f_._g_<>_0_)_) take r1 = r1; ::_thesis: ( r1 > 0 & ( for g being Real st g in dom f & g in [.(x0 - r1),x0.] holds f . g <> 0 ) ) thus r1 > 0 by A3; ::_thesis: for g being Real st g in dom f & g in [.(x0 - r1),x0.] holds f . g <> 0 let g be Real; ::_thesis: ( g in dom f & g in [.(x0 - r1),x0.] implies f . g <> 0 ) assume that g in dom f and A5: g in [.(x0 - r1),x0.] ; ::_thesis: f . g <> 0 thus f . g <> 0 by A4, A5; ::_thesis: verum end; hence ( f ^ is_left_differentiable_in x0 & Ldiff ((f ^),x0) = - ((Ldiff (f,x0)) / ((f . x0) ^2)) ) by A1, Lm2; ::_thesis: verum end; theorem Th15: :: FDIFF_3:15 for f being PartFunc of REAL,REAL for x0, g1 being Real holds ( f is_right_differentiable_in x0 & Rdiff (f,x0) = g1 iff ( ex r being Real st ( r > 0 & [.x0,(x0 + r).] c= dom f ) & ( for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n > 0 ) holds ( (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent & lim ((h ") (#) ((f /* (h + c)) - (f /* c))) = g1 ) ) ) ) proof let f be PartFunc of REAL,REAL; ::_thesis: for x0, g1 being Real holds ( f is_right_differentiable_in x0 & Rdiff (f,x0) = g1 iff ( ex r being Real st ( r > 0 & [.x0,(x0 + r).] c= dom f ) & ( for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n > 0 ) holds ( (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent & lim ((h ") (#) ((f /* (h + c)) - (f /* c))) = g1 ) ) ) ) let x0, g1 be Real; ::_thesis: ( f is_right_differentiable_in x0 & Rdiff (f,x0) = g1 iff ( ex r being Real st ( r > 0 & [.x0,(x0 + r).] c= dom f ) & ( for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n > 0 ) holds ( (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent & lim ((h ") (#) ((f /* (h + c)) - (f /* c))) = g1 ) ) ) ) thus ( f is_right_differentiable_in x0 & Rdiff (f,x0) = g1 implies ( ex r being Real st ( r > 0 & [.x0,(x0 + r).] c= dom f ) & ( for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n > 0 ) holds ( (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent & lim ((h ") (#) ((f /* (h + c)) - (f /* c))) = g1 ) ) ) ) by Def3, Def6; ::_thesis: ( ex r being Real st ( r > 0 & [.x0,(x0 + r).] c= dom f ) & ( for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n > 0 ) holds ( (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent & lim ((h ") (#) ((f /* (h + c)) - (f /* c))) = g1 ) ) implies ( f is_right_differentiable_in x0 & Rdiff (f,x0) = g1 ) ) assume that A1: ex r being Real st ( r > 0 & [.x0,(x0 + r).] c= dom f ) and A2: for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n > 0 ) holds ( (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent & lim ((h ") (#) ((f /* (h + c)) - (f /* c))) = g1 ) ; ::_thesis: ( f is_right_differentiable_in x0 & Rdiff (f,x0) = g1 ) for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n > 0 ) holds (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent by A2; hence A3: f is_right_differentiable_in x0 by A1, Def3; ::_thesis: Rdiff (f,x0) = g1 for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n > 0 ) holds lim ((h ") (#) ((f /* (h + c)) - (f /* c))) = g1 by A2; hence Rdiff (f,x0) = g1 by A3, Def6; ::_thesis: verum end; theorem :: FDIFF_3:16 for f1, f2 being PartFunc of REAL,REAL for x0 being Real st f1 is_right_differentiable_in x0 & f2 is_right_differentiable_in x0 holds ( f1 + f2 is_right_differentiable_in x0 & Rdiff ((f1 + f2),x0) = (Rdiff (f1,x0)) + (Rdiff (f2,x0)) ) proof let f1, f2 be PartFunc of REAL,REAL; ::_thesis: for x0 being Real st f1 is_right_differentiable_in x0 & f2 is_right_differentiable_in x0 holds ( f1 + f2 is_right_differentiable_in x0 & Rdiff ((f1 + f2),x0) = (Rdiff (f1,x0)) + (Rdiff (f2,x0)) ) let x0 be Real; ::_thesis: ( f1 is_right_differentiable_in x0 & f2 is_right_differentiable_in x0 implies ( f1 + f2 is_right_differentiable_in x0 & Rdiff ((f1 + f2),x0) = (Rdiff (f1,x0)) + (Rdiff (f2,x0)) ) ) assume that A1: f1 is_right_differentiable_in x0 and A2: f2 is_right_differentiable_in x0 ; ::_thesis: ( f1 + f2 is_right_differentiable_in x0 & Rdiff ((f1 + f2),x0) = (Rdiff (f1,x0)) + (Rdiff (f2,x0)) ) consider r2 being Real such that A3: r2 > 0 and A4: [.x0,(x0 + r2).] c= dom f2 by A2, Def3; consider r1 being Real such that A5: r1 > 0 and A6: [.x0,(x0 + r1).] c= dom f1 by A1, Def3; A7: x0 + 0 = x0 ; set r = min (r1,r2); 0 <= min (r1,r2) by A5, A3, XXREAL_0:15; then A8: x0 <= x0 + (min (r1,r2)) by A7, XREAL_1:7; min (r1,r2) <= r2 by XXREAL_0:17; then A9: x0 + (min (r1,r2)) <= x0 + r2 by XREAL_1:7; then x0 + (min (r1,r2)) in { g where g is Real : ( x0 <= g & g <= x0 + r2 ) } by A8; then A10: x0 + (min (r1,r2)) in [.x0,(x0 + r2).] by RCOMP_1:def_1; x0 <= x0 + r2 by A8, A9, XXREAL_0:2; then x0 in [.x0,(x0 + r2).] by XXREAL_1:1; then [.x0,(x0 + (min (r1,r2))).] c= [.x0,(x0 + r2).] by A10, XXREAL_2:def_12; then A11: [.x0,(x0 + (min (r1,r2))).] c= dom f2 by A4, XBOOLE_1:1; min (r1,r2) <= r1 by XXREAL_0:17; then A12: x0 + (min (r1,r2)) <= x0 + r1 by XREAL_1:7; then x0 + (min (r1,r2)) in { g where g is Real : ( x0 <= g & g <= x0 + r1 ) } by A8; then A13: x0 + (min (r1,r2)) in [.x0,(x0 + r1).] by RCOMP_1:def_1; x0 <= x0 + r1 by A12, A8, XXREAL_0:2; then x0 in [.x0,(x0 + r1).] by XXREAL_1:1; then [.x0,(x0 + (min (r1,r2))).] c= [.x0,(x0 + r1).] by A13, XXREAL_2:def_12; then [.x0,(x0 + (min (r1,r2))).] c= dom f1 by A6, XBOOLE_1:1; then A14: [.x0,(x0 + (min (r1,r2))).] c= (dom f1) /\ (dom f2) by A11, XBOOLE_1:19; then A15: [.x0,(x0 + (min (r1,r2))).] c= dom (f1 + f2) by VALUED_1:def_1; A16: for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom (f1 + f2) & ( for n being Element of NAT holds h . n > 0 ) holds ( (h ") (#) (((f1 + f2) /* (h + c)) - ((f1 + f2) /* c)) is convergent & lim ((h ") (#) (((f1 + f2) /* (h + c)) - ((f1 + f2) /* c))) = (Rdiff (f1,x0)) + (Rdiff (f2,x0)) ) proof let h be non-zero 0 -convergent Real_Sequence; ::_thesis: for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom (f1 + f2) & ( for n being Element of NAT holds h . n > 0 ) holds ( (h ") (#) (((f1 + f2) /* (h + c)) - ((f1 + f2) /* c)) is convergent & lim ((h ") (#) (((f1 + f2) /* (h + c)) - ((f1 + f2) /* c))) = (Rdiff (f1,x0)) + (Rdiff (f2,x0)) ) let c be constant Real_Sequence; ::_thesis: ( rng c = {x0} & rng (h + c) c= dom (f1 + f2) & ( for n being Element of NAT holds h . n > 0 ) implies ( (h ") (#) (((f1 + f2) /* (h + c)) - ((f1 + f2) /* c)) is convergent & lim ((h ") (#) (((f1 + f2) /* (h + c)) - ((f1 + f2) /* c))) = (Rdiff (f1,x0)) + (Rdiff (f2,x0)) ) ) assume that A17: rng c = {x0} and A18: rng (h + c) c= dom (f1 + f2) and A19: for n being Element of NAT holds h . n > 0 ; ::_thesis: ( (h ") (#) (((f1 + f2) /* (h + c)) - ((f1 + f2) /* c)) is convergent & lim ((h ") (#) (((f1 + f2) /* (h + c)) - ((f1 + f2) /* c))) = (Rdiff (f1,x0)) + (Rdiff (f2,x0)) ) A20: rng (h + c) c= (dom f1) /\ (dom f2) by A18, VALUED_1:def_1; A21: now__::_thesis:_for_n_being_Element_of_NAT_holds_(((f1_/*_(h_+_c))_-_(f1_/*_c))_+_((f2_/*_(h_+_c))_-_(f2_/*_c)))_._n_=_(((f1_+_f2)_/*_(h_+_c))_-_((f1_+_f2)_/*_c))_._n let n be Element of NAT ; ::_thesis: (((f1 /* (h + c)) - (f1 /* c)) + ((f2 /* (h + c)) - (f2 /* c))) . n = (((f1 + f2) /* (h + c)) - ((f1 + f2) /* c)) . n A22: rng c c= (dom f1) /\ (dom f2) proof let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in rng c or x in (dom f1) /\ (dom f2) ) assume x in rng c ; ::_thesis: x in (dom f1) /\ (dom f2) then A23: x = x0 by A17, TARSKI:def_1; x0 in [.x0,(x0 + (min (r1,r2))).] by A8, XXREAL_1:1; hence x in (dom f1) /\ (dom f2) by A14, A23; ::_thesis: verum end; thus (((f1 /* (h + c)) - (f1 /* c)) + ((f2 /* (h + c)) - (f2 /* c))) . n = (((f1 /* (h + c)) + (- (f1 /* c))) . n) + (((f2 /* (h + c)) - (f2 /* c)) . n) by SEQ_1:7 .= (((f1 /* (h + c)) . n) + ((- (f1 /* c)) . n)) + (((f2 /* (h + c)) + (- (f2 /* c))) . n) by SEQ_1:7 .= (((f1 /* (h + c)) . n) + ((- (f1 /* c)) . n)) + (((f2 /* (h + c)) . n) + ((- (f2 /* c)) . n)) by SEQ_1:7 .= (((f1 /* (h + c)) . n) + ((f2 /* (h + c)) . n)) + (((- (f1 /* c)) . n) + ((- (f2 /* c)) . n)) .= (((f1 /* (h + c)) . n) + ((f2 /* (h + c)) . n)) + ((- ((f1 /* c) . n)) + ((- (f2 /* c)) . n)) by SEQ_1:10 .= (((f1 /* (h + c)) . n) + ((f2 /* (h + c)) . n)) + ((- ((f1 /* c) . n)) + (- ((f2 /* c) . n))) by SEQ_1:10 .= (((f1 /* (h + c)) . n) + ((f2 /* (h + c)) . n)) - (((f1 /* c) . n) + ((f2 /* c) . n)) .= (((f1 /* (h + c)) + (f2 /* (h + c))) . n) - (((f1 /* c) . n) + ((f2 /* c) . n)) by SEQ_1:7 .= (((f1 /* (h + c)) + (f2 /* (h + c))) . n) - (((f1 /* c) + (f2 /* c)) . n) by SEQ_1:7 .= (((f1 /* (h + c)) + (f2 /* (h + c))) - ((f1 /* c) + (f2 /* c))) . n by RFUNCT_2:1 .= (((f1 + f2) /* (h + c)) - ((f1 /* c) + (f2 /* c))) . n by A20, RFUNCT_2:8 .= (((f1 + f2) /* (h + c)) - ((f1 + f2) /* c)) . n by A22, RFUNCT_2:8 ; ::_thesis: verum end; then A24: ((f1 /* (h + c)) - (f1 /* c)) + ((f2 /* (h + c)) - (f2 /* c)) = ((f1 + f2) /* (h + c)) - ((f1 + f2) /* c) by FUNCT_2:63; (dom f1) /\ (dom f2) c= dom f2 by XBOOLE_1:17; then A25: rng (h + c) c= dom f2 by A20, XBOOLE_1:1; then A26: lim ((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) = Rdiff (f2,x0) by A2, A17, A19, Th15; Rdiff (f2,x0) = Rdiff (f2,x0) ; then A27: (h ") (#) ((f2 /* (h + c)) - (f2 /* c)) is convergent by A2, A17, A19, A25, Th15; (dom f1) /\ (dom f2) c= dom f1 by XBOOLE_1:17; then A28: rng (h + c) c= dom f1 by A20, XBOOLE_1:1; A29: ((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) + ((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) = (h ") (#) (((f1 /* (h + c)) - (f1 /* c)) + ((f2 /* (h + c)) - (f2 /* c))) by SEQ_1:16; Rdiff (f1,x0) = Rdiff (f1,x0) ; then A30: (h ") (#) ((f1 /* (h + c)) - (f1 /* c)) is convergent by A1, A17, A19, A28, Th15; then ((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) + ((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) is convergent by A27, SEQ_2:5; hence (h ") (#) (((f1 + f2) /* (h + c)) - ((f1 + f2) /* c)) is convergent by A29, A21, FUNCT_2:63; ::_thesis: lim ((h ") (#) (((f1 + f2) /* (h + c)) - ((f1 + f2) /* c))) = (Rdiff (f1,x0)) + (Rdiff (f2,x0)) lim ((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) = Rdiff (f1,x0) by A1, A17, A19, A28, Th15; hence lim ((h ") (#) (((f1 + f2) /* (h + c)) - ((f1 + f2) /* c))) = (Rdiff (f1,x0)) + (Rdiff (f2,x0)) by A30, A27, A26, A29, A24, SEQ_2:6; ::_thesis: verum end; 0 < min (r1,r2) by A5, A3, XXREAL_0:15; hence ( f1 + f2 is_right_differentiable_in x0 & Rdiff ((f1 + f2),x0) = (Rdiff (f1,x0)) + (Rdiff (f2,x0)) ) by A15, A16, Th15; ::_thesis: verum end; theorem :: FDIFF_3:17 for f1, f2 being PartFunc of REAL,REAL for x0 being Real st f1 is_right_differentiable_in x0 & f2 is_right_differentiable_in x0 holds ( f1 - f2 is_right_differentiable_in x0 & Rdiff ((f1 - f2),x0) = (Rdiff (f1,x0)) - (Rdiff (f2,x0)) ) proof let f1, f2 be PartFunc of REAL,REAL; ::_thesis: for x0 being Real st f1 is_right_differentiable_in x0 & f2 is_right_differentiable_in x0 holds ( f1 - f2 is_right_differentiable_in x0 & Rdiff ((f1 - f2),x0) = (Rdiff (f1,x0)) - (Rdiff (f2,x0)) ) let x0 be Real; ::_thesis: ( f1 is_right_differentiable_in x0 & f2 is_right_differentiable_in x0 implies ( f1 - f2 is_right_differentiable_in x0 & Rdiff ((f1 - f2),x0) = (Rdiff (f1,x0)) - (Rdiff (f2,x0)) ) ) assume that A1: f1 is_right_differentiable_in x0 and A2: f2 is_right_differentiable_in x0 ; ::_thesis: ( f1 - f2 is_right_differentiable_in x0 & Rdiff ((f1 - f2),x0) = (Rdiff (f1,x0)) - (Rdiff (f2,x0)) ) consider r2 being Real such that A3: r2 > 0 and A4: [.x0,(x0 + r2).] c= dom f2 by A2, Def3; consider r1 being Real such that A5: r1 > 0 and A6: [.x0,(x0 + r1).] c= dom f1 by A1, Def3; set r = min (r1,r2); A7: 0 < min (r1,r2) by A5, A3, XXREAL_0:15; then A8: x0 + 0 <= x0 + (min (r1,r2)) by XREAL_1:7; min (r1,r2) <= r2 by XXREAL_0:17; then A9: x0 + (min (r1,r2)) <= x0 + r2 by XREAL_1:7; then x0 + (min (r1,r2)) in { g where g is Real : ( x0 <= g & g <= x0 + r2 ) } by A8; then A10: x0 + (min (r1,r2)) in [.x0,(x0 + r2).] by RCOMP_1:def_1; x0 <= x0 + r2 by A8, A9, XXREAL_0:2; then x0 in [.x0,(x0 + r2).] by XXREAL_1:1; then [.x0,(x0 + (min (r1,r2))).] c= [.x0,(x0 + r2).] by A10, XXREAL_2:def_12; then A11: [.x0,(x0 + (min (r1,r2))).] c= dom f2 by A4, XBOOLE_1:1; min (r1,r2) <= r1 by XXREAL_0:17; then A12: x0 + (min (r1,r2)) <= x0 + r1 by XREAL_1:7; then x0 + (min (r1,r2)) in { g where g is Real : ( x0 <= g & g <= x0 + r1 ) } by A8; then A13: x0 + (min (r1,r2)) in [.x0,(x0 + r1).] by RCOMP_1:def_1; x0 <= x0 + r1 by A12, A8, XXREAL_0:2; then x0 in [.x0,(x0 + r1).] by XXREAL_1:1; then [.x0,(x0 + (min (r1,r2))).] c= [.x0,(x0 + r1).] by A13, XXREAL_2:def_12; then [.x0,(x0 + (min (r1,r2))).] c= dom f1 by A6, XBOOLE_1:1; then A14: [.x0,(x0 + (min (r1,r2))).] c= (dom f1) /\ (dom f2) by A11, XBOOLE_1:19; A15: for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom (f1 - f2) & ( for n being Element of NAT holds h . n > 0 ) holds ( (h ") (#) (((f1 - f2) /* (h + c)) - ((f1 - f2) /* c)) is convergent & lim ((h ") (#) (((f1 - f2) /* (h + c)) - ((f1 - f2) /* c))) = (Rdiff (f1,x0)) - (Rdiff (f2,x0)) ) proof let h be non-zero 0 -convergent Real_Sequence; ::_thesis: for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom (f1 - f2) & ( for n being Element of NAT holds h . n > 0 ) holds ( (h ") (#) (((f1 - f2) /* (h + c)) - ((f1 - f2) /* c)) is convergent & lim ((h ") (#) (((f1 - f2) /* (h + c)) - ((f1 - f2) /* c))) = (Rdiff (f1,x0)) - (Rdiff (f2,x0)) ) let c be constant Real_Sequence; ::_thesis: ( rng c = {x0} & rng (h + c) c= dom (f1 - f2) & ( for n being Element of NAT holds h . n > 0 ) implies ( (h ") (#) (((f1 - f2) /* (h + c)) - ((f1 - f2) /* c)) is convergent & lim ((h ") (#) (((f1 - f2) /* (h + c)) - ((f1 - f2) /* c))) = (Rdiff (f1,x0)) - (Rdiff (f2,x0)) ) ) assume that A16: rng c = {x0} and A17: rng (h + c) c= dom (f1 - f2) and A18: for n being Element of NAT holds h . n > 0 ; ::_thesis: ( (h ") (#) (((f1 - f2) /* (h + c)) - ((f1 - f2) /* c)) is convergent & lim ((h ") (#) (((f1 - f2) /* (h + c)) - ((f1 - f2) /* c))) = (Rdiff (f1,x0)) - (Rdiff (f2,x0)) ) A19: rng (h + c) c= (dom f1) /\ (dom f2) by A17, VALUED_1:12; A20: now__::_thesis:_for_n_being_Element_of_NAT_holds_(((f1_/*_(h_+_c))_-_(f1_/*_c))_-_((f2_/*_(h_+_c))_-_(f2_/*_c)))_._n_=_(((f1_-_f2)_/*_(h_+_c))_-_((f1_-_f2)_/*_c))_._n let n be Element of NAT ; ::_thesis: (((f1 /* (h + c)) - (f1 /* c)) - ((f2 /* (h + c)) - (f2 /* c))) . n = (((f1 - f2) /* (h + c)) - ((f1 - f2) /* c)) . n A21: rng c c= (dom f1) /\ (dom f2) proof let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in rng c or x in (dom f1) /\ (dom f2) ) assume x in rng c ; ::_thesis: x in (dom f1) /\ (dom f2) then A22: x = x0 by A16, TARSKI:def_1; x0 in [.x0,(x0 + (min (r1,r2))).] by A8, XXREAL_1:1; hence x in (dom f1) /\ (dom f2) by A14, A22; ::_thesis: verum end; thus (((f1 /* (h + c)) - (f1 /* c)) - ((f2 /* (h + c)) - (f2 /* c))) . n = (((f1 /* (h + c)) - (f1 /* c)) . n) - (((f2 /* (h + c)) - (f2 /* c)) . n) by RFUNCT_2:1 .= (((f1 /* (h + c)) . n) - ((f1 /* c) . n)) - (((f2 /* (h + c)) - (f2 /* c)) . n) by RFUNCT_2:1 .= (((f1 /* (h + c)) . n) - ((f1 /* c) . n)) - (((f2 /* (h + c)) . n) - ((f2 /* c) . n)) by RFUNCT_2:1 .= (((f1 /* (h + c)) . n) - ((f2 /* (h + c)) . n)) - (((f1 /* c) . n) - ((f2 /* c) . n)) .= (((f1 /* (h + c)) - (f2 /* (h + c))) . n) - (((f1 /* c) . n) - ((f2 /* c) . n)) by RFUNCT_2:1 .= (((f1 /* (h + c)) - (f2 /* (h + c))) . n) - (((f1 /* c) - (f2 /* c)) . n) by RFUNCT_2:1 .= (((f1 /* (h + c)) - (f2 /* (h + c))) - ((f1 /* c) - (f2 /* c))) . n by RFUNCT_2:1 .= (((f1 - f2) /* (h + c)) - ((f1 /* c) - (f2 /* c))) . n by A19, RFUNCT_2:8 .= (((f1 - f2) /* (h + c)) - ((f1 - f2) /* c)) . n by A21, RFUNCT_2:8 ; ::_thesis: verum end; then A23: ((f1 /* (h + c)) - (f1 /* c)) - ((f2 /* (h + c)) - (f2 /* c)) = ((f1 - f2) /* (h + c)) - ((f1 - f2) /* c) by FUNCT_2:63; (dom f1) /\ (dom f2) c= dom f2 by XBOOLE_1:17; then A24: rng (h + c) c= dom f2 by A19, XBOOLE_1:1; then A25: lim ((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) = Rdiff (f2,x0) by A2, A16, A18, Th15; Rdiff (f2,x0) = Rdiff (f2,x0) ; then A26: (h ") (#) ((f2 /* (h + c)) - (f2 /* c)) is convergent by A2, A16, A18, A24, Th15; (dom f1) /\ (dom f2) c= dom f1 by XBOOLE_1:17; then A27: rng (h + c) c= dom f1 by A19, XBOOLE_1:1; A28: ((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) - ((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) = (h ") (#) (((f1 /* (h + c)) - (f1 /* c)) - ((f2 /* (h + c)) - (f2 /* c))) by SEQ_1:21; Rdiff (f1,x0) = Rdiff (f1,x0) ; then A29: (h ") (#) ((f1 /* (h + c)) - (f1 /* c)) is convergent by A1, A16, A18, A27, Th15; then ((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) - ((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) is convergent by A26, SEQ_2:11; hence (h ") (#) (((f1 - f2) /* (h + c)) - ((f1 - f2) /* c)) is convergent by A28, A20, FUNCT_2:63; ::_thesis: lim ((h ") (#) (((f1 - f2) /* (h + c)) - ((f1 - f2) /* c))) = (Rdiff (f1,x0)) - (Rdiff (f2,x0)) lim ((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) = Rdiff (f1,x0) by A1, A16, A18, A27, Th15; hence lim ((h ") (#) (((f1 - f2) /* (h + c)) - ((f1 - f2) /* c))) = (Rdiff (f1,x0)) - (Rdiff (f2,x0)) by A29, A26, A25, A28, A23, SEQ_2:12; ::_thesis: verum end; [.x0,(x0 + (min (r1,r2))).] c= dom (f1 - f2) by A14, VALUED_1:12; hence ( f1 - f2 is_right_differentiable_in x0 & Rdiff ((f1 - f2),x0) = (Rdiff (f1,x0)) - (Rdiff (f2,x0)) ) by A7, A15, Th15; ::_thesis: verum end; theorem :: FDIFF_3:18 for f1, f2 being PartFunc of REAL,REAL for x0 being Real st f1 is_right_differentiable_in x0 & f2 is_right_differentiable_in x0 holds ( f1 (#) f2 is_right_differentiable_in x0 & Rdiff ((f1 (#) f2),x0) = ((Rdiff (f1,x0)) * (f2 . x0)) + ((Rdiff (f2,x0)) * (f1 . x0)) ) proof let f1, f2 be PartFunc of REAL,REAL; ::_thesis: for x0 being Real st f1 is_right_differentiable_in x0 & f2 is_right_differentiable_in x0 holds ( f1 (#) f2 is_right_differentiable_in x0 & Rdiff ((f1 (#) f2),x0) = ((Rdiff (f1,x0)) * (f2 . x0)) + ((Rdiff (f2,x0)) * (f1 . x0)) ) let x0 be Real; ::_thesis: ( f1 is_right_differentiable_in x0 & f2 is_right_differentiable_in x0 implies ( f1 (#) f2 is_right_differentiable_in x0 & Rdiff ((f1 (#) f2),x0) = ((Rdiff (f1,x0)) * (f2 . x0)) + ((Rdiff (f2,x0)) * (f1 . x0)) ) ) assume that A1: f1 is_right_differentiable_in x0 and A2: f2 is_right_differentiable_in x0 ; ::_thesis: ( f1 (#) f2 is_right_differentiable_in x0 & Rdiff ((f1 (#) f2),x0) = ((Rdiff (f1,x0)) * (f2 . x0)) + ((Rdiff (f2,x0)) * (f1 . x0)) ) A3: x0 + 0 = x0 ; consider r2 being Real such that A4: r2 > 0 and A5: [.x0,(x0 + r2).] c= dom f2 by A2, Def3; consider r1 being Real such that A6: r1 > 0 and A7: [.x0,(x0 + r1).] c= dom f1 by A1, Def3; set r = min (r1,r2); 0 <= min (r1,r2) by A6, A4, XXREAL_0:15; then A8: x0 <= x0 + (min (r1,r2)) by A3, XREAL_1:7; min (r1,r2) <= r2 by XXREAL_0:17; then A9: x0 + (min (r1,r2)) <= x0 + r2 by XREAL_1:7; then x0 + (min (r1,r2)) in { g where g is Real : ( x0 <= g & g <= x0 + r2 ) } by A8; then A10: x0 + (min (r1,r2)) in [.x0,(x0 + r2).] by RCOMP_1:def_1; x0 <= x0 + r2 by A8, A9, XXREAL_0:2; then x0 in [.x0,(x0 + r2).] by XXREAL_1:1; then [.x0,(x0 + (min (r1,r2))).] c= [.x0,(x0 + r2).] by A10, XXREAL_2:def_12; then A11: [.x0,(x0 + (min (r1,r2))).] c= dom f2 by A5, XBOOLE_1:1; min (r1,r2) <= r1 by XXREAL_0:17; then A12: x0 + (min (r1,r2)) <= x0 + r1 by XREAL_1:7; then x0 + (min (r1,r2)) in { g where g is Real : ( x0 <= g & g <= x0 + r1 ) } by A8; then A13: x0 + (min (r1,r2)) in [.x0,(x0 + r1).] by RCOMP_1:def_1; x0 <= x0 + r1 by A12, A8, XXREAL_0:2; then x0 in [.x0,(x0 + r1).] by XXREAL_1:1; then [.x0,(x0 + (min (r1,r2))).] c= [.x0,(x0 + r1).] by A13, XXREAL_2:def_12; then A14: [.x0,(x0 + (min (r1,r2))).] c= dom f1 by A7, XBOOLE_1:1; A15: 0 < min (r1,r2) by A6, A4, XXREAL_0:15; A16: for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom (f1 (#) f2) & ( for n being Element of NAT holds h . n > 0 ) holds ( (h ") (#) (((f1 (#) f2) /* (h + c)) - ((f1 (#) f2) /* c)) is convergent & lim ((h ") (#) (((f1 (#) f2) /* (h + c)) - ((f1 (#) f2) /* c))) = ((Rdiff (f1,x0)) * (f2 . x0)) + ((Rdiff (f2,x0)) * (f1 . x0)) ) proof let h be non-zero 0 -convergent Real_Sequence; ::_thesis: for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom (f1 (#) f2) & ( for n being Element of NAT holds h . n > 0 ) holds ( (h ") (#) (((f1 (#) f2) /* (h + c)) - ((f1 (#) f2) /* c)) is convergent & lim ((h ") (#) (((f1 (#) f2) /* (h + c)) - ((f1 (#) f2) /* c))) = ((Rdiff (f1,x0)) * (f2 . x0)) + ((Rdiff (f2,x0)) * (f1 . x0)) ) let c be constant Real_Sequence; ::_thesis: ( rng c = {x0} & rng (h + c) c= dom (f1 (#) f2) & ( for n being Element of NAT holds h . n > 0 ) implies ( (h ") (#) (((f1 (#) f2) /* (h + c)) - ((f1 (#) f2) /* c)) is convergent & lim ((h ") (#) (((f1 (#) f2) /* (h + c)) - ((f1 (#) f2) /* c))) = ((Rdiff (f1,x0)) * (f2 . x0)) + ((Rdiff (f2,x0)) * (f1 . x0)) ) ) assume that A17: rng c = {x0} and A18: rng (h + c) c= dom (f1 (#) f2) and A19: for n being Element of NAT holds h . n > 0 ; ::_thesis: ( (h ") (#) (((f1 (#) f2) /* (h + c)) - ((f1 (#) f2) /* c)) is convergent & lim ((h ") (#) (((f1 (#) f2) /* (h + c)) - ((f1 (#) f2) /* c))) = ((Rdiff (f1,x0)) * (f2 . x0)) + ((Rdiff (f2,x0)) * (f1 . x0)) ) A20: rng (h + c) c= (dom f1) /\ (dom f2) by A18, VALUED_1:def_4; x0 + 0 <= x0 + (min (r1,r2)) by A15, XREAL_1:7; then A21: x0 in [.x0,(x0 + (min (r1,r2))).] by XXREAL_1:1; then A22: x0 in dom f2 by A11; A23: rng c c= dom f2 proof let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in rng c or x in dom f2 ) assume x in rng c ; ::_thesis: x in dom f2 hence x in dom f2 by A17, A22, TARSKI:def_1; ::_thesis: verum end; A24: for m being Element of NAT holds c . m = x0 proof let m be Element of NAT ; ::_thesis: c . m = x0 c . m in rng c by VALUED_0:28; hence c . m = x0 by A17, TARSKI:def_1; ::_thesis: verum end; A25: for g being real number st 0 < g holds ex n being Element of NAT st for m being Element of NAT st n <= m holds abs (((f2 /* c) . m) - (f2 . x0)) < g proof let g be real number ; ::_thesis: ( 0 < g implies ex n being Element of NAT st for m being Element of NAT st n <= m holds abs (((f2 /* c) . m) - (f2 . x0)) < g ) assume A26: 0 < g ; ::_thesis: ex n being Element of NAT st for m being Element of NAT st n <= m holds abs (((f2 /* c) . m) - (f2 . x0)) < g take n = 0 ; ::_thesis: for m being Element of NAT st n <= m holds abs (((f2 /* c) . m) - (f2 . x0)) < g let m be Element of NAT ; ::_thesis: ( n <= m implies abs (((f2 /* c) . m) - (f2 . x0)) < g ) assume n <= m ; ::_thesis: abs (((f2 /* c) . m) - (f2 . x0)) < g abs (((f2 /* c) . m) - (f2 . x0)) = abs ((f2 . (c . m)) - (f2 . x0)) by A23, FUNCT_2:108 .= abs ((f2 . x0) - (f2 . x0)) by A24 .= 0 by ABSVALUE:def_1 ; hence abs (((f2 /* c) . m) - (f2 . x0)) < g by A26; ::_thesis: verum end; then A27: f2 /* c is convergent by SEQ_2:def_6; (dom f1) /\ (dom f2) c= dom f2 by XBOOLE_1:17; then A28: rng (h + c) c= dom f2 by A20, XBOOLE_1:1; then A29: lim ((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) = Rdiff (f2,x0) by A2, A17, A19, Th15; now__::_thesis:_for_n_being_Element_of_NAT_holds_(h_(#)_((h_")_(#)_((f1_/*_(h_+_c))_-_(f1_/*_c))))_._n_=_((f1_/*_(h_+_c))_-_(f1_/*_c))_._n let n be Element of NAT ; ::_thesis: (h (#) ((h ") (#) ((f1 /* (h + c)) - (f1 /* c)))) . n = ((f1 /* (h + c)) - (f1 /* c)) . n A30: h . n <> 0 by A19; thus (h (#) ((h ") (#) ((f1 /* (h + c)) - (f1 /* c)))) . n = ((h (#) (h ")) (#) ((f1 /* (h + c)) - (f1 /* c))) . n by SEQ_1:14 .= ((h (#) (h ")) . n) * (((f1 /* (h + c)) - (f1 /* c)) . n) by SEQ_1:8 .= ((h . n) * ((h ") . n)) * (((f1 /* (h + c)) - (f1 /* c)) . n) by SEQ_1:8 .= ((h . n) * ((h . n) ")) * (((f1 /* (h + c)) - (f1 /* c)) . n) by VALUED_1:10 .= 1 * (((f1 /* (h + c)) - (f1 /* c)) . n) by A30, XCMPLX_0:def_7 .= ((f1 /* (h + c)) - (f1 /* c)) . n ; ::_thesis: verum end; then A31: h (#) ((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) = (f1 /* (h + c)) - (f1 /* c) by FUNCT_2:63; A32: x0 in dom f1 by A14, A21; A33: rng c c= dom f1 proof let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in rng c or x in dom f1 ) assume x in rng c ; ::_thesis: x in dom f1 hence x in dom f1 by A17, A32, TARSKI:def_1; ::_thesis: verum end; A34: for g being real number st 0 < g holds ex n being Element of NAT st for m being Element of NAT st n <= m holds abs (((f1 /* c) . m) - (f1 . x0)) < g proof let g be real number ; ::_thesis: ( 0 < g implies ex n being Element of NAT st for m being Element of NAT st n <= m holds abs (((f1 /* c) . m) - (f1 . x0)) < g ) assume A35: 0 < g ; ::_thesis: ex n being Element of NAT st for m being Element of NAT st n <= m holds abs (((f1 /* c) . m) - (f1 . x0)) < g take n = 0 ; ::_thesis: for m being Element of NAT st n <= m holds abs (((f1 /* c) . m) - (f1 . x0)) < g let m be Element of NAT ; ::_thesis: ( n <= m implies abs (((f1 /* c) . m) - (f1 . x0)) < g ) assume n <= m ; ::_thesis: abs (((f1 /* c) . m) - (f1 . x0)) < g abs (((f1 /* c) . m) - (f1 . x0)) = abs ((f1 . (c . m)) - (f1 . x0)) by A33, FUNCT_2:108 .= abs ((f1 . x0) - (f1 . x0)) by A24 .= 0 by ABSVALUE:def_1 ; hence abs (((f1 /* c) . m) - (f1 . x0)) < g by A35; ::_thesis: verum end; then A36: f1 /* c is convergent by SEQ_2:def_6; (dom f1) /\ (dom f2) c= dom f1 by XBOOLE_1:17; then A37: rng (h + c) c= dom f1 by A20, XBOOLE_1:1; then A38: lim ((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) = Rdiff (f1,x0) by A1, A17, A19, Th15; Rdiff (f1,x0) = Rdiff (f1,x0) ; then A39: (h ") (#) ((f1 /* (h + c)) - (f1 /* c)) is convergent by A1, A17, A19, A37, Th15; then A40: ((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) (#) (f2 /* c) is convergent by A27, SEQ_2:14; A41: rng c c= (dom f1) /\ (dom f2) by A33, A23, XBOOLE_1:19; A42: now__::_thesis:_for_n_being_Element_of_NAT_holds_((h_")_(#)_(((f1_(#)_f2)_/*_(h_+_c))_-_((f1_(#)_f2)_/*_c)))_._n_=_((((h_")_(#)_((f2_/*_(h_+_c))_-_(f2_/*_c)))_(#)_(f1_/*_(h_+_c)))_+_(((h_")_(#)_((f1_/*_(h_+_c))_-_(f1_/*_c)))_(#)_(f2_/*_c)))_._n let n be Element of NAT ; ::_thesis: ((h ") (#) (((f1 (#) f2) /* (h + c)) - ((f1 (#) f2) /* c))) . n = ((((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) (#) (f1 /* (h + c))) + (((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) (#) (f2 /* c))) . n thus ((h ") (#) (((f1 (#) f2) /* (h + c)) - ((f1 (#) f2) /* c))) . n = ((h ") . n) * ((((f1 (#) f2) /* (h + c)) - ((f1 (#) f2) /* c)) . n) by SEQ_1:8 .= ((h ") . n) * ((((f1 (#) f2) /* (h + c)) . n) - (((f1 (#) f2) /* c) . n)) by RFUNCT_2:1 .= ((h ") . n) * ((((f1 /* (h + c)) (#) (f2 /* (h + c))) . n) - (((f1 (#) f2) /* c) . n)) by A20, RFUNCT_2:8 .= ((h ") . n) * ((((f1 /* (h + c)) (#) (f2 /* (h + c))) . n) - (((f1 /* c) (#) (f2 /* c)) . n)) by A41, RFUNCT_2:8 .= ((h ") . n) * ((((f1 /* (h + c)) . n) * ((f2 /* (h + c)) . n)) - (((f1 /* c) (#) (f2 /* c)) . n)) by SEQ_1:8 .= ((h ") . n) * ((((f1 /* (h + c)) . n) * ((f2 /* (h + c)) . n)) - (((f1 /* c) . n) * ((f2 /* c) . n))) by SEQ_1:8 .= ((((h ") . n) * (((f2 /* (h + c)) . n) - ((f2 /* c) . n))) * ((f1 /* (h + c)) . n)) + ((((h ") . n) * (((f1 /* (h + c)) . n) - ((f1 /* c) . n))) * ((f2 /* c) . n)) .= ((((h ") . n) * (((f2 /* (h + c)) - (f2 /* c)) . n)) * ((f1 /* (h + c)) . n)) + ((((h ") . n) * (((f1 /* (h + c)) . n) - ((f1 /* c) . n))) * ((f2 /* c) . n)) by RFUNCT_2:1 .= ((((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) . n) * ((f1 /* (h + c)) . n)) + ((((h ") . n) * (((f1 /* (h + c)) . n) - ((f1 /* c) . n))) * ((f2 /* c) . n)) by SEQ_1:8 .= ((((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) . n) * ((f1 /* (h + c)) . n)) + ((((h ") . n) * (((f1 /* (h + c)) - (f1 /* c)) . n)) * ((f2 /* c) . n)) by RFUNCT_2:1 .= ((((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) . n) * ((f1 /* (h + c)) . n)) + ((((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) . n) * ((f2 /* c) . n)) by SEQ_1:8 .= ((((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) (#) (f1 /* (h + c))) . n) + ((((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) . n) * ((f2 /* c) . n)) by SEQ_1:8 .= ((((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) (#) (f1 /* (h + c))) . n) + ((((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) (#) (f2 /* c)) . n) by SEQ_1:8 .= ((((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) (#) (f1 /* (h + c))) + (((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) (#) (f2 /* c))) . n by SEQ_1:7 ; ::_thesis: verum end; then A43: (h ") (#) (((f1 (#) f2) /* (h + c)) - ((f1 (#) f2) /* c)) = (((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) (#) (f1 /* (h + c))) + (((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) (#) (f2 /* c)) by FUNCT_2:63; now__::_thesis:_for_n_being_Element_of_NAT_holds_((f1_/*_c)_+_((f1_/*_(h_+_c))_-_(f1_/*_c)))_._n_=_(f1_/*_(h_+_c))_._n let n be Element of NAT ; ::_thesis: ((f1 /* c) + ((f1 /* (h + c)) - (f1 /* c))) . n = (f1 /* (h + c)) . n thus ((f1 /* c) + ((f1 /* (h + c)) - (f1 /* c))) . n = ((f1 /* c) . n) + (((f1 /* (h + c)) - (f1 /* c)) . n) by SEQ_1:7 .= ((f1 /* c) . n) + (((f1 /* (h + c)) . n) - ((f1 /* c) . n)) by RFUNCT_2:1 .= (f1 /* (h + c)) . n ; ::_thesis: verum end; then A44: (f1 /* c) + ((f1 /* (h + c)) - (f1 /* c)) = f1 /* (h + c) by FUNCT_2:63; A46: ( h is convergent & (h ") (#) ((f1 /* (h + c)) - (f1 /* c)) is convergent ) by A1, A17, A19, A37, Def3; then h (#) ((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) is convergent by SEQ_2:14; then A47: f1 /* (h + c) is convergent by A36, A31, A44, SEQ_2:5; lim (h (#) ((h ") (#) ((f1 /* (h + c)) - (f1 /* c)))) = (lim h) * (lim ((h ") (#) ((f1 /* (h + c)) - (f1 /* c)))) by A46, SEQ_2:15 .= 0 ; then A48: 0 = (lim (f1 /* (h + c))) - (lim (f1 /* c)) by A36, A31, A47, SEQ_2:12 .= (lim (f1 /* (h + c))) - (f1 . x0) by A34, A36, SEQ_2:def_7 ; Rdiff (f2,x0) = Rdiff (f2,x0) ; then A49: (h ") (#) ((f2 /* (h + c)) - (f2 /* c)) is convergent by A2, A17, A19, A28, Th15; then A50: ((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) (#) (f1 /* (h + c)) is convergent by A47, SEQ_2:14; lim ((h ") (#) (((f1 (#) f2) /* (h + c)) - ((f1 (#) f2) /* c))) = lim ((((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) (#) (f1 /* (h + c))) + (((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) (#) (f2 /* c))) by A42, FUNCT_2:63 .= (lim (((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) (#) (f1 /* (h + c)))) + (lim (((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) (#) (f2 /* c))) by A50, A40, SEQ_2:6 .= ((lim ((h ") (#) ((f2 /* (h + c)) - (f2 /* c)))) * (lim (f1 /* (h + c)))) + (lim (((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) (#) (f2 /* c))) by A49, A47, SEQ_2:15 .= ((lim ((h ") (#) ((f2 /* (h + c)) - (f2 /* c)))) * (f1 . x0)) + ((lim ((h ") (#) ((f1 /* (h + c)) - (f1 /* c)))) * (lim (f2 /* c))) by A39, A48, A27, SEQ_2:15 .= ((Rdiff (f1,x0)) * (f2 . x0)) + ((Rdiff (f2,x0)) * (f1 . x0)) by A38, A29, A25, A27, SEQ_2:def_7 ; hence ( (h ") (#) (((f1 (#) f2) /* (h + c)) - ((f1 (#) f2) /* c)) is convergent & lim ((h ") (#) (((f1 (#) f2) /* (h + c)) - ((f1 (#) f2) /* c))) = ((Rdiff (f1,x0)) * (f2 . x0)) + ((Rdiff (f2,x0)) * (f1 . x0)) ) by A50, A40, A43, SEQ_2:5; ::_thesis: verum end; [.x0,(x0 + (min (r1,r2))).] c= (dom f1) /\ (dom f2) by A14, A11, XBOOLE_1:19; then [.x0,(x0 + (min (r1,r2))).] c= dom (f1 (#) f2) by VALUED_1:def_4; hence ( f1 (#) f2 is_right_differentiable_in x0 & Rdiff ((f1 (#) f2),x0) = ((Rdiff (f1,x0)) * (f2 . x0)) + ((Rdiff (f2,x0)) * (f1 . x0)) ) by A15, A16, Th15; ::_thesis: verum end; Lm3: for f1, f2 being PartFunc of REAL,REAL for x0 being Real st f1 is_right_differentiable_in x0 & f2 is_right_differentiable_in x0 & ex r0 being Real st ( r0 > 0 & ( for g being Real st g in dom f2 & g in [.x0,(x0 + r0).] holds f2 . g <> 0 ) ) holds ( f1 / f2 is_right_differentiable_in x0 & Rdiff ((f1 / f2),x0) = (((Rdiff (f1,x0)) * (f2 . x0)) - ((Rdiff (f2,x0)) * (f1 . x0))) / ((f2 . x0) ^2) ) proof let f1, f2 be PartFunc of REAL,REAL; ::_thesis: for x0 being Real st f1 is_right_differentiable_in x0 & f2 is_right_differentiable_in x0 & ex r0 being Real st ( r0 > 0 & ( for g being Real st g in dom f2 & g in [.x0,(x0 + r0).] holds f2 . g <> 0 ) ) holds ( f1 / f2 is_right_differentiable_in x0 & Rdiff ((f1 / f2),x0) = (((Rdiff (f1,x0)) * (f2 . x0)) - ((Rdiff (f2,x0)) * (f1 . x0))) / ((f2 . x0) ^2) ) let x0 be Real; ::_thesis: ( f1 is_right_differentiable_in x0 & f2 is_right_differentiable_in x0 & ex r0 being Real st ( r0 > 0 & ( for g being Real st g in dom f2 & g in [.x0,(x0 + r0).] holds f2 . g <> 0 ) ) implies ( f1 / f2 is_right_differentiable_in x0 & Rdiff ((f1 / f2),x0) = (((Rdiff (f1,x0)) * (f2 . x0)) - ((Rdiff (f2,x0)) * (f1 . x0))) / ((f2 . x0) ^2) ) ) assume that A1: f1 is_right_differentiable_in x0 and A2: f2 is_right_differentiable_in x0 ; ::_thesis: ( for r0 being Real holds ( not r0 > 0 or ex g being Real st ( g in dom f2 & g in [.x0,(x0 + r0).] & not f2 . g <> 0 ) ) or ( f1 / f2 is_right_differentiable_in x0 & Rdiff ((f1 / f2),x0) = (((Rdiff (f1,x0)) * (f2 . x0)) - ((Rdiff (f2,x0)) * (f1 . x0))) / ((f2 . x0) ^2) ) ) consider r2 being Real such that A3: 0 < r2 and A4: [.x0,(x0 + r2).] c= dom f2 by A2, Def3; consider r1 being Real such that A5: 0 < r1 and A6: [.x0,(x0 + r1).] c= dom f1 by A1, Def3; given r0 being Real such that A7: r0 > 0 and A8: for g being Real st g in dom f2 & g in [.x0,(x0 + r0).] holds f2 . g <> 0 ; ::_thesis: ( f1 / f2 is_right_differentiable_in x0 & Rdiff ((f1 / f2),x0) = (((Rdiff (f1,x0)) * (f2 . x0)) - ((Rdiff (f2,x0)) * (f1 . x0))) / ((f2 . x0) ^2) ) A9: 0 + x0 = x0 ; set r3 = min (r0,r2); 0 <= min (r0,r2) by A7, A3, XXREAL_0:15; then A10: x0 <= x0 + (min (r0,r2)) by A9, XREAL_1:6; min (r0,r2) <= r2 by XXREAL_0:17; then A11: x0 + (min (r0,r2)) <= x0 + r2 by XREAL_1:7; then x0 <= x0 + r2 by A10, XXREAL_0:2; then A12: x0 in [.x0,(x0 + r2).] by XXREAL_1:1; x0 + (min (r0,r2)) in { g where g is Real : ( x0 <= g & g <= x0 + r2 ) } by A10, A11; then x0 + (min (r0,r2)) in [.x0,(x0 + r2).] by RCOMP_1:def_1; then [.x0,(x0 + (min (r0,r2))).] c= [.x0,(x0 + r2).] by A12, XXREAL_2:def_12; then A13: [.x0,(x0 + (min (r0,r2))).] c= dom f2 by A4, XBOOLE_1:1; min (r0,r2) <= r0 by XXREAL_0:17; then A14: x0 + (min (r0,r2)) <= x0 + r0 by XREAL_1:7; then x0 <= x0 + r0 by A10, XXREAL_0:2; then A15: x0 in [.x0,(x0 + r0).] by XXREAL_1:1; A16: x0 + 0 = x0 ; set r = min (r1,(min (r0,r2))); A17: 0 < min (r0,r2) by A7, A3, XXREAL_0:15; then 0 <= min (r1,(min (r0,r2))) by A5, XXREAL_0:15; then A18: x0 <= x0 + (min (r1,(min (r0,r2)))) by A16, XREAL_1:7; min (r1,(min (r0,r2))) <= min (r0,r2) by XXREAL_0:17; then A19: x0 + (min (r1,(min (r0,r2)))) <= x0 + (min (r0,r2)) by XREAL_1:7; then x0 <= x0 + (min (r0,r2)) by A18, XXREAL_0:2; then A20: x0 in [.x0,(x0 + (min (r0,r2))).] by XXREAL_1:1; x0 + (min (r0,r2)) in { g where g is Real : ( x0 <= g & g <= x0 + r0 ) } by A10, A14; then x0 + (min (r0,r2)) in [.x0,(x0 + r0).] by RCOMP_1:def_1; then A21: [.x0,(x0 + (min (r0,r2))).] c= [.x0,(x0 + r0).] by A15, XXREAL_2:def_12; x0 + (min (r1,(min (r0,r2)))) in { g where g is Real : ( x0 <= g & g <= x0 + (min (r0,r2)) ) } by A18, A19; then x0 + (min (r1,(min (r0,r2)))) in [.x0,(x0 + (min (r0,r2))).] by RCOMP_1:def_1; then A22: [.x0,(x0 + (min (r1,(min (r0,r2))))).] c= [.x0,(x0 + (min (r0,r2))).] by A20, XXREAL_2:def_12; [.x0,(x0 + (min (r1,(min (r0,r2))))).] c= dom (f2 ^) proof assume not [.x0,(x0 + (min (r1,(min (r0,r2))))).] c= dom (f2 ^) ; ::_thesis: contradiction then consider x being set such that A23: x in [.x0,(x0 + (min (r1,(min (r0,r2))))).] and A24: not x in dom (f2 ^) by TARSKI:def_3; reconsider x = x as Real by A23; A25: x in [.x0,(x0 + (min (r0,r2))).] by A22, A23; A26: not x in (dom f2) \ (f2 " {0}) by A24, RFUNCT_1:def_2; now__::_thesis:_contradiction percases ( not x in dom f2 or x in f2 " {0} ) by A26, XBOOLE_0:def_5; suppose not x in dom f2 ; ::_thesis: contradiction hence contradiction by A13, A25; ::_thesis: verum end; supposeA27: x in f2 " {0} ; ::_thesis: contradiction then f2 . x in {0} by FUNCT_1:def_7; then A28: f2 . x = 0 by TARSKI:def_1; x in dom f2 by A27, FUNCT_1:def_7; hence contradiction by A8, A21, A25, A28; ::_thesis: verum end; end; end; hence contradiction ; ::_thesis: verum end; then A29: [.x0,(x0 + (min (r1,(min (r0,r2))))).] c= (dom f2) \ (f2 " {0}) by RFUNCT_1:def_2; min (r1,(min (r0,r2))) <= r1 by XXREAL_0:17; then A30: x0 + (min (r1,(min (r0,r2)))) <= x0 + r1 by XREAL_1:7; then x0 <= x0 + r1 by A18, XXREAL_0:2; then A31: x0 in [.x0,(x0 + r1).] by XXREAL_1:1; x0 + (min (r1,(min (r0,r2)))) in { g where g is Real : ( x0 <= g & g <= x0 + r1 ) } by A18, A30; then x0 + (min (r1,(min (r0,r2)))) in [.x0,(x0 + r1).] by RCOMP_1:def_1; then [.x0,(x0 + (min (r1,(min (r0,r2))))).] c= [.x0,(x0 + r1).] by A31, XXREAL_2:def_12; then A32: [.x0,(x0 + (min (r1,(min (r0,r2))))).] c= dom f1 by A6, XBOOLE_1:1; then [.x0,(x0 + (min (r1,(min (r0,r2))))).] c= (dom f1) /\ ((dom f2) \ (f2 " {0})) by A29, XBOOLE_1:19; then A33: [.x0,(x0 + (min (r1,(min (r0,r2))))).] c= dom (f1 / f2) by RFUNCT_1:def_1; A34: for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom (f1 / f2) & ( for n being Element of NAT holds h . n > 0 ) holds ( (h ") (#) (((f1 / f2) /* (h + c)) - ((f1 / f2) /* c)) is convergent & lim ((h ") (#) (((f1 / f2) /* (h + c)) - ((f1 / f2) /* c))) = (((Rdiff (f1,x0)) * (f2 . x0)) - ((Rdiff (f2,x0)) * (f1 . x0))) / ((f2 . x0) ^2) ) proof let h be non-zero 0 -convergent Real_Sequence; ::_thesis: for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom (f1 / f2) & ( for n being Element of NAT holds h . n > 0 ) holds ( (h ") (#) (((f1 / f2) /* (h + c)) - ((f1 / f2) /* c)) is convergent & lim ((h ") (#) (((f1 / f2) /* (h + c)) - ((f1 / f2) /* c))) = (((Rdiff (f1,x0)) * (f2 . x0)) - ((Rdiff (f2,x0)) * (f1 . x0))) / ((f2 . x0) ^2) ) let c be constant Real_Sequence; ::_thesis: ( rng c = {x0} & rng (h + c) c= dom (f1 / f2) & ( for n being Element of NAT holds h . n > 0 ) implies ( (h ") (#) (((f1 / f2) /* (h + c)) - ((f1 / f2) /* c)) is convergent & lim ((h ") (#) (((f1 / f2) /* (h + c)) - ((f1 / f2) /* c))) = (((Rdiff (f1,x0)) * (f2 . x0)) - ((Rdiff (f2,x0)) * (f1 . x0))) / ((f2 . x0) ^2) ) ) assume that A35: rng c = {x0} and A36: rng (h + c) c= dom (f1 / f2) and A37: for n being Element of NAT holds h . n > 0 ; ::_thesis: ( (h ") (#) (((f1 / f2) /* (h + c)) - ((f1 / f2) /* c)) is convergent & lim ((h ") (#) (((f1 / f2) /* (h + c)) - ((f1 / f2) /* c))) = (((Rdiff (f1,x0)) * (f2 . x0)) - ((Rdiff (f2,x0)) * (f1 . x0))) / ((f2 . x0) ^2) ) A38: rng (h + c) c= (dom f1) /\ ((dom f2) \ (f2 " {0})) by A36, RFUNCT_1:def_1; ( 0 <= min (r1,(min (r0,r2))) & x0 + 0 = x0 ) by A5, A17, XXREAL_0:15; then x0 <= x0 + (min (r1,(min (r0,r2)))) by XREAL_1:7; then A39: x0 in [.x0,(x0 + (min (r1,(min (r0,r2))))).] by XXREAL_1:1; then A40: x0 in dom f1 by A32; A41: rng c c= dom f1 proof let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in rng c or x in dom f1 ) assume x in rng c ; ::_thesis: x in dom f1 hence x in dom f1 by A35, A40, TARSKI:def_1; ::_thesis: verum end; (dom f1) /\ ((dom f2) \ (f2 " {0})) c= dom f1 by XBOOLE_1:17; then A42: rng (h + c) c= dom f1 by A38, XBOOLE_1:1; then A43: lim ((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) = Rdiff (f1,x0) by A1, A35, A37, Th15; A44: x0 in (dom f2) \ (f2 " {0}) by A29, A39; rng c c= (dom f2) \ (f2 " {0}) proof let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in rng c or x in (dom f2) \ (f2 " {0}) ) assume x in rng c ; ::_thesis: x in (dom f2) \ (f2 " {0}) hence x in (dom f2) \ (f2 " {0}) by A35, A44, TARSKI:def_1; ::_thesis: verum end; then A45: rng c c= dom (f2 ^) by RFUNCT_1:def_2; then A46: rng c c= (dom f1) /\ (dom (f2 ^)) by A41, XBOOLE_1:19; A47: (h ") (#) ((f1 /* (h + c)) - (f1 /* c)) is convergent by A1, A35, A37, A42, Def3; A48: f2 /* c is non-zero by A45, RFUNCT_2:11; A49: now__::_thesis:_for_n_being_Element_of_NAT_holds_((h_")_(#)_(((f1_/*_(h_+_c))_(#)_(f2_/*_c))_-_((f1_/*_c)_(#)_(f2_/*_(h_+_c)))))_._n_=_((((h_")_(#)_((f1_/*_(h_+_c))_-_(f1_/*_c)))_(#)_(f2_/*_c))_-_((f1_/*_c)_(#)_((h_")_(#)_((f2_/*_(h_+_c))_-_(f2_/*_c)))))_._n let n be Element of NAT ; ::_thesis: ((h ") (#) (((f1 /* (h + c)) (#) (f2 /* c)) - ((f1 /* c) (#) (f2 /* (h + c))))) . n = ((((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) (#) (f2 /* c)) - ((f1 /* c) (#) ((h ") (#) ((f2 /* (h + c)) - (f2 /* c))))) . n thus ((h ") (#) (((f1 /* (h + c)) (#) (f2 /* c)) - ((f1 /* c) (#) (f2 /* (h + c))))) . n = ((h ") . n) * ((((f1 /* (h + c)) (#) (f2 /* c)) - ((f1 /* c) (#) (f2 /* (h + c)))) . n) by SEQ_1:8 .= ((h ") . n) * ((((f1 /* (h + c)) (#) (f2 /* c)) . n) - (((f1 /* c) (#) (f2 /* (h + c))) . n)) by RFUNCT_2:1 .= ((h ") . n) * ((((f1 /* (h + c)) . n) * ((f2 /* c) . n)) - (((f1 /* c) (#) (f2 /* (h + c))) . n)) by SEQ_1:8 .= ((h ") . n) * ((((((f1 /* (h + c)) . n) - ((f1 /* c) . n)) * ((f2 /* c) . n)) + (((f1 /* c) . n) * ((f2 /* c) . n))) - (((f1 /* c) . n) * ((f2 /* (h + c)) . n))) by SEQ_1:8 .= ((((h ") . n) * (((f1 /* (h + c)) . n) - ((f1 /* c) . n))) * ((f2 /* c) . n)) - (((f1 /* c) . n) * (((h ") . n) * (((f2 /* (h + c)) . n) - ((f2 /* c) . n)))) .= ((((h ") . n) * (((f1 /* (h + c)) - (f1 /* c)) . n)) * ((f2 /* c) . n)) - (((f1 /* c) . n) * (((h ") . n) * (((f2 /* (h + c)) . n) - ((f2 /* c) . n)))) by RFUNCT_2:1 .= ((((h ") . n) * (((f1 /* (h + c)) - (f1 /* c)) . n)) * ((f2 /* c) . n)) - (((f1 /* c) . n) * (((h ") . n) * (((f2 /* (h + c)) - (f2 /* c)) . n))) by RFUNCT_2:1 .= ((((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) . n) * ((f2 /* c) . n)) - (((f1 /* c) . n) * (((h ") . n) * (((f2 /* (h + c)) - (f2 /* c)) . n))) by SEQ_1:8 .= ((((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) . n) * ((f2 /* c) . n)) - (((f1 /* c) . n) * (((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) . n)) by SEQ_1:8 .= ((((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) (#) (f2 /* c)) . n) - (((f1 /* c) . n) * (((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) . n)) by SEQ_1:8 .= ((((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) (#) (f2 /* c)) . n) - (((f1 /* c) (#) ((h ") (#) ((f2 /* (h + c)) - (f2 /* c)))) . n) by SEQ_1:8 .= ((((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) (#) (f2 /* c)) - ((f1 /* c) (#) ((h ") (#) ((f2 /* (h + c)) - (f2 /* c))))) . n by RFUNCT_2:1 ; ::_thesis: verum end; now__::_thesis:_for_n_being_Element_of_NAT_holds_((f2_/*_c)_+_((f2_/*_(h_+_c))_-_(f2_/*_c)))_._n_=_(f2_/*_(h_+_c))_._n let n be Element of NAT ; ::_thesis: ((f2 /* c) + ((f2 /* (h + c)) - (f2 /* c))) . n = (f2 /* (h + c)) . n thus ((f2 /* c) + ((f2 /* (h + c)) - (f2 /* c))) . n = ((f2 /* c) . n) + (((f2 /* (h + c)) - (f2 /* c)) . n) by SEQ_1:7 .= ((f2 /* c) . n) + (((f2 /* (h + c)) . n) - ((f2 /* c) . n)) by RFUNCT_2:1 .= (f2 /* (h + c)) . n ; ::_thesis: verum end; then A50: (f2 /* c) + ((f2 /* (h + c)) - (f2 /* c)) = f2 /* (h + c) by FUNCT_2:63; (dom f1) /\ ((dom f2) \ (f2 " {0})) c= (dom f2) \ (f2 " {0}) by XBOOLE_1:17; then A52: rng (h + c) c= (dom f2) \ (f2 " {0}) by A38, XBOOLE_1:1; then A53: rng (h + c) c= dom (f2 ^) by RFUNCT_1:def_2; then A54: rng (h + c) c= (dom f1) /\ (dom (f2 ^)) by A42, XBOOLE_1:19; A55: f2 /* (h + c) is non-zero by A53, RFUNCT_2:11; then A56: (f2 /* (h + c)) (#) (f2 /* c) is non-zero by A48, SEQ_1:35; (h ") (#) (((f1 / f2) /* (h + c)) - ((f1 / f2) /* c)) = (h ") (#) (((f1 (#) (f2 ^)) /* (h + c)) - ((f1 / f2) /* c)) by RFUNCT_1:31 .= (h ") (#) (((f1 (#) (f2 ^)) /* (h + c)) - ((f1 (#) (f2 ^)) /* c)) by RFUNCT_1:31 .= (h ") (#) (((f1 /* (h + c)) (#) ((f2 ^) /* (h + c))) - ((f1 (#) (f2 ^)) /* c)) by A54, RFUNCT_2:8 .= (h ") (#) (((f1 /* (h + c)) /" (f2 /* (h + c))) - ((f1 (#) (f2 ^)) /* c)) by A53, RFUNCT_2:12 .= (h ") (#) (((f1 /* (h + c)) /" (f2 /* (h + c))) - ((f1 /* c) (#) ((f2 ^) /* c))) by A46, RFUNCT_2:8 .= (h ") (#) (((f1 /* (h + c)) /" (f2 /* (h + c))) - ((f1 /* c) /" (f2 /* c))) by A45, RFUNCT_2:12 .= (h ") (#) ((((f1 /* (h + c)) (#) (f2 /* c)) - ((f1 /* c) (#) (f2 /* (h + c)))) /" ((f2 /* (h + c)) (#) (f2 /* c))) by A55, A48, SEQ_1:50 .= ((h ") (#) (((f1 /* (h + c)) (#) (f2 /* c)) - ((f1 /* c) (#) (f2 /* (h + c))))) /" ((f2 /* (h + c)) (#) (f2 /* c)) by SEQ_1:41 ; then A57: (h ") (#) (((f1 / f2) /* (h + c)) - ((f1 / f2) /* c)) = ((((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) (#) (f2 /* c)) - ((f1 /* c) (#) ((h ") (#) ((f2 /* (h + c)) - (f2 /* c))))) /" ((f2 /* (h + c)) (#) (f2 /* c)) by A49, FUNCT_2:63; (dom f2) \ (f2 " {0}) c= dom f2 by XBOOLE_1:36; then A58: rng (h + c) c= dom f2 by A52, XBOOLE_1:1; then A59: lim ((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) = Rdiff (f2,x0) by A2, A35, A37, Th15; Rdiff (f2,x0) = Rdiff (f2,x0) ; then A60: (h ") (#) ((f2 /* (h + c)) - (f2 /* c)) is convergent by A2, A35, A37, A58, Th15; now__::_thesis:_for_n_being_Element_of_NAT_holds_(h_(#)_((h_")_(#)_((f2_/*_(h_+_c))_-_(f2_/*_c))))_._n_=_((f2_/*_(h_+_c))_-_(f2_/*_c))_._n let n be Element of NAT ; ::_thesis: (h (#) ((h ") (#) ((f2 /* (h + c)) - (f2 /* c)))) . n = ((f2 /* (h + c)) - (f2 /* c)) . n A61: h . n <> 0 by A37; thus (h (#) ((h ") (#) ((f2 /* (h + c)) - (f2 /* c)))) . n = ((h (#) (h ")) (#) ((f2 /* (h + c)) - (f2 /* c))) . n by SEQ_1:14 .= ((h (#) (h ")) . n) * (((f2 /* (h + c)) - (f2 /* c)) . n) by SEQ_1:8 .= ((h . n) * ((h ") . n)) * (((f2 /* (h + c)) - (f2 /* c)) . n) by SEQ_1:8 .= ((h . n) * ((h . n) ")) * (((f2 /* (h + c)) - (f2 /* c)) . n) by VALUED_1:10 .= 1 * (((f2 /* (h + c)) - (f2 /* c)) . n) by A61, XCMPLX_0:def_7 .= ((f2 /* (h + c)) - (f2 /* c)) . n ; ::_thesis: verum end; then A62: h (#) ((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) = (f2 /* (h + c)) - (f2 /* c) by FUNCT_2:63; A63: for m being Element of NAT holds c . m = x0 proof let m be Element of NAT ; ::_thesis: c . m = x0 c . m in rng c by VALUED_0:28; hence c . m = x0 by A35, TARSKI:def_1; ::_thesis: verum end; A64: for g being real number st 0 < g holds ex n being Element of NAT st for m being Element of NAT st n <= m holds abs (((f1 /* c) . m) - (f1 . x0)) < g proof let g be real number ; ::_thesis: ( 0 < g implies ex n being Element of NAT st for m being Element of NAT st n <= m holds abs (((f1 /* c) . m) - (f1 . x0)) < g ) assume A65: 0 < g ; ::_thesis: ex n being Element of NAT st for m being Element of NAT st n <= m holds abs (((f1 /* c) . m) - (f1 . x0)) < g take n = 0 ; ::_thesis: for m being Element of NAT st n <= m holds abs (((f1 /* c) . m) - (f1 . x0)) < g let m be Element of NAT ; ::_thesis: ( n <= m implies abs (((f1 /* c) . m) - (f1 . x0)) < g ) assume n <= m ; ::_thesis: abs (((f1 /* c) . m) - (f1 . x0)) < g abs (((f1 /* c) . m) - (f1 . x0)) = abs ((f1 . (c . m)) - (f1 . x0)) by A41, FUNCT_2:108 .= abs ((f1 . x0) - (f1 . x0)) by A63 .= 0 by ABSVALUE:def_1 ; hence abs (((f1 /* c) . m) - (f1 . x0)) < g by A65; ::_thesis: verum end; then A66: f1 /* c is convergent by SEQ_2:def_6; then A67: lim (f1 /* c) = f1 . x0 by A64, SEQ_2:def_7; dom (f2 ^) = (dom f2) \ (f2 " {0}) by RFUNCT_1:def_2; then A68: dom (f2 ^) c= dom f2 by XBOOLE_1:36; A69: for g being real number st 0 < g holds ex n being Element of NAT st for m being Element of NAT st n <= m holds abs (((f2 /* c) . m) - (f2 . x0)) < g proof let g be real number ; ::_thesis: ( 0 < g implies ex n being Element of NAT st for m being Element of NAT st n <= m holds abs (((f2 /* c) . m) - (f2 . x0)) < g ) assume A70: 0 < g ; ::_thesis: ex n being Element of NAT st for m being Element of NAT st n <= m holds abs (((f2 /* c) . m) - (f2 . x0)) < g take n = 0 ; ::_thesis: for m being Element of NAT st n <= m holds abs (((f2 /* c) . m) - (f2 . x0)) < g let m be Element of NAT ; ::_thesis: ( n <= m implies abs (((f2 /* c) . m) - (f2 . x0)) < g ) assume n <= m ; ::_thesis: abs (((f2 /* c) . m) - (f2 . x0)) < g abs (((f2 /* c) . m) - (f2 . x0)) = abs ((f2 . (c . m)) - (f2 . x0)) by A45, A68, FUNCT_2:108, XBOOLE_1:1 .= abs ((f2 . x0) - (f2 . x0)) by A63 .= 0 by ABSVALUE:def_1 ; hence abs (((f2 /* c) . m) - (f2 . x0)) < g by A70; ::_thesis: verum end; then A71: f2 /* c is convergent by SEQ_2:def_6; then A72: lim (f2 /* c) = f2 . x0 by A69, SEQ_2:def_7; h (#) ((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) is convergent by A60, SEQ_2:14; then A74: f2 /* (h + c) is convergent by A71, A62, A50, SEQ_2:5; then A75: (f2 /* (h + c)) (#) (f2 /* c) is convergent by A71, SEQ_2:14; (h ") (#) ((f2 /* (h + c)) - (f2 /* c)) is convergent by A2, A35, A37, A58, Def3; then lim (h (#) ((h ") (#) ((f2 /* (h + c)) - (f2 /* c)))) = (lim h) * (lim ((h ") (#) ((f2 /* (h + c)) - (f2 /* c)))) by SEQ_2:15 .= 0 ; then 0 = (lim (f2 /* (h + c))) - (f2 . x0) by A71, A72, A62, A74, SEQ_2:12; then A76: lim ((f2 /* (h + c)) (#) (f2 /* c)) = (f2 . x0) ^2 by A71, A72, A74, SEQ_2:15; A77: lim ((f2 /* (h + c)) (#) (f2 /* c)) <> 0 proof assume not lim ((f2 /* (h + c)) (#) (f2 /* c)) <> 0 ; ::_thesis: contradiction then f2 . x0 = 0 by A76, XCMPLX_1:6; hence contradiction by A8, A4, A15, A12; ::_thesis: verum end; Rdiff (f1,x0) = Rdiff (f1,x0) ; then (h ") (#) ((f1 /* (h + c)) - (f1 /* c)) is convergent by A1, A35, A37, A42, Th15; then A78: ((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) (#) (f2 /* c) is convergent by A71, SEQ_2:14; A79: (f1 /* c) (#) ((h ") (#) ((f2 /* (h + c)) - (f2 /* c))) is convergent by A60, A66, SEQ_2:14; then A80: (((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) (#) (f2 /* c)) - ((f1 /* c) (#) ((h ") (#) ((f2 /* (h + c)) - (f2 /* c)))) is convergent by A78, SEQ_2:11; then lim ((h ") (#) (((f1 / f2) /* (h + c)) - ((f1 / f2) /* c))) = (lim ((((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) (#) (f2 /* c)) - ((f1 /* c) (#) ((h ") (#) ((f2 /* (h + c)) - (f2 /* c)))))) / (lim ((f2 /* (h + c)) (#) (f2 /* c))) by A56, A75, A77, A57, SEQ_2:24 .= ((lim (((h ") (#) ((f1 /* (h + c)) - (f1 /* c))) (#) (f2 /* c))) - (lim ((f1 /* c) (#) ((h ") (#) ((f2 /* (h + c)) - (f2 /* c)))))) / (lim ((f2 /* (h + c)) (#) (f2 /* c))) by A79, A78, SEQ_2:12 .= (((lim ((h ") (#) ((f1 /* (h + c)) - (f1 /* c)))) * (lim (f2 /* c))) - (lim ((f1 /* c) (#) ((h ") (#) ((f2 /* (h + c)) - (f2 /* c)))))) / (lim ((f2 /* (h + c)) (#) (f2 /* c))) by A47, A71, SEQ_2:15 .= (((Rdiff (f1,x0)) * (f2 . x0)) - ((Rdiff (f2,x0)) * (f1 . x0))) / ((f2 . x0) ^2) by A43, A60, A59, A66, A67, A72, A76, SEQ_2:15 ; hence ( (h ") (#) (((f1 / f2) /* (h + c)) - ((f1 / f2) /* c)) is convergent & lim ((h ") (#) (((f1 / f2) /* (h + c)) - ((f1 / f2) /* c))) = (((Rdiff (f1,x0)) * (f2 . x0)) - ((Rdiff (f2,x0)) * (f1 . x0))) / ((f2 . x0) ^2) ) by A56, A75, A77, A80, A57, SEQ_2:23; ::_thesis: verum end; 0 < min (r1,(min (r0,r2))) by A5, A17, XXREAL_0:15; hence ( f1 / f2 is_right_differentiable_in x0 & Rdiff ((f1 / f2),x0) = (((Rdiff (f1,x0)) * (f2 . x0)) - ((Rdiff (f2,x0)) * (f1 . x0))) / ((f2 . x0) ^2) ) by A33, A34, Th15; ::_thesis: verum end; theorem :: FDIFF_3:19 for f1, f2 being PartFunc of REAL,REAL for x0 being Real st f1 is_right_differentiable_in x0 & f2 is_right_differentiable_in x0 & f2 . x0 <> 0 holds ( f1 / f2 is_right_differentiable_in x0 & Rdiff ((f1 / f2),x0) = (((Rdiff (f1,x0)) * (f2 . x0)) - ((Rdiff (f2,x0)) * (f1 . x0))) / ((f2 . x0) ^2) ) proof let f1, f2 be PartFunc of REAL,REAL; ::_thesis: for x0 being Real st f1 is_right_differentiable_in x0 & f2 is_right_differentiable_in x0 & f2 . x0 <> 0 holds ( f1 / f2 is_right_differentiable_in x0 & Rdiff ((f1 / f2),x0) = (((Rdiff (f1,x0)) * (f2 . x0)) - ((Rdiff (f2,x0)) * (f1 . x0))) / ((f2 . x0) ^2) ) let x0 be Real; ::_thesis: ( f1 is_right_differentiable_in x0 & f2 is_right_differentiable_in x0 & f2 . x0 <> 0 implies ( f1 / f2 is_right_differentiable_in x0 & Rdiff ((f1 / f2),x0) = (((Rdiff (f1,x0)) * (f2 . x0)) - ((Rdiff (f2,x0)) * (f1 . x0))) / ((f2 . x0) ^2) ) ) assume that A1: f1 is_right_differentiable_in x0 and A2: f2 is_right_differentiable_in x0 and A3: f2 . x0 <> 0 ; ::_thesis: ( f1 / f2 is_right_differentiable_in x0 & Rdiff ((f1 / f2),x0) = (((Rdiff (f1,x0)) * (f2 . x0)) - ((Rdiff (f2,x0)) * (f1 . x0))) / ((f2 . x0) ^2) ) ex r being Real st ( r > 0 & [.x0,(x0 + r).] c= dom f2 ) by A2, Def3; then consider r1 being Real such that A4: r1 > 0 and [.x0,(x0 + r1).] c= dom f2 and A5: for g being Real st g in [.x0,(x0 + r1).] holds f2 . g <> 0 by A2, A3, Th7, Th8; now__::_thesis:_ex_r1_being_Real_st_ (_r1_>_0_&_(_for_g_being_Real_st_g_in_dom_f2_&_g_in_[.x0,(x0_+_r1).]_holds_ f2_._g_<>_0_)_) take r1 = r1; ::_thesis: ( r1 > 0 & ( for g being Real st g in dom f2 & g in [.x0,(x0 + r1).] holds f2 . g <> 0 ) ) thus r1 > 0 by A4; ::_thesis: for g being Real st g in dom f2 & g in [.x0,(x0 + r1).] holds f2 . g <> 0 let g be Real; ::_thesis: ( g in dom f2 & g in [.x0,(x0 + r1).] implies f2 . g <> 0 ) assume that g in dom f2 and A6: g in [.x0,(x0 + r1).] ; ::_thesis: f2 . g <> 0 thus f2 . g <> 0 by A5, A6; ::_thesis: verum end; hence ( f1 / f2 is_right_differentiable_in x0 & Rdiff ((f1 / f2),x0) = (((Rdiff (f1,x0)) * (f2 . x0)) - ((Rdiff (f2,x0)) * (f1 . x0))) / ((f2 . x0) ^2) ) by A1, A2, Lm3; ::_thesis: verum end; Lm4: for f being PartFunc of REAL,REAL for x0 being Real st f is_right_differentiable_in x0 & ex r0 being Real st ( r0 > 0 & ( for g being Real st g in dom f & g in [.x0,(x0 + r0).] holds f . g <> 0 ) ) holds ( f ^ is_right_differentiable_in x0 & Rdiff ((f ^),x0) = - ((Rdiff (f,x0)) / ((f . x0) ^2)) ) proof let f be PartFunc of REAL,REAL; ::_thesis: for x0 being Real st f is_right_differentiable_in x0 & ex r0 being Real st ( r0 > 0 & ( for g being Real st g in dom f & g in [.x0,(x0 + r0).] holds f . g <> 0 ) ) holds ( f ^ is_right_differentiable_in x0 & Rdiff ((f ^),x0) = - ((Rdiff (f,x0)) / ((f . x0) ^2)) ) let x0 be Real; ::_thesis: ( f is_right_differentiable_in x0 & ex r0 being Real st ( r0 > 0 & ( for g being Real st g in dom f & g in [.x0,(x0 + r0).] holds f . g <> 0 ) ) implies ( f ^ is_right_differentiable_in x0 & Rdiff ((f ^),x0) = - ((Rdiff (f,x0)) / ((f . x0) ^2)) ) ) A1: 0 + x0 = x0 ; assume A2: f is_right_differentiable_in x0 ; ::_thesis: ( for r0 being Real holds ( not r0 > 0 or ex g being Real st ( g in dom f & g in [.x0,(x0 + r0).] & not f . g <> 0 ) ) or ( f ^ is_right_differentiable_in x0 & Rdiff ((f ^),x0) = - ((Rdiff (f,x0)) / ((f . x0) ^2)) ) ) then consider r2 being Real such that A3: 0 < r2 and A4: [.x0,(x0 + r2).] c= dom f by Def3; given r0 being Real such that A5: r0 > 0 and A6: for g being Real st g in dom f & g in [.x0,(x0 + r0).] holds f . g <> 0 ; ::_thesis: ( f ^ is_right_differentiable_in x0 & Rdiff ((f ^),x0) = - ((Rdiff (f,x0)) / ((f . x0) ^2)) ) set r3 = min (r0,r2); 0 <= min (r0,r2) by A5, A3, XXREAL_0:15; then A7: x0 <= x0 + (min (r0,r2)) by A1, XREAL_1:6; min (r0,r2) <= r2 by XXREAL_0:17; then A8: x0 + (min (r0,r2)) <= x0 + r2 by XREAL_1:7; then x0 <= x0 + r2 by A7, XXREAL_0:2; then A9: x0 in [.x0,(x0 + r2).] by XXREAL_1:1; x0 + (min (r0,r2)) in { g where g is Real : ( x0 <= g & g <= x0 + r2 ) } by A7, A8; then x0 + (min (r0,r2)) in [.x0,(x0 + r2).] by RCOMP_1:def_1; then [.x0,(x0 + (min (r0,r2))).] c= [.x0,(x0 + r2).] by A9, XXREAL_2:def_12; then A10: [.x0,(x0 + (min (r0,r2))).] c= dom f by A4, XBOOLE_1:1; min (r0,r2) <= r0 by XXREAL_0:17; then A11: x0 + (min (r0,r2)) <= x0 + r0 by XREAL_1:7; then x0 <= x0 + r0 by A7, XXREAL_0:2; then A12: x0 in [.x0,(x0 + r0).] by XXREAL_1:1; x0 + (min (r0,r2)) in { g where g is Real : ( x0 <= g & g <= x0 + r0 ) } by A7, A11; then x0 + (min (r0,r2)) in [.x0,(x0 + r0).] by RCOMP_1:def_1; then A13: [.x0,(x0 + (min (r0,r2))).] c= [.x0,(x0 + r0).] by A12, XXREAL_2:def_12; A14: [.x0,(x0 + (min (r0,r2))).] c= dom (f ^) proof assume not [.x0,(x0 + (min (r0,r2))).] c= dom (f ^) ; ::_thesis: contradiction then consider x being set such that A15: x in [.x0,(x0 + (min (r0,r2))).] and A16: not x in dom (f ^) by TARSKI:def_3; reconsider x = x as Real by A15; A17: not x in (dom f) \ (f " {0}) by A16, RFUNCT_1:def_2; now__::_thesis:_contradiction percases ( not x in dom f or x in f " {0} ) by A17, XBOOLE_0:def_5; suppose not x in dom f ; ::_thesis: contradiction hence contradiction by A10, A15; ::_thesis: verum end; supposeA18: x in f " {0} ; ::_thesis: contradiction then f . x in {0} by FUNCT_1:def_7; then A19: f . x = 0 by TARSKI:def_1; x in dom f by A18, FUNCT_1:def_7; hence contradiction by A6, A13, A15, A19; ::_thesis: verum end; end; end; hence contradiction ; ::_thesis: verum end; A20: x0 in [.x0,(x0 + (min (r0,r2))).] by A7, XXREAL_1:1; A21: for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom (f ^) & ( for n being Element of NAT holds h . n > 0 ) holds ( (h ") (#) (((f ^) /* (h + c)) - ((f ^) /* c)) is convergent & lim ((h ") (#) (((f ^) /* (h + c)) - ((f ^) /* c))) = - ((Rdiff (f,x0)) / ((f . x0) ^2)) ) proof let h be non-zero 0 -convergent Real_Sequence; ::_thesis: for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom (f ^) & ( for n being Element of NAT holds h . n > 0 ) holds ( (h ") (#) (((f ^) /* (h + c)) - ((f ^) /* c)) is convergent & lim ((h ") (#) (((f ^) /* (h + c)) - ((f ^) /* c))) = - ((Rdiff (f,x0)) / ((f . x0) ^2)) ) let c be constant Real_Sequence; ::_thesis: ( rng c = {x0} & rng (h + c) c= dom (f ^) & ( for n being Element of NAT holds h . n > 0 ) implies ( (h ") (#) (((f ^) /* (h + c)) - ((f ^) /* c)) is convergent & lim ((h ") (#) (((f ^) /* (h + c)) - ((f ^) /* c))) = - ((Rdiff (f,x0)) / ((f . x0) ^2)) ) ) assume that A22: rng c = {x0} and A23: rng (h + c) c= dom (f ^) and A24: for n being Element of NAT holds h . n > 0 ; ::_thesis: ( (h ") (#) (((f ^) /* (h + c)) - ((f ^) /* c)) is convergent & lim ((h ") (#) (((f ^) /* (h + c)) - ((f ^) /* c))) = - ((Rdiff (f,x0)) / ((f . x0) ^2)) ) A26: for m being Element of NAT holds c . m = x0 proof let m be Element of NAT ; ::_thesis: c . m = x0 c . m in rng c by VALUED_0:28; hence c . m = x0 by A22, TARSKI:def_1; ::_thesis: verum end; A27: (dom f) \ (f " {0}) c= dom f by XBOOLE_1:36; rng (h + c) c= (dom f) \ (f " {0}) by A23, RFUNCT_1:def_2; then A28: rng (h + c) c= dom f by A27, XBOOLE_1:1; then A29: lim ((h ") (#) ((f /* (h + c)) - (f /* c))) = Rdiff (f,x0) by A2, A22, A24, Th15; Rdiff (f,x0) = Rdiff (f,x0) ; then A30: (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent by A2, A22, A24, A28, Th15; then A31: - ((h ") (#) ((f /* (h + c)) - (f /* c))) is convergent by SEQ_2:9; x0 in dom (f ^) by A20, A14; then A32: x0 in (dom f) \ (f " {0}) by RFUNCT_1:def_2; rng c c= (dom f) \ (f " {0}) proof let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in rng c or x in (dom f) \ (f " {0}) ) assume x in rng c ; ::_thesis: x in (dom f) \ (f " {0}) hence x in (dom f) \ (f " {0}) by A22, A32, TARSKI:def_1; ::_thesis: verum end; then A33: rng c c= dom (f ^) by RFUNCT_1:def_2; then A34: f /* c is non-zero by RFUNCT_2:11; now__::_thesis:_for_n_being_Element_of_NAT_holds_(h_(#)_((h_")_(#)_((f_/*_(h_+_c))_-_(f_/*_c))))_._n_=_((f_/*_(h_+_c))_-_(f_/*_c))_._n let n be Element of NAT ; ::_thesis: (h (#) ((h ") (#) ((f /* (h + c)) - (f /* c)))) . n = ((f /* (h + c)) - (f /* c)) . n A35: h . n <> 0 by A24; thus (h (#) ((h ") (#) ((f /* (h + c)) - (f /* c)))) . n = ((h (#) (h ")) (#) ((f /* (h + c)) - (f /* c))) . n by SEQ_1:14 .= ((h (#) (h ")) . n) * (((f /* (h + c)) - (f /* c)) . n) by SEQ_1:8 .= ((h . n) * ((h ") . n)) * (((f /* (h + c)) - (f /* c)) . n) by SEQ_1:8 .= ((h . n) * ((h . n) ")) * (((f /* (h + c)) - (f /* c)) . n) by VALUED_1:10 .= 1 * (((f /* (h + c)) - (f /* c)) . n) by A35, XCMPLX_0:def_7 .= ((f /* (h + c)) - (f /* c)) . n ; ::_thesis: verum end; then A36: h (#) ((h ") (#) ((f /* (h + c)) - (f /* c))) = (f /* (h + c)) - (f /* c) by FUNCT_2:63; A37: f /* (h + c) is non-zero by A23, RFUNCT_2:11; then A38: (f /* (h + c)) (#) (f /* c) is non-zero by A34, SEQ_1:35; now__::_thesis:_for_n_being_Element_of_NAT_holds_((f_/*_c)_+_((f_/*_(h_+_c))_-_(f_/*_c)))_._n_=_(f_/*_(h_+_c))_._n let n be Element of NAT ; ::_thesis: ((f /* c) + ((f /* (h + c)) - (f /* c))) . n = (f /* (h + c)) . n thus ((f /* c) + ((f /* (h + c)) - (f /* c))) . n = ((f /* c) . n) + (((f /* (h + c)) - (f /* c)) . n) by SEQ_1:7 .= ((f /* c) . n) + (((f /* (h + c)) . n) - ((f /* c) . n)) by RFUNCT_2:1 .= (f /* (h + c)) . n ; ::_thesis: verum end; then A39: (f /* c) + ((f /* (h + c)) - (f /* c)) = f /* (h + c) by FUNCT_2:63; dom (f ^) = (dom f) \ (f " {0}) by RFUNCT_1:def_2; then A40: dom (f ^) c= dom f by XBOOLE_1:36; A41: for g being real number st 0 < g holds ex n being Element of NAT st for m being Element of NAT st n <= m holds abs (((f /* c) . m) - (f . x0)) < g proof let g be real number ; ::_thesis: ( 0 < g implies ex n being Element of NAT st for m being Element of NAT st n <= m holds abs (((f /* c) . m) - (f . x0)) < g ) assume A42: 0 < g ; ::_thesis: ex n being Element of NAT st for m being Element of NAT st n <= m holds abs (((f /* c) . m) - (f . x0)) < g take n = 0 ; ::_thesis: for m being Element of NAT st n <= m holds abs (((f /* c) . m) - (f . x0)) < g let m be Element of NAT ; ::_thesis: ( n <= m implies abs (((f /* c) . m) - (f . x0)) < g ) assume n <= m ; ::_thesis: abs (((f /* c) . m) - (f . x0)) < g abs (((f /* c) . m) - (f . x0)) = abs ((f . (c . m)) - (f . x0)) by A33, A40, FUNCT_2:108, XBOOLE_1:1 .= abs ((f . x0) - (f . x0)) by A26 .= 0 by ABSVALUE:def_1 ; hence abs (((f /* c) . m) - (f . x0)) < g by A42; ::_thesis: verum end; then A43: f /* c is convergent by SEQ_2:def_6; then A44: lim (f /* c) = f . x0 by A41, SEQ_2:def_7; h (#) ((h ") (#) ((f /* (h + c)) - (f /* c))) is convergent by A30, SEQ_2:14; then A46: f /* (h + c) is convergent by A43, A36, A39, SEQ_2:5; lim (h (#) ((h ") (#) ((f /* (h + c)) - (f /* c)))) = (lim h) * (lim ((h ") (#) ((f /* (h + c)) - (f /* c)))) by A30, SEQ_2:15 .= 0 ; then 0 = (lim (f /* (h + c))) - (f . x0) by A43, A44, A36, A46, SEQ_2:12; then A47: lim ((f /* (h + c)) (#) (f /* c)) = (f . x0) ^2 by A43, A44, A46, SEQ_2:15; A48: lim ((f /* (h + c)) (#) (f /* c)) <> 0 proof assume not lim ((f /* (h + c)) (#) (f /* c)) <> 0 ; ::_thesis: contradiction then f . x0 = 0 by A47, XCMPLX_1:6; hence contradiction by A6, A4, A12, A9; ::_thesis: verum end; now__::_thesis:_for_n_being_Element_of_NAT_holds_((h_")_(#)_(((f_^)_/*_(h_+_c))_-_((f_^)_/*_c)))_._n_=_((-_((h_")_(#)_((f_/*_(h_+_c))_-_(f_/*_c))))_/"_((f_/*_(h_+_c))_(#)_(f_/*_c)))_._n let n be Element of NAT ; ::_thesis: ((h ") (#) (((f ^) /* (h + c)) - ((f ^) /* c))) . n = ((- ((h ") (#) ((f /* (h + c)) - (f /* c)))) /" ((f /* (h + c)) (#) (f /* c))) . n A49: ( (f /* (h + c)) . n <> 0 & (f /* c) . n <> 0 ) by A37, A34, SEQ_1:5; thus ((h ") (#) (((f ^) /* (h + c)) - ((f ^) /* c))) . n = ((h ") . n) * ((((f ^) /* (h + c)) - ((f ^) /* c)) . n) by SEQ_1:8 .= ((h ") . n) * ((((f ^) /* (h + c)) . n) - (((f ^) /* c) . n)) by RFUNCT_2:1 .= ((h ") . n) * ((((f /* (h + c)) ") . n) - (((f ^) /* c) . n)) by A23, RFUNCT_2:12 .= ((h ") . n) * ((((f /* (h + c)) ") . n) - (((f /* c) ") . n)) by A33, RFUNCT_2:12 .= ((h ") . n) * ((((f /* (h + c)) . n) ") - (((f /* c) ") . n)) by VALUED_1:10 .= ((h ") . n) * ((((f /* (h + c)) . n) ") - (((f /* c) . n) ")) by VALUED_1:10 .= ((h ") . n) * ((1 / ((f /* (h + c)) . n)) - (((f /* c) . n) ")) by XCMPLX_1:215 .= ((h ") . n) * ((1 / ((f /* (h + c)) . n)) - (1 / ((f /* c) . n))) by XCMPLX_1:215 .= ((h ") . n) * (((1 * ((f /* c) . n)) - (1 * ((f /* (h + c)) . n))) / (((f /* (h + c)) . n) * ((f /* c) . n))) by A49, XCMPLX_1:130 .= ((h ") . n) * ((- (((f /* (h + c)) . n) - ((f /* c) . n))) / (((f /* (h + c)) (#) (f /* c)) . n)) by SEQ_1:8 .= ((h ") . n) * ((- (((f /* (h + c)) - (f /* c)) . n)) / (((f /* (h + c)) (#) (f /* c)) . n)) by RFUNCT_2:1 .= ((h ") . n) * (- ((((f /* (h + c)) - (f /* c)) . n) / (((f /* (h + c)) (#) (f /* c)) . n))) by XCMPLX_1:187 .= - (((h ") . n) * ((((f /* (h + c)) - (f /* c)) . n) / (((f /* (h + c)) (#) (f /* c)) . n))) .= - ((((h ") . n) * (((f /* (h + c)) - (f /* c)) . n)) / (((f /* (h + c)) (#) (f /* c)) . n)) by XCMPLX_1:74 .= - ((((h ") (#) ((f /* (h + c)) - (f /* c))) . n) / (((f /* (h + c)) (#) (f /* c)) . n)) by SEQ_1:8 .= - ((((h ") (#) ((f /* (h + c)) - (f /* c))) . n) * ((((f /* (h + c)) (#) (f /* c)) . n) ")) by XCMPLX_0:def_9 .= - ((((h ") (#) ((f /* (h + c)) - (f /* c))) . n) * ((((f /* (h + c)) (#) (f /* c)) ") . n)) by VALUED_1:10 .= - ((((h ") (#) ((f /* (h + c)) - (f /* c))) /" ((f /* (h + c)) (#) (f /* c))) . n) by SEQ_1:8 .= (- (((h ") (#) ((f /* (h + c)) - (f /* c))) /" ((f /* (h + c)) (#) (f /* c)))) . n by SEQ_1:10 .= ((- ((h ") (#) ((f /* (h + c)) - (f /* c)))) /" ((f /* (h + c)) (#) (f /* c))) . n by SEQ_1:48 ; ::_thesis: verum end; then A50: (h ") (#) (((f ^) /* (h + c)) - ((f ^) /* c)) = (- ((h ") (#) ((f /* (h + c)) - (f /* c)))) /" ((f /* (h + c)) (#) (f /* c)) by FUNCT_2:63; A51: (f /* (h + c)) (#) (f /* c) is convergent by A43, A46, SEQ_2:14; then lim ((h ") (#) (((f ^) /* (h + c)) - ((f ^) /* c))) = (lim (- ((h ") (#) ((f /* (h + c)) - (f /* c))))) / ((f . x0) ^2) by A38, A47, A48, A31, A50, SEQ_2:24 .= (- (Rdiff (f,x0))) / ((f . x0) ^2) by A30, A29, SEQ_2:10 .= - ((Rdiff (f,x0)) / ((f . x0) ^2)) by XCMPLX_1:187 ; hence ( (h ") (#) (((f ^) /* (h + c)) - ((f ^) /* c)) is convergent & lim ((h ") (#) (((f ^) /* (h + c)) - ((f ^) /* c))) = - ((Rdiff (f,x0)) / ((f . x0) ^2)) ) by A38, A51, A48, A31, A50, SEQ_2:23; ::_thesis: verum end; 0 < min (r0,r2) by A5, A3, XXREAL_0:15; hence ( f ^ is_right_differentiable_in x0 & Rdiff ((f ^),x0) = - ((Rdiff (f,x0)) / ((f . x0) ^2)) ) by A14, A21, Th15; ::_thesis: verum end; theorem :: FDIFF_3:20 for f being PartFunc of REAL,REAL for x0 being Real st f is_right_differentiable_in x0 & f . x0 <> 0 holds ( f ^ is_right_differentiable_in x0 & Rdiff ((f ^),x0) = - ((Rdiff (f,x0)) / ((f . x0) ^2)) ) proof let f be PartFunc of REAL,REAL; ::_thesis: for x0 being Real st f is_right_differentiable_in x0 & f . x0 <> 0 holds ( f ^ is_right_differentiable_in x0 & Rdiff ((f ^),x0) = - ((Rdiff (f,x0)) / ((f . x0) ^2)) ) let x0 be Real; ::_thesis: ( f is_right_differentiable_in x0 & f . x0 <> 0 implies ( f ^ is_right_differentiable_in x0 & Rdiff ((f ^),x0) = - ((Rdiff (f,x0)) / ((f . x0) ^2)) ) ) assume that A1: f is_right_differentiable_in x0 and A2: f . x0 <> 0 ; ::_thesis: ( f ^ is_right_differentiable_in x0 & Rdiff ((f ^),x0) = - ((Rdiff (f,x0)) / ((f . x0) ^2)) ) ex r being Real st ( r > 0 & [.x0,(x0 + r).] c= dom f ) by A1, Def3; then consider r1 being Real such that A3: r1 > 0 and [.x0,(x0 + r1).] c= dom f and A4: for g being Real st g in [.x0,(x0 + r1).] holds f . g <> 0 by A1, A2, Th7, Th8; now__::_thesis:_ex_r1_being_Real_st_ (_r1_>_0_&_(_for_g_being_Real_st_g_in_dom_f_&_g_in_[.x0,(x0_+_r1).]_holds_ f_._g_<>_0_)_) take r1 = r1; ::_thesis: ( r1 > 0 & ( for g being Real st g in dom f & g in [.x0,(x0 + r1).] holds f . g <> 0 ) ) thus r1 > 0 by A3; ::_thesis: for g being Real st g in dom f & g in [.x0,(x0 + r1).] holds f . g <> 0 let g be Real; ::_thesis: ( g in dom f & g in [.x0,(x0 + r1).] implies f . g <> 0 ) assume that g in dom f and A5: g in [.x0,(x0 + r1).] ; ::_thesis: f . g <> 0 thus f . g <> 0 by A4, A5; ::_thesis: verum end; hence ( f ^ is_right_differentiable_in x0 & Rdiff ((f ^),x0) = - ((Rdiff (f,x0)) / ((f . x0) ^2)) ) by A1, Lm4; ::_thesis: verum end; theorem :: FDIFF_3:21 for f being PartFunc of REAL,REAL for x0 being Real st f is_right_differentiable_in x0 & f is_left_differentiable_in x0 & Rdiff (f,x0) = Ldiff (f,x0) holds ( f is_differentiable_in x0 & diff (f,x0) = Rdiff (f,x0) & diff (f,x0) = Ldiff (f,x0) ) proof let f be PartFunc of REAL,REAL; ::_thesis: for x0 being Real st f is_right_differentiable_in x0 & f is_left_differentiable_in x0 & Rdiff (f,x0) = Ldiff (f,x0) holds ( f is_differentiable_in x0 & diff (f,x0) = Rdiff (f,x0) & diff (f,x0) = Ldiff (f,x0) ) let x0 be Real; ::_thesis: ( f is_right_differentiable_in x0 & f is_left_differentiable_in x0 & Rdiff (f,x0) = Ldiff (f,x0) implies ( f is_differentiable_in x0 & diff (f,x0) = Rdiff (f,x0) & diff (f,x0) = Ldiff (f,x0) ) ) assume that A1: f is_right_differentiable_in x0 and A2: f is_left_differentiable_in x0 and A3: Rdiff (f,x0) = Ldiff (f,x0) ; ::_thesis: ( f is_differentiable_in x0 & diff (f,x0) = Rdiff (f,x0) & diff (f,x0) = Ldiff (f,x0) ) A4: ex N being Neighbourhood of x0 st N c= dom f proof consider r2 being Real such that A5: r2 > 0 and A6: [.x0,(x0 + r2).] c= dom f by A1, Def3; consider r1 being Real such that A7: r1 > 0 and A8: [.(x0 - r1),x0.] c= dom f by A2, Def4; set r = min (r1,r2); min (r1,r2) > 0 by A7, A5, XXREAL_0:15; then reconsider N = ].(x0 - (min (r1,r2))),(x0 + (min (r1,r2))).[ as Neighbourhood of x0 by RCOMP_1:def_6; take N ; ::_thesis: N c= dom f let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in N or x in dom f ) assume x in N ; ::_thesis: x in dom f then x in { g where g is Real : ( x0 - (min (r1,r2)) < g & g < x0 + (min (r1,r2)) ) } by RCOMP_1:def_2; then consider g being Real such that A9: g = x and A10: x0 - (min (r1,r2)) < g and A11: g < x0 + (min (r1,r2)) ; now__::_thesis:_x_in_dom_f percases ( g <= x0 or g > x0 ) ; supposeA12: g <= x0 ; ::_thesis: x in dom f min (r1,r2) <= r1 by XXREAL_0:17; then x0 - r1 <= x0 - (min (r1,r2)) by XREAL_1:13; then x0 - r1 <= g by A10, XXREAL_0:2; then g in { g1 where g1 is Real : ( x0 - r1 <= g1 & g1 <= x0 ) } by A12; then g in [.(x0 - r1),x0.] by RCOMP_1:def_1; hence x in dom f by A8, A9; ::_thesis: verum end; supposeA13: g > x0 ; ::_thesis: x in dom f min (r1,r2) <= r2 by XXREAL_0:17; then x0 + (min (r1,r2)) <= x0 + r2 by XREAL_1:7; then g <= x0 + r2 by A11, XXREAL_0:2; then g in { g1 where g1 is Real : ( x0 <= g1 & g1 <= x0 + r2 ) } by A13; then g in [.x0,(x0 + r2).] by RCOMP_1:def_1; hence x in dom f by A6, A9; ::_thesis: verum end; end; end; hence x in dom f ; ::_thesis: verum end; for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f holds ( (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent & lim ((h ") (#) ((f /* (h + c)) - (f /* c))) = Ldiff (f,x0) ) proof let h be non-zero 0 -convergent Real_Sequence; ::_thesis: for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f holds ( (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent & lim ((h ") (#) ((f /* (h + c)) - (f /* c))) = Ldiff (f,x0) ) let c be constant Real_Sequence; ::_thesis: ( rng c = {x0} & rng (h + c) c= dom f implies ( (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent & lim ((h ") (#) ((f /* (h + c)) - (f /* c))) = Ldiff (f,x0) ) ) assume that A14: rng c = {x0} and A15: rng (h + c) c= dom f ; ::_thesis: ( (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent & lim ((h ") (#) ((f /* (h + c)) - (f /* c))) = Ldiff (f,x0) ) A16: rng c c= dom f proof consider S being Neighbourhood of x0 such that A17: S c= dom f by A4; x0 in S by RCOMP_1:16; hence rng c c= dom f by A14, A17, ZFMISC_1:31; ::_thesis: verum end; now__::_thesis:_(_(h_")_(#)_((f_/*_(h_+_c))_-_(f_/*_c))_is_convergent_&_lim_((h_")_(#)_((f_/*_(h_+_c))_-_(f_/*_c)))_=_Ldiff_(f,x0)_) percases ( ex N being Element of NAT st for n being Element of NAT st n >= N holds h . n > 0 or for N being Element of NAT ex n being Element of NAT st ( n >= N & h . n <= 0 ) ) ; suppose ex N being Element of NAT st for n being Element of NAT st n >= N holds h . n > 0 ; ::_thesis: ( (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent & lim ((h ") (#) ((f /* (h + c)) - (f /* c))) = Ldiff (f,x0) ) then consider N being Element of NAT such that A18: for n being Element of NAT st n >= N holds h . n > 0 ; set h1 = h ^\ N; A19: for n being Element of NAT holds (h ^\ N) . n > 0 proof let n be Element of NAT ; ::_thesis: (h ^\ N) . n > 0 0 <= n by NAT_1:2; then ( (h ^\ N) . n = h . (n + N) & N + 0 <= n + N ) by NAT_1:def_3, XREAL_1:7; hence (h ^\ N) . n > 0 by A18; ::_thesis: verum end; set c1 = c ^\ N; A20: rng (c ^\ N) = {x0} proof thus rng (c ^\ N) c= {x0} by A14, VALUED_0:21; :: according to XBOOLE_0:def_10 ::_thesis: {x0} c= rng (c ^\ N) let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in {x0} or x in rng (c ^\ N) ) A21: c . N in rng c by VALUED_0:28; assume x in {x0} ; ::_thesis: x in rng (c ^\ N) then A22: x = x0 by TARSKI:def_1; (c ^\ N) . 0 = c . (0 + N) by NAT_1:def_3 .= c . N ; then (c ^\ N) . 0 = x by A14, A22, A21, TARSKI:def_1; hence x in rng (c ^\ N) by VALUED_0:28; ::_thesis: verum end; A23: (h ^\ N) + (c ^\ N) = (h + c) ^\ N by SEQM_3:15; then A24: ((h ^\ N) ") (#) ((f /* ((h ^\ N) + (c ^\ N))) - (f /* (c ^\ N))) = ((h ^\ N) ") (#) (((f /* (h + c)) ^\ N) - (f /* (c ^\ N))) by A15, VALUED_0:27 .= ((h ^\ N) ") (#) (((f /* (h + c)) ^\ N) - ((f /* c) ^\ N)) by A16, VALUED_0:27 .= ((h ^\ N) ") (#) (((f /* (h + c)) - (f /* c)) ^\ N) by SEQM_3:17 .= ((h ") ^\ N) (#) (((f /* (h + c)) - (f /* c)) ^\ N) by SEQM_3:18 .= ((h ") (#) ((f /* (h + c)) - (f /* c))) ^\ N by SEQM_3:19 ; rng ((h ^\ N) + (c ^\ N)) c= rng (h + c) by A23, VALUED_0:21; then A25: rng ((h ^\ N) + (c ^\ N)) c= dom f by A15, XBOOLE_1:1; then A26: ((h ^\ N) ") (#) ((f /* ((h ^\ N) + (c ^\ N))) - (f /* (c ^\ N))) is convergent by A1, A3, A20, A19, Th15; hence (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent by A24, SEQ_4:21; ::_thesis: lim ((h ") (#) ((f /* (h + c)) - (f /* c))) = Ldiff (f,x0) lim (((h ^\ N) ") (#) ((f /* ((h ^\ N) + (c ^\ N))) - (f /* (c ^\ N)))) = Rdiff (f,x0) by A1, A20, A25, A19, Th15; hence lim ((h ") (#) ((f /* (h + c)) - (f /* c))) = Ldiff (f,x0) by A3, A26, A24, SEQ_4:22; ::_thesis: verum end; supposeA27: for N being Element of NAT ex n being Element of NAT st ( n >= N & h . n <= 0 ) ; ::_thesis: ( (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent & lim ((h ") (#) ((f /* (h + c)) - (f /* c))) = Ldiff (f,x0) ) now__::_thesis:_(_(h_")_(#)_((f_/*_(h_+_c))_-_(f_/*_c))_is_convergent_&_lim_((h_")_(#)_((f_/*_(h_+_c))_-_(f_/*_c)))_=_Ldiff_(f,x0)_) percases ( ex M being Element of NAT st for m being Element of NAT st m >= M holds h . m < 0 or for M being Element of NAT ex m being Element of NAT st ( m >= M & h . m >= 0 ) ) ; suppose ex M being Element of NAT st for m being Element of NAT st m >= M holds h . m < 0 ; ::_thesis: ( (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent & lim ((h ") (#) ((f /* (h + c)) - (f /* c))) = Ldiff (f,x0) ) then consider M being Element of NAT such that A28: for n being Element of NAT st n >= M holds h . n < 0 ; set h1 = h ^\ M; A29: for n being Element of NAT holds (h ^\ M) . n < 0 proof let n be Element of NAT ; ::_thesis: (h ^\ M) . n < 0 0 <= n by NAT_1:2; then ( (h ^\ M) . n = h . (n + M) & M + 0 <= n + M ) by NAT_1:def_3, XREAL_1:7; hence (h ^\ M) . n < 0 by A28; ::_thesis: verum end; set c1 = c ^\ M; A30: rng (c ^\ M) = {x0} proof thus rng (c ^\ M) c= {x0} by A14, VALUED_0:21; :: according to XBOOLE_0:def_10 ::_thesis: {x0} c= rng (c ^\ M) let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in {x0} or x in rng (c ^\ M) ) A31: c . M in rng c by VALUED_0:28; assume x in {x0} ; ::_thesis: x in rng (c ^\ M) then A32: x = x0 by TARSKI:def_1; (c ^\ M) . 0 = c . (0 + M) by NAT_1:def_3 .= c . M ; then (c ^\ M) . 0 = x by A14, A32, A31, TARSKI:def_1; hence x in rng (c ^\ M) by VALUED_0:28; ::_thesis: verum end; A33: (h ^\ M) + (c ^\ M) = (h + c) ^\ M by SEQM_3:15; then A34: ((h ^\ M) ") (#) ((f /* ((h ^\ M) + (c ^\ M))) - (f /* (c ^\ M))) = ((h ^\ M) ") (#) (((f /* (h + c)) ^\ M) - (f /* (c ^\ M))) by A15, VALUED_0:27 .= ((h ^\ M) ") (#) (((f /* (h + c)) ^\ M) - ((f /* c) ^\ M)) by A16, VALUED_0:27 .= ((h ^\ M) ") (#) (((f /* (h + c)) - (f /* c)) ^\ M) by SEQM_3:17 .= ((h ") ^\ M) (#) (((f /* (h + c)) - (f /* c)) ^\ M) by SEQM_3:18 .= ((h ") (#) ((f /* (h + c)) - (f /* c))) ^\ M by SEQM_3:19 ; rng ((h ^\ M) + (c ^\ M)) c= rng (h + c) by A33, VALUED_0:21; then A35: rng ((h ^\ M) + (c ^\ M)) c= dom f by A15, XBOOLE_1:1; then A36: ((h ^\ M) ") (#) ((f /* ((h ^\ M) + (c ^\ M))) - (f /* (c ^\ M))) is convergent by A2, A3, A30, A29, Th9; hence (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent by A34, SEQ_4:21; ::_thesis: lim ((h ") (#) ((f /* (h + c)) - (f /* c))) = Ldiff (f,x0) lim (((h ^\ M) ") (#) ((f /* ((h ^\ M) + (c ^\ M))) - (f /* (c ^\ M)))) = Ldiff (f,x0) by A2, A30, A35, A29, Th9; hence lim ((h ") (#) ((f /* (h + c)) - (f /* c))) = Ldiff (f,x0) by A36, A34, SEQ_4:22; ::_thesis: verum end; supposeA37: for M being Element of NAT ex m being Element of NAT st ( m >= M & h . m >= 0 ) ; ::_thesis: ( (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent & lim ((h ") (#) ((f /* (h + c)) - (f /* c))) = Ldiff (f,x0) ) set s = (h ") (#) ((f /* (h + c)) - (f /* c)); defpred S1[ real number ] means $1 > 0 ; defpred S2[ real number ] means $1 < 0 ; A39: for N being Element of NAT ex n being Element of NAT st ( n >= N & S2[h . n] ) proof let m be Element of NAT ; ::_thesis: ex n being Element of NAT st ( n >= m & S2[h . n] ) consider n being Element of NAT such that A40: n >= m and A41: h . n <= 0 by A27; take n ; ::_thesis: ( n >= m & S2[h . n] ) thus n >= m by A40; ::_thesis: S2[h . n] h . n <> 0 by SEQ_1:5; hence S2[h . n] by A41; ::_thesis: verum end; consider q1 being V39() sequence of NAT such that A42: ( ( for n being Element of NAT holds S2[(h * q1) . n] ) & ( for n being Element of NAT st ( for r being Real st r = h . n holds S2[r] ) holds ex m being Element of NAT st n = q1 . m ) ) from FDIFF_2:sch_1(A39); A43: for N being Element of NAT ex n being Element of NAT st ( n >= N & S1[h . n] ) proof let m be Element of NAT ; ::_thesis: ex n being Element of NAT st ( n >= m & S1[h . n] ) consider n being Element of NAT such that A44: n >= m and A45: h . n >= 0 by A37; take n ; ::_thesis: ( n >= m & S1[h . n] ) thus n >= m by A44; ::_thesis: S1[h . n] h . n <> 0 by SEQ_1:5; hence S1[h . n] by A45; ::_thesis: verum end; consider q2 being V39() sequence of NAT such that A46: ( ( for n being Element of NAT holds S1[(h * q2) . n] ) & ( for n being Element of NAT st ( for r being Real st r = h . n holds S1[r] ) holds ex m being Element of NAT st n = q2 . m ) ) from FDIFF_2:sch_1(A43); set h1 = h * q1; reconsider h1 = h * q1 as subsequence of h ; A48: h1 is convergent by SEQ_4:16; A49: lim h = 0 ; then A50: lim h1 = 0 by SEQ_4:17; set h2 = h * q2; A51: h * q2 is convergent by SEQ_4:16; lim (h * q2) = 0 by A49, SEQ_4:17; then reconsider h2 = h * q2 as non-zero 0 -convergent Real_Sequence by A51, FDIFF_1:def_1; set c2 = c * q2; A52: rng (c * q2) = {x0} by A14, VALUED_0:26; reconsider c2 = c * q2 as constant Real_Sequence ; rng ((h + c) * q2) c= rng (h + c) by VALUED_0:21; then rng ((h + c) * q2) c= dom f by A15, XBOOLE_1:1; then rng (h2 + c2) c= dom f by RFUNCT_2:2; then A53: ( (h2 ") (#) ((f /* (h2 + c2)) - (f /* c2)) is convergent & lim ((h2 ") (#) ((f /* (h2 + c2)) - (f /* c2))) = Ldiff (f,x0) ) by A1, A3, A46, A52, Th15; A54: (h2 ") (#) ((f /* (h2 + c2)) - (f /* c2)) = (h2 ") (#) ((f /* ((h + c) * q2)) - (f /* c2)) by RFUNCT_2:2 .= (h2 ") (#) (((f /* (h + c)) * q2) - (f /* c2)) by A15, FUNCT_2:110 .= ((h ") * q2) (#) (((f /* (h + c)) * q2) - (f /* c2)) by RFUNCT_2:5 .= ((h ") * q2) (#) (((f /* (h + c)) * q2) - ((f /* c) * q2)) by A16, FUNCT_2:110 .= ((h ") * q2) (#) (((f /* (h + c)) - (f /* c)) * q2) by RFUNCT_2:2 .= ((h ") (#) ((f /* (h + c)) - (f /* c))) * q2 by RFUNCT_2:2 ; reconsider h1 = h1 as non-zero 0 -convergent Real_Sequence by A48, A50, FDIFF_1:def_1; set c1 = c * q1; A55: rng (c * q1) = {x0} by A14, VALUED_0:26; reconsider c1 = c * q1 as constant Real_Sequence ; rng ((h + c) * q1) c= rng (h + c) by VALUED_0:21; then rng ((h + c) * q1) c= dom f by A15, XBOOLE_1:1; then rng (h1 + c1) c= dom f by RFUNCT_2:2; then A56: ( (h1 ") (#) ((f /* (h1 + c1)) - (f /* c1)) is convergent & lim ((h1 ") (#) ((f /* (h1 + c1)) - (f /* c1))) = Ldiff (f,x0) ) by A2, A3, A42, A55, Th9; A57: (h1 ") (#) ((f /* (h1 + c1)) - (f /* c1)) = (h1 ") (#) ((f /* ((h + c) * q1)) - (f /* c1)) by RFUNCT_2:2 .= (h1 ") (#) (((f /* (h + c)) * q1) - (f /* c1)) by A15, FUNCT_2:110 .= ((h ") * q1) (#) (((f /* (h + c)) * q1) - (f /* c1)) by RFUNCT_2:5 .= ((h ") * q1) (#) (((f /* (h + c)) * q1) - ((f /* c) * q1)) by A16, FUNCT_2:110 .= ((h ") * q1) (#) (((f /* (h + c)) - (f /* c)) * q1) by RFUNCT_2:2 .= ((h ") (#) ((f /* (h + c)) - (f /* c))) * q1 by RFUNCT_2:2 ; A58: for g1 being real number st 0 < g1 holds ex n being Element of NAT st for m being Element of NAT st n <= m holds abs ((((h ") (#) ((f /* (h + c)) - (f /* c))) . m) - (Ldiff (f,x0))) < g1 proof let g1 be real number ; ::_thesis: ( 0 < g1 implies ex n being Element of NAT st for m being Element of NAT st n <= m holds abs ((((h ") (#) ((f /* (h + c)) - (f /* c))) . m) - (Ldiff (f,x0))) < g1 ) assume A59: 0 < g1 ; ::_thesis: ex n being Element of NAT st for m being Element of NAT st n <= m holds abs ((((h ") (#) ((f /* (h + c)) - (f /* c))) . m) - (Ldiff (f,x0))) < g1 then consider n1 being Element of NAT such that A60: for m being Element of NAT st n1 <= m holds abs (((((h ") (#) ((f /* (h + c)) - (f /* c))) * q1) . m) - (Ldiff (f,x0))) < g1 by A56, A57, SEQ_2:def_7; consider n2 being Element of NAT such that A61: for m being Element of NAT st n2 <= m holds abs (((((h ") (#) ((f /* (h + c)) - (f /* c))) * q2) . m) - (Ldiff (f,x0))) < g1 by A53, A54, A59, SEQ_2:def_7; take n = max ((q1 . n1),(q2 . n2)); ::_thesis: for m being Element of NAT st n <= m holds abs ((((h ") (#) ((f /* (h + c)) - (f /* c))) . m) - (Ldiff (f,x0))) < g1 let m be Element of NAT ; ::_thesis: ( n <= m implies abs ((((h ") (#) ((f /* (h + c)) - (f /* c))) . m) - (Ldiff (f,x0))) < g1 ) assume A62: n <= m ; ::_thesis: abs ((((h ") (#) ((f /* (h + c)) - (f /* c))) . m) - (Ldiff (f,x0))) < g1 A63: n >= q2 . n2 by XXREAL_0:25; A64: n >= q1 . n1 by XXREAL_0:25; now__::_thesis:_abs_((((h_")_(#)_((f_/*_(h_+_c))_-_(f_/*_c)))_._m)_-_(Ldiff_(f,x0)))_<_g1 percases ( h . m > 0 or h . m <= 0 ) ; suppose h . m > 0 ; ::_thesis: abs ((((h ") (#) ((f /* (h + c)) - (f /* c))) . m) - (Ldiff (f,x0))) < g1 then for r being Real st r = h . m holds r > 0 ; then consider k being Element of NAT such that A65: m = q2 . k by A46; ( dom q2 = NAT & q2 . k >= q2 . n2 ) by A62, A63, A65, FUNCT_2:def_1, XXREAL_0:2; then not k < n2 by VALUED_0:def_13; then abs (((((h ") (#) ((f /* (h + c)) - (f /* c))) * q2) . k) - (Ldiff (f,x0))) < g1 by A61; hence abs ((((h ") (#) ((f /* (h + c)) - (f /* c))) . m) - (Ldiff (f,x0))) < g1 by A65, FUNCT_2:15; ::_thesis: verum end; supposeA66: h . m <= 0 ; ::_thesis: abs ((((h ") (#) ((f /* (h + c)) - (f /* c))) . m) - (Ldiff (f,x0))) < g1 h . m <> 0 by SEQ_1:5; then for r being Real st r = h . m holds r < 0 by A66; then consider k being Element of NAT such that A67: m = q1 . k by A42; ( dom q1 = NAT & q1 . k >= q1 . n1 ) by A62, A64, A67, FUNCT_2:def_1, XXREAL_0:2; then not k < n1 by VALUED_0:def_13; then abs (((((h ") (#) ((f /* (h + c)) - (f /* c))) * q1) . k) - (Ldiff (f,x0))) < g1 by A60; hence abs ((((h ") (#) ((f /* (h + c)) - (f /* c))) . m) - (Ldiff (f,x0))) < g1 by A67, FUNCT_2:15; ::_thesis: verum end; end; end; hence abs ((((h ") (#) ((f /* (h + c)) - (f /* c))) . m) - (Ldiff (f,x0))) < g1 ; ::_thesis: verum end; hence (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent by SEQ_2:def_6; ::_thesis: lim ((h ") (#) ((f /* (h + c)) - (f /* c))) = Ldiff (f,x0) hence lim ((h ") (#) ((f /* (h + c)) - (f /* c))) = Ldiff (f,x0) by A58, SEQ_2:def_7; ::_thesis: verum end; end; end; hence ( (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent & lim ((h ") (#) ((f /* (h + c)) - (f /* c))) = Ldiff (f,x0) ) ; ::_thesis: verum end; end; end; hence ( (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent & lim ((h ") (#) ((f /* (h + c)) - (f /* c))) = Ldiff (f,x0) ) ; ::_thesis: verum end; hence ( f is_differentiable_in x0 & diff (f,x0) = Rdiff (f,x0) & diff (f,x0) = Ldiff (f,x0) ) by A3, A4, FDIFF_2:12; ::_thesis: verum end; theorem :: FDIFF_3:22 for f being PartFunc of REAL,REAL for x0 being Real st f is_differentiable_in x0 holds ( f is_right_differentiable_in x0 & f is_left_differentiable_in x0 & diff (f,x0) = Rdiff (f,x0) & diff (f,x0) = Ldiff (f,x0) ) proof let f be PartFunc of REAL,REAL; ::_thesis: for x0 being Real st f is_differentiable_in x0 holds ( f is_right_differentiable_in x0 & f is_left_differentiable_in x0 & diff (f,x0) = Rdiff (f,x0) & diff (f,x0) = Ldiff (f,x0) ) let x0 be Real; ::_thesis: ( f is_differentiable_in x0 implies ( f is_right_differentiable_in x0 & f is_left_differentiable_in x0 & diff (f,x0) = Rdiff (f,x0) & diff (f,x0) = Ldiff (f,x0) ) ) assume A1: f is_differentiable_in x0 ; ::_thesis: ( f is_right_differentiable_in x0 & f is_left_differentiable_in x0 & diff (f,x0) = Rdiff (f,x0) & diff (f,x0) = Ldiff (f,x0) ) then consider N being Neighbourhood of x0 such that A2: N c= dom f by FDIFF_2:11; consider g1 being real number such that A3: g1 > 0 and A4: N = ].(x0 - g1),(x0 + g1).[ by RCOMP_1:def_6; A5: g1 > g1 / 2 by A3, XREAL_1:216; A6: ex r being Real st ( r > 0 & [.x0,(x0 + r).] c= dom f ) proof take r = g1 / 2; ::_thesis: ( r > 0 & [.x0,(x0 + r).] c= dom f ) thus r > 0 by A3, XREAL_1:215; ::_thesis: [.x0,(x0 + r).] c= dom f abs ((x0 + (g1 / 2)) - x0) = g1 / 2 by A3, ABSVALUE:def_1; then A7: x0 + r in ].(x0 - g1),(x0 + g1).[ by A5, RCOMP_1:1; x0 in ].(x0 - g1),(x0 + g1).[ by A4, RCOMP_1:16; then [.x0,(x0 + r).] c= ].(x0 - g1),(x0 + g1).[ by A7, XXREAL_2:def_12; hence [.x0,(x0 + r).] c= dom f by A2, A4, XBOOLE_1:1; ::_thesis: verum end; A8: ex r being Real st ( 0 < r & [.(x0 - r),x0.] c= dom f ) proof take r = g1 / 2; ::_thesis: ( 0 < r & [.(x0 - r),x0.] c= dom f ) thus r > 0 by A3, XREAL_1:215; ::_thesis: [.(x0 - r),x0.] c= dom f abs ((x0 - (g1 / 2)) - x0) = abs ((- (g1 / 2)) + 0) .= abs (g1 / 2) by COMPLEX1:52 .= g1 / 2 by A3, ABSVALUE:def_1 ; then A9: x0 - r in ].(x0 - g1),(x0 + g1).[ by A5, RCOMP_1:1; x0 in ].(x0 - g1),(x0 + g1).[ by A4, RCOMP_1:16; then [.(x0 - r),x0.] c= ].(x0 - g1),(x0 + g1).[ by A9, XXREAL_2:def_12; hence [.(x0 - r),x0.] c= dom f by A2, A4, XBOOLE_1:1; ::_thesis: verum end; diff (f,x0) = diff (f,x0) ; then ( ( for h being non-zero 0 -convergent Real_Sequence for c being constant Real_Sequence st rng c = {x0} & rng (h + c) c= dom f & ( for n being Element of NAT holds h . n > 0 ) holds ( (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent & lim ((h ") (#) ((f /* (h + c)) - (f /* c))) = diff (f,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 f & ( for n being Element of NAT holds h . n < 0 ) holds ( (h ") (#) ((f /* (h + c)) - (f /* c)) is convergent & lim ((h ") (#) ((f /* (h + c)) - (f /* c))) = diff (f,x0) ) ) ) by A1, FDIFF_2:12; hence ( f is_right_differentiable_in x0 & f is_left_differentiable_in x0 & diff (f,x0) = Rdiff (f,x0) & diff (f,x0) = Ldiff (f,x0) ) by A6, A8, Th9, Th15; ::_thesis: verum end;