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

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

人工知能的代数学(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)

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

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

前回は式が一致するかどうかを調べてくれなかったので、さらにやってみます。 半群の二つの等式を構文解析して、一方の等式の片側の式(両辺のうちのどちらかの式)と、もう一方の等式の片側の式(両辺のうちのどちらかの式)とが、一致するかどうかを調べます。…

関数型言語の拡張(2)

プログラミング言語に関する質問をChatGPTに入力してみることの続きです。変数を変更することができる関数型言語のプログラムを変数を変更することができない関数型言語のプログラムに変換するという問題を考えます。ここで扱う例はクロージャーには関係なく…

関数プログラミングのクロージャー(1)

プログラミング言語に関する質問をChatGPTに入力してみる「関数型言語の拡張」の続きです。変数を変更することができない純粋関数型言語では状態を変化させながら無限に動作することはできないが、変数を変更することができる場合はできる、ということはたぶ…

指数関数(2)

直接やり方を書いたらできるのかどうかをやってみます。『手を動かしてまなぶ ε-δ論法』に従って以下のように入力してみます。 連続の公理(上に有界な単調増加数列は収束する)から、任意の実数 と任意の実数 に対して、 を満たす自然数 が存在することを証明…

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

引き続きChatGPTを使ってみます。なかなかできませんけどこのブログに書いたことが意味を持つためにはできない方が良いので、気楽にやってみることができます。具体的に書いてみたらどうなるのかやってみます。以下のように入力しました。 半群の等式を構文…

関数型言語の拡張(1)

プログラミング言語に関する質問をChatGPTに入力してみることにします。この目的は関数型言語に無限に動作するための機能を追加することです。 純粋関数型言語のクロージャーについて教えてください これは思っていた答えと違いました。 純粋関数型言語では…

指数関数(1)

この例は自然数の指数の定義を拡張して複素数の指数関数を定義するにはテイラー展開を使うのが簡単だということを示すプログラムを作成するのが目標です。この例はChatGPTが流れはだいたい合っている証明を返してくれます。このような例についても見ていきま…

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

ここではこのブログで書いたことや検討中のことをChatGPTでやってみたらどうなるかを調べることにします。もし簡単にできるようならブログを書く意味がなくなるので、やってみた方が良いと考えました。とりあえずいろいろやってみたところ、簡単にはできませ…

中間報告(17)

このブログの目的の一つは、SNS等でユーザーから入力された内容をサーバーのプログラムに反映することです。現在はサーバーのプログラムと、それに対応するブラウザー等で動作するプログラムが別々になっていて、ブラウザー側でユーザーが入力した内容が何に…

不完全性定理(4)

『不完全性定理とはなにか (ブルーバックス)』の不完全性定理の証明とチューリング機械の停止問題の証明について考えると、チューリング機械の停止問題の証明ではチューリング機械が停止するかどうか判定できると仮定したのに対して、不完全性定理の証明では…

不完全性定理(3)

『不完全性定理とはなにか (ブルーバックス)』の不完全性定理の証明をプログラミング言語を使って書き直していきます。しかし、すべてプログラミング言語のようにはできないので、まずはデータをプログラミング言語の式のように表すことを考えます。 不完全…

今後の目標(1)

「不完全性定理」の証明を書き直そうとしていたら新年になってしまいました。今後の目標を書いていこうと思います。毎年何か書こうと思っていたのですが、PCが壊れてから書いていませんでした。 このブログについて サーバーで永久に動作するプログラムを論…

不完全性定理(2)

『不完全性定理とはなにか (ブルーバックス)』では「チューリング機械の停止問題」を参考にして「不完全性定理」を考えるということなので、前回は「チューリング機械の停止問題」について調べてみました。チューリング機械を扱うのではなく、無限のメモリー…