defpred S1[ set , set ] means for y being set holds
( y in $2 iff ( y in F2() & P1[$1,y] ) );
A2:
for e, u1, u2 being set st e in F1() & S1[e,u1] & S1[e,u2] holds
u1 = u2
proof
let e,
u1,
u2 be
set ;
( e in F1() & S1[e,u1] & S1[e,u2] implies u1 = u2 )
assume
e in F1()
;
( not S1[e,u1] or not S1[e,u2] or u1 = u2 )
assume A3:
for
y being
set holds
(
y in u1 iff (
y in F2() &
P1[
e,
y] ) )
;
( not S1[e,u2] or u1 = u2 )
defpred S2[
set ]
means ( $1
in F2() &
P1[
e,$1] );
A4:
for
x being
set holds
(
x in u1 iff
S2[
x] )
by A3;
assume A5:
for
y being
set holds
(
y in u2 iff (
y in F2() &
P1[
e,
y] ) )
;
u1 = u2
A6:
for
x being
set holds
(
x in u2 iff
S2[
x] )
by A5;
u1 = u2
from XBOOLE_0:sch 2(A4, A6);
hence
u1 = u2
;
verum
end;
A7:
for x being set st x in F1() holds
ex y being set st S1[x,y]
proof
let x be
set ;
( x in F1() implies ex y being set st S1[x,y] )
assume
x in F1()
;
ex y being set st S1[x,y]
defpred S2[
set ]
means P1[
x,$1];
consider X being
set such that A8:
for
y being
set holds
(
y in X iff (
y in F2() &
S2[
y] ) )
from XBOOLE_0:sch 1();
take
X
;
S1[x,X]
thus
S1[
x,
X]
by A8;
verum
end;
consider G being Function such that
A9:
( dom G = F1() & ( for x being set st x in F1() holds
S1[x,G . x] ) )
from FUNCT_1:sch 2(A2, A7);
A10:
now assume
F1()
<> {}
;
ex f being Function st
( dom f = F1() & rng f c= F2() & ( for x being set st x in F1() holds
P1[x,f . x] ) )then reconsider D =
rng G as non
empty set by A9, RELAT_1:65;
then consider F being
Function such that A12:
dom F = D
and A13:
for
X being
set st
X in D holds
F . X in X
by Th28;
A14:
dom (F * G) = F1()
by A9, A12, RELAT_1:46;
thus
ex
f being
Function st
(
dom f = F1() &
rng f c= F2() & ( for
x being
set st
x in F1() holds
P1[
x,
f . x] ) )
verumproof
take f =
F * G;
( dom f = F1() & rng f c= F2() & ( for x being set st x in F1() holds
P1[x,f . x] ) )
thus
dom f = F1()
by A9, A12, RELAT_1:46;
( rng f c= F2() & ( for x being set st x in F1() holds
P1[x,f . x] ) )
rng F c= F2()
hence
rng f c= F2()
by A12, RELAT_1:47;
for x being set st x in F1() holds
P1[x,f . x]
let x be
set ;
( x in F1() implies P1[x,f . x] )
assume A18:
x in F1()
;
P1[x,f . x]
then
(
f . x = F . (G . x) &
G . x in D )
by A9, A14, FUNCT_1:22, FUNCT_1:def 5;
then
f . x in G . x
by A13;
hence
P1[
x,
f . x]
by A9, A18;
verum
end; end;
hence
ex f being Function st
( dom f = F1() & rng f c= F2() & ( for x being set st x in F1() holds
P1[x,f . x] ) )
by A10; verum