Type-and-scope safe programs and their proofs

We abstract the common type-and-scope safe structure from computations on λ-terms that deliver, e.g., renaming, substitution, evaluation, CPS-transformation, and printing with a name supply. By exposing this structure, we can prove generic simulation and fusion lemmas relating operations built this way. This work has been fully formalised in Agda.

[1]  Ulf Norell,et al.  Dependently typed programming in Agda , 2009, TLDI '09.

[2]  Olivier Danvy,et al.  Type-directed partial evaluation , 1995, POPL '96.

[3]  Olivier Danvy,et al.  A generic account of continuation-passing styles , 1994, POPL '94.

[4]  Stephanie Weirich,et al.  Dependently typed programming with singletons , 2013, Haskell '12.

[5]  Ulf Norell,et al.  Parsing Mixfix Operators , 2008, IFL.

[6]  P. Medawar A view from the left , 1984, Nature.

[7]  Ulrich Berger,et al.  Program Extraction from Normalization Proofs , 2006, Stud Logica.

[8]  Chung-Kil Hur,et al.  Strongly Typed Term Representations in Coq , 2011, Journal of Automated Reasoning.

[9]  Martin Hofmann,et al.  Categorical Reconstruction of a Reduction Free Normalization Proof , 1995, Category Theory and Computer Science.

[10]  de Ng Dick Bruijn Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation, with application to the Church-Rosser theorem , 1972 .

[11]  Adam Chlipala Parametric higher-order abstract syntax for mechanized semantics , 2008, ICFP.

[12]  John C. Mitchell,et al.  Foundations for programming languages , 1996, Foundation of computing series.

[13]  James Chapman,et al.  Type checking and normalisation , 2009 .

[14]  Sophia Mã ¶ ller Partial Evaluation Practice And Theory Diku 1998 International Summer School Copenhagen Denmark June 29 July 10 1998 , 1998 .

[15]  Emil Axelsson,et al.  Combining Deep and Shallow Embedding for EDSL , 2012, Trends in Functional Programming.

[16]  Philip Wadler,et al.  A prettier printer , 2002 .

[17]  de Ng Dick Bruijn,et al.  Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation, with application to the Church-Rosser theorem , 1972 .

[18]  Catarina Coquand,et al.  A Formalised Proof of the Soundness and Completeness of a Simply Typed Lambda-Calculus with Explicit Substitutions , 2002, High. Order Symb. Comput..

[19]  Christine Paulin-Mohring,et al.  The coq proof assistant reference manual , 2000 .

[20]  Thierry Coquand,et al.  Intuitionistic model constructions and normalization proofs , 1997, Mathematical Structures in Computer Science.

[21]  Brigitte Pientka,et al.  Copatterns: programming infinite structures by observations , 2013, POPL.

[22]  Eugenio Moggi,et al.  Notions of Computation and Monads , 1991, Inf. Comput..

[23]  John Hughes,et al.  The Design of a Pretty-printing Library , 1995, Advanced Functional Programming.

[24]  Jean-Philippe Bernardy,et al.  Type-theory in color , 2013, ICFP.

[25]  J. Y. Girard,et al.  Interpretation fonctionelle et elimination des coupures dans l'aritmetique d'ordre superieur , 1972 .

[26]  P. Dybjer Inductive sets and families in Martin-Lo¨f's type theory and their set-theoretic semantics , 1991 .

[27]  John C. Reynolds,et al.  Types, Abstraction and Parametric Polymorphism , 1983, IFIP Congress.

[28]  Paul Hudak,et al.  Building domain-specific embedded languages , 1996, CSUR.

[29]  Jacques Carette,et al.  Finally tagless, partially evaluated: Tagless staged interpreters for simpler typed languages , 2007, Journal of Functional Programming.

[30]  Andreas Abel,et al.  Normalization by Evaluation in the Delay Monad , 2016 .

[31]  Conor McBride,et al.  Hasochism: the pleasure and pain of dependently typed haskell programming , 2013, Haskell '13.

[32]  Per Martin-Löf,et al.  Constructive mathematics and computer programming , 1984 .

[33]  Andy Gill Domain-specific Languages and Code Synthesis Using Haskell , 2014, ACM Queue.

[34]  Andy Gill,et al.  Domain-specific languages and code synthesis using Haskell , 2014, CACM.

[35]  John C. Mitchell,et al.  Kripke-Style Models for Typed lambda Calculus , 1991, Ann. Pure Appl. Log..

[36]  Freek Wiedijk Pollack-inconsistency , 2012, Electron. Notes Theor. Comput. Sci..

[37]  Jacques Carette,et al.  Finally Tagless, Partially Evaluated , 2007, APLAS.

[38]  Thorsten Altenkirch,et al.  Monadic Presentations of Lambda Terms Using Generalized Inductive Types , 1999, CSL.

[39]  P. Hudak Building Domain-speciic Embedded Languages , 1996 .