This course covers the theories for software verification. We first introduce the operational semantics of programming languages and Hoare logic, and discuss the soundness and completeness of Hoare Logic. Then, we discuss other theories related to software verification: model checking, automata over infinite words, LTL, and CTL.
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,temporal logic
✔ Specialist skills | Intercultural skills | Communication skills | Critical thinking skills | Practical and/or problem-solving skills |
Lectures will be given according to the following schedule. Students solve some exercises during lecture to check their understanding. There will be about seven assignments where students also solve some exercises.
Course schedule | Required learning | |
---|---|---|
Class 1 | Operational semantics of programming languages | Operational semantics: big-step and small-step |
Class 2 | Hoare Logic(1) | Inference rules of Hoare logic |
Class 3 | Hoare Logic(2): soundness and relative completeness | Relative completeness, expressiveness of assertion language |
Class 4 | Propositional logic and satisfiability | Propositional logic, SAT |
Class 5 | Review of predicate logic | Semantics of predication logic, normal forms |
Class 6 | Automated theorem proving: resolution principle | Unification, resolution principle |
Class 7 | Decision procedure for arithmetics | Decision procedure for Presburger arithmetic |
Class 8 | Automata over infinite words(1) | ω-regular languages, Büchiオートマトン |
Class 9 | Automata over infinite words(2) | Closure properties, Muller automaton |
Class 10 | Linear-time temporal logic(LTL) | Semantics and model checking of LTL |
Class 11 | Examination to check students' understanding | Mid-term examination |
Class 12 | Computational tree logic(CTL) | Semantics and model checking of CTL |
Class 13 | Binary decision diagram | Operations on BDD |
Class 14 | Software model checking | Abstraction, counter-example guided abstraction refinement (CEGAR) |
Class 15 | Recent topics in software model checking | Model checking for computational models such as pushdown automata |
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, reports, and exercise problems.
Students require the knowledge of mathematical logic, automata, and context-free grammars.