En lógica matemática , las funciones recursivas primitivas son una generalización de las funciones recursivas primitivas en la teoría de tipos superior . Consisten en una colección de funciones de todos los tipos finitos puros.
Las funciones recursivas primitivas son importantes en la teoría de la demostración y en las matemáticas constructivas . Son una parte central de la interpretación dialéctica de la aritmética intuicionista desarrollada por Kurt Gödel .
En la teoría de la recursión , las funcionales recursivas primitivas son un ejemplo de computabilidad de tipo superior, así como las funciones recursivas primitivas son ejemplos de computabilidad de Turing.
Cada función recursiva primitiva tiene un tipo, que indica qué tipo de entradas acepta y qué tipo de salida produce. Un objeto de tipo 0 es simplemente un número natural; también puede verse como una función constante que no acepta ninguna entrada y devuelve una salida en el conjunto N de números naturales.
Para dos tipos cualesquiera σ y τ, el tipo σ→τ representa una función que toma una entrada de tipo σ y devuelve una salida de tipo τ. Por lo tanto, la función f ( n ) = n +1 es de tipo 0→0. Los tipos (0→0)→0 y 0→(0→0) son diferentes; por convención, la notación 0→0→0 se refiere a 0→(0→0). En la jerga de la teoría de tipos, los objetos de tipo 0→0 se denominan funciones y los objetos que toman entradas de tipo distinto de 0 se denominan funcionales .
Para dos tipos cualesquiera σ y τ, el tipo σ×τ representa un par ordenado, cuyo primer elemento tiene tipo σ y cuyo segundo elemento tiene tipo τ. Por ejemplo, considere la función A que toma como entradas una función f de N a N , y un número natural n , y devuelve f ( n ). Entonces A tiene tipo (0 × (0→0))→0. Este tipo también se puede escribir como 0→(0→0)→0, mediante Currying .
El conjunto de tipos finitos (puros) es la colección más pequeña de tipos que incluye 0 y está cerrado bajo las operaciones de × y →. Se utiliza un superíndice para indicar que se supone que una variable x τ tiene un cierto tipo τ; el superíndice puede omitirse cuando el tipo se desprende claramente del contexto.
Las funciones recursivas primitivas son la colección más pequeña de objetos de tipo finito tales que: