Results 1  10
of
47
Packaging mathematical structures
 THEOREM PROVING IN HIGHER ORDER LOGICS 5674
, 2009
"... This paper proposes generic design patterns to define and combine algebraic structures, using dependent records, coercions and type inference, inside the Coq system. This alternative to telescopes in particular supports multiple inheritance, maximal sharing of notations and theories, and automated ..."
Abstract

Cited by 41 (10 self)
 Add to MetaCart
This paper proposes generic design patterns to define and combine algebraic structures, using dependent records, coercions and type inference, inside the Coq system. This alternative to telescopes in particular supports multiple inheritance, maximal sharing of notations and theories, and automated structure inference. Our methodology is robust enough to handle a hierarchy comprising a broad variety of algebraic structures, from types with a choice operator to algebraically closed fields. Interfaces for the structures enjoy the convenience of a classical setting, without requiring any axiom. Finally, we present two applications of our proof techniques: a key lemma for characterising the discrete logarithm, and a matrix decomposition problem.
Indexed Containers
"... Abstract. The search for an expressive calculus of datatypes in which canonical algorithms can be easily written and proven correct has proved to be an enduring challenge to the theoretical computer science community. Approaches such as polynomial types, strictly positive types and inductive types h ..."
Abstract

Cited by 37 (5 self)
 Add to MetaCart
(Show Context)
Abstract. The search for an expressive calculus of datatypes in which canonical algorithms can be easily written and proven correct has proved to be an enduring challenge to the theoretical computer science community. Approaches such as polynomial types, strictly positive types and inductive types have all met with some success but they tend not to cover important examples such as types with variable binding, types with constraints, nested types, dependent types etc. In order to compute with such types, we generalise from the traditional treatment of types as free standing entities to families of types which have some form of indexing. The hallmark of such indexed types is that one must usually compute not with an individual type in the family, but rather with the whole family simultaneously. We implement this simple idea by generalising our previous work on containers to what we call indexed containers and show that they cover a number of sophisticated datatypes and, indeed, other computationally interesting structures such as the refinement calculus and interaction structures. Finally, and rather surprisingly, the extra structure inherent in indexed containers simplifies the theory of containers and thereby allows for a much richer and more expressive calculus. 1
The Gentle Art of Levitation
"... We present a closed dependent type theory whose inductive types are given not by a scheme for generative declarations, but by encoding in a universe. Each inductive datatype arises by interpreting its description—a firstclass value in a datatype of descriptions. Moreover, the latter itself has a de ..."
Abstract

Cited by 31 (8 self)
 Add to MetaCart
We present a closed dependent type theory whose inductive types are given not by a scheme for generative declarations, but by encoding in a universe. Each inductive datatype arises by interpreting its description—a firstclass value in a datatype of descriptions. Moreover, the latter itself has a description. Datatypegeneric programming thus becomes ordinary programming. We show some of the resulting generic operations and deploy them in particular, useful ways on the datatype of datatype descriptions itself. Surprisingly this apparently selfsupporting setup is achievable without paradox or infinite regress. 1.
Canonicity for 2Dimensional Type Theory
, 2012
"... Recent work on higherdimensional dependent type theory enriches conventional onedimensional dependent type theory with additional structure expressing equivalence of elements of a type. This structure may be employed in a variety of ways to capture rather coarse identifications of elements that mu ..."
Abstract

Cited by 23 (5 self)
 Add to MetaCart
Recent work on higherdimensional dependent type theory enriches conventional onedimensional dependent type theory with additional structure expressing equivalence of elements of a type. This structure may be employed in a variety of ways to capture rather coarse identifications of elements that must be respected by type families. Higherdimensional type theory has applications to code reuse for dependently typed programming, and to the formalization of mathematics. In this paper, we develop a novel judgemental formulation of a twodimensional type theory, which enjoys a canonicity property: a closed term of boolean type is definitionally equal to one of the two booleans. Canonicity is a necessary condition for a computational interpretation of type theory as a programming language, and does not hold for existing axiomatic presentations of higherdimensional type theory. The method of proof is a generalization of the NuPRL semantics, interpreting types as syntactic groupoids rather than equivalence relations.
A minimalist twolevel foundation for constructive mathematics
, 2008
"... We present a twolevel theory to formalize constructive mathematics as advocated in a previous paper with G. Sambin [MS05]. One level is given by an intensional type theory, called Minimal type theory. This theory extends the settheoretic version introduced in [MS05] with collections. The other lev ..."
Abstract

Cited by 19 (7 self)
 Add to MetaCart
We present a twolevel theory to formalize constructive mathematics as advocated in a previous paper with G. Sambin [MS05]. One level is given by an intensional type theory, called Minimal type theory. This theory extends the settheoretic version introduced in [MS05] with collections. The other level is given by an extensional set theory that is interpreted in the first one by means of a quotient model. This twolevel theory has two main features: it is minimal among the most relevant foundations for constructive mathematics; it is constructive thanks to the way the extensional level is linked to the intensional one which fulfills the “proofsasprograms” paradigm and acts as a programming language.
Giving Haskell a Promotion
, 2012
"... Static type systems strive to be richly expressive while still being simple enough for programmers to use. We describe an experiment that enriches Haskell’s kind system with two features promoted from its type system: data types and polymorphism. The new system has a very good powertoweight ratio: ..."
Abstract

Cited by 19 (4 self)
 Add to MetaCart
