Sequential Generation of Structured Arrays and Its Deductive Verification

Affiliation auteurs!!!! Error affiliation !!!!
TitreSequential Generation of Structured Arrays and Its Deductive Verification
Type de publicationConference Paper
Year of Publication2015
AuteursGenestier R, Giorgetti A, Petiot G
EditorBlanchette JC, Kosmatov N
Conference NameTESTS AND PROOFS, TAP 2015
PublisherCEA LIST; Chair Software Engn ETH Zurich
Conference LocationHEIDELBERGER PLATZ 3, D-14197 BERLIN, GERMANY
ISBN Number978-3-319-21215-9; 978-3-319-21214-2
Mots-clésCombinatorial 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.

DOI10.1007/978-3-319-21215-9_7