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;
reserve X,Y for set;

theorem
  for f1 be PartFunc of M,COMPLEX holds (f1(#)f2)|X = f1|X (#) f2|X & (
  f1(#)f2)|X = f1|X (#) f2 & (f1(#)f2)|X = f1 (#) f2|X
proof
  let f1 be PartFunc of M,COMPLEX;
A1: now
    let c be Element of M;
    assume
A2: c in dom ((f1(#)f2)|X);
    then
A3: c in dom (f1(#)f2) /\ X by RELAT_1:61;
    then
A4: c in X by XBOOLE_0:def 4;
A5: c in dom (f1(#)f2) by A3,XBOOLE_0:def 4;
    then
A6: c in dom f1 /\ dom f2 by Def1;
    then
A7: c in dom f1 by XBOOLE_0:def 4;
    then c in dom f1 /\ X by A4,XBOOLE_0:def 4;
    then
A8: c in dom (f1|X) by RELAT_1:61;
    then
A9: (f1|X)/.c = (f1|X).c by PARTFUN1:def 6
      .= f1.c by A8,FUNCT_1:47
      .= f1/.c by A7,PARTFUN1:def 6;
    c in dom f2 by A6,XBOOLE_0:def 4;
    then c in dom f2 /\ X by A4,XBOOLE_0:def 4;
    then
A10: c in dom (f2|X) by RELAT_1:61;
    then c in dom (f1|X) /\ dom (f2|X) by A8,XBOOLE_0:def 4;
    then
A11: c in dom ((f1|X) (#) (f2|X)) by Def1;
    thus ((f1(#)f2)|X)/.c = (f1(#)f2)/.c by A2,PARTFUN2:15
      .= (f1/.c) * (f2/.c) by A5,Def1
      .= ((f1|X)/.c) * ((f2|X)/.c) by A10,A9,PARTFUN2:15
      .= ((f1|X)(#)(f2|X))/.c by A11,Def1;
  end;
  dom ((f1(#)f2)|X) = dom (f1(#)f2) /\ X by RELAT_1:61
    .= dom f1 /\ dom f2 /\ (X /\ X) by Def1
    .= dom f1 /\ (dom f2 /\ (X /\ X)) by XBOOLE_1:16
    .= dom f1 /\ (dom f2 /\ X /\ X) by XBOOLE_1:16
    .= dom f1 /\ (X /\ dom (f2|X)) by RELAT_1:61
    .= dom f1 /\ X /\ dom (f2|X) by XBOOLE_1:16
    .= dom (f1|X) /\ dom (f2|X) by RELAT_1:61
    .= dom ((f1|X)(#)(f2|X)) by Def1;
  hence (f1(#)f2)|X = f1|X (#) f2|X by A1,PARTFUN2:1;
A12: now
    let c be Element of M;
    assume
A13: c in dom ((f1(#)f2)|X);
    then
A14: c in dom (f1(#)f2) /\ X by RELAT_1:61;
    then
A15: c in dom (f1(#)f2) by XBOOLE_0:def 4;
    then
A16: c in dom f1 /\ dom f2 by Def1;
    then
A17: c in dom f1 by XBOOLE_0:def 4;
    c in X by A14,XBOOLE_0:def 4;
    then c in dom f1 /\ X by A17,XBOOLE_0:def 4;
    then
A18: c in dom (f1|X) by RELAT_1:61;
    then
A19: (f1|X)/.c = (f1|X).c by PARTFUN1:def 6
      .= f1.c by A18,FUNCT_1:47;
    c in dom f2 by A16,XBOOLE_0:def 4;
    then c in dom (f1|X) /\ dom f2 by A18,XBOOLE_0:def 4;
    then
A20: c in dom ((f1|X) (#) f2) by Def1;
    thus ((f1(#)f2)|X)/.c = (f1(#)f2)/.c by A13,PARTFUN2:15
      .= (f1/.c) * (f2/.c) by A15,Def1
      .= ((f1|X)/.c) * (f2/.c) by A17,A19,PARTFUN1:def 6
      .= ((f1|X)(#)f2)/.c by A20,Def1;
  end;
  dom ((f1(#)f2)|X) = dom (f1(#)f2) /\ X by RELAT_1:61
    .= dom f1 /\ dom f2 /\ X by Def1
    .= dom f1 /\ X /\ dom f2 by XBOOLE_1:16
    .= dom (f1|X) /\ dom f2 by RELAT_1:61
    .= dom ((f1|X)(#) f2) by Def1;
  hence (f1(#)f2)|X = f1|X (#) f2 by A12,PARTFUN2:1;
A21: now
    let c be Element of M;
    assume
A22: c in dom ((f1(#)f2)|X);
    then
A23: c in dom (f1(#)f2) /\ X by RELAT_1:61;
    then
A24: c in X by XBOOLE_0:def 4;
A25: c in dom (f1(#)f2) by A23,XBOOLE_0:def 4;
    then
A26: c in dom f1 /\ dom f2 by Def1;
    then c in dom f2 by XBOOLE_0:def 4;
    then c in dom f2 /\ X by A24,XBOOLE_0:def 4;
    then
A27: c in dom (f2|X) by RELAT_1:61;
    c in dom f1 by A26,XBOOLE_0:def 4;
    then c in dom f1 /\ dom (f2|X) by A27,XBOOLE_0:def 4;
    then
A28: c in dom (f1 (#) (f2|X)) by Def1;
    thus ((f1(#)f2)|X)/.c = (f1(#)f2)/.c by A22,PARTFUN2:15
      .= (f1/.c) * (f2/.c) by A25,Def1
      .= (f1/.c) * ((f2|X)/.c) by A27,PARTFUN2:15
      .= (f1(#)(f2|X))/.c by A28,Def1;
  end;
  dom ((f1(#)f2)|X) = dom (f1(#)f2) /\ X by RELAT_1:61
    .= dom f1 /\ dom f2 /\ X by Def1
    .= dom f1 /\ (dom f2 /\ X) by XBOOLE_1:16
    .= dom f1 /\ dom (f2|X) by RELAT_1:61
    .= dom (f1 (#) (f2|X)) by Def1;
  hence thesis by A21,PARTFUN2:1;
end;
