reserve f for PartFunc of REAL-NS 1,REAL-NS 1;
reserve g for PartFunc of REAL,REAL;
reserve x for Point of REAL-NS 1;
reserve y for Real;

theorem Th7:
  f=<>*g & x=<*y*> & f is_differentiable_in x implies g
  is_differentiable_in y & diff(g,y) = (proj(1,1)*diff(f,x)*(proj(1,1)qua
  Function")).1
proof
  set J = proj(1,1) qua Function;
  reconsider L = diff(f,x) as
  Lipschitzian LinearOperator of REAL-NS 1,REAL-NS 1 by LOPBAN_1:def 9;
A1: rng g c= dom I by Th2;
  reconsider L0=J*L*I as LinearFunc by Th5;
  assume that
A2: f=<>*g and
A3: x=<*y*> and
A4: f is_differentiable_in x;
  consider NN being Neighbourhood of x such that
A5: NN c= dom f and
A6: ex R being RestFunc of REAL-NS 1,REAL-NS 1 st for y be Point of REAL-NS
1 st y in NN holds f/.y - f/.x = diff(f,x).(y-x) + R/.(y-x) by A4,NDIFF_1:def 7
  ;
  consider e be Real such that
A7: 0 < e and
A8: {z where z is Point of REAL-NS 1 : ||.z-x.|| < e} c= NN by NFCONT_1:def 1;
  consider R being RestFunc of REAL-NS 1,REAL-NS 1 such that
A9: for x9 be Point of REAL-NS 1 st x9 in NN holds f/.x9 - f/.x = diff(f
  ,x).(x9-x) + R/.(x9-x) by A6;
  set N={z where z is Point of REAL-NS 1 : ||.z-x.|| < e};
A10: N c= the carrier of REAL-NS 1
  proof
    let y be object;
    assume y in N;
    then ex z be Point of REAL-NS 1 st y=z & ||.z-x.|| < e;
    hence thesis;
  end;
  then reconsider N as Neighbourhood of x by A7,NFCONT_1:def 1;
  set N0={z where z is Element of REAL: |.z-y.| < e};
A11: N c= dom f by A5,A8;
  now
    let z be object;
    hereby
      assume z in N0;
      then consider y9 be Element of REAL such that
A12:  z=y9 and
A13:  |.y9-y.| < e;
      reconsider w=I.y9 as Point of REAL-NS 1 by REAL_NS1:def 4;
      x=I.y by A3,Lm1;
      then w-x=I.(y9-y) by Th3;
      then ||.w-x.||=|.y9-y.| by Th3;
      then w in {z0 where z0 is Point of REAL-NS 1 : ||.z0 - x.|| < e} by A13;
      then J.w in J.:N by FUNCT_2:35;
      hence z in J.:N by A12,Lm1,FUNCT_1:35;
    end;
    assume z in J.:N;
    then consider ww be object such that
    ww in REAL 1 and
A14: ww in N and
A15: z=J.ww by FUNCT_2:64;
    consider w be Point of REAL-NS 1 such that
A16: ww=w and
A17: ||.w-x.|| < e by A14;
    reconsider y9=J.w as Element of REAL by XREAL_0:def 1;
    J.x=y by A3,Lm1;
    then J.(w-x) =y9-y by Th4;
    then |.y9-y.| < e by A17,Th4;
    hence z in N0 by A15,A16;
  end;
  then
A18: N0=J.:N by TARSKI:2;
  dom f = J"(dom(I*g)) by A2,RELAT_1:147;
  then J.:(dom f) = J.:(J"(dom g)) by A1,RELAT_1:27;
  then
A19: J.:(dom f) = dom g by Lm1,FUNCT_1:77;
A20: I*J =id (REAL 1) by Lm1,FUNCT_1:39;
  reconsider R0=J*R*I as RestFunc by Th5;
A21: J*I =id REAL by Lm1,FUNCT_1:39;
  N c= dom f by A5,A8;
  then
A22: N0 c= dom g by A19,A18,RELAT_1:123;
A23: ].y-e,y+e.[ c= N0
  proof
    let d be object such that
A24: d in ].y-e,y+e.[;
    reconsider y0=d as Element of REAL by A24;
    |.y0-y.| < e by A24,RCOMP_1:1;
    hence thesis;
  end;
  N0 c= ].y-e,y+e.[
  proof
    let d be object;
    assume d in N0;
    then ex r be Element of REAL st d=r & |.r-y.| < e;
    hence thesis by RCOMP_1:1;
  end;
  then N0 = ].y-e,y+e.[ by A23,XBOOLE_0:def 10;
  then
A25: N0 is Neighbourhood of y by A7,RCOMP_1:def 6;
  N c= REAL 1 by A10,REAL_NS1:def 4;
  then (I*J).:N = N by A20,FRECHET:13;
  then
A26: I.:N0 = N by A18,RELAT_1:126;
A27: for y0 be Real st
  y0 in N0 holds g.y0 - g.y = L0.(y0-y) + R0.(y0-y)
  proof
    let y0 be Real;
    reconsider yy0=y0,yy=y as Element of REAL by XREAL_0:def 1;
    reconsider y9 = I.yy0 as Point of REAL-NS 1 by REAL_NS1:def 4;
    R is total by NDIFF_1:def 5;
    then
A28: dom R = the carrier of REAL-NS 1 by PARTFUN1:def 2;
    R0 is total by FDIFF_1:def 2;
    then dom(J*R*I) = REAL by PARTFUN1:def 2;
    then yy0-yy in dom(J*R*I);
    then
A29: y0-y in dom(J*(R*I)) by RELAT_1:36;
    I.(yy0-yy) in REAL 1;
    then I.(yy0-yy) in dom R by A28,REAL_NS1:def 4;
    then J.(R/.(I.(yy0-yy))) =J.(R.(I.(yy0-yy))) by PARTFUN1:def 6;
    then J.(R/.(I.(yy0-yy))) =J.((R*I).(yy0-yy)) by Th2,FUNCT_1:13;
    then J.(R/.(I.(yy0-yy))) =(J*(R*I)).(yy0-yy) by A29,FUNCT_1:12;
    then
A30: J.(R/.(I.(yy0-yy))) =R0.(yy0-yy) by RELAT_1:36;
    L0 is total by FDIFF_1:def 3;
    then dom(J*L*I) = REAL by PARTFUN1:def 2;
    then yy0-yy in dom(J*L*I);
    then
A31: y0-y in dom(J*(L*I)) by RELAT_1:36;
    assume
A32: y0 in N0;
    then
A33: I.yy0 in N by A26,FUNCT_2:35;
    then J.(f/.(I.yy0)) =J.(f.(I.yy0)) by A11,PARTFUN1:def 6;
    then
A34: J.(f/.(I.yy0)) =J.((f*I).yy0) by Th2,FUNCT_1:13;
    J*f=J*(I*(g*J)) by A2,RELAT_1:36;
    then
A35: J*f=(id REAL)*(g*J) by A21,RELAT_1:36;
    rng(g*J) c= REAL;
    then J*f*I = g*J*I by A35,RELAT_1:53;
    then
A36: J*f*I = g*(id REAL) by A21,RELAT_1:36;
    dom g c= REAL;
    then
A37: g=J*f*I by A36,RELAT_1:51;
    y0 in dom g by A22,A32;
    then y0 in dom(J*(f*I)) by A37,RELAT_1:36;
    then J.(f/.(I.y0)) =(J*(f*I)).y0 by A34,FUNCT_1:12;
    then
A38: J.(f/.(I.y0)) =g.y0 by A37,RELAT_1:36;
A39: x=I.y by A3,Lm1;
    set Iy = I.yy;
    x in N by NFCONT_1:4;
    then J.(f/.(I.y)) =J.(f.Iy) by A11,A39,PARTFUN1:def 6;
    then
A40: J.(f/.Iy) =J.((f*I).yy) by Th2,FUNCT_1:13;
    y in N0 by A25,RCOMP_1:16;
    then y in dom g by A22;
    then y in dom(J*(f*I)) by A37,RELAT_1:36;
    then J.(f/.(I.y)) =(J*(f*I)).y by A40,FUNCT_1:12;
    then
A41: J.(f/.(I.y)) =g.y by A37,RELAT_1:36;
    J.(f/.y9 - f/.x)= J.(L.(y9-x) + R/.(y9-x)) by A9,A8,A33;
    then J.(f/.y9)-J.(f/.x)=J.(L.(y9-x) + R/.(y9-x)) by Th4;
    then J.(f/.(I.y0))-J.(f/.(I.y))=J.(L.(y9-x))+J.(R/.(y9-x)) by A39,Th4;
    then
A42: J.(f/.(I.y0))-J.(f/.(I.y))=J.(L.(I.(y0-y))) + J.(R/.(y9-x)) by A39,Th3;
    J.(L.(I.(yy0-yy))) =J.((L*I).(yy0-yy)) by Th2,FUNCT_1:13;
    then J.(L.(I.(y0-y))) =(J*(L*I)).(y0-y) by A31,FUNCT_1:12;
    then J.(L.(I.(y0-y))) =L0.(y0-y) by RELAT_1:36;
    hence thesis by A39,A42,A38,A41,A30,Th3;
  end;
  hence g is_differentiable_in y by A25,A22,FDIFF_1:def 4;
  hence thesis by A25,A22,A27,FDIFF_1:def 5;
end;
