reserve f,g for PartFunc of REAL,REAL,
  r,r1,r2,g1,g2,g3,g4,g5,g6,x,x0,t,c for Real,
  a,b,s for Real_Sequence,
  n,k for Element of NAT;

theorem
  (ex N being Neighbourhood of x0 st N c= dom f & N c= dom g & f
  is_differentiable_on N & g is_differentiable_on N & N \ {x0} c= dom (f/g) & N
  c= dom ((f`|N)/(g`|N)) & f.x0 = 0 & g.x0 = 0 & (f`|N)/(g`|N) is_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: N c= dom f and
A2: N c= dom g and
A3: f is_differentiable_on N and
A4: g is_differentiable_on N and
A5: N \ {x0} c= dom (f/g) and
A6: N c= dom ((f`|N)/(g`|N)) and
A7: f.x0 = 0 & g.x0 = 0 and
A8: (f`|N)/(g`|N) is_continuous_in x0;
  consider r be Real such that
A9: 0<r and
A10: N = ].x0-r,x0+r.[ by RCOMP_1:def 6;
A11: for x st x0-r<x & x<x0 ex c st c in ].x,x0.[ & (f/g).x=((f`|N)/(g`|N)) .c
  proof
A12: x0+0<x0+r by A9,XREAL_1:8;
    x0-r<x0 by A9,XREAL_1:44;
    then x0 in {g1: x0-r<g1 & g1<x0+r} by A12;
    then
A13: x0 in ].x0-r,x0+r.[ by RCOMP_1:def 2;
A14: dom (f`|N) /\ (dom (g`|N) \ (g`|N)"{0}) c= dom (g`|N)\(g`|N)"{0} by
XBOOLE_1:17;
A15: dom f /\ (dom g\g"{0}) c= dom g\g"{0} by XBOOLE_1:17;
    let x such that
A16: x0-r<x and
A17: x<x0;
    set f1 = (f.x)(#)g - (g.x)(#)f;
A18: dom((f.x)(#)g) = dom g & dom((g.x)(#)f) = dom f by VALUED_1:def 5;
    then
A19: dom((f.x)(#)g - (g.x)(#)f) = dom f /\ dom g by VALUED_1:12;
    x<x0+r by A17,A12,XXREAL_0:2;
    then x in {g1: x0-r<g1 & g1<x0+r} by A16;
    then x in ].x0-r,x0+r.[ by RCOMP_1:def 2;
    then
A20: [.x,x0.] c= N by A10,A13,XXREAL_2:def 12;
    then
A21: [.x,x0.] c= dom f & [.x,x0.] c= dom g by A1,A2;
    then
A22: [.x,x0.] c= dom f1 by A19,XBOOLE_1:19;
    g|N is continuous by A4,FDIFF_1:25;
    then g|[.x,x0.] is continuous by A20,FCONT_1:16;
    then
A23: ((f.x)(#)g)|[.x,x0.] is continuous by A2,A20,FCONT_1:20,XBOOLE_1:1;
    f|N is continuous by A3,FDIFF_1:25;
    then f|[.x,x0.] is continuous by A20,FCONT_1:16;
    then
A24: ((g.x)(#)f)|[.x,x0.] is continuous by A1,A20,FCONT_1:20,XBOOLE_1:1;
    [.x,x0.] c= dom((f.x)(#)g - (g.x)(#)f) by A21,A19,XBOOLE_1:19;
    then
A25: ((f.x)(#)g - (g.x)(#)f)|[.x,x0.] is continuous by A18,A19,A24,A23,
FCONT_1:18;
A26: ].x,x0.[ c= [.x,x0.] by XXREAL_1:25;
    then
A27: ].x,x0.[ c= N by A20;
A28: x in [.x,x0.] by A17,XXREAL_1:1;
    then x in dom f1 by A22;
    then
A29: x in dom ((f.x)(#)g) /\ dom ((g.x) (#)f) by VALUED_1:12;
    then
A30: x in dom ((f.x) (#) g) by XBOOLE_0:def 4;
A31: x0 in [.x,x0.] by A17,XXREAL_1:1;
    then x0 in dom f1 by A22;
    then
A32: x0 in dom ((f.x)(#)g) /\ dom ((g.x)(#)f) by VALUED_1:12;
    then
A33: x0 in dom ((f.x)(#)g) by XBOOLE_0:def 4;
A34: x in dom ((g.x)(#)f) by A29,XBOOLE_0:def 4;
A35: f1.x = ((f.x)(#)g).x - ((g.x)(#)f).x by A22,A28,VALUED_1:13
      .= (f.x)*(g.x) - ((g.x)(#)f).x by A30,VALUED_1:def 5
      .= (g.x)*(f.x) - (g.x)*(f.x) by A34,VALUED_1:def 5
      .= 0;
A36: x0 in dom ((g.x)(#)f) by A32,XBOOLE_0:def 4;
    not x in {x0} by A17,TARSKI:def 1;
    then
A37: x in [.x,x0.]\{x0} by A28,XBOOLE_0:def 5;
    N c= dom ((f.x)(#)g) by A2,VALUED_1:def 5;
    then
A38: ].x,x0.[ c= dom ((f.x)(#)g) by A27;
    N c= dom ((g.x)(#)f) by A1,VALUED_1:def 5;
    then
A39: ].x,x0.[ c= dom ((g.x)(#)f) by A27;
    then ].x,x0.[ c= dom ((f.x)(#)g) /\ dom ((g.x)(#)f) by A38,XBOOLE_1:19;
    then
A40: ].x,x0.[ c= dom ((f.x)(#)g - (g.x)(#)f) by VALUED_1:12;
    f is_differentiable_on ].x,x0.[ by A3,A20,A26,FDIFF_1:26,XBOOLE_1:1;
    then
A41: (g.x)(#)f is_differentiable_on ].x,x0.[ by A39,FDIFF_1:20;
    g is_differentiable_on ].x,x0.[ by A4,A20,A26,FDIFF_1:26,XBOOLE_1:1;
    then
A42: (f.x)(#)g is_differentiable_on ].x,x0.[ by A38,FDIFF_1:20;
    f1.x0 = ((f.x)(#)g).x0 - ((g.x)(#)f).x0 by A22,A31,VALUED_1:13
      .= (f.x)*(g.x0) - ((g.x)(#)f).x0 by A33,VALUED_1:def 5
      .= 0 - (g.x)*0 by A7,A36,VALUED_1:def 5
      .= 0;
    then consider t such that
A43: t in ].x,x0.[ and
A44: diff(f1,t)=0 by A17,A25,A41,A40,A42,A22,A35,FDIFF_1:19,ROLLE:1;
A45: (g.x)(#)f is_differentiable_in t by A41,A43,FDIFF_1:9;
A46: f is_differentiable_in t by A3,A27,A43,FDIFF_1:9;
    (f.x)(#)g is_differentiable_in t by A42,A43,FDIFF_1:9;
    then 0=diff((f.x)(#)g,t) - diff((g.x)(#)f,t) by A44,A45,FDIFF_1:14;
    then
A47: 0=diff((f.x)(#)g,t) - (g.x)*diff(f,t) by A46,FDIFF_1:15;
    take t;
A48: t in [.x,x0.] by A26,A43;
    [.x,x0.]\{x0} c= N\{x0} by A20,XBOOLE_1:33;
    then
A49: [.x,x0.]\{x0} c= dom(f/g) by A5;
    then [.x,x0.]\{x0} c= dom f /\ (dom g\g"{0}) by RFUNCT_1:def 1;
    then [.x,x0.]\{x0} c= dom g\g"{0} by A15;
    then
A50: x in dom g & not x in g"{0} by A37,XBOOLE_0:def 5;
A51: now
      assume g.x=0;
      then g.x in {0} by TARSKI:def 1;
      hence contradiction by A50,FUNCT_1:def 7;
    end;
A52: [.x,x0.] c= dom ((f`|N)/(g`|N)) by A6,A20;
    then [.x,x0.] c= dom (f`|N) /\ (dom (g`|N)\(g`|N)"{0}) by RFUNCT_1:def 1;
    then [.x,x0.] c= dom (g`|N)\(g`|N)"{0} by A14;
    then
A53: t in dom (g`|N) & not t in (g`|N)"{0} by A48,XBOOLE_0:def 5;
A54: now
      assume diff(g,t)=0;
      then (g`|N).t=0 by A4,A20,A48,FDIFF_1:def 7;
      then (g`|N).t in {0} by TARSKI:def 1;
      hence contradiction by A53,FUNCT_1:def 7;
    end;
    g is_differentiable_in t by A4,A27,A43,FDIFF_1:9;
    then 0=(f.x)*diff(g,t) - (g.x)*diff(f,t) by A47,FDIFF_1:15;
    then (f.x)/(g.x) = diff(f,t)/diff(g,t) by A51,A54,XCMPLX_1:94;
    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 A49,A37,RFUNCT_1:def 1;
    then (f/g).x = ((f`|N).t)*diff(g,t)" by A3,A20,A48,FDIFF_1:def 7;
    then (f/g).x = ((f`|N).t)*((g`|N).t)" by A4,A20,A48,FDIFF_1:def 7;
    hence thesis by A43,A52,A48,RFUNCT_1:def 1;
  end;
A55: 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
    reconsider xx0 = x0 as Element of REAL by XREAL_0:def 1;
    set d = seq_const x0;
    let a;
    assume that
A56: a is convergent and
A57: lim a = x0 and
A58: rng a c= dom (f/g) /\ left_open_halfline(x0);
    consider k such that
A59: for n st k<=n holds x0-r<a.n & a.n<x0+r by A9,A56,A57,LIMFUNC3:7;
    set a1 = a^\k;
    defpred X[Element of NAT,Real] means $2 in ].a1.$1,x0.[ & (((f/g)/*
    a)^\k).$1=((f`|N)/(g`|N)).$2;
A60: now
      let n;
      a.(n+k) in rng a by VALUED_0:28;
      then a.(n+k) in left_open_halfline(x0) by A58,XBOOLE_0:def 4;
      then a.(n+k) in {g1:g1<x0} by XXREAL_1:229;
      then ex g1 st a.(n+k)=g1 & g1<x0;
      hence a1.n<x0 by NAT_1:def 3;
      a1.n = a.(n+k) & k<=n+k by NAT_1:12,def 3;
      hence x0-r<a1.n by A59;
    end;
A61: for n ex c be Element of REAL st X[n,c]
    proof
      let n;
A62:  rng a1 c= rng a by VALUED_0:21;
      x0-r<a1.n & a1.n<x0 by A60;
      then consider c such that
A63:  c in ].a1.n,x0.[ and
A64:  (f/g).(a1.n)=((f`|N)/(g`|N)).c by A11;
      take c;
A65:  dom (f/g) /\ left_open_halfline(x0) c= dom (f/g) by XBOOLE_1:17;
      then rng a c= dom (f/g) by A58;
      then ((f/g)/*(a^\k)).n=((f`|N)/(g`|N)).c by A64,A62,FUNCT_2:108
,XBOOLE_1:1;
      hence thesis by A58,A63,A65,VALUED_0:27,XBOOLE_1:1;
    end;
    consider b such that
A66: for n holds X[n,b.n] from FUNCT_2:sch 3(A61);
A67: x0<x0+r by A9,XREAL_1:29;
    x0-r<x0 by A9,XREAL_1:44;
    then x0 in {g2: x0-r<g2 & g2<x0+r} by A67;
    then
A68: x0 in ].x0-r,x0+r.[ by RCOMP_1:def 2;
A69: rng b c= dom ((f`|N)/(g`|N)) /\ left_open_halfline(x0)
    proof
      let x be object;
      assume x in rng b;
      then consider n such that
A70:  x=b.n by FUNCT_2:113;
      a1.n<x0 by A60;
      then
A71:  a1.n<x0+r by A67,XXREAL_0:2;
      x0-r<a1.n by A60;
      then a1.n in {g3: x0-r<g3 & g3<x0+r} by A71;
      then a1.n in ].x0-r,x0+r.[ by RCOMP_1:def 2;
      then ].a1.n,x0.[ c= [.a1.n,x0.] & [.a1.n,x0.] c= ].x0-r,x0+r.[ by A68,
XXREAL_1:25,XXREAL_2:def 12;
      then ].a1.n,x0.[ c= ].x0-r,x0+r.[;
      then
A72:  ].a1.n,x0.[ c= dom ((f`|N)/(g`|N)) by A6,A10;
A73:  x in ].a1.n,x0.[ by A66,A70;
      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 x in left_open_halfline(x0) by XXREAL_1:229;
      hence thesis by A73,A72,XBOOLE_0:def 4;
    end;
A74: now
      let n be Nat;
A75:    n in NAT by ORDINAL1:def 12;
      b.n in ].a1.n,x0.[ by A66,A75;
      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 SEQ_1:57;
    end;
A76: lim d=d.0 by SEQ_4:26
      .=x0 by SEQ_1:57;
    lim a1=x0 by A56,A57,SEQ_4:20;
    then
A77: b is convergent & lim b=x0 by A56,A76,A74,SEQ_2:19,20;
A78: dom ((f`|N)/(g`|N)) /\ left_open_halfline(x0) c= dom ((f`|N)/(g`| N)
    ) by XBOOLE_1:17;
    then
A79: rng b c= dom ((f`|N)/(g`|N)) by A69;
    then
A80: ((f`|N)/(g`|N))/*b is convergent by A8,A77,FCONT_1:def 1;
A81: now
      reconsider m = 0 as Nat;
      take m;
      let n be Nat such that
      m <=n;
A82:    n in NAT by ORDINAL1:def 12;
      (((f/g)/*a)^\k).n=((f`|N)/(g`|N)).(b.n) by A66,A82;
      hence (((f/g)/*a)^\k).n = (((f`|N)/(g`|N))/*b).n by A69,A78,FUNCT_2:108
,XBOOLE_1:1, A82;
    end;
    lim (((f`|N)/(g`|N))/*b) = ((f`|N)/(g`|N)).x0 by A8,A77,A79,FCONT_1:def 1;
    then lim (((f`|N)/(g`|N))/*b) = ((f`|N).x0)*((g`|N).x0)" by A6,A10,A68,
RFUNCT_1:def 1
      .= diff(f,x0)*((g`|N).x0)" by A3,A10,A68,FDIFF_1:def 7
      .= diff(f,x0)*diff(g,x0)" by A4,A10,A68,FDIFF_1:def 7;
    then lim (((f/g)/*a)^\k) = diff(f,x0)*diff(g,x0)" by A80,A81,SEQ_4:19;
    then
A83: lim(((f/g)/*a)^\k) = diff(f,x0)/diff(g,x0) by XCMPLX_0:def 9;
    ((f/g)/*a)^\k is convergent by A80,A81,SEQ_4:18;
    hence thesis by A83,SEQ_4:21,22;
  end;
A84: 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 A5,Th4;
  then for r1 st r1<x0 ex t st r1<t & t<x0 & t in dom (f/g) by LIMFUNC3:8;
  then
A85: f/g is_left_convergent_in x0 & lim_left(f/g,x0)=diff(f,x0)/diff(g,x0)
  by A55,Th3;
A86: for x st x0<x & x<x0+r ex c st c in ].x0,x.[ & (f/g).x=((f`|N)/(g`|N)). c
  proof
A87: x0-r<x0 by A9,XREAL_1:44;
    x0+0<x0+r by A9,XREAL_1:8;
    then x0 in {g1: x0-r<g1 & g1<x0+r} by A87;
    then
A88: x0 in ].x0-r,x0+r.[ by RCOMP_1:def 2;
A89: dom (f`|N) /\ (dom (g`|N) \ (g`|N)"{0}) c= dom (g`|N)\(g`|N)"{0} by
XBOOLE_1:17;
A90: dom f /\ (dom g\g"{0}) c= dom g\g"{0} by XBOOLE_1:17;
    let x such that
A91: x0<x and
A92: x<x0+r;
    set f1 = (f.x)(#)g - (g.x)(#)f;
A93: dom((f.x)(#)g) = dom g & dom((g.x)(#)f) = dom f by VALUED_1:def 5;
    then
A94: dom((f.x)(#)g - (g.x)(#)f) = dom f /\ dom g by VALUED_1:12;
    x0-r<x by A91,A87,XXREAL_0:2;
    then x in {g1: x0-r<g1 & g1<x0+r} by A92;
    then x in ].x0-r,x0+r.[ by RCOMP_1:def 2;
    then
A95: [.x0,x.] c= N by A10,A88,XXREAL_2:def 12;
    then
A96: [.x0,x.] c= dom f & [.x0,x.] c= dom g by A1,A2;
    then
A97: [.x0,x.] c= dom f1 by A94,XBOOLE_1:19;
    g|N is continuous by A4,FDIFF_1:25;
    then g|[.x0,x.] is continuous by A95,FCONT_1:16;
    then
A98: ((f.x)(#)g)|[.x0,x.] is continuous by A2,A95,FCONT_1:20,XBOOLE_1:1;
    f|N is continuous by A3,FDIFF_1:25;
    then f|[.x0,x.] is continuous by A95,FCONT_1:16;
    then
A99: ((g.x)(#)f)|[.x0,x.] is continuous by A1,A95,FCONT_1:20,XBOOLE_1:1;
    [.x0,x.] c= dom((f.x)(#)g - (g.x)(#)f) by A96,A94,XBOOLE_1:19;
    then
A100: ((f.x)(#)g - (g.x)(#)f)|[.x0,x.] is continuous by A93,A94,A99,A98,
FCONT_1:18;
A101: ].x0,x.[ c= [.x0,x.] by XXREAL_1:25;
    then
A102: ].x0,x.[ c= N by A95;
A103: x in [.x0,x.] by A91,XXREAL_1:1;
    then x in dom f1 by A97;
    then
A104: x in dom ((f.x)(#)g) /\ dom ((g.x) (#)f) by VALUED_1:12;
    then
A105: x in dom ((f.x) (#)g) by XBOOLE_0:def 4;
A106: x0 in [.x0,x.] by A91,XXREAL_1:1;
    then x0 in dom f1 by A97;
    then
A107: x0 in dom ((f.x)(#)g) /\ dom ((g.x)(#)f) by VALUED_1:12;
    then
A108: x0 in dom ((f.x)(#)g) by XBOOLE_0:def 4;
A109: x in dom ((g.x)(#)f) by A104,XBOOLE_0:def 4;
A110: f1.x = ((f.x)(#)g).x - ((g.x)(#)f).x by A97,A103,VALUED_1:13
      .= (f.x)*(g.x) - ((g.x)(#)f).x by A105,VALUED_1:def 5
      .= (g.x)*(f.x) - (g.x)*(f.x) by A109,VALUED_1:def 5
      .= 0;
A111: x0 in dom ((g.x)(#)f) by A107,XBOOLE_0:def 4;
    not x in {x0} by A91,TARSKI:def 1;
    then
A112: x in [.x0,x.]\{x0} by A103,XBOOLE_0:def 5;
    N c= dom ((f.x)(#)g) by A2,VALUED_1:def 5;
    then
A113: ].x0,x.[ c= dom ((f.x)(#)g) by A102;
    N c= dom ((g.x)(#)f) by A1,VALUED_1:def 5;
    then
A114: ].x0,x.[ c= dom ((g.x)(#)f) by A102;
    then ].x0,x.[ c= dom ((f.x)(#)g) /\ dom ((g.x)(#)f) by A113,XBOOLE_1:19;
    then
A115: ].x0,x.[ c= dom ((f.x)(#)g - (g.x)(#)f) by VALUED_1:12;
    f is_differentiable_on ].x0,x.[ by A3,A95,A101,FDIFF_1:26,XBOOLE_1:1;
    then
A116: (g.x)(#)f is_differentiable_on ].x0,x.[ by A114,FDIFF_1:20;
    g is_differentiable_on ].x0,x.[ by A4,A95,A101,FDIFF_1:26,XBOOLE_1:1;
    then
A117: (f.x)(#)g is_differentiable_on ].x0,x.[ by A113,FDIFF_1:20;
    f1.x0 = ((f.x)(#)g).x0 - ((g.x)(#)f).x0 by A97,A106,VALUED_1:13
      .= (f.x)*(g.x0) - ((g.x)(#)f).x0 by A108,VALUED_1:def 5
      .= 0 - (g.x)*0 by A7,A111,VALUED_1:def 5
      .= 0;
    then consider t such that
A118: t in ].x0,x.[ and
A119: diff(f1,t)=0 by A91,A100,A116,A115,A117,A97,A110,FDIFF_1:19,ROLLE:1;
A120: (g.x)(#)f is_differentiable_in t by A116,A118,FDIFF_1:9;
A121: f is_differentiable_in t by A3,A102,A118,FDIFF_1:9;
    (f.x)(#)g is_differentiable_in t by A117,A118,FDIFF_1:9;
    then 0=diff((f.x)(#)g,t) - diff((g.x)(#)f,t) by A119,A120,FDIFF_1:14;
    then
A122: 0=diff((f.x)(#)g,t) - (g.x)*diff(f,t) by A121,FDIFF_1:15;
    take t;
A123: t in [.x0,x.] by A101,A118;
    [.x0,x.]\{x0} c= N\{x0} by A95,XBOOLE_1:33;
    then
A124: [.x0,x.]\{x0} c= dom(f/g) by A5;
    then [.x0,x.]\{x0} c= dom f /\ (dom g\g"{0}) by RFUNCT_1:def 1;
    then [.x0,x.]\{x0} c= dom g\g"{0} by A90;
    then
A125: x in dom g & not x in g"{0} by A112,XBOOLE_0:def 5;
A126: now
      assume g.x=0;
      then g.x in {0} by TARSKI:def 1;
      hence contradiction by A125,FUNCT_1:def 7;
    end;
A127: [.x0,x.] c= dom ((f`|N)/(g`|N)) by A6,A95;
    then [.x0,x.] c= dom (f`|N) /\ (dom (g`|N)\(g`|N)"{0}) by RFUNCT_1:def 1;
    then [.x0,x.] c= dom (g`|N)\(g`|N)"{0} by A89;
    then
A128: t in dom (g`|N) & not t in (g`|N)"{0} by A123,XBOOLE_0:def 5;
A129: now
      assume diff(g,t)=0;
      then (g`|N).t=0 by A4,A95,A123,FDIFF_1:def 7;
      then (g`|N).t in {0} by TARSKI:def 1;
      hence contradiction by A128,FUNCT_1:def 7;
    end;
    g is_differentiable_in t by A4,A102,A118,FDIFF_1:9;
    then 0=(f.x)*diff(g,t) - (g.x)*diff(f,t) by A122,FDIFF_1:15;
    then (f.x)/(g.x) = diff(f,t)/diff(g,t) by A126,A129,XCMPLX_1:94;
    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 A124,A112,RFUNCT_1:def 1;
    then (f/g).x = ((f`|N).t)*diff(g,t)" by A3,A95,A123,FDIFF_1:def 7;
    then (f/g).x = ((f`|N).t)*((g`|N).t)" by A4,A95,A123,FDIFF_1:def 7;
    hence thesis by A118,A127,A123,RFUNCT_1:def 1;
  end;
A130: 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
    reconsider xx0 = x0 as Element of REAL by XREAL_0:def 1;
    set d = seq_const x0;
    let a;
    assume that
A131: a is convergent and
A132: lim a = x0 and
A133: rng a c= dom (f/g) /\ right_open_halfline(x0);
    consider k such that
A134: for n st k<=n holds x0-r<a.n & a.n<x0+r by A9,A131,A132,LIMFUNC3:7;
    set a1 = a^\k;
    defpred X[Element of NAT,Real] means $2 in ].x0,a1.$1.[ & (((f/g)/*
    a)^\k).$1=((f`|N)/(g`|N)).$2;
A135: now
      let n;
      a.(n+k) in rng a by VALUED_0:28;
      then a.(n+k) in right_open_halfline(x0) by A133,XBOOLE_0:def 4;
      then a.(n+k) in {g1:x0<g1} by XXREAL_1:230;
      then ex g1 st a.(n+k)=g1 & x0<g1;
      hence x0<a1.n by NAT_1:def 3;
      a1.n = a.(n+k) & k<=n+k by NAT_1:12,def 3;
      hence a1.n<x0+r by A134;
    end;
A136: for n ex c be Element of REAL st X[n,c]
    proof
      let n;
A137: rng a1 c= rng a by VALUED_0:21;
      x0<a1.n & a1.n<x0+r by A135;
      then consider c such that
A138: c in ].x0,a1.n.[ and
A139: (f/g).(a1.n)=((f`|N)/(g`|N)).c by A86;
      take c;
A140: dom (f/g) /\ right_open_halfline(x0) c= dom (f/g) by XBOOLE_1:17;
      then rng a c= dom (f/g) by A133;
      then ((f/g)/*(a^\k)).n=((f`|N)/(g`|N)).c by A139,A137,FUNCT_2:108
,XBOOLE_1:1;
      hence thesis by A133,A138,A140,VALUED_0:27,XBOOLE_1:1;
    end;
    consider b such that
A141: for n holds X[n,b.n] from FUNCT_2:sch 3(A136);
A142: x0-r<x0 by A9,XREAL_1:44;
    x0<x0+r by A9,XREAL_1:29;
    then x0 in {g2: x0-r<g2 & g2<x0+r} by A142;
    then
A143: x0 in ].x0-r,x0+r.[ by RCOMP_1:def 2;
A144: rng b c= dom ((f`|N)/(g`|N)) /\ right_open_halfline(x0)
    proof
      let x be object;
      assume x in rng b;
      then consider n such that
A145: x=b.n by FUNCT_2:113;
      x0<a1.n by A135;
      then
A146: x0-r<a1.n by A142,XXREAL_0:2;
      a1.n<x0+r by A135;
      then a1.n in {g3: x0-r<g3 & g3<x0+r} by A146;
      then a1.n in ].x0-r,x0+r.[ by RCOMP_1:def 2;
      then ].x0,a1.n.[ c= [.x0,a1.n.] & [.x0,a1.n.] c= ].x0-r,x0+r.[ by A143,
XXREAL_1:25,XXREAL_2:def 12;
      then ].x0,a1.n.[ c= ].x0-r,x0+r.[;
      then
A147: ].x0,a1.n.[ c= dom ((f`|N)/(g`|N)) by A6,A10;
A148: x in ].x0,a1.n.[ by A141,A145;
      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 x in right_open_halfline(x0) by XXREAL_1:230;
      hence thesis by A148,A147,XBOOLE_0:def 4;
    end;
A149: now
      let n be Nat;
A150:    n in NAT by ORDINAL1:def 12;
      b.n in ].x0,a1.n.[ by A141,A150;
      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 SEQ_1:57;
    end;
A151: lim d=d.0 by SEQ_4:26
      .=x0 by SEQ_1:57;
    lim a1=x0 by A131,A132,SEQ_4:20;
    then
A152: b is convergent & lim b=x0 by A131,A151,A149,SEQ_2:19,20;
A153: dom ((f`|N)/(g`|N)) /\ right_open_halfline(x0) c= dom ((f`|N)/(g`| N
    )) by XBOOLE_1:17;
    then
A154: rng b c= dom ((f`|N)/(g`|N)) by A144;
    then
A155: ((f`|N)/(g`|N))/*b is convergent by A8,A152,FCONT_1:def 1;
A156: now
      reconsider m = 0 as Nat;
      take m;
      let n be Nat such that
      m <=n;
A157:    n in NAT by ORDINAL1:def 12;
      (((f/g)/*a)^\k).n=((f`|N)/(g`|N)).(b.n) by A141,A157;
      hence (((f/g)/*a)^\k).n = (((f`|N)/(g`|N))/*b).n by A144,A153,FUNCT_2:108
,XBOOLE_1:1, A157;
    end;
    lim (((f`|N)/(g`|N))/*b) = ((f`|N)/(g`|N)).x0 by A8,A152,A154,FCONT_1:def 1
;
    then lim (((f`|N)/(g`|N))/*b) = ((f`|N).x0)*((g`|N).x0)" by A6,A10,A143,
RFUNCT_1:def 1
      .= diff(f,x0)*((g`|N).x0)" by A3,A10,A143,FDIFF_1:def 7
      .= diff(f,x0)*diff(g,x0)" by A4,A10,A143,FDIFF_1:def 7;
    then lim (((f/g)/*a)^\k) = diff(f,x0)*diff(g,x0)" by A155,A156,SEQ_4:19;
    then
A158: lim(((f/g)/*a)^\k) = diff(f,x0)/diff(g,x0) by XCMPLX_0:def 9;
    ((f/g)/*a)^\k is convergent by A155,A156,SEQ_4:18;
    hence thesis by A158,SEQ_4:21,22;
  end;
  for r1 st x0<r1 ex t st t<r1 & x0<t & t in dom (f/g) by A84,LIMFUNC3:8;
  then f/g is_right_convergent_in x0 & lim_right(f/g,x0)=diff(f,x0)/diff(g,x0
  ) by A130,Th2;
  hence thesis by A85,LIMFUNC3:30;
end;
