From a Constraint Logic Programming Language to a Formal Verification Tool

📅 2025-05-23
📈 Citations: 0
Influential: 0
📄 PDF
🤖 AI Summary
This paper addresses the semantic gap between programming and specification in formal verification by extending the {log} constraint logic programming language into an integrated verification framework that unifies program execution and automated proof. Methodologically, it constructs an executable state-machine model grounded in set theory and binary relations, enabling unified support for modeling, scenario execution, verification condition generation, SMT-based automated proving, and test-case generation. Crucially, it achieves, for the first time, dual semantics—where the same set-theoretic code serves both as an executable program and a formal specification. Contributions include: (1) eliminating the semantic divide between programming and verification; and (2) establishing an end-to-end verification environment that achieves fully automated security verification and high-coverage test generation on multiple industrial-scale protocols, with verification efficiency substantially surpassing traditional approaches.

Technology Category

Application Category

📝 Abstract
{log} (read 'setlog') was born as a Constraint Logic Programming (CLP) language where sets and binary relations are first-class citizens, thus fostering set programming. Internally, {log} is a constraint satisfiability solver implementing decision procedures for several fragments of set theory. Hence, {log} can be used as a declarative, set, logic programming language and as an automated theorem prover for set theory. Over time {log} has been extended with some components integrated to the satisfiability solver thus providing a formal verification environment. In this paper we make a comprehensive presentation of this environment which includes a language for the description of state machines based on set theory, an interactive environment for the execution of functional scenarios over state machines, a generator of verification conditions for state machines, automated verification of state machines, and test case generation. State machines are both, programs and specifications; exactly the same code works as a program and as its specification. In this way, with a few additions, a CLP language turned into a seamlessly integrated programming and automated proof system.
Problem

Research questions and friction points this paper is trying to address.

Develops a formal verification tool from a CLP language
Integrates set theory for automated theorem proving
Combines programming and specification in state machines
Innovation

Methods, ideas, or system contributions that make the work stand out.

CLP language with set and relation support
Automated theorem prover for set theory
Integrated programming and proof system
🔎 Similar Papers
2024-07-04Science of Computer ProgrammingCitations: 4
M
Maximiliano Cristi'a
Universidad Nacional de Rosario and CIFASIS
A
Alfredo Capozucca
Universit´e du Luxembourg
G
Gianfranco Rossi
Universit`a di Parma