Dimitri Hendriks

Learn More
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,(More)
We are concerned with demonstrating productivity of specifications of infinite streams of data, based on orthogonal rewrite rules. In general, this property is undecidable, but for restricted formats computable sufficient conditions can be obtained. The usual analysis, also adopted here, disregards the identity of data, thus leading to approaches that we(More)
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(More)
We present a procedure for transforming strongly sequential constructor-based term rewriting systems (TRSs) into context-sensitive TRSs in such a way that productivity of the input system is equivalent to termination of the output system. Thereby automated termination provers become available for proving productivity. A TRS is called productive if all its(More)
We introduce a novel approach to comparing the complexity of streams, namely in terms of reducibility by finite state transducers. This gives rise to a hierarchy of stream ‘degrees,’ somewhat analogous to the recursion-theoretic degrees of unsolvability. It is the structure and properties of this partial order of degrees that we are primarily interested in.(More)
We provide techniques to integrate resolution logic with equality in type theory. The results may be rendered as follows. • A clausification procedure in type theory, equipped with a correctness proof, all encoded using higher-order primitive recursion. • A novel representation of clauses in minimal logic such that the λ-representation of resolution steps(More)
We present a coinductive framework for defining infinitary analogues of equational reasoning and rewriting in a uniform way. We define the relation =, a notion of infinitary equational reasoning, and →∞, the standard notion of infinitary rewriting as follows: = := νR. (=R ∪ R)∗ →∞ := μR. νS. (→R ∪ R)∗ ◦ S where μ and ν are the least and greatest fixed-point(More)
We consider infinite sequences of symbols, also known as streams, and the decidability question for equality of streams defined in a restricted format. (Some formats lead to undecidable equivalence problems.) This restricted format consists of prefixing a symbol at the head of a stream, of the stream function `zip', and recursion variables. Here `zip'(More)