Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Дискретная математика и теория алгоритмов. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
1 Мб
Скачать

§ 21. Универсальные функции

111

 

 

Доказательство. Пусть ( , ) — р.ф., универсальная для семейства всех 1-местных п.р.ф., которая существует в силу предложения 59. Если бы ( , ) была примитивно рекурсивной, то она была бы п.р.ф., универсальной для семейства всех 1-местных п.р.ф., что невозможно в силу предложения 57.

Существует другой известный пример рекурсивной функции, которая не является примитивно рекурсивной, — это так называемая функция Аккермана. Определение и свойства функции Аккермана можно найти в [9].

Пример. Вопрос о существовании универсальной функции можно исследовать не только для семейств всех -местных ч.р.ф., р.ф. или п.р.ф. Докажем, что существует 2-местная п.р.ф., универсальная для семейства всех полиномов от одной переменной

с натуральными коэффициентами.

 

 

 

 

 

 

 

 

 

 

Если ( ) = +

1 −1

+. . .+

+

 

— полином,

 

,

 

, то сопоставим

0+1

1+1

+1

1

 

 

0

= 2, 1

 

 

 

ему код( ) = 0

· 1

· . . .

·

, где

0

= 3, 2 = 5, . . . — перечисление

простых чисел в порядке возрастания.

Заметим, что если = код( ), то степень полинома находится с помощью функции long( ), а -й коэффициент — с помощью функции ex( , )−1.

Определим двухместную примитивно рекурсивную функцию

long( )

( , ) = (ex( , )−1) · .

=0

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

В заключение параграфа приведём сводную таблицу результатов о существовании универсальных функций для классов всех -местных п.р.ф., всех -местных р.ф. и

всех -местных ч.р.ф ( > 1).

 

Класс

Универсальная

Универсальная

Универсальная

 

 

функций

п.р.ф.

р.ф.

 

ч.р.ф.

 

 

Класс всех

 

 

 

 

 

-местных

+

 

+

 

 

п.р.ф.

 

 

 

 

 

 

 

 

 

 

 

 

 

Класс всех

 

 

 

-местных

 

 

 

р.ф.

 

 

 

 

 

 

 

 

 

 

 

 

 

Класс всех

 

 

 

 

-местных

 

+

 

 

ч.р.ф.

 

 

 

 

 

Для класса всех -местных п.р.ф. не существует

( +1)-местной универсальной

п.р.ф. в силу предложения 57.

Для класса всех -местных п.р.ф. существуют ( +1)-местные универсальные р.ф. и ч.р.ф. в силу предложения 59.

Для класса всех -местных р.ф. не существует ( +1)-местных универсальных п.р.ф. и р.ф. в силу предложения 58.

112 Глава IV. Формализации понятия вычислимой функции

Для класса всех -местных р.ф. не существует ( +1)-местной универсальной

ч.р.ф., так как в противном случае универсальная ч.р.ф. для данного класса была бы всюду определённой.

Для класса всех -местных ч.р.ф. не существует ( +1)-местных универсальных п.р.ф. и р.ф., поскольку в данном классе есть не всюду определённые функции.

Для класса всех -местных ч.р.ф. существует ( +1)-местная универсальная ч.р.ф. в силу теоремы 55.

Упражнения

1.Доказать, что не существует двухместной рекурсивной функции ( , ), универсальной для семейства всех одноместных рекурсивных функций ( ) со свойством ( ) 6 2 для всех .

2.Доказать, что существует двухместная частично рекурсивная функция ( , ), универсальная для семейства всех одноместных дробно-рациональных функций вида ( ) = ( )/ ( ), где ( ) и ( ) — многочлены от переменной с натуральными коэффициентами.

3.Доказать, что существует двухместная рекурсивная функция ( , ), универ-

сальная для семейства всех одноместных ступенчатых функций, т. е. функций

вида

 

 

 

 

 

1

,

 

0

< 6 1,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

,

 

 

6

0,

 

 

 

 

 

 

 

( ) =

. . . . . .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1,

2 <

 

1,

 

 

 

 

 

 

 

,

 

1 < ,6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

где

0

, . . . ,

 

,

0, . . . , 1

 

 

,

 

 

,

 

< 1 < . . . < 1.

 

 

 

 

 

>

1 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4. Доказать, что существует двухместная частично рекурсивная функция ( , ),

