見出し画像

アルゴリズムの遡行論理と訂正可能性

(この文章は有料マガジン「数学する精神」の記事ですが、誰でも無料で最後まで読むことができます。この文章の転載・切り抜きなどは禁止します。)

8月27日のイベント「ZEN大学×ゲンロン・数とはなにか」では、東浩紀さん、川上量生さんと私の3人で、数学や数学周りの哲学的な話題などについて対談しました。

5時間半にも及ぶ長丁場でしたが、私としては時間の過ぎるのも忘れてしまうような、楽しい時間でした。

その中で私が「数学は空間のモデル化をしたことはいくらでもあるが、時間をモデリングしたことはついぞなかった」というような趣旨の発言をしました。この発言の背景には、

  • 今ある数学よりももっと時間にコミットした数学の姿もあり得たこと。

  • 古代ギリシャの論証数学が主に当時の言説世界の影響から、数学を時間から離脱させて静態化するという作戦をとったことが、その後の数学のあり方に大きく影響したと思われること。

という(少々素朴な)私見がありました。

これに対する東さんのコメントは、非常に意外なもので「アルゴリズムには時間的要素があるのでは」ということをおっしゃったのですが、これは非常に興味深いものでした。ただ、当時はまだこのお答えに対して、相応の応答をするだけの認識がなかったことや、我々の話題がその直後に計算複雑性や計算量と時間性の話に移ったこともあり、これから述べるようなことには考えが至りませんでした。

しかし、「アルゴリズムにおける数学的な●●●●時間性」は、意外と深い含蓄と広がりをもっているらしいということに、最近気づきました。しかも、それに気づいたのは、東さんの最近の著書『訂正可能性の哲学』(ゲンロン叢書014)を拝読して、多くのことを学んでからのことでした。私はこの本からは数学においても数学史においても、さらには数学する精神や数学するという行為においても、大変多くの示唆を得ることができたのですが、まだそのすべてを咀嚼して、書き下すところまでは至っていません。しかし、何も書かないでいるわけにはいかないので、まずはこの点に的を絞って(あまりまとまりはないかもしれないですが)書いてみようと思います。

ユークリッドの互除法

アルゴリズムとは簡単に言うと、何種類かの基本的な計算操作を,有限個組み合わせて構成される「計算手順」のことです。数学にはさまざまなアルゴリズムがありますが、そのもっとも典型的なものはユークリッドの互除法です。これについて、まず簡単に説明します。

歴史上のユークリッド互除法は、2つの線分量を(数や度量衡による翻訳なしに)そのままの姿●●●●●●で比較することを意図して作られたものだ、と私は理解しています。これは極めて優秀なアルゴリズムであるだけでなく、その数学的・理論的含蓄も深いものです。現代的には、2つの整数$${a,b}$$の最大公約数を求める手順として、よく知られています。

2つの整数$${a,b}$$の最大公約数を、ここでは簡単に$${(a,b)}$$という記号で書いてしまうことにします。通常は$${\mathrm{GCD}(a,b)}$$などと書かれることが多い(GCDは最大公約数 greatest common divisor の頭文字)ですが、いちいちGCDと書くのは冗長ですし、この文章の中では$${(a,b)}$$が他の概念(開区間とか座標平面上の点)を表すことはありませんから、混乱のおそれはありません。

ただ、ひとつ注意しておかなければならないことがあります(ここは、今後の話でも本質です)。一般に2つの整数$${a,b}$$の最大公約数というのは、誰もが普通に存在しているものだと思っていると思います。そういう人は、つまり最大公約数とは最大の●●●公約数なのだと思っていると思います。しかし、それは普通の自然数の場合に限ることで、整数論という括りで話す場合、正しい見方ではありません(例えば、$${0}$$と$${0}$$の最大公約数が何になるか考えてみてください。このあたりの話は以前の記事「0と0の最大公約数とは?」に書きました)。

