「論理的であるかのごとくに装って、根拠のないイチャモンをつける 13+2 の方法」は、当初の企画としては、割と真面目に論理(ロジック)の話をするつもりだったのですが、面倒になって論理的背景はほとんど入れませんでした。
最後に次のような言い訳を書いていますね(苦笑)。
形式的・教科書的な説明を書くのはちょっとシンドイなー、ということでこんなオチャラケたモノを書いてしまいました。このエントリーで挙げたテクニックは、論理的にはまったく正当化されません。そのことを理解するには、本来の論理についてある程度は知っておく必要があります。
ここで、「1. 定義の違いを真偽の議論にすり替える」の背景となっている論理の話を少しします*1。
最初に注意しておくと; 形式的な論理と自然言語では事情が違うので、「形式論理ではこうです」ってのがただちに自然言語による対話や議論に当てはまるとは限りません。しかし、多少の参考にはなるでしょう。
形式的な論理体系では、言葉(定数項や述語記号)を定義しても、その形式的体系の能力に何の影響もありません。定義をたくさん導入した後で、それらの定義を駆使して証明した命題は、追加の定義が一切無い元の体系でも証明できます。
高級言語でプログラミングして出来る計算は、機械語だけでも書けるようなものです。あるいは、(let x := E in F) というlet式を考えてください。このlet式は、事前にxを定義してそれから(xを含む)式Fを評価しますが、実際は (λx.F)・E と同じです。(λx.F)・E ⇒ F' とベータ変換してみれば、F'にはxが含まれないので、xを定義する x := E はなくてもよいのです。
これでだいたい、定義の仕方が真偽(より正確には証明可能性)に影響することはないのが分かると思います。定義に真も偽もないのです。
では、定義の意義や妥当性が議論の対象にならないかというと、もちろんそうではありません。定義が「分かりやすい/分かりにくい」とか「使い勝手がいい/悪い」といった評価はあります。現実の世界と照らし合わせての妥当性、既に存在する定義や常識との整合性なども定義の良し悪しに関係します。ですが、今述べたような評価の基準を正確に述べることは困難です。
定義に真偽はないのですが、異なった2つの定義を同時に使うと変なことになります。例えば、「大きい数」という整数に関する述語を次の二通りに定義したとしましょう。
- 大きい数(n) := (n > 100)
- 大きい数(n) := (n > 5000)
「大きい数(200) ∧ ¬(大きい数(200))」という命題において、左側の「大きい数」を1番目の定義で解釈し、右側の「おおきい数」を2番目の定義で解釈すれば、見かけ上は矛盾の形「A ∧ ¬A」になります。同じ言葉(この場合は述語記号)に異なった2つの定義を与えた段階で既に破綻していて、その後の推論は何の意味もありません。
以上から言えることは、自分と相手の定義が違うときは、そもそも「ハナシが通じない」ということですね。定義に食い違いがあるときは、「多数派の定義を採用すべし」という方針は割といいと僕は思っています。が、「多数派」がハッキリしないこともあります。
いずれにしても、定義を合意しないかぎりは議論が成立しませんし、「どっちの定義がより妥当か」*2という議論も、往々にして不毛で無意味となるようです。
[追記]以上で話題にした「定義」とは、論理の構文におけるマクロ定義とマクロ展開のようなものです。意味論には言及していません。意味領域と意味割り当てを考えるなら、論理式Pにより {x∈D | P} のような形で領域Dの部分集合を「定義」できます。この場合は、項や命題に名前を与えるのではなくて、論理式が実体を「定義する」ことになります。日常における「定義する」には何らかの意味論が含まれますね。[/追記]