Skip to content

Repository files navigation

Formal Methods in Software Engineering

CI

This repo contains materials for the course "Formal Methods in Software Engineering" at ITMO University.

Rendered

Syllabus

Lectures Homeworks

Lecture: Logic

Homework 1: Logic

Lecture: SAT

Homework 2: SAT

Lecture: First-Order Logic

Lecture: Theory of Computation

Lecture: Satisfiability Modulo Theories

Lecture: Specification and Verification

Build

To compile the PDFs from the source code, use Typst.

typst compile <file.typ>

Credits

This course is heavily based on the following courses and books:

  • Stanford University :: CS 357 :: Advanced Topics in Formal Methods (2019) :: link

  • University of Iowa :: CS 5810 :: Formal Methods in Software Engineering (2023) :: link

  • University of Iowa :: CS 4980 :: Introduction to Automated Reasoning (2024) :: link

  • University of Iowa :: CS 4350 :: Logic in Computer Science (2022) :: link

  • University of Toronto :: Formal Methods of Software Design :: link

  • Brown University :: CS 1710 :: Logic for Systems (2025) :: link

  • Cornell University :: CS 2800 :: Discrete Structures (2017) :: link

  • H. B. Enderton, A mathematical introduction to logic, 2nd ed, 2010.

  • M. Huth and M. Ryan, Logic in Computer Science: Modelling and Reasoning about Systems, 2nd ed, 2004.

  • A. R. Bradley and Z. Manna, Calculus of Computation, 2007.

  • D. Kroening and O. Strichman, Decision Procedures, 2016.

  • B. C. Pierce et al., Logical Foundations, in Software Foundations, vol. 1. Electronic textbook, 2025.

  • E. C. R. Hehner, a Practical Theory of Programming. Electronic textbook, 2025.

  • K. R. M. Leino, Program proofs, 2023.

About

Materials for the course "Formal Methods in Software Engineering" at ITMO University

Resources

Stars

8 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages