reserve E, x, y, X for set;
reserve A, B, C for Subset of E^omega;
reserve a, b for Element of E^omega;
reserve i, k, l, kl, m, n, mn for Nat;

theorem Th40:
  (A |^ (m, n)) |^ k = A |^ (m * k, n * k)
proof
  per cases;
  suppose
A1: m <= n;
    defpred P[Nat] means (A |^ (m, n)) |^ $1 = A |^ (m * $1, n * $1);
A2: now
      let k;
A3:   m * k <= n * k by A1,XREAL_1:64;
      assume P[k];
      then
      (A |^ (m, n)) |^ (k + 1) = (A |^ (m * k, n * k)) ^^ (A |^ (m, n)) by
FLANG_1:23
        .= A |^ (m * k + m, n * k + n) by A1,A3,Th37
        .= A |^ (m * (k + 1), n * (k + 1));
      hence P[k + 1];
    end;
    (A |^ (m, n)) |^ 0 = {<%>E} by FLANG_1:24
      .= A |^ 0 by FLANG_1:24
      .= A |^ (m * 0, n * 0) by Th22;
    then
A4: P[0];
    for k holds P[k] from NAT_1:sch 2(A4, A2);
    hence thesis;
  end;
  suppose
A5: k = 0;
    hence (A |^ (m, n)) |^ k = {<%>E} by FLANG_1:24
      .= A |^ 0 by FLANG_1:24
      .= A |^ (m * k, n * k) by A5,Th22;
  end;
  suppose
A6: m > n & k <> 0;
    then A |^ (m, n) = {} by Th21;
    then
A7: (A |^ (m, n)) |^ k = {} by A6,FLANG_1:27;
    m * k > n * k by A6,XREAL_1:68;
    hence thesis by A7,Th21;
  end;
end;
