Primitive recursive functions are a class of functions which, while a subset of the recursive
functions (which themselves are exactly those functions
which we call "computable"), are an important building block
on the way to a full formalization of computability.
Primitive recursive functions are functions from natural numbers to natural numbers, defined as follows (from here on we will write "p.r." for primitive recursive):
Take as axioms the initial set of numbers and functions:
- The constant 0 is p.r.
- The "successor function" S is p.r.
- The "projection functions" Pin are p.r.
Where the "successor function" takes the number k and returns the number
one greater than k on the natural number line, and the "projection
functions" Pin take n arguments and return the ith one.
Now consider the following operations:
- Given f a k-ary p.r. function and k l-ary functions g0,...,gk-1 p.r. functions, the composition of f with g0,...,gk-1 is p.r., i.e. the function h(x0,...,x1)=f(g0(x0,...,x1),...,gk-1(x0,...,xl-1)) is p.r.
- Given f a k-ary p.r. function and g a (k+2)-ary p.r. function, then the (k+1)-ary function defined as the primitive recursion of f and g is p.r., i.e. the function h where h(0,x0,...,xk-1)=f(x0,...,xk-1) and h(n+1,x0,...,xk-1)=g(n,h(n,x0,...,xk-1),x0,xk-1)) is p.r.
The closure of the operations over the initial set of numbers and functions forms the set of p.r. functions.
(Note that the projection functions allow us to get around the apparent rigidity in terms of the arity of the functions above, as via composition we can pass any subset of the arguments.)
Example P.R. definitions
- addition
- subtraction
- exponentiation
(need actual definitions)
P.R. functions are a subset of the recursive functions
(need outline of proof/explanation)