Hints on Proving Theorems in Twelf

Andrew W. Appel

Princeton University, February 2000

To run this tutorial, unpack the tar file, and use Emacs to visit the README file.

You may browse the tutorial on the web by clicking the links below, but that is a poor substitute for the interactive problem-solving you get by running it in Emacs.

Contents:

proving.elf
1. The mechanics of running Twelf.
2. Proving a theorem.
3. Organization of the object logic.
4. Examples using and, and_i, and_l.
5. Proof style.
proving2.elf
6. Implication elimination and introduction; metalogic vs. object logic.
7. Or, false, not.
proving3.elf
8. Twelf metalogic quantification.
9. Types in the object logic.
10. Creating object-logic functions and predicates.
11. Object logic quantification.
proving4.elf
12. Equality and congruence
13. Forward proof using "cut"
14. Twelf Traps and pitfalls
15. Object-logic definitions
proving5.elf
16. A case study
proving6.elf
17. Coping with nonstrictness
18. A case study in strictness and type inference (by Kedar Swadi)
proving7.elf
19. Extensionality & Equivalence Relations