Searching for just a few words should be enough to get started. If you need to make more complex queries, use the tips below to guide you.
Issue title: Special Issue on the 29th Italian Conference on Computational Logic: CILC 2014
Guest editors: Laura Giordano, Valentina Gliozzi, Alberto Pettorossi and Gian Luca Pozzato
Article type: Research Article
Authors: De Angelis, Emanuelea | Fioravanti, Fabiob | Pettorossi, Albertoc; † | Proietti, Mauriziod
Affiliations: [a] University of Chieti-Pescara, Viale Pindaro 42, 65127, Pescara, Italy. emanuele.deangelis@unich.it | [b] University of Chieti-Pescara, Viale Pindaro 42, 65127, Pescara, Italy. fabio.fioravanti@unich.it | [c] University of Rome Tor Vergata, Via del Politecnico 1, 00133 Rome, Italy. pettorossi@info.uniroma2.it; adp@iasi.cnr.it | [d] IASI-CNR, Via dei Taurini 19, 00185 Rome, Italy. maurizio.proietti@iasi.cnr.it
Correspondence: [†] Address for correspondence: University of Rome Tor Vergata, Via del Politecnico 1, 00133 Rome, Italy
Note: [*] This work has been partially supported by the National Group of Computing Science (GNCS-INDAM). E. De Angelis, F. Fioravanti, and A. Pettorossi are research associates at IASI-CNR, Rome, Italy.
Abstract: The transformation of constraint logic programs (CLP programs) has been shown to be an effective methodology for verifying properties of imperative programs. By following this methodology, we encode the negation of a partial correctness property of an imperative program prog as a predicate incorrect defined by a CLP program T, and we show that prog is correct by transforming T into the empty program (and thus incorrect does not hold) through the application of semantics preserving transformation rules. We can also show that prog is incorrect by transforming T into a program with the fact incorrect (and thus incorrect does hold). Some of the transformation rules perform replacements of constraints that are based on properties of the data structures manipulated by the program prog. In this paper we show that Constraint Handling Rules (CHR) are a suitable formalism for representing and applying constraint replacements during the transformation of CLP programs. In particular, we consider programs that manipulate integer arrays and we present a CHR encoding of a constraint replacement strategy based on the theory of arrays. We also propose a novel generalization strategy for constraints on integer arrays that combines CHR constraint replacements with various generalization operators on integer constraints, such as widening and convex hull. Generalization is controlled by additional constraints that relate the variable identifiers in the imperative program prog and the CLP representation of their values. The method presented in this paper has been implemented and we have demonstrated its effectiveness on a set of benchmark programs taken from the literature.
Keywords: Constraint Handling Rules, Constraint logic programming, Program transformation, Program verification
DOI: 10.3233/FI-2017-1461
Journal: Fundamenta Informaticae, vol. 150, no. 1, pp. 73-117, 2017
IOS Press, Inc.
6751 Tepper Drive
Clifton, VA 20124
USA
Tel: +1 703 830 6300
Fax: +1 703 830 2300
sales@iospress.com
For editorial issues, like the status of your submitted paper or proposals, write to editorial@iospress.nl
IOS Press
Nieuwe Hemweg 6B
1013 BG Amsterdam
The Netherlands
Tel: +31 20 688 3355
Fax: +31 20 687 0091
info@iospress.nl
For editorial issues, permissions, book requests, submissions and proceedings, contact the Amsterdam office info@iospress.nl
Inspirees International (China Office)
Ciyunsi Beili 207(CapitaLand), Bld 1, 7-901
100025, Beijing
China
Free service line: 400 661 8717
Fax: +86 10 8446 7947
china@iospress.cn
For editorial issues, like the status of your submitted paper or proposals, write to editorial@iospress.nl
如果您在出版方面需要帮助或有任何建, 件至: editorial@iospress.nl