#### DMCA

## Meta-theory à la carte (2013)

### Cached

### Download Links

Venue: | In POPL ’13 |

Citations: | 13 - 3 self |

### Citations

956 |
Types and Programming Languages
- Pierce
- 2002
(Show Context)
Citation Context ...ty features alone. The Tinkertype project [23] is a framework for modularly specifying formal languages. It was used to format the language variants used in Pierce’s “Types and Programming Languages” =-=[37]-=-, and to compose traditional pen-and-paper proofs. Both Boite [6] and Mulhern [29] consider how to extend existing inductive definitions and reuse related proofs in the Coq proof assistant. Both their... |

863 | Notions of computation and monads
- Moggi
- 1991
(Show Context)
Citation Context ...pose an approach based on interpreters. Of course, we are not the only ones to do so. A particularly prominent line of work based on interpreters is that of using monads to structure semantics. Moggi =-=[28]-=- pioneered monads to model computation effects and structure denotation semantics. Liang et al. [25] introduced monad transformers to compose multiple monads and build modular interpreters. Jaskelioff... |

404 | How to make ad-hoc polymorphism less ad hoc,"
- Wadler, Blott
- 1989
(Show Context)
Citation Context ...omplete definitions. The lack of reuse in formalizations is somewhat surprising, because proof assistants such as Coq and Agda have powerful modularity constructs including modules [26], type classes =-=[17, 39, 43]-=- and expressive forms of dependent types [10, 34]. It is reasonable to wonder whether these language constructs can achieve better reuse. After all, there has been a lot of progress in addressing exte... |

357 | System description: Twelf – a meta-logical framework for deductive systems.
- Pfenning, Schürmann
- 1999
(Show Context)
Citation Context ...r components. The problem of modeling binders has received a lot of attention before. Certain proof assistants and type theories address this problem with better support for names and abstract syntax =-=[36, 38]-=-. In general-purpose proof assistants like Coq, however, such support is not available. A popular approach, widely used in Coq formalizations, is to use mechanization-friendly first-order representati... |

277 | Monad transformers and modular interpreters
- Liang, Hudak, et al.
- 1995
(Show Context)
Citation Context ... prominent line of work based on interpreters is that of using monads to structure semantics. Moggi [28] pioneered monads to model computation effects and structure denotation semantics. Liang et al. =-=[25]-=- introduced monad transformers to compose multiple monads and build modular interpreters. Jaskelioff et al. [20] used an approach similar to DTC in combination with monads to provide modular implement... |

218 | Nominal logic, a first order theory of names and binding.
- Pitts
- 2003
(Show Context)
Citation Context ...r components. The problem of modeling binders has received a lot of attention before. Certain proof assistants and type theories address this problem with better support for names and abstract syntax =-=[36, 38]-=-. In general-purpose proof assistants like Coq, however, such support is not available. A popular approach, widely used in Coq formalizations, is to use mechanization-friendly first-order representati... |

212 |
Initial algebra semantics and continuous algebras
- Goguen, Thatcher, et al.
- 1977
(Show Context)
Citation Context ...h as structural induction cannot be used since they require closed or complete definitions. However, because MTC relies on folds, the proof methods used in the initial algebra semantics of data types =-=[16, 27]-=- offered an initial handle on this problem. With some care and adaptations, universal properties and other derived principles work quite well with modular Church encodings. Not only do universal prope... |

208 | Modules for Standard ML. In:
- MacQueen
- 1984
(Show Context)
Citation Context ...induction) assume complete definitions. The lack of reuse in formalizations is somewhat surprising, because proof assistants such as Coq and Agda have powerful modularity constructs including modules =-=[26]-=-, type classes [17, 39, 43] and expressive forms of dependent types [10, 34]. It is reasonable to wonder whether these language constructs can achieve better reuse. After all, there has been a lot of ... |

191 | Inductive definitions in the system Coq — rules and properties.
- Paulin-Mohring
- 1993
(Show Context)
Citation Context ...ons is somewhat surprising, because proof assistants such as Coq and Agda have powerful modularity constructs including modules [26], type classes [17, 39, 43] and expressive forms of dependent types =-=[10, 34]-=-. It is reasonable to wonder whether these language constructs can achieve better reuse. After all, there has been a lot of progress in addressing extensibility [13, 30, 32, 40] issues in general-purp... |

