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 Th96:
  [:X \/ Y, Z:] = [:X, Z:] \/ [:Y, Z:] & [:Z, X \/ Y:] = [:Z, X:] \/ [:Z, Y:]
proof
A1: for z st z in [:X \/ Y, Z:] ex x,y st z=[x,y] by Lm19;
A2: for x,y holds [x,y] in [:X \/ Y, Z:] iff [x,y] in [:X, Z:] \/ [:Y, Z:]
  proof
    let x,y;
    thus [x,y] in [:X \/ Y, Z:] implies [x,y] in [:X, Z:] \/ [:Y, Z:]
    proof
      assume
A3:   [x,y] in [:X \/ Y, Z:];
      then x in X \/ Y by Lm16;
      then
A4:   x in X or x in Y by XBOOLE_0:def 3;
      y in Z by A3,Lm16;
      then [x,y] in [:X,Z:] or [x,y] in [:Y,Z:] by A4,Lm16;
      hence thesis by XBOOLE_0:def 3;
    end;
    assume [x,y] in [:X, Z:] \/ [:Y, Z:];
    then [x,y] in [:X, Z:] or [x,y] in [:Y, Z:] by XBOOLE_0:def 3;
    then
A5: x in X & y in Z or x in Y & y in Z by Lm16;
    then x in X \/ Y by XBOOLE_0:def 3;
    hence thesis by A5,Lm16;
  end;
A6: z in [:X1,X2:] \/ [:Y1,Y2:] implies ex x,y st z=[x,y]
  proof
    assume z in [:X1,X2:] \/ [:Y1,Y2:];
    then z in [:X1,X2:] or z in [:Y1,Y2:] by XBOOLE_0:def 3;
    hence thesis by Lm19;
  end;
  then for z st z in [:X,Z:] \/ [:Y,Z:] ex x,y st z=[x,y];
  hence
A7: [:X \/ Y, Z:] = [:X, Z:] \/ [:Y, Z:] by A1,A2,Lm18;
A8: for y,x holds [y,x] in [:Z, X \/ Y:] iff [y,x] in [:Z, X:] \/ [:Z, Y:]
  proof
    let y,x;
A9: [x,y]in[:X, Z:] or [x,y]in[:Y,Z:] iff [y,x]in[:Z,X:] or [y,x]in[:Z,Y
    :] by Th87;
    [y,x] in [:Z, X \/ Y:] iff [x,y] in [:X \/ Y, Z:] by Th87;
    hence thesis by A7,A9,XBOOLE_0:def 3;
  end;
A10: for z st z in [:Z,X \/ Y:] ex x,y st z=[x,y] by Lm19;
  for z st z in [:Z,X:] \/ [:Z,Y:] ex x,y st z=[x,y] by A6;
  hence thesis by A10,A8,Lm18;
end;
