reserve x for object;
reserve x0,r,r1,r2,g,g1,g2,p,y0 for Real;
reserve n,m,k,l for Element of NAT;
reserve a,b,d for Real_Sequence;
reserve h,h1,h2 for non-zero 0-convergent Real_Sequence;
reserve c,c1 for constant Real_Sequence;
reserve A for open Subset of REAL;
reserve f,f1,f2 for PartFunc of REAL,REAL;
reserve L for LinearFunc;
reserve R for RestFunc;

theorem Th13:
  f1 is_differentiable_in x0 & f2 is_differentiable_in f1.x0
implies f2*f1 is_differentiable_in x0 & diff(f2*f1,x0) = diff(f2,f1.x0)*diff(f1
  ,x0)
proof
  assume that
A1: f1 is_differentiable_in x0 and
A2: f2 is_differentiable_in f1.x0;
  consider N2 be Neighbourhood of f1.x0 such that
A3: N2 c= dom f2 by A2;
  f1 is_continuous_in x0 by A1,FDIFF_1:24;
  then consider N3 be Neighbourhood of x0 such that
A4: f1.:N3 c= N2 by FCONT_1:5;
  consider N1 be Neighbourhood of x0 such that
A5: N1 c= dom f1 by A1;
  consider N be Neighbourhood of x0 such that
A6: N c= N1 and
A7: N c= N3 by RCOMP_1:17;
  N c= dom (f2*f1)
  proof
    let x be object;
    assume
A8: x in N;
    then reconsider x9 = x as Real;
A9: x in N1 by A6,A8;
    then f1.x9 in f1.:N3 by A5,A7,A8,FUNCT_1:def 6;
    then f1.x9 in N2 by A4;
    hence thesis by A5,A3,A9,FUNCT_1:11;
  end;
  hence thesis by A1,A2,Lm2;
end;
