:: The de l'Hospital Theorem :: by Ma{\l}gorzata Korolkiewicz :: :: Received February 20, 1992 :: Copyright (c) 1992-2012 Association of Mizar Users :: (Stowarzyszenie Uzytkownikow Mizara, Bialystok, Poland). :: This code can be distributed under the GNU General Public Licence :: version 3.0 or later, or the Creative Commons Attribution-ShareAlike :: License version 3.0 or later, subject to the binding interpretation :: detailed in file COPYING.interpretation. :: See COPYING.GPL and COPYING.CC-BY-SA for the full text of these :: licenses, or see http://www.gnu.org/licenses/gpl.html and :: http://creativecommons.org/licenses/by-sa/3.0/. environ vocabularies PARTFUN1, NUMBERS, REAL_1, SEQ_1, SUBSET_1, FCONT_1, ARYTM_3, RELAT_1, LIMFUNC3, SEQ_2, ORDINAL2, TARSKI, XBOOLE_0, FUNCT_2, FUNCT_1, LIMFUNC2, LIMFUNC1, RCOMP_1, XREAL_0, ORDINAL1, CARD_1, XXREAL_1, ARYTM_1, FDIFF_1, VALUED_1, FUNCOP_1, XXREAL_0, NAT_1; notations TARSKI, XBOOLE_0, SUBSET_1, ORDINAL1, NUMBERS, XREAL_0, REAL_1, NAT_1, FUNCT_2, FUNCOP_1, VALUED_0, VALUED_1, SEQ_1, COMSEQ_2, SEQ_2, RELSET_1, PARTFUN1, RFUNCT_1, RCOMP_1, FCONT_1, FDIFF_1, LIMFUNC1, LIMFUNC2, LIMFUNC3, XXREAL_0; constructors PARTFUN1, FUNCOP_1, REAL_1, NAT_1, SEQ_2, SEQM_3, PROB_1, RCOMP_1, RFUNCT_1, RFUNCT_2, FCONT_1, LIMFUNC1, FDIFF_1, LIMFUNC2, LIMFUNC3, VALUED_1, SEQ_1, XXREAL_2, RELSET_1, SEQ_4, COMSEQ_2; registrations ORDINAL1, RELSET_1, NUMBERS, XREAL_0, MEMBERED, RCOMP_1, VALUED_0, XXREAL_2, FUNCOP_1, XBOOLE_0, SEQ_4, FUNCT_2, COMSEQ_2; requirements SUBSET, BOOLE, ARITHM; definitions TARSKI, PROB_1, LIMFUNC1; theorems TARSKI, NAT_1, RFUNCT_1, RCOMP_1, FCONT_1, FDIFF_1, ROLLE, SEQ_2, SEQ_4, LIMFUNC2, LIMFUNC1, LIMFUNC3, ZFMISC_1, FUNCT_1, XREAL_0, XBOOLE_0, XBOOLE_1, XCMPLX_0, XCMPLX_1, FUNCOP_1, XREAL_1, XXREAL_0, VALUED_1, XXREAL_1, XXREAL_2, FUNCT_2, VALUED_0; schemes FUNCT_2; begin reserve f,g for PartFunc of REAL,REAL, r,r1,r2,g1,g2,g3,g4,g5,g6,x,x0,t,c for Real, a,b,s for Real_Sequence, n,k for Element of NAT; theorem f is_continuous_in x0 & (for r1,r2 st r1 x0 as Real_Sequence; let a; assume that A57: a is convergent and A58: lim a = x0 and A59: rng a c= dom (f/g) /\ left_open_halfline(x0); consider k such that A60: for n st k<=n holds x0-r x0 as Real_Sequence; let a; assume that A124: a is convergent and A125: lim a = x0 and A126: rng a c= dom (f/g) /\ right_open_halfline(x0); consider k such that A127: for n st k<=n holds x0-r x0 as Real_Sequence; let a; assume that A57: a is convergent and A58: lim a = x0 and A59: rng a c= dom (f/g) /\ left_open_halfline(x0); consider k such that A60: for n st k<=n holds x0-r x0 as Real_Sequence; let a; assume that A126: a is convergent and A127: lim a = x0 and A128: rng a c= dom (f/g) /\ right_open_halfline(x0); consider k such that A129: for n st k<=n holds x0-r0 & [.x0,x0+r.] c= dom f & [.x0,x0+r .] c= dom g & f is_differentiable_on ].x0,x0+r.[ & g is_differentiable_on ].x0, x0+r.[ & ].x0,x0+r.[ c= dom (f/g) & [.x0,x0+r.] c= dom ((f`|(].x0,x0+r.[))/(g`| (].x0,x0+r.[))) & f.x0 = 0 & g.x0 = 0 & f is_continuous_in x0 & g is_continuous_in x0 & (f`|(].x0,x0+r.[))/(g`|(].x0,x0+r.[)) is_right_convergent_in x0) implies f/g is_right_convergent_in x0 & ex r st r>0 & lim_right(f/g,x0) = lim_right(((f`|(].x0,x0+r.[))/(g`|(].x0,x0+r.[))),x0) proof assume A1: x0 in dom f /\ dom g; given r such that A2: r>0 and A3: [.x0,x0+r.] c= dom f and A4: [.x0,x0+r.] c= dom g and A5: f is_differentiable_on ].x0,x0+r.[ and A6: g is_differentiable_on ].x0,x0+r.[ and A7: ].x0,x0+r.[ c= dom (f/g) and A8: [.x0,x0+r.] c= dom ((f`|(].x0,x0+r.[))/(g`|(].x0,x0+r.[))) and A9: f.x0 = 0 & g.x0 = 0 and A10: f is_continuous_in x0 and A11: g is_continuous_in x0 and A12: (f`|(].x0,x0+r.[))/(g`|(].x0,x0+r.[)) is_right_convergent_in x0; A13: ].x0,x0+r.[ c= [.x0,x0+r.] by XXREAL_1:25; then A14: ].x0,x0+r.[ c= dom g by A4,XBOOLE_1:1; A15: ].x0,x0+r.[ c= dom f by A3,A13,XBOOLE_1:1; A16: for x st x0g4 by A77,TARSKI:def 1; then A80: x0 x0 as Real_Sequence; let a; assume that A89: a is convergent and A90: lim a = x0 and A91: rng a c= dom (f/g) /\ right_open_halfline(x0); consider k such that A92: for n st k<=n holds x0-r0 by A2; thus thesis by A112,A88,Th2; end; theorem x0 in dom f /\ dom g & (ex r st r>0 & [.x0-r,x0.] c= dom f & [.x0-r,x0 .] c= dom g & f is_differentiable_on ].x0-r,x0.[ & g is_differentiable_on ].x0- r,x0.[ & ].x0-r,x0.[ c= dom (f/g) & [.x0-r,x0.] c= dom ((f`|(].x0-r,x0.[))/(g`| (].x0-r,x0.[))) & f.x0 = 0 & g.x0 = 0 & f is_continuous_in x0 & g is_continuous_in x0 & (f`|(].x0-r,x0.[))/(g`|(].x0-r,x0.[)) is_left_convergent_in x0) implies f/g is_left_convergent_in x0 & ex r st r>0 & lim_left(f/g,x0) = lim_left(((f`|(].x0-r,x0.[))/(g`|(].x0-r,x0.[))),x0) proof assume A1: x0 in dom f /\ dom g; given r such that A2: r>0 and A3: [.x0-r,x0.] c= dom f and A4: [.x0-r,x0.] c= dom g and A5: f is_differentiable_on ].x0-r,x0.[ and A6: g is_differentiable_on ].x0-r,x0.[ and A7: ].x0-r,x0.[ c= dom (f/g) and A8: [.x0-r,x0.] c= dom ((f`|(].x0-r,x0.[))/(g`|(].x0-r,x0.[))) and A9: f.x0 = 0 & g.x0 = 0 and A10: f is_continuous_in x0 and A11: g is_continuous_in x0 and A12: (f`|(].x0-r,x0.[))/(g`|(].x0-r,x0.[)) is_left_convergent_in x0; A13: ].x0-r,x0.[ c= [.x0-r,x0.] by XXREAL_1:25; then A14: ].x0-r,x0.[ c= dom g by A4,XBOOLE_1:1; A15: ].x0-r,x0.[ c= dom f by A3,A13,XBOOLE_1:1; A16: for x st x0-rg4 by A75,TARSKI:def 1; then A78: g4 x0 as Real_Sequence; let a; assume that A87: a is convergent and A88: lim a = x0 and A89: rng a c= dom (f/g) /\ left_open_halfline(x0); consider k such that A90: for n st k<=n holds x0-r0 by A2; thus thesis by A110,A86,Th3; end; theorem (ex N being Neighbourhood of x0 st N c= dom f & N c= dom g & f is_differentiable_on N & g is_differentiable_on N & N \ {x0} c= dom (f/g) & N c= dom ((f`|N)/(g`|N)) & f.x0 = 0 & g.x0 = 0 & (f`|N)/(g`|N) is_convergent_in x0) implies f/g is_convergent_in x0 & ex N being Neighbourhood of x0 st lim(f/g ,x0) = lim(((f`|N)/(g`|N)),x0) proof given N being Neighbourhood of x0 such that A1: N c= dom f and A2: N c= dom g and A3: f is_differentiable_on N and A4: g is_differentiable_on N and A5: N \ {x0} c= dom (f/g) and A6: N c= dom ((f`|N)/(g`|N)) and A7: f.x0 = 0 & g.x0 = 0 and A8: (f`|N)/(g`|N) is_convergent_in x0; consider r be real number such that A9: 0 x0 as Real_Sequence; let a; assume that A57: a is convergent and A58: lim a = x0 and A59: rng a c= dom (f/g) /\ right_open_halfline(x0); consider k such that A60: for n st k<=n holds x0-r x0 as Real_Sequence; let a; assume that A129: a is convergent and A130: lim a = x0 and A131: rng a c= dom (f/g) /\ left_open_halfline(x0); consider k such that A132: for n st k<=n holds x0-r x0 as Real_Sequence; let a; assume that A57: a is convergent and A58: lim a = x0 and A59: rng a c= dom (f/g) /\ left_open_halfline(x0); consider k such that A60: for n st k<=n holds x0-r x0 as Real_Sequence; let a; assume that A130: a is convergent and A131: lim a = x0 and A132: rng a c= dom (f/g) /\ right_open_halfline(x0); consider k such that A133: for n st k<=n holds x0-r