Static type systems strive to be richly expressive while still being simple enough for programmers to use. We describe an experiment that enriches Haskell’s kind system with two features promoted from its type system: data types and polymorphism. The new system has a very good powertoweight ratio: it offers a significant improvement in expressiveness, but, by reusing concepts that programmers are already familiar with, the system is easy to understand and implement.
Outrageous but meaningful coincidences: Dependent typesafe syntax and evaluation
 In ACM SIGPLAN Workshop on Genetic Programming (WGP’10
, 2010
"... Tagless interpreters for welltyped terms in some object language are a standard example of the power and benefit of precise indexing in types, whether with dependent types, or generalized algebraic datatypes. The key is to reflect object language types as indices (however they may be constituted) f ..."
Abstract

Cited by 10 (1 self)
 Add to MetaCart
(Show Context)
Tagless interpreters for welltyped terms in some object language are a standard example of the power and benefit of precise indexing in types, whether with dependent types, or generalized algebraic datatypes. The key is to reflect object language types as indices (however they may be constituted) for the term datatype in the host language, so that host type coincidence ensures object type coincidence. Whilst this technique is widespread for simply typed object languages, dependent types have proved a tougher nut with nontrivial computation in type equality. In their typesafe representations, Danielsson [2006] and Chapman [2009] succeed in capturing the equality rules, but at the cost of representing equality derivations explicitly within terms. This article delivers a typesafe representation for a dependently typed object language, dubbed KIPLING, whose computational type equality just appropriates that of its host, Agda. The KIPLING interpreter example is not merely de rigeur— it is key to the construction. At the heart of the technique is that key component of generic programming, the universe. 1.
Higher Inductive Types in Homotopy Type Theory
"... Homotopy Type Theory (HoTT) refers to the homotopical interpretation [1] of MartinLöf’s intensional, constructive type theory (MLTT) [5], together with several new principles motivated by that interpretation. Voevodsky’s Univalent Foundations program [6] is a conception for a new foundation for mat ..."
Abstract

Cited by 8 (2 self)
 Add to MetaCart
(Show Context)
Homotopy Type Theory (HoTT) refers to the homotopical interpretation [1] of MartinLöf’s intensional, constructive type theory (MLTT) [5], together with several new principles motivated by that interpretation. Voevodsky’s Univalent Foundations program [6] is a conception for a new foundation for mathematics, based on HoTT and implemented in a proof assistant like Coq [2]. Among the new principles to be added to MLTT are the Univalence Axiom [4], and the socalled higher inductive types (HITs), a new idea due to Lumsdaine and Shulman which allows for the introduction of some basic spaces and constructions from homotopy theory. For example, the ndimensional spheres S n can be implemented as HITs, in a way analogous to the implementation of the natural numbers as a conventional inductive type. Other examples include the unit interval; truncations, such as brackettypes [A]; and quotients by equivalent relations or groupoids. The combination of univalence and HITs is turning out to be a very powerful and workable system for the formalization of homotopy theory, with the recently given, formally verified proofs of some fundamental results, such as determinations of various of the homotopy groups of spheres by Brunerie and Licata. See [3] for much work in progress After briefly reviewing the foregoing developments, I will give an impredicative encoding of certain HITs on the basis of a new representation theorem, which states that every type of a particular kind is equivalent to its double dual in the space of coherent natural transformations. A realizability model is also provided, establishing the consistency of impredicative HoTT and its extension by HITs.
Dependently Typed Programming with DomainSpecific Logics
 SUBMITTED TO POPL ’09
, 2008
"... We define a dependent programming language in which programmers can define and compute with domainspecific logics, such as an accesscontrol logic that statically prevents unauthorized access to controlled resources. Our language permits programmers to define logics using the LF logical framework, ..."
Abstract

Cited by 6 (3 self)
 Add to MetaCart
(Show Context)
We define a dependent programming language in which programmers can define and compute with domainspecific logics, such as an accesscontrol logic that statically prevents unauthorized access to controlled resources. Our language permits programmers to define logics using the LF logical framework, whose notion of binding and scope facilitates the representation of the consequence relation of a logic, and to compute with logics by writing functional programs over LF terms. These functional programs can be used to compute values at runtime, and also to compute types at compiletime. In previous work, we studied a simplytyped framework for representing and computing with variable binding [LICS 2008]. In this paper, we generalize our previous type theory to account for dependently typed inference rules, which are necessary to adequately represent domainspecific logics, and we present examples of using our type theory for certified software and mechanized metatheory.
ΠΣ: Dependent Types without the Sugar
"... Abstract. The recent success of languages like Agda and Coq demonstrates the potential of using dependent types for programming. These systems rely on many highlevel features like datatype definitions, pattern matching and implicit arguments to facilitate the use of the languages. However, these fe ..."
Abstract

Cited by 6 (0 self)
 Add to MetaCart
(Show Context)
Abstract. The recent success of languages like Agda and Coq demonstrates the potential of using dependent types for programming. These systems rely on many highlevel features like datatype definitions, pattern matching and implicit arguments to facilitate the use of the languages. However, these features complicate the metatheoretical study and are a potential source of bugs. To address these issues we introduce ΠΣ, a dependently typed core language. It is small enough for metatheoretical study and the type checker is small enough to be formally verified. In this language there is only one mechanism for recursion—used for types, functions and infinite objects— and an explicit mechanism to control unfolding, based on lifted types. Furthermore structural equality is used consistently for values and types; this is achieved by a new notion of αequality for recursive definitions. We show, by translating several highlevel constructions, that ΠΣ is suitable as a core language for dependently typed programming. 1