This course covers the theories for software verification such as operational semantics, Hoare logic, model checking, automata over infinite words.
Students understand the theories related to software verification and get better understanding of various computation models.
operational semantics, Hoare logic, model checking, automaton over infinite words
✔ Specialist skills | Intercultural skills | Communication skills | Critical thinking skills | Practical and/or problem-solving skills |
Lectures will be given according to the following schedule. For the latter half, we choose several topics as such pushdown model checking, timed automata, and tree automata.
Course schedule | Required learning | |
---|---|---|
Class 1 | Semantics of programming languages: denotational semantics, operational semantics | Understand the basics of semantics of programming languages |
Class 2 | Hoare Logic(1): | Understand the basics of Hoare logic |
Class 3 | Hoare Logic(2): soundness and relative completeness | Understand the soundness of Hoare logic |
Class 4 | Review: the theory of automata | Review the theory of automata |
Class 5 | automata over infinite words(1) | Understand what are automata over infinite words |
Class 6 | automata over infinite words(2) | Understand the basic theory of automata over infinite words |
Class 7 | Temporal logic: LTL , CTL | Understand the basics of temporal logic |
Class 8 | Model checking(1) | Understand the basics of model checking |
Class 9 | Model checking(2) | Understand some algorithms for model checking |
None required.
Course materials are provided during class.
The following is reference books related to this course.
*Formal Semantics of Programming Languages, Glynn Winskel, MIT Press, 1993.
*Automata Theory: An Algorithmic Approach, Javier Esparza.(https://www7.in.tum.de/~esparza/automatanotes.html)
Students are assessed based on scores of exams and exercise problems.
Students require the knowledge of automata and context-free grammars.