巨大数研究 Wiki
70行目: 70行目:
 
=== 計算可能性 ===
 
=== 計算可能性 ===
 
前節で定めた<math>\prec</math>が<math>\varepsilon_0</math>の順序となる,正確に言えば<math>\langle\mathsf{OT},\prec\rangle\cong\langle\varepsilon_0,<\rangle</math>となるのは定義より明らかであるが,<math>\prec</math>は未だに集合論的に定められていて計算可能性に対する情報を与えてくれない.そのためには<math>\mathsf{OT}</math>をコード化する必要があり,また実際に比較するためのアルゴリズムを与える必要がある.
 
前節で定めた<math>\prec</math>が<math>\varepsilon_0</math>の順序となる,正確に言えば<math>\langle\mathsf{OT},\prec\rangle\cong\langle\varepsilon_0,<\rangle</math>となるのは定義より明らかであるが,<math>\prec</math>は未だに集合論的に定められていて計算可能性に対する情報を与えてくれない.そのためには<math>\mathsf{OT}</math>をコード化する必要があり,また実際に比較するためのアルゴリズムを与える必要がある.
  +
  +
さて前述の順序数表記をコード化する前に列に関するコード化について触れなければならない.
  +
{| class=wikitable
  +
! '''定義2.2.1''' 列のコード
  +
|-
  +
|
  +
以下<math>p_i(i\in\mathbb{N})</math>を素数の数え上げとして
  +
  +
<math>\langle x_0,\ldots,x_{n-1}\rangle:=\prod_{i<n}p_i^{1+x_i}</math>
  +
  +
と定める.また<math>\exp(x,i):=\max\{y\leq x\mid p_i^y\mid x\}</math>とし,
  +
# <math>(x)_i:=\exp(x,i)-1</math>.
  +
# <math>\mathrm{lh}(x)=\min\{i\leq x\mid \exp(x,i)=0\}</math>.
  +
とする.直感的には<math>\langle x_0,\ldots,x_{n-1}\rangle</math>は列のコードを表していて,<math>(x)_i</math>は<math>x</math>がコードする列の<math>i</math>番目の要素,<math>\mathrm{lh}(x)</math>は<math>x</math>がコードする列の長さを表す.
  +
|}
 
