2

私が直観主義論理を擁立するたった1つの理由

1790
0

本題に入る前に

最初に明確にしておきたいのですが、私は古典論理における背理法や排中律の正しさを疑っているわけでは全くありません。
直観主義論理を擁護するとしたらこの路線かなあと思いましたので記事にしてみました。

古典論理とは?

古典論理は素朴には命題を扱う論理です。
古典論理では、命題は真であるか偽であるかが確定するものとして扱います。
むしろそれが命題の定義でもあり、命題は(真と偽の2値の)真理値の別名であるとさえ言えます。
これにより、真理表はただちに正当化されます。
例えば、「Pでない」が偽のとき、「Pである」は真です。
したがって、もちろん排中律は成り立ちますし、背理法も成り立ちます。ここを疑う余地は全くありません。

命題は日本語や英語などの自然言語で記述されることがあります。
ここで重要なのは、命題は自由変数を含まないという観察です。

例えば、「自然数nは偶数である」というのは古典論理の命題ではありません。
「自然数2は偶数である」は命題で、これは真ですし、
「自然数9は偶数である」も命題で、これは偽です。
したがって、「自然数nは偶数である」というのはnの値によって真にもなりますし、偽にもなります。
このように自由変数を含む主張は真偽が定まるものではないため、命題と呼ぶ代わりに命題関数と呼ばれます。

命題関数はそのすべての自由変数を何か具体的なものに置き換えたり、量化することによって命題にすることができます。
先ほどの例ではn29といった具体的な数を代入して命題にしました。
量化の例を挙げると、「すべての自然数nについてnは偶数である」というのは命題です。それは偽であり、その反例はn=1です。

古典論理では命題が関心の対象なので、しばしば命題を記号化します。
例えば、「PかつQ」をPQ、「すべてのxについてP(x)が成り立つ」をx.P(x)などと書き、すべての命題を記号で記述します。
ここから更に進んで、記号化された命題から意味を取り去り、文法だけが規定されている単なる記号列を考え、これを論理式と言います。
自由変数を含まない論理式を飽和論理式、自由変数を含む論理式を不飽和論理式と言い、意味を考えるとこれらは命題と命題関数にそれぞれ対応します。

構文論おさらい

論理式は意味を伴わない単なる構文上の式ですが、命題の

  • 変数x,y,z,
  • 関数f,g,h,(引数の個数n0がそのそれぞれに予め定められている)
    • 引数の個数0の関数を定数と呼ぶ。
  • 述語P,Q,R(引数の個数n0がそのそれぞれに予め定められている)

などの記号から始めて、帰納的に項、原子論理式、論理式の順に文法を定めるのが通例です。

細かい定義は省略しますが、大雑把に以下の通りです。

  • 項は(述語を使わずに形成される)文法的に正しい式のことです。
    • 数論で言えば42n5×83(m+4)などが該当します。
  • 原子論理式は(後で)命題や命題関数として意味を持たせられる最小の式のことです。
  • 論理式は(後で)命題や命題関数とする式のことです。

論理式を定義する際は、原子論理式から始めて、論理接続詞¬,,,や量化記号,で組み合わせることで帰納的に定義されます。

意味論おさらい

論理式は単なる記述ですが、自由変数を含まない論理式(すなわち飽和論理式)は命題となることを意図して定義された式であり、これに真理値を割り当てることで意味論が展開されます。

真理値の集合を2={T,F}とします。
飽和な原始論理式全体の集合をSatAtomとすると、飽和な原始論理式ϕを命題として解釈してその真理値を割り当てる関数

I:SatAtom2

を考えることができます。これは解釈関数と呼ばれます。

2つの飽和論理式ϕψについて、構文的な定義によりϕψも飽和論理式になりますが、これにも真理値を割り当てることができるべきです。
は「かつ」を表したいので、例えばI(ϕ)=T,I(ψ)=TのときはI(ϕψ)=Tとしたいです。
ここで重要なことは、I(ϕψ)の値は真理値I(ϕ)I(ψ)にのみ依存すべきであって、論理式ϕψそのものがどのように形成されているかに直接依存すべきでないという観察です。
つまり、の意味の解釈^と言うのは、単に2つの真理値の直積から真理値への関数と見なせるべきです。

