PR (complexity)


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.
On the other hand, we can "enumerate" any recursively enumerable set by a primitive-recursive function in the following sense: given an input, 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, is exactly the set of M that halt.
PR strictly contains ELEMENTARY.
PR does not contain "PR-complete" problems. In practice, many problems that are not in PR but just beyond are -complete.