let X, Y, Z, V1, V2 be set ; for f being Function st ( uncurry f in PFuncs ([:X,Y:],Z) or uncurry' f in PFuncs ([:Y,X:],Z) ) & rng f c= PFuncs (V1,V2) & dom f c= X holds
f in PFuncs (X,(PFuncs (Y,Z)))
let f be Function; ( ( uncurry f in PFuncs ([:X,Y:],Z) or uncurry' f in PFuncs ([:Y,X:],Z) ) & rng f c= PFuncs (V1,V2) & dom f c= X implies f in PFuncs (X,(PFuncs (Y,Z))) )
assume that
A1:
( uncurry f in PFuncs ([:X,Y:],Z) or uncurry' f in PFuncs ([:Y,X:],Z) )
and
A2:
rng f c= PFuncs (V1,V2)
and
A3:
dom f c= X
; f in PFuncs (X,(PFuncs (Y,Z)))
A4:
( ex g being Function st
( uncurry f = g & dom g c= [:X,Y:] & rng g c= Z ) or ex g being Function st
( uncurry' f = g & dom g c= [:Y,X:] & rng g c= Z ) )
by A1, PARTFUN1:def 3;
uncurry' f = ~ (uncurry f)
by FUNCT_5:def 4;
then A5:
dom (uncurry' f) c= [:Y,X:]
by A4, FUNCT_4:45;
rng f c= PFuncs (Y,Z)
hence
f in PFuncs (X,(PFuncs (Y,Z)))
by A3, PARTFUN1:def 3; verum