reserve X,Y,Z,X1,X2,Y1,Y2 for set, x,y,z,t,x1,x2 for object,
  f,g,h,f1,f2,g1,g2 for Function;

theorem Th3:
  Y <> {} or [:X,Y:] <> {} or [:Y,X:] <> {} implies proj1 [:X,Y:]
  = X & proj2 [:Y,X:] = X
proof
  set y = the Element of Y;
  assume Y <> {} or [:X,Y:] <> {} or [:Y,X:] <> {};
  then
A1: Y <> {} by ZFMISC_1:90;
  now
    let x be object;
    x in X implies [x,y] in [:X,Y:] by A1,ZFMISC_1:87;
    hence x in X iff ex y being object st [x,y] in [:X,Y:] by ZFMISC_1:87;
  end;
  hence proj1 [:X,Y:] = X by XTUPLE_0:def 12;
  now
    let x be object;
    x in X implies [y,x] in [:Y,X:] by A1,ZFMISC_1:87;
    hence x in X iff ex y being object st [y,x] in [:Y,X:] by ZFMISC_1:87;
  end;
  hence thesis by XTUPLE_0:def 13;
end;
