2015
DOI: 10.1007/978-3-319-17822-6_1
|View full text |Cite
|
Sign up to set email alerts
|

Analyzing Array Manipulating Programs by Program Transformation

Abstract: We explore a transformational approach to the problem of verifying simple array-manipulating programs. Traditionally, verification of such programs requires intricate analysis machinery to reason with universally quantified statements about symbolic array segments, such as "every data item stored in the segment A[i] to A[j] is equal to the corresponding item stored in the segment B[i] to B [j]." We define a simple abstract machine which allows for set-valued variables and we show how to translate programs with… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1

Citation Types

0
4
0

Year Published

2016
2016
2022
2022

Publication Types

Select...
3
2

Relationship

0
5

Authors

Journals

citations
Cited by 6 publications
(4 citation statements)
references
References 17 publications
0
4
0
Order By: Relevance
“…Most methods that analyze programs manipulating arrays [8,18,20,13,25] are based on abstract interpretation. Cornish et al [12] transform a program to remove arrays and discover non-trivial universally quantified loop invariants by analyzing the transformed program using off-the-shelf abstract scalar analysis. Since they create additional blocks for each value of summary variable, the program size increases considerably raising concerns about scalability.…”
Section: Related Workmentioning
confidence: 99%
See 2 more Smart Citations
“…Most methods that analyze programs manipulating arrays [8,18,20,13,25] are based on abstract interpretation. Cornish et al [12] transform a program to remove arrays and discover non-trivial universally quantified loop invariants by analyzing the transformed program using off-the-shelf abstract scalar analysis. Since they create additional blocks for each value of summary variable, the program size increases considerably raising concerns about scalability.…”
Section: Related Workmentioning
confidence: 99%
“…This is orthogonal to the work of Dillig et al [17] where they introduce fluid updates of arrays using indexed locations along with bracketing constraints, to specify the concrete elements being updated. Cornish et al [12] apply a program-to-program translation over the LLVM intermediate representation, followed by a scalar analysis. Although the abstraction in these approaches is expressible as a composition of our abstraction followed by further abstraction, our implementation of fullarrayaccess(S) guarantees an array-free and loopfree programs whenever possible.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…Cornish et al [10] similarly apply a program-to-program translation over the LLVM intermediate representation, followed by a scalar analysis.…”
mentioning
confidence: 99%