本論文では、Prologの制約論理プログラミング問題をSMT-LIBの形式に変換する手法を提案している。
まず、PrologとSMT-LIBの入力言語の概要を説明する。Prologは制約論理プログラミングの主要な言語で、関数、リスト、整数演算などの機能を持つ。一方、SMT-LIBはさまざまな理論をサポートする論理式の標準フォーマットで、CHCソルバーの入力言語として使われる。
次に、Prologの事実、ルール、リスト、整数演算をSMT-LIBに変換する具体的な手順を示す。Prologの項を表現するために、代数的データ型Uを導入する。Uには、Prologプログラムに現れる関数や定数がコンストラクタとして定義される。Prologの事実やルールはSMT-LIBの量化された制約として表現される。リストは再帰的なデータ型Lで表現し、整数演算はSMT-LIBの整数理論を使って表現する。
最後に、都市間の経路探索の例題をSMT-LIBに変換した例を示す。この変換されたプログラムをCHCソルバーに入力すると、最短経路の発見や、長さ制限付きの経路の存在性の検証ができる。
本手法により、Prologの制約論理プログラミング問題をCHCソルバーで解くことが可能になる。今後の課題として、Prologの言語機能をより忠実に表現する方法や、変換後の性能評価などが挙げられる。
Vers une autre langue
à partir du contenu source
arxiv.org
Questions plus approfondies