Dmytro氏のA Stronger Ordinal Notationで表される順序数の収束列と、収束列を求めるために必要な性質をまとめます。
詳細を知りたい人は、Dmytro氏のページを参照してください。
http://web.mit.edu/dmytro/www/other/OrdinalNotation.htm

1. standard representationへの書き換え

0, Ωは、standard representationである。

C(a,b)がstandard representationであるのは、
・a,bがstandard representationである
・bが最小である
・aが最大である
の全てを満たすときである。

C(a,b)をstandard representationに書き換える手順は、以下の通りである。

a,bをstandard representationに書き換える。

b=0のとき、bは最小である。
b=C(c,d)のとき、
 a≦cならば、bは最小である。
 a>cならば、C(a,b)をC(a,d)に書き換えてdの最小化をする。

b≧Ωのとき、aは最大である。

aが最大であるか判定するのに用いる関数stdcheck1(c,a,b)を、以下のように定義する。
stdcheck1(0,a,b)=1
stdcheck1(Ω,a,b)=1
C(c,d)<Ωのとき、
 stdcheck1(C(c,d),a,b)=stdcheck2(C(c,d),a,b,C(c,d))
C(c,d)>Ωのとき、
 stdcheck1(C(c,d),a,b)=stdcheck1(c,a,b)*stdcheck1(d,a,b)

aが最大であるか判定するのに用いる関数stdcheck2(d,a,b,c)を、以下のように定義する。
stdcheck2(0,a,b,c)=1
stdcheck2(Ω,a,b,c)=1
C(d,e)<C(a,b)のとき、
 stdcheck2(C(d,e),a,b,c)=1
「C(d,e)≧C(a,b)かつC(d,e)≦c」またはC(d,e)>Ωのとき、
 stdcheck2(C(d,e),a,b,c)=stdcheck2(d,a,b,c)*stdcheck2(e,a,b,c)
C(d,e)≧C(a,b)かつC(d,e)>cかつC(d,e)<Ωのとき、
 stdcheck2(C(d,e),a,b,c)=0

b<Ωかつstdcheck1(a,a,b)=1のときaは最大であり、b<Ωかつstdcheck1(a,a,b)=0のときaは最大でない。

aが最大になるように書き換えるのに用いる関数std1(c,a,b)を、以下のように定義する。
std1(0,a,b)=0
std1(Ω,a,b)=Ω
C(c,d)<Ωのとき、
 std1(C(c,d),a,b)=std2(C(c,d),a,b,C(c,d))
C(c,d)>Ωかつ、
 stdcheck1(d,a,b)=0のとき、
  std1(C(c,d),a,b)=std1(d,a,b)
 stdcheck1(d,a,b)=1かつstdcheck1(c,a,b)=0のとき、
  std1(C(c,d),a,b)=C(std1(c,a,b),d)
 stdcheck1(d,a,b)=stdcheck1(c,a,b)=1のとき、
  std1(C(c,d),a,b)=C(c,d)

aが最大になるように書き換えるのに用いる関数std2(d,a,b,c)を、以下のように定義する。
std2(0,a,b,c)=0
std2(Ω,a,b,c)=Ω
C(d,e)<C(a,b)のとき、
 std2(C(d,e),a,b,c)=C(d,e)
「C(d,e)≧C(a,b)かつC(d,e)≦c」またはC(d,e)>Ωかつ、
 stdcheck2(e,a,b,c)=0のとき、
  std2(C(d,e),a,b,c)=std2(e,a,b,c)
 stdcheck2(e,a,b,c)=1かつstdcheck2(d,a,b,c)=0のとき、
  std2(C(d,e),a,b,c)=C(std2(d,a,b,c),e)
 stdcheck2(e,a,b,c)=stdcheck2(d,a,b,c)=1のとき、
  std2(C(d,e),a,b,c)=C(d,e)
C(d,e)≧C(a,b)かつC(d,e)>cかつC(d,e)<Ωのとき、
 std2(C(d,e),a,b,c)=Ω

aが最大になるまで、aをstd1(a,a,b)に書き換えてaの最大化を繰り返す。

2. 大小比較

0<Ω

C(a,b)がstandard representationかどうかにかかわらず、
0<C(a,b)
b<ΩのときC(a,b)<Ω
b≧ΩのときC(a,b)>Ω

C(a,b)のaが最大のとき、C(a,b), C(c,d)がstandard representationかどうかにかかわらず、
C(a,b)<C(c,d)となるのは、
 C(a,b)≦dまたは「b<C(c,d)かつa<c」
