Results 1  10
of
19
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 73 (10 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.
Implementing Tactics and Tacticals in a HigherOrder Logic Programming Language
 Journal of Automated Reasoning
, 1993
"... We argue that a logic programming language with a higherorder intuitionistic logic as its foundation can be used both to naturally specify and implement tactic style theorem provers. The language extends traditional logic programming languages by replacing firstorder terms with simplytyped terms ..."
Abstract

Cited by 70 (15 self)
 Add to MetaCart
(Show Context)
We argue that a logic programming language with a higherorder intuitionistic logic as its foundation can be used both to naturally specify and implement tactic style theorem provers. The language extends traditional logic programming languages by replacing firstorder terms with simplytyped terms, replacing firstorder unification with higherorder unification, and allowing implication and universal quantification in queries and the bodies of clauses. Inference rules for a variety of inference systems can be naturally specified in this language. The higherorder features of the language contribute to a concise specification of provisos concerning variable occurrences in formulas and the discharge of assumptions present in many inference systems. Tactics and tacticals, which provide a framework for highlevel control over search for proofs, can be directly and naturally implemented in the extended language. This framework serves as a starting point for implementing theorem provers an...
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 63 (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 49 (1 self)
 Add to MetaCart
(Show Context)
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 28 (1 self)
 Add to MetaCart
(Show Context)
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 20 (5 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 Extensions of Logic Programming,volume 1050 of LNCS
, 1996
"... ..."
(Show Context)
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
(Show Context)
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
(Show Context)
. 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.