In this course we introduce formal verification as a principled approach for developing systems that do what they should do, studying underlying tools and algorithms.

See also https://gitlab.epfl.ch/lara/cs550/