Extracting &ohgr;'s programs from proofs in the calculus of constructions
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
Algebra of programming
Generic Programming within Dependently Typed Programming
Proceedings of the IFIP TC2/WG2.1 Working Conference on Generic Programming
Singleton types here, singleton types there, singleton types everywhere
Proceedings of the 4th ACM SIGPLAN workshop on Programming languages meets program verification
Dependently typed programming in Agda
AFP'08 Proceedings of the 6th international conference on Advanced functional programming
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Inductive-inductive definitions
CSL'10/EACSL'10 Proceedings of the 24th international conference/19th annual conference on Computer science logic
When is a type refinement an inductive type?
FOSSACS'11/ETAPS'11 Proceedings of the 14th international conference on Foundations of software science and computational structures: part of the joint European conferences on theory and practice of software
Realizability and parametricity in pure type systems
FOSSACS'11/ETAPS'11 Proceedings of the 14th international conference on Foundations of software science and computational structures: part of the joint European conferences on theory and practice of software
Fission for program comprehension
MPC'06 Proceedings of the 8th international conference on Mathematics of Program Construction
Transporting functions across ornaments
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
Modular type-safety proofs in Agda
PLPV '13 Proceedings of the 7th workshop on Programming languages meets program verification
A Categorical Treatment of Ornaments
LICS '13 Proceedings of the 2013 28th Annual ACM/IEEE Symposium on Logic in Computer Science
Hi-index | 0.00 |
Dependently typed programmers are encouraged to use inductive families to integrate constraints with data construction. Different constraints are used in different contexts, leading to different versions of datatypes for the same data structure. Modular implementation of common operations for these structurally similar datatypes has been a longstanding problem. We propose a datatype-generic solution based on McBride's datatype ornaments [11], exploiting an isomorphism whose interpretation borrows ideas from realisability. Relevant properties of the operations are separately proven for each constraint, and after the programmer selects several constraints to impose on a basic datatype and synthesises an inductive family incorporating those constraints, the operations can be routinely upgraded to work with the synthesised inductive family.