универсальная для семейства всех одноместных функций, определённых лишь в конечном числе точек, т. е. функций вида

 

 

 

 

 

( ) =

. .0.,

 

 

. .=.

0,

 

 

 

 

 

 

 

 

 

 

 

= 1,

 

 

 

 

 

 

 

1,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

не определено,

иначе,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

где

0

, . . . , −1

 

,

 

 

 

,

 

, и числа

0

, 1, . . . , −1 попарно

 

 

0, . . . , −1

 

 

 

различны.

Глава V

Теория вычислимости

Данная глава является введением в теорию вычислимости и содержит фундаментальные понятия и теоремы из нескольких, ставших уже классическими разделов этой теории. Для дальнейшего её изучения можно порекомендовать книги [2,9,12,13].

Основной результат предыдущей главы позволяет нам ввести следующее определение

Определение. Частичная функция называется частично вычислимой (ч.в.ф.), если она удовлетворяет любому из следующих двух условий:

(1)является частично рекурсивной функцией;

(2)вычислима по Тьюрингу.

Всюду определённую частично вычислимую функцию будем называть вычислимой функцией (в.ф.).

Далее мы будем использовать термин ч.в.ф., поскольку для нас теперь не имеет значения, какая из формализаций понятия вычислимой функции используется в рассуждениях.

В теории вычислимости важную роль играет введённая в предыдущей главе клиниевская нумерация для класса всех -местных частично вычислимых функций. Напомним, что её определение задаётся тождеством

( 1, . . . , ) = out(run( , in ( 1 . . . , ), [ ( , 1, . . . , , ) = 0])),

правая часть которого является ( +1)-местной ч.в.ф., универсальной для семейства всех -местных ч.в.ф.

§ 22. Теорема о параметризации

В данном параграфе мы докажем фундаментальную теорему теории вычислимости

— теорему о параметризации. Интуитивный смысл данной теоремы состоит в следующем. Если задана некоторая ч.в.ф. ( , ), переменные которой условно разделены на две группы, то к вычислению этой функции можно подойти двумя способами.

Первый способ — стандартный: мы целиком подаём на вход машины , вычисляющей , весь набор , и получаем на выходе значение ( , ).

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

114

 

 

 

 

 

 

Глава V. Теория вычислимости

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'

$

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

( , )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

&

%

 

 

 

 

6

 

 

 

 

 

 

 

 

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(

 

,

 

)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Для доказательства теоремы о параметризации нам потребуется следующая техническая лемма.

Лемма 61. Существует двухместная вычислимая функция , удовлетворяющая условию: если = 1 , = 2 , где 1 и 2 — некоторые машины Тьюринга, имеющие один и тот же внешний алфавит, то = 1 2 .

Доказательство. Пусть — код некоторой машины 1 = , { 0, . . . , }, 1, 1, 0 , а — код некоторой машины 2 = , { 0, . . . , }, 2, 1, 0 , причём 1 и 2 имеют один и тот же внешний алфавит = { 0, . . . , }. Тогда их композиция 1 2 = = , { 0, . . . , + }, , 1, 0 имеет программу

0

1,...,

= ( 1) +1

( 2) +1,..., + .

Наибольший индекс состояния машины с кодом находится с помощью вычислимой функции ( ) = ex(0, long( )), а наибольший индекс символа внешнего алфавита

— с помощью функции ( ) = ex(1, long( )). Заметим, что, в силу наших предположений, ( ) = ( ).

Тогда, используя вычислимые функции

( , , ) = ex(0, ex(2 3 , )),( , , ) = ex(1, ex(2 3 , )),( , , ) = ex(2, ex(2 3 , )),

можно представить коды и в виде

 

6

( , , )

( , , )

 

( , , )

 

( , , )

( , , )

 

( , , )

 

=

22 3 ·3

 

·5

 

, =

22 3 ·3

 

·5

 

.

 

 

 

 

 

 

 

1 6 ( )

 

 

 

 

 

16 6 ( )

 

 

 

 

 

06 6 ( )

 

 

 

 

 

06 6 ( )

 

 

 

 

 

Cледующие две вычислимые функции осуществляют замену индексов состояний

в кодах программ 1

и 2 в соответствии с определением композиции машин:

 

 

 

 

 

 

 

