Please make sure that you are registered for this course in Blackboard, as it will be used to send email and administrate results.
The course consists of four parts:
We use the course by Femke van Raamsdonk of the Free University Amsterdam: This will be taught by Freek using the following schedule:
22 september | propositional logic & simple type theory predicate logic & dependent types | chapters 1 & 2 chapters 4 & 6 |
29 october | inductive types | chapter 3 |
6 october | no lecture | |
13 october | second-order propositional logic & polymorphism | chapters 7 & 8 |
20 october | program extraction & inhabitation | chapters 5 & 9 |
During this period there only will be contact hours on the Tuesdays. The students will be expected to have studied the chapters listed, and the material will be discussed then.
You are welcome to ask for help at any time if you have any questions, either by email or by walking into our offices.
The practical work in Coq corresponding to Femke's course will be done using the ProofWeb system on the machine proofweb.cs.ru.nl. Each participant will get a login to the course page on this machine, and will get his/her password by email.
In the second half of the course, advanced topics will be taught by James McKinna and Herman Geuvers. The schedule for this part of the course is:
10 november | varieties of type theory | (James) |
17 november | strong normalization for STT and lambda 2 | (Herman) |
24 november | overview of the meta-theory of PTSs, including type checking | (Herman) |
1 december | semantics of inductive types | (James) |
8 december | type theory for mathematics | (Herman) |
15 december | dependently typed functional programming | (James) |
Each student will be doing a small Coq formalization assignment. This assignment will be chosen by the student from the following list of suggestions.
The test covers both the contents of the course by Femke as well as the advanced topics taught by James and Herman. The test will be
Each participant will get two grades: one for the Coq work, and one for the test. The final grade will be the average of these two grades.