論理学のための人口言語ℒをつくる【論理学をつくる #2】
(2023.9.28 4:15 テキストのリンクを追加)
読んでいるテキストはこちら。
ちょっと別のことを考えていて、そういえばと気づいたときには1週間以上開いてしまっていました。無念。
先ず、簡単に前回の復習から。
➀論理学の主たる課題は、論証の妥当性validityとはなにか?
②論理学においては、具体的内容contentではなく形式formにのみ注目する(このとき論理定項に注意する)
§2.1 自然言語→人工言語
§2.1.1 人口言語Lを用いるモチベづくり
早速だが、以下のstatementを見てみよう。これらは全て自然言語natural languageで書かれている。
例4ー1.
A:全ての人間は唐揚げを愛している。
B:唐揚げは、全ての人間に愛されている。
例4-1.は(日常的な感覚からして)正しい。このように2つの命題が互いに一方からもう一方が出てくるとき、これを論理的に同値という。ということは、次のような論理が立つと仮定しよう。
[仮定]
以下の2つの形式を持つ命題は(論理的に)同値である
(1) ○は×を~している
(2) ×は○に~されている
ここで、次のような例を考えてみよう。
例4ー2.
C:全ての人間は、誰かを愛している。
D:誰かは、全ての人間に愛されている。
これらは、同じことを言っているだろうか。[仮定]に拠れば、(1)と(2)の形式を満たしているので、論理的に同値であるはずである。
しかし、日常的な感覚からして間違っていることはすぐに分かる。
このように、自然言語を使う際には、なかなか体系的な理論を立てていくのは大変である。
そこで、論証の妥当性を組み立てていく上で都合の良い性質だけを持った言語を作ってしまえばよい、と考えてみよう。
それが人工言語artificial languageである。
このテキストで使う人工言語はℒと呼ぼう。
我々の目下の目標は、この人工言語Lの語彙と文法を定めることである。そしてそれは、あらゆる論証に耐えうる普遍的なものでなくてはならない。
§2.2 人工言語ℒの定義
人工言語Lの定義をしていこう。
つまり、
§2.2.0 syntaxとsemantics
テキストだと、第2章の一番最後に書かれている内容。
しかし、始めに断っておいた方が見通しがよくなると思ったので、ここで紹介しておく。
以下、syntaxの観点から論理式formulaを定義する。つまり(無機的な)文字の並びとして「論理式」を特徴づけるのがsyntaxである。
また、それがunique(一意的)に読めるとはどういうことを考えるのが目下の課題である。
一方で、次の第3章で扱うのがsemanticsであり、これは意味論と云う。
つまり、「→」に「ならば」、「∧」に「かつ」、「∨」に「または」、「¬」に「~でない」のような真理値の対応を与えるのが次回の内容となる。
§2.2.1 語彙と文法
数学でよくある話だが、定義や定理としては2つの要素間(2項間)で成り立つことを云っておいて、実用的にはその2つの要素に更に2項間、3項間の演算の結果等を代入することで普遍的な定義・定理として成立している、ということである。
このような定義法を帰納的定義inductive definition/回帰的定義recursive definitionと呼ぶ。
このような定義方法を用いることで、(数学的)帰納法という強力な証明法を使うことができる。
これは、[Basis] (k=1で示す)、[Induction Step] (k=nからn+1を示す)に分けられる。
○ メタ論理的変項meta-logical variableの説明について
ちょっと細かい話なのだが、論理的変項の「的」の部分について。
先に、logical constantを論理定項と訳していたので、この記事では「メタ論理変項」に統一しておこうと思う。
最初、上の人口言語ℒの定義と文法を眺めていて特に違和感を持たなかったのだが、テキストでページの半分を使って断ってあったので、何を言っているのか一応注意しておこうと思う。
「メタ」というと、俗には「メタいことを言う」のように使う。
これが意味するのは、例えば漫画ならば作者目線、つまり作品の設定を突くような発言、といった具合だろう。
今回のℒについていえば、この人工言語の設定、つまりℒの語彙や文法についての言及、とでも解釈できようか。
よくよく考えると、ℒの文法の(2)に出てきたA, Bとは我々の口から「論理式」であると定義したことで、語彙の(1)で出てきた原子式(=論理式)のことだと分かるのである。
要は、この言語体系に無い語彙のことをメタ変項と云っている。
よくある説明としては、この人工言語を説明するための言語、だろうか。
だったら、文法(1)の要素について、とか言えばいいように思うのだが、それだと広がりが無くなってしまうのは容易に分かる。
もし、文法の(2)が以下のように書かれていたとしよう。
(2) (1)の原子式を組み合わせてできる (P∧Q), (P∨Q), (P→Q), (¬P)はおのおの論理式である。
これはどうだろうか。すると、この定義では原子式以外の論理式は全部で4種類しかできないことになる。
原因は明白で、(2)は論理結合子で論理式を繋いで論理式ができることを言うわけだが、そもそも繋ぐことができる論理式のバリエーションが原子式しかない、と限定しているからである。
つまり、帰納的定義が破綻している、ということである。
§2.2.2 論理式の( )の数 帰納法を用いた証明
さて。§2.2.1で、人口言語ℒに対して特別に定義したもののみが「論理式」と呼ばれる。
こうして用意した論理式に対して、以下の性質が成り立つ。
☆論理式は帰納的に定義されているので、これに対して成り立つ性質は帰納法を用いて証明することができる。(方針)
(証明)
以下、右カッコの数をR, 左カッコの数をLと置く。また、論理式Aについてその個数をR[A] = L[A] = 0と書くことにする。
[Induction Step]
A, Bを論理式とする。これらについてR[A] = L[A], R[B] = L[B]を仮定する。
これらからできる論理式は(A∧B), (A∨B), (A→B), (¬A)。
(i) (A∧B)について
R[(A∧B)] = R[A] + R[B] +1。L[(A∧B)] = L[A] +L[B] +1。
仮定からR[A] = L[A], R[B] = L[B]なので、
R[(A∧B)] = R[A] + R[B] +1 = L[A] +L[B] +1 = L[(A∧B)]。
(ii) (A∨B)について
R[(A∨B)] = R[A] + R[B] +1。L[(A∨B)] = L[A] +L[B] +1。
仮定からR[A] = L[A], R[B] = L[B]なので、
R[(A∨B)] = R[A] + R[B] +1 = L[A] +L[B] +1 = L[(A∨B)]。
(iii) (A→B)について
R[(A→B)] = R[A] + R[B] +1。L[(A→B)] = L[A] +L[B] +1。
仮定からR[A] = L[A], R[B] = L[B]なので、
R[(A→B)] = R[A] + R[B] +1 = L[A] +L[B] +1 = L[(A→B)]。
(iv) (¬A)について
R[(¬A)] = R[A] + 1。L[(¬A)] = L[A] +1。
仮定からR[A] = L[A]なので、
R[(¬A)] = R[A] + 1 = L[A] +1 = L[(¬A)]。
[Basis]
原子式Pは、カッコを一つも持たない。即ち、R[P] = L[P] = 0。
以上より、帰納法が閉じて題意は満たされた□
上の証明では、2項間演算∧∨→に対して別個に証明を入れたが、関係Rを入れて「ARB」に対して…のようにまとめて証明してしまってよいと思う。
まあ、最初なので多少はね?
§2.3 Unique Readability Theorem
この節では、論理式がuniqueに定まることを示したい。
これを、テキストではUnique Readability(論理式がただ1通りにしか読めない)と表現している。
§2.3.1 始切片
先ず、始切片initial segmentを定義する。
定義 (始切片)
1つの論理式Aの左端から途中までの記号を残し、それより右側の全ての記号を捨てて作られる文字列を、始切片と呼ぶ。
但し、原子式については始切片は存在しないとする。
例
((P∨Q)→R)に対して、右側から徐々に文字数を減らしていけばいいので、全部で8つの記号を消せるので8通りある。((P∨Q), ((P∨Q, ((P∨など。
ここで、簡単のために以下の表現を導入しておこう。
[論理式Aが左利きである]
⇔[論理式Aのどの始切片も、右カッコより左カッコの数の方が多い]
(証明)
[Induction Step]
論理式A, Bが左利きであると仮定する。
(i) (A∧B)について
(A∧B)の始切片は、(A∧B, (A∧B, (A∧, (A, (の4パターンに、A, Bの始切片A', B'を含む(A∧B', (A'を併せた6パターンである。いずれの場合も左利き。
(ii) (A∨B)について
(A∨B)の始切片は、(A∨B, (A∨B, (A∨, (A, (の4パターンに、A, Bの始切片A', B'を含む(A∨B', (A'を併せた6パターンである。いずれの場合も左利き。
(iii) (A→B)について
(A→B)の始切片は、(A→B, (A→B, (A→, (A, (の4パターンに、A, Bの始切片A', B'を含む(A→B', (A'を併せた6パターンである。いずれの場合も左利き。
(iv) (¬A)について
(¬A)の始切片は、(¬A, (¬, (の3パターンに、Aの始切片A'を含む(¬A'を併せた4パターンである。いずれの場合も左利き。
[Basis]
原子式は始切片を持たないから、左利きである。(*)
以上より、帰納法が閉じて題意は示された□
*について
テキストで特別に細かく書いてあったが、妙に持って回った言い方になってしまっていた。
命題論理を用いれば結構すっきり書けそう。というので、書いてみた。
(証明) ←テキストのものではないです。
元の主張(命題)は、
任意の論理式Aに対して, 任意の文字列PがAの始切片ならば、Pは左利き
である。
さて、原子式は始切片を持たないのだからそもそもの仮定が間違っているので恒真□
証明、というほどでもないが一応書いておく。定理、というほどのものではなく、系であろうが…
(証明)
定理1から、任意の論理式は、同じ数の右カッコと左カッコを持つ。
一方定理2から、始切片は右カッコの数と左カッコの数が異なる(右カッコより左カッコの方が多い)と分かるので、定理1より始切片は論理式ではない□
§2.3.2 論理式のunique性
意味が分かる場合、ちょっとお気持ちで省略して次のような文字列を論理式としてしまうことがある。いやねーよ定義に従って書いたらこんなのありえないし
(P∧Q→P∨R)
これは、心優しい思いやりに満ち溢れた人からすると、((P∧Q)→(P∨R))なのかな、と思う。
しかし、きちんとここまでの人口言語のマニュアルに沿って勉強してきた人は、(P∧(Q→P)∨R)のように読んでもカッコの数は同じなので論理式となって、複数の解釈が生じていることに気づく。
例えば、
➀ ((P∧Q)→(P∨R)) S→T
② (((P∧Q)→P)∨R) U∨R
③ (P∧(Q→(P∨R))) P∧V
のような読み枠が考えられる。
ここで、論理式Aの長さを#Aと書くことにすると、明らかに
#S ≠ #U, #T ≠ #R, …
である。
我々がここまでに用意してきた論理式(文字列のルール)は、このように複数の読み方が生じないようになっていたことに気づく。それが、以下の定理である。
以下出てくる「=」は論理式が等しい、というだけでなく、もっと広範に文字列として同等、という意味合いで用いていることに注意したい。
(証明)
以下のサイトの証明に感銘を受けました。テキストそのままの証明は、急に行間が広くなっていて分かりづらかったです…
https://anoanop.hatenablog.com/entry/2022/02/02/180554
§2.3.3 論理式の( )の省略についての取り決め
論理式の( )の数については、§2.2.2で記した。
しかし、実際にできた論理式と呼ばれる特別な文字列を眺めていると、どうにも無駄があるように思える箇所がある。
それは、
➀一番外周の右カッコと左カッコ
②特に、否定詞が付いてできた論理式の右カッコと左カッコ
の2つである。
これらについては、特別に省略してもよいものとしよう。こうしても論理式の性質の一つであるカッコの数は変わらない。
こうすることで、だいぶ論理式が見やすくなる。
以上で、第2章の内容は終わりです□