178 | Formal verification of a realistic compiler
- Leroy
- 2009
(Show Context)
Citation Context ...s copying an existing formalization and adapting it manually to incorporate new features. An extreme case of this copy-&-adapt approach can be found in Leroy’s 3 person-year verified compiler project =-=[22]-=-: it consists of 8 intermediate languages in addition to the source and target languages, many of which are minor variations of each other. Due to the crosscutting impact of new features, the adaptati... |

161 | Mechanized metatheory for the masses: The POPLmark challenge.
- Aydemir, Bohannon, et al.
- 2005
(Show Context)
Citation Context ...s of properties for non-inductive semantic functions, and mediating type classes enable proof adaptation for more feature-rich languages. 1. Introduction With their POPLMARK challenge, Aydemir et al. =-=[14]-=- identified representation of binders, complex inductions, experimentation, and reuse of components as key challenges in mechanizing programming language meta-theory. While progress has been made, for... |

146 | A Denotational Semantics of Inheritance
- Cook
- 1989
(Show Context)
Citation Context ... be possible too). Because such higher-order featuresrequire general recursion, they cannot be defined inductively using folds. To support these non-inductive features MTC uses a variation of mixins =-=[9]-=-. Mixins are closely related to Mendler-style folds, but they allow uses of general recursion, and can be modeled on top of Mendler-style Church encodings using a bounded fixpoint combinator. To illus... |

116 | Engineering formal metatheory.
- Aydemir, Chargueraud, et al.
- 2008
(Show Context)
Citation Context ...er, such support is not available. A popular approach, widely used in Coq formalizations, is to use mechanization-friendly first-order representations of binders such as the locally nameless approach =-=[1]-=-. This involves developing a number of straightforward, but tedious infrastructure lemmas and definitions for each new language. Such tedious infrastructure can be automatically generated [2] or reuse... |

105 |
A Simple Applicative Language: mini-ML
- Clément, Despeyroux, et al.
- 1986
(Show Context)
Citation Context ...an be modeled on top of Mendler-style Church encodings using a bounded fixpoint combinator. To illustrate MTC, we present a case study modularizing several orthogonal features of a variant of mini-ML =-=[8]-=-. The case study illustrates how various features and partial type soundness proofs can be modularly developed and verified and later composed to assemble complete languages and proofs. 1.1 Contributi... |

88 |
Algebraic Data Types and Program Transformation.
- Malcolm
- 1990
(Show Context)
Citation Context ...h as structural induction cannot be used since they require closed or complete definitions. However, because MTC relies on folds, the proof methods used in the initial algebra semantics of data types =-=[16, 27]-=- offered an initial handle on this problem. With some care and adaptations, universal properties and other derived principles work quite well with modular Church encodings. Not only do universal prope... |

67 | A Tutorial on the Universality and Expressiveness of Fold
- Hutton
- 1999
(Show Context)
Citation Context ...r them. It is an open problem to do so without resorting to axioms. MTC solves this problem with a novel axiom-free approach based on adaptations of two important aspects of folds discussed by Hutton =-=[19]-=-. 3.1 The Problem of Church Encodings and Induction Coq’s own original approach [35] to inductive data types was based on Church encodings. It is well-known that Church encodings ofinductive data typ... |

66 | Modular denotational semantics for compiler construction.
- Liang, Hudak
- 1996
(Show Context)
Citation Context ... challenging issue we are currently considering of is the pervasive impact of new sideeffecting features on existing definitions and proofs. We believe that existing work on modular monadic semantics =-=[20, 24, 25]-=- is a good starting point to overcome this hurdle. Acknowledgements We would like to especially thank William Cook for his help in structuring the presentation of this work. Further thanks to Don Bato... |

61 | Data types à la carte
- Swierstra
(Show Context)
Citation Context ...ssive forms of dependent types [10, 34]. It is reasonable to wonder whether these language constructs can achieve better reuse. After all, there has been a lot of progress in addressing extensibility =-=[13, 30, 32, 40]-=- issues in general-purpose languages using advanced type system features – although not a lot of attention has been paid to modular reasoning. This paper presents MTC, a framework for defining modular... |

59 | First-class type classes
- Sozeau, Oury
- 2008
(Show Context)
Citation Context ...omplete definitions. The lack of reuse in formalizations is somewhat surprising, because proof assistants such as Coq and Agda have powerful modularity constructs including modules [26], type classes =-=[17, 39, 43]-=- and expressive forms of dependent types [10, 34]. It is reasonable to wonder whether these language constructs can achieve better reuse. After all, there has been a lot of progress in addressing exte... |

