Results 1  10
of
21
Dependently Typed Functional Programs and their Proofs
, 1999
"... Research in dependent type theories [ML71a] has, in the past, concentrated on its use in the presentation of theorems and theoremproving. This thesis is concerned mainly with the exploitation of the computational aspects of type theory for programming, in a context where the properties of programs ..."
Abstract

Cited by 70 (13 self)
 Add to MetaCart
Research in dependent type theories [ML71a] has, in the past, concentrated on its use in the presentation of theorems and theoremproving. This thesis is concerned mainly with the exploitation of the computational aspects of type theory for programming, in a context where the properties of programs may readily be specified and established. In particular, it develops technology for programming with dependent inductive families of datatypes and proving those programs correct. It demonstrates the considerable advantage to be gained by indexing data structures with pertinent characteristic information whose soundness is ensured by typechecking, rather than human effort. Type theory traditionally presents safe and terminating computation on inductive datatypes by means of elimination rules which serve as induction principles and, via their associated reduction behaviour, recursion operators [Dyb91]. In the programming language arena, these appear somewhat cumbersome and give rise to unappealing code, complicated by the inevitable interaction between case analysis on dependent types and equational reasoning on their indices which must appear explicitly in the terms. Thierry Coquand’s proposal [Coq92] to equip type theory directly with the kind of
Syntax and Semantics of Dependent Types
 Semantics and Logics of Computation
, 1997
"... ion is written as [x: oe]M instead of x: oe:M and application is written M(N) instead of App [x:oe] (M; N ). 1 Iterated abstractions and applications are written [x 1 : oe 1 ; : : : ; x n : oe n ]M and M(N 1 ; : : : ; N n ), respectively. The lacking type information can be inferred. The universe ..."
Abstract

Cited by 40 (4 self)
 Add to MetaCart
ion is written as [x: oe]M instead of x: oe:M and application is written M(N) instead of App [x:oe] (M; N ). 1 Iterated abstractions and applications are written [x 1 : oe 1 ; : : : ; x n : oe n ]M and M(N 1 ; : : : ; N n ), respectively. The lacking type information can be inferred. The universe is written Set instead of U . The Eloperator is omitted. For example the \Pitype is described by the following constant and equality declarations (understood in every valid context): ` \Pi : (oe: Set; : (oe)Set)Set ` App : (oe: Set; : (oe)Set; m: \Pi(oe; ); n: oe) (m) ` : (oe: Set; : (oe)Set; m: (x: oe) (x))\Pi(oe; ) oe: Set; : (oe)Set; m: (x: oe) (x); n: oe ` App(oe; ; (oe; ; m); n) = m(n) Notice, how terms with free variables are represented as framework abstractions (in the type of ) and how substitution is represented as framework application (in the type of App and in the equation). In this way the burden of dealing correctly with variables, substitution, and binding is s...
TypeBased Termination of Recursive Definitions
, 2002
"... This article The purpose of this paper is to introduce b, a simply typed calculus that supports typebased recursive definitions. Although heavily inspired from previous work by Giménez (Giménez 1998) and closely related to recent work by Amadio and Coupet (Amadio and CoupetGrimal 1998), the techn ..."
Abstract

Cited by 39 (3 self)
 Add to MetaCart
This article The purpose of this paper is to introduce b, a simply typed calculus that supports typebased recursive definitions. Although heavily inspired from previous work by Giménez (Giménez 1998) and closely related to recent work by Amadio and Coupet (Amadio and CoupetGrimal 1998), the technical machinery behind our system puts a slightly different emphasis on the interpretation of types. More precisely, we formalize the notion of typebased termination using a restricted form of type dependency (a.k.a. indexed types), as popularized by (Xi and Pfenning 1998; Xi and Pfenning 1999). This leads to a simple and intuitive system which is robust under several extensions, such as mutually inductive datatypes and mutually recursive function definitions; however, such extensions are not treated in the paper
A Coverage Checking Algorithm for LF
, 2003
"... Coverage checking is the problem of deciding whether any closed term of a given type is an instance of at least one of a given set of patterns. It can be used to verify if a function defined by pattern matching covers all possible cases. This problem has a straightforward solution for the first ..."
Abstract

Cited by 39 (12 self)
 Add to MetaCart
Coverage checking is the problem of deciding whether any closed term of a given type is an instance of at least one of a given set of patterns. It can be used to verify if a function defined by pattern matching covers all possible cases. This problem has a straightforward solution for the firstorder, simplytyped case, but is in general undecidable in the presence of dependent types. In this paper we present a terminating algorithm for verifying coverage of higherorder, dependently typed patterns.
Observational Equality, Now!
 A SUBMISSION TO PLPV 2007
, 2007
"... This paper has something new and positive to say about propositional equality in programming and proof systems based on the CurryHoward correspondence between propositions and types. We have found a way to present a propositional equality type • which is substitutive, allowing us to reason by repla ..."
Abstract

Cited by 23 (8 self)
 Add to MetaCart
This paper has something new and positive to say about propositional equality in programming and proof systems based on the CurryHoward correspondence between propositions and types. We have found a way to present a propositional equality type • which is substitutive, allowing us to reason by replacing equal for equal in propositions; • which reflects the observable behaviour of values rather than their construction: in particular, we have extensionality— functions are equal if they take equal inputs to equal outputs; • which retains strong normalisation, decidable typechecking and canonicity—the property that closed normal forms inhabiting datatypes have canonical constructors; • which allows inductive data structures to be expressed in terms of a standard characterisation of wellfounded trees; • which is presented syntactically—you can implement it directly, and we are doing so—this approach stands at the core of Epigram 2; • which you can play with now: we have simulated our system by a shallow embedding in Agda 2, shipping as part of the standard examples package for that system [20]. Until now, it has always been necessary to sacrifice some of these aspects. The closest attempt in the literature is Altenkirch’s construction of a setoidmodel for a system with canonicity and extensionality on top of an intensional type theory with proofirrelevant propositions [4]. Our new proposal simplifies Altenkirch’s construction by adopting McBride’s heterogeneous approach to equality [18].
The Groupoid Interpretation of Type Theory
 In Venice Festschrift
, 1996
"... ion and application Suppose that M 2 Tm(B). We define its abstraction A;B (M) 2 Tm(\Pi LF (A; B)) on objects by A;B (M)(fl)(a) = M(fl; a) A;B (M)(fl)(q) = M(id fl ; q) If p : fl ! fl 0 then we need a natural transformation A;B (M)(p) : p \Delta A;B (M)(fl) ! A;B (M)(fl 0 ) At object a ..."
Abstract

Cited by 21 (1 self)
 Add to MetaCart
ion and application Suppose that M 2 Tm(B). We define its abstraction A;B (M) 2 Tm(\Pi LF (A; B)) on objects by A;B (M)(fl)(a) = M(fl; a) A;B (M)(fl)(q) = M(id fl ; q) If p : fl ! fl 0 then we need a natural transformation A;B (M)(p) : p \Delta A;B (M)(fl) ! A;B (M)(fl 0 ) At object a 2 A(fl 0 ) it is given by M(p; id a ). Conversely, if M 2 Tm(\Pi(A; B)) we define a dependent object \Gamma1 A;B 2 Tm(B). Its object part is given by \Gamma1 A;B (M)(fl; a) = M(fl)(a) For the morphism part assume p : fl ! fl 0 and q : p \Delta a ! a 0 . We define \Gamma1 A;B (M)(p; q) = M(fl 0 )(q) ffi (id fl 0 ; q) \Delta M(p) p \Delta a We claim that \Gamma1 A;B (M)(p; q) : (p; q) \Delta \Gamma1 A;B (M)(fl; a) ! \Gamma1 A;B (M)(fl 0 ; a 0 ) as required. To see this, first note that M(fl 0 )(q) : (id fl 0 ; q) \Delta M 0 (fl 0 )(p \Delta a) !M 0 (fl 0 )(a 0 ) because q : p \Delta a ! a 0 . On the other hand M(p) : p \Delta M(fl) !M(fl 0 )...
Extracting a Proof of Coherence for Monoidal Categories from a Proof of Normalization for Monoids
 In TYPES
