Directed Studies: Decision Procedures for Software Verification


  • Course (Prof. Dr. Stefan Leue)
    Wednesday  10:00- 11:30  Room: PZ 801      Start: Oct 24
  • Tutorial (Dominik Winterer)
    Thursday 11:45 - 13:15  Room:  PZ 901                Start: Oct 25



Undergraduate standing in Algorithms, Programming, Discrete Structures (in particular formal logic), Theory of Computing.


Software is logic at work, and hence formal mathematical logic is the calculus of software engineering. In the verification of properties of software systems special decidable fragments of first order logic have received special interest and lots of tools have been developed under the label "Satisfiability Modulo Theories" (SMT). Companies like Google and Microsoft, for instance, use this technology to analyze their software eco systems for security vulnerabilities.

In this directed studies course we will provide a brief introduction into propositional and first order logic. We will then discuss more SMT specific logics and decision procedures, including DPLL(T) for SAT solving, the Nelson-Oppen combination procedure, uninterpreted functions, linear real and integer arithmetic, and quantifier elimination. In addition, we will consider logics and procedures relevant to software verification problems, including the treatment of arrays and pointers, and provide application examples.

Teaching methods

Directed Studies Course - weekly reading assignments that will be presented by participants and discussed during the lectures.

Learning objectives

Participants will learn the foundations of SMT technologies. This will enable them to assess SMT technology in its usefulness for solving various problems in academia and industrial practice, and to use this technology in own related projects.

Course literature

Daniel Kroening and Ofer Strichman, Decision Procedures: An Algorithmic Point of View, second edition, Springer 2016.

Further literature may be announced during the course.

Target group

BA-Students 4. Semester


Final examination - oral. A grade bonus can be earned during the tutorials. This course is identical to the Directed Studies course "Satisfiability Modulo Theories for Software Verification" offered in the winter semester 2017/18 and no double credit can be obtained for also attending this course.

Expected course achievement

At least one weekly assignment summary presentation.

Offering Suitable for Participants from Other Programs and Subject Areas



ECTS-points: 6

Weekly teaching hours

SWS: 2 + 2