Вы находитесь на странице: 1из 64

Е. А.

Леснова

МАТЕМАТИЧЕСКАЯ ЛОГИКА
Шпаргалка
Публикуется с разрешения правообладателя:
Литературного агентства «Научная книга»

Заведующая редакцией: Елистратова М. В.


Выпускающий редактор: Юрова Д. А.
Корректор: Гончарова Л. М.

Леснова Е. А.
МАТЕМАТИЧЕСКАЯ ЛОГИКА
ШПАРГАЛКА, с. 64

Предлагаемая нами шпаргалка по курсу «Математическая логика» предназначена для студентов технических
специальностей средних и высших учебных заведений. Материал, содержащийся в книге, подобран таким об8
разом, чтобы студент мог без труда подготовиться к экзамену или зачету и успешно сдать его.
Содержание

1. Чем занимается и что изучает математическая логика.


Высказывания. Логические связки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
2. Логические операции над высказываниями: отрицание,
дизъюнкция, конъюнкция, импликация . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
3. Эквиваленция. Примеры операций над высказываниями . . . . . . . . . . . . . . . .7
4. Предикаты. Логические операции над предикатами . . . . . . . . . . . . . . . . . . . . .7
5. Понятие формулы логики предикатов, значения и равносильность.
Логические следования . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
6. Общезначимость формул логики предикатов . . . . . . . . . . . . . . . . . . . . . . . . . . .9
7. Неклассические логики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
8. Модальная логика . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
9. Категорические высказывания. Суть категорических высказываний . . . . . .13
10. Тавтологии. Аксиомы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13
11. Теорема дедукции. Следствие из теоремы дедукции.
Метод дедукции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15
12. Четыре случая из метода дедукции.
Начальное понятие вывода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15
13. Два правила вывода. Аксиомы логики высказываний.
Принцип резолюции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17
14. Доказательство некоторых законов логики . . . . . . . . . . . . . . . . . . . . . . . . . . .17
15. Доказательство некоторых логических следствий . . . . . . . . . . . . . . . . . . . . .19
16. Проблемы непротиворечивости, полноты,
разрешимости теории . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19

34. Машины с оракулом. Вычислимость с оракулом . . . . . . . . . . . . . . . . . . . . . . .37


35. Частичная функция, вычислимая относительно
всюду определенных функций. Относительная вычислимость . . . . . . . . . . . . . .39
36. Оценка скорости роста. Функция Аккермана . . . . . . . . . . . . . . . . . . . . . . . . . .39
37. Вычислимые функции. Разрешимые множества.
Перечислимые неотделимые множества . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
38. Перечислимые неразрешимые множества.
Перечислимость и вычислимость . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
39. Универсальные функции. Диагональная конструкция . . . . . . . . . . . . . . . . . .43
40. Простые множества: конструкция Поста . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43
41. Главные универсальные функции.
Теорема . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45
42. Вычислимые последовательности вычислимых функций.
Главные универсальные множества . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45
43. Предваренные нормальные формы
(лемма и предложение) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47
44. Нормальная форма Сколема. Правило С . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47
45. Теорема Геделя о полноте . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49
46. Теория первого порядка с равенством . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49
47. Понятие относительного алгоритма,
или алгоритма с оракулом . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51
48. Аксиома универсальной функции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51
49. Влияние теории алгоритмов на алгоритмическую практику
(формализация алгоритма, алгоритмические проблемы в математике) . . . . .53
50. Вычислительные и порождающие модели.
Смешанные вычисления . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53

3
17. Понятие алгоритма и его характерные черты.
Характеристики сложности алгоритмов.
Примеры простых алгоритмов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21
18. Конечные детерминированные автоматы . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21
19. Вероятностные алгоритмы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23
20. Два подхода меры сложности алгоритма.
Расчет трудоемкости алгоритма и временные оценки . . . . . . . . . . . . . . . . . . . . .23
21. Метод прямого определения среднего времени.
Классификация алгоритмов по виду функции трудоемкости . . . . . . . . . . . . . . .25
22. Разрешимые и перечислимые множества . . . . . . . . . . . . . . . . . . . . . . . . . . . .25
23. Уточнение понятия алгоритма . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27
24. Алгоритмическая разрешимость. Вычислимые функции . . . . . . . . . . . . . . .27
25. Машина Тьюринга. Реализация алгоритма в машине
Тьюринга . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29
26. Нормальные алгоритмы Маркова . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29
27. Неразрешимые алгоритмические проблемы.
Проблемы распознавания, эквивалентности . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31
28. Метод резолюций и его сравнение с методом
естественного вывода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31
29. Сколемизация и сколемовские функции.
Теорема Эрбрана, первая и вторая формы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33
30. Теорема об унификации . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33
31. Рекурсивные функции. Примитивно8рекурсивные функции.
Оператор минимизации . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35
32. Тезис Черча. Примитивно8рекурсивные множества . . . . . . . . . . . . . . . . . . . .35
33. Частично8рекурсивные функции. Другие виды рекурсии . . . . . . . . . . . . . . .37

51. Счетные множества . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55


52. Сложные и сложносокращенные виды силлогизма.
Условные и условно8категорические силлогизмы . . . . . . . . . . . . . . . . . . . . . . . .55
53. Виды разделительных силлогизмов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57
54. Определение счетных множеств . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57
55. Метод цифр . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59
56. Канторовский диагональный метод . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59
57. Трансцендентные действительные числа . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61
58. Абстрактные множества . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61
59. Индукция. Научная индукция.
Индукция по мнению Ф. Бэкона . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63
60. Структура доказательства. Виды доказательства . . . . . . . . . . . . . . . . . . . . . .63

4
1а 1. Чем занимается и что изучает математическая логика.
Высказывания. Логические связки
Логика изучает мышление. Есть и другие науки, которые имеют его своим предметом исследования, на8
пример психология и физиология. Однако в логической науке мышлением интересуются лишь постольку,
поскольку оно занимается рассуждением, доказательством, обоснованием своих утверждений и выводов.
Она, таким образом, является наукой о законах мышления. Ее называют также наукой о выводном знании,
наукой о доказательствах. Логика исследует сцепление мыслей между собой, их необходимые связи: обя8
зательность, непреложность следования выводов из каких8либо суждений или, наоборот, несовмести8
мость тех или иных высказываний.
Важную роль в логике играет понятие формы мышления. Логику можно даже называть наукой о формах
мысли. Нельзя объяснить в нескольких словах, что они собой представляют.
Например, возьмем две пары таких суждений (1 и 2).
1. Некоторые розы красные. Все розы — цветы.
2. Некоторые озера соленые. Все озера — водоемы.
Можно ли сделать из них какие8либо выводы? Вдумавшись в их смысл, можно заключить, что из пары (1):
«Некоторые цветы красные», а из пары (2) — «Некоторые водоемы соленые». В целом получается два рас8
суждения; их называют умозаключениями, причем данная, взятая нами для примера разновидность их, на8
зывается в логике силлогизмом. В полном виде эти умозаключения записываются следующим образом.
1. Некоторые розы красные. Все розы — цветы.
Некоторые цветы красные.
2. Некоторые озера соленые. Все озера — водоемы.
Некоторые водоемы соленые.
В каждом из них сначала какой8то части предметов (некоторые розы, некоторые озера) приписывается
одно свойство, потом им же (но уже не части, а всем) приписывается еще одно свойство. Это позволяет де8
лать выводы о наличии связи между самими этими свойствами.
Достаточно указать, что сформулированные рассуждения по некоторым чертам сходны между собой, это
означает, что у них одинаковая форма в логическом смысле этого слова. Благодаря ей мы сможем, опира8
ясь на одну лишь интуитивно ощущаемую аналогию с предыдущими примерами, делать заключения и из
других, подобных по форме высказываний.
Для того чтобы не писать «истина» и «ложь» («true» и «false»), часто используют лишь начальные буквы эт8
их слов. А еще чаще просто 1 и 0.
Логические связки:
1) и: союзу и соответствует логическая связка конъюнкция А∧В — эта связка применяется при перево8
де на формальный язык утверждений следующего вида:

2а 2. Логические операции над высказываниями:


отрицание, дизъюнкция, конъюнкция, импликация
1. Отрицание.
Отрицанием высказывания Х называется новое высказывание, которое является истинным, если выска8
зывание Х ложно, и ложным, если высказывание_ Х истинно.
Отрицательные высказывания_ обозначаются Х , (или ¬Х) и считается «не Х» или «неверно, что Х». Логиче8
ские значения высказывания Х можно описать с помощью таблицы:
Таблицу такого вида принято называть таблицей истинности.
_
X X
0 1
1 0

Пусть Х высказывание. Так как ¬Х также является высказыванием, то можно образовать отрицание вы8
сказывания ¬Х, т.е. высказывание ¬¬Х, которое называется двойным отрицанием Х. Ясно, что логические
значения высказываний ¬¬Х и Х совпадают.
Например, для высказывания «Река Волхов вытекает из озера Ильмень» отрицанием будет высказывание
«Неверно, что река Волхов вытекает из озера Ильмень» или «Река Волхов не вытекает из озера Ильмень», а
двойным отрицанием будет высказывание «Неверно, что река Волхов не вытекает из озера Ильмень».
2. Конъюнкция (логическое умножение). Конъюнкцией двух высказываний x, y называется новое высказы8
вание, которое считается истинным, если оба высказывания x, y истинны, и ложным, если хотя бы одно
из них ложно.
Конъюнкция высказываний x, y обозначается символом х&y или (xy), читается «x и y». Выражения x, y на8
зываются членами конъюнкции. Логическое значение конъюнкции описывается следующей таблицей ис8
тинности:

x y x&y

1 1 1
1 0 0
0 1 0
0 0 0

5
1б а) т.е. А и В;
б) как А так и В;
в) А вместе с В ;
г) не только А, но и В;
д) А, хотя и В.
Утверждение А∧В истинно в том, и только в том случае, когда истины и А и В и ложно во всех остальных
случаях,
2) или: АВ — эта связка применяется при переводе на формальный язык утверждений следующего вида:
а) либо А либо В;
в) А или В или оба вместе.
Дизъюнкция высказываний считается истиной, если истинно хотя бы одно входящее в нее высказыва8
ние, ложно
_ тогда, когда оба ложны;
3) не: A отрицание — эта связка применяется при переводе на формальный язык утверждений следующе8
го вида:
не А;
а) А не верно;
б) А не может быть;
в) не А — истина;
г) А ложно;
4) если … то: А→В импликация — эта связка применяется при переводе на формальный язык утвержде8
ний следующего вида:
а) А влечет за собой В;
б) А есть достаточное условие для В;
в) В есть необходимое условие, что А;
5) тогда и только тогда А↔В эквиваленция (эквивалентность) — эта связка применяется при переводе
на формальный язык утверждений следующего вида:
а) А есть необходимое и достаточно условие для В;
б) А если только В;
г) если А, то В и обратно.

2б Например, для высказываний «6 делится на 2», «6 делится на 3» их конъюнкция будет высказыва8


ние «6 делится на 2 и 6 делится на 3», которое, очевидно, истинно.
Из определения операции конъюнкции видно, что союз «и» в алгебре логики употребляется в том же смысле,
что и в повседневной жизни. Но в обыденной речи не принято соединять союзом «и» два высказывания, дале8
ких друг от друга по содержанию, а в алгебре логики рассматривается конъюнкция двух любых высказываний.
3. Дизъюнкция (логическое сложение). Дизъюнкцией двух высказываний x, y называется новое высказы8
вание, которое считается истинным, если хотя бы одно из высказываний x, y истинно, и ложным, если
они оба ложны.
Дизъюнкция высказываний x, y обозначается символом xy, читается «x или y». Высказывания x, y называ8
ются членами дизъюнкции.

x y xy
0 0 0
0 1 1
1 0 0
1 1 1

4. Импликация. Импликацией двух высказываний x,y называется новое высказывание, которое считается
ложным, если x истинно, а y ложно, и истинным во всех остальных случаях. Импликация высказываний x,
y обозначается символом x→y ,читается «если x, то y» или «из x следует y».Высказывание x называют
условием или посылкой, высказывание y — следствием или заключением, высказывание x→y — следо8
ванием или импликацией.
x y x→y
1 1 1
1 0 0
0 1 1
0 0 1

6
3a 3. Эквиваленция. Примеры операций над высказываниями
Эквиваленция. Эквиваленцией (или эквивалентностью) двух высказываний x, y называется новое вы8
сказывание, которое считается истинным, когда оба высказывания x, y либо одновременно истины, либо
одновременно ложны, и ложным во всех остальных случаях.
Эквиваленция высказываний x, y обозначается символом xy, читается «для того, чтобы x необходимо и
достаточно, чтобы у y или x, тогда и только тогда, когда y». Высказывания x, y называются членами эквива8
ленции.
Логические значения операции эквиваленции описываются следующей таблицей истинности:
x y x→y
1 1 1
1 0 0
0 1 0
0 0 1

Эквивалентность играет важную роль в математических доказательствах. Известно, что значительное чи8
сло теорем формулируется в форме необходимых и достаточных условий, т.е. в форме эквивалентности. В
этом случае, зная об истинности или ложности одного из двух членов эквивалентности и доказав истин8
ность самой эквивалентности, мы заключаем об истинности или ложности второго члена эквивалентности.
Пример 1
А = «Я пойду в театр»
В = «Я встречу друга»
Решение
A∧B = «Я пойду в театр, хотя и встречу друга»
AB = «Либо я пойду в театр, либо я встречу друга»
¬А= «Я не пойду в театр»
A→B = «Я встречу друга при условии, что пойду в театр»
A↔B = «Я пойду в театр, если только я встречу друга»
Всякое сложное предложение, которое состоит из простых, можно представить в символической форме,
в результате получаем формулу. На каждом наборе значений переменных формула принимает некоторые
значения, значит, всякую формулу в логике высказываний можно рассматривать как функцию.

4a 4. Предикаты. Логические операции над предикатами


Логика предикатов, как и традиционная формальная логика, расчленяет элементарное высказывание
на субъект (буквально — подлежащее, хотя оно и может играть роль дополнения) и предикат (буквально —
сказуемое, хотя оно может играть и роль определения).
Субъект — это то, о чем что8то утверждается в высказывании; предикат — это то, что утверждается о
субъекте.
Предикаты делятся на два класса:
а) одноместные предикаты;
б) двуместные предикаты.
Одноместным предикатом P(x) называется произвольная функция переменного X, определяющая на
множестве М и принимающая значения множества {1,0}.
Множество М, на котором определен предикат, принимает значение «истина», называется множеством
истинности предиката P(x), т.е. множество истинности предиката P(x) — это множество Jp = {x: xM, P(x) =
1}
Двуместным предикатом P(x) называется функция двух переменных x, y, определенная на множестве
М = = ММ2 и принимающая значения из множества {1,0}.
Конъюнкцией двух предикатов P(x) и Q(x) называется новый предикат P(x)&Q(x), который принимает зна8
чение «истина» при тех и только тех значениях xM, при которых каждый из предикатов принимает значение
«истина», и принимает «ложь» во всех остальных случаях.
Очевидно, что областью истинности предиката P(x)&Q(x) является общая часть областей истинности
предикатов P(x) и Q(x), т.е. пересечение Jp∩Jq.
Дизъюнкцией двух предикатов P(x) и Q(x) называется новый предикат P(x)Q(x), который принимает зна8
чение «ложь» при тех и только тех значениях xM, при которых каждый из предикатов принимает значение
«ложь», и принимает значение «истина» во всех остальных случаях.
Отрицанием предиката P(x) называется новый предикат ¬ P(x), который принимает значения «истина»
при всех значениях xM, при которых предикат P(x) принимает значения «ложь», и принимает значения
«ложь» при тех значениях xM, при которых предикат P(x) принимает значения «истина». Из этого определе8
ния следует, что

Jp = M/ Jp = C Jp.

Импликацией предикатов P(x) и Q(x) называется новый предикат P(x)→Q(x), который является ложным
при тех и только тех значениях xM, при которых одновременно P(x) принимает значения «истина», а Q(x) —
значение «ложь», и принимает значения «истина» во всех остальных случаях.

7
3б Пример 2
Рассмотрим сложное высказывание:
«Если применить стальные конструкции, то масса снижается и стоимость увеличивается. Стальные кон+
струкции не применяются, а масса снижается».
Решение
Этому высказыванию
_ соответствует следующая формула:
(A↔В∧C)&(А∧B)
Вычислим значение этой_ формулы:
_ _
В&C = 1; A→В&C = 2; А=3; А&B = 4; (A→В&C)&(А&B) = 5.
Если имеется некоторая формула, то можно построить соответствующее предложение, заменяя буквы
простыми предложениями.
Пример 3
А = «Идет снег»,
_ В = «2×2 = 4», С = «Я хочу домой»
(A→В∧C)&(А∧B) = «Если идет снег, то 2 2 = 4 не смотря на то, что я хочу домой. Не только снег идет, но и
2×2 = 4».
Истинность высказываний определяется только таблицей и не связана с содержанием конкретных про8
стых высказываний.

A B C 1 2 3 4 5
Л Л Л Л И И Л Л
Л Л И Л И И Л Л
Л И Л Л И И И И
Л И И И И И И И
И Л Л Л Л Л Л Л
И Л И Л Л Л Л Л
И И Л Л Л Л Л Л
И И И И Л Л Л Л

4б Пусть имеется предикат P(x), определенный на множестве М. Если а — некоторый элемент из мно8
жества М, то подстановка его вместо х в предикатах P(x) превращает этот предикат в высказывание
P(а). Такое высказывание называется единичным. Наряду с образованием из предикатов единичных выска8
зываний в логике предикатов рассматриваются еще две операции, которые превращают одноместный пре8
дикат в высказывание.
Квантор всеобщности. Пусть P(x) — предикат, определенный на множестве М. Под высказыванием ∀х
P(x) понимают высказывание, истинное, когда P(x) истинно для каждого элемента х из множества М, и лож8
ное в противном случае. Это высказывание уже не зависит от х.
Квантор существования. Пусть P(x) — предикат, определенный на множестве М. Под высказыванием ∃х
P(x) понимают высказывание, которое является истинным, если существует элемент xM, для которого P(x)
истинно, и ложным в противном случае. Это высказывание уже не зависит от х.

8
5а 5. Понятие формулы логики предикатов, значения и равносильность.
Логические следования
1. Каждое высказывание, как переменное, так и постоянное, является формулой (элементарной).
2. Если F (•,•…,•) — n — местная предикатная переменная или постоянный предикат, а x1, x2, … , xn — пред8
метные переменные или предикатные постоянные (не обязательно все разные), то F (x1, x2, … , x)) есть
формула.
3. Если А и В — формулы, причем такие, что одна и та же предметная переменная не является в одной из
них связанной, а в другой — свободной, то слова АВ, А∧В, А→В есть формулы. В этих формулах те пе8
ременные, которые в исходных формулах были свободными, являются свободными, а те, которые были
связанными, являются связанными.
4. Если А — формула, то А — формула, и характер предметных переменных при переходе от формулы А
к формуле А не меняется.
5. Если А(x) — формула, в которую предметная переменная x входит свободно, то слова ∀x A(x ) и ∃x A(x ) яв8
ляются формулами, причем предметная переменная входит в них связанно.
6. Всякое слово, отличное от тех, которые названы формулами в пунктах 1—5, не являются формулой.
Значение формулы логики предикатов
О логическом значении формулы логики предикатов можно говорить лишь тогда, когда задано множе8
ство М, на котором определены входящие в эту формулу предикаты. Логическое значение формулы логи8
ки предикатов зависит от значений трех видов переменных:
1) значений входящих в формулу переменных высказываний;
2) значений свободных предметных переменных на множестве М;
3) значений предикатных переменных.
В качестве примера рассмотрим формулу:
∀∃
yz (P (x , y ) → P (x , y ) (1),

в которой двуместный предикат P(x, y) определен на множестве М М, где М = {0, 1, 2, …, n, …}.


В формулу (1) входит переменный предикат P(x, y), предметные переменные x, y, z, две из которых y и z —
связаны кванторами, а x свободна.
Возьмем за конкретное значение предикат P(x, y), фиксированный предикат P0(x, y): «x < y», а свободной
переменной x придадим значение x0 = 5М. Тогда при значениях y, меньших x0 = 5, предикат P0(x0, y) прини8
мает значение «ложь», а импликация P(x, y)→P(y, z) при всех zМ принимает значения «истина», т.е. выска8
зывание ∀y ∃z(P0(x, y)→P0(y, z)) имеет значение «истина».

6а 6. Общезначимость формул логики предикатов


Предикат — логическая функция, аргументы которой могут принимать значения из некоторой предмет8
ной функции, а сама функция может принимать значение «истина» либо «ложь».
Если переменная одна, то предикат одноместный, две — двухместный и т.д.
Нульместный предикат, то есть предикат, не содержащий переменных — высказывание.
Операции
Из элементарных (атомарных) предикатов с помощью логических операций можно получить сложные
предикаты. Здесь уместно сделать важное содержательное замечание: язык предикатов — наиболее
приближенный к естественным языкам формальный математический (логический) язык. В логике предика8
тов к операциям, имеющим место в логике высказываний, добавляются операции навешивания кванторов.
∀ — квантор общности. x∀P (x ) — «для всех х — P(x)».
∃ — квантор существования. x∃P (x ) — «есть такие х, что P(x)». (∃! или ∃1 — существует и притом един8
ственный).
Кванторы связывают соответствующие переменные. Связанные переменные можно воспринимать как
константы, а несвязанные переменные — свободные переменные — как собственно переменные.
Содержательные примеры предикатов:
R(x) — х любит кашу (одноместный предикат).

x R (x )
— все любят кашу (нульместный предикат — высказывание).

x R (x )
— некоторые (есть такие) х любят кашу.
L(x, y) — х любит y (двухместный предикат).
∃∀
xy L(x , y ) — существует x, который любит всех y.
∀x (C(x) → O(x)) — все студенты C(x) отличники O(x).

x (C (x )∧O (x ))
— некоторые студенты C(x) отличники O(x). Здесь есть повод поразмышлять об использо8
вании операций ∨ и & в двух последних высказываниях.
Для конечных областей можно операции навешивания кванторов выразить через конъюнкцию и дизъ8
юнкцию.
Пусть х ∈{a1, a2,..., an}, ∀x P(x) = P(a1) ∧ P(a2) ∧... ∧P(an), ∃x P(x) = P(a1) ∨ P(a2) ∨ ... ∨ P(an).
Общезначными называются формулы, которые истинны при каждом приписывании значений входящих
в них связанных переменных и предикатов.
Обозначение: |=
Для доказательства общезначимости формул используется аппарат логики высказываний, дополненный
теоремами для выражений, содержащих квантор:
1) пусть Q(x) — формула, свободная для y, тогда:

9
5б Равносильные формулы логики предикатов
Определение 1. Две формулы логики предикатов А и В называются равносильными на области
М, если они принимают одинаковые логические значения при всех значениях входящих в них переменных,
отнесенных к области М.
Определение 2. Две формулы логики предикатов А и В называются равносильными, если они равно8
сильны на всякой области (АВ). Ясно, что все равносильности алгебры высказываний будут верны, если в
них вместо переменных высказываний подставить формулы логики предикатов. Но, кроме того, имеют ме8
сто равносильности самой логики предикатов.
Пусть A(x) и B(x) — переменные предикаты, а С — переменное высказывание. Тогда:
1) ∀xA(x) ∃xA(x);
2) ∃xA(x) ∀xA(x);
3) ∀xA(x) ≡ ∃xA(x);
4) ∃xA(x) ≡ ∀xA(x);
5) ∀xA(x) ∧ ∀xB(x) ≡ ∀x[A(x) ∧ B(x)];
6) C ∧ ∀xB(x) ≡ ∀x[C ∧ B(x)];
7) C ∨ ∀xB(x) ≡ ∀x[C ∨ B(x)];
8) C → ∀xB(x) ≡ ∀x[C → B(x)];
9) ∀x[B(x) → C] ≡ ∃xB(x) → C;
10) ∃x[A(x) ∨ B(x)] ≡ ∃xA(x) ∨ ∃xB(x);
11) ∃x[C ∨ B(x)] ≡ C ∨ ∃xB(x);
12) ∃x[C ∧ B(x)] ≡ C ∧. ∃xB(x);
13) ∃xA(x) ∧ ∃yB(y) ≡ ∃x∃y[A(x) ∧ B(y);
14) ∃x[C → B(x)] ≡ C → ∃xB(x);
15) ∃x[B(x) → C] ≡ ∀xB(x) → C.
Логические следования
Говорят, что формула В логически следует из формулы А, и пишут таким образом: А→В, если В = «истина»
на всех наборах переменных, на которых А = «истина», А→В тогда и только тогда, когда импликация являет8
ся тавтологией |= А→В.
Логическое следование означает, что из истинности А следует истинность В, но если А = «ложь», то из
этого ничего не следует (т.е. из В ничего утверждать нельзя).
Формула В логически следует из множества формул.
А1, А2, … , Аn→B. Если из истинности всех Аi следует истинность В.
Это можно записать следующим образом:
А1∧А2∧ … ∧Аm ⇒В
Установить, является ли формула логическим следованием, можно, доказав соответствующую тавтологию.

6б а) I = x∀Q (x ) → Q (y ) ;
б) I = Q(y) ∧ x∀Q(x) .
2) пусть R — формула, не содержащая свободных вхождений переменной x. Q(x) — произвольная формула,
тогда:
а) если |=R→Q(x), то |=R→∀xQ(x);
б) если |=Q(x) R, то |=R.
Следствие из 18й и 28й теоремы: формула |=Q(x) тогда и только тогда, когда |=∀xQ(x).
Правило универсальной конкретизации (УК): из формулы ∀xQ(x), которая свободна для y, выводится
∀xQ(x)→Q(y), подставленной Q(x) переменой y.
Правило универсального обобщения (УО): если Q(x) не имеет свободных вхождений x, то из нее выво8
дится Q(x)∧∀xQ(x)).
Правило экзистенциальной конкретизации (ЭК) позволяет перейти от формулы ∃xP(x) → P(α), α где —
неизвестный, но вполне определенный элемент, такой, что если P(α) — истина, то P(α) тоже истина.
Правило экзистенциального обобщения (ЭО) позволяет перейти от формулы P(α)→ ∃xP(x).
Рассмотрим пример логического вывода в логике предикатов:
1) ∃x(P(x) ∧ ∀y(Q(y)→R(x, y)));
2) ∀x(P(x)→∀y(S(y)→R(x, y))).
На естественном языке заключение можно сформулировать: ∀x(Q(x)→(S(x))
1) «некоторые студенты выполнили все задания»;
2) «ни один студент не выполнил графики»;
3) заключение: «следовательно, ни одно задание не являлось графиком».

