University of Waterloo · Electrical and Computer Engineering · Winter 2027
Automated Verification
Building Reliable Software in the Age of AI
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.