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

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

ChatGPT

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

今回は ChatGPT で Python から F# に書き換えたのですが、これはそのままでは動かなくて、かなり書き直しました。このプログラムの mutable な変数を mutable ではないものに変更するとどうなるか、ということを考えたいのですが、これはなかなか難しそうで…

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

前回のサンプルは、「ユーザーの入力をサーバーのプログラムに反映させるにはどうするか」というものでした。以前のこのブログで、これを変数が変更可能なプログラミング言語で書いたものを、変数が変更不可能なものに書き換えるということをやっていました…

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

もう一つの問題として、このプログラムを Haskell で書くとどうなるかということを考えます。Numbers クラスでは情報を保持するようになっていますが、Haskell では変数の値を変更することができないので、同じようにはできません。この問題をどうするかとい…

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

ChatGPT で調べながら 3 の平方根を求めるプログラムを decimal モジュールを使うように書き直しました。 import decimal # Decimalコンテキストの設定 decimal.getcontext().prec = 21 # 精度を21桁に設定 def UnfoldL(next, init): src = init while True:…

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

ChatGPT で以下のように入力してみました。 「以下のようなプログラムを書いてください: ユーザーはブラウザーを通してサーバーと通信しています。 ユーザーはサーバーから、ある自然数と、その数の平方根をある桁数まで計算したものを受け取ることができま…

人工知能的代数学(11)

ビジュアルプログラミング 「ビジュアルプログラミング」の項目では、数式の変形で記述すると複雑になるものをビジュアルプログラミングの手法でわかりやすくできないかということを調べていました。ここで扱った「置換の分類」、「交換子の計算」、「マグマ…

人工知能的代数学(10)

マグマの計算(4) 「エレファントな群とリー代数(2) - エレファント・ビジュアライザー調査記録」でやった「モノイドの左逆元・右逆元」の問題をやります。これも基本的には Python に書き換えただけになっています。前回のプログラムでは表示される式が多す…

人工知能的代数学(9)

マグマの計算(3) 前回の「マグマの左単位元と右単位元」では、等式の集合から推移律によって新しい等式の集合を作っていましたが、等式の数が多くなりすぎるので、「エレファントな群とリー代数(1) - エレファント・ビジュアライザー調査記録」と同様に一つ…

人工知能的代数学(8)

マグマの計算(2) 「マグマの左単位元と右単位元」の続きです。「推移閉包を求めるプログラム」は使えそうにないので、推移律を一回だけ適用するように変更しました。 class Exp: pass # Multiplication クラス class Multiplication(Exp): def __init__(self…

人工知能的代数学(7)

マグマの計算 「マグマの左単位元と右単位元」の問題の構文解析を ChatGPT でやってみるため以下のように入力しました。 「マグマ(二項演算をもつ代数的構造)の構文解析をするプログラムを書いてください: 演算子は * とします。 かっこを使えるとします。 …

人工知能的代数学(6)

交換子の計算(2) 「マグマの左単位元と右単位元」の問題の構文解析を ChatGPT でやってみようと入力したところ、「Lark ライブラリ」を使ったプログラムが返ってきました。そこでいったんこのプログラムを自分で改造して交換子の計算の構文解析をやってみる…

人工知能的代数学(5)

交換子の計算 以前引用した交換子の計算をするプログラムを作成しました。これは ChatGPT で「文字列を逆順にして、大文字を小文字に、小文字を大文字に変換したものを取得するプログラムを書いてください」と「文字列の中に「大文字とその文字の小文字」か…

人工知能的代数学(4)

プログラムの改造(2) 前回のプログラムに、互換に適用した場合のコメントを入れます。assert を入れようと思ったのですが、うまくできなかったのでコメントだけです。ChatGPT で assert とコメントを入れることができれば良いのですが、やり方がわからないの…

人工知能的代数学(3)