{| class=wikitable
 
{| class=wikitable
! '''定義2.4''' 順序数コード (ordinal code)
+
! '''定義2.2.2''' 順序数コード (ordinal code)
 
|-
 
|-
 
|
 
|
79行目: 94行目:
 
ここで<math>\langle\cdot\rangle</math>は適当な(計算可能)[[対関数]]とする.また<math>\ulcorner\cdot\urcorner</math>の値域を<math>\ulcorner\mathsf{OT}\urcorner\subseteq\mathbb{N}</math>とし,<math>\ulcorner\mathsf{OT}\urcorner</math>を'''順序数コード''' (ordinal code) という.
 
ここで<math>\langle\cdot\rangle</math>は適当な(計算可能)[[対関数]]とする.また<math>\ulcorner\cdot\urcorner</math>の値域を<math>\ulcorner\mathsf{OT}\urcorner\subseteq\mathbb{N}</math>とし,<math>\ulcorner\mathsf{OT}\urcorner</math>を'''順序数コード''' (ordinal code) という.
 
|}
 
|}
さて<math>\ulcorner\mathsf{OT}\urcorner</math>が計算可能集合であることを示したいわけであるが,そのためには順序数項を定義するときに<math>\prec</math>で比較していたためそれに対応する<math>\ulcorner\mathsf{OT}\urcorner</math>上の計算可能な二項関係<math>\lhd</math>を同時再帰的に定義する必要がある.カントール標準形で<math>\alpha=\omega^{\alpha_0}+\cdots+\omega^{\alpha_n}</math>,<math>\beta=\omega^{\beta_0}+\cdots+\omega^{\beta_n}</math>と表されたものを比較するためには<math>(\alpha_0,\ldots,\alpha_n),(\beta_0,\ldots,\beta_n)</math>を辞書式順序で比較すれば良いことを思い出せば以下のように定義し直せるであろう.
+
さて<math>\ulcorner\mathsf{OT}\urcorner</math>が計算可能集合であることを示したいわけであるが,そのためには順序数項を定義するときに<math>\prec</math>で比較していたためそれに対応する<math>\ulcorner\mathsf{OT}\urcorner</math>上の計算可能な二項関係<math>\lhd</math>を同時再帰的に定義する必要がある.ここで定理1.1.よりカントール標準形で<math>\alpha=\omega^{\alpha_0}+\cdots+\omega^{\alpha_n}</math>,<math>\beta=\omega^{\beta_0}+\cdots+\omega^{\beta_m}</math>と表されたものを比較するためには<math>(\alpha_0,\ldots,\alpha_n),(\beta_0,\ldots,\beta_m)</math>を辞書式順序で比較すれば良いことを思い出せば以下のように定義し直せるであろう.ここで重要な役割を果たしているのは<math>\alpha_i<\alpha,\beta_i<\beta</math>となっていることで再帰が回るのはここに所以する
   
 
{| class=wikitable
 
{| class=wikitable
! '''定義2.5'''
+
! '''定義2.2.3'''
 
|-
 
|-
 
|
 
|

2020年7月7日 (火) 08:51時点における版

カントール標準形 (Cantor normal form) とはカントール[1]によって定義され,また証明された順序数の標準形である.これは進法,及び遺伝的記法の順序数への一般化と考えることができる.

概要

順序数 (basis) のカントール標準形で表されているとはに対し

となっていることである.またの場合は底によらすでカントール標準形で表されているとする.カントール標準形定理 (Cantor normal form theorem) は順序数に対しカントール標準形は一意に定まることを主張する.

カントール標準形で一番重要なのは底がに場合で,各であるからは,有限回の和を用いてと表せることを用いれば以下の系を特殊なカントール標準形を得ることができる.

ここでとする.このような形でカントール標準形は述べられる場合もある.

カントール標準形について重要となるのは以下の定理である.

定理1.1

とするとき以下は同値である.

ここで辞書式順序 (lexicographical order) である.すなわちまず,比較し等しかったらを比較して,順番に比していく.あるになった時点で比較を終え,全てのに対してなら,を比較することでが定まる.

順序数表記

のカントール標準形にてと表したとき,となるような最小の順序数であったことを思い返せばに対してとなる.よってもカントール標準形で表し,とし,をカントール標準形で表し,この操作を有限回繰り返すことでのみを用いて未満の順序数を表すことができる.なぜならで順序数の無限降下列は存在しないからである.

この事実を用いて順序数表記を構成することができる。ただし上記の「順序数表示方法」自体は集合論において意味を持つものであり、算術で意味を持つ順序数表記そのものではないことに注意する。以下で、まず集合論内での部分集合として整列順序集合を定義し、その後が順序数表記であること(集合論を用いずに算術内で再帰的にが定義可能であること)を示す。

項とその割り当て

定義2.1 項 (term)

を定数記号,を一変数関数記号,を多変数関数記号とする. (term) は以下のように帰納的に定義される.

  1. は項である.
  2. が項ならも項である.
  3. が項ならも項である.

項の集合をとする.

このように項で順序数を表現できるので,項に対応する順序数も帰納的に定義する.

定義2.2 割り当て (assignment)

割り当て (assignment) を以下のように帰納的に定義する.

しかしとなるは一意に定まるとは限らない.よって一意に定まるようなの部分集合を定める.これを定めるためにカントール標準形を用いる.

定義2.3 順序数項 (ordinal term)

順序数項 (ordinal term) は以下のように帰納的に定義される.

  1. は順序数項である.
  2. が順序数項でならも順序数項である.

順序数項全体をとする.

また上の順序と定める.


計算可能性

前節で定めたの順序となる,正確に言えばとなるのは定義より明らかであるが,は未だに集合論的に定められていて計算可能性に対する情報を与えてくれない.そのためにはをコード化する必要があり,また実際に比較するためのアルゴリズムを与える必要がある.

さて前述の順序数表記をコード化する前に列に関するコード化について触れなければならない.

定義2.2.1 列のコード

以下を素数の数え上げとして

と定める.またとし,

とする.直感的にはは列のコードを表していて,がコードする列の番目の要素,がコードする列の長さを表す.

定義2.2.2 順序数コード (ordinal code)

を帰納的に定義する.

ここでは適当な(計算可能)対関数とする.またの値域をとし,順序数コード (ordinal code) という.

さてが計算可能集合であることを示したいわけであるが,そのためには順序数項を定義するときにで比較していたためそれに対応する上の計算可能な二項関係構文解析に失敗 (不明な関数「\lhd」): {\displaystyle \lhd} を同時再帰的に定義する必要がある.ここで定理1.1.よりカントール標準形でと表されたものを比較するためにはを辞書式順序で比較すれば良いことを思い出せば以下のように定義し直せるであろう.ここで重要な役割を果たしているのはとなっていることで再帰が回るのはここに所以する.

定義2.2.3
  1. 構文解析に失敗 (不明な関数「\unlhd」): {\displaystyle x\in\ulcorner\mathsf{OT}\urcorner:\Leftrightarrow x=0\lor(\forall i<\mathrm{lh}(x))[(x)_i\in\ulcorner\mathsf{OT}\urcorner\land(i+1<\mathrm{lh}(x)\to(x)_{i+1}\unlhd(x)_i)]}
  2. 構文解析に失敗 (構文エラー): {\displaystyle \begin{align*}a\lhd b:\Leftrightarrow & a\in\ulcorner\mathsf{OT}\urcorner\land b\in\ulcorner\mathsf{OT}\urcorner\land[(a=0\land b\neq 0)\lor\\ & (\exist i<\mathrm{lh}(a))(\forall j< i)[(a)_j=(b)_j\land(a)_i\lhd(b)_i]\lor\\ & (\mathrm{lh}(a)<\mathrm{lh}(b)\land(\forall i<\mathrm{lh}(a))[(a)_i=(b)_i])\end{align*}}
  3. 構文解析に失敗 (不明な関数「\unlhd」): {\displaystyle a\unlhd b:\Leftrightarrow a\lhd b\or a=b}

このようにすれば計算可能(原始再帰)な順序数表記構文解析に失敗 (不明な関数「\lhd」): {\displaystyle \langle\ulcorner\mathsf{OT}\urcorner,\lhd\rangle} を得ることができる.

参考文献

  1. Cantor, Georg. "Beiträge zur Begründung der transfiniten Mengenlehre." Mathematische Annalen 46.4 (1895): 481-512.