Dependently typed programming languages allow sophisticated properties of data to be expressed within the type system. Of particular use in dependently typed programming are indexed types that refine data by computationally useful information. For example, the N-indexed type of vectors refines lists by their lengths. Other data types may be refined in similar ways, but programmers must produce purpose-specific refinements on an ad hoc basis, developers must anticipate which refinements to include in libraries, and implementations often store redundant information about data and their refinements. This paper shows how to generically derive inductive characterizations of refinements of inductive types, and argues that these characterizations ...
This dissertation deals with constructive languages: languages for the formal expression of mathemat...
Dependently typed programmers are encouraged to use inductive families to inte-grate constraints wit...
We develop an explicit two level system that allows programmers to reason about the behavior of effe...
Dependently typed programming languages allow sophisticated properties of data to be expressed withi...
Dependently typed programming languages allow sophisticated properties of data to be expressed withi...
Dependently typed programming languages allow sophisticated properties of data to be expressed withi...
Research in dependent type theories [ML71a] has, in the past, concentrated on its use in the present...
Abstract. We consider the problem of efficient representation of dependently typed data. In particul...
This dissertation defends the idea of a closed dependent type theory whose inductive types are encod...
State of the art optimisation passes for dependently typed languages can help erase the redundant in...
Type theories can provide a foundational account of constructive mathematics, and for the computer s...
Language designers have in recent years proposed a wealth of richer type systems for programming whi...
Dependently typed programming languages allow the type system to express arbitrary propositions of i...
Funding: This work was generously supported by UK EPSRC Energise, grant number EP/V006290/1 (CMB).Wh...
AbstractA rigorous treatment of types as sets is given for the refinement calculus, a method of impe...
This dissertation deals with constructive languages: languages for the formal expression of mathemat...
Dependently typed programmers are encouraged to use inductive families to inte-grate constraints wit...
We develop an explicit two level system that allows programmers to reason about the behavior of effe...
Dependently typed programming languages allow sophisticated properties of data to be expressed withi...
Dependently typed programming languages allow sophisticated properties of data to be expressed withi...
Dependently typed programming languages allow sophisticated properties of data to be expressed withi...
Research in dependent type theories [ML71a] has, in the past, concentrated on its use in the present...
Abstract. We consider the problem of efficient representation of dependently typed data. In particul...
This dissertation defends the idea of a closed dependent type theory whose inductive types are encod...
State of the art optimisation passes for dependently typed languages can help erase the redundant in...
Type theories can provide a foundational account of constructive mathematics, and for the computer s...
Language designers have in recent years proposed a wealth of richer type systems for programming whi...
Dependently typed programming languages allow the type system to express arbitrary propositions of i...
Funding: This work was generously supported by UK EPSRC Energise, grant number EP/V006290/1 (CMB).Wh...
AbstractA rigorous treatment of types as sets is given for the refinement calculus, a method of impe...
This dissertation deals with constructive languages: languages for the formal expression of mathemat...
Dependently typed programmers are encouraged to use inductive families to inte-grate constraints wit...
We develop an explicit two level system that allows programmers to reason about the behavior of effe...