Redundancy detection in logic programs is undecidable

The authors study the decidability of redundancy detection in logic programs which are composed of inference rules with functions in their arguments. They formally define redundancies based on the solution sets in logic programs, and represent solution sets in well-defined domains. They prove that redundancy detection in inference rules with functions is undecidable. The theoretical results obtained here complete the previously unknown properties of redundancy detection of logic programs. Except for nonrecursive inference rules, redundancy detection is undecidable in general. Although general results reveal the inherent difficulty of efficient execution of logic programs through redundancy detection, special redundant cases can still be detected and pruned. Tradeoffs between compile-time analysis of decidable cases and run-time checking of undecidable cases can still be made.<<ETX>>