Introduction to Formal Verification & Proof Assistants

A 10-Week Journey into Formal Verification with Lean4 (Spring 2026)

GDG @ AUB Software Team × AUB Math Society

PROOF101

Week 2: Dependent Types

Overview

We motivate the entire audience (especially software engineers and mathematicians) by showing the catastrophic failures of “correct-looking” code. Through a couple compelling case studies, including the Ariane 5 rocket explosion, the Therac-25 radiation machine, and the Heartbleed bug, we’ll examine the limits of testing and introduce the concept of formal verification as a path to (almost*) truly reliable software.

Lecturer

Session Information

Core Concepts

Slides

Week 2 Slides: Download PDF

Readings

  1. Theorem Proving in Lean 4 (Chapters 1-2-3)
  2. Functional Programming in Lean 4 (Chapter 7)
  3. The Hitchhiker’s Guide to Logical Verification (Chapters 1-2)

Additional References

For students interested in deeper foundations of type theory, Dr. Assaf Kfoury (Boston University) recommends the following references:

Foundational Text:

More Advanced Papers by Jean-Yves Girard:
Note: These papers are follow-ups to System F and are a bit more difficult to read than Hindley’s book.

Weekly Quiz

Quiz 2: Types and Type Inference

Quiz Link: Take Quiz 2

Deadline: Before Week 3 session
Passing Score: 60%

Programming Assignment

Assignment 2: Types and Functions in Lean

Objective: Practice working with Lean’s type system and write your first functions.

Assignment: PROOF101 Programming Assignment 2


Questions? Reach out on the course Discord!