🤖 AI Summary
This work establishes a formal correspondence between Ciao assertions and LPTP theorems to bridge abstract interpretation–based and logic-based program verification paradigms. It proposes a systematic translation methodology that precisely characterizes the class of assertions expressible in first-order logic and introduces approximation strategies together with auxiliary predicate construction mechanisms for cases that resist direct encoding. The study reveals, for the first time, a partial correspondence between these two assertion frameworks, yielding an operational translation framework that delineates the boundaries of logical expressiveness. By enabling a controllable trade-off between soundness and completeness, this approach provides both a theoretical foundation and a practical pathway toward hybrid program verification.
📝 Abstract
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.