0
$\begingroup$

I have the following problem:

Problem: Show that there is no total recursive function $f$ such that for any index $e$, if $\phi_e$ is the characteristic function of a finite set $F$, then $f(e)$ converges and $f(e) = |F|$.

I have been trying to use the recursion theorem to find a contradiction, but I don't see clearly how to define the function depending on the index the reach the conclusion, and I would appreciate any hint.

  • 1
    Your title is weird because it claims something which is plainly false. Please edit it so that it makes sense.2017-02-05

1 Answers 1

2

In fact, the solution below proves something slightly stronger: that there is no partial computable function with the desired property! If you only want to prove the weaker result, then things are easier: since $f$ needs to be total you can do away with [Thing Three], since you know a priori that [Thing One] will eventually happen.

By the recursion theorem, we can construct an $e$ such that $\varphi_e$ has the behavior, $$\mbox{"Wait until $f(e)$ [does Thing One], then [do Thing Two]; until then, keep [doing Thing Three]."}$$ This is generally how we use the recursion theorem in this kind of argument. Now:

  • Thing One is usually the same in every construction like this. When you have a partial recursive function on some input, what do you usually wait for it to do?

  • Thing Two is where the action is. Suppose $f(e)$ did Thing One. What should $\varphi_e$ do to "win"?

  • Thing Three should be something that you can do "for free," i.e., a lot of Thing Three happening doesn't get in the way of doing thing two. In particular:

    • In order for $f$ to care about $\varphi_e$, what sort of function does $\varphi_e$ need to be?

    • OK, so Thing Three will involve deciding bits of $\varphi_e$ - at stage $n$, $\varphi_e(n)$ will converge. What should it converge to if $f(e)$ hasn't done Thing One? (HINT: we care about the size of the function $\varphi_e$ is a characteristic function for, so what kind of output is "noncommittal" in this regard?)

  • Now put it all together. Based on the behavior of $\varphi_e$, why does $f$ need to do Thing One? (If it doesn't, then $\varphi_e$ does Thing Three forever . . .) And, why does $\varphi_e$ doing Thing Two mean $f$ fails to do its job?

  • 0
    Thanks for your answer. I am trying to follow the thing three, the idea should be to force f to converge doing something? That part is not really clear for me...2017-02-05
  • 0
    @Wore HINT: $\varphi_e$ isn't allowed to output infinitely many $1$s, since then $f$ won't have to do *any*thing. So, what should $\varphi_e$ output lots of while waiting for $f$ to converge?2017-02-05
  • 0
    @Wore It's been a while, so let me add a further hint. We're trying to build a $\varphi_e$ which we will *then* be able to show "breaks $f$" - that is, such that $f(e)$ does not have the supposed behavior. In this case that behavior is "If $\varphi_e$ is the characteristic function of a finite set, then $f(e)$ is the size of that set"; in order to break this, we need $\varphi_e$ to be the characteristic function of a finite set but have $f(e)$ be *something other than* the size of that set. (cont'd)2017-02-15
  • 0
    And note that "is the characteristic function of some finite set" just means $(i)$ is total, $(ii)$ is $\{0, 1\}$-valued, and $(iii)$ outputs only finitely many $1$s. So Thing Three needs to consist of $(i)$ outputting lots of values, $(ii)$ only outputting $0$s and $1$s, and $(iii)$ **not** outputting lots of $1$s. So, what should $\varphi_e(n)$ be if $f(e)$ hasn't halted in $n$ stages? HINT: of the two possible outputs, $0$ and $1$, which is "safer"?2017-02-15