Proving Program Properties by Means of SLS-Resolution

In order to design software that is intended to compute answers to queries that are in accordance with some logic programming semantics, one would like to offer up a formal specification of the software design which could be used profitably to construct the software, and one would want to be able to prove that the specification is in fact faithful to the semantics. This paper presents a constructive formal specification of semantic trees and truth-value determinations using semantic trees for disjunctive logic programs with negation as failure. This specification methodology directly supports the design of top-down interpreters for well-founded semantics.