let X, Y, Z, D be set ; :: thesis: ( D c= Funcs [:X,Y:],Z implies ex F being ManySortedSet of D st
( F is currying & ( ( Y = {} implies X = {} ) implies rng F c= Funcs X,(Funcs Y,Z) ) ) )

assume A1: D c= Funcs [:X,Y:],Z ; :: thesis: ex F being ManySortedSet of D st
( F is currying & ( ( Y = {} implies X = {} ) implies rng F c= Funcs X,(Funcs Y,Z) ) )

per cases ( D is empty or not D is empty ) ;
suppose D is empty ; :: thesis: ex F being ManySortedSet of D st
( F is currying & ( ( Y = {} implies X = {} ) implies rng F c= Funcs X,(Funcs Y,Z) ) )

then reconsider F = {} as ManySortedSet of D by PARTFUN1:def 4, RELAT_1:60, RELAT_1:def 18;
take F ; :: thesis: ( F is currying & ( ( Y = {} implies X = {} ) implies rng F c= Funcs X,(Funcs Y,Z) ) )
thus F is currying ; :: thesis: ( ( Y = {} implies X = {} ) implies rng F c= Funcs X,(Funcs Y,Z) )
assume ( Y = {} implies X = {} ) ; :: thesis: rng F c= Funcs X,(Funcs Y,Z)
thus rng F c= Funcs X,(Funcs Y,Z) by RELAT_1:60, XBOOLE_1:2; :: thesis: verum
end;
suppose not D is empty ; :: thesis: ex F being ManySortedSet of D st
( F is currying & ( ( Y = {} implies X = {} ) implies rng F c= Funcs X,(Funcs Y,Z) ) )

then reconsider E = D as non empty functional set by A1;
deffunc H1( Function) -> set = curry $1;
consider F being ManySortedSet of E such that
A2: for d being Element of E holds F . d = H1(d) from PBOOLE:sch 5();
reconsider F1 = F as ManySortedSet of D ;
take F1 ; :: thesis: ( F1 is currying & ( ( Y = {} implies X = {} ) implies rng F1 c= Funcs X,(Funcs Y,Z) ) )
thus F1 is currying :: thesis: ( ( Y = {} implies X = {} ) implies rng F1 c= Funcs X,(Funcs Y,Z) )
proof
hereby :: according to WAYBEL27:def 2 :: thesis: for f being Function st f in dom F1 holds
F1 . f = curry f
let x be set ; :: thesis: ( x in dom F1 implies ( x is Function & proj1 x is Relation ) )
assume x in dom F1 ; :: thesis: ( x is Function & proj1 x is Relation )
then A3: x in D by PARTFUN1:def 4;
hence x is Function by A1; :: thesis: proj1 x is Relation
ex x1 being Function st
( x1 = x & dom x1 = [:X,Y:] & rng x1 c= Z ) by A3, A1, FUNCT_2:def 2;
hence proj1 x is Relation ; :: thesis: verum
end;
let f be Function; :: thesis: ( f in dom F1 implies F1 . f = curry f )
assume f in dom F1 ; :: thesis: F1 . f = curry f
then reconsider d = f as Element of E by PARTFUN1:def 4;
thus F1 . f = F . d
.= curry f by A2 ; :: thesis: verum
end;
assume A4: ( Y = {} implies X = {} ) ; :: thesis: rng F1 c= Funcs X,(Funcs Y,Z)
thus rng F1 c= Funcs X,(Funcs Y,Z) :: thesis: verum
proof
let y be set ; :: according to TARSKI:def 3 :: thesis: ( not y in rng F1 or y in Funcs X,(Funcs Y,Z) )
assume y in rng F1 ; :: thesis: y in Funcs X,(Funcs Y,Z)
then consider x being set such that
A5: x in dom F1 and
A6: y = F1 . x by FUNCT_1:def 5;
reconsider d = x as Element of E by A5, PARTFUN1:def 4;
A7: y = curry d by A2, A6;
A8: d in Funcs [:X,Y:],Z by A1, TARSKI:def 3;
end;
end;
end;