Skip to Main Content (Press Enter)

Logo UNICH
  • ×
  • Home
  • Corsi
  • Insegnamenti
  • Professioni
  • Persone
  • Pubblicazioni
  • Strutture
  • Terza Missione
  • Attività
  • Competenze

UNI-FIND
Logo UNICH

|

UNI-FIND

unich.it
  • ×
  • Home
  • Corsi
  • Insegnamenti
  • Professioni
  • Persone
  • Pubblicazioni
  • Strutture
  • Terza Missione
  • Attività
  • Competenze
  1. Pubblicazioni

Predicate Pairing for program verification

Articolo
Data di Pubblicazione:
2018
Abstract:
It is well-known that the verification of partial correctness properties of imperative programs can be reduced to the satisfiability problem for constrained Horn clauses (CHCs). However, state-of-the-art solvers for constrained Horn clauses (or CHC solvers) based on predicate abstraction are sometimes unable to verify satisfiability because they look for models that are definable in a given class A of constraints, called A-definable models. We introduce a transformation technique, called Predicate Pairing, which is able, in many interesting cases, to transform a set of clauses into an equisatisfiable set whose satisfiability can be proved by finding an A-definable model, and hence can be effectively verified by a state-of-the-art CHC solver. In particular, we prove that, under very general conditions on A, the unfold/fold transformation rules preserve the existence of an A-definable model, that is, if the original clauses have an A-definable model, then the transformed clauses have an A-definable model. The converse does not hold in general, and we provide suitable conditions under which the transformed clauses have an A-definable model if and only if the original ones have an A-definable model. Then, we present a strategy, called Predicate Pairing, which guides the application of the transformation rules with the objective of deriving a set of clauses whose satisfiability problem can be solved by looking for A-definable models. The Predicate Pairing (PP) strategy introduces a new predicate defined by the conjunction of two predicates occurring in the original set of clauses, together with a conjunction of constraints. We will show through some examples that an A-definable model may exist for the new predicate even if it does not exist for its defining atomic conjuncts. We will also present some case studies showing that Predicate Pairing plays a crucial role in the verification of relational properties of programs, that is, properties relating two programs (such as program equivalence) or two executions of the same program (such as non-interference). Finally, we perform an experimental evaluation of the proposed techniques to assess the effectiveness of Predicate Pairing in increasing the power of CHC solving. © 2017 Cambridge University Press.
Tipologia CRIS:
1.1 Articolo in rivista
Keywords:
constrained Horn clauses; constraint logic programming; program transformation; program verification; relational properties of programs; Software; Theoretical Computer Science; Hardware and Architecture; Computational Theory and Mathematics; Artificial Intelligence
Elenco autori:
De Angelis, Emanuele; Fioravanti, Fabio; Pettorossi, Alberto; Proietti, Maurizio
Autori di Ateneo:
FIORAVANTI Fabio
Link alla scheda completa:
https://ricerca.unich.it/handle/11564/684490
Pubblicato in:
THEORY AND PRACTICE OF LOGIC PROGRAMMING
Journal
  • Dati Generali

Dati Generali

URL

https://www.cambridge.org/core/journals/theory-and-practice-of-logic-programming/article/predicate-pairing-for-program-verification/B08A98108E8201CE0A3B6EB3621AC0E8
  • Utilizzo dei cookie

Realizzato con VIVO | Designed by Cineca | 25.11.5.0