2つの整数$${a,b}$$の最大公約数とは最大の公約数ですが、そこの「最大」とは数の大小関係に関する最大ではなく、整除関係に関する最大です。すなわち、$${d}$$が$${a,b}$$の最大公約数であるとは

  • $${d}$$は$${a,b}$$の公約数である

  • $${a,b}$$の任意の公約数は$${d}$$の約数である

という2条件を満たすことです(通常は、単数倍(つまり符号)の曖昧さを消すために、$${d\geqq 0}$$と仮定します)。

このような定義を採用しないと、すべての●●●●整数対$${a,b}$$に対する理論にすることができないわけですが、このようにすると、最大公約数の存在が自明でなくなります。つまり、どんな$${a,b}$$に対しても、その最大公約数が存在するかどうかは、すぐにはわかりません。そして、これは実は極めて非自明で深い定理になります(すなわち、ユークリッド互除法というアルゴリズムの停止問題に他ならなくなります:ここで「そんなの素因数分解を使えばすぐにわかるじゃないか」という意見もあるでしょうけど、そのためには「素因数分解の一意性」が不可欠です。これは初等整数論のもっとも基本的かつ高級な定理で、その証明には最大公約数の存在(抽象代数学の言葉で言えば、整数全体が単項イデアル整域であること)が必要です。つまり、論理的には完全に逆順なのです)。このことを念頭に入れて、以下を読んでください。(ちなみに、最大公約数の一意性(=存在すればひとつだけ)は難しくありません。)

さて、ユークリッド互除法は、整数対$${a,b}$$に対して、その最大公約数を出力するアルゴリズムですが、実はそれだけでなく、これを用いれば最大公約数の存在も証明できるという意味で、実は極めて理論的含蓄の深いものです。ユークリッド互除法は、次の簡単な事実に基づいています(どれもその証明は簡単です)。

ユークリッド互除法の原理
① $${a=bq+r}$$($${a,b,q,r}$$はすべて整数)であるとき、最大公約数$${(a,b)}$$が存在することと最大公約数$${(b,r)}$$が存在することが同値であり、かつ、それらは一致する。
② $${(d,0)=d}$$である。すなわち、任意の整数$${d}$$と$${0}$$の最大公約数は存在し、それは$${d}$$に等しい。

例えば、次のような計算ができます。

$${(396, 210) = (210, 186) = (186, 24) = (24,18) = (18,6) = (6,0) = 6}$$

これは$${396}$$と$${210}$$の最大公約数を計算したものです。最初の等式は、$${396}$$を$${210}$$で割った余りが$${186}$$であること、すなわち、$${396=210\times 1+186}$$であることから、上の原理①より従います。後の等号も同様です。最後の等式$${(6,0)=6}$$は原理②の帰結です。

実は、どのような整数対$${a,b}$$から出発しても、必ず有限回のステップでいつかは$${(d,0)}$$という形になって、最大公約数$${d}$$が出力されます。つまり、このアルゴリズムは停止します。これは非自明な定理ですが、整数の割り算において「余りが除数よりも小さい」という性質から証明されます。これによって、どんな整数対$${a,b}$$に対しても、最大公約数が存在することが証明できるわけです。

遡行論理による存在証明

さて、ここからが本題です。上で$${396}$$と$${210}$$の最大公約数を計算した式(ユークリッド互除法の手順)をもう一度見てください。ここで、アルゴリズムが始まる$${(396, 210)}$$においては、まだ$${396}$$と$${210}$$の最大公約数が存在するか否かはわかりません。つまり、$${(396, 210)}$$という記号が本当に意味をもっているのか否かは、保留している状態から出発しています。あるいは、差し当たり「存在は仮定する」という立場で出発していると考えてもらっても結構です。

その上で、計算は進み$${(396, 210)=(210,186)}$$と計算されます。この段階でも$${(210,186)}$$が存在して、ちゃんと意味のある記号になっているか否かはわかりません。すなわち、この等式は、まだ存在しているかわからない2つものの間に「存在するならば等しい」という仮説的な等式が示されているだけです。その後の等式も同様です。

