let X, Y, Z be set ; for f being Function st f in PFuncs (X,(PFuncs (Y,Z))) holds
( uncurry f in PFuncs ([:X,Y:],Z) & uncurry' f in PFuncs ([:Y,X:],Z) )
let f be Function; ( f in PFuncs (X,(PFuncs (Y,Z))) implies ( uncurry f in PFuncs ([:X,Y:],Z) & uncurry' f in PFuncs ([:Y,X:],Z) ) )
assume
f in PFuncs (X,(PFuncs (Y,Z)))
; ( uncurry f in PFuncs ([:X,Y:],Z) & uncurry' f in PFuncs ([:Y,X:],Z) )
then A1:
ex g being Function st
( f = g & dom g c= X & rng g c= PFuncs (Y,Z) )
by PARTFUN1:def 3;
then
( dom (uncurry f) c= [:(dom f),Y:] & [:(dom f),Y:] c= [:X,Y:] )
by FUNCT_5:37, ZFMISC_1:96;
then A2:
dom (uncurry f) c= [:X,Y:]
;
( dom (uncurry' f) c= [:Y,(dom f):] & [:Y,(dom f):] c= [:Y,X:] )
by A1, FUNCT_5:37, ZFMISC_1:96;
then A3:
dom (uncurry' f) c= [:Y,X:]
;
( rng (uncurry f) c= Z & rng (uncurry' f) c= Z )
by A1, FUNCT_5:40;
hence
( uncurry f in PFuncs ([:X,Y:],Z) & uncurry' f in PFuncs ([:Y,X:],Z) )
by A2, A3, PARTFUN1:def 3; verum