Lectures:
- Introduction. Reactive systems, examples. Transition systems as a basic model.
- Structural operational semantics. Language CCS (Calculus of communicating systems) for description of (reactive) system - syntax, semantics, examples.
- Behavioural equivalences (i.e., the notion of equivalent behaviour of systems). Trace equivalence. Strong and weak bisimulation equivalence; bisimulation games.
- Modal logic HML (Henessy-Milner Logic); description of simple properties of behaviour of a system.
- Importance of the abstract notion of fixed point in complete lattices for the definition of semantics of recursive programs. Computation of bisimulation equivalence as a fixed point. HM-logic with recursion; characterization using games. Correspondence between bisimulation equivalence and HM logic.
- Timed transition systems. Timed CCS and timed automata.
- Timed and untimed bisimulation equivalence. Construction of regions and zones for timed automata. Use of TCTL logic for model checking of timed systems.
- Systems for interactive and automated theorem proving. Coq as an example of such system. Basics of functional programming in Coq.
- Basics of logic in Coq. Using tactics in proofs. Inductive definitions and proofs.
- Semantics of programming languages. Formalization of syntax and semantics of a simple imperative programming language.
- Type systems. Proving properties of types systems.
- Logics for proving properties of programs: Hoare logic and separation logic.
Exercises:
- Reactive systems, examples. Transition systems as a basic model.
- Structural operational semantics. Language CCS (Calculus of communicating systems) for description of (reactive) system - syntax, semantics, examples.
- Behavioural equivalences (i.e., the notion of equivalent behaviour of systems). Trace equivalence. Strong and weak bisimulation equivalence; bisimulation games.
- Modal logic HML (Henessy-Milner Logic); description of simple properties of behaviour of a system.
- Importance of the abstract notion of fixed point in complete lattices for the definition of semantics of recursive programs. Computation of bisimulation equivalence as a fixed point. HM-logic with recursion; characterization using games. Correspondence between bisimulation equivalence and HM logic.
- Timed transition systems. Timed CCS and timed automata.
- Timed and untimed bisimulation equivalence. Construction of regions and zones for timed automata. Use of TCTL logic for model checking of timed systems.
- Systems for interactive and automated theorem proving. Coq as an example of such system. Basics of functional programming in Coq.
- Basics of logic in Coq. Using tactics in proofs. Inductive definitions and proofs.
- Semantics of programming languages. Formalization of syntax and semantics of a simple imperative programming language.
- Type systems. Proving properties of types systems.
- Logics for proving properties of programs: Hoare logic and separation logic.