Title
A multivalued language with a dependent type system
Abstract
Type systems are used to eliminate certain classes of errors at compile time. One of the goals of type system research is to allow more classes of errors (such as array subscript errors) to be eliminated. Dependent type systems have played a key role in this effort, and much research has been done on them. In this paper, we describe a new dependently-typed functional programming language based on two key ideas. First, it makes no distinction between expressions, types, kinds, and sorts-everything is a term. The same integer values are used to compute with and to index types, such as specifying the length of an array. Second, the term language has a multivalued semantics-a term can evaluate to zero, one, multiple, even an infinite number of values. Since types are characterised by their members, they are equivalent to terms whose possible values are the members of the type, and we exploit this to express type information in our language. In order to type check such terms, we give up on decidability. We consider this a good tradeoff to get an expressive language without the pain of some dependent type systems. This paper describes the core ideas of the language, gives an intuitive description of the semantics in terms of set-theory, explains how to implement the language by restricting what programs are considered valid, and sketches the core of the type system.
Year
DOI
Venue
2013
10.1145/2502409.2502412
DTP@ICFP
Keywords
Field
DocType
multivalued semantics-a term,multivalued language,type system research,dependent type system,type system,expressive language,index type,array subscript error,type information,term language,core idea,dependent types
Type system,Enumerated type,Composite data type,Algorithm,Arithmetic,Algebraic data type,Data type,Type safety,Recursive data type,Mathematics,Type conversion
Conference
Citations 
PageRank 
References 
2
0.64
13
Authors
3
Name
Order
Citations
PageRank
Neal Glew162760.50
Tim Sweeney2314.29
Leaf Petersen31089.65