
In mathematical logic, the primitive recursive functionals are a generalization of primitive recursive functions into higher type theory. They consist of a collection of functions in all pure finite types.
The primitive recursive functionals are important in proof theory and constructive mathematics. They are a central part of the Dialectica interpretation of intuitionistic arithmetic developed by Kurt GΓΆdel.
In recursion theory, the primitive recursive functionals are an example of higher-type computability, as primitive recursive functions are examples of Turing computability.
Every primitive recursive functional has a type, which says what kind of inputs it takes and what kind of output it produces. An object of type 0 is simply a natural number; it can also be viewed as a constant function that takes no input and returns an output in the set N of natural numbers.
For any two types Ο and Ο, the type ΟβΟ represents a function that takes an input of type Ο and returns an output of type Ο. Thus the function f(n) = n+1 is of type 0β0. The types (0β0)β0 and 0β(0β0) are different; by convention, the notation 0β0β0 refers to 0β(0β0). In the jargon of type theory, objects of type 0β0 are called functions and objects that take inputs of type other than 0 are called functionals.
For any two types Ο and Ο, the type ΟΓΟ represents an ordered pair, the first element of which has type Ο and the second element of which has type Ο. For example, consider the functional A takes as inputs a function f from N to N, and a natural number n, and returns f(n). Then A has type (0 Γ (0β0))β0. This type can also be written as 0β(0β0)β0, by currying.
The set of (pure) finite types is the smallest collection of types that includes 0 and is closed under the operations of Γ and β. A superscript is used to indicate that a variable xΟ is assumed to have a certain type Ο; the superscript may be omitted when the type is clear from context.
The primitive recursive functionals are the smallest collection of objects of finite type such that:
S(rΟβΟβΟ,sΟβΟ, tΟ) = (r(t))(s(t))
is a primitive recursive functional
R(f,g)(0) = f,
R(f,g)(n+1) = g(n,R(f,g)(n))
is a primitive recursive functional