Search papers, labs, and topics across Lattice.
This paper explores the relationship between Ciao assertions and LPTP theorems by developing a systematic translation scheme that converts Ciao assertions into LPTP formulae. The authors characterize assertion classes based on their logical encodability and propose strategies for handling cases that cannot be directly translated, analyzing the soundness and completeness trade-offs involved. This integration allows for enhanced assertion checking in Ciao through the deductive verification capabilities of LPTP, thereby improving the verification process in logic programming.
Bridging Ciao assertions with LPTP theorems reveals new pathways for robust program verification by leveraging the strengths of both frameworks.
Abstract interpretation-based verification is a central component of the Ciao Prolog system, enabling expressive specifications of properties of programs, predicates, and execution states. Independently, the LPTP (Logic Programming Theorem Proving) framework offers a first-order logical formalism for expressing and proving properties of predicates. In this paper, we address a fundamental issue in relating these two frameworks: studying the translation of Ciao assertions into LPTP formulae and identifying a partial correspondence between assertion-based and logic-based specifications. We introduce a systematic translation scheme, characterize assertion classes according to their logical encodability, and propose approximation strategies and auxiliary constructs for non-translatable cases, and finally analyze the resulting soundness and completeness trade-offs. We argue that our proposal enables a tight integration of Ciao's assertion checking with LPTP-based deductive verification, thereby leveraging their complementary capabilities.