skip to main content
10.1145/1411260.1411266acmconferencesArticle/Chapter ViewAbstractPublication PagesicfpConference Proceedingsconference-collections
research-article

SASyLF: an educational proof assistant for language theory

Published:21 September 2008Publication History

ABSTRACT

Teaching and learning formal programming language theory is hard, in part because it's easy to make mistakes and hard to find them. Proof assistants can help check proofs, but their learning curve is too steep to use in most classes, and is a barrier to researchers too.

In this paper we present SASyLF, an LF-based proof assistant specialized to checking theorems about programming languages and logics. SASyLF has a simple design philosophy: language and logic syntax, semantics, and meta-theory should be written as closely as possible to the way it is done on paper. We describe how we designed the SASyLF syntax to be accessible to students learning type theory, and how students can understand its semantics directly in terms of the theory they are taught in class. SASyLF can express proofs typical of an introductory graduate type theory course. SASyLF proofs are generally very explicit, but its built-in support for variable binding provides substitution properties for free and avoids awkward variable encodings. We describe preliminary experience teaching with SASyLF.

References

  1. Andreas Abel, Bor-Yuh Evan Chang, and Frank Pfenning. Human-Readable, Machine-Verifiable Proofs for Teaching Constructive Logic. In Workshop on Proof Transformations, Proof Presentations and Complexity of Proofs (PTP'01), June 2001.Google ScholarGoogle Scholar
  2. Brian Aydemir, Arthur Charguéraud, Benjamin C. Pierce, Randy Pollack, and Stephanie Weirich. Engineering Formal Metatheory. In Symposium on Principles of Programming Languages, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Brian E. Aydemir, Aaron Bohannon, Matthew Fairbairn, J. Nathan Foster, Benjamin C. Pierce, Peter Sewell, Dimitrios Vytiniotis, Geoffrey Washburn, Stephanie Weirich, and Steve Zdancewic. Mechanized Metatheory for the Masses: The PoplMark Challenge. In Theorem Proving in Higher Order Logics, pages 50--65, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Ian Barland, Matthias Felleisen, Kathi Fisler, Phokion Kolaitis, and Moshe Y. Vardi. Integrating Logic into the Computer Science Curriculum. http://www.cs.utexas.edu/\verb1 1csed/FM/docs/iticse--fislervardi.pdf, 2000.Google ScholarGoogle Scholar
  5. Jon Barwise and John Etchemendy. Computers, Visualization, and the Nature of Reasoning. In The Digital Phoenix: How Computers are Changing Philosophy, pages 93--116. Blackwell, 1998.Google ScholarGoogle Scholar
  6. Yves Bertot and Pierre Castéran. Interactive Theorem Proving and Program Development. Springer-Verlag, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Carl Eastlund, Dale Vaillancourt, and Matthias Felleisen. ACL2 for Freshmen: First Experiences. In ACL2 Workshop, 2007.Google ScholarGoogle Scholar
  8. Andrew Gacek. The Abella Interactive Theorem Prover (system description). In IJCAR, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. D. Goldson and S. Reeves. Using Programs to Teach Logic to Computer Scientists. Notices of the American Mathematical Society, 40: 143--148, 1993.Google ScholarGoogle Scholar
  10. Robert Harper. Practical Foundations for Programming Languages. Available at http://www.cs.cmu.edu/~rwh/plbook/book.pdf, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Robert Harper, Furio Honsell, and Gordon D. Plotkin. A Framework for Defining Logics. phJ. ACM, 40 (1): 143--184, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Jacob Matthews, Robert Bruce Findler, Matthew Flatt, and Matthias Felleisen. A Visual Environment for Developing Context-Sensitive Term Rewriting Systems. In International Conference on Rewriting Techniques and Applications. Springer Verlag LNCS 3091, 2004.Google ScholarGoogle Scholar
  13. Tobias Nipkow, Lawrence C. Paulson, and Markus Wenzel. Isabelle/HOL: A Proof Assistant For Higher-Order Logic. Lecture Notes in Computer Science, 2283, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Mikael Pettersson. Compiling Natural Semantics. PhD thesis, Linkoping University, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Frank Pfenning. Logical Frameworks. In Alan Robinson and Andrei Voronkov, editors, Handbook of Automated Reasoning, chapter 17, pages 1063--1147. Elsevier Science and MIT Press, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Frank Pfenning. Computation and Deduction. Cambridge University Press. In preparation. Draft from April 1997 available electronically at http://www.cs.cmu.edu/~twelf/notes/cd.ps.Google ScholarGoogle Scholar
  17. Frank Pfenning and Carsten Schürmann. System Description: Twelf - A Meta-Logical Framework for Deductive Systems. In International Conference on Automated Deduction, pages 202--206, July 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Richard Scheines and Wilfried Sieg. Computer Environments for Proof Construction. Interactive Learning Environments, 4: 159--169, 1994.Google ScholarGoogle ScholarCross RefCross Ref
  19. Carsten Schürmann. Automating the Meta-Theory of Deductive Systems. PhD thesis, Carnegie Mellon University, 2000.Google ScholarGoogle Scholar
  20. Peter Sewell, Francesco Zappa Nardelli, Scott Owens, Gilles Peskine, Tom Ridge, Susmit Sarkar, and Rok Strnisa. Ott: Effective Tool Support for the Working Semanticist. In International Conference on Functional Programming, pages 1--12, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Richard Sommer and Gregory Nuckols. A Proof Environment for Teaching Mathematics. J. Autom. Reason., 32 (3): 227--258, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. S. Tobias. Revitalizing Undergraduate Science: Why some things work and most don't. Research Corporation, 1992.Google ScholarGoogle Scholar
  23. Masaru Tomita. An Efficient Augmented-Context-Free Parsing Algorithm. phComputational Linguistics, 13 (1-2): 31--46, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Mark van den Brand, Jan Heering, Paul Klint, and Pieter Olivier. Compiling Rewrite Systems: The ASF+SDF Compiler. Transactions on Software Engineering and Methodology, 24: 334--368, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. SASyLF: an educational proof assistant for language theory

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Conferences
        FDPE '08: Proceedings of the 2008 international workshop on Functional and declarative programming in education
        September 2008
        98 pages
        ISBN:9781605580685
        DOI:10.1145/1411260

        Copyright © 2008 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 21 September 2008

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Upcoming Conference

        ICFP '24

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader