reserve x,y,X,Y for set;
reserve C for non empty set;
reserve c for Element of C;
reserve f,f1,f2,f3,g,g1 for PartFunc of C,COMPLEX;
reserve r1,r2,p1 for Real;
reserve r,q,cr1,cr2 for Complex;

theorem Th14:
  for f1,f2,f3 being complex-valued Function holds
  (f1 (#) f2) (#) f3 = f1 (#) (f2 (#) f3)
proof
  let f1,f2,f3 be complex-valued Function;
  thus
A1: dom (f1 (#) f2 (#) f3) = dom (f1 (#) f2) /\ dom f3 by VALUED_1:def 4
    .= dom f1 /\ dom f2 /\ dom f3 by VALUED_1:def 4
    .= dom f1 /\ (dom f2 /\ dom f3) by XBOOLE_1:16
    .= dom f1 /\ dom (f2 (#) f3) by VALUED_1:def 4
    .= dom (f1 (#) (f2 (#) f3)) by VALUED_1:def 4;
    let c be object;
    assume
A2: c in dom (f1(#)f2(#)f3);
    then c in dom (f1 (#) f2) /\ dom f3 by VALUED_1:def 4;
    then
A3: c in dom (f1 (#) f2) by XBOOLE_0:def 4;
    c in dom f1 /\ dom (f2(#)f3) by A1,A2,VALUED_1:def 4;
    then
A4: c in dom (f2 (#) f3) by XBOOLE_0:def 4;
    thus (f1 (#) f2 (#) f3).c = (f1 (#) f2).c * (f3.c) by A2,VALUED_1:def 4
      .= ((f1.c)) * ((f2.c)) * (f3.c) by A3,VALUED_1:def 4
      .= ((f1.c)) * (((f2.c)) * (f3.c))
      .= ((f1.c)) * ((f2 (#) f3).c) by A4,VALUED_1:def 4
      .= (f1 (#) (f2 (#) f3)).c by A1,A2,VALUED_1:def 4;
end;
