CS5232: Formal Specification and Design Techniques (Spring 2026)

Syllabus and Grading

Course Materials

Course Textbook: The Hitchhiker’s Guide to Logical Verification (aka LoVe) by Baanen et al. Some of the lectures will be based on the materials of new work-in-progress monograph “Practical Verifications of Data structures and Algoritmms” (aka PraVDA).

Most of the lectures will be given using a white board and via live coding sessions.

Please, email me your GitHub handle (and your name) to have access to the repository containing the code for the lectures. To work on the exercises and assignments, please, create a private fork of the course repository.

Schedule

The timetable below is tentative and is subject to change.

Date

Topics

Materials

Homework

1

14 Jan

No lecture: Ilya is away

Terence Tao on proofs

Lean FAQ

2

21 Jan

Types, Programs, and Proofs (I)

LoVe Exercises 01, 02

3

28 Jan

Types, Programs, and Proofs (II)

LoVe Exercises 03

LoVe HW3

4

4 Feb

Functional Programming in Lean

LoVe Chapter 5

LoVe Exercises 05

LoVe HW5

5

11 Feb

Inductive Predicates

LoVe Chapter 6

LoVe Exercises 06

LoVe HW6

6

18 Feb

No lecture: 2nd day of CNY

Reading Week

7

4 Mar

Verifying Distributed Protocols in Veil

Veil slides

Veil code

PraVDA HW1

8

11 Mar

Reasoning about Imperative Code

Floyd-Hoare logic (slides)

9

18 Mar

Verifying Imperative Programs in Velvet

Velvet examples (code)

PraVDA HW2

10

25 Mar

Operational Semantics

LoVe Chapter 9

LoVe Exercises 09

11

1 Apr

Implementing Hoare Logic in Lean

LoVe Chapter 10

LoVe Exercises 10

LoVe HW10

12

8 Apr

Logical Foundations of Mathematics

LoVe Chapters 12 and 14

13

15 Apr

Project Presentations (I)

Will take place on Zoom

RW

22 Apr

Project Presentations (II)

In person, location TBA

Software Prerequisites

Please, make sure to install Visual Studio Code and the following extensions and tools:

You will need both cvc5 and z3 to be on your PATH to run some of the examples.

Additional Reading and Resources

On Lean

On Lean-based libraries discussed in the class

Lean Community Zulip