10
7а 7. Неклассические логики
Классическая логика последовательно проводит естественные математические принципы: минимум ис8
пользуемых понятий, распределение формализации на более общую область, где она применима. Она со8
глашается с 4 законами.
Закон тождества — один и тот же термин в одном и том же распределении должен употребляться в од8
ном и том же отношении, в одном и том же смысле и применительно к одному и тому же месту и времени.
Математическая формула имеет вид: А⇔А.
Закон непротиворечия — невозможно, чтобы одно и то же в одно и то же время было и не было прису8
ще одному и тому же в одном и том же отношении): |== A ∧ A.
В современной логике закон непротиворечия может отвергаться, например, для формализации понятий,
заложенных в базу знаний. Поскольку любое знание специалиста в любой достаточной сложности пред8
метной обла8сти может оказаться противоречивым по формуле, поэтому в настоящее время развивается
паранепротиворечивые логики. _ _
Закон исключенного третьего — оба утверждения А и A не могут опровергаться одновременно. |= A ∧ A.
Этот закон чаще всего подвергается пересмотру в неклассических логиках.
Закон достаточного основания — никакое высказывание не может утверждаться без достаточного ос8
нования.
Рассмотрим неклассические логики, которые делятся на пропозициональные (модифицирующие логику
высказываний) и предикаты (модифицирующие логику предикатов).
Интуистская логика — это логика, с помощью которой описываются способы вывода высказываний ис8
тинных с точки зрения интуцианизма, т.е. совокупность идей и методов, для которой основным критерием
истинности математического суждения является интуитивная убедительность в возможности мысленного
эксперимента, связанного с этим суждением. Эта логика является более близкой к классической, в ней не
имеют места принципы исключенного третьего и двойного отрицания.
Многозначная логика — тип формальной логики, характеризующийся наличием более чем двух воз8
можных истинных значений (истинности и ложности). Допускает обобщение на k8значный случай f: {0, 1, …
, к – 1}n →{0,1, … , к — 1}
Нечеткие логики. Одним из важнейших классов, который можно рассматривать как модификацию клас8
са многозадачной логики, является класс вероятностных, или нечетких, логик. В любой нечеткой логике
пропозициональная переменная (переменная — высказывание) может принимать любое значение в интер8
вале и называется степенью определенности для переменной.
Нечеткие логики базируются на понятии нечетких множеств.
Рассмотрим пример, связанный с возрастом человека.
До 16 лет нельзя однозначно утверждать, что человек молодой.

8а 8. Модальная логика
Модальная логика — это область, в которой наряду с обычными высказываниями рассматриваются
модальные высказывания, т.е. высказывания, характеризующие степень достоверности суждения. Раз8
личают три типа модальности:
1) модальности общего вида: необходимо, возможно, невозможно, случайно;
2) модальности, связанные с характеристиками действий и поступками людей в обществе: обязательно,
разрешено, запрещено, безразлично;
3) модальности, являющимися характеристиками знаний: доказано, не доказано, опровергнуто, знает,
верит, убежден, сомневается.
В модальных логиках к алфавиту исчислений высказываний добавляются модальные связки:

необходимо возможно

Временные (темпоральные) логики — это модальные логики, которые получаются добавлением к


логике высказываний новых символов, отражающих свойство времени.
Во временной логике Прайора (логике будущего) вводится новый символ F (будет) и G (всегда будет).
В минимальной временной логике Леммона вводятся модальности P (было) и F (будет).
Во временной логике фон Вригта к исчислению высказываний добавляется связка T: АТ)В.
«Сейчас происходит событие А, а в следующий момент времени происходит событие В».
В этой логике время дискретно и линейно упорядочено.
Алгоритмические логики создают с целью написания семантических языков программирования и
включающих функции следующего вида:
{А} ∫ {В}, которые читаются: «Если до выполнения оператора S было истинно А, то после его выполне+
ния будет истинно В».
Эти логики были изобретены Фройдом и Хоаром.
Хоар определил простой язык программирования через логическую систему аксиом и правил вывода
для доказательства частичной правильности программ. Он показал, что определение семантики языка не
в терминах выполнения программы, а в терминах доказательства ее правильности упрощает процесс по8
строения программы.

11
7б Диапазону от 16 до 30 лет можно смело присвоить ранг 1.
После 30 вроде не молодой и не старый.
К нечетким множествам можно применить следующие операции:
1) объединение;
2) пересечение;
3) дополнение;
4) концентрацию;
5) размытие.
Системы нечеткого вывода позволяют решать задачи автоматического управления, классификацию дан8
ных, распознавание образов, принятие решений, машинного обучения и т.д.

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

12
9а 9. Категорические высказывания. Суть категорических высказываний
При рассмотрении способов образования сложных высказываний из простых внутреннее строение про8
стых высказываний во внимание не принималось. Они брались как неразложимые атомы, обладающие
только одним свойством: быть истинными или ложными. Простые высказывания иногда именуются ато8
марными: из них, как из элементарных кирпичиков, с помощью логических связок «и», «или» и иных стро8
ятся разнообразные сложные («молекулярные») высказывания. Теперь следует остановиться на вопросе о
внутреннем строении, или внутренней структуре, самих простых высказываний: из каких конкретных ча8
стей они слагаются и как эти части связаны между собой. Нужно подчеркнуть, что простые высказывания
могут разлагаться на составные части по8разному. Результат разложения зависит от цели, ради которой
оно осуществляется, т.е. от той теории логического вывода, в рамках которой анализируются такие выска8
зывания. Далее будет рассматриваться лишь одна разновидность простых высказываний — категоричеI
ские высказывания, по традиции называемые также категоричеIскими суждениями. Особый интерес
к категорическим высказываниям объясняется прежде всего тем, что с исследования их логических связей
началось развитие логики как науки. Кроме того, высказывания этого типа широко используются в наших
рассуждениях. Категорическое высказывание — это высказывание, в котором утверждается или отри8
цается наличие какого8то признака у всех или некоторых предметов рассматриваемого класса. Существу8
ет два варианта высказываний: утвердительный и отрицательный. Их структура: «S есть Р» и «S не есть
Р», где буква S представляет имя того предмета, о котором идет речь в высказывании, а буква Р — имя
признака, присущего или не присущего этому предмету. Предмет, о котором говорится в категорическом
высказывании, называется субъектом, а его признак — предикатом. Субъект и предикат именуются терми8
нами категорического высказывания и соединяются между собой связками «есть» или «не есть» («являет+
ся» или «не является» и т.п.). Простые высказывания типа «S есть (не есть) Р» называются атрибутивныI
ми: в них осущест8вляется атрибуция (приписывание) какого8то свойства предмету. Атрибутивными
высказываниям противостоят высказывания об отношениях. Высказывания об отношениях играют су8
щественную роль в науке, особенно в математике.
В классической логике особое внимание уделяется четырем типам категорических высказываний.
А — общеутвердительное высказывание: «всякое S есть P» и формально записывается ∀x(S(x))→P(x).
Е — общеотрицательное высказывание: «никакое S не есть P», ∀x(S(x))→P(x).
I — частноутвердительное высказывание: «некоторое S есть P», ∃x(S(x)) ∧ P(x).
О — частноотрицательное высказывание: «некоторое S не есть P», ∃x(S(x)) ∧ P(x).
В категорических высказываниях утверждается или отрицается принадлежность каких8то признаков рас8
сматриваемым предметам и указывается, идет ли речь обо всех этих предметах или же о некоторых из них.
Возможны, таким образом, четыре вида категорических высказываний: все S есть Р — общеутвердитель8
ное высказывание. Некоторые S есть Р — частноутвердительное высказывание. Все S не есть Р — общео8

10а 10. Тавтологии. Аксиомы


Логические тавтологии — это выражения, которые повторяют ранее выказанное, но в иной словесной
форме, или повторение в предикате того, что было выражено в субъекте. В математической логике тавто8
логия — это тождественно8истинное высказывание. Поскольку приписывание предиката субъекту не при8
бавляет ничего нового, тавтология и не способна нести информацию о мире. Однако вот как характеризу8
ет ее Витгенштейн: «Тавтологии не говорят ничего, но они нам показывают свойства универсума в целом,
задавая все возможные упорядоченные связи знаков, которые появляются в единстве условий истинности
описания мира». Следовательно, будучи структурами формального знания, тавтологии вместе с тем высту8
пают в качестве форм информативного содержания.
Наряду с тавтологиями используются тождественно ложные формулы, которые называются противоре+
чиями.
Теорема
Пусть В — формула, в которую входят только элементарные формулы Р1, Р2, …, Рn и пусть В* — формула,
полученная из формулы В путем подстановки формул А1, А2,…, Аn Р1, Р2, …, Рn соответственно, тогда, если
В — тавтология |=, то и В* тоже будет тавтологией |=B→|=B*.
Очевидно, что формула не является тавтологий, если она принимает значение «ложь» хотя бы на одном
наборе значений переменных. Этим можно воспользоваться для распознавания тавтологий.
Метод обратного рассуждения. Этот метод заключается в поиске таких переменных, в которых форму8
ла оказывается ложной.
Пример:
(А→В) ∧ (B→C) ∧ AC
Эта формула может принять значение «ложь» тогда и только тогда:
(А→В) ∧ (B→C) ∧ A = И
При ложном С импликация B→C может быть истинна тогда и только тогда, когда В = Л. А при В = Л импли8
кация А→В = И истинна тогда и только тогда, когда А = Л.
Наша формула принимает значение «ложь» в том и только в том случае, когда А = Л и А = И одновремен8
но, чего не может быть в силу закона непротиворечия. Значит, наша формула принимает всегда истинные
значения, следовательно, является тавтологией. Тавтологию можно доказывать с помощью равносильных
преобразований. Две формулы называются равносильными, если на всех наборах их значений входящих
в них переменных эти формулы принимают одинаковые значения. Равносильность еще называют логиI
ческой эквиваленцией.
Между отношением равносильности и эквивалентностью формул существует следующая связь: если
А⇔В, то |= А⇔В(равносильность является тавтологией) и обратно.
Существует бесконечное множество тавтологий:
1) истина из чего угодно: |= A→(B→A);
2) (A→B)→((A→(B→C))(A→C);

13
9б трицательное высказывание. Некоторые S не есть Р — частноотрицательное высказывание. Катего8
рические высказывания можно рассматривать как результаты подстановки каких8то имен в следую8
щие выражения с «пробелами» (многоточиями): «Все ... есть ...», «Некоторые ... есть ...», «Все ... не есть ...»
и «Некоторые ... не есть ...». Каждое из этих выражений является логической постоянной (логической
операцией), позволяющей из двух имен получить высказывание. В традиционной логике предполагалось
также, что имена, подставляемые вместо многоточий (или переменных, если они используются вместо мно8
готочий), не должны быть единичными или пустыми.

_
10б 3) A→(B→A ∧ B); 37) A∨B↔A∧B;
_
4) A∧B→A A∧B→B; 38) A∨B→A∧B;
5) A→(A→B) B→(A→B); 39) A→B→(A∧B);
6) (A→C)→((B→C)→(A→B→C));
_ _ 40) A∧B→(A∧B);
7) _(A→B)→((A)→B)→A); 41) A→В↔A∧B;
_
8) A→A; 42) A→B↔A→B;
9) (A→B)→((B→A)→(A↔B); 43) A∧B↔A→B;
_
10) (A↔B)→(A→B); 44) A→B↔A→B;
11) (A↔B)→(B→A); 45) (A↔B)↔(A→B)∧(B→A) и т.д.
12) принцип тождества: A→A;
13) цепное заключение: (A→B)→((B→C)→(A→C));
14) перестановка посылок:
(A→(B→C))↔(B→(A→C));
15) закон вынесения:
_ A→(A→C)↔(A&B→C);
16) отрицание: A→(A→B); _ _
17) закон контрапозиции: (A→B)→(B→A);
18) закон силлогизма: (A→B)∧(B→C)→(A→C);
19) закон отделения:
_ _ (A→B)∧A→B;
20) (A→B)∧B→A;
21) рефлективность: A↔A;
22) симметричность: (A↔B)↔(B↔A);
23) транзитивность: (A↔B)∧(B↔C)(A→C);
24) (A∧B)∧C→A∧(B∧C);
25) (A→B)C→A(B→C);
26) A∧B↔B∧A;
27) A→B↔B→A;
28) A∧(B→C)↔(A∧B)→(A∧C);
29) A®(B∧C)↔(A→B)∧(A→C);
30) идемпотентность: A∧A↔AAA↔α;
31) A∧(A→B)↔AA(A∧B)↔A; _
32) закон двойного отрицания:_ A↔А;
_
33) отрицание противоречия: A∧A; _
34) закон исключенного третьего:
_ _A→A;
35) законы_ де_ Моргана: A∨B↔A∧B;
36) A∨B↔A→B;

14
11а 11. Теорема дедукции. Следствие из теоремы дедукции. Метод дедукции
Теорема дедукции. Пусть Н, А|+B, и при этом пусть существует такой вывод В из Н, А, в котором ни при
каком применении правила связывания квантором к формулам, зависящим в этом выводе от А, не связы8
вает квантором никакая свободная переменная, входящая в А. Тогда:

Н|+A→B.

Доказательство. Пусть В1, В2, …, Вn+1, В есть вывод из Н, А удовлетворяющий условию теоремы. Доказа8
тельство проведем методом математической индукции.
1. При n = 1 утверждение справедливо. Действительно, если В есть вывод из Н, А, то:
а) либо В→Н;
б) либо В — доказуемая формула;
в) либо В есть А.
В случаях a) и b), так как Н|+В, и формула В(АВ) доказуема, то по правилу заключения получаем Н|+АВ. В
случае в) формула АВ есть формула АВ есть формула АА, т.е. доказуема, и поэтому выводима из Н.
2. Предположим теперь, что утверждение справедливо для любого вывода длины k <n и докажем его спра8
ведливость для вывода длины n. Поскольку В1, В2, …, Вn+1, В есть вывод из Н, А, то возможны пять слу8
чаев:
1) В→Н;
2) В — доказуемая формула;
3) В есть А;
4) В получается из предшествующих ей в выводе формул Вi и Вj(i < j < n) по правилу заключения;
5) В получается из формулы Вi, предшествующей ей в выводе I n по правилу связывания квантором.
Для первых трех случаев доказательство утверждения полностью совпадает с доказательством, прове8
денным для n = 1. Рассмотрим четвертый случай. Поскольку здесь формула В получается из двух формул
Вi и Вj (I < j < n), то Вj должна иметь вид Вj→В, причем справедливы утверждения:
Н|8A→Bi (1)
Н|8A→(Bi→B) (2)
Используя аксиому 2, получим:
H|+(A→(Bi→D))→((A→Bi)→(A→B)). (3)
Из формул (Н|+A→Bi, Н|+A→(Bi→B), H|+(A→(Bi→D)) →((A→Bi)→(A→B))) по правилу сложного заключения
получаем ((i))H|8A8›B.((i))
Рассмотрим один случай. Пусть в выводе из Н, А v есть формула Вi (I < n).

12а 12. Четыре случая из метода дедукции. Начальное понятие вывода


Случай 1. Формула Вi является аксиомой, тогда вывод продолжается следующими шагами:

Вi∈\(А∈Вj) — А1
А∈Вj — modus pones

Случай 2. Формула Вi является гипотезой из набора Г. Очередные шаги нового вывода те же, что и в слу8
чае 1, является принадлежность Вi к набору Г.
Вi — гипотеза из Г
Вi∈(А∈Вj) — аксиома А1
А∈Вj + modus pones
Случай 3. Вi — гипотеза А.
А∈(А∈А) — аксиома А1
(А∈((А∈А)∈А))∈((А∈(А∈А))∈(А∈А)) — аксиома А3
С~А, В~А∈А
(А∈(А∈А))∈(А∈А) — modus pones
(А∈А) — modus pones
Случай 4. Вi является непосредственным следствием из формулы Вj и Bk , j, k (А∈(Вj∈Вi))∈(А∈Вi)∈(А∈−
Вi)) —А3.
(А∈Вj)∈(A∈Вi) — modus pones
Мы рассмотрели все возможные случаи продолжения вывода. По индукции эта формула выводится для лю8
бой i.
Пример
Докажем логическое следование из набора Г, дополненного формулой А, логически выводится форму8
лой В _ и_аксиомой с помощью теоремы о дедукции.
Г: В∈А,_ А⇒В
1) B∈|A — гипотеза из Г;
2) А — гипотеза
_ из Г;
3) _А∈|(B∈|А) — аксиома А1;
4) B∈|—
_ modus
_ pones
_ _ (2, 3);
5) (B∈|A)∈((B∈A)∈B) — A13;

15
11б Если Вi не зависит от А, то согласно лемме Н|8Вi, и тогда, применяя правило связывания квантором,
получаем:
Н|+∨х1Вi, т.е. Н|8В. Далее, используя аксиому 1, имеем Н|8В→(А→В) и, следовательно, Н|+А→В.
Если x1 не является свободной переменной формулы А, то, используя аксиому 5: ∨х1(А→Вi)→(А→∨х1Вi).
Поскольку Н|+А→Вi, то по правилу связывания квантором получаем Н|+∨х1(A→B) и тогда по правилу за8
ключения имеем: Н|+A→∨х1Вi или Н|+A→B.
Если Н, А|+В и существует вывод, для получения которого не использовалось правило связывания кван8
тором к свободным переменным, входящим в формулу А, то:
Н|+А→В.
Метод дедукции
Теорема. Пусть А1, … , Аm — некоторый набор формул, обозначим его Г. Тогда если формула В логиче8
ски следует из набора формул Г, дополнительная формула В логически следует из формул Г, дополненная
формулой А (ГА В), то формула «А∈В» логически следует из набора формул Г⇒А∈В.
Доказательство. Пусть В1, … , Вm — вывод формулы В из набора формул Г, дополненного формулой А.
Если существует некоторый вывод из совокупности Г, который уже содержит все формулы такого вида:
А∈|Вj, ∀j∈I, то он может быть продолжением до формулы А∈|Вi.

_ _ _
12б 6) _ (B∈|A)∈|B — modus pones;
_ 7) B — modus pones (1, 6);
8) B∈|B — A15;
9) B — modus pones (7, 8).
По теореме дедукции доказано логическое следствие.
Понятие вывода
Определение. Выводом из конечной совокупности формул Н называется всякая конечная последова8
тельность формул В1, В2, …, Вk, всякий член которой удовлетворяет одному из следующих трех условий:
1) является одной из формул совокупности Н;
2) является доказуемой формулой;
3) получается по правилу заключения из двух любых предшествующих членов последовательности В1, В2,
…, Вk.
Выводом из совокупности формул Н = {А, В} является конечная последовательность формул:
А, В(А∈|А)∈|((А∈|В)∈|(А∈|А∧В)), В∈|(А∈|В),
А∈|А, (А∈|В)∈|(А∈|А∧В), А∈|В, А∈|А∧В, А∧В.
Если же здесь воспользоваться правилом сложного заключения, то вывод можно записать так:
А, В,(А∈|А) ((А∈|В)∈|(А∈|А∧В)), В∈|(А∈|В),
АА, АВ, А∧В.
Из определений выводимой формулы и вывода из совокупности формул следуют очевидные свойства
вывода:
1) всякий начальный отрезок вывода из совокупности Н есть вывод из Н. В самом деле, все формулы на8
чального отрезка вывода удовлетворяют определению вывода;
2) если между двумя соседними членами вывода из (Н(или в начале, или в конце его) вставить некоторый
вывод из Н(, то полученная новая последовательность формул будет выводом из Н;
3) всякий член вывода из совокупности Н является формулой, выводимой из Н. Всякий вывод из Н являет8
ся выводом его последней формулы;
4) если Н (W, т.е. всякий вывод из Н является выводом из W);
5) для того чтобы формула В была выводима из совокупности Н, необходимо и достаточно, чтобы суще8
ствовал вывод этой формулы из Н.

16
13а 13. Два правила вывода. Аксиомы логики высказываний. Принцип резолюции

Итак, правила вывода позволяют получить тавтологию из некоторой совокупности исходной тавтологии.
Правило 1. Если А — тавтология, то, заменяя в ней везде х, где она входит произвольной формулой В,
получим также тавтологию (правило подстановки).
А∧В↔В∧А, А&(С∨D)↔(С∨D)∧A
Правило 2. Если А и формула А∈В являются тавтологией, то В тоже является тавтологией. Это правило
заключения.
А∧(А∈В) В modus pones
Формула называется выводимой в логическом высказывании, если она может быть получена из конечной
совокупности исходных формул путем конечного числа шагов применения правил вывода.
Доказано, что можно выбрать такую конечную совокупность конечных тавтологий (аксиомы логики выска8
зываний), из которых выводимы все тождественно различные формы логики высказываний.
А1. А∈|(В∈|А)
А2. ((А∈|В)∈|А)∈|А)
А3. (А→(В→С))→(А→В)→(А→С))
А4. А∧В∈|А
А5. А∧В∈|В
А6. (А∈|В∈|((А∈|С)∈|(А∈|В∧C))
А7. А∈|А∨В
А8. В∈|А∨В
А9. (А∈|С)∈|((В∈|С)∈|(А∨ВС))
А10. (А↔В)∈|(А∈|В)
А11. (А↔В)∈|(В∈|А)
А12. (А∈|В)∈|((В∈|А)∈|(А↔В))
_
А13. (А∈|В)∈|((А∈|¬В)∈|
_ A)
А14. А∈|
_ A
А15. А∈|A
На основе вышеперечисленного приведем пример.
Выведем тавтологию из А∧А→В∧А из данной системы аксиом.
Подставим в аксиому А6 вместо А формулу А∧В:

14а 14. Доказательство некоторых законов логики

Правила выводимости, и особенно теорема дедукции, позволяют доказать ряд законом логики.
1. Закон перестановки посылок.
|+(x→(y→z))→(y→(x→z)) (1)
Доказательство. Поскольку из совокупности формул H = {x→(y→z), y, x} следует вывод x→(y→z), y, x, y→z, z,
то из совокупности Н выводима формула z. Тогда по обобщенной теореме дедукции доказуема формула (1).
Из закона перестановки посылок правило перестановки посылок в доказуемых формулах:
|+(x→(y→z)
|+(y→(x→z)

Действительно, если
|+x→(y→z), (2)
то из формул (1) и (2) по правилу заключения следует:
|+x→(y→z).
2. Закон соединения посылок.
|+(x→(y→z))→(x∧y→z)) (1)
Доказательство. Поскольку из совокупности формул Н= {(x→(y→z) , x∧y} следует вывод x→(y→z) , x∧y,
x∧y→x, x∧y→у, x, y, у→z, z, то из совокупности Н выводима формула z. Тогда по обобщенной теореме де8
дукции доказуема формула (3).
Из закона соединения посылок вытекает правило соединения посылок в доказуемых формулах:
|+(x→(y→z))
|+(x∧y→z))
Действительно, если
|8x→(y→z) (4),
то из формул (3) и (4) по правилу заключения следует:
|+x∧y→z.
3. Закон разъединения посылок.
|8(x∧y→z)→(x→(y→z)). (5)
Доказательство. Поскольку из совокупности формул H = {x, y, x∧y→z} следует вывод x, y, x∧y→z, x∧y, z,
то из совокупности формул Н выводима формула z. Тогда по обобщенной теореме дедукции доказуема
формула (5).

17
13б (А~А∧В) = А5
(А~А∧В)→((А∧В→С)→(А∧В→В∧С))
В этой формуле посылка является А5, по правилу заключения, следствие тоже является тавтологией.
(А∧В→С)→(А∧В→В∧C)
По правилу подстановки заменяем С на А.
(А∧В→А) = А4, (А∧В→А)→(А∧В→В∧А)
Посылка в этой аксиоме является А4, по правилу заключения, А∧В→В∧А будет тавтологией. Следова8
тельно, мы вывели заданную тавтологию.
Принцип резолюции
Известно, что любая формула имеет логические эквивалентные ей конъюнктивные нормальные формы.
Не существует общего по8настоящему фиктивного критерия: является ли конъюнктивная нормальная
форма истиной, однако есть достаточно удобный способ для установления противоречия элементарных
дизъюнктов.
Множество элементарных дизъюнктов состоит из противоречий, тогда и только тогда, когда пустая дизъ8
юнкция (ложь) является логическим следствием из него. Следовательно, противоречие можно проверить,
порождая логические следствия из множества элементарных дизъюнктов _до тех пор, пока не получим ложь.
Если А1 и А2 — элементарные
_ нормальные дизъюнктивные формы S, aА1, aА2, то элементарная дизъюнкция
r = (А1 \{a}(А2 {a}) является логическим следствием нормальной формы S, где r — резольвента элементар8
ных дизъюнкций А1 и А2
Пример _ _ _
Рассмотрим нормальную конъюнктивную
_ _ форму S:(p∨q)∧(p∨r)∧( q∨r)∧p, высчитаем резольвенты и до8
бавим
_ их к S. p∨q — А1;p∨r
_ — А2; q∨r — A3;
p — A4; A5: q; A6: p∨r;A7: p∨q;A8: p(A2, A6)
A9: ложь (А8, А4). Устанавливаем противоречивость исходного множества дизъюнкций. Если множество
S является противоречием и содержит резольвенты своих элементов, то оно содержит пустую дизъюнк8
цию, это всегда можно установить методом резолюции.

14б Из закона разъединения посылок вытекает правило разъединения посылок в доказуемых формулах:
|+x∧y→z
|8x∧y→z, (6)
|8x→(y→z)
то из формул (5) и (6) по правилу заключения следует:
|+x→(y→z).
4.|8x→(¬x→y). (7)
Доказательство. Сделаем подстановку. В результате получим доказуемые формулы
|+x(¬y→x), (8)
|8(¬y→x)→(¬x→¬¬y). (9)
Из формул (8) и (9) по правилу силлогизма следует:
|8x→(¬x→¬¬⎠y).
Используя закон соединения посылок, получим |8x∧¬x→¬¬y. Используя правило снятия двойного отри8
цания, получим |8x∧¬x→y. И, наконец, применяя закон разъединения посылок, получим формулу (7).
4. Закон исключенного третьего |8x ¬x.
Доказательство. Используя оба правила двойного отрицания, получаем:
|8y→x¬x.
Пусть теперь y — любая доказуемая формула R, тогда из формул |8R, |8Rx→¬x по правилу заключения по8
лучаем |8x¬x.

18
15а 15. Доказательство некоторых логических следствий
Алгоритм Квайна позволяет проверить общезначность формулы логики высказываний. Он состоит в
том, что переменным высказываниям последовательно придаются значения «ложь» и «истина» и анализи8
руются формулы, содержащие меньшее число переменных. Пример (((А∧B→C)∧(A→B))→(A→C)
|=(A∧B→C)∧(A→B))→(A→C)
Нужно доказать тавтологию: A, B, C. Предположим, что А=Л, (Л∧B→C)∧(Л→B)→(Л→С),(Л→С)∧И→И,
И∧И→И, получим И, предположим, что А=И (И∧В→С)∧(И→В)→(И→С), получим И, предположим, что В=Л,
(A∧Л→C)∧(A→Л))→(A→C), получим И, предположим, что В=И, (A∧И→C)∧(A→И))→(A→C). Вывод: при лю8
бых значениях переменных высказываний формула принимает значение «истина», т.е. она является тавто8
логий, что и доказывает логическое следствие.
Метод обратных рассуждений
(А∧B→C)∧(A→B)→(A→C)
Доказательство метода обратных рассуждений состоит в поиске переменных, при которых формула при8
нимает значение «ложь».
Предположим, что формула «ложь». Наша формула является ложной тогда и только тогда, когда:
(A∧B→C)∧(A→B) = И (А→С) = Л
А=И А=И
В=И С=Л
При а = И импликация может быть ложью тогда и только тогда, когда В = И. Вывод: наша формула может
быть ложной тогда и только тогда, когда С = И и С = Л одновременно. Это невозможно по закону противо8
речий, значит, наша исходная формула является тавтологией.
Метод дедукции
Уравнение «из А следует В» обычно доказывается по следующей схеме: предполагается, что А справед8
ливо посредством некоторой цепочки рассуждений устанавливается, что и В должно быть при этом спра8
ведливо и делается заключение, что «из А следует В». Кроме того, в рассуждениях могут участвовать до8
полнительные предположения. Формализация такого способа доказательств является теоремой о
дедукции.
(А∧B→C)∧(A→B)→(A→C)
Г: A∧B→C, A→B; A = C
1) A→B;
2) A;
3) B(mp – 1,2);
4) A6: F(A→B)→(A→C)→(A→B∧C);
5) F(A→B)→((A→C)→(A→A∧B));

16а 16. Проблемы непротиворечивости, полноты, разрешимости теории


