
theorem Th2:
  for X,Y being non empty set, Z being non empty RelStr for S being
non empty SubRelStr of Z|^[:X,Y:] for T being non empty SubRelStr of (Z|^Y)|^X
  for f being Function of T, S st f is uncurrying one-to-one onto holds f" is
  currying
proof
  let X,Y be non empty set, Z be non empty RelStr;
  let S be non empty SubRelStr of Z|^[:X,Y:];
  let T be non empty SubRelStr of (Z|^Y)|^X;
  let f be Function of T, S;
A1: Funcs(X, the carrier of Z|^Y) = the carrier of (Z|^Y)|^X & Funcs(Y, the
  carrier of Z) = the carrier of Z|^Y by YELLOW_1:28;
  assume
A2: f is uncurrying one-to-one onto;
  then
A3: rng f = the carrier of S by FUNCT_2:def 3;
A4: f" = f qua Function" by A2,TOPS_2:def 4;
A5: Funcs([:X,Y:], the carrier of Z) = the carrier of Z|^[:X,Y:] by YELLOW_1:28
;
  hereby
    let x be set;
    assume x in dom (f");
    then x is Element of Z|^[:X,Y:] by YELLOW_0:58;
    then reconsider g = x as Function of [:X,Y:], the carrier of Z by A5,
FUNCT_2:66;
    dom g = proj1 g;
    hence x is Function & proj1 x is Relation;
  end;
  let g be Function;
  assume g in dom (f");
  then consider h being object such that
A6: h in dom f and
A7: g = f.h by A3,FUNCT_1:def 3;
  reconsider h as Function by A6;
  h is Element of (Z|^Y)|^X by A6,YELLOW_0:58;
  then h is Function of X, Funcs(Y, the carrier of Z) by A1,FUNCT_2:66;
  then
A8: rng h c= Funcs(Y, the carrier of Z) by RELAT_1:def 19;
  g = uncurry h by A2,A6,A7;
  then curry g = h by A8,FUNCT_5:48;
  hence thesis by A2,A4,A6,A7,FUNCT_1:32;
end;
