In previous work we presented a model checking procedure for linear programs, i.e. programs in which variables range over a numeric domain and expressions involve linear combinations of the variables. In this paper we lift our model checking procedure for linear programs to deal with arrays via iterative abstraction refinement. While most approaches are based on predicate abstraction and therefore the abstraction is relative to sets of predicates, in our approach the abstraction is relative to sets of variables and array indexes, and the abstract program can express complex correlations between program variables and array elements. Thus, while arrays are problematic for most of the approaches based on predicate abstraction, our approach tre...
Software verification is an important and difficult problem. Many static checking techniques for sof...
Automatically verifying safety properties of programs is a tough problem that has been tackled using...
We say a program is data-independent with respect to a data type X if the operations it can perform ...
In previous work we presented a model checking procedure for linear programs, i.e. programs in which...
Predicate abstraction refinement is one of the leading approaches to software verification. The key ...
Abstract Predicate abstraction refinement is one of the leading approaches to software verification....
AbstractIn previous work we proposed Linear Programs as a fine grained model for imperative programs...
We describe EUREKA, a symbolic model checker for Linear Programs with arrays, i.e. programs where va...
Lazy abstraction with interpolants has been shown to be a powerful technique for verifying imperativ...
Abstraction (in its various forms) is a powerful established technique in model-checking; still, whe...
Abstraction plays an important role for verification of computer programs. We want to construct the ...
This paper concerns the question of how to create abstractions that are useful for program analysis....
Lazy abstraction with interpolation-based refinement has been shown to be a powerful technique for v...
Predicate abstraction is an automatic technique that can be used to find abstract models of large o...
Predicate abstraction is a powerful technique to reduce the state space of a program to a finite and...
Software verification is an important and difficult problem. Many static checking techniques for sof...
Automatically verifying safety properties of programs is a tough problem that has been tackled using...
We say a program is data-independent with respect to a data type X if the operations it can perform ...
In previous work we presented a model checking procedure for linear programs, i.e. programs in which...
Predicate abstraction refinement is one of the leading approaches to software verification. The key ...
Abstract Predicate abstraction refinement is one of the leading approaches to software verification....
AbstractIn previous work we proposed Linear Programs as a fine grained model for imperative programs...
We describe EUREKA, a symbolic model checker for Linear Programs with arrays, i.e. programs where va...
Lazy abstraction with interpolants has been shown to be a powerful technique for verifying imperativ...
Abstraction (in its various forms) is a powerful established technique in model-checking; still, whe...
Abstraction plays an important role for verification of computer programs. We want to construct the ...
This paper concerns the question of how to create abstractions that are useful for program analysis....
Lazy abstraction with interpolation-based refinement has been shown to be a powerful technique for v...
Predicate abstraction is an automatic technique that can be used to find abstract models of large o...
Predicate abstraction is a powerful technique to reduce the state space of a program to a finite and...
Software verification is an important and difficult problem. Many static checking techniques for sof...
Automatically verifying safety properties of programs is a tough problem that has been tackled using...
We say a program is data-independent with respect to a data type X if the operations it can perform ...