- Trainer/in: Elisabeth Mayer
- Trainer/in: Thomas Odaker
Enrollment Key: VerParProg 26/27
The course deals with mostly automatic verification approaches for multi-threaded programs with shared memory. Topics of the course are:
- Semantics of parallel programs, e.g., interleaving semantics
- Static and dynamic approaches for data race detection
- Techniques for deadlock detection
- Verification of program properties (e.g., with sequentialization, bounded model checking, etc.)
- Partial Order Reduction
- Thread-modular verification
At the end of the course, students can name a number of techniques for the verification of parallel programs, especially in the area of data race and deadlock detection as well as for verification of safety properties. They should be able to explain the underlying formalisms of the techniques, to describe the work flow of the different techniques, and to apply the techniques on examples. Moreover, the students know the strengths and weaknesses of the techniques.
Literature
Program Semantics
- K. R. Apt, F. S. de Boer, E.-R. Olderog: Verification of Sequential and Concurrent Programs. Springer 2009.
Data Race Detection
- S. Savage, M. Burrows, G. Nelson, P. Sobalvarro, T. E. Anderson: Eraser: A Dynamic Data Race Detector for Multi-Threaded Programs. SOSP 1997.
- E. Poznianski, A. Schuster: Efficient On-the-Fly Data Race Detection in Multithreaded C++ Programs. IPDPS 2003.
- C. Flanagan, S. N. Freund: FastTrack: efficient and precise dynamic race detection. PLDI 2009.
Deadlock Detection
- Dawson R. Engler, Ken Ashcraft: RacerX: effective, static detection of race conditions and deadlocks. SOSP 2003.
- Mayur Naik, Chang-Seo Park, Koushik Sen, David Gay: Effective static deadlock detection. ICSE 2009.
Sequentialization
- Akash Lal, Thomas W. Reps: Reducing Concurrent Analysis Under a Context Bound to Sequential Analysis. CAV 2008.
- Omar Inverso, Ermenegildo Tomasco, Bernd Fischer, Salvatore La Torre, Gennaro Parlato: Bounded Model Checking of Multi-threaded C Programs via Lazy Sequentialization. CAV 2014.
Bounded Model Checking
- L. C. Cordeiro, B. Fischer: Verifying multi-threaded software using SMT-based context-bounded model checking. ICSE 2011
Thread-modular Verification
- C. Flanagan, S. N. Freund, S. Qadeer: Thread-Modular Verification for Shared-Memory Programs. ESOP 2002
Partial Order Reduction
- D. Peled: Partial-Order Reduction. Handbook of Model Checking 2018.
- P. Godefroid, D. Pirottin: Refining Dependencies Improves Partial-Order Verification Methods (Extended Abstract). CAV 1993.
- P. Godefroid, P. Wolper: Using Partial Orders for the Efficient Verification of Deadlock Freedom and Safety Properties. Formal Methods in System Design 2(2) 1993.
Atomicity Checking
- C. Flanagan, S. N. Freund: Atomizer: a dynamic atomicity checker for multithreaded programs. POPL 2004
- Trainer/in: Marie-Christine Jakobs
- Trainer/in: Márk Somorjai
- Trainer/in: Paul Hofman
- Trainer/in: Eyke Hüllermeier
Diese Vorlesung findet im Wintersemester 2026/2027 leider nicht statt.
- Trainer/in: Jonas Stein

- Trainer/in: Sebastian Eckl
- Trainer/in: Matías Gobbi
- Trainer/in: Johannes Kinder

- Trainer/in: Sergej-Alexander Breiter
- Trainer/in: Karl Fürlinger
Diese Vorlesung findet aller Voraussicht nach nicht statt!
- Trainer/in: Gidon Ernst
- Trainer/in: Zefeng Wang
- Trainer/in: Stefan Metzger
- Trainer/in: Katharina Novikov
- Trainer/in: Helmut Reiser
This lecture will be held in english.
Artificial intelligence uses ideas and concepts from different disciplines, such as neuroscience, cognitive science, mathematics and engineering. In recent years, machine learning techniques, a subfield of artificial intelligence, have achieved impressive success in applications such as image categorization, face or speech recognition, language processing, and control problem solving. The goal of the course is to understand the fundamentals of intelligent systems, focusing on an interplay between application (practice) and mathematical background (theory).
A selection of the topics covered is:
- Basic and advanced techniques of intelligent systems
- Optimization
- Intelligent systems in practice
- Multi-agent systems
- Foundation models
Date: 08.03.27 – 13.03.27; 9:00–19:00
Contact: intsys@mobile.ifi.lmu.de
- Trainer/in: Alexander Feist
- Trainer/in: Jonas Nüßlein
- Trainer/in: Simon Schlichting
- Trainer/in: Zongyue Li
- Trainer/in: Philipp Pfefferkorn
- Trainer/in: Philipp Jahn
- Trainer/in: Umut Kanilmaz
- Trainer/in: Shubhangi Shubhangi
The lecture is a first introduction to category theory, following the book Category Theory by Awodey. This is a mathematics textbook but it is very self-contained. Familiarity to algebraic structures will be helpful, but is not a requirement, in order to follow this course.
The self-enrollment key is CT2627
- Trainer/in: Jasmin Blanchette
- Trainer/in: Yiming Xu
Automated theorem proving is a subfield of mathematical logic that concerns itself with proving mathematical theorems fully automatically using computer programs. These programs are called automated theorem provers. They can be used as standalone programs to solve logic problems or in tandem with interactive theorem provers (also called proof assistants) to discharge proof obligations that arise.
In this course, we will review some of the main approaches to automated theorem proving. The course focuses on the _theory_ of theorem proving. Stylistically, the course has a mathematical flavor (with definitions, lemmas, proofs, etc.).
Self-enrollment key: ATP202627
- Trainer/in: Jasmin Blanchette
- Trainer/in: Tanguy Bozec
- Trainer/in: Martin Desharnais