deffunc H1( Ordinal) -> set = exp omega ,$1;
A1:
for a, b being ordinal number 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
A4:
dom f = omega
and
A5:
( {} in omega implies f . {} = 1 )
and
A6:
for a being ordinal number st succ a in omega holds
f . (succ a) = H2(a,f . a)
and
for a being ordinal number st a in omega & a <> {} & a is limit_ordinal holds
f . a = H3(a,f | a)
from ORDINAL2:sch 11();
F1:
( dom f = omega & f . 0 = 1 )
by A4, A5;
A7:
( 1 c= Union f & H1( Union f) = Union f & ( for b being ordinal number st 1 c= b & H1(b) = b holds
Union f c= b ) )
from ORDINAL5:sch 1(A1, A2, F1, F2);
Union f is epsilon
then reconsider e = Union f as epsilon Ordinal ;
defpred S1[ Nat] means f . $1 = omega |^|^ $1;
I1:
S1[ 0 ]
by F1, Th0;
I2:
for n being natural number st S1[n] holds
S1[n + 1]
A8:
for n being natural number holds S1[n]
from NAT_1:sch 2(I1, I2);
then
for c being ordinal number st c in omega holds
f . c = omega |^|^ c
;
then A9:
omega |^|^ omega = lim f
by F1, Th2;
f is non-decreasing
then
e is_limes_of f
by F1, ThND;
then AA:
omega |^|^ omega = e
by A9, ORDINAL2:def 14;
B2:
succ 0 = 1
;
then
0 in 1
by ORDINAL1:10;
then AB:
0 in e
by A7;
hence
first_epsilon_greater_than 0 = omega |^|^ omega
by AA, AB, FEGT; verum