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
  {g,h} + {g1,g2} = {g + g1, g + g2, h + g1, h + g2}
proof
  set A = {g,h} + {g1,g2};
  set B = {g + g1, g + g2, h + g1, h + g2};
  thus A c= B
  proof
    let x be object;
    assume x in A;
    then consider h1,h2 such that
A1: x = h1 + h2 and
A2: h1 in {g,h} and
A3: h2 in {g1,g2};
A4: h2 = g1 or h2 = g2 by A3,TARSKI:def 2;
    h1 = g or h1 = h by A2,TARSKI:def 2;
    hence thesis by A1,A4,ENUMSET1:def 2;
  end;
  let x be object;
A5: g1 in {g1,g2} & g2 in {g1,g2} by TARSKI:def 2;
  assume x in B;
  then
A6: x = g + g1 or x = g + g2 or x = h + g1 or x = h + g2 by ENUMSET1:def 2;
  g in {g,h} & h in {g,h} by TARSKI:def 2;
  hence thesis by A6,A5;
end;
