Results 1  10
of
12
A Linear Logical Framework
, 1996
"... We present the linear type theory LLF as the forAppeared in the proceedings of the Eleventh Annual IEEE Symposium on Logic in Computer Science  LICS'96 (E. Clarke editor), pp. 264275, New Brunswick, NJ, July 2730 1996. mal basis for a conservative extension of the LF logical framework. LLF c ..."
Abstract

Cited by 217 (44 self)
 Add to MetaCart
We present the linear type theory LLF as the forAppeared in the proceedings of the Eleventh Annual IEEE Symposium on Logic in Computer Science  LICS'96 (E. Clarke editor), pp. 264275, New Brunswick, NJ, July 2730 1996. mal basis for a conservative extension of the LF logical framework. LLF combines the expressive power of dependent types with linear logic to permit the natural and concise representation of a whole new class of deductive systems, namely those dealing with state. As an example we encode a version of MiniML with references including its type system, its operational semantics, and a proof of type preservation. Another example is the encoding of a sequent calculus for classical linear logic and its cut elimination theorem. LLF can also be given an operational interpretation as a logic programming language under which the representations above can be used for type inference, evaluation and cutelimination. 1 Introduction A logical framework is a formal system desig...
Term Rewriting With Traversal Functions
 ACM Trans. Softw. Eng. Methodol
, 2001
"... Term rewriting is an appealing technique for performing program analysis and program transformation. Tree (term) traversal is frequently used but is not supported by standard term rewriting. ..."
Abstract

Cited by 59 (8 self)
 Add to MetaCart
Term rewriting is an appealing technique for performing program analysis and program transformation. Tree (term) traversal is frequently used but is not supported by standard term rewriting.
System Description: Proof Planning in HigherOrder Logic with
 15th International Conference on Automated Deduction, volume 1421 of Lecture Notes in Artificial Intelligence
, 1998
"... Introduction Proof planning [4] is an approach to theorem proving which encodes heuristics for constructing mathematical proofs in a metatheory of methods. The Clam system, developed at Edinburgh [3], has been used for several years to develop proof planning, in particular proof plans for induction ..."
Abstract

Cited by 58 (8 self)
 Add to MetaCart
Introduction Proof planning [4] is an approach to theorem proving which encodes heuristics for constructing mathematical proofs in a metatheory of methods. The Clam system, developed at Edinburgh [3], has been used for several years to develop proof planning, in particular proof plans for induction. It has become clear that many of the theoremproving tasks that we would like to perform are naturally higherorder. For example, an important technique called middleout reasoning [6] uses metavariables to stand for some unknown objects in a proof, to be instantiated as the proof proceeds. Domains such as the synthesis and verification of software and hardware systems, and techniques such as proof critics [7], benefit greatly from such middleout reasoning. Since in these domains the metavariables often become instantiated with terms of function type, reasoning with them is naturally higherorder, and higherorder unification is a
Higherorder abstract syntax in Coq
, 1995
"... The terms of the simplytyped λcalculus can be used to express the higherorder abstract syntax of objects such as logical formulas, proofs, and programs. Support for the manipulation of such objects is provided in several programming languages (e.g. λProlog, Elf). Such languages also provide embed ..."
Abstract

Cited by 41 (1 self)
 Add to MetaCart
The terms of the simplytyped λcalculus can be used to express the higherorder abstract syntax of objects such as logical formulas, proofs, and programs. Support for the manipulation of such objects is provided in several programming languages (e.g. λProlog, Elf). Such languages also provide embedded implication, a tool which is widely used for expressing hypothetical judgments in natural deduction. In this paper, we show how a restricted form of secondorder syntax and embedded implication can be used together with induction in the Coq Proof Development system. We specify typing rules and evaluation for a simple functional language containing only function abstraction and application, and we fully formalize a proof of type soundness in the system. One difficulty we encountered is that expressing the higherorder syntax of an objectlanguage as an inductive type in Coq generates a class of terms that contains more than just those that directly represent objects in the language. We ove...
A Survey of Rewriting Strategies in Program Transformation Systems
 In Workshop on Reduction Strategies in Rewriting and Programming (WRS’01), volume 57 of Electronic Notes in Theoretical Computer Science
, 2001
"... Program transformation is used in a wide range of applications including compiler construction, optimization, program synthesis, refactoring, software renovation, and reverse engineering. Complex program transformations are achieved through a number of consecutive modifications of a program. Transfo ..."
Abstract

Cited by 24 (1 self)
 Add to MetaCart
