Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

In my class we call a set of computable functions $A$ recursive if its indexing set $I_A=\{e\in\mathbb N:\phi_e\in A \}$ is recursive, where $\phi$ is some known Gödel numbering of the computable functions. This definition does not seem very sensible to me, for this numbering repeats each function an infinite amount of times.

To give more context, my lecturer proved that the class of $\mu$-recursive functions is the class of functions, computed by unlimited register machines (URM). Thus by the $n$-th function we mean the function computed by the $n$-th program. Each program is effectively coded into a string of numbers and we are in fact dealing with some Gödel numbering of the strings of numbers.

Is there any context for which non-trivial properties of computable functions are decidable upon? For instance, a setting in which we don't care about the procedure that computes the function, as we do in my class? Who examines such theory?

What do we need to give up on, if we want Rice's theorem to be untrue?

share|cite|improve this question

If I correctly understand the question, it concerns how a computable function is to be given to us. If, in some context, Rice's theorem fails, this would mean that we have an algorithm which, given a computable function $f$, decides some non-trivial property of it. The question then arises, how is $f$ given as an input to our algorithm? The original context for Rice's theorem was, as your teacher explained, that $f$ is given in the form of a program (or the Gödel number of a program). You need something different from that. The first thing that comes to mind is, if you're interested only in total functions $f$, then you (or your algorithm) could be given $f$ as an oracle, a black box into which the algorithm can put any number $n$ and get back the value $f(n)$. This context certainly lets you compute properties like "$f(7)$ is odd." So in that sense, Rice's theorem fails in this context. I suspect, though, that you want something that (1) is less trivial and (2) doesn't use oracles (and perhaps (3) other conditions). In that case, it would be good if you describe in more detail what sorts of contexts you're looking for. Specifically, how might a function $f$ be given, as an input to an algorithm, if not as an oracle and not as a program?

share|cite|improve this answer
I've been hearing the word "algorithm" a lot, with no rigorous definition of what that means. I am guessing it means a program, but I want to make sure. Is that what it means? – Student Dec 15 '13 at 19:14
@Ivan Algorithms can be written as programs, but it is possible for two different programs to express the same algorithm. An obvious example would be programs in different programming languages, but even within one language, trivial variations of a program would be regarded as the same algorithm. – Andreas Blass Dec 16 '13 at 15:33

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.