のときである。

2つの順序数のstandard representationが一致するときのみ、両者は等しい。

3. 収束列

以下では、aは後続順序数、bは収束列のある極限順序数、
cは収束列のない極限順序数、d, xは任意の順序数とする。
また、すべての順序数はstandard representationであるとする。

C(0,d)=d+1は後続順序数である。
C(a,d), C(b,d)は収束列のある極限順序数である。
Ωは収束列のない極限順序数である。

(d≧Ωのとき、C(c,d)は収束列のない極限順序数である。)
(d<Ωかつ)subst_arg2(C(c,d))>C(c,d)のとき、C(c,d)は収束列のある極限順序数である。
(d<Ωかつ)subst_arg2(C(c,d))≦C(c,d)のとき、C(c,d)は収束列のない極限順序数である。

前者関数pred(a)は後続順序数aについて定義され、
pred(C(0,d))=d

収束列b_nは収束列のある極限順序数b、自然数nについて定義され、
{C(a,d)}_0=d
{C(a,d)}_{n+1}=C(pred(a),{C(a,d)}_n)
{C(b,d)}_n=C(b_n,d)

(d<Ωかつ)subst_arg2(C(c,d))>C(c,d)かつ、
 C(c,d)≧subst3(subst_arg2(C(c,d)),subst_arg1(c))のとき、
  {C(c,d)}'_0=0
  {C(c,d)}'_{n+1}=subst2(subst_arg1(c),C(subst1(c,{C(c,d)}'_n),d))
  {C(c,d)}_n=C(subst1(c,{C(c,d)}'_n),d)
 C(c,d)<subst3(subst_arg2(C(c,d)),subst_arg1(c))のとき、
  {C(c,d)}'_0=0
  {C(c,d)}'_{n+1}=subst2(subst_arg1(c),subst3(subst_arg2(C(c,d)),{C(c,d)}'_n))
  {C(c,d)}_n=C(subst1(c,{C(c,d)}'_n),d)

subst1(c,x)は収束列のない極限順序数c、任意の順序数xについて定義され、
subst1(Ω,x)=x
C(c,d)<Ωのとき、
subst1(C(c,d),x)=x
C(c,d)>Ωのとき、
subst1(C(c,d),x)=C(subst1(c,x),d)

subst2(C(c,d),x)は収束列のない極限順序数c、任意の順序数d, xについて定義され、
subst_arg1(c)=Ωのとき、
subst2(C(c,d),x)=x
subst_arg1(c)<Ωのとき、
subst2(C(c,d),x)=C(subst1(c,subst2(subst_arg1(c),x)),d)

subst3(C(c,d),x)は収束列のない極限順序数c、任意の順序数d, xについて定義され、
subst3(C(c,d),x)=C(subst1(c,x),d)

subst_arg1(c)は収束列のない極限順序数cについて定義され、
subst_arg1(Ω)=Ω
C(c,d)<Ωのとき、
subst_arg1(C(c,d))=C(c,d)
C(c,d)>Ωのとき、
subst_arg1(C(c,d))=subst_arg1(c)

subst_arg2(C(c,d))は収束列のない極限順序数c、任意の順序数dについて定義され、
subst_arg1(c)=Ωのとき、
subst_arg2(C(c,d))=C(c,d)
subst_arg1(c)<Ωのとき、
subst_arg2(C(c,d))=subst_arg2(subst_arg1(c))

※substについての補足

収束列のない極限順序数は、n≧0, d_i<Ω, c_i(x)を関数として、
 c_0(C(c_1(C(c_2(…C(c_{n-1}(C(c_n(Ω),d_n)),d_{n-1})…),d_2)),d_1))
の形をしている。
 subst1(c_i,x)=c_i(x)
 subst2(C(c_i,d_i),x)=C(c_i(…C(c_{n-1}(x),d_{n-1})…),d_i)
 subst3(C(c_n,d_n),x)=C(c_n(x),d_n)
 subst_arg1(c_i(x))=x
 subst_arg2(C(c_i,d_i))=C(c_n,d_n)
 (subst_arg3(C(c_n(Ω),d_n))=Ω)

4. 巨大関数を作るための定義

aは後続順序数、bは収束列のある極限順序数とする。

H[0](n)=n
H[a](n)=H[pred(a)](n+1)
H[n](n)=H[b_n](n)

X_0=0
X_{n+1}=C(X_n,Ω)
として、H[C(X,0)](n)を考えると、nについて急激に増加する関数になる。