deffunc H1( Ordinal) -> set = exp (omega,$1);
A1:
for a, b being Ordinal st a in b holds
H1(a) in H1(b)
by ORDINAL4:24;
deffunc H2( Ordinal, Ordinal) -> set = H1($2);
deffunc H3( Ordinal, Ordinal-Sequence) -> set = lim $2;
consider f being Ordinal-Sequence such that
A6:
dom f = omega
and
A7:
( 0 in omega implies f . 0 = 1 )
and
A8:
for a being Ordinal st succ a in omega holds
f . (succ a) = H2(a,f . a)
and
for a being Ordinal st a in omega & a <> 0 & a is limit_ordinal holds
f . a = H3(a,f | a)
from ORDINAL2:sch 11();
A9:
( dom f = omega & f . 0 = 1 )
by A6, A7;
A10:
for a being Ordinal st a in omega holds
f . (succ a) = H1(f . a)
by A8, ORDINAL1:28;
A11:
( 1 c= Union f & H1( Union f) = Union f & ( for b being Ordinal st 1 c= b & H1(b) = b holds
Union f c= b ) )
from ORDINAL5:sch 1(A1, A2, A9, A10);
Union f is epsilon
by A11;
then reconsider e = Union f as epsilon Ordinal ;
defpred S1[ Nat] means f . $1 = omega |^|^ $1;
A12:
S1[ 0 ]
by A7, Th13;
A13:
for n being Nat st S1[n] holds
S1[n + 1]
A16:
for n being Nat holds S1[n]
from NAT_1:sch 2(A12, A13);
then
for c being Ordinal st c in omega holds
f . c = omega |^|^ c
;
then A17:
omega |^|^ omega = lim f
by A6, Th15;
f is non-decreasing
then
e is_limes_of f
by A6, Th6;
then A19:
omega |^|^ omega = e
by A17, ORDINAL2:def 10;
A20:
succ 0 = 1
;
then A21:
0 in 1
by ORDINAL1:6;
hence
first_epsilon_greater_than 0 = omega |^|^ omega
by A19, A21, Def6, A11; verum