1. Проблема непротиворечивости. Теория Т называется противоречивой, если она содержит такое вы8
сказывание S, что и S, и его отрицание S являются теоремами. В противном случае теория Т называет8
ся непротиворечивой. Следовательно, теория Т называется непротиворечивой, если в ней нет такого
высказывания S, что и S, и S являются теоремами. Поскольку теория Т одним из правил вывода содер8
жит правило заключения, то в противоречивой теории любое предложение такой теории является тео8
ремой. Действительно, для любого предложения А теории Т есть теорема, так как это высказывание —
тавтология. Учитывая, что здесь S и S — теоремы, и пользуясь дважды правилом заключения, приходим
к выводу, что А — теорема. Если для теории Т можно найти такую интерпретацию, что интерпретацией Г
является конечное множество, то вопрос об отсутствии противоречий в интерпретации решается пря8
мым рассмотрением конечного множества. Так, одноэлементное множество, содержащее единствен8
ный элемент l, вместе с определенной на нем операцией l∨l=l является моделью теории групп, лишен8
ной противоречий, и, следовательно, теория групп непротиворечива. Однако часто доказательство
непротиворечивости модели требует очень сложных рассуждений. В частности, это бывает в случае,
когда теория Т имеет только бесконечные модели.
2. Проблема полноты. В предположении, что непротиворечивость некоторой теории доказана (или счи8
тается, что может быть доказана), имеет смысл поставить проблему полноты теории. Теория Т называ8
ется абсолютно полной, если для любого высказывания S этой теории или S, или S есть теорема. Это
определение учитывает то обстоятельство, что любое высказывание S теории Т, будучи интерпретиро8
ванным в некоторой модели, оказывается или истинным, или ложным. Но тогда или S, или S должно быть
теоремой в теории Т. Теория, являющаяся одновременно непротиворечивой и полной, будет макси8
мальной в отношении непротиворечивости — в том смысле, что добавление к такой теории в аксиомы
любого предложения, которое можно сформулировать в этой теории, но не являющегося ее теоремой,
приводит к противоречивой теории. Отметим, что для многих математических теорий наличие одновре8
менно обоих качеств (непротиворечивости и полноты) не имеет места. Аксиоматическая теория называ8
ется полной в узком смысле, если добавление к ее аксиомам любого недоказуемого в ней утвержде8
ния с сохранением в ней всех правил вывода приводит к противоречивой теории. Всякая абсолютно
полная теория будет полна и в узком смысле. Действительно, пусть некоторая абсолютно полная теория
не полна в узком смысле. Тогда найдется такое утверждение U этой теории, недоказуемое в ней, что но8
вая теория, построенная на основе прежних аксиом и утверждения U в качестве новой аксиомы, непро8
тиворечива. Тогда U принадлежит новой теории. Кроме того, в связи с абсолютной полнотой исходной
теории и недоказуемостью в ней утверждения U будет доказуемо утверждение U. Следовательно, в но8
вой теории оказались доказуемыми U и U , т.е. получили противоречие.
3. Проблема разрешимости. Проблема разрешимости является алгоритмической проблемой, в которой
для заданного множества А требуется построить алгоритм, разрешающий А относительно другого мно8

19
6) A1: где В заменили на А, A→(A→A);
15б
7) A→A(modes pones, 2,5);
8) (A→B)→(A→(A∧B))+(modes pones, 2,6);
9) (A→(A∧B))+(modus pones, 2,7);
10) (A∧B)+(modes pones, 2,8) ;
11) A∧B→C (гипотеза);
12) С (modus pones, 9,10).
Вывод: формула С выведена из набора формул Г дополнительной формулой А, что по теореме дедукции
доказывает исходное логическое следствие.
Метод резолюции. Этот метод применяется для доказательства противоречий (тождественно ложных).
Поставиться над всей формулой отрицание, и доказывается ее обязательная значимость. Чтобы доказать
тавтологию, нужно взять отрицательные тавтологии и применить метод резолюций.
(A∧B→C)∧(A→B)→(A→C)↔(A∧B→C)∧(A→B)∧¬(A→C)(¬A∧∨B→C)(¬A∨B)∧(A∧¬C)↔(¬A¬B∨C)∧(¬A+
∨B)∧(A∧¬C)
К этой формуле применим метод резолюций:
1) (¬A¬B∨C);
2) (¬A∨B);
3) А;
4) ¬С;
5) (2,3) В;
6) ВС(3,1);
7) С(5,6);
8) ложь (4,7).
Вывод получили пустую дизъюнкцию (ложь), значит, исходная формула является тавтологией.

16б жества В, включающего А(А В), т.е. такой алгоритм U, который применим ко всякому элементу из В,
причем U(x) = 1, если хА и U(x) = 0, если хВ\А. Простейшим примером проблемы разрешимости явля8
ется проблема разрешимости алгебры логики, в которой она состоит в отыскании алгоритма, позволяю8
щего для каждой формулы алгебры логики установить, является ли она или тождественно истинной, или
тождественно ложной, или выполнимой. Важным классом алгоритмических проблем является проблема
разрешимости для формальных теорий.

20
17а 17. Понятие алгоритма и его характерные черты.
Характеристики сложности алгоритмов. Примеры простых алгоритмов
Алгоритмом называется общий единообразный, точно определенный способ решения любой задачи из
данной массовой проблемы.
Такое определение нельзя считать строгим.
Отметим характерные черты понятия алгоритма.
1. Дискретность алгоритма. Алгоритм — это процесс последовательного построения величин таким об8
разом, что в начальный момент задается исходная конечная система величин, а в каждый следующий
момент система величин получается по определенному закону из системы величин, имевшихся в пред8
ыдущий момент.
2. Детерминированность алгоритма. Система величин, получаемых в какой8то неначальный момент, од8
нозначно определяется системой величин, полученных в предшествующие моменты времени.
3. Элементарность шагов алгоритма. Закон получения последующей системы величин из предшествую8
щей должен быть простым.
4. Массовость алгоритма. Начальная система величин может выбираться из некоторого потенциально
бесконечного множества.
5. Результативность алгоритма. Последовательный процесс построения величин должен быть конечным
и давать результат, т.е. решение задачи.
Алгоритмы, в которых основную роль играют математические действия, называются численными алгоритмами.
Линейный алгоритм — ограниченное константой число раз; просмотри входную информацию и для боль8
шинства практических задач является не уменьшаемым по порядку. Поэтому отысканием линейного алго8
ритма при его существовании обычно заканчивается алгоритмическое решение данной массовой задачи.
O(nc), C = const — алгоритм называется полиноминальным.
Алгоритм, сложность которого равна O(nc), C = const 2, называется экспоненциальным. Различают так
называемые распознавательные массовые задачи, т.е. задачи, решение которых заключается в получении
ответа «да» или «нет». Для некоторых задач их изначальные постановки являются распознавательными, ча8
ще на практике исходная задача является оптимизионной, где требуется выбрать оптимальное решение
из допустимых, но в соответствии можно каждой оптимальной постоянной дать постоянно распознаватель8
ный вариант.
Примеры простых логарифмов:
1) задача суммирования элементов в квадратной матрице.
sum = 0
for i = 1 to n
sum = sum +A[i][j]
end for

18а 18. Конечные детерминированные автоматы


Конечный детерминированный автомат является одним из распространенных типов математических
моделей, дискретных систем с памятью. Взаимосвязь входных воздействий, состояний и реакций, описывае8
мых систем в конечных автоматах упрощается. Модель конечного детерминированного автомата широко
распространена и при решении прикладных задач, и в теоретических исследованиях. Характерной особенно8
стью дискретных автоматов является дискретность времени, в котором происходит функционирование.
Предполагается, что все переменные модели изменяются только в моменты времени tn(1, 2,…), называемые
тактовыми моментами, и не меняются в интервале tn, tn+1. Объекты, удовлетворяющие этому требованию,
называются синхронными. Число переменных системы (внешней и внутренней) считается конечным, по8
скольку, несмотря на формальное бесконечное число взаимодействий между собой процессов, оказываю8
щих воздействие на исследуемые объекты, реально экспериментатор может работать только с ограниченным
конечным множеством воздействий. Изменение самой дискретной модели от момента tn к моменту tn+1 мо8
жет носить как детерминированный характер, так и недетерминированный.
Конечным детерминированным автоматом называется система из 5 объектов:
1) A = (S, X, Y,α,λ);
2) S, X, Y — конечные непустые множества, называемые соответственно множествами состояний автома8
та, входных и выходных символов;
3) δ — функция переходов автоматов. δ:SX→S;
4) λ — функция выходов автоматов. λ:SX→Y.
Способы задания конечных детерминированных автоматов такие же, как и для любых математических
функций.
A = ({ }S1…Se( ), { }X1…Xn( ),{ }Y1…Yn( ),δ,λ)
1. Табличный:

S1 S2 ... Se

X1 δ (δ1, x1) δ (δ2, x1) δ (Se, x1)

X2 δ (δ1, x1) δ (S2, x1) δ (Se, x2)

...
Xn δ (S1, xn) δ (S1, xn)

21
Алгоритм выписывает одинаковое количество операций при фиксированном n и, следовательно,
17б
является количественно зависимым.
Подсчитаем трудоемкость алгоритма: FA = 1 + 1 + 3 n + n (1 + 3 n + n 4) = 2 + 3 n + n(1 + 7 n) = 2 + 4 n + 7
n n = = 0(n2);
2) задача поиска max в массиве.
max = S[1]
for i = 2 to n
if max
max = S[i]
end for
Этот алгоритм является количественно параметрическим. Поэтому для фиксированной разности исход8
ных данных необходимо проводить анализ для худшего, лучшего и среднего случаев.
Худший случай: максимальное количество переприсваивания max на каждом проходе цикла будет в том
случае, если элементы массива отсортированы по возрастанию.
FAX(n) = 1 + 1 + 1 + 3 (n – 1) + (n – 1) (2 + 2) = 7 n – 4 = 0(n) — линейный порядок.
Лучший случай: минимальное количество переприсваивания max (на одно присваивание на каждом
проходе цикла будет в том случае, если max элемент расположен на первом месте в массиве). FЛА(n) = 1 + 1
+ 1 + 3 (n – 1) + + (n – 1) 2 = 5 n – 2 = 0, (n) — линейный порядок.
Средний случай: FСА(n) = 0(n).
При построении временных оценок могут возникнуть некоторые проблемы:
1) неадекватность формальной системы записи алгоритма и реальной системы команд процессора;
2) наличие архивных особенностей существенно на наблюдаемое время выполнения программ (таких как
конвейер, кэширование памяти, предвыборка команд и данных и т.д.);
3) различное время выполнения реальных машинных команд;
4) различное время выполнения одной команды в зависимости от значений операндов;
5) различное время реального выполнения однородных команд в зависимости от типа данных;
6) неоднозначности компиляции исходного текста, обусловленные как самим компилятором, так и его на8
стройками.

18б S1 S2 ... Se

X1 λ λ λ (Se, x1)

X2 λ λ λ (Se, x2)

...
Xn λ (S1, xn) λ (S1, xn)

2. Графический.
3. Аналитический: он связан с аналитическим заданием функций δ и λ, например с использованием функ8
ций алгебры логики. В качестве примеров рассмотрим наиболее распространенные конечные автома8
ты. Конечный автомат называется инициальным, если в нем выделено некоторое начальное состояние
S0, в котором он находится перед началом функционирования. Автономным автоматом называется та8
кой конечный автомат, у которого функции δ и λ существенно зависят от входного символа. Конечный
автомат называется автоматом без потери информации, если для любого входного символа X преоб8
разование является взаимно8однозначным. Конечный автомат называется автоматом без памяти,
если функции δ и λ существенно не зависят от любого состояния. Одной из центральных проблем при
изучении математических моделей систем является проблема рассмотрения конечных детерминиро8
ванных автоматов. Два состояния автомата называются эквивалентными, если для любого входного
слова они выдают одинаковую реакцию. В противном случае состояния называются различными. Ко8
нечный автомат, у которого нет эквивалентных между собой состояний, называются приведенным или
представленным в минимальной форме.

22
19. Вероятностные алгоритмы
19а
В нашем повседневном поведении мы все время сознательно или бессознательно пренебрегаем мате8
матическими вероятными событиями и получаем от этого заметный выигрыш. Трудно даже представить, во
чтобы превратилась бы наша жизнь, если мы постоянно учитывали бы все теоретические возможные, но
маловероятные случаи.
Рассмотрим этот фундаментальный эффект на сравнительно простом примере. Предположим, что на
расстоянии одного шага от нас (либо влево, либо вправо) лежит записка с не известным нам числом. Спра8
шивается: сколько надо сделать шагов, чтобы узнать, четное оно или нечетное. Ясно, что гарантировать от8
вет мы можем, только имея возможность сделать три шага. Если нас устраивает ответ с вероятностью 0,5,
то достаточно 0 шагов: не двигаясь с места, мы прибегаем к жребию и получаем результат с достоверной
вероятностью 0,5. Ограничим себя одним шагом. Оказывается, мы можем выбрать такую стратегию, что
при любом реальном положении записи вероятность правильного ответа будет 0,75. Для этого надо посту8
пить так: жребием определяем, идти нам влево или вправо, и если не обнаруживаем записи, то снова при8
бегаем к жребию (на этот раз, чтобы сказать: четное это число или нечетное).
Приведенный пример показывает, что вероятностные (стохастические) алгоритмы, т.е. алгоритмы, преду8
сматривающие возможность обращения к жребию (на определенных этапах своей работы), могут давать экономию во
времени работы, т.е. число шагов за счет замены абсолютной достоверности результата на достоверность с высокой ве8
роятностью. Конечно, вероятность 0,75 , полученная в примере, не очень высокая, но это был только пример, более слож8
ные конструкции позволяют увеличивать эту вероятность.
Как и в обычной теории алгоритмов, в теории вероятностных алгоритмов выделяют две стороны: каче8
ственную и сложностную.
При разумных определениях с помощью вероятностных алгоритмов можно вычислить в точности тот же
запас функций, что и посредством обычных детерминированных алгоритмов. Поэтому привлечение веро8
ятности не дает ничего нового в качественную сторону теории алгоритмов. По8другому обстоит дело со
сложностью. Выигрыш во времени вычисления, который можно получить, используя случайность при по8
строении, является заметным.
В теории вероятностных алгоритмов, так же как и в обычном случае, используются не реальные, а аб8
страктные вычисления устройства. Обычно это устройство одно из двух типов:
1) конечные автоматы;
2) машины Тьюринга.
Отличие вероятностного устройства от детерминированного состоит в том, что программа предусматри8
вает специальную команду: «Обратись к жребию». От результата жребия зависит, какая команда будет ис8
пользоваться на следующем шаге. Сам жребий можно представить себе как результат датчика случайной
буквы, выбираемой из конечного алфавита. Этот датчик работает по схеме независимых испытаний с рав8

20а 20. Два подхода меры сложности алгоритма.


Расчет трудоемкости алгоритма и временные оценки
Первый подход состоит в том, что рассматривается сложность самого алгоритма, например объем про8
граммы машины Тьюринга, т.е. произведение количества внутренних состояний машины на количество
букв рабочего алфавита в общем случае шире, чем входной алфавит. Второй подход основывается на
сложности процесса вычислений, например по времени или объему вычислений. Оценим сложности вычи8
слений, носящих, как правило, асимптотический характер, т.е. время и емкость рассматриваемой функции
от длины подаваемого на вход аргумента; сама эта длина устремляется к бесконечности.
Выигрыш в сложности, достигаемый при переходе от одних алгоритмов к другим, тоже оценивается
асимптотически. Доказано, что время порядка O(n2), нужное для распространения симметрии слов длины
n на детерминированных машинах, можно заменить на O(nlog n) для вероятных машин со сколь угодной ве8
роятностью.
Вообще говоря, сложность вычислений на детерминированных и на вероятных машинах должна пони8
маться по8разному. Для детерминированных машин это число шагов или объем внешней памяти, затра8
ченные на обрабатываемый документ, вплоть до появления результата. Для вероятностных машин сам
результат данного числа шагов или после затраты данного объема памяти возникает лишь с той или иной
вероятностью. Поэтому сама оценка сложности носит вероятностный характер. Говорят, что машина выда8
ет результат Y для аргумента X со сложностью m и с вероятностью p, если при подаче на вход аргумента X
с вероятностью не меньше, чем p, наступает следующее событие: машина, израсходовав не более чем m
«единиц сложности», останавливается с результатом Y. Вероятностный подход связан с большими значе8
ниями n. И если интересоваться вычислениями с высокой степенью вероятности, то можно ожидать, что
реальный выигрыш во времени и емкости не будет иметь места при малых значениях n. Во всяком случае,
определение размера n, при котором в принципе возможен выигрыш от применения вероятностных алго8
ритмов, является важной задачей. На вероятностных машинах Тьюринга можно вычислять только функции,
которые вычисляются на детерминированных машинах. Для некоторых важных функций переход от детер8
минированных машин к вероятностным дает значительную экономию вычисляемых ресурсов. Остается не8
известным, бывают ли нетривиальные функции, где такой экономии получить нельзя.
Расчет трудоемкости алгоритмов и временные оценки
Для получения функции трудоемкости алгоритма, представленного в формальной степени некоторой аб8
страктной машины, необходимо уточнить понятие элементарных операций в соответствии с языком высо8
кого уровня. В качестве таких элементарных операций предлагается использовать следующее: простое
присваивание; одномерную индексацию; арифметические операции; операции сравнения; логические
операции.

23
но вероятными исходами. Если говорить о вероятных машинах Тьюринга, то работу такой машины
19б
можно представить себе следующим образом: имеются две альтернативные ветви программы, и ма8
шина перед каждым своим шагом с вероятностью 0,5 выбирает одну из них в качестве руководства к дей8
ствию. Замечено, что правильный результат при этом может получиться со сколько угодной степенью до8
стоверности. Основная цель вероятностной теории алгоритмов может быть достигнута при переходе от
вычислимых функций на детерминированных машинах, причем со сколь угодной высокой вероятностью.
Как же определяется сам выигрыш? Выигрыш определяется как уменьшение выбора сложности. К вопросу
о мере сложности возможны два подхода.

20б Теперь анализ трудоемкости основных алгоритмических конструкций в общем виде сводится к сле8
дующим положениям.
1. Следование.
Трудоемкость этой конструкции равна сумме трудоемкости блоков, следующих друг за другом.
F = f1+…+fk, k — количество баллов.
2. Ветвление.
If(l) then
f «then»
else
f «else»
Общая трудоемкость этой конструкции требует анализа вероятности выполнения переходов на блоки и
определяется следующим образом:
F = f «then» p + f «else» (1+p)
3. Цикл.
for i=1 to N
end i = i+1
if iN. После сведения конструкции к элементарным операциям определяется трудоемкость. F = 1+3N+Nf
«тела цикла».

24
21а 21. Метод прямого определения среднего времени.
Классификация алгоритмов по виду функции трудоемкости
Оценим общее время работы алгоритма.
TA (N) = FA(N) tmin/ 3.
Метод прямого определения среднего времени. В этом методе также производится совокупный ана8
лиз по трудоемкости FA(N), после чего на основе прямого эксперимента различных значений N определя8
ется среднее время работы данной программы Тэ.
На основе известной функции трудоемкости рассчитывается среднее время на обобщенную элементар8
ную операцию, порождаемую данным алгоритмом,
__ компилятором и компьютером.
Среднее время на одну операцию: tA = Тэ/Fэ(Nэ).
Эти данные могут быть интерполированы или экстраполированы на другие значения размерности задач.

TA (N) = FА(N)tA

Пример пооперативного временного анализа


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

(a + bi) (c + di) = (ac – bd) + (ad + bc)I = e + fi

Рассмотрим два алгоритма вычисления этого произведения:

А1. e = a c – b d , А = a d + b c
А2. z1 = c (a + b), z2 = b (d + c) , z3 = z1 – z2, f = z1 + z3

Запишем результат пооперационного анализа:

f*4on f*3on
f±2on f±5on

{ }{ } { }{ }

fA1=8on fA2 = 13on


По совместимости полных операций алгоритма А2 уступает алгоритм А1, однако в реальных компьюте8
рах операция умножения требует операции большего времени, чем операция сложения, и можно путем по8

22а 22. Разрешимые и перечислимые множества


Пусть имеется некоторый алфавит. Обозначим через S множество всех слов в данном алфавите, а через
М — подмножество множества S.
Определение 1. Множество М называется разрешимым, если для него существует алгоритм, решаю8
щий проблему вхождения слова х в М.
Определение 2. Множество М называется эффективно перечислимым, если существует алгоритм,
позволяющий перечислить все элементы этого множества (возможно, с повторениями).
Теорема 1. Если множества М и L эффективно перечислимы, то эффективно перечислимы множества
ML и МL.
Доказательство. Пусть множества М и L эффективно перечислимы. Тогда для каждого из них существу8
ет свой алгоритм, позволяющий перечислить все элементы данного множества. Алгоритм для эффектив8
ного перечисления множеств ML и ML получается путем одновременного применения алгоритмов для эф8
фективного перечисления множеств М и L.
Теорема 2 (Поста). Множество М разрешимо тогда и только тогда, когда оно само и его дополнение эф8
фективно перечислимы.
Доказательство. Пусть множество М и его дополнение «М эффективно перечислимы, т.е. существует
алгоритм А и В, с помощью которых можно перечислить элементы этих множеств. Но тогда при перечисле8
нии элементов множеств М и СМ в их списке встретится элемент х. Следовательно, существует алгоритм
С, позволяющий узнать, принадлежит элемент х к множеству М или не принадлежит.
Пусть множество М разрешимо. Тогда существует алгоритм, решающий проблему вхождения х в М.
Пользуясь этим алгоритмом, составим список элементов, входящих в М, и список элементов, входящих в
СМ. Следовательно, мы получим два алгоритма А и В, позволяющих перечислить множества М и СМ. При8
мерами эффективно перечислимых множеств являются:
1) множество М = {1,4,9, … , n2, …} квадратов натуральных чисел;
2) множество упорядоченных пар натуральных чисел.
Действительно, множество М = {n2} перечислимо, т.к. для получения его элементов нужно последова8
тельно брать натуральные числа и возводить их в квадрат. Более того, это множество является также и раз8
решимым: для проверки того, принадлежит ли некоторое натуральное число х множеству М, нужно разло8
жить число на простые множители, и это даст возможность установить, является ли оно точным квадратом.
Множество упорядоченных пар натуральных чисел может быть эффективно перечислено с помощью так
называемого диагонального метода.
Теорема 3. Существует перечислимое, но неразрешимое множество натуральных чисел.
Для доказательства теоремы, как это следует из теоремы Поста, достаточно привести пример такого
множества натуральных чисел U, которое само было бы перечислимым, а его дополнение CU перечисли8

25
операционного анализа ответить на вопрос, при каких условиях алгоритм А2 предпочтительнее алго8
21б
ритма А1.
Классификация алгоритмов по виду функции трудоемкости
В зависимости от влияния исходных данных на функцию трудоемкости алгоритма можно принять следую8
щую классификацию, которая имеет практические значения для анализа алгоритма.
1 группа — количественно зависимые алгоритмы. Это алгоритмы, функция трудоемкости которых за8
висит только от размерности конкретного входа и не зависит от конкретных значений.
FA(A). Примерами с количественно зависимой функцией трудоемкости могут служить алгоритмы для
стандартных операций с массивами и матрицами.
2 группа — параметрически зависимые алгоритмы. Это алгоритмы, трудоемкость которых определя8
ется не размерностью входа (как правило, она фиксирована), а конкретными значениями обрабатываемых
слов памяти.
FA(P1, …, Pm). Примерами алгоритмов с параметрически зависимой трудоемкостью являются алгоритмы
вычисления стандартных функций с заданной точностью путем вычисления соответствующих степенных
рядов. Такие алгоритмы имеют на входе два числовых значения.
3 группа — количественноIпараметрические алгоритмы. В большинстве практических случаев функ8
ция трудоемкости зависит и от количества данных на входе, и от входных данных. В качестве примера мож8
но привести алгоритмы численных методов, в которых параметрически зависимый внешний цикл от точно8
сти включает в себя количественно8зависимый фрагмент по размерности.
Среди параметрически зависимых алгоритмов можно выделить еще одну группу, для которой количество
операций зависит от порядка расположения исходных объектов. Такие алгоритмы называются порядковоI
зависимыми. Примерами таких алгоритмов могут служить некоторые алгоритмы сортировки, алгоритмы
поиска минимума и максимума в массиве.

22б мым не было. Пусть Мо, Мг, М2, ... — эффективное перечисление всех перечислимых множеств нату8
ральных чисел, т.е. такое перечисление, что по любому п N можно восстановить само множество Ма.
Рассмотрим теперь алгоритм А, который последовательно перечисляет все элементы множества U. На
шаге с номером (т, n) этот алгоритм вычисляет элемент с номером т множества Мn, и если этот элемент
совпадает с n, то он относит его в множество U, т.е. n↔ U n Мn. Отсюда ясно, что множество CU отличается
от любого перечислимого множества хотя бы одним элементом, так как CU состоит из всех таких элемен8
тов n, что nМn. Поэтому CU не является перечислимым. Следовательно, согласно теореме Поста, U не раз8
решимо. Доказанная теорема фактически включает в себя в неявном виде теорему Геделя о неполноте
формальной арифметики, приведенную ранее без доказательства.

26
23а 23. Уточнение понятия алгоритма
В истории математики накопилось много случаев длительных и часто безрезультатных поисков тех или
иных алгоритмов. При этом, естественно, возникало сомнение в существовании алгоритма.
Одним из ярких примеров такого случая является история решения десятой проблемы Д. Гильберта.
В 1900 г. на Втором международном математическом конгрессе в Париже немецкий математик Давид
Гильберт огласил список 23 трудных проблем, на важность решения которых он обращал внимание мате8
матической общественности. Среди них была и следующая 108ая проблема Гильберта: требуется вырабо8
тать алгоритм, позволяющий для любого диофантова уравнения выяснить, имеет ли оно целочисленное ре8
шение.
Поиски решения десятой проблемы Гильберта привлекли внимание многих математиков и длились око8
ло 70 лет. Только в 1968 г. молодым математиком Ю. Матиясезичеком было доказано, что нет алгоритма,
дающего решение поставленной задачи.
Интуитивное определение алгоритма хотя и не строгое, но настолько ясное, что не дает оснований для
сомнений в тех случаях, когда речь идет о найденном алгоритме решения конкретной задачи.
Положение существенно меняется, когда возникает алгоритмическая проблема, решение которой не
найдено, и требуется установить, имеет ли она решение.
Действительно, в этом случае нужно либо доказать существование алгоритма, либо доказать его отсут8
ствие. В первом случае достаточно дать описание фактического процесса, решающего задачу. При этом
достаточно и интуитивного понятия алгоритма, чтобы удостовериться в том, что описанный процесс есть
алгоритм. Во втором случае нужно доказать несуществование алгоритма, а для этого нужно точно знать, что
такое алгоритм. Между тем для общего понятия алгоритма точного определения до 19308х гг. не было, и по8
этому выработка такого определения стала одной из важных задач современной математики. При форму8
лировке этого определения пришлось преодолеть многие трудности.
Во8первых, такое определение должно было правильно отражать сущность интуитивного определения
алгоритма. Во8вторых, оно должно было быть совершенным с точки зрения формальной точности.
И, наконец, различные исследователи этой проблемы исходили из разных технических и логических со8
ображений, и вследствие этого было выработано несколько определений алгоритма. Однако со временем
выяснилось, что все эти определения равносильны, т.е. определяют одно и то же понятие. Это и есть со8
временное понятие алгоритма. В подходах к определению понятия алгоритма можно выделить три основI
ных направления.
Первое направление связано с уточнением понятия эффективно вычислимой функции. Этим занима8
лись А. Черч, К. Гедель, С. Клини. В результате был выделен класс так называемых частично8рекурсив8
ных функций, имеющих строгое математическое определение. Анализ идей, приведших к этому классу

24а 24. Алгоритмическая разрешимость. Вычислимые функции


Понятие алгоритма формализовало вопрос об алгоритмической разрешимости того или иного класса за8
дач, ставившихся совершенно определенно: «Существует ли какая8либо стандартная форма алгоритма,
решающая данный класс задач. Отличительная особенность теории алгоритма состоит в том, что она ис8
пытывает на разрешимость наиболее общие проблемы».
Алгоритмическую разрешимость следует понимать в том смысле, что не существует единого алгоритма
для решения проблемы в целом. Однако это вовсе не означает неразрешимость более узких классов задач
данной проблемы.
Если для нерешенных проблем еще есть надежда найти разрешимый алгоритм, то алгоритмическая не8
разрешенность раз и навсегда делает невозможными всякие попытки поиска такого алгоритма.
Частично8рекурсивные и общерекурсивные функции
Для алгоритмических проблем типичным является то обстоятельство, что требуется найти алгоритм для
решения задачи, в условия которой входят значения некоторой конечной системы целочисленных параме8
тров хг, х2, ..., хn, а искомым результатом также является целое число у. Следовательно, стоит вопрос о су8
ществовании алгоритма для вычисления значений числовой функции у, зависящей от целочисленных зна8
чений аргументов хх, х2, ... xn.
Определение 1. Функция g = f(x1 , x2 , … xn) называется эффективно вычислимой, если существует ал8
горитм, позволяющий вычислить ее значения. Поскольку в этом определении алгоритм понимается в инту8
итивном смысле, то и понятие эффективно вычислимой функции является интуитивным.
Однако переход от алгоритма к эффективно вычислимой функции дает определенные преимущества.
Дело в том, что те требования, которые предъявляются к алгоритму в его характерных чертах, выполняют8
ся для совокупности всех вычислимых функций, которые носят название совокупности рекурсивных функ8
ций.
Гедель впервые описал класс всех рекурсивных функций как класс всех числовых функций, определя8
емых в некоторой формальной системе. Черч в 1936 г. пришел к тому же классу функций исходя из других
предпосылок. Здесь построение класса вычислимых функций строится следующим образом.
Суперпозиция функций
Рассмотрим функции f1(x1, x2, …, xn), f2(x1, x2, …, xn),…, fm(x1, x2, …, xn) и функцию ψ(x1, x2,…, xm); функцию
ϕ1 (x1, x2,…, xn), определяемую равенством ψ(x1, x2 ,…, xn) = ϕ(f1(x1, x2,…, xn), f2(x1, x2,…, xn),…, fm(x1, x2,…,
xn)).
Будем говорить, что функция ψ получена функцией ϕ и f1, f2, fm суперпозицией.
Определение 2. Функция f(x1, x2,…, xn) называется частичноIрекурсивной, если она может быть полу8
чена в конечное число шагов из простейших функций при помощи операций суперпозиции, схем прими8
тивной рекур сии и μ+оператора.

27
23б функций, дал им возможность высказать гипотезу о том, что класс эффективно вычислимых функций
совпадает с классом частично8рекурсивных функций.
Второе направление связано с машинной математикой. Здесь сущность понятия алгоритма раскрыва8
ется путем рассмотрения процессов, осуществляемых в машине. Впервые это было сделано Тьюрингом,
который предложил самую общую и вместе с тем самую простую концепцию вычислительной машины. Ее
описание было дано Тьюрингом в 1937 г. При этом он исходил лишь из общей идеи работы машины как ра8
боты вычислителя, оперирующего в соответствии с некоторым строгим предписанием.
Третье направление связано с понятием нормальных алгоритмов, введенным и разработанным россий8
ским математиком А. А. Марковым.

24б Определение 3. Функция f(x1, x2,…, xn) называется общерекурсивной, если она частично8рекур8
сивна и всюду определена.
Примерами общерекурсивных функций являются функции:
1) λ(x);
2) O(x);
3) Inm(x);
4) f(y, x)= y + x;
5) f(x, y)=x y;
6) f(x, y) = x + n.
Тезис А. Черча. Каждая интуитивно вычислимая функция является частично8рекурсивной.
Этот тезис нельзя доказать, так как он связывает нестрогое математическое понятие интуитивно вычи8
слимой функции со строгим математическим понятием частично8рекурсивной функции. Но этот тезис мо8
жет быть опровергнут, если построить пример функции интуитивно вычислимой, но не являющейся частич8
но8рекурсивной.

28
25а 25. Машина Тьюринга. Реализация алгоритма в машине Тьюринга
Если для решения некоторой массовой проблемы известен алгоритм, то для его реализации необходимо
лишь четкое выполнение предписаний этого алгоритма. Автоматизм, необходимый при реализации алго8
ритма, естественно, приводит к мысли о передаче функции человека, реализующего алгоритм, машине.
Идею такой машины предложили в 19308е гг. американский математик Э. Пост и английский математик А.
Тьюринг.
Рассмотрим один из вариантов указанной машины, которая носит название машины Тьюринга.
Устройство машины Тьюринга включает в себя:
1) внешний алфавит, т.е. конечное множество символов А = {а0 , а1, а2, … , аn}. В этом алфавите в виде
слова кодируется та информация, которая подается в машину. Машина перерабатывает информацию, по8
данную в виде слова, в новое слово;
2) внутренний алфавит машины, состоящий из символов g0, q1 , q2, ..., qm, п, л, н. Символы g0, q1, q2, ...,
qm выражают конечное число состояний машины. Для любой машины число состояний фиксировано.
Два состояния имеют особое назначение: q1— начальное состояние машины, q0 — заключительное со8
стояние (стоп8состояние). Символы п, л, н — это символы сдвига (вправо, влево, на месте);
3) бесконечная в обе стороны лента (внешняя память машины). Она разбита на клетки. В каждую клетку
может быть записана только одна буква. Пустую клетку будем обозначать символом a0;
4) управляющая головка. Она передвигается вдоль ленты и может останавливаться напротив какой8либо
клетки, т.е. воспринимать символ. В одном такте работы машины управляющая головка может сдвигать8
ся только на одну клетку (вправо, влево) или оставаться на месте.
В зависимости от того, какая буква на ленте обозревается управляющей головкой (в нашей записи at) и в
каком состоянии (в нашей записи qj) находится машина, в данном такте вырабатывается команда, состоя8
щая из трех элементов:
1) буквы внешнего алфавита, на которую заменяется обозреваемая буква (ау);
2) адреса внешней памяти для следующего такта;
3) следующего состояния машины (gs).
Совокупность всех команд образует программу машины Тьюринга. Программа представляется в виде
двумерной таблицы и называется Тьюринговой функциональной схемой.
Для простоты изображения различных конфигураций машины Тьюринга будем в дальнейшем записывать
информацию в виде слова, не изображая ленты и ее разбивки на клетки, а вместо изображения управляю8
щей головки и состояния машины записывать только состояние машины.
На ряде примеров покажем, как строятся тьюринговы машины, реализующие некоторые простые ариф8
метические алгоритмы.

26а 26. Нормальные алгоритмы Маркова


Как и ранее, будем называть алфавитом А всякое непустое конечное множество символов, а сами сим8
волы алфавита будем называть буквами.
В алфавите А всякая конечная последовательность букв называется пустым словом.
Обозначим за Х* множество слов в некотором алфавите Х, будем говорить, что слово g Х* имеет вхожде8
ние в слово p Х* , если выполняется одно из следующих равенств: p = g, p = g1g — начало слова, p = g1g2 —
конец слова, p = g1gg2 — середина слова.
Вхождение слова может определяться неоднозначно: p = g1gg2 gg3. Пусть задан алфавит Х и пусть сим8
волы • , →Х не принадлежит этому алфавиту.
Выражение вида а→b, где а и b — слова из множества Х*. a, b Х* , называется подстановкой в алфавиI
те Х, а выражение аb будем называть заключительной подстановкой. Конечный упорядоченный набор
подстановок в алфавите Х* называется схема подстановок нормального алгоритма Маркова в алфаI
вите Х. Замену в слове p некоторого вхождения слова q на вхождение слова U (p→U) будем называть реалиI
зацией подстановки.
Нормальным алгоритмом Маркова со схемой подстановок a1→b1, a2→b2, …, an→bn в алфавите Х назы8
вается процесс реализации подстановок, определяемый следующими правилами.
Для заданного исходного слова p0(p0 Х*) просматриваем схему подстановок, начиная с первой; произ8
водим поиск в слове p0 левой части рассматриваемой подстановки, слово p0 просматриваем слева напра8
во до первого обнаружения левой части подстановки. Если такое вхождение имеется, то оно заменяется
правой частью подстановки, результат объявляется словом p1.
Если в слово p0 не имеет вхождения ни одна из левых частей подстановок, то p0 объявляется результа8
том применения нормального алгоритма Маркова с данной схемой подстановок к слову p0. Пусть приме8
нением нормального алгоритма Маркова построено слово pi; определим, как к нему применяется нормаль8
ный алгоритм Маркова.
Если в слово pi не имеет возможностей ни одна из левых частей подстановок данной схемы, то слово pi
является результатом применения нормального алгоритма Маркова к следующему p0.
Если для pi найдено вхождение в слово левой j8ой части подстановки, то производится замена aj на bj. Ре8
зультат объявляется словом pi+1. Если реализуемая подстановка была конечной, то алгоритм окончен, и
слово pi+1 объявляется результатом его применения к слову p0.
Если оказалось, что такое слово уже было, то алгоритм заканчивается, предполагается, что алгоритм к
слову p0 неприменим. В противном случае алгоритм продолжается.

pi+1 = pm(m = 0,1, …, i)

29
Основная гипотеза теории алгоритмов
25б
Машина Тьюринга дает один из путей уточнения понятия алгоритма. В связи с этим возникают во8
просы: насколько общим является понятие машины Тьюринга? Можно ли считать, что способ задания алго8
ритмов с помощью машины Тьюринга является универсальным? Может ли всякий алгоритм задаваться та8
ким образом? На эти вопросы современная теория алгоритмов предлагает ответ в виде следующей
гипотезы.
Всякий алгоритм может быть задан посредством тьюринговой функциональной схемы и реализован в со8
ответствующей машине Тьюринга. Эта гипотеза называется тезисом Тьюринга. Ее нельзя доказать, так
как она связывает нестрогое определение понятия алгоритма со строгим определением понятия машины
Тьюринга. Эта гипотеза может быть опровергнута, если удастся привести пример алгоритма, который не
может быть реализован с помощью тьюринговой функциональной схемы.

26б Пример
Рассмотрим алгоритм, состоящий из Х= {0,1}, схема подстановок имеет вид: 010 10
110→10
111→101
001→1
p0 = 111001011
p1 = 11101011
p2 = 1111011
p3 = 1110111
p4 = 1101111
p5 = 1011111 — результат.
Благодаря компактным правилам замены алгоритм Маркова представляет собой мощное средство опи8
сания алгоритмов. На сегодня нет таких алгоритмов над последовательностями знаков, для которых не су8
ществовало бы алгоритмов Маркова, выполняющих ту же самую обработку сообщений.
Функция f: Х* →Х* называется функцией, вычислимой по Маркову, если существует нормальный алгоритм
Маркова, вычисляющий ее.
Функция такого же вида называется функцией, вычислимой по Тьюрингу, если существует вычисляющая
ее машина Тьюринга.

30
27а 27. Неразрешимые алгоритмические проблемы.
Проблемы распознавания, эквивалентности
Неразрешимость проблемы распознавания выводимости в математической логике
Как известно, аксиоматический метод в математике заключается в том, что все предложения (теоремы)
данной теории получаются посредством формально8логического вывода из нескольких предложений (ак8
сиом), принимаемых в данной теории без доказательства.
В математической логике описывается специальный язык формул, позволяющий любое предложение ма8
тематической теории записать в виде вполне определенной формулы, а процесс логического вывода из по8
сылки А следствия В может быть описан в виде процесса формальных преобразований исходной формулы.
Это достигается путем использования логического исчисления, в котором указана система допустимых
преобразований, изображающих элементарные акты логического умозаключения, из которых складывает8
ся любой, как угодно сложный формально8логический вывод.
Теорема Черча. Проблема распознавания выводимости алгоритмически неразрешима.
Неразрешимость проблемы распознавания самоприменимости
Введем предварительно понятие шифра машины Тьюринга. До сих пор мы записывали программу маши8
ны Тьюринга в виде двумерной таблицы т п. Однако ее можно изобразить в одномерном варианте, записы8
вая последовательно пятерки символов так, что первый символ пятерки указывает столбец таблицы, вто8
рой — строчку таблицы, а последующие три — символы той тройки, которая располагается в таблице на
пересечении указанных строки и столбца.
Подобную строчку из единиц и нулей, составленную для функциональной схемы или для отдельной кон8
фигурации, называют шифром функциональной схемы, или шифром конфигурации.
Пусть теперь на ленте машины Тьюринга изображен ее же собственный шифр, записанный в алфавите
машины. Возможны два случая:
1) машина применима к своему шифру, т.е. она перерабатывает этот шифр и после конечного числа тактов
останавливается;
2) машина не применима к своему шифру, т.е. машина никогда не переходит в стоп8состояние.
Следовательно, сами машины (их шифры) разбиваются на два класса: класс самоприменимых и класс не8
самоприменимых тьюринговых машин. Поэтому возникает следующая массовая проблема: проблема рас+
познаваемости самоприменимости. По любому заданному шифру нужно установить, к какому классу отно8
сится машина, зашифрованная им: к классу самоприменимых или несамоприменимых.
Теорема. Проблема распознавания самоприменимости алгоритмически не разрешима.
Доказательство. Предположим противное. Пусть такая машина А существует. Тогда в А всякий сам8
оприменимый шифр перерабатывается в какой8то символ ? (имеющий смысл утвердительного ответа на
поставленный вопрос о самоприменимости), а всякий несамоприменимый шифр — в другой символ т

28а 28. Метод резолюций и его сравнение с методом естественного вывода


И семантические таблицы, и естественный вывод были неудобны для реализации на примитивных маши8
нах 19608х гг. Ситуация усложнялась еще тем, что реализация требует сложных структур данных и методи8
ки не ниже по уровню, чем современное объективно8ориентированное программирование, а этих средств
в те времена еще не было. Поэтому был изобретен метод, идеально подходивший для реализации на до8
статочно примитивных вычислительных системах и завоевавший практически монопольное положение за
последние десятилетия. Разберем сам метод, его достоинства и недостатки.
Метод резолюции базируется на приведении формул классической логики к стандартной форме. Тавто8
логии, используемые при этом приведении, не сохраняются в неклассических логиках, и поэтому в прин8
ципе метод резолюций с самого начала создавался (в отличие от семантических таблиц и естественного
вывода) как ориентированный на классическую логику. Такая специализация явилась одной из предпосы8
лок его достаточно высокой эффективности для ряда задач и, соответственно, его успеха.
Приведение формулы к виду, пригодному для применения метода резолюций, производится в несколь8
ко этапов. Первый этап — вынесение всех кванторов вперед. При этом пользуются следующими эквива8
лентностями классической логики:
1) ∀xA(x)∧ B⇔∀x(A(x)∧B);
2) ∀xA(x)∨ B⇔∀x(A(x)∨B);
3) ∀xA(x)⇒ B)⇔∃x(A(x)⇒B);
4) ∃∀xA(x)⇒ B)⇔∀x(A(x)⇒B);
5) ¬∀xA(x)⇔∃x¬A(x);
6) ∃xA(x)∧ B⇔∃x(A(x)∧B);
7) ∃xA(x)∨ B⇔∃x(A(x)∨B);
8) (B⇒∀xA(x))⇔∀x(B⇒A(x));
9) (B⇒∃xA(x))⇔∃x(B⇒A(x));
10) ¬∃xA(x)⇔∃x¬A(x).
Заметим, что эти правила точно так же могут использоваться и наоборот, для вноса кванторов внутрь
формулы. Поэтому появляются стандартные формы в классической логике: предваренная, где кванторы
вынесены наружу, и водворенная, где они внесены внутрь.
Рассмотрим пример:

∀x(∃y(∀zB(z)⇒∀uD(u,y))∨∃v(∀wE(v,w)gH(x,g)))

Предваренной формой этой формулы будет, в частности:

∀x∃y∃z∀uEv∀w∀g((B(z)⇒D(u,y)))∨E(v,w)∧ H(x,g)))

31
27б (имеющий смысл отрицательного ответа на поставленный вопрос). В таком случае можно было по8
строить и такую машину В, которая по8прежнему перерабатывает несамоприменимые шифры в т, в то
время как к самоприменимым шифрам В уже не применима. Этого можно было добиться путем такого из8
менения схемы машины В, чтобы после появления символа а вместо появления стоп8состояния машина на8
чала бы неограниченно повторять этот же символ.
Следовательно, В применима ко всякому несамоприменимому шифру (вырабатывается при этом символ
т) и применима к самоприменимым шифрам. Но это приводит к противоречию. Действительно:
1) пусть машина В самоприменима, тогда она применима к своему шифру В и перерабатывает его в сим8
вол г; но появление этого символа как раз и должно означать, что В несамоприменима;
2) пусть В несамоприменима, тогда она не применима к В, что должно означать как раз, что В самоприме8
нима. Полученное противоречие доказывает теорему.
Проблема эквивалентности слов для ассоциативных исчислений. Первые результаты об алгоритмиче8
ской неразрешимости были установлены для проблем, возникающих в самой математической логике и в тео8
рии алгоритмов. Сюда относятся и рассмотренные проблемы: проблема выводимости и проблема самоприме8
нимости. Но позже выяснилось, что аналогичные проблемы возникают в самых различных специальных разде8
лах математики. Сюда относятся в первую очередь алгебраические проблемы, приводящие к различным
вариантам проблемы слов. Для каждого ассоциативного исчисления возникает своя специальная проблема
эквивалентности слов.

28б а также, скажем (при другом порядке выноса независимых друг от друга кванторов),

∀x∃v∀g∀w∃y∀u∃z((B(z)⇒D(u,y)))∨E(v,w)∧ H(x,g)))

Водворенной формой будет, в частности:

(∀zB(z)⇒∃y∀uD(u, y))∨∀x∃v(∀wE(v,w)∧∀nH(x,g)

Здесь квантор по x не перенесен еще глубже внутрь потому, что ∃ и ∀ неперестановочны.


Теперь можно дать и определение.
Определение. Формула находится в предваренной форме, если она имеет вид К¬хА(х), где К — после8
довательность кванторов, А кванторов не содержит. Формула находится в водворенной форме, если
область действия ни одного квантора не может быть уменьшена применением эквивалентностей.
Как уже отмечалось, водворенная форма лучше с точки зрения понимания и обратного перехода на есте8
ственный язык. Предваренная форма несколько удобнее для доказательства некоторых математических
результатов. Рассмотрим один из этих результатов, послуживший идейной основой метода резолюций. Ин8
туитивно сочетание кванторов может пониматься как утверждение о существовании функции, стоящей y по
x. Рассмотрим
_ _ предваренную формулу:
KxA(x).
Переменные, связанные квантором всеобщности обозначим через xi, а кванторы существования —через
yi. Тогда наша формула примет вид:
_ ___
∀z1...∀xnA(x, f(x))

32
29а 29. Сколемизация и сколемовские функции.
Теорема Эрбрана, первая и вторая формы
Преобразования вида ∀x1...∀xnA(x,f(x)), называются сколемизацией, а сами функции — сколемовскиI
ми функциями. Теперь возьмем константу С0, если у нас вообще не было нульместных функций, и постро8
им универс из термов, образующихся применением сколемовских функций и имеющимся у нас константам.
Этот универс ввел в рассмотрение Эрбран, и поэтому его называют эрбрановским универсом.
Теорема (теорема
_ _ Эрбрана, первая форма)
Формула KxA(x) ( является противоречием тогда и только тогда, когда найдутся такие системы термов из
эрбрановского универса t1, …, tm, что конъюнкция частных примеров формулы:
∀x1...∀xnA(x,f(x)).
A(t1, f(t1))∧ ... ∧A(t1, f(t1)).
является противоречием в исчислении высказываний.
Доказательство
Построим семантическую таблицу для формулы _ _
|= KxA(x).
Движением по дереву секвенций от корня к листьям сопоставим каждой встретившейся в ней вспомога8
тельной константе терм эрбрановского универса. А именно, в константе, «взятой из воздуха», составим С0.
Константам, получившимся в результате снятия начальных кванторов существования, сопоставим соответ8
ствующие сколемовские константы. Если константа Сk получилась из внутреннего квантора существования,
то предшествующие x1, …, xi были заменены на ранее построенные константы, которым по построению уже
сопоставлены
_ термы r1,…, ri. Тогда сопоставлением Сk терм fj(r1,…, ri). Теперь посмотрим все подстановки
вместо x, произведенные в процессе построения таблицы, и некоторая из них даст нам одну из систем тер8
мов. Первыми шагами построения таблицы для
|=A(t1, f(t1))∧ ... ∧A(t1, f(t1)).
является порождения всех _
|=A(ti, f(ti))
а затем воспроизводим все шаги исходной таблицы, кроме снятия кванторов. Как и обычно, для приме8
нений теоремы нужно поварьировать ее формулировку. Поэтому рассмотрим вторую формулировку теоре8
мы Эрбрана, получившуюся некоторым преобразованием ее контрапозиции. Инвертируем процесс сколе8
мизации, теперь на переменные будем заменять кванторы существования (под высказыванием ∃xP(x)
понимают высказывание, которое является истинным, если существует элемент xM, для которого P(x) ис8
тинно, и ложным
_ _в противном случае. Это высказывание уже не зависит от х.
Формула KxA(x) является тавтологией тогда и только тогда, когда найдутся такие системы термов из эр8
брановского универса tl, …, tm, что дизъюнкция частных примеров формулы

30а 30. Теорема об унификации


Для каждых двух унифицированных последовательностей существует унифицирующая подстановка, на8
крывающая любую другую такую подстановку.
Доказательство. Проведем построение, которое за конечное число шагов даст такую подстановку δ ли8
бо выяснит, что ее нет.
Шаг 0. Вначале положим подстановку пустым шагом.
Шаг 1. Ищем в последовательностях пару термов, каждый из которых начинается с функционального
символа. Если они различны, то две последовательности неунифицируемы, если же они совпадают, заме8
няем члены f(S1, …, Sk) и g(g1, …, gk) на последовательности S1, …, Sk и g1, …, gk соответственно.
После этого шага во всех парах соответствующих друг другу термов хотя бы один член является перемен8
ной либо константой.
Шаг 2. Удаляем из последовательностей все одинаковые члены, находящиеся на одинаковых местах.
Если после этого хотя бы в одном месте встретятся две соответствующие друг другу (различные) констан8
ты, унификация невозможна. Теперь в каждой из пар термов хотя бы один является переменной.
Шаг 3. Если первой парой является пара (x, t), то если t содержит x, заключаем, что унификация невоз8
можна, а если t не содержит x, то добавляем к δ пару (x, t), выбрасываем первые члены из двух последова8
тельностей и заменяем остальные r на r{(x, t)}. Если после этого появились пары, оба компонента которых
не являются переменными, то возвращаемся к шагу 1. Симметрично действуем в случае, когда перемен8
ной является второй компонент пары.
Шаг 4. Если длина обеих последовательностей дошла до 0, унифицирующая подстановка найдена.
Данный алгоритм всегда заканчивает работу, потому что в любом цикле количество переменных умень8
шается хотя бы на 1. То, что построенная унификация накрывает все остальные, легко показать индукцией
по построению. Унифицирующая подстановка, накрывающая все остальные, называется наиболее обI
щим унификатором.
Правило резолюции состоит в том, что для дизъюнктов вида:
_ _
P(t)Q¬P(r)R
_ _
ищется подстановка δ, унифицирующая (t) и r.
Если она находится, то в результате применения правила получается дизъюнкт (Q R)δ. Поскольку в мно8
жестве порядок элементов не играет роли и не может быть дуплицируемых, многие тонкие, но неприятные
вопросы сами собой отпали. Поскольку в методе резолюций рассуждают от противного, формула считает8
ся доказанной, если в результате последовательности резолюций получается ложь, представлением кото8
рой служит пустой дизъюнкт.

33
29б |=A(t1, f(t1)) ... A(tm, f(tm)).
является тавтологией в исчислении высказываний.
Каждое значение логических переменных pi, при котором формула А истинна, представляется как конъ8
юнкция атомарных формул или атомов: элементарных формул либо их отрицаний. Такие конъюнкции на8
зываются конъюнктами. Конъюнкты дизъюнктивно объединяются, _ и получается формула , эквивалентная
А. Отрицанием конъюнктивной нормальной формулы для A получается дизъюнктивная нормальная форма
для А, в которой атомарные формы соединяются дизъюнктами, а получившиеся дизъюнкты — дизъюнк8
циями.
Самым блестящим достижением Дж. Робинсона и метода резолюций явилась формулировка крупноблоч8
ного правила, соединяющего в себе обобщенную подстановку и шаг логического вывода. Это правило и бы8
ло названо правилом резолюции.
Дадим критерий, когда две последовательности термов с одинаковым числом членов могут быть приве8
дены к одинаковому виду подстановкой вместо свободных переменных.
Определение. Подстановкой называется множество пар вида (x, t), где x —переменная, t — терм, при8
чем все первые члены в этих парах различны. Применение подстановки δ к терму t обозначается δt и опре8
деляется индуктивно (так же, как в определении подстановки для высказываний):
1) xδ = t, если (x, t)δ;
2) xδ = x, если нет пары (x, t)δ;
3) сδ = с, с—константа;
4) f(t1,…, tn) = f(t1δ,…, tnδ).
Композиция подстановок δω определяется следующим образом:
δ, ω = {(x, δω )| (x, t)δω},
δ≥V⇔∃ V=δ (считается: накрывает V).
Если каждая из двух подстановок накрывается другой, то они эквивалентны. Подстановка δ унифицирует
последовательности термов t1, …, tn и r1,…, rn , если для всех itiδ = riδ.
Легко доказать, что отношение эквивалентности подстановок действительно является эквивалентностью
и что отношение накрытия — предпорядок, согласованный с нею.

30б Пример (Чень, Ли)


Некоторые пациенты любят своих докторов. Ни один пациент не любит знахаря. Значит, ни один
доктор не знахарь.
Решение (Чень, Ли). Переведем посылки и F28заключения на формальный язык:

F1⇔∃x(P(x)∧∀yD(y)⇒L(x,y))),
F2⇔∀x(P(x)⇒∀yQ(y)⇒¬L(x,y))),
G⇔∀xD(x)⇒¬Q(x)).

Поскольку проверяемое утверждение имеет вид F1&F2⇒G, после отрицания оно переходит в F1∧F2⇒G.
При приведении к предваренной форме ни один квантор ∃ не попадает после, так что ни одной сколемов8
ской функции не появляется. В итоге мы получаем следующие дизъюнкты:
1) P(a);
2) ¬D(y)∨L(a,y) — из F1;
3) ¬P(x)∨¬D(y)∨L(x,y) — из F2;
4) D;
5) Q из G.
Методом резолюций получается следующий вывод пустого дизъюнкта:
1) L(a, b) — резольвента (4) и (2);
2) ¬Q(y)∨¬L(a,b) — резольвента (3) (5);
3) ¬L(a,b) — резольвента (5) и (6), (6) и (8).

34
31а 31. Рекурсивные функции.
ПримитивноIрекурсивные функции. Оператор минимизации
Пусть имеется k8местная функция f и k n8местных функций g1, …, gk. Тогда из них можно сформировать
одну n8местную функцию:
(x1, …, xn)→f(g1(x1, …, xn),…, gk(x1, …, xn)).
Другая операция называется операцией рекурсии, или примитивной рекурсии, применяется к k8местной
функции f и (k + 2)8местной функции g. Ее результатом будет (k+1)8местная функция h, определенная так:
h(x1,…, xk,0) = f(x1,…, xk);
h(x1,…, xk, y + 1) = g(x1, …, xk, y, h(x1, …, xk, y)).
Функции проекции позволяют выполнять «неоднородные» подстановки: скажем, можно получить функцию
(x, y)→f(h(x), h(y, x, y(, x)
из функций f и h, комбинируя их с функциями проекции: сначала получаем функцию
(x, y)→h(y, x, y)
(подстановка в π/2), затем
(x, y)→h(y, x, y)
(подстановка π2/2, π/2, π2/2 в h), затем получаем две функции вместе с функцией π/2 подставляем в f.
Рассмотрим базовые функции (базовые схемы), мы будем изучать всюду определенные числовые функ8
ции.
1. Функция константа ϕ(x1, …, xn) = C, xiN, f: Nn→N.
2. Функция следования: S(x) = x + 1.
3. In (x1, … , xn) = xi — функция, возвращающая значение одного из аргументов.
Эти функции являются рекурсивными по определению. К ним добавляются две схемы.
4. Операции суперпозиции:
ψ(x1, x2, … , xn) = f(ϕ1(x1, x2, … , xn), …, ϕm(x1, x2, … , xn)).
5. Оператор примитивной рекурсии:

⎪ (x 1, x 2 ,..., x n , 0) = ψ(x 1, x 2,..., x n ) ⎫
⎨ ⎬
⎪(x 1, x 2,..., x n , y +1) = f (x 1, x 2,..., x n, y , (x 1, x 2,..., x n, y )) ⎭

Определение. Функция ϕ называется примитивноIрекурсивной, если она получена из конечного чи8


сла функций ϕ1, …, ϕm, таких, что каждая из них введена по одной из базовых схем.
Теорема. Каждая из схем 1—5 может быть реализована на соответствующей машине Тьюринга.

32а 32. Тезис Черча. ПримитивноIрекурсивные множества

Тезис Черча. Класс задач, решаемых в любой формальной алгоритмической модели, совпадает с клас8
сом задач, которые могут быть решены интуитивно алгоритмическими методами.
Доказать тезис Черча нельзя, потому что в его формулировку входит интуитивное понятие алгоритма,
которое строго не определяется.
Утверждение о представленности точно очерченного класса алгоритмов (т.е. о представительности со8
ответствующей вычислительной модели). Следовательно, мы понимаем этот тезис в широком смысле. Те8
зис Черча в узком смысле утверждает, что всякая вычислимая функция с натуральными аргументами и зна8
чениями частично8рекурсивна. Эту формулировку, строго говоря, следовало бы назвать тезисом
Черча8Клини, поскольку первоначальная формулировка Черча говорит лишь о всюду определенных вычи8
слимых функциях и утверждает их общерекурсивность (Клини, 1952 г.). Тьюринг в (Тьюринг, 1936 г.) и Пост
в (Пост, 1936 г.) утверждали, что класс всех всюду определенных функций, вычислимых в определенной
модели, совпадает с классом всех всюду определенных вычислимых функций (для фиксированных ансам8
блей). Поэтому тезис Черча может быть назван тезисом Тьюринга, или тезисом Поста, или тезисом Черча—
Тьюринга—Поста. Вспоминая роль Клини в форму8лировании этого тезиса — переход к частично8рекур8
сивным функциям, можно также называть его тезисом Черча—Тьюринга—Поста—Клини.
ПримитивноIрекурсивные множества
Будем называть множество примитивноIрекурсивным, если его характерная функция примитивно8ре8
курсивна.
Пересечение и объединение примитивно8рекурсивных множеств примитивно8рекурсивны (сложим или
перемножим функции, множествами нулей которых они являются).
Дополнение примитивно8рекурсивного множества примитивно8рекурсивно. Отожествляя множества со
свойствами, можно сказать, что конъюнкции, дизъюнкции и отрицания примитивно8рекурсивных свойств
будут примитивно8рекурсивны. Свойства x = y и x y примитивно8рекурсивны (x = y тогда и только тогда, ког8
да (x – y) + + (y – x) = 0).
В самом деле, есть r — характерная функция графика, т.е. r(x, y) = 1 при y=f(x) и r(x, y) =0 при y±f(x) (для
простоты мы рассматриваем случай функций одного аргумента), то

f(x) = ∑ y×r(x,y),
i=0

а суммирование можно ограничить сверху выражением g(x) и воспользоваться примитивной рекурсив8


ностью ограниченной суммы.

35
31б Доказать, что функция является примитивно8рекурсивной, означает найти ей примитивно8рекур8
сивное описание, т.е. последовательность функции ϕ1, …, ϕm , ϕ = ϕm. Рассмотрим элементарную
арифметическую функцию, допускающую примитивно8рекурсивное описание.
Операция арифметического сложения: ϕ(n, m) = n + m, n, m — натуральные числа. ϕ (n, 0) = ψ(n) = I11 (n) = n
ϕ(n, m + 1) = n + (m + 1) = (n + m) + 1 = S(ϕ(n, m)) = S(I11(n, m, ϕ(n, m))).
Примитивно8рекурсивными является такой тип арифметического умножения:

ϕ (n, m) = nm ϕ(n, m) = |n+m|


ϕ(n, m) = m n ⎧n −m,n ≥ m ⎫ ϕ(n) = n!
ϕ(n, m) = n – m = ⎨ ⎬ ϕ(n, m)=min(n, m)
⎩ 0,n > m ⎭ ϕ(n, m)=max(n, m)
⎧1,n > 0 ⎫
ϕ(n) = Sg(n) = ⎨ ⎬
⎩0,n = 0⎭ ϕ(n, m)=[n / m]

Особое место среди средств рекурсий занимает оператор минимизации. Он по заданной функции ω(x1,
… , xn) позволяет построить новую функцию ϕ(x1, x2, … , xn). Из функции ω(x1, … , xn) составляем уравнение ω(x1,
… , xn+1, y) = = xn для конкретного набора значений набора аргументов ω(x1, … , x0n+1, y) = x0n(*).
Если это уравнение неразрешимо относительно y, то оператор минимизации к этой функции неприме8
ним. Если уравнение разрешимо, то возможно несколько вариантов:
1) первое уравнение разрешено относительно y (решение обозначим через y0), и функция ω определена
для всех предыдущих значений y0.
ω(x01, … , x0n+1, 0), ω(x01, … , x0n+1,y), …, — функция разрешима ω(x01, … , x0n+1, y0 – 1) — функция определена,
тогда оператор минимизации строит функция ϕ из функции ω;
2) для некоторого из предыдущих значений y0i: ω(x01, … , x0n+1, i), I < y0, тогда оператор минимизации не при8
меним.
Для задания функции ϕ нужно учитывать линейный порядок на множестве натуральных чисел 0 < 1 <2 < …
< y0, известно, что y0 — решение уравнения (*). С помощью y0 в (*) упорядоченном множестве выделяется
конечный, т.е. эффективно8натуральный анализируемый отрезок. Мы можем проверить: для всех ли ∀i>y0?
разрешимо уравнение ω(x01 , … , x0n81, i) = x0n (**), проверка этих равенств эффективна так, как их конечное чи8
сло, либо найдется какое8то значение y<y, либо нет. Найдется наименьшее значение y'. удовлетворяющее
исходному равенству, оно объявляется значением функции ϕ(x1, x2, … , xn) = min y. А функция ϕ объявляет8
ся функцией, построенной из функции ω с помощью оператора минимизации.

32б Такой способ определения функции называют ограниченным оператором минимизации, в отли8
чие от неограниченного, где нет заранее известной границы g(x). Как мы видим, в неограниченном
случае получающаяся функция не обязана быть примитивно8рекурсивной.
Ограниченный оператор минимизации можно использовать, чтобы убедиться, что функция x (минималь8
ное простое число, больше x) примитивно8рекурсивна (рассуждение Евклида о бесконечности множества
простых чисел устанавливает, что это число не превосходит x!+1, а факториал примитивно8рекурсивен).
После этого функция n (n+е простое число) легко определяется с помощью рекурсии.
Слова «рекурсивное определение функции» можно понимать и в более широком смысле, нежели мы это
делали (см. выше определение рекурсии или примитивной рекурсии) как любой способ задания функции,
который связывает значение функции в данной ее точке с другими ее значениями. При обсуждении функ8
ции Аккермана есть такие схемы рекурсивных определений, которые выводят из класса примитивно8рекур8
сивных функций.

36
33а 33. ЧастичноIрекурсивные функции. Другие виды рекурсии
Совместная рекурсия. Пусть две одноместные функции f и g заданы соотношениями:

f(0)=a; g(0)=b; f(n+1)=F(n, f(n), g(n)); g(n+1)= G(n, f(n), g(n)),

где a и b — некоторые числа, а функции F и G — примитивно8рекурсивные функции трех аргументов.


Возвратная рекурсия. Следующее утверждение показывает, что при рекурсивном определении можно
использовать не только значение в предыдущей точке, но и любое предшествующее значение.
Теорема. Пусть функция g одного аргумента примитивно8рекурсивна, причем g(x) < x при x > 0; пусть F
—примитивно8рекурсивная функция двух аргументов; пусть с — произвольная константа. Тогда функция h,
определенная соотношениями

h(0) = с, h (x) = F(x, h(g(x)))

при х>О примитивно8рекурсивна.


Чтобы доказать эту теорему, используем следующую нумерацию конечных последовательностей нату8
ральных чисел: номером пустой последовательности считаем число 1, номером одноэлементной последо8
вательности (а) считаем число 2а+1, последовательность (а, b) имеет номер 2a+13b+1, последовательность
(а, b, с) имеет номер 2a+13b+15c+1 и т.д. (основания степеней — простые числа). Будем обозначать номер по8
следовательности (а, b,..., z) через [а, b,..., z]. Эта нумерация в некотором смысле примитивно8рекурсивна.
Конечно, буквально это понимать нельзя, так как нумерация представляет собой функцию с переменным
числом аргументов. Но разные связанные с ней функции примитивно8рекурсивны. В частности, таковы
функции:
1) Length(x) = длина последовательности с номером х;
2) Select(i, x) = i8ый член последовательности с номером х;
3) Арреnd(x, y) = номер последовательности, которая получается приписыванием числа у к последователь8
ности с номером х.
Все эти функции сводятся к различным операциям с простыми числами и множителями, которые мы, в
сущности, уже разбирали. Докажем, что функция x→H(x) = [h(0), h(1), …, h(x) примитивно8рекурсивна. В са8
мом деле, H(0) = [c], a H(k + 1) = Append(H(k), F(k+1, Select(g(k + 1), H(k)))).
Операторы примитивной рекурсии и подстановки не выводят нас из класса всюду определенных функ8
ций. Не так обстоит дело с оператором минимизации, о котором мы уже упоминали. Он применяется к
(k+1)+местной функции f и дает k+местную функцию g, определяемую так: g(x1, …, xk) есть наименьшее у,

34а 34. Машины с оракулом. Вычислимость с оракулом


Если множество Вm8 сводится к разрешимому множеству А, то и В разрешимо. Более того, если даже А и
неразрешимо, но у нас есть доступ к «оракулу» для А, который отвечает на вопросы о принадлежности чи8
сел множеству А, то мы можем с его помощью отвечать на вопросы о принадлежности чисел множеству В.
В самом деле, если f — сводящая функция и если мы хотим узнать, принадлежит ли некоторое число х мно8
жеству В, достаточно спросить у оракула, принадлежит ли f(x) множеству А.
Легко видеть, что m8сводимость использует возможности оракула довольно ограниченным образом:
— воIпервых, оракулу задается только один вопрос;
— воIвторых, ответ на этот вопрос и считается ответом на исходный вопрос о принадлежности числа х
множеству А.
Сводимостью по Тьюрингу, или ТIсводимостью, называется такая сводимость, при которой обозна8
чение В т А означает, что В сводится по Тьюрингу к А.
Теорема. Класс F[a] состоит из всех функций, вычислимых с оракулом α (т.е. с помощью программ, вы8
зывающих α как внешнюю процедуру).
Прежде всего заметим, что все функции из класса F[а] вычислимы с помощью таких программ. Это мож8
но объяснить, например, так. Программы с конечным числом переменных вычисляли все частично8рекур8
сивные функции. Если добавить к ним примитивную операцию вычисления значения функции α в заданной
точке, то они точно так же будут вычислять все функции из класса F[α].
Более содержательно обратное утверждение: если мы хотим доказать, что некоторая функция вычисли8
ма относительно α, то она может быть получена из базисных функций и из α с помощью подстановки, ре8
курсии и минимизации.
Мы сейчас покажем, что свойство «t есть часть функции α» является примитивно8рекурсивной относи8
тельно α (его характеристическая функция получается из базисных функций и из α с помощью операции
подстановки и рекурсии). После этого останется записать как проекцию примитивно8рекурсивного мно8
жества (< x, y, t > ω⇔∃ и (V(x, y, t, u) = 0, где V примитивно8рекурсивна), и заметим, что f(x) = p1(μzV'(x, z) =
0).
Здесь V' примитивно8рекурсивная относительно α функция, для которой V'(x, [x, t, u]) = 0 тогда и только
тогда, когда V(x, y, t, u) = 0 и t есть часть функции , а функция p1 выделена из номера тройки [y, t, u], ее пер8
вый член y. Осталось показать, что множество {t| образец с номером t есть часть функции α} является при8
митивно8рекурсивным относительно α. При доказательстве мы будем предполагать, что нумерация образ8
цов такова, что следующие функции примитивно8рекурсивны:
1) Last+ x (t) — наибольшее из чисел, на котором определен образец с номером t;
2) Last –y (t) — значение функции образца с номером t в максимальной точке своей области определения;
3) All+but+last (t) — номер образца t, если удалить максимальную точку области определения.

37
для которого f(х , …, xk, y) = 0. Смысл выделенных слов ясен, если f всюду определена. Если нет, то по8
33б нимать их надо 1так: значение левой части равно у, если f(х1, …, xk, y) определено и равно нулю, а все
значения f(х1, …, xk, у’) при у’ < y определены и не равны нулю. Часто используется обозначение g(x1, …, xk)
= μy(f(х1, …, xk, y) = 0), и потому оператор минимизации также называют μ8оператором. Ясно, что такое
определение обеспечивает вычислимость g, если вычислима f (мы перебираем в порядке возрастания все
у, ожидая появления нулевого значения). Функции, получающиеся из базисных (нуля, проекции и прибав8
ления единицы) с помощью операторов подстановки, примитивной рекурсии и минимизации, называются
частичноIрекурсивными. Если такая функция оказывается всюду определенной, то ее называют общеI
рекурсивной функцией. Прилагательное «общерекурсивная» означает, что функция всюду определена.
Теорема. Всякая частично8рекурсивная функция вычислима на машине Тьюринга.
Легко написать программу с конечным числом переменных, вычисляющую любую частично8рекурсивную
функцию (подстановка сводится к последовательному выполнению программ, рекурсия — к циклу типа for,
минимизация — к циклу типа while; оба вида циклов легко реализуются с помощью операторов перехода).
После этого остается только сослаться на то, что всякая функция, вычисляемая программой с конечным
числом регистров, вычислима на машине Тьюринга. Поэтому если мы верим в «тезис Тьюринга», гласящий,
что всякая вычислимая функция вычислима на машине Тьюринга, то должны верить и в «тезис Черча» (вся8
кая вычислимая функция частично8рекурсивна), так что эти тезисы равносильны. Наше доказательство по8
зволяет также получить такое следствие, называемое иногда теоремой Клини о нормальной форме.

34б Тогда можно записать такое рекурсивное определение: образец с номером t есть часть функции
α, либо если этот образец пуст, либо α (last – x (t)) = last – y (y) и образец с номером all+but+last (t) есть
часть функции α.
Это определение использует «возвратную рекурсию»; значение функции определяется рекурсивно через
ее значения в меньших точках. Надо только выбрать нумерацию образцов так, чтобы all+but+last (t) было ме8
ньше t для всех t. Этого несложно добиться. Например, можно нумеровать образцы с помощью простых чи8
сел, считая, что образец {< a, b >, …,< e, f >} имеет номер.
pab+1 …pef+1, где pi — простое число с номером i (так что p0 = 2, p1 = 3, p2 = 5...)

38
35а 35. Частичная функция, вычислимая относительно всюду определенных
функций. Относительная вычислимость
Теорема. Частичная функция f вычислима относительно всюду определенной функции α тогда и только
тогда, когда она вычислима относительно множества, являющегося графиком функции α, т.е. относитель8
но множества {(n, α(n))|n}.
В самом деле, если мы можем вызывать функцию α, то можем и отвечать на вопросы о принадлежности
произвольной пары графику функции α. Напротив, если мы можем разрешать график а, то можем найти α(х)
для данного x, задавая по очереди вопросы о принадлежности графику пар (х, 0), (x,1),..., пока не получим
положительный ответ.
Определяя вычислимость относительно функции α, мы предполагали, что α всюду определена. Это огра8
ничение принципиально: для не всюду определенных функций механизм обращения к ним (как к внешним
процедурам) требует уточнений. Допустим, мы вызвали α(х), а оказалось, что функция α не определена на
х. Означает ли это, что алгоритм в этом месте «зависает» и уже не может выдать результат? Или мы можем
параллельно развернуть какие8то вычисления и в каких8то случаях выдать результат, не дожидаясь ответа
от α(x)? Можем ли мы параллельно запросить несколько значений функции α? Например, следует ли счи8
тать функцию f(x), заданную формулой

⎧ 0,если α( 2x ) α (2x + 1)
⎪ или определено ,
f (x ) = ⎨ неопределено
⎪ впротивномслучае φ

вычислимой относительно α? Короче говоря, в отличие от случая всюду определенных функций, тут есть
разные (и притом не эквивалентные) варианты определений, и всегда надо уточнять, какое именно понятие
имеется в виду. Поэтому мы, говоря о вычислимости относительно некоторой функции α, предполагаем,
что функция α всюду определена.
Если есть два различных множества X и Y, можно рассматривать программы, имеющие доступ к двум ора8
кулам для X и Y, и функции, которые можно вычислить с помощью таких программ. Можно показать, что это
определение не даст ничего существенного нового, указав такое множество Z, что X+Y8вычислимость сов8
падает с Z8вычислимостью.
Относительная вычислимость
Мы называли образцом функцию с натуральными аргументами и значениями, определенную на конечном
подмножестве натурального ряда. Такой образец задает список пар (аргумент, значение); образцы можно
вычислимо пронумеровать, после чего не различать образец и его номер и говорить о разрешимом множе8
стве образцов, перечислимом множестве образцов и т.д.

36а 36. Оценка скорости роста. Функция Аккермана


Обратимся к вопросу: существуют ли общерекурсивные, но не примитивно8рекурсивные функции? Мы
приведем два доказательства существования таковых. Первое исходит из общих соображений.
Теорема. Существует всюду определенная вычислимая функция двух аргументов, универсальная для
класса всех примитивно8рекурсивных функций одного аргумента.
Очевидно, что если U — такая функция, то функция d, для которой d(n) = U(n, n) + 1, будет всюду опреде8
ленной, вычислимой и будет отличаться от любой примитивно8рекурсивной функции (от n8ой — в точке n).
Всякая примитивно8рекурсивная функция получается из базисных с помощью некоторой последователь8
ности операций подстановки и рекурсии. Ясно, что такую последовательность можно описать словом в ко8
нечном алфавите (так сказать, программой, в которой последовательно определяются различные прими8
тивно8рекурсивные функции и для каждой написано, из каких других она получается и с помощью каких
операций). Из всех программ отберем программы для одноместных функций. Множество таких программ
разрешено, их можно пронумеровать вычислимым образом. Функция < n, x > будет вычислима и по постро8
ению будет универсальной для класса примитивно8рекурсивных функций. Однако интересно указать и бо8
лее конкретную, мешающую некоторым вычислимым функциям быть примитивно8рекурсивными. Вот одна
из возможностей: примитивно8рекурсивные функции не могут быстро расти. Эта идея принадлежит Аккер8
ману, который построил функцию, растущую быстрее всех примитивно8рекурсивных, — функцию АккерI
мана. Изложим эту конструкцию (хотя детали построения будут иными).
Определим последовательность функций a0, a1, …от одного аргумента (все эти функции будут всюду
определенными).
Положим a0(x) = x + 1. Определяя ai, мы будем использовать такое обозначение: f[n](x) означает
f(f(…f(x)…)), где функция f использована n раз.
[x+2](x).
Так вот, ai (x) = ai+1
Очевидные свойства (формально их можно доказать по индукции): ai (x) > x при всех i и x; ai (x) возраста8
ет с возрастанием x; ai (x) возрастает с возрастанием i для каждого фиксированного x; gi (x) ai+1(ai+1(x)). Те8
перь можно оценить скорость роста любой примитивно8рекурсивной функции.
Теорема. Пусть а — примитивно8рекурсивная функция n аргументов. Тогда найдется такое k, что f(x1, …,
xn)ak(max(x1, …, xn)) при всех x1, …, xn.
Идея роста — можно оценить скорость роста композиции функции, зная оценки для каждой из них; ана8
логично для рекурсии. Формально говоря, доказательство использует «индукцию по построению» прими8
тивно8рекурсивных функций. Для базисных функций утверждение очевидно. Посмотрим на подстановку.
Пусть f(x) = g(h1(x), …, hk(x)) (для краткости мы пишем одну букву x, имея в виду вектор переменных). Пусть
аN оценивает все функции h1, ..., hk и функцию g сверху, т.е. hi(x) аN(max(x)) при всех i и х, а также g(y) аN

39
35б Два образца называются совместными, если объединение их графиков есть по8прежнему график
функции, т.е. нет такой точки, в которой оба они были бы определены и принимали разные значения.
Пусть имеется множество М троек вида < x, y, t >, где x и y — натуральные числа, а t — образец. Будем го8
ворить, что две тройки < x1, y1, t1 > и < x2, y2, t2 > противоречат друг другу, если x1 = x2, y1 y2, а образцы t1 и
t2 совместны. Множество М будем называть корректным, если в нем нет противоречащих друг другу троек.
Пусть М — корректное множество, а α — некоторая функция. Отберем в М все тройки вида < x, y, t >, для
которых t является частью α (график t является подмножеством α). Входящие в них образцы совместны, по8
этому (в силу корректности) среди отобранных троек нет двух, у которых первые члены равны, а вторые —
нет.
Частичная функция f: N→N вычислима относительно всюду определенной функции α: N→N.

36б (max(y)) (здесь max(u) означает максимальный элемент в наборе u). Тогда f(x) не превосходит аN
(max(h1(x), …, hk(x))) аN+1(x) (мы пользуемся указанными выше свойствами функций аN). Похоже (но
немного сложнее) дело обстоит с рекурсией. Пусть функция f определяется рекурсивно:

f(x, 0)=g(x); f(x, n + 1) = h(x, n, f(x, n)).

Пусть функции g и h оцениваются сверху функцией аN. Тогда

f(x, 1) = h(x, 0, f(x, 0)) аN (max (x, 0, f(x, 0)))


аN (max(x, 0 аN (max(x)))) аN (аN (max(x)))

(в последнем переходе мы пользуемся тем, что аN (t) > t).

40
37а 37. Вычислимые функции. Разрешимые множества.
Перечислимые неотделимые множества
Функция f с натуральными аргументами и значениями называется вычислимой, если существует алго8
ритм, ее вычисляющий, т.е. такой алгоритм. А, что:
1) если f(n) определено для некоторого натурального n, то алгоритм А останавливается на входе n и печата8
ет f(n);
2) если f(n) не определено, то алгоритм А не останавливается на входе n;
3) входами и выходами алгоритмов могут быть не только натуральные числа, но и двоичные строки (слова
в алфавите {0,1}), пары натуральных чисел, конечные последовательности слов и вообще любые, как го8
ворят, «конструктивные объекты». Поэтому аналогичным образом можно определить понятие, скажем,
вычислимой функции с двумя натуральными аргументами, значениями которой являются рациональные
числа. Для функций, скажем, с действительными аргументами и значениями понятие вычислимости тре8
бует специального определения. Здесь ситуация сложнее, определения могут быть разными, и мы о вы8
числимости таких функций говорить не будем. Отметим только, что, например, синус (при разумном
определении вычислимости) вычислим, а функция sign(z), равная –1, 0 и 1 при х < 0, x = 0 и x > 0 соот8
ветственно — нет. Точно так же требует специального определения вычислимость функций, аргумента8
ми которых являются бесконечные последовательности нулей и единиц и т.п.
Разрешимые множества
Множество натуральных чисел X называется разрешимым, если существует алгоритм, который по лю8
бому натуральному п определяет, принадлежит ли оно множеству X. Другими словами, X разрешимо, если
его характеристическая функция x(n) = if n X then 1 else 0 fi вычислима. Очевидно, пересечение, объедине8
ние и разность разрешимых множеств разрешимы. Любое конечное множество разрешимо. Аналогично
определяют разрешимость множеств пар натуральных чисел, множеств рациональных чисел и т.п.
Перечислимые неотделимые множества
Небольшая модификация рассуждения позволяет доказать усиление доказанной выше теоремы.
Теорема. Существует вычислимая функция, принимающая только значения 0 и 1 и не имеющая всюду
определенного вычислимого продолжения.
Вместо функции d’(x) = d(x) + 1 можно рассмотреть функцию 0, если d(x) > 0(имеется в виду, что d′′(x) не
определено, если d(x) не определено). Тогда любое всюду определенное продолжение функции d′′ будет
по8прежнему отличаться от d всюду и потому не будет вычислимым.
Этот результат можно перевести на язык перечислимых множеств. Говорят, что два непересекающихся
множества X и У отделяются множеством С, если множество С содержит одно из них и не пересекается с
другим.

38а 38. Перечислимые неразрешимые множества.


Перечислимость и вычислимость
Множество натуральных чисел называется перечислимым, если оно перечисляется некоторым алгорит8
мом, т.е. если существует алгоритм, который печатает (в произвольном порядке и с произвольными про8
межутками времени) все элементы этого множества и только их. Такой алгоритм не имеет входа; напеча8
тав несколько чисел, он может надолго задуматься и следующее число напечатать после большого
перерыва (а может вообще больше никогда ничего не напечатать, тогда множество будет конечным). Су8
ществует много эквивалентных определений перечислимого множества..
Чтобы доказать эквивалентность этих определений, воспользуемся возможностью пошагового исполне8
ния алгоритма. Пусть X перечисляется некоторым алгоритмом А. Покажем, что полухарактеристическая
функция множества X вычислима. В самом деле, алгоритм ее вычисления таков: получив на вход число n,
пошагово выполнять алгоритм А, ожидая, пока он напечатает число n. Как только он это сделает, выдать на
выход 0 и закончить работу. Наоборот, пусть X есть область определения (вычислимой) функции f, вычи8
сляемой некоторым алгоритмом В. Тогда X перечисляется таким алгоритмом А: параллельно запускать В
на входах 0, 1, 2, ..., делая все больше шагов работы алгоритма В (сначала один шаг работы на входах 0 и
1; потом по два шага работы на входах 0, 1, 2, потом по три на входах 0, 1, 2, 3 и т.д.). Все аргументы, на ко8
торых алгоритм В заканчивает работу, нужно печатать по мере обнаружения.
Если в только что приведенном описании алгоритма А печатать не аргументы, на которых В заканчивает
работу, а результаты этой работы, то получается алгоритм, перечисляющий область значений функции f.
Осталось еще убедиться, что всякое перечислимое множество есть область значений вычислимой функ8
ции. Это можно сделать, например, так: пусть X есть область определения вычислимой функции, вычисля8
емой некоторым алгоритмом А.
Вычисляющий эту функцию алгоритм действует так же, как и А, но только вместо результата работы ал8
горитма А выдает копию входа. Еще одно эквивалентное определение перечислимого множества: множе8
ство натуральных чисел перечислимо, если оно либо пусто, либо есть множество значений всюду опреде8
ленной вычислимой функции (другими словами, его элементы можно расположить в вычислимую
последовательность). В самом деле, пусть перечислимое множество X, перечисляемое алгоритмом A, не8
пусто. Возьмем в нем какой8то элемент X0. Теперь рассмотрим такую всюду определенную функцию а:
если на n8ом шаге работы алгоритма А появляется число t, то положим а(n) = t; если же ничего не появля8
ется, то положим а(n) — X0. (Мы предполагаем, что на данном шаге работы алгоритма может появиться
только одно число — в противном случае работу надо разбить на более мелкие шаги.) Заметим, что это
рассуждение неконструктивно: имея алгоритм А, мы можем не знать, пусто ли перечисляемое им множе8
ство или нет.

