On the productivity of recursive list definitions
ACM Transactions on Programming Languages and Systems (TOPLAS)
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Infinite objects in type theory
TYPES '93 Proceedings of the international workshop on Types for proofs and programs
Transfinite reductions in orthogonal term rewriting systems
Information and Computation
Proving the correctness of reactive systems using sized types
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
NSL '94 Proceedings of the first workshop on Non-standard logics and logical aspects of computer science
Codifying Guarded Definitions with Recursive Schemes
TYPES '94 Selected papers from the International Workshop on Types for Proofs and Programs
Automatic Sequences: Theory, Applications, Generalizations
Automatic Sequences: Theory, Applications, Generalizations
Behavioural differential equations: a coinductive calculus of streams, automata, and power series
Theoretical Computer Science
Productivity of stream definitions
FCT'07 Proceedings of the 16th international conference on Fundamentals of Computation Theory
Automatic Sequences and Zip-Specifications
LICS '12 Proceedings of the 2012 27th Annual IEEE/ACM Symposium on Logic in Computer Science
Pure type systems with corecursion on streams: from finite to infinitary normalisation
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
Highlights in infinitary rewriting and lambda calculus
Theoretical Computer Science
Circular coinduction in coq using bisimulation-up-to techniques
ITP'13 Proceedings of the 4th international conference on Interactive Theorem Proving
Hi-index | 5.23 |
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.