defpred S1[ set ] means ( ( for a being set st a in $1 holds
a is FinSequence of NAT ) & ( for n being Nat holds atom. n in $1 ) & ( for p being FinSequence of NAT st p in $1 holds
'not' p in $1 ) & ( for p, q being FinSequence of NAT st p in $1 & q in $1 holds
p '&' q in $1 ) & ( for p, q being FinSequence of NAT st p in $1 & q in $1 holds
p 'or' q in $1 ) & ( for p being FinSequence of NAT st p in $1 holds
'X' p in $1 ) & ( for p, q being FinSequence of NAT st p in $1 & q in $1 holds
p 'U' q in $1 ) & ( for p, q being FinSequence of NAT st p in $1 & q in $1 holds
p 'R' q in $1 ) );
defpred S2[ set ] means for D being non empty set st S1[D] holds
$1 in D;
consider Y being set such that
A1: for a being set holds
( a in Y iff ( a in NAT * & S2[a] ) ) from XBOOLE_0:sch 1();
now
set a = atom. 0 ;
A2: atom. 0 in NAT * by FINSEQ_1:def 11;
A3: for D being non empty set st S1[D] holds
atom. 0 in D ;
take b = atom. 0 ; :: thesis: b in Y
thus b in Y by A1, A2, A3; :: thesis: verum
end;
then reconsider Y = Y as non empty set ;
take Y ; :: thesis: ( ( for a being set st a in Y holds
a is FinSequence of NAT ) & ( for n being Nat holds atom. n in Y ) & ( for p being FinSequence of NAT st p in Y holds
'not' p in Y ) & ( for p, q being FinSequence of NAT st p in Y & q in Y holds
p '&' q in Y ) & ( for p, q being FinSequence of NAT st p in Y & q in Y holds
p 'or' q in Y ) & ( for p being FinSequence of NAT st p in Y holds
'X' p in Y ) & ( for p, q being FinSequence of NAT st p in Y & q in Y holds
p 'U' q in Y ) & ( for p, q being FinSequence of NAT st p in Y & q in Y holds
p 'R' q in Y ) & ( for D being non empty set st ( for a being set st a in D holds
a is FinSequence of NAT ) & ( for n being Nat holds atom. n in D ) & ( for p being FinSequence of NAT st p in D holds
'not' p in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p '&' q in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p 'or' q in D ) & ( for p being FinSequence of NAT st p in D holds
'X' p in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p 'U' q in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p 'R' q in D ) holds
Y c= D ) )

