On systematic construction of correct logic programs
By: Włodzimierz Drabent
Potential Business Impact:
Makes computer programs always give correct answers.
Partial correctness of imperative or functional programming divides in logic programming into two notions. Correctness means that all answers of the program are compatible with the specification. Completeness means that the program produces all the answers required by the specifications. We also consider semi-completeness -- completeness for those queries for which the program does not diverge. This paper presents an approach to systematically construct provably correct and semi-complete logic programs, for a given specification. Normal programs are considered, under Kunen's 3-valued completion semantics (of negation as finite failure) and the well-founded semantics (of negation as possibly infinite failure). The approach is declarative, it abstracts from details of operational semantics, like e.g.\ the form of the selected literals (``procedure calls'') during the computation. The proposed method is simple, and can be used (maybe informally) in actual everyday programming.
Similar Papers
From Provable Correctness to Probabilistic Generation: A Comparative Review of Program Synthesis Paradigms
Programming Languages
Computers write code from simple instructions.
Paraconsistent Constructive Modal Logic
Logic in Computer Science
Helps computers think about things that are both true and false.
Programs Versus Finite Tree-Programs
Logic in Computer Science
Makes computer programs work like simple math.