reserve n,m,k for Nat;
reserve x,X,X1 for set;
reserve r,p for Real;
reserve s,g,x0,x1,x2 for Real;
reserve S,T for RealNormSpace;
reserve f,f1,f2 for PartFunc of REAL,the carrier of S;
reserve s1,s2 for Real_Sequence;
reserve Y for Subset of REAL;

theorem
for f1 be PartFunc of REAL,the carrier of S,
    f2 be PartFunc of the carrier of S,the carrier of T
     st x0 in dom (f2*f1) & f1 is_continuous_in x0
      & f2 is_continuous_in f1/.x0
  holds f2*f1 is_continuous_in x0
proof
   let f1 be PartFunc of REAL,the carrier of S,
       f2 be PartFunc of the carrier of S,the carrier of T;
   assume A1: x0 in dom (f2*f1);
   assume that
A2: f1 is_continuous_in x0 and
A3: f2 is_continuous_in f1/.x0;
   thus x0 in dom (f2*f1) by A1;
   let s1 such that
A4: rng s1 c= dom (f2*f1) and
A5: s1 is convergent & lim s1 = x0;
A6:dom (f2*f1) c= dom f1 by RELAT_1:25;
   now let x be object;
    assume x in rng (f1/*s1); then
    consider n being Element of NAT such that
A7:  x=(f1/*s1).n by FUNCT_2:113;
    s1.n in rng s1 by VALUED_0:28; then
    f1.(s1.n) in dom f2 by A4,FUNCT_1:11;
    hence x in dom f2 by A4,A6,A7,FUNCT_2:108,XBOOLE_1:1;
   end; then
A8:rng (f1/*s1) c= dom f2 by TARSKI:def 3;
A9:now let n be Element of NAT;
    s1.n in rng s1 by VALUED_0:28; then
A10: s1.n in dom f1 by A4,FUNCT_1:11;
    thus ((f2*f1)/*s1).n = (f2*f1).(s1.n) by A4,FUNCT_2:108
      .= f2.(f1.(s1.n)) by A10,FUNCT_1:13
      .= f2.((f1/*s1).n) by A4,A6,FUNCT_2:108,XBOOLE_1:1
      .= (f2/*(f1/*s1)).n by A8,FUNCT_2:108;
   end; then
A11:f2/*(f1/*s1) = (f2*f1)/*s1 by FUNCT_2:63;
   rng s1 c= dom f1 by A4,A6,XBOOLE_1:1; then
A12: f1/*s1 is convergent & f1/.x0 = lim (f1/*s1) by A2,A5;
   (f2*f1)/.x0 =f2/.(f1/.x0) by A1,PARTFUN2:3
        .= lim (f2/*(f1/*s1)) by A12,A3,A8,NFCONT_1:def 5
        .= lim ((f2*f1)/*s1) by A9,FUNCT_2:63;
   hence thesis by A3,A12,A8,A11,NFCONT_1:def 5;
end;
