We present a method for automatically generating verification conditions for a class of imperative programs and safety properties. Our method is parametric with respect to the semantics of the imperative programming language, as it specializes, by using unfold/fold transformation rules, a Horn clause interpreter that encodes that semantics. We define a multi-step operational semantics for a fragment of the C language and compare the verification conditions obtained by using this semantics with those obtained by using a more traditional small-step semantics. The flexibility of the approach is further demonstrated by showing that it is possible to easily take into account alternative operational semantics definitions for modeling new language features. Finally, we provide an experimental evaluation of the method by generating verification conditions using the multi-step and the small-step semantics for a few hundreds of programs taken from various publicly available benchmarks, and by checking the satisfiability of these verification conditions by using state-of-the-art Horn clause solvers. These experiments show that automated verification of programs from a formal definition of the operational semantics is indeed feasible in practice.

De Angelis, E., Fioravanti, F., Pettorossi, A., Proietti, M. (2015). Semantics-based generation of verification conditions by program specialization. In Proceedings of the 17th International Symposium on principles and practice of declarative programming, PPDP 2015 (pp.91-102). Association for Computing Machinery [10.1145/2790449.2790529].

Semantics-based generation of verification conditions by program specialization

PETTOROSSI, ALBERTO;
2015-01-01

Abstract

We present a method for automatically generating verification conditions for a class of imperative programs and safety properties. Our method is parametric with respect to the semantics of the imperative programming language, as it specializes, by using unfold/fold transformation rules, a Horn clause interpreter that encodes that semantics. We define a multi-step operational semantics for a fragment of the C language and compare the verification conditions obtained by using this semantics with those obtained by using a more traditional small-step semantics. The flexibility of the approach is further demonstrated by showing that it is possible to easily take into account alternative operational semantics definitions for modeling new language features. Finally, we provide an experimental evaluation of the method by generating verification conditions using the multi-step and the small-step semantics for a few hundreds of programs taken from various publicly available benchmarks, and by checking the satisfiability of these verification conditions by using state-of-the-art Horn clause solvers. These experiments show that automated verification of programs from a formal definition of the operational semantics is indeed feasible in practice.
17th International Symposium on Principles and Practice of Declarative Programming, PPDP 2015
Siena, Italy
2015
17.
Rilevanza internazionale
2015
Settore ING-INF/05 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI
English
Constraint logic programming; Horn clauses; Program specialization; Program verification; Semantics of programming languages; Software model checking; Verification conditions;
Intervento a convegno
De Angelis, E., Fioravanti, F., Pettorossi, A., Proietti, M. (2015). Semantics-based generation of verification conditions by program specialization. In Proceedings of the 17th International Symposium on principles and practice of declarative programming, PPDP 2015 (pp.91-102). Association for Computing Machinery [10.1145/2790449.2790529].
De Angelis, E; Fioravanti, F; Pettorossi, A; Proietti, M
File in questo prodotto:
File Dimensione Formato  
DeAngelisFPP_PPDP15_v4.pdf

solo utenti autorizzati

Licenza: Non specificato
Dimensione 234.77 kB
Formato Adobe PDF
234.77 kB Adobe PDF   Visualizza/Apri   Richiedi una copia

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/152707
Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus 19
  • ???jsp.display-item.citation.isi??? 17
social impact