defpred S1[ set ] means ( ( for a being set st a in $1 holds
a is FinSequence of NAT ) & ( for x, y being Variable holds
( x '=' y in $1 & x 'in' y 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 x being Variable
for p being FinSequence of NAT st p in $1 holds
All (x,p) 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 XFAMILY:sch 1();
now :: thesis: ex b being FinSequence of NAT st b in Y
set a = (x. 0) '=' (x. 0);
take b = (x. 0) '=' (x. 0); :: thesis: b in Y
( (x. 0) '=' (x. 0) in NAT * & ( for D being non empty set st S1[D] holds
(x. 0) '=' (x. 0) in D ) ) by FINSEQ_1:def 11;
hence b in Y by A1; :: 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 x, y being Variable holds
( x '=' y in Y & x 'in' y 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 x being Variable
for p being FinSequence of NAT st p in Y holds
All (x,p) in Y ) & ( for D being non empty set st ( for a being set st a in D holds
a is FinSequence of NAT ) & ( for x, y being Variable holds
( x '=' y in D & x 'in' y 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 x being Variable
for p being FinSequence of NAT st p in D holds
All (x,p) in D ) holds
Y c= D ) )

thus for a being set st a in Y holds
a is FinSequence of NAT :: thesis: ( ( for x, y being Variable holds
( x '=' y in Y & x 'in' y 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 x being Variable
for p being FinSequence of NAT st p in Y holds
All (x,p) in Y ) & ( for D being non empty set st ( for a being set st a in D holds
a is FinSequence of NAT ) & ( for x, y being Variable holds
( x '=' y in D & x 'in' y 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 x being Variable
for p being FinSequence of NAT st p in D holds
All (x,p) 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 x, y being Variable holds
( x '=' y in Y & x 'in' y 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 x being Variable
for p being FinSequence of NAT st p in Y holds
All (x,p) in Y ) & ( for D being non empty set st ( for a being set st a in D holds
a is FinSequence of NAT ) & ( for x, y being Variable holds
( x '=' y in D & x 'in' y 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 x being Variable
for p being FinSequence of NAT st p in D holds
All (x,p) in D ) holds
Y c= D ) )
proof
let x, y be Variable; :: thesis: ( x '=' y in Y & x 'in' y in Y )
( x '=' y in NAT * & ( for D being non empty set st S1[D] holds
x '=' y in D ) ) by FINSEQ_1:def 11;
hence x '=' y in Y by A1; :: thesis: x 'in' y in Y
( x 'in' y in NAT * & ( for D being non empty set st S1[D] holds
x 'in' y in D ) ) by FINSEQ_1:def 11;
hence x 'in' y in Y by A1; :: 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 x being Variable
for p being FinSequence of NAT st p in Y holds
All (x,p) in Y ) & ( for D being non empty set st ( for a being set st a in D holds
a is FinSequence of NAT ) & ( for x, y being Variable holds
( x '=' y in D & x 'in' y 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 x being Variable
for p being FinSequence of NAT st p in D holds
All (x,p) in D ) holds
Y c= D ) )
proof
let p be FinSequence of NAT ; :: thesis: ( p in Y implies 'not' p in Y )
assume A2: p in Y ; :: thesis: 'not' p in Y
A3: 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 A4: S1[D] ; :: thesis: 'not' p in D
then p in D by A1, A2;
hence 'not' p in D by A4; :: thesis: verum
end;
'not' p in NAT * by FINSEQ_1:def 11;
hence 'not' p in Y by A1, A3; :: 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 x being Variable
for p being FinSequence of NAT st p in Y holds
All (x,p) in Y ) & ( for D being non empty set st ( for a being set st a in D holds
a is FinSequence of NAT ) & ( for x, y being Variable holds
( x '=' y in D & x 'in' y 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 x being Variable
for p being FinSequence of NAT st p in D holds
All (x,p) 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 A5: ( q in Y & p in Y ) ; :: thesis: q '&' p in Y
A6: 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 A7: S1[D] ; :: thesis: q '&' p in D
then ( p in D & q in D ) by A1, A5;
hence q '&' p in D by A7; :: thesis: verum
end;
q '&' p in NAT * by FINSEQ_1:def 11;
hence q '&' p in Y by A1, A6; :: thesis: verum
end;
thus for x being Variable
for p being FinSequence of NAT st p in Y holds
All (x,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 x, y being Variable holds
( x '=' y in D & x 'in' y 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 x being Variable
for p being FinSequence of NAT st p in D holds
All (x,p) in D ) holds
Y c= D
proof
let x be Variable; :: thesis: for p being FinSequence of NAT st p in Y holds
All (x,p) in Y

let p be FinSequence of NAT ; :: thesis: ( p in Y implies All (x,p) in Y )
assume A8: p in Y ; :: thesis: All (x,p) in Y
A9: for D being non empty set st S1[D] holds
All (x,p) in D
proof
let D be non empty set ; :: thesis: ( S1[D] implies All (x,p) in D )
assume A10: S1[D] ; :: thesis: All (x,p) in D
then p in D by A1, A8;
hence All (x,p) in D by A10; :: thesis: verum
end;
All (x,p) in NAT * by FINSEQ_1:def 11;
hence All (x,p) in Y by A1, A9; :: 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 x, y being Variable holds
( x '=' y in D & x 'in' y 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 x being Variable
for p being FinSequence of NAT st p in D holds
All (x,p) in D ) implies Y c= D )

assume A11: 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, A11; :: thesis: verum