### 2017　Software Verification

Font size  SML

Graduate major in Mathematical and Computing Science
Instructor(s)
Minamide Yasuhiko  Masuhara Hidehiko
Class Format
Lecture
Media-enhanced courses
Day/Period(Room No.)
Tue7-8(W832)  Fri7-8(W832)
Group
-
Course number
MCS.T509
Credits
2
2017
Offered quarter
2Q
Syllabus updated
2017/3/23
Lecture notes updated
-
Language used
English
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.

### Keywords

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.