41
37б Теорема. Существуют два непересекающихся перечислимых множества X и У, которые не отделя8
ются никаким разрешимым множеством.
В самом деле, пусть d — вычислимая функция, принимающая только значения 0 и 1 и не имеющая всюду
определенного вычислимого продолжения.
Пусть X = {х | d(x) = 1} и У = {х | d{x) = 0}.
Легко видеть, что множества X и У перечислимы. Пусть они отделяются разрешимым множеством С; бу8
дем считать, что С содержит X и не пересекается с У (если наоборот, перейдем к дополнению). Тогда харак8
теристическая функция множества С (равная 1 внутри С и 0 вне него) продолжает d.

38б Перечислимое неразрешимое множество


Теперь мы можем доказать обещанное утверждение.
Перечислимость и вычислимость
Мы видели, что перечислимое множество можно определить в терминах вычислимых функций (напри8
мер, как область определения вычислимой функции). Можно сделать и наоборот.
Теорема. Функция f с натуральными аргументами и значениями вычислима тогда и только тогда, когда
ее график F = {(х, у) |f(x) определено и равно у} является перечислимым множеством пар натуральных чи8
сел. Пусть f вычислима. Тогда существует алгоритм, перечисляющий ее область определения, т.е. печатаю8
щий все х, на которых f определена. Если теперь для каждого из таких х вычислять еще и значение f(x), по8
лучим алгоритм, перечисляющий множество F.

42
39а 39. Универсальные функции. Диагональная конструкция
Сейчас мы построим пример перечислимого множества, не являющегося разрешимым. При этом будет
использоваться так называемая универсальная функция.
Говорят, что функция U двух натуральных аргументов является универсальной для класса вычислимых
функций одного аргумента, если для каждого n функции Un: x→U(n, х) («сечение» функции U при фиксиро8
ванном n) является вычислимой и если все вычислимые функции (одного аргумента) встречаются среди Un.
(Напомним, что ни функция U, ни вычислимые функции одного аргумента не обязаны быть всюду опреде8
ленными.) Аналогичное определение можно дать и для других классов функций (одного аргумента). НаприI
мер, функция U двух аргументов будет универсальной для класса всех всюду определенных вычислимых
функций одного аргумента, если ее сечения Un являются всюду определенными вычислимыми функциями
одного аргумента и исчерпывают все такие функции. Очевидно, универсальные функции существуют для
любых счетных классов (и только для них). Ключевую роль в этом разделе играет следующий факт:
Теорема. Существует вычислимая функция двух аргументов, являющаяся универсальной функцией для
класса вычислимых функций одного аргумента.
Запишем все программы, вычисляющие функции одного аргумента, в вычислимую последовательность
p0, p1,…(например, в порядке возрастания их длины). Положим U(i, x) равным результату работы i8ой про8
граммы на входе х. Тогда функция U и будет искомой вычислимой универсальной функцией. Сечение U бу8
дет вычислимой функцией, вычисляемой программой pi.
Алгоритм, вычисляющий саму функцию U, есть, по существу, интерпретатор для используемого языка
программирования (он применяет первый аргумент ко второму, если отождествить программу и ее номер).
Для множеств используется аналогичная терминология: множество WNN называют универсальным для
некоторого класса множеств натуральных чисел, если все сечения Wn = {x|(n, x)W} множества W принадле8
жат этому классу и других множеств в классе нет.
Теорема. Существует перечислимое множество пар натуральных чисел, универсальное для класса всех
перечислимых множеств натуральных чисел.
Диагональная конструкция
Теорема. Не существует вычислимой всюду определенной функции двух аргументов, универсальной для
класса всех вычислимых всюду определенных функций одного аргумента.
Воспользуемся «диагональной конструкцией» — точно так же доказывается несчетность множества всех
бесконечных десятичных дробей. Пусть U — произвольная вычислимая всюду определенная функция двух
аргументов. Рассмотрим диагональную функцию U(n) = =U(n, n). Очевидно, на аргументе n функция U сов8
падает с функцией Un, а функция d(n) = u(n) + 1 отличается от Un. Следовательно, вычислимая всюду опре8
деленная функция d(n) отличается от всех сечений Un, и потому функция U не является универсальной.

40а 40. Простые множества: конструкция Поста


Существует некоторое количество конструкций перечислимых неразрешимых множеств. Вот одна из них
(предложенная Э. Постом).
Назовем множество (напомним, множество — это термин, который обозначает совокупность некоторых
объектов) иммунным, если оно бесконечно, но не содержит бесконечных перечислимых подмножеств.
Перечислимое множество (так как согласно теореме всякое разрешимое множество натуральных чисел
перечислимо) называют простым, если его дополнение иммунно. (Очевидно, такое множество не может
быть разрешимым.)
Теорема. Существует перечислимое множество пар натуральных чисел, универсальное для класса всех
перечислимых множеств натуральных чисел.
Теорема. Существует простое множество.
Нам нужно, чтобы перечислимое множество S имело иммунное дополнение. Это означает, что S должно
пересекаться с любым бесконечным перечислимым множеством. Чтобы гарантировать это, полезно для
каждого перечислимого множества Vv добавить какой8то его элемент в S (хотя бы для бесконечных V). При
этом надо позаботиться о том, чтобы вне S осталось бесконечно много элементов. Это можно гарантиро8
вать, если добавлять достаточно большие элементы (например, из множества номер i добавлять только
один элемент, притом больший 2i).
Объясним конструкцию подробнее. Пусть W — универсальное (напомним, универсальное множество —
это множество, в которое могут быть включены все элементы множества; либо, для множеств использует8
ся аналогичная терминология: множество WNN называют универсальным для некоторого класса множеств
натуральных чисел, если все сечения Wn= {x | (n, x)W} множества W принадлежат этому классу и других
множеств в классе нет) перечислимое множество пар, среди сечений Wi которого встречаются все перечи8
слимые множества натуральных чисел. Будем называть Wi «перечислимым множеством номер i» (при этом
разным номерам может соответствовать одно и то же множество). Рассмотрим множество пар

Т = {(i, х) | (x Wi) и (x > 2i)}.

Это множество перечислимо (как пересечение W и разрешимого множества {(i, х) | х > 2i}). Перечисляя его,
будем отбрасывать пары, у которых первый член уже встречался ранее. Останется некоторое перечислимое
под8множество T’ Т. Рассмотрим теперь перечислимое множество S вторых членов пар, входящих в Т’.
Это множество пересекается с любым бесконечным перечислимым множеством. В самом деле, если Wi
бесконечно, то оно содержит и числа, большие 2i, поэтому в Т (а, значит, и в T’) есть пары с первым членом
i. Второй член такой пары из Т’ будет лежать и в S, и в Wi.

43
39б Почему это рассуждение не проходит для класса всех вычислимых функций (в том числе частич8
ных)? Дело в том, что значение d(n) = U(n, n) + 1 теперь не обязано отличаться от значения Un(n) — U(n,
n), так как оба они могут быть не определены.
Тем не менее часть рассуждения остается в силе.
Теорема. Существует вычислимая функция d (с натуральными аргументами и значениями), от которой
никакая вычислимая функция f не может всюду отличаться: для любой вычислимой функции f найдется та8
кое число n, что f(n) = d(n) (последнее равенство понимается в том смысле, что либо оба значения f(n) и d(n)
не определены, либо оба определены и равны).
По существу, все уже сказано: такова диагональная функция d(n) = U(n > n) (здесь U — вычислимая функ8
ция двух аргументов, универсальная для класса вычислимых функций одного аргумента). Любая вычисли8
мая функция f есть Un при некотором n, и потому f(n) = Un(n) = = U(n, n) = d(n).

40б Однако множество S имеет бесконечное дополнение, поскольку среди чисел от 0 до 2i — 1 макси8
мум n различных чисел могут принадлежать S (это числа, попавшие в S с одной из первых n вертика8
лей, все остальные будут уже больше 2i).
На основе вышеуказанной теоремы и определения иммунного множества и простого перечислимого
множества с легкостью можно доказать, что бесконечное множество, не содержащее бесконечных разре8
шимых подмножеств, иммунно.
Или подумать над задачей и доказать, что существует перечислимое множество, для которого прямой пе8
ресчет (последовательность элементов в порядке возрастания без повторений) его дополнения не ограни8
чен сверху никакой всюду определенной вычислимой функцией, а также доказать, что это множество явля8
ется простым.

44
41а 41. Главные универсальные функции. Теорема
Нумерацией (более точно — натуральной нумерацией) произвольного множества Т называют всюду
определенное отображение V: N→Т, область значений которого есть все множество Т. Если V(n) — f, то чи8
сло n называют номером объекта f.
Пусть U — двуместная вычислимая универсальная функция для класса одноместных вычислимых функ8
ций (термин «k8местная функция» означает «функция k8аргументов»). Ее называют главной универсальной
функцией, если для любой двуместной вычислимой функции V существует всюду определенная вычисли8
мая функция s(m), для которой

V (m, х) = U(s (m), x)

при всех m и х (равенство понимается, как обычно, в том смысле, что либо оба значения не определены,
либо определены и равны).
Другими словами, Vm = Us(m), т.е. функция S дает по V+номеру некоторой функции некоторый U8номер той
же функции.
Теорема. Существует главная универсальная функция.
Доказательство. Запишем все программы, вычисляющие функции одного аргумента, в вычислимую по8
следовательность p0, p1, …(например, в порядке возрастания их длины). Положим U(i, x) равным резуль8
тату работы
i8ой программы на входе х. Тогда функция U и будет искомой вычислимой универсальной функцией. Сече8
ние U будет вычислимой функцией, вычисляемой программой pi. Алгоритм, вычисляющий саму функцию U,
есть, по существу, интерпретатор для используемого языка программирования (он применяет первый ар8
гумент ко второму, если отождествить программу и ее номер). Построение универсальной функции дает
главную универсальную функцию. Пусть теперь есть какая8то другая вычислимая функция V двух аргумен8
тов. Нам надо по любому натуральному m получить программу функции Vm, т.е. функции, которые получат8
ся, если в V зафиксировать первый аргумент равным т. Ясно, что такую программу (в большинстве языков
программирования) получить легко, надо только в программе для V заменить первый аргумент на опреде8
ление константы (или использовать программу для V в качестве подпрограммы, а в основной программе
вызывать V с фиксированным первым аргументом).
Такую функцию можно построить так. Фиксируем некоторую вычислимую нумерацию пар, т.е. вычисли8
мое взаимно однозначное соответствие (u, v)→[u, v] между NN и N; число [u, v], соответствующее паре (u,
v), мы будем называть номером этой пары. Если теперь R — двуместная универсальная функция для вычи8
слимых одноместных функций, то функция Т, определенная формулой T(n, u, v) = R(n, [u, v]), будет универ8
сальной для вычислимых двуместных функций. В самом деле, пусть F — произвольная вычислимая функция

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


Главные универсальные множества
Пусть дана некоторая последовательность f 0,…f1 вычислимых функции одного аргумента. Мы хотим
придать смысл выражению «последовательность i→fi вычислима». Это можно сделать двумя способами:
1) можно называть эту последовательность вычислимой, если функция F двух аргументов, заданная фор8
мулой F(i, n)=fi(n), является вычислимой;
2) можно называть эту последовательность вычислимой, если существует вычислимая последователь8
ность чисел c0, c1,..., для которой ci является одним из номеров функции fi. Второе определение (в отли8
чие от первого) зависит от выбора нумерации.
Теорема. Если нумерация является вычислимой (т.е. соответствующая универсальная функция вычи8
слима), то из второго определения следует первое. Если нумерация является главной, то из первого опре8
деления следует второе.
Впредь, говоря о вычислимой последовательности вычислимых функций, мы будем всегда предпола8
гать, что нумерация является главной, так что можно пользоваться любым из двух определений.
Если U — вычислимая универсальная функция, а последовательность i→ci вычислима, то функция F: (i, x)
fi(x) = = U(ci, x) вычислима как результат подстановки одной вычислимой функции в другую.
Напротив, если функция F вычислима, а универсальная функция U является главной, то функция8тран8
слятор, существующая по определению главной универсальной функции, как раз и дает по г один из номе8
ров функции fi.
Главные универсальные множества
По аналогии с функциями перечислимое множество WN N называется главным универсальным перечиI
слимым множеством (для класса всех перечислимых подмножеств N), если для любого другого перечи8
слимого множества V NN найдется такая всюду определенная вычислимая функция s: N→N, что

(n, x)V⇔(s(n), x) W

для всех n и х. (Очевидно, что из этого свойства следует универсальность.)


Как и для функций, можно перейти к нумерациям. Каждое WN N множество задает нумерацию некоторо8
го семейства подмножеств натурального ряда: число n является номером n8го сечения Vn = {х | (n, x) U} Пе8
речислимое подмножество множества NN задает нумерацию некоторого семейства перечислимых под8
множеств натурального ряда; такие нумерации называют вычислимыми. Перечислимое множество WN N
универсально, если и только если всякое перечислимое подмножество натурального ряда имеет W8номер;
оно является главным тогда и только тогда, когда любая вычислимая нумерация V (любого семейства пе8

45
41б двух аргументов. Рассмотрим вычислимую одноместную функцию f, определенную соотношением
f([u, v]) = F(u, v). Поскольку R универсальна, найдется число n, для которого R(n, x) = f(x) при всех x. Для
этого n выполнены равенства T(n, u, v) = R(n, [u, v]) = = f([u, v]) = F(u, v), и потому n8нoe сечение функции Т сов8
падает с F. Итак, универсальная функция трех аргументов построена.
Теперь используем ее для определения главной универсальной функции U двух аргументов. Неформаль8
но говоря, мы встроим внутрь U все другие вычислимые функции двух аргументов, и поэтому U станет глав8
ной. Формально говоря, положим U([n, u], v) = T(n, u, v) и проверим, что функция U будет главной. Любая
функция V двух аргументов встречается среди сечений функции Т: можно найти такое n, что V(u, v) = T(n, u, v)
для всех u и v. Тогда V(u, v) = U([n, u], v) для всех u и v, и потому функция s, определенная формулой s(u) — [n,
u], удовлетворяет требованиям из определения главной универсальной функции.

42б речислимых множеств) вычислимо сводится к W8нумерации в том смысле, что Vn — Ws(n) для некото8
рой вычислимой функции s и для всех n.
Теорема. Существует главное универсальное перечислимое множество WN N.
Эта теорема является очевидным следствием такого утверждения.
Лемма. Область определения главной универсальной функции для класса вычислимых функций одного
аргумента является главным универсальным множеством для класса перечислимых подмножеств N.
Доказательство леммы. Пусть U — главная универсальная функция, a W — область ее определения.
Пусть VN N — произвольное перечислимое множество. Рассмотрим вычислимую функцию G с областью
определения V. Поскольку функция U является главной, найдется всюду определенная вычислимая функ8
ция s: N→N, для которой Gn = Us(n) при всех n. Тогда равны и области определения функций Gn и Us(n), т.е. Vn
= Ws(n).
Теорема. Пусть WNN — главное универсальное перечислимое множество. Тогда по W8номерам двух пе8
речислимых множеств можно алгоритмически получить номер их пересечения: существует такая вычисли8
мая всюду определенная функция двух аргументов s, что Ws(m,n)=WmWn для любых двух m и n.

46
43а 43. Предваренные нормальные формы (лемма и предложение)
Формула Q1y1…QnynA, где Qiyi — квантор всеобщности, или существования, yi и yj различны для ij и А не
содержит кванторов, называется формулой в предваренной нормальной форме (сюда включается и
случай n = 0, когда вообще нет никаких кванторов). Мы докажем, что для любой формулы можно построить
эквивалентную ей формулу в предваренной нормальной форме.
Лемма. Во всякой теории первого порядка:
(1) |8(∀xεε(x⊃D)≡∃y(ε(ε(⊃D), если y не входит свободно ни в ε(x), ни в D;
(2) |8(∃xεε(x⊃D)≡∀y(ε(ε(⊃D), если y не входит свободно ни в ε(x), ни в D;
(3) |8D⊃∀xεε(x≡∀y(D⊃εy), если y не входит свободно ни в ε(x), ни в D;
(4) |8D⊃∃xεε(x≡∃y(D⊃εy), если y не входит свободно ни в ε(x), ни в D;
(5) |8∀xε≡∃xε;
(6) |8∃xε≡∀xε.
Доказательство I(A):
1) ∀xεε(x⊃D) — гипотеза;
2) ∃y(εε(y⊃D) — гипотеза;
3) ∀y(εε(y⊃D) — 2, определение
_ квантора существования;
_
4) ∀y(ε(ε(∧D),
_ тавтологии , A⊃A, (A⊃B)≡(A∧B);
5) ε(y)∧D — 4;
6) ε(y) — 5, тавтология (A&B)A;
7) ∀yεε(y) — 6;
8) ∀yεε(x) — 7, лемма;
9 D _— 1, 8;
10) D —_5, тавтологии;
11) D∧D — 9, 10, тавтологии; _
12) ∀xεε(x⊃D), ∃y(εε(y⊃D)|8D∧D_—1–11;
13) ∀xεε(x⊃D)|8∃y(εε(y⊃D)⊃ D∧D —12;
14) ∀xεε(x⊃D)|8∃y(εε(y⊃D) — 13, тавтология;
15) |8 ∀xεε(x⊃D∃y(ε(ε(⊃D) — 14.
Доказательство I:
1) ∃y(ε(ε(⊃D) — гипотеза;
2) ∀xεε(x) — гипотеза;
3) ε(b)⊃D — 1, правило С;
4) ε(b) — 2, правило С;

44а 44. Нормальная форма Сколема. Правило С


Исчисление предикатов первого порядка, в котором нет функциональных букв и предметных констант и
в котором для каждого целого положительного n имеется бесконечно много n8местных предикатных букв,
называется чистым исчислением предикатов первого порядка. Для чистого исчисления предикатов
первого порядка может быть следующая теорема о предваренной нормальной форме некоторого просто8
го вида.
Предположение. По всякой формуле А чистого исчисления предикатов первого порядка можно эффек8
тивно построить такую формулу В в нормальной форме Сколема, что |–А тогда и только тогда, когда |–B
(или, это эквивалентно, в силу теоремы Геделя о полноте, логически обозначима B).
Доказательства. Прежде всего мы можем считать, что формула А замкнута либо всякая формула выво8
дима одновременно со своим замыканием. Мы можем предполагать, что А уже есть формула в предварен8
ной нормальной форме. Назовем рангом формулы А число r, показывающее, сколько кванторов всеобщно8
сти предшествует в А хотя бы одному квантору существования. Процесс построения некоторой формы
Сколема для формулы А будет теперь описан с помощью индукции по r. При r = 0 утверждение доказывае8
мого предположения очевидно, так как формула А уже является формулой в нормальной формуле Сколема.
Правило С
В математике весьма распространены умозаключения следующего типа. Допустим, что мы вывели фор8
мулу вида ∃x A(x). Затем мы говорим: «Пусть b — объект такой, что А», и продолжаем наши рассуждение или
доказательство, проходя в конце концов к формуле, которая не содержит произвольно выбранного эл8
емента b.
Пусть, скажем, мы хотим доказать, что: ∃x (B(x)⊃ε)), ∀xB(x)|8 ∃xε(x):
1) ∃x (B(x)⊃ε)) — гипотеза;
2) ∀xB(x) — гипотеза;
3) B(x)⊃ε при некотором b — 1;
4) B — 2, правило А4;
5) ε — 3, 4, МР;
6) ∃xε — 5, правило Е4;
7) ∃x (B(x)⊃ε(x)), ∀x (B(x)|8∃xε(x)—1—6.
Такой вывод представляется с интуитивной точки зрения совершенно законным. На самом же деле мы
можем получить тот же результат, не прибегая к произвольному выбору некоторого элемента на шаге 3.
Это может быть сделано следующим образом:
1) ∀xB(x) — гипотеза;
2) ∀x¬ε(x) — гипотеза;
3) B(x) — 1, правило А4;

47
43б 5) D — 3, 4, MP;
6) ∃y(ε(ε(⊃D), ∀xεε(x|8cD) — 1–5;
7) ∃y(ε(ε(⊃D), ∀xεε(x|8D) — 6;
8) |8∃y(ε(ε(⊃D)⊃∀xεε(x⊃D) — 7;
Доказательство I(C):
|8(∀xεε(x⊃D)≡∃y(ε(ε(⊃D)+(A),(B), тавтология.
Остающиеся части (2)–(6) доказываются легко. Здесь можно только заметить, что (6) тривиально, а (5)
содержится в:
а) правило конъюнкции: A, B|+A&B;
б) правило дизъюнкции: A>ε, B>D, AB|+εD.
(3) и (4) легко следуют соответственно из (2) и (1).
Данная лемма позволяет в каждой формуле постепенно передвигать все кванторы влево.
На основе леммы о нормальных предваренных формах нам позволяется в каждой формуле постепенно
передвигать все кванторы влево. Собственно, этот процесс и является существенной частью доказатель8
ства следующей теоремы.
Предположение. Существует эффективная процедура, преобразующая всякую формулу А к формуле B
(напомним, формула Q1y1…QnynA, где Qiyi — квантор всеобщности, или существования, yi и yj различны для
ij и А не содержит кванторов, называется формулой в предваренной нормальной форме (сюда включается
и случай n = 0, когда вообще нет никаких кванторов) в предваренной нормальной форме, что |8AB.
Доказательство. Построение формулы B будет описано по индукции по числу k всех связок и кванторов
в формуле А.
В силу предположения: A>∀xA и ∃xA>A мы можем считать, что связанные переменные в кванторной при8
ставке, которую мы хотим получить, попарно различны. При k <n. Пусть формула А имеет n связок и кван8
торов
Случай 1. Если A есть ε, то согласно индуктивному предположению мы умеем построить формулу D
в предваренной нормальной
_ форме такую, что |8Dε.
Отсюда |–ε, т.е. |–AD.
Применяя теперь утверждения |– ∀xε≡∃xε;
|8∃xε≡∀xε; и следствие (если |8Bε, то |–AA’, а если
_ |8Bε и |–A, то |–A’), мы легко построим формулу B
в предваренной нормальной форме такую, что |– DB, откуда получаем |–AB.
Случай 2. Если A есть ε>ε, то по индуктивному предположению мы можем построить формулы εl и εl.
В предваренной нормальной форме такие, что |–ε εl и |–ε εl.
Принимая во внимание соответствующую тавтологию, мы тогда получим |–(ε >ε)(εl>εl ), т.е. |–A(εl>εl),
в результате чего и получим такую формулу B в предваренной нормальной форме, что |–AB.

44б 4) ¬ε(x) — 2, правило А4;


5) ¬(B(x) ⊃ε(x)) — 3, 4, тавтология (A ∧ ¬B |⊃¬(A⊃B));
6) ∀x¬B(x)⊃ε(x));
7) ∀x B(x), ∀x ¬ε(x) |8 ∀x¬ (B(x) ⊃ε(x)) — 1 — 6;
8) ∀x B(x), ∀x ¬ε(x) ⊃ ∀x¬ (B(x) ⊃ε(x)) — 7;
9) ∀x B(x), ∀x ¬(B(x)⊃ε(x)) ⊃ ¬∀x¬ ε(x) — 8, тавтология (A ⊃ B)⊃(¬B⊃ ¬A);
1) ∀x B(x) |+ ∃x (B(x) ⊃ ε(x)) ⊃ ∃x ε(x);
2) ∃x(B(x) ⊃ ε(x)), ∀xB(x) |8 ∃x ε(x) — 10, МР.
Вообще всякая формула, которая может быть выведена с применением подобных произвольных актов
выбора, может быть также выведена и без помощи таких актов выбора. Правила, позволяющие переходить
от ∃x A(x) к A будем называть правилом С (С — первая буква английского choice — «выбор»). Для большей
точности следовало бы говорить о понятии «вывода с правилом С» в теории первого порядка к. Это прави8
ло можно определить следующим образом: Г |8 C А тогда и только тогда, когда существует последователь8
ность формул B1, …, Bn = A такая, что выполняются следующие условия:
1) есть i либо Bi принадлежит К, либо Bi следует по МР из формул, предшествующих этой последователь8
ности формуле Bi, либо формуле Bi предшествует формула ∃xεε(x), а сама формула Bi есть , где ε(b) —
новая предметная постоянная (правило С);
2) в качестве аксиом в (1) а) разрешаются также всевозможные логические аксиомы, включающие новые
предметные постоянные, уже ранее введенные по правилу С, т.е. по (1) с);
3) не допускается применение правила Gen по переменным свободно хотя бы в одной формуле вида
∃xεε(x), к которой ранее было применено правило С.

48
45а 45. Теорема Геделя о полноте
Во всяком исчислении предикатов первого порядка теоремами являются все те и только те формулы, ко8
торые логически обозначимы.
Следствие
1. Формула А истинна в каждой счетной модели теории К тогда и только тогда, когда |8kА. Следователь8
но, А истинна в каждой модели теории К тогда и только тогда, когда |8kА.
2. Если во всякой модели теории К формула В выполнена на каждой последовательности, на которой вы8
полнены все формулы некоторого множества формул Г, то Г|+kВ.
3. Если формула В теории К является логическим следствием данного множества Г формул теории К, то
Г|8kВ.
4. Если формула В теории К является логическим следствием формулы А той же теории, то А |+kВ.
Доказательство
Мы можем считать, что формула А замкнута. Допустим, что формула А истинна в любой счетной модели
теории К. Если не |8kА, то теория К’=К+{¬А} непротиворечива. Следовательно, К’ имеет счетную модель М.
Формула ¬А как аксиома теории К’ истинна в М. Но М является также моделью и для К, и поэтому А истин8
на в М. Следовательно, формула А одновременно истинна и ложна в М, и мы пришли к противоречию.
Рассмотрим теорию К+Г. Формула В истинна в каждой модели этой теории. Тогда, в силу утверждения 1, |+
k + гB, и , следовательно, Г|+ kВ.
Пункт 3 очевиден, следуя из 2, а 4 является частным случаем 3.
Все вышеуказанные следствия показывают, что для логики предикатов синтаксический метод теорий
первого порядка равносилен семантическому методу, использующему понятия интерпретации, модели,
логической общезначимости и т.п. Отметим также, что для исчисления высказываний теорема о полноте
системы L приводит к решению проблемы разрешения. Однако для теорий первого порядка мы не можем
получить разрешающую процедуру для логической общезначимости или, что то же самое, для выводимо8
сти в любом исчислении предикатов первого порядка. Этот результат, а также некоторые родственные ему
результаты будут доказаны ниже.
Следствие. (Теорема СколемаIЛевенгейма, 1919, 1915 гг.) Если теория К первого порядка имеет
какую8нибудь модель, то она имеет и счетную модель.
Доказательство. Если К имеет модель, то К непротиворечива. Следовательно, К имеет счетную модель.
Следствие. Для любого кардинального числа α≥NO всякая непротиворечивая теория К первого порядка
имеет модель мощности α.
Доказательство. Как мы знаем, теория К имеет счетную модель. Поэтому для наших целей теперь доста8
точно доказать следующую лемму.

46а 46. Теория первого порядка с равенством


