let H be ZF-formula; ( ex i being Element of NAT st
for j being Element of NAT st x. j in variables_in H holds
j < i & not for x being Variable holds x in variables_in H )
defpred S1[ ZF-formula] means ex i being Element of NAT st
for j being Element of NAT st x. j in variables_in $1 holds
j < i;
A1:
for x, y being Variable holds
( S1[x '=' y] & S1[x 'in' y] )
A8:
for H1, H2 being ZF-formula st S1[H1] & S1[H2] holds
S1[H1 '&' H2]
A12:
for H being ZF-formula
for x being Variable st S1[H] holds
S1[ All (x,H)]
proof
let H be
ZF-formula;
for x being Variable st S1[H] holds
S1[ All (x,H)]let x be
Variable;
( S1[H] implies S1[ All (x,H)] )
given i1 being
Element of
NAT such that A13:
for
j being
Element of
NAT st
x. j in variables_in H holds
j < i1
;
S1[ All (x,H)]
consider i2 being
Element of
NAT such that A14:
x = x. i2
by ZF_LANG1:77;
(
i1 <= i2 + 1 or
i1 > i2 + 1 )
;
then consider i being
Element of
NAT such that A15:
( (
i1 <= i2 + 1 &
i = i2 + 1 ) or (
i1 > i2 + 1 &
i = i1 ) )
;
take
i
;
for j being Element of NAT st x. j in variables_in (All (x,H)) holds
j < i
let j be
Element of
NAT ;
( x. j in variables_in (All (x,H)) implies j < i )
assume
x. j in variables_in (All (x,H))
;
j < i
then
x. j in (variables_in H) \/ {x}
by ZF_LANG1:142;
then
(
x. j in variables_in H or (
x. j in {x} &
i2 + 0 = i2 &
0 < 1 ) )
by XBOOLE_0:def 3;
then
(
j < i1 or (
x. j = x. i2 &
i2 < i2 + 1 ) )
by A13, A14, TARSKI:def 1, XREAL_1:6;
then
(
j < i1 or
j < i2 + 1 )
by ZF_LANG1:76;
hence
j < i
by A15, XXREAL_0:2;
verum
end;
A16:
for H being ZF-formula st S1[H] holds
S1[ 'not' H]
for H being ZF-formula holds S1[H]
from ZF_LANG1:sch 1(A1, A16, A8, A12);
then consider i being Element of NAT such that
A17:
for j being Element of NAT st x. j in variables_in H holds
j < i
;
thus
ex i being Element of NAT st
for j being Element of NAT st x. j in variables_in H holds
j < i
by A17; not for x being Variable holds x in variables_in H
take
x. i
; not x. i in variables_in H
thus
not x. i in variables_in H
by A17; verum