Primitive recursive functional explained

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.

Background

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.

Definition

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

See also

References