The reasoning power that computational logic offers brings new perspectives in the field of program verification. This course is about computational logic, with particular focus on algorithmic and automated methods for proving logical properties.
The course aims at teaching attendees algorithmic techniques and fundamental results in automated deduction. Student will also use state-of-the-art theorem provers for proving logical properties.
The course focuses on specialised algorithms for reasoning in various fragments of first-order logics, such as propositional logic, combination of ground theories, and full first-order logic with equality. We will address both the theoretical and practical aspects for using and implementing (semi-)decisions procedures of various logics.
The tentative list of topics covered by the course is below:
- propositional and first-order logic;
- satisfiability checking in propositional logic (splitting, DPLL, randomized algorithms);
- satisfiability checking in the theory of arithmetic, uninterpreted functions and arrays;
- satisfiability checking the the combination of theories (SMT);
- validity proving in first-order logic (superposition theorem proving).
The course will address transformation to normal forms, DPLL, SAT-solving, SMT-solving, resolution, unification, superposition, redundancy checking, and experiments with theorem provers.
The course is held block, within 7 weeks, with 2 lectures a week.
The first lecture is on March 7, 9:15--10:45, in EI 3 Sahulka HS.
The course grade will be based on three written homework assignments and a written exam.
Homework assignments count for 40% of the course grade.