The Mizar article:

The de l'Hospital Theorem

by
Malgorzata Korolkiewicz

Received February 20, 1992

Copyright (c) 1992 Association of Mizar Users

MML identifier: L_HOSPIT
[ MML identifier index ]


environ

 vocabulary PARTFUN1, SEQ_1, FCONT_1, RELAT_1, LIMFUNC3, SEQ_2, ORDINAL2,
      BOOLE, FUNCT_1, LIMFUNC2, LIMFUNC1, RCOMP_1, ARYTM_1, FDIFF_1, ARYTM_3,
      SEQM_3, ARYTM;
 notation TARSKI, XBOOLE_0, ORDINAL1, NUMBERS, XCMPLX_0, XREAL_0, REAL_1,
      NAT_1, SEQ_1, SEQ_2, SEQM_3, RELSET_1, PARTFUN1, RFUNCT_1, RCOMP_1,
      RFUNCT_2, FCONT_1, FDIFF_1, LIMFUNC1, LIMFUNC2, LIMFUNC3;
 constructors REAL_1, NAT_1, SEQ_2, SEQM_3, PROB_1, RFUNCT_1, RCOMP_1,
      RFUNCT_2, FCONT_1, FDIFF_1, LIMFUNC1, LIMFUNC2, LIMFUNC3, PARTFUN1,
      MEMBERED, XBOOLE_0;
 clusters FCONT_3, RELSET_1, XREAL_0, ARYTM_3, MEMBERED, ZFMISC_1, XBOOLE_0;
 requirements NUMERALS, SUBSET, BOOLE, ARITHM;
 definitions TARSKI;
 theorems TARSKI, REAL_1, NAT_1, RFUNCT_1, RCOMP_1, FCONT_1, FDIFF_1, SQUARE_1,
      REAL_2, ROLLE, SEQ_2, SEQ_4, LIMFUNC2, LIMFUNC1, RFUNCT_2, SEQM_3,
      LIMFUNC3, PROB_1, ZFMISC_1, FUNCT_1, AXIOMS, SEQ_1, XREAL_0, XBOOLE_0,
      XBOOLE_1, XCMPLX_0, XCMPLX_1;
 schemes SEQ_1, RCOMP_1;

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 Nat;

theorem
  f is_continuous_in x0 &
(for r1,r2 st r1<x0 & x0<r2
  ex g1,g2 st r1<g1 & g1<x0 & g1 in dom f &
  g2<r2 & x0<g2 & g2 in dom f) implies
f is_convergent_in x0
 proof
  assume A1: f is_continuous_in x0 &
   for r1,r2 st r1<x0 & x0<r2 ex g1,g2 st r1<g1 &
   g1<x0 & g1 in dom f & g2<r2 &
   x0<g2 & g2 in dom f;
    now
   let s such that A2: s is convergent & lim s=x0 & rng s c= dom f \ {x0};
       dom f \ {x0} c= dom f by XBOOLE_1:36;
     then rng s c= dom f by A2,XBOOLE_1:1;
     hence f*s is convergent & lim (f*s) = f.x0 by A1,A2,FCONT_1:def 1;
  end;
  hence thesis by A1,LIMFUNC3:def 1;
 end;

theorem Th2:
f is_right_convergent_in x0 & lim_right(f,x0) = t iff
(for r st x0<r ex t st t<r & x0<t & t in dom f) &
for a st a is convergent & lim a = x0 &
rng a c= dom f /\ right_open_halfline(x0) holds
f*a is convergent & lim(f*a) = t
 proof
  thus f is_right_convergent_in x0 & lim_right(f,x0) = t implies
   (for r st x0<r ex t st t<r & x0<t & t in dom f) &
   for a st a is convergent & lim a = x0 &
   rng a c= dom f /\ right_open_halfline(x0) holds
   f*a is convergent & lim(f*a) = t by LIMFUNC2:def 4,def 8;
  thus (for r st x0<r ex t st t<r & x0<t & t in dom f) &
   (for a st a is convergent & lim a = x0 &
   rng a c= dom f /\ right_open_halfline(x0) holds
   f*a is convergent & lim(f*a) = t) implies
   f is_right_convergent_in x0 & lim_right(f,x0) = t
   proof
    assume A1: (for r st x0<r ex t st t<r & x0<t & t in dom f) &
     for a st a is convergent & lim a = x0 &
      rng a c= dom f /\ right_open_halfline(x0) holds
      f*a is convergent & lim(f*a) = t;
    hence f is_right_convergent_in x0 by LIMFUNC2:def 4;
    hence thesis by A1,LIMFUNC2:def 8;
   end;
 end;

theorem Th3:
f is_left_convergent_in x0 & lim_left(f,x0) = t iff
(for r st r<x0 ex t st r<t & t<x0 & t in dom f) &
for a st a is convergent & lim a = x0 &
rng a c= dom f /\ left_open_halfline(x0) holds
f*a is convergent & lim(f*a) = t
 proof
  thus f is_left_convergent_in x0 & lim_left(f,x0) = t implies
   (for r st r<x0 ex t st r<t & t<x0 & t in dom f) &
   for a st a is convergent & lim a = x0 &
   rng a c= dom f /\ left_open_halfline(x0) holds
   f*a is convergent & lim(f*a) = t by LIMFUNC2:def 1,def 7;
  thus (for r st r<x0 ex t st r<t & t<x0 & t in dom f) &
   (for a st a is convergent & lim a = x0 &
   rng a c= dom f /\ left_open_halfline(x0) holds
   f*a is convergent & lim(f*a) = t) implies
   f is_left_convergent_in x0 & lim_left(f,x0) = t
   proof
    assume A1: (for r st r<x0 ex t st r<t & t<x0 & t in dom f) &
     for a st a is convergent & lim a = x0 &
      rng a c= dom f /\ left_open_halfline(x0) holds
      f*a is convergent & lim(f*a) = t;
    hence f is_left_convergent_in x0 by LIMFUNC2:def 1;
    hence thesis by A1,LIMFUNC2:def 7;
   end;
 end;

