学生プログラムが特定の目標を達成できるかどうかを確認できるプログラムを作成しようとしています。私はその部分を行うことができます。ここで、学生プログラムに実際に不要なコードが含まれているかどうかを確認したいと思います。このケースを解決するには、学生プログラムに特定の目標に貢献しない事実が含まれているかどうかを知る必要があると思います。しかし、目標に貢献しない事実を見つける方法がわかりません。
理解しやすくするために、より単純な例を考えてみましょう。この例では、指定された目標は次のとおりです。ジョンはトミーの祖父ですか?
father(john, jim).
father(jim, tomy).
father(john, david).
father(bruce, anne).
mother(mary, jim).
grandfather(A,B) :- father(A, X), father(X,B).
goal:- grandfather(john, tomy).
実際には、次の事実によってのみ目標を達成できます。
father(john, jim).
father(jim, tomy).
そして、私が知りたいのは、実際にはどの事実が目標に貢献していないかということです. 答えは、次のすべての事実になります。
father(john, david).
father(bruce, anne).
mother(mary, jim).
どんな助けでも本当に感謝しています。ありがとう