【読書】 プログラマにも必要な論理的思考を、これでもかと分かりやすく解説した本

※かじとじむ(当サイト)は、ふだんはネット情報のまとめサイトですが、ときどき管理人が読んだ本をまとめています。読書タグや、ざっくりまとめタグからどうぞ!


あけましておめでとうございます。

新年1冊目は、
野矢茂樹著「まったくゼロからの論理学」を読みました。

まったくゼロからの論理学
野矢 茂樹
岩波書店
2020-02-28


本書は、

  • もと東大教授で哲学者の著者が、
  • 立正大学の学生に対しておこなった授業をもとに、
  • 論理学の基礎を、まったくのゼロから説明してくれる本です。

野矢さんの本は、これまでも何冊か読んできましたが、
本書がいちばん、たぶん抜群に分かりやすいです。

===

これまでの本(たとえば、「論理トレーニング101題」など)も、
おもしろかったし、分かりやすかったのですが、
今にして思えば、
しょせん(?)東大生に教える前提で書かれていました。

しかし本書は、立正大学文学部(偏差値55)という、
東大生に比べればだいぶ「ふつう」の学生を相手に書かれています。

なので、「ふつうの人」がつまづきやすいポイントが、
事前に、ことごとく、フォローされていくのです。
(つまづいてくれた立正大生にグッジョブ!)

著者じしんも、「はじめに」で、

「これなら分かる」と言ってもらいたい。
(中略)
「全員に分からせようとする気持ちが伝わる本だった」という感想が読者から聞けるならば、これ以上の喜びはありません。

と書くぐらいなので、
分かりやすい本が書けた! という自負があるのでしょう。

===

分かりやすさの例として、
たとえば、本書のp75から、問題16を抜粋してみます。

ある体育祭について、「すべての学生がどれかの競技に参加した」という発言の否定となる発言を選びなさい。

  1. ある学生はどの競技にも参加しなかった。
  2. どの競技にも参加しなかった学生はいない。
  3. すべての競技に参加した学生はいない。
  4. すべての学生がどの競技にも参加しなかった。

この問題の解説部分の一部は、こんな感じです。

「全員どれかの競技に参加したんでしょう?」
「いや、そうでもないんだ」
「どの競技にも参加しなかった学生がいたの?」
「うん。いたね」

この問題はもともと、全称と存在のドモルガンの法則を知るための練習問題ですが、
ぜんぜん知らなくても、なんとなく納得できるのではないでしょうか。

===

ところで、論理学なんて、何かの役に立つのでしょうか。

一般的には、就職試験などのときの
論理的思考力の問題などで役に立つような気がします。

また、
わたしは昨年から、プログラミングを趣味程度にやっているので、
命題論理の部分は、とてもためになりました。

そもそも、JavaScriptのようなプログラミング言語は、
二値論理を扱います。

つまり、true か、false か、どちらかです。

trueと、falseで組み立てられた論理が、
常に正しくなるかどうかは、
プログラムが動くかどうかについてかなり重要でしょう。

p127の例42では、
((P∨Q)∧R)⊃P
という命題が扱われていますが、これは、
Pがfalse、QとRがtrueのとき、全体としてfalseになります。

具体的に書けば、

const P = false,
  Q = true,
  R = true;

console.log( ((P || Q) && R) ? P : ture );

で、falseが返ってきます。
こういった場合分けを記号的に整理できれば、
強いだろうなと思いました。

===

本書ではこのほかにも、
「演繹は、帰納の単純な対概念ではない」という指摘があって、
言われてみれば確かにそうかも、と思いました。

そもそも、帰納法と演繹法は同時に学ぶので、
なんとなく対にして覚えていましたが、
よくよく考えてみると、必ずしも一方が他方の反対を述べているとは限りません。

いろいろと勉強になる本なので、
そして抜群に分かりやすい本なので、
ぜひ読んでみてください。