[TYPES] SASyLF proof assistant: teaching experience

Jonathan Aldrich jonathan.aldrich at cs.cmu.edu
Wed Jul 29 17:34:59 EDT 2009


If you're planning to teach a programming language or logic foundations 
course and are thinking about using a proof assistant, you might 
consider SASyLF.  SASyLF (Second-order Abstract Syntax Logical 
Framework) is an LF-based proof assistant that the same logical 
foundation and many of the same advantages as Twelf (in particular, 
variable binding is "built in").  However, it uses a syntax very close 
to that used for proofs on paper, giving the tool a much gentler 
learning curve--and much better error messages--than many alternatives.

In Fall 2008, John Boyland at UWM and Todd Millstein at UCLA used SASyLF 
for their type theory courses.  Sample homeworks are available at 
Boyland's course page: they include proof exercises from Pierce's book, 
which students did in SASyLF, all the way up to advanced chapters such 
as 20, 22, 23, and 30:

http://www.cs.uwm.edu/classes/cs732/index-fa08.html

Experience with SASyLF from the courses was very positive.  In 
particular, feedback from a student post-survey included (Likert scale 
1-5, 5 is strongly agree):

  * Would like to use SASyLF in another PL course: 4.2
  * Able to learn SASyLF quickly: 3.8
  * SASyLF improved my ability to prove theorems, even on paper: 4.0
  * SASyLF enabled me to accomplish tasks more quickly: 3.3

More information, the SASyLF command-line proof checker, and a very 
simple Eclipse-based IDE, are available at:

http://www.sasylf.org/


SASyLF is not ideal for everything.  It shares many of the disadvantages 
of Twelf--e.g. things like sets are neither built-in nor available as 
generic libraries, and it supports only forall-exists theorems (good 
enough for many PL theorems including typical type soundness theorems 
but not enough for e.g. logical relations).  SASyLF is also more verbose 
than Twelf (probably a good thing for teaching, but perhaps not so good 
for research-scale proofs) and since it is second-order it does not 
support some higher-order encodings that Twelf does.  But we 
nevertheless believe it can be a valuable tool in many classrooms!

Contact me if you have any questions.

Jonathan Aldrich


More information about the Types-list mailing list