Constructive Proofs of the Range Property in lambda-Calculus

Abstract Bohm (1968) conjectured that the range of a combinator is either a singleton or an infinite set. The conjecture was proved independently by Myhill and the author. A proof is presented in Barendregt (1984) in a powerful – but somewhat difficult to understand – topological formulation due to Visser (1980). Dirk van Dalen remarked that the proof of the conjecture is not constructive. In this paper we first present some unsuccessful attempts to prove the conjecture, including the motivation given by Bohm. Then we present the proof as originally given by Barendregt and Myhill and we sketch the topological proof of Visser. After that we give two constructive proofs of the conjecture. The first one closely follows the original motivation by Bohm but has as an extra ingredient the notion of coding. The second proof is based on a recursion theoretic analysis of the situation in terms of Ershov numerations. Finally, we present some generalizations of the range theorem.