^:2×22

T ^ T=TT ^ F=FF ^ T=FF ^ F=F

あるいは次のように真理表を書くのが一般的かもしれません。

ϕψϕψTTTTFFFTFFFF

実際、(「または」を表す記号)などの他の論理演算子も同様に、真理値を使ってその解釈が定義されます。

命題関数と量化

飽和論理式は真理値を割り当てることで命題の真偽の判断と対応付けることができました。
同様に、不飽和論理式は命題関数と対応します。

自由変数xを含む論理式ϕに対して、そのxに項tを代入した後の論理式をϕ[x:=t]で表すこととします。

唯一の自由変数xを含む不飽和論理式ϕがあるとします。(変数x自体は複数個含んでいても良いが、変数の種類としてはxただ1種類という意味)
変数を含まない項tで代入すると、ϕ[x:=t]は飽和論理式になるので真理値を割り当てることができます。
あるいは、で束縛すると飽和論理式x.ϕになります。
この意味は「すべてのxについてϕである」です。

仮に変数xの動く範囲が項a,b,cの3つだったとすると、以下の真理表を書くことができます。

ϕ[x:=a]ϕ[x:=b]ϕ[x:=c]x.ϕTTTTTTFFTFTFTFFFFTTFFTFFFFTFFFFF

この量化記号に関しても、先ほどの論理演算子と同じ観察が言えます。
つまり、I(x.ϕ)の値は真理値I(ϕ[x:=a]),I(ϕ[x:=b]),I(ϕ[x:=c])にのみ依存すべきであって、論理式ϕそのものがどのように形成されているかに直接依存すべきでないということです。

本題

無限領域の量化

ここで問題になってくるのが、無限の領域に対する量化です。
最も単純な例が自然数でしょう。

真理値I(x.ϕ)を考える際に、先ほどはxが取り得る値が3通りである場合を具体的に考察しましたが、xが例えば自然数全体を動く場合はどうでしょうか。
自然数は無数に存在するので、すべての場合の真理値を列挙することは不可能です。

例えば、

「自然数nについて

1+2++n=n(n+1)2

が成り立つ。」

という主張をP(n)とします。
※本来はすべてを記号的に書くべきかもしれませんが、ここで論理式を書くことは話の本筋から外れるため割愛します。
このP(n)は自由変数nを含むので命題関数です。
命題ではないのでP(n)に真理値が定まるわけではありませんが、nが何か具体的な自然数に定まればそれは命題になって真理値が定まります。

さて、ここで変数nを全称量化して、

「すべての自然数nについてP(n)が成り立つ。」

とすればこれは古典論理の命題と言って良いでしょう。

しかし、これが真であることを示すには、P(1),P(2),P(3),の真理値を個別に求めるしかありません。
なぜならば、論理式の真理値は、その中の原始論理式に割り当てられた真理値と論理演算子の意味によって定まるからです。
もし途中で真理値Fが出ればこの手続きを切り上げて、n.P(n)は偽であると結論付けることができますが、(皆さんご存じの通り)この命題は真ですので、この手続きは無限に続くことになります。
それはつまり真偽を定めることができるとは言い切れないことを意味します。この意味でn.P(n)は常に古典論理の命題であるとは限りません。

数学的帰納法を使えば良いのでは?と思われるかもしれませんが、それも上記と同じ理由で不可能です。
「すべての自然数nについてP(n)P(n+1)」が成り立つことを示そうにも、結局P(1)P(2),P(2)P(3),の真理値を個別に求める羽目になります。これは終わりません。

ここでは全称量化x.ϕを例に挙げましたが、存在量化x.ϕでも同じことが言えます。(そのようなxが存在しない場合は無限ループに陥る)

普段の数学では

恐らく、「そんなことはおかしい」と思うはずです。個別の場合を全通り確かめずとも真であることは分かるはずですね。

「すべての自然数nについて

1+2++n=n(n+1)2

が成り立つ。」

という命題は、普段は無限なんて気にせずに証明しているはずですから。
そして、もちろんその通りです。この命題は無限の議論に踏み込まずとも証明できます。

