こちらは ISer Advent Calendar 2021 24日目の記事です。長いので2つに別れていて、このページは後編です。前編は こちら です。
前編の段階でかなりの長さになってしまったので、いったん話を整理します。
step | 階層 | 批判対象 | 代替案 |
---|---|---|---|
1 | (自然言語の)意味理論 | 真理条件による意味理論 | 検証主義的な意味理論 |
2 | (形式論理の)意味論 | モデル論的意味論 | 証明論的意味論 |
3 | 推論規則 | 古典論理 | 直観主義論理 |
よって、これから明らかにしていかなければならないのは以下のポイントです。
なお、後編の説明の大筋は[大西 2012]に従っていますが、各所の具体例や説明で大西先生のその他の文献や矢田部先生の解説などを参考にしています。詳しくは参考文献のリストを参照してください。
さて、「論理結合子の意味は推論規則で決まる」が、意味理論に関する議論から得られた方針でした。しかし、これだけではさすがに素朴すぎます。というのも、推論規則さえ作ってしまえば「なんでもあり」だからです。実際、変な推論規則を定義することで、めちゃくちゃな論理結合子を作れてしまいます。有名な例として
導入則は
これにより任意の論理式が導出可能になってしまうという点で、
この例から分かるのは、「推論規則が意味を規定する」というときの「推論規則」には、何らかの制約が課されていなければならない、ということです。ではそれはどのような制約でしょうか?以下ではこの点について考えていきます。
本節のこれ以降の話は、「どうしてそう言えるか」の説明というより、「なぜそういう考えに至るか」の動機の説明に終始することをあらかじめ断っておきます(この記事は全体的にそういう感じですが、ここは特にその色が強いです)。
まず注目したいのが、推論という私たちの言語活動には、複数のやり方が存在する場合が往々にしてあるということです。以下のような例を考えてみましょう。
特定の配置をした「橋」と「島」に対して、橋を1筆書きするような経路があるかという問題を考えます。これに対してオイラーがグラフ理論による解答を与えたというのは、離散数学などを勉強した方なら聞いたことがあるでしょう(全ての頂点の次数が偶数になることが必要十分条件です)。
さて、ここで一筆書きできないような橋と島の配置を考えます。このとき「Aさんが橋を全て渡った」という情報さえあれば、グラフ理論の定理として「Aさんはどこかの橋を2回渡った」ということが結論できます。一方でこのことは、別にグラフ理論を全く知らない人でも、「2回渡ったところを直接目で見て確かめる」という方法で結論することもできます。同じことを確かめる、2つの異なる検証方法があるということです。
大学受験数学なんかでは、綺麗な解法とそうでない解法がある場合があります。例えば、
このとき、これら複数の推論の手法は、てんでバラバラであってよいわけではありません。グラフ理論と直接確認の結果は一致していなければおかしいですし、数学の答案で別解のそれぞれが違う結果を出していたらそれはもはや別解とはいえません。すなわち、複数の推論どうしが「食い違っていない」ことが必要になるということです。
これらの例だけから一般化するのはやや乱暴かもしれませんが、非常にざっくりとしたスローガンとして、推論の仕方(より一般化すれば言葉の使い方)が複数ある場合、それらは首尾一貫していなければならないということが言えそうです。言い換えれば、一つの方法が他の方法と(何らかの意味で)互いに噛み合わないような状況は批判されなければならない、ということです。このような言語の用法の間の整合性のことを、調和(harmony)といいます。
この概念は、言語の規範性というものを考えると飲み込みやすいかもしれません。推論や言葉の使い方には「正しい」「正しくない」の区別があり、どんなやり方も許容されるアナーキーではありません。このような正しさの線引きをもたらす原動力が、まさにこの調和に対する要請なんだという説明ができるかもしれません。
少し話題はそれますが、このような「調和」概念は、言語内において自己完結的に「正しさ」を議論するための道具立てといえるんじゃないかと思います。意味の指示説的な理論においては、言語の外側にある世界(e.g. 指示対象, モデル)との対応関係によって言葉の意味や推論の妥当性が決まったわけですが、今回のような検証主義的な意味理論のアプローチではそのような概念に頼りたくありません。そのため、「言葉と世界」ではなく「言葉と言葉」どうしの関係によって正しさを議論していこうという方向性にしたくなります。その「言葉と言葉」の関係のコアになるのが、使い方の整合性=調和というわけです。
このような方向性で考えると、「言葉の使い方がその意味を定める」という基本方針は保ちつつ、「とはいえ言葉の使い方が調和していなければ批判されることになる(修正が必要になる)」と制約をつけくわえればよいのではないかという発想に至ります。そして裏を返せば、「調和が保たれていれば特に問題はない(正当化される)」ということにもなりそうです。
いったん話の流れを確認します。
しかし、「調和」と言われてもどのような整合性を考えればよいかはあまり明らかではなく、考察を進める足場としては心もとないです。よって、これからすべきことは、「調和」概念を論理結合子に関して定式化し、
繰り返しになりますが、「調和」とは言葉の複数の使い方に関する制約です。そして、論理結合子の使い方とは推論規則のことでした。では、推論規則が互いに整合的である・首尾一貫しているとはどういうことでしょうか?
ここで、上のケーニヒスベルクの橋の例を少し敷衍してみましょう。「Aさんはどこかの橋を2回渡った」(
ここで「直接的」と雑に書いてしまった部分を明確にするなら、「その文の意味が分かっているのならばその文の検証方法がコレだと分かるものが直接的」と説明できます(「間接的」は直接的でないものです)。すなわち、
ここから、以下のような構図が見えてきます。
では、論理結合子について「直接的」とはどういうことでしょうか。すなわち、「ある結合子の意味が分かっているなら、その結合子を含む論理式の検証(証明)を得る方法がこれだと分かっていなければならないような方法」とは何でしょうか?これを大まかに説明するものとして、論理結合子に対するBHK解釈(Brouwer–Heyting–Kolmogorov interpretation)というものがあります。これは、各論理結合子の証明をどのように構成するかを記述する非形式的な説明です。
このBHK解釈は、今回使っている自然演繹の体系NJでいえば「導入則」に相当します(カリー・ハワード同型対応をご存じの方なら、NJの導入則に対応する型付きλ計算の項の構成方法だと思ってくださればよいです)。すなわち、「ある結合子の意味が分かっているなら、その結合子の導入則が分かっているはずだ」ということが考えられているわけです。このような意味で導入則は「直接的」で「自己正当化的」です(もう少し意味をはっきりさせて意味付与的である(meaning-conferring)と言うこともあります)。今回はとりあえずこの主張を受け入れましょう。
では次に問題となるのは、導入則ではない「間接的な」推論規則の正しさがどのようにして議論されるか、ということです。ここからは、除去則に対して正当化の基準を定式化した「反転原理」というものを見ていきます。
導入則と除去則の調和とは一体何でしょうか。まずはこれら2種類の推論規則を対比してみましょう。導入則は「その結合子を含む結論を何から導くか」、除去則は「その結合子を含む前提から何を導けるか」の記述になっています。ということは、除去則は導入則から見ればある意味で「逆」の操作です。すなわち除去則は、色々な根拠を組み上げて導出された論理式から、何らかの結論を引き出す操作だと言えます。このことは、「構成」と「解体」という対比によってよりクリアになります。導入則は、根拠から主張を組み上げて「構成」する操作です。反対に除去則は、組み上げられたものを「解体」して、何か帰結を取り出す操作だということです。
この対比から言えそうなことは、ある前提から結論として引き出せることは、それを組み上げてきた根拠以上に強くなってはいけないということ、簡単にいえば「根拠に対して結論が欲張ってはいけない」ということです。ある前提
この「根拠に対して結論が欲張らない」という状況の定式化は、プラウィッツ(Dag Prawitz)によって以下の反転原理(inversion principle)として与えられました。
ちょっとこれだけではよく分らないと思うので、個々の論理結合子で見ていきましょう。まず、一番簡単な
そして、この前提のうち
さて、この証明、なんだか無駄なことをしていないでしょうか?そう、
このような局所的ピーク消去の操作を簡約(reduction)と呼びます。反転原理が言っているのは、このような局所的ピークの簡約が可能であることだと言うこともできます。
その他の演算子に関する簡約も考えましょう。
少しだけ補足をしておきます(よく分らなければ無視してください)。カリー・ハワード同型対応によれば、命題論理の論理式・証明図は、それぞれ型付きλ計算の型・項に対応します。そして、上で紹介した簡約は、型付きλ計算のβ簡約(beta reduction)に対応しています。例えば
のように表現することができます。
このような反転原理の観点からすれば、
となりますが、
さて、上の簡約の操作を続けるといったいどうなるのか、という疑問がわいてきます。まず、これ以上簡約ができない証明図のことを正規(形)である(normal)ということにし、正規形にいたる有限の簡約ステップが存在する証明図を正規化可能である(normalizable)ということにしましょう。このとき、以下の定理が成り立ちます。
NJの任意の証明図は正規化可能である。
ここから得られる系として、以下のものがあります。
開いた仮定の集合が
部分論理式特性が成り立つために必要な簡約の操作として、実は上で各結合子について紹介したものだけでは不十分であり、いくつか例外的なケースに対する処理をするための簡約操作を付け足す必要があります(正規化定理はそのような簡約規則も込みで考えられています)。とはいえ、今回の議論の大筋には関係しないので割愛します。この点について詳しくは[矢田部 2017]を参照。
この性質は先ほどの「構成」と「解体」の観点からすると重要です。部分論理式特性が意味するのは、前提から結論を導くような証明は「不純物」(結論を導くために必要でなく、かつもとの前提にも含まれていないような論理式)が含まれていない形に変換できるということであり、これは論理的な推論に飛躍や誤魔化しが混じりこんでいないことに値します。このような観点から、「(部分論理式特性が成り立つような)正規化が可能であることは、記号体系が論理といえるための必須の条件である」と主張する人もいます。
さらに、NJの証明図に対して以下のようなよい性質が成り立ちます。これは、この後出て来る証明論的意味論とNJの関連を論じる上で重要です。
NJの任意の閉じた証明図は、最後に適用される推論規則が導入則になる形式に(有限ステップで)簡約可能である。
少しテクニカルな話が続きましたが、以上で「導入則と除去則の調和」「簡約により除去則を正当化する反転原理」という大枠をたどってきました。
しかし、これだけでは推論一般について語ることはできません。例えば、古典論理の排中律や二重否定除去則は、純粋な導入則・除去則ではありませんから、これまでの枠組みでは正しさを議論することができません。もっといえば、一般に推論規則というのは導入則か除去則の形をしている必要はありません。例えば、NKに以下の推論を「規則」として追加してもよいわけです(証明できることは増えませんが)。
というわけで、「除去則に限られない、(導入則以外の)様々な推論規則一般」の正当化について考えなければなりません。そしてそのためには、「簡約による正当化」という反転原理のアイデアを拡張して、除去則以外の推論についても議論できるようにしなければなりません。そこでいよいよ登場するのが、証明論的意味論です。
冒頭で説明した議論の流れを思い出しましょう。意味の使用説を踏まえることで、(自然言語に関する)真理条件による意味理論によって支持されるモデル論的意味論は批判されます。そうなると、その代替案となるような(論理結合子に関する)意味論を作ることが必要になる、という話の流れでした。step 2で行うのはこの作業です。ここが後編の山になります。
今回は、step 1と1.5で紹介した「推論規則による意味の規定」と「反転原理」というアイデアを実現したものとして、証明論的意味論(proof-theoretic semantics)というものを(やや厳密さには欠けますが)導入していきます。ここでの目標は、帰結関係(consequence relation)、すなわち、「
なお、先によくある誤解を解いておくと、「証明論的意味論は証明によって妥当性を決める」というのは割とミスリーディングです。こういう言い方をすると「証明可能性(
まずは非形式的な導入、それから形式的定義、という順に話を進めます。
証明論的意味論では、まず「論理式の導出」に対して妥当性が定義されます。ふつうのモデル論的意味論では「論理式」に対して妥当性が定義されることを考えると、ちょっと意外ですよね。しかし、step 1で述べた通り推論主義の立場では「推論」をベースに言葉の意味を捉えるので、ここが出発点になります。論理式レベルの妥当性は、導出に対する妥当性を基に後で定義します。
さて、ここでいう「導出」としては、いわゆる自然演繹の証明図というよりは、「正しい証明かどうかまだわかっていない証明の候補」が考えられています(だから妥当性を考えているわけですよね)。たとえば、以下のようなめちゃくちゃなものも考慮の対象です(これは最終的には妥当ではないとされることが期待される例です)。
このような一般的な証明図の概念を導出構造(derivational structure)といいます(論証(argument)と呼ぶ文献もあります)。きちんと定義するならば、導出構造は「一般化された推論規則」を任意に組み合わせたものです。ここで、一般化された推論規則とは以下のようなものです。
形式的には以下のように表現できます。
あるいは、以下のように仮定の部分をまとめると分かりやすいかもしれません。
「組み合わせる」「解消する」といったインフォーマルな言葉遣いが引っかかる方もいると思いますが、今回は大目に見てください。また、本当は仮定の解消の際には番号を振ったりしてどの仮定が解消されるかを明確にしないといけないのですが、本稿では紛らわしくない限り省略します。
なお、導出構造は一般に
先述の通り、まず導出構造に対して妥当性の概念が定義されます。そして、妥当性は導出構造の形式に関して場合分けして行われます。それぞれのケースの非形式的な説明を見ていきましょう。
step 1.5の反転原理のところで述べた通り、導入則は「自己正当化的」であり、除去則を含むその他の推論規則の正当化のベースになるような推論規則です。この構図は証明論的意味論でも変わりません。すなわち、導入則は正当化なしで「正しい」ものとして扱われます。このことを考慮して、前提を導く部分が妥当な導出構造であれば、それらに導入則をつけて新たな導出構造を構成しても妥当なままである、という風に定義します(これによって導入則の「自己正当化的」な性質を妥当性の定義に反映しようということです)。
「導入則をつけて~」という部分が今後大事になってくるので、以下のような性質を定義します。
最後に適用されている推論規則が導入則であるような導出構造を、カノニカルである(canonical)という。
上の説明をこの言葉を使って言い換えれば、「カノニカルな導出構造は、仮定の論理式に対する導出構造が妥当ならば、全体として妥当」となります。
step 1.5の反転原理のところで述べた通り、除去則を含む証明図は簡約の操作によって「正当化」されるのでした。これを導出構造に対しても拡張しましょう。すなわち、特定の形式の導出構造から別の導出構造への「書き換え」の操作を考え、カノニカルではない導出構造をこの書き換え手続きの有限回の適用で簡約することを考えます。このような一般の書き換え手続きを、以下のように定義しましょう。
導出構造から導出構造への書き換え規則であって、以下の条件を満たすものの集合を正当化(justification)という。
正当化
※定義の中で「など」と書いたのは、定義の流派による違いがありはっきりしたことが言えないからです。また、
さて、自然演繹では仮定が完全に解消されていないような演繹も許容されており、これを「開いた」証明図と言います。導出構造についても同様に「閉じた」「開いた」を考えることになります。これまで説明してきた2つのケースは、どちらも閉じた導出構造に対する定義になります。では開いた導出構造の妥当性は、どのように定義すればよいでしょうか?
ここで、解消されていない仮定を「自由変数」のようなものと見なしてみましょう。実際、仮定の部分に様々な証明図を「代入」「当てはめ」することで、例えば下図のように導出構造全体を閉じたものにすることができます(
そして、「仮定」というのは「それが正しかったら...」を考えるものであって、その正しさがどう導かれるかに関心を払うものではありません。ですから、このとき代入される導出構造に依存して妥当性が変化したら困ります。よって、開いた導出構造は、仮定の部分に 任意の 代入操作を行った結果によって正当化されることにします。
さて、ここまでの説明では命題変数が結論となる導出構造の妥当性がうまく扱えません(カノニカルな導出構造の結論は論理結合子を含んでいるからです)。これは、通常のモデル論的意味論と同様に対応することができます。すなわち、付値によって命題変数の真偽値を決めたのと同様、「どの命題変数がすでに証明されたと見なすか」を決めてしまえばよいのです。これを規定するものとして、以下のような概念を導入しましょう。
命題変数の間の推論規則の集合のことを、原子ベース(atomic basis)という。
なお、推論規則を持たない「空な」原子ベースを
モデル論的意味論で付値が「何が真か」を説明するのと同様、証明論的意味論では「何が証明できているか」を説明します。例えば
ここまでで、証明論的妥当性の「気持ち」が説明できたんじゃないかと思います。ここから、妥当性を(ある程度)形式的に定義していきます。
原子ベース
ただし、
妥当性の定義からすぐに言えることとして、
さきほど定義した妥当性は、原子ベースと正当化に対して相対的な定義でした。モデル論的意味論の妥当性の定義では「任意の付値」を考えますから、それにならって原子ベースを任意にとることにしましょう。すなわち、
導出構造
単調性より、以下のように
導出構造
そして、正当化の手続きは少なくとも1つあればよいわけですから、
導出構造
以上を踏まえて、目標であった帰結関係を考えましょう。すなわち、「
この定義は、非常に粗い言い方をすれば、「仮定に対する任意の妥当な導出構造に対して、結論に対する導出構造も妥当になる」となります。こう解釈すると、証明論的意味論における帰結関係
さすがにこれだけだと「ちょっと何言ってるのか分からん」という感じかもしれないので、一つ例を見てみましょう。やることとしては、(相互)再帰的に記述された妥当性の定義を順番にたどっていくだけです。ただ、中身の薄さのわりに長くて退屈なので、よく分らなければ(あるいは読む気が起きなければ)飛ばして先に進んでください。加えてもう一点、定義をもとに自分で書いた証明であって文献から引いたものではないので、正直自信がありません。間違いを見つけた方はコメント欄で教えていただけると幸いです。
任意の
任意の妥当な閉じた導出構造
このとき、
まず、
ここで、
以上により、
以上の長ったらしい証明のコアになるのは、以下の2つの手続きです。
余談ですが、これはなんとなく、プログラミングでいう「値呼び(call-by-value)」の評価戦略に似ているような気がします。仮定の導出構造は全体の導出構造からすればある意味で「引数」になっていて、それらを全て計算(=カノニカルなものに書き換え)してから、全体を計算しているわけですね。とすると、「導出構造の妥当性 = 評価が停止するような計算手続きをうまく与えられること」といった見方もできるかもしれないと思いました(だからなんだという話ではありますが)。
ここまでで、前編・後編にわたり、検証主義的な意味理論(推論主義)→証明論的意味論、と話を進めてきて、やっと推論規則のレベルに戻ってきました。これからすべきことは、証明論的意味論を用いて直観主義論理を擁護し、古典論理を批判することです。そしてそれは、冒頭で述べた通り、健全性定理を用いてなされます。
まず、証明論的意味論をもとに、NJの推論規則に問題がないことを確認しましょう。
証明論的意味論に対してNJは健全である。すなわち、任意の有限集合
反転原理のところでほとんど説明は済んでいるので、証明の概略だけ説明します。
証明は証明図の構成に関する帰納法によります。すなわち、それぞれの推論規則が帰結関係になっていることを示します(例えば
以下では、NJの正規化定理(定理1)における簡約手続きを
: 仮定の論理式に対する妥当な閉じた導出構造を任意にとったとき、これらを導入則で組み合わせたものは閉じたカノニカルな導出構造ですから、定義7の項2より明らかに妥当です。よって導入則は帰結関係になっています。
除去則: まず
妥当な閉じた導出構造
このとき右辺は閉じたカノニカルではない導出構造になり、定義7の項3に該当します。ここで、NJの導入形式特性(定理3)により、
最後に古典論理の推論規則を批判します。すなわち、以下を示します。
証明論的意味論に対してNKは健全ではない。すなわち、ある有限集合
排中律を反例として用います。すなわち、ある命題変数
次に、
仮定より、ある正当化
よって
このとき、
しかし、
以上より、
かなり駆け足での紹介になってしまったので、たくさん抜け落ちている話題があります。それらについて本当にさわりだけ書いておきます。
今回の議論はいくつかのレイヤーに別れていましたが、そのそれぞれについて批判・再反論を考えることができるでしょう。例えば、
などが考えられます。個人的に特に面白いと思うのは最後の議論です。例えば[大西 2012]では、自然演繹ではなくシークエント計算の体系を使うことで、古典論理を擁護するような議論が展開されています。興味がある方はぜひ。
今回は意味理論→論理的意味論→推論規則というかなり単純化した図式で話をしてしまいましたが、そもそもなぜこういう議論で推論規則が批判できたことになるのか、その根拠についてはかなりぼかしてしまいました。実はこの背景には、
といった批判があり、これらに応答する必要があります。ダメットは実際にこの論点に関する議論をしっかりやっているので、気になる方は調べてみてください([金子 2006]の3章などに詳細な説明があります)。
終盤では、証明論的意味論に対するNJの健全性定理が登場しました。となると気になってくるのは完全性定理です。これについては実はまだよく分っていません(?!)。上で紹介した妥当性は1つの流派にすぎず、その他さまざまな定式化が提案されています。[Piecha 2016]ではいくつかの証明論的妥当性の定義が紹介されていますが、完全性が成り立つものも成り立たないものもあるようです。
というわけで、どのような意味論の定式化が適切なのか、ある程度哲学的な議論も交えながら考えていかなければならず、今はまだその発展途上ということなんでしょう。完全性までちゃんと示せないんだったら、直観主義論理を正当化できたことにはならないような気もするんですが、どうなんでしょうか。また、もし仮に完全性が成り立たないとなったら、直観主義論理と古典論理の間(中間論理)にアプローチすることになるんでしょうかね?この辺は私には全然分からないです。
今回は全く触れませんでしたが、このダメットによる証明論的意味論のプロジェクトは、ある別の哲学的議論に結びついています。それは実在論(realism)に関する議論です。実在論とは、本当にざっくりと言えば、ある分野における何らかの対象が我々の認識から独立して「存在する」とする立場です(前編の「過去」に関する例でちらっと名前だけ出しました)。有名なのが数学における「プラトニズム」で、数というのは人間の活動から独立した実体だという主張がなされます。そしてこのような実在論に反対する立場が反実在論(anti-realism)です。ダメットは実在論と反実在論の論争は、その分野の言明について「言明の真偽が我々の認識とは関係なくどちらかに決まっている」という原理(二値原理(the principle of bivalence))を採用するかしないかの論争に帰着できるとし、そして一般には反実在論が正しいと主張します。この話に、検証超越的な真理概念への批判や、古典論理の推論規則への批判なんかも絡んでくるわけですが、直観主義論理そのものにはあまり関係ないので(あと私自身調べる余裕がなかったので)、これくらいの紹介にさせてもらいます。
想定の3倍くらい長い記事になってしまい、また、アドカレの記事と称しておきながら書き終わるのが1月中旬になってしまいましたが、お付き合いいただきありがとうございました。何か気づいた点などあればコメント欄やTwitter経由で伝えていただけると幸いです。特に、証明論的妥当性の形式的定義について触れている日本語の文献はほとんどなく、具体例を挙げている文献となると英語でもあまり見当たらないので(今のところSchroeder-Heisterの文献くらい)、今回書いた例や証明はどれも割と手探り状態でした。もし後から変なところを見つけたらいい感じに修正しておきます。
個人的な感想として、こうやって記事にして他人に説明するような文章を書いて、やっとダメットやプラウィッツが書いていたことの入り口にたどり着けたなという感じがしました。現段階の関心として、証明論的意味論が自然言語の形式意味論でどのように実現されるかが気になっているので(cf. 戸次先生の依存型意味論など)、その辺を視野に入れながら今後も精進していこうと思います。ではまた。