thus for a being set st a in Y holds
a is FinSequence of NAT :: thesis: ( ( for n being Nat holds atom. n in Y ) & ( for p being FinSequence of NAT st p in Y holds
'not' p in Y ) & ( for p, q being FinSequence of NAT st p in Y & q in Y holds
p '&' q in Y ) & ( for p, q being FinSequence of NAT st p in Y & q in Y holds
p 'or' q in Y ) & ( for p being FinSequence of NAT st p in Y holds
'X' p in Y ) & ( for p, q being FinSequence of NAT st p in Y & q in Y holds
p 'U' q in Y ) & ( for p, q being FinSequence of NAT st p in Y & q in Y holds
p 'R' q in Y ) & ( for D being non empty set st ( for a being set st a in D holds
a is FinSequence of NAT ) & ( for n being Nat holds atom. n in D ) & ( for p being FinSequence of NAT st p in D holds
'not' p in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p '&' q in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p 'or' q in D ) & ( for p being FinSequence of NAT st p in D holds
'X' p in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p 'U' q in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p 'R' q in D ) holds
Y c= D ) )
proof
let a be set ; :: thesis: ( a in Y implies a is FinSequence of NAT )
assume a in Y ; :: thesis: a is FinSequence of NAT
then a in NAT * by A1;
hence a is FinSequence of NAT by FINSEQ_1:def 11; :: thesis: verum
end;
thus for n being Nat holds atom. n in Y :: thesis: ( ( for p being FinSequence of NAT st p in Y holds
'not' p in Y ) & ( for p, q being FinSequence of NAT st p in Y & q in Y holds
p '&' q in Y ) & ( for p, q being FinSequence of NAT st p in Y & q in Y holds
p 'or' q in Y ) & ( for p being FinSequence of NAT st p in Y holds
'X' p in Y ) & ( for p, q being FinSequence of NAT st p in Y & q in Y holds
p 'U' q in Y ) & ( for p, q being FinSequence of NAT st p in Y & q in Y holds
p 'R' q in Y ) & ( for D being non empty set st ( for a being set st a in D holds
a is FinSequence of NAT ) & ( for n being Nat holds atom. n in D ) & ( for p being FinSequence of NAT st p in D holds
'not' p in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p '&' q in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p 'or' q in D ) & ( for p being FinSequence of NAT st p in D holds
'X' p in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p 'U' q in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p 'R' q in D ) holds
Y c= D ) )
proof
let n be Nat; :: thesis: atom. n in Y
B1: atom. n in NAT * by FINSEQ_1:def 11;
for D being non empty set st S1[D] holds
atom. n in D ;
hence atom. n in Y by A1, B1; :: thesis: verum
end;
thus for p being FinSequence of NAT st p in Y holds
'not' p in Y :: thesis: ( ( for p, q being FinSequence of NAT st p in Y & q in Y holds
p '&' q in Y ) & ( for p, q being FinSequence of NAT st p in Y & q in Y holds
p 'or' q in Y ) & ( for p being FinSequence of NAT st p in Y holds
'X' p in Y ) & ( for p, q being FinSequence of NAT st p in Y & q in Y holds
p 'U' q in Y ) & ( for p, q being FinSequence of NAT st p in Y & q in Y holds
p 'R' q in Y ) & ( for D being non empty set st ( for a being set st a in D holds
a is FinSequence of NAT ) & ( for n being Nat holds atom. n in D ) & ( for p being FinSequence of NAT st p in D holds
'not' p in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p '&' q in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p 'or' q in D ) & ( for p being FinSequence of NAT st p in D holds
'X' p in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p 'U' q in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p 'R' q in D ) holds
Y c= D ) )
proof
let p be FinSequence of NAT ; :: thesis: ( p in Y implies 'not' p in Y )
assume B1: p in Y ; :: thesis: 'not' p in Y
B2: 'not' p in NAT * by FINSEQ_1:def 11;
for D being non empty set st S1[D] holds
'not' p in D
proof
let D be non empty set ; :: thesis: ( S1[D] implies 'not' p in D )
assume B3: S1[D] ; :: thesis: 'not' p in D
then p in D by A1, B1;
hence 'not' p in D by B3; :: thesis: verum
end;
hence 'not' p in Y by A1, B2; :: thesis: verum
end;
thus for q, p being FinSequence of NAT st q in Y & p in Y holds
q '&' p in Y :: thesis: ( ( for p, q being FinSequence of NAT st p in Y & q in Y holds
p 'or' q in Y ) & ( for p being FinSequence of NAT st p in Y holds
'X' p in Y ) & ( for p, q being FinSequence of NAT st p in Y & q in Y holds
p 'U' q in Y ) & ( for p, q being FinSequence of NAT st p in Y & q in Y holds
p 'R' q in Y ) & ( for D being non empty set st ( for a being set st a in D holds
a is FinSequence of NAT ) & ( for n being Nat holds atom. n in D ) & ( for p being FinSequence of NAT st p in D holds
'not' p in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p '&' q in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p 'or' q in D ) & ( for p being FinSequence of NAT st p in D holds
'X' p in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p 'U' q in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p 'R' q in D ) holds
Y c= D ) )
proof
let q, p be FinSequence of NAT ; :: thesis: ( q in Y & p in Y implies q '&' p in Y )
assume B1: ( q in Y & p in Y ) ; :: thesis: q '&' p in Y
B2: q '&' p in NAT * by FINSEQ_1:def 11;
for D being non empty set st S1[D] holds
q '&' p in D
proof
let D be non empty set ; :: thesis: ( S1[D] implies q '&' p in D )
assume B3: S1[D] ; :: thesis: q '&' p in D
then ( p in D & q in D ) by A1, B1;
hence q '&' p in D by B3; :: thesis: verum
end;
hence q '&' p in Y by A1, B2; :: thesis: verum
end;
thus for q, p being FinSequence of NAT st q in Y & p in Y holds
q 'or' p in Y :: thesis: ( ( for p being FinSequence of NAT st p in Y holds
'X' p in Y ) & ( for p, q being FinSequence of NAT st p in Y & q in Y holds
p 'U' q in Y ) & ( for p, q being FinSequence of NAT st p in Y & q in Y holds
p 'R' q in Y ) & ( for D being non empty set st ( for a being set st a in D holds
a is FinSequence of NAT ) & ( for n being Nat holds atom. n in D ) & ( for p being FinSequence of NAT st p in D holds
'not' p in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p '&' q in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p 'or' q in D ) & ( for p being FinSequence of NAT st p in D holds
'X' p in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p 'U' q in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p 'R' q in D ) holds
Y c= D ) )
proof
let q, p be FinSequence of NAT ; :: thesis: ( q in Y & p in Y implies q 'or' p in Y )
assume B1: ( q in Y & p in Y ) ; :: thesis: q 'or' p in Y
B2: q 'or' p in NAT * by FINSEQ_1:def 11;
for D being non empty set st S1[D] holds
q 'or' p in D
proof
let D be non empty set ; :: thesis: ( S1[D] implies q 'or' p in D )
assume B3: S1[D] ; :: thesis: q 'or' p in D
then ( p in D & q in D ) by A1, B1;
hence q 'or' p in D by B3; :: thesis: verum
end;
hence q 'or' p in Y by A1, B2; :: thesis: verum
end;
thus for p being FinSequence of NAT st p in Y holds
'X' p in Y :: thesis: ( ( for p, q being FinSequence of NAT st p in Y & q in Y holds
p 'U' q in Y ) & ( for p, q being FinSequence of NAT st p in Y & q in Y holds
p 'R' q in Y ) & ( for D being non empty set st ( for a being set st a in D holds
a is FinSequence of NAT ) & ( for n being Nat holds atom. n in D ) & ( for p being FinSequence of NAT st p in D holds
'not' p in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p '&' q in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p 'or' q in D ) & ( for p being FinSequence of NAT st p in D holds
'X' p in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p 'U' q in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p 'R' q in D ) holds
Y c= D ) )
proof
let p be FinSequence of NAT ; :: thesis: ( p in Y implies 'X' p in Y )
assume B1: p in Y ; :: thesis: 'X' p in Y
B2: 'X' p in NAT * by FINSEQ_1:def 11;
for D being non empty set st S1[D] holds
'X' p in D
proof
let D be non empty set ; :: thesis: ( S1[D] implies 'X' p in D )
assume B3: S1[D] ; :: thesis: 'X' p in D
then p in D by A1, B1;
hence 'X' p in D by B3; :: thesis: verum
end;
hence 'X' p in Y by A1, B2; :: thesis: verum
end;
thus for q, p being FinSequence of NAT st q in Y & p in Y holds
q 'U' p in Y :: thesis: ( ( for p, q being FinSequence of NAT st p in Y & q in Y holds
p 'R' q in Y ) & ( for D being non empty set st ( for a being set st a in D holds
a is FinSequence of NAT ) & ( for n being Nat holds atom. n in D ) & ( for p being FinSequence of NAT st p in D holds
'not' p in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p '&' q in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p 'or' q in D ) & ( for p being FinSequence of NAT st p in D holds
'X' p in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p 'U' q in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p 'R' q in D ) holds
Y c= D ) )
proof
let q, p be FinSequence of NAT ; :: thesis: ( q in Y & p in Y implies q 'U' p in Y )
assume B1: ( q in Y & p in Y ) ; :: thesis: q 'U' p in Y
B2: q 'U' p in NAT * by FINSEQ_1:def 11;
for D being non empty set st S1[D] holds
q 'U' p in D
proof
let D be non empty set ; :: thesis: ( S1[D] implies q 'U' p in D )
assume B3: S1[D] ; :: thesis: q 'U' p in D
then ( p in D & q in D ) by A1, B1;
hence q 'U' p in D by B3; :: thesis: verum
end;
hence q 'U' p in Y by A1, B2; :: thesis: verum
end;
thus for q, p being FinSequence of NAT st q in Y & p in Y holds
q 'R' p in Y :: thesis: for D being non empty set st ( for a being set st a in D holds
a is FinSequence of NAT ) & ( for n being Nat holds atom. n in D ) & ( for p being FinSequence of NAT st p in D holds
'not' p in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p '&' q in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p 'or' q in D ) & ( for p being FinSequence of NAT st p in D holds
'X' p in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p 'U' q in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p 'R' q in D ) holds
Y c= D
proof
let q, p be FinSequence of NAT ; :: thesis: ( q in Y & p in Y implies q 'R' p in Y )
assume B1: ( q in Y & p in Y ) ; :: thesis: q 'R' p in Y
B2: q 'R' p in NAT * by FINSEQ_1:def 11;
for D being non empty set st S1[D] holds
q 'R' p in D
proof
let D be non empty set ; :: thesis: ( S1[D] implies q 'R' p in D )
assume B3: S1[D] ; :: thesis: q 'R' p in D
then ( p in D & q in D ) by A1, B1;
hence q 'R' p in D by B3; :: thesis: verum
end;
hence q 'R' p in Y by A1, B2; :: thesis: verum
end;
let D be non empty set ; :: thesis: ( ( for a being set st a in D holds
a is FinSequence of NAT ) & ( for n being Nat holds atom. n in D ) & ( for p being FinSequence of NAT st p in D holds
'not' p in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p '&' q in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p 'or' q in D ) & ( for p being FinSequence of NAT st p in D holds
'X' p in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p 'U' q in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p 'R' q in D ) implies Y c= D )

assume A20: S1[D] ; :: thesis: Y c= D
let a be set ; :: according to TARSKI:def 3 :: thesis: ( not a in Y or a in D )
assume a in Y ; :: thesis: a in D
hence a in D by A1, A20; :: thesis: verum