PolyP—a polytypic programming language extension
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A lightweight implementation of generics and dynamics
Proceedings of the 2002 ACM SIGPLAN workshop on Haskell
Scrap your boilerplate: a practical design pattern for generic programming
Proceedings of the 2003 ACM SIGPLAN international workshop on Types in languages design and implementation
Generic Programming within Dependently Typed Programming
Proceedings of the IFIP TC2/WG2.1 Working Conference on Generic Programming
Dependency-style generic haskell
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
Universes for generic programs and proofs in dependent type theory
Nordic Journal of Computing
Scrap your nameplate: (functional pearl)
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Containers: constructing strictly positive types
Theoretical Computer Science - Applied semantics: Selected topics
Constructing strictly positive families
CATS '07 Proceedings of the thirteenth Australasian symposium on Theory of computing - Volume 65
Uniform boilerplate and list processing
Haskell '07 Proceedings of the ACM SIGPLAN workshop on Haskell workshop
Journal of Functional Programming
Proceedings of the ACM SIGPLAN workshop on Generic programming
A universe of binding and computation
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Generic programming with fixed points for mutually recursive datatypes
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
LICS '09 Proceedings of the 2009 24th Annual IEEE Symposium on Logic In Computer Science
Generic programming with dependent types
SSDGP'06 Proceedings of the 2006 international conference on Datatype-generic programming
A generic deriving mechanism for Haskell
Proceedings of the third ACM Haskell symposium on Haskell
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
Generic programming with indexed functors
Proceedings of the seventh ACM SIGPLAN workshop on Generic programming
Mechanized metatheory for the masses: the PoplMark challenge
TPHOLs'05 Proceedings of the 18th international conference on Theorem Proving in Higher Order Logics
Exploring the regular tree types
TYPES'04 Proceedings of the 2004 international conference on Types for Proofs and Programs
GMETA: a generic formal metatheory framework for first-order representations
ESOP'12 Proceedings of the 21st European conference on Programming Languages and Systems
Generic conversions of abstract syntax representations
Proceedings of the 8th ACM SIGPLAN workshop on Generic programming
Modular type-safety proofs in Agda
PLPV '13 Proceedings of the 7th workshop on Programming languages meets program verification
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Hi-index | 0.00 |
Formal reasoning in proof assistants, also known as mechanization, has high development costs. Building modular reusable components is a key issue in reducing these costs. A stumbling block for reuse is that inductive definitions and proofs are closed to extension. This is a manifestation of the expression problem that has been addressed by the Meta-Theory a la Carte (MTC) framework in the context of programming language meta-theory. However, MTC's use of extensible Church-encodings is unsatisfactory. This paper takes a better approach to the problem with datatype-generic programming (DGP). It applies well-known DGP techniques to represent modular datatypes, to build functions from functor algebras with folds and to compose proofs from proof algebras by means of induction. Moreover, for certain functionality and proofs our approach can achieve more reuse than MTC: instead of composing modular components we provide a single generic definition once and for all.