184.090 SAT Solving
This course is in all assigned curricula part of the STEOP.
This course is in at least 1 assigned curriculum part of the STEOP.

2023S, VU, 2.0h, 3.0EC


  • Semester hours: 2.0
  • Credits: 3.0
  • Type: VU Lecture and Exercise
  • Format: Hybrid

Learning outcomes

After successful completion of the course, students are able to...

  •     understand and compare many automated reasoning techniques
  •     understand, use and modify advanced data structures and algorithms of modern SAT solvers
  •     select and use relevant techniques and methods to design SAT-based solving algorithms for new problems

Subject of course

Topics covered:

  • SAT solving:
    • Algorithms and advanced data structures
    • Formula simplifications in SAT solvers
    • Proofs produced by SAT solvers
  • Satisfiability modulo Theories:
    • Basics of DPLL(T) algorithm, concept of theory solvers
    • Congruence closure algorithm for theory of equality with uninterpreted functions
  • Other extensions of the satisfiability problem:
    • Maximum Satisfiability
    • Quantified Boolean Formulas
  • Practical work with solvers of the presented problems

The content and organization of the course will be discussed in more details during an initial meeting (08.05.2023, 18:00, online)
where we will fix the format of the lecture and the lecture dates.

If you cannot attend this initial meeting, but you would like to participate, please send an email to katalin.fazekas@tuwien.ac.at.

Teaching methods

  • Lecture
  • Supporting Q+A sessions
  • Practical work with solver

Mode of examination


Additional information

First lecture (Vorbesprechung): 08.05.2023, 18:00, Zoom

ECTS breakdown

  • 20h: 9 lectures a 2h + Q+A sessions for the reading + implemenation part
  • 38h: reading a research paper (in teams of 2 students) + presenttation
  •         or implementing a new technique
  • 16h:preparation for final exam
  •  1h: final exam

 Attention: The dates for the exams are from last year. They will be discussed in the first lecture "Vorbesprechung".

The course is planned to be in-person. However, if circumstances require, it will be changed to Distance Learning. In Distance Learning the lectures will be provided via ZOOM meetings.



Course dates

Mon18:00 - 19:0008.05.2023 https://tuwien.zoom.us/j/65892895860Vorbesprechung
Tue14:00 - 16:0023.05.2023 - 27.06.2023Sem.R. DB gelb 10 Block-LVA SAT
Wed16:00 - 19:0024.05.2023 - 28.06.2023Sem.R. DB gelb 07 Block-LVA SAT
Mon15:00 - 18:0006.11.2023Seminarraum FAV 01 A (Seminarraum 183/2) final presentations
SAT Solving - Single appointments
Mon08.05.202318:00 - 19:00 https://tuwien.zoom.us/j/65892895860Vorbesprechung
Tue23.05.202314:00 - 16:00Sem.R. DB gelb 10 Block-LVA SAT
Wed24.05.202316:00 - 19:00Sem.R. DB gelb 07 Block-LVA SAT
Wed31.05.202316:00 - 19:00Sem.R. DB gelb 07 Block-LVA SAT
Tue06.06.202314:00 - 16:00Sem.R. DB gelb 10 Block-LVA SAT
Wed07.06.202316:00 - 19:00Sem.R. DB gelb 07 Block-LVA SAT
Tue13.06.202314:00 - 16:00Sem.R. DB gelb 10 Block-LVA SAT
Wed14.06.202316:00 - 19:00Sem.R. DB gelb 07 Block-LVA SAT
Tue20.06.202314:00 - 16:00Sem.R. DB gelb 10 Block-LVA SAT
Wed21.06.202316:00 - 19:00Sem.R. DB gelb 07 Block-LVA SAT
Tue27.06.202314:00 - 16:00Sem.R. DB gelb 10 Block-LVA SAT
Wed28.06.202316:00 - 19:00Sem.R. DB gelb 07 Block-LVA SAT
Mon06.11.202315:00 - 18:00Seminarraum FAV 01 A (Seminarraum 183/2) final presentations

Examination modalities

Choice between presentation, or implementation of a technique plus an oral exam

Course registration

Begin End Deregistration end
01.03.2023 15:00 14.05.2023 23:00


Study CodeObligationSemesterPrecon.Info
066 931 Logic and Computation Mandatory elective
066 937 Software Engineering & Internet Computing Mandatory elective
066 938 Computer Engineering Mandatory elective
881 Computer Sciences Mandatory elective


Current literature like journal articles, articles from the Handbook of Satisfiability, etc. will be discussed during the lecture.

Previous knowledge

1) Propositional and predicate logic

   a) Syntax, normal forms and normal form translations

   b) Semantics, evaluation of a given formula with respect to a given interpretation, the concept of logical consequence (entailment) also under theories, Translation of  validity, entailment, equivalence and satisfiablity problems into each other, proof procedures (beeing able to apply tableau, sequent  systems or NK)

2) Ability to construct simple proofs

   a) Induction proofs (for simple examples)

   b) Simple proofs of run-time or space estimations (Example: Show that the time complexity of breadth first search with a fixed branching degree b and depth d is in O(b^d). I expect a formally correct proof  including explanations (e.g., for the O-notation).

The previous knowledeg had been taught in the course "Theoretischer Informatik und
Logik" (TIL),  "formalen Methoden der Informatik" (FMINF), "Algorithmen und Datenstrukturen" and
math lectures from the beginning of our bachelor studies.  For a part of the knowledge about logic,
  the slides of TIL and from the block Satisfiability (SAT) of FMINF  (http://www.logic.at/lvas/fminf/) could be helpfull.