reserve x,y,y1,y2,z,a,b for object, X,Y,Z,V1,V2 for set,
  f,g,h,h9,f1,f2 for Function,
  i for Nat,
  P for Permutation of X,
  D,D1,D2,D3 for non empty set,
  d1 for Element of D1,
  d2 for Element of D2,
  d3 for Element of D3;

theorem
  f in PFuncs([:X,Y:],Z) implies curry f in PFuncs(X,PFuncs(Y,Z)) &
  curry' f in PFuncs(Y,PFuncs(X,Z))
proof
  assume f in PFuncs([:X,Y:],Z);
  then
A1: ex g st f = g & dom g c= [:X,Y:] & rng g c= Z by PARTFUN1:def 3;
  then proj1 [:X,Y:] c= X & proj1 dom f c= proj1 [:X,Y:] by FUNCT_5:10
,XTUPLE_0:8;
  then proj1 dom f c= X;
  then
A2: PFuncs(proj1 dom f,rng f) c= PFuncs(X,Z) by A1,PARTFUN1:50;
  proj2 [:X,Y:] c= Y & proj2 dom f c= proj2 [:X,Y:] by A1,FUNCT_5:10,XTUPLE_0:9
;
  then proj2 dom f c= Y;
  then
  rng curry f c= PFuncs(proj2 dom f,rng f) & PFuncs(proj2 dom f,rng f) c=
  PFuncs(Y,Z) by A1,FUNCT_5:36,PARTFUN1:50;
  then
A3: rng curry f c= PFuncs(Y,Z);
  rng curry' f c= PFuncs(proj1 dom f,rng f) by FUNCT_5:36;
  then
A4: rng curry' f c= PFuncs(X,Z) by A2;
  dom curry f c= X & dom curry' f c= Y by A1,FUNCT_5:25;
  hence thesis by A3,A4,PARTFUN1:def 3;
end;
