Results 1 -
1 of
1
Generic Datatypes a ̀ la Carte
"... Formal reasoning in proof assistants, also known as mechaniza-tion, has high development costs. Building modular reusable com-ponents is a key issue in reducing these costs. A stumbling block for reuse is that inductive definitions and proofs are closed to ex-tension. This is a manifestation of the ..."
Abstract
- Add to MetaCart
(Show Context)
Formal reasoning in proof assistants, also known as mechaniza-tion, has high development costs. Building modular reusable com-ponents is a key issue in reducing these costs. A stumbling block for reuse is that inductive definitions and proofs are closed to ex-tension. 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 tech-niques to represent modular datatypes, to build functions from functor algebras with folds and to compose proofs from proof alge-bras 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 defi-nition once and for all.