defpred S1[ set ] means for x, y being set holds
( not $1 = [x,y] or P1[x,y] or P2[x,y] or P3[x,y] );
consider L being set such that
A5: for z being set holds
( z in L iff ( z in [:F1(),F2():] & S1[z] ) ) from XBOOLE_0:sch 1();
A6: L c= [:F1(),F2():]
proof
let z be set ; :: according to TARSKI:def 3 :: thesis: ( not z in L or z in [:F1(),F2():] )
assume z in L ; :: thesis: z in [:F1(),F2():]
hence z in [:F1(),F2():] by A5; :: thesis: verum
end;
defpred S2[ set , set ] means for x, y being set st $1 = [x,y] holds
( ( P1[x,y] implies $2 = F4(x,y) ) & ( P2[x,y] implies $2 = F5(x,y) ) & ( P3[x,y] implies $2 = F6(x,y) ) );
A7: for x1 being set st x1 in L holds
ex z being set st S2[x1,z]
proof
let x1 be set ; :: thesis: ( x1 in L implies ex z being set st S2[x1,z] )
assume A8: x1 in L ; :: thesis: ex z being set st S2[x1,z]
then x1 in [:F1(),F2():] by A5;
then consider z', a' being set such that
A9: ( z' in F1() & a' in F2() & x1 = [z',a'] ) by ZFMISC_1:def 2;
now
per cases ( P1[z',a'] or P2[z',a'] or P3[z',a'] ) by A5, A8, A9;
suppose A10: P1[z',a'] ; :: thesis: ex z being set st
for x, y being set st x1 = [x,y] holds
( ( P1[x,y] implies z = F4(x,y) ) & ( P2[x,y] implies z = F5(x,y) ) & ( P3[x,y] implies z = F6(x,y) ) )

take z = F4(z',a'); :: thesis: for x, y being set st x1 = [x,y] holds
( ( P1[x,y] implies z = F4(x,y) ) & ( P2[x,y] implies z = F5(x,y) ) & ( P3[x,y] implies z = F6(x,y) ) )

let x, y be set ; :: thesis: ( x1 = [x,y] implies ( ( P1[x,y] implies z = F4(x,y) ) & ( P2[x,y] implies z = F5(x,y) ) & ( P3[x,y] implies z = F6(x,y) ) ) )
assume x1 = [x,y] ; :: thesis: ( ( P1[x,y] implies z = F4(x,y) ) & ( P2[x,y] implies z = F5(x,y) ) & ( P3[x,y] implies z = F6(x,y) ) )
then ( z' = x & a' = y ) by A9, ZFMISC_1:33;
hence ( ( P1[x,y] implies z = F4(x,y) ) & ( P2[x,y] implies z = F5(x,y) ) & ( P3[x,y] implies z = F6(x,y) ) ) by A1, A9, A10; :: thesis: verum
end;
suppose A11: P2[z',a'] ; :: thesis: ex z being set st
for x, y being set st x1 = [x,y] holds
( ( P1[x,y] implies z = F4(x,y) ) & ( P2[x,y] implies z = F5(x,y) ) & ( P3[x,y] implies z = F6(x,y) ) )

take z = F5(z',a'); :: thesis: for x, y being set st x1 = [x,y] holds
( ( P1[x,y] implies z = F4(x,y) ) & ( P2[x,y] implies z = F5(x,y) ) & ( P3[x,y] implies z = F6(x,y) ) )

let x, y be set ; :: thesis: ( x1 = [x,y] implies ( ( P1[x,y] implies z = F4(x,y) ) & ( P2[x,y] implies z = F5(x,y) ) & ( P3[x,y] implies z = F6(x,y) ) ) )
assume x1 = [x,y] ; :: thesis: ( ( P1[x,y] implies z = F4(x,y) ) & ( P2[x,y] implies z = F5(x,y) ) & ( P3[x,y] implies z = F6(x,y) ) )
then ( z' = x & a' = y ) by A9, ZFMISC_1:33;
hence ( ( P1[x,y] implies z = F4(x,y) ) & ( P2[x,y] implies z = F5(x,y) ) & ( P3[x,y] implies z = F6(x,y) ) ) by A1, A9, A11; :: thesis: verum
end;
suppose A12: P3[z',a'] ; :: thesis: ex z being set st
for x, y being set st x1 = [x,y] holds
( ( P1[x,y] implies z = F4(x,y) ) & ( P2[x,y] implies z = F5(x,y) ) & ( P3[x,y] implies z = F6(x,y) ) )

take z = F6(z',a'); :: thesis: for x, y being set st x1 = [x,y] holds
( ( P1[x,y] implies z = F4(x,y) ) & ( P2[x,y] implies z = F5(x,y) ) & ( P3[x,y] implies z = F6(x,y) ) )

