CMPUT 664: Formal Verification

Topics in Software Engineering · Fall 2026 · University of Alberta

Formal verification aims to establish mathematically rigorous guarantees about software and hardware. This course introduces the foundations and practice of modern formal verification, including automated reasoning, SMT, deductive program verification, and interactive theorem proving.

Announcements

There are no course announcements yet.

Course information

Course CMPUT 664-A1 (58947)
Instructor Jocelyn Qiaochu Chen
Lectures Monday and Wednesday, 12:30–1:50 p.m.
Location Education Centre 2-135
Office hours Wednesday, 4:00–5:00 p.m., UCOMM 6-230
Campuswire Course portal — opens for joining at the start of the semester
Format In person; lectures are not recorded

Course goals

Students will study the logical foundations underlying modern verification tools, gain experience with SMT solvers and program verifiers, and construct machine-checked proofs in an interactive proof assistant. We will examine what different verification paradigms can establish, where their limitations lie, and how they complement one another.

The course emphasizes practical verification using tools such as Z3, Dafny, and Lean.

Prerequisites

Students should have a solid background in algorithms and data structures, proficiency in at least one programming language, and familiarity with discrete mathematics and proof techniques. Prior exposure to logic or formal methods is helpful but not required.

Assessment

Component Weight
Three programming labs 45%
Two paper reviews 10%
Final project 45%

See Assignments for release information and Policies for collaboration, late-work, and tool-use policies.

Communication

Official course announcements will be posted through the course Campuswire, which will open for joining at the start of the semester. The Campuswire forum is primarily for peer help: students are encouraged to ask and answer questions about lectures, assignments, and projects. The instructor will read and participate when time permits, but an instructor response to every forum post is not guaranteed.

For personal circumstances or private academic matters, send the instructor a direct message on Campuswire rather than posting in the forum or sending email. Submission instructions will appear on each assignment page when that assignment is released.