defpred S1[ object , FinSequence-yielding FinSequence] means ex p being FinSequence st
( p = $1 & len p = len $2 & ( for i being Nat st i in dom p holds
p . i in dom ($2 . i) ) );
defpred S2[ Nat] means for H being FinSequence-yielding FinSequence st len H = $1 holds
ex IT being finite FinSequence-membered set st
for x being object holds
( x in IT iff S1[x,H] );
A1:
S2[ 0 ]
A5:
for n being Nat st S2[n] holds
S2[n + 1]
proof
let n be
Nat;
( S2[n] implies S2[n + 1] )
set n1 =
n + 1;
assume A6:
S2[
n]
;
S2[n + 1]
let H be
FinSequence-yielding FinSequence;
( len H = n + 1 implies ex IT being finite FinSequence-membered set st
for x being object holds
( x in IT iff S1[x,H] ) )
assume A7:
len H = n + 1
;
ex IT being finite FinSequence-membered set st
for x being object holds
( x in IT iff S1[x,H] )
A8:
( 1
<= n + 1 &
n < n + 1 )
by NAT_1:11, NAT_1:13;
reconsider Hn =
H | n as
FinSequence-yielding FinSequence ;
A9:
len Hn = n
by NAT_1:11, FINSEQ_1:59, A7;
then consider IT being
finite FinSequence-membered set such that A10:
for
x being
object holds
(
x in IT iff
S1[
x,
Hn] )
by A6;
set IT2 =
{ (f ^ <*i*>) where f is Element of IT, i is Element of dom (H . (n + 1)) : ( f in IT & i in dom (H . (n + 1)) ) } ;
A11:
{ (f ^ <*i*>) where f is Element of IT, i is Element of dom (H . (n + 1)) : ( f in IT & i in dom (H . (n + 1)) ) } is
finite
then reconsider IT2 =
{ (f ^ <*i*>) where f is Element of IT, i is Element of dom (H . (n + 1)) : ( f in IT & i in dom (H . (n + 1)) ) } as
finite FinSequence-membered set by A11, FINSEQ_1:def 19;
take
IT2
;
for x being object holds
( x in IT2 iff S1[x,H] )
let x be
object ;
( x in IT2 iff S1[x,H] )
thus
(
x in IT2 implies
S1[
x,
H] )
( S1[x,H] implies x in IT2 )proof
assume
x in IT2
;
S1[x,H]
then consider fs being
Element of
IT,
i being
Element of
dom (H . (n + 1)) such that A17:
(
x = fs ^ <*i*> &
fs in IT &
i in dom (H . (n + 1)) )
;
consider f being
FinSequence such that A18:
(
f = fs &
len f = len Hn & ( for
i being
Nat st
i in dom f holds
f . i in dom (Hn . i) ) )
by A17, A10;
take fH =
f ^ <*i*>;
( fH = x & len fH = len H & ( for i being Nat st i in dom fH holds
fH . i in dom (H . i) ) )
thus A19:
(
fH = x &
len fH = len H )
by A7, A18, A17, A9, FINSEQ_2:16;
for i being Nat st i in dom fH holds
fH . i in dom (H . i)
let k be
Nat;
( k in dom fH implies fH . k in dom (H . k) )
assume A20:
k in dom fH
;
fH . k in dom (H . k)
A21:
( 1
<= k &
k <= n + 1 )
by A7, A20, A19, FINSEQ_3:25;
per cases
( k <= n or k = n + 1 )
by A21, NAT_1:8;
suppose A22:
k <= n
;
fH . k in dom (H . k)then A23:
(
k in dom f &
k in dom Hn )
by A21, A18, A9, FINSEQ_3:25;
A24:
f . k in dom (Hn . k)
by A22, A21, A18, A9, FINSEQ_3:25;
Hn . k = H . k
by FINSEQ_3:112, A22;
hence
fH . k in dom (H . k)
by A24, A23, FINSEQ_1:def 7;
verum end; end;
end;
given p being
FinSequence such that A25:
(
p = x &
len p = len H & ( for
i being
Nat st
i in dom p holds
p . i in dom (H . i) ) )
;
x in IT2
set pn =
p | n;
A26:
(
p = p | (len p) &
p | (len p) = (p | n) ^ <*(p . (n + 1))*> )
by A7, A8, A25, FINSEQ_5:83;
A27:
len (p | n) = len Hn
by A9, A25, NAT_1:11, FINSEQ_1:59, A7;
for
i being
Nat st
i in dom (p | n) holds
(p | n) . i in dom (Hn . i)
then A31:
p | n in IT
by A27, A10;
p . (n + 1) in dom (H . (n + 1))
by A25, A8, A7, FINSEQ_3:25;
hence
x in IT2
by A25, A26, A31;
verum
end;
for n being Nat holds S2[n]
from NAT_1:sch 2(A1, A5);
then consider IT being finite FinSequence-membered set such that
A32:
for x being object holds
( x in IT iff S1[x,F] )
;
IT c= NAT *
hence
ex b1 being finite Subset of (NAT *) st
for x being object holds
( x in b1 iff ex p being FinSequence st
( p = x & len p = len F & ( for i being Nat st i in dom p holds
p . i in dom (F . i) ) ) )
by A32; verum