Programming with Proofs (November 2025)¶
Instructor: Ilya Sergey
Lectures: 18-22 November 2025
Location: Neapolis University Pafos
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 class “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.
Tentative Schedule¶
The course is structured as five lectures, each taking about 2.5-3 hours, including discussion and Q&A.
The timetable below is tentative and is subject to change.
Lecture |
Topics |
Materials |
Homework |
|
|---|---|---|---|---|
1 |
Tue, Nov 18 6-9pm |
Types, Programs, and Proofs |
||
2 |
Wed, Nov 19 6-9pm |
Functional Programming in Lean |
LoVe Exercises 05 |
|
3 |
Thu, Nov 20 6-9pm |
Inductive Predicates Verifying Distributed Protocols in Veil |
LoVe Exercises 06 |
|
4 |
Fri, Nov 21 12-3pm |
Mathematical Structures in Lean |
||
5 |
Sat, Nov 22 12-3pm |
Reasoning about Imperative Code Verifying Imperative Programs in Velvet |
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
Velvet: a Verifier for Imperative Programs (Loom/Velvet repository)
LeanSSR: an SSReflect-Like Tactic Language for Lean (LeanSSR repository)
Lean Community Zulip
Copyright¶
Most of the basic materials for lectures 1-4 of this class are adapted, with permission, from the 2025 edition of the “Logical Verification” course developed by Anne Baanen, Alexander Bentkamp, Jasmin Blanchette, Xavier Généreux, Johannes Hölzl ,and Jannis Limperg. Slides on Hoare Logic are courtesy of Cesare Tinelli (University of Iowa).