let X, Y, z be set ; ( [:X,Y:] <> {} implies ( curry ([:X,Y:] --> z) = X --> (Y --> z) & curry' ([:X,Y:] --> z) = Y --> (X --> z) ) )
assume A1:
[:X,Y:] <> {}
; ( curry ([:X,Y:] --> z) = X --> (Y --> z) & curry' ([:X,Y:] --> z) = Y --> (X --> z) )
A2:
dom ([:X,Y:] --> z) = [:X,Y:]
by FUNCOP_1:13;
A3:
dom (X --> z) = X
by FUNCOP_1:13;
A4:
now let x be
set ;
( x in Y implies (curry' ([:X,Y:] --> z)) . x = (Y --> (X --> z)) . x )assume A5:
x in Y
;
(curry' ([:X,Y:] --> z)) . x = (Y --> (X --> z)) . xthen consider f being
Function such that A6:
(
(curry' ([:X,Y:] --> z)) . x = f &
dom f = X )
and
rng f c= rng ([:X,Y:] --> z)
and A7:
for
y being
set st
y in X holds
f . y = ([:X,Y:] --> z) . (
y,
x)
by A1, A2, FUNCT_5:32;
(Y --> (X --> z)) . x = X --> z
by A5, FUNCOP_1:7;
hence
(curry' ([:X,Y:] --> z)) . x = (Y --> (X --> z)) . x
by A3, A6, A8, FUNCT_1:2;
verum end;
A11:
dom (Y --> z) = Y
by FUNCOP_1:13;
A12:
now let x be
set ;
( x in X implies (curry ([:X,Y:] --> z)) . x = (X --> (Y --> z)) . x )assume A13:
x in X
;
(curry ([:X,Y:] --> z)) . x = (X --> (Y --> z)) . xthen consider f being
Function such that A14:
(
(curry ([:X,Y:] --> z)) . x = f &
dom f = Y )
and
rng f c= rng ([:X,Y:] --> z)
and A15:
for
y being
set st
y in Y holds
f . y = ([:X,Y:] --> z) . (
x,
y)
by A1, A2, FUNCT_5:29;
(X --> (Y --> z)) . x = Y --> z
by A13, FUNCOP_1:7;
hence
(curry ([:X,Y:] --> z)) . x = (X --> (Y --> z)) . x
by A11, A14, A16, FUNCT_1:2;
verum end;
( dom (X --> (Y --> z)) = X & dom (curry ([:X,Y:] --> z)) = X )
by A1, A2, FUNCOP_1:13, FUNCT_5:24;
hence
curry ([:X,Y:] --> z) = X --> (Y --> z)
by A12, FUNCT_1:2; curry' ([:X,Y:] --> z) = Y --> (X --> z)
( dom (Y --> (X --> z)) = Y & dom (curry' ([:X,Y:] --> z)) = Y )
by A1, A2, FUNCOP_1:13, FUNCT_5:24;
hence
curry' ([:X,Y:] --> z) = Y --> (X --> z)
by A4, FUNCT_1:2; verum