reserve M for non empty set;
reserve V for ComplexNormSpace;
reserve f,f1,f2,f3 for PartFunc of M,V;
reserve z,z1,z2 for Complex;

theorem
  for f1,f2 be PartFunc of M,COMPLEX,f3 be PartFunc of M,V
  holds (f1 (#) f2) (#) f3 = f1 (#) (f2 (#) f3)
proof
  let f1,f2 be PartFunc of M,COMPLEX;
  let f3 be PartFunc of M,V;
A1: dom (f1 (#) f2 (#) f3) = dom (f1 (#) f2) /\ dom f3 by Def1
    .= 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 Def1
    .= dom (f1 (#) (f2 (#) f3)) by Def1;
  now
    let x be Element of M;
    assume
A2: x in dom (f1(#)f2(#)f3);
    then x in dom (f1 (#) f2) /\ dom f3 by Def1;
    then
A3: x in dom (f1 (#) f2) by XBOOLE_0:def 4;
A4: dom (f1 (#) f2) = dom f1 /\ dom f2 by VALUED_1:def 4;
    then x in dom f1 by A3,XBOOLE_0:def 4;
    then
A5: f1.x = f1/.x by PARTFUN1:def 6;
    x in dom f2 by A3,A4,XBOOLE_0:def 4;
    then
A6: f2.x = f2/.x by PARTFUN1:def 6;
A7: (f1 (#) f2)/.x = (f1 (#) f2).x by A3,PARTFUN1:def 6
      .= f1/.x * f2/.x by A3,A5,A6,VALUED_1:def 4;
    x in dom f1 /\ dom (f2(#)f3) by A1,A2,Def1;
    then
A8: x in dom (f2 (#) f3) by XBOOLE_0:def 4;
    thus (f1 (#) f2 (#) f3)/.x = (f1 (#) f2)/.x * (f3/.x) by A2,Def1
      .= f1/.x * (f2/.x * (f3/.x)) by A7,CLVECT_1:def 4
      .= f1/.x * ((f2 (#) f3)/.x) by A8,Def1
      .= (f1 (#) (f2 (#) f3))/.x by A1,A2,Def1;
  end;
  hence thesis by A1,PARTFUN2:1;
end;