48 |
and Gérard Huet. The calculus of constructions
- Coquand
- 1988
(Show Context)
Citation Context ...ons is somewhat surprising, because proof assistants such as Coq and Agda have powerful modularity constructs including modules [26], type classes [17, 39, 43] and expressive forms of dependent types =-=[10, 34]-=-. It is reasonable to wonder whether these language constructs can achieve better reuse. After all, there has been a lot of progress in addressing extensibility [13, 30, 32, 40] issues in general-purp... |

45 | Inductively defined types in the calculus of constructions
- Pfenning, Paulin-Mohring
- 1990
(Show Context)
Citation Context ...TC [13, 40]. However type-level fixpoints, central to DTC, cannot be used in Coq because they require general recursion. To avoid general recursion, we use least-fixpoints encoded as Church encodings =-=[5, 35]-=-. Church encodings inspired other solutions to the expression problem before (especially in object-oriented languages) [30–32]. However those solutions do not use F-algebras: instead, they use an isom... |

42 | Parametric higher-order abstract syntax for mechanized semantics.
- Chlipala
- 2008
(Show Context)
Citation Context ...n the Calculus of (Inductive) Constructions [34, 35]. Ubiquitous higher-order features such as binders and general recursion can also be implemented in MTC. Binders are modeled with a parametric HOAS =-=[7]-=- representation (a first-order representation would be possible too). Because such higher-order featuresrequire general recursion, they cannot be defined inductively using folds. To support these non... |

30 | How to believe a machine-checked proof
- Pollack
- 1998
(Show Context)
Citation Context ...ve new languages. Transparency One long-standing criticism of mechanized metatheory has been that it interferes with adequacy, i.e. convincing users that the proven theorem is in fact the desired one =-=[39]-=-. Certainly the use of PHOAS can complicate the transparency of mechanized definitions. The soundnessX theorem, for example, uses a more complicated statement than the pen-and-paper version because PH... |

27 | How to make ad hoc proof automation less ad hoc
- Gonthier, Ziliani, et al.
- 2013
(Show Context)
Citation Context ...omplete definitions. The lack of reuse in formalizations is somewhat surprising, because proof assistants such as Coq and Agda have powerful modularity constructs including modules [26], type classes =-=[17, 39, 43]-=- and expressive forms of dependent types [10, 34]. It is reasonable to wonder whether these language constructs can achieve better reuse. After all, there has been a lot of progress in addressing exte... |

26 | TinkerType: A language for playing with formal systems
- Levin, Pierce
- 2003
(Show Context)
Citation Context ... and logical relations. Mechanized Meta-Theory and Reuse Several ad-hoc tool-based approaches provide reuse, but none is based on a proof assistant’s modularity features alone. The Tinkertype project =-=[23]-=- is a framework for modularly specifying formal languages. It was used to format the language variants used in Pierce’s “Types and Programming Languages” [37], and to compose traditional pen-and-paper... |

25 |
Automatic synthesis of typed lambdaprograms on term algebras
- Böhm, Berarducci
- 1985
(Show Context)
Citation Context ...for Coq’s termination checker, because the recursive call does not conform to Coq’s structural restrictions. 2.2 Recursion-Free Church Encodings MTC encodes data types and folds with Church encodings =-=[5, 35]-=-, which are recursion-free. Church encodings represent (least) fixpoints and folds as follows: type Fix f = ∀a.Algebra f a → a fold :: Algebra f a → Fix f → a fold alg fa = fa alg Both definitions are... |

17 |
Extensible and modular generics for the masses
- Oliveira, Hinze, et al.
(Show Context)
Citation Context ...ssive forms of dependent types [10, 34]. It is reasonable to wonder whether these language constructs can achieve better reuse. After all, there has been a lot of progress in addressing extensibility =-=[13, 30, 32, 40]-=- issues in general-purpose languages using advanced type system features – although not a lot of attention has been paid to modular reasoning. This paper presents MTC, a framework for defining modular... |

16 | LNgen: Tool support for locally nameless representations
- Aydemir, Weirich
- 2010
(Show Context)
Citation Context ...approach [1]. This involves developing a number of straightforward, but tedious infrastructure lemmas and definitions for each new language. Such tedious infrastructure can be automatically generated =-=[2]-=- or reused from data type-generic definitions [21]. However this typically requires additional tool support. A higher-order representation like PHOAS [7] avoids most infrastructure definitions. While ... |

