(Quang-Trung Ta, Ton Chanh Le, Siau-Cheng Khoo and Wei-Ngan Chin)
Separation logic の symbolic heap の entailment problem を解くために、自動で補題発見をしようというもの。その方法は、補題が必要そうな場所に(解釈を定めない)述語変数を置き、述語変数付きの判断の証明探索を行いながら述語変数への制約を収集し、集まった制約を解くというもの。未知述語変数付き判断の証明規則には、普通の証明規則に加えて、例えば 「」 という判断は「 という制約の下で空の仮定から証明できる」のような述語変数への制約付き規則がある。
概要
こういった研究の場合、まずポイントとなるのは、どこでどのように述語変数を使うかであろう。本論文においては次のようにしている:証明したい判断についての証明探索中で というゴールが出現したら、 と の適当な部分 を取り出して、 や といった形の未知述語変数付き判断を考える(つまり上手い U と V を探す)。ここで は に現れる変数全部の列挙である*1。もしこのような U があれば、そのひとつの解を としたとき、 を補題として登録する。
上の直感を押さえたら、後は比較的細々とした(しかしながら一定の重要性のあると判断されたであろう)ヒューリスティクスの話である。数ある議論の中で最も大切であろうヒューリスティクスを紹介する。ここでポイントとなるのは という判断の証明のための制約集合は、判断だけに依存するのではなく、証明の構造に依存するということである。極端な話、 が証明可能であれば U への制約は空にもできるが、一方で という制約付き規則を使って証明することもできる。この例では2つの制約は論理的に等価だが、 の証明探索中で可逆でない規則を使用すると論理的に等価でない制約を得ることがありえて、一般には解の有無まで異なる場合があるのが難しいところである。本当に欲しい制約は「目的の判断を証明する際に本当に現れる証明構造」から抽出される制約であるが、それが何であるかは探索中には分からない。したがって、本論文では、
という手順で補題発見を行っている。