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;
reserve G for addGroup-like non empty addMagma;
reserve h,g,g1,g2 for Element of G;
reserve A for Subset of G;
reserve H for Subgroup of G;
reserve h,h1,h2 for Element of H;
reserve G,G1,G2,G3 for addGroup;
reserve a,a1,a2,b,b1,b2,g,g1,g2 for Element of G;
reserve A,B for Subset of G;
reserve H,H1,H2,H3 for Subgroup of G;
reserve h,h1,h2 for Element of H;

theorem
  (H1 /\ H2) + a = (H1 + a) /\ (H2 + a)
proof
  thus (H1 /\ H2) + a c= (H1 + a) /\ (H2 + a)
  proof
    let x be object;
    assume x in (H1 /\ H2) + a;
    then consider g such that
A1: x = g + a and
A2: g in H1 /\ H2 by Th104;
    g in H2 by A2,Th82;
    then
A3: x in H2 + a by A1,Th104;
    g in H1 by A2,Th82;
    then x in H1 + a by A1,Th104;
    hence thesis by A3;
  end;
  let x be object;
  assume
A4: x in (H1 + a) /\ (H2 + a);
  then x in H1 + a by XBOOLE_0:def 4;
  then consider g such that
A5: x = g + a and
A6: g in H1 by Th104;
  x in H2 + a by A4,XBOOLE_0:def 4;
  then consider g1 such that
A7: x = g1 + a and
A8: g1 in H2 by Th104;
  g = g1 by A5,A7,Th6;
  hence thesis by A5,A6,A8,Th82,Th104;
end;
