2009
DOI: 10.1007/978-3-642-00593-0_33
|View full text |Cite
|
Sign up to set email alerts
|

Abstract: We present a new method for automatic generation of loop invariants for programs containing arrays. Unlike all previously known methods, our method allows one to generate first-order invariants containing alternations of quantifiers. The method is based on the automatic analysis of the so-called update predicates of loops. An update predicate for an array A expresses updates made to A. We observe that many properties of update predicates can be extracted automatically from the loop description and loop propert… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
87
0

Year Published

2010
2010
2022
2022

Publication Types

Select...
8

Relationship

0
8

Authors

Journals

citations
Cited by 103 publications
(87 citation statements)
references
References 29 publications
(55 reference statements)
0
87
0
Order By: Relevance
“…First, not all program verification requires providing a specification because specifications can sometimes be inferred from the program text [8,24,18] or from observing common usage patterns [14,37,36]. In particular, some useful specifications are implicit in the programming language semantics: types must be compatible; array accesses must be within bound; dereferenced pointers must be non-null; arithmetic operations must not overflow; and so on.…”
Section: The Trouble With Specsmentioning
confidence: 99%
“…First, not all program verification requires providing a specification because specifications can sometimes be inferred from the program text [8,24,18] or from observing common usage patterns [14,37,36]. In particular, some useful specifications are implicit in the programming language semantics: types must be compatible; array accesses must be within bound; dereferenced pointers must be non-null; arithmetic operations must not overflow; and so on.…”
Section: The Trouble With Specsmentioning
confidence: 99%
“…For example, there are serviceable tools to infer specifications from code (to mention just a few: [5,12,28]) which can be applied atop our reengineering technique to get better code specification automatically; but including them in our work would weaken the main focus of the contribution. From the user perspective, AutoOO is a translator that takes an input C program and converts it to an object-oriented Eiffel program that replicates its functionality.…”
Section: O-o Reengineering: Goals Principles and Evaluationmentioning
confidence: 99%
“…For example: 12 Available natively in Eiffel and not in Java, but whose semantics is straightforward. struct element list { struct element * first; }; struct element { struct element * next; char * content; };…”
Section: Inheritance Analysismentioning
confidence: 99%
“…Many techniques have been proposed for generating invariants about elements of unbounded data structures [18,19,[23][24][25][26]. Some of these techniques can reason about complex data invariants, such as sortedness, which is orthogonal to the ability to perform fluid updates.…”
Section: Related Workmentioning
confidence: 99%
“…For example, Gulwani et al [16] use an iteration counter for performing complexity analysis. The invariant generation technique described in [19] also uses a combination of an iteration counter combined with quantifier elimination.…”
Section: Related Workmentioning
confidence: 99%