パンの木を植えて

主として数学の話をするブログ

数学は論理の学問というのは本当か

\[ %%% 黒板太字 %%% \newcommand{\A}{\mathbb{A}} %アフィン空間 \newcommand{\C}{\mathbb{C}} %複素数 \newcommand{\F}{\mathbb{F}} %有限体 \newcommand{\N}{\mathbb{N}} %自然数 \newcommand{\Q}{\mathbb{Q}} %有理数 \newcommand{\R}{\mathbb{R}} %実数 \newcommand{\Z}{\mathbb{Z}} %整数 %%% 2項演算 %%% \newcommand{\f}[2]{ \frac{#1}{#2} } \]

大学で数学を勉強していない人と数学について話すことがあるのですが,共通して「数学という学問では,論理が重要」みたいに考えてらっしゃるみたいだったので,それについて書きます.


論理は前提であって,関心の対象ではない

結論から言うと、「数学の勉強をする上では,論理をわかっていないといけない」というのは本当です.ただ,論理が重要とまでは言えません.数学で重要なのは,例えば抽象的に定義された概念を記号操作を通して超言語的に理解することであったり,問題の本質を捉えた抽象化を行うことであったり,色々意見があると思いますが論理ではないかなと思います.

私の感覚では,数学における論理は将棋というゲームにおける「駒の動かし方」のようなものです.つまりゲームのルールです.将棋のプロ棋士が「将棋という競技では,駒の動かし方を理解するのが重要です」と言っていたらちょっと違和感ありますよね?同様の違和感を,私は「数学では論理が重要」という意見に対して持ってしまいます.

例外として,論理学や数学基礎論のような,論理そのものや数学体系そのものを扱う分野があります.そういう分野では,確かに論理が重要でしょう.(だって研究対象ですからね…)しかしそれ以外の分野では,論理が「ルールとして」参照されることはあっても,重要なものと目されることはないはずです.

なぜ重要ではないのか.(さっき挙げた例外を除いて)数学のどの分野であっても,参照する論理法則は固定されています.テニスのプレーごとにルールを変更したりしないのと同じで,論理は同じものを使います.どの問題に取り組むとしても全く同様に参照されるものが,重要であるはずはないのです.それは前提であって,「話題になる」とか「関心の対象になる」という意味で重要ではない.

例外として,初心者ならルールに慣れていないはずなので,重要であると言えると思います.ただ,「その類推を数学の研究をしていた人とか,数学科の学生にまで当てはめるのは違いますよ」という話です.


なぜ「論理が重要」という認識を改めて欲しいのか

ここまで細かい話を書きました.うんざりしている人もいるかもしれません.

君の言いたいことはわかったが,なぜ論理が重要という意見を訂正したいのか?

代わりにアピールしたいものがあるのか?

という疑問を持たれたかもしれません.もっともな疑問なので,補足しておきます.


「論理」というのは,数学では「すでにわかっていることから,新たに言えることを導き出すための規則」です.絶対に確実な推論しか数学では認めませんので,基本的に一つ一つの推論法則は自明 *1 です.

「絶対に確実なことしか言えない」ので,これに対して数学界隈の外の人が,「制限が厳し過ぎてつまらないのではないか?」という感想を持っていることがあります.これに対して私は認識を改めて欲しかったんです.

将棋というゲームは面白いゲームですが,駒の動かし方に面白さはありません.野球でもスマブラでも何でもいいですが,どういうプレイ体験があるかということと,ルールは別物です.同様に,数学のルールである論理に対する印象と,実際に数学を勉強(今の比喩で言うとプレイ)した時の感覚は違います.

実際のところ,数学はとても創作に近い学問だと感じます.論理法則は確かに厳しい制約ですが,逆に言うとその制約さえ守っていて,解きたい問題にアプローチできるのであれば,数学では何をしても許されます.

いきなり「2つの閉曲線」をドーナツ型の空間から飛ぶ関数と同一しようと,いきなり実関数の積分を複素積分とみなそうと,無限集合同士にも大きさの違いがあるとか言い出そうと,論理的に許されてさえいれば(そして問題を解くのに役立つのであれば)何をしてもいいのです!実際のところ,数学はエキゾチックな概念が飛び交うファンタジーめいた世界です.*2

そして,このような数学の実態というのは,「数学は論理の学問」という理解からは想像できません.ガチガチに制約に縛られていて,何かミスをするたびに厳格な家庭教師のようにガミガミ咎めてくる学問だというイメージが蔓延している気がするのですが,とても悔しいですね.

数学における論理は確かに厳しい制約ですが,プログラミングにおけるコンパイラ *3 のようなものだと思って,より重要な,数学のプレイ体験そのものに意識を向けて下さると嬉しいですね.

*1:当たり前という意味. 数学界隈ではよく使う.よそで使うと冷たい人だと思われるので注意

*2:自由度が高いからこそ,学問として破綻しないために論理法則を厳しくチェックするのです.論理の厳しさと自由度の高さは表裏一体な気がします

*3:特に,Rust のようなコンパイルを通すこと自体が難しい言語が近いです