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 Tassoc:
  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 1
    .= dom f1 /\ dom f2 /\ dom f3 by VALUED_1:def 1
    .= dom f1 /\ (dom f2 /\ dom f3) by XBOOLE_1:16
    .= dom f1 /\ dom (f2 + f3) by VALUED_1:def 1
    .= dom (f1 + (f2 + f3)) by VALUED_1:def 1;
    let c be object;
    assume
A2: c in dom (f1 + f2 + f3);
    then c in dom (f1 + f2) /\ dom f3 by VALUED_1:def 1;
    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 1;
    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 1
    .= ((f1.c)) + ((f2.c)) + (f3.c) by A3,VALUED_1:def 1
    .= ((f1.c)) + (((f2.c)) + (f3.c))
    .= ((f1.c)) + (f2 + f3).c by A4,VALUED_1:def 1
    .= (f1 + (f2 + f3)).c by A1,A2,VALUED_1:def 1;
end;
