Proving Correctness and Completeness of Normal Programs - a Declarative Approach
W. Drabent, M. Milkowska

TL;DR
This paper introduces a declarative method for proving correctness, completeness, and termination of normal logic programs using classical logic and 3-valued semantics, avoiding operational semantics.
Contribution
It presents novel proof methods for correctness and completeness of normal logic programs based solely on logical interpretations, generalizing existing approaches.
Findings
Proof methods employ classical 2-valued logic
Uses 3-valued completion semantics for normal programs
Generalizes termination proof techniques
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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsLogic, Reasoning, and Knowledge · Logic, programming, and type systems · Advanced Algebra and Logic
