let X, Y, Z, V1, V2 be set ; :: thesis: 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; :: thesis: ( ( 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 A1:
( ( 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 )
; :: thesis: f in PFuncs X,(PFuncs Y,Z)
then A2:
( 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 PARTFUN1:def 5;
then
( uncurry' f = ~ (uncurry f) & ( ( dom (uncurry f) c= [:X,Y:] & rng (uncurry f) c= Z ) or ( dom (uncurry' f) c= [:Y,X:] & rng (uncurry' f) c= Z ) ) )
by FUNCT_5:def 6;
then A3:
dom (uncurry' f) c= [:Y,X:]
by FUNCT_4:46;
rng f c= PFuncs Y,Z
hence
f in PFuncs X,(PFuncs Y,Z)
by A1, PARTFUN1:def 5; :: thesis: verum