15 | Feature interactions, products, and composition
- Batory, Höfner, et al.
- 2011
(Show Context)
Citation Context ...of dependencies of a toplevel proof algebra forms a proof interface that must be satisfied by any language which uses that algebra. Such proof interfaces introduce the problem of feature interactions =-=[4]-=-, well-known from modular component-based frameworks. In essence, a feature interaction is functionality (e.g., a function or 4 Also available at http://www.cs.utexas.edu/~bendy/MTCe ::= N | e + e Ar... |

13 | Using catamorphisms, subtypes and monad transformers for writing modular functional interpreters
- Duponcheel
- 1995
(Show Context)
Citation Context ...ssive forms of dependent types [10, 34]. It is reasonable to wonder whether these language constructs can achieve better reuse. After all, there has been a lot of progress in addressing extensibility =-=[13, 30, 32, 40]-=- issues in general-purpose languages using advanced type system features – although not a lot of attention has been paid to modular reasoning. This paper presents MTC, a framework for defining modular... |

13 | Just do it: simple monadic equational reasoning
- Gibbons, Hinze
- 2011
(Show Context)
Citation Context ...ve to consider modular reasoning. Monads introduce important challenges in terms of modular reasoning. Only very recently some modular proof techniques for reasoning about monads have been introduced =-=[15, 33]-=-. While this is a good step forward, it remains to be seen whether these techniques are sufficient to reason about suitably generalized modular statements like soundness.The above approaches mainly i... |

13 | Effectiveadvice: Disciplined advice with explicit effects
- Oliveira, Schrijvers, et al.
(Show Context)
Citation Context ...ve to consider modular reasoning. Monads introduce important challenges in terms of modular reasoning. Only very recently some modular proof techniques for reasoning about monads have been introduced =-=[15, 33]-=-. While this is a good step forward, it remains to be seen whether these techniques are sufficient to reason about suitably generalized modular statements like soundness.The above approaches mainly i... |

9 | Extensibility for the masses: practical extensibility with Object Algebras.
- Oliveira, Cook
- 2012
(Show Context)
Citation Context ...o the expression problem before (especially in object-oriented languages) [30–32]. However those solutions do not use F-algebras: instead, they use an isomorphic representation called object algebras =-=[31]-=-. Object algebras are a better fit for languages where records are the main structuring construct (such as OO languages). Our solution differs from previous approaches in the use of Mendler-style Falg... |

8 |
Modular visitor components
- Oliveira
- 2009
(Show Context)
Citation Context |

6 | Operational semantics using the partiality monad.
- Danielsson
- 2012
(Show Context)
Citation Context ...ly on the executable artifact, rather than on an intermediate formulation based on logical relations. The only similar work in this direction, developed concurrently to our own, is that of Danielsson =-=[11]-=-. He uses the partiality monad, which fairly similar to our bounded fixpoint, to formalize semantic interpreters in Agda. He argues that this style is more easily understood and more obviously determi... |

5 |
Product lines of theorems
- DELAWARE, COOK, et al.
- 2011
(Show Context)
Citation Context ... independently or easily reused with new specifications. In contrast, our approach is fully implemented within Coq and allows for independent development and verification of features. Delaware et al. =-=[12]-=- applied product-line techniques for modularizing mechanized meta-theory proofs. As a case study, they built type safety proofs for a family of extensions to Featherweight Java from a common base of f... |

5 |
Coding recursion a la Mendler
- Uustalu, Vene
- 2000
(Show Context)
Citation Context ...d Coq setting. Another difference between DTC and MTC is the use of Mendler-style folds and algebras instead of conventional folds to express modular definitions. The advantage of Mendler-style folds =-=[41]-=- and algebras is that they offer explicit control over the evaluation order, which is important when modeling semantics of programming languages. MTC employs similar techniques to solve extensibility ... |

5 |
et al. Mechanized Metatheory for the Masses: The PoplMark Challenge
- Aydemir
- 2005
(Show Context)
Citation Context ...Programming Languages]: Formal Definitions and Theory—Semantics Keywords Modular Mechanized Meta-Theory, Extensible Church Encodings, Coq 1. Introduction With their POPLMARK challenge, Aydemir et al. =-=[3]-=- identified representation of binders, complex inductions, experimentation, and reuse of components as key challenges in mechanizing programming language meta-theory. While progress has been made, for... |

