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<sup>ÃÂ</sup> 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: