patternMinor
Are partial recursive functions analogous to recursive languages or r.e. languages?
Viewed 0 times
arelanguagesanalogousrecursivepartialfunctions
Problem
From Ullman and Hopcroft's Introduction to Automata Theory, Language, and Computation 1ed 1979:
-
The assumption that the intuitive notion of "computable function"
can be identified with the class of partial recursive functions is
known as Church's hypothesis or the Church-Turing thesis.
-
A problem whose language is recursive is said to be decidable.
Otherwise, the problem is undecidable. That is, a problem is
undecidable if there is no algorithm that takes as input an
instance of the problem and determines whether the answer to that
instance is "yes" or "no."
-
Note that one TM may compute a function of one argument, a different
function of two arguments, and so on. Also note that if TM M computes
function f of k arguments, then f need not have a value for all
different k-tuples of integers. ...
In a sense,
may not halt on a given input.
How do these go together?
-
From the following first two quotes
-
The first quote says that computability can be identified with the class of partial recursive functions,
-
the second quote seems to say that computability can be identified with recursive languages.
Note that the second quote says about decidability while here I uses computability, so I assume that computability and decidability are the same or consistent concepts, but is it true?
Do they imply that partial recursive functions and recursive
languages are analogous to each other, as far as computability/decidability is concerned?
-
The third quote says that "in a sense",
Does the third quote contradict the imp
-
The assumption that the intuitive notion of "computable function"
can be identified with the class of partial recursive functions is
known as Church's hypothesis or the Church-Turing thesis.
-
A problem whose language is recursive is said to be decidable.
Otherwise, the problem is undecidable. That is, a problem is
undecidable if there is no algorithm that takes as input an
instance of the problem and determines whether the answer to that
instance is "yes" or "no."
-
Note that one TM may compute a function of one argument, a different
function of two arguments, and so on. Also note that if TM M computes
function f of k arguments, then f need not have a value for all
different k-tuples of integers. ...
In a sense,
- the partial recursive functions are analogous to the r.e. languages, since they are computed by Turing machines that may or
may not halt on a given input.
- The total recursive functions correspond to the recursive languages, since they are computed by TM's that always halt. ...
How do these go together?
-
From the following first two quotes
-
The first quote says that computability can be identified with the class of partial recursive functions,
-
the second quote seems to say that computability can be identified with recursive languages.
Note that the second quote says about decidability while here I uses computability, so I assume that computability and decidability are the same or consistent concepts, but is it true?
Do they imply that partial recursive functions and recursive
languages are analogous to each other, as far as computability/decidability is concerned?
-
The third quote says that "in a sense",
- the partial recursive functions are analogous to the r.e. languages
- The total recursive functions correspond to the recursive languages.
Does the third quote contradict the imp
Solution
Let me quote from the second edition of the same textbook, section 9.1 (sorry, I don't have the first one):
Recall that a language L is recursively enumerable (abbreviated RE) if L = L(M) for some TM M. Also, we shall in Section 9.2 introduce "recursive" or "decidable" languages that are not only recursively enumerable, but are accepted by a TM that always halts, regardless of whether or not it accepts.
Therefore recursive languages are associated to total recursive functions, not partial.
Hope this answers both the questions.
EDIT: to answer the comment:
On the one hand, the reason lies on intuition: the Church-Turing thesis is about capturing the intuitive idea of "effective computability" or "things that we can actually compute". Imagine a program that, if there is a correct answer then it computes the answer, otherwise it never halts (i.e. it gives an answer only if there is an answer). Would you say that such a program computes the answer or not?
But on the other hand, if this intuitive picture doesn't convince you, consider the following (way more concrete): consider an effective enumeration $(\varphi_i)_{i\in\mathbb{N}}$ of all total recursive functions and consider the function $\varphi:=x\mapsto\varphi_x(x)+1$. Now it is clear that you can compute $\varphi$: you can find the $x$-th function, you can compute it (as it is recursive) and you can sum 1 (as sum is recursive). But $\varphi$ cannot be total by a diagonal argument: if it were total than it would have its own index $i$, therefore
$$ \varphi(i) = \varphi_i(i)+1 = \varphi(i) +1 $$
which is a contradiction. This problem vanishes if you consider instead partial functions.
Recall that a language L is recursively enumerable (abbreviated RE) if L = L(M) for some TM M. Also, we shall in Section 9.2 introduce "recursive" or "decidable" languages that are not only recursively enumerable, but are accepted by a TM that always halts, regardless of whether or not it accepts.
Therefore recursive languages are associated to total recursive functions, not partial.
Hope this answers both the questions.
EDIT: to answer the comment:
On the one hand, the reason lies on intuition: the Church-Turing thesis is about capturing the intuitive idea of "effective computability" or "things that we can actually compute". Imagine a program that, if there is a correct answer then it computes the answer, otherwise it never halts (i.e. it gives an answer only if there is an answer). Would you say that such a program computes the answer or not?
But on the other hand, if this intuitive picture doesn't convince you, consider the following (way more concrete): consider an effective enumeration $(\varphi_i)_{i\in\mathbb{N}}$ of all total recursive functions and consider the function $\varphi:=x\mapsto\varphi_x(x)+1$. Now it is clear that you can compute $\varphi$: you can find the $x$-th function, you can compute it (as it is recursive) and you can sum 1 (as sum is recursive). But $\varphi$ cannot be total by a diagonal argument: if it were total than it would have its own index $i$, therefore
$$ \varphi(i) = \varphi_i(i)+1 = \varphi(i) +1 $$
which is a contradiction. This problem vanishes if you consider instead partial functions.
Context
StackExchange Computer Science Q#64150, answer score: 6
Revisions (0)
No revisions yet.