Abstract
The diagram-based method to prove correctness of program transformations includes the computation of (critical) overlappings between the analyzed program transformation and the (standard) reduction rules which result in so-called forking diagrams. Such diagrams can be seen as rewrite rules on reduction sequences which abstract away the expressions and allow additional expressive power, like transitive closures of reductions. In this paper we clarify the meaning of forking diagrams using interpretations as infinite term rewriting systems. We then show that the termination problem of forking diagrams as rewrite rules can be encoded into the termination problem for conditional integer term rewriting systems, which can be solved by automated termination provers. Since the forking diagrams can be computed automatically, the results of this paper are a big step towards a fully automatic prover for the correctness of program transformations.
This work was supported by the DFG under grant SCHM 986/9-1.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Barendregt, H.P.: The Lambda Calculus. Its Syntax and Semantics. North-Holland, Amsterdam (1984)
Contejean, E., Courtieu, P., Forest, J., Pons, O., Urbain, X.: Automated certified proofs with CiME3. In: Schmidt-Schauß, M. (ed.) RTA 22. LIPIcs, vol. 10, pp. 21–30. Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik (2011)
Ford, J., Mason, I.A.: Formal foundations of operational semantics. Higher Order Symbol. Comput. 16(3), 161–202 (2003)
Fuhs, C., Giesl, J., Plücker, M., Schneider-Kamp, P., Falke, S.: Proving Termination of Integer Term Rewriting. In: Treinen, R. (ed.) RTA 2009. LNCS, vol. 5595, pp. 32–47. Springer, Heidelberg (2009)
Giesl, J., Schneider-Kamp, P., Thiemann, R.: AProVE 1.2: Automatic Termination Proofs in the Dependency Pair Framework. In: Furbach, U., Shankar, N. (eds.) IJCAR 2006. LNCS (LNAI), vol. 4130, pp. 281–286. Springer, Heidelberg (2006)
Korp, M., Sternagel, C., Zankl, H., Middeldorp, A.: Tyrolean Termination Tool 2. In: Treinen, R. (ed.) RTA 2009. LNCS, vol. 5595, pp. 295–304. Springer, Heidelberg (2009)
Kutzner, A., Schmidt-Schauß, M.: A nondeterministic call-by-need lambda calculus. In: Felleisen, M., Hudak, P., Queinnec, C. (eds.) 3rd ICFP, pp. 324–335. ACM (1998)
Machkasova, E., Turbak, F.A.: A Calculus for Link-Time Compilation. In: Smolka, G. (ed.) ESOP 2000. LNCS, vol. 1782, pp. 260–274. Springer, Heidelberg (2000)
Mann, M.: Congruence of bisimulation in a non-deterministic call-by-need lambda calculus. Electron. Notes Theor. Comput. Sci. 128(1), 81–101 (2005)
Morris, J.H.: Lambda-Calculus Models of Programming Languages. PhD thesis. MIT (1968)
Niehren, J., Sabel, D., Schmidt-Schauß, M., Schwinghammer, J.: Observational semantics for a concurrent lambda calculus with reference cells and futures. Electron. Notes Theor. Comput. Sci. 173, 313–337 (2007)
Niehren, J., Schwinghammer, J., Smolka, G.: A concurrent lambda calculus with futures. Theoret. Comput. Sci. 364(3), 338–356 (2006)
Peyton Jones, S.: Haskell 98 language and libraries: the Revised Report. Cambridge University Press (2003)
Peyton Jones, S., Gordon, A., Finne, S.: Concurrent Haskell. In: Steele, G. (ed.) 23th POPL, pp. 295–308. ACM (1996)
Plotkin, G.D.: Call-by-name, call-by-value, and the lambda-calculus. Theoret. Comput. Sci. 1, 125–159 (1975)
Rau, C., Schmidt-Schauß, M.: Towards correctness of program transformations through unification and critical pair computation. In: Fernandez, M. (ed.) 24th UNIF. EPTCS, vol. 42, pp. 39–54 (2010)
Rau, C., Schmidt-Schauß, M.: A unification algorithm to compute overlaps in a call-by-need lambda-calculus with variable-binding chains. In: Baader, F., Morawska, B., Otop, J. (eds.) 25th UNIF, pp. 35–41 (2011)
Sabel, D., Schmidt-Schauß, M.: A call-by-need lambda-calculus with locally bottom-avoiding choice: Context lemma and correctness of transformations. Math. Structures Comput. Sci. 18(03), 501–553 (2008)
Sabel, D., Schmidt-Schauß, M.: A contextual semantics for Concurrent Haskell with futures. In: Hanus, M. (ed.) 13th PPDP, pp. 101–112. ACM (2011)
Schmidt-Schauß, M., Sabel, D.: On generic context lemmas for higher-order calculi with sharing. Theoret. Comput. Sci. 411(11-13), 1521–1541 (2010)
Schmidt-Schauß, M., Schütz, M., Sabel, D.: Safety of Nöcker’s strictness analysis. J. Funct. Programming 18(04), 503–551 (2008)
Wells, J.B., Plump, D., Kamareddine, F.: Diagrams for Meaning Preservation. In: Nieuwenhuis, R. (ed.) RTA 2003. LNCS, vol. 2706, pp. 88–106. Springer, Heidelberg (2003)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Rau, C., Sabel, D., Schmidt-Schauß, M. (2012). Correctness of Program Transformations as a Termination Problem. In: Gramlich, B., Miller, D., Sattler, U. (eds) Automated Reasoning. IJCAR 2012. Lecture Notes in Computer Science(), vol 7364. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-31365-3_36
Download citation
DOI: https://doi.org/10.1007/978-3-642-31365-3_36
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-31364-6
Online ISBN: 978-3-642-31365-3
eBook Packages: Computer ScienceComputer Science (R0)