Results 11  20
of
22
Pure Type Systems in Rewriting Logic
 In Proc. of LFM’99: Workshop on Logical Frameworks and MetaLanguages
, 1999
"... . The logical and operational aspects of rewriting logic as a logical framework are illustrated in detail by representing pure type systems as object logics. More precisely, we apply membership equational logic, the equational sublogic of rewriting logic, to specify pure type systems as they can be ..."
Abstract

Cited by 10 (2 self)
 Add to MetaCart
. The logical and operational aspects of rewriting logic as a logical framework are illustrated in detail by representing pure type systems as object logics. More precisely, we apply membership equational logic, the equational sublogic of rewriting logic, to specify pure type systems as they can be found in the literature and also a new variant of pure type systems with explicit names that solves the problems with closure under conversion in a very satisfactory way. Furthermore, we use rewriting logic itself to give a formal operational description of type checking, that directly serves as an ecient type checking algorithm. The work reported here is part of a more ambitious project concerned with the development in Maude [7] of a proof assistant for OCC, the open calculus of constructions, an equational extension of the calculus of constructions. 1 Introduction This paper is a detailed case study on the ease and naturalness with which a family of higherorder formal systems, namely...
Functional pearl: I am not a number–I am a free variable
 In Proc. Haskell workshop
"... In this paper, we show how to manipulate syntax with binding using a mixed representation of names for free variables (with respect to the task in hand) and de Bruijn indices [5] for bound variables. By doing so, we retain the advantages of both representations: naming supports easy, arithmeticfree ..."
Abstract

Cited by 10 (2 self)
 Add to MetaCart
In this paper, we show how to manipulate syntax with binding using a mixed representation of names for free variables (with respect to the task in hand) and de Bruijn indices [5] for bound variables. By doing so, we retain the advantages of both representations: naming supports easy, arithmeticfree manipulation of terms; de Bruijn indices eliminate the need for αconversion. Further, we have ensured that not only the user but also the implementation need never deal with de Bruijn indices, except within key basic operations. Moreover, we give a hierarchical representation for names which naturally reflects the structure of the operations we implement. Name choice is safe and straightforward. Our technology combines easily with an approach to syntax manipulation inspired by Huet’s ‘zippers’[10]. Without the ideas in this paper, we would have struggled to implement EPIGRAM [19]. Our example—constructing inductive elimination operators for datatype families—is but one of many where it proves invaluable.
Some Algorithmic and ProofTheoretical Aspects of Coercive Subtyping
 In Proceedings of TYPES'96, Lecture Notes in Computer Science
, 1996
"... . Coercive subtyping offers a conceptually simple but powerful framework to understand subtyping and subset relationships in type theory. In this paper we study some of its prooftheoretic and computational properties. 1 Introduction Coercive subtyping, as first introduced in [Luo96], offers a conc ..."
Abstract

Cited by 6 (0 self)
 Add to MetaCart
. Coercive subtyping offers a conceptually simple but powerful framework to understand subtyping and subset relationships in type theory. In this paper we study some of its prooftheoretic and computational properties. 1 Introduction Coercive subtyping, as first introduced in [Luo96], offers a conceptually simple but powerful framework to understand subtyping and subset relationships in type theories with sophisticated type structures such as dependent types, inductive types, and type universes. A basic idea behind coercive subtyping is that subtyping provides a powerful mechanism for notational abbreviation in type theory. If A is a subtype of B given by a specified coercion function, an object of type A can be regarded as an object of type B, that is, its image via the coercion function, and hence objects of a subtype can be used as abbreviations for objects of a supertype. With coercive subtyping, this abbreviational mechanism is formally treated at the level of the logical framewo...
Typechecking in Pure Type Systems
 Informal proceedings of Logical Frameworks'92
, 1992
"... Introduction This work is motivated by two related problems. The first is to find reasonable algorithms for typechecking Pure Type Systems [Bar91] (PTS); the second is a technical question about PTS, the so called Expansion Postponment property (EP), which is tantalizingly simple but remains unsolv ..."
Abstract

Cited by 5 (2 self)
 Add to MetaCart
Introduction This work is motivated by two related problems. The first is to find reasonable algorithms for typechecking Pure Type Systems [Bar91] (PTS); the second is a technical question about PTS, the so called Expansion Postponment property (EP), which is tantalizingly simple but remains unsolved. There are several implementations of formal systems that are either PTS or closely related to PTS. For example, LEGO [LP92] implements the Pure Calculus of Constructions [CH88] (PCC), the Extended Calculus of Constructions [Luo90] and the Edinburgh Logical Framework [HHP87]. ELF [Pfe89] implements LF; CONSTRUCTOR [Hel91] implements arbitrary PTS with finite set of sorts. Are these implementations actually correct? It is not difficult to find a natural efficient algorithm that is provably sound (Section 3), but completeness is more difficult. In fact Jutting has shown typechecking is decidable for all normalizing PTS with a finite set of sorts [vBJ92], but his algorithm, which com
Pure type systems in rewriting logic: Specifying typed higherorder languages in a firstorder logical framework
 In Essays in Memory of OleJohan Dahl, volume 2635 of LNCS