{ ( ) + 1,

если ( , , ) = 0,

 

 

 

 

 

 

 

 

( , , ) =

 

 

( , , ),

если ( , , ) ̸= 0,

 

 

 

 

 

 

 

 

 

 

{0,

 

 

 

 

если ( , , ) = 0.

 

 

 

( , , , ) =

( , , ) + ( ),

если ( , , )

̸= 0,

 

 

 

Тогда код композиции 1 2 вычисляется с помощью функции

 

 

 

 

6

( , , )

·3

( , , )

·5

( , , )

 

 

( , , , )

·3

( , , )

·5

( , , )

 

 

=

2

 

 

 

 

×

2

 

 

 

 

.

(*)

 

 

 

2 3

 

 

 

 

 

 

 

2 + ( )3

 

 

 

 

1 6 ( )

 

 

 

 

 

 

 

16 6 ( )

 

 

 

 

 

 

 

 

 

06 6 ( )

 

 

 

 

 

 

 

06 6 ( )

 

 

 

 

 

 

 

 

 

§ 22. Теорема о параметризации

115

 

 

Заметим, что если , не удовлетворяют условию леммы, то функция в правой части тождества (*) всё равно определена и вычисляет некоторое значение, которое нам на самом деле не важно. Поэтому можно считать, что тождество (*) определяет значения функции для произвольных натуральных , . Отсюда окончательно заключаем, что построенная вычислимая функция является искомой.

Теорема 62 (о параметризации). Для любой частично вычислимой функции( 1, . . . , , 1, . . . , ) существует вычислимая функция ( 1, . . . , ) такая, что

( 1, . . . , , 1, . . . , ) = ( 1, . . . , ).

( 1,..., )

Доказательство. Обозначим для краткости = 1, . . . , , = 1, . . . , и введём функцию ( , ), положив по определению ( , ) = ( , ). Ясно, что ( , )

— ч.в.ф. Следовательно, существует машина Тьюринга , которая её вычисляет.

Для каждого определим вспомогательную машину , которая осуществ- ляет следующее преобразование:

10 = 01 00.

Программа для 0 состоит из одной команды 10 → 00 . Если же > 1, то программа для имеет вид

10 → 2020 → 31

. . . . . .

0 → +11+10 → 01 .

Добавим в эту программу для каждого 1 6 6 + 1 фиктивную команду 1 → 00. Тогда код машины вычисляется с помощью функции

 

 

252

 

6,

 

 

 

 

 

 

 

 

 

 

 

если = 0,

( ) =

22

·

5·2

·

 

2 +1 3

·

52

3 52

·

+1

 

3

,

если

> 1.

 

2

 

=2 2

·

 

· 2· +1

=1 2

 

 

 

 

 

 

 

(

 

 

 

 

)

(

 

 

)

 

 

Зафиксируем теперь значения , считая их параметрами, и рассмотрим функцию

( ) = ( , ). Построим машину , вычисляющую ( ). Схема работы выглядит следующим образом:

 

1

01 1 0 . . . 01 0 =

01 1 0 . . . 01 0 =

01 1 0 . . . 01 01 1 1 0 =

 

 

 

 

 

 

+

 

 

 

1

 

 

 

 

 

2

 

 

 

 

 

(Б )

 

 

 

 

 

 

 

 

 

 

= 01 1 0 . . . 01 01 1 01 2 2

0 =

. . . = 01 1 0 . . . 01 01 1 0 . . . 01 0 =

 

2

 

 

 

3

 

 

 

 

 

 

 

Б

 

 

 

 

 

 

 

 

 

(

)

+

 

 

 

 

 

 

 

 

 

 

 

 

01 1 0 . . . 01 01 1 0 . . . 01 0 =

01 (

 

,

 

)0 . . . 0.

 

 

 

 

 

=

 

 

 

 

 

 

 

(Б)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(Если ( , ) не определено, то выше в схеме машина не останавливается.)

 

 

Таким образом

 

= (Б+) 1 . . . (Б) + ′. Пусть 1

= (Б+) и

 

 

 

2

=

 

(Б) +

 

 

. Лемма 61 позволяет нам вычислить код машины

 

с помощью

 

 

 

 

 

 

 

 

 

функции

( ) = 1 ( 1) . . . ( ) 2.

Поскольку функции и ( ) вычислимы, заключаем, что ( ) тоже вычислима.

По построению ( )( ) = ( ) = ( , ) = ( , ). Следовательно, функция ( ) — искомая.

116 Глава V. Теория вычислимости

В заключение параграфа мы докажем s-m-n-теорему, которая связывает нумера- ции для различных .

Следствие 63 (s-m-n-

Для любых , существует ( +1)-местная

 

теорема).

 

 

вычислимая функция ( , 1, . . . , ) такая, что

 

+

 

 

( 1, . . . , ).

 

( 1, . . . , , 1, . . . , ) = ( , 1,..., )

Доказательство. Рассмотрим ( + +1)-местную ч.в.ф. ( , , ) = + ( , ). По

теореме о параметризации существует в.ф. ( ,

 

) такая, что ( ,

 

,

 

)

=

 

 

(

 

).

 

 

 

 

 

 

 

 

 

 

 

( , )

 

 

 

Функция является искомой s-m-n-функцией.

 

 

 

 

 

 

Упражнения

1.Доказать, что существует двухместная вычислимая функция, которая по клиниевским номерам одноместных функций ( ) и ( ) вычисляет клиниевский номер их суперпозиции ( ( )).

2.Доказать, что существует одноместная вычислимая функция, которая по клиниевскому номеру одноместной функции ( ) вычисляет клиниевский номер

функции ( ), полученной из ( ) по следующей схеме:

{

(0) = 0,

( + 1) = ( ( )).

3.Доказать, что существует двухместная вычислимая функция ( , ) такая, что для любых , справедливо тождество dom( ( , )) = dom( ) ∩ dom( ).

4.Доказать, что существуют одноместные вычислимые функции ( ) и ( ) такие, что dom( ) = range( ( )) и range( ) = dom( ( )) для всех .

§23. Теорема о неподвижной точке

Теорема о неподвижной точке (другое название — теорема о рекурсии) была доказана Клини и является одним из наиболее важных результатов теории вычислимости. Её короткое доказательство использует s-m-n-теорему и на первый взгляд кажется несколько мистическим.

Теорема 64 (о неподвижной точке). Для любой частично вычислимой функции( ) существует такое, что ( ) = .

Доказательство. Рассмотрим частично вычислимую функцию ( , , ) = 2( , ), которая является универсальной для семейства всех 2-местных ч.в.ф. По s-m-n-

теореме существует вычислимая функция ( , ) такая, что

2( , ) = ( , )( ).

(*)

Функция ( ( , ))( ) является 2-местной ч.в.ф. от переменных , . Следовательно, в силу универсальности найдётся клиниевский номер такой, что

( ( , ))( ) = 2 ( , ).

(**)

говоря, какую-то другую процедуру

§ 23. Теорема о неподвижной точке

117

 

 

Из (*) и (**) при = следует, что ( ( , ))( ) = ( , )( ). Подставив в данное тождество = , получим ( ( , ))( ) = ( , )( ). Отсюда видно, что натуральное число = ( , ) является искомым.

Функцию ( ) из теоремы о неподвижной точке можно неформально представлять как эффективный преобразователь программ, который любую программу , реализующую процедуру , перерабатывает в программу ( ), реализующую, вообще

( ). Интуитивный смысл теоремы о неподвижной точке заключается в том, что для любого такого преобразователя найдётся хотя бы одна процедура , которая не изменяется под его действием, т. е. ( ) = .

Другими словами, у любого такого преобразователя найдётся неподвижная точкапроцедура.

0

-

 

-

(0)

-

преобра-

-

1

(1)

 

 

.

 

зователь

.

-

 

 

 

-

( ) =

 

 

 

.

 

 

.

Замечание. Теорема о неподвижной точке допускает следующее обобщение с параметрами : для любой частично вычислимой функции ( , ) существует вычисли-

мая функция ( ) такая, что ( , ( )) = ( ). Доказывается данное обобщение так же, как и теорема о неподвижной точке в классической формулировке.

Пример. В программировании известна популярная задача-головоломка о написании программ, воспроизводящих свой собственный текст (такие программы называют словом «quine»).

Оказывается, существование подобных программ близко связано с теоремой о неподвижной точке. В определённом смысле, если для языка программирования справедлива теорема о параметризации, то можно написать программу на данном языке, которая выводит свой собственный код.

Докажем существование подобной программы для языка машин Тьюринга, т. е. необходимо показать, что существует программа с кодом , которая после запуска всегда останавливается и выдаёт (в качестве выходного значения на ленте) свой собственный код . Для этого рассмотрим вычислимую функцию ( , ) = и применим

к ней теорему о параметризации — получим некоторую вычислимую функцию ( )

такую, что ( , ) = ( )( ). Далее используем теорему о неподвижной точке для функции ( ) — получим число такое, что = ( ). Из доказательства тео- ремы о неподвижной точке видно, что = ( , ) для некоторой s-m-n-функции ,

а из доказательства теоремы о параметризации вытекает, что любая s-m-n-функция всегда в качестве своих значений выдает коды некоторых программ. Отсюда заклю-

чаем, что найденное является кодом программы, и программа с кодом вычисляет функцию

( ) = ( )( ) = ( , ) = ,

т. е. выдаёт свой собственный код .

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

118

Глава V. Теория вычислимости

 

 

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

Определение. Множество называется вычислимым, если его характеристическая функция ( 1, . . . , ) является вычислимой.

Теорема 65 (теорема Райса). Пусть — произвольное семейство одноместных ч.в.ф. такое, что ̸= ? и не совпадает с семейством всех одноместных ч.в.ф. Тогда множество { | } всех клиниевских номеров функций, принадлежащих семейству , невычислимо.

Доказательство. Допустим, напротив, множество = { | } вычислимо, т. е. вычислимой является его характеристическая функция

{

1, если ,

( ) = 0, если / .

Так как ̸= ? и ̸= { | — 1-местная ч.в.ф.}, то найдутся , такие, чтои / . Определим функцию

{

( ) = , если ,

, если / .

В силу предложения 43, функция ( ) вычислима. По теореме о неподвижной точке существует такое, что ( ) = . Тогда имеет место следующая цепочка эквивалентностей (вторая эквивалентность следует из выбора и , а третья — из определения функции ( )):

( ) ( ) = / / .

Противоречие. Следовательно, сделанное нами предположение о вычислимости множества { | } неверно.

Пример. Пусть ( ) — произвольная одноместная ч.в.ф. Рассмотрим одноэлементное семейство функций = { }. Оно удовлетворяет условиям теоремы Райса, следовательно, множество = { | = } не вычислимо. Заметим, что множество

— это в точности множество всех клиниевских номеров функции . Таким образом,

из теоремы Райса следует, что множество всех клиниевских номеров фиксированной ч.в.ф. не вычислимо. В частности, любая ч.в.ф. имеет бесконечно много клиниевских номеров (поскольку, очевидно, любое конечное множество вычислимо).

Упражнения

1.Доказать, что существует такое, что ( ) = { }( ).

2.Доказать, что существует такое, что ( 2019) = 2018.

3.Доказать, что существуют , такие, что делит и ( ) = / .

4.Доказать, что существуют , такие, что ( ) = + и ( ) = · .

§ 24. Вычислимо перечислимые множества

119

 

 

5.Доказать, что существует такое, что dom( ) = {0, , 2 , 3 , . . . }.

6.Доказать, что существует такое, что dom( ) = {1, , 2, 3, . . . }.

7.Доказать, что множество { | — константа} не является вычислимым.

8.Доказать, что множество { , 2 | = } не является вычислимым.

9.Доказать, что множество { , 2 | dom( ) = dom( )} невычислимо.

§24. Вычислимо перечислимые множества

В этом параграфе мы введём понятие вычислимо перечислимого множества (сокращённо в.п. множества) и изучим некоторые свойства таких множеств. С интуитивной точки зрения множество является вычислимо перечислимым, если существует алгоритм эффективного перечисления всех его элементов. При этом мы допускаем, что это перечисление может иметь повторения и не обязано быть перечислением в каком-то строго определённом порядке.

Определение. Пусть > 1. Множество называется вычислимо перечис- лимым (в.п.), если = ? или = { 1( ), . . . , ( ) | } для некоторых вычислимых функций 1( ), . . . , ( ).

Другими словами, вычислимые функции 1, . . . , покоординатно перечисляют множество . В случае = 1 определение выглядит проще: множество явля-

ется в.п. тогда и только тогда, когда = ? или = range( ) для некоторой вычислимой функции ( ). Введённое определение является формальным описанием ин-

туитивного понятия перечислимости. Однако существует несколько эквивалентных описаний в.п. множеств, каждое из которых оказывается полезным при изучении тех или иных свойств в.п. множеств.

Теорема 66 (об эквивалентных определениях в.п. множеств) .

Для произвольного множества следующие условия эквивалентны:

(1)вычислимо перечислимо.

(2)Существует вычислимое отношение +1 такое, что

1, . . . , ( 1, . . . , , ).

(3) Существует ч.в.ф. ( 1, . . . , ) такая, что = dom( ).

Доказательство. Докажем справедливость импликации (1) (2). Если = ?, то вычислимое множество = ?, очевидно, удовлетворяет условию (2). Если же ̸= ? и = { 1( ), . . . , ( ) | }, где 1, . . . , — вычислимые функции, то имеет

место эквивалентность

(

)

 

Тогда множество

, . . . ,

является иско-

1

1( ) = 1 & . . . & ( ) = .

 

 

= { 1, . . . , , | 1( ) = 1 & . . . & ( ) = }

 

мым ( +1)-местным вычислимым отношением.

 

 

Теперь докажем импликацию (2) (3). Пусть +1 — вычислимое отношение такое, что является его проекцией (см. рисунок), т. е. имеет место эквивалентность

( , ).

120

Глава V. Теория вычислимости

 

 

6 ' $

&" !%

-

Определим частичную -местную функцию ( ) = [ ( , )]. Так как вычислимо, то ( ) — ч.в.ф. Кроме этого, имеет место

( ) ↓ ( , ) .

Другими словами, dom( ) = .

Докажем импликацию (3) (1). Если = ?, то доказывать нечего. Пусть ̸= ?. Следовательно, найдётся кортеж = 1, . . . , . По условию = dom( ) для некоторой ч.в.ф. . Тогда вычислима на некоторой машине Тьюринга с кодом и по теореме об универсальной ч.р.ф.

( ) = out(run( , in ( ), [ ( , , ) = 0])).

Для каждого {1, . . . , } определим 1-местную вычислимую функцию

( ) =

{ ,

если ( , ex(1, ), . . . , ex( , ), ex(0, )) = 0.

 

ex( , ),

если ( , ex(1, ), . . . , ex( , ), ex(0, )) = 0,

 

 

̸

В силу предложения 43, функции 1, . . . , вычислимы.

Покажем, что набор функций 1, . . . , — искомый, т. е. = { 1( ), . . . , ( ) |

}. Для этого докажем сначала включение { 1( ), . . . , ( ) | }. Пусть = 1, . . . , . Тогда ( ) = out(run( , in ( ), [ ( , , ) = 0])) опре-

делено. Таким образом, значение [ ( , , ) = 0] определено. Следовательно, су-

ществует такой, что ( ,

 

, ) = 0. Положим

= 0

· 11

· . . . · . Тогда

 

( , ex(1, ), . . . , ex( , ), ex(0, )) = 0, и значит, ( ) =

ex( , ) =

для каждого

{1, . . . , }. Таким образом,

 

{ 1( ), . . . , ( ) | }.

 

 

 

 

 

Докажем обратное включение { 1( ), . . . , ( ) | } . Рассмотрим произвольный набор 1( ), . . . , ( ) , где . Если ( , ex(1, ), . . . , ex( , ), ex(0, ))̸=0, то 1( ), . . . , ( ) = и всё доказано. Пусть теперь справедливо равенство( , ex(1, ), . . . , ex( , ), ex(0, )) = 0. Тогда, в силу предложения 51, машина с кодом , начав работу на входном машинном слове 101ex(1, )0 . . . 01ex( , )0 и проделав ex(0, ) шагов, переходит в состояние 0. Так как данная машина вычисляет функцию , заключаем, что значение (ex(1, ), . . . , ex( , )) определено. Следовательно, кортеж 1( ), . . . , ( ) = ex(1, ), . . . , ex( , ) dom( ) = .

Выясним теперь, как соотносятся между собой семейство всех в.п. множеств и семейство всех вычислимых множеств.

Предложение 67. Если вычислимо, то вычислимо перечислимо.

Доказательство. Пусть вычислимо, следовательно, функция ( 1, . . . , ) вычислима. Определим частичную функцию ( ) = [| ( ) − 1| = 0]. Тогда —

ч.в.ф. и dom( ) = . Следовательно, в силу пункта (3) теоремы 66 является в.п. множеством.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]