The goal of the course is to present the fundamental basic notions of logic that are important in computer science. One presents propositional and predicate logic in natural deductions the way it is done in most interactive theorem provers, with a suggestive box notation for proofs. One presents also the basis of model checking and temporal logic (LTL and CTL). One does not cover a detailed proof of completeness theorem for predicate logic (and one gives a sketch of completeness for propositional logic) but what is important is that the students understand well the -meaning- of the various completeness theorems. (On the other hand one gives a proof of undecidability of predicate logic via Post systems.) In the same spirit, one does not present complete proofs of decidability for LTL and CTL but one presents in detail the fixed-point semantics of CTL.
The content of the course is roughly the 3 first chapters of Huth and Ryan "Logic in Computer Science".
There are some slides motivating the course.
This course uses Logic in Computer Science by Michael Huth and Mark Ryan.
Week | Chapters | Topics | Exercises | Assignments |
---|---|---|---|---|
1 | 1.1, 1.2 | Propositional logic, natural deduction | Week 1 | |
2 | 1.3, 1.4, 1.5 | Formal language, proof by induction, semantics, normal form | Week 2 | |
3 | 2.1, 2.2, 2.3 | Predicate logic, natural deduction | Week 3 | |
4 | 2.4 | Semantics of predicate logic | Week 4 | |
5 | 2.5, 2.6 | Undecidability, expressivity of predicate logic | Week 5 | |
6 | 3.2, 3.3, 3.4, 3.5 | LTL, CTL | Week 6 | |
7 | 3.6, 3.7 | Algorithms, fixed-point characterization, repetition | Week 7 | - |
There will be six non-obligatory assignments which should be handed in individually. Each assignment gives ten points and 10% of those points count as bonus points in the exam. The bonus points are only valid for the exams held before September 2017.
Your solutions must be handed in before the weekly exercise session. The first deadline is in study week two, i.e. Friday, September 9th, at 10:00. You can hand them in the return box on the 6th floor, in the lectures, in the beginning of the exercise session, or in office 6103A. Please do not hand them in by email.
Graded submissions will be handed back on the exercise session the week after; alternatively you can pick them up in room 6103A.
All submissions must include your name, email address, and be stapled together. Your solutions must be clear and readable; everything must be carefully motivated!
As always in life, you should not cheat! Cheating will be taken seriously and will be reported to the Disciplinary Committee for further investigation.
The exam is on Tuesday, October 25th 2016, starting at 14:00.
The exam has 60 points in total. No books or written help during the exam.
On the exam you are only allowed the use the deduction rules on page 27 of the course book, the introduction and elimination rules for equality and quantifiers, and the copy rule. So in particular De Morgan's rules are not allowed (unless they are proved as separate lemmas).
Here is a list of exercises from a previous year, some with comments. Exercises marked with an asterisk ("*") in the text book have solutions.
An interactive introduction to natural deduction for propositional and predicate calculus with several good examples.
A text on the tree method (looking systematically for a countermodel)
A prover to practice natural deduction (only for propositional logic).
A short note on how to decide an LTL formula. This is not required for the exam, but I found the explanations in the book difficult to follow and wanted to have a method which can be applied by hand on small examples.
A general presentation of some notions of the course and a nice application of the use of temporal logic.
Jan Smith,
mail: jan(dot)smith(at)chalmers(dot)se
Thierry Coquand,
mail: thierry.coquand(at)cse(dot)gu(dot)se
Thierry is also the examiner of the course.
Simon Huber,
mail: simon.huber(at)cse(dot)gu(dot)se
Andrea Vezzosi,
mail: vezzosi(at)chalmers(dot)se
Fabian Ruch,
mail: fabian.ruch(at)cse(dot)gu(dot)se