もちろん、自然科学である。
数学は人文系である - モジログ学問はしばしば、「自然科学(natural science)」、「社会科学(social science)」、「人文科学(humanities)」の3つに分けられる。この3つのなかで、数学はどこに属するだろうか
「次数」が異なるだけで。
自然科学は、人間が作ったものではない「自然」というものについて、その性質や規則性をさぐるものである。いっぽう、数学はすべて人間が作ったものであり、一種の言語体系である。数学は自然に属してはいないのだ。よって、数学は自然科学ではない
ところがその人間は、自然が作ったものである。自然に含まれるのは自明。自然を研究するのが自然科学であるのであれば、当然その人間の中で起きている数学という現象もそこに含まれている。よって数学は自然科学である。Q.E.D.
しかし話はそこで終わらない。別に私は「はい、論破」したいわけではないからだ。
数学は、自然科学には欠かせないものだが、数学自体は自然科学ではない。
後段をただ論破しただけでは、前段の答えが「数学が自然科学の一部門だから」という、一見正しいが根本的に間違ったものになってしまうからである。しかも単なる誤解ではく、ヤバい誤解である。そこから「数学不要な部門だってあるんじゃないか」が導きだされるのは「自明」であり、自明であるがゆえにそれがまかり通ってしまうからだ。
ここでもう一度発言を読んでみよう。「重要」ではなく「欠かせない」。この二つには根源的な違いがある。前者であれば「数学不要の科学」がありえるが、しかし著者は「欠かせない」といっているのだ。私もそれに同意する。
ここで、我々が世界をどう探求しているのかをもう一度よく観察してみよう。こうしているはずである。
- 世界の模型を作る。
- そうして作った世界の模型を実際の世界と比較する。
- そうして差異を洗い出したのち、0.に戻ってより差異の小さな世界の模型を作り直す
科学になぜ数学が欠かせないか?その答えが、ここにある。
それなしでは、模型を作ることも、世界どおしを比べることも出来ないからだ。
この手法が一番はっきり見えるのは、計算機科学の世界かも知れない。コンパイラーという、OSの上「で」動く一アプリケーションにすぎないコンパイラーが、どうしてOS「を」ビルドできるのか?その前に、コンパイラーはどうやって自分自身をコンパイルしているのか?
ホワット・ア・ワンダフル・ワールド GCCCC のビルドは,デフォルトでは 3 回コンパイルされるのですが,開発中は時間がかかってしょうがないのでウザいです.Bootstrap stage0 : Stage1 gcc をホストシステムの gcc でビルド Bootstrap stage1 : Stage2 gcc を Stage1 gcc でビルド Bootstrap stage2 : Stage3 gcc を Stage2 gcc でビルド Bootstrap stage3 : Stage2 gcc と Stage3 gcc が同一バイナリかどうかをチェック
科学の世界とクリソツではないか。しかしよく見てほしい。「100%一致」ではない、次数が1つ多い。なぜStage 1とStage2を比較するのではなく、Stage2とStage3を比較しているのか。ここに科学と技術の違いがある。
科学でやりたいのは、Stage0の世界となるべく合致する世界の模型を作ること。だから世界に不一致がある限り、何度でも模型を作り直すというのが仕事となる。
これに対し、ブートストラッピングコンパイラーの仕事は、「世界の上で作った世界が、元の世界と合致する世界」を提供すること。だから次数が一つ多い。Stage1はStage0の影響を反映せずにはいられない世界であるが、「世界の設計図どおり」のStage2を作ることができる。そのStage2が自ら作り出した世界Stage3が、自分自身と100%一致していれば、たしかに設計図どおりの世界がそこに出来上がっていることになる。
設計図を書き直すために数学を使うのが科学、「設計図どおりの世界」という製品を提供するために数学を使うのが技術。低次--というよりまさに底次--の世界を知るのが科学なら、高次の世界を作るのが技術。そして、次数の異なる世界の間をつなぐのは、数学。
さすれば、
学問はしばしば、「自然科学(natural science)」、「社会科学(social science)」、「人文科学(humanities)」の3つに分けられる
という考え方そのものが「諸悪の根源」であり、「自然科学の中に人文科学と社会科学がある」というのが正しい分類ではなかろうか。むしろ難しいのが人文科学と社会科学の関係で、どちらも他方を自分の中に内包しているように思える。いずれにせよ、あえて分類するなら「0次の科学」、「1次の科学」と次数を使うのがよさそうだ。
いずれにせよ、「世界の中に世界を作る」という作務がそこにある限り、「この科学に数学は不要」とか「この技術に数学は不要」というのは、「プログラミングにプログラミング言語は不要」と言っているに等しいことになる。
この科学と数学の関係については、拙著のコラムで読者にこう問いかけた。
「中卒」でもわかる科学入門数学と物理学、どちらも科学ですが、どちらの方が「広い」学問だと思いますか?
ヒントになれば幸いだ。
Dan the "1st-Order" Blogger
純粋な理念を扱うからね。
人文科学は、科学というには、情緒的で、パラダイム形成が困難な分野が多いよね。それでも、そこに論理と条理があれば、一応は科学なんだろうね。