defpred S1[ set , set ] means ( ( P1[$1] implies $2 = F3($1) ) & ( P2[$1] implies $2 = F4($1) ) & ( P3[$1] implies $2 = F5($1) ) & ( P4[$1] implies $2 = F6($1) ) );
defpred S2[ set ] means ( P1[$1] or P2[$1] or P3[$1] or P4[$1] );
consider D being set such that
A6:
for x being set holds
( x in D iff ( x in F1() & S2[x] ) )
from XBOOLE_0:sch 1();
A7:
for x being set st x in D holds
ex y being set st S1[x,y]
proof
let x be
set ;
( x in D implies ex y being set st S1[x,y] )
assume A8:
x in D
;
ex y being set st S1[x,y]
then A9:
x in F1()
by A6;
now per cases
( P1[x] or P2[x] or P3[x] or P4[x] )
by A6, A8;
suppose A10:
P1[
x]
;
ex y, y being set st S1[x,y]take y =
F3(
x);
ex y being set st S1[x,y]A11:
P4[
x]
by A1, A9, A10;
(
P2[
x] &
P3[
x] )
by A1, A9, A10;
hence
ex
y being
set st
S1[
x,
y]
by A11;
verum end; suppose A12:
P2[
x]
;
ex y, y being set st S1[x,y]take y =
F4(
x);
ex y being set st S1[x,y]A13:
P4[
x]
by A1, A9, A12;
(
P1[
x] &
P3[
x] )
by A1, A9, A12;
hence
ex
y being
set st
S1[
x,
y]
by A13;
verum end; suppose A14:
P3[
x]
;
ex y, y being set st S1[x,y]take y =
F5(
x);
ex y being set st S1[x,y]A15:
P4[
x]
by A1, A9, A14;
(
P1[
x] &
P2[
x] )
by A1, A9, A14;
hence
ex
y being
set st
S1[
x,
y]
by A15;
verum end; suppose A16:
P4[
x]
;
ex y, y being set st S1[x,y]take y =
F6(
x);
ex y being set st S1[x,y]A17:
P3[
x]
by A1, A9, A16;
(
P1[
x] &
P2[
x] )
by A1, A9, A16;
hence
ex
y being
set st
S1[
x,
y]
by A17;
verum end; end; end;
hence
ex
y being
set st
S1[
x,
y]
;
verum
end;
consider f being Function such that
A18:
( dom f = D & ( for x being set st x in D holds
S1[x,f . x] ) )
from CLASSES1:sch 1(A7);
A19:
D c= F1()
rng f c= F2()
then reconsider f = f as PartFunc of F1(),F2() by A19, A18, RELSET_1:4;
take
f
; ( ( for x being set holds
( x in dom f iff ( x in F1() & ( P1[x] or P2[x] or P3[x] or P4[x] ) ) ) ) & ( for x being set st x in dom f holds
( ( P1[x] implies f . x = F3(x) ) & ( P2[x] implies f . x = F4(x) ) & ( P3[x] implies f . x = F5(x) ) & ( P4[x] implies f . x = F6(x) ) ) ) )
thus
for x being set holds
( x in dom f iff ( x in F1() & ( P1[x] or P2[x] or P3[x] or P4[x] ) ) )
by A6, A18; for x being set st x in dom f holds
( ( P1[x] implies f . x = F3(x) ) & ( P2[x] implies f . x = F4(x) ) & ( P3[x] implies f . x = F5(x) ) & ( P4[x] implies f . x = F6(x) ) )
let x be set ; ( x in dom f implies ( ( P1[x] implies f . x = F3(x) ) & ( P2[x] implies f . x = F4(x) ) & ( P3[x] implies f . x = F5(x) ) & ( P4[x] implies f . x = F6(x) ) ) )
assume
x in dom f
; ( ( P1[x] implies f . x = F3(x) ) & ( P2[x] implies f . x = F4(x) ) & ( P3[x] implies f . x = F5(x) ) & ( P4[x] implies f . x = F6(x) ) )
hence
( ( P1[x] implies f . x = F3(x) ) & ( P2[x] implies f . x = F4(x) ) & ( P3[x] implies f . x = F5(x) ) & ( P4[x] implies f . x = F6(x) ) )
by A18; verum