Results 1  10
of
10
Polytypic programming
, 2000
"... ... PolyP extends a functional language (a subset of Haskell) with a construct for defining polytypic functions by induction on the structure of userdefined datatypes. Programs in the extended language are translated to Haskell. PolyLib contains powerful structured recursion operators like catamorp ..."
Abstract

Cited by 94 (11 self)
 Add to MetaCart
... PolyP extends a functional language (a subset of Haskell) with a construct for defining polytypic functions by induction on the structure of userdefined datatypes. Programs in the extended language are translated to Haskell. PolyLib contains powerful structured recursion operators like catamorphisms, maps and traversals, as well as polytypic versions of a number of standard functions from functional programming: sum, length, zip, (==), (6), etc. Both the specification of the library and a PolyP implementation are presented.
Indexed InductionRecursion
, 2001
"... We give two nite axiomatizations of indexed inductiverecursive de nitions in intuitionistic type theory. They extend our previous nite axiomatizations of inductiverecursive de nitions of sets to indexed families of sets and encompass virtually all de nitions of sets which have been used in ..."
Abstract

Cited by 51 (17 self)
 Add to MetaCart
We give two nite axiomatizations of indexed inductiverecursive de nitions in intuitionistic type theory. They extend our previous nite axiomatizations of inductiverecursive de nitions of sets to indexed families of sets and encompass virtually all de nitions of sets which have been used in intuitionistic type theory. The more restricted of the two axiomatization arises naturally by considering indexed inductiverecursive de nitions as initial algebras in slice categories, whereas the other admits a more general and convenient form of an introduction rule.
Universes for Generic Programs and Proofs in Dependent Type Theory
 Nordic Journal of Computing
, 2003
"... We show how to write generic programs and proofs in MartinL of type theory. To this end we consider several extensions of MartinL of's logical framework for dependent types. Each extension has a universes of codes (signatures) for inductively defined sets with generic formation, introductio ..."
Abstract

Cited by 49 (2 self)
 Add to MetaCart
(Show Context)
We show how to write generic programs and proofs in MartinL of type theory. To this end we consider several extensions of MartinL of's logical framework for dependent types. Each extension has a universes of codes (signatures) for inductively defined sets with generic formation, introduction, elimination, and equality rules. These extensions are modeled on Dybjer and Setzer's finitely axiomatized theories of inductiverecursive definitions, which also have a universe of codes for sets, and generic formation, introduction, elimination, and equality rules.
Comparing Libraries for Generic Programming in Haskell
, 2008
"... Datatypegeneric programming is defining functions that depend on the structure, or “shape”, of datatypes. It has been around for more than 10 years, and a lot of progress has been made, in particular in the lazy functional programming language Haskell. There are more than 10 proposals for generic p ..."
Abstract

Cited by 21 (8 self)
 Add to MetaCart
Datatypegeneric programming is defining functions that depend on the structure, or “shape”, of datatypes. It has been around for more than 10 years, and a lot of progress has been made, in particular in the lazy functional programming language Haskell. There are more than 10 proposals for generic programming libraries or language extensions for Haskell. To compare and characterize the many generic programming libraries in a typed functional language, we introduce a set of criteria and develop a generic programming benchmark: a set of characteristic examples testing various facets of datatypegeneric programming. We have implemented the benchmark for nine existing Haskell generic programming libraries and present the evaluation of the libraries. The comparison is useful for reaching a common standard for generic programming, but also for a programmer who has to choose a particular approach for datatypegeneric programming.
Functional Generic Programming and Type Theory
, 2002
"... Functional generic programming is an area of research concerning programs parameterized by types. Such parameterization is a powerful method of abstraction that allows the programmer to dene and reuse common patterns of computation that work over many dierent datatypes. ..."
Abstract

Cited by 7 (3 self)
 Add to MetaCart
