CADE-10 Proceedings of the tenth international conference on Automated deduction
How to prove equivalence of term rewriting systems without induction
Theoretical Computer Science
Term rewriting and all that
Efficient Second-Order Matching
RTA '96 Proceedings of the 7th International Conference on Rewriting Techniques and Applications
Deterministic second-order patterns
Information Processing Letters
RTA'03 Proceedings of the 14th international conference on Rewriting techniques and applications
On the relation between Context and Sequence Unification
Journal of Symbolic Computation
A fold/unfold transformation framework for rewrite theories extended to CCT
Proceedings of the 2010 ACM SIGPLAN workshop on Partial evaluation and program manipulation
RAPT: a program transformation system based on term rewriting
RTA'06 Proceedings of the 17th international conference on Term Rewriting and Applications
A Two-Valued Logic for Properties of Strict Functional Programs Allowing Partial Functions
Journal of Automated Reasoning
Hi-index | 0.00 |
Huet and Lang (1978) presented a framework of automated program transformation based on lambda calculus in which programs are transformed according to a given program transformation template. They introduced a second-order matching algorithm of simply-typed lambda calculus to verify whether the input program matches the template. They also showed how to validate the correctness of the program transformation using the denotational semantics.We propose in this paper a framework of program transformation by templates based on term rewriting. In our new framework, programs are given by term rewriting systems. To automate our program transformation, we introduce a term pattern matching problem and present a sound and complete algorithm that solves this problem.We also discuss how to validate the correctness of program transformation in our framework. We introduce a notion of developed templates and a simple method to construct such templates without explicit use of induction. We then show that in any program transformation by developed templates the correctness of the transformation can be verified automatically. In our framework the correctness of the program transformation is discussed based on the operational semantics. This is a sharp contrast to Huet and Lang's framework.