4 |
Proof reuse with extended inductive types
- Boite
- 2004
(Show Context)
Citation Context ...modularly specifying formal languages. It was used to format the language variants used in Pierce’s “Types and Programming Languages” [37], and to compose traditional pen-and-paper proofs. Both Boite =-=[6]-=- and Mulhern [29] consider how to extend existing inductive definitions and reuse related proofs in the Coq proof assistant. Both their techniques rely on external tools that are no longer available a... |

4 | Modularity and implementation of mathematical operational semantics. Electron
- Jaskelioff, Ghani, et al.
(Show Context)
Citation Context ...ed monads to model computation effects and structure denotation semantics. Liang et al. [25] introduced monad transformers to compose multiple monads and build modular interpreters. Jaskelioff et al. =-=[20]-=- used an approach similar to DTC in combination with monads to provide modular implementation of mathematical operational semantics. Our work could benefit of monads to model more complex language fea... |

4 | Proof weaving
- Mulhern
- 2006
(Show Context)
Citation Context ...ying formal languages. It was used to format the language variants used in Pierce’s “Types and Programming Languages” [37], and to compose traditional pen-and-paper proofs. Both Boite [6] and Mulhern =-=[29]-=- consider how to extend existing inductive definitions and reuse related proofs in the Coq proof assistant. Both their techniques rely on external tools that are no longer available and write extensio... |

4 |
The Expression Problem. Email
- Wadler
- 1998
(Show Context)
Citation Context ...nitions are closed to extension: the proofs and definitions of a language cannot simply be imported and extended with new constructs. This is a manifestation of the well-known Expression Problem (EP) =-=[42]-=-. 2. Modular reasoning: Reasoning with modular definitions requires reasoning about partial definitions and composing partial proofs to obtain a complete proof. However, most reasoning techniques (suc... |

3 |
et al.: Ott: Effective tool support for the working semanticist
- Sewell, Nardelli, et al.
- 2010
(Show Context)
Citation Context ...dularly specifying formal languages. It was used to format the language variants used in Pierce’s “Types and Programming Languages” [37], and to compose traditional pen-and-paper proofs. The Ott tool =-=[41]-=- allows users to write definitions and theorem statements in an ASCII format designed to mirror pen-andpaper formalizations. These are then automatically translated to definitions in either LATEX or a... |

2 | Evaluation à la carte: Non-strict evaluation via compositional data types
- Bahr
- 2011
(Show Context)
Citation Context ...misleading for someone trying to implement the semantics. Furthermore, this approach can be quite brittle: in more complex object languages using folds and laziness can lead to subtle semantic issues =-=[3]-=-. 2.4 Mendler-style Church Encodings To express semantics in a way that allows explicit control over evaluation and does not rely on the evaluation semantics of the meta-language, MTC adapts Church en... |

2 | Church numerals, twice
- Hinze
- 2005
(Show Context)
Citation Context ...aditional algebra. As the only concern is the behavior of proof algebras (which are traditional algebras) folded over Church encodings, this is a sufficient characterization of well-formedness. Hinze =-=[18]-=- uses the same characterization for deriving Church numerals. Fortunately, the left-to-right implication follows trivially from the definitions of fold ′ M and inf , independent of the particular term... |

2 | Gmeta: A generic formal metatheory framework for first-order representations
- Lee, Oliveira, et al.
- 2012
(Show Context)
Citation Context ...f straightforward, but tedious infrastructure lemmas and definitions for each new language. Such tedious infrastructure can be automatically generated [2] or reused from data type-generic definitions =-=[21]-=-. However this typically requires additional tool support. A higher-order representation like PHOAS [7] avoids most infrastructure definitions. While we have developed PHOAS-based binders in MTC, firs... |

1 | Modular type-safety proofs using dependant types
- Schwaab, Siek
(Show Context)
Citation Context ...se features was entirely manual, as opposed to the automated composition developed here. Concurrently with our development of MTC, Schwaab et al. have been working on modularizing meta-theory in Agda =-=[40]-=-. While MTC uses Church encodings to encode extensible datatypes, their approach achieves extensibility by using universes which can be lifted to the type level. Encodings and their associated proofs ... |