POPL Tutorial/Thursday

From The Twelf Project
Jump to: navigation, search

Mechanizing Metatheory with LF and Twelf

Do you want to learn how to use Twelf to specify, implement, and prove properties about programming languages?

Come to the Twelf tutorial on January 19, 2009, co-located with POPL 2009, in Savannah, Georgia.

Learn to:

under the helpful guidance of Twelf experts.

The tutorial will be a highly interactive introduction to LF and Twelf aimed at programming languages researchers. No prior experience with LF and Twelf is presumed. Participants will leave the workshop with experience in reading and writing LF representations of programming languages, and experience reading, writing, and debugging Twelf proofs.

Register at the POPL 2009 registration site! The early registration deadline is December 19.

The tutorial is organized and presented by the CMU Principles of Programming group.

Schedule (all slides)

  • Overview (Answers)
    • Session A1: Representation
    • Session A2: Totality (notes)
    • Session A3: Metatheory
  • Languages (Answers)
    • Session B1: Representation and adequacy
    • Session B2: Metatheory

Get Twelf before the tutorial!

The tutorial will be interactive, with participants writing Twelf code, so you should come with Twelf installed on your laptop.

Pre-built binaries of Twelf are available for most operating systems through the Twelf Night(ly).


  • you can build Twelf from the source tarball. You will need MLton or sml/nj.
  • you can make yourself an account on the wiki, and do the exercises on your User:<login> page (linked at the top after you log in).

Then see Twelf with Emacs for the basics of interacting with Twelf. (You can also use Twelf without Emacs, by interacting with the Twelf server directly.)