On the productivity of recursive list definitions
ACM Transactions on Programming Languages and Systems (TOPLAS)
Handbook of logic in computer science (vol. 2)
Termination of term rewriting using dependency pairs
Theoretical Computer Science - Trees in algebra and programming
The Implementation of Functional Programming Languages (Prentice-Hall International Series in Computer Science)
RTA '09 Proceedings of the 20th International Conference on Rewriting Techniques and Applications
The undecidability of the generalized Collatz problem
TAMC'07 Proceedings of the 4th international conference on Theory and applications of models of computation
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
On the complexity of equivalence of specifications of infinite objects
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
Highlights in infinitary rewriting and lambda calculus
Theoretical Computer Science
Hi-index | 0.00 |
In functional programming languages the use of infinite structures is common practice. For total correctness of programs dealing with infinite structures one must guarantee that every finite part of the result can be evaluated in finitely many steps. This is known as productivity. For programming with infinite structures, productivity is what termination in well-defined results is for programming with finite structures. Fractran is a simple Turing-complete programming language invented by Conway. We prove that the question whether a Fractran program halts on all positive integers is ${\rm \Pi}^{0}_{2}$-complete. In functional programming, productivity typically is a property of individual terms with respect to the inbuilt evaluation strategy. By encoding Fractran programs as specifications of infinite lists, we establish that this notion of productivity is ${\rm \Pi}^{0}_{2}$-complete even for some of the most simple specifications. Therefore it is harder than termination of individual terms. In addition, we explore generalisations of the notion of productivity, and prove that their computational complexity is in the analytical hierarchy, thus exceeding the expressive power of first-order logic.