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 Th25:
  [:X,Y:] <> {} & dom f = [:X,Y:] & y in Y implies ex g st (curry'
  f).y = g & dom g = X & rng g c= rng f & for x st x in X holds g.x = f.(x,y)
proof
  assume that
A1: [:X,Y:] <> {} and
A2: dom f = [:X,Y:] and
A3: y in Y;
A4: dom ~f = [:Y,X:] by A2,FUNCT_4:46;
  X <> {} by A1,ZFMISC_1:90;
  then consider g such that
A5: (curry ~f).y = g & dom g = X & rng g c= rng ~f and
A6: for x st x in X holds g.x = (~f).(y,x) by A3,A4,Th22;
  take g;
  rng ~f c= rng f by FUNCT_4:41;
  hence (curry' f).y = g & dom g = X & rng g c= rng f by A5;
  let x;
  assume
A7: x in X;
  then
A8: g.x = (~f).(y,x) by A6;
  [y,x] in dom ~f by A3,A4,A7,ZFMISC_1:87;
  hence thesis by A8,FUNCT_4:43;
end;
