Table of Contents
COURSE 2.8.1 NonSequential Theory of Distributed SystemsLecturers* Benedikt Bollig (responsible) DatesThe lectures will take place on Wednesday, 10:15  11:45, in Bat. Sophie Germain, room 1013. The second exam takes place on Wednesday, 26th February 2020, 10:15  11:45, in Bat. Sophie Germain, room 1013. DescriptionThe lecture shall cover basic automatatheoretic concepts and logical formalisms for the modeling and verification of concurrent and distributed systems. Many of these concepts naturally extend the classical automata and logics over words, which provide a framework for modeling sequential systems. A distributed system, on the other hand, combines several (finite or recursive) processes, and will therefore be modeled as a collection of (finite or pushdown, respectively) automata. A crucial parameter of a distributed system is the kind of interaction that is allowed between processes. In this lecture, we focus on two standard communication paradigms: message passing and shared memory. In general, communication in a distributed system creates complex dependencies between events, which are hidden when using a sequential, operational semantics. The approach taken in this lecture is based on a faithful preservation of the dependencies of concurrent events. That is, an execution of a system is modeled as a partial order, or graph, rather than a sequence of events. This has to be reflected in highlevel languages for formulating requirements to be met by a distributed system. Actually, specifications for distributed systems are, by nature, nonsequential. They should be interpreted directly on the partial order underlying a system execution, rather than on an (arbitrary) linearization of it. It is worth mentioning that using specifications working on linearizations are often the reason for undecidability, as they may assume synchronization that actually cannot happen. We present classical specification formalisms such as monadic secondorder (MSO) logic and temporal logic, interpreted over partialorders or graphs, as well as (highlevel) rational expressions. We compare the expressive power of automata and logic and give translations of specifications into automata (synthesis and realizability). Moreover, we consider the satisfiability (Is a given specification consistent?) and the modelchecking problem (Does a given distributed system satisfy its specification?). For both problems, we present elementary techniques (based on tree interpretations and tree automata) that yield decision procedures with optimal complexity. Outline of the course
Lecture NotesLecture Notes (version as of 6th November 2019) PrerequisitesBasic knowledge in Automata, Logics, Complexity. While not mandatory, it is useful to know the basics of verification. See for instance the level 1 course 122 Basics of verification which can also be taken during M2. LanguageBenedikt Bollig will lecture in English. Paul Gastin will lecture in French, unless some students request English. Exam will be available in English (also in French upon request) and could be written in either French or English. Related Courses
References
