reserve a,b,c,d for set,
  D,X1,X2,X3,X4 for non empty set,
  x1,y1,z1 for Element of X1,
  x2 for Element of X2,
  x3 for Element of X3,
  x4 for Element of X4,
  A1,B1 for Subset of X1;

theorem Th4:
  (for a holds a in D iff ex x1,x2,x3 st a = [x1,x2,x3]) implies D
  = [: X1,X2,X3 :]
proof
  assume
A1: for a holds a in D iff ex x1,x2,x3 st a = [x1,x2,x3];
  now
    let a be object;
    thus a in D implies a in [:[:X1,X2:],X3:]
    proof
      assume a in D;
      then consider x1,x2,x3 such that
A2:   a = [x1,x2,x3] by A1;
      a = [[x1,x2],x3] by A2;
      hence thesis;
    end;
    assume a in [:[:X1,X2:],X3:];
    then consider x12,x3 being object such that
A3: x12 in [:X1,X2:] and
A4: x3 in X3 and
A5: a = [x12,x3] by ZFMISC_1:def 2;
    reconsider x3 as Element of X3 by A4;
    consider x1,x2 being object such that
A6: x1 in X1 and
A7: x2 in X2 and
A8: x12 = [x1,x2] by A3,ZFMISC_1:def 2;
    reconsider x2 as Element of X2 by A7;
    reconsider x1 as Element of X1 by A6;
    a = [x1,x2,x3] by A5,A8;
    hence a in D by A1;
  end;
  then D = [:[:X1,X2:],X3:] by TARSKI:2;
  hence thesis by ZFMISC_1:def 3;
end;
