エレファント・ビジュアライザー調査記録

ビジュアルプログラミングで数式の変形を表すことを考えていくブロクです。

中間報告(18)

ブログに書く意味があるものは何かを ChatGPT で調べようと思ったのですが、なかなかうまくいきません。最近では Python の機能を調べるために使っています。Python の情報は詳しく教えてくれます。ウェブで検索すると古いバージョンの情報が出てくることがあるので、ChatGPT の方が安心して使えます。

ある時 Visual Studio のデザイナーが開けなくなったので Google Colabを 試してみました。Google Colab では Python で書くことになるのですが、Python は詳しくは知らないので ChatGPT で聞いてみたら答えてくれることがわかりました。(Google Colab でもできると思うのですがまだやっていません)

以前 Visual StudioPython を使えるようにしていたと思うので調べてみたら、使えるようになっていました。さらに Visual StudioPython の型チェックができることがわかりました。これはけっこう便利なので、今は Visual StudioPython を使っています。

Visual Studioのアップデートができるようになっていたのでアップデートしたところ、デザイナーが使えるようになりました。以前は(今となってはよくわからないのですが)デザイナーからボタンをダブルクリックして処理を追加した後、デザイナーを開くことができなくなったように思います。処理を追加したとき、デザイナーのコードのファイルには処理が追加されているのに通常のコードのファイルには何も追加されていなくて整合性がなくなったのが原因のように思われます。アップデート後、デザイナーのコードのファイルの処理をテキストエディターで削除したらデザイナーが開けるようになりました。

半群の右単位元と左単位元

ChatGPTで、半群の右単位元と左単位元が一致することの証明を書いてもらおうとしました。また、これを証明する式の変形を表示するプログラムを書いてもらおうとしました。これはうまくできませんでした。

その後プログラムの仕様を書いてもらいましたが、その際にプログラムの仕様と同様の説明をしました(これは意味があるのか疑問)。これを使ってプログラムを書き直してもらおうとしていたようですが、保留になっています。

指数関数

自然数の指数の定義を拡張して複素数の指数関数を定義する」ということをやっているのですが、保留中です。

関数型言語の拡張

関数型言語に無限に動作するための機能を追加する」ということをやっているのですが、保留中です。

関数プログラミングクロージャ

関数型言語の拡張」の続きで「変数を変更することができるクロージャーを変数を変更することができないクロージャーに変換する」ということをやっているのですが、保留中です。

状態を持つラムダ計算

クロージャーの調査に代わって「状態モナドを持つラムダ計算を行うプログラミング言語の定義」をやっているのですが、保留中です。

人工知能的論理プログラミング

論理プログラミングでできることについていろいろ調べていましたが、その後「理想的な並行論理プログラミング言語」について調べています。そのために Prolog の動作を説明しようとしています。

人工知能代数学

「置換の分類」、「交換子の計算」、「マグマの左単位元と右単位元」、「モノイドの左逆元・右逆元」についてビジュアルプログラミングを適用することを考えています。保留中です。

「マグマの左単位元と右単位元」、「モノイドの左逆元・右逆元」は以前このブログで扱ったものとだいたい同じ内容です。今のままでは意味がないものとなっています。

上で述べた「半群の右単位元と左単位元」も引き継いだ内容となっています。

今は「モノイドの左逆元・右逆元」をモノイドを使って説明して、これを使って Prolog の動作を説明できないかと考えています。

人工知能写像の理論

群論の計算」の「写像による分類」(さらにその後の「写像の計算」)に書いたような写像と同値類の関係についてまとめています。現在はただまとめただけです。

群の準同型定理の説明をなるべく写像の性質と群の性質に分けて議論しようとしているのですが、保留中です。

人工知能的サーバー対ブラウザー

以前書いた「平方根を求めるプログラム」を ChatGPT で調べながら書きました。これも以前書いたものとほとんど同じものを書いています。このプログラムの mutable な変数を immutable な変数に変更するとどうなるかということを考えようとしているのですが、保留中です。

今後の予定

Prolog の処理系をモノイドを使って説明する予定です。これを使って「理想的な並行論理プログラミング言語」について調べます。

関数プログラミング」では、論理プログラミング言語を使って関数プログラミングを実現する方法を考えていました。これを上記の「理想的な並行論理プログラミング言語」を使って行う予定です。

関数プログラミングと無限論理多項式」では、クロージャーが使える言語を定義しました。これを使ってクロージャーの mutable な変数を immutable な変数に変更することを考えます。

「ラムダ計算と無限ラムダ多項式」では、上記のものから派生した言語を定義しました。これについても同様のことを考えます。