Interactive Theorem Proving in Lean

Florent Schaffhauser, Heidelberg University

General information

Topic and goal

Producing certified, reliable code is crucial in software engineering. Taking it a step further, modern programming languages with strong type-checking capabilities can even be used to state theorems about abstract mathematical objects and verify the correctness of proofs.

In this workshop, we explore the world of proof assistants and learn how to explain mathematics to a computer using Lean. The goal is to help participants develop new coding skills while becoming acquainted with formal methods on a larger scale.

Organization of the lectures

We give an 8h introduction to certified programming and formal mathematics for graduate students interested in the interaction between mathematics and computer science. Each session will combine a lecture with hands-on computer practice.

Participants are encouraged to work in pairs. Practice files for each session will be provided and no prior installation of Lean is required.

Lecture Topic Practice files
1 An introduction to Lean
2 Basic tactics
3 Dependent types
4 Algebraic structures

Audience questions

Answers to some of the questions from the audience are available here:

Design & Build

This webpage is produced using Quarto Markdown and VS Code. The slides are produced using Marp, also within VS Code. The website is published via GitHub Pages. The QR codes are generated using Python’s qrcode package.