Correctness of Context-Moving Transformations for Term Rewriting Systems
Proofs by induction are often incompatible with functions in tail-recursive form as the accumulator changes in the course of unfolding the definitions. Context-moving and context-splitting (Giesl, 2000) for functional programs transform tail-recursive programs into non tail-recursive ones which are more suitable for proofs by induction and thus for verification. In this paper, we formulate context-moving and context-splitting transformations in the framework of term rewriting systems, and prove their correctness with respect to both eager evaluation semantics and initial algebra semantics under some conditions on the programs to be transformed. The conditions for the correctness with respect to initial algebra semantics can be checked by automated methods for inductive theorem proving developed in the field of term rewriting systems.
KeywordsTail-recursion Program transformation Term rewriting system Inductive theorem proving
- 1.Aoto, T.: Designing a rewriting induction prover with an increased capability of non-orientable equations. In: Proceedings of 1st SCSS, volume 08–08 of RISC Technical report, pp. 1–15 (2008)Google Scholar
- 2.Aoto, T.: Sound lemma generation for proving inductive validity of equations. In: Proceedings of 28th FSTTCS, LIPIcs, vol. 2, pp. 13–24. Schloss Dagstuhl (2008)Google Scholar
- 8.Sato, K., Kikuchi, K., Aoto, T., Toyama, Y.: Automated inductive theorem proving using transformations of term rewriting systems. JSSST Comput. Softw. 32(1), 179–193 (2015). In JapaneseGoogle Scholar
- 9.Shimazu, S., Aoto, T., Toyama, Y.: Automated lemma generation for rewriting induction with disproof. JSSST Comput. Softw. 26(2), 41–55 (2009). In JapaneseGoogle Scholar