Примитивно рекурсивный функционал

Материал из testwiki
Перейти к навигации Перейти к поиску

Примитивно рекурсивный функционал (Шаблон:Lang-en) — обобщение понятия примитивно рекурсивной функции на многомерную теорию типов.

Примитивно рекурсивные функционалы играют важную роль в теории доказательств и конструктивной математике и составляют ядро гедёлевской «диалектической» интерпретации интуиционистской арифметики.

С токи зрения теории вычислимости, примитивно рекурсивные функционалы представляет собой пример вычислимости в типах высших размерностей, а обыкновенные примитивно рекурсивные функции — вычислимости по Тьюрингу.

Общие сведения

Каждый примитивно рекурсивный функционал имеет тип, указывающий, что функционал получает на вход, и что производит в качестве результата. Тип 0 имеют натуральные числа; их можно трактовать как константные функции без аргументов со значением из множества (множества натуральных чисел).

Если σ и τ — типы, то тип στ имеют функции с аргументом типа σ и результатом типа τ. Таким образом, функция f:xx+1 имеет тип 00. Типы (00)0 и 0(00) различны; запись 000 обозначает 0(00). На жаргоне теории типов, объект «стрелочного» типа σ0 называется функцией, если тип его аргумента 0, и функционалом в противном случае.

Из двух типов σ и τ можно построить σ×τ — тип упорядоченных пар, в которых первый компонент имеет тип σ, а второй — тип τ. Например, рассмотрим функционал A, который принимает на вход натуральное число n и функцию f из в , и возвращает f(n). Тогда A имеет тип (0×(00))0; с помощью каррирования этот тип можно записать как 0(00)0.

Множество (чистых) конечных типов  — это наименьшее множество, содержащее 0 и замкнутое относительно операций и ×. Верхний индекс над переменной (например, xσ) означает предположение о типе этой переменной (т.е. предположение, что x:σ). В случае, когда тип ясен из контекста, индекс может быть опущен.

Определение

Множество примитивно рекурсивных функционалов определяется индуктивно как наименьшее множество объектов конечного типа, содержащее:

  • Константу 𝟢 типа 0.
  • Функцию инкремента 𝖭:00 с семантикой 𝖭(x)=x+1; часто обозначается также 𝖲𝖼 или просто штрихом (x).
  • 𝖪στ:στσ — набор комбинаторов постоянных функций для всевозможных типов σ и τ; 𝖪στ(xσ,yτ)=x.
  • 𝖲ρστ:(ρστ)(ρσ)ρτ — набор комбинаторов «совместного применения»; 𝖲(f,g,x)=f(x,g(x)).
  • 𝖱τ:τ(0ττ)0τ — операторы примитивной рекурсии;{𝖱(f,g)(𝟢)=f𝖱(f,g)(𝖭(x))=g(x,𝖱(f,g)(x)).
  • Композицию s(t):σ примитивно рекурсивных функционалов sτσ и tτ.

См. также

Литература