Twelf is a proof assistant tool for checking and deriving proofs of mathematical properties. The Twelf system provides useful software features, such as higher-order abstract syntax, for reasoning about formal languages and deductive logics.
This package is a tutorial on Twelf and type theory.
Concepts are presented using a Twelf encoding of
programming language Minilang.
Minilang is a language of number and strings
that is rigorously defined in file
typetheory_paper.pdf.
typetheory_paper.pdf: Presents a type theory tutorial using Minilang as an example language for presenting concepts.typetheory_slides.pdf: Slide presentation of material intypetheory_paper.pdf.twelf_slides.pdf: More detailed slide presentation of Twelf and Twelf encoding of Minilang.
sources.cfg: Tells Twelf the files to read and the order in which to process them.syntax.elf: Twelf encoding of Minilang's syntax.typing.elf: Twelf encoding of Minilang's typing rules or static semantics.evaluation.elf: Twelf encoding of Minilang's evaluation rules or dynamic semantics.preservation.elf: Contains the preservation theorem and its proof.progress.elf: Contains the progress theorem and its proof.test_typing.elf: Provides example judgments that can be automatically derived by Twelf.
The Twelf system can be used without installing it on your local machine by using the Twelf Live Server.