Important Facts  

Lecture Times:  Monday, 14:15 – 15:45, 5056 
Tuesday, 14:15 – 15:45, 5056  
First Lecture:  Obtober 13, 2014 
Language:  English or German (depending on the students’ preferences) 
Exam:  written or oral, to be announced 
Prerequisites:  for Bachelor or Master (“Wahlpflicht” in Theoretical Computer Science) Basic knowledge about algorithms is required. 
Credit Points:  6 
First Exam:  28.02.2015, 10:00 – 12:00, Aula 1 
Revision:  05.03.2015, 10:00 – 12:00, 5056 
Second Exam:  28.03.2015, 10:00 – 12:00, AH I / AH II 
News and materials can be found in the corresponding L2P learning room. For additional information see also the Campus page.
Motivation
Different approaches in computer science involve tools (solvers) to check whether certain formulas are satisfiable. Examples can be found in the fields of hardware and software verification, counterexample generation, termination analysis of programs, and optimization algorithms, just to mention a few.
In this lecture we deal with the automatic check of satisfiability of formulas from different logics. Formulas of propositional logic can be checked for satisfiability using SATsolvers (SAT=”satisfiability”). Extending the logic with different theories leads us to SMTsolvers (SMT=”satisfiability modulo theories”). During the semester we will discuss extensions of propositional logic with equalities, uninterpreted functions, and linear and nonlinear constraints involving real and integervalued variables (linear/nonlinear real/integer arithmetic). To demonstrate practical relevance, we employ the above methods in the context of bounded model checking.
Materials
For learning you can use the book
Daniel Kroening and Ofer Strichman: Decision Procedures: An Algorithmic Point of View, SpringerVerlag, Berlin, 2008.
which is available in the computer science library, the lecture slides and the lecture notes that will be made available in the L2P learning room.
Lecture Content
Nr.

Theme

Slides

1.

Introduction


2.

Propositonal logic


3.

SAT solving


SAT solving examples


SAT solving examples


4.

First order theories


5.

Decidability


6.

Eager SMT solving


Equality logic


Bit vectors


7.

Lazy SMT solving


Equality logic


8.

Linear real arithmetic


Fourier Motzkin elimination


Simplex


Simplex in SMT


9.

Linear integer arithmetic


Branch and bound


Gomory cuts


Omega test


Omega test – example


Application


10.

Nonlinear real arithmetic


Virtual substitution


Cylindrical algebraic decomposition


Groebner bases


Interval constraint propagation


11.

Applications for SMT
