Results 1 
8 of
8
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
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
The Calculus of Algebraic Constructions
 In Proc. of the 10th Int. Conf. on Rewriting Techniques and Applications, LNCS 1631
, 1999
"... Abstract. In a previous work, we proved that an important part of the Calculus of Inductive Constructions (CIC), the basis of the Coq proof assistant, can be seen as a Calculus of Algebraic Constructions (CAC), an extension of the Calculus of Constructions with functions and predicates defined by hi ..."
Abstract

Cited by 27 (10 self)
 Add to MetaCart
Abstract. In a previous work, we proved that an important part of the Calculus of Inductive Constructions (CIC), the basis of the Coq proof assistant, can be seen as a Calculus of Algebraic Constructions (CAC), an extension of the Calculus of Constructions with functions and predicates defined by higherorder rewrite rules. In this paper, we prove that almost all CIC can be seen as a CAC, and that it can be further extended with nonstrictly positive types and inductiverecursive types together with nonfree constructors and patternmatching on defined symbols. 1.
ProofTerm Synthesis on Dependenttype Systems via Explicit Substitutions
, 1999
"... Typed #terms are used as a compact and linear representation of proofs in intuitionistic logic. This is possible since the CurryHoward isomorphism relates proof trees with typed #terms. The proofsasterms principle can be used to check a proof by type checking the #term extracted from the compl ..."
Abstract

Cited by 8 (1 self)
 Add to MetaCart
Typed #terms are used as a compact and linear representation of proofs in intuitionistic logic. This is possible since the CurryHoward isomorphism relates proof trees with typed #terms. The proofsasterms principle can be used to check a proof by type checking the #term extracted from the complete proof tree. However, proof trees and typed #terms are built differently. Usually, an auxiliary representation of unfinished proofs is needed, where type checking is possible only on complete proofs. In this paper we present a proof synthesis method for dependenttype systems where typed open terms are built incrementally at the same time as proofs are done. This way, every construction step, not just the last one, may be type checked. The method is based on a suitable calculus where substitutions as well as metavariables are firstclass objects.
OrderSorted Inductive Types
, 1999
"... System F ! is an extension of system F ! with subtyping and bounded quantification. Ordersorted algebra is an extension of manysorted algebra with overloading and subtyping. We combine both formalisms to obtain IF ! , a higherorder typed calculus with subtyping, bounded quantification a ..."
Abstract

Cited by 4 (3 self)
 Add to MetaCart
System F ! is an extension of system F ! with subtyping and bounded quantification. Ordersorted algebra is an extension of manysorted algebra with overloading and subtyping. We combine both formalisms to obtain IF ! , a higherorder typed calculus with subtyping, bounded quantification and ordersorted inductive types, i.e. data types with builtin subtyping and overloading. Moreover we show that IF ! enjoys important metatheoretic properties, including confluence, strong normalization, subject reduction and decidability of typechecking. 1 Introduction Typed functional programming languages such as Haskell and ML and typetheory based proofdevelopment systems such as Coq and Lego support the introduction of inductively defined types such as natural numbers or booleans, parameterized inductively defined types such as lists and even parameterized mutual inductively defined types such as trees and forests. In addition, those languages support the definition of functions ...
Existence and uniqueness of normal forms in pure type systems with βηconversion
 Proceedings of CSL'98, volume 1584 of Lecture Notes in Computer Science
, 1999
"... Pure Type Systems (PTS fi s) provide a parametric framework for typedcalculi `a la Church [1, 2, 10, 11]. One important aspect of PTS fi s is to feature a definitional equality based on ficonversion. In some instances however, one desires a stronger ..."
Abstract

Cited by 3 (2 self)
 Add to MetaCart
Pure Type Systems (PTS fi s) provide a parametric framework for typedcalculi `a la Church [1, 2, 10, 11]. One important aspect of PTS fi s is to feature a definitional equality based on ficonversion. In some instances however, one desires a stronger
SUBSTITUTIONS
"... Abstract. Typed λterms are used as a compact and linear representation of proofs in intuitionistic logic. This is possible since the CurryHoward isomorphism relates proof trees with typed λterms. The proofsasterms principle can be used to check a proof by type checking the λterm extracted from ..."
Abstract
 Add to MetaCart
Abstract. Typed λterms are used as a compact and linear representation of proofs in intuitionistic logic. This is possible since the CurryHoward isomorphism relates proof trees with typed λterms. The proofsasterms principle can be used to check a proof by type checking the λterm extracted from the complete proof tree. However, proof trees and typed λterms are built differently. Usually, an auxiliary representation of unfinished proofs is needed, where type checking is possible only on complete proofs. In this paper we present a proof synthesis method for dependenttype systems where typed open terms are built incrementally at the same time as proofs are done. This way, every construction step, not just the last one, may be type checked. The method is based on a suitable calculus where substitutions as well as metavariables are firstclass objects.
unknown title
"... proof environment useless. It is of course possible to put the responsibility on the user, but it is contrary to the current Coq policy to guarantee consistency of developments without axioms. Therefore it is desirable to retain this guarantee when rewriting is added to Coq. Since consistency is und ..."
Abstract
 Add to MetaCart
proof environment useless. It is of course possible to put the responsibility on the user, but it is contrary to the current Coq policy to guarantee consistency of developments without axioms. Therefore it is desirable to retain this guarantee when rewriting is added to Coq. Since consistency is undecidable in the presence of rewriting in general, one has to find some decidable criteria satisfied only by rewriting systems which do not violate consistency. The syntactical proof of consistency of the calculus of constructions, which is the basis of the formalism implemented in Coq, requires every term to have a normal form [2]. The same proof is also valid for the calculus of inductive constructions [24], which is even closer to the formalism implemented in Coq. There exist several techniques to prove (strong) normalization of the calculus of constructions with rewriting [1, 7, 6, 21, 22], following numerous works about rewriting in the simplytyped lambda calculus. Practical criteria for ensuring other fundamental properties, like confluence, subject reduction and decidability of typechecking are addressed e.g. in [6]. Logical consistency is also studied in [6]. It is shown under the assumption that for every symbol f defined by rewriting, f(t1,..., tn) is reducible if t1... tn are terms in normal