let e be object ; ( e in (bool (the_universe_of (X \/ NAT))) ^omega implies ex u being object st S1[e,u] )
assume
e in (bool (the_universe_of (X \/ NAT))) ^omega
; ex u being object st S1[e,u]
then reconsider fs = e as XFinSequence of bool (the_universe_of (X \/ NAT)) by AFINSQ_1:def 7;
( dom fs = 0 or (dom fs) + 1 > 0 + 1 )
by XREAL_1:6;
then
( dom fs = 0 or dom fs >= 1 )
by NAT_1:13;
then
( dom fs = 0 or dom fs = 1 or dom fs > 1 )
by XXREAL_0:1;
then A2:
( dom fs = 0 or dom fs = 1 or (dom fs) + 1 > 1 + 1 )
by XREAL_1:6;
per cases
( dom fs = 0 or dom fs = 1 or dom fs >= 2 )
by A2, NAT_1:13;
suppose A4:
dom fs = 1
;
ex u being object st S1[e,u]set u =
X;
take
X
;
S1[e,X]thus
S1[
e,
X]
by A4;
verum end; suppose A5:
dom fs >= 2
;
ex u being object st S1[e,u]reconsider n =
dom fs as
Nat ;
reconsider n9 =
n -' 1 as
Nat ;
n - 1
>= 2
- 1
by A5, XREAL_1:9;
then A6:
n9 = n - 1
by XREAL_0:def 2;
defpred S2[
set ,
object ]
means for
p being
Nat st
p >= 1 &
p <= n - 1 & $1
= p holds
$2
= [:(fs . p),(fs . (n - p)):];
A7:
for
k being
Nat st
k in Seg n9 holds
ex
x being
object st
S2[
k,
x]
consider fs1 being
FinSequence such that A8:
(
dom fs1 = Seg n9 & ( for
k being
Nat st
k in Seg n9 holds
S2[
k,
fs1 . k] ) )
from FINSEQ_1:sch 1(A7);
set u =
Union (disjoin fs1);
take
Union (disjoin fs1)
;
S1[e, Union (disjoin fs1)]A9:
len fs1 = n - 1
by A6, A8, FINSEQ_1:def 3;
for
p being
Nat st
p >= 1 &
p <= n - 1 holds
fs1 . p = [:(fs . p),(fs . (n - p)):]
by A8, A6, FINSEQ_1:1;
hence
S1[
e,
Union (disjoin fs1)]
by A5, A9;
verum end; end;