最初に明確にしておきたいのですが、私は古典論理における背理法や排中律の正しさを疑っているわけでは全くありません。
直観主義論理を擁護するとしたらこの路線かなあと思いましたので記事にしてみました。
古典論理は素朴には命題を扱う論理です。
古典論理では、命題は真であるか偽であるかが確定するものとして扱います。
むしろそれが命題の定義でもあり、命題は(真と偽の2値の)真理値の別名であるとさえ言えます。
これにより、真理表はただちに正当化されます。
例えば、「
したがって、もちろん排中律は成り立ちますし、背理法も成り立ちます。ここを疑う余地は全くありません。
命題は日本語や英語などの自然言語で記述されることがあります。
ここで重要なのは、命題は自由変数を含まないという観察です。
例えば、「自然数
「自然数
「自然数
したがって、「自然数
このように自由変数を含む主張は真偽が定まるものではないため、命題と呼ぶ代わりに命題関数と呼ばれます。
命題関数はそのすべての自由変数を何か具体的なものに置き換えたり、量化することによって命題にすることができます。
先ほどの例では
量化の例を挙げると、「すべての自然数
古典論理では命題が関心の対象なので、しばしば命題を記号化します。
例えば、「
ここから更に進んで、記号化された命題から意味を取り去り、文法だけが規定されている単なる記号列を考え、これを論理式と言います。
自由変数を含まない論理式を飽和論理式、自由変数を含む論理式を不飽和論理式と言い、意味を考えるとこれらは命題と命題関数にそれぞれ対応します。
論理式は意味を伴わない単なる構文上の式ですが、命題の
などの記号から始めて、帰納的に項、原子論理式、論理式の順に文法を定めるのが通例です。
細かい定義は省略しますが、大雑把に以下の通りです。
論理式を定義する際は、原子論理式から始めて、論理接続詞
論理式は単なる記述ですが、自由変数を含まない論理式(すなわち飽和論理式)は命題となることを意図して定義された式であり、これに真理値を割り当てることで意味論が展開されます。
真理値の集合を
飽和な原始論理式全体の集合を
を考えることができます。これは解釈関数と呼ばれます。
2つの飽和論理式
ここで重要なことは、
つまり、
あるいは次のように真理表を書くのが一般的かもしれません。
実際、
飽和論理式は真理値を割り当てることで命題の真偽の判断と対応付けることができました。
同様に、不飽和論理式は命題関数と対応します。
自由変数
唯一の自由変数
変数を含まない項
あるいは、
この意味は「すべての
仮に変数
この量化記号に関しても、先ほどの論理演算子と同じ観察が言えます。
つまり、
ここで問題になってくるのが、無限の領域に対する量化です。
最も単純な例が自然数でしょう。
真理値
自然数は無数に存在するので、すべての場合の真理値を列挙することは不可能です。
例えば、
「自然数
が成り立つ。」
という主張を
※本来はすべてを記号的に書くべきかもしれませんが、ここで論理式を書くことは話の本筋から外れるため割愛します。
この
命題ではないので
さて、ここで変数
「すべての自然数
とすればこれは古典論理の命題と言って良いでしょう。
しかし、これが真であることを示すには、
なぜならば、論理式の真理値は、その中の原始論理式に割り当てられた真理値と論理演算子の意味によって定まるからです。
もし途中で真理値
それはつまり真偽を定めることができるとは言い切れないことを意味します。この意味で
数学的帰納法を使えば良いのでは?と思われるかもしれませんが、それも上記と同じ理由で不可能です。
「すべての自然数
ここでは全称量化
恐らく、「そんなことはおかしい」と思うはずです。個別の場合を全通り確かめずとも真であることは分かるはずですね。
「すべての自然数
が成り立つ。」
という命題は、普段は無限なんて気にせずに証明しているはずですから。
そして、もちろんその通りです。この命題は無限の議論に踏み込まずとも証明できます。
証明の例を挙げます。
自然数
左辺は帰納法の仮定から
以上により、すべての自然数
ここで、証明中に自由変数
本質的に、変数
普段の数学では「すべての
この意味で、命題関数のことを自由変数命題、その証明を自由変数証明と呼ぶことができるでしょう。
私たちは普段、
そして、その自由変数命題が成り立つかどうかというのは、その自由変数
さて、古典論理に戻りましょう。
無限の領域に量化された命題を考える上で、自由変数命題(命題関数)やその自由変数証明という考え方が重要であることが分かりました。
しかし、古典論理で真理値を割り当てられるものはあくまでも命題であり、自由変数命題ではありません。
意味論のおさらいで何度か述べたように、飽和論理式
この意味で、量化された命題を古典論理で扱うときは、その領域は有限でなければならないと言えるでしょう。
これはつまり、例えば「すべての自然数について……」という命題を扱うことができないということです。少なくとも議論を正当化できません。(あるいは古典論理に依拠しないメタ的な視点での正当化が必要)
かなり不便なことですが致し方ありません。どこかに良い解決方法は無いものか……
そこで現れるのが直観主義論理です。
直観主義論理では「命題とは真であるか偽であるかが定まるものである」という真理値としての命題の定義を捨て、その代わりに「命題とはそれが真であるかどうかを判断できるものであり、命題が真であるとはその証明を実際に構成して説明できることである」というように定義します。
もちろん、この後には証明の構成とは何か?という説明が必要ですが今回は割愛します。
これにより何が変わるかと言うと、命題には真偽を定めなければならないという古典論理の制約が無くなるため、自由変数命題も命題として扱うことができるようになります。つまり、"自由変数命題が真である"ということを議論できるようになります。
そして、自由変数命題の証明とはまさしく自由変数証明のことです。
このように、構成の観点から普段私たちが数学をする際に行っている無限の領域に対する量化を正当化することができます。
ただし、古典論理を捨てる代償もあり、直観主義論理の命題の定義では「命題の真偽が定まる」とは限らなくなってしまうため、特に命題の否定の意味が古典論理から大きく変わってしまいます。
これにより、古典論理では"命題の定義より明らか"であった排中律であったり背理法であったりが一般には成り立たなくなる……というのは有名な話です。
しかし、排中律を捨てるか無限領域での量化を捨てるかを選ぶとすれば私は前者を選ぶでしょう。