On rewrite programs: Semantics and relationship with prolog
Journal
The Journal of Logic Programming
Journal Volume
14
Journal Issue
1-2
Pages
155-180
Date Issued
1992
Author(s)
Abstract
Rewrite programs are logic programs represented as rewrite rules, whose execution mechanism usually employs some version of Knuth-Bendix type completion. Rewrite programs allow one to express mutually exclusively defined predicates as well as those which are not. In this paper we demonstrate that rewrite programs, although denotationally equivalent to Prolog on the ground level, may produce fewer answers in general. Consequently, a rewrite program may halt with finitely many answers while the corresponding Prolog program goes into an infinite loop. In order to explain these observations, we present a precise operational semantics for rewrite programs, define their denotational (fixpoint) semantics, prove the equivalence of operational, model theoretic and denotational semantics, and clarify the relationships between rewrite programs and Prolog. Comparisons between the pruning effects of simplification and those of subsumption-based loop-checking mechanisms for Prolog are also included. © 1992.
Type
journal article
