2018
DOI: 10.1007/978-3-319-89960-2_12
|View full text |Cite
|
Sign up to set email alerts
|

Property Checking Array Programs Using Loop Shrinking

Abstract: Abstract. Most verification tools find it difficult to prove properties of programs containing loops that process arrays of large or unknown size. These methods either fail to abstract the array at the right granularity and are therefore limited in precision or scalability, or they attempt to synthesize an appropriate invariant that is quantified over the elements of the array, a task known to be difficult. In this paper, we present a different approach based on a notion called loop shrinkability, in which an … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1

Citation Types

0
5
0

Year Published

2018
2018
2024
2024

Publication Types

Select...
6
1

Relationship

1
6

Authors

Journals

citations
Cited by 12 publications
(5 citation statements)
references
References 23 publications
0
5
0
Order By: Relevance
“…Similar reductions were applied to array programs-a particular form of parameterized systems but with unbounded data-as we consider in this work. For example, in [33], shrinkable loops are identified as loops that traverse large or unbounded arrays but may be soundly replaced by a bounded number of nondeterministically chosen iterations; and in [37], abstraction is used to replace reasoning about unbounded arrays and quantified properties by reasoning about a bounded number of array cells.…”
Section: Related Workmentioning
confidence: 99%
“…Similar reductions were applied to array programs-a particular form of parameterized systems but with unbounded data-as we consider in this work. For example, in [33], shrinkable loops are identified as loops that traverse large or unbounded arrays but may be soundly replaced by a bounded number of nondeterministically chosen iterations; and in [37], abstraction is used to replace reasoning about unbounded arrays and quantified properties by reasoning about a bounded number of array cells.…”
Section: Related Workmentioning
confidence: 99%
“…There are also techniques that abstract an array to a fixed number of elements, e.g. k-distinguished cell abstraction [32,33] and k-shrinkability [24,29]. Such abstractions usually reduce array modifying loops with unknown bounds to a known, small bound.…”
Section: Related Workmentioning
confidence: 99%
“…Our motivating examples are based on synthesizing invariants for arrays. However, there are methods for verifying array programs without using loop invariants: Abstraction of the array to a fixed number of elements is used to reduce array modifying loops with unknown bounds to loops with a known, small bound [16,22,25]. An imprecise approach involves abstracting the array so that all array elements appear in a single memory location [4].…”
Section: Related Workmentioning
confidence: 99%