reserve x,y for set,
  k,n for Nat,
  i for Integer,
  G for Group,
  a,b,c ,d,e for Element of G,
  A,B,C,D for Subset of G,
  H,H1,H2,H3,H4 for Subgroup of G ,
  N1,N2 for normal Subgroup of G,
  F,F1,F2 for FinSequence of the carrier of G,
  I,I1,I2 for FinSequence of INT;

theorem Th5:
  H1 * H2 = H2 * H1 implies (x in H1 "\/" H2 iff ex a,b st x = a *
  b & a in H1 & b in H2)
proof
  assume
A1: H1 * H2 = H2 * H1;
  thus x in H1 "\/" H2 implies ex a,b st x = a * b & a in H1 & b in H2
  proof
    assume x in H1 "\/" H2;
    then x in the carrier of H1 "\/" H2 by STRUCT_0:def 5;
    then x in H1 * H2 by A1,GROUP_4:51;
    hence thesis by Th4;
  end;
  given a,b such that
A2: x = a * b & a in H1 & b in H2;
  x in H1 * H2 by A2,Th4;
  then x in the carrier of H1 "\/" H2 by A1,GROUP_4:51;
  hence thesis by STRUCT_0:def 5;
end;
