Skip to Main Content (Press Enter)

Logo CNR
  • ×
  • Home
  • Persone
  • Pubblicazioni
  • Strutture
  • Competenze

UNI-FIND
Logo CNR

|

UNI-FIND

cnr.it
  • ×
  • Home
  • Persone
  • Pubblicazioni
  • Strutture
  • Competenze
  1. Pubblicazioni

Predicate Pairing for Program Verification

Articolo
Data di Pubblicazione:
2017
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 CHCs (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 (PP), 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 CHC solvers. We prove that, under very general conditions on A, the unfold/fold transformation rules preserve the existence of an A-definable model, i.e., 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 iff the original ones have an A-definable model. Then, we present the PP strategy which guides the application of the transformation rules with the objective of deriving a set of clauses whose satisfiability can be proved by looking for A-definable models. PP introduces a new predicate defined by the conjunction of two predicates together with some constraints. We 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 also present some case studies showing that PP plays a crucial role in the verification of relational properties of programs (e.g., program equivalence and non-interference). Finally, we perform an experimental evaluation to assess the effectiveness of PP in increasing the power of CHC solving.
Tipologia CRIS:
01.01 Articolo in rivista
Keywords:
Program Verification; Program Transformation; Constraints; Horn clauses
Elenco autori:
Fioravanti, Fabio; DE ANGELIS, Emanuele; Pettorossi, Alberto; Proietti, Maurizio
Autori di Ateneo:
DE ANGELIS EMANUELE
PROIETTI MAURIZIO
Link alla scheda completa:
https://iris.cnr.it/handle/20.500.14243/341305
Pubblicato in:
THEORY AND PRACTICE OF LOGIC PROGRAMMING (ONLINE)
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 | 26.5.0.0 | Sorgente dati: PREPROD (Ribaltamento disabilitato)