В теории вычислимости предикат T , впервые изученный математиком Стивеном Коулом Клини , представляет собой особый набор троек натуральных чисел , который используется для представления вычислимых функций в рамках формальных теорий арифметики . Неформально предикат T сообщает, остановится ли конкретная компьютерная программа при запуске с определенным вводом, а соответствующая функция U используется для получения результатов вычислений, если программа останавливается. Как и в случае с теоремой s mn, исходная нотация, использованная Клини, стала стандартной терминологией для этой концепции. [1]
Определение зависит от подходящей нумерации Гёделя , которая присваивает натуральные числа вычислимым функциям (данным как машины Тьюринга ). Эта нумерация должна быть достаточно эффективной, чтобы при заданном индексе вычислимой функции и входных данных функции можно было эффективно моделировать вычисление функции на этих входных данных. Предикат получается путем формализации этой симуляции.
Тернарное отношение принимает в качестве аргументов три натуральных числа. имеет значение true, если кодирует историю вычислений вычислимой функции с индексом при запуске с input , и программа останавливается на последнем шаге этой истории вычислений. То есть,
Если на все три вопроса есть положительный ответ, то истина, в противном случае — ложь.
Предикат является примитивно-рекурсивным в том смысле, что существует примитивно-рекурсивная функция, которая, учитывая входные данные для предиката, правильно определяет значение истинности предиката на этих входных данных.
Существует соответствующая примитивно-рекурсивная функция , которая, если она истинна, возвращает результат функции с индексом на входе .