Complex systems used in our daily life rely on software used in them. Such software is becoming increasingly more sophisticated, resulting in system malfunctioning and insecure behavior. Formal verification of such systems requires non-trivial automation, and automatic generation and reasoning about program properties is a key step to such an automation. Reasoning about program properties is an especially challenging task for programs with complex flow, in particular, with loops. Our project addresses this challenge by designing new methods for reasoning about program loops. We will advance the power of the symbol elimination method, introduced recently by ourselves, for generating and proving program properties. We will carry out novel research in computer theorem proving to support symbol elimination and generate non-trivial first-order program properties, such as loop invariants and interpolants. Since reasoning about program properties requires reasoning in first-order theories, we will design new algorithms for automated reasoning with both theories and quantifiers. The project combines computer science, mathematics, and logic. It will enhance capabilities of world-leading reasoning tools. Our proposal will advance the applicability of first-order theorem proving, in particular symbol elimination, in formal verification, pushing the boundaries of the technology further to the ultimate goal of automatic verification of very large computer programs.
at Computer Science and Engineering, Software Technology (Chalmers)
Funding years 2014–2017