let X, Y be non empty set ; for 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 & f is one-to-one & f is onto holds
f " is currying
let Z be 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 & f is one-to-one & f is onto holds
f " is currying
let S be 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 & f is one-to-one & f is onto holds
f " is currying
let T be non empty SubRelStr of (Z |^ Y) |^ X; for f being Function of T,S st f is uncurrying & f is one-to-one & f is onto holds
f " is currying
let f be Function of T,S; ( f is uncurrying & f is one-to-one & f is onto implies f " is currying )
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 & f is one-to-one & f is onto )
; f " is currying
then A3:
rng f = the carrier of S
by FUNCT_2:def 3;
A4:
f " = f "
by A2, TOPS_2:def 4;
A5:
Funcs ([:X,Y:], the carrier of Z) = the carrier of (Z |^ [:X,Y:])
by YELLOW_1:28;
let g be Function; ( not g in proj1 (f ") or (f ") . g = curry g )
assume
g in dom (f ")
; (f ") . g = curry g
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 = 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
(f ") . g = curry g
by A2, A4, A6, A7, FUNCT_1:32; verum