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 Th20:
  A ^^ B \/ A ^^ C = A ^^ (B \/ C) & B ^^ A \/ C ^^ A = (B \/ C) ^^ A
proof
A1: A ^^ (B \/ C) c= (A ^^ B) \/ (A ^^ C)
  proof
    let x be object;
    assume x in A ^^ (B \/ C);
    then consider a, bc such that
A2: a in A and
A3: bc in B \/ C and
A4: x = a ^ bc by Def1;
    bc in B or bc in C by A3,XBOOLE_0:def 3;
    then x in A ^^ B or x in A ^^ C by A2,A4,Def1;
    hence thesis by XBOOLE_0:def 3;
  end;
A5: (B \/ C) ^^ A c= (B ^^ A) \/ (C ^^ A)
  proof
    let x be object;
    assume x in (B \/ C) ^^ A;
    then consider bc, a such that
A6: bc in B \/ C and
A7: a in A & x = bc ^ a by Def1;
    bc in B or bc in C by A6,XBOOLE_0:def 3;
    then x in B ^^ A or x in C ^^ A by A7,Def1;
    hence thesis by XBOOLE_0:def 3;
  end;
  C c= B \/ C by XBOOLE_1:7;
  then
A8: C ^^ A c= (B \/ C) ^^ A by Th17;
  B c= B \/ C by XBOOLE_1:7;
  then B ^^ A c= (B \/ C) ^^ A by Th17;
  then
A9: (B ^^ A) \/ (C ^^ A) c= (B \/ C) ^^ A by A8,XBOOLE_1:8;
  C c= B \/ C by XBOOLE_1:7;
  then
A10: A ^^ C c= A ^^ (B \/ C) by Th17;
  B c= B \/ C by XBOOLE_1:7;
  then A ^^ B c= A ^^ (B \/ C) by Th17;
  then (A ^^ B) \/ (A ^^ C) c= A ^^ (B \/ C) by A10,XBOOLE_1:8;
  hence thesis by A1,A5,A9,XBOOLE_0:def 10;
end;
