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. [email protected] | [b] University of Chieti-Pescara, Viale Pindaro 42, 65127, Pescara, Italy. [email protected] | [c] University of Rome Tor Vergata, Via del Politecnico 1, 00133 Rome, Italy. [email protected]; [email protected] | [d] IASI-CNR, Via dei Taurini 19, 00185 Rome, Italy. [email protected]
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
[email protected]
For editorial issues, like the status of your submitted paper or proposals, write to [email protected]
IOS Press
Nieuwe Hemweg 6B
1013 BG Amsterdam
The Netherlands
Tel: +31 20 688 3355
Fax: +31 20 687 0091
[email protected]
For editorial issues, permissions, book requests, submissions and proceedings, contact the Amsterdam office [email protected]
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
[email protected]
For editorial issues, like the status of your submitted paper or proposals, write to [email protected]
如果您在出版方面需要帮助或有任何建, 件至: [email protected]