しかし。最後の$${(6,0)=6}$$だけは違っていて、上の原理②から$${(6,0)}$$は確かに存在し、それは$${6}$$に等しいわけでした。

そこで、ここから今度は逆順に「存在性」が遡行的にわかっていくことになります。すなわち、$${(6,0)}$$が存在するので、上の原理①からその直前の$${(18,6)}$$が存在し、それらは等しいとわかります。さらにまた原理①から、その直前の$${(24,18)}$$も存在し等しいとわかります。このように、次々に遡る形でどの最大公約数も存在することがわかり、それらについて上の等式が全部、整数の等式としてちゃんと意味をもっているということが遡行的に●●●●わかるわけです。

ここで重要なことは「遡行的」ということです。ここで起こっていることを簡単にまとめると:

  • 手順の各ステップを計算している段階では、計算は機械的に進むが、それが本当に何を意味しているのか、あるいは意味があるのかは保留にされている。

  • つまり、計算が進められている最中には、一体どんなゲームがプレイされているのかわからない。

  • しかし、最後になって初めてその意味(の存在)が明らかになり、遡行的に手順全体の意味が確定する。

このような形とタイミング(←まさに論理における時間性が問題なっている)で物事の本質が明らかになるという形の論理は、通常の数学的証明の論理には、あまり見られないものだと思います。数学の証明では、すなわち、論証的な数学の議論においては、定義や公理といった約束事・出発点から、そして事前に証明していた既知の命題から、欲しい命題に向かって論理的なステートメントを積み重ねていくというもので、その各ステップをステップごとに、line by lineで理解していくという形のものです。最後に「あぁそうだったのか」という形で理解できるというものは、あまりないと思います。

しかし、ユークリッド互除法の理論的適用においては、上で見たように「遡行的な論理」が実行されているというわけです。ここではユークリッドの互除法だけを例に挙げましたが、そもそもこの形の遡行的論理が展開されることは、アルゴリズム的数学には結構多いです。例えば、方程式の「解の公式」は、方程式自身のデータからその解に至る計算の手順に他なりません(少なくとも古代・中世の解の公式とはそういうものでした)が、よくよく考えてみると、解が存在するかどうかわからない状態で(解を$${x}$$などとおいて)計算が始まり、解が求まって初めてその方程式が解をもつことがわかるという形のものになっています。このことは現代の我々にとっては皮相的に聞こえるかもしれませんが、しかし、近代初期の(虚数を知らなかった)人々にとってはどうでしょうか?実数解をもたないかもしれない代数方程式に解法の手順を適用することは、今の我々が思う以上に遡行論理的な行いだったように思われます。

このように、アルゴリズムにまつわる論理、アルゴリズムを用いた論証には、遡行的な側面が強いようです。そして、これはある程度「アルゴリズム的・計算的」数学のやり方を特徴付けているようです。

遡行論理と一貫性原理

東浩紀さんの『訂正可能性の哲学』には、次のようなくだりがあります。

あらゆる規則、あらゆる意味の一貫性は、それが生み出した行為に依存して、未来の他者の判断によって遡行的に産出されるものにすぎない。クリプキはウィトゲンシュタインの言語論を読みなおすなかで、そのような認識に辿りついた。

『訂正可能性の哲学』p.57

この引用元の文脈は我々の文脈とは異なっているし、もっと一般的で深いところに根ざしています。ですが、この引用箇所を含めて、東さんがこの本の各所で述べている遡行的産出や一貫性の原理は、大変示唆的です。そもそも東さんの言う「訂正可能性の原理」は、私にとっては論理法則に近いもので、それは時間の論理法則と言ってもよいくらいの深層に根ざしているように思われます。私の個人的な受け取り方(誤読)では、それは一貫性の原理、しかも静的ではない「動的一貫性の原理」に他なりません。そしてそれが一貫性の原理であるからこそ、数学の論証論理にも見られるはず、というよりすでにもうある。その最たる例がユークリッド互除法による最大公約数の計算であるというわけです。

