reserve G for strict Group,
  a,b,x,y,z for Element of G,
  H,K for strict Subgroup of G,
  p for Element of NAT,
  A for Subset of G;

theorem
  for H, K holds H * x * K = H * y * K or
  not ex z st z in H * x * K & z in H * y * K
proof
  let H, K;
  per cases;
  suppose not ex z st z in H * x * K & z in H * y * K;
    hence thesis;
  end;
  suppose ex z st z in H * x * K & z in H * y * K;
    then consider z such that
A1: z in H * x * K and
A2: z in H * y * K;
    consider h1, k1 being Element of G such that
A3: z = h1 * x * k1 and
A4: h1 in H and
A5: k1 in K by A1,Th17;
    consider h2, k2 being Element of G such that
A6: z = h2 * y * k2 and
A7: h2 in H and
A8: k2 in K by A2,Th17;
    for a be object st a in H * x * K holds a in H * y * K
    proof
      let a be object;
      assume a in H * x * K;
      then consider h,k being Element of G such that
A9:   a = h * x * k and
A10:  h in H and
A11:  k in K by Th17;
      ex c,d being Element of G st a = c * y * d & c in H & d in K
      proof
        h = h * 1_G by GROUP_1:def 4;
        then
A12:    h * x * k = h * 1_G * x * 1_G * k by GROUP_1:def 4;
        1_G = h1" * h1 by GROUP_1:def 5;
        then
A13:    h * x * k = h * (h1" * h1) * x * (k1 * k1") * k by A12,GROUP_1:def 5
          .= h * (h1" * h1) * x * k1 * k1" * k by GROUP_1:def 3
          .= h * h1" * h1 * x * k1 * k1" * k by GROUP_1:def 3
          .= h * h1" * (h1 * x) * k1 * k1" * k by GROUP_1:def 3
          .= h * h1" * (h2 * y * k2) * k1" * k by A3,A6,GROUP_1:def 3
          .= h * h1" * (h2 * y) * k2 * k1" * k by GROUP_1:def 3
          .= (h * h1") * h2 * y * k2 * k1" * k by GROUP_1:def 3
          .= (h * h1" * h2) * y * (k2 * k1") * k by GROUP_1:def 3
          .= (h * h1" * h2) * y * (k2 * k1" * k) by GROUP_1:def 3;
        take h * h1" * h2;
        take k2 * k1" * k;
        h1" in H by A4,GROUP_2:51;
        then
A14:    h * h1" in H by A10,GROUP_2:50;
        k1" in K by A5,GROUP_2:51;
        then k2 * k1" in K by A8,GROUP_2:50;
        hence thesis by A7,A9,A11,A13,A14,GROUP_2:50;
      end;
      hence thesis by Th17;
    end;
    then
A15: H * x * K c= H * y * K;
    for a be object st a in H * y * K holds a in H * x * K
    proof
      let a be object;
      assume a in H * y * K;
      then consider h,k being Element of G such that
A16:  a = h * y * k and
A17:  h in H and
A18:  k in K by Th17;
      ex c,d being Element of G st a = c * x * d & c in H & d in K
      proof
        h = h * 1_G by GROUP_1:def 4;
        then
A19:    h * y * k = h * 1_G * y * 1_G * k by GROUP_1:def 4;
        1_G = h2" * h2 by GROUP_1:def 5;
        then
A20:    h * y * k = h * (h2" * h2) * y * (k2 * k2") * k by A19,GROUP_1:def 5
          .= h * (h2" * h2) * y * k2 * k2" * k by GROUP_1:def 3
          .= h * h2" * h2 * y * k2 * k2" * k by GROUP_1:def 3
          .= h * h2" * (h2 * y) * k2 * k2" * k by GROUP_1:def 3
          .= h * h2" * (h1 * x * k1) * k2" * k by A3,A6,GROUP_1:def 3
          .= h * h2" * (h1 * x) * k1 * k2" * k by GROUP_1:def 3
          .= (h * h2") * h1 * x * k1 * k2" * k by GROUP_1:def 3
          .= (h * h2" * h1) * x * (k1 * k2") * k by GROUP_1:def 3
          .= (h * h2" * h1) * x * (k1 * k2" * k) by GROUP_1:def 3;
        take h * h2" * h1;
        take k1 * k2" * k;
        h2" in H by A7,GROUP_2:51;
        then
A21:    h * h2" in H by A17,GROUP_2:50;
        k2" in K by A8,GROUP_2:51;
        then k1 * k2" in K by A5,GROUP_2:50;
        hence thesis by A4,A16,A18,A20,A21,GROUP_2:50;
      end;
      hence thesis by Th17;
    end;
    then H * y * K c= H * x * K;
    hence thesis by A15,XBOOLE_0:def 10;
  end;
end;