Program transformation is used in a wide range of applications including compiler construction, optimization, program synthesis, refactoring, software renovation, and reverse engineering. Complex program transformations are achieved through a number of consecutive modifications of a program. Transformation rules define basic modifications. A transformation strategy is an algorithm for choosing a path in the rewrite relation induced by a set of rules. This paper surveys the support for the definition of strategies in program transformation systems. After a discussion of kinds of program transformation and choices in program representation, the basic elements of a strategy system are discussed and the choices in the design of a strategy language are considered. Several styles of strategy systems as provided in existing languages are then analyzed.
Transforming the .NET Intermediate Language Using Path Logic Programming
, 2002
"... Path logic programming is a modest extension of Prolog for the specification of program transformations. We give an informal introduction to this extension, and we show how it can be used in coding standard compiler optimisations, and also a number of obfuscating transformations. The object language ..."
Abstract

Cited by 18 (6 self)
 Add to MetaCart
Path logic programming is a modest extension of Prolog for the specification of program transformations. We give an informal introduction to this extension, and we show how it can be used in coding standard compiler optimisations, and also a number of obfuscating transformations. The object language is the Microsoft .NET intermediate language (IL).
Higher Order Babel: Language and Implementation
 In editors Proc. 5th International Workshop on Extensions of Logic Programming ELP'96
, 1996
"... . We present the functional logic language Higher Order Babel which provides higher order unification for parameter passing and solving equations. When searching for a function which solves an equation, not only "polynomial functions" but also defined functions are taken into account. In contrast to ..."
Abstract

Cited by 11 (2 self)
 Add to MetaCart
. We present the functional logic language Higher Order Babel which provides higher order unification for parameter passing and solving equations. When searching for a function which solves an equation, not only "polynomial functions" but also defined functions are taken into account. In contrast to all other programming languages which support higher order unification HOBabel replaces the expensive fireduction by the much more efficient combinator reduction. Moreover, HOBabel is more homogeneous since it does not distinguish functions which only represent data structures and defined functions which are equipped with the full execution mechanism of the language. 1 Introduction In comparison to purely logic programming languages, integrated functional logic programming languages allow a more efficient implementation since functions are deterministic and this determinism can be exploited to reduce the search space. On the other hand, functional logic languages have more expressive po...
Ordinal Arithmetic: A Case Study for Rippling in a Higher Order Domain
 In TPHOLs’01, volume 2152 of LNCS
, 2001
"... This paper reports a case study in the use of proof planning in the context of higher order syntax. Rippling is a heuristic for guiding rewriting steps in induction that has been used successfully in proof planning inductive proofs using first order representations. Ordinal arithmetic provides a nat ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
This paper reports a case study in the use of proof planning in the context of higher order syntax. Rippling is a heuristic for guiding rewriting steps in induction that has been used successfully in proof planning inductive proofs using first order representations. Ordinal arithmetic provides a natural set of higher order examples on which transfinite induction may be attempted using rippling. Previously BoyerMoore style automation could not be applied to such domains. We demonstrate that a higherorder extension of the rippling heuristic is sufficient to plan such proofs automatically. Accordingly, ordinal arithmetic has been implemented in Clam, a higher order proof planning system for induction, and standard undergraduate text book problems have been successfully planned. We show the synthesis of a fixpoint for normal ordinal functions which demonstrates how our automation could be extended to produce more interesting results than the textbook examples tried so far.
Logic Program Synthesis in a HigherOrder Setting
, 2000
"... . We describe a system for the synthesis of logic programs from specications based on higherorder logical descriptions of appropriate renement operations. The system has been implemented within the proof planning system Clam. The generality of the approach is such that its extension to allow sy ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
. We describe a system for the synthesis of logic programs from specications based on higherorder logical descriptions of appropriate renement operations. The system has been implemented within the proof planning system Clam. The generality of the approach is such that its extension to allow synthesis of higherorder logic programs was straightforward. Some illustrative examples are given. The approach is extensible to further classes of synthesis. 1 Introduction Earlier work on the synthesis of logic programs has taken the approach of constructing a program in the course of proving equivalence to a specication, which is written in a richer logic than the resulting program. Typically, quantiers and thus binding of variables are present in the speci cation, and have to be manipulated correctly. We extend earlier work using as far as possible a declarative reading in a higherorder logic. The higherorder proof planning framework which we employ provides a more expressiv...
Specification of Term Rewriting in Linear Logic
, 1998
"... We present an axiomatization of term rewriting systems in Forum, a presentation of linear logic in terms of uniform proofs, which allows us to relate provability and derivability in a natural way. The resulting theory can be used to prove properties of the original system. Vice versa the structure o ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
We present an axiomatization of term rewriting systems in Forum, a presentation of linear logic in terms of uniform proofs, which allows us to relate provability and derivability in a natural way. The resulting theory can be used to prove properties of the original system. Vice versa the structure of the formulas used in the encoding suggests us a possible operational interpretation of Forum. The considered fragment turns out to be an extension of previously proposed multiconclusion logics.