Thomas Tuerk
3c35cc25c3
cleaned-up the sources of the ITP course - remove internal notes - remove exercise solutions - remove KTH logo - add Creative Commons license
83 lines
3.1 KiB
Plaintext
83 lines
3.1 KiB
Plaintext
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.
|
|
|
|
|