After completing this course successfully, the student can:
Indicate the relevance of formal logical methods in computer science.
Explain the role of and the relationship between formal syntax and semantics of proposition and predicate logic.
Explain the principles of Binary Decision Diagrams, and manipulate them.
Explain the principles of SAT solving and apply them to simple examples
Apply proof systems (semantic tableaus, Gentzen and Hilbert style deduction, resolution) and prove their equivalence.
Explain the meaning of soundness and completeness and how these apply to the aforementioned proof systems.
Understand the concepts of logic programming, and explain the connection with mathematical logic.
Assumed previous knowledge
In logic many aspects of computer science are treated in a theoretical way. Examples are the relationship between syntax and semantics, computability, and concepts of programming languages. In a more direct sense, logic is applied in, e.g., logic programming, but also in programming by contract and other types of formal verification.
In this course we study the formal syntax and semantics of proposition and predicate logic. Several proof systems (semantic tableaux, Hilbert and Gentzen style systems, resolution) and their equivalence are presented, and soundness and completeness are discussed. We then continue by studying connections to other logic-related programming and specification paradigms: Binary Decision Diagrams, SAT solving and logic programming.
Recommended materials-Instructional modes
|BookM. Ben-Ari, Mathematical Logic for Computer Science (3rd ed.). Springer, 2012, ISBN 978-1-4471-2128-0|
Remark50% tentamen, 50% huiswerkopdrachten