前回(第11回)は、調和(ハーモニー)を三層モデル(ミクロ=反転原理/中間=正規化/大域=保存拡大)として定式化しました。今回(第12回)は「証明を走らせる」と題して、その中間層=正規化を、計算の言葉で読み替えます。鍵になるのはカリー・ハワード対応、すなわち「命題は型、証明はプログラム」という発見です。
今回のいちばんのメッセージは、新しく覚える記法はλ(ラムダ)ひとつだけで、あとはすべて既習概念の読み替えだ、ということです。証明木に項(λ項)を注釈すると、それがそのままλ計算になります。すると「遠回り(detour)」はβ基に、「正規化」はβ簡約=プログラムの実行になり、正規化定理は「このプログラムは必ず止まる」という停止性の保証になります。
さらに、宿題・問2で作ってもらった「壊れた結合子」を怪物図鑑として整理し、三層のどこで壊れるかを診断しました。最後に登場する怪物ρはカリー文(ρ ⟺ (ρ→⊥))で、局所診断を通り抜けるのに簡約が止まらない、いちばん陰湿な相手です。ダメットの「真正のハーモニー」を計算モデルの性質として捉え直し、「意味の有限主義」まで話を進めました。次回(第13回・7/14)は、証明から「取り出す」——A∨B の証明からAかBかが実効的に取り出せる、という∨の話に進みます。
授業日時
7月7日(火)16:45〜18:15
文学部第4講義室
授業内容
- 前回のおさらい:三つのハーモニー概念と三層モデル
- 宿題・問2の解説:壊れた結合子の「怪物図鑑」(打ち出の小槌/tonk/古典論理/逆張りknot/怪物ρ)
- 証明を一次元の記号列でコードする(動機)
- 準備:λ記法——関数の入力変数を明示する
- 証明木に名前をつける:→導入=λ抽象、→除去=適用
- 種明かし:この記法はChurchのλ計算だった
- β変換:計算とはλ項の書き換え((λx.M)N →β M[x:=N])
- カリー・ハワード対応の辞書(遠回り=β基、正規化=β簡約=プログラムの実行)
- なぜ対応するのか:命題=証明のデータ型(propositions as types)
- 目玉:宿題・問1の答え合わせをλで再演(カット&ペースト=代入)
- 正規化定理の計算版=「プログラムは必ず止まる」
- 止まらない項Ωと、型が停止を守るという教訓
- ダメットの回収:真正のハーモニーは計算モデルの性質/意味の有限主義
- ふたたびLLMへ/まとめ/演習・次回予告
- 付録:カリーのパラドックスと「嘘つき」、犯人は縮約
https://speakerdeck.com/player/PRESENTATION_ID speakerdeck.com
解説
新記法はλひとつ、あとは全部「再読」
今回のねらいは、正規化を計算の言葉に翻訳することです。本講義は第1回からずっと、推論を「記号列の規則に則った変換」として見る計算的な論理観で進めてきました。命題は第3回で一次元の記号列として帰納的に定義しましたし、規則は構成子・解体子として見てきました。ところが、証明そのものだけは、まだ二次元の木の図のままでした。今日やることは、この証明を一次元の記号列でコードすることです。コードしてしまえば、証明の書き換え(正規化)も「記号列の規則に則った変換」として、本講義の推論観そのままの姿で表現できます。
証明木に名前をつける
出発点は、実はもう始まっていた作業です。みなさんは第2回から仮定に名前をつけて [v : A] と書いてきました。これは「vという名前のAの証明があると仮定する」と読めます。今日はこの名前を、仮定だけでなく証明全体に拡張します。
やり方はたった二つの規則です。まず→導入。AからAを導く証明で仮定vをキャンセルすると、A→A が得られます。これに名前をつけると λv.v になります。仮定vをキャンセルするとは、入力vを待つ関数を作ることで、これがλ抽象です。λv.v は恒等関数idですから、「証明A→Aの正体は恒等関数だった」わけです。次に→除去。A→Bの証明hにAの証明fを渡すと、hf という B の証明になります。これは関数に引数を渡す適用(application)です。この二つの注釈規則だけで、今学期書いてきた→の証明はすべて一行の式になります。
種明かし:これはλ計算だった
ここで種明かしです。いまみなさんが「発明」した記法は、アロンゾ・チャーチが1930年代に作ったλ計算そのものです。λ計算は証明論とは独立に、「計算とは何か」への一つの答えとして生まれました(チューリング機械と同値です)。論理の側(ゲンツェン1934の自然演繹)と計算の側(チャーチのλ計算)が、互いを知らずに同じものを作っていた——これがカリー・ハワード対応の驚きです。
計算の一歩はβ変換です。関数のいちばん基本的な操作は、入力を本体に代入することでした。λ項でも同じで、(λx.M)N →β M[x:=N] と書きます。左辺の (λx.M)N の形をβ基(β-redex)と呼びます。計算とは、λ項の中のβ基を見つけて書き換えていくことで、もうβ基がない項が値(正規形)です。第3回で 2+2 を eval して + が消えていったのと同じ発想です。
カリー・ハワードの辞書
こうして対応表(辞書)ができます。命題は型、証明は項(プログラム)、仮定は変数、→導入はλ抽象、→除去は適用、カノニカルな証明は値(正規形)。そして今日の目玉は下二行です。''遠回りはβ基''、''正規化はβ簡約=プログラムの実行''。なぜ辞書が成り立つかというと、命題をその証明の集まり=データ型と同一視するからです(propositions as types)。第3回で作った自然数もどき(Z, Succ(Z), …)が、実はデータ型だったのと同じ見方です。
宿題・問1の A→((A→B)→B) で確かめました。遠回りのある証明に項を注釈すると、遠回りの箇所がちょうどβ基になっています。そしてβ簡約を実行すると、余計なβ基が消えて短い項になります。「カット&ペーストとは、代入のことだった」というわけです。
証明は走る。そして止まる
正規化定理を計算の言葉で言うと、型付け可能なλ項はすべて有限ステップで正規形に到達する、となります。つまり「このプログラムは必ず止まる」という停止性の保証です。証明の正規化は、プログラムの実行だったのです。
では、止まらないものはないのでしょうか。あります。Ω=(λx.xx)(λx.xx) は、一ステップ簡約しても元に戻る永久ループです。ところがΩには単純型がつきません。xが関数であると同時にその引数でもなければならず、型として矛盾するからです。教訓は「型(=命題)が停止を守っている」。停止性は非自明で面倒で、項が有限だから止まるのではなく、減少する測度を見つけるのが本当の仕事でした(第9回のヒドラと同じ構図です)。
怪物図鑑と、いちばん陰湿な怪物ρ
宿題・問2の「壊れた結合子」を、三層診断で図鑑にしました。打ち出の小槌(前提なしで何でも作る)とtonkは局所(反転原理)で捕まります。古典論理は排中律を前提なしで鋳造するので局所と大域が死に、中間だけ生き残ります。逆張りknotは三層すべて通ってしまいますが、遠回りが二通りに潰せて答えが一意でない(合流性の破れ)という欠陥を持ちます。そして怪物ρは、ρ ⟺ (ρ→⊥) というカリー文で、カリーのパラドックスの結合子版です。導入と除去は釣り合って見えるので局所診断を通り抜けますが、潰した遠回りが自分自身を再生産して簡約が止まりません。ρは中間(停止性)で捕まる怪物で、その「証明」の正体は、まさにΩのような止まらないプログラムです。
ダメットの回収と意味の有限主義
哲学的な回収をします。ダメットが「真正のハーモニー」と呼んだ正規化可能性は、保存拡大性や反転原理とは性格が違い、言語行為論の枠内の概念ではなく、計算モデルの性質として捉え直す必要があります。カリー・ハワード対応がその翻訳装置です。なぜ「止まる」ことを要求するのか——ここで意味の有限主義に触れました。人間は有限な生き物です。有限性は二枚あり、証明が有限の対象であること(構文からタダで手に入る)と、それを走らせた過程が有限であること(正規化定理が要る)です。有限な存在者に意味が現れるためには後者こそが必要で、止まって値を返す計算(全域的な計算)だけが、証明の資格を持つのです。
ふたたびLLMへ
「証明=プログラム」なら、根拠のある主張とは実行可能なプログラムを添えた主張です。では根拠のない主張(ハルシネーション)は、計算の言葉で何にあたるのか。Ωのような型のつかない項なのか、そもそも項のない主張なのか。この問いの答えは、最終回(7/21)に回します。
付録では、学生が混同しがちなカリーのパラドックスと「嘘つき」の関係を整理しました。嘘つき文 λ ⟺ ¬λ は、¬λ を λ→⊥ と書けば λ ⟺ (λ→⊥) となり、カリー文の C=⊥ の場合です。つまり嘘つきはカリーの特殊ケースです。そして犯人はどちらも縮約(contraction)=自己言及の仮定を二回使うことで、項でいえばΩの xx がそれです。縮約があれば両方とも自明化しますが、縮約を落としたアフィン論理(第8・9回)では xx が作れず、Ωも組めず、どちらも矛盾を起こしません。第8・9回で縮約を落とすと正規化が戻ったのは偶然ではなく、縮約こそが中間層(停止性)を壊す張本人だったのです。
今回のキーワード
カリー・ハワード対応、命題は型・証明はプログラム、λ計算、チャーチ、λ抽象、適用、β変換、β簡約、β基、正規形、正規化定理、型付きλ計算、停止性、propositions as types、データ型、Ω、型が停止を守る、怪物図鑑、打ち出の小槌、tonk、古典論理、逆張りknot、怪物ρ、カリー文、カリーのパラドックス、不動点コンビネータ、意味の有限主義、全域的な計算、縮約(contraction)、アフィン論理、嘘つきのパラドックス
宿題
当日の演習問題です。
''問1'':A→B→A の証明を描き、各行に項を注釈せよ(弱化の匂いがする例。答えは λv.λw.v)。
''問2'':(λx.M)N の形のλ項を一つ自作し、対応する遠回り証明を証明図で描け。β簡約と証明図の還元が対応することを確認せよ。
''エクストラ問(任意・提出歓迎)'':怪物ρの規則で⊥を導く証明を描き、今日の注釈法でλ項を付けてみよ。得られた項をβ簡約すると何が起きるか。ヒント1:ρとρ→⊥は同一視してよい。ヒント2:今日のあるスライドに、答えの姿がすでに出ている。
(解答にかかった時間も書いてください。)
提出方法・期限はKULMSの指示に従ってください。
-
-
- -
-
[2026前期火5] 科学哲学科学史(演習) 担当:矢田部俊介(西日本旅客鉄道株式会社)