Abstract Symbolic Execution

Date: Thursday, March 07, 2013
Speaker: Rainer Hähnle
Venue: TU Wien

Modern software tends to undergo frequent requirement changes and typically is deployed in many different scenarios. This poses significant challenges to formal software verification, because it is not feasible to verify a software product from scratch after each change. It is essential to perform verification in a modular fashion instead. The goal must be to reuse not merely software artifacts, but also specification and verification effort.In our setting code reuse is realized by delta-oriented programming, an approach where a core program is gradually transformed by code “deltas” each of which corresponds to a product feature. The delta-oriented paradigm is then extended to contract-based formal specifications and to verification proofs. As a next step towards modular verification we transpose Liskov’s behavioural subtyping principle to the delta world. Finally, based on the resulting theory, we perform a syntactic analysis of contract deltas that permits to automatically factor out those parts of a verification proof that stays valid after applying a code delta. This is achieved by a novel verification paradigm called “abstract symbolic execution”.

Posted in RiSE Seminar