defpred S1[ object , object ] means ( ( len F3($1) = 0 & $2 = {} ) or ( len F3($1) <> 0 & ex m being Nat st
( m + 1 = len F3($1) & $2 = {0} \/ (Seg m) ) ) );
A1:
for x being object st x in F1() holds
ex y being object st S1[x,y]
ex F being Function st
( dom F = F1() & ( for x being object st x in F1() holds
S1[x,F . x] ) )
from CLASSES1:sch 1(A1);
then consider F being Function such that
A3:
for x being object holds
( not x in F1() or ( len F3(x) = 0 & F . x = {} ) or ( len F3(x) <> 0 & ex m being Nat st
( m + 1 = len F3(x) & F . x = {0} \/ (Seg m) ) ) )
;
deffunc H1( set ) -> set = F . $1;
A4:
for k being Nat
for x being set st x in F1() holds
( k in H1(x) iff k + 1 in Seg (len F3(x)) )
A14:
for T being finite-branching DecoratedTree
for x being set
for t being Element of dom T st x in F1() holds
{ (t ^ <*k*>) where k is Nat : k in H1(x) } = { (t ^ <*m*>) where m is Nat : m + 1 in Seg (len F3(x)) }
defpred S2[ set , set ] means ex x being set ex n being Nat st
( x in F1() & $1 = [x,n] & ( ( n in H1(x) & $2 = F3(x) . (n + 1) ) or ( not n in H1(x) & $2 = F2() ) ) );
A20:
for c being Element of [:F1(),NAT:] ex y being Element of F1() st S2[c,y]
ex S being Function of [:F1(),NAT:],F1() st
for c being Element of [:F1(),NAT:] holds S2[c,S . c]
from FUNCT_2:sch 3(A20);
then consider S being Function of [:F1(),NAT:],F1() such that
A25:
for c being Element of [:F1(),NAT:] holds S2[c,S . c]
;
A26:
for n being Nat
for x being set
for m being Nat st m + 1 = len F3(x) & x in F1() holds
( n in H1(x) iff ( 0 <= n & n <= m ) )
proof
let n be
Nat;
for x being set
for m being Nat st m + 1 = len F3(x) & x in F1() holds
( n in H1(x) iff ( 0 <= n & n <= m ) )let x be
set ;
for m being Nat st m + 1 = len F3(x) & x in F1() holds
( n in H1(x) iff ( 0 <= n & n <= m ) )let m be
Nat;
( m + 1 = len F3(x) & x in F1() implies ( n in H1(x) iff ( 0 <= n & n <= m ) ) )
assume that A27:
m + 1
= len F3(
x)
and A28:
x in F1()
;
( n in H1(x) iff ( 0 <= n & n <= m ) )
thus
(
n in H1(
x) implies (
0 <= n &
n <= m ) )
( 0 <= n & n <= m implies n in H1(x) )
thus
(
0 <= n &
n <= m implies
n in H1(
x) )
verum
end;
A34:
for d being Element of F1()
for k1, k2 being Nat st k1 <= k2 & k2 in H1(d) holds
k1 in H1(d)
consider T being DecoratedTree of F1() such that
A38:
( T . {} = F2() & ( for t being Element of dom T holds
( succ t = { (t ^ <*k*>) where k is Nat : k in H1(T . t) } & ( for n being Nat st n in H1(T . t) holds
T . (t ^ <*n*>) = S . ((T . t),n) ) ) ) )
from TREES_2:sch 8(A34);
for t being Element of dom T holds succ t is finite
then
dom T is finite-branching
;
then reconsider T = T as finite-branching DecoratedTree of F1() by Def4;
A48:
for n being Nat
for x being set st x in F1() & n in H1(x) holds
S . (x,n) = F3(x) . (n + 1)
proof
let n be
Nat;
for x being set st x in F1() & n in H1(x) holds
S . (x,n) = F3(x) . (n + 1)let x be
set ;
( x in F1() & n in H1(x) implies S . (x,n) = F3(x) . (n + 1) )
assume that A49:
x in F1()
and A50:
n in H1(
x)
;
S . (x,n) = F3(x) . (n + 1)
A51:
n in NAT
by ORDINAL1:def 12;
[x,n] in [:F1(),NAT:]
by A49, ZFMISC_1:def 2, A51;
then consider c being
Element of
[:F1(),NAT:] such that A52:
c = [x,n]
;
consider x9 being
set ,
n9 being
Nat such that
x9 in F1()
and A53:
c = [x9,n9]
and A54:
( (
n9 in H1(
x9) &
S . c = F3(
x9)
. (n9 + 1) ) or ( not
n9 in H1(
x9) &
S . c = F2() ) )
by A25;
x9 = x
by A52, A53, XTUPLE_0:1;
hence
S . (
x,
n)
= F3(
x)
. (n + 1)
by A50, A52, A53, A54, XTUPLE_0:1;
verum
end;
now for t being Element of dom T
for w being Element of F1() st w = T . t holds
succ (T,t) = F3(w)let t be
Element of
dom T;
for w being Element of F1() st w = T . t holds
succ (T,t) = F3(w)let w be
Element of
F1();
( w = T . t implies succ (T,t) = F3(w) )assume A55:
w = T . t
;
succ (T,t) = F3(w)
succ t = { (t ^ <*k*>) where k is Nat : k in H1(w) }
by A38, A55;
then A56:
succ t = { (t ^ <*k*>) where k is Nat : k + 1 in Seg (len F3(w)) }
by A14;
A57:
dom F3(
w)
= Seg (len F3(w))
by FINSEQ_1:def 3;
A58:
dom (t succ) = Seg (len (t succ))
by FINSEQ_1:def 3;
A59:
dom (t succ) c= dom F3(
w)
proof
let n9 be
object ;
TARSKI:def 3 ( not n9 in dom (t succ) or n9 in dom F3(w) )
A60:
Seg (len (t succ)) = { k where k is Nat : ( 1 <= k & k <= len (t succ) ) }
by FINSEQ_1:def 1;
assume
n9 in dom (t succ)
;
n9 in dom F3(w)
then consider m being
Nat such that A61:
n9 = m
and A62:
1
<= m
and A63:
m <= len (t succ)
by A58, A60;
0 <> m
by A62;
then consider n being
Nat such that A64:
m = n + 1
by NAT_1:6;
reconsider n =
n as
Nat ;
n + 1
in dom (t succ)
by A58, A60, A62, A63, A64;
then
t ^ <*n*> in dom T
by Th39;
then
t ^ <*n*> in succ t
;
then consider k being
Nat such that A65:
t ^ <*k*> = t ^ <*n*>
and A66:
k + 1
in Seg (len F3(w))
by A56;
<*k*> = <*n*>
by A65, FINSEQ_1:33;
hence
n9 in dom F3(
w)
by A57, A61, A64, A66, TREES_1:5;
verum
end;
dom F3(
w)
c= dom (t succ)
then A72:
dom F3(
w)
= dom (t succ)
by A59;
then A73:
dom (succ (T,t)) = dom F3(
w)
by Th38;
for
m being
Nat st
m in dom (succ (T,t)) holds
(succ (T,t)) . m = F3(
w)
. m
proof
let m be
Nat;
( m in dom (succ (T,t)) implies (succ (T,t)) . m = F3(w) . m )
A74:
Seg (len F3(w)) = { k where k is Nat : ( 1 <= k & k <= len F3(w) ) }
by FINSEQ_1:def 1;
assume A75:
m in dom (succ (T,t))
;
(succ (T,t)) . m = F3(w) . m
then A76:
m in Seg (len F3(w))
by A73, FINSEQ_1:def 3;
then
len F3(
w)
<> 0
;
then consider l being
Nat such that A77:
l + 1
= len F3(
(T . t))
and A78:
F . (T . t) = {0} \/ (Seg l)
by A3, A55;
consider k being
Nat such that A79:
m = k
and A80:
1
<= k
and A81:
k <= len F3(
w)
by A76, A74;
0 <> k
by A80;
then consider n being
Nat such that A82:
m = n + 1
by A79, NAT_1:6;
reconsider n =
n as
Nat ;
A83:
n <= l
by A55, A79, A81, A82, A77, XREAL_1:6;
A84:
n in {0} \/ (Seg l)
n + 1
in dom (t succ)
by A75, A82, Th38;
then
t ^ <*n*> in dom T
by Th39;
then (succ (T,t)) . (n + 1) =
T . (t ^ <*n*>)
by Th40
.=
S . (
(T . t),
n)
by A38, A78, A84
.=
F3(
w)
. (n + 1)
by A48, A55, A78, A84
;
hence
(succ (T,t)) . m = F3(
w)
. m
by A82;
verum
end; hence
succ (
T,
t)
= F3(
w)
by A72, Th38;
verum end;
hence
ex T being finite-branching DecoratedTree of F1() st
( T . {} = F2() & ( for t being Element of dom T
for w being Element of F1() st w = T . t holds
succ (T,t) = F3(w) ) )
by A38; verum