私たちは、障害スライスの概念に基づいて、純粋で単調な Prolog プログラムにおける予期しない普遍的な非終了を説明するための診断ツールを実装しています。
論文「障害スライスを使用した非終了ロジック プログラムの理由のローカライズと説明false/0
」で紹介されているように、説明候補のプログラム フラグメント サイズを縮小するために (非終了を維持しながら)、いくつかのプログラム ポイントに目標が追加されます。
これまでのところ、とても良いです...だからここに私の質問があります1:
N 個の目標を持つ条項に N+1 個のプログラム ポイントがあるのはなぜですか?
または、より正確には:
なぜ N ポイントでは足りないのでしょうか? (N+1) 番目のプログラム ポイントが必要になることはありますか?
false
代わりに、懸念の述語の各使用にそれを移すことはできませんか?また、プログラムフラグメントは次のようなクエリにのみ使用されることがわかっています
?- G, false.
脚注 1:foo(bar,baz).
各事実は規則とみなされると仮定します。foo(bar,baz) :- true.