Sequential Generation of Structured Arrays and Its Deductive Verification
Affiliation auteurs | !!!! Error affiliation !!!! |
Titre | Sequential Generation of Structured Arrays and Its Deductive Verification |
Type de publication | Conference Paper |
Year of Publication | 2015 |
Auteurs | Genestier R, Giorgetti A, Petiot G |
Editor | Blanchette JC, Kosmatov N |
Conference Name | TESTS AND PROOFS, TAP 2015 |
Publisher | CEA LIST; Chair Software Engn ETH Zurich |
Conference Location | HEIDELBERGER PLATZ 3, D-14197 BERLIN, GERMANY |
ISBN Number | 978-3-319-21215-9; 978-3-319-21214-2 |
Mots-clés | Combinatorial enumeration, Deductive verification, Formal specification, Imperative program, Sequential generation |
Résumé | A structured array is an array satisfying given constraints, such as being sorted or having no duplicate values. Generation of all arrays with a given structure up to some given length has many applications, including bounded exhaustive testing. A sequential generator of structured arrays can be defined by two C functions: the first one computes an initial array, and the second one steps from one array to the next one according to some total order on the set of arrays. We formally specify with ACSL annotations that the generated arrays satisfy the prescribed structural constraints (soundness property) and that the generation is in increasing lexicographic order (progress property). We refine this specification into two programming and specification patterns: one for generation in lexicographic order and one for generation by filtering the output of another generator. We distribute a library of generators instantiating these patterns. After adding suitable loop invariants we automatically prove the soundness and progress properties with the Frama-C platform. |
DOI | 10.1007/978-3-319-21215-9_7 |