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 Th67:
  A c= B* implies B* = (B \/ A)*
proof
  defpred P[Nat] means (B \/ A) |^ $1 c= B*;
  assume
A1: A c= B*;
A2: now
    let n;
    assume
A3: P[n];
    B c= B* by Th43;
    then
A4: B \/ A c= B* by A1,XBOOLE_1:8;
    (B \/ A) |^ (n + 1) = (B \/ A) |^ n ^^ (B \/ A) by Th23;
    hence P[n + 1] by A3,A4,Th46;
  end;
  (B \/ A) |^ 0 = {<%>E} & <%>E in B* by Th24,Th48;
  then
A5: P[0] by ZFMISC_1:31;
A6: for n holds P[n] from NAT_1:sch 2(A5, A2);
A7: (B \/ A)* c= B*
  proof
    let x be object;
    assume x in (B \/ A)*;
    then consider n such that
A8: x in (B \/ A) |^ n by Th41;
    (B \/ A) |^ n c= B* by A6;
    hence thesis by A8;
  end;
  B* c= (B \/ A)* by Th61,XBOOLE_1:7;
  hence thesis by A7,XBOOLE_0:def 10;
end;