, 2004
"... ..."
Strong Induction Principles in the Locally Nameless Representation of Binders (Preliminary Notes)
"... Abstract. When using the locally nameless representation for binders, proofs by rule induction over an inductively defined relation traditionally involve a weak and strong version of this relation, and a proof that both versions derive the same judgements. In these notes we demonstrate with examples ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
Abstract. When using the locally nameless representation for binders, proofs by rule induction over an inductively defined relation traditionally involve a weak and strong version of this relation, and a proof that both versions derive the same judgements. In these notes we demonstrate with examples that it is often sufficient to define just the weak version, using the infrastructure provided by the nominal Isabelle package to automatically derive (in a uniform way) a strong induction principle for this weak version. The derived strong induction principle offers a similar convenience in induction proofs as the traditional approach using weak and strong versions of the definition. From our experience, we conjecture that our technique can be used in many rule and structural induction proofs. 1
More On Implicit Syntax
 In Automated Reasoning. First International Joint Conference (IJCAR'01
"... Proof assistants based on type theories, such as Coq and Lego, allow users to omit subterms on input that can be inferred automatically. While those mechanisms are well known, adhoc algorithms are used to suppress subterms on output. As a result, terms might be printed identically although they di ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
Proof assistants based on type theories, such as Coq and Lego, allow users to omit subterms on input that can be inferred automatically. While those mechanisms are well known, adhoc algorithms are used to suppress subterms on output. As a result, terms might be printed identically although they di#er in hidden parts. Such ambiguous representations may confuse users. Additionally, terms might be rejected by the type checker because the printer has erased too much type information. This paper addresses these problems by proposing e#ective erasure methods that guarantee successful term reconstruction, similar to the ones developed for the compression of proofterms in ProofCarrying Code environments. Experiences with the implementation in Typelab proved them both e#cient and practical. 1 Implicit Syntax Type theories are powerful formal systems that capture both the notion of computation and deduction. Particularly the expressive theories, such as the Calculus of Constructions (CC) [CH88] which is investigated in this paper, are used for the development of mathematical and algorithmic theories since proofs and specifications are representable in a very direct way using one uniform language. There is a price to pay for this expressiveness: abstractions have to be decorated with annotations, and type applications have to be written explicitly, because type abstraction and type application are just special cases of #abstraction and application. For example, to form a list one has to provide the element type as an additional argument to instantiate the polymorphic constructors cons and nil as in (cons IN1(nil IN))). Also, one has to annotate the abstraction of n in #n:IN .n+1 with its type IN although this type is determined by the abstraction body. These excessive ...
The Coq Proof Assistant  Reference Manual Version 6.1
, 1997
"... : Coq is a proof assistant based on a higherorder logic allowing powerful definitions of functions. Coq V6.1 is available by anonymous ftp at ftp.inria.fr:/INRIA/Projects/coq/V6.1 and ftp.enslyon.fr:/pub/LIP/COQ/V6.1 Keywords: Coq, Proof Assistant, Formal Proofs, Calculus of Inductives Constru ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
: Coq is a proof assistant based on a higherorder logic allowing powerful definitions of functions. Coq V6.1 is available by anonymous ftp at ftp.inria.fr:/INRIA/Projects/coq/V6.1 and ftp.enslyon.fr:/pub/LIP/COQ/V6.1 Keywords: Coq, Proof Assistant, Formal Proofs, Calculus of Inductives Constructions (R'esum'e : tsvp) This research was partly supported by ESPRIT Basic Research Action "Types" and by the GDR "Programmation " cofinanced by MREPRC and CNRS. Unit'e de recherche INRIA Rocquencourt Domaine de Voluceau, Rocquencourt, BP 105, 78153 LE CHESNAY Cedex (France) T'el'ephone : (33 1) 39 63 55 11  T'el'ecopie : (33 1) 39 63 53 30 Manuel de r'ef'erence du syst`eme Coq version V6.1 R'esum'e : Coq est un syst`eme permettant le d'eveloppement et la v'erification de preuves formelles dans une logique d'ordre sup'erieure incluant un riche langage de d'efinitions de fonctions. Ce document constitue le manuel de r'ef'erence de la version V6.1 qui est distribu 'ee par ftp ...
Coq in Coq
, 1997
"... . We formalize the definition and the metatheory of the Calculus of Constructions (CC) using the proof assistant Coq. In particular, we prove strong normalization and decidability of type inference. From the latter proof, we extract a certified Objective Caml program which performs type inference in ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
. We formalize the definition and the metatheory of the Calculus of Constructions (CC) using the proof assistant Coq. In particular, we prove strong normalization and decidability of type inference. From the latter proof, we extract a certified Objective Caml program which performs type inference in CC and use this code to build a smallscale certified proofchecker. Key words: Type Theory, proofchecker, Calculus of Constructions, metatheory, strong normalization proof, program extraction. 1. Introduction 1.1. Motivations This work can be described as the formal certification in Coq of a proofchecker for the Calculus of Constructions (CC). We view it as a first experimental step towards a certified kernel for the whole Coq system, of which CC is a significative fragment. In decidable type theories, a proofchecker is a program which verifies whether a given judgement (input) is valid or not (output). Valid meaning that there exists a derivation for that judgement following the in...
Towards Normalization by Evaluation for the βηCalculus of Constructions
"... Abstract. We consider the Calculus of Constructions with typed betaeta equality and an algorithm which computes long normal forms. The normalization algorithm evaluates terms into a semantic domain, and reifies the values back to terms in normal form. To show termination, we interpret types as part ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
Abstract. We consider the Calculus of Constructions with typed betaeta equality and an algorithm which computes long normal forms. The normalization algorithm evaluates terms into a semantic domain, and reifies the values back to terms in normal form. To show termination, we interpret types as partial equivalence relations between values and type constructors as operators on PERs. This models also yields consistency of the betaetaCalculus of Constructions. The model construction can be carried out directly in impredicative type theory, enabling a formalization in Coq. 1