, 1995
"... . This paper studies the problem of coherence in category theory from a typetheoretic viewpoint. We first show how a CurryHoward interpretation of a formal proof of normalization for monoids almost directly yields a coherence proof for monoidal categories. Then we formalize this coherence proof in ..."
Abstract

Cited by 16 (3 self)
 Add to MetaCart
. This paper studies the problem of coherence in category theory from a typetheoretic viewpoint. We first show how a CurryHoward interpretation of a formal proof of normalization for monoids almost directly yields a coherence proof for monoidal categories. Then we formalize this coherence proof in intensional intuitionistic type theory and show how it relies on explicit reasoning about proof objects for intensional equality. This formalization has been checked in the proof assistant ALF. 1 Introduction Mac Lane [18, pp.161165] proved a coherence theorem for monoidal categories. A basic ingredient in his proof is the normalization of object expressions. But it is only one ingredient and several others are needed too. Here we show that almost a whole proof of this coherence theorem is hidden in a CurryHoward interpretation of a proof of normalization for monoids. The second point of the paper is to contribute to the development of constructive category theory in the sense of Huet a...
A coherence theorem for MartinLöf's type theory
 J. Functional Programming
, 1998
"... In type theory a proposition is represented by a type, the type of its proofs. As a consequence the equality relation on a certain type is represented by a binary family of types. Equality on a type may be conventional or inductive. Conventional equality means that one particular equivalence rel ..."
Abstract

Cited by 11 (0 self)
 Add to MetaCart
In type theory a proposition is represented by a type, the type of its proofs. As a consequence the equality relation on a certain type is represented by a binary family of types. Equality on a type may be conventional or inductive. Conventional equality means that one particular equivalence relation is singled out as the equality, while inductive equality, which we also call identity, is inductively defined as the "smallest reflexive relation". It is sometimes convenient to know that the type representing a proposition is collapsed in the sense that all its inhabitants are identical. Although uniqueness of identity proofs for an arbitrary type is not derivable inside type theory, there is a large class of types for which it may be proved. Our main result is a proof that any type with decidable identity has unique identity proofs. This result is convenient for proving that the class of types with decidable identities is closed under indexed sum. Our proof of the main result...
Extensionality in the calculus of constructions
 In TPHOL 05
, 2005
"... Abstract This paper presents a method to translate a proof in an extensional version of the Calculus of Constructions into a proof in the Calculus of Inductive Constructions extended with a few axioms. We use a specific equality in order to translate the extensional conversion relation into an inten ..."
Abstract

Cited by 10 (0 self)
 Add to MetaCart
Abstract This paper presents a method to translate a proof in an extensional version of the Calculus of Constructions into a proof in the Calculus of Inductive Constructions extended with a few axioms. We use a specific equality in order to translate the extensional conversion relation into an intensional system. 1
Eliminating dependent pattern matching
 of Lecture Notes in Computer Science
, 2006
"... Abstract. This paper gives a reductionpreserving translation from Coquand’s dependent pattern matching [4] into a traditional type theory [11] with universes, inductive types and relations and the axiom K [22]. This translation serves as a proof of termination for structurally recursive pattern mat ..."
Abstract

Cited by 9 (4 self)
 Add to MetaCart
Abstract. This paper gives a reductionpreserving translation from Coquand’s dependent pattern matching [4] into a traditional type theory [11] with universes, inductive types and relations and the axiom K [22]. This translation serves as a proof of termination for structurally recursive pattern matching programs, provides an implementable compilation technique in the style of functional programming languages, and demonstrates the equivalence with a more easily understood type theory. Dedicated to Professor Joseph Goguen on the occasion of his 65th birthday. 1