0

この証明を思い出してください。

solve(true, true).
solve([], []). 
solve([A|B],[ProofA|ProofB]) :-
   solve(A,ProofA),
   solve(B, ProofB).
solve(A, node(A,Proof)) :-
   rule(A,B),
   solve(B,Proof).

次のように、インタープリターの 3 番目の規則が変更され、インタープリターの他の規則は変更されていないとします。

% Signature: solve(Exp, Proof)/2 solve(true, true). 
solve([], []).                                      
solve([A|B], [ProofA|ProofB]) :-
   solve(B, ProofB),   %3
   solve(A, ProofA). 
solve(A, node(A, Proof)) :-
   rule(A, B),
   solve(B, Proof). 

両方のバージョンのクエリに対して作成されるプルーフ ツリーを考えてみましょう。変数の置換は、1 つのバージョンだけで実現できますか? 説明。一番左の無限枝の向こう側に本葉が移動することはありますか? 説明。両方の質問で、答えが肯定的である場合の例を挙げてください。これは証明にどのように影響しますか?

私を助けてください !TX

4

1 に答える 1