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 Th56:
  A* = {<%>E} \/ A ^^ (A*) & A* = {<%>E} \/ (A*) ^^ A
proof
A1: now
    let x be object;
    assume x in {<%>E} \/ (A*) ^^ A;
    then x in {<%>E} or x in (A*) ^^ A by XBOOLE_0:def 3;
    then x = <%>E or x in A* by Th52,TARSKI:def 1;
    hence x in A* by Th48;
  end;
A2: now
    let x be object;
    assume x in A*;
    then consider n such that
A3: x in A |^ n by Th41;
A4: now
      assume n > 0;
      then ex m st m + 1 = n by NAT_1:6;
      hence x in (A*) ^^ A by A3,Th50;
    end;
    n = 0 implies x in {<%>E} by A3,Th24;
    hence x in {<%>E} \/ (A*) ^^ A by A4,XBOOLE_0:def 3;
  end;
A5: now
    let x be object;
    assume x in A*;
    then consider n such that
A6: x in A |^ n by Th41;
A7: now
      assume n > 0;
      then ex m st m + 1 = n by NAT_1:6;
      hence x in A ^^ (A*) by A6,Th50;
    end;
    n = 0 implies x in {<%>E} by A6,Th24;
    hence x in {<%>E} \/ A ^^ (A*) by A7,XBOOLE_0:def 3;
  end;
  now
    let x be object;
    assume x in {<%>E} \/ A ^^ (A*);
    then x in {<%>E} or x in A ^^ (A*) by XBOOLE_0:def 3;
    then x = <%>E or x in A* by Th52,TARSKI:def 1;
    hence x in A* by Th48;
  end;
  hence thesis by A2,A5,A1,TARSKI:2;
end;
