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
  a is epsilon implies ex b st a = epsilon_b
  proof
    defpred N[set] means ex b st $1 = epsilon_b;
    defpred Q[Ordinal] means
    for e being epsilon Ordinal st e in epsilon_$1 holds N[e];
A1: Q[0]
    proof
      let e be epsilon Ordinal;
      0 in e by ORDINAL3:8; then
      first_epsilon_greater_than 0 c= e by Def6; then
      e in epsilon_0 implies e in e by Th36,Th41;
      hence thesis;
    end;
A2: Q[c] implies Q[succ c] proof assume
A3:   Q[c];
      let e be epsilon Ordinal such that
A4:   e in epsilon_succ c;
A5:   epsilon_succ c = (epsilon_c)|^|^omega by Th42
      .= first_epsilon_greater_than epsilon_c by Th40;
      per cases by ORDINAL1:14;
      suppose e in epsilon_c;
        hence N[e] by A3;
      end;
      suppose e = epsilon_c;
        hence N[e];
      end;
      suppose epsilon_c in e; then
        epsilon_succ c c= e by A5,Def6; then
        e in e by A4;
        hence N[e];
      end;
    end;
A6: b <> 0 & b is limit_ordinal & (for c st c in b holds Q[c]) implies Q[b]
    proof assume that
A7:   b <> 0 & b is limit_ordinal and
A8:   for c st c in b holds Q[c];
      let e be epsilon Ordinal; assume e in epsilon_b; then
      ex c st c in b & e in epsilon_c by A7,Th47;
      hence N[e] by A8;
    end;
A9: Q[b] from ORDINAL2:sch 1(A1,A2,A6);
    a c= epsilon_a & epsilon_a in epsilon_succ a by Th44,Th48,ORDINAL1:6;
    hence thesis by A9,ORDINAL1:12;
  end;
