Primitive recursive arithmetic

From Wikipedia, the free encyclopedia
Jump to: navigation, search

Primitive recursive arithmetic, or PRA, is a quantifier-free formalization of the natural numbers. It was first proposed by Skolem[1] as a formalization of his finitist conception of the foundations of arithmetic, and it is widely agreed that all reasoning of PRA is finitist. Many also believe that all of finitism is captured by PRA,[2] but others believe finitism can be extended to forms of recursion beyond primitive recursion, up to ε0,[3] which is the proof-theoretic ordinal of Peano arithmetic. PRA's proof theoretic ordinal is ωω, where ω is the smallest transfinite ordinal. PRA is sometimes called Skolem arithmetic.

The language of PRA can express arithmetic propositions involving natural numbers and any primitive recursive function, including the operations of addition, multiplication, and exponentiation. PRA cannot explicitly quantify over the domain of natural numbers. PRA is often taken as the basic metamathematical formal system for proof theory, in particular for consistency proofs such as Gentzen's consistency proof of first-order arithmetic.

Language and axioms[edit]

The language of PRA consists of:

The logical axioms of PRA are the:

The logical rules of PRA are modus ponens and variable substitution.
The non-logical axioms are:

  • S(x) \ne 0;
  • S(x)=S(y) ~\to~ x=y,

and recursive defining equations for every primitive recursive function as desired. For instance, the most common characterization of the primitive recursive functions is as the 0 constant and successor function closed under projection, composition and primitive recursion. So for a (n+1)-place function f defined by primitive recursion over a n-place base function g and (n+2)-place iteration function h there would be the defining equations:

  • f(0,y_1,\ldots,y_n) = g(y_1,\ldots,y_n)
  • f(S(x),y_1,\ldots,y_n) = h(x,f(x,y_1,\ldots,y_n),y_1,\ldots,y_n)


  • x+0 = x\
  • x+S(y) = S(x+y)\
  • x \cdot 0 = 0\
  • x \cdot S(y) = x \cdot y + x\
  • ... and so on.

PRA replaces the axiom schema of induction for first-order arithmetic with the rule of (quantifier-free) induction:

  • From \varphi(0) and \varphi(x)\to\varphi(S(x)), deduce \varphi(y), for any predicate \varphi.

In first-order arithmetic, the only primitive recursive functions that need to be explicitly axiomatized are addition and multiplication. All other primitive recursive predicates can be defined using these two primitive recursive functions and quantification over all natural numbers. Defining primitive recursive functions in this manner is not possible in PRA, because it lacks quantifiers.

Logic-free calculus[edit]

It is possible to formalise PRA in such a way that it has no logical connectives at all - a sentence of PRA is just an equation between two terms. In this setting a term is a primitive recursive function of zero or more variables. In 1941 Haskell Curry gave the first such system.[4] The rule of induction in Curry's system was unusual. A later refinement was given by Reuben Goodstein.[5] The rule of induction in Goodstein's system is:

{F(0) = G(0) \quad F(S(x)) = H(x,F(x)) \quad G(S(x)) = H(x,G(x)) \over F(x) = G(x)}.

Here x is a variable, S is the successor operation, and F, G, and H are any primitive recursive functions which may have parameters other than the ones shown. The only other inference rules of Goodstein's system are substitution rules, as follows:

{F(x) = G(x) \over F(A) = G(A)} \qquad {A = B \over F(A) = F(B)} \qquad {A = B \quad A = C \over B = C}.

Here A, B, and C are any terms (primitive recursive functions of zero or more variables). Finally, there are symbols for any primitive recursive functions with corresponding defining equations, as in Skolem's system above.

In this way the propositional calculus can be discarded entirely. Logical operators can be expressed entirely arithmetically, for instance, the absolute value of the difference of two numbers can be defined by primitive recursion:

P(0) = 0 \quad & \quad P(S(x)) = x \\ 
x \dot - 0 = x \quad & \quad x \dot - S(y) = P(x \dot - y) \\
|x - y| = & (x \dot - y) + (y \dot - x). \\

Thus, the equations x=y and |x-y|=0 are equivalent. Therefore the equations |x - y| + |u - v| = 0 \! and |x - y| \cdot |u - v| = 0 \! express the logical conjunction and disjunction, respectively, of the equations x=y and u=v. Negation can be expressed as 1 \dot - |x - y| = 0.

See also[edit]


  1. ^ Thoralf Skolem (1923) "The foundations of elementary arithmetic" in Jean van Heijenoort, translator and ed. (1967) From Frege to Gödel: A Source Book in Mathematical Logic, 1879-1931. Harvard Univ. Press: 302-33.
  2. ^ Tait, W.W. (1981), "Finitism", Journal of Philosophy 78:524-46.
  3. ^ Georg Kreisel (1958) "Ordinal Logics and the Characterization of Informal Notions of Proof," Proc. Internat. Cong. Mathematicians: 289-99.
  4. ^ Haskell Curry, A Formalization of Recursive Arithmetic. American Journal of Mathematics, vol 63 no 2 (1941) pp 263-282
  5. ^ Reuben Goodstein, Logic-free formalisations of recursive arithmetic, Mathematica Scandinavica vol 2 (1954) pp 247-261
  • Rose, H.E., "On the consistency and undecidability of recursive arithmetic", Zeitschrift für mathematische Logik und Grundlagen der Mathematick Volume 7, pp. 124–135.

External links[edit]