COMS E6998 Formal Verification of System Software
Fall 2018
General Information
Instructor: Ronghui Gu
Office: 515 CSB
Lectures: Mudd 233, Tue, 6:10pm ~ 8:00pm
Office hours: Wed & Thu (2:00pm ~ 3:00pm) and by appointment
This course is about …
- Techniques for improving reliability of computer systems
- Applicable to both software and hardware
- Focus on software
- Theories about formal verification (especially about the theorem proving)
- How to use Coq to realize these theories
This course is not about …
- Programming languages and type systems
- Software engineering methodology
- Dynamic analysis
- Software testing
v.s. CSEE E6863 Formal Verification HW/SW Systems
- Mostly focus on hardware
- Focus more on automated techniques
- Focus more on practices
Prerequisites
- General proficiency in discrete mathematics
- C/C++ programming skills
- COMS W4115 Programming Languages and Translators
Textbooks
- Logic in Computer Science: modelling and reasoning about systems
by Michael Huth and Mark Ryan
- Software Foundations by Benjamin C. Pierce et al.
Grades
- 30%: midterm
- 70%: 4 to 5 assignments
- No final
TENTATIVE Syllabus (Subject to change!)
09/04 Intro (Lecture Notes 0) & Propositional Logic I (Lecture Notes 1)
09/11 Propositional Logic II & SAT (Lecture Notes 1)
09/18 First-Order Logic I (Lecture Notes 2)
09/25 First-Order Logic II (Lecture Notes 2)
10/02 Hoare Logic I (Lecture Notes 3)
10/09 Hoare Logic II (Lecture Notes 3)
10/16 Midterm
10/23 Coq (Basics) (_CoqProject, Coq_Lecture1_Basics)
10/30 Coq (Induction & List)
(Coq_Lecture2_Induction_List)
11/06 Holiday (no class)
11/13 Coq (Tactics & Logic)
(Coq_Lecture3_Tactics_Logic)
11/20 Coq (Modeling a language & Program equivalence) (Coq_Lecture4_Program)
11/27 Coq (Hoare Logic I) (Coq_Lecture5_Hoare)
12/04 Coq (Hoare Logic II) (Coq_Lecture5_Hoare)
Assignments