reserve A, B for non empty preBoolean set,
  x, y for Element of [:A,B:];
reserve X for set,
  a,b,c for Element of [:A,B:];
reserve a for Element of [:Fin X, Fin X:];
reserve A for set;
reserve x,y for Element of [:Fin X, Fin X:],
  a,b for Element of DISJOINT_PAIRS X;
reserve A for set,
  x for Element of [:Fin A, Fin A:],
  a,b,c,d,s,t for Element of DISJOINT_PAIRS A,
  B,C,D for Element of Fin DISJOINT_PAIRS A;
reserve K,L,M for Element of Normal_forms_on A;

theorem Th46:
  B c= C implies B ^ D c= C ^ D
proof
  deffunc F(Element of DISJOINT_PAIRS A, Element of DISJOINT_PAIRS A) = $1 \/
  $2;
  defpred P[set,set] means $1 in B & $2 in D;
  defpred Q[set,set] means $1 in C & $2 in D;
  set X1 = { F(s,t): P[s,t] };
  set X2 = { F(s,t): Q[s,t] };
  assume B c= C;
  then
A1: P[s, t] implies Q[s, t];
  X1 c= X2 from FRAENKEL:sch 2(A1);
  hence thesis by XBOOLE_1:26;
end;
