Results 1  10
of
22
InductiveDataType Systems
, 2002
"... In a previous work ("Abstract Data Type Systems", TCS 173(2), 1997), the leI two authors presented a combined lmbined made of a (strongl normal3zG9 alrmal rewrite system and a typed #calA#Ik enriched by patternmatching definitions folnitio a certain format,calat the "General Schema", whichgenera ..."
Abstract

Cited by 755 (22 self)
 Add to MetaCart
In a previous work ("Abstract Data Type Systems", TCS 173(2), 1997), the leI two authors presented a combined lmbined made of a (strongl normal3zG9 alrmal rewrite system and a typed #calA#Ik enriched by patternmatching definitions folnitio a certain format,calat the "General Schema", whichgeneral39I theusual recursor definitions fornatural numbers and simil9 "basic inductive types". This combined lmbined was shown to bestrongl normalIk39f The purpose of this paper is toreformul33 and extend theGeneral Schema in order to make it easil extensibl3 to capture a more general cler of inductive types, cals, "strictly positive", and to ease the strong normalgAg9Ik proof of theresulGGg system. Thisresul provides a computation model for the combination of anal"DAfGI specification language based on abstract data types and of astrongl typed functional language with strictly positive inductive types.
Term Rewriting Systems
, 1992
"... Term Rewriting Systems play an important role in various areas, such as abstract data type specifications, implementations of functional programming languages and automated deduction. In this chapter we introduce several of the basic comcepts and facts for TRS's. Specifically, we discuss Abstract Re ..."
Abstract

Cited by 567 (16 self)
 Add to MetaCart
Term Rewriting Systems play an important role in various areas, such as abstract data type specifications, implementations of functional programming languages and automated deduction. In this chapter we introduce several of the basic comcepts and facts for TRS's. Specifically, we discuss Abstract Reduction Systems
A Calculus for Overload Functions with Subtyping

, 1992
"... We present a simple extension of typed calculus where functions can be overloaded by putting different "branches of code" together. When the function is applied, the branch to execute is chosen according to a particular selection rule which depends on the type of the argument. The crucial featu ..."
Abstract

Cited by 141 (28 self)
 Add to MetaCart
We present a simple extension of typed calculus where functions can be overloaded by putting different "branches of code" together. When the function is applied, the branch to execute is chosen according to a particular selection rule which depends on the type of the argument. The crucial feature of the present approach is that the branch selection depends on the "runtime type" of the argument, which may differ from its compiletime type, because of the existence of a subtyping relation among types. Hence overloading cannot be eliminated by a static analysis of code, but is an essential feature to be dealt with during computation. We obtain in this way a typedependent calculus, which differs from the various calculi where types do not play any role during computation. We prove Confluence and a generalized SubjectReduction theorem for this calculus. We prove Strong Normalization for a "stratified" subcalculus. The definition of this calculus is guided by the understand...
Confluence by Decreasing Diagrams
 Theoretical Computer Science
, 1994
"... We present a confluence criterion, local decreasingness, for abstract reduction systems. This criterion is shown to be a considerable generalisation of several wellknown confluence criteria. 1 Introduction An abstract reduction system is a set of objects equipped with some binary `reduction' rel ..."
Abstract

Cited by 16 (5 self)
 Add to MetaCart
We present a confluence criterion, local decreasingness, for abstract reduction systems. This criterion is shown to be a considerable generalisation of several wellknown confluence criteria. 1 Introduction An abstract reduction system is a set of objects equipped with some binary `reduction' relations. Because they have so little structure, abstract reduction systems can be viewed as abstractions of several kinds of rewriting such as string rewriting, term rewriting and graph rewriting. In the case of term rewriting, the objects model terms and the reduction relations model (nondeterministic) computations. A desirable property in computing is that results of computations are unique (if they exist). In the case that whenever we have two `diverging' computations starting from the same term, a common result can be reached by `converging' computations (the socalled confluence or ChurchRosser property), uniqueness is guaranteed. a c d a b d Confluence In this paper we present a ...
The Mechanisation of BarendregtStyle Equational Proofs (the Residual Perspective)
, 2001
"... We show how to mechanise equational proofs about higherorder languages by using the primitive proof principles of firstorder abstract syntax over onesorted variable names. We illustrate the method here by proving (in Isabelle/HOL) a technical property which makes the method widely applicable for ..."
Abstract

Cited by 7 (4 self)
 Add to MetaCart
We show how to mechanise equational proofs about higherorder languages by using the primitive proof principles of firstorder abstract syntax over onesorted variable names. We illustrate the method here by proving (in Isabelle/HOL) a technical property which makes the method widely applicable for the λcalculus: the residual theory of β is renamingfree upto an initiality condition akin to the socalled Barendregt Variable Convention. We use our results to give a new diagrambased proof of the development part of the strong finite development property for the λcalculus. The proof has the same equational implications (e.g., confluence) as the proof of the full property but without the need to prove SN. We account for two other uses of the proof method, as presented elsewhere. One has been mechanised in full in Isabelle/HOL.
Proof pearl: de bruijn terms really do work
 In TPHOLs, volume 4732 of LNCS
, 2007
"... Abstract. Placing our result in a web of related mechanised results, we give a direct proof that the de Bruijn λcalculus (à laHuet,Nipkowand Shankar) is isomorphic to an αquotiented λcalculus. In order to establish the link, we introduce an “indexcarrying ” abstraction mechanism over de Bruijn t ..."
Abstract

Cited by 6 (1 self)
 Add to MetaCart
Abstract. Placing our result in a web of related mechanised results, we give a direct proof that the de Bruijn λcalculus (à laHuet,Nipkowand Shankar) is isomorphic to an αquotiented λcalculus. In order to establish the link, we introduce an “indexcarrying ” abstraction mechanism over de Bruijn terms, and consider it alongside a simplified substitution mechanism. Relating the new notions to those of the αquotiented and the proper de Bruijn formalisms draws on techniques from the theory of nominal sets. 1
Diagram Techniques for Confluence
, 1996
"... We develop diagram techniques for proving confluence in abstract reductions systems. The underlying theory gives a systematic and uniform framework in which a number of known results, widely scattered throughout the literature, can be understood. These results include Newman's Lemma (1942), Lemma 3. ..."
Abstract

Cited by 5 (1 self)
 Add to MetaCart
We develop diagram techniques for proving confluence in abstract reductions systems. The underlying theory gives a systematic and uniform framework in which a number of known results, widely scattered throughout the literature, can be understood. These results include Newman's Lemma (1942), Lemma 3.1 of Winkler and Buchberger (1985), the HindleyRosen Lemma (1964), the Request Lemmas of Staples (1975), the Strong Confluence Lemma of Huet (1980), and the Lemma of De Bruijn (1978). Introduction The concept of Term Rewriting System (TRS) is paradigmatic for the study of computational procedures. TRSs play an important role in various areas, such as abstract data type specifications, implementations of functional programming languages and automated deduction. Usually, rewriting is concerned with syntactical objects like terms, strings, term graphs, equivalence classes of terms, or other structured objects. Terms may be firstorder or higherorder, such as terms or proofs in some deductio...
A Generic Complete Dynamic Logic for Reasoning about Purity and Effects
 TO APPEAR IN FORMAL ASPECTS OF COMPUTING
"... For a number of programming languages, among them Eiffel, C, Java, and Ruby, Hoarestyle logics and dynamic logics have been developed. In these logics, pre and postconditions are typically formulated using potentially effectful programs. In order to ensure that these pre and postconditions behave ..."
Abstract

Cited by 4 (1 self)
 Add to MetaCart
For a number of programming languages, among them Eiffel, C, Java, and Ruby, Hoarestyle logics and dynamic logics have been developed. In these logics, pre and postconditions are typically formulated using potentially effectful programs. In order to ensure that these pre and postconditions behave like logical formulae (that is, enjoy some kind of referential transparency), a notion of purity is needed. Here, we introduce a generic framework for reasoning about purity and effects. Effects are modelled abstractly and axiomatically, using Moggi’s idea of encapsulation of effects as monads. We introduce a dynamic logic (from which, as usual, a Hoare logic can be derived) whose logical formulae are pure programs in a strong sense. We formulate a set of proof rules for this logic, and prove it to be complete with respect to a categorical semantics. Using dynamic logic, we then develop a relaxed notion of purity which allows for observationally neutral effects such writing on newly allocated memory.