Published: 11th September 2010 DOI: 10.4204/EPTCS.34 ISSN: 2075-2180 |
Preface Karl Crary and Marino Miculan | |
Invited Presentation:
Typed metaprogramming with effects Chung-chieh Shan | 1 |
Invited Presentation:
The Practice and Promise of Substructural Frameworks Frank Pfenning | 3 |
Explicit Substitutions for Contextual Type Theory Andreas Abel and Brigitte Pientka | 5 |
Generating Bijections between HOAS and the Natural Numbers John Tang Boyland | 21 |
Closed nominal rewriting and efficiently computable nominal algebra equality Maribel Fernández and Murdoch J. Gabbay | 37 |
Pure Type Systems without Explicit Contexts Herman Geuvers, Robbert Krebbers, James McKinna and Freek Wiedijk | 53 |
A Monadic Formalization of ML5 Daniel R. Licata and Robert Harper | 69 |
Representing Isabelle in LF Florian Rabe | 85 |
Pattern Unification for the Lambda Calculus with Linear and Affine Types Anders Schack-Nielsen and Carsten Schürmann | 101 |
Type theories, logical frameworks and meta-languages form a common foundation for designing, implementing, and reasoning about formal languages and their semantics. They are central to the design of modern programming languages, certified software, and domain specific logics. More generally, they continue to influence applications in many areas in mathematics, logic and computer science.
The Logical Frameworks and Meta-languages: Theory and Practice workshop aims to bring together designers, implementers, and practitioners working on these areas, and in particular about:
LFMTP workshops continue the workshop series on logical frameworks and meta-languages, which started in 1999. In 2006, the International Workshop on Logical Frameworks and Meta-languages (LFM) merged with the workshop on MEchanized Reasoning about Languages with variable BInding (MERLIN). A first edition of LFMTP was held at FLOC’06.
This volume contains the final and revised versions of the papers presented at LFMTP 2010, which was held on July 14, 2010 in Edinburgh (UK). LFMTP 2010 was part of the Federated Logic Conference (FLoC 2010), and affilated with LICS 2010.
Submitted papers have been reviewed by the Programme Committee, which was composed by Stefan Berghofer, Yves Bertot, Karl Crary (co-chair), Amy Felty, Marino Miculan (co-chair), Benjamin Pierce, Andy Pitts, Carsten Schürmann. The Committee members have been helped by the following sub-reviewers: Pietro Di Gianantonio, Brian Huffman, Jordi Levy, Dan Licata, Alberto Momigliano, Frank Pfenning, Jason Reed, Ivan Scagnetto, Anders Schack-Nielsen.
The workshop was attended by about 40 researchers. Beside the contributed talks, we also had the pleasure of two invited lectures, by Frank Pfenning and Chung-chieh Shan.
LFMTP 2010 was made possible by the contribution of many people. We thank the PC members, the invited speakers, the participants to the workshops, and all the authors who submitted papers for consideration for this workshop. We would like to thank also the referees for their effort in preparing careful reviews.
Karl Crary, Marino Miculan
LFMTP 2010 co-chairs
Metaprogramming is a popular and effective way to reconcile modularity with efficiency in software. For example, a modular metaprogram for the Fourier transform can generate a variety of implementations optimized for different problem sizes, number representations, and processor architectures. Metaprogramming is also a widespread phenomenon in human language, especially when agents ascribe beliefs to each other. For example, people quote fragments from each other’s utterances in order to curate meanings from each other’s minds.
In both settings, it is natural to extend the metalanguage with side effects, in particular delimited control effects. This extension lets metaprograms take advantage of the fact that the binding context of the object language often follows the evaluation context of the metalanguage. Such a combination of metaprogramming and effects provides a benchmark problem for mechanized metatheory.
To assure that object expressions stay well-formed, we impose a type system on metaprograms that incorporates two ideas from the literature: answer types, which track delimited control effects, and environment classifiers, which track object variable references. Unlike previous systems, this system lets effects reach beyond binders, so it supports loop-invariant code motion and inverse quantifier scope.
Logical frameworks are based on the premise that fundamental concepts and constructions in the definition of logics and programming languages should be directly supported in the framework. For LF, these include variable binding, substitution, as well as parametric and hypothetical judgments. Absent are intrinsic notions of state, consumable resource, or concurrency, which appear to be similarly fundamental. Integrating these into logical frameworks has led to the development of substructural frameworks such as LLF (linear) [1], RLF (relevant) [3], OLF (ordered) [7], CLF (concurrent) [13, 2] and HLF (hybrid) [9]. Recent implementations such as Lollimon [4], Celf [10], and HLF [9] have allowed us to gain some experience with using these languages [8, 14, 15, 11, 12].
A promising related specification technique for programming languages is substructural operational semantics (SSOS) [5, 6]. We illustrate this technique and the logical framework features that support it through several sample programming constructs. We also sketch our current approach to analyzing such specifications, which has been the most challenging part in the development of the next generation of logical frameworks.
This talk presents joint work with Jason C. Reed and Robert J. Simmons.
[1] Iliano Cervesato & Frank Pfenning (2002): A Linear Logical Framework. Information & Computation 179(1), pp. 19–75. Revised and expanded version of an extended abstract, LICS 1996, pp. 264-275.
[2] Iliano Cervesato, Frank Pfenning, David Walker & Kevin Watkins (2002): A Concurrent Logical Framework II: Examples and Applications. Technical Report CMU-CS-02-102, Department of Computer Science, Carnegie Mellon University. Revised May 2003.
[3] Samin Ishtiaq & David Pym (1998): A Relevant Analysis of Natural Deduction. Journal of Logic and Computation 8(6), pp. 809–838.
[4] Pablo López, Frank Pfenning, Jeff Polakow & Kevin Watkins (2005): Monadic Concurrent Linear Logic Programming. In: A.Felty, editor: Proceedings of the 7th International Symposium on Principles and Practice of Declarative Programming (PPDP’05), ACM Press, Lisbon, Portugal, pp. 35–46.
[5] Frank Pfenning (2004): Substructural Operational Semantics and Linear Destination-Passing Style. In: W.-N. Chin, editor: Proceedings of the 2nd Asian Symposium on Programming Languages and Systems (APLAS’04), Springer-Verlag LNCS 3302, Taipei, Taiwan, p. 196. Abstract of invited talk.
[6] Frank Pfenning & Robert J. Simmons (2009): Substructural Operational Semantics as Ordered Logic Programming. In: Proceedings of the 24th Annual Symposium on Logic in Computer Science (LICS 2009), IEEE Computer Society Press, Los Angeles, California, pp. 101–110.
[7] Jeff Polakow (2001): Ordered Linear Logic and Applications. Ph.D. thesis, Department of Computer Science, Carnegie Mellon University.
[8] Jeff Polakow & Kwangkeun Yi (2000): Proving Syntactic Properties of Exceptions in an Ordered Logical Framework. In: Proceedings of the First Asian Workshop on Programming Languages and Systems (APLAS’00), pp. 23–32.
[9] Jason C. Reed (2009): A Hybrid Logical Framework. Ph.D. thesis, Carnegie Mellon University. Available as Technical Report CMU-CS-09-155.
[10] Anders Schack-Nielsen & Carsten Schürmann (2008): Celf - A Logical Framework for Deductive and Concurrent Systems. In: A. Armando, P. Baumgartner & G. Dowek, editors: Proceedings of the 4th International Joint Conference on Automated Reasoning (IJCAR’08), Springer LNCS 5195, Sydney, Australia, pp. 320–326.
[11] Robert J. Simmons & Frank Pfenning (2008): Linear Logical Algorithms. In: Proceedings of the 35th International Colloquium on Automata, Languages and Programming (ICALP’08), Springer LNCS 5126, Reykjavik, Iceland, pp. 336–345.
[12] Robert J. Simmons & Frank Pfenning (2009): Linear Logical Approximations. In: G. Puebla & G. Vidal, editors: Proceedings of the Workshop on Partial Evaluation and Program Manipulation, ACM SIGPLAN, Savannah, Georgia, pp. 9–20.
[13] Kevin Watkins, Iliano Cervesato, Frank Pfenning & David Walker (2002): A Concurrent Logical Framework I: Judgments and Properties. Technical Report CMU-CS-02-101, Department of Computer Science, Carnegie Mellon University. Revised May 2003.
[14] Kevin Watkins, Iliano Cervesato, Frank Pfenning & David Walker (2004): A Concurrent Logical Framework: The Propositional Fragment. In: S. Berardi, M. Coppo & F. Damiani, editors: Types for Proofs and Programs, Springer-Verlag LNCS 3085, pp. 355–377. Revised selected papers from the Third International Workshop on Types for Proofs and Programs, Torino, Italy, April 2003.
[15] Kevin Watkins, Iliano Cervesato, Frank Pfenning & David Walker (2004): Specifying Properties of Concurrent Computations in CLF. In: C.Schürmann, editor: Proceedings of the 4th International Workshop on Logical Frameworks and Meta-Languages (LFM’04), Electronic Notes in Theoretical Computer Science (ENTCS), vol 199, pp. 133–145, 2008, Cork, Ireland.