特異な順序数(Extraordinary Ordinals)の符号化研究
本記事は、ラムダ計算の文脈において順序数(Ordinals)を表現するための多様な符号化手法を提示している。
これらのエンコーディングは、変数の扱い方に基づいて「線形」「アフィン」「非線形」の3つの主要カテゴリに分類される。
Mackie、Church、Scottなどの研究者によって、それぞれ異なる定義を用いて数や順序数を表現している。
注目すべきは、これら異なる計算パラダイムで構築された全ての符号化が、算術的な機能を持つ点である。
計算機科学における「自然数」を表現する方法は多岐にわたりますが、特にラムダ計算のような関数型プログラミングの基礎となる体系では、その表現方法が非常に重要になります。本記事では、数理論理学の分野で研究されている「順序数(Ordinals)」を、計算の性質に応じて「線形(Linear)」「アフィン(Affine)」「非線形(Non-Linear)」の3つのカテゴリに分類した研究を紹介します。
線形体系による自然数表現
線形(Linear)な体系は、変数が一度使われたら消費されるという制約を持つのが特徴です。MackieやParigotといった研究者が提唱した方法では、ラムダ抽象($\lambda$抽象)と適用(Application)といった基本的な操作を用いて、自然数(0, 1, 2, ...)を表現しています。この表現は、$\beta$-還元という計算規則によって、通常の算術計算を行うことが可能であるとされています。これは、関数型言語の基礎的な仕組みを応用した、エレガントな表現方法だと言えます。
アフィン体系と変数の扱い
アフィン(Affine)な体系は、線形体系とは異なり、変数を使用しない場合、その変数を「放置」しても問題ないという柔軟性を持っています。ScottやBruijnといった研究者がこのアフィンな性質を活かして自然数をエンコードしています。特にBruijnのエンコーディングは、変数を数字で示す「Bruijn記法」をラムダ計算に適用したもので、変数の束縛(Binding)の仕組みを工夫することで、効率的かつ簡潔に数値を表現できる点が注目されています。
非線形体系と変数の複製
非線形(Non-Linear)な体系では、一つの変数が複数回使用される可能性があるため、その使用のたびに変数を明示的に複製(Duplication)する必要があります。Churchのエンコーディングは最も古典的な例の一つであり、自然数を関数として表現しています。Mogensenのシステムは、さらに発展しており、任意の基数(Base)$b$を用いた数の表現を可能にしています。これにより、バイナリ(基数2)だけでなく、任意の基数での算術表現が可能になるという点で、汎用性が高いのが特徴です。
まとめ
これらの異なるエンコーディング手法は、計算の「リソース(資源)」をどのように扱うかという根本的な設計思想の違いを反映しています。線形、アフィン、非線形という分類は、理論計算機科学における表現力と計算効率のトレードオフを理解する上で、非常に重要な視点を提供していると言えるでしょう。
原文の冒頭を表示(英語・3段落のみ)
Linear
Mackie
Parigot
※ 著作権に配慮し、引用は冒頭3段落までです。続きは元記事をご覧ください。