氏名: 伊園基宏 (m953402)
論文題目: 動的項書き換え計算を用いた項書き換え系の
等価性判定の自動化に関する研究
論文概要
プログラムの等価性は、プログラムの信頼性向上のために最も基本的な問題
の一つである。例えば、同一目的のプログラムを複数作成し、それらが等価で
あることを示すことができれば、そのプログラムの信頼性は高い。また、仕様
とプログラムが同一の言語で記述される場合には、両者の等価性を示すことで
プログラムが仕様を満たすことの検証ができる。
プログラムの等価性証明について議論を行なう場合、項書換え系(TRS)な
どの形式的な計算モデルを用いると都合がよく、実際、これまでにさまざまな
研究が行なわれている。TRS は方向付けられた等式の有限集合で、その等式に
従って与えられた項を書き換えていくことが TRS によって表される計算であ
る。馮 [94] では動的項書換え計算(DTRC)という TRS を拡張した計算モデ
ルを用いた TRS の等価性判定法が提案されている。その方法は概略次の通り
である。2つの TRS と被覆集合帰納法で使われる被覆集合が与えられたとき、
[< 等価性証明の環境 >](and([;: Hyp1](t1),...,[;: Hypm](tm)))
という形の DTRC 項を構成する。そして、この項を評価した結果が
[...](true) の形の DTRC 項になれば 2つの TRS が等価であるとする。この
方法では、2つの TRS の他に被覆集合を与えなければならないため、完全な等
価性証明の自動化にはなっていない。
本研究では、与えられた 2つの TRS がある条件を満たすとき、その TRS か
ら等価性証明に使える被覆集合を合成し、その被覆集合を用いて上述の DTRC
項を生成するアルゴリズムを示すとともに、その健全性、すなわち、生成され
た DTRC 項の評価が [...](true) になれば 2つのTRSは等価であることの証明
を与えた。このアルゴリズムにより、TRS の等価性判定の自動化が可能となる。
本論文の等価性判定法を、Toyama [91] で取り上げられている等価な TRS
の例に対して適用したところ、13例のうち 11例については自動証明に成功し
た。残りの 2例については自動証明に成功する被覆集合を合成できなかった。
これらの例に対してはユーザが被覆集合を与えなければ自動証明に成功しない。
今後はこのような例に対しても自動証明に成功するように、被覆集合の合成法
を改良するのが課題である。
目次に戻る