Lambda-Definition of Function(al)s by Normal Forms

Lambda-calculus is extended in order to represent a rather large class of recursive equation systems, implicitly characterizing function(al)s or mappings of some algebraic domain into arbitrary sets. Algebraic equality will then be represented by λβδ-convertibility (or even reducibility). It is then proved, under very weak assumptions on the structure of the equations, that there always exist solutions in normal form (Interpretation theorem). Some features of the solutions, like the use of parametric representations of the algebraic constructors, higher-order solutions by currification, definability of functions on unions of algebras, etc., have been easily checked by a first implementation of the mentioned theorem, the CuCh machine.

[1]  Corrado Böhm,et al.  Combinatory foundation of functional programming , 1982, LFP '82.

[2]  Corrado Böhm,et al.  Subduing Self-Application , 1989, ICALP.

[3]  S. Kleene,et al.  λ-Definability and Recursiveness. , 1937 .

[4]  Mariangiola Dezani-Ciancaglini,et al.  Combinatorial Problems, Combinator Equations and Normal Forms , 1974, ICALP.

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

[6]  Daniel P. Friedman,et al.  CONS Should Not Evaluate its Arguments , 1976, ICALP.

[7]  Corrado Böhm,et al.  A Self-Interpreter of Lambda Calculus Having a Normal Form , 1992, CSL.

[8]  C.-H. Luke Ong,et al.  Full Abstraction in the Lazy Lambda Calculus , 1993, Inf. Comput..

[9]  S. Kleene $\lambda$-definability and recursiveness , 1936 .

[10]  Michel Parigot,et al.  Programming with Proofs: A Second Order Type Theory , 1988, ESOP.

[11]  Enrico Tronci,et al.  Equational programming in lambda -calculus , 1991, [1991] Proceedings Sixth Annual IEEE Symposium on Logic in Computer Science.

[12]  A. Church The calculi of lambda-conversion , 1941 .

[13]  Eric G. Wagner Uniformly reflexive structures: An axiomatic approach to computability , 1969, Inf. Sci..

[14]  Thomas Johnsson,et al.  The Chalmers Lazy-ML Compiler , 1989, Computer/law journal.

[15]  John W. Backus,et al.  Can programming be liberated from the von Neumann style?: a functional style and its algebra of programs , 1978, CACM.

[16]  H. Schwichtenberg,et al.  Einige Anwendungen von unendlichen Termen und Wertfunktionalen , 1973 .

[17]  H. R. Strong Algebraically generalized recursive function theory , 1968 .

[18]  Donald E. Knuth,et al.  The art of computer programming: V.1.: Fundamental algorithms , 1997 .

[19]  Corrado Böhm Reducing Recursion to Iteration by Algebraic Extension , 1986, ESOP.

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

[21]  Corrado Böhm,et al.  Functional Programming and Combinatory Algebras , 1988, International Symposium on Mathematical Foundations of Computer Science.

[22]  A. Turing On Computable Numbers, with an Application to the Entscheidungsproblem. , 1937 .

[23]  Simon L. Peyton Jones,et al.  A short cut to deforestation , 1993, FPCA '93.

[24]  Corrado Böhm Reducing Recursion to Iteration by Means of Pairs and N-tuples , 1986, Foundations of Logic and Functional Programming.

[25]  R. J. M. Hughes,et al.  Super-combinators a new implementation method for applicative languages , 1982, LFP '82.

[26]  Mariangiola Dezani-Ciancaglini,et al.  Lambda-terms as total or partial functions on normal forms , 1975, Lambda-Calculus and Computer Science Theory.

[27]  H. Barendregt The type free lambda calculus , 1977 .

[28]  Corrado Böhm,et al.  Automatic Synthesis of Typed Lambda-Programs on Term Algebras , 1985, Theor. Comput. Sci..

[29]  John Hughes,et al.  Why Functional Programming Matters , 1989, Comput. J..

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