reserve E, x, y, X for set;
reserve A, B, C, D for Subset of E^omega;
reserve a, a1, a2, b, c, c1, c2, d, ab, bc for Element of E^omega;
reserve e for Element of E;
reserve i, j, k, l, n, n1, n2, m for Nat;

theorem
  (A |^ n) ^^ (A*) = (A*) ^^ (A |^ n)
proof
  defpred P[Nat] means (A |^ $1) ^^ (A*) = (A*) ^^ (A |^ $1);
A1: now
    let n;
    assume
A2: P[n];
    (A |^ (n + 1)) ^^ (A*) = (A |^ n ^^ A) ^^ (A*) by Th23
      .= A |^ n ^^ (A ^^ (A*)) by Th18
      .= A |^ n ^^ ((A*) ^^ A) by Th57
      .= ((A*) ^^ A |^ n) ^^ A by A2,Th18
      .= (A*) ^^ (A |^ n ^^ A) by Th18
      .= (A*) ^^ A |^ (n + 1) by Th23;
    hence P[n + 1];
  end;
  (A |^ 0) ^^ (A*) = {<%>E} ^^ (A*) by Th24
    .= A* by Th13
    .= (A*) ^^ {<%>E} by Th13
    .= (A*) ^^ (A |^ 0) by Th24;
  then
A3: P[0];
  for n holds P[n] from NAT_1:sch 2(A3, A1);
  hence thesis;
end;
