Proving Correctness and Completeness of Normal Programs - a Declarative Approach
W. Drabent, M. Milkowska
Abstract
We advocate a declarative approach to proving properties of logic programs. Total correctness can be separated into correctness, completeness and clean termination; the latter includes non-floundering. Only clean termination depends on the operational semantics, in particular on the selection rule. We show how to deal with correctness and completeness in a declarative way, treating programs only from the logical point of view. Specifications used in this approach are interpretations (or theories). We point out that specifications for correctness may differ from those for completeness, as usually there are answers which are neither considered erroneous nor required to be computed. We present proof methods for correctness and completeness for definite programs and generalize them to normal programs. For normal programs we use the 3-valued completion semantics; this is a standard semantics corresponding to negation as finite failure. The proof methods employ solely the classical 2-valued logic. We use a 2-valued characterization of the 3-valued completion semantics which may be of separate interest. The presented methods are compared with an approach based on operational semantics. We also employ the ideas of this work to generalize a known method of proving termination of normal programs.
Create a lesson
Related papers
Polynomial VASS MDPs
Michal Ajdarow
Proceedings 23rd International Conference on Quantum Physics and Logic
John van de Wetering, Ognyan Oreshkov, Ana Belén Sainz
Final coalgebras over R-modules
Oisín Flynn-Connolly, Henning Basold, Chase Ford
Propositional Dynamic Logic with Program Costs
Krishna Manoorkar, Wolfgang Poiger
Math Foundation Formalization Agent: A General-Purpose Approach to Formalizing Mathematical Foundations
Jiaxin Xie, Guowei Dou, Xiang Ji et al.
Homomorphisms on a product of free convex semilattices
Ana Sokolova, Harald Woracek