From crary at cs.cmu.edu Mon Aug 11 14:45:55 2008 From: crary at cs.cmu.edu (Karl Crary) Date: Mon, 11 Aug 2008 14:45:55 -0400 Subject: [POPLmark] WMM'08 call for participation Message-ID: <48A088E3.3090602@cs.cmu.edu> Apologies for the cross-posting. ------------------------- CALL FOR PARTICIPATION 3rd Informal ACM SIGPLAN Workshop on Mechanizing Metatheory http://www.seas.upenn.edu/~sweirich/wmm/ Victoria, British Columbia September 20, 2008 Co-located with ICFP 2008. Researchers in programming languages have long felt the need for tools to help formalize and check their work. With advances in language technology demanding deep understanding of ever larger and more complex languages, this need has become urgent. There are a number of automated proof assistants being developed within the theorem proving community that seem ready or nearly ready to be applied in this domain -- yet, despite numerous individual efforts in this direction, the use of proof assistants in programming language research is still not commonplace: the available tools are confusingly diverse, difficult to learn, inadequately documented, and lacking in specific library facilities required for work in programming languages. The goal of this workshop is to bring together researchers who have experience using automated proof assistants for programming language metatheory, and those who are interested in using tool support for formalizing their work. One starting point for discussion will be the obstacles that hinder mechanisation (whether they be pragmatic or technical), and what users and developers can do to overcome them. The workshop will conclude with a session of five-minute talks. Proposals for five-minute talks will be accepted the morning of the workshop. Five-minute talks need not be polished, and discussions of works in progress are encouraged. Program Welcome: 8:50-9:00 Session 1: 9:00-10:30 Formalizing an Extensional Semantics for Units of Measure Andrew Kennedy Microsoft Research Cambridge Proving correctness of a dynamic atomicity analysis in Coq Caitlin Sadowski, Jaeheon Yi, Kenneth Knowles, and Cormac Flanagan University of California at Santa Cruz Mechanizing the Metatheory of a Language With Linear Resources and Context Effects Daniel K. Lee [1], Derek Dreyer [2], and Andreas Rossberg [2] [1] Carnegie Mellon University [2] Max Planck Institute for Software Systems Coffee Break: 10:30-11:00 Session 2: 11:00-12:00 Case Study: Subject Reduction for Mini-ML with References, in Isabelle/HOL + Hybrid Alan J. Martin University of Ottawa Mechanizing Methatheory with Nested Datatypes Andre Hirschowitz [1] and Marco Maggesi [2] [1] University of Nice (UNS) and CNRS [2] Universita di Firenze Lunch: 12:00-14:00 Session 3: 14:00-15:00 Shallow embedding of a logic in Coq Jerome Vouillon Universite Paris Diderot - Paris 7, CNRS Names via Substructural and Dependent Types Jason Reed Carnegie Mellon University Coffee Break: 15:00-15:30 Session 4: 15:30-16:30 SASyLF: An Educational Proof Assistant for Language Theory Jonathan Aldrich [1], Robert J. Simmons [1], and Key Shin [2] [1] Carnegie Mellon University [2] Microsoft Corporation Building Verified Language Tools in Operational Type Theory Aaron Stump The University of Iowa Five-minute talks: 16:30-17:00 From jonathan.aldrich at cs.cmu.edu Fri Aug 15 03:58:49 2008 From: jonathan.aldrich at cs.cmu.edu (Jonathan Aldrich) Date: Fri, 15 Aug 2008 00:58:49 -0700 Subject: [POPLmark] SASyLF educational proof assistant Message-ID: <48A53739.5060909@cs.cmu.edu> I'm pleased to announce the availability of the SASyLF educational proof assistant for the meta-theory of programming languages and logics. SASyLF ("Sassy Elf") has a simple design philosophy: language and logic syntax, semantics, and meta-theory are written as closely as possible to the way they are written on paper. This design choice means the tool can be adopted with little or no in-class instruction and with a minimal learning curve. Error messages are effectively localized and are presented in terms of student-understandable concepts. SASyLF can express many proofs typical of an introductory graduate type theory course; for example, we have developed a preliminary solution to part 2A of the POPLmark challenge, i.e. type soundness for System F-sub (more details below). SASyLF proofs are generally very explicit, but its built-in support for variable binding (the "LF" in SASyLF) provides substitution properties for free and avoids awkward variable encodings. Type theory researchers looking for a proof assistant with a gentle learning curve may also find SASyLF useful, with the caveat that proofs are likely to be somewhat more verbose than in existing theorem provers that focus on a research, rather than an educational, audience. The current release (version 0.7) is relatively stable and implements most checks, including rule application, correct and completeness case analysis, and uses of lemmas and the induction hypothesis. A few checks are still unimplemented, including those for substitution, weakening, exchange, and contraction--these features can be used but are not checked. We hope to implement these checks in the very near future, but decided to announce the tool as we believe it is mature enough to be useful in Fall courses. The open-source tool and more information is available at: http://www.sasylf.org/ We will present initial educational experience with SASyLF in a FDPE '08 workshop paper (available at the site above), and will describe the design of the tool in WMM '08. Also look for our poster at ICFP. If you're interested in using the tool in a course, but need some feature badly, please let me know, as I'd like to gather experience teaching with SASyLF. Thanks, Jonathan Aldrich P.S. While we are not ready for an official announcement of a solution to POPLmark, we have a preliminary draft of one for problem 2A, available at the site above. It is not yet a complete solution because our tool is missing a couple of necessary checks (as mentioned above), plus there is one line in the solution that is correct but is rejected due to a limitation in how our checker handles assumptions when applying the induction hypothesis (search our solution for "limitation"). Like some other solutions, we have also made a couple of simplifications, including declarative rather than algorithmic subtyping, and contextual reduction rules rather than explicit contexts with a hole. Our solution is longer than others but, in keeping with the tool's educational focus, is more explicit than many and arguably more readable to a non-expert user. Comments are welcome as we develop a final solution.