数式処理システムとしての「Egison」を作る上で、参考にした10冊の数学書

Egisonには、2010年から開発されているパターンマッチ指向プログラミング言語としてのEgisonと、2016年からに開発されている数式処理システムとしてのEgisonの2つの側面があります。本記事では、数式処理システムとしてのEgisonを作る過程で、参考にした数学書を軸に紹介します。

数式処理システム「Egison」を作る上で参考にした数学書

数式処理システムとしてのEgisonを作る過程で、参考にした数学書10冊を紹介します。(2018年3月時点)

1.「線形代数の世界 抽象数学の入り口」(斎藤毅 / 東京大学出版会)

2015年末に友人宅の本棚でこの本を見かけ、読み始めたのが数学の勉強を再開するきっかけでした。

本書は、他の線形代数の入門的な教科書よりも、記述が抽象的で、数学の他の分野のことを知らないと動機が理解できない事柄(例えば双対空間や完全系系列など)が遠慮なく解説されています。

理解できないことは多かったのですが、そのおかげで退屈せずに読めたという印象を本書には持っています。


この本を読んでから、しばらくの間、図書館でいろいろな数学の分野の入門書を借りて、その概要を眺めていました。
微積分、複素解析、フーリエ解析、代数、確率統計の教科書を中心に読んでいたのを覚えています。
この頃は幾何学の教科書に取り組むことをまだ敬遠していました。
コンピューターサイエンスを専攻していたこともあり、幾何学の教科書に一度も取り組んだことがなかったのがその原因でした。


2.「物理のためのベクトルとテンソル」(ダニエル・フライシュ / 岩波書店)

「線形代数の世界」を読んだ後、テンソルとは何か、その直感的なイメージをつかみたいと考えるようになり、2016年1月に、本書を手に入れて読み始めました。本書を読んで、反変・共変ベクトルという概念の直感的なイメージを知ることができました。

本書には、リーマン曲率テンソルの計算について、予備知識を必要としない感覚的な解説もあり、本書でリーマン幾何学の感覚をつかむことができました。本書を読むと、一般相対性理論をちゃんと勉強したいと考えるようになりました。また、テンソルの添字記法についても、本書を通して初めて知りました。


本書を読んだ後、一念発起して、2ヶ月かけて、Egisonを拡張して数式処理システムを実装しました。
2016年3月24日にEgison 3.6.0として、この数式処理システムを公開しました。


3.「曲線と曲面の微分幾何」(小林昭七 / 裳華房)

一般相対性理論を勉強する前に、微分幾何の勉強をしようと考えて、2016年4月に本書を手に入れて読み始めました。

この本の第2章では,3通りの方法で曲面の理論を解説します。
だんだん抽象的な証明になるのですが、3つめの方法では、微分形式の言葉が使われます。ここで、初めて微分形式の威力を感じました。

第4章の最初に微分形式の言葉で記述したStokesの定理の解説もあります。
この解説も、微分形式の動機を直感的に教えてくれておもしろいです。

本書は、それぞれの節の最初にその節の概略が書かれており、それを読むだけでも楽しく、内容を理解するモチベーションが湧くようになっていました。

4.「多様体の基礎」(松本幸夫 / 東京大学出版会)]

2016年4月に、上記の本と一緒に本書を手に入れて読み始めました。

「曲線と曲面の微分幾何」や後で紹介する本を読んでいて、消化できない概念や式変形があるとこちらを参照するという読み方をしていました。
この本は、他の本ではさらりと書かれている式変形などが詳しく解説されているので、とても心強い独学の助けになりました。

5.「時空と重力」(藤井保憲 / 産業図書)()

一般相対性理論を勉強するために、2016年5月に本書を手に入れて読み始めました。

シュヴァルツシルト空間(原点を中心にした質量をもった球があり、それ以外の場所は真空な空間)において、どのように時空が曲がっていて、重力が生じるのか理解したいという動機で本書を読みました。

本書の説明は直感的で、とてもわかりやすかった記憶があります。そのおかげで、1週間ほどで上記の目標を達成することができました。


本書を読み終わった後、球面のリーマン曲率や、シュヴァルツシルト空間のリーマン曲率テンソルをEgisonで計算するプログラムを書くことに挑戦しはじめました。
その際に、スカラー仮引数とテンソル仮引数という新しい仮引数の概念を導入するとテンソルの添字記法をプログラミングに導入できるというアイデアを得て、実装しました。
2016年5月25日のEgison処理系のコミットログを見ると、それを確認できます。

