論理的思考とは何か【前提編】
ビジネスでよく使われる「論理的思考」という言葉があります。しかしその出現頻度の割には「論理的思考」がどういうものかの定義や、論理的思考の持つ特徴について詳しく語られているシーンは多くありません。
今回はそのあたりのモヤッとしたものをできるだけクリアにするべく前提編(本記事)と本編に分けてお届けします。
まずはWikipediaのロジカルシンキングのページに良い説明があったので引用します。
ロジカルシンキング(logical thinking)とは、一貫していて筋が通っている考え方、あるいは説明の仕方のことである。日本語訳として論理思考あるいは論理的思考と置き換えられることが多い。日本で育まれており、論理学に由来する考え方や、コンサルティング業界に由来する考え方に分かれる。
この記事では上記Wikipediaの説明における、前者、論理学に由来する論理的思考の考え方について説明したいと思います。
後者のコンサルティング業界に由来する考え方については、私自身コンサルタントの方が書かれたロジカルシンキングの本をこれまでに相当数読んできました。
が、未だに彼らの言う論理的思考がどういうものなのか十分に理解できずにいます。なので当分語ることはできないものと思っています。
この記事でカバーすること
この記事は論理的思考についての前提編です。「論理的思考とは?」という論点に対して解答するために前提となる以下の概念を説明します。
- 命題
- 論理演算子
- 真理値表
- 命題の証明方法
なんだか難しい言葉が並んでいるように見えるかもしれませんが、非常にシンプルな話なので最後までお付き合いいただければと思います。
命題 (Statement)
まずは基本となる「命題」という概念について説明します。
論理学的に正確ではありませんが、この記事では「命題」を真(True)または偽(False)のどちらか一方の値を取る文章と定義します。
この時、命題の取る(真か偽どちらかとなる)値のことを、命題の真理値(Truth Value)と呼びます。
以下の例は命題です。
- 私は人間である。
- カエルは人間である。
- 全ての人間は、生物だ。
なぜなら、上記の例は全て真偽のどちらか一方の値を取るからです。
常識的に考えると、最初の命題の真理値は真で、二番目は偽、三番目は真でしょう。
ここで感の良い方は気づいたかもしれませんが、命題の真偽を判定するためには、命題内で使われている言葉が不備なく定義(well-defined)されている必要があります。
しかし言葉を厳密に定義するのは、日常やビジネスのシーンでは限界があるため、この記事で定義に不備がない(well-definedである)ことを厳密に求めることはしません(私のさじ加減で、ある程度は求めます。)。
上記の例でも「人間とは?」とか「生物とは?」と問うことはできますが、厳密な定義ができるかというと、私には無理なので常識の範囲内で説明します。その分厳密さは落ちますが、まぁ問題ないでしょう。
次に命題ではない文章を紹介します。
- あっ!犬だ!
- まだ東京で消耗してるの?
- I am a voxellhe.
1つ目の例は命題ではありません。単純に真偽どちらも持ちません。
2つ目の例は疑問形です。この疑問系の「答え」はYESかNOを取ります。つまり真偽を持つと言えます。
なので2つ目は命題だと思われがちですが、「疑問系で表現された文章自体」の真理値を評価することはできません。よって命題ではありません。
3つ目の例は命題に見えます。しかし、命題内にある"voxellhe"という単語は私が勝手に作り上げた単語です。なので辞書に存在せず、意味がわかりません。
文章内の言葉の定義に不備があると、文章の真理値が真なのか偽なのかを判別することはできません。よってこの例も命題ではありません。
論理演算子 (Logical Connectives)
さて、命題について紹介しました。命題は論理を構成するための最小単位です。物質における原子のようなものです。
この章では命題をいくつかつなぎ合わせて、新しい命題を作る方法を紹介します。
ある命題と別の命題は論理演算子というものを使って組み合わせ、別の新たな命題を作ることができます。ここでは4つの演算子を紹介します。
4つの論理演算子
演算子名 | 言葉 | 記号 |
---|---|---|
否定 (negation) | ...でない (not ...) | ¬ |
論理積 (conjunction) | および (and) | ∧ |
論理和 (disjunction) | または (or) | ∨ |
論理包含 (implication) | もし...ならば... (if..., then...) | → |
仮に、p を「私は人間である」という文、q を「彼は人間である」という命題とした場合、上記の論理演算子を使うと以下のように表すことができます。
- ¬p = 「私は人間ではない」
- p ∧ q = 「私は人間である、かつ彼は人間である」
- p ∨ q = 「私は人間である、または彼は人間である」
- p → q = 「もし私が人間であるならば、彼は人間である」
※ p → q において、p を十分条件、q を必要条件と呼びます。
こうした論理演算子を含む命題を複合命題と言います(分子命題とも呼ばれます)。
また、論理演算子を含まない命題を原子命題と言います。
論理演算子は物質における電子みたいなものですね。
真理値表 (Truth Table)
さて、ここまでで命題の概念を説明し、2つの原子命題を論理演算子を使い複合命題を作ることができるという、言わば論理の形式についての説明をしてきました。
ここからは命題の正しさについての説明に入ります。
否定 (Negation)の真理値
否定命題 ¬p の真理値は以下のように定義されます。
pの真理値 | ¬pの真理値 |
---|---|
T | F |
F | T |
命題の定義から、命題 p の取りうる真理値は真(T)か偽(F)の2つのうち、どちらか一方のみとなります。
¬p の真理値は p が T の時には F 、p が F の時に T を取るように定義されています。
例えば、p が 「私は人間です」という原子命題の場合、¬p は「私は人間ではありません」となります。
この時、「私が人間です」が真である場合、「私は人間ではありません」は偽になるということです。
ちなみにこの表を真理表と呼びます。
また、複合命題の真理値から、その構成要素である原子命題の真理値を知ることができます。後で説明しますが、実はこの性質が非常に便利なのです。
¬p の真理値からわかること
- ¬p が真であることがわかると、p が 偽であることがわかる。
- ¬p が偽であることがわかると、p が 真であることがわかる。
論理積 (Conjunction)の真理値
論理積の真理値は次のように定義されます。
論理積は2つの命題で構成されますので、4つのパターンが存在します。
p の真理値 | q の真理値 | p ∧ q の真理値 |
---|---|---|
T | T | T |
T | F | F |
F | T | F |
F | F | F |
論理積 p ∧ q は p と q の両方が真の場合のみ真を取ります。
p,q のうちいずれか一つでも偽である場合、 p ∧ q は F になるように定義されています。
p ∧ q の真理値からわかること
- p ∧ q が真であることがわかると、p と q の両方が真だとわかる。
- p ∧ q が偽であることがわかっても、p と q の真理値については何もわからない。
論理和 (Disjunction)の真理値
論理和の真理値は次のように定義されます。
p の真理値 | q の真理値 | p ∨ q の真理値 |
---|---|---|
T | T | T |
T | F | T |
F | T | T |
F | F | F |
こちらは論理積とは逆のパターンで「p か q のどちらか一方でも真の場合、p ∨ q は真」を取るように定義されています。
p,q 両方が偽である場合は、p ∨ q も偽となります。
p ∨ q の真理値からわかること
- p ∨ q が真であることがわかっても、p,qの真理値については何もわからない。
- p ∨ q が偽であることがわかると、p と q の両方が偽だとわかる。
論理包含 (Implication)の真理値
論理包含 p → q の真理値は次のように定義されています。
p の真理値 | q の真理値 | p → q の真理値 |
---|---|---|
T | T | T |
T | F | F |
F | T | T |
F | F | T |
p → q は p が偽のときは必ず真というように定義されています。
p が真の場合には二通りの値を取りえます。
- q が真ならば、p → q は真
- q が偽ならば、p → q は偽
p が偽の時 p → q が必ず真になることについては直感的ではありません。この問題についての解説は補足の章で行います。
今はこの点については目をつぶり「p → q はこのように定義されているのだ」という理解をしていただければと思います。
※ 「p が偽の時には p → q が真であるとも、偽でもあるとも言えない」と思うのは私だけではないはず…。
p ∨ q の真理値からわかること
- p → q が真かつp が真とわかれば、qが真だとわかる。
- p → q が偽かつp が真とわかれば、qが偽だとわかる。
命題の証明方法
それでは、4つの論理演算が真であることの証明方法を見ていきます。
真理値表をまとめたものを記載しておきます。
p | q | ¬p | p ∧ q | p ∨ q | p → q |
---|---|---|---|---|---|
T | T | F | T | T | T |
T | F | F | F | T | F |
F | T | T | F | T | T |
F | F | T | F | F | T |
「¬p が真であること」を証明するためには、p が偽であることを証明しなければなりません。もう少し厳密に言うと、p の真理値が 偽(F) を取ることを証明することができれば、¬p が真(T)であることを証明できます。
「p ∧ q が真であること」の証明は p と q の真理値が真であることを証明すれば良く、「p ∨ q が真であること」を示すためには、 p と q のどちらか一方が真であることを示せば証明できます。
一方、「p → q が真であること」を証明するにはどうすれば良いでしょうか?
まず、p が偽の場合には「p → q は真」ですので、考慮する必要はありません。
残るのは (1) p が真で q も真の場合と、(2) p が真で q が偽の場合のみとなります。
この内、(2)の場合は「p → q」は偽ですので、「p → q が真であること」を証明する際には考慮する必要はありません。(もし、「p → q が偽であること」を証明したい場合はこのケースを考える必要があります。)
なので(1)のケースのみ検討すれば良いことになります。
つまり「p → q が真である」ことを証明するためには、p を真と仮定し、その上で、q が真であることを証明すれば良いことがわかります。
この証明は他の複合命題のそれとは明確に異なります。
論理包含の証明では、単一の命題 q が真であることを証明するだけで良いだけでなく、p が真であることを使うことができるのです。
p → q と他の命題について
私たちが論理的に物事を考えたい時には、何か未知の事柄についての結論を出したいという理由が背後にあります。
例えば、
- 「我が社は○○に注力すべきだ」
- 「宇宙には○○の法則がある」
- 「私は転職すべきだ」
- 「あいつは信用できる」
などです。論理包含は前提となる p が真であれば、q (未知の結論)を導出する力があります。
一方他の命題はどうでしょうか。
p ∧ q が真であったとしても、すでに q は真であるとわかっていることになりますので、q は未知の結論ではありません。
p ∨ q が真だとして、さらに p が真だと仮定しても、 未知の結論である q のが真なのかはわかりません。
この意味で、 p → q は強力なツールであり、数学において多用されているもこのためなのです。
以上ここまが前編です。
次回本編では、論理的思考とは何かについて論理学的な解答を紹介していきます。
salaryman-of-love.hatenablog.com
【補足】p が偽のときに、p → q が真になるのはなぜか?
さて、補足として上記の問いに私なりの解答をしたいと思います。
※ 本やネットで調べてもそれらしい答えはでてこなかったので、完全に私の推察になります。
p → q は「もし p ならば、q 」という意味だと本文で説明しました。
また、p → q の真理値表は以下の通りであるとも説明しました。
p の真理値 | q の真理値 | p → q の真理値 |
---|---|---|
T | T | T |
T | F | F |
F | T | T |
F | F | T |
p が偽(F)の時に、p → q が真になるのは多くの人にとって直感的に理解できないポイントでしょう(私も全くわかりませんでした)。
ここからは私の憶測ですが、この定義をした論理学者は、論理演算子に and, or, if-thenという名前(意味付け)をする前に、全てのケースを考えてみたのではないでしょうか?
というのも、p と q の真理値の組み合わせは、以下の通り全部で4通りあります。
- p = T, q = T
- p = T, q = F
- p = F, q = T
- p = F, q = F
また論理演算子は、これら4つのケースにおける真理値の組み合わせで定義されています。例えば、 p → q は上記の表の真理値の組み合わせで定義されています。
p ∧ q , p ∨ q , ¬p も組み合わせのパターンはそれぞれ異なりますが、真理値の組み合わせで定義されている点では同じです。
ここで、以上の4 パターンにおける真理値の組み合わせを全て列挙してみましょう。
かつ、直感的にわかりやすい箇所には、予め論理演算子を入れていきます。
それが下の表になります。全部で16パターン存在します。
※ (p, q) としています(左側が p の真理値、右側が q の真理値)
(T, T) | (T, F) | (F, T) | (F, F) | 論理演算子 |
---|---|---|---|---|
T | T | F | F | p |
F | F | T | T | ¬p |
T | F | T | F | q |
F | T | F | T | ¬q |
T | F | F | F | p ∧ q |
F | T | T | T | ¬(p ∧ q) |
T | T | T | F | p ∨ q |
F | F | F | T | ¬(p ∨ q) |
T | T | T | T | (1) |
F | F | F | F | (2) |
T | F | F | T | (3) |
F | T | T | F | (4) |
T | F | T | T | (5) |
F | T | F | F | (6) |
T | T | F | T | (7) |
F | F | T | F | (8) |
16パターンのうち8パターンは p, qそのものと、¬, ∧, ∨ だけで記述できました。
わからないのは(1)~(8)の部分です。しかし、8パターンのうち、4パターンは相方の否定で表せるので、わからないのは実質4パターンとなります。
では(1)とは何でしょう?このパターンは、p と q がどんな真理値であっても真を返す演算です。実際に使うことはあまりなさそうです。何か適当な記号を当てはめましょう。
p ○ q としましょう。
(2)は(1)の否定になりますので、¬(p ○ q)で良さそうです。こちらは p と q がどんな真理値を持っていても常に偽を返します。
では(3)はどうでしょうか?このパターンは、p と q の真理値が一致している場合に真を、一致していない場合には偽を返す演算です。これも何か適当な記号を当てはめましょう。
p = q としましょう。
(4) は (3) の¬になりますので、¬(p = q) とします。
ここまでの結果を表にすると以下のようになります。
(T, T) | (T, F) | (F, T) | (F, F) | 論理演算子 |
---|---|---|---|---|
T | T | F | F | p |
F | F | T | T | ¬p |
T | F | T | F | q |
F | T | F | T | ¬q |
T | F | F | F | p ∧ q |
F | T | T | T | ¬(p ∧ q) |
T | T | T | F | p ∨ q |
F | F | F | T | ¬(p ∨ q) |
T | T | T | T | p ○ q |
F | F | F | F | ¬(p ○ q) |
T | F | F | T | p = q |
F | T | T | F | ¬(p = q) |
T | F | T | T | (5) |
F | T | F | F | (6) |
T | T | F | T | (7) |
F | F | T | F | (8) |
ここで残っているのが(5)~(8)になります。実際には(6)は(5)の否定、(8)は(7)の否定になりますので、(5)と(7)になります。
先程見てきた通り、(5) は p → q になります。
(7) は q → p です。(少し考えてみましょう)
すると、(6)は ¬(p → q) 、(8)は ¬(q → p) とそれぞれ決まります。つまり、(5)と(7)は最後のケースになります。
論理学者達はこの最後のポジションに → という記号を当てはめて「もし...ならば...」(if ..., then ...) という意味を与え、「論理包含(implication)」と命名したのではないかな。
だから、p が偽の時に p → q が真になるという非直感的なことが起きちゃったんじゃないかな。
つまり、最後に残ったところにどんな名前と解釈をつけたらいいか迷ってて、それらしいものにしたらちょっと直感さが薄れちゃった説。
適当すぎですね。ごめんなさい。
最後に表を完成させておきます。
(T, T) | (T, F) | (F, T) | (F, F) | 論理演算子 |
---|---|---|---|---|
T | T | F | F | p |
F | F | T | T | ¬p |
T | F | T | F | q |
F | T | F | T | ¬q |
T | F | F | F | p ∧ q |
F | T | T | T | ¬(p ∧ q) |
T | T | T | F | p ∨ q |
F | F | F | T | ¬(p ∨ q) |
T | T | T | T | p ○ q |
F | F | F | F | ¬(p ○ q) |
T | F | F | T | p = q |
F | T | T | F | ¬(p = q) |
T | F | T | T | p → q |
F | T | F | F | ¬(p → q) |
T | T | F | T | q → p |
F | F | T | F | ¬(q → p) |
正直本当にこんな感じだったのかはわかりませんが、自分はこのように理解すると、「気持ち悪いけど、まぁいいかな」という気分になりました。終わり。
Reference
- How to Prove It: A Structured Approach by Daniel J. Velleman
- Introduction To Logic by Stanford University