for p being set st p in BOOL F1() holds
p <> {}
by ORDERS_1:1;
then consider Choice being Function such that
dom Choice = BOOL F1()
and
A2:
for p being set st p in BOOL F1() holds
Choice . p in p
by FUNCT_1:111;
A3:
F3() in F1()
;
ex g being Function of NAT,F1() st
( g . 0 = F3() & ( for n being Element of NAT holds g . (n + 1) = Choice . ((F2() .: {(g . n)}) /\ F4((g . n))) ) )
proof
deffunc H1(
set )
-> set =
Choice . ((F2() .: {(k_id ($1,F1(),F3()))}) /\ F4((k_id ($1,F1(),F3()))));
A4:
for
x being
set st
x in F1() holds
H1(
x)
in F1()
proof
let x be
set ;
( x in F1() implies H1(x) in F1() )
assume A5:
x in F1()
;
H1(x) in F1()
A6:
k_id (
x,
F1(),
F3())
= x
by A5, Def1;
reconsider x =
x as
Element of
F1()
by A5;
set X =
(Im (F2(),x)) /\ F4(
x);
(Im (F2(),x)) /\ F4(
x) is non
empty Subset of
F1()
by A1;
then
(Im (F2(),x)) /\ F4(
x)
in BOOL F1()
by ORDERS_1:2;
then
Choice . ((Im (F2(),x)) /\ F4(x)) in (Im (F2(),x)) /\ F4(
x)
by A2;
then A7:
H1(
x)
in F2()
.: {x}
by A6, XBOOLE_0:def 4;
A8:
rng F2()
c= F1()
by RELAT_1:def 19;
F2()
.: {x} c= rng F2()
by RELAT_1:111;
then
F2()
.: {x} c= F1()
by A8, XBOOLE_1:1;
hence
H1(
x)
in F1()
by A7;
verum
end;
consider f being
Function of
F1(),
F1()
such that A9:
for
x being
set st
x in F1() holds
f . x = H1(
x)
from FUNCT_2:sch 2(A4);
deffunc H2(
set )
-> Element of
F1() =
(f |** (k_nat $1)) . F3();
A10:
for
m being
set st
m in NAT holds
H2(
m)
in F1()
;
consider g being
Function of
NAT,
F1()
such that A11:
for
m being
set st
m in NAT holds
g . m = H2(
m)
from FUNCT_2:sch 2(A10);
A12:
for
n being
Element of
NAT holds
g . (n + 1) = Choice . ((F2() .: {(g . n)}) /\ F4((g . n)))
take
g
;
( g . 0 = F3() & ( for n being Element of NAT holds g . (n + 1) = Choice . ((F2() .: {(g . n)}) /\ F4((g . n))) ) )
g . 0 =
H2(
0 )
by A11
.=
(f |** 0) . F3()
by Def2
.=
(id F1()) . F3()
by FUNCT_7:84
.=
F3()
by FUNCT_1:18
;
hence
(
g . 0 = F3() & ( for
n being
Element of
NAT holds
g . (n + 1) = Choice . ((F2() .: {(g . n)}) /\ F4((g . n))) ) )
by A12;
verum
end;
then consider g being Function of NAT,F1() such that
A15:
g . 0 = F3()
and
A16:
for n being Element of NAT holds g . (n + 1) = Choice . ((F2() .: {(g . n)}) /\ F4((g . n)))
;
take
g
; ( g . 0 = F3() & ( for n being Element of NAT holds
( [(g . n),(g . (n + 1))] in F2() & g . (n + 1) in F4((g . n)) ) ) )
A17:
for n being Element of NAT holds g . (n + 1) in (F2() .: {(g . n)}) /\ F4((g . n))
for n being Element of NAT holds
( [(g . n),(g . (n + 1))] in F2() & g . (n + 1) in F4((g . n)) )
hence
( g . 0 = F3() & ( for n being Element of NAT holds
( [(g . n),(g . (n + 1))] in F2() & g . (n + 1) in F4((g . n)) ) ) )
by A15; verum