Incorrectness logic
PW O'Hearn - Proceedings of the ACM on Programming Languages, 2019 - dl.acm.org
Program correctness and incorrectness are two sides of the same coin. As a programmer,
even if you would like to have correctness, you might find yourself spending most of your …
even if you would like to have correctness, you might find yourself spending most of your …
Polynomial reachability witnesses via Stellensätze
We consider the fundamental problem of reachability analysis over imperative programs
with real variables. Previous works that tackle reachability are either unable to handle …
with real variables. Previous works that tackle reachability are either unable to handle …
Transition power abstractions for deep counterexample detection
While model checking safety of infinite-state systems by inferring state invariants has
steadily improved recently, most verification tools still rely on a technique based on bounded …
steadily improved recently, most verification tools still rely on a technique based on bounded …
Compositional recurrence analysis
This paper presents a new method for automatically generating numerical invariants for
imperative programs. The procedure computes a transition formula which overapproximates …
imperative programs. The procedure computes a transition formula which overapproximates …
Proving non-termination via loop acceleration
We present the first approach to prove non-termination of integer programs that is based on
loop acceleration. If our technique cannot show non-termination of a loop, it tries to …
loop acceleration. If our technique cannot show non-termination of a loop, it tries to …
Proving non-termination and lower runtime bounds with LoAT (system description)
Abstract We present the Loop Acceleration Tool (LoAT), a powerful tool for proving non-
termination and worst-case lower bounds for programs operating on integers. It is based on …
termination and worst-case lower bounds for programs operating on integers. It is based on …
Automatic loop summarization via path dependency analysis
Analyzing loops is very important for various software engineering tasks such as bug
detection, test case generation and program optimization. However, loops are very …
detection, test case generation and program optimization. However, loops are very …
Powering the static driver verifier using corral
The application of software-verification technology towards building realistic bug-finding
tools requires working through several precision-scalability tradeoffs. For instance, a critical …
tools requires working through several precision-scalability tradeoffs. For instance, a critical …
A calculus for modular loop acceleration
F Frohn - International Conference on Tools and Algorithms for …, 2020 - Springer
Loop acceleration can be used to prove safety, reachability, runtime bounds, and (non-)
termination of programs operating on integers. To this end, a variety of acceleration …
termination of programs operating on integers. To this end, a variety of acceleration …
Incremental bounded model checking for embedded software
Program analysis is on the brink of mainstream usage in embedded systems development.
Formal verification of behavioural requirements, finding runtime errors and test case …
Formal verification of behavioural requirements, finding runtime errors and test case …