A correctness proof for combinator reduction with cycles

Turner popularized a technique of Wadsworth in which a cyclic graph rewriting rule is used to implement reduction of the fixed point combinator Y. We examine the theoretical foundation of this approach. Previous work has concentrated on proving that graph methods are, in a certain sense, sound and complete implementations of term methods. This work is inapplicable to the cyclic Y rule, which is unsound in this sense since graph normal forms can exist without corresponding term normal forms. We define and prove the correctness of combinator head reduction using the cyclic Y rule; the correctness of normal reduction is an immediate consequence. Our proof avoids the use of infinite trees to explain cyclic graphs. Instead, we show how to consider reduction with cycles as an optimization of reduction without cycles.

[1]  D. Plaisted,et al.  Rewrite, Rewrite, Rewrite , 1989 .

[2]  Joseph M. Morris A Proof of the Schorr-Waite Algorithm , 1982 .

[3]  William M. Farmer,et al.  Redex Capturing in Term Graph Rewriting , 1990, Int. J. Found. Comput. Sci..

[4]  HuetGérard Confluent Reductions: Abstract Properties and Applications to Term Rewriting Systems , 1980 .

[5]  Nachum Dershowitz,et al.  Rewrite, rewrite, rewrite, rewrite, rewrite... , 1989, POPL '89.

[6]  John Staples,et al.  Computation on Graph-Like Expressions , 1980, Theor. Comput. Sci..

[7]  Matthias Felleisen,et al.  The calculi of lambda-nu-cs conversion: a syntactic theory of control and state in imperative higher-order programming languages , 1987 .

[8]  John D. Ramsdell The CURRY chip , 1986, LFP '86.

[9]  M. Schönfinkel Über die Bausteine der mathematischen Logik , 1924 .

[10]  Simon Peyton Jones,et al.  The Implementation of Functional Programming Languages (Prentice-hall International Series in Computer Science) , 1987 .

[11]  Antoni Diller Compiling functional languages , 1988 .

[12]  Marko C. J. D. van Eekelen,et al.  Term Graph Rewriting , 1987, PARLE.

[13]  Gérard P. Huet,et al.  Confluent Reductions: Abstract Properties and Applications to Term Rewriting Systems , 1980, J. ACM.

[14]  Simon L. Peyton Jones,et al.  The Implementation of Functional Programming Languages , 1987 .

[15]  William M. Waite,et al.  An efficient machine-independent procedure for garbage collection in various list structures , 1967, CACM.

[16]  Haskell B. Curry Grundlagen der kombinatorischen Logik , 1930 .

[17]  Gerard Huet,et al.  Conflunt reductions: Abstract properties and applications to term rewriting systems , 1977, 18th Annual Symposium on Foundations of Computer Science (sfcs 1977).

[18]  Henk Barendregt,et al.  The Lambda Calculus: Its Syntax and Semantics , 1985 .

[19]  D. A. Turner,et al.  A new implementation technique for applicative languages , 1979, Softw. Pract. Exp..

[20]  Jan Willem Klop,et al.  Combinatory reduction systems , 1980 .