I'm learning for a test and I have some important questions about Computability of deterministic and non deterministic Turing Machines.

Consider we have the partial functions $f,g,h,t: \mathbb{N} \rightarrow \mathbb{N}$ with $f$ is Turing Machine computable, $g$ not Turing Machine computable, $h$ is not While solvable and $t$ is While computable. Are the following answers correct? And is there anything changing if we had an non deterministic TM?

There is no proof to do words are ok :)

  1. Is $f \circ g$ Turing Machine computable?
  2. Is $g \circ f$ Turing Machine computable?
  3. Is $t \circ h$ While computable?
  4. Is $h \circ t$ While computable?

My answers:

First of all, we know that Turing Machine = While Computability. (#)

  1. I would say, that we do not know if it is or is not TM computable, because there may a TM who can handle the output of an not TM computable function.
  2. I would say no, because if whatever $g$ takes, it won't be TM computable.

  3. and 4. Because of (#) it is the same like 1. and 2.

Could that be right? It is for an multiple choice test and those questions are tricky.

  • $\begingroup$ I've never seen the terms "Turing Machine solvable" and "While solvable" used like this before. The first Google hit for "while solvable" turing machine is this question. Are these synonyms for "recursively enumerable"? $\endgroup$ – Aaron Rotenberg Dec 5 '19 at 4:07
  • $\begingroup$ The fact that these are partial functions has me especially confused. Usually we say that a particular Turing machine or program computes a partial function, but when we say that a function is or is not computable we are talking about a total function. $\endgroup$ – Aaron Rotenberg Dec 5 '19 at 4:35
  • $\begingroup$ @AaronRotenberg Hello, Turing Machine solvable is maybe the wrong word, I m a native speaker sry. Maybe it shout be known as Turing-computable en.wikipedia.org/wiki/Computability and for while programms en.wikipedia.org/wiki/Computability $\endgroup$ – katarina Dec 5 '19 at 10:29
  • $\begingroup$ Maybe an example. If $m$ and $n$ are two partial functions $\mathbb{N} \rightarrow \mathbb{N}$ and both are while computable than there composition is also while computable. If we now add a partial function $r$ $\mathbb{N} \rightarrow \mathbb{N}$ who is loop computable and we want to know if the composition of $r$ and $m$ (in any way) is loop computable than we can not find an answer, because a composition of an total and partial function do not need to be an total function, but loop is a total function, so problem. The result is of cource a partial funktion so it is while and TM computable $\endgroup$ – katarina Dec 5 '19 at 10:39
  • $\begingroup$ I was still confused by your terminology until I searched around some more and discovered Uwe Schöning's LOOP programming language, which can define exactly the primitive recursive functions, and WHILE programming language, which is Turing-complete. I think these are somewhat common in educational use, but they are not standard English mathematical terms, so I was confused. $\endgroup$ – Aaron Rotenberg Dec 5 '19 at 15:32

The answer is "we don't know without more information" for all 4.

Suppose $f$ is the identity function $f(x) = x$. Then $f \circ g = g \circ f = g$, which is non-computable.

On the other hand, suppose $g$ is a total non-computable function (which is a special case of $g$ being a partial non-computable function), and suppose $f$ is the constant zero function $f(x) = 0$. In this case:

Deterministic vs. non-deterministic Turing machine doesn't affect the answer, because a deterministic Turing machine can simulate the execution of a non-deterministic Turing machine (potentially with an exponential slowdown) by dovetailing.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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