Thomas Tuerk
3c35cc25c3
cleaned-up the sources of the ITP course - remove internal notes - remove exercise solutions - remove KTH logo - add Creative Commons license |
||
---|---|---|
.. | ||
e4-material | ||
e5-material | ||
a2.dot | ||
a2.eps | ||
e1.tex | ||
e2.tex | ||
e2Script.sml | ||
e3.tex | ||
e3Script.sml | ||
e4.tex | ||
e5.tex | ||
e6.tex | ||
e7.tex | ||
func_array.dot | ||
func_array.eps | ||
Makefile | ||
philScript.sml | ||
README |
This directory contains exercises that were used during a ITP Course at KTH in Stockholm in 2017 (see https://www.kth.se/social/group/interactive-theorem-/). These exercises are intended to accompany the slides of this course that has been made publicly available. When working on the exercises, you don't need to read to the end of the whole sheet before starting to work on an exercise. However, I highly recommend reading all subquestions first. Some are easier, if the have already been considered while working on previous parts. Often there are hints at the very end of an exercise sheet. The intention is that you work on exercise first without these hints. If you have trouble, they provide some help. Usually it is a valuable learning experience thinking about what is explained by the hints. So, I really recomment to first attempt the exercises without the hints first. There are the following exercise sheets: 0) Background Questionaire (before lecture started) This was handed out before the lecture even started. It's intention was to get a feeling for the background of the students. It was expected that students on average are able to solve half of the questions within 1 h. 1) Exercise 1 (very beginning of Course) This exercise asks students to set up their HOL environment and practise using SML. It was handed out at the very beginning of the course and does not require any knowledge from the course. 2) Exercise 2 (after Part 6, i.e. after forward proofs) Learn basic usage of HOL and emacs. How to construct terms, simple forward proofs and simple proof automation. 3) Exercise 3 (after part 9, i.e. after induction proofs) Play around with simple backward proofs. 4) Exercise 4 (after part 11, i.e. good definitions) Some simple proofs and definitions. The challange is how to structure your proofs nicely. Moreover, this exercise requires some SML programming and connects proofs and SML execution. 5) Exercise 5 (after part 12, i.e. deep/shallow embeddings, knowledge about simplifier from part 13 useful) This exercise focuses on the effect of different definitions on proofs. Moreover, more so than in exercise 4 students are required to structure their development by defining own auxiliary definitions and lemmata. Some proof ideas are, while still rather simple, not trivial. This exercise can be solved without using the simplifier. However, the simplifier can help a lot. Similarlish it is encouraged to really learn how to use Metis for this exercise. 6) Exercise 6 (final project, after part 13, simplifier) For organisational reasons, the final project was presented in exercise 6, i.e. before exercise 7 and the end of the course. It requires people to learn about part of HOL themselves, do a non trivial formalisation and come up with some non trivial proofs. Exercise 6 is intentend to take 3-4 times as much time as the other exercises. 7) Exercise 7 (after part 14, advanced definitions) Some exercises about advanced usages of the simplifier and how to use inductive relations. It is very short, since people were in parallel working already on their final project.