Productivity of stream definitions

We give an algorithm for deciding productivity of a large and natural class of recursive stream definitions. A stream definition is called ‘productive’ if it can be evaluated continually in such a way that a uniquely determined stream in constructor normal form is obtained as the limit. Whereas productivity is undecidable for stream definitions in general, we show that it can be decided for ‘pure’ stream definitions. For every pure stream definition the process of its evaluation can be modelled by the dataflow of abstract stream elements, called ‘pebbles’, in a finite ‘pebbleflow net(work)’. And the production of a pebbleflow net associated with a pure stream definition, that is, the amount of pebbles the net is able to produce at its output port, can be calculated by reducing nets to trivial nets.

[1]  Jan Willem Klop,et al.  Transfinite Reductions in Orthogonal Term Rewriting Systems , 1995, Inf. Comput..

[2]  Klaus Aehlig A Finite Semantics of Simply-Typed Lambda Terms for Infinite Runs of Automata , 2007, Log. Methods Comput. Sci..

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

[4]  Gilles Kahn,et al.  The Semantics of a Simple Language for Parallel Programming , 1974, IFIP Congress.

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

[6]  Terese Term rewriting systems , 2003, Cambridge tracts in theoretical computer science.

[7]  Jörg Endrullis,et al.  Data-Oblivious Stream Productivity , 2008, LPAR.

[8]  Ben A. Sijtsma,et al.  On the productivity of recursive list definitions , 1989, ACM Trans. Program. Lang. Syst..

[9]  Eduardo Giménez,et al.  Codifying Guarded Definitions with Recursive Schemes , 1994, TYPES.

[10]  Thierry Coquand,et al.  Infinite Objects in Type Theory , 1994, TYPES.

[11]  Hendrik Pieter Barendregt,et al.  Applications of infinitary lambda calculus , 2009, Inf. Comput..

[12]  Jan Willem Klop,et al.  Infinitary Lambda Calculus , 1997, Theoretical Computer Science.

[13]  David Turner,et al.  Ensuring the Productivity of Infinite Structures , 1997 .

[14]  Jan Willem Klop,et al.  Infinitary Normalization , 2005, We Will Show Them!.

[15]  Stefan Blom,et al.  Term Graph Rewriting. Syntax and semantics , 2001 .

[16]  Wilfried Buchholz A term calculus for (co-)recursive definitions on streamlike data structures , 2005, Ann. Pure Appl. Log..

[17]  Jan J. M. M. Rutten,et al.  Behavioural differential equations: a coinductive calculus of streams, automata, and power series , 2003, Theor. Comput. Sci..

[18]  Amr Sabry,et al.  Proving the correctness of reactive systems using sized types , 1996, POPL '96.

[19]  Zena M. Ariola,et al.  Equational Term Graph Rewriting , 1996, Fundam. Informaticae.

[20]  Maribel Fernández The Lambda Calculus , 2009 .

[21]  William W. Tait,et al.  Intensional interpretations of functionals of finite type I , 1967, Journal of Symbolic Logic.

[22]  Jeffrey Shallit,et al.  Automatic Sequences: Theory, Applications, Generalizations , 2003 .

[23]  William W. Wadge An Extensional Treatment of Dataflow Deadlock , 1981, Theor. Comput. Sci..

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