let X, Y, Z be set ; :: thesis: for f being Function st [:X,Y:] <> {} & f in Funcs [:X,Y:],Z holds
( curry f in Funcs X,(Funcs Y,Z) & curry' f in Funcs Y,(Funcs X,Z) )
let f be Function; :: thesis: ( [:X,Y:] <> {} & f in Funcs [:X,Y:],Z implies ( curry f in Funcs X,(Funcs Y,Z) & curry' f in Funcs Y,(Funcs X,Z) ) )
assume A1:
[:X,Y:] <> {}
; :: thesis: ( not f in Funcs [:X,Y:],Z or ( curry f in Funcs X,(Funcs Y,Z) & curry' f in Funcs Y,(Funcs X,Z) ) )
assume
f in Funcs [:X,Y:],Z
; :: thesis: ( curry f in Funcs X,(Funcs Y,Z) & curry' f in Funcs Y,(Funcs X,Z) )
then A2:
ex g being Function st
( f = g & dom g = [:X,Y:] & rng g c= Z )
by FUNCT_2:def 2;
then
( rng (curry f) c= Funcs Y,(rng f) & rng (curry' f) c= Funcs X,(rng f) & Funcs Y,(rng f) c= Funcs Y,Z & Funcs X,(rng f) c= Funcs X,Z )
by FUNCT_5:42, FUNCT_5:63;
then
( rng (curry f) c= Funcs Y,Z & rng (curry' f) c= Funcs X,Z & dom (curry f) = X & dom (curry' f) = Y )
by A1, A2, FUNCT_5:31, XBOOLE_1:1;
hence
( curry f in Funcs X,(Funcs Y,Z) & curry' f in Funcs Y,(Funcs X,Z) )
by FUNCT_2:def 2; :: thesis: verum