reserve x,X,Y for set;
reserve C for non empty set;
reserve c for Element of C;
reserve V for RealNormSpace;
reserve f,f1,f2,f3 for PartFunc of C,V;
reserve r,r1,r2,p for Real;

theorem
  for V being add-associative non empty addLoopStr
  for f1,f2,f3 being PartFunc of C,V holds
  (f1 + f2) + f3 = f1 + (f2 + f3)
proof
  let V be add-associative non empty addLoopStr;
  let f1,f2,f3 be PartFunc of C,V;
A1: dom (f1 + f2 + f3) = dom (f1 + f2) /\ dom f3 by Def1
    .= dom f1 /\ dom f2 /\ dom f3 by Def1
    .= 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 c;
    assume
A2: c in dom (f1 + f2 + f3);
    then c in dom (f1 + f2) /\ dom f3 by Def1;
    then
A3: c in dom (f1 + f2) by XBOOLE_0:def 4;
    c in dom f1 /\ dom (f2 + f3) by A1,A2,Def1;
    then
A4: c in dom (f2 + f3) by XBOOLE_0:def 4;
    thus (f1 + f2 + f3)/.c = ((f1 + f2)/.c) + (f3/.c) by A2,Def1
      .= (f1/.c) + (f2/.c) + (f3/.c) by A3,Def1
      .= (f1/.c) + ((f2/.c) + (f3/.c)) by RLVECT_1:def 3
      .= (f1/.c) + ((f2 + f3)/.c) by A4,Def1
      .= (f1 + (f2 + f3))/.c by A1,A2,Def1;
  end;
  hence thesis by A1,PARTFUN2:1;
end;
