reserve x for object, X,Y for set;
reserve C for non empty set;
reserve c for Element of C;
reserve f,f1,f2,f3,g,g1 for complex-valued Function;
reserve r,p for Complex;

theorem Th44:
  (f1+f2)|X = f1|X + f2|X & (f1+f2)|X = f1|X + f2 & (f1+f2)|X = f1 + f2|X
proof
A1: now
    let c be object;
    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 VALUED_1:def 1;
    then c in dom f2 by XBOOLE_0:def 4;
    then c in dom f2 /\ X by A4,XBOOLE_0:def 4;
    then
A7: c in dom (f2|X) by RELAT_1:61;
    c in dom f1 by A6,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 c in dom (f1|X) /\ dom (f2|X) by A7,XBOOLE_0:def 4;
    then
A9: c in dom ((f1|X) + (f2|X)) by VALUED_1:def 1;
    thus ((f1+f2)|X).c = (f1+f2).c by A2,FUNCT_1:47
      .= (f1.c) + (f2.c) by A5,VALUED_1:def 1
      .= ((f1|X).c) + (f2.c) by A8,FUNCT_1:47
      .= ((f1|X).c) + ((f2|X).c) by A7,FUNCT_1:47
      .= ((f1|X)+(f2|X)).c by A9,VALUED_1:def 1;
  end;
  dom ((f1+f2)|X) = dom (f1+f2) /\ X by RELAT_1:61
    .= dom f1 /\ dom f2 /\ (X /\ X) by VALUED_1:def 1
    .= 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 VALUED_1:def 1;
  hence (f1+f2)|X = f1|X + f2|X by A1,FUNCT_1:2;
A10: now
    let c be object;
    assume
A11: c in dom ((f1+f2)|X);
    then
A12: c in dom (f1+f2) /\ X by RELAT_1:61;
    then
A13: c in X by XBOOLE_0:def 4;
A14: c in dom (f1+f2) by A12,XBOOLE_0:def 4;
    then
A15: c in dom f1 /\ dom f2 by VALUED_1:def 1;
    then c in dom f1 by XBOOLE_0:def 4;
    then c in dom f1 /\ X by A13,XBOOLE_0:def 4;
    then
A16: c in dom (f1|X) by RELAT_1:61;
    c in dom f2 by A15,XBOOLE_0:def 4;
    then c in dom (f1|X) /\ dom f2 by A16,XBOOLE_0:def 4;
    then
A17: c in dom ((f1|X) + f2) by VALUED_1:def 1;
    thus ((f1+f2)|X).c = (f1+f2).c by A11,FUNCT_1:47
      .= (f1.c) +(f2.c) by A14,VALUED_1:def 1
      .= ((f1|X).c) +(f2.c) by A16,FUNCT_1:47
      .= ((f1|X)+f2).c by A17,VALUED_1:def 1;
  end;
  dom ((f1+f2)|X) = dom (f1+f2) /\ X by RELAT_1:61
    .= dom f1 /\ dom f2 /\ X by VALUED_1:def 1
    .= dom f1 /\ X /\ dom f2 by XBOOLE_1:16
    .= dom (f1|X) /\ dom f2 by RELAT_1:61
    .= dom ((f1|X)+ f2) by VALUED_1:def 1;
  hence (f1+f2)|X = f1|X + f2 by A10,FUNCT_1:2;
A18: now
    let c be object;
    assume
A19: c in dom ((f1+f2)|X);
    then
A20: c in dom (f1+f2) /\ X by RELAT_1:61;
    then
A21: c in X by XBOOLE_0:def 4;
A22: c in dom (f1+f2) by A20,XBOOLE_0:def 4;
    then
A23: c in dom f1 /\ dom f2 by VALUED_1:def 1;
    then c in dom f2 by XBOOLE_0:def 4;
    then c in dom f2 /\ X by A21,XBOOLE_0:def 4;
    then
A24: c in dom (f2|X) by RELAT_1:61;
    c in dom f1 by A23,XBOOLE_0:def 4;
    then c in dom f1 /\ dom (f2|X) by A24,XBOOLE_0:def 4;
    then
A25: c in dom (f1 + (f2|X)) by VALUED_1:def 1;
    thus ((f1+f2)|X).c = (f1+f2).c by A19,FUNCT_1:47
      .= (f1.c) +(f2.c) by A22,VALUED_1:def 1
      .= (f1.c) +((f2|X).c) by A24,FUNCT_1:47
      .= (f1+(f2|X)).c by A25,VALUED_1:def 1;
  end;
  dom ((f1+f2)|X) = dom (f1+f2) /\ X by RELAT_1:61
    .= dom f1 /\ dom f2 /\ X by VALUED_1:def 1
    .= dom f1 /\ (dom f2 /\ X) by XBOOLE_1:16
    .= dom f1 /\ dom (f2|X) by RELAT_1:61
    .= dom (f1 + (f2|X)) by VALUED_1:def 1;
  hence thesis by A18,FUNCT_1:2;
end;
