defpred S1[ object , object ] means ex g being Function of (F2() . $1),(F3() . $1) st
( $2 = g & ( for a being set st a in F2() . $1 holds
P1[$1,a,g . a] ) );
A2: for i being object st i in F1() holds
ex y being object st S1[i,y]
proof
let i be object ; :: thesis: ( i in F1() implies ex y being object st S1[i,y] )
assume i in F1() ; :: thesis: ex y being object st S1[i,y]
then reconsider ii = i as Element of F1() ;
defpred S2[ object , object ] means P1[i,$1,$2];
A3: for a being object st a in F2() . i holds
ex b being object st
( b in F3() . i & S2[a,b] )
proof
let a be object ; :: thesis: ( a in F2() . i implies ex b being object st
( b in F3() . i & S2[a,b] ) )

assume a in F2() . i ; :: thesis: ex b being object st
( b in F3() . i & S2[a,b] )

then ex b being Element of F3() . ii st P1[i,a,b] by A1;
hence ex b being object st
( b in F3() . i & S2[a,b] ) ; :: thesis: verum
end;
consider g being Function such that
A4: ( dom g = F2() . i & rng g c= F3() . i ) and
A5: for a being object st a in F2() . i holds
S2[a,g . a] from FUNCT_1:sch 6(A3);
take y = g; :: thesis: S1[i,y]
reconsider g = g as Function of (F2() . i),(F3() . i) by A4, FUNCT_2:2;
take g ; :: thesis: ( y = g & ( for a being set st a in F2() . i holds
P1[i,a,g . a] ) )

thus ( y = g & ( for a being set st a in F2() . i holds
P1[i,a,g . a] ) ) by A5; :: thesis: verum
end;
consider f being Function such that
A6: dom f = F1() and
A7: for i being object st i in F1() holds
S1[i,f . i] from CLASSES1:sch 1(A2);
reconsider f = f as ManySortedSet of F1() by A6, PARTFUN1:def 2, RELAT_1:def 18;
f is ManySortedFunction of F2(),F3()
proof
let i be object ; :: according to PBOOLE:def 15 :: thesis: ( not i in F1() or f . i is Element of bool [:(F2() . i),(F3() . i):] )
assume i in F1() ; :: thesis: f . i is Element of bool [:(F2() . i),(F3() . i):]
then ex g being Function of (F2() . i),(F3() . i) st
( f . i = g & ( for a being set st a in F2() . i holds
P1[i,a,g . a] ) ) by A7;
hence f . i is Element of bool [:(F2() . i),(F3() . i):] ; :: thesis: verum
end;
then reconsider f = f as ManySortedFunction of F2(),F3() ;
take f ; :: thesis: for i being Element of F1()
for a being Element of F2() . i holds P1[i,a,(f . i) . a]

let i be Element of F1(); :: thesis: for a being Element of F2() . i holds P1[i,a,(f . i) . a]
let a be Element of F2() . i; :: thesis: P1[i,a,(f . i) . a]
ex g being Function of (F2() . i),(F3() . i) st
( f . i = g & ( for a being set st a in F2() . i holds
P1[i,a,g . a] ) ) by A7;
hence P1[i,a,(f . i) . a] ; :: thesis: verum