PR (complexity): Difference between revisions
No edit summary |
|||
Line 4: | Line 4: | ||
The [[Ackermann function]] is an example of a function that is ''not'' primitive recursive, showing that '''PR''' is strictly contained in '''[[R (complexity)|R]]'''. |
The [[Ackermann function]] is an example of a function that is ''not'' primitive recursive, showing that '''PR''' is strictly contained in '''[[R (complexity)|R]]'''. |
||
'''PR''' functions can be explicitly enumerated, whereas not all functions '''R''' can be. |
'''PR''' functions can be explicitly enumerated, whereas not all functions '''R''' can be. This shows that '''PR''' has a ''syntactic'' definition, whereas '''R''' lacks one. |
||
On the other hand, we can "enumerate" any [[recursively enumerable set]] (see also its complexity class '''[[RE (complexity)|RE]]''') by a primitive-recursive function in the following sense: given an input (''M'', ''k''), where ''M'' is a Turing machine and ''k'' is an integer, if ''M'' halts within ''k'' steps then output ''M''; otherwise output nothing. Then the union of the outputs, over all possible inputs (''M'', ''k''), is exactly the set of ''M'' that halt. |
On the other hand, we can "enumerate" any [[recursively enumerable set]] (see also its complexity class '''[[RE (complexity)|RE]]''') by a primitive-recursive function in the following sense: given an input (''M'', ''k''), where ''M'' is a Turing machine and ''k'' is an integer, if ''M'' halts within ''k'' steps then output ''M''; otherwise output nothing. Then the union of the outputs, over all possible inputs (''M'', ''k''), is exactly the set of ''M'' that halt. |
||
'''PR''' strictly contains [[ELEMENTARY]]. |
'''PR''' strictly contains '''[[ELEMENTARY]]'''. |
||
==References== |
==References== |
Revision as of 10:51, 16 March 2013
This article needs additional citations for verification. (August 2012) |
PR is the complexity class of all primitive recursive functions – or, equivalently, the set of all formal languages that can be decided by such a function. This includes addition, multiplication, exponentiation, tetration, etc.
The Ackermann function is an example of a function that is not primitive recursive, showing that PR is strictly contained in R.
PR functions can be explicitly enumerated, whereas not all functions R can be. This shows that PR has a syntactic definition, whereas R lacks one.
On the other hand, we can "enumerate" any recursively enumerable set (see also its complexity class RE) by a primitive-recursive function in the following sense: given an input (M, k), where M is a Turing machine and k is an integer, if M halts within k steps then output M; otherwise output nothing. Then the union of the outputs, over all possible inputs (M, k), is exactly the set of M that halt.
PR strictly contains ELEMENTARY.