Beta-Shifts, Their Languages, and Computability
For every real number beta > 1, the beta-shift is a dynamical system describing iterations of the map x bar right arrow beta x mod 1 and is studied intensively in number theory. Each beta-shift has an associated language of finite strings of characters; properties of this language are studied for the additional insight they give into the dynamics of the underlying system. We prove that the language of the beta-shift is recursive iff beta is a computable real number. That fact yields a precise characterization of the reals: The real numbers beta for which we can compute arbitrarily good approximations-hence in particular the numbers for which we can compute their expansion to some base-are precisely those for which there exists a program that decides for any finite sequence of digits whether the sequence occurs as a subword of some element of the beta-shift. While the "only if" part of the proof of the above result is constructive, the "if" part is not. We show that no constructive proof of the "if" part exists. Hence, there exists no algorithm that transforms a program computing arbitrarily good approximations of a real number beta into a program deciding the language of the beta-shift.
dynamical systems number theory computability theory computable analysis