Results 1  10
of
21
Logics and Type Systems
, 1993
"... from the last declaration in \Delta (which is p:'). (oeE) In fact the ([\Theta]) is not exactly the ([\Theta]) that is found by induction. Possibly some of the free variables in ([\Theta]) are renamed. What happens is the following: 1. Consider the proofcontext \Delta 1 ] \Delta 2 and especi ..."
Abstract

Cited by 84 (5 self)
 Add to MetaCart
from the last declaration in \Delta (which is p:'). (oeE) In fact the ([\Theta]) is not exactly the ([\Theta]) that is found by induction. Possibly some of the free variables in ([\Theta]) are renamed. What happens is the following: 1. Consider the proofcontext \Delta 1 ] \Delta 2 and especially the renaming of the declared variables in \Delta 2 that has been caused by the operation ]. 2. Rename the free proofvariables in ([\Theta]) accordingly, obtaining say, ([\Theta 0 ]). 3. Apply ([\Sigma]) to ([\Theta 0 ]). (There will in practice be no confusion if we just write ([\Theta]) instead.) Of course the intended meaning is that the judgement below the double lines is derivable if the judgement above the lines is. This will be proved later in Theorem 3.2.8. It should be clear at this point however that there is a onetoone correspondence between the occurrences of ' as a (nondischarged) premise in the deduction and declarations p:' in \Delta. Notation. If for \Sigma a deducti...
Combinatory Reduction Systems: introduction and survey
 THEORETICAL COMPUTER SCIENCE
, 1993
"... Combinatory Reduction Systems, or CRSs for short, were designed to combine the usual firstorder format of term rewriting with the presence of bound variables as in pure λcalculus and various typed calculi. Bound variables are also present in many other rewrite systems, such as systems with simpl ..."
Abstract

Cited by 83 (9 self)
 Add to MetaCart
Combinatory Reduction Systems, or CRSs for short, were designed to combine the usual firstorder format of term rewriting with the presence of bound variables as in pure λcalculus and various typed calculi. Bound variables are also present in many other rewrite systems, such as systems with simplification rules for proof normalization. The original idea of CRSs is due to Aczel, who introduced a restricted class of CRSs and, under the assumption of orthogonality, proved confluence. Orthogonality means that the rules are nonambiguous (no overlap leading to a critical pair) and leftlinear (no global comparison of terms necessary). We introduce the class of orthogonal CRSs, illustrated with many examples, discuss its expressive power, and give an outline of a short proof of confluence. This proof is a direct generalization of Aczel's original proof, which is close to the wellknown confluence proof for λcalculus by Tait and MartinLof. There is a wellknown connection between the para...
Typing Algorithm in Type Theory with Inheritance
 Proc of POPL'97
, 1997
"... We propose and study a new typing algorithm for dependent type theory. This new algorithm typechecks more terms by using inheritance between classes. This inheritance mechanism turns out to be powerful: it supports multiple inheritance, classes with parameters and uses new abstract classes FUNCLASS ..."
Abstract

Cited by 42 (0 self)
 Add to MetaCart
We propose and study a new typing algorithm for dependent type theory. This new algorithm typechecks more terms by using inheritance between classes. This inheritance mechanism turns out to be powerful: it supports multiple inheritance, classes with parameters and uses new abstract classes FUNCLASS and SORTCLASS (respectively classes of functions and sorts). We also defines classes as records, particularily suitable for the formal development of mathematical theories. This mechanism, implemented in the proof checker Coq, can be adapted to all typed calculus. 1 Introduction In the last years, proof checkers based on type theory appeared as convincing systems to formalize mathematics (especially constructive mathematics) and to prove correctness of software and hardware. In a proof checker, one can interactively build definitions, statements and proofs. The system is then able to check automatically whether the definitions are wellformed and the proofs are correct. Modern systems ar...
Precision in Practice: A TypePreserving Java Compiler
, 2003
"... Popular mobile code architectures (Java and .NET) include verifiers to check for memory safety and other security properties. Since their formats are relatively high level, supporting a wide range of source language features is awkward. Further compilation and optimization, necessary for efficiency, ..."
Abstract

Cited by 25 (6 self)
 Add to MetaCart
Popular mobile code architectures (Java and .NET) include verifiers to check for memory safety and other security properties. Since their formats are relatively high level, supporting a wide range of source language features is awkward. Further compilation and optimization, necessary for efficiency, must be trusted. We describe the design and implementation of a fully typepreserving compiler for Java and ML.
A module calculus for Pure Type Systems
, 1996
"... Several proofassistants rely on the very formal basis of Pure Type Systems. However, some practical issues raised by the development of large proofs lead to add other features to actual implementations for handling namespace management, for developing reusable proof libraries and for separate verif ..."
Abstract

Cited by 23 (3 self)
 Add to MetaCart
Several proofassistants rely on the very formal basis of Pure Type Systems. However, some practical issues raised by the development of large proofs lead to add other features to actual implementations for handling namespace management, for developing reusable proof libraries and for separate verification of distincts parts of large proofs. Unfortunately, few theoretical basis are given for these features. In this paper we propose an extension of Pure Type Systems with a module calculus adapted from SMLlike module systems for programming languages. Our module calculus gives a theoretical framework addressing the need for these features. We show that our module extension is conservative, and that type inference in the module extension of a given PTS is decidable under some hypotheses over the considered PTS.
An extension of dependency pair method for proving termination of higherorder rewrite systems
 IEICE Trans. on Information and Systems
, 2001
"... Abstract. This paper explores how to extend the dependency pair technique for proving termination of higherorder rewrite systems. In the first order case, the termination of term rewriting systems are proved by showing the nonexistence of an infinite Rchain of the dependency pairs. However, the t ..."
Abstract

Cited by 19 (2 self)
 Add to MetaCart
Abstract. This paper explores how to extend the dependency pair technique for proving termination of higherorder rewrite systems. In the first order case, the termination of term rewriting systems are proved by showing the nonexistence of an infinite Rchain of the dependency pairs. However, the termination and the nonexistence of an infinite Rchain do not coincide in the higherorder case. We introduce a new notion of dependency forest that characterize infinite reductions and infinite Rchains, and show that the termination property of higherorder rewrite systems R can be checked by showing the nonexistence of an infinite Rchain, if R is strongly linear or nonnested. 1
Functional Java Bytecode
 In Proc. 5th World Conf. on Systemics, Cybernetics, and Informatics
, 2001
"... We describe the design and implementation of lambdaJVM, a functional representation of Java bytecode that makes data flow explicit, verification simple, and that is wellsuited for translation into lowerlevel representations such as those used in optimizing compilers. It is a good alternative to st ..."
Abstract

Cited by 17 (4 self)
 Add to MetaCart
We describe the design and implementation of lambdaJVM, a functional representation of Java bytecode that makes data flow explicit, verification simple, and that is wellsuited for translation into lowerlevel representations such as those used in optimizing compilers. It is a good alternative to stackbased Java bytecode for virtual machines or aheadoftime compilers which optimize methods and produce native code. We use lambdaJVM as one component in a sophisticated typepreserving compiler for Java class files. Though our implementation is incomplete, preliminary measurements of both compile and run times are promising.
A short and flexible proof of Strong Normalization for the Calculus of Constructions
, 1994
"... this paper can still go through (with slightly more technical effort) in case one can distinguish cases according to whether a specific subterm is a type or kind in a fixed context. The other property of type systems that is really actually required for the constructions in this paper to go through ..."
Abstract

Cited by 15 (0 self)
 Add to MetaCart
this paper can still go through (with slightly more technical effort) in case one can distinguish cases according to whether a specific subterm is a type or kind in a fixed context. The other property of type systems that is really actually required for the constructions in this paper to go through is a slight strengthening of the Stripping property (also called Generation). This property says, for example, that if \Gamma ` v:T:M : U has a derivation D, then one can find a subderivation of
Polymorphic higherorder recursive path orderings
 Journal of the ACM
, 2005
"... This paper extends the termination proof techniques based on reduction orderings to a higherorder setting, by defining a family of recursive path orderings for terms of a typed lambdacalculus generated by a signature of polymorphic higherorder function symbols. These relations can be generated fro ..."
Abstract

Cited by 14 (3 self)
 Add to MetaCart
This paper extends the termination proof techniques based on reduction orderings to a higherorder setting, by defining a family of recursive path orderings for terms of a typed lambdacalculus generated by a signature of polymorphic higherorder function symbols. These relations can be generated from two given wellfounded orderings, on the function symbols and on the type constructors. The obtained orderings on terms are wellfounded, monotonic, stable under substitution and include βreductions. They can be used to prove the strong normalization property of higherorder calculi in which constants can be defined by higherorder rewrite rules using firstorder pattern matching. For example, the polymorphic version of Gödel’s recursor for the natural numbers is easily oriented. And indeed, our ordering is polymorphic, in the sense that a single comparison allows to prove the termination property of all monomorphic instances of a polymorphic rewrite rule. Many nontrivial examples are given which exemplify the expressive power of these orderings. All have been checked by our implementation. This paper is an extended and improved version of [Jouannaud and Rubio 1999]. Polymorphic algebras have been made more expressive than in our previous framework. The intuitive notion of a polymorphic higherorder ordering has now been made precise. The higherorder recursive
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