defpred S1[ set ] means ( ( for a being set st a in $1 holds
a is FinSequence of NAT ) & ( for n being Element of 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 being FinSequence of NAT st p in $1 holds
EX p in $1 ) & ( for p being FinSequence of NAT st p in $1 holds
EG p in $1 ) & ( for p, q being FinSequence of NAT st p in $1 & q in $1 holds
p EU q in $1 ) );
defpred S2[ object ] means for D being non empty set st S1[D] holds
$1 in D;
consider Y being set such that
A1: for a being object holds
( a in Y iff ( a in NAT * & S2[a] ) ) from XBOOLE_0:sch 1();
now :: thesis: ex b being FinSequence of NAT st b in Y
set a = atom. 0;
A2: for D being non empty set st S1[D] holds
atom. 0 in D ;
take b = atom. 0; :: thesis: b in Y
atom. 0 in NAT * by FINSEQ_1:def 11;
hence b in Y by A1, A2; :: 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 Element of 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 being FinSequence of NAT st p in Y holds
EX p in Y ) & ( for p being FinSequence of NAT st p in Y holds
EG p in Y ) & ( for p, q being FinSequence of NAT st p in Y & q in Y holds
p EU 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 Element of 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 being FinSequence of NAT st p in D holds
EX p in D ) & ( for p being FinSequence of NAT st p in D holds
EG p in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p EU 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 Element of 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 being FinSequence of NAT st p in Y holds
EX p in Y ) & ( for p being FinSequence of NAT st p in Y holds
EG p in Y ) & ( for p, q being FinSequence of NAT st p in Y & q in Y holds
p EU 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 Element of 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 being FinSequence of NAT st p in D holds
EX p in D ) & ( for p being FinSequence of NAT st p in D holds
EG p in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p EU 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 Element of 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 being FinSequence of NAT st p in Y holds
EX p in Y ) & ( for p being FinSequence of NAT st p in Y holds
EG p in Y ) & ( for p, q being FinSequence of NAT st p in Y & q in Y holds
p EU 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 Element of 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 being FinSequence of NAT st p in D holds
EX p in D ) & ( for p being FinSequence of NAT st p in D holds
EG p in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p EU q in D ) holds
Y c= D ) )
proof
let n be Element of NAT ; :: thesis: atom. n in Y
A3: for D being non empty set st S1[D] holds
atom. n in D ;
atom. n in NAT * by FINSEQ_1:def 11;
hence atom. n in Y by A1, A3; :: 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 being FinSequence of NAT st p in Y holds
EX p in Y ) & ( for p being FinSequence of NAT st p in Y holds
EG p in Y ) & ( for p, q being FinSequence of NAT st p in Y & q in Y holds
p EU 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 Element of 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 being FinSequence of NAT st p in D holds
EX p in D ) & ( for p being FinSequence of NAT st p in D holds
EG p in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p EU q in D ) holds
Y c= D ) )
proof
let p be FinSequence of NAT ; :: thesis: ( p in Y implies 'not' p in Y )
assume A4: p in Y ; :: thesis: 'not' p in Y
A5: 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 A6: S1[D] ; :: thesis: 'not' p in D
then p in D by A1, A4;
hence 'not' p in D by A6; :: thesis: verum
end;
'not' p in NAT * by FINSEQ_1:def 11;
hence 'not' p in Y by A1, A5; :: 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 being FinSequence of NAT st p in Y holds
EX p in Y ) & ( for p being FinSequence of NAT st p in Y holds
EG p in Y ) & ( for p, q being FinSequence of NAT st p in Y & q in Y holds
p EU 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 Element of 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 being FinSequence of NAT st p in D holds
EX p in D ) & ( for p being FinSequence of NAT st p in D holds
EG p in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p EU 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 that
A7: q in Y and
A8: p in Y ; :: thesis: q '&' p in Y
A9: 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 A10: S1[D] ; :: thesis: q '&' p in D
then A11: q in D by A1, A7;
p in D by A1, A8, A10;
hence q '&' p in D by A10, A11; :: thesis: verum
end;
q '&' p in NAT * by FINSEQ_1:def 11;
hence q '&' p in Y by A1, A9; :: thesis: verum
end;
thus for p being FinSequence of NAT st p in Y holds
EX p in Y :: thesis: ( ( for p being FinSequence of NAT st p in Y holds
EG p in Y ) & ( for p, q being FinSequence of NAT st p in Y & q in Y holds
p EU 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 Element of 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 being FinSequence of NAT st p in D holds
EX p in D ) & ( for p being FinSequence of NAT st p in D holds
EG p in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p EU q in D ) holds
Y c= D ) )
proof
let p be FinSequence of NAT ; :: thesis: ( p in Y implies EX p in Y )
assume A12: p in Y ; :: thesis: EX p in Y
A13: for D being non empty set st S1[D] holds
EX p in D
proof
let D be non empty set ; :: thesis: ( S1[D] implies EX p in D )
assume A14: S1[D] ; :: thesis: EX p in D
then p in D by A1, A12;
hence EX p in D by A14; :: thesis: verum
end;
EX p in NAT * by FINSEQ_1:def 11;
hence EX p in Y by A1, A13; :: thesis: verum
end;
thus for p being FinSequence of NAT st p in Y holds
EG p in Y :: thesis: ( ( for p, q being FinSequence of NAT st p in Y & q in Y holds
p EU 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 Element of 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 being FinSequence of NAT st p in D holds
EX p in D ) & ( for p being FinSequence of NAT st p in D holds
EG p in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p EU q in D ) holds
Y c= D ) )
proof
let p be FinSequence of NAT ; :: thesis: ( p in Y implies EG p in Y )
assume A15: p in Y ; :: thesis: EG p in Y
A16: for D being non empty set st S1[D] holds
EG p in D
proof
let D be non empty set ; :: thesis: ( S1[D] implies EG p in D )
assume A17: S1[D] ; :: thesis: EG p in D
then p in D by A1, A15;
hence EG p in D by A17; :: thesis: verum
end;
EG p in NAT * by FINSEQ_1:def 11;
hence EG p in Y by A1, A16; :: thesis: verum
end;
thus for q, p being FinSequence of NAT st q in Y & p in Y holds
q EU 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 Element of 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 being FinSequence of NAT st p in D holds
EX p in D ) & ( for p being FinSequence of NAT st p in D holds
EG p in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p EU q in D ) holds
Y c= D
proof
let q, p be FinSequence of NAT ; :: thesis: ( q in Y & p in Y implies q EU p in Y )
assume that
A18: q in Y and
A19: p in Y ; :: thesis: q EU p in Y
A20: for D being non empty set st S1[D] holds
q EU p in D
proof
let D be non empty set ; :: thesis: ( S1[D] implies q EU p in D )
assume A21: S1[D] ; :: thesis: q EU p in D
then A22: q in D by A1, A18;
p in D by A1, A19, A21;
hence q EU p in D by A21, A22; :: thesis: verum
end;
q EU p in NAT * by FINSEQ_1:def 11;
hence q EU p in Y by A1, A20; :: 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 Element of 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 being FinSequence of NAT st p in D holds
EX p in D ) & ( for p being FinSequence of NAT st p in D holds
EG p in D ) & ( for p, q being FinSequence of NAT st p in D & q in D holds
p EU q in D ) implies Y c= D )

assume A23: S1[D] ; :: thesis: Y c= D
let a be object ; :: 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, A23; :: thesis: verum