reserve u,v,x,x1,x2,y,y1,y2,z,p,a for object,
        A,B,X,X1,X2,X3,X4,Y,Y1,Y2,Z,N,M for set;

theorem
  [:X1,X2:] \ [:Y1,Y2:] = [:X1\Y1,X2:] \/ [:X1,X2\Y2:]
proof
A1: [:Y1,X2:] /\ [:X1,Y2:] = [:Y1 /\ X1, X2 /\ Y2:] by Th99;
  Y1 /\ X1 c= Y1 & X2 /\ Y2 c= Y2 by XBOOLE_1:17;
  then
A2: [:Y1 /\ X1, X2 /\ Y2:] c= [:Y1,Y2:] by Th95;
A3: [:X1\Y1,X2:] \/ [:X1,X2\Y2:] c= [:X1,X2:] \ [:Y1, Y2:]
  proof
    let z;
A4: now
      assume z in [:X1\Y1,X2:];
      then consider x,y such that
A5:   x in X1\Y1 and
A6:   y in X2 and
A7:   z=[x,y] by Def2;
      not x in Y1 by A5,XBOOLE_0:def 5;
      then
A8:   not z in [:Y1,Y2:] by A7,Lm16;
      x in X1 by A5,XBOOLE_0:def 5;
      then z in [:X1,X2:] by A6,A7,Lm16;
      hence thesis by A8,XBOOLE_0:def 5;
    end;
A9: now
      assume z in [:X1,X2\Y2:];
      then consider x,y such that
A10:  x in X1 and
A11:  y in X2\Y2 and
A12:  z=[x,y] by Def2;
      not y in Y2 by A11,XBOOLE_0:def 5;
      then
A13:  not z in [:Y1,Y2:] by A12,Lm16;
      y in X2 by A11,XBOOLE_0:def 5;
      then z in [:X1,X2:] by A10,A12,Lm16;
      hence thesis by A13,XBOOLE_0:def 5;
    end;
    assume z in [:X1\Y1,X2:] \/ [:X1,X2\Y2:];
    hence thesis by A4,A9,XBOOLE_0:def 3;
  end;
  [:X1\Y1,X2:] = [:X1,X2:] \ [:Y1,X2:] & [:X1,X2\Y2:] = [:X1,X2:] \ [:X1,
  Y2 :] by Th101;
  then [:X1\Y1,X2:] \/ [:X1,X2\Y2:] = [:X1,X2:] \ [:Y1 /\ X1, X2 /\ Y2:] by A1,
XBOOLE_1:54;
  hence thesis by A3,A2,XBOOLE_1:34;
end;
