reserve
  a,b,c,d,e for Ordinal,
  m,n for Nat,
  f for Ordinal-Sequence,
  x for object;
reserve S,S1,S2 for Sequence;

theorem Th36:
  first_epsilon_greater_than 0 = omega |^|^ omega
  proof
    deffunc phi(Ordinal) = exp(omega, $1);
A1: for a,b st a in b holds phi(a) in phi(b) by ORDINAL4:24;
A2: now let a such that
A3:   a is non empty limit_ordinal;
      let phi being Ordinal-Sequence such that
A4:   dom phi = a & for b st b in a holds phi.b = phi(b);
      phi is non-decreasing
      proof
        let b,c; assume
A5:     b in c & c in dom phi; then
        phi.b = phi(b) & phi.c = phi(c) by A4,ORDINAL1:10; then
        phi.b in phi.c by A5,ORDINAL4:24;
        hence thesis by ORDINAL1:def 2;
      end; then
      Union phi is_limes_of phi & phi(a) = lim phi by A3,A4,Th6,ORDINAL2:45;
      hence phi(a) is_limes_of phi by ORDINAL2:def 10;
    end;
    deffunc F(Ordinal,Ordinal) = phi($2);
    deffunc G(Ordinal,Ordinal-Sequence) = 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 st succ a in omega holds f.(succ a) = F(a,f.a) and
    for a st a in omega & a <> 0 & a is limit_ordinal
    holds f.a = G(a,f|a) from ORDINAL2:sch 11;
A9: dom f = omega & f.0 = 1 by A6,A7;
A10: for a st a in omega holds f.(succ a) = phi(f.a) by A8,ORDINAL1:28;
A11: 1 c= Union f & phi(Union f) = Union f &
    for b st 1 c= b & phi(b) = b holds Union f c= b
    from CriticalNumber2(A1,A2,A9,A10);
    Union f is epsilon
    by A11; then
    reconsider e = Union f as epsilon Ordinal;
    defpred I[Nat] means f.$1 = omega |^|^ $1;
A12: I[0] by A7,Th13;
A13: for n st I[n] holds I[n+1]
    proof
      let n such that
A14:   I[n];
A15:   Segm(n+1) = succ Segm n & n in omega by NAT_1:38,ORDINAL1:def 12;
      hence f.(n+1) = phi(f.n) by A10 .= omega |^|^ (n+1) by A14,A15,Th14;
    end;
A16: for n holds I[n] from NAT_1:sch 2(A12,A13); then
    for c st c in omega holds f.c = omega |^|^ c; then
A17: omega |^|^ omega = lim f by A6,Th15;
    f is non-decreasing
    proof
      let a,b; assume
A18:   a in b & b in dom f; then
      reconsider n = a, m = b as Element of omega by A6,ORDINAL1:10;
      a c= b by A18,ORDINAL1:def 2; then
      omega |^|^ a c= omega |^|^ b by Th21; then
      f.n c= omega |^|^ m by A16;
      hence thesis by A16;
    end; 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;
    now let b be epsilon Ordinal;
      assume 0 in b; then
      1 c= b & phi(b) = b by A20,Def5,ORDINAL1:21;
      hence e c= b by A11;
    end;
    hence thesis by A19,A21,Def6,A11;
  end;
