2009 11th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing 2009
DOI: 10.1109/synasc.2009.66
|View full text |Cite
|
Sign up to set email alerts
|

Finding Loop Invariants for Programs over Arrays Using a Theorem Prover

Abstract: EXTENDED ABSTRACTInvariants with quantifiers are important for verification and static analysis of programs over arrays due to the unbounded nature of arrays. Such invariants can express relationships among array elements and properties involving array and scalar variables of the loop.This talk presents how quantified loop invariants of programs over arrays can be automatically inferred using a first order theorem prover, reducing the burden of annotating loops with complete invariants. Unlike all previously k… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1

Citation Types

0
71
0

Year Published

2011
2011
2019
2019

Publication Types

Select...
5
4

Relationship

1
8

Authors

Journals

citations
Cited by 51 publications
(71 citation statements)
references
References 3 publications
(4 reference statements)
0
71
0
Order By: Relevance
“…More precise approximations of ι and ι will improve the performance by reducing the number of iterations via increasing the number of resolvable queries. Also, a variety of techniques from static analysis or loop invariant generation (Flanagan and Qadeer 2002;Gulwani et al 2009;Gulwani et al 2008b;Gupta and Rybalchenko 2009;Kovács and Voronkov 2009;Lahiri et al 2004;McMillan 2008) in particular can be integrated to resolve queries in addition to one SMT solver with coin tossing. Such a set of multiple teachers will increase the number of resolvable queries because it suffices to have just one teacher to answer the query to proceed.…”
Section: Discussion and Future Workmentioning
confidence: 99%
“…More precise approximations of ι and ι will improve the performance by reducing the number of iterations via increasing the number of resolvable queries. Also, a variety of techniques from static analysis or loop invariant generation (Flanagan and Qadeer 2002;Gulwani et al 2009;Gulwani et al 2008b;Gupta and Rybalchenko 2009;Kovács and Voronkov 2009;Lahiri et al 2004;McMillan 2008) in particular can be integrated to resolve queries in addition to one SMT solver with coin tossing. Such a set of multiple teachers will increase the number of resolvable queries because it suffices to have just one teacher to answer the query to proceed.…”
Section: Discussion and Future Workmentioning
confidence: 99%
“…Theorem prover-based The method of Kovács and Voronkov [23] uses a saturation theorem prover to generate loop invariants. The idea is to encode the changes to an array at the i-th iteration as a quantified fact and then to systematically apply resolution to derive a closed form (one not mentioning the loop iteration i).…”
Section: Under-approximations and Templatesmentioning
confidence: 99%
“…To find a more useful invariant store than the trivial Striv, it is necessary to infer numeric invariants relating index variables associated with different containers or allocation sites. Since the focus of this paper is not invariant generation, we do not go into the details of how to find a "good" invariant store; various techniques based on abstract interpretation [3,4] and quantifier elimination [1,5] can be used for finding invariants. In particular, our previous work on array analysis [1] presents an algorithmic way of finding such invariants in this domain, and we use the algorithm from [1] in our implementation.…”
Section: Abstract Semantics For Iterationmentioning
confidence: 99%