クロージャーの調査
「クロージャーの調査」では、以下のようなことを考えていく予定です。
関数プログラミングのデータ(クロージャーを含んでも良い)の代数的構造を「無限関数プログラミングデータ」とします。
次に、クロージャーの呼び出しの深さが有限のある決まった回数であるものを考えます。この代数的構造を「有限関数プログラミングデータ」とします。
このデータからクロージャーを取り除いた代数的構造を「有限関数的代数」します。
「有限関数的代数」の多項式の極限のような極限を考えます。これを「無限関数的代数」とします。
「無限関数的代数」によって「無限関数プログラミングデータ」を表すことを考えています。
現在はクロージャーを含む関数型のプログラミング言語で、入出力を行う方法を検討しています。これを拡張して「無限関数的代数」によってこのプログラミング言語を表すことを考えています。
多重集合などを表すプログラム
「エレファントな整数論」では多重集合を数式で表す方法を考えていましたが、数式で表すことはまだできていません。「多重集合・自由可換モノイド」では、多重集合は順序には依存しないので、順序に依存しない記法を考えていましたが、数式で記述するのは難しいので、プログラムで表すことを考えています。
また、素因数分解の一意性についてもプログラムで表すことはできないかと考えています。
「群論の計算」では代数方程式の代数的解法を多項式の変形で表す方法を考えていましたが、これもできていません。また、代数学の基本定理、対称式の基本定理も多項式の変形で表そうと考えていましたが、これもできていません。これらもプログラムで表すことはできないかと考えています。また、群のいろいろな定理もプログラムで表すことはできないかと考えています。
「エレファントな線形代数」では、連立1次方程式は方程式の集合なので方程式の順序には依存しないので、方程式の順序に依存しない記法を考えていましたが、まだできていません。これもプログラムで表すことはできないかと考えています。
多重集合や通常の部分集合の順序に依存しない記法は、多重集合などに関する対称性と考えることができます。これをプログラムで表すことを考えていきたいと思います。
多項式の変形については、数式処理システムのようなもので書けないか考えていきたいと思います。
現在できていること
目的としていることには到達していないものも多いのですが、部分的にできているところもあって、どこができている部分なのかはっきり書いていないこともあるので、その部分を書いていきたいと思います。以下のようなところです。