theorem Th4:
(ex N being Neighbourhood of x0 st N\{x0} c=dom f) implies
(for r1,r2 st r1<x0 & x0<r2
  ex g1,g2 st r1<g1 & g1<x0 & g1 in dom f & g2<r2 & x0<g2 & g2 in dom f)
 proof
  given N being Neighbourhood of x0 such that
  A1: N\{x0} c= dom f;
  consider r be real number such that
  A2: 0<r & N=].x0-r,x0+r.[ by RCOMP_1:def 7;
A3: r is Real by XREAL_0:def 1;
  then N\{x0}=].x0-r,x0.[ \/ ].x0,x0+r.[ by A2,LIMFUNC3:4;
  hence thesis by A1,A2,A3,LIMFUNC3:5;
 end;

theorem
  (ex N being Neighbourhood of x0 st 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_divergent_to+infty_in x0)
implies f/g is_divergent_to+infty_in x0
 proof
  given N being Neighbourhood of x0 such that
  A1: 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_divergent_to+infty_in x0;
  consider r be real number such that
  A2: 0<r & N = ].x0-r,x0+r.[ by RCOMP_1:def 7;
A3: r is Real by XREAL_0:def 1;
  A4: for x st x0<x & x<x0+r ex c st c in ].x0,x.[ & (f/g).x=((f`|N)/(g`|N)).c
   proof
    let x such that
    A5: x0<x & x<x0+r;
    A6: f is_continuous_on N by A1,FDIFF_1:33;
    A7: g is_continuous_on N by A1,FDIFF_1:33;
    A8: x0-r<x0 by A2,SQUARE_1:29;
      x0+0<x0+r by A2,REAL_1:67;
    then x0 in {g1: x0-r<g1 & g1<x0+r} by A8;
    then A9: x0 in ].x0-r,x0+r.[ by RCOMP_1:def 2;
      x0-r<x by A5,A8,AXIOMS:22;
    then x in {g1: x0-r<g1 & g1<x0+r} by A5;
    then x in ].x0-r,x0+r.[ by RCOMP_1:def 2;
    then A10: [.x0,x.] c= N by A2,A9,RCOMP_1:17;
    then f is_continuous_on [.x0,x.] by A6,FCONT_1:17;
    then A11: (g.x)(#)f is_continuous_on [.x0,x.] by FCONT_1:21;
      g is_continuous_on [.x0,x.] by A7,A10,FCONT_1:17;
    then (f.x)(#)g is_continuous_on [.x0,x.] by FCONT_1:21;
    then A12: (f.x)(#)g - (g.x)(#)f is_continuous_on [.x0,x.] by A11,FCONT_1:19
;
    A13: dom ((g.x)(#)f) = dom f by SEQ_1:def 6;
    A14: dom ((f.x)(#)g) = dom g by SEQ_1:def 6;
    A15: N c= dom ((g.x)(#)f) by A6,A13,FCONT_1:14;
    A16: N c= dom ((f.x)(#)g) by A7,A14,FCONT_1:14;
    A17: ].x0,x.[ c= [.x0,x.] by RCOMP_1:15;
    then A18: ].x0,x.[ c= N by A10,XBOOLE_1:1;
    then A19: f is_differentiable_on ].x0,x.[ by A1,FDIFF_1:34;
    A20: ].x0,x.[ c= dom ((g.x)(#)f) by A15,A18,XBOOLE_1:1;
    then A21: (g.x)(#)f is_differentiable_on ].x0,x.[ by A19,FDIFF_1:28;
    A22: ].x0,x.[ c= dom ((f.x)(#)g) by A16,A18,XBOOLE_1:1;
    then ].x0,x.[ c= dom ((f.x)(#)g) /\ dom ((g.x)(#)f) by A20,XBOOLE_1:19
;
    then A23: ].x0,x.[ c= dom ((f.x)(#)g - (g.x)(#)f) by SEQ_1:def 4;
    A24: g is_differentiable_on ].x0,x.[ by A1,A18,FDIFF_1:34;
    then A25: (f.x)(#)g is_differentiable_on ].x0,x.[ by A22,FDIFF_1:28;
    then A26: (f.x)(#)g-(g.x)(#)
f is_differentiable_on ].x0,x.[ by A21,A23,FDIFF_1:27;
    set f1 = (f.x)(#)g - (g.x)(#)f;
    A27: [.x0,x.] c= dom f1 by A12,FCONT_1:def 2;
    A28: x0 in [.x0,x.] & x in [.x0,x.] by A5,RCOMP_1:15;
    then x0 in dom f1 & x in dom f1 by A27;
    then x0 in dom ((f.x)(#)g) /\ dom ((g.x)(#)f) & x in dom ((f.x)(#)g) /\
 dom ((g.x)
(#)f)
     by SEQ_1:def 4;
    then A29: x0 in dom ((f.x)(#)g) & x0 in dom ((g.x)(#)f) & x in dom ((f.x)
(#)g) &
    x in dom ((g.x)(#)f) by XBOOLE_0:def 3;
    A30: f1.x0 = ((f.x)(#)g).x0 - ((g.x)(#)f).x0 by A27,A28,SEQ_1:def 4
         .= (f.x)*(g.x0) - ((g.x)(#)f).x0 by A29,SEQ_1:def 6
         .= 0 - (g.x)*0 by A1,A29,SEQ_1:def 6
         .= 0;
      f1.x = ((f.x)(#)g).x - ((g.x)(#)f).x by A27,A28,SEQ_1:def 4
         .= (f.x)*(g.x) - ((g.x)(#)f).x by A29,SEQ_1:def 6
         .= (g.x)*(f.x) - (g.x)*(f.x) by A29,SEQ_1:def 6
         .= 0 by XCMPLX_1:14;
    then consider t such that
    A31: t in ].x0,x.[ & diff(f1,t)=0 by A5,A12,A26,A30,ROLLE:1;
    take t;
    A32: (f.x)(#)g is_differentiable_in t by A25,A31,FDIFF_1:16;
      (g.x)(#)f is_differentiable_in t by A21,A31,FDIFF_1:16;
    then A33: 0=diff((f.x)(#)g,t) - diff((g.x)(#)f,t) by A31,A32,FDIFF_1:22;
    A34: g is_differentiable_in t by A24,A31,FDIFF_1:16;
      f is_differentiable_in t by A19,A31,FDIFF_1:16;
    then 0=diff((f.x)(#)g,t) - (g.x)*diff(f,t) by A33,FDIFF_1:23;
    then 0=(f.x)*diff(g,t) - (g.x)*diff(f,t) by A34,FDIFF_1:23;
    then A35: (f.x)*diff(g,t)=(g.x)*diff(f,t) by XCMPLX_1:15;
      [.x0,x.]\{x0} c= N\{x0} by A10,XBOOLE_1:33;
    then A36: [.x0,x.]\{x0} c= dom(f/g) by A1,XBOOLE_1:1;
    then A37: [.x0,x.]\{x0} c= dom f /\ (dom g\g"{0}) by RFUNCT_1:def 4;
      dom f /\ (dom g\g"{0}) c= dom g\g"{0} by XBOOLE_1:17;
    then A38: [.x0,x.]\{x0} c= dom g\g"{0} by A37,XBOOLE_1:1;
      not x in {x0} by A5,TARSKI:def 1;
    then A39: x in [.x0,x.]\{x0} by A28,XBOOLE_0:def 4;
    then A40: x in dom g & not x in g"{0} by A38,XBOOLE_0:def 4;
    A41: now assume g.x=0;
         then g.x in {0} by TARSKI:def 1;
         hence contradiction by A40,FUNCT_1:def 13;
        end;
    A42: [.x0,x.] c= dom ((f`|N)/(g`|N)) by A1,A10,XBOOLE_1:1;
    then A43: [.x0,x.] c= dom (f`|N) /\ (dom (g`|N)\(g`|N)"{0}) by RFUNCT_1:def
4;
      dom (f`|N) /\ (dom (g`|N) \ (g`|N)"{0}) c= dom (g`|N)\(g`|N)"{0}
     by XBOOLE_1:17;
    then A44: [.x0,x.] c= dom (g`|N)\(g`|N)"{0} by A43,XBOOLE_1:1;
    A45: t in [.x0,x.] by A17,A31;
    then A46: t in dom (g`|N) & not t in (g`|N)"{0} by A44,XBOOLE_0:def 4;
       now assume diff(g,t)=0;
         then (g`|N).t=0 by A1,A10,A45,FDIFF_1:def 8;
         then (g`|N).t in {0} by TARSKI:def 1;
         hence contradiction by A46,FUNCT_1:def 13;
        end;
    then (f.x)/(g.x) = diff(f,t)/diff(g,t) by A35,A41,XCMPLX_1:95;
    then (f.x)*(g.x)" = diff(f,t)/diff(g,t) by XCMPLX_0:def 9;
    then (f.x)*(g.x)" = diff(f,t)*diff(g,t)" by XCMPLX_0:def 9;
    then (f/g).x = diff(f,t)*diff(g,t)" by A36,A39,RFUNCT_1:def 4;
    then (f/g).x = ((f`|N).t)*diff(g,t)" by A1,A10,A45,FDIFF_1:def 8;
    then (f/g).x = ((f`|N).t)*((g`|N).t)" by A1,A10,A45,FDIFF_1:def 8;
    hence thesis by A31,A42,A45,RFUNCT_1:def 4;
   end;
    for r1,r2 st r1<x0 & x0<r2
  ex g1,g2 st r1<g1 & g1<x0 & g1 in dom (f/g) & g2<r2 &
   x0<g2 & g2 in dom (f/g) by A1,Th4;
  then A47: (for r1 st x0<r1 ex t st t<r1 & x0<t & t in dom (f/g)) &
      for r1 st r1<x0 ex t st r1<t & t<x0 & t in dom (f/g) by LIMFUNC3:8;
    for a st a is convergent & lim a = x0 &
  rng a c= dom (f/g) /\ right_open_halfline(x0) holds
  (f/g)*a is divergent_to+infty
   proof
    let a;
    assume A48: a is convergent & lim a = x0 &
               rng a c= dom (f/g) /\ right_open_halfline(x0);
    then consider k such that
    A49: for n st k<=n holds x0-r<a.n & a.n<x0+r by A2,A3,LIMFUNC3:7;
    set a1 = a^\k;
     A50: now let n;
          A51: a1.n = a.(n+k) by SEQM_3:def 9;
            a.(n+k) in rng a by RFUNCT_2:10;
          then a.(n+k) in right_open_halfline(x0) by A48,XBOOLE_0:def 3;
          then a.(n+k) in {g1:x0<g1} by LIMFUNC1:def 3;
          then ex g1 st a.(n+k)=g1 & x0<g1;
          hence x0<a1.n by SEQM_3:def 9;
            k<=n+k by NAT_1:37;
          hence a1.n<x0+r by A49,A51;
         end;
     defpred X[Nat,real number] means
        $2 in ].x0,a1.$1.[ & (((f/g)*a)^\k).$1=((f`|N)/(g`|N)).$2;
    A52: for n ex c be real number st X[n,c]
         proof
          let n;
            x0<a1.n & a1.n<x0+r by A50;
          then consider c such that
          A53: c in ].x0,a1.n.[ & (f/g).(a1.n)=((f`|N)/(g`|N)).c by A4;
          take c;
            dom (f/g) /\ right_open_halfline(x0) c= dom (f/g) by XBOOLE_1:17
;
          then A54: rng a c= dom (f/g) by A48,XBOOLE_1:1;
            rng a1 c= rng a by RFUNCT_2:7;
          then rng a1 c= dom (f/g) by A54,XBOOLE_1:1;
          then ((f/g)*(a^\k)).n=((f`|N)/(g`|N)).c by A53,RFUNCT_2:21;
          hence thesis by A53,A54,RFUNCT_2:22;
         end;
    consider b such that
    A55: for n holds X[n,b.n] from RealSeqChoice(A52);
    deffunc U(set) = x0;
    consider d being Real_Sequence such that
    A56: for n holds d.n=U(n) from ExRealSeq;
       now
      let n;
        d.n=x0 & d.(n+1)=x0 by A56;
      hence d.n=d.(n+1);
     end;
    then A57: d is constant by SEQM_3:16;
    then A58: d is convergent by SEQ_4:39;
    A59: lim d=d.0 by A57,SEQ_4:41
            .=x0 by A56;
    A60: a1 is convergent & lim a1=x0 by A48,SEQ_4:33;
     A61: now
          let n;
            b.n in ].x0,a1.n.[ by A55;
          then b.n in {g1:x0<g1 & g1<a1.n} by RCOMP_1:def 2;
          then ex g1 st g1=b.n & x0<g1 & g1<a1.n; hence d.n<=b.n & b.n<=a1.n
by A56;
         end;
    then A62: b is convergent by A58,A59,A60,SEQ_2:33;
    A63: lim b=x0 by A58,A59,A60,A61,SEQ_2:34;
    A64: x0-r<x0 by A2,SQUARE_1:29;
      x0<x0+r by A2,REAL_2:174;
    then x0 in {g2: x0-r<g2 & g2<x0+r} by A64;
    then A65: x0 in ].x0-r,x0+r.[ by RCOMP_1:def 2;
    A66: rng b c= dom ((f`|N)/(g`|N)) \{x0}
     proof
      let x be set;
      assume x in rng b;
      then consider n such that A67: x=b.n by RFUNCT_2:9;
      A68: x0<a1.n & a1.n<x0+r by A50;
      A69: x in ].x0,a1.n.[ by A55,A67;
      then x in {g1:x0<g1 & g1<a1.n} by RCOMP_1:def 2; then A70: ex g1 st
 g1 = x & x0<g1 & g1<a1.n;
      A71: ].x0,a1.n.[ c= [.x0,a1.n.] by RCOMP_1:15;
        x0-r<a1.n by A64,A68,AXIOMS:22;
      then a1.n in {g3: x0-r<g3 & g3<x0+r} by A68;
      then a1.n in ].x0-r,x0+r.[ by RCOMP_1:def 2;
      then [.x0,a1.n.] c= ].x0-r,x0+r.[ by A65,RCOMP_1:17;
      then ].x0,a1.n.[ c= ].x0-r,x0+r.[ by A71,XBOOLE_1:1;
      then A72: ].x0,a1.n.[ c= dom ((f`|N)/(g`|N)) by A1,A2,XBOOLE_1:1;
        not x in {x0} by A70,TARSKI:def 1;
      hence x in dom ((f`|N)/(g`|N))\{x0} by A69,A72,XBOOLE_0:def 4;
     end;
      dom ((f`|N)/(g`|N)) \{x0} c= dom ((f`|N)/(g`|N)) by XBOOLE_1:36;
    then A73: rng b c= dom ((f`|N)/(g`|N)) by A66,XBOOLE_1:1;
    A74: ((f`|N)/(g`|N))*b is divergent_to+infty by A1,A62,A63,A66,LIMFUNC3:def
2;
       now
      let n;
        (((f/g)*a)^\k).n=((f`|N)/(g`|N)).(b.n) by A55;
      hence (((f`|N)/(g`|N))*b).n <= (((f/g)*a)^\k).n by A73,RFUNCT_2:21;
     end;
     then ((f/g)*a)^\k is divergent_to+infty by A74,LIMFUNC1:69;
    hence thesis by LIMFUNC1:34;
   end;
  then A75: f/g is_right_divergent_to+infty_in x0 by A47,LIMFUNC2:def 5;
  A76: for x st x0-r<x & x<x0 ex c st c in ].x,x0.[ & (f/g).x=((f`|N)/(g`|N)).c
   proof
    let x such that
    A77: x0-r<x & x<x0;
    A78: f is_continuous_on N by A1,FDIFF_1:33;
    A79: g is_continuous_on N by A1,FDIFF_1:33;
    A80: x0-r<x0 by A2,SQUARE_1:29;
    A81: x0+0<x0+r by A2,REAL_1:67;
    then x0 in {g1: x0-r<g1 & g1<x0+r} by A80;
    then A82: x0 in ].x0-r,x0+r.[ by RCOMP_1:def 2;
      x<x0+r by A77,A81,AXIOMS:22;
    then x in {g1: x0-r<g1 & g1<x0+r} by A77;
    then x in ].x0-r,x0+r.[ by RCOMP_1:def 2;
    then A83: [.x,x0.] c= N by A2,A82,RCOMP_1:17;
    then f is_continuous_on [.x,x0.] by A78,FCONT_1:17;
    then A84: (g.x)(#)f is_continuous_on [.x,x0.] by FCONT_1:21;
      g is_continuous_on [.x,x0.] by A79,A83,FCONT_1:17;
    then (f.x)(#)g is_continuous_on [.x,x0.] by FCONT_1:21;
    then A85: (f.x)(#)g - (g.x)(#)f is_continuous_on [.x,x0.] by A84,FCONT_1:19
;
    A86: dom ((g.x)(#)f) = dom f by SEQ_1:def 6;
    A87: dom ((f.x)(#)g) = dom g by SEQ_1:def 6;
    A88: N c= dom ((g.x)(#)f) by A78,A86,FCONT_1:14;
    A89: N c= dom ((f.x)(#)g) by A79,A87,FCONT_1:14;
    A90: ].x,x0.[ c= [.x,x0.] by RCOMP_1:15;
    then A91: ].x,x0.[ c= N by A83,XBOOLE_1:1;
    then A92: f is_differentiable_on ].x,x0.[ by A1,FDIFF_1:34;
    A93: ].x,x0.[ c= dom ((g.x)(#)f) by A88,A91,XBOOLE_1:1;
    then A94: (g.x)(#)f is_differentiable_on ].x,x0.[ by A92,FDIFF_1:28;
    A95: ].x,x0.[ c= dom ((f.x)(#)g) by A89,A91,XBOOLE_1:1;
    then ].x,x0.[ c= dom ((f.x)(#)g) /\ dom ((g.x)(#)f) by A93,XBOOLE_1:19
;
    then A96: ].x,x0.[ c= dom ((f.x)(#)g - (g.x)(#)f) by SEQ_1:def 4;
    A97: g is_differentiable_on ].x,x0.[ by A1,A91,FDIFF_1:34;
    then A98: (f.x)(#)g is_differentiable_on ].x,x0.[ by A95,FDIFF_1:28;
    then A99: (f.x)(#)g-(g.x)(#)
f is_differentiable_on ].x,x0.[ by A94,A96,FDIFF_1:27;
    set f1 = (f.x)(#)g - (g.x)(#)f;
    A100: [.x,x0.] c= dom f1 by A85,FCONT_1:def 2;
    A101: x0 in [.x,x0.] & x in [.x,x0.] by A77,RCOMP_1:15;
    then x0 in dom f1 & x in dom f1 by A100;
    then x0 in dom ((f.x)(#)g) /\ dom ((g.x)(#)f) & x in dom ((f.x)(#)g) /\
 dom ((g.x)
(#)f)
     by SEQ_1:def 4;
    then A102: x0 in dom ((f.x)(#)g) & x0 in dom ((g.x)(#)f) & x in dom ((f.x)
(#)
g) &
    x in dom ((g.x)(#)f) by XBOOLE_0:def 3;
    A103: f1.x0 = ((f.x)(#)g).x0 - ((g.x)(#)f).x0 by A100,A101,SEQ_1:def 4
         .= (f.x)*(g.x0) - ((g.x)(#)f).x0 by A102,SEQ_1:def 6
         .= 0 - (g.x)*0 by A1,A102,SEQ_1:def 6
         .= 0;
      f1.x = ((f.x)(#)g).x - ((g.x)(#)f).x by A100,A101,SEQ_1:def 4
         .= (f.x)*(g.x) - ((g.x)(#)f).x by A102,SEQ_1:def 6
         .= (g.x)*(f.x) - (g.x)*(f.x) by A102,SEQ_1:def 6
         .= 0 by XCMPLX_1:14;
    then consider t such that
    A104: t in ].x,x0.[ & diff(f1,t)=0 by A77,A85,A99,A103,ROLLE:1;
    take t;
    A105: (f.x)(#)g is_differentiable_in t by A98,A104,FDIFF_1:16;
      (g.x)(#)f is_differentiable_in t by A94,A104,FDIFF_1:16;
    then A106: 0=diff((f.x)(#)g,t) - diff((g.x)(#)f,t) by A104,A105,FDIFF_1:22;
    A107: g is_differentiable_in t by A97,A104,FDIFF_1:16;
      f is_differentiable_in t by A92,A104,FDIFF_1:16;
    then 0=diff((f.x)(#)g,t) - (g.x)*diff(f,t) by A106,FDIFF_1:23;
    then 0=(f.x)*diff(g,t) - (g.x)*diff(f,t) by A107,FDIFF_1:23;
    then A108: (f.x)*diff(g,t)=(g.x)*diff(f,t) by XCMPLX_1:15;
      [.x,x0.]\{x0} c= N\{x0} by A83,XBOOLE_1:33;
    then A109: [.x,x0.]\{x0} c= dom(f/g) by A1,XBOOLE_1:1;
    then A110: [.x,x0.]\{x0} c= dom f /\ (dom g\g"{0}) by RFUNCT_1:def 4;
      dom f /\ (dom g\g"{0}) c= dom g\g"{0} by XBOOLE_1:17;
    then A111: [.x,x0.]\{x0} c= dom g\g"{0} by A110,XBOOLE_1:1;
      not x in {x0} by A77,TARSKI:def 1;
    then A112: x in [.x,x0.]\{x0} by A101,XBOOLE_0:def 4;
    then A113: x in dom g & not x in g"{0} by A111,XBOOLE_0:def 4;
    A114: now assume g.x=0;
         then g.x in {0} by TARSKI:def 1;
         hence contradiction by A113,FUNCT_1:def 13;
        end;
    A115: [.x,x0.] c= dom ((f`|N)/(g`|N)) by A1,A83,XBOOLE_1:1;
    then A116: [.x,x0.] c= dom (f`|N) /\ (dom (g`|N)\(g`|N)"{0}) by RFUNCT_1:
def 4;
      dom (f`|N) /\ (dom (g`|N) \ (g`|N)"{0}) c= dom (g`|N)\(g`|N)"{0}
     by XBOOLE_1:17;
    then A117: [.x,x0.] c= dom (g`|N)\(g`|N)"{0} by A116,XBOOLE_1:1;
    A118: t in [.x,x0.] by A90,A104;
    then A119: t in dom (g`|N) & not t in (g`|N)"{0} by A117,XBOOLE_0:def 4;
       now assume diff(g,t)=0;
         then (g`|N).t=0 by A1,A83,A118,FDIFF_1:def 8;
         then (g`|N).t in {0} by TARSKI:def 1;
         hence contradiction by A119,FUNCT_1:def 13;
        end;
    then (f.x)/(g.x) = diff(f,t)/diff(g,t) by A108,A114,XCMPLX_1:95;
    then (f.x)*(g.x)" = diff(f,t)/diff(g,t) by XCMPLX_0:def 9;
    then (f.x)*(g.x)" = diff(f,t)*diff(g,t)" by XCMPLX_0:def 9;
    then (f/g).x = diff(f,t)*diff(g,t)" by A109,A112,RFUNCT_1:def 4;
    then (f/g).x = ((f`|N).t)*diff(g,t)" by A1,A83,A118,FDIFF_1:def 8;
    then (f/g).x = ((f`|N).t)*((g`|N).t)" by A1,A83,A118,FDIFF_1:def 8;
    hence thesis by A104,A115,A118,RFUNCT_1:def 4;
   end;
    for a st a is convergent & lim a = x0 &
  rng a c= dom (f/g) /\ left_open_halfline(x0) holds
   (f/g)*a is divergent_to+infty
   proof
    let a;
    assume A120: a is convergent & lim a = x0 &
               rng a c= dom (f/g) /\ left_open_halfline(x0);
    then consider k such that
    A121: for n st k<=n holds x0-r<a.n & a.n<x0+r by A2,A3,LIMFUNC3:7;
    set a1 = a^\k;
     A122: now let n;
          A123: a1.n = a.(n+k) by SEQM_3:def 9;
            a.(n+k) in rng a by RFUNCT_2:10;
          then a.(n+k) in left_open_halfline(x0) by A120,XBOOLE_0:def 3;
          then a.(n+k) in {g1:g1<x0} by PROB_1:def 15;
          then ex g1 st a.(n+k)=g1 & g1<x0;
          hence a1.n<x0 by SEQM_3:def 9;
            k<=n+k by NAT_1:37;
          hence x0-r<a1.n by A121,A123;
         end;
        defpred X[Nat, real number] means
          $2 in ].a1.$1,x0.[ & (((f/g)*a)^\k).$1=((f`|N)/(g`|N)).$2;
    A124: for n ex c be real number st X[n,c]
         proof
          let n;
            x0-r<a1.n & a1.n<x0 by A122;
          then consider c such that
          A125: c in ].a1.n,x0.[ & (f/g).(a1.n)=((f`|N)/(g`|N)).c by A76;
          take c;
            dom (f/g) /\ left_open_halfline(x0) c= dom (f/g) by XBOOLE_1:17;
          then A126: rng a c= dom (f/g) by A120,XBOOLE_1:1;
            rng a1 c= rng a by RFUNCT_2:7;
          then rng a1 c= dom (f/g) by A126,XBOOLE_1:1;
          then ((f/g)*(a^\k)).n=((f`|N)/(g`|N)).c by A125,RFUNCT_2:21;
          hence thesis by A125,A126,RFUNCT_2:22;
         end;
    consider b such that
    A127: for n holds X[n,b.n] from RealSeqChoice(A124);
    deffunc U(set) = x0;
    consider d being Real_Sequence such that
    A128: for n holds d.n=U(n) from ExRealSeq;
       now
      let n;
        d.n=x0 & d.(n+1)=x0 by A128;
      hence d.n=d.(n+1);
     end;
    then A129: d is constant by SEQM_3:16;
    then A130: d is convergent by SEQ_4:39;
    A131: lim d=d.0 by A129,SEQ_4:41
            .=x0 by A128;
    A132: a1 is convergent & lim a1=x0 by A120,SEQ_4:33;
     A133: now
          let n;
            b.n in ].a1.n,x0.[ by A127;
          then b.n in {g1:a1.n<g1 & g1<x0} by RCOMP_1:def 2;
          then ex g1 st g1=b.n & a1.n<g1 & g1<x0; hence a1.n<=b.n & b.n<=
d.n by A128;
         end;
    then A134: b is convergent by A130,A131,A132,SEQ_2:33;
    A135: lim b=x0 by A130,A131,A132,A133,SEQ_2:34;
    A136: x0-r<x0 by A2,SQUARE_1:29;
    A137: x0<x0+r by A2,REAL_2:174;
    then x0 in {g2: x0-r<g2 & g2<x0+r} by A136;
    then A138: x0 in ].x0-r,x0+r.[ by RCOMP_1:def 2;
    A139: rng b c= dom ((f`|N)/(g`|N)) \{x0}
     proof
      let x be set;
      assume x in rng b;
      then consider n such that A140: x=b.n by RFUNCT_2:9;
      A141: x0-r<a1.n & a1.n<x0 by A122;
      A142: x in ].a1.n,x0.[ by A127,A140;
      then x in {g1:a1.n<g1 & g1<x0} by RCOMP_1:def 2; then A143: ex g1 st
 g1 = x & a1.n<g1 & g1<x0;
      A144: ].a1.n,x0.[ c= [.a1.n,x0.] by RCOMP_1:15;
        a1.n<x0+r by A137,A141,AXIOMS:22;
      then a1.n in {g3: x0-r<g3 & g3<x0+r} by A141;
      then a1.n in ].x0-r,x0+r.[ by RCOMP_1:def 2;
      then [.a1.n,x0.] c= ].x0-r,x0+r.[ by A138,RCOMP_1:17;
      then ].a1.n,x0.[ c= ].x0-r,x0+r.[ by A144,XBOOLE_1:1;
      then A145: ].a1.n,x0.[ c= dom ((f`|N)/(g`|N)) by A1,A2,XBOOLE_1:1;
        not x in {x0} by A143,TARSKI:def 1;
      hence x in dom ((f`|N)/(g`|N))\{x0} by A142,A145,XBOOLE_0:def 4;
     end;
      dom ((f`|N)/(g`|N)) \{x0} c= dom ((f`|N)/(g`|N)) by XBOOLE_1:36;
    then A146: rng b c= dom ((f`|N)/(g`|N)) by A139,XBOOLE_1:1;
    A147: ((f`|N)/(g`|N))*b is divergent_to+infty by A1,A134,A135,A139,LIMFUNC3
:def 2;
       now
      let n;
        (((f/g)*a)^\k).n=((f`|N)/(g`|N)).(b.n) by A127;
      hence (((f`|N)/(g`|N))*b).n <= (((f/g)*a)^\k).n by A146,RFUNCT_2:21;
     end;
    then ((f/g)*a)^\k is divergent_to+infty by A147,LIMFUNC1:69;
    hence thesis by LIMFUNC1:34;
   end;
  then f/g is_left_divergent_to+infty_in x0 by A47,LIMFUNC2:def 2;
  hence thesis by A75,LIMFUNC3:15;
 end;

theorem
  (ex N being Neighbourhood of x0 st 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_divergent_to-infty_in x0)
implies f/g is_divergent_to-infty_in x0
 proof
  given N being Neighbourhood of x0 such that
  A1: 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_divergent_to-infty_in x0;
  consider r be real number such that
  A2: 0<r & N = ].x0-r,x0+r.[ by RCOMP_1:def 7;
A3: r is Real by XREAL_0:def 1;
  A4: for x st x0<x & x<x0+r ex c st c in ].x0,x.[ & (f/g).x=((f`|N)/(g`|N)).c
   proof
    let x such that
    A5: x0<x & x<x0+r;
    A6: f is_continuous_on N by A1,FDIFF_1:33;
    A7: g is_continuous_on N by A1,FDIFF_1:33;
    A8: x0-r<x0 by A2,SQUARE_1:29;
      x0+0<x0+r by A2,REAL_1:67;
    then x0 in {g1: x0-r<g1 & g1<x0+r} by A8;
    then A9: x0 in ].x0-r,x0+r.[ by RCOMP_1:def 2;
      x0-r<x by A5,A8,AXIOMS:22;
    then x in {g1: x0-r<g1 & g1<x0+r} by A5;
    then x in ].x0-r,x0+r.[ by RCOMP_1:def 2;
    then A10: [.x0,x.] c= N by A2,A9,RCOMP_1:17;
    then f is_continuous_on [.x0,x.] by A6,FCONT_1:17;
    then A11: (g.x)(#)f is_continuous_on [.x0,x.] by FCONT_1:21;
      g is_continuous_on [.x0,x.] by A7,A10,FCONT_1:17;
    then (f.x)(#)g is_continuous_on [.x0,x.] by FCONT_1:21;
    then A12: (f.x)(#)g - (g.x)(#)f is_continuous_on [.x0,x.] by A11,FCONT_1:19
;
    A13: dom ((g.x)(#)f) = dom f by SEQ_1:def 6;
    A14: dom ((f.x)(#)g) = dom g by SEQ_1:def 6;
    A15: N c= dom ((g.x)(#)f) by A6,A13,FCONT_1:14;
    A16: N c= dom ((f.x)(#)g) by A7,A14,FCONT_1:14;
    A17: ].x0,x.[ c= [.x0,x.] by RCOMP_1:15;
    then A18: ].x0,x.[ c= N by A10,XBOOLE_1:1;
    then A19: f is_differentiable_on ].x0,x.[ by A1,FDIFF_1:34;
    A20: ].x0,x.[ c= dom ((g.x)(#)f) by A15,A18,XBOOLE_1:1;
    then A21: (g.x)(#)f is_differentiable_on ].x0,x.[ by A19,FDIFF_1:28;
    A22: ].x0,x.[ c= dom ((f.x)(#)g) by A16,A18,XBOOLE_1:1;
    then ].x0,x.[ c= dom ((f.x)(#)g) /\ dom ((g.x)(#)f) by A20,XBOOLE_1:19
;
    then A23: ].x0,x.[ c= dom ((f.x)(#)g - (g.x)(#)f) by SEQ_1:def 4;
    A24: g is_differentiable_on ].x0,x.[ by A1,A18,FDIFF_1:34;
    then A25: (f.x)(#)g is_differentiable_on ].x0,x.[ by A22,FDIFF_1:28;
    then A26: (f.x)(#)g-(g.x)(#)
f is_differentiable_on ].x0,x.[ by A21,A23,FDIFF_1:27;
    set f1 = (f.x)(#)g - (g.x)(#)f;
    A27: [.x0,x.] c= dom f1 by A12,FCONT_1:def 2;
    A28: x0 in [.x0,x.] & x in [.x0,x.] by A5,RCOMP_1:15;
    then x0 in dom f1 & x in dom f1 by A27;
    then x0 in dom ((f.x)(#)g) /\ dom ((g.x)(#)f) & x in dom ((f.x)(#)g) /\
 dom ((g.x)
(#)f)
     by SEQ_1:def 4;
    then A29: x0 in dom ((f.x)(#)g) & x0 in dom ((g.x)(#)f) & x in dom ((f.x)
(#)g) &
    x in dom ((g.x)(#)f) by XBOOLE_0:def 3;
    A30: f1.x0 = ((f.x)(#)g).x0 - ((g.x)(#)f).x0 by A27,A28,SEQ_1:def 4
         .= (f.x)*(g.x0) - ((g.x)(#)f).x0 by A29,SEQ_1:def 6
         .= 0 - (g.x)*0 by A1,A29,SEQ_1:def 6
         .= 0;
      f1.x = ((f.x)(#)g).x - ((g.x)(#)f).x by A27,A28,SEQ_1:def 4
         .= (f.x)*(g.x) - ((g.x)(#)f).x by A29,SEQ_1:def 6
         .= (g.x)*(f.x) - (g.x)*(f.x) by A29,SEQ_1:def 6
         .= 0 by XCMPLX_1:14;
    then consider t such that
    A31: t in ].x0,x.[ & diff(f1,t)=0 by A5,A12,A26,A30,ROLLE:1;
    take t;
    A32: (f.x)(#)g is_differentiable_in t by A25,A31,FDIFF_1:16;
      (g.x)(#)f is_differentiable_in t by A21,A31,FDIFF_1:16;
    then A33: 0=diff((f.x)(#)g,t) - diff((g.x)(#)f,t) by A31,A32,FDIFF_1:22;
    A34: g is_differentiable_in t by A24,A31,FDIFF_1:16;
      f is_differentiable_in t by A19,A31,FDIFF_1:16;
    then 0=diff((f.x)(#)g,t) - (g.x)*diff(f,t) by A33,FDIFF_1:23;
    then 0=(f.x)*diff(g,t) - (g.x)*diff(f,t) by A34,FDIFF_1:23;
    then A35: (f.x)*diff(g,t)=(g.x)*diff(f,t) by XCMPLX_1:15;
      [.x0,x.]\{x0} c= N\{x0} by A10,XBOOLE_1:33;
    then A36: [.x0,x.]\{x0} c= dom(f/g) by A1,XBOOLE_1:1;
    then A37: [.x0,x.]\{x0} c= dom f /\ (dom g\g"{0}) by RFUNCT_1:def 4;
      dom f /\ (dom g\g"{0}) c= dom g\g"{0} by XBOOLE_1:17;
    then A38: [.x0,x.]\{x0} c= dom g\g"{0} by A37,XBOOLE_1:1;
      not x in {x0} by A5,TARSKI:def 1;
    then A39: x in [.x0,x.]\{x0} by A28,XBOOLE_0:def 4;
    then A40: x in dom g & not x in g"{0} by A38,XBOOLE_0:def 4;
    A41: now assume g.x=0;
         then g.x in {0} by TARSKI:def 1;
         hence contradiction by A40,FUNCT_1:def 13;
        end;
    A42: [.x0,x.] c= dom ((f`|N)/(g`|N)) by A1,A10,XBOOLE_1:1;
    then A43: [.x0,x.] c= dom (f`|N) /\ (dom (g`|N)\(g`|N)"{0}) by RFUNCT_1:def
4;
      dom (f`|N) /\ (dom (g`|N) \ (g`|N)"{0}) c= dom (g`|N)\(g`|N)"{0}
     by XBOOLE_1:17;
    then A44: [.x0,x.] c= dom (g`|N)\(g`|N)"{0} by A43,XBOOLE_1:1;
    A45: t in [.x0,x.] by A17,A31;
    then A46: t in dom (g`|N) & not t in (g`|N)"{0} by A44,XBOOLE_0:def 4;
       now assume diff(g,t)=0;
         then (g`|N).t=0 by A1,A10,A45,FDIFF_1:def 8;
         then (g`|N).t in {0} by TARSKI:def 1;
         hence contradiction by A46,FUNCT_1:def 13;
        end;
    then (f.x)/(g.x) = diff(f,t)/diff(g,t) by A35,A41,XCMPLX_1:95;
    then (f.x)*(g.x)" = diff(f,t)/diff(g,t) by XCMPLX_0:def 9;
    then (f.x)*(g.x)" = diff(f,t)*diff(g,t)" by XCMPLX_0:def 9;
    then (f/g).x = diff(f,t)*diff(g,t)" by A36,A39,RFUNCT_1:def 4;
    then (f/g).x = ((f`|N).t)*diff(g,t)" by A1,A10,A45,FDIFF_1:def 8;
    then (f/g).x = ((f`|N).t)*((g`|N).t)" by A1,A10,A45,FDIFF_1:def 8;
    hence thesis by A31,A42,A45,RFUNCT_1:def 4;
   end;
    for r1,r2 st r1<x0 & x0<r2
  ex g1,g2 st r1<g1 & g1<x0 & g1 in dom (f/g) & g2<r2 &
   x0<g2 & g2 in dom (f/g) by A1,Th4;
  then A47: (for r1 st x0<r1 ex t st t<r1 & x0<t & t in dom (f/g)) &
      for r1 st r1<x0 ex t st r1<t & t<x0 & t in dom (f/g) by LIMFUNC3:8;
    for a st a is convergent & lim a = x0 &
  rng a c= dom (f/g) /\ right_open_halfline(x0) holds
  (f/g)*a is divergent_to-infty
   proof
    let a;
    assume A48: a is convergent & lim a = x0 &
               rng a c= dom (f/g) /\ right_open_halfline(x0);
    then consider k such that
    A49: for n st k<=n holds x0-r<a.n & a.n<x0+r by A2,A3,LIMFUNC3:7;
    set a1 = a^\k;
     A50: now let n;
          A51: a1.n = a.(n+k) by SEQM_3:def 9;
            a.(n+k) in rng a by RFUNCT_2:10;
          then a.(n+k) in right_open_halfline(x0) by A48,XBOOLE_0:def 3;
          then a.(n+k) in {g1:x0<g1} by LIMFUNC1:def 3;
          then ex g1 st a.(n+k)=g1 & x0<g1;
          hence x0<a1.n by SEQM_3:def 9;
            k<=n+k by NAT_1:37;
          hence a1.n<x0+r by A49,A51;
         end;
        defpred X[Nat,real number] means
            $2 in ].x0,a1.$1.[ & (((f/g)*a)^\k).$1=((f`|N)/(g`|N)).$2;
    A52: for n ex c be real number st X[n,c]
         proof
          let n;
            x0<a1.n & a1.n<x0+r by A50;
          then consider c such that
          A53: c in ].x0,a1.n.[ & (f/g).(a1.n)=((f`|N)/(g`|N)).c by A4;
          take c;
            dom (f/g) /\ right_open_halfline(x0) c= dom (f/g) by XBOOLE_1:17
;
          then A54: rng a c= dom (f/g) by A48,XBOOLE_1:1;
            rng a1 c= rng a by RFUNCT_2:7;
          then rng a1 c= dom (f/g) by A54,XBOOLE_1:1;
          then ((f/g)*(a^\k)).n=((f`|N)/(g`|N)).c by A53,RFUNCT_2:21;
          hence thesis by A53,A54,RFUNCT_2:22;
         end;
    consider b such that
    A55: for n holds X[n,b.n] from RealSeqChoice(A52);
    deffunc U(set) = x0;
    consider d being Real_Sequence such that
    A56: for n holds d.n=U(n) from ExRealSeq;
       now
      let n;
        d.n=x0 & d.(n+1)=x0 by A56;
      hence d.n=d.(n+1);
     end;
    then A57: d is constant by SEQM_3:16;
    then A58: d is convergent by SEQ_4:39;
    A59: lim d=d.0 by A57,SEQ_4:41
            .=x0 by A56;
    A60: a1 is convergent & lim a1=x0 by A48,SEQ_4:33;
     A61: now
          let n;
            b.n in ].x0,a1.n.[ by A55;
          then b.n in {g1:x0<g1 & g1<a1.n} by RCOMP_1:def 2;
          then ex g1 st g1=b.n & x0<g1 & g1<a1.n; hence d.n<=b.n & b.n<=a1.n
by A56;
         end;
    then A62: b is convergent by A58,A59,A60,SEQ_2:33;
    A63: lim b=x0 by A58,A59,A60,A61,SEQ_2:34;
    A64: x0-r<x0 by A2,SQUARE_1:29;
      x0<x0+r by A2,REAL_2:174;
    then x0 in {g2: x0-r<g2 & g2<x0+r} by A64;
    then A65: x0 in ].x0-r,x0+r.[ by RCOMP_1:def 2;
    A66: rng b c= dom ((f`|N)/(g`|N)) \{x0}
     proof
      let x be set;
      assume x in rng b;
      then consider n such that A67: x=b.n by RFUNCT_2:9;
      A68: x0<a1.n & a1.n<x0+r by A50;
      A69: x in ].x0,a1.n.[ by A55,A67;
      then x in {g1:x0<g1 & g1<a1.n} by RCOMP_1:def 2; then A70: ex g1 st
 g1 = x & x0<g1 & g1<a1.n;
      A71: ].x0,a1.n.[ c= [.x0,a1.n.] by RCOMP_1:15;
        x0-r<a1.n by A64,A68,AXIOMS:22;
      then a1.n in {g3: x0-r<g3 & g3<x0+r} by A68;
      then a1.n in ].x0-r,x0+r.[ by RCOMP_1:def 2;
      then [.x0,a1.n.] c= ].x0-r,x0+r.[ by A65,RCOMP_1:17;
      then ].x0,a1.n.[ c= ].x0-r,x0+r.[ by A71,XBOOLE_1:1;
      then A72: ].x0,a1.n.[ c= dom ((f`|N)/(g`|N)) by A1,A2,XBOOLE_1:1;
        not x in {x0} by A70,TARSKI:def 1;
      hence x in dom ((f`|N)/(g`|N))\{x0} by A69,A72,XBOOLE_0:def 4;
     end;
      dom ((f`|N)/(g`|N)) \{x0} c= dom ((f`|N)/(g`|N)) by XBOOLE_1:36;
    then A73: rng b c= dom ((f`|N)/(g`|N)) by A66,XBOOLE_1:1;
    A74: ((f`|N)/(g`|N))*b is divergent_to-infty by A1,A62,A63,A66,LIMFUNC3:def
3;
       now
      let n;
        (((f/g)*a)^\k).n=((f`|N)/(g`|N)).(b.n) by A55;
      hence (((f/g)*a)^\k).n <= (((f`|N)/(g`|N))*b).n by A73,RFUNCT_2:21;
     end;
    then ((f/g)*a)^\k is divergent_to-infty by A74,LIMFUNC1:70;
    hence thesis by LIMFUNC1:34;
   end;
  then A75: f/g is_right_divergent_to-infty_in x0 by A47,LIMFUNC2:def 6;
  A76: for x st x0-r<x & x<x0 ex c st c in ].x,x0.[ & (f/g).x=((f`|N)/(g`|N)).c
   proof
    let x such that
    A77: x0-r<x & x<x0;
    A78: f is_continuous_on N by A1,FDIFF_1:33;
    A79: g is_continuous_on N by A1,FDIFF_1:33;
    A80: x0-r<x0 by A2,SQUARE_1:29;
    A81: x0+0<x0+r by A2,REAL_1:67;
    then x0 in {g1: x0-r<g1 & g1<x0+r} by A80;
    then A82: x0 in ].x0-r,x0+r.[ by RCOMP_1:def 2;
      x<x0+r by A77,A81,AXIOMS:22;
    then x in {g1: x0-r<g1 & g1<x0+r} by A77;
    then x in ].x0-r,x0+r.[ by RCOMP_1:def 2;
    then A83: [.x,x0.] c= N by A2,A82,RCOMP_1:17;
    then f is_continuous_on [.x,x0.] by A78,FCONT_1:17;
    then A84: (g.x)(#)f is_continuous_on [.x,x0.] by FCONT_1:21;
      g is_continuous_on [.x,x0.] by A79,A83,FCONT_1:17;
    then (f.x)(#)g is_continuous_on [.x,x0.] by FCONT_1:21;
    then A85: (f.x)(#)g - (g.x)(#)f is_continuous_on [.x,x0.] by A84,FCONT_1:19
;
    A86: dom ((g.x)(#)f) = dom f by SEQ_1:def 6;
    A87: dom ((f.x)(#)g) = dom g by SEQ_1:def 6;
    A88: N c= dom ((g.x)(#)f) by A78,A86,FCONT_1:14;
    A89: N c= dom ((f.x)(#)g) by A79,A87,FCONT_1:14;
    A90: ].x,x0.[ c= [.x,x0.] by RCOMP_1:15;
    then A91: ].x,x0.[ c= N by A83,XBOOLE_1:1;
    then A92: f is_differentiable_on ].x,x0.[ by A1,FDIFF_1:34;
    A93: ].x,x0.[ c= dom ((g.x)(#)f) by A88,A91,XBOOLE_1:1;
    then A94: (g.x)(#)f is_differentiable_on ].x,x0.[ by A92,FDIFF_1:28;
    A95: ].x,x0.[ c= dom ((f.x)(#)g) by A89,A91,XBOOLE_1:1;
    then ].x,x0.[ c= dom ((f.x)(#)g) /\ dom ((g.x)(#)f) by A93,XBOOLE_1:19
;
    then A96: ].x,x0.[ c= dom ((f.x)(#)g - (g.x)(#)f) by SEQ_1:def 4;
    A97: g is_differentiable_on ].x,x0.[ by A1,A91,FDIFF_1:34;
    then A98: (f.x)(#)g is_differentiable_on ].x,x0.[ by A95,FDIFF_1:28;
    then A99: (f.x)(#)g-(g.x)(#)
f is_differentiable_on ].x,x0.[ by A94,A96,FDIFF_1:27;
    set f1 = (f.x)(#)g - (g.x)(#)f;
    A100: [.x,x0.] c= dom f1 by A85,FCONT_1:def 2;
    A101: x0 in [.x,x0.] & x in [.x,x0.] by A77,RCOMP_1:15;
    then x0 in dom f1 & x in dom f1 by A100;
    then x0 in dom ((f.x)(#)g) /\ dom ((g.x)(#)f) & x in dom ((f.x)(#)g) /\
 dom ((g.x)
(#)f)
     by SEQ_1:def 4;
    then A102: x0 in dom ((f.x)(#)g) & x0 in dom ((g.x)(#)f) & x in dom ((f.x)
(#)
g) &
    x in dom ((g.x)(#)f) by XBOOLE_0:def 3;
    A103: f1.x0 = ((f.x)(#)g).x0 - ((g.x)(#)f).x0 by A100,A101,SEQ_1:def 4
         .= (f.x)*(g.x0) - ((g.x)(#)f).x0 by A102,SEQ_1:def 6
         .= 0 - (g.x)*0 by A1,A102,SEQ_1:def 6
         .= 0;
      f1.x = ((f.x)(#)g).x - ((g.x)(#)f).x by A100,A101,SEQ_1:def 4
         .= (f.x)*(g.x) - ((g.x)(#)f).x by A102,SEQ_1:def 6
         .= (g.x)*(f.x) - (g.x)*(f.x) by A102,SEQ_1:def 6
         .= 0 by XCMPLX_1:14;
    then consider t such that
    A104: t in ].x,x0.[ & diff(f1,t)=0 by A77,A85,A99,A103,ROLLE:1;
    take t;
    A105: (f.x)(#)g is_differentiable_in t by A98,A104,FDIFF_1:16;
      (g.x)(#)f is_differentiable_in t by A94,A104,FDIFF_1:16;
    then A106: 0=diff((f.x)(#)g,t) - diff((g.x)(#)f,t) by A104,A105,FDIFF_1:22;
    A107: g is_differentiable_in t by A97,A104,FDIFF_1:16;
      f is_differentiable_in t by A92,A104,FDIFF_1:16;
    then 0=diff((f.x)(#)g,t) - (g.x)*diff(f,t) by A106,FDIFF_1:23;
    then 0=(f.x)*diff(g,t) - (g.x)*diff(f,t) by A107,FDIFF_1:23;
    then A108: (f.x)*diff(g,t)=(g.x)*diff(f,t) by XCMPLX_1:15;
      [.x,x0.]\{x0} c= N\{x0} by A83,XBOOLE_1:33;
    then A109: [.x,x0.]\{x0} c= dom(f/g) by A1,XBOOLE_1:1;
    then A110: [.x,x0.]\{x0} c= dom f /\ (dom g\g"{0}) by RFUNCT_1:def 4;
      dom f /\ (dom g\g"{0}) c= dom g\g"{0} by XBOOLE_1:17;
    then A111: [.x,x0.]\{x0} c= dom g\g"{0} by A110,XBOOLE_1:1;
      not x in {x0} by A77,TARSKI:def 1;
    then A112: x in [.x,x0.]\{x0} by A101,XBOOLE_0:def 4;
    then A113: x in dom g & not x in g"{0} by A111,XBOOLE_0:def 4;
    A114: now assume g.x=0;
         then g.x in {0} by TARSKI:def 1;
         hence contradiction by A113,FUNCT_1:def 13;
        end;
    A115: [.x,x0.] c= dom ((f`|N)/(g`|N)) by A1,A83,XBOOLE_1:1;
    then A116: [.x,x0.] c= dom (f`|N) /\ (dom (g`|N)\(g`|N)"{0}) by RFUNCT_1:
def 4;
      dom (f`|N) /\ (dom (g`|N) \ (g`|N)"{0}) c= dom (g`|N)\(g`|N)"{0}
     by XBOOLE_1:17;
    then A117: [.x,x0.] c= dom (g`|N)\(g`|N)"{0} by A116,XBOOLE_1:1;
    A118: t in [.x,x0.] by A90,A104;
    then A119: t in dom (g`|N) & not t in (g`|N)"{0} by A117,XBOOLE_0:def 4;
       now assume diff(g,t)=0;
         then (g`|N).t=0 by A1,A83,A118,FDIFF_1:def 8;
         then (g`|N).t in {0} by TARSKI:def 1;
         hence contradiction by A119,FUNCT_1:def 13;
        end;
    then (f.x)/(g.x) = diff(f,t)/diff(g,t) by A108,A114,XCMPLX_1:95;
    then (f.x)*(g.x)" = diff(f,t)/diff(g,t) by XCMPLX_0:def 9;
    then (f.x)*(g.x)" = diff(f,t)*diff(g,t)" by XCMPLX_0:def 9;
    then (f/g).x = diff(f,t)*diff(g,t)" by A109,A112,RFUNCT_1:def 4;
    then (f/g).x = ((f`|N).t)*diff(g,t)" by A1,A83,A118,FDIFF_1:def 8;
    then (f/g).x = ((f`|N).t)*((g`|N).t)" by A1,A83,A118,FDIFF_1:def 8;
    hence thesis by A104,A115,A118,RFUNCT_1:def 4;
   end;
    for a st a is convergent & lim a = x0 &
  rng a c= dom (f/g) /\ left_open_halfline(x0) holds
  (f/g)*a is divergent_to-infty
   proof
    let a;
    assume A120: a is convergent & lim a = x0 &
               rng a c= dom (f/g) /\ left_open_halfline(x0);
    then consider k such that
    A121: for n st k<=n holds x0-r<a.n & a.n<x0+r by A2,A3,LIMFUNC3:7;
    set a1 = a^\k;
     A122: now let n;
          A123: a1.n = a.(n+k) by SEQM_3:def 9;
            a.(n+k) in rng a by RFUNCT_2:10;
          then a.(n+k) in left_open_halfline(x0) by A120,XBOOLE_0:def 3;
          then a.(n+k) in {g1:g1<x0} by PROB_1:def 15;
          then ex g1 st a.(n+k)=g1 & g1<x0;
          hence a1.n<x0 by SEQM_3:def 9;
            k<=n+k by NAT_1:37;
          hence x0-r<a1.n by A121,A123;
         end;
        defpred X[Nat,real number] means
          $2 in ].a1.$1,x0.[ & (((f/g)*a)^\k).$1=((f`|N)/(g`|N)).$2;
    A124: for n ex c be real number st X[n,c]
         proof
          let n;
            x0-r<a1.n & a1.n<x0 by A122;
          then consider c such that
          A125: c in ].a1.n,x0.[ & (f/g).(a1.n)=((f`|N)/(g`|N)).c by A76;
          take c;
            dom (f/g) /\ left_open_halfline(x0) c= dom (f/g) by XBOOLE_1:17;
          then A126: rng a c= dom (f/g) by A120,XBOOLE_1:1;
            rng a1 c= rng a by RFUNCT_2:7;
          then rng a1 c= dom (f/g) by A126,XBOOLE_1:1;
          then ((f/g)*(a^\k)).n=((f`|N)/(g`|N)).c by A125,RFUNCT_2:21;
          hence thesis by A125,A126,RFUNCT_2:22;
         end;
    consider b such that
    A127: for n holds X[n,b.n] from RealSeqChoice(A124);
    deffunc U(set) = x0;
    consider d being Real_Sequence such that
    A128: for n holds d.n=U(n) from ExRealSeq;
       now
      let n;
        d.n=x0 & d.(n+1)=x0 by A128;
      hence d.n=d.(n+1);
     end;
    then A129: d is constant by SEQM_3:16;
    then A130: d is convergent by SEQ_4:39;
    A131: lim d=d.0 by A129,SEQ_4:41
            .=x0 by A128;
    A132: a1 is convergent & lim a1=x0 by A120,SEQ_4:33;
    A133: now
          let n;
            b.n in ].a1.n,x0.[ by A127;
          then b.n in {g1:a1.n<g1 & g1<x0} by RCOMP_1:def 2;
          then ex g1 st g1=b.n & a1.n<g1 & g1<x0; hence a1.n<=b.n & b.n<=
d.n by A128;
        end;
    then A134: b is convergent by A130,A131,A132,SEQ_2:33;
    A135: lim b=x0 by A130,A131,A132,A133,SEQ_2:34;
    A136: x0-r<x0 by A2,SQUARE_1:29;
    A137: x0<x0+r by A2,REAL_2:174;
    then x0 in {g2: x0-r<g2 & g2<x0+r} by A136;
    then A138: x0 in ].x0-r,x0+r.[ by RCOMP_1:def 2;
    A139: rng b c= dom ((f`|N)/(g`|N)) \{x0}
     proof
      let x be set;
      assume x in rng b;
      then consider n such that A140: x=b.n by RFUNCT_2:9;
      A141: x0-r<a1.n & a1.n<x0 by A122;
      A142: x in ].a1.n,x0.[ by A127,A140;
      then x in {g1:a1.n<g1 & g1<x0} by RCOMP_1:def 2; then A143: ex g1 st
 g1 = x & a1.n<g1 & g1<x0;
      A144: ].a1.n,x0.[ c= [.a1.n,x0.] by RCOMP_1:15;
        a1.n<x0+r by A137,A141,AXIOMS:22;
      then a1.n in {g3: x0-r<g3 & g3<x0+r} by A141;
      then a1.n in ].x0-r,x0+r.[ by RCOMP_1:def 2;
      then [.a1.n,x0.] c= ].x0-r,x0+r.[ by A138,RCOMP_1:17;
      then ].a1.n,x0.[ c= ].x0-r,x0+r.[ by A144,XBOOLE_1:1;
      then A145: ].a1.n,x0.[ c= dom ((f`|N)/(g`|N)) by A1,A2,XBOOLE_1:1;
        not x in {x0} by A143,TARSKI:def 1;
      hence x in dom ((f`|N)/(g`|N))\{x0} by A142,A145,XBOOLE_0:def 4;
     end;
      dom ((f`|N)/(g`|N)) \{x0} c= dom ((f`|N)/(g`|N)) by XBOOLE_1:36;
    then A146: rng b c= dom ((f`|N)/(g`|N)) by A139,XBOOLE_1:1;
    A147: ((f`|N)/(g`|N))*b is divergent_to-infty by A1,A134,A135,A139,LIMFUNC3
:def 3;
       now
      let n;
        (((f/g)*a)^\k).n=((f`|N)/(g`|N)).(b.n) by A127;
      hence (((f/g)*a)^\k).n <= (((f`|N)/(g`|N))*b).n by A146,RFUNCT_2:21;
     end;
    then ((f/g)*a)^\k is divergent_to-infty by A147,LIMFUNC1:70;
    hence thesis by LIMFUNC1:34;
   end;
  then f/g is_left_divergent_to-infty_in x0 by A47,LIMFUNC2:def 3;
  hence thesis by A75,LIMFUNC3:16;
 end;

theorem
  (ex r st r>0 & 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
  given r such that
  A1: r>0 & 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;
  A2: for x st x0<x & x<x0+r ex c st c in ].x0,x.[ &
  (f/g).x=((f`|].x0,x0+r.[)/(g`|].x0,x0+r.[)).c
   proof
    let x; assume
    A3: x0<x & x<x0+r;
    then x in {g1:x0<g1 & g1<x0+r};
    then A4: x in ].x0,x0+r.[ by RCOMP_1:def 2;
    A5: f is_continuous_on ].x0,x0+r.[ by A1,FDIFF_1:33;
    A6: g is_continuous_on ].x0,x0+r.[ by A1,FDIFF_1:33;
    A7: ].x0,x.[ c= ].x0,x0+r.[
       proof
         let y be set;
         assume y in ].x0,x.[;
         then y in {g2:x0<g2 & g2<x} by RCOMP_1:def 2;
         then consider g2 such that A8: g2=y & x0<g2 & g2<x;
           g2<x0+r by A3,A8,AXIOMS:22;
         then y in {g3:x0<g3 & g3<x0+r} by A8;
         hence y in ].x0,x0+r.[ by RCOMP_1:def 2;
        end;
    then A9: f is_differentiable_on ].x0,x.[ by A1,FDIFF_1:34;
    A10: g is_differentiable_on ].x0,x.[ by A1,A7,FDIFF_1:34;
      f is_differentiable_in x by A1,A4,FDIFF_1:16;
    then A11: f is_continuous_in x by FDIFF_1:32;
      g is_differentiable_in x by A1,A4,FDIFF_1:16;
    then A12: g is_continuous_in x by FDIFF_1:32;
    A13: f is_continuous_on [.x0,x.] & g is_continuous_on [.x0,x.]
        proof
        A14: [.x0,x.] c= dom f
             proof
                ].x0,x0+r.[ c= dom f by A5,FCONT_1:14;
              then A15: ].x0,x.[ c= dom f by A7,XBOOLE_1:1;
              A16: x0 in dom f by A1,FCONT_1:2;
                x in dom f by A11,FCONT_1:2;
              then {x0,x} c= dom f by A16,ZFMISC_1:38;
              then ].x0,x.[ \/ {x0,x} c= dom f by A15,XBOOLE_1:8;
              hence thesis by A3,RCOMP_1:11;
             end;
          for s st rng s c= [.x0,x.] & s is convergent & lim s in [.x0,x.]
             holds f*s is convergent & f.(lim s) = lim (f*s)
         proof
          let s;
          assume A17: rng s c= [.x0,x.] & s is convergent & lim s in [.x0,x.];
          set z = lim s;
          A18: rng s c= dom f by A14,A17,XBOOLE_1:1;
A19:          z in ].x0,x.[ \/ {x0,x} by A3,A17,RCOMP_1:11;
            now per cases by A19,XBOOLE_0:def 2;
          suppose z in ].x0,x.[;
           then f is_differentiable_in z by A1,A7,FDIFF_1:16;
           then f is_continuous_in z by FDIFF_1:32;
           hence thesis by A17,A18,FCONT_1:def 1;
          suppose A20: z in {x0,x};
              now per cases by A20,TARSKI:def 2;
             suppose z = x0;
              hence thesis by A1,A17,A18,FCONT_1:def 1;
             suppose z = x;
              hence thesis by A11,A17,A18,FCONT_1:def 1;
             end;
            hence thesis;
           end;
          hence thesis;
         end;
        hence f is_continuous_on [.x0,x.] by A14,FCONT_1:14;
        A21: [.x0,x.] c= dom g
             proof
                ].x0,x0+r.[ c= dom g by A6,FCONT_1:14;
              then A22: ].x0,x.[ c= dom g by A7,XBOOLE_1:1;
              A23: x0 in dom g by A1,FCONT_1:2;
                x in dom g by A12,FCONT_1:2;
              then {x0,x} c= dom g by A23,ZFMISC_1:38;
              then ].x0,x.[ \/ {x0,x} c= dom g by A22,XBOOLE_1:8;
              hence thesis by A3,RCOMP_1:11;
             end;
          for s st rng s c= [.x0,x.] & s is convergent & lim s in [.x0,x.]
             holds g*s is convergent & g.(lim s) = lim (g*s)
         proof let s such that
          A24: rng s c= [.x0,x.] & s is convergent & lim s in [.x0,x.];
          set z = lim s;
          A25: rng s c= dom g by A21,A24,XBOOLE_1:1;
A26:          z in ].x0,x.[ \/ {x0,x} by A3,A24,RCOMP_1:11;
            now per cases by A26,XBOOLE_0:def 2;
          suppose z in ].x0,x.[;
           then g is_differentiable_in z by A1,A7,FDIFF_1:16;
           then g is_continuous_in z by FDIFF_1:32;
           hence thesis by A24,A25,FCONT_1:def 1;
          suppose A27: z in {x0,x};
              now per cases by A27,TARSKI:def 2;
             suppose z = x0;
              hence thesis by A1,A24,A25,FCONT_1:def 1;
             suppose z = x;
              hence thesis by A12,A24,A25,FCONT_1:def 1;
             end;
            hence thesis;
           end;
          hence thesis;
         end;
        hence thesis by A21,FCONT_1:14;
      end;
    then A28: (g.x)(#)f is_continuous_on [.x0,x.] by FCONT_1:21;
      (f.x)(#)g is_continuous_on [.x0,x.] by A13,FCONT_1:21;
    then A29: (f.x)(#)g - (g.x)(#)f is_continuous_on [.x0,x.] by A28,FCONT_1:19
;
    A30: dom ((g.x)(#)f) = dom f by SEQ_1:def 6;
    A31: dom ((f.x)(#)g) = dom g by SEQ_1:def 6;
    A32: ].x0,x0+r.[ c= dom ((g.x)(#)f) by A5,A30,FCONT_1:14;
    A33: ].x0,x0+r.[ c= dom ((f.x)(#)g) by A6,A31,FCONT_1:14;
    A34: ].x0,x.[ c= dom ((g.x)(#)f) by A7,A32,XBOOLE_1:1;
    then A35: (g.x)(#)f is_differentiable_on ].x0,x.[ by A9,FDIFF_1:28;
    A36: ].x0,x.[ c= dom ((f.x)(#)g) by A7,A33,XBOOLE_1:1;
    then ].x0,x.[ c= dom ((f.x)(#)g) /\ dom ((g.x)(#)f) by A34,XBOOLE_1:19;
    then A37: ].x0,x.[ c= dom ((f.x)(#)g - (g.x)(#)f) by SEQ_1:def 4;
    A38: (f.x)(#)g is_differentiable_on ].x0,x.[ by A10,A36,FDIFF_1:28;
    then A39: (f.x)(#)g-(g.x)(#)
f is_differentiable_on ].x0,x.[ by A35,A37,FDIFF_1:27;
    set f1 = (f.x)(#)g - (g.x)(#)f;
    A40: [.x0,x.] c= dom f1 by A29,FCONT_1:def 2;
    A41: x0 in [.x0,x.] & x in [.x0,x.] by A3,RCOMP_1:15;
    then x0 in dom f1 & x in dom f1 by A40;
    then x0 in dom ((f.x)(#)g) /\ dom ((g.x)(#)f) & x in dom ((f.x)(#)g) /\
 dom ((g.x)
(#)f)
     by SEQ_1:def 4;
    then A42: x0 in dom ((f.x)(#)g) & x0 in dom ((g.x)(#)f) & x in dom ((f.x)
(#)g) &
    x in dom ((g.x)(#)f) by XBOOLE_0:def 3;
    A43: f1.x0 = ((f.x)(#)g).x0 - ((g.x)(#)f).x0 by A40,A41,SEQ_1:def 4
         .= (f.x)*(g.x0) - ((g.x)(#)f).x0 by A42,SEQ_1:def 6
         .= 0 - (g.x)*0 by A1,A42,SEQ_1:def 6
         .= 0;
      f1.x = ((f.x)(#)g).x - ((g.x)(#)f).x by A40,A41,SEQ_1:def 4
         .= (f.x)*(g.x) - ((g.x)(#)f).x by A42,SEQ_1:def 6
         .= (g.x)*(f.x) - (g.x)*(f.x) by A42,SEQ_1:def 6
         .= 0 by XCMPLX_1:14;
    then consider t such that
    A44: t in ].x0,x.[ & diff(f1,t)=0 by A3,A29,A39,A43,ROLLE:1;
    take t;
    A45: (f.x)(#)g is_differentiable_in t by A38,A44,FDIFF_1:16;
      (g.x)(#)f is_differentiable_in t by A35,A44,FDIFF_1:16;
    then A46: 0=diff((f.x)(#)g,t) - diff((g.x)(#)f,t) by A44,A45,FDIFF_1:22;
    A47: g is_differentiable_in t by A1,A7,A44,FDIFF_1:16;
      f is_differentiable_in t by A1,A7,A44,FDIFF_1:16;
    then 0=diff((f.x)(#)g,t) - (g.x)*diff(f,t) by A46,FDIFF_1:23;
    then 0=(f.x)*diff(g,t) - (g.x)*diff(f,t) by A47,FDIFF_1:23;
    then A48: (f.x)*diff(g,t)=(g.x)*diff(f,t) by XCMPLX_1:15;
       now
      let y be set;
      assume y in [.x0,x.]\{x0};
      then A49: y in [.x0,x.] & not y in {x0} by XBOOLE_0:def 4;
      then y in {g4: x0<=g4 & g4<=x} by RCOMP_1:def 1;
      then consider g4 such that A50: g4=y & x0<=g4 & g4<=x;
      A51: g4<x0+r by A3,A50,AXIOMS:22;
        x0<>g4 by A49,A50,TARSKI:def 1;
      then x0<g4 by A50,REAL_1:def 5;
      then y in {g5: x0<g5 & g5<x0+r} by A50,A51;
      hence y in ].x0,x0+r.[ by RCOMP_1:def 2;
     end;
    then [.x0,x.]\{x0} c= ].x0,x0+r.[ by TARSKI:def 3;
    then A52: [.x0,x.]\{x0} c= dom(f/g) by A1,XBOOLE_1:1;
    then A53: [.x0,x.]\{x0} c= dom f /\ (dom g\g"{0}) by RFUNCT_1:def 4;
      dom f /\ (dom g\g"{0}) c= dom g\g"{0} by XBOOLE_1:17;
    then A54: [.x0,x.]\{x0} c= dom g\g"{0} by A53,XBOOLE_1:1;
      not x in {x0} by A3,TARSKI:def 1;
    then A55: x in [.x0,x.]\{x0} by A41,XBOOLE_0:def 4;
    then A56: x in dom g & not x in g"{0} by A54,XBOOLE_0:def 4;
    A57: now assume g.x=0;
         then g.x in {0} by TARSKI:def 1;
         hence contradiction by A56,FUNCT_1:def 13;
        end;
    A58: x0<=x0+r by A1,REAL_2:174;
    A59: ].x0,x0+r.[ c= [.x0,x0+r.] by RCOMP_1:15;
      x0 in {g6: x0<=g6 & g6<=x0+r} by A58;
    then x0 in [.x0,x0+r.] by RCOMP_1:def 1;
    then [.x0,x.] c= [.x0,x0+r.] by A4,A59,RCOMP_1:16;
    then A60: [.x0,x.] c= dom ((f`|].x0,x0+r.[)/(g`|].x0,x0+r.[)) by A1,
XBOOLE_1:1
;
    then A61: [.x0,x.] c= dom (f`|].x0,x0+r.[) /\
    (dom (g`|].x0,x0+r.[)\(g`|].x0,x0+r.[)"{0})
    by RFUNCT_1:def 4;
      dom (f`|].x0,x0+r.[) /\ (dom (g`|].x0,x0+r.[) \ (g`|].x0,x0+r.[)"{0}) c=
    dom (g`|].x0,x0+r.[)\(g`|].x0,x0+r.[)"{0}
     by XBOOLE_1:17;
    then A62: [.x0,x.] c= dom (g`|].x0,x0+r.[)\(g`|].x0,x0+r.[)"{0} by A61,
XBOOLE_1:1
;
      ].x0,x.[ c= [.x0,x.] by RCOMP_1:15;
    then A63: t in [.x0,x.] by A44;
    then A64: t in dom (g`|].x0,x0+r.[) &
    not t in (g`|].x0,x0+r.[)"{0} by A62,XBOOLE_0:def 4;
       now assume diff(g,t)=0;
         then (g`|].x0,x0+r.[).t=0 by A1,A7,A44,FDIFF_1:def 8;
         then (g`|].x0,x0+r.[).t in {0} by TARSKI:def 1;
         hence contradiction by A64,FUNCT_1:def 13;
        end;
    then (f.x)/(g.x) = diff(f,t)/diff(g,t) by A48,A57,XCMPLX_1:95;
    then (f.x)*(g.x)" = diff(f,t)/diff(g,t) by XCMPLX_0:def 9;
    then (f.x)*(g.x)" = diff(f,t)*diff(g,t)" by XCMPLX_0:def 9;
    then (f/g).x = diff(f,t)*diff(g,t)" by A52,A55,RFUNCT_1:def 4;
    then (f/g).x = ((f`|].x0,x0+r.[).t)*diff(g,t)" by A1,A7,A44,FDIFF_1:def 8;
    then (f/g).x = ((f`|].x0,x0+r.[).t)*((g`|].x0,x0+r.[).t)" by A1,A7,A44,
FDIFF_1:def 8;
    hence thesis by A44,A60,A63,RFUNCT_1:def 4;
   end;
  A65: for r1 st x0<r1 ex t st t<r1 & x0<t & t in dom (f/g) by A1,LIMFUNC2:4;
  A66: for a st a is convergent & lim a = x0 &
   rng a c= dom (f/g) /\ right_open_halfline(x0) holds
   (f/g)*a is convergent &
   lim((f/g)*a) = lim_right(((f`|].x0,x0+r.[)/(g`|].x0,x0+r.[)),x0)
   proof
    let a;
    assume A67: a is convergent & lim a = x0 &
               rng a c= dom (f/g) /\ right_open_halfline(x0);
    then consider k such that
    A68: for n st k<=n holds x0-r<a.n & a.n<x0+r by A1,LIMFUNC3:7;
    set a1 = a^\k;
     A69: now let n;
          A70: a1.n = a.(n+k) by SEQM_3:def 9;
            a.(n+k) in rng a by RFUNCT_2:10;
          then a.(n+k) in right_open_halfline(x0) by A67,XBOOLE_0:def 3;
          then a.(n+k) in {g1:x0<g1} by LIMFUNC1:def 3;
          then ex g1 st a.(n+k)=g1 & x0<g1;
          hence x0<a1.n by SEQM_3:def 9;
            k<=n+k by NAT_1:37;
          hence a1.n<x0+r by A68,A70;
         end;
        defpred X[Nat,real number] means
            $2 in ].x0,a1.$1.[ &
    (((f/g)*a)^\k).$1=((f`|].x0,x0+r.[)/(g`|].x0,x0+r.[)).$2;
    A71: for n ex c be real number st X[n,c]
         proof
          let n;
            x0<a1.n & a1.n<x0+r by A69;
          then consider c such that
          A72: c in ].x0,a1.n.[ &
          (f/g).(a1.n)=((f`|].x0,x0+r.[)/(g`|].x0,x0+r.[)).c by A2;
          take c;
            dom (f/g) /\ right_open_halfline(x0) c= dom (f/g) by XBOOLE_1:17
;
          then A73: rng a c= dom (f/g) by A67,XBOOLE_1:1;
            rng a1 c= rng a by RFUNCT_2:7;
          then rng a1 c= dom (f/g) by A73,XBOOLE_1:1;
          then ((f/g)*(a^\k)).n=((f`|].x0,x0+r.[)/(g`|].x0,x0+r.[)).c
          by A72,RFUNCT_2:21;
          hence thesis by A72,A73,RFUNCT_2:22;
         end;
    consider b such that
    A74: for n holds X[n,b.n] from RealSeqChoice(A71);
    deffunc U(set) = x0;
    consider d being Real_Sequence such that
    A75: for n holds d.n=U(n) from ExRealSeq;
       now
      let n;
        d.n=x0 & d.(n+1)=x0 by A75;
      hence d.n=d.(n+1);
     end;
    then A76: d is constant by SEQM_3:16;
    then A77: d is convergent by SEQ_4:39;
    A78: lim d=d.0 by A76,SEQ_4:41
            .=x0 by A75;
    A79: a1 is convergent & lim a1=x0 by A67,SEQ_4:33;
     A80: now
          let n;
            b.n in ].x0,a1.n.[ by A74;
          then b.n in {g1:x0<g1 & g1<a1.n} by RCOMP_1:def 2;
          then ex g1 st g1=b.n & x0<g1 & g1<a1.n; hence d.n<=b.n & b.n<=a1.n
by A75;
         end;
    then A81: b is convergent by A77,A78,A79,SEQ_2:33;
    A82: lim b=x0 by A77,A78,A79,A80,SEQ_2:34;
    A83: rng b c=
    dom ((f`|].x0,x0+r.[)/(g`|].x0,x0+r.[)) /\ right_open_halfline(x0)
     proof
      let x be set;
      assume x in rng b;
      then consider n such that A84: x=b.n by RFUNCT_2:9;
      A85: x0<a1.n & a1.n<x0+r by A69;
      A86: x in ].x0,a1.n.[ by A74,A84;
      then x in {g1:x0<g1 & g1<a1.n} by RCOMP_1:def 2; then ex g1 st
 g1 = x & x0<g1 & g1<a1.n;
      then x in {g2: x0<g2};
      then A87: x in right_open_halfline(x0) by LIMFUNC1:def 3;
      A88: ].x0,a1.n.[ c= [.x0,a1.n.] by RCOMP_1:15;
        x0<=x0+r by A1,REAL_2:174;
      then x0 in {g3: x0<=g3 & g3<=x0+r};
      then A89: x0 in [.x0,x0+r.] by RCOMP_1:def 1;
        a1.n in {g4: x0<=g4 & g4<=x0+r} by A85;
      then a1.n in [.x0,x0+r.] by RCOMP_1:def 1;
      then [.x0,a1.n.] c= [.x0,x0+r.] by A89,RCOMP_1:16;
      then ].x0,a1.n.[ c= [.x0,x0+r.] by A88,XBOOLE_1:1;
      then ].x0,a1.n.[ c= dom ((f`|].x0,x0+r.[)/(g`|].x0,x0+r.[))
      by A1,XBOOLE_1:1; hence x in dom ((f`|].x0,x0+r.[)/(g`|].x0,x0+r.[)) /\
      right_open_halfline(x0) by A86,A87,XBOOLE_0:def 3;
     end;
      dom ((f`|].x0,x0+r.[)/(g`|].x0,x0+r.[)) /\ right_open_halfline(x0) c=
    dom ((f`|].x0,x0+r.[)/(g`|].x0,x0+r.[)) by XBOOLE_1:17;
    then A90: rng b c= dom ((f`|].x0,x0+r.[)/(g`|].x0,x0+r.[)) by A83,XBOOLE_1:
1;
      lim_right(((f`|].x0,x0+r.[)/(g`|].x0,x0+r.[)),x0)=
    lim_right(((f`|].x0,x0+r.[)/(g`|].x0,x0+r.[)),x0);
    then A91: ((f`|].x0,x0+r.[)/(g`|].x0,x0+r.[))*b is convergent &
    lim (((f`|].x0,x0+r.[)/(g`|].x0,x0+r.[))*b) =
    lim_right(((f`|].x0,x0+r.[)/(g`|].x0,x0+r.[)),x0)
      by A1,A81,A82,A83,LIMFUNC2:def 8;
    A92: now take m = 0; let n such that m <=n;
           (((f/g)*a)^\k).n=((f`|].x0,x0+r.[)/(g`|].x0,x0+r.[)).(b.n) by A74;
         hence (((f/g)*a)^\k).n = (((f`|].x0,x0+r.[)/(g`|].x0,x0+r.[))*b).n
         by A90,RFUNCT_2:21;
        end;
    then A93: ((f/g)*a)^\k is convergent by A91,SEQ_4:31;
       lim (((f/g)*a)^\k) =
    lim_right(((f`|].x0,x0+r.[)/(g`|].x0,x0+r.[)),x0) by A91,A92,SEQ_4:32;
    hence thesis by A93,SEQ_4:35,36;
   end;
  hence f/g is_right_convergent_in x0 by A65,Th2;
  take r; thus r>0 by A1;
  thus thesis by A65,A66,Th2;
 end;

theorem
  (ex r st r>0 & 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
  given r such that
  A1: r>0 & 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;
  A2: for x st x0-r<x & x<x0 ex c st c in ].x,x0.[ &
  (f/g).x=((f`|].x0-r,x0.[)/(g`|].x0-r,x0.[)).c
   proof
    let x; assume
    A3: x0-r<x & x<x0;
    then x in {g1:x0-r<g1 & g1<x0};
    then A4: x in ].x0-r,x0.[ by RCOMP_1:def 2;
    A5: f is_continuous_on ].x0-r,x0.[ by A1,FDIFF_1:33;
    A6: g is_continuous_on ].x0-r,x0.[ by A1,FDIFF_1:33;
    A7: ].x,x0.[ c= ].x0-r,x0.[
       proof
         let y be set;
         assume y in ].x,x0.[;
         then y in {g2:x<g2 & g2<x0} by RCOMP_1:def 2;
         then consider g2 such that A8: g2=y & x<g2 & g2<x0;
           x0-r<g2 by A3,A8,AXIOMS:22;
         then y in {g3:x0-r<g3 & g3<x0} by A8;
         hence y in ].x0-r,x0.[ by RCOMP_1:def 2;
        end;
    then A9: f is_differentiable_on ].x,x0.[ by A1,FDIFF_1:34;
    A10: g is_differentiable_on ].x,x0.[ by A1,A7,FDIFF_1:34;
      f is_differentiable_in x by A1,A4,FDIFF_1:16;
    then A11: f is_continuous_in x by FDIFF_1:32;
      g is_differentiable_in x by A1,A4,FDIFF_1:16;
    then A12: g is_continuous_in x by FDIFF_1:32;
    A13: f is_continuous_on [.x,x0.] & g is_continuous_on [.x,x0.]
        proof
        A14: [.x,x0.] c= dom f
             proof
                ].x0-r,x0.[ c= dom f by A5,FCONT_1:14;
              then A15: ].x,x0.[ c= dom f by A7,XBOOLE_1:1;
              A16: x0 in dom f by A1,FCONT_1:2;
                x in dom f by A11,FCONT_1:2;
              then {x,x0} c= dom f by A16,ZFMISC_1:38;
              then ].x,x0.[ \/ {x,x0} c= dom f by A15,XBOOLE_1:8;
              hence thesis by A3,RCOMP_1:11;
             end;
          for s st rng s c= [.x,x0.] & s is convergent & lim s in [.x,x0.]
             holds f*s is convergent & f.(lim s) = lim (f*s)
         proof
          let s;
          assume A17: rng s c= [.x,x0.] & s is convergent & lim s in [.x,x0.];
          set z = lim s;
          A18: rng s c= dom f by A14,A17,XBOOLE_1:1;
A19:          z in ].x,x0.[ \/ {x,x0} by A3,A17,RCOMP_1:11;
            now per cases by A19,XBOOLE_0:def 2;
          suppose z in ].x,x0.[;
           then f is_differentiable_in z by A1,A7,FDIFF_1:16;
           then f is_continuous_in z by FDIFF_1:32;
           hence thesis by A17,A18,FCONT_1:def 1;
          suppose A20: z in {x,x0};
              now per cases by A20,TARSKI:def 2;
             suppose z = x0;
              hence thesis by A1,A17,A18,FCONT_1:def 1;
             suppose z = x;
              hence thesis by A11,A17,A18,FCONT_1:def 1;
             end;
            hence thesis;
           end;
          hence thesis;
         end;
        hence f is_continuous_on [.x,x0.] by A14,FCONT_1:14;
        A21: [.x,x0.] c= dom g
             proof
                ].x0-r,x0.[ c= dom g by A6,FCONT_1:14;
              then A22: ].x,x0.[ c= dom g by A7,XBOOLE_1:1;
              A23: x0 in dom g by A1,FCONT_1:2;
                x in dom g by A12,FCONT_1:2;
              then {x,x0} c= dom g by A23,ZFMISC_1:38;
              then ].x,x0.[ \/ {x,x0} c= dom g by A22,XBOOLE_1:8;
              hence thesis by A3,RCOMP_1:11;
             end;
          for s st rng s c= [.x,x0.] & s is convergent & lim s in [.x,x0.]
             holds g*s is convergent & g.(lim s) = lim (g*s)
         proof let s such that
          A24: rng s c= [.x,x0.] & s is convergent & lim s in [.x,x0.];
          set z = lim s;
          A25: rng s c= dom g by A21,A24,XBOOLE_1:1;
A26:          z in ].x,x0.[ \/ {x,x0} by A3,A24,RCOMP_1:11;
            now per cases by A26,XBOOLE_0:def 2;
          suppose z in ].x,x0.[;
           then g is_differentiable_in z by A1,A7,FDIFF_1:16;
           then g is_continuous_in z by FDIFF_1:32;
           hence thesis by A24,A25,FCONT_1:def 1;
          suppose A27: z in {x,x0};
              now per cases by A27,TARSKI:def 2;
             suppose z = x0;
              hence thesis by A1,A24,A25,FCONT_1:def 1;
             suppose z = x;
              hence thesis by A12,A24,A25,FCONT_1:def 1;
             end;
            hence thesis;
           end;
          hence thesis;
         end;
        hence thesis by A21,FCONT_1:14;
      end;
    then A28: (g.x)(#)f is_continuous_on [.x,x0.] by FCONT_1:21;
      (f.x)(#)g is_continuous_on [.x,x0.] by A13,FCONT_1:21;
    then A29: (f.x)(#)g - (g.x)(#)f is_continuous_on [.x,x0.] by A28,FCONT_1:19
;
    A30: dom ((g.x)(#)f) = dom f by SEQ_1:def 6;
    A31: dom ((f.x)(#)g) = dom g by SEQ_1:def 6;
    A32: ].x0-r,x0.[ c= dom ((g.x)(#)f) by A5,A30,FCONT_1:14;
    A33: ].x0-r,x0.[ c= dom ((f.x)(#)g) by A6,A31,FCONT_1:14;
    A34: ].x,x0.[ c= dom ((g.x)(#)f) by A7,A32,XBOOLE_1:1;
    then A35: (g.x)(#)f is_differentiable_on ].x,x0.[ by A9,FDIFF_1:28;
    A36: ].x,x0.[ c= dom ((f.x)(#)g) by A7,A33,XBOOLE_1:1;
    then ].x,x0.[ c= dom ((f.x)(#)g) /\ dom ((g.x)(#)f) by A34,XBOOLE_1:19;
    then A37: ].x,x0.[ c= dom ((f.x)(#)g - (g.x)(#)f) by SEQ_1:def 4;
    A38: (f.x)(#)g is_differentiable_on ].x,x0.[ by A10,A36,FDIFF_1:28;
    then A39: (f.x)(#)g-(g.x)(#)
f is_differentiable_on ].x,x0.[ by A35,A37,FDIFF_1:27;
    set f1 = (f.x)(#)g - (g.x)(#)f;
    A40: [.x,x0.] c= dom f1 by A29,FCONT_1:def 2;
    A41: x0 in [.x,x0.] & x in [.x,x0.] by A3,RCOMP_1:15;
    then x0 in dom f1 & x in dom f1 by A40;
    then x0 in dom ((f.x)(#)g) /\ dom ((g.x)(#)f) & x in dom ((f.x)(#)g) /\
 dom ((g.x)
(#)f)
     by SEQ_1:def 4;
    then A42: x0 in dom ((f.x)(#)g) & x0 in dom ((g.x)(#)f) & x in dom ((f.x)
(#)g) &
    x in dom ((g.x)(#)f) by XBOOLE_0:def 3;
    A43: f1.x0 = ((f.x)(#)g).x0 - ((g.x)(#)f).x0 by A40,A41,SEQ_1:def 4
         .= (f.x)*(g.x0) - ((g.x)(#)f).x0 by A42,SEQ_1:def 6
         .= 0 - (g.x)*0 by A1,A42,SEQ_1:def 6
         .= 0;
      f1.x = ((f.x)(#)g).x - ((g.x)(#)f).x by A40,A41,SEQ_1:def 4
         .= (f.x)*(g.x) - ((g.x)(#)f).x by A42,SEQ_1:def 6
         .= (g.x)*(f.x) - (g.x)*(f.x) by A42,SEQ_1:def 6
         .= 0 by XCMPLX_1:14;
    then consider t such that
    A44: t in ].x,x0.[ & diff(f1,t)=0 by A3,A29,A39,A43,ROLLE:1;
    take t;
    A45: (f.x)(#)g is_differentiable_in t by A38,A44,FDIFF_1:16;
      (g.x)(#)f is_differentiable_in t by A35,A44,FDIFF_1:16;
    then A46: 0=diff((f.x)(#)g,t) - diff((g.x)(#)f,t) by A44,A45,FDIFF_1:22;
    A47: g is_differentiable_in t by A1,A7,A44,FDIFF_1:16;
      f is_differentiable_in t by A1,A7,A44,FDIFF_1:16;
    then 0=diff((f.x)(#)g,t) - (g.x)*diff(f,t) by A46,FDIFF_1:23;
    then 0=(f.x)*diff(g,t) - (g.x)*diff(f,t) by A47,FDIFF_1:23;
    then A48: (f.x)*diff(g,t)=(g.x)*diff(f,t) by XCMPLX_1:15;
       now
      let y be set;
      assume y in [.x,x0.]\{x0};
      then A49: y in [.x,x0.] & not y in {x0} by XBOOLE_0:def 4;
      then y in {g4: x<=g4 & g4<=x0} by RCOMP_1:def 1;
      then consider g4 such that A50: g4=y & x<=g4 & g4<=x0;
      A51: x0-r<g4 by A3,A50,AXIOMS:22;
        x0<>g4 by A49,A50,TARSKI:def 1;
      then g4<x0 by A50,REAL_1:def 5;
      then y in {g5: x0-r<g5 & g5<x0} by A50,A51;
      hence y in ].x0-r,x0.[ by RCOMP_1:def 2;
     end;
    then [.x,x0.]\{x0} c= ].x0-r,x0.[ by TARSKI:def 3;
    then A52: [.x,x0.]\{x0} c= dom(f/g) by A1,XBOOLE_1:1;
    then A53: [.x,x0.]\{x0} c= dom f /\ (dom g\g"{0}) by RFUNCT_1:def 4;
      dom f /\ (dom g\g"{0}) c= dom g\g"{0} by XBOOLE_1:17;
    then A54: [.x,x0.]\{x0} c= dom g\g"{0} by A53,XBOOLE_1:1;
      not x in {x0} by A3,TARSKI:def 1;
    then A55: x in [.x,x0.]\{x0} by A41,XBOOLE_0:def 4;
    then A56: x in dom g & not x in g"{0} by A54,XBOOLE_0:def 4;
    A57: now assume g.x=0;
         then g.x in {0} by TARSKI:def 1;
         hence contradiction by A56,FUNCT_1:def 13;
        end;
    A58: x0-r<=x0 by A1,REAL_2:174;
    A59: ].x0-r,x0.[ c= [.x0-r,x0.] by RCOMP_1:15;
      x0 in {g6: x0-r<=g6 & g6<=x0} by A58;
    then x0 in [.x0-r,x0.] by RCOMP_1:def 1;
    then [.x,x0.] c= [.x0-r,x0.] by A4,A59,RCOMP_1:16;
    then A60: [.x,x0.] c= dom ((f`|].x0-r,x0.[)/(g`|].x0-r,x0.[)) by A1,
XBOOLE_1:1
;
    then A61: [.x,x0.] c= dom (f`|].x0-r,x0.[) /\
    (dom (g`|].x0-r,x0.[)\(g`|].x0-r,x0.[)"{0})
    by RFUNCT_1:def 4;
      dom (f`|].x0-r,x0.[) /\ (dom (g`|].x0-r,x0.[) \ (g`|].x0-r,x0.[)"{0}) c=
    dom (g`|].x0-r,x0.[)\(g`|].x0-r,x0.[)"{0}
     by XBOOLE_1:17;
    then A62: [.x,x0.] c= dom (g`|].x0-r,x0.[)\(g`|].x0-r,x0.[)"{0} by A61,
XBOOLE_1:1
;
      ].x,x0.[ c= [.x,x0.] by RCOMP_1:15;
    then A63: t in [.x,x0.] by A44;
    then A64: t in dom (g`|].x0-r,x0.[) &
    not t in (g`|].x0-r,x0.[)"{0} by A62,XBOOLE_0:def 4;
       now assume diff(g,t)=0;
         then (g`|].x0-r,x0.[).t=0 by A1,A7,A44,FDIFF_1:def 8;
         then (g`|].x0-r,x0.[).t in {0} by TARSKI:def 1;
         hence contradiction by A64,FUNCT_1:def 13;
        end;
    then (f.x)/(g.x) = diff(f,t)/diff(g,t) by A48,A57,XCMPLX_1:95;
    then (f.x)*(g.x)" = diff(f,t)/diff(g,t) by XCMPLX_0:def 9;
    then (f.x)*(g.x)" = diff(f,t)*diff(g,t)" by XCMPLX_0:def 9;
    then (f/g).x = diff(f,t)*diff(g,t)" by A52,A55,RFUNCT_1:def 4;
    then (f/g).x = ((f`|].x0-r,x0.[).t)*diff(g,t)" by A1,A7,A44,FDIFF_1:def 8;
    then (f/g).x = ((f`|].x0-r,x0.[).t)*((g`|].x0-r,x0.[).t)" by A1,A7,A44,
FDIFF_1:def 8;
    hence thesis by A44,A60,A63,RFUNCT_1:def 4;
   end;
  A65: for r1 st r1<x0 ex t st r1<t & t<x0 & t in dom (f/g) by A1,LIMFUNC2:3;
  A66: for a st a is convergent & lim a = x0 &
  rng a c= dom (f/g) /\ left_open_halfline(x0) holds
  (f/g)*a is convergent &
  lim((f/g)*a) = lim_left (((f`|].x0-r,x0.[)/(g`|].x0-r,x0.[)),x0)
   proof
    let a;
    assume A67: a is convergent & lim a = x0 &
               rng a c= dom (f/g) /\ left_open_halfline(x0);
    then consider k such that
    A68: for n st k<=n holds x0-r<a.n & a.n<x0+r by A1,LIMFUNC3:7;
    set a1 = a^\k;
     A69: now let n;
          A70: a1.n = a.(n+k) by SEQM_3:def 9;
            a.(n+k) in rng a by RFUNCT_2:10;
          then a.(n+k) in left_open_halfline(x0) by A67,XBOOLE_0:def 3;
          then a.(n+k) in {g1:g1<x0} by PROB_1:def 15;
          then ex g1 st a.(n+k)=g1 & g1<x0;
          hence a1.n<x0 by SEQM_3:def 9;
            k<=n+k by NAT_1:37;
          hence x0-r<a1.n by A68,A70;
         end;
        defpred X[Nat,real number] means
          $2 in ].a1.$1,x0.[ &
    (((f/g)*a)^\k).$1=((f`|].x0-r,x0.[)/(g`|].x0-r,x0.[)).$2;
    A71: for n ex c be real number st X[n,c]
         proof
          let n;
            x0-r<a1.n & a1.n<x0 by A69;
          then consider c such that
          A72: c in ].a1.n,x0.[ & (f/g).(a1.n)=
          ((f`|].x0-r,x0.[)/(g`|].x0-r,x0.[)).c by A2;
          take c;
            dom (f/g) /\ left_open_halfline(x0) c= dom (f/g) by XBOOLE_1:17;
          then A73: rng a c= dom (f/g) by A67,XBOOLE_1:1;
            rng a1 c= rng a by RFUNCT_2:7;
          then rng a1 c= dom (f/g) by A73,XBOOLE_1:1;
          then ((f/g)*(a^\k)).n=((f`|].x0-r,x0.[)/(g`|].x0-r,x0.[)).c
          by A72,RFUNCT_2:21;
          hence thesis by A72,A73,RFUNCT_2:22;
         end;
    consider b such that
    A74: for n holds X[n,b.n] from RealSeqChoice(A71);
    deffunc U(set) = x0;
    consider d being Real_Sequence such that
    A75: for n holds d.n=U(n) from ExRealSeq;
       now
      let n;
        d.n=x0 & d.(n+1)=x0 by A75;
      hence d.n=d.(n+1);
     end;
    then A76: d is constant by SEQM_3:16;
    then A77: d is convergent by SEQ_4:39;
    A78: lim d=d.0 by A76,SEQ_4:41
            .=x0 by A75;
    A79: a1 is convergent & lim a1=x0 by A67,SEQ_4:33;
     A80: now
          let n;
            b.n in ].a1.n,x0.[ by A74;
          then b.n in {g1:a1.n<g1 & g1<x0} by RCOMP_1:def 2;
          then ex g1 st g1=b.n & a1.n<g1 & g1<x0; hence a1.n<=b.n & b.n<=d.n
by A75;
         end;
    then A81: b is convergent by A77,A78,A79,SEQ_2:33;
    A82: lim b=x0 by A77,A78,A79,A80,SEQ_2:34;
    A83: rng b c=
    dom ((f`|].x0-r,x0.[)/(g`|].x0-r,x0.[)) /\ left_open_halfline(x0)
     proof
      let x be set;
      assume x in rng b;
      then consider n such that A84: x=b.n by RFUNCT_2:9;
      A85: x0-r<a1.n & a1.n<x0 by A69;
      A86: x in ].a1.n,x0.[ by A74,A84;
      then x in {g1:a1.n<g1 & g1<x0} by RCOMP_1:def 2; then ex g1 st
 g1 = x & a1.n<g1 & g1<x0;
      then x in {g2: g2<x0};
      then A87: x in left_open_halfline(x0) by PROB_1:def 15;
      A88: ].a1.n,x0.[ c= [.a1.n,x0.] by RCOMP_1:15;
        x0-r<=x0 by A1,REAL_2:174;
      then x0 in {g3: x0-r<=g3 & g3<=x0};
      then A89: x0 in [.x0-r,x0.] by RCOMP_1:def 1;
        a1.n in {g4: x0-r<=g4 & g4<=x0} by A85;
      then a1.n in [.x0-r,x0.] by RCOMP_1:def 1;
      then [.a1.n,x0.] c= [.x0-r,x0.] by A89,RCOMP_1:16;
      then ].a1.n,x0.[ c= [.x0-r,x0.] by A88,XBOOLE_1:1;
      then ].a1.n,x0.[ c= dom ((f`|].x0-r,x0.[)/(g`|].x0-r,x0.[)) by A1,
XBOOLE_1:1;
hence x in dom ((f`|].x0-r,x0.[)/(g`|].x0-r,x0.[)) /\
      left_open_halfline(x0) by A86,A87,XBOOLE_0:def 3;
     end;
      dom ((f`|].x0-r,x0.[)/(g`|].x0-r,x0.[)) /\ left_open_halfline(x0) c=
    dom ((f`|].x0-r,x0.[)/(g`|].x0-r,x0.[)) by XBOOLE_1:17;
    then A90: rng b c= dom ((f`|].x0-r,x0.[)/(g`|].x0-r,x0.[)) by A83,XBOOLE_1:
1;
      lim_left(((f`|].x0-r,x0.[)/(g`|].x0-r,x0.[)),x0)=
    lim_left(((f`|].x0-r,x0.[)/(g`|].x0-r,x0.[)),x0);
    then A91: ((f`|].x0-r,x0.[)/(g`|].x0-r,x0.[))*b is convergent &
    lim (((f`|].x0-r,x0.[)/(g`|].x0-r,x0.[))*b) =
    lim_left(((f`|].x0-r,x0.[)/(g`|].x0-r,x0.[)),x0)
      by A1,A81,A82,A83,LIMFUNC2:def 7;
    A92: now take m = 0; let n such that m <=n;
           (((f/g)*a)^\k).n=((f`|].x0-r,x0.[)/(g`|].x0-r,x0.[)).(b.n) by A74;
         hence (((f/g)*a)^\k).n = (((f`|].x0-r,x0.[)/(g`|].x0-r,x0.[))*b).n
         by A90,RFUNCT_2:21;
        end;
    then A93: ((f/g)*a)^\k is convergent by A91,SEQ_4:31;
       lim (((f/g)*a)^\k) =
    lim_left(((f`|].x0-r,x0.[)/(g`|].x0-r,x0.[)),x0) by A91,A92,SEQ_4:32;
    hence thesis by A93,SEQ_4:35,36;
   end;
  hence f/g is_left_convergent_in x0 by A65,Th3;
  take r; thus r>0 by A1;
  thus thesis by A65,A66,Th3;
 end;

theorem
  (ex N being Neighbourhood of x0 st 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: 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;
  consider r be real number such that
  A2: 0<r & N = ].x0-r,x0+r.[ by RCOMP_1:def 7;
A3: r is Real by XREAL_0:def 1;
  A4: for x st x0<x & x<x0+r ex c st c in ].x0,x.[ & (f/g).x=((f`|N)/(g`|N)).c
   proof
    let x such that
    A5: x0<x & x<x0+r;
    A6: f is_continuous_on N by A1,FDIFF_1:33;
    A7: g is_continuous_on N by A1,FDIFF_1:33;
    A8: x0-r<x0 by A2,SQUARE_1:29;
      x0+0<x0+r by A2,REAL_1:67;
    then x0 in {g1: x0-r<g1 & g1<x0+r} by A8;
    then A9: x0 in ].x0-r,x0+r.[ by RCOMP_1:def 2;
      x0-r<x by A5,A8,AXIOMS:22;
    then x in {g1: x0-r<g1 & g1<x0+r} by A5;
    then x in ].x0-r,x0+r.[ by RCOMP_1:def 2;
    then A10: [.x0,x.] c= N by A2,A9,RCOMP_1:17;
    then f is_continuous_on [.x0,x.] by A6,FCONT_1:17;
    then A11: (g.x)(#)f is_continuous_on [.x0,x.] by FCONT_1:21;
      g is_continuous_on [.x0,x.] by A7,A10,FCONT_1:17;
    then (f.x)(#)g is_continuous_on [.x0,x.] by FCONT_1:21;
    then A12: (f.x)(#)g - (g.x)(#)f is_continuous_on [.x0,x.] by A11,FCONT_1:19
;
    A13: dom ((g.x)(#)f) = dom f by SEQ_1:def 6;
    A14: dom ((f.x)(#)g) = dom g by SEQ_1:def 6;
    A15: N c= dom ((g.x)(#)f) by A6,A13,FCONT_1:14;
    A16: N c= dom ((f.x)(#)g) by A7,A14,FCONT_1:14;
    A17: ].x0,x.[ c= [.x0,x.] by RCOMP_1:15;
    then A18: ].x0,x.[ c= N by A10,XBOOLE_1:1;
    then A19: f is_differentiable_on ].x0,x.[ by A1,FDIFF_1:34;
    A20: ].x0,x.[ c= dom ((g.x)(#)f) by A15,A18,XBOOLE_1:1;
    then A21: (g.x)(#)f is_differentiable_on ].x0,x.[ by A19,FDIFF_1:28;
    A22: ].x0,x.[ c= dom ((f.x)(#)g) by A16,A18,XBOOLE_1:1;
    then ].x0,x.[ c= dom ((f.x)(#)g) /\ dom ((g.x)(#)f) by A20,XBOOLE_1:19
;
    then A23: ].x0,x.[ c= dom ((f.x)(#)g - (g.x)(#)f) by SEQ_1:def 4;
    A24: g is_differentiable_on ].x0,x.[ by A1,A18,FDIFF_1:34;
    then A25: (f.x)(#)g is_differentiable_on ].x0,x.[ by A22,FDIFF_1:28;
    then A26: (f.x)(#)g-(g.x)(#)
f is_differentiable_on ].x0,x.[ by A21,A23,FDIFF_1:27;
    set f1 = (f.x)(#)g - (g.x)(#)f;
    A27: [.x0,x.] c= dom f1 by A12,FCONT_1:def 2;
    A28: x0 in [.x0,x.] & x in [.x0,x.] by A5,RCOMP_1:15;
    then x0 in dom f1 & x in dom f1 by A27;
    then x0 in dom ((f.x)(#)g) /\ dom ((g.x)(#)f) & x in dom ((f.x)(#)g) /\
 dom ((g.x)
(#)f)
     by SEQ_1:def 4;
    then A29: x0 in dom ((f.x)(#)g) & x0 in dom ((g.x)(#)f) & x in dom ((f.x)
(#)g) &
    x in dom ((g.x)(#)f) by XBOOLE_0:def 3;
    A30: f1.x0 = ((f.x)(#)g).x0 - ((g.x)(#)f).x0 by A27,A28,SEQ_1:def 4
         .= (f.x)*(g.x0) - ((g.x)(#)f).x0 by A29,SEQ_1:def 6
         .= 0 - (g.x)*0 by A1,A29,SEQ_1:def 6
         .= 0;
      f1.x = ((f.x)(#)g).x - ((g.x)(#)f).x by A27,A28,SEQ_1:def 4
         .= (f.x)*(g.x) - ((g.x)(#)f).x by A29,SEQ_1:def 6
         .= (g.x)*(f.x) - (g.x)*(f.x) by A29,SEQ_1:def 6
         .= 0 by XCMPLX_1:14;
    then consider t such that
    A31: t in ].x0,x.[ & diff(f1,t)=0 by A5,A12,A26,A30,ROLLE:1;
    take t;
    A32: (f.x)(#)g is_differentiable_in t by A25,A31,FDIFF_1:16;
      (g.x)(#)f is_differentiable_in t by A21,A31,FDIFF_1:16;
    then A33: 0=diff((f.x)(#)g,t) - diff((g.x)(#)f,t) by A31,A32,FDIFF_1:22;
    A34: g is_differentiable_in t by A24,A31,FDIFF_1:16;
      f is_differentiable_in t by A19,A31,FDIFF_1:16;
    then 0=diff((f.x)(#)g,t) - (g.x)*diff(f,t) by A33,FDIFF_1:23;
    then 0=(f.x)*diff(g,t) - (g.x)*diff(f,t) by A34,FDIFF_1:23;
    then A35: (f.x)*diff(g,t)=(g.x)*diff(f,t) by XCMPLX_1:15;
      [.x0,x.]\{x0} c= N\{x0} by A10,XBOOLE_1:33;
    then A36: [.x0,x.]\{x0} c= dom(f/g) by A1,XBOOLE_1:1;
    then A37: [.x0,x.]\{x0} c= dom f /\ (dom g\g"{0}) by RFUNCT_1:def 4;
      dom f /\ (dom g\g"{0}) c= dom g\g"{0} by XBOOLE_1:17;
    then A38: [.x0,x.]\{x0} c= dom g\g"{0} by A37,XBOOLE_1:1;
      not x in {x0} by A5,TARSKI:def 1;
    then A39: x in [.x0,x.]\{x0} by A28,XBOOLE_0:def 4;
    then A40: x in dom g & not x in g"{0} by A38,XBOOLE_0:def 4;
    A41: now assume g.x=0;
         then g.x in {0} by TARSKI:def 1;
         hence contradiction by A40,FUNCT_1:def 13;
        end;
    A42: [.x0,x.] c= dom ((f`|N)/(g`|N)) by A1,A10,XBOOLE_1:1;
    then A43: [.x0,x.] c= dom (f`|N) /\ (dom (g`|N)\(g`|N)"{0}) by RFUNCT_1:def
4;
      dom (f`|N) /\ (dom (g`|N) \ (g`|N)"{0}) c= dom (g`|N)\(g`|N)"{0}
     by XBOOLE_1:17;
    then A44: [.x0,x.] c= dom (g`|N)\(g`|N)"{0} by A43,XBOOLE_1:1;
    A45: t in [.x0,x.] by A17,A31;
    then A46: t in dom (g`|N) & not t in (g`|N)"{0} by A44,XBOOLE_0:def 4;
       now assume diff(g,t)=0;
         then (g`|N).t=0 by A1,A10,A45,FDIFF_1:def 8;
         then (g`|N).t in {0} by TARSKI:def 1;
         hence contradiction by A46,FUNCT_1:def 13;
        end;
    then (f.x)/(g.x) = diff(f,t)/diff(g,t) by A35,A41,XCMPLX_1:95;
    then (f.x)*(g.x)" = diff(f,t)/diff(g,t) by XCMPLX_0:def 9;
    then (f.x)*(g.x)" = diff(f,t)*diff(g,t)" by XCMPLX_0:def 9;
    then (f/g).x = diff(f,t)*diff(g,t)" by A36,A39,RFUNCT_1:def 4;
    then (f/g).x = ((f`|N).t)*diff(g,t)" by A1,A10,A45,FDIFF_1:def 8;
    then (f/g).x = ((f`|N).t)*((g`|N).t)" by A1,A10,A45,FDIFF_1:def 8;
    hence thesis by A31,A42,A45,RFUNCT_1:def 4;
   end;
    for r1,r2 st r1<x0 & x0<r2
  ex g1,g2 st r1<g1 & g1<x0 & g1 in dom (f/g) & g2<r2 &
   x0<g2 & g2 in dom (f/g) by A1,Th4;
  then A47: (for r1 st x0<r1 ex t st t<r1 & x0<t & t in dom (f/g)) &
      for r1 st r1<x0 ex t st r1<t & t<x0 & t in dom (f/g) by LIMFUNC3:8;
    for a st a is convergent & lim a = x0 &
  rng a c= dom (f/g) /\ right_open_halfline(x0) holds
  (f/g)*a is convergent & lim((f/g)*a) = lim(((f`|N)/(g`|N)),x0)
   proof
    let a;
    assume A48: a is convergent & lim a = x0 &
               rng a c= dom (f/g) /\ right_open_halfline(x0);
    then consider k such that
    A49: for n st k<=n holds x0-r<a.n & a.n<x0+r by A2,A3,LIMFUNC3:7;
    set a1 = a^\k;
     A50: now let n;
          A51: a1.n = a.(n+k) by SEQM_3:def 9;
            a.(n+k) in rng a by RFUNCT_2:10;
          then a.(n+k) in right_open_halfline(x0) by A48,XBOOLE_0:def 3;
          then a.(n+k) in {g1:x0<g1} by LIMFUNC1:def 3;
          then ex g1 st a.(n+k)=g1 & x0<g1;
          hence x0<a1.n by SEQM_3:def 9;
            k<=n+k by NAT_1:37;
          hence a1.n<x0+r by A49,A51;
         end;
        defpred X[Nat,real number] means
         $2 in ].x0,a1.$1.[ & (((f/g)*a)^\k).$1=((f`|N)/(g`|N)).$2;
    A52: for n ex c be real number st X[n,c]
         proof
          let n;
            x0<a1.n & a1.n<x0+r by A50;
          then consider c such that
          A53: c in ].x0,a1.n.[ & (f/g).(a1.n)=((f`|N)/(g`|N)).c by A4;
          take c;
            dom (f/g) /\ right_open_halfline(x0) c= dom (f/g) by XBOOLE_1:17
;
          then A54: rng a c= dom (f/g) by A48,XBOOLE_1:1;
            rng a1 c= rng a by RFUNCT_2:7;
          then rng a1 c= dom (f/g) by A54,XBOOLE_1:1;
          then ((f/g)*(a^\k)).n=((f`|N)/(g`|N)).c by A53,RFUNCT_2:21;
          hence thesis by A53,A54,RFUNCT_2:22;
         end;
    consider b such that
    A55: for n holds X[n,b.n] from RealSeqChoice(A52);
    deffunc U(set) = x0;
    consider d being Real_Sequence such that
    A56: for n holds d.n=U(n) from ExRealSeq;
       now
      let n;
        d.n=x0 & d.(n+1)=x0 by A56;
      hence d.n=d.(n+1);
     end;
    then A57: d is constant by SEQM_3:16;
    then A58: d is convergent by SEQ_4:39;
    A59: lim d=d.0 by A57,SEQ_4:41
            .=x0 by A56;
    A60: a1 is convergent & lim a1=x0 by A48,SEQ_4:33;
     A61: now
          let n;
            b.n in ].x0,a1.n.[ by A55;
          then b.n in {g1:x0<g1 & g1<a1.n} by RCOMP_1:def 2;
          then ex g1 st g1=b.n & x0<g1 & g1<a1.n; hence d.n<=b.n & b.n<=a1.n
by A56;
         end;
    then A62: b is convergent by A58,A59,A60,SEQ_2:33;
    A63: lim b=x0 by A58,A59,A60,A61,SEQ_2:34;
    A64: x0-r<x0 by A2,SQUARE_1:29;
      x0<x0+r by A2,REAL_2:174;
    then x0 in {g2: x0-r<g2 & g2<x0+r} by A64;
    then A65: x0 in ].x0-r,x0+r.[ by RCOMP_1:def 2;
    A66: rng b c= dom ((f`|N)/(g`|N)) \{x0}
     proof
      let x be set;
      assume x in rng b;
      then consider n such that A67: x=b.n by RFUNCT_2:9;
      A68: x0<a1.n & a1.n<x0+r by A50;
      A69: x in ].x0,a1.n.[ by A55,A67;
      then x in {g1:x0<g1 & g1<a1.n} by RCOMP_1:def 2; then A70: ex g1 st
 g1 = x & x0<g1 & g1<a1.n;
      A71: ].x0,a1.n.[ c= [.x0,a1.n.] by RCOMP_1:15;
        x0-r<a1.n by A64,A68,AXIOMS:22;
      then a1.n in {g3: x0-r<g3 & g3<x0+r} by A68;
      then a1.n in ].x0-r,x0+r.[ by RCOMP_1:def 2;
      then [.x0,a1.n.] c= ].x0-r,x0+r.[ by A65,RCOMP_1:17;
      then ].x0,a1.n.[ c= ].x0-r,x0+r.[ by A71,XBOOLE_1:1;
      then A72: ].x0,a1.n.[ c= dom ((f`|N)/(g`|N)) by A1,A2,XBOOLE_1:1;
        not x in {x0} by A70,TARSKI:def 1;
      hence x in dom ((f`|N)/(g`|N))\{x0} by A69,A72,XBOOLE_0:def 4;
     end;
      dom ((f`|N)/(g`|N)) \{x0} c= dom ((f`|N)/(g`|N)) by XBOOLE_1:36;
    then A73: rng b c= dom ((f`|N)/(g`|N)) by A66,XBOOLE_1:1;
      lim(((f`|N)/(g`|N)),x0)=lim(((f`|N)/(g`|N)),x0);
    then A74: ((f`|N)/(g`|N))*b is convergent &
    lim (((f`|N)/(g`|N))*b) = lim(((f`|N)/(g`|N)),x0)
      by A1,A62,A63,A66,LIMFUNC3:def 4;
    A75: now take m = 0; let n such that m <=n;
           (((f/g)*a)^\k).n=((f`|N)/(g`|N)).(b.n) by A55;
         hence (((f/g)*a)^\k).n = (((f`|N)/(g`|N))*b).n by A73,RFUNCT_2:21;
        end;
    then A76: ((f/g)*a)^\k is convergent by A74,SEQ_4:31;
       lim (((f/g)*a)^\k) = lim(((f`|N)/(g`|N)),x0) by A74,A75,SEQ_4:32;
    hence thesis by A76,SEQ_4:35,36;
   end;
  then A77: f/g is_right_convergent_in x0 & lim_right(f/g,x0)=lim(((f`|N)/(g`|N
)),x0)
      by A47,Th2;
  A78: for x st x0-r<x & x<x0 ex c st c in ].x,x0.[ & (f/g).x=((f`|N)/(g`|N)).c
   proof
    let x such that
    A79: x0-r<x & x<x0;
    A80: f is_continuous_on N by A1,FDIFF_1:33;
    A81: g is_continuous_on N by A1,FDIFF_1:33;
    A82: x0-r<x0 by A2,SQUARE_1:29;
    A83: x0+0<x0+r by A2,REAL_1:67;
    then x0 in {g1: x0-r<g1 & g1<x0+r} by A82;
    then A84: x0 in ].x0-r,x0+r.[ by RCOMP_1:def 2;
      x<x0+r by A79,A83,AXIOMS:22;
    then x in {g1: x0-r<g1 & g1<x0+r} by A79;
    then x in ].x0-r,x0+r.[ by RCOMP_1:def 2;
    then A85: [.x,x0.] c= N by A2,A84,RCOMP_1:17;
    then f is_continuous_on [.x,x0.] by A80,FCONT_1:17;
    then A86: (g.x)(#)f is_continuous_on [.x,x0.] by FCONT_1:21;
      g is_continuous_on [.x,x0.] by A81,A85,FCONT_1:17;
    then (f.x)(#)g is_continuous_on [.x,x0.] by FCONT_1:21;
    then A87: (f.x)(#)g - (g.x)(#)f is_continuous_on [.x,x0.] by A86,FCONT_1:19
;
    A88: dom ((g.x)(#)f) = dom f by SEQ_1:def 6;
    A89: dom ((f.x)(#)g) = dom g by SEQ_1:def 6;
    A90: N c= dom ((g.x)(#)f) by A80,A88,FCONT_1:14;
    A91: N c= dom ((f.x)(#)g) by A81,A89,FCONT_1:14;
    A92: ].x,x0.[ c= [.x,x0.] by RCOMP_1:15;
    then A93: ].x,x0.[ c= N by A85,XBOOLE_1:1;
    then A94: f is_differentiable_on ].x,x0.[ by A1,FDIFF_1:34;
    A95: ].x,x0.[ c= dom ((g.x)(#)f) by A90,A93,XBOOLE_1:1;
    then A96: (g.x)(#)f is_differentiable_on ].x,x0.[ by A94,FDIFF_1:28;
    A97: ].x,x0.[ c= dom ((f.x)(#)g) by A91,A93,XBOOLE_1:1;
    then ].x,x0.[ c= dom ((f.x)(#)g) /\ dom ((g.x)(#)f) by A95,XBOOLE_1:19
;
    then A98: ].x,x0.[ c= dom ((f.x)(#)g - (g.x)(#)f) by SEQ_1:def 4;
    A99: g is_differentiable_on ].x,x0.[ by A1,A93,FDIFF_1:34;
    then A100: (f.x)(#)g is_differentiable_on ].x,x0.[ by A97,FDIFF_1:28;
    then A101: (f.x)(#)g-(g.x)(#)
f is_differentiable_on ].x,x0.[ by A96,A98,FDIFF_1:27
;
    set f1 = (f.x)(#)g - (g.x)(#)f;
    A102: [.x,x0.] c= dom f1 by A87,FCONT_1:def 2;
    A103: x0 in [.x,x0.] & x in [.x,x0.] by A79,RCOMP_1:15;
    then x0 in dom f1 & x in dom f1 by A102;
    then x0 in dom ((f.x)(#)g) /\ dom ((g.x)(#)f) & x in dom ((f.x)(#)g) /\
 dom ((g.x)
(#)f)
     by SEQ_1:def 4;
    then A104: x0 in dom ((f.x)(#)g) & x0 in dom ((g.x)(#)f) & x in dom ((f.x)
(#)
g) &
    x in dom ((g.x)(#)f) by XBOOLE_0:def 3;
    A105: f1.x0 = ((f.x)(#)g).x0 - ((g.x)(#)f).x0 by A102,A103,SEQ_1:def 4
         .= (f.x)*(g.x0) - ((g.x)(#)f).x0 by A104,SEQ_1:def 6
         .= 0 - (g.x)*0 by A1,A104,SEQ_1:def 6
         .= 0;
      f1.x = ((f.x)(#)g).x - ((g.x)(#)f).x by A102,A103,SEQ_1:def 4
         .= (f.x)*(g.x) - ((g.x)(#)f).x by A104,SEQ_1:def 6
         .= (g.x)*(f.x) - (g.x)*(f.x) by A104,SEQ_1:def 6
         .= 0 by XCMPLX_1:14;
    then consider t such that
    A106: t in ].x,x0.[ & diff(f1,t)=0 by A79,A87,A101,A105,ROLLE:1;
    take t;
    A107: (f.x)(#)g is_differentiable_in t by A100,A106,FDIFF_1:16;
      (g.x)(#)f is_differentiable_in t by A96,A106,FDIFF_1:16;
    then A108: 0=diff((f.x)(#)g,t) - diff((g.x)(#)f,t) by A106,A107,FDIFF_1:22;
    A109: g is_differentiable_in t by A99,A106,FDIFF_1:16;
      f is_differentiable_in t by A94,A106,FDIFF_1:16;
    then 0=diff((f.x)(#)g,t) - (g.x)*diff(f,t) by A108,FDIFF_1:23;
    then 0=(f.x)*diff(g,t) - (g.x)*diff(f,t) by A109,FDIFF_1:23;
    then A110: (f.x)*diff(g,t)=(g.x)*diff(f,t) by XCMPLX_1:15;
      [.x,x0.]\{x0} c= N\{x0} by A85,XBOOLE_1:33;
    then A111: [.x,x0.]\{x0} c= dom(f/g) by A1,XBOOLE_1:1;
    then A112: [.x,x0.]\{x0} c= dom f /\ (dom g\g"{0}) by RFUNCT_1:def 4;
      dom f /\ (dom g\g"{0}) c= dom g\g"{0} by XBOOLE_1:17;
    then A113: [.x,x0.]\{x0} c= dom g\g"{0} by A112,XBOOLE_1:1;
      not x in {x0} by A79,TARSKI:def 1;
    then A114: x in [.x,x0.]\{x0} by A103,XBOOLE_0:def 4;
    then A115: x in dom g & not x in g"{0} by A113,XBOOLE_0:def 4;
    A116: now assume g.x=0;
         then g.x in {0} by TARSKI:def 1;
         hence contradiction by A115,FUNCT_1:def 13;
        end;
    A117: [.x,x0.] c= dom ((f`|N)/(g`|N)) by A1,A85,XBOOLE_1:1;
    then A118: [.x,x0.] c= dom (f`|N) /\ (dom (g`|N)\(g`|N)"{0}) by RFUNCT_1:
def 4;
      dom (f`|N) /\ (dom (g`|N) \ (g`|N)"{0}) c= dom (g`|N)\(g`|N)"{0}
     by XBOOLE_1:17;
    then A119: [.x,x0.] c= dom (g`|N)\(g`|N)"{0} by A118,XBOOLE_1:1;
    A120: t in [.x,x0.] by A92,A106;
    then A121: t in dom (g`|N) & not t in (g`|N)"{0} by A119,XBOOLE_0:def 4;
       now assume diff(g,t)=0;
         then (g`|N).t=0 by A1,A85,A120,FDIFF_1:def 8;
         then (g`|N).t in {0} by TARSKI:def 1;
         hence contradiction by A121,FUNCT_1:def 13;
        end;
    then (f.x)/(g.x) = diff(f,t)/diff(g,t) by A110,A116,XCMPLX_1:95;
    then (f.x)*(g.x)" = diff(f,t)/diff(g,t) by XCMPLX_0:def 9;
    then (f.x)*(g.x)" = diff(f,t)*diff(g,t)" by XCMPLX_0:def 9;
    then (f/g).x = diff(f,t)*diff(g,t)" by A111,A114,RFUNCT_1:def 4;
    then (f/g).x = ((f`|N).t)*diff(g,t)" by A1,A85,A120,FDIFF_1:def 8;
    then (f/g).x = ((f`|N).t)*((g`|N).t)" by A1,A85,A120,FDIFF_1:def 8;
    hence thesis by A106,A117,A120,RFUNCT_1:def 4;
   end;
    for a st a is convergent & lim a = x0 &
  rng a c= dom (f/g) /\ left_open_halfline(x0) holds
  (f/g)*a is convergent & lim((f/g)*a) = lim(((f`|N)/(g`|N)),x0)
   proof
    let a;
    assume A122: a is convergent & lim a = x0 &
               rng a c= dom (f/g) /\ left_open_halfline(x0);
    then consider k such that
    A123: for n st k<=n holds x0-r<a.n & a.n<x0+r by A2,A3,LIMFUNC3:7;
    set a1 = a^\k;
     A124: now let n;
          A125: a1.n = a.(n+k) by SEQM_3:def 9;
            a.(n+k) in rng a by RFUNCT_2:10;
          then a.(n+k) in left_open_halfline(x0) by A122,XBOOLE_0:def 3;
          then a.(n+k) in {g1:g1<x0} by PROB_1:def 15;
          then ex g1 st a.(n+k)=g1 & g1<x0;
          hence a1.n<x0 by SEQM_3:def 9;
            k<=n+k by NAT_1:37;
          hence x0-r<a1.n by A123,A125;
         end;
        defpred X[Nat,real number] means
        $2 in ].a1.$1,x0.[ & (((f/g)*a)^\k).$1=((f`|N)/(g`|N)).$2;
    A126: for n ex c be real number st X[n,c]
         proof
          let n;
            x0-r<a1.n & a1.n<x0 by A124;
          then consider c such that
          A127: c in ].a1.n,x0.[ & (f/g).(a1.n)=((f`|N)/(g`|N)).c by A78;
          take c;
            dom (f/g) /\ left_open_halfline(x0) c= dom (f/g) by XBOOLE_1:17;
          then A128: rng a c= dom (f/g) by A122,XBOOLE_1:1;
            rng a1 c= rng a by RFUNCT_2:7;
          then rng a1 c= dom (f/g) by A128,XBOOLE_1:1;
          then ((f/g)*(a^\k)).n=((f`|N)/(g`|N)).c by A127,RFUNCT_2:21;
          hence thesis by A127,A128,RFUNCT_2:22;
         end;
    consider b such that
    A129: for n holds X[n,b.n] from RealSeqChoice(A126);
    deffunc U(set) = x0;
    consider d being Real_Sequence such that
    A130: for n holds d.n=U(n) from ExRealSeq;
       now
      let n;
        d.n=x0 & d.(n+1)=x0 by A130;
      hence d.n=d.(n+1);
     end;
    then A131: d is constant by SEQM_3:16;
    then A132: d is convergent by SEQ_4:39;
    A133: lim d=d.0 by A131,SEQ_4:41
            .=x0 by A130;
    A134: a1 is convergent & lim a1=x0 by A122,SEQ_4:33;
     A135: now
          let n;
            b.n in ].a1.n,x0.[ by A129;
          then b.n in {g1:a1.n<g1 & g1<x0} by RCOMP_1:def 2;
          then ex g1 st g1=b.n & a1.n<g1 & g1<x0; hence a1.n<=b.n & b.n<=
d.n by A130;
         end;
    then A136: b is convergent by A132,A133,A134,SEQ_2:33;
    A137: lim b=x0 by A132,A133,A134,A135,SEQ_2:34;
    A138: x0-r<x0 by A2,SQUARE_1:29;
    A139: x0<x0+r by A2,REAL_2:174;
    then x0 in {g2: x0-r<g2 & g2<x0+r} by A138;
    then A140: x0 in ].x0-r,x0+r.[ by RCOMP_1:def 2;
    A141: rng b c= dom ((f`|N)/(g`|N)) \{x0}
     proof
      let x be set;
      assume x in rng b;
      then consider n such that A142: x=b.n by RFUNCT_2:9;
      A143: x0-r<a1.n & a1.n<x0 by A124;
      A144: x in ].a1.n,x0.[ by A129,A142;
      then x in {g1:a1.n<g1 & g1<x0} by RCOMP_1:def 2; then A145: ex g1 st
 g1 = x & a1.n<g1 & g1<x0;
      A146: ].a1.n,x0.[ c= [.a1.n,x0.] by RCOMP_1:15;
        a1.n<x0+r by A139,A143,AXIOMS:22;
      then a1.n in {g3: x0-r<g3 & g3<x0+r} by A143;
      then a1.n in ].x0-r,x0+r.[ by RCOMP_1:def 2;
      then [.a1.n,x0.] c= ].x0-r,x0+r.[ by A140,RCOMP_1:17;
      then ].a1.n,x0.[ c= ].x0-r,x0+r.[ by A146,XBOOLE_1:1;
      then A147: ].a1.n,x0.[ c= dom ((f`|N)/(g`|N)) by A1,A2,XBOOLE_1:1;
        not x in {x0} by A145,TARSKI:def 1;
      hence x in dom ((f`|N)/(g`|N))\{x0} by A144,A147,XBOOLE_0:def 4;
     end;
      dom ((f`|N)/(g`|N)) \{x0} c= dom ((f`|N)/(g`|N)) by XBOOLE_1:36;
    then A148: rng b c= dom ((f`|N)/(g`|N)) by A141,XBOOLE_1:1;
      lim(((f`|N)/(g`|N)),x0)=lim(((f`|N)/(g`|N)),x0);
    then A149: ((f`|N)/(g`|N))*b is convergent &
    lim (((f`|N)/(g`|N))*b) = lim(((f`|N)/(g`|N)),x0)
    by A1,A136,A137,A141,LIMFUNC3:def 4;
    A150: now take m = 0; let n such that m <=n;
           (((f/g)*a)^\k).n=((f`|N)/(g`|N)).(b.n) by A129;
         hence (((f/g)*a)^\k).n = (((f`|N)/(g`|N))*b).n by A148,RFUNCT_2:21;
        end;
    then A151: ((f/g)*a)^\k is convergent by A149,SEQ_4:31;
       lim (((f/g)*a)^\k) = lim(((f`|N)/(g`|N)),x0) by A149,A150,SEQ_4:32;
    hence thesis by A151,SEQ_4:35,36;
   end;
  then A152: f/g is_left_convergent_in x0 & lim_left(f/g,x0)=lim(((f`|N)/(g`|N)
),x0)
      by A47,Th3;
  hence f/g is_convergent_in x0 by A77,LIMFUNC3:34;
  take N;
  thus thesis by A77,A152,LIMFUNC3:34;
 end;

theorem
  (ex N being Neighbourhood of x0 st 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_continuous_in x0)
implies f/g is_convergent_in x0 & lim(f/g,x0) = diff(f,x0)/diff(g,x0)
 proof
  given N being Neighbourhood of x0 such that
  A1: 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_continuous_in x0;
  consider r be real number such that
  A2: 0<r & N = ].x0-r,x0+r.[ by RCOMP_1:def 7;
  A3: r is Real by XREAL_0:def 1;
  A4: for x st x0<x & x<x0+r ex c st c in ].x0,x.[ & (f/g).x=((f`|N)/(g`|N)).c
   proof
    let x such that
    A5: x0<x & x<x0+r;
    A6: f is_continuous_on N by A1,FDIFF_1:33;
    A7: g is_continuous_on N by A1,FDIFF_1:33;
    A8: x0-r<x0 by A2,SQUARE_1:29;
      x0+0<x0+r by A2,REAL_1:67;
    then x0 in {g1: x0-r<g1 & g1<x0+r} by A8;
    then A9: x0 in ].x0-r,x0+r.[ by RCOMP_1:def 2;
      x0-r<x by A5,A8,AXIOMS:22;
    then x in {g1: x0-r<g1 & g1<x0+r} by A5;
    then x in ].x0-r,x0+r.[ by RCOMP_1:def 2;
    then A10: [.x0,x.] c= N by A2,A9,RCOMP_1:17;
    then f is_continuous_on [.x0,x.] by A6,FCONT_1:17;
    then A11: (g.x)(#)f is_continuous_on [.x0,x.] by FCONT_1:21;
      g is_continuous_on [.x0,x.] by A7,A10,FCONT_1:17;
    then (f.x)(#)g is_continuous_on [.x0,x.] by FCONT_1:21;
    then A12: (f.x)(#)g - (g.x)(#)f is_continuous_on [.x0,x.] by A11,FCONT_1:19
;
    A13: dom ((g.x)(#)f) = dom f by SEQ_1:def 6;
    A14: dom ((f.x)(#)g) = dom g by SEQ_1:def 6;
    A15: N c= dom ((g.x)(#)f) by A6,A13,FCONT_1:14;
    A16: N c= dom ((f.x)(#)g) by A7,A14,FCONT_1:14;
    A17: ].x0,x.[ c= [.x0,x.] by RCOMP_1:15;
    then A18: ].x0,x.[ c= N by A10,XBOOLE_1:1;
    then A19: f is_differentiable_on ].x0,x.[ by A1,FDIFF_1:34;
    A20: ].x0,x.[ c= dom ((g.x)(#)f) by A15,A18,XBOOLE_1:1;
    then A21: (g.x)(#)f is_differentiable_on ].x0,x.[ by A19,FDIFF_1:28;
    A22: ].x0,x.[ c= dom ((f.x)(#)g) by A16,A18,XBOOLE_1:1;
    then ].x0,x.[ c= dom ((f.x)(#)g) /\ dom ((g.x)(#)f) by A20,XBOOLE_1:19
;
    then A23: ].x0,x.[ c= dom ((f.x)(#)g - (g.x)(#)f) by SEQ_1:def 4;
    A24: g is_differentiable_on ].x0,x.[ by A1,A18,FDIFF_1:34;
    then A25: (f.x)(#)g is_differentiable_on ].x0,x.[ by A22,FDIFF_1:28;
    then A26: (f.x)(#)g-(g.x)(#)
f is_differentiable_on ].x0,x.[ by A21,A23,FDIFF_1:27;
    set f1 = (f.x)(#)g - (g.x)(#)f;
    A27: [.x0,x.] c= dom f1 by A12,FCONT_1:def 2;
    A28: x0 in [.x0,x.] & x in [.x0,x.] by A5,RCOMP_1:15;
    then x0 in dom f1 & x in dom f1 by A27;
    then x0 in dom ((f.x)(#)g) /\ dom ((g.x)(#)f) & x in dom ((f.x)(#)g) /\
 dom ((g.x)
(#)f)
     by SEQ_1:def 4;
    then A29: x0 in dom ((f.x)(#)g) & x0 in dom ((g.x)(#)f) & x in dom ((f.x)
(#)g) &
    x in dom ((g.x)(#)f) by XBOOLE_0:def 3;
    A30: f1.x0 = ((f.x)(#)g).x0 - ((g.x)(#)f).x0 by A27,A28,SEQ_1:def 4
         .= (f.x)*(g.x0) - ((g.x)(#)f).x0 by A29,SEQ_1:def 6
         .= 0 - (g.x)*0 by A1,A29,SEQ_1:def 6
         .= 0;
      f1.x = ((f.x)(#)g).x - ((g.x)(#)f).x by A27,A28,SEQ_1:def 4
         .= (f.x)*(g.x) - ((g.x)(#)f).x by A29,SEQ_1:def 6
         .= (g.x)*(f.x) - (g.x)*(f.x) by A29,SEQ_1:def 6
         .= 0 by XCMPLX_1:14;
    then consider t such that
    A31: t in ].x0,x.[ & diff(f1,t)=0 by A5,A12,A26,A30,ROLLE:1;
    take t;
    A32: (f.x)(#)g is_differentiable_in t by A25,A31,FDIFF_1:16;
      (g.x)(#)f is_differentiable_in t by A21,A31,FDIFF_1:16;
    then A33: 0=diff((f.x)(#)g,t) - diff((g.x)(#)f,t) by A31,A32,FDIFF_1:22;
    A34: g is_differentiable_in t by A24,A31,FDIFF_1:16;
      f is_differentiable_in t by A19,A31,FDIFF_1:16;
    then 0=diff((f.x)(#)g,t) - (g.x)*diff(f,t) by A33,FDIFF_1:23;
    then 0=(f.x)*diff(g,t) - (g.x)*diff(f,t) by A34,FDIFF_1:23;
    then A35: (f.x)*diff(g,t)=(g.x)*diff(f,t) by XCMPLX_1:15;
      [.x0,x.]\{x0} c= N\{x0} by A10,XBOOLE_1:33;
    then A36: [.x0,x.]\{x0} c= dom(f/g) by A1,XBOOLE_1:1;
    then A37: [.x0,x.]\{x0} c= dom f /\ (dom g\g"{0}) by RFUNCT_1:def 4;
      dom f /\ (dom g\g"{0}) c= dom g\g"{0} by XBOOLE_1:17;
    then A38: [.x0,x.]\{x0} c= dom g\g"{0} by A37,XBOOLE_1:1;
      not x in {x0} by A5,TARSKI:def 1;
    then A39: x in [.x0,x.]\{x0} by A28,XBOOLE_0:def 4;
    then A40: x in dom g & not x in g"{0} by A38,XBOOLE_0:def 4;
    A41: now assume g.x=0;
         then g.x in {0} by TARSKI:def 1;
         hence contradiction by A40,FUNCT_1:def 13;
        end;
    A42: [.x0,x.] c= dom ((f`|N)/(g`|N)) by A1,A10,XBOOLE_1:1;
    then A43: [.x0,x.] c= dom (f`|N) /\ (dom (g`|N)\(g`|N)"{0}) by RFUNCT_1:def
4;
      dom (f`|N) /\ (dom (g`|N) \ (g`|N)"{0}) c= dom (g`|N)\(g`|N)"{0}
     by XBOOLE_1:17;
    then A44: [.x0,x.] c= dom (g`|N)\(g`|N)"{0} by A43,XBOOLE_1:1;
    A45: t in [.x0,x.] by A17,A31;
    then A46: t in dom (g`|N) & not t in (g`|N)"{0} by A44,XBOOLE_0:def 4;
       now assume diff(g,t)=0;
         then (g`|N).t=0 by A1,A10,A45,FDIFF_1:def 8;
         then (g`|N).t in {0} by TARSKI:def 1;
         hence contradiction by A46,FUNCT_1:def 13;
        end;
    then (f.x)/(g.x) = diff(f,t)/diff(g,t) by A35,A41,XCMPLX_1:95;
    then (f.x)*(g.x)" = diff(f,t)/diff(g,t) by XCMPLX_0:def 9;
    then (f.x)*(g.x)" = diff(f,t)*diff(g,t)" by XCMPLX_0:def 9;
    then (f/g).x = diff(f,t)*diff(g,t)" by A36,A39,RFUNCT_1:def 4;
    then (f/g).x = ((f`|N).t)*diff(g,t)" by A1,A10,A45,FDIFF_1:def 8;
    then (f/g).x = ((f`|N).t)*((g`|N).t)" by A1,A10,A45,FDIFF_1:def 8;
    hence thesis by A31,A42,A45,RFUNCT_1:def 4;
   end;
    for r1,r2 st r1<x0 & x0<r2
  ex g1,g2 st r1<g1 & g1<x0 & g1 in dom (f/g) & g2<r2 &
    x0<g2 & g2 in dom (f/g) by A1,Th4;
  then A47: (for r1 st x0<r1 ex t st t<r1 & x0<t & t in dom (f/g)) &
       for r1 st r1<x0 ex t st r1<t & t<x0 & t in dom (f/g) by LIMFUNC3:8;
    for a st a is convergent & lim a = x0 &
  rng a c= dom (f/g) /\ right_open_halfline(x0) holds
  (f/g)*a is convergent & lim((f/g)*a) = diff(f,x0)/diff(g,x0)
   proof
    let a;
    assume A48: a is convergent & lim a = x0 &
               rng a c= dom (f/g) /\ right_open_halfline(x0);
    then consider k such that
    A49: for n st k<=n holds x0-r<a.n & a.n<x0+r by A2,A3,LIMFUNC3:7;
    set a1 = a^\k;
     A50: now let n;
          A51: a1.n = a.(n+k) by SEQM_3:def 9;
            a.(n+k) in rng a by RFUNCT_2:10;
          then a.(n+k) in right_open_halfline(x0) by A48,XBOOLE_0:def 3;
          then a.(n+k) in {g1:x0<g1} by LIMFUNC1:def 3;
          then ex g1 st a.(n+k)=g1 & x0<g1;
          hence x0<a1.n by SEQM_3:def 9;
            k<=n+k by NAT_1:37;
          hence a1.n<x0+r by A49,A51;
         end;
        defpred X[Nat,real number] means
         $2 in ].x0,a1.$1.[ & (((f/g)*a)^\k).$1=((f`|N)/(g`|N)).$2;
    A52: for n ex c be real number st X[n,c]
         proof
          let n;
            x0<a1.n & a1.n<x0+r by A50;
          then consider c such that
          A53: c in ].x0,a1.n.[ & (f/g).(a1.n)=((f`|N)/(g`|N)).c by A4;
          take c;
            dom (f/g) /\ right_open_halfline(x0) c= dom (f/g) by XBOOLE_1:17
;
          then A54: rng a c= dom (f/g) by A48,XBOOLE_1:1;
            rng a1 c= rng a by RFUNCT_2:7;
          then rng a1 c= dom (f/g) by A54,XBOOLE_1:1;
          then ((f/g)*(a^\k)).n=((f`|N)/(g`|N)).c by A53,RFUNCT_2:21;
          hence thesis by A53,A54,RFUNCT_2:22;
         end;
    consider b such that
    A55: for n holds X[n,b.n] from RealSeqChoice(A52);
    deffunc U(set) = x0;
    consider d being Real_Sequence such that
    A56: for n holds d.n=U(n) from ExRealSeq;
       now
      let n;
        d.n=x0 & d.(n+1)=x0 by A56;
      hence d.n=d.(n+1);
     end;
    then A57: d is constant by SEQM_3:16;
    then A58: d is convergent by SEQ_4:39;
    A59: lim d=d.0 by A57,SEQ_4:41
            .=x0 by A56;
    A60: a1 is convergent & lim a1=x0 by A48,SEQ_4:33;
     A61: now
          let n;
            b.n in ].x0,a1.n.[ by A55;
          then b.n in {g1:x0<g1 & g1<a1.n} by RCOMP_1:def 2;
          then ex g1 st g1=b.n & x0<g1 & g1<a1.n; hence d.n<=b.n & b.n<=a1.n
by A56;
         end;
    then A62: b is convergent by A58,A59,A60,SEQ_2:33;
    A63: lim b=x0 by A58,A59,A60,A61,SEQ_2:34;
    A64: x0-r<x0 by A2,SQUARE_1:29;
      x0<x0+r by A2,REAL_2:174;
    then x0 in {g2: x0-r<g2 & g2<x0+r} by A64;
    then A65: x0 in ].x0-r,x0+r.[ by RCOMP_1:def 2;
    A66: rng b c= dom ((f`|N)/(g`|N)) /\ right_open_halfline(x0)
     proof
      let x be set;
      assume x in rng b;
      then consider n such that A67: x=b.n by RFUNCT_2:9;
      A68: x0<a1.n & a1.n<x0+r by A50;
      A69: x in ].x0,a1.n.[ by A55,A67;
      then x in {g1:x0<g1 & g1<a1.n} by RCOMP_1:def 2;
      then ex g1 st g1=x & x0<g1 & g1<a1.n;
      then x in {g2:x0<g2};
      then A70: x in right_open_halfline(x0) by LIMFUNC1:def 3;
       A71: ].x0,a1.n.[ c= [.x0,a1.n.] by RCOMP_1:15;
        x0-r<a1.n by A64,A68,AXIOMS:22;
      then a1.n in {g3: x0-r<g3 & g3<x0+r} by A68;
      then a1.n in ].x0-r,x0+r.[ by RCOMP_1:def 2;
      then [.x0,a1.n.] c= ].x0-r,x0+r.[ by A65,RCOMP_1:17;
      then ].x0,a1.n.[ c= ].x0-r,x0+r.[ by A71,XBOOLE_1:1;
      then ].x0,a1.n.[ c= dom ((f`|N)/(g`|N)) by A1,A2,XBOOLE_1:1;
hence x in dom ((f`|N)/(g`|N)) /\
right_open_halfline(x0) by A69,A70,XBOOLE_0:def 3;
     end;
      dom ((f`|N)/(g`|N)) /\ right_open_halfline(x0) c= dom ((f`|N)/(g`|N))
    by XBOOLE_1:17;
    then A72: rng b c= dom ((f`|N)/(g`|N)) by A66,XBOOLE_1:1;
     then ((f`|N)/(g`|N))*b is convergent &
    lim (((f`|N)/(g`|N))*b) = ((f`|N)/(g`|N)).x0
    by A1,A62,A63,FCONT_1:def 1;
    then lim (((f`|N)/(g`|N))*b) = ((f`|N).x0)*((g`|N).x0)" by A1,A2,A65,
RFUNCT_1:def 4
                           .= diff(f,x0)*((g`|N).x0)" by A1,A2,A65,FDIFF_1:def
8
                           .= diff(f,x0)*diff(g,x0)" by A1,A2,A65,FDIFF_1:def 8
;
    then A73: ((f`|N)/(g`|N))*b is convergent &
        lim (((f`|N)/(g`|N))*b) = diff(f,x0)*diff(g,x0)" by A1,A62,A63,A72,
FCONT_1:def 1;
    A74: now take m = 0; let n such that m <=n;
           (((f/g)*a)^\k).n=((f`|N)/(g`|N)).(b.n) by A55;
         hence (((f/g)*a)^\k).n = (((f`|N)/(g`|N))*b).n by A72,RFUNCT_2:21;
        end;
    then A75: ((f/g)*a)^\k is convergent by A73,SEQ_4:31;
       lim (((f/g)*a)^\k) = diff(f,x0)*diff(g,x0)" by A73,A74,SEQ_4:32;
    then lim(((f/g)*a)^\k) = diff(f,x0)/diff(g,x0) by XCMPLX_0:def 9;
    hence thesis by A75,SEQ_4:35,36;
   end;
  then A76: f/g is_right_convergent_in x0 & lim_right(f/g,x0)=diff(f,x0)/diff(g
,x0)
      by A47,Th2;
  A77: for x st x0-r<x & x<x0 ex c st c in ].x,x0.[ & (f/g).x=((f`|N)/(g`|N)).c
   proof
    let x such that
    A78: x0-r<x & x<x0;
    A79: f is_continuous_on N by A1,FDIFF_1:33;
    A80: g is_continuous_on N by A1,FDIFF_1:33;
    A81: x0-r<x0 by A2,SQUARE_1:29;
    A82: x0+0<x0+r by A2,REAL_1:67;
    then x0 in {g1: x0-r<g1 & g1<x0+r} by A81;
    then A83: x0 in ].x0-r,x0+r.[ by RCOMP_1:def 2;
      x<x0+r by A78,A82,AXIOMS:22;
    then x in {g1: x0-r<g1 & g1<x0+r} by A78;
    then x in ].x0-r,x0+r.[ by RCOMP_1:def 2;
    then A84: [.x,x0.] c= N by A2,A83,RCOMP_1:17;
    then f is_continuous_on [.x,x0.] by A79,FCONT_1:17;
    then A85: (g.x)(#)f is_continuous_on [.x,x0.] by FCONT_1:21;
      g is_continuous_on [.x,x0.] by A80,A84,FCONT_1:17;
    then (f.x)(#)g is_continuous_on [.x,x0.] by FCONT_1:21;
    then A86: (f.x)(#)g - (g.x)(#)f is_continuous_on [.x,x0.] by A85,FCONT_1:19
;
    A87: dom ((g.x)(#)f) = dom f by SEQ_1:def 6;
    A88: dom ((f.x)(#)g) = dom g by SEQ_1:def 6;
    A89: N c= dom ((g.x)(#)f) by A79,A87,FCONT_1:14;
    A90: N c= dom ((f.x)(#)g) by A80,A88,FCONT_1:14;
    A91: ].x,x0.[ c= [.x,x0.] by RCOMP_1:15;
    then A92: ].x,x0.[ c= N by A84,XBOOLE_1:1;
    then A93: f is_differentiable_on ].x,x0.[ by A1,FDIFF_1:34;
    A94: ].x,x0.[ c= dom ((g.x)(#)f) by A89,A92,XBOOLE_1:1;
    then A95: (g.x)(#)f is_differentiable_on ].x,x0.[ by A93,FDIFF_1:28;
    A96: ].x,x0.[ c= dom ((f.x)(#)g) by A90,A92,XBOOLE_1:1;
    then ].x,x0.[ c= dom ((f.x)(#)g) /\ dom ((g.x)(#)f) by A94,XBOOLE_1:19
;
    then A97: ].x,x0.[ c= dom ((f.x)(#)g - (g.x)(#)f) by SEQ_1:def 4;
    A98: g is_differentiable_on ].x,x0.[ by A1,A92,FDIFF_1:34;
    then A99: (f.x)(#)g is_differentiable_on ].x,x0.[ by A96,FDIFF_1:28;
    then A100: (f.x)(#)g-(g.x)(#)
f is_differentiable_on ].x,x0.[ by A95,A97,FDIFF_1:27
;
    set f1 = (f.x)(#)g - (g.x)(#)f;
    A101: [.x,x0.] c= dom f1 by A86,FCONT_1:def 2;
    A102: x0 in [.x,x0.] & x in [.x,x0.] by A78,RCOMP_1:15;
    then x0 in dom f1 & x in dom f1 by A101;
    then x0 in dom ((f.x)(#)g) /\ dom ((g.x)(#)f) & x in dom ((f.x)(#)g) /\
 dom ((g.x)
(#)f)
     by SEQ_1:def 4;
    then A103: x0 in dom ((f.x)(#)g) & x0 in dom ((g.x)(#)f) & x in dom ((f.x)
(#)
g) &
    x in dom ((g.x)(#)f) by XBOOLE_0:def 3;
    A104: f1.x0 = ((f.x)(#)g).x0 - ((g.x)(#)f).x0 by A101,A102,SEQ_1:def 4
         .= (f.x)*(g.x0) - ((g.x)(#)f).x0 by A103,SEQ_1:def 6
         .= 0 - (g.x)*0 by A1,A103,SEQ_1:def 6
         .= 0;
      f1.x = ((f.x)(#)g).x - ((g.x)(#)f).x by A101,A102,SEQ_1:def 4
         .= (f.x)*(g.x) - ((g.x)(#)f).x by A103,SEQ_1:def 6
         .= (g.x)*(f.x) - (g.x)*(f.x) by A103,SEQ_1:def 6
         .= 0 by XCMPLX_1:14;
    then consider t such that
    A105: t in ].x,x0.[ & diff(f1,t)=0 by A78,A86,A100,A104,ROLLE:1;
    take t;
    A106: (f.x)(#)g is_differentiable_in t by A99,A105,FDIFF_1:16;
      (g.x)(#)f is_differentiable_in t by A95,A105,FDIFF_1:16;
    then A107: 0=diff((f.x)(#)g,t) - diff((g.x)(#)f,t) by A105,A106,FDIFF_1:22;
    A108: g is_differentiable_in t by A98,A105,FDIFF_1:16;
      f is_differentiable_in t by A93,A105,FDIFF_1:16;
    then 0=diff((f.x)(#)g,t) - (g.x)*diff(f,t) by A107,FDIFF_1:23;
    then 0=(f.x)*diff(g,t) - (g.x)*diff(f,t) by A108,FDIFF_1:23;
    then A109: (f.x)*diff(g,t)=(g.x)*diff(f,t) by XCMPLX_1:15;
      [.x,x0.]\{x0} c= N\{x0} by A84,XBOOLE_1:33;
    then A110: [.x,x0.]\{x0} c= dom(f/g) by A1,XBOOLE_1:1;
    then A111: [.x,x0.]\{x0} c= dom f /\ (dom g\g"{0}) by RFUNCT_1:def 4;
      dom f /\ (dom g\g"{0}) c= dom g\g"{0} by XBOOLE_1:17;
    then A112: [.x,x0.]\{x0} c= dom g\g"{0} by A111,XBOOLE_1:1;
      not x in {x0} by A78,TARSKI:def 1;
    then A113: x in [.x,x0.]\{x0} by A102,XBOOLE_0:def 4;
    then A114: x in dom g & not x in g"{0} by A112,XBOOLE_0:def 4;
    A115: now assume g.x=0;
         then g.x in {0} by TARSKI:def 1;
         hence contradiction by A114,FUNCT_1:def 13;
        end;
    A116: [.x,x0.] c= dom ((f`|N)/(g`|N)) by A1,A84,XBOOLE_1:1;
    then A117: [.x,x0.] c= dom (f`|N) /\ (dom (g`|N)\(g`|N)"{0}) by RFUNCT_1:
def 4;
      dom (f`|N) /\ (dom (g`|N) \ (g`|N)"{0}) c= dom (g`|N)\(g`|N)"{0}
     by XBOOLE_1:17;
    then A118: [.x,x0.] c= dom (g`|N)\(g`|N)"{0} by A117,XBOOLE_1:1;
    A119: t in [.x,x0.] by A91,A105;
    then A120: t in dom (g`|N) & not t in (g`|N)"{0} by A118,XBOOLE_0:def 4;
       now assume diff(g,t)=0;
         then (g`|N).t=0 by A1,A84,A119,FDIFF_1:def 8;
         then (g`|N).t in {0} by TARSKI:def 1;
         hence contradiction by A120,FUNCT_1:def 13;
        end;
    then (f.x)/(g.x) = diff(f,t)/diff(g,t) by A109,A115,XCMPLX_1:95;
    then (f.x)*(g.x)" = diff(f,t)/diff(g,t) by XCMPLX_0:def 9;
    then (f.x)*(g.x)" = diff(f,t)*diff(g,t)" by XCMPLX_0:def 9;
    then (f/g).x = diff(f,t)*diff(g,t)" by A110,A113,RFUNCT_1:def 4;
    then (f/g).x = ((f`|N).t)*diff(g,t)" by A1,A84,A119,FDIFF_1:def 8;
    then (f/g).x = ((f`|N).t)*((g`|N).t)" by A1,A84,A119,FDIFF_1:def 8;
    hence thesis by A105,A116,A119,RFUNCT_1:def 4;
   end;
    for a st a is convergent & lim a = x0 &
  rng a c= dom (f/g) /\ left_open_halfline(x0) holds
  (f/g)*a is convergent & lim((f/g)*a) = diff(f,x0)/diff(g,x0)
   proof
    let a;
    assume A121: a is convergent & lim a = x0 &
               rng a c= dom (f/g) /\ left_open_halfline(x0);
    then consider k such that
    A122: for n st k<=n holds x0-r<a.n & a.n<x0+r by A2,A3,LIMFUNC3:7;
    set a1 = a^\k;
     A123: now let n;
          A124: a1.n = a.(n+k) by SEQM_3:def 9;
            a.(n+k) in rng a by RFUNCT_2:10;
          then a.(n+k) in left_open_halfline(x0) by A121,XBOOLE_0:def 3;
          then a.(n+k) in {g1:g1<x0} by PROB_1:def 15;
          then ex g1 st a.(n+k)=g1 & g1<x0;
          hence a1.n<x0 by SEQM_3:def 9;
            k<=n+k by NAT_1:37;
          hence x0-r<a1.n by A122,A124;
         end;
        defpred X[Nat,real number] means
          $2 in ].a1.$1,x0.[ & (((f/g)*a)^\k).$1=((f`|N)/(g`|N)).$2;
    A125: for n ex c be real number st X[n,c]
         proof
          let n;
            x0-r<a1.n & a1.n<x0 by A123;
          then consider c such that
          A126: c in ].a1.n,x0.[ & (f/g).(a1.n)=((f`|N)/(g`|N)).c by A77;
          take c;
            dom (f/g) /\ left_open_halfline(x0) c= dom (f/g) by XBOOLE_1:17;
          then A127: rng a c= dom (f/g) by A121,XBOOLE_1:1;
            rng a1 c= rng a by RFUNCT_2:7;
          then rng a1 c= dom (f/g) by A127,XBOOLE_1:1;
          then ((f/g)*(a^\k)).n=((f`|N)/(g`|N)).c by A126,RFUNCT_2:21;
          hence thesis by A126,A127,RFUNCT_2:22;
         end;
    consider b such that
    A128: for n holds X[n,b.n] from RealSeqChoice(A125);
    deffunc U(set) = x0;
    consider d being Real_Sequence such that
    A129: for n holds d.n=U(n) from ExRealSeq;
       now
      let n;
        d.n=x0 & d.(n+1)=x0 by A129;
      hence d.n=d.(n+1);
     end;
    then A130: d is constant by SEQM_3:16;
    then A131: d is convergent by SEQ_4:39;
    A132: lim d=d.0 by A130,SEQ_4:41
            .=x0 by A129;
    A133: a1 is convergent & lim a1=x0 by A121,SEQ_4:33;
     A134: now
          let n;
            b.n in ].a1.n,x0.[ by A128;
          then b.n in {g1:a1.n<g1 & g1<x0} by RCOMP_1:def 2;
          then ex g1 st g1=b.n & a1.n<g1 & g1<x0; hence a1.n<=b.n & b.n<=
d.n by A129;
         end;
    then A135: b is convergent by A131,A132,A133,SEQ_2:33;
    A136: lim b=x0 by A131,A132,A133,A134,SEQ_2:34;
    A137: x0-r<x0 by A2,SQUARE_1:29;
    A138: x0<x0+r by A2,REAL_2:174;
    then x0 in {g2: x0-r<g2 & g2<x0+r} by A137;
    then A139: x0 in ].x0-r,x0+r.[ by RCOMP_1:def 2;
    A140: rng b c= dom ((f`|N)/(g`|N)) /\ left_open_halfline(x0)
     proof
      let x be set;
      assume x in rng b;
      then consider n such that A141: x=b.n by RFUNCT_2:9;
      A142: x0-r<a1.n & a1.n<x0 by A123;
      A143: x in ].a1.n,x0.[ by A128,A141;
      then x in {g1:a1.n<g1 & g1<x0} by RCOMP_1:def 2;
      then ex g1 st g1=x & a1.n<g1 & g1<x0;
      then x in {g2:g2<x0};
      then A144: x in left_open_halfline(x0) by PROB_1:def 15;
       A145: ].a1.n,x0.[ c= [.a1.n,x0.] by RCOMP_1:15;
        a1.n<x0+r by A138,A142,AXIOMS:22;
      then a1.n in {g3: x0-r<g3 & g3<x0+r} by A142;
      then a1.n in ].x0-r,x0+r.[ by RCOMP_1:def 2;
      then [.a1.n,x0.] c= ].x0-r,x0+r.[ by A139,RCOMP_1:17;
      then ].a1.n,x0.[ c= ].x0-r,x0+r.[ by A145,XBOOLE_1:1;
      then ].a1.n,x0.[ c= dom ((f`|N)/(g`|N)) by A1,A2,XBOOLE_1:1;
hence x in dom ((f`|N)/(g`|N)) /\
left_open_halfline(x0) by A143,A144,XBOOLE_0:def 3;
     end;
      dom ((f`|N)/(g`|N)) /\ left_open_halfline(x0) c= dom ((f`|N)/(g`|N))
    by XBOOLE_1:17;
    then A146: rng b c= dom ((f`|N)/(g`|N)) by A140,XBOOLE_1:1;
     then ((f`|N)/(g`|N))*b is convergent &
    lim (((f`|N)/(g`|N))*b) = ((f`|N)/(g`|N)).x0
    by A1,A135,A136,FCONT_1:def 1;
    then lim (((f`|N)/(g`|N))*b) = ((f`|N).x0)*((g`|N).x0)" by A1,A2,A139,
RFUNCT_1:def 4
                           .= diff(f,x0)*((g`|N).x0)" by A1,A2,A139,FDIFF_1:def
8
                           .= diff(f,x0)*diff(g,x0)" by A1,A2,A139,FDIFF_1:def
8;
    then A147: ((f`|N)/(g`|N))*b is convergent &
        lim (((f`|N)/(g`|N))*b) = diff(f,x0)*diff(g,x0)" by A1,A135,A136,A146,
FCONT_1:def 1;
    A148: now take m = 0; let n such that m <=n;
           (((f/g)*a)^\k).n=((f`|N)/(g`|N)).(b.n) by A128;
         hence (((f/g)*a)^\k).n = (((f`|N)/(g`|N))*b).n by A146,RFUNCT_2:21;
        end;
    then A149: ((f/g)*a)^\k is convergent by A147,SEQ_4:31;
       lim (((f/g)*a)^\k) = diff(f,x0)*diff(g,x0)" by A147,A148,SEQ_4:32;
    then lim(((f/g)*a)^\k) = diff(f,x0)/diff(g,x0) by XCMPLX_0:def 9;
    hence thesis by A149,SEQ_4:35,36;
   end;
  then f/g is_left_convergent_in x0 & lim_left(f/g,x0)=diff(f,x0)/diff(g,x0)
      by A47,Th3;
  hence thesis by A76,LIMFUNC3:34;
 end;

Back to top