数学はとかく静的なものと考えられがちですが、それは「古代ギリシャ以来的側面」という、むしろ特殊でローカルな側面に限った話で、実はさまざまに動的側面がある。それを私は今までにも、数学は「する」ものであるという言い方で語ってきました。「数学する」という行為にはいろいろな場とレベルがあり、一概にリストアップすることはできませんが、表面的になってしまうのを恐れず一つの側面だけを述べるならば、証明文や論文を読んだり生み出したりする場面もあれば、新しい仕事をするためにいろいろと試行錯誤したりする場面もあります(エクリチュール的 vs パロール的という図式がある程度は適用可能だと思います)。そして、後者の「する」には、東さんの言う「訂正可能性」が満ち溢れています。

アルゴリズムは、かなりの程度、この中間層に属していて、理論的な側面もあれば、動的に変化していく側面もある。後者については、結果の意味は遡行的に明らかとなり、その結果がアルゴリズム自体の意味をも変化させるという状況もあるわけです。

ゲームのルールはつねに新しいプレイによる訂正の可能性に晒されている。

『訂正可能性の哲学』p.318

最後の点に関しては、いわゆる「通約不可能性の発見」が示唆的です。上でも述べたように、ユークリッド互除法は2つの線分量そのままの比較のために考え出された方法です。そして、古代ギリシャの人たちの中に(おそらくピタゴラス学派の人)は、これを正方形の一辺と対角線という2つの線分量に適用するということを考えてしまう人たちがいたのです。これはユークリッド互除法を用いた「新しいプレイ」でした。そして、このプレイはユークリッド互除法という手順に止まらない、「量」の科学としての数学のあり方自体を訂正させることになったのです。

出典: 伊東俊太郎『ギリシア人の数学』講談社学術文庫、166 ページ

つまり、こういうことです。正方形の一辺と対角線にユークリッド互除法を適用すると、この手順は無限ループに陥り、停止しません(上の図を参照)。これはすなわち、この2つの線分量が比較できないこと、共通の「最大公約量」が存在しないことを意味しています。これは結果的に、量や数についてのギリシャ人の基本的な視点を、根本的に訂正することになったわけですが、その事実とその後の経緯は、数学史ではよく知られていることです。

ユークリッド互除法を最初に見出した人々にとって、このアルゴリズムがどのようなものだったのかはわかりませんが、現代の我々にとっては、これは一貫性をもった数学の理論であり手順になっています。その一貫性は、しかし、さまざまな動的な揺らぎ(遡行的意味の発見・意味の訂正)を経てきた結果です。そして、その一貫性は、また別の意味にとって変わられる可能性もあります。

ルールそのものは、プレイヤーの予想外のプレイや新しい提案によって柔軟に変更されるものでもある。ゲームはむしろそのような訂正可能性によって持続する。

『訂正可能性の哲学』pp.261-262

だから、私のこの文章も、何らかの結論に辿り着いて終わるということはありませんが、しかし、私が東さんの『訂正可能性の哲学』から学んだ多くのことのひとつとして「訂正可能性とは一貫性原理のことである」という、私の(おそらく誤読による)読み方は、この原理の向こう側に「動的な論理規則」というか、論理の論理、規則の規則ともいうべきものを垣間見せ、数学や数学史のさまざまなレベルでのダイナミズムを理解する足がかりを私に提供してくれました。

そして何より、アルゴリズムの理論的●●●側面に、遡行論理という深い時間性が隠されていることにも気づきました。今回はこのことに限定して、ちょっと書いてみました。一貫性や訂正可能性、その論理性については、また書いてみたいと思います。

(この文章の転載・切り抜きなどは禁止します。)

ここから先は

0字
数学にまつわるさまざまな話題(数学・数学と社会・数学と人工知能・歴史・数学者・研究・数学と人間・音楽と数学など)を、月に1〜3回くらいのペースで更新していきます。

このマガジンのタイトルにある「数学する精神」は2007年に私が書いた中公新書のタイトルです。その由来は、マガジン内の記事「このマガジンの名…

この記事が気に入ったらサポートをしてみませんか?