Unlimited register machine "bounded-accepts", recursively enumerable. A unlimited register machine $M$ b-accepts ("b" stands for bounded) an input $x$ if in the overall course of its computation on $x$, the register $R_1$ contains only finitely many different values (thus, if $M$ halts on $x$, it always b-accepts, but the converse is not necessarily true). Let$$L_\text{b} := \{(x, y) : M_x \text{ b-accepts }y\}$$($M_x$ is the unlimited register machine with code $x$).
I have three questions.


*

*Is every recursively enumerable set many-one reducible to $L_{\text{b}}$?

*Is every recursively enumerable set many-one reducible to its complement co-$L_\text{b}$?

*How do I see that $L_\text{b}$ is not recursively enumerable?

 A: Remember that if this problem is from a textbook, the question should ideally contain a reference to it!
1. Is every recursively enumerable set many-one reducible to $L_b$? YES.
Consider a language $L$ enumerated by a Turing Machine $M$. We need a computable function $f$ that maps each word $w$ out of the alphabet of $L$ into a word $f(w)$ out of the alphabet of $L_b$ so that $f(w)\in L_b$ if and only if $w\in L$. Assume for simplicity that $M$ never halts even if $L$ is finite - instead of halting it just keeps taking "idle" operations, so we can meaningfully talk about the $i^{th}$ step of $M$ for every $i$.
Consider, for any word $w$, an unlimited register machine $M_w$, that simulates in turn each single step of $M$, enumerating $L$. Until it produces $w$, when simulating the $i^{th}$ step of $M$, $M_W$ writes $i$ into $R_1$. If and when the simulated $M$ produces $w$, $M_w$ stops updating $R_1$. It's immediate to verify that if $w\in L$, so that $M$ produces it on the $i^{th}$ step, then $R_1$ is incremented no more than $i$ times; whereas if $w\notin L$, $R_1$ eventually sees every integer in $\mathbb{N}$. So $(M_w, w)\in L_b$ if and only if $w\in L$. 
2. Is every recursively enumerable set many-one reducible to co-$L_b$? YES. By essentially the same argument; the only difference is that instead of having $R_1$ increase at every step until $w$ is found, and then freeze, we initially keep $R_1$ frozen at e.g. $0$, and begin increasing it, by $1$ at each step of the simulated $M$, only if and when $w$ is found.
3. Is $L_b$ is recursively enumerable? NO.
Let's focus briefly on the implications of $2$ above. If $L_p$ were recursively enumerable, then there would be a way to enumerate all the words not in co-$L_p$, and thus for any recursively enumerable language $L$ (using its reduction to co-$L_p$ given by $2$), all the words not in $L$. This means that for any recursively enumerable language $L$, one would be able to eventually decide for any word $w$ if $w\in L$ or if $w\notin L$; but we know that there are recursively enumerable languages for which this is not the case.
