We present a method for verifying properties of imperative programs manipulating integer arrays. We assume that we are given a program and a property to be verified. The {\em interpreter} (that is, the operational semantics) of the program is specified as a set of Horn clauses with constraints in the domain of integer arrays, also called {\em constraint logic programs over integer arrays}, denoted CLP(Array). Then, by specializing the interpreter with respect to the given program and property, we generate a set of {\em verification conditions} (expressed as a CLP(Array) program) whose satisfiability implies that the program verifies the given property. Our verification method is based on transformations that preserve the least model semantics of CLP(Array) programs, and hence the satisfiability of the verification conditions. In particular, we apply the usual rules for CLP transformation, such as unfolding, folding, and constraint replacement, tailored to the specific domain of integer arrays. We propose an automatic strategy that guides the application of those rules with the objective of deriving a new set of verification conditions which is either trivially satisfiable (because it contains no constrained facts) or is trivially unsatisfiable (because it contains the fact \textit{false}). Our approach provides a very rich program verification framework where one can compose together several verification strategies, each of them being implemented by transformations of CLP(Array) programs.

De Angelis, E., Fioravanti, F., Pettorossi, A., Proietti, M. (2014). Verifying Array Programs by Transforming Verification Conditions. In Verification, Model Checking, and Abstract Interpretation: 15th International Conference, VMCAI 2014, San Diego, CA, USA, January 19-21, 2014, Proceedings (pp.182-202). BERLIN -- DEU : Springer Berlin Heidelberg [10.1007/978-3-642-54013-4_11].

Verifying Array Programs by Transforming Verification Conditions

PETTOROSSI, ALBERTO;
2014-01-01

Abstract

We present a method for verifying properties of imperative programs manipulating integer arrays. We assume that we are given a program and a property to be verified. The {\em interpreter} (that is, the operational semantics) of the program is specified as a set of Horn clauses with constraints in the domain of integer arrays, also called {\em constraint logic programs over integer arrays}, denoted CLP(Array). Then, by specializing the interpreter with respect to the given program and property, we generate a set of {\em verification conditions} (expressed as a CLP(Array) program) whose satisfiability implies that the program verifies the given property. Our verification method is based on transformations that preserve the least model semantics of CLP(Array) programs, and hence the satisfiability of the verification conditions. In particular, we apply the usual rules for CLP transformation, such as unfolding, folding, and constraint replacement, tailored to the specific domain of integer arrays. We propose an automatic strategy that guides the application of those rules with the objective of deriving a new set of verification conditions which is either trivially satisfiable (because it contains no constrained facts) or is trivially unsatisfiable (because it contains the fact \textit{false}). Our approach provides a very rich program verification framework where one can compose together several verification strategies, each of them being implemented by transformations of CLP(Array) programs.
15th International Conference on Verification, Model Checking, and Abstract Interpretation (VMCAI 2014)
San Diego, USA
2014
15
Rilevanza internazionale
contributo
2014
2014
Settore ING-INF/05 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI
Settore INF/01 - INFORMATICA
English
Intervento a convegno
De Angelis, E., Fioravanti, F., Pettorossi, A., Proietti, M. (2014). Verifying Array Programs by Transforming Verification Conditions. In Verification, Model Checking, and Abstract Interpretation: 15th International Conference, VMCAI 2014, San Diego, CA, USA, January 19-21, 2014, Proceedings (pp.182-202). BERLIN -- DEU : Springer Berlin Heidelberg [10.1007/978-3-642-54013-4_11].
De Angelis, E; Fioravanti, F; Pettorossi, A; Proietti, M
File in questo prodotto:
Non ci sono file associati a questo prodotto.

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/2108/92207
Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus ND
  • ???jsp.display-item.citation.isi??? ND
social impact