置換の分類(2) ChatGPT で以下のように入力しました。 置換を隣接互換の積に分解するプログラムを書いてください これは正しいプログラムを得ることができました。 def adjacent_transpositions(perm): """ 指定された置換を隣接互換の積に分解します。 :par…

人工知能的代数学(2)

置換の分類 Visual Studio でデザイナーが開けなくなったので、C# を使うのをやめて、Google Colab というのを使ってみました。これは Python を使うことになります。これにはプログラムを書いてくれる機能があって、「 を指定して、 次の対称群のすべての元…

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

理想的な並行論理プログラミング言語 「論理プログラミング」、「論理計算と随伴関手」、「半環上のフラクタル代数」、「フラクタル代数言語 Fractal」、「一階述語論理」などの内容です。以下のようなことを考察します。 Prolog のプログラムを「プログラム…

人工知能的写像の理論(1)

写像と同値類 ChatGPTでブログの記事を分析したものを書いてもらうというのはなかなか難しそうなので、ChatGPTでいろいろやりとりしながら、それを参考に記事の内容をまとめてみることにします。まず写像と同値類の関係についてまとめてみます。「群論の計算…

人工知能的代数学(1)

目標 ここでは「群論の計算」などで扱っている問題をChatGPTを使って書いていきます。まず、これは何のためにやっているのかを書きます。これはChatGPTではなかなかちゃんとした答えが返ってくるように書くのは難しいようなので、大まかなことは自分で書きま…

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

並行論理プログラミングと半環 「論理プログラミング」では PLP と PLP+ というプログラミング言語を考えています。PLP は「Prolog について」のところで書いたような理想的な並行 Prolog です。PLP+ はこれの無限に実行できるバージョンなのですが、PLP が…

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

半環について Prolog のプログラムは論理式と解釈できます。論理式の全体は分配束となります。分配束は(単位元の存在などを無視すると)半環となります。このブログでは Prolog のプログラムを半環を使って調べています。分配束を使って調べても良いのですが…

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

Prolog について Prolog について調査します。以下はChatGPTでいろいろ聞いてみたことの答えです。Prolog の本はあまり見つからないのでこの情報は役立ちます。 プログラミング言語 Prolog の詳しい仕様を教えてください Prolog(Programming in Logic)は、…

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

F# と Haskell のサンプル F# と Haskell でもサンプルを書いてもらいます。この理由は、このようなプログラムは F# では書くことができるが Prolog ではできないという予想で、Prolog にどのような機能を追加すればできるかをこのブログでは調べていたため…

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

Prolog のサンプル いったん Prolog で書いてもらうことにします。以下のように入力しました。 このプログラムを Prolog で書いてください 以下は回答です。 以下は、Prologで素数登録システムを実装するためのコード例です。このコードは、Prologの論理プロ…

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

すべて言葉で説明しようとするとうまくいかないということがわかってきたので、いったんサンプルプログラムを作ってもらうことにします。しかしプログラムを作ってもらうことは、今のところあまりうまくいっていません。以下のように入力しました。 サーバー…

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

ChatGPTで証明を書いてもらうことやプログラムを書いてもらうことは今のところ失敗しているので、ここで扱う問題について日本語で書いてもらうことにします。まず「論理プログラミング」などで扱っている問題について聞いてみます。 このブログの目標につい…

半群の右単位元と左単位元(5)

なかなか変数を置き換えてくれません。いったん構文を書いてもらうことにします。以下のように入力しました。 半群の等式の構文を BNF で書いてください 以下は引用です。 以下は、与えられた半群の等式の構文を BNF (Backus-Naur Form) で表現したものです…

関数型言語の拡張(3)

ここでもChatGPTでプログラムの仕様を書いてもらいます。以下のように入力しました。 次のようなプログラムを考えます。今日から一日に一回、気象観測システムからその日の天気が晴れなのか雨なのかという情報が送られてきます。このプログラムはこの情報を…

半群の右単位元と左単位元(4)

ChatGPTで単純に日本語で指摘すると、ChatGPTは単に日本語を生成するだけなのでうまくいかない、というようなことが何かの本に書かれていたような気がします。そこで、何かChatGPTが知っていることをやると良いのかと思われるのでやってみたいと思います。し…

状態を持つラムダ計算(1)

ChatGPTに入力してみることの続きです。今のところ自分でプログラムを書くぐらいの入力をしてもプログラムをちゃんと書いてくれないし、自分で証明を書くぐらいの入力をしても証明をちゃんと書いてくれないという状況です。今はやり方が書かれた本がいろいろ…

指数関数(3)

今度はプログラムを書いてもらいます。プログラムを書いてもらう方がちゃんとできることが多いという印象です。プログラムを書くことができて、そのプログラムが停止するならば、証明ができたということになります。以下のように入力しました。 連続の公理(…