let x, y be set ; :: thesis: ( x1 = [x,y] implies ( ( P1[x,y] implies z = F4(x,y) ) & ( P2[x,y] implies z = F5(x,y) ) & ( P3[x,y] implies z = F6(x,y) ) ) )
assume x1 = [x,y] ; :: thesis: ( ( P1[x,y] implies z = F4(x,y) ) & ( P2[x,y] implies z = F5(x,y) ) & ( P3[x,y] implies z = F6(x,y) ) )
then ( z' = x & a' = y ) by A9, ZFMISC_1:33;
hence ( ( P1[x,y] implies z = F4(x,y) ) & ( P2[x,y] implies z = F5(x,y) ) & ( P3[x,y] implies z = F6(x,y) ) ) by A1, A9, A12; :: thesis: verum
end;
end;
end;
hence ex z being set st S2[x1,z] ; :: thesis: verum
end;
consider f being Function such that
A13: ( dom f = L & ( for z being set st z in L holds
S2[z,f . z] ) ) from CLASSES1:sch 1(A7);
rng f c= F3()
proof
let z be set ; :: according to TARSKI:def 3 :: thesis: ( not z in rng f or z in F3() )
assume z in rng f ; :: thesis: z in F3()
then consider x1 being set such that
A14: ( x1 in dom f & z = f . x1 ) by FUNCT_1:def 5;
x1 in [:F1(),F2():] by A5, A13, A14;
then consider x, y being set such that
A15: ( x in F1() & y in F2() & x1 = [x,y] ) by ZFMISC_1:def 2;
now end;
hence z in F3() ; :: thesis: verum
end;
then reconsider f = f as PartFunc of [:F1(),F2():],F3() by A6, A13, RELSET_1:11;
take f ; :: thesis: ( ( for x, y being set holds
( [x,y] in dom f iff ( x in F1() & y in F2() & ( P1[x,y] or P2[x,y] or P3[x,y] ) ) ) ) & ( for x, y being set st [x,y] in dom f holds
( ( P1[x,y] implies f . [x,y] = F4(x,y) ) & ( P2[x,y] implies f . [x,y] = F5(x,y) ) & ( P3[x,y] implies f . [x,y] = F6(x,y) ) ) ) )

thus for x, y being set holds
( [x,y] in dom f iff ( x in F1() & y in F2() & ( P1[x,y] or P2[x,y] or P3[x,y] ) ) ) :: thesis: for x, y being set st [x,y] in dom f holds
( ( P1[x,y] implies f . [x,y] = F4(x,y) ) & ( P2[x,y] implies f . [x,y] = F5(x,y) ) & ( P3[x,y] implies f . [x,y] = F6(x,y) ) )
proof
let x, y be set ; :: thesis: ( [x,y] in dom f iff ( x in F1() & y in F2() & ( P1[x,y] or P2[x,y] or P3[x,y] ) ) )
thus ( [x,y] in dom f implies ( x in F1() & y in F2() & ( P1[x,y] or P2[x,y] or P3[x,y] ) ) ) by A5, A13, ZFMISC_1:106; :: thesis: ( x in F1() & y in F2() & ( P1[x,y] or P2[x,y] or P3[x,y] ) implies [x,y] in dom f )
assume A19: ( x in F1() & y in F2() & ( P1[x,y] or P2[x,y] or P3[x,y] ) ) ; :: thesis: [x,y] in dom f
then A20: [x,y] in [:F1(),F2():] by ZFMISC_1:106;
now
let f', r' be set ; :: thesis: ( not [x,y] = [f',r'] or P1[f',r'] or P2[f',r'] or P3[f',r'] )
assume [x,y] = [f',r'] ; :: thesis: ( P1[f',r'] or P2[f',r'] or P3[f',r'] )
then ( x = f' & y = r' ) by ZFMISC_1:33;
hence ( P1[f',r'] or P2[f',r'] or P3[f',r'] ) by A19; :: thesis: verum
end;
hence [x,y] in dom f by A5, A13, A20; :: thesis: verum
end;
let x, y be set ; :: thesis: ( [x,y] in dom f implies ( ( P1[x,y] implies f . [x,y] = F4(x,y) ) & ( P2[x,y] implies f . [x,y] = F5(x,y) ) & ( P3[x,y] implies f . [x,y] = F6(x,y) ) ) )
assume [x,y] in dom f ; :: thesis: ( ( P1[x,y] implies f . [x,y] = F4(x,y) ) & ( P2[x,y] implies f . [x,y] = F5(x,y) ) & ( P3[x,y] implies f . [x,y] = F6(x,y) ) )
hence ( ( P1[x,y] implies f . [x,y] = F4(x,y) ) & ( P2[x,y] implies f . [x,y] = F5(x,y) ) & ( P3[x,y] implies f . [x,y] = F6(x,y) ) ) by A13; :: thesis: verum