defpred S1[ Nat, set , set ] means for n, m being Element of NAT st $2 = n & $3 = m holds
( n < m & P1[F1() . m] & ( for k being Element of NAT st n < k & P1[F1() . k] holds
m <= k ) );
defpred S2[ Nat] means P1[F1() . $1];
ex m1 being Element of NAT st
( 0 <= m1 & P1[F1() . m1] )
by A1;
then A2:
ex m being Nat st S2[m]
;
consider M being Nat such that
A3:
( S2[M] & ( for n being Nat st S2[n] holds
M <= n ) )
from NAT_1:sch 5(A2);
reconsider M9 = M as Element of NAT by ORDINAL1:def 12;
A7:
for n being Nat
for x being Element of NAT ex y being Element of NAT st S1[n,x,y]
consider F being sequence of NAT such that
A10:
( F . 0 = M9 & ( for n being Nat holds S1[n,F . n,F . (n + 1)] ) )
from RECDEF_1:sch 2(A7);
A11:
rng F c= REAL
by NUMBERS:19;
A12:
rng F c= NAT
;
A13:
dom F = NAT
by FUNCT_2:def 1;
then reconsider F = F as Real_Sequence by A11, RELSET_1:4;
then reconsider F = F as increasing sequence of NAT by SEQM_3:def 6;
A17:
for n being Element of NAT st P1[F1() . n] holds
ex m being Element of NAT st F . m = n
proof
defpred S3[
Nat]
means (
P1[
F1()
. $1] & ( for
m being
Element of
NAT holds
F . m <> $1 ) );
assume
ex
n being
Element of
NAT st
S3[
n]
;
contradiction
then A18:
ex
n being
Nat st
S3[
n]
;
consider M1 being
Nat such that A19:
(
S3[
M1] & ( for
n being
Nat st
S3[
n] holds
M1 <= n ) )
from NAT_1:sch 5(A18);
defpred S4[
Nat]
means ( $1
< M1 &
P1[
F1()
. $1] & ex
m being
Element of
NAT st
F . m = $1 );
A20:
ex
n being
Nat st
S4[
n]
A22:
for
n being
Nat st
S4[
n] holds
n <= M1
;
consider X being
Nat such that A23:
(
S4[
X] & ( for
n being
Nat st
S4[
n] holds
n <= X ) )
from NAT_1:sch 6(A22, A20);
A24:
for
k being
Element of
NAT st
X < k &
k < M1 holds
not
P1[
F1()
. k]
proof
given k being
Element of
NAT such that A25:
X < k
and A26:
k < M1
and A27:
P1[
F1()
. k]
;
contradiction
hence
contradiction
;
verum
end;
consider m being
Element of
NAT such that A28:
F . m = X
by A23;
M1 in NAT
by ORDINAL1:def 12;
then A29:
F . (m + 1) <= M1
by A10, A19, A23, A28;
A30:
P1[
F1()
. (F . (m + 1))]
by A10, A28;
A31:
X < F . (m + 1)
by A10, A28;
hence
contradiction
by A19;
verum
end;
take
F
; ( ( for n being Nat holds P1[(F1() * F) . n] ) & ( for n being Element of NAT st ( for r being Real st r = F1() . n holds
P1[r] ) holds
ex m being Element of NAT st n = F . m ) )
set q = F1() * F;
defpred S3[ Nat] means P1[(F1() * F) . $1];
A32:
for k being Nat st S3[k] holds
S3[k + 1]
proof
let k be
Nat;
( S3[k] implies S3[k + 1] )
assume
P1[
(F1() * F) . k]
;
S3[k + 1]
S1[
k,
F . k,
F . (k + 1)]
by A10;
then
P1[
F1()
. (F . (k + 1))]
;
hence
S3[
k + 1]
by FUNCT_2:15;
verum
end;
A33:
S3[ 0 ]
by A3, A10, FUNCT_2:15;
thus
for n being Nat holds S3[n]
from NAT_1:sch 2(A33, A32); for n being Element of NAT st ( for r being Real st r = F1() . n holds
P1[r] ) holds
ex m being Element of NAT st n = F . m
let n be Element of NAT ; ( ( for r being Real st r = F1() . n holds
P1[r] ) implies ex m being Element of NAT st n = F . m )
assume
for r being Real st r = F1() . n holds
P1[r]
; ex m being Element of NAT st n = F . m
then consider m being Element of NAT such that
A34:
F . m = n
by A17;
take
m
; n = F . m
thus
n = F . m
by A34; verum