https://github.com/jgaltidor/twelf_tutorial
Twelf Tutorial and Twelf Encoding of Minilang
https://github.com/jgaltidor/twelf_tutorial
formal-methods formal-verification proof-assistant twelf typetheory-paper
Last synced: 3 months ago
JSON representation
Twelf Tutorial and Twelf Encoding of Minilang
- Host: GitHub
- URL: https://github.com/jgaltidor/twelf_tutorial
- Owner: jgaltidor
- License: mit
- Created: 2015-01-01T20:30:59.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2015-06-09T01:24:34.000Z (about 11 years ago)
- Last Synced: 2025-12-20T18:23:27.275Z (6 months ago)
- Topics: formal-methods, formal-verification, proof-assistant, twelf, typetheory-paper
- Size: 2.06 MB
- Stars: 7
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Twelf Tutorial
===============
Background
----------
[Twelf][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][hoas], for reasoning
about formal languages and deductive logics.
Contents
---------
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).
### Documentation
* [`typetheory_paper.pdf`](typetheory_paper.pdf):
Presents a type theory tutorial using *Minilang* as an
example language for presenting concepts.
* [`typetheory_slides.pdf`](typetheory_slides.pdf):
Slide presentation of material in
[`typetheory_paper.pdf`](typetheory_paper.pdf).
* [`twelf_slides.pdf`](twelf_slides.pdf):
More detailed slide presentation of Twelf and Twelf
encoding of *Minilang*.
### Twelf Files
* [`sources.cfg`](sources.cfg):
Tells Twelf the files to read and the order in which to process them.
* [`syntax.elf`](syntax.elf):
Twelf encoding of *Minilang*'s syntax.
* [`typing.elf`](typing.elf):
Twelf encoding of *Minilang*'s typing rules or static semantics.
* [`evaluation.elf`](evaluation.elf):
Twelf encoding of *Minilang*'s evaluation rules or dynamic semantics.
* [`preservation.elf`](preservation.elf):
Contains the preservation theorem and its proof.
* [`progress.elf`](progress.elf):
Contains the progress theorem and its proof.
* [`test_typing.elf`](test_typing.elf):
Provides example judgments that can be automatically derived by Twelf.
Twelf Live Server
------------------
The Twelf system can be used without installing it on
your local machine by using the
[Twelf Live Server][twelf_server].
[twelf]: http://twelf.org/wiki/Main_Page
[hoas]: http://twelf.org/wiki/Higher-order_abstract_syntax
[twelf_server]: http://twelf.org/live/