Proving termination automatically for programs with explicit pointer arithmetic is still an open problem. To close this gap, we introduce a novel abstract domain that can track allocated memory in detail. We use it to automatically construct a symbolic execution graph that represents all possible runs of the program and that can be used to prove memory safety. This graph is then transformed into an integer transition system, whose termination can be proved by standard techniques. We implemented this approach in the automated termination prover AProVE and demonstrate its capability of analyzing C programs with pointer arithmetic that existing tools cannot handle
Program termination is central to the process of ensuring that systems code can always react. We des...
One way to develop more robust software is to use formal program verification. Formal program verifi...
We propose an original approach for checking memory safety of C pointer programs possibly including ...
While automated verification of imperative programs has been studied intensively, proving terminatio...
Abstract. Proving termination automatically for programs with ex-plicit pointer arithmetic is still ...
Abstract. Proving termination automatically for programs with ex-plicit pointer arithmetic is still ...
© 2017 ACM.We describe a formal verification framework and tool implementation, based upon cyclic pr...
Abstract. AProVE is a system for automatic termination and complex-ity proofs of C, Java, Haskell, P...
This paper describes our generic framework for detecting termination of programs handling infinite a...
AbstractFor logic programs with arithmetic predicates, showing termination is not easy, since the us...
We describe a new program termination analysis designed to handle imperative programs whose termina...
C is the most widely used imperative system's implementation language. While C provides types and hi...
Abstract. We describe a new program termination analysis designed to handle imperative programs whos...
Non-termination is the root cause of a variety of program bugs, such as hanging programs and denial...
Program termination is central to the process of ensuring that reactive systems can always react. We...
Program termination is central to the process of ensuring that systems code can always react. We des...
One way to develop more robust software is to use formal program verification. Formal program verifi...
We propose an original approach for checking memory safety of C pointer programs possibly including ...
While automated verification of imperative programs has been studied intensively, proving terminatio...
Abstract. Proving termination automatically for programs with ex-plicit pointer arithmetic is still ...
Abstract. Proving termination automatically for programs with ex-plicit pointer arithmetic is still ...
© 2017 ACM.We describe a formal verification framework and tool implementation, based upon cyclic pr...
Abstract. AProVE is a system for automatic termination and complex-ity proofs of C, Java, Haskell, P...
This paper describes our generic framework for detecting termination of programs handling infinite a...
AbstractFor logic programs with arithmetic predicates, showing termination is not easy, since the us...
We describe a new program termination analysis designed to handle imperative programs whose termina...
C is the most widely used imperative system's implementation language. While C provides types and hi...
Abstract. We describe a new program termination analysis designed to handle imperative programs whos...
Non-termination is the root cause of a variety of program bugs, such as hanging programs and denial...
Program termination is central to the process of ensuring that reactive systems can always react. We...
Program termination is central to the process of ensuring that systems code can always react. We des...
One way to develop more robust software is to use formal program verification. Formal program verifi...
We propose an original approach for checking memory safety of C pointer programs possibly including ...