Results 1  10
of
34
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, introduction, el ..."
Abstract

Cited by 42 (2 self)
 Add to MetaCart
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.
Inductionrecursion and initial algebras
 Annals of Pure and Applied Logic
, 2003
"... 1 Introduction Inductionrecursion is a powerful definition method in intuitionistic type theory in the sense of Scott ("Constructive Validity") [31] and MartinL"of [17, 18, 19]. The first occurrence of formal inductionrecursion is MartinL"of's definition of a universe `a la T ..."
Abstract

Cited by 28 (11 self)
 Add to MetaCart
1 Introduction Inductionrecursion is a powerful definition method in intuitionistic type theory in the sense of Scott ("Constructive Validity") [31] and MartinL"of [17, 18, 19]. The first occurrence of formal inductionrecursion is MartinL"of's definition of a universe `a la Tarski [19], which consists of a set U
Normalization by evaluation for MartinLöf type theory with one universe
 IN 23RD CONFERENCE ON THE MATHEMATICAL FOUNDATIONS OF PROGRAMMING SEMANTICS, MFPS XXIII, ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE
, 2007
"... ..."
A Brief Overview of Agda – A Functional Language with Dependent Types
"... Abstract. We give an overview of Agda, the latest in a series of dependently typed programming languages developed in Gothenburg. Agda is based on MartinLöf’s intuitionistic type theory but extends it with numerous programming language features. It supports a wide range of inductive data types, inc ..."
Abstract

Cited by 22 (0 self)
 Add to MetaCart
Abstract. We give an overview of Agda, the latest in a series of dependently typed programming languages developed in Gothenburg. Agda is based on MartinLöf’s intuitionistic type theory but extends it with numerous programming language features. It supports a wide range of inductive data types, including inductive families and inductiverecursive types, with associated flexible patternmatching. Unlike other proof assistants, Agda is not tacticbased. Instead it has an Emacsbased interface which allows programming by gradual refinement of incomplete typecorrect terms. 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 20 (4 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.
Exploring the regular tree types
 In Types for Proofs and Programs
, 2004
"... Abstract. In this paper we use the Epigram language to define the universe of regular tree types—closed under empty, unit, sum, product and least fixpoint. We then present a generic decision procedure for Epigram’s inbuilt equality at each type, taking a complementary approach to that of Benke, Dyb ..."
Abstract

Cited by 16 (3 self)
 Add to MetaCart
Abstract. In this paper we use the Epigram language to define the universe of regular tree types—closed under empty, unit, sum, product and least fixpoint. We then present a generic decision procedure for Epigram’s inbuilt equality at each type, taking a complementary approach to that of Benke, Dybjer and Jansson [7]. We also give a generic definition of map, taking our inspiration from Jansson and Jeuring [21]. Finally, we equip the regular universe with the partial derivative which can be interpreted functionally as Huet’s notion of ‘zipper’, as suggested by McBride in [27] and implemented (without the fixpoint case) in Generic Haskell by Hinze, Jeuring and Löh [18]. We aim to show through these examples that generic programming can be ordinary programming in a dependently typed language. 1
Combining Testing and Proving in Dependent Type Theory
 16th International Conference on Theorem Proving in Higher Order Logics (TPHOLs 2003
, 2003
"... We extend the proof assistant Agda/Alfa for dependent type theory with a modi ed version of Claessen and Hughes' tool QuickCheck for random testing of functional programs. In this way we combine testing and proving in one system. Testing is used for debugging programs and speci cations before ..."
Abstract

Cited by 13 (1 self)
 Add to MetaCart
We extend the proof assistant Agda/Alfa for dependent type theory with a modi ed version of Claessen and Hughes' tool QuickCheck for random testing of functional programs. In this way we combine testing and proving in one system. Testing is used for debugging programs and speci cations before a proof is attempted. Furthermore, we demonstrate by example how testing can be used repeatedly during proof for testing suitable subgoals. Our tool uses testdata generators which are de ned inside Agda/Alfa. We can therefore use the type system to prove properties about them, in particular surjectivity stating that all possible test cases can indeed be generated.
A partial formalisation of a dependently typed language as an inductiverecursive family
 IN PROCEEDINGS OF THE TYPES MEETING 2006
, 2007
"... It is demonstrated how a dependently typed lambda calculus (a logical framework) can be formalised inside a language with inductiverecursive families. The formalisation does not use raw terms; the welltyped terms are defined directly. It is hence impossible to create illtyped terms. As an exampl ..."
Abstract

Cited by 13 (0 self)
 Add to MetaCart
It is demonstrated how a dependently typed lambda calculus (a logical framework) can be formalised inside a language with inductiverecursive families. The formalisation does not use raw terms; the welltyped terms are defined directly. It is hence impossible to create illtyped terms. As an example of programming with strong invariants, and to show that the formalisation is usable, normalisation is proved. Moreover, this proof seems to be the first formal account of normalisation by evaluation for a dependently typed language.
P.: Dependent types at work
 LerNet 2008. LNCS
, 2009
"... Abstract. In these lecture notes we give an introduction to functional programming with dependent types. We use the dependently typed programming language Agda which is an extension of MartinLöf type theory. First we show how to do simply typed functional programming in the style of Haskell and ML. ..."
Abstract

Cited by 11 (1 self)
 Add to MetaCart
Abstract. In these lecture notes we give an introduction to functional programming with dependent types. We use the dependently typed programming language Agda which is an extension of MartinLöf type theory. First we show how to do simply typed functional programming in the style of Haskell and ML. Some differences between Agda’s type system and the HindleyMilner type system of Haskell and ML are also discussed. Then we show how to use dependent types for programming and we explain the basic ideas behind typechecking dependent types. We go on to explain the CurryHoward identification of propositions and types. This is what makes Agda a programming logic and not only a programming language. According to CurryHoward, we identify programs and proofs, something which is possible only by requiring that all program terminate. However, at the end of these notes we present a method for encoding partial and general recursive functions as total functions using dependent types.
Continuous functions on final coalgebras
, 2007
"... In a previous paper we have given a representation of continuous functions on streams, both discretevalued functions, and functions between streams. the topology on streams is the ‘Baire ’ topology induced by taking as a basic neighbourhood the set of streams that share a given finite prefix. We ga ..."
Abstract

Cited by 10 (1 self)
 Add to MetaCart
In a previous paper we have given a representation of continuous functions on streams, both discretevalued functions, and functions between streams. the topology on streams is the ‘Baire ’ topology induced by taking as a basic neighbourhood the set of streams that share a given finite prefix. We gave also a combinator on the representations of stream processing functions that reflects composition. Streams are the simplest example of a nontrivial final coalgebras, playing in the coalgebraic realm the same role as do the natural numbers in the algebraic realm. Here we extend our previous results to cover the case of final coalgebras for a broad class of functors generalising (×A). The functors we deal with are those that arise from countable signatures of finiteplace untyped operators. These have many applications. The topology we put on the final coalgebra for such a functor is that induced by taking for basic neighbourhoods the set of infinite objects which share a common prefix, according to the usual definition of the final coalgebra as the limit of a certain inverse chain starting at �. 1