(Show Context)
Functional generic programming is an area of research concerning programs parameterized by types. Such parameterization is a powerful method of abstraction that allows the programmer to dene and reuse common patterns of computation that work over many dierent datatypes.
Polytypic properties and proofs in Coq
 In WGP
, 2009
"... We formalize proofs over Generic Haskellstyle polytypic programs in the proof assistant Coq. This makes it possible to do fully formal (machine verified) proofs over polytypic programs with little effort. Moreover, the formalization can be seen as a machine verified proof that polytypic proof spec ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
We formalize proofs over Generic Haskellstyle polytypic programs in the proof assistant Coq. This makes it possible to do fully formal (machine verified) proofs over polytypic programs with little effort. Moreover, the formalization can be seen as a machine verified proof that polytypic proof specialization is correct with respect to polytypic property specialization.
Implementing Certified Programming Language Tools in Dependent Type Theory
, 2007
"... ..."
(Show Context)
Recursive Families of Inductive Types
, 2000
"... Families of inductive types defined by recursion arise in the formalization of mathematical theories. An example is the family of term algebras on the type of signatures. Type theory does not allow the direct definition of such families. We state the problem abstractly by defining a notion, strong p ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
(Show Context)
Families of inductive types defined by recursion arise in the formalization of mathematical theories. An example is the family of term algebras on the type of signatures. Type theory does not allow the direct definition of such families. We state the problem abstractly by defining a notion, strong positivity, that characterizes these families. Then we investigate its solutions. First, we construct a model using wellorderings. Second, we use an extension...
Generic Programming and Proving for Programming Language
"... We present a system for both the generic programming of operations that work over classes of treestructured data types and the automatic generation of formal typetheoretical proofs about such operations. The system is implemented in the Coq proof assistant, using dependent types to validate code a ..."
Abstract
 Add to MetaCart
(Show Context)
We present a system for both the generic programming of operations that work over classes of treestructured data types and the automatic generation of formal typetheoretical proofs about such operations. The system is implemented in the Coq proof assistant, using dependent types to validate code and proof generation statically, quantified over all possible input data types. We focus on generic programming of variablemanipulating operations, such as substitution and free variable set calculation, over abstract syntax tree types implemented as GADTs that combine syntax and typing rules. By accompanying these operations with generic lemmas about their interactions, we significantly ease the burden of formalizing programming language metatheory. Our implementation strategy, based on proof by reflection, requires users to trust none of its associated code to be able to trust in the validity of theorems derived with it. 1.
Indexed InductionRecursion
"... An indexed inductive definition (IID) is a simultaneous inductive definition of an indexed family of sets. An inductiverecursive definition (IRD) is a simultaneous inductive definition of a set and a recursive definition of a function from that set into another type. An indexed inductiverecursive ..."
Abstract
 Add to MetaCart
(Show Context)
An indexed inductive definition (IID) is a simultaneous inductive definition of an indexed family of sets. An inductiverecursive definition (IRD) is a simultaneous inductive definition of a set and a recursive definition of a function from that set into another type. An indexed inductiverecursive definition (IIRD) is a combination of both. We present a closed theory which allows us to introduce all IIRDs in a natural way without much encoding. By specialising it we also get a closed theory of IID. Our theory of IIRDs includes essentially all definitions of sets which occur in MartinLöf type theory. We show in particular that MartinLöf’s computability predicates for dependent types and Palmgren’s higher order universes are special kinds of IIRD and thereby clarify why they are constructively acceptable notions. We give two axiomatisations. The first and more restricted one formalises a principle for introducing meaningful IIRD by using the dataconstruct in the original version of the proof assistant Agda for MartinLöf type theory. The second one admits a more general form of introduction rule, including the introduction rule for the intensional identity relation, which is not covered by the restricted one. If we add an extensional identity relation to our logical framework, we show that the theories of restricted and general IIRD are equivalent by interpreting them in each other. Finally, we show the consistency of our theories by constructing a model in classical set theory extended by a Mahlo cardinal.