2017 Software Verification

Font size  SML

Register update notification mail Add to favorite lecture list
Academic unit or major
Graduate major in Mathematical and Computing Science
Minamide Yasuhiko  Masuhara Hidehiko 
Class Format
Media-enhanced courses
Day/Period(Room No.)
Tue7-8(W832)  Fri7-8(W832)  
Course number
Academic year
Offered quarter
Syllabus updated
Lecture notes updated
Language used
Access Index

Course description and aims

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.

Student learning outcomes

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

Competencies that will be developed

Specialist skills Intercultural skills Communication skills Critical thinking skills Practical and/or problem-solving skills

Class flow

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

  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 Extension of Hoare Logic: Separation logic Separation logic
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.

Reference books, course materials, etc.

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)

Assessment criteria and methods

Students are assessed based on scores of exams, reports, and exercise problems.

Related courses

  • MCS.T214 : Theory of Automata and Languages
  • MCS.T334 : Compiler Construction
  • MCS.T313 : Mathematical Logic
  • MCS.T404 : Logical Foundations of Computing

Prerequisites (i.e., required knowledge, skills, courses, etc.)

Students require the knowledge of mathematical logic, automata, and context-free grammars.

Page Top