Results 1  10
of
43
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 43 (15 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 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 ..."
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 (&quot;Constructive Validity&quot;) [31] and MartinL&quot;of [17, 18, 19]. The first occurrence of formal inductionrecursion is MartinL&quot;of's definition of a universe `a la Tarski [19], which consists of a set U
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 21 (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.
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 be ..."
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.
FirstOrder Unification by Structural Recursion
, 2001
"... Firstorder unification algorithms (Robinson, 1965) are traditionally implemented via general recursion, with separate proofs for partial correctness and termination. The latter tends to involve counting the number of unsolved variables and showing that this total decreases each time a substitution ..."
Abstract

Cited by 12 (4 self)
 Add to MetaCart
Firstorder unification algorithms (Robinson, 1965) are traditionally implemented via general recursion, with separate proofs for partial correctness and termination. The latter tends to involve counting the number of unsolved variables and showing that this total decreases each time a substitution enlarges the terms. There are many such proofs in the literature, for example, (Manna & Waldinger, 1981; Paulson, 1985; Coen, 1992; Rouyer, 1992; Jaume, 1997; Bove, 1999). This paper
Dependent types at work
 LERNET 2008. LNCS
, 2009
"... 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 dif ..."
Abstract

Cited by 12 (1 self)
 Add to MetaCart
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.
Polytypic Proof Construction
, 1999
"... . This paper deals with formalizations and verifications in type theory that are abstracted with respect to a class of datatypes; i.e polytypic constructions. The main advantage of these developments are that they can not only be used to define functions in a generic way but also to formally st ..."
Abstract

Cited by 11 (0 self)
 Add to MetaCart
. This paper deals with formalizations and verifications in type theory that are abstracted with respect to a class of datatypes; i.e polytypic constructions. The main advantage of these developments are that they can not only be used to define functions in a generic way but also to formally state polytypic theorems and to synthesize polytypic proof objects in a formal way. This opens the door to mechanically proving many useful facts about large classes of datatypes once and for all. 1 Introduction It is a major challenge to design libraries for theorem proving systems that are both sufficiently complete and relatively easy to use in a wide range of applications (see e.g. [6, 26]). A library for abstract datatypes, in particular, is an essential component of every proof development system. The libraries of the Coq [1] and the Lego [13] system, for example, include a number of functions, theorems, and proofs for common datatypes like natural numbers or polymorphic lists. In th...
Tait in one big step
 In MSFP 2006
, 2006
"... We present a Taitstyle proof to show that a simple functional normaliser for a combinatory version of System T terminates. The main interest in our construction is methodological, it is an alternative to the usual smallstep operational semantics on the one side and normalisation by evaluation on t ..."
Abstract

Cited by 7 (4 self)
 Add to MetaCart
We present a Taitstyle proof to show that a simple functional normaliser for a combinatory version of System T terminates. The main interest in our construction is methodological, it is an alternative to the usual smallstep operational semantics on the one side and normalisation by evaluation on the other. Our work is motivated by our goal to verify implementations of Type Theory such as Epigram. Keywords: Normalisation,Strong Computability 1.
Finite axiomatizations of inductive and inductiverecursive definitions
 Workshop on Generic Programming, Marstrand
, 1998
"... ..."