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
  dom f = [:X,Y:] implies uncurry curry f = f & uncurry' curry' f = f
proof
  assume
A1: dom f = [:X,Y:];
A2: now
A3: rng curry' f c= Funcs(X,rng f) by A1,Th28;
    assume
A4: dom f <> {};
    then X <> {} by A1;
    then
A5: curry' uncurry' curry' f = curry' f by A3,Th41;
    dom curry' f = Y by A1,A4,Th17;
    then
A6: dom uncurry' curry' f = [:X,Y:] by A3,Th19;
A7: rng curry f c= Funcs(Y,rng f) by A1,Th28;
    Y <> {} by A1,A4;
    then
A8: curry uncurry curry f = curry f by A7,Th41;
    dom curry f = X by A1,A4,Th17;
    then dom uncurry curry f = [:X,Y:] by A7,Th19;
    hence thesis by A1,A8,A5,A6,Th37,Th38;
  end;
  now
    assume dom f = {};
    then f = {};
    hence thesis by Th35,Th36;
  end;
  hence thesis by A2;
end;
