Linearity and iterator types for Gödel’s System

System is a linear λ-calculus with numbers and an iterator, which, although imposing linearity restrictions on terms, has all the computational power of Gödel’s System . System owes its power to two features: the use of a closed reduction strategy (which permits the construction of an iterator on an open function, but only iterates the function after it becomes closed), and the use of a liberal typing rule for iterators based on iterative types. In this paper, we study these new types, and show how they relate to intersection types. We also give a sound and complete type reconstruction algorithm for System .

[1]  J. A. Robinson,et al.  A Machine-Oriented Logic Based on the Resolution Principle , 1965, JACM.

[2]  Luís Damas,et al.  Type assignment in programming languages , 1984 .

[3]  J. Lambek,et al.  Introduction to higher order categorical logic , 1986 .

[4]  Trevor Jim What are principal typings and what are they good for? , 1996, POPL '96.

[5]  Harry G. Mairson,et al.  Relating typability and expressiveness in finite-rank intersection type systems (extended abstract) , 1999, ICFP '99.

[6]  Jean-Yves Girard,et al.  Geometry of Interaction 1: Interpretation of System F , 1989 .

[7]  Steffen van Bakel,et al.  Intersection Type Assignment Systems , 1995, Theor. Comput. Sci..

[8]  S. V. Bakel,et al.  Intersection type disciplines in Lambda Calculus and applicative term rewriting systems , 1993 .

[9]  Robin Milner,et al.  Principal type-schemes for functional programs , 1982, POPL '82.

[10]  Ian Mackie,et al.  The Power of Linear Functions , 2006, CSL.

[11]  Mariangiola Dezani-Ciancaglini,et al.  A filter lambda model and the completeness of type assignment , 1983, Journal of Symbolic Logic.

[12]  Chang Liu,et al.  Term rewriting and all that , 2000, SOEN.

[13]  Ferruccio Damiani Rank-2 Intersection and Polymorphic Recursion , 2005, TLCA.

[14]  M. Newman On Theories with a Combinatorial Definition of "Equivalence" , 1942 .

[15]  Christian Haack,et al.  Type error slicing in implicitly typed higher-order languages , 2003, Sci. Comput. Program..

[16]  Ian Mackie,et al.  The Power of Closed Reduction Strategies , 2007, WRS@FLoC.

[17]  Dale Miller,et al.  Logic Programming in a Fragment of Intuitionistic Linear Logic , 1994, Inf. Comput..

[18]  Alberto Martelli,et al.  An Efficient Unification Algorithm , 1982, TOPL.

[19]  Ian Mackie,et al.  Closed reduction: explicit substitutions without alpha-conversion , 2005, Math. Struct. Comput. Sci..

[20]  J. Roger Hindley,et al.  To H.B. Curry: Essays on Combinatory Logic, Lambda Calculus, and Formalism , 1980 .

[21]  G. Pottinger,et al.  A type assignment for the strongly normalizable |?-terms , 1980 .

[22]  Helmat Schwichtenberg,et al.  Complexity of Normalization in the Pure Typed Lambda – Calculus , 1982 .

[23]  Ian Mackie,et al.  Lilac: a functional programming language based on linear logic , 1994, Journal of Functional Programming.

[24]  I. Mackie,et al.  G¨odel’s System T Revisited , 2009 .

[25]  Yoshihito Toyama,et al.  Confluent Term Rewriting Systems with Membership Conditions , 1988, CTRS.

[26]  J. Girard,et al.  Proofs and types , 1989 .

[27]  Jean-Yves Girard,et al.  Towards a geometry of interaction , 1989 .

[28]  Robin Milner,et al.  A Theory of Type Polymorphism in Programming , 1978, J. Comput. Syst. Sci..

[29]  Paul Hudak,et al.  A gentle introduction to Haskell , 1992, SIGP.

[30]  Yves Lafont,et al.  Interaction nets , 1989, POPL '90.

[31]  Samson Abramsky,et al.  Computational Interpretations of Linear Logic , 1993, Theor. Comput. Sci..

[32]  Ian Mackie,et al.  An internal language for autonomous categories , 1993, Theory and Formal Methods.

[33]  M. Nivat Fiftieth volume of theoretical computer science , 1988 .

[34]  T. Jim Rank 2 Type Systems and Recursive Definitions , 1995 .

[35]  Mariangiola Dezani-Ciancaglini,et al.  An extension of the basic functionality theory for the λ-calculus , 1980, Notre Dame J. Formal Log..

[36]  Junnosuke Yamada Confluence of Terminating Membership Conditional TRS , 1992, CTRS.

[37]  Patrick Lincoln,et al.  Linear logic , 1992, SIGA.

[38]  Ian Mackie,et al.  Iterator Types , 2007, FoSSaCS.