Results 1 -
6 of
6
Parallelizing Functional Programs by Generalization
- Journal of Functional Programming
, 1997
"... List homomorphisms are functions that are parallelizable using the divide-and-conquer paradigm. We study the problem of finding a homomorphic representation of a given function, based on the Bird-Meertens theory of lists. A previous work proved that to each pair of leftward and rightward sequential ..."
Abstract
-
Cited by 7 (1 self)
- Add to MetaCart
List homomorphisms are functions that are parallelizable using the divide-and-conquer paradigm. We study the problem of finding a homomorphic representation of a given function, based on the Bird-Meertens theory of lists. A previous work proved that to each pair of leftward and rightward sequential representations of a function, based on cons- and snoc-lists, respectively, there is also a representation as a homomorphism. Our contribution is a mechanizable method to extract the homomorphism representation from a pair of sequential representations. The method is decomposed to a generalization problem and an inductive claim, both solvable by term rewriting techniques. To solve the former we present a sound generalization procedure which yields the required representation, and terminates under reasonable assumptions. We illustrate the method and the procedure by the parallelization of the scan-function (parallel prefix). The inductive claim is provable automatically.
A Divergence Critic for Inductive Proof
- Journal of Artificial Intelligence Research
, 1996
"... Inductive theorem provers often diverge. This paper describes a simple critic, a computer program which monitors the construction of inductive proofs attempting to identify diverging proof attempts. Divergence is recognized by means of a "difference matching" procedure. The critic then proposes lemm ..."
Abstract
-
Cited by 7 (0 self)
- Add to MetaCart
Inductive theorem provers often diverge. This paper describes a simple critic, a computer program which monitors the construction of inductive proofs attempting to identify diverging proof attempts. Divergence is recognized by means of a "difference matching" procedure. The critic then proposes lemmas and generalizations which "ripple" these differences away so that the proof can go through without divergence. The critic enables the theorem prover Spike to prove many theorems completely automatically from the definitions alone. 1. Introduction Two key problems in inductive theorem proving are proposing lemmas and generalizations. A prover's divergence often suggests to the user an appropriate lemma or generalization that will enable the proof to go through without divergence. As a simple example, consider the theorem, 8n : dbl(n) = n + n: This is part of a simple program verification problem (Dershowitz & Pinchover, 1990). Addition and doubling are defined recursively by means of th...
Some Experiments using Term Rewriting Techniques for Concurrency
- Formal Description Techniques, III, pages 527--530. Elsevier Science Publishers B.V. (North-Holland
, 1997
"... Theorem proving using term rewriting has been thoroughly explored for equational specifications; we look at the use of term rewriting for proving theorems in the process algebras of concurrency and conduct two experiments in this area. We use the LP theorem prover for proofs about CSP, and the RRL t ..."
Abstract
-
Cited by 3 (2 self)
- Add to MetaCart
Theorem proving using term rewriting has been thoroughly explored for equational specifications; we look at the use of term rewriting for proving theorems in the process algebras of concurrency and conduct two experiments in this area. We use the LP theorem prover for proofs about CSP, and the RRL term rewriting system for reasoning about LOTOS. The results of these experiments provide information about possible enrichments to term rewriting theory that will make it more effective in reasoning about concurrent systems. 1 Introduction The purpose of this paper is to report on preliminary investigations into the use of term rewriting theorem proving to support verification of formal descriptions of concurrent systems. We report on two pieces of work; using the LP theorem prover [14] for equational and inductive proofs about CSP and the RRL system [24, 38], particularly Knuth-Bendix completion and equational proofs, to investigate LOTOS. Term rewriting theorem proving is designed for rea...
Verification of LOTOS Specifications using Term Rewriting Techniques
, 1994
"... Recently the use of formal methods in describing and analysing the behaviour of (computer) systems has become more common. This has resulted in the proliferation of a wide variety of different specification formalisms, together with analytical techniques and methodologies for specification developme ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
Recently the use of formal methods in describing and analysing the behaviour of (computer) systems has become more common. This has resulted in the proliferation of a wide variety of different specification formalisms, together with analytical techniques and methodologies for specification development. The particular specification formalism adopted for this study is LOTOS, an ISO standard formal description technique. Although there are many works dealing with how to write LOTOS specifications and how to develop a LOTOS specification from the initial abstract requirements specification to concrete implementation, relatively few works are concerned with the problems of expressing and proving the correctness of LOTOS specifications, i.e. verification. The main objective of this thesis is to address this shortfall by investigating the meaning of verification as it relates to concurrent systems in general, and in particular to those systems described using LOTOS. Further goals are to autom...
Parallelizing Functional Programs by Term Rewriting
, 1997
"... List homomorphisms are functions that can be computed in parallel using the divide-and-conquer paradigm. We study the problem of finding a homomorphic representation of a given function, based on the Bird-Meertens theory of lists. A previous work proved that to each pair of leftward and rightward se ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
List homomorphisms are functions that can be computed in parallel using the divide-and-conquer paradigm. We study the problem of finding a homomorphic representation of a given function, based on the Bird-Meertens theory of lists. A previous work proved that to each pair of leftward and rightward sequential representations of a function, based on cons- and snoc-lists, respectively, there is also a representation as a homomorphism. Our contribution is a mechanizable method to extract the homomorphism representation from a pair of sequential representations. The method is decomposed to a generalization problem and an inductive claim, both solvable by term rewriting techniques. To solve the former we present a sound generalization procedure which yields the required representation, and terminates under reasonable assumptions. We illustrate the method and the procedure by the parallelization of the scan-function (parallel prefix). The inductive claim is provable automatically. Keywords: P...
Symbolic Reasoning by Difference Reduction
, 1994
"... We present a new approach to automated reasoning based on difference identification and reduction. Difference identification is based on a generalization of unification so that terms are made equal not only by finding substitutions for variables but also by hiding term structure. This annotation of ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
We present a new approach to automated reasoning based on difference identification and reduction. Difference identification is based on a generalization of unification so that terms are made equal not only by finding substitutions for variables but also by hiding term structure. This annotation of structural differences serves to direct rippling, a type of rewriting designed to reduce and remove differences in a controlled way. On the technical side, we give a rule-based algorithm for difference unification, and analyze its correctness, completeness, and complexity. Moreover we show how it can be efficiently implemented based on a novel search strategy for unifiers. On the practical side, we show how this algorithm can be used in new ways to support and extend the role of rippling in theorem proving and other kinds of automated reasoning. 1 Introduction 1.1 Motivation and Background Heuristics for judging similarity between terms and subsequently reducing differences have been appli...

