reserve m,n for Nat;
reserve i,j for Integer;
reserve S for non empty addMagma;
reserve r,r1,r2,s,s1,s2,t,t1,t2 for Element of S;
reserve G for addGroup-like non empty addMagma;
reserve e,h for Element of G;
reserve G for addGroup;
reserve f,g,h for Element of G;
reserve u for UnOp of G;
reserve A for Abelian addGroup;
reserve a,b for Element of A;
reserve x for object;
reserve y,y1,y2,Y,Z for set;
reserve k for Nat;
reserve G for addGroup;
reserve a,g,h for Element of G;
reserve A for Subset of G;
reserve G for non empty addMagma,
  A,B,C for Subset of G;
reserve a,b,g,g1,g2,h,h1,h2 for Element of G;

theorem
  (A /\ B) + C c= (A + C) /\ (B + C)
proof
  let x be object;
  assume x in (A /\ B) + C;
  then consider g1,g2 such that
A1: x = g1 + g2 and
A2: g1 in A /\ B and
A3: g2 in C;
  g1 in B by A2,XBOOLE_0:def 4;
  then
A4: x in B + C by A1,A3;
  g1 in A by A2,XBOOLE_0:def 4;
  then x in A + C by A1,A3;
  hence thesis by A4;
end;
