reserve x,O for set,
  o for Element of O,
  G,H,I for GroupWithOperators of O,
  A, B for Subset of G,
  N for normal StableSubgroup of G,
  H1,H2,H3 for StableSubgroup of G,
  g1,g2 for Element of G,
  h1,h2 for Element of H1,
  h for Homomorphism of G,H;

theorem Th30:
  H1 * H2 = H2 * H1 implies the carrier of H1 "\/" H2 = H1 * H2
proof
  assume H1 * H2 = H2 * H1;
  then consider H being strict StableSubgroup of G such that
A1: the carrier of H = carr H1 * carr H2 by Th17;
  now
    set A = carr H1 \/ carr H2;
    let a be Element of G;
    set X = {B where B is Subset of G: ex H being strict StableSubgroup of G
    st B = the carrier of H & A c= carr H};
    assume a in H;
    then a in carr H1 * carr H2 by A1,STRUCT_0:def 5;
    then consider b,c be Element of G such that
A2: a = b * c and
A3: b in carr H1 and
A4: c in carr H2;
A5: now
      let Y be set;
      assume Y in X;
      then consider B be Subset of G such that
A6:   Y = B and
A7:   ex H being strict StableSubgroup of G st B = the carrier of H &
      A c= carr H;
      consider H9 be strict StableSubgroup of G such that
A8:   B = the carrier of H9 and
A9:   A c= carr H9 by A7;
      c in A by A4,XBOOLE_0:def 3;
      then
A10:  c in H9 by A9,STRUCT_0:def 5;
A11:  H9 is Subgroup of G by Def7;
      b in A by A3,XBOOLE_0:def 3;
      then b in H9 by A9,STRUCT_0:def 5;
      then b * c in H9 by A11,A10,GROUP_2:50;
      hence a in Y by A2,A6,A8,STRUCT_0:def 5;
    end;
    carr (Omega).G in X;
    then a in meet X by A5,SETFAM_1:def 1;
    then a in the carrier of the_stable_subgroup_of A by Th27;
    hence a in H1 "\/" H2 by STRUCT_0:def 5;
  end;
  then H is StableSubgroup of H1 "\/" H2 by Th13;
  then H is Subgroup of H1 "\/" H2 by Def7;
  then
A12: the carrier of H c= the carrier of H1 "\/" H2 by GROUP_2:def 5;
  carr H1 \/ carr H2 c= carr H1 * carr H2
  proof
    let x be object;
    assume
A13: x in carr H1 \/ carr H2;
    then reconsider a = x as Element of G;
    now
      per cases by A13,XBOOLE_0:def 3;
      suppose
A14:    x in carr H1;
        1_G in H2 by Lm17;
        then
A15:    1_G in carr H2 by STRUCT_0:def 5;
        a * 1_G = a by GROUP_1:def 4;
        hence thesis by A14,A15;
      end;
      suppose
A16:    x in carr H2;
        1_G in H1 by Lm17;
        then
A17:    1_G in carr H1 by STRUCT_0:def 5;
        1_G * a = a by GROUP_1:def 4;
        hence thesis by A16,A17;
      end;
    end;
    hence thesis;
  end;
  then H1 "\/" H2 is StableSubgroup of H by A1,Def26;
  then H1 "\/" H2 is Subgroup of H by Def7;
  then the carrier of H1 "\/" H2 c= the carrier of H by GROUP_2:def 5;
  hence thesis by A1,A12,XBOOLE_0:def 10;
end;
