Определение 1. Ф-я наз-ся вычислимой по Тьюрингу, если существует машина Тьюринга, вычисляющая ее, т.е. такая машина Тьюринга, которая вычисляет ее значения для тех наборов значений аргументов, для которых функция определена, и работающая вечно, если функция для данного набора значений аргументов не определена.
Остается договориться о некоторых условностях для того, чтобы это определение стало до конца точным. Во-первых, напомним, что речь идет о функциях (или возможно о частичных функциях, т. е. не всюду определенных), заданных на множестве натуральных чисел и принимающих также натуральные значения. Во-вторых, нужно условиться, как записывать на ленте машины Тьюринга значения х1,, х2, ..., хпаргументов функции f(x1, x2, ..., хп), из какого положения начинать переработку исходного слова и, наконец, в каком положении получать значение функции. Это можно делать, например, следующим образом. Значения х1,, х2, ..., хпаргументов будем располагать на ленте в виде следующего слова:
Здесь полезно ввести следующие обозначения. Для натурального х обозначаем:
Iх = , 0х = .
Дополнительно полагаем 0° = 1° = Ù — пустое слово. Так что на слова 1° = Ù, I1 = 1, I2 = 11, I3 = 111, ... будем смотреть как на «изображения» натуральных чисел 0, 1, 2, 3, ... соответственно.
Таким образом, предыдущее слово можно представить следующим образом: .Далее, начинать переработку данного слова будем из стандартного начального положения, т.е. из положения, при котором в состоянии q1обозревается крайняя правая единица записанного слова. Если ф-я f(x1, x2,..., хп) определена на данном наборе значений аргументов, то в результате на ленте должно быть записано подряд f(x1, x2, ..., хп) единиц; в противном случае машина должна работать бесконечно. При выполнении всех перечисленных условий будем говорить, что машина Тьюринга вычисляет данную функцию. Таким образом, сформулированное определение 1 становится абсолютно строгим.
Сконструировать машину Тьюринга — значит написать (составить) ее программу. В этом процессе два этапа: сначала создается алгоритм вычисления значений функции, а затем он записывается на языке машины Тьюринга (программируется).