証明の例を挙げます。

nについての数学的帰納法により示す。
n=1のとき、左辺は1であり、右辺は1(1+1)2=1であるのでP(1)は成り立つ。
自然数kについてn=kのときP(k)が成り立つと仮定すると、n=k+1のとき
左辺は帰納法の仮定から1+2++k+(k+1)=k(k+1)2+(k+1)=(k+1)(k+2)2であり、右辺は(k+1)((k+1)+1)2=(k+1)(k+2)2であるのでP(k+1)は成り立つ。
以上により、すべての自然数nについてP(n)は成り立つ。

ここで、証明中に自由変数kが登場していることに気づくでしょうか。
本質的に、変数kをわざわざ用意せずとも、変数nのまま議論できるはずです。
普段の数学では「すべてのxについてP(x)が成り立つ」と言うときに、その個別の事例a,b,c,についてP(a),P(b),P(c),の真偽を逐一確認しているわけではなく、単に自由変数を含む命題関数P(x)に対して証明を考えているわけです。

この意味で、命題関数のことを自由変数命題、その証明を自由変数証明と呼ぶことができるでしょう。
私たちは普段、x.P(x)という命題に取り組む際は、個別の命題P(a)に対してではなく、自由変数命題P(x)に対して"成り立つかどうか"を考えています。
そして、その自由変数命題が成り立つかどうかというのは、その自由変数xを何か具体的な項に代入して命題P(a)を作るときに、任意の項aで代入してもP(a)が成り立つことが分かることを言います。

古典論理に戻って

さて、古典論理に戻りましょう。

無限の領域に量化された命題を考える上で、自由変数命題(命題関数)やその自由変数証明という考え方が重要であることが分かりました。
しかし、古典論理で真理値を割り当てられるものはあくまでも命題であり、自由変数命題ではありません。

意味論のおさらいで何度か述べたように、飽和論理式ϕに対する真理値の割り当ては、ϕの構文的な形式ではなく、その中の原始論理式に割り当てられた真理値および論理演算子の意味にのみ依存しなければならないからです。
ϕの構文的な形式に依存してはならないという制約のため、古典論理で自由変数命題が成り立つかどうかという議論を正当化することはできません。
この意味で、量化された命題を古典論理で扱うときは、その領域は有限でなければならないと言えるでしょう。
これはつまり、例えば「すべての自然数について……」という命題を扱うことができないということです。少なくとも議論を正当化できません。(あるいは古典論理に依拠しないメタ的な視点での正当化が必要)
かなり不便なことですが致し方ありません。どこかに良い解決方法は無いものか……

直観主義論理

そこで現れるのが直観主義論理です。

直観主義論理では「命題とは真であるか偽であるかが定まるものである」という真理値としての命題の定義を捨て、その代わりに「命題とはそれが真であるかどうかを判断できるものであり、命題が真であるとはその証明を実際に構成して説明できることである」というように定義します。
もちろん、この後には証明の構成とは何か?という説明が必要ですが今回は割愛します。

これにより何が変わるかと言うと、命題には真偽を定めなければならないという古典論理の制約が無くなるため、自由変数命題も命題として扱うことができるようになります。つまり、"自由変数命題が真である"ということを議論できるようになります。
そして、自由変数命題の証明とはまさしく自由変数証明のことです。
このように、構成の観点から普段私たちが数学をする際に行っている無限の領域に対する量化を正当化することができます。

ただし、古典論理を捨てる代償もあり、直観主義論理の命題の定義では「命題の真偽が定まる」とは限らなくなってしまうため、特に命題の否定の意味が古典論理から大きく変わってしまいます。
これにより、古典論理では"命題の定義より明らか"であった排中律であったり背理法であったりが一般には成り立たなくなる……というのは有名な話です。
しかし、排中律を捨てるか無限領域での量化を捨てるかを選ぶとすれば私は前者を選ぶでしょう。

投稿日:2022214
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。
バッチを贈って投稿者を応援しよう

バッチを贈ると投稿者に現金やAmazonのギフトカードが還元されます。

投稿者

E
5
3888

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中
  1. 本題に入る前に
  2. 本題
  3. 直観主義論理