210
7
章 至るところにある万能性
言い換えると、
RUN
は任意のチューリングマシンをシミュレートできるラムダ計算プログラムです
†
。
逆もまた可能であることがわかっています。「6.2.2 意味論」にある操作的意味論と同じように、ラム
ダ計算の式の表現をテープに格納し、簡約規則の集合にしたがってテープを繰り返し更新することに
よって、チューリングマシンはラムダ計算インタプリタとして機能します。
あらゆるチューリングマシンはラムダ計算プログラムによってシミュレートすることができ、
あらゆるラムダ計算プログラムはチューリングマシンによってシミュレートすることができま
す。したがって、これら
2
つのシステムは能力的にはまったく同等だと言えます。チューリン
グマシンとラムダ計算プログラムはまったく動き方が異なり、同じ能力を持っているようには
見えないため、これは驚くべき結果です。
このことは、ラムダ計算には自分自身をシミュレートする方法が少なくとも1つあることを意味して
います。まずチューリングマシンをラムダ計算で実装し、そのあとシミュレートした機械を使ってラム
ダ計算インタプリタを実行すればよいのです。このシミュレーションの中のシミュレーションというの
は非常に効率の悪い方法です。ラムダ計算の式を表現するデータ構造を設計してから操作的意味論を
直接実装した方が、同じ結果をもっとエレガントに得ることができます。ところが、このラムダ計算の
自己シミュレーションというのは、新しいものを何も構築しなくても、ラムダ計算が万能