Machine-translated by Google. Questions are authored in English.
Top

Discussion

Why is Prolog incomplete as a theorem prover?

  • A.Horn clauses cannot express any interesting theorems
  • B.Unification without the occurs check is unsound
  • C.Negation as failure cannot be given a semantics
  • D.Its depth first search may descend an infinite branch forever

Answer: D

Choosing clauses in order and backtracking gives a depth first search that may follow a left recursive rule indefinitely without ever reaching a proof that a breadth first strategy would find. Reordering the clauses often fixes it, which is why the declarative reading is only an approximation. Horn expressiveness, the occurs check and negation semantics are separate issues, though the last two also affect soundness. A search strategy fixed for efficiency, at the cost of completeness, is the same trade depth first search always presents.

No comment is present. Be the first to comment.
Loading…

Post your comment

Please log in or register to post a comment.