Truth versus information in logic programming
Lee Naish, Harald S{\o}ndergaard

TL;DR
This paper unifies different three-valued semantics for logic programming using Belnap's four-valued logic, providing new insights into program analysis, debugging, and the relationship between specifications and executions.
Contribution
It introduces a four-valued logic framework that unifies existing three-valued semantics, enhancing understanding of logic programming semantics and related applications.
Findings
Unifies three-valued semantics using Belnap's four-valued logic.
Reveals the duality between truth and information orderings.
Provides new perspectives on program analysis and debugging.
Abstract
The semantics of logic programs was originally described in terms of two-valued logic. Soon, however, it was realised that three-valued logic had some natural advantages, as it provides distinct values not only for truth and falsehood, but also for "undefined". The three-valued semantics proposed by Fitting and by Kunen are closely related to what is computed by a logic program, the third truth value being associated with non-termination. A different three-valued semantics, proposed by Naish, shared much with those of Fitting and Kunen but incorporated allowances for programmer intent, the third truth value being associated with underspecification. Naish used an (apparently) novel "arrow" operator to relate the intended meaning of left and right sides of predicate definitions. In this paper we suggest that the additional truth values of Fitting/Kunen and Naish are best viewed as duals.…
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.
