15-317 Constructive Logic


To represent and prove things about logics, we'll be using Twelf, an implementation of the logical framework LF. The Twelf Wiki linked above is a great source of information about Twelf.

Twelf is installed on Andrew machines in the course directory. You can interact with the Twelf server directly by running:

For a quick tutorial on how to use the Twelf server, see the Twelf Wiki's article on using Twelf without Emacs.

To use the Twelf Emacs mode, add the following to your ~/.emacs file:

  (setq twelf-root "/afs/andrew/course/15/317/twelf/")
  (load (concat twelf-root "emacs/twelf-init.el"))
For a quick tutorial on how to use the Emacs mode to develop Twelf code, see the Twelf Wiki's article on using Twelf with Emacs.

To get vim syntax highlighting, copy the contents of

to your ~/.vim directory. Then Twelf syntax highlighting will automatically be enabled when editing .elf files.

You can also download Twelf as a source or binary distribution if you'd like to install it on your own machine.


For this course we are using GNU Prolog, release 1.4.1.

You can run the Andrew installation of GNU Prolog either by running the script:

  $ /afs/andrew/course/15/317/bin/runprolog
or by adding the directory /afs/andrew/course/15/317/bin to your path and running gprolog. You can also download a distribution from the GNU Prolog web site and install it on your own machine.

Most installations of vim and emacs have editing modes for Prolog code, but the default is to treat .pl files as Perl code. To switch to the Prolog mode in vim, use the command :setf prolog. To switch to the Prolog mode in emacs, use the command M-x prolog-mode.


In the first part of this course you will be using a proof checker called Tutch (short for Tutorial Proof Checker). As the name indicates, it checks the validity of formal proofs that users provide.

The current version of course software Tutch is 0.52 beta, October 24, 2002. The distribution is available from the course software directory, or directly from the Tutch home page.

On Andrew, Tutch is installed in /afs/andrew/course/15/317/bin. The executable files are tutch, submit and status; they should work under linux.andrew.cmu.edu and directly on the machines in the cluster with Linux. The easiest way to run them is with

  $ /afs/andrew/course/15/317/bin/tutch filename.tut

where filename.tut contains your proof or proofs. See the documentation for further information on running Tutch.

See Tutch Overview for an introduction to using the Tutch proof checker. The examples from the overview are available here.

The section on Requirements and Submission contains information on how to submit your homework.

Syntax Highlighting

For Vim, see Vim Syntax. For Emacs, Evan Cavallo has graciously written a Tutch mode.

[ Home | Schedule | Assignments | Software ]