2016年5月30日にEgisonで球面のリーマン曲率テンソルを計算するプログラムをウェブサイトで公開しています。

ただ、数式処理システムを実装する際に、何も参照しなかったこともあり、このアイデアの新規性に気づいたのは、2016年末でした。そこから論文を書き始め、2017年9月3日にオクスフォード大学で開催されたScheme Workshopにて、このアイデアを発表しました。


6.「微分幾何学とゲージ理論」(茂木勇,伊藤光弘 / 共立出版)

一般相対性理論を勉強すると、今度はその一般化と言われているゲージ理論に興味をもつようになり、2016年5月あたりに本書を手に入れて読み始めました。

本書の4.1節の後半に、ゲージ理論の例として、U(1)ゲージ理論のビアンキの恒等式(dF=0)とヤンミルズ方程式(δF=0)から、マクスウェルの方程式を導く解説があります。

ゲージ理論の方程式は、上記のように微分形式の言葉を使って記述された非常にシンプルな方程式です。このシンプルな記述で、複雑なマクスウェルの方程式が記述できるというのは、初めて知ったとき大きな驚きでした。

このことをきちんと理解することをモチベーションにゲージ理論の勉強をすすめました。

7.「接続の微分幾何とゲージ理論」(小林昭七 / 裳華房)

上記の本だけでは、理解できない箇所が多かったので、2016年6月に本書を手に入れて読み始めました。

この本も、同著者による「曲線と曲面の微分幾何」と同様に、それぞれの節の最初にその節の概略が書かれており、独学しやすかったです。

1年以上、通勤電車で本書をずっと読んでいて、本書内の数式の位置や、数式変形はだいたい覚えてしまいました。


添字記法に加えて、微分形式の言葉もプログラミングに導入することは、「曲線と曲面の微分幾何」を通して微分形式の威力を知ったときから、長い間の課題でした。

2017年6月に共同研究を始めた物理学者の深川宏樹さんと議論したあとからは、この課題について特に重要だと認識するようになりました。

2017年9月、深川さんつながりで集まった物理学者の方々と議論した次の日の朝、本書を眺めている最中に、添字が省略された場合の添字補完の方法を制御する方法を上手に設計すると微分形式をプログラミングに導入できることに気づき、この課題は解決しました。


8. 「微分形式の幾何学」(森田茂之 / 岩波書店)

上記2つの本を読むためには、微分形式やファイバー束について、より入門的な教科書を読む必要があると考えて、本書を手に入れて読み始めました。

本書は、De Rhamの定理の証明や、特性類についての直感的かつ詳しい解説も充実していて、位相幾何を勉強しはじめるきっかけにもなりました。

上記3冊を中心に2017年末まで読んでいました。

9. “Geometrical Methods of Mathematical Physics” (Cambridge University Press)

微分幾何の物理への応用について知るためには本書を読むのがよいと深川さんに薦められて、2017年7月に本書を手に入れて読み始めました。

本書には、解析力学や流体力学の記述への微分形式の応用についての解説があります。このテーマはとてもおもしろくて、もっと深く理解したいと考えています。また、本書のリー微分の説明は、わかりやすかったです。

10. “Three-Dimensional Geometry and Topology“(William P. Thurston / Princeton University Press)

より深く幾何学を理解するためには、3次元以上の多様体について、より具体的なイメージを持てるようになる必要があると考えて、2018年1月末に本書を手に入れて読み始めました。

本書は、サーストンの幾何化予想のサーストン自身による本で、幾何化予想を理解するのに必要な知識がまとめられているようです。まだ読み始めたばかりですが、この本の解説は他書に類をみないくらい直感的でおもしろいです。

※画像出典:楽天ブックス

8,568通り、あなたはどのタイプ?

Egisonについての資料

2017年から今までに公開したEgisonについての資料を紹介します。
これらには、微分幾何の記法をプログラミングに導入するための独自の工夫についてまとめています。

執筆:楽天技術研究所・江木聡志

※本記事は「CodeIQ MAGAZINE」掲載の記事を転載しております。

PC_goodpoint_banner2

Pagetop