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

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

ビジュアルプログラミング(2)

数式変形システムのイメージ

前回の数式の変形を行うシステムを作ります。以下のようなイメージのものを作りたいと思います。

(ステージ 1) プログラミング

(0) 最初の状態

以下の  \rho_1 から  \rho_6 までの書き換え規則が表示されています。
 \begin{cases}
\rho_{1} & = & ( & x & \mapsto & e  x & \to & x & ) \\
\rho_{2} & = & ( & x & \mapsto & x & \to & e  x & ) \\
\rho_{3} & = & ( & x & \mapsto & x^{-1}  x & \to & e & ) \\
\rho_{4} & = & ( & x & \mapsto & e & \to & x^{-1}  x & ) \\
\rho_{5} & = & ( & x, y, z & \mapsto & (x  y)  z & \to & x  (y  z) & ) \\
\rho_{6} & = & ( & x, y, z & \mapsto & x  (y  z) & \to & (x  y)  z & ) \\
\end{cases}
また、いくつかの式が表示されています。

(1) 最初の式  e^{-1}  x

最初の式  e^{-1}  x を式の領域にドラッグ&ドロップします。(最初の式がない状態から始めることもできます。このときは任意の式に対する変形を表します。)

(2)  e^{-1}  x \xrightarrow{\rho_{2},3} e^{-1}  (e  x)

 e^{-1}  x の位置  3 \rho_{2} をドラッグ&ドロップすると以下のように表示されます。
 \begin{matrix}
 & e^{-1}  x \\
\xrightarrow{\rho_{2},3} & e^{-1}  (e  x) \\
\end{matrix}

(3)  e^{-1}  (e  x) \xrightarrow{\rho_{6},0} (e^{-1}  e)  x

 e^{-1}  (e  x) の位置  0 \rho_{6} をドラッグ&ドロップすると以下のように表示されます。
 \begin{matrix}
 & e^{-1}  x \\
\xrightarrow{\rho_{2},3} & e^{-1}  (e  x) \\
\xrightarrow{\rho_{6},0} & (e^{-1}  e)  x \\
\end{matrix}

(4)  (e^{-1}  e)  x \xrightarrow{\rho_{3},1} e  x

 (e^{-1}  e)  x の位置  1 \rho_{3} をドラッグ&ドロップすると以下のように表示されます。
 \begin{matrix}
 & e^{-1}  x \\
\xrightarrow{\rho_{2},3} & e^{-1}  (e  x) \\
\xrightarrow{\rho_{6},0} & (e^{-1}  e)  x \\
\xrightarrow{\rho_{3},1} & e  x \\
\end{matrix}

(5)  ex \xrightarrow{\rho_{1},0} x

 ex の位置  0 \rho_{1} をドラッグ&ドロップすると以下のように表示されます。
 \begin{matrix}
 & e^{-1}  x \\
\xrightarrow{\rho_{2},3} & e^{-1}  (e  x) \\
\xrightarrow{\rho_{6},0} & (e^{-1}  e)  x \\
\xrightarrow{\rho_{3},1} & e  x \\
\xrightarrow{\rho_{1},0} & x \\
\end{matrix}

(6) 規則  \rho_7 \rho_8 の登録

「規則の登録」のボタンを押すと  \rho_7 = ( x \mapsto e^{-1}x \to x )、その逆方向の  \rho_8 = ( x \mapsto x \to e^{-1}x ) が登録され、規則の領域に表示されます。

(7)  \rho_9 から  \rho_{24} までの登録

同様に  \rho_9 から  \rho_{24} までを登録します。

(ステージ 2) 結果の表示

プログラミングのステージが終わると結果の表示のステージに切り替えることができます。結果の表示のステージでは、プログラミングのステージの各段階が表示されていて、「次に進む」と「前に戻る」ボタンを押すことによって、表示を切り替えることができます。

たとえば、プログラミングのステージの(1)が表示されているとき、「次に進む」ボタンを押すと、ドラッグ&ドロップの様子が表示されて(2)の表示に変わります。逆に、(2)が表示されているとき、「前に戻る」ボタンを押すと、ドラッグ&ドロップの逆の様子が表示されて(1)の表示に変わります。