Пусть К — теория первого порядка, в числе предикатных букв которой имеется А12. Будем для сокраще8
ния писать t = s вместо А21(t, s) и t s вместо ¬ vА12(t = s). Теория К называется теорией первого порядка
с равенством, если следующие формулы являются теоремами К:
6) ∀(x1 = x1) (рефлексивность равенства);
7) (x = y)(А(x, x) A(x, y)) (подстановочность равенства), где x и y — предметные переменные, А (х, х) — про8
извольная формула, а А (х, у) получается из А (х, х) заменой каких8нибудь (не обязательно всех) свобод8
ных вхождений х вхождениями у, с соблюдением условия, чтобы у было свободно для тех вхождений х,
которые заменяются.
Следовательно, в одних случаях А (х, у) может иметь свободные вхождения х, в других случаях таких вхож8
дений может уже не быть.
Предложение. Во всякой теории первого порядка с равенством:
— (а) |+ t = t для любого терма t;
— |+ x = y y = x;
— (c) |+ x = y (y = z x = z).
Доказательство (а). В силу пункта 6 |8 ∀(x1 = x1), следовательно, по правилу А4 |+ t = t.
Пусть А (х, х) есть х = х и А (х, у) есть у = х. Тогда согласно пункту 7 |+ (x = y) (x = x y = x). Но, как только что
доказано, |8 x = x. Теперь |8 (x = y) y = x мы получим с помощью тавтологии В ((А (В С)) (А С)).
(с) Пусть А (у, у) есть у = z и А (у, х) есть х = z. Тогда, в силу (7) с взаимной заменой х и у, |+ y = x (y = z x = z). Но
в силу , |+ х = у у =х. Следовательно, используя тавтологию (А В) ((В С) (А С)), мы имеем |+ x = y (y = z x = z).
Предложение. Если теоремами теории первого порядка К являются формула (6) и для любой элемен8
тарной формулы А (х, х) формула (7), то К есть теория первого порядка с равенством, т.е. в К всякая фор8
мула вида (7) является теоремой.
Доказательство. Итак, мы должны доказать, что всякая формула вида (7) является теоремой в К. Для эл8
ементарных формул это верно по условию. Заметим, что для рассматриваемой теории К прошлое предло8
жение верно, ибо в его доказательстве используется (7) только для элементарных формул. Следуя индук8
ции по числу n всех связок и кванторов в А, предположим, что для всех к < n все формулы вида (7) являются
теоремами в К.
Случай 1. А (х, х) есть ¬В (х, х). По индуктивному предложению мы имеем |+ у = х (В(х, у) В (х, х)), т.к.
В (х, х) получается из В (х, у) заменой некоторых вхождений у на х. Отсюда, применяя прошлое предложе8
ние и тавтологии (А В) (¬В ¬А) и (АВ) ((ВС) (АС)), получаем |+ x = y (A(x, x) A(x, y)).
Случай 2. А(х, х) есть В(х, х) ε(х, х). В силу индуктивного предположения и прошлого предложения , |8 x = y
(B(x, y) B(x, x)) и |+ x = y (ε (x, x) (ε (x, y)). Отсюда с помощью тавтологий (А(В1 В)) [(A(C C1)) (A((B C) (B1C1)))]
получаем |+ x = y (A(x, x) A(x, y)).

49
45б Лемма. Если α и β — кардинальные числа, причем α≤β, и если К имеет модель мощности α, то К
имеет модель и мощность β.
Доказательство. Пусть М есть модель К с областью D мощности α, и пусть D’— какое8нибудь множе8
ство мощности β, содержащее D. Расширим модель D до некоторой интерпретации М’ с областью D’
следующим образом. Пусть с — некоторый фиксированный элемент D. Условимся считать, что элемен8
ты множества D’—D ведут себя, как с.
Например βin, если есть интерпретация в М предикатной буквы Аn, а (βin) — новая интерпретация в М’,
то для любых d1, …, dn из D’(βin)’ считается выполненным для (d1, …, dn) в том и только в том случае, ког8
да выполнено для (u1, …, un), где ui = di, если di D, и ui = c, если di D’—D.
Аналогично распространяется интерпретация функциональных букв, а интерпретации для предметных
констант остаются прежними, т.е. берутся из М. По числу связок и кванторов в формуле А нетрудно те8
перь доказать индукцию, что А истинна в М’ тогда и только тогда, когда А истинна в М. Следовательно,
М’ является моделью К мощности β.

46б Случай 3. А (х, х) есть ∀z (х, х, z). По индуктивному предположению |+ x = y(B(x, x, z) B(x, y , z)). При8
меняя правило Gen и аксиому (5), получаем |+ x = y ∀z (B(x, x, z) B (x, y, z)). Имеем ∀z (B(x, x, z) B (x, y,
z)) [∀z B(x, x, z) ∀z B(x, y, z)] и теперь с помощью тавтологии (АВ) ((ВС) (АС)) получаем окончательно |+ x = y
(A(x, x) A(x, y)).
Сужение классов формул А(х, х) в (7) может быть продолжено еще дальше. Предложение. Пусть К — тео8
рия первого порядка, в которой к числу теорем принадлежит формула (6), а также все формулы вида (7), в
которых формула А (х, х) элементарна, не содержит вхождений функциональных букв и А (х, у) получается
из А (х, х) замещением на у в точности одного вхождения х.

50
47а 47. Понятие относительного алгоритма, или алгоритма с оракулом
Чтобы получить определение алгоритма с оракулом А, надо следующим образом изменить формулиров8
ку Колмогорова. Оракул А — это некоторое множество в каком8то ансамбле. Алгоритм с оракулом имеет
вопросное устройство — некий вспомогательный алгоритм , определенный (т.е. дающий результат) на
множестве всех возможных состояний S. Каждый шаг процесса, задаваемого алгоритмом с оракулом,
определяется не только возникшим к этому шагу состоянием S, но и истинностью утверждения (S)A. Сле8
довательно, оператор непосредственной переработки ω, дающий следующее состояние S*, оказывается те8
перь функцией от двух аргументов — от S и от числа b, принимающего значение 0 и 1 в зависимости от то8
го, верно ли соотношение (S)A. Алгоритм с оракулом А называется также алгоритмом относительности
А.
Понятие алгоритма с оракулом важно с методологической точки зрения. Дело в том, что теория алгорит8
мов и исчислений, как и математическая логика (понимаемая по Черчу как теория формализованных язы8
ков), формализует некоторые стороны деятельности человека (в отличие от других математических дисци8
плин, которые формализует нечто, не предполагающее непременного присутствия человека). В частности,
теория алгоритмов использует понятие элементарной операции. Понятие элементарности — существен8
но «человеческое» понятие. То, что элементарно для человека, может оказаться неэлементарным для дру8
гих существ, и наоборот. Можно считать, что человек, осуществляя вычисление, непрерывно обращается к
некоторому оракулу, только оракул этот отвечает на столь «элементарные» вопросы (типа «Тождественны
или нет эти два символа?»), что это даже не замечается. Можно представить себе более мощный, чем у че8
ловека, запас вычислительных средств, подразумевающий, в частности, обращение к некоторому нетриви8
альному (с человеческой точки зрения) оракулу (который в рамках этих средств не осознается, скорее все8
го, как внешний оракул, а признается частью самих этих средств).
Высказанные соображения подтверждаются следующими попытками аксиоматически определить поня8
тие вычислимой функции.
Анализируя доказательства, встречающиеся в теории вычислимых функций, можно заметить, что возмо8
жен (и даже иногда используется) следующий способ рассуждений. Сначала устанавливаются некоторые
основные и интуитивно очевидные свойства класса вычислимых функций, а затем требуемые утверждения
выводятся из них. Сформулируем упомянутые выше основные свойства класса К всех вычислимых число8
вых функций.
1. Аксиома функциональных констант.
Класс К содержит все вычислимые числовые функции. Это свойство применяется тогда, когда в ходе до8
казательства нужно установить принадлежность к К какой8либо конкретной функции. Его можно заменить
на: класс К содержит константу 0 и функцию следования;
2. Аксиома операторных констант.
Класс К замкнут относительно операторов подстановки, рекурсии и минимизации.

48а 48. Аксиома универсальной функции


Немного напомним аксиому протокола. Содержательная часть этой аксиомы такова: мы предполагаем,
что для каждого вычисления существует его протокол (запись), представляющий собой последовательность
сменяющихся состояний алгоритмического процесса. Множество Е есть множество кодов всех таких про8
токолов. В случае, когда К есть просто класс всех вычислимых числовых функций, множество всех прото8
колов разрешимо, и, следовательно, характеристическая функция Е в этом случае принадлежит К. Функции
a и b выделяют из кода протокола исходное данное и результат вычисления.
Аксиома универсальной функции
В классе К существует двуместная функция, универсальная для всех одноместных функций из К. «Уни8
версальность» U(x, y) означает, что ∀f∈K∃x∀yf(y)=U(x,y)).
В качестве основания теории вычислимых функций эти аксиомы намного более очевидны, чем тезис Чер8
ча. В самом деле, они не позволяют утверждать, что некоторые функции невычислимы. В противополож8
ность этому наиболее неочевидная часть тезиса Черча утверждает, что функции, невычислимые на моде8
ли, невычислимы и каким бы то ни было образом.
Кроме других преимуществ аксиоматического подхода (например, замены сложных прямых конструкций
короткими аксиомами), укажем два следующих преимущества. Первое состоит в том, что данные аксиомы
не только более очевидны, но также и менее техничны, и недостаток состоит в том, что аксиоматическая
система может иметь (и имеет) различные модели.
Действительно, четыре перечисленные выше аксиомы выполнены не только для класса всех вычислимых
функций, но и для любого класса всех функций, вычислимых с данным оракулом. Следовательно, все тео8
ремы, выводимые из аксиомы функциональных констант, аксиомы операторных констант и аксиоI
мы протокола выполнены для любого такого класса. Это объясняет возможность «релятивизации» многих
теорем. Действительно, как доказано, любой класс функций, удовлетворяющий этим аксиомам, в действи8
тельности есть класс всех функций, вычислимых с некоторым фиксированным оракулом.
Мы видим, что с чисто теоретической стороны понятие алгоритма с оракулом позволяет релятивизиро8
вать теорию алгоритмов. С более практической стороны оно позволяет дать точное определение общего
понятия сводимости по разрешимости и, следовательно, дать точную формулировку фундаментальной
проблемы сводимо8сти. Действительно, теперь можно ввести следующее определение.
Множество Q сводится по Тьюрингу (сводится по разрешимости) к множеству P тогда и только тог8
да, когда существует относительный алгоритм, вычисляющий характеристическую функцию Q относитель8
но множества P, или (в оракульных терминах) существует алгоритм с оракулом P, вычисляющий эту харак8
теристическую функцию. Понятие алгоритма с оракулом и сам термин «оракул» впервые появились в
статье Тьюринга. По этой причине Пост ввел термин «сводимость по Тьюрингу» для обозначения своди8
мости проблемы разрешения самого общего вида.

51
47б Это свойство применяется, если из утверждения о принадлежности к К каких8то функций нужно вы8
вести утверждение о принадлежности к К некоторой другой функции, выражающейся через первые.
3. Аксиома протокола.
Для всякой функции f из класса К существуют:
1) множество натуральных чисел Е, характеристическая функция которого лежит в К;
2) функции a и b, определенные на всех элементах Е, принадлежащие К и удовлетворяющие условию: зна8
чение функции f на числе x равно y тогда и только тогда, когда существует такое g из E, что a(g)=x и
b(g)=y.
4. Аксиома универсальной функции.
В классе К существует двуместная функция, универсальная для всех одноместных функций из К («универ8
сальность» U(x, y) означает, что

∀f∈K∃x∀yf(y)=U(x,y)).

48б Важным и естественным частным случаем сводимости по Тьюрингу является сводимость за полиI
номиальное время. Она определяется заданием полиномиального — от длины выхода — ограниче8
ния на время работы алгоритма с оракулом. Естественно поставить проблему полиномиальной по времени
сводимости: все ли множества из класса NP\P сводится друг к другу за полиномиальное время многие
представители класса NP, возникшие из математической практики. К каждому из представителей класса NP
все множества из NP сводятся за полиномиальное время. Неизвестно, сводятся ли за полиномиальное вре8
мя все множества из NP к множеству всех пар изоморфных графов.

52
49а 49. Влияние теории алгоритмов на алгоритмическую практику
(формализация алгоритма, алгоритмические проблемы в математике)
В настоящее время большинство явно сформированных и используемых человеком в его деятельности
алгоритмов — это программы для ЭВМ. О масштабах «алгоритмической» деятельности человечества важ8
но судить по возникшим в ней организационным проблемам. Таким образом, программирование — это ал8
горитмическая практика, теоретическое программирование — это (при широком понимании термина) вся
теория алгоритмов (например, теорему Геделя о неполноте можно рассматривать как теорему теоретиче8
ского программирования). Общепринято, однако, другое понимание термина «теоретическое программи8
рование» — как области теории алгоритмов, концентрирующейся вокруг взаимоотношения программы как
чисто синтаксического, неинтерпретированного объекта и содержания (смысла, значении) программы. Ко8
нечно, для теоретического программирования характерен интерес к порожденным практикой темам, кото8
рых не касалась классическая теория алгоритмов, таким как параллельное программирование или структу8
ры данных. Тем не менее «общая часть» теоретического программирования и теории алгоритмов велика, и
классическая теория алгоритмов оказала бесспорное влияние на программирование. Это влияние, одна8
ко, состояло не в использовании каких8либо теорем, оно носило скорее идейный характер. Попытаемся
проследить, как оно проходило, перечислив соответствующие результаты и понятия общей теории алго8
ритмов.
Общее понятие алгоритма и возможность его формализации. В вычислительной практике важную
роль сыграло осознание того, что любая вычислительная машина (если игнорировать физические ресурсы)
может вычислять любую вычислимую функцию и никакая машина не может вычислить невычислимую. Так8
же важную, хотя и не всегда однозначно полезную роль играло утверждение о том, что все задачи, реша8
емые человеком, могут быть решены подходящими алгоритмами, в частности на ЭВМ.
Существование нерешимых алгоритмических проблем в математике и нерешаемость многих
естественно возникших проблем. О некоторых задачах стало заранее известно, что искать их полное и
точное решение безнадежно и нужно вырабатывать реалистический подход, основанный на отказе от пол8
ноты, абсолютной достоверности или чего8то еще. Конечно, разделение задач на решимые и нерешимые
имело и отрицательные последствия, возникло искушение рассматривать всякую решимую задачу как
практически решаемую, почти решенную, если не сегодня, то при дальнейшем прогрессе вычислительной
техники.
Появление различных понятий сложности вычисления и порождения. Возможность строгого аб8
страктного определения того, что такое сложность вычисления, стимулировало разработку эффективных
алгоритмов и дало возможность их объективного сравнения. Большое практическое значение имело опре8
деление класса NP и доказательство полиномиальной эквивалентности многих «переборных» задач. Это
наряду с экспоненциальными нижними оценками; выяснилось, что одного только существования алгорит8

50а 50. Вычислительные и порождающие модели. Смешанные вычисления


Основную роль в программировании играют не сами представительные модели, а их (уже непредстави8
тельные) модификации и ограничения. Типичные примеры таких ограничений — магазинные автоматы
и контекстно8свободные грамматики. Контекстно8свободные грамматики широко использовались для за8
дания синтаксического языков программирования.
Трактовка программ как объектов вычисления. Фон Нейман был первым, кто ввел это фундамен8
тальное открытие алгоритмов в алгоритмическую практику. Принцип хранимой и модифицируемой про8
граммы стал одной из основ системного программирования. Неотделимыми частями каждой ЭВМ являют8
ся компилятор и другие компоненты операционной системы, ориентированные на модификацию
и выполнение программ потребителей. Машина с действующим развитием этих идей явилась концепцией
смешанного вычисления, позволяющей с единой точки зрения взглянуть на многие кажущиеся различны8
ми способы обработки программ и данных.
Рассмотрение программ как объектов порождения (как и результаты о логических исчислениях) сти8
мулировало развитие формальных систем, предназначенных для доказательства утверждений о програм8
мах. Важнейший класс таких утверждений образуют утверждение о так называемой правильности про8
грамм, т.е. о том, что рассматриваемая программа «делает, что надо».
Методы программирования. Здесь имеются в виду методы построения алгоритма и доказательства их
правильности, появившиеся внутри теории алгоритмов. Наиболее показателен в этом отношении пример
структурированного программирования. Основные операторы образования структурированных программ
(последовательное выполнение, разветвление, повторение) были введены в начале 508х годов при описа8
нии нормальных алгоритмов Маркова. Одновременно были даны нетривиальные примеры индуктивного
доказательства правильности программ, построенных с помощью этих операторов (в частности, програм8
мы универсального алгоритма, т.е. интерпретатора).
Математическая логика и вычислительная техника. Один из самых выдающихся программистов ХХ
в. Э. Дейкстра называет блестящим предвидением следующее высказывание другого известного спе8
циалиста, автора Лисп Дж. Маккарти, сделанное еще в 1967 г.: «Разумно ожидать, что связи между вычи8
слительной техникой и математической логикой окажутся столь же плодотворным в следующем столетии,
каким были связи между математическим анализом и физикой в столетии предыдущем».
Поучительным примером взаимодействия теории алгоритмов и вычислительной практики является ра8
звитая А. П. Ершовым и его учениками теория смешанных вычислений. Мы коснемся самого начала этой
теории. Начнем с двух замечаний.
1. Пусть аргументами алгоритма служат пары (x, y). Тогда фиксация x дает алгоритм с аргументом y.
2. Программа алгоритма, получаемого фиксацией x, может быть эффективно построена по программе
первоначального алгоритма, если используемый способ программирования — главный.

53
49б ма, решающего ту или иную массовую проблему, далеко не достаточно для практики. Тем самым еще
раз подтвердилась важность нестандартных (эвристических, приближенных и т.д.) подходов. С другой
стороны, теоретические алгоритмы, для которых были доказаны «хорошие» полиномиальные верхние
оценки сложности, нашли практические приложения.
Неалгоритмическое описание вычислимых функций (μ — рекурсивные функции, исчисление Эрбра8
на8Геделя, исчисление α8конверсии, неподвижные точки вычислимых операторов и т.д. Неалгоритмиче8
ское (непроцедурное) описание вычислимых функций оказалось важным средством программирования.
Начиная с языка Лисп, соответствующие конструкции вошли во многие языки программирования, кроме
того, неалгоритмическое описание является основой многих формальных определений семантики про8
грамм.

50б Эти два замечания содержательной теории алгоритмов так называемую s8m8n — теорему. Отметим,
что фиксация одного члена пары может рассматриваться как типичный пример сужения области ис8
ходных данных. Получаемый при этом алгоритм называется специализацией исходного.
S8m8n8теорема может рассматриваться как теоретическое подтверждение идеи автоматизации програм8
мирования. Действительно, как мы видим, имеется автоматический способ получать из общего алгоритма
его специализацию. Заметим, однако, что формулировка теоремы не дает конкретного рецепта специали8
зации. Попытка же извлечь алгоритм специализации из обычного доказательства s8m8n8теоремы, конечно,
не приводит к удовлетворительному результату. Это доказательство гласит: «Вот требуемая программа:
образуй из x и y пару и примени к ней первоначальный алгоритм». В то же время содержательно понимае8
мая цель специализации состоит в получении алгоритма, более эффективного, чем первоначальный, об8
щий, от двух аргументов. Смысл ограничения области аргументов как раз и состоит в получении более эф8
фективного (т.е. более экономного по времени и емкости, с более короткой программой и т.д.) алгоритма.

54
51а 51. Счетные множества
Задачи и идеи из области математики тесно связаны между собой. Задачи и идеи из области оснований
математики внесли существенный вклад в развитие математической логики; логика же в свою очередь яви8
лась основным инструментом в исследовании проблем оснований математики.
Пусть нас интересует вопрос, являются ли какие8либо две совокупности равночисленными или же какая8
нибудь одна из них многочисленнее другой (в этом случае — какая именно). В случае конечных совокупно8
стей мы можем выяснить этот вопрос, попытавшись «спарить» члены этих множеств (в каждой паре по од8
ному члену из каждого множества), или, как говорят, установить между данными множествами
взаимноIоднозначное, или иначе, одноIоднозначное соответствие (еще короче: 1–18соответствие).
Если между двумя множествами можно установить 1–18соответствие, то эти множества «равносильны» или
имеют одно и то же кардинальное число. Идея такого соответствия имеет более первоначальный, более
элементарный характер, нежели идея «кардинального числа». Это хорошо видно из следующего примера.
Члены одного племени умеют считать до двадцати. Когда племени предстоит выбирать себе вождя из
двух кандидатов А и В, предпочтение оказывают тому, кто владеет большим стадом. Животных заставляют
проходить через ворота парами, по одному из каждого стада в паре, до тех пор, пока одно из стад (или оба)
не будет исчерпано. Если стадо, принадлежащее А, исчерпается раньше, вождем становится В, и, наобо8
рот, выигрывает А, если в его стаде еще остались животные, в то время как последнее животное из стада В
уже прошло через ворота. (Если последние животные из каждого стада пройдут через ворота одновремен8
но, приходится искать другую методику выборов или же устанавливать двоевластие.) Хотя в каждом из стад
может быть больше чем по двадцати голов скота, т.е. заведомо больше предела, до которого могут досчи8
тать члены племени, этот метод попарного соответствия прекрасно работает.
В 1638 г. Галилей отметил «парадокс», состоящий в том, что между квадратами целых положительных чи8
сел и самими целыми положительными числами можно установить 1–18соответствие, а это вступает в про8
тиворечие с евклидовой аксиомой, согласно которой целое больше любой из своих собственных частей
(собственная часть — это часть, не совпадающая со всеми целыми).
Таким образом, в случае бесконечных совокупностей и наличия 1–18соответствия между какой8либо со8
вокупностью и собственной частью некоторой другой совокупности отнюдь не исключается возможность,
что соответствие, установленной каким8нибудь другим способом между первой совокупностью и всей вто8
рой совокупностью, также будет одно8однозначным. В случае двух стад такого быть не может: если уж В
одержал победу в «выборах», то А может быть уверен (хотя он и не владеет математическим доказатель8
ством этого факта), что никакой другой порядок прохождения стада через ворота не обеспечит ему победы
в выборах или хотя бы ничейного их исхода. Мы будем предполагать известной (данной) последователь8
ность натуральных чисел (иначе называемых неотрицательными числами) 0, 1, 2, 3, 4, 5, …

52а 52. Сложные и сложносокращенные виды силлогизма.


Условные и условноIкатегорические силлогизмы
В математике кроме силлогизмов в сокращенном виде встречаются также сложные умозаключения раз8
новидности, в которые входит по два и более силлогизмов. Сюда относятся прогрессивный и регрессивI
ный силлогизмы. Кроме этого, встречаются также сложносокращенные силлогизмы.
Проще для понимания полисиллогизмы, к тому же они чаще встречаются. Их структура представляет со8
бой цепочку, составленную из силлогистических умозаключений. Прогрессивный полисиллогизм отли8
чается тем, что в нем во всех посылках используется один и тот же большой термин, а на месте субъекта
после очередного шага каждый раз появляется все более узкое понятие.
Прогрессивный и регрессивный сориты получаются из соответствующих полисиллогизмов за счет со8
кращения части посылок, которые опускаются. Какие именно из посылок пропущены, зависит от содержа8
ния всей мысли, от ее доступности для понимания.
Эпихейрема — это самое сложное, пожалуй, умозаключение среди силлогизмов. Она составляется из
двух энтимем. Каждая из них, точнее их заключения, играют роль посылок. Заключение всего такого слож8
ного образования — простое категорическое суждение. Чтобы разобраться с эпихейремой, проверить ее
соответствие правилам логики, надо каждый раз восстанавливать обе энтимемы в полный силлогизм.
Конечно же, существует и множество других комбинаций силлогизмов и суждений. Все их нельзя было
бы перебрать. Логика указывает только на наиболее распространенные. Их усвоение помогает овладеть
правилами логики, вырабатывает навыки самостоятельного их использования в повседневной деятельно8
сти, в научной работе, в творчестве и в других сферах.
В науке и в обиходе приходится часто отмечать зависимость тех или иных явлений, событий, процессов
от всякого рода обстоятельств: факторов, способных изменить течение дел, причинных воздействий, по8
рождающих известные события, внешних влияний, которые удерживают ход вещей в известных рамках. То
есть речь идет об условиях, определяющих все, что происходит вокруг нас. Обычно условия задаются с по8
мощью оборота «Если..., то...»: «Если дважды два равняется четырем, то я знаю таблицу умножения», «Если
орудие железное, то оно не относится к каменному веку». Суждения, в которых задаются такого рода свя8
зи, называют условными, а в символической логике импликативными, или импликациями.
Условные силлогизмы делятся на собственно условные и условно8категорические. Кроме того, они мо8
гут комбинироваться с другими умозаключениями, например с разделительными.
Условные умозаключения содержат и в посылках, и в заключении одни только условные суждения.
Условно8категорическое умозаключение имеет одну из посылок и заключения, выражаемые категориче8
скими суждениями. У него два правильных модуса, которые имеют латинские названия — modus ponens
(утверждающий) и modus tollens (отрицающий). В нем от наличия основания условной связи делают вы8
вод о наличии следствия. Название «утверждающий» происходит от того, что этим модусом условно8кате8

55
51б Совокупность эта называется счетноIбесконечной или перечислимоIбесконечной, если можно
установить 1818соответствие между ней и множеством всех натуральных чисел. Чтобы убедиться в
счетности некоторого бесконечного множества, надо лишь задать его элементы в виде бесконечного пе8
речня, т.е., как мы говорили выше, установить 1818соответствие между этим множеством и рядом натураль8
ных чисел. Каждый конкретный такой перечень (1818соответствие с множеством натуральных чисел) назы8
вают пересчетом данного множества. Примерами счетно8бесконечных множеств, как мы можем
убедиться из рассмотрения следующих пересчетов, множество целых положительных чисел, множество
квадратов целых чисел, множество всех целых чисел является:

1, 2, 3, 4, 5, 6, … ,
1, 4, 9, 16, 25, 36, …,
0, 1, 81, 2, 82, 3, … .

52б горического силлогизма утверждается то, о чем говорит следствие в его посылке. Но это вовсе не оз8
начает, будто его заключение может быть только утвердительным суждением. В том случае, когда
следствие в условной посылке является отрицательным, то и вывод тоже звучит как отрицание.
Modus tollens
Вывод в условно8категорическом умозаключении можно делать либо от наличия основания к наличию
следствия, либо от отсутствия следствия к отсутствию основания.
На самом деле в силу многозначности причинно8, условно8категорическое умозаключение представляет
собой один из самых элементарных шагов в выводах и доказательствах. Оно имеет чрезвычайно широкое
распространение. Несмотря на его кажущуюся простоту, разобраться порой с ним бывает не так уж и лег8
ко, особенно когда посылки содержат отрицания и вдобавок выражаются длинными предложениями. Зна8
ние условных и условно8категорических силлогизмов настоятельно необходимо всякому, кто хочет овла8
деть законами правильного мышления.

56
53а 53. Виды разделительных силлогизмов
Разделительными в традиционной логике называют суждения, в которых перечисляются альтернативы,
варианты, направления деятельности и т.п. Обычно это делается через союз «или»: «Питательные веще8
ства — это или белки, или жиры, или углеводы, или витамины». В символической логике они получают наз8
вание дизъюнкции. Их использование позволяет строить различные виды разделительных умозаключений:
собственно разделительные, разделительно8категорические и условно8разделительные. Разделительные
умозаключения содержат в качестве посылок и заключений одни только разделительные суждения. Чаще
всего они встречаются в обычных классификациях. Их понимание не вызовет большого затруднения. Ска8
жем, одной из посылок такого умозаключения могло бы послужить высказывание: «Философские системы
делятся на материалистические и идеалистические». Другая посылка может просто добавить: «Идеалисти8
ческие системы бывают или субъективно8идеалистические, или же они могут быть объективно8идеалисти8
ческими». Тогда общий вывод перечислит все полученные разновидности: «Философские системы бывают
или материалистические, или субъективно8идеалистические, или объективно8идеалистические».
Разделительно8категорические умозаключения содержат наряду с разделительной еще и категориче8
скую посылку. Заключение в них тоже выражается категорическим суждением. У этого вида умозаключения
два правильных модуса. Первый модус называется tollendo ponens (отрицающе8утверждающим): утвер8
ждающим вывод в нем является, как и в условно8категорическом умозаключении, не вообще, а только от8
носительно данного умозаключения. Когда утверждаемая альтернатива выражается отрицательным суж8
дением, то тогда и заключение по этому модусу тоже высказывается в отрицательной форме.
Другой модус — ponendo tollens (утверждающе8отрицающий). Он отрицает одну из альтернатив в выво8
де, а не в посылке. Альтернатив в обоих модусах может быть больше двух. Но только в таком случае и вто8
рая посылка (или заключение) перечисляет соответственно больше альтернатив. Хотя оба эти модуса с ви8
ду настолько просты, что, кажется, запутаться в них так же невозможно, как, скажем, допустить четыре
ошибки в слове «щи», тем не менее получить через них неверные выводы все8таки возможно, если не знать
два простых правила разделительно8категорических умозаключений.
1. В разделительной посылке должны быть перечислены все альтернативы (данное правило относится к
отрицающе8утверждающему модусу).
2. Разделительная посылка обязательно должна быть выделяющей, или, иначе, иметь смысл строгой
дизъюнкции (данное правило относится к утверждающе8отрицающему модусу).
Возьмем, к примеру, такое умозаключение:
Существительные бывают мужского, женского или среднего рода. Существительное «сутки» не относит8
ся ни к мужскому, ни к женскому роду. Существительное «сутки» среднего рода? Вывод, сделанный по пер8
вому модусу, получился неверным. Причина — нарушение первого правила: в разделительной посылке не
указано, что бывают еще существительные неопределенной родовой принадлежности. Второе правило

54а 54. Определение счетных множеств


Счетное множество — это множество, являющееся либо счетно бесконечным, либо конечным. Под коI
нечными множествами мы здесь понимаем множества, для которых можно установить 1–18соответствие
с каким8либо начальным отрезком натурального ряда 0, …, n – 1, быть может пустым (n = 0). Такое опреде8
ление равносильно тому, что конечным множеством мы будем называть множество, «кардинальное чиI
сло» которого есть натуральное число n, и именно такое употребление натуральных чисел совпадает с
обычным их пониманием.
Другой пример счетно8бесконечного множества — это множество рациональных чисел. Этот факт
представляется интересным, если сравнивать рациональные числа с целыми в их обычном алгебраиче8
ском порядке. Точки действительной оси с целочисленными координатами расположены на ней изолиро8
ванно, а точки с рациональными координатами — «всюду плотно», т.е. между любыми такими сколь угодно
близкими точками всегда находятся другие точки с рациональными координатами. И тем не менее мы мо8
жем пересчитать множество рациональных чисел при помощи следующего приема. Отметим прежде все8
го что каждое рациональное число может быть записано в виде дроби с целым числителем и целым поло8
жительным знаменателем. Расположим все такие дроби в виде следующей бесконечной матрицы
(таблицы):

0/1 1/1 81/1 2/1 82/1 3/1 …


0/2 1/2 81/2 2/2 82/2 3/2 …
0/3 1/3 81/3 2/3 82/3 3/3 …
0/4 1/4 81/4 2/4 82/4 3/4 …

В заключение мы можем двигаться вдоль полученного пересчета, вычеркивая из него каждую дробь, рав8
ную по величине некоторой предыдущей дроби из того же пересчета. В результате мы получаем следую8
щий пересчет множества всех рациональных чисел: 0, 1, 81, 1/2, 1/3, 81/2, 2, 82, 81/3, 1/4, … Еще одно счет8
но8бесконечное множество — это множество всех действительных алгебраических чисел, т.е.
множество действительных корней алгебраических (полиномиальных) уравнений с одним неизвестным с
целыми коэффициентами; примером может служить хотя бы уравнение: 4x5 – 17x3 + 2x2 + 5= 0. Общий вид
уравнения n 8 ой степени (n≥1): а0xn + a1xn81 + + … + аn 81 x + an = 0 (a0 ≠0) Если мы сможем пересчитать мно8
жество уравнений, то сможем пересчитать и действительные алгебраические числа. Для этого в пересчете
уравнений мы сможем заменить каждое уравнение совокупностью его различных действительных корней,
в результате чего получим «пересчет с повторениями» всех действительных алгебраических чисел. Теперь
остается только устранить из этого пересчета все повторения. Алгебраические уравнения с целыми коэф8
фициентами можно пересчитать также исходя из того обстоятельства, что мы можем в их записях, не опас8

57
53б связано со смыслом слова «или». Допустим, нам сказали, что переводчик Сидоров владеет китайским
или японским языком. И допустим, далее нам стало известно, что он владеет китайским языком. Мо8
жем ли сделать отсюда вывод по второму модусу о том, что Сидоров не владеет японским языком? Очевид8
но, такое заключение было бы необоснованным. При верной посылке о том, что переводчик владеет тем
или этим языком, он может владеть обоими. Слово «или» имеет два смысла. Другой — объединяющий, ког8
да альтернативы не исключают друг друга, как это имеет место в данном рассуждении. Полученный необос8
нованный вывод в нем объясняется тем, что не соблюдено второе правило. Модус ponendo tollens дает ис8
тинное заключение только при разделительном смысле первой посылки.
Условно8разделительные силлогизмы называют также иногда лемматическими, и они представляют
собой более сложные логические образования.

54б аясь двусмысленности, писать показатели степени просто в строку, на одном уровне со всеми осталь8
ными символами (так: 4x5 – 17x3 + 2x2 + 5 = 0). Уравнения оказываются конечными по8
следовательностями, составленными из 148ти различных символов: 0 1 2 3 4 5 6 7 8 9 x + 8 = Первый символ
в записи уравнения не есть 0. Мы можем теперь рассматривать перечисленные 14 символов как цифры
в четырнадцатиричной системе счисления, т.е. в системе счисления, основанной на числе 14 точно таким
же образом, каким десятичная система основана на числе 10. В результате этого каждое уравнение оказы8
вается записью некоторого натурального числа в этой системе счисления. Соответственно, не все целые
положительные числа, записанные в четырнадцатиричной системе счисления с 14 перечисленными выше
символами в качестве цифр, должны восприниматься как записи некоторых уравнений. Выкидывая числа,
не являющиеся таковыми, из последовательности целых положительных чисел, записанных в 148тиричной
системе, мы получаем пересчет множества алгебраических уравнений; иными словами, алгебраические
уравнения могут быть пересчитаны в порядке возрастания величины целых положительных чисел, запися8
ми которых они оказываются при интерпретации входящих в уравнения символов как цифр 148тиричной си8
стемы счисления.

58
55а 55. Метод цифр
Часто используемый метод для перечета алгебраических уравнений — метод цифр. Мы применим его
для установления следующего принципа.
1. Если все элементы некоторого множества S могут быть однозначным образом обозначены посредством
непустых конечных последовательностей (вхождений) символов из некоторого фиксированного конеч8
ного списка символов (алфавита) S0, …, Sp – 1 (или даже из счетно8бесконечного алфавита S0, S1, S2, …),
то это множество S счетно.
Для случая конечного алфавита S0, …, Sp – 1 мы можем получить требуемое утверждение в точности, как выше,
если не считать следующей детали. Воспринимая конечную последовательность (вхождений) символов S0, …, Sp–1
как запись некоторого натурального числа в р8ичной системе счисления, мы не можем усмотреть из такого чи8
сла самого по себе, сколько начальных символов S0 входит в данную последовательность. Например, в четыр8
надцатиричной системе с указанными выше цифрами посредством каждого из уравнений 4x5 – 17x3 + 2x2 + 5 =
= 0, 04x5 – 17x3 + 2x2 + 5 = 0, 004x5 – 17x3 + 2x2 + 5 = 0 и т.д. будет выражено одно и то же число. Эта неоднознач8
ность не играла роли в интересующем нас случае, так как мы могли исключить из рассмотрения (и так и сдела8
ли) алгебраические уравнения, записи которых начинаются с цифры 0. В тех же случаях, когда такая неодноз8
начность числа начальных цифр могла бы играть существенную роль, мы можем, во изменение предыдущего,
интерпретировать символы S0, …, Sp – 1 как цифры 1, …, р в р + 18ичной системе счисления, в которой сверх то8
го имеется еще отличный от указанных символ для цифры 0.
Заметим еще, что совершенно несущественно, получает ли каждый элемент множества S единственное
обозначение или же несколько различных обозначений, использующих алфавит S0, …, Sp – 1. Если элемен8
ты из S могут получать по нескольку различных обозначений, то при вычеркивании из натурального ряда
всех чисел, не являющихся обозначениями элементов множества S, мы заодно можем вычеркнуть и все
обозначения каждого элемента, кроме наименьшего по величине.
Случай счетно8бесконечного алфавита S0, S1, S2, S3,… можно свести к случаю конечного алфавита, заме8
няя каждый символ счетно8бесконечного алфавита некоторой подходящей комбинацией символов, принадле8
жащих некоторому конечному алфавиту. Мы можем, например, выбрать два символа a и b и заменить S0, S1,
S2, S3,… соответственно на a, ab, abb, abbb, … . В результате, скажем, обозначение S0S3S1S1 перейдет в
aabbbabab, причем из этого нового обозначения можно однозначным образом извлечь S0S3S1S1. Теперь
метод цифр можно применить к новому двухбуквенному алфавиту a, b; например, мы можем интерпретиро8
вать знакосочетание aabbbabab как обозначение некоторого числа в троичной системе счисления, в кото8
рой знаки 0, a, b, играют роль цифр 0, 1, 2. Конечно, для различных конкретных случаев могут найтись и бо8
лее удобные способы сведения алфавита S0, S1, S2, S3,… , к конечному алфавиту.
Верно и обратное утверждение.

56а 56. Канторовский диагональный метод


Рассмотрим прежде всего все одноместные арифметические функции — так мы будем называть функ8
ции одной переменной а, пробегающей множество натуральных чисел, значения которых (функций) также
суть натурального числа. Примеры: а2, 3а + 1, 5 (константная функция, все значения которой равны), а (тож8
дественная функция, равная своему аргументу), [√а] (наибольшее целое число, не превосходящее √а) и т.п.
Чтобы доказать несчетность множества (всех) таких функций, предположим, что нам дан некоторый пе8
ресчет f0 (а), f1 (а), f2 (а), … одноместных арифметических функций (не обязательно всех). Тогда мы смо8
жем построить одноместную арифметическую функцию f (а), отличную от каждой функции из данного пе8
ресчета. Тем самым мы докажем, что данный пересчет не может быть пересчетом всех одноместных
функций. Чтобы сделать построение функции f (а) более наглядным, составим бесконечную таблицу, стро8
ками которой будут служить последовательности значений функций f0 (a), f1 (a), f2 (a), …:
...
a 0 1 2

f0 (a) f0 (0) f0 (1) ...


f0 (2)

f1 (a) f1 (0) f1 (1) f1 (2) ...

f2 (a) f2 (0) f2 (1) f2 (2) ...

...
... ... ... ...

Определим теперь функцию f (a) как функцию, последовательность значений которой получается из по8
следовательности значений, стоящих в нашей таблице на диагонали увеличением каждого из них, скажем,
на единицу, т.е. f (a) = fa (a) + 1.
Эта функция не входит в данный пересчет f0 (a), f1 (a), f2 (a), … . В самом деле, она отличается от f0 (a)
своим значением для аргумента 0, от f1 (a) — значением для аргумента 1 и т.д. (Скажем, если f0 (a) = a2, f1
(a) = 3a + 1, f2 (a) = 5, f3 (a) = a, f4 (a) = [√а], …, то f0 (0) = 0, f1 (1) = 4, f2 (2) = 5, f3 (3) =3, f4 (4) = 2, …, а f (0) =1,
f (1) =5, f (2) =6, f (3) =4, f (4) = 3, … .) Допустим, оформляя то же рассуждение, иначе что функция f (a) за8
нимает определённое место в пересчете f0 (a), f1 (a), f2 (a), …, т.е. что для некоторого натурального числа
р: f (a) = fp (a) для каждого натурального числа а. Подставляя вместо переменной а число р в это и пред8
ыдущее равенство, получим: f (p) = fp (p) = fp (p) + 1, что невозможно, так как натуральное число fp (p) не мо8
жет равняться самому себе, увеличенному на 1.

59
55б 2. Если множество S счетно, то его элементы могут быть однозначным образом обозначены посред8
ством непустых последовательностей (вхождений) символов из некоторого фиксированного конечно8
го алфавита. Действительно, если S бесконечно и а0, а1, а2, … — некоторый конкретный его пересчет, то
а0 можно обозначить посредством 0, а1 — посредством 1, а2 — посредством 2 и т.д., используя 10 сим8
волов 0, 1, …, 9. Короче говоря, каждый элемент ai множества S можно обозначить посредством (цифры
для) его номера (его индекса) i в данном пересчёте а0, а1, а2, а3, …множества S. Аналогично проводится
рассуждение и для случая конечного множества.
Предложения 1. и 2. в совокупности дают по существу ясный критерий того, какие множества являются
счетными (т.е. конечными или счетно8бесконечными).
Для фактического же установления суетности множеств часто применяются и другие методы, отличные
от метода цифр.

56б Метод, который мы использовали в этом рассуждении, называют кванторским диагональным меI
тодом. Накладывая на множество функций, к которому мы применяем этот метод, различные ограни8
чения, мы получим некоторые другие примеры несчетных множеств.
Мы можем, например, ограничиться рассмотрением таких арифметических функций, которые принима8
ют лишь значения 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, причем не равные нулю значения встречаются как угодно далеко.
Тогда строки нашей таблицы можно интерпретировать как бесконечные десятичные дроби, являющиеся за8
писями действительных чисел х из интервала 0 < x ≤ 1. Каждое такое действительное число записывается
посредством бесконечной десятичной дроби однозначным образом; например, 3/4 = 0,74999… (дробь
0,75000… =0,75 мы не используем ввиду ее «конечности»), 1 / √2 = 0,20711…, 1 = 0,999…, π– 3 = 0,14159…,
2/3 = 0,666… . Процедура изменения десятичных знаков, предписываемая диагональным методом, не вы8
водит нас за пределы рассматриваемого класса функций. Можно, скажем, заменить каждый десятичный
знак (состоящий на диагонали таблицы), не равный 5, на цифру 5, а если он равен 5, то на цифру 6:
5 если
fa(a)≠5
5 если
f(a) =
fa(a)≠5

{}

(Если, скажем, x0 = 3/4, x1 = 1 / √2, x2 = 1, x2 =π – 3, x4 = 2/3, …, то мы получим действительное число ч, де8


сятичное разложение которого (непременно бесконечное) начинается с 0,55565… .) Это рассуждение, при8
веденное нами с помощью диагонального метода, показывает, что множество действительных чисел из 0 <
x ≤ 1 несчетно.
Отсюда следует и несчетность множества всех действительных чисел.

60
57а 57. Трансцендентные
действительные числа
Лиувиллю удалось с помощью некоторого специального весьма сложного метода построить некоторые
конкретные трансцендентные (т.е. неалгебраические) действительные числа. Канторовский диагональ8
ный метод делает существование трансцендентных чисел очевидным уже в силу тех весьма общих сообра8
жений, которые были только что высказаны.
В самом деле, диагональный метод позволяет получить конкретные трансцендентные числа из любого
фиксированного пересчета множества алгебраических чисел.
Причем каждый конкретный пересчет алгебраических чисел дает возможность построить даже несчетное
множество различных трансцендентных чисел.
Применим диагональный метод к множеству одноместных арифметических функций, принимающих лишь
значения 0 и 1. В этом случае у нас не остается свободы выбора в процедуре изменения «диагональных» эл8
ементов: 0 мы должны заменить всюду на 1, а 1 на 0. Таким образом, «диагональная функция» определяет8
ся в этом случае так:

1, если fa(a) = 0,
0, если fa(a) = 1

{ }

Каждую функцию мы можем здесь понимать как описание некоторого множества натуральных чисел, а
именно множества тех значений аргумента, для которых данная функция принимает значения 0. Назовем
такие функции представляющими функциями соответствующих множеств. Приведем несколько приме8
ров (слева указаны множества натуральных чисел, справа, в той же строке, — последовательности значе8
ний их представляющих функций):
S0 — множество всех натуральных чисел {0, 1, 2, 3, 4 …}
S1 — множество четных чисел {0, 2, 4 …}
S2 — множество квадратов {0, 1, 4 …}
S3 — множество простых чисел {2, 3 …}
S4 — пустое множество {}

58а 58. Абстрактные множества


Кантор следующим образом определяет множество: «Под «множеством» мы понимаем любое объедине8
ние в одно целое М определенных вполне различаемых объектов m нашего восприятия или мысли (кото8
рые называются «элементами» М)». Чтобы выразить тот факт, что m есть элемент (или член) множества М,
или, что то же самое, что mМ, мы пишем m принадлежит; запись mМ означает, что m не принадлежит М.
Два множества М1 и М2 совпадают (М1 = М2), если они имеют одни и те же элементы. Конечное множество
можно задать, перечислив его элементы (порядок перечисления не играет роли) и заключив этот перечень
в фигурные скобки; этот способ может быть применен и для бесконечных множеств, но тогда «перечень»
должен заканчиваться многоточием. Например, {1, 2, 3} — это множество из трех элементов, а {0, 1, 2, …}
есть множество натуральных чисел. Мы говорим, что множество М1 есть подмножество множества М,
если каждый элемент множества М1, есть в то же время элемент множества М; это обозначается так: М1 М
(или ММ). Например, трёхэлементное множество {1, 2, 3} имеет восемь подмножеств: {}, {2}, {3}, {1, 2}, {1,
3}, {2, 3}, {1, 2, 3}. Первое из них {} — это пустое множество (обозначаемое часто через ?), далее идут три
одноэлементных (или единичных) множества; перечень заканчивается несобственным подмножеством
{1, 2, 3}. Кардинальное число ¬¬М множества М есть понятие, которое мы получаем в результате абстра8
гирования от множества М и других множеств, для которых можно установить 181 соответствие с М. Имен8
но так, например, ребенок получает представление о понятии «два», абстрагируясь от двух родителей, двух
глаз, двух яблок, двух котят и т.п. Вполне возможно, что при этом ему нет никакого дела до того, что же соб8
ственно представляет собой это «два». Кантор пишет по этому поводу: «То общее понятие, которые мы по8
лучаем с помощью нашей интеллектуальной активности, когда, отправляясь от множества М, мы абстраги8
руемся от природы его различных элементов и от порядка, в котором они нам даны, мы называем
«мощностью», или «кардинальным числом», множества М». Эта двойная абстракция и подсказывает канто8
ровское обозначение «¬¬М» для кардинального числа множества М. Фреге (1884) и Рассел (1902) опреде8
ляют кардинальное число ¬¬М как множество всех множеств N, для которых можно установить 181 соответ8
ствие с М; тем самым для самих кардинальных чисел находится место в качестве предметов некоторой
области, состоящей только из множеств.
Множество М эквивалентно множеству N (символически: M ~ N), если можно установить 1818соответ8
ствие между M и N. Отношение ~ есть отношение эквивалентности (оно рефлексивно, симметрично и тран8
зитивно), а ¬¬М есть содержащий М класс эквивалентности в разбиении, индуцируемом отношением ~ на
совокупности всевозможных множеств. Независимо от того, какой онтологический статус приписывается
кардинальным числам, ¬¬М = ¬¬N в том и только в том случае, когда M ~ N. Множество всех подмножеств
произвольного множества М мы будем обозначать через «2м». В этих обозначениях наш последний резуль8
тат можно сформулировать так: если М = {0, 1, 2, …}, то 2м несчётно, или ¬¬ 2м ? ¬¬М. Воспроизведем, на8
пример это рассуждение для случая М = {1, 2, 3}. Какое бы мы ни взяли множество М12м , находящееся в

61
57б 0 1 2 3 4 ...

0 0 0 0 0 ...

0 1 0 1 0 ...

0 0 1 0 0 ...

1 1 0 1 1 ...

1 1 1 1 1 ...

... ... ... ... ... ...

Для последовательности, начинающейся с этих множеств S0, S1, S2, S3, S4, …, диагональный метод дает
множество S = {1, 2, 4, …}, последовательность значений представляющей функции которого начинается
со значений 1, 0, 0, 1, 0, …
Мы видим, что 0 не является элементом множества S, хотя и является элементом множества S0; 1 явля8
ется элементом S, но не является элементом S1 и т.д. Таким образом, S не совпадает ни с S0 , ни S1, ни с S2,
… . Так с помощью диагонального метода мы убеждаемся в том, что множество всех множеств натуральных
чисел несчетно.
Между множествами, несчетность которых установлена, можно установить 1818соответствие (они «экви8
валентны» друг другу).
С помощью кванторского диагонального метода, трансцендентных действительных чисел можно доказать,
к примеру, несчетность следующих множеств:
1) множество действительных чисел;
2) множество трансцендентных чисел;
3) множество одноместных логических функций, для которых D = {0, 1, 2, …}.

58б 1818соответствии с самим множеством М, диагональный метод позволяет получить подмножество


множества М (т.е. элемент множества 2м), не принадлежащее М1. Если, например, М1 = {{2},
{2,3},{1,2}}, то таблица пересчета выглядит следующим образом:

1 2 3

{2} 1 0 1

{2, 3} 1 0 0

{1, 2} 0 0 1

Заменяя на диагонали 0 на 1, а
1 на 0, мы получаем множество {1, 3}, являющееся элементом множества 2м (состоящего из перечисленных
выше восьми множеств), но не принадлежащее множеству М1. Отправляясь от множества М1 = {{1, 2, 3}, {1},
{3}}, мы получим множество {2}, также не принадлежащее М1 и т.п.

62
59а 59. Индукция. Научная индукция. Индукция по мнению Ф. Бэкона
Индукция — это умозаключение, в результате которого на основе знания об отдельных предметах како8
го8либо класса делается вывод обо всем классе этих предметов.
Самой простой разновидностью индуктивного процесса является полная индукция. В этом случае пере8
числяются все без исключения предметы данного класса. Заключение суммирует итог.
Неполная индукция. В научном познании возможность исчерпывающим образом охватить все изучае8
мые явления данного класса встречается сравнительно редко. Более распространены обобщения, постро8
енные на основе знания только части всей интересующей нас совокупности вещей.
Имеется еще так называемая энумеративная индукция. Этим термином Декарт обозначал специально
упорядоченные совокупности задач, так что степень сложности их разрешения постепенно нарастает. Те8
перь к этому приему прибегают в основном только при построении индуктивных умозаключений там, где
возможно обобщаемый материал предварительно систематизировать.
Крупный вклад в систематизацию и развитие методов научной индукции внес Д. Милль (1806—1873).
Надо сказать, Милль вообще считал индукцию единственным надежным источником знания, его основой и
первоначалом. Поэтому его называют всеиндуктивистом. Тем не менее его фундаментальный труд «Систе8
ма логики силлогистической и индуктивной» представляет собой единственный в своем роде свод знаний
об индукции.
Метод сходства. Этот метод больше всего похож на обычную индукцию. Отличие связано с тем, что с по8
мощью этого метода устанавливается причинная зависимость. В обычной индукции показывается связь
двух признаков (скажем, «быть сплавом» и «быть теплопроводным»). А в методе сходства вместо таких
признаков рассматриваются какие8либо явления, действия или события, предположительно связанные от8
ношением причинности. И остальные методы научной индукции, поскольку с их помощью тоже устанавли8
ваются причинно8следственные зависимости, точно так же вместо признаков рассматривают действия.
Ф. Бэкон, который настойчиво и целеустремленно применял индукцию для обоснования приведенного
вывода, привлекает для этого гораздо больше явлений. Тем не менее он указывал, что окончательное до8
казательство таким путем еще не достигается, и подкреплял свое учение о теплоте также и другими сооб8
ражениями, в частности другими методами научной индукции. Метод различия представляет собой более
сложный познавательный прием, чем метод сходства. Помимо наблюдения случаев, когда среди изучае8
мых явлений появляется то, что мы исследуем, вместе со своей (предполагаемой) причиной, здесь сверх
того требуется еще и перебрать такие случаи, когда объект внимания отсутствовал и при этом не было так8
же и того, что по предположению должно было бы этот объект вызывать. Метод различия доказательнее.
Его суммарный довод в пользу вывода звучит сильнее: во всех наблюдаемых случаях, когда появлялось A,
то одновременно появлялось и a, и когда A не было, то не было и a. Можно было бы показать, пользуясь ме8

60а 60. Структура доказательства. Виды доказательства

В любом доказательстве имеется три компонента: тезис8положение, которое собираются доказать, ар8
гументы8утверждения, из которых тезис выводится по правилам логики (их называют также основаниями),
и демонстрация (или форма доказательства) — само рассуждение, показывающее связь между аргумен8
тами и тезисом.
Вполне допустимо вкладывать в термин «доказательство» расширенный смысл, так что опровержение
станет его разновидностью. В определенной мере это оправдано и часто делается. Потому что в результа8
те опровержения тоже появляются какие8то твердо установленные истины, пусть даже их содержанием яв8
ляются не сама внешняя реальность, не предметы или явления, а чьи8то высказывания, которым дается но8
вая оценка. Опровержение тоже имеет три обычных компонента всякого доказательства: тезис, аргументы
и демонстрацию. Вместе с тем и их различие тоже нельзя игнорировать. Ведь в то время как доказатель8
ство есть умозаключение об умозаключении, опровержение, в отличие от него, представляет собой умоза8
ключение о доказательстве. Объектом внимания в этом случае являются положения, уже доказанные или
кажущиеся таковыми. Опровержение имеет целью устранить их. С такой точки зрения доказательство и
опровержение противонаправлены.
Существует необъятно большое число самых разных способов обосновывать свои утверждения. Нельзя
поэтому представить полный перечень всех видов доказательства, в котором все они были бы названы и
описаны. Однако их можно сгруппировать в несколько разновидностей по некоторым общим признакам и
благодаря этому составить легко обозримую, компактную классификацию видов доказательных рассужде8
ний с четко выраженными границами между отдельными разрядами. Прежде всего они делятся на прямые
и косвенные, затем косвенные в свою очередь распадаются еще на два подвида — разделительные и всем
известные со школы доказательства от противного, называемые еще апагогическими. Прямой способ яв8
ляется самым распространенным и наиболее надежным. При его использовании берется непосредствен8
но сам тезис и с помощью различных логических процедур показывается, что он вытекает из каких8то об8
щепризнанных посылок. В качестве таких обосновывающих процедур могут выступать все изученные
ранее виды умозаключений — от непосредственных в простейших случаях до силлогизмов и индукции. И
вдобавок все они могут перемежаться, образуя подчас чрезвычайно тонкие, сложные и трудные для пони8
мания рассуждения. Многие из них доступны только специалистам. Примеры прямых доказательств из
школьных курсов математики, физики, химии может припомнить каждый.
Ход апагогического доказательства распадается на два неравновесных этапа. Сначала формулируют ан8
титезис и, предположив, что он является истинным суждением, начинают проводить проверку такого пред8
положения. Для этого надо извлечь из него следствия и сопоставить с фактами или с какими8то ранее уста8

63
59б тодами символической логики, что на основании такого довода полная индукция доказала бы не про8
сто причинную связь между a и A, а взаимно8однозначную зависимость их: там, где есть a, там обяза8
тельно есть A и наоборот. Метод сопутствующих изменений можно применять тогда, когда интенсивность
причинного воздействия может плавно или скачками изменяться и при этом также изменяется и интенсив8
ность вызванного им следствия.

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

64

Вам также может понравиться