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;
reserve x,y,y1,y2 for set;
reserve G for addGroup;
reserve a,b,c,d,g,h for Element of G;
reserve A,B,C,D for Subset of G;
reserve H,H1,H2,H3 for Subgroup of G;
reserve n for Nat;
reserve i for Integer;

theorem Th35:
  A * B * C = A * (B + C)
proof
  thus A * B * C c= A * (B + C)
  proof
    let x be object;
    assume x in A * B * C;
    then consider a,c such that
A1: x = a * c and
A2: a in A * B and
A3: c in C;
    consider g,h such that
A4: a = g * h and
A5: g in A and
A6: h in B by A2;
    x = g * (h + c) & h + c in B + C by A1,A3,A4,A6,Th24;
    hence thesis by A5;
  end;
  let x be object;
  assume x in A * (B + C);
  then consider a,b such that
A7: x = a * b & a in A and
A8: b in B + C;
  consider g,h such that
A9: b = g + h & g in B and
A10: h in C by A8;
  a * g in A * B & x = a * g * h by A7,A9,Th24;
  hence thesis by A10;
end;
