Skip to content

University of Waterloo · Electrical and Computer Engineering · Winter 2027

Automated Verification

Building Reliable Software in the Age of AI

ECE 750 T29 · Graduate course · Instructor Arie Gurfinkel

AI is accelerating software development, and it is just as good at finding and exploiting the weaknesses of existing systems. This course is about establishing that software behaves as intended: formulating correctness claims, checking them with automated verification tools, and judging what a successful check actually guarantees. We move from practical verification tasks to the reasoning behind the tools (verification conditions, SMT solving, memory and ownership, and automatic invariant discovery) and on to proof assistants, where AI agents help build specifications and proofs that students learn to guide and review. Examples come from software libraries, systems code, and compiler transformations. Details are in the syllabus.