Automated Reasoning

Volume 6173 of the series Lecture Notes in Computer Science pp 400-411

Bugs, Moles and Skeletons: Symbolic Reasoning for Software Development

  • Leonardo de MouraAffiliated withMicrosoft Research, One Microsoft Way
  • , Nikolaj BjørnerAffiliated withMicrosoft Research, One Microsoft Way

* Final gross prices may vary according to local VAT.

Get Access


Symbolic reasoning is in the core of many software development tools such as: bug-finders, test-case generators, and verifiers. Of renewed interest is the use of symbolic reasoning for synthesing code, loop invariants and ranking functions. Satisfiability Modulo Theories (SMT) solvers have been the focus of increased recent attention thanks to technological advances and an increasing number of applications. In this paper we review some of these applications that use software verifiers as bug-finders “on steroids” and suggest that new model finding techniques are needed to increase the set of applications supported by these solvers.