Предисловие
Введение
Глава 1. Элементы теории множеств
1.2. Соответствия и функции
1.3. Бинарные отношения
1.4. Числовые множества
1.5. Эквивалентные множества
1.6. Парадоксы теории множеств
1.7. Аксиоматическая система теории множеств
1.8. Программа Гильберта
Глава 2. Логика высказываний
2.2. Алфавит, буква, слово
2.3. Пропозициональные формулы
2.4. Истинностные таблицы
2.5. Тавтологии
2.6. Равносильные формулы
2.7. Принцип двойственности
2.8. Нормальные формы в логике высказываний
2.9. Выполнимость и логическое следование в логике высказываний
Глава 3. Исчисление высказываний
3.2. Классическое исчисление высказываний
3.3. Теорема о дедукции и допустимые правила вывода
3.4. Корректность и полнота исчисления высказываний
3.5. Секвенциальное исчисление высказываний
Глава 4. Логика предикатов
4.2. Понятие предиката
4.3. Предикатные формулы
4.4. Выполнимость и общезначимость
4.5. Равносильные формулы
Глава 5. Элементарные языки
5.2. Примеры элементарных языков
5.3. Языки второго порядка
5.4. Подстановка
5.5. Алгебраические системы
5.6. Предваренные формулы
Глава 6. Исчисление предикатов
6.2. Аксиомы и правила вывода классического исчисления предикатов
6.3. Теорема о дедукции и другие допустимые правила вывода
6.4. Непротиворечивые расширения
6.5. Теорема Гёделя о полноте
6.6. Секвенциальное исчисление предикатов
Глава 7. Элементарные теории и модели
7.2. Элементарные теории с равенством
7.3. Изоморфизмы и элементарная эквивалентность
7.4. Аксиоматизируемые классы
Глава 8. Начальные понятия теории алгоритмов
8.2. Конструктивные объекты
8.3. Алгоритмический процесс
8.4. Вычислимые функции
8.5. Сигнализирующее множество
Глава 9. Алгоритмическая теория множеств
9.2. Полуразрешимые множества
9.3. Перечислимые множества
9.4. Равнообъемность понятий перечислимости и полуразрешимости
9.5. Теорема о графике
9.6. Эффективно аксиоматизируемые теории
Глава 10. Машины Тьюринга
10.2. Вычисление функций на машинах Тьюринга
10.3. Синтез машин Тьюринга
10.4. Тезис Тьюринга
10.5. Универсальная машина Тьюринга
10.6. Теорема о компиляции
10.7. Многоленточные машины Тьюринга
Глава 11. Другие формализации вычислимости
11.2. Нормальные алгорифмы
Глава 12. Неразрешимые алгоритмические проблемы
12.2. Нумерации, порожденные машинами Тьюринга
12.3. Примеры невычислимых функций
12.4. Теорема Успенского — Райса
12.5. Десятая проблема Гильберта
12.6. Проблема равенства слов в полугруппах
Глава 13. Формальная арифметика
13.2. Нестандартные модели арифметики
13.3. Арифметические множества и функции
13.4. Теорема о неподвижной точке
13.5. Теорема Тарского
13.6. Теорема Гёделя о неполноте
13.7. Формальная система арифметики
13.8. Тождественно истинные предикатные формулы
13.9. О логике второго порядка
Глава 14. Метод резолюций
14.2. Дизъюнктная форма высказываний
14.3. Теорема Эрбрана
14.4. Метод резолюций для логики высказываний
14.5. Алгоритм унификации
14.6. Метод резолюций для элементарных языков
14.7. Хорновские дизъюнкты
14.8. Логические программы
Глава 15. Интуиционистская логика
15.2. Интуиционистская логика высказываний
15.3. Интуиционистская логика предикатов
15.4. Рекурсивная реализуемость
Глава 16. Элементы теории сложности вычислений
16.2. Меры сложности вычислений
16.3. Класс Р
16.4. Класс NP
16.5. Примеры заведомо трудных задач
Список литературы
Оглавление
Текст
                    Высшее профессиональное образование Учебное пособие
В. Н. Крупский, В.Е.Плиско
МАТЕМАТИЧЕСКАЯ
ЛОГИКА И ТЕОРИЯ
АЛГОРИТМОВ
ИНФОРМАТИКА
И ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА


Высшее профессиональное образование БАКАЛАВРИАТ В. Н. КРУПСКИЙ, В.Е.ПЛИСКО МАТЕМАТИЧЕСКАЯ ЛОГИКА И ТЕОРИЯ АЛГОРИТМОВ Рекомендовано Научно-методическим советом по математике Министерства образования и науки Российской Федерации в качестве учебного пособия для бакалавров, обучающихся по направлениям подготовки «Информатика и вычислительная техника», «Информационные системы» academ'a Москва Издательский центр «Академия» 2013 
УДК 510.6(075.8) ББК 22.12я73 К845 Рецензент- д-р философ, наук, канд. физ.-мат. наук, проф. В.Х.Хаханян (кафедра «Математика» ФГБОУ ВПО «Московский государственный университет путей сообщения») Крупский В. Н. К845 Математическая логика и теория алгоритмов : учеб, пособие для студ. учреждений высш. проф. образования / В. Н. Крупский, В.Е. Плиско. — М. : Издательский центр «Академия», 2013. — 416 с. — (Сер. Бакалавриат). ISBN 978-5-7695-9559-2 Учебное пособие создано в соответствии с Федеральным государственным образовательным стандартом по направлениям подготовки «Информатика и вычислительная техника», «Информационные системы», «Фундаментальная информатика и информационные технологии» (квалификация «бакалавр»). Изложены основные понятия математической логики, а также качественной и количественной теории алгоритмов. Рассмотрены элементы теории множеств, логика высказываний, исчисление высказываний, логика предикатов, элементарные языки, исчисление предикатов, элементарные теории, теория моделей, начальные понятия теории алгоритмов, начала алгоритмической теории множеств, машины Тьюринга и связанный с ними подход к формализации понятия алгоритма, нормальные алгоритмы, рекурсивные функции, наиболее известные результаты об алгоритмической неразрешимости, формальная арифметика, метод резолюций, интуиционистская логика, элементы теории сложности вычислений. Для студентов учреждений высшего профессионального образования. Может быть полезно широкому кругу читателей, интересующихся основами математической логики и теории вычислимости. УДК 510.6(075.8) ББК 22.12я73 Учебное издание Крупский Владимир Николаевич, Плиско Валерий Егорович Математическая логика и теория алгоритмов Учебное пособие Технический редактор Е. Ф. Коржуева. Компьютерная верстка: ТА. Клименко Корректор А. Б. Глазкова Изд. № 101116276. Подписано в печать 18.02.2013. Формат 60 х 90/16. Гарнитура «Ньютон». Бумага офсетная № 1. Печать офсетная. Уел. печ. л. 26,0. Тираж 1 000 экз. Заказ № С-636. ООО «Издательский центр «Академия», www.academia-moscow.ru 129085, Москва, пр-т Мира, 101В, стр. 1. Тел./факс: (495) 648-0507, 616-00-29. Санитарно-эпидемиологическое заключение № РОСС RU. АЕ51. Н 16067 от 06.03.2012. Отпечатано в типографии филиала ОАО «ТАТМЕДИА» «ПИК «Идел-Пресс». 420066, г. Казань, ул. Декабристов, 2. Оригинал-макет данного издания является собственностью Издательского центра «Академия», и его воспроизведение любым способом без согласия правообладателя запрещается © Крупский В.Н., Плиско В. Е., 2013 © Образовательно-издательский центр «Академия», 2013 ISBN 978-5-7695-9559-2 © Оформление. Издательский центр «Академия», 2013 
ПРЕДИСЛОВИЕ Предлагаемое учебное пособие содержит материал, соответствующий учебным программам университетов и вузов. Оно должно помочь студентам в овладении учебным материалом, а преподавателям — в чтении лекций. Книга состоит из шестнадцати глав. В гл. 1 содержится материал, не относящийся непосредственно к изучаемой дисциплине, но важный по двум причинам. Во- первых, математическая логика и теория алгоритмов являются составной частью математики, в которой широко используются теоретико-множественные методы. Поэтому важно с самого начала зафиксировать терминологию и конструкции, которых авторы будут придерживаться в дальнейшем изложении. Во-вторых, кризис оснований математики, связанный с обнаружением парадоксов, т. е. противоречий, в так называемой «наивной» теории множеств явился мощным стимулом для развития математической логики. Поэтому в данной главе не только излагаются основные понятия теории множеств, но и дается представление об аксиоматической теории множеств и выдвинутой немецким математиком Д. Гильбертом программе обоснования математики, во многом определившей облик современной математической логики. В гл. 2 излагается сравнительно простой раздел математической логики, изучающий логические связи между высказываниями, обусловленные их логической структурой, т. е. тем, как одни высказывания построены из других с помощью логических операций. Для этого вводится формальный язык логики высказываний и определяется понятие пропозициональной формулы. Приводятся понятия тавтологии и равносильности формул. Доказывается принцип двойственности. Описывается приведение формул к конъюнктивной и дизъюнктивной нормальным формам. Вводятся понятия выполнимости множества формул и логического следования в логике высказываний. Доказывается теорема компактности. В этой главе демонстрируется применение строгих математических методов при работе с такими новыми по 3 
сравнению с традиционными теоретико-множественными объектами, как слова в некотором алфавите. Поэтому здесь даются формальные доказательства очевидных фактов. Их роль состоит в том, чтобы показать, что эти факты могут быть строго обоснованы с помощью понятий и конструкций из семиотики, а не только путем апелляции к очевидности. Это не означает, что подобные доказательства следует излагать на лекциях. Скорее наоборот, наличие этих доказательств в учебном пособии позволит лектору оставить их для самостоятельной проработки студентами при сохранении строгости изложения материала. Это замечание в полной мере относится и к другим главам данной книги. В гл. 3 дается описание логических законов с помощью формальной системы. Приводятся аксиомы и правила вывода классического исчисления высказываний. Доказываются теорема о дедукции и допустимость других производных правил вывода, корректность и полнота исчисления высказываний. При этом приводятся два доказательства теоремы о полноте. Первое носит довольно абстрактный характер и основано на рассмотрении полных расширений непротиворечивых множеств формул. Это доказательство полезно тем, что подобный метод используется в дальнейшем в более сложной ситуации для доказательства полноты классического исчисления предикатов. Другое доказательство является конструктивным в том смысле, что дает практический способ нахождения вывода любой тавтологии. В гл. 4 изучаются логические законы, основанные на анализе не только логической, но и субъектно-предикатной структуры высказываний. Для этого вводятся понятия высказывательной формы и предиката, а также кванторы как новое по сравнению с логикой высказываний средство анализа логической структуры предложений. Определяется формальный язык логики предикатов, вводится понятие интерпретации предикатных формул, а также понятия выполнимости, общезначимости и равносильности формул. В гл. 5 рассматриваются элементарные языки, обычно используемые при формализации математических теорий. Дается строгое определение семантики таких языков на основе понятия алгебраической системы. Вводится понятие равносильности элементарных формул. Описывается приведение формул к предваренной форме. В гл. 6 вводится понятие логического следования и дается его формализация в виде исчисления предикатов. Адекватность 4 
этой формализации обосновывается теоремой о корректности исчисления предикатов и теоремой Гёделя о полноте этого исчисления. Здесь же в качестве простого следствия из доказательства теоремы Гёделя приводится теорема Лёвенгейма — Скуле- ма о существовании счетной модели для любого выполнимого множества элементарных высказываний. Глава завершается доказательством локальной теоремы Мальцева. В гл. 7 рассматриваются формализации математических теорий, в которых в качестве одного из исходных понятий используется предикат равенства, играющий особую роль в том смысле, что фиксируется естественная интерпретация символа равенства. Соответствующие интерпретации элементарного языка с равенством называются нормальными. Понятие логического следования при рассмотрении только нормальных интерпретаций адекватно формализуется с помощью исчисления предикатов с равенством. Доказывается теорема о полноте этого исчисления относительно нормальных интерпретаций. Дается уточнение теоремы Лёвенгейма — Скулема для языков с равенством. Излагаются общие понятия, относящиеся к формализации математических теорий посредством элементарных языков. Вводятся понятия изоморфизма и элементарной эквивалентности алгебраических систем. Рассматривается понятие выразимости предиката в данной алгебраической системе и излагается метод доказательства невыразимости с помощью автоморфизмов. Вводятся понятия полноты и категоричности теорий. Рассматриваются вопросы аксиоматизируемости и конечной аксиоматизируемости класссов алгебраических систем. В гл. 8 вводятся понятия, осмысление которых необходимо для изложения и изучения теории алгоритмов. Одними из основных являются понятия конструктивного объекта и типа конструктивных объектов, поскольку область возможных исходных данных любого алгоритма представляет собой некоторый тип конструктивных объектов. Не менее важно иметь представление о развертывании алгоритмического процесса, который состоит из отдельных шагов. Здесь же дается понятие вычислимой функции. Для технических целей оказывается полезным понятие сигнализирующего множества, свойства которого важны для анализа алгоритмического процесса. В гл. 9 рассматриваются такие важные алгоритмические свойства множеств, как разрешимость и перечислимость. Доказываемые здесь факты не требуют какого-либо уточнения по¬ 5 
нятия алгоритма, а опираются исключительно на интуитивные представления об алгоритмах, конструктивных объектах и развертывании алгоритмического процесса. В гл. 10 представлен один тип абстрактных вычислительных машин, идея которых, разработанная Постом и Тьюрингом, основана на анализе действий человека, осуществляющего по заданной программе последовательные преобразования слов. В гл. 11 излагается один из наиболее распространенных вариантов уточнения понятия вычислимой арифметической функции — частично-рекурсивные функции. Рассматривается также еще одно удобное для работы со словами уточнение общего интуитивного представления об алгоритмах — нормальные алгорифмы Маркова. В гл. 12 устанавливаются так называемые отрицательные результаты теории алгоритмов. Для этого сначала вводится нумерация вычислимых арифметических функций, основанная на нумерации программ для машин Тьюринга. Затем строятся примеры невычислимых функций, доказывается неразрешимость проблемы остановки. Целый спектр неразрешимых алгоритмических проблем дает доказываемая здесь теорема Успенского — Райса. Рассматриваются некоторые приложения теории алгоритмов в математике и логике. Разъясняется суть полученного в 1970 г. советским математиком Ю. В. Матиясевичем отрицательного решения десятой проблемы Гильберта. Приводится доказательство неразрешимости алгоритмической проблемы тождества слов в полугруппах. В гл. 13 рассматривается формальная арифметика. Приводится аксиоматика Пеано для натурального ряда и ее формализация средствами подходящего языка. Дается представление о нестандартной модели арифметики и устанавливается невозможность категоричной аксиоматизации арифметики посредством элементарных языков. Вводятся понятия арифметического множества и арифметической функции. Доказывается представимость частично-рекурсивных функций в языке формальной арифметики. Доказывается теорема о неподвижной точке, которая затем используется для доказательства теоремы Тарского о неопределимости в языке арифметики понятия истинности арифметического высказывания и теоремы Гёделя о неполноте формальной арифметики. Доказывается неразрешимость множества общезначимых формул логики предикатов. 6 
В гл. 14 довольно детально излагается один широко распространенный метод автоматического доказательства теорем — метод резолюций. Описывается представление высказывания элементарного языка в виде множества дизъюнктов. Вводится понятие эрбрановского универсума и доказывается существование эрбрановской модели для любого выполнимого множества дизъюнктов. Излагается метод резолюций для логики высказываний и доказывается его полнота. Описывается алгоритм унификации. Излагается метод резолюции для логики предикатов и доказывается его полнота. Рассматривается применение метода резолюций для доказательства теорем как альтернатива классическому исчислению предикатов. Вводится понятие хор- новского дизъюнкта. Излагаются математические основы логического программирования. Показывается, как строить логические программы для вычисления частично-рекурсивных функций. В гл. 15 рассматривается интуиционистская логика. Излагается мотивировка интуиционистского взгляда на математику. Приводятся формулировки интуиционистского исчисления высказываний и предикатов. Описываются модели Крипке для логики высказываний и предикатов. Дается представление об интуиционистской семантике арифметических высказываний, основанной на теории рекурсивных функций. В гл. 16 приводятся различные меры сложности вычислений на машинах Тьюринга. Описываются классы Р и NP. Первый состоит из задач, решаемых на машинах Тьюринга, время работы которых ограничено полиномом от длины исходного данного. Рассматриваются некоторые примеры таких задач. К числу заведомо трудных относятся так называемые NP-полные задачи. Приводятся примеры таких задач. Изложение рассчитано на студентов и аспирантов университетов и учреждений высшего профессионального образования, но книга может быть полезна и более широкому кругу читателей, интересующихся основами математической логики и теории алгоритмов. Символом ■ обозначается конец доказательства или примера. 
ВВЕДЕНИЕ Название одной из дисциплин, которым посвящена книга, состоит из слов «логика» и «математическая». В энциклопедическом словаре логика определяется как наука о способах доказательств и опровержений. Слово «математическая» в названии изучаемого нами предмета имеет двоякий смысл. Во-первых, оно означает, что математическая логика —- это раздел математики, занимающийся применением математических методов в логике. В этом смысле она сродни таким разделам математики, как математическая лингвистика, математическая статистика, математическая физика, математическая экономика. Но есть и другой важный смысл в слове «математическая»: оно означает, что математическая логика изучает способы математических доказательств и опровержений, т. е. математических рассуждений. Таким образом, математическую логику можно определить как науку о математических рассуждениях, пользующуюся математическими методами. Почему математики занялись исследованием своих рассуждений? На этот вопрос можно было бы ответить так: математикам до всего есть дело, вот они и занялись изучением математических рассуждений. Но это лишь часть правды. На самом деле заняться логикой математиков заставила жизнь, вернее, ситуация, сложившаяся в математике в конце XIX —начале XX вв. К концу XIX в. в работах французского математика О. Коши (1789— 1857), чешского математика и философа Б. Больцано (1781 — 1848), немецких математиков К. Вейерштрасса (1815 — 1897), Г. Кантора (1845—1918) и Р. Дедекинда (1831 — 1916) была проведена арифметизация анализа, состоящая в выработке определения действительного числа как объекта, полученного теоретико-множественными конструкциями из натуральных чисел. В то же время немецкий математик Г. Фреге (1848 — 1925) дал определение натуральных чисел в рамках теории множеств Г. Кантора. В 90-е годы XIX в. теория множеств завоевала признание среди математиков и стала играть роль фундамента для математи¬ 8 
ческого анализа и основанных на нем других разделов математики. Поэтому драматическим событием в истории математики оказалось обнаружение в наивной теории множеств противоречий, стыдливо называемых парадоксами. Парадоксы выявили трудности, связанные с попытками построить теорию множеств на основе интуитивного понятия множества. Эти трудности вынудили математиков задаться вопросом: чем же собственно подвели методы образования понятий и рассуждения, казавшиеся убедительными, пока не выяснилось, что они приводят к парадоксам? Высказывались различные взгляды по поводу причин возникновения парадоксов и предлагались способы избавления от них. Поскольку использование понятий, исходящих из интуитивных представлений о множествах, приводит к противоречиям, в 1908 г. немецкий математик Э.Цермело (1871 — 1953) предложил ограничиться рассмотрением множеств, существование которых может быть доказано на основе некоторого списка аксиом. Предложенная Э. Цермело система аксиом впоследствии была несколько расширена израильским математиком и логиком А. Френкелем (1891 — 1965) и носит название системы Цермело — Френкеля ZF. Система ZF и другие известные системы аксиом для теории множеств сформулированы так, что на их основе можно доказать все обычные теоремы теории множеств, но не известные противоречия. Это не означает, что невозможно доказать никакое противоречие. Но пока мы не уточним, что такое «доказательство», мы не сможем строго математически доказать, что противоречие невозможно доказать. Значит, необходимо строгое определение доказательства, нужна математическая наука о правильных математических рассуждениях, т. е. математическая логика. В значительной степени современная математическая логика-результат осуществления программы спасения от противоречий, выдвинутой немецким математиком Д. Гильбертом (1862 — 1943). Эта программа получила название формализма и состоит в следующем. Математические утверждения и математические рассуждения следует сделать точными математическими объектами путем выбора подходящего формального языка для их записи. Записав аксиомы той или иной теории на формальном языке, можно с помощью математических методов изучать доказательства, осуществимые в этой теории, и пы¬ 9 
таться доказать, что в теории невозможно правильное рассуждение, ведущее к противоречию. При этом следует пользоваться только очень скромными средствами, поскольку, например, теоретико-множественные методы уже скомпрометировали себя. Возможность ограничения средств представлялась вполне реальной, поскольку объектами исследования являются конечные тексты формального языка. Поэтому и допустимые методы получили название финитных. Выдвинутая Гильбертом программа обоснования математики опиралась на уже достаточно разработанный аппарат формальной логики. Логика как наука о законах и формах рассуждений возникла в странах Древнего Востока — Китае и Индии. В основе современной логики лежит формальная традиционная логика, разработка которой была начата древнегреческим философом и ученым Аристотелем (384 — 322 до н. э.). Им была разработана первая формализация рассуждений в виде силлогизмов. Дальнейшее развитие логики состояло в обобщениях силлогистики в целях более полного охвата различных форм рассуждений. В XVII в. логика признается как рабочий инструмент всех других наук и практики, поскольку принуждает к строгим формулировкам мысли. Немецкий философ и математик Г. Лейбниц (1646 — 1716) выдвинул идею построения универсального символического языка для записи суждений и формулирования логических принципов в виде правил, позволяющих строить содержательные рассуждения подобно математическим вычислениям. Тогда, по мнению Лейбница, вместо того, чтобы спорить, ученые скажут: «давайте вычислим» (по латыни — «calcu- lemus»). В XIX в. появились работы по алгебраизации логики. Английский математик и логик Дж. Буль (1815 — 1864) обнаружил аналогии между алгеброй и логикой, в результате чего им были разработаны основы алгебры логики, в которой законы арифметики и правила арифметических действий переносятся на логические операции над высказываниями. Независимо от него к сходным идеям пришел шотландский математик и логик О.де Морган (1806—1871). Важным шагом в развитии математической логики явилась аксиоматизация логики и арифметики, предпринятая Г. Фреге. Он и американский логик и математик Ч.Пирс (1839—1914) ввели в логику ряд понятий, позволивших выявлять внутреннюю структуру суждений и использовать ее в логических выводах. 10 
Другой дисциплиной, которой посвящена эта книга, является теория алгоритмов. Ее формирование как самостоятельного раздела математики, изучающего общие свойства алгоритмов, началось в 30-е годы XX в. Однако само понятие алгоритма использовалось в математике на протяжении всей истории ее развития. В неявном виде это понятие присутствует всякий раз, когда речь идет о правилах и инструкциях, позволяющих решать ту или иную математическую задачу «в общем виде». Иногда эти правила сами называются алгоритмами (например, известный алгоритм Евклида для нахождения наибольшего общего делителя двух целых чисел). До определенного времени математика обходилась интуитивными представлениями об алгоритмах как точных предписаниях, определяющих вычислительный процесс, позволяющий на основе исходных данных получить искомый результат. Роль и место алгоритмов в математике впервые в явном, но все еще довольно расплывчатом виде были сформулированы в 20-е годы XX в. в работах голландского математика Л. Э. Я. Брауэра (1881 — 1966) и немецкого математика Г. Вейля (1885—1955), которые обратили внимание на различие между конструктивными и неконструктивными математическими доказательствами. А именно, конструктивное доказательство существования объекта с заданными свойствами дает способ (алгоритм) построения такого объекта, в отличие от неконструктивного доказательства «чистого существования», из которого такой способ не извлекается. К началу XX в. в различных областях математики формулировались алгоритмические проблемы, т. е. семейства родственных задач, для которых требовалось найти единый алгоритм решения всех задач семейства. Некоторые из этих проблем успешно решались, другие долгое время не поддавались решению. Наиболее известный пример последних дает десятая проблема Гильберта, состоящая в нахождении алгоритма для распознавания разрешимости в целых числах произвольного уравнения вида Р(х 1, ...,хп) = 0, где Р(х i, ..., хп) — многочлен с целыми коэффициентами от переменных дц, ..., хп. Положительное решение алгоритмической проблемы состоит в описании алгоритма, решающего задачу, и в этом случае достаточно интуитивного понятия алгоритма, тем более что среди математиков как правило не возникает разногласий по поводу того, является ли предложенный способ решения задачи алгоритмом. Но чтобы математически строго доказать несуществование алгоритма, 11 
решающего данную задачу, необходимо иметь строгое математическое определение алгоритма. Одним из примеров алгоритмических проблем может служить проблема вычисления данной функции /: требуется построить алгоритм Л, который завершает работу в точности на тех объектах, на которых / определена, и перерабатывает каждый такой объект х в f(x). Функции, для которых эта проблема разрешима, называются вычислимыми. Первое математическое уточнение было предложено в 1936 г. американским логиком и математиком А. Чёрчем (1903 — 1995) именно для понятия всюду определенной вычислимой арифметической функции, т. е. функции с натуральными аргументами и значениями. Оказалось, что класс функций, вычислимых по Чёрчу, совпадает с классом рекурсивных функций, описанным австрийским логиком и математиком К. Гёделем (1906— 1978) для совершенно других целей, а именно, для доказательства его знаменитой теоремы о неполноте формальной арифметики и родственных систем. А. Чёрч предложил первый пример невычислимой функции и опубликовал гипотезу о том, что класс рекурсивных функций совпадает с классом всюду определенных арифметических функций, вычислимых в интуитивном смысле. Так как понятие функции, вычислимой в интуитивном смысле, т. е. при интуитивном понимании алгоритма, не является математически точным, то гипотезу Чёрча нельзя доказать. В 1936 г. американский логик и математик С.К.Клини (1909—1994) ввел понятие частично-рекурсивной функции, являющееся обобщением понятия рекурсивной функции на случай частичных (т. е. не обязательно всюду определенных) арифметических функций, и высказал гипотезу, что все вычислимые частичные арифметические функции являются частичнорекурсивными. Эта гипотеза является обобщением гипотезы Чёрча и называется тезисом Чёрча. Конечно, тезис Чёрча недоказуем, как и гипотеза Чёрча. Описание вычислимых арифметических функций как частично-рекурсивных дает математическое уточнение понятия вычислимой функции, но само по себе не дает уточнения общего понятия алгоритма. Первое математическое уточнение понятия алгоритма предложили (независимо друг от друга) американский математик и логик Э. Л. Пост (1897—1954) и английский математик А. М. Тьюринг (1912—1954). Ими были описаны в точных математических терминах классы идеализиро¬ 12 
ванных вычислительных машин. Машины, введенные Постом и Тьюрингом, отличались не очень существенно. Оказалось, что класс частичных числовых функций, вычислимых на машинах Тьюринга —Поста, совпадает с классом частично-рекурсивных функций. Это обстоятельство является существенным доводом в пользу тезиса Чёрча. Изучение принципиальных возможностей идеализированных вычислительных машин и свойств класса вычислимых с их помощью функций и составляет основное содержание теории алгоритмов. Первые результаты теории алгоритмов касались принципиальных возможностей алгоритмов. Важнейший из этих результатов пример алгоритма с неразрешимой проблемой применимости, т. е. такого алгоритма Л, что невозможно алгоритмически по любому объекту х определить, завершит ли работу алгоритм Л на исходном данном х. В дальнейшем пример такого алгоритма использовался для доказательства неразрешимости некоторых алгоритмических проблем в логике и математике. К ним относятся неразрешимость классической логики предикатов, доказанная Чёрчем в 1936 г., и примеры полугрупп с неразрешимой проблемой тождества, найденные в 1947 г. независимо советским математиком А. А. Марковым (1903—1979) и Э. Л. Постом. Исторически теория алгоритмов развивалась в тесной связи с математической логикой. Это обусловлено сходством алгоритмов с формальными логическими выводами и использованием обеими дисциплинами формальных языков. В настоящее время математическая логика и теория алгоритмов служат теоретическим фундаментом для ряда вопросов вычислительной математики и информатики. Поэтому курс математической логики и теории алгоритмов входит в систему подготовки специалистов в области информатики, вычислительной техники, информационных систем, компьютерной безопасности. 
Глава 1 ЭЛЕМЕНТЫ ТЕОРИИ МНОЖЕСТВ В этой главе содержатся сведения, не относящиеся непосредственно к математической логике и теории алгоритмов, но важные для понимания задач, возникающих в этих дисциплинах. Теория множеств является основой современной математики. Теоретико-множественные понятия и конструкции широко используются при изложении и математической логики, и теории алгоритмов. Кроме того, проблемы, возникшие в канторовской теории множеств в связи с обнаружением в ней парадоксов, и попытки их решения явились мощным стимулом для развития различных направлений современной математической логики. 1.1. Множества На начальном этапе своего развития теория множеств опиралась на интуитивные представления о множествах, и ныне этот этап характеризуется как наивная теория множеств. Согласно Кантору, множество — это любое объединение в одно целое определенных объектов, которые называются элементами этого множества. Множество, элементами которого являются данные объекты ai,a2, ... , обозначается {ai,«2, ...}. Если х является элементом множества А, то пишут х £ А. В этом случае говорят также, что множество А содержит элемент х. Если х не является элементом множества Л, то пишут х 0 А. Общепринятыми в математике являются следующие обозначения для числовых множеств: N — множество всех натуральных чисел, Z — множество всех целых чисел, Q - множество всех рациональных чисел, R — множество всех действительных чисел, С — множество всех комплексных чисел. Множества А и В считаются равными, если они состоят из одних и тех же элементов: 14 
А = В Ух (х С А <=> х С В). Здесь и в дальнейшем символ «^» заменяет слова «означает по определению» или «есть по определению», «V» — «для всех», «<^>» — «тогда и только тогда, когда». Одним из основных приемов теории множеств является принцип свертывания (или принцип абстракции), согласно которому для всякого свойства Ф(ж), которым произвольный объект х может обладать или не обладать, существует множество, обозначаемое {х | Ф(ж)}, элементами которого являются те и только те объекты ж, которые обладают свойством Ф(ж). Таким образом, х G {х | Ф(ж)} Ф(ж). С помощью принципа свертывания можно доказать существование пустого множества 0 — множества, не содержащего элементов: достаточно в качестве Ф(ж) взять свойство, которым никакой объект не обладает, например, 0 = {х | х ф ж}. Для того, чтобы обозначить множество всех объектов, являющихся элементами множества А и обладающих свойством Ф(ж), вместо {ж | ж G Л&Ф(ж)} часто пишут {ж G А | Ф(ж)}. Если каждый элемент множества А является элементом множества J5, то говорят, что А является подмножеством множества В или что множество А включено в В: А С В ^ Ух (ж G Л =Ф ж G В). Здесь и далее «... =ф> ...» означает «если ..., то ... ». Семейство всех подмножеств множества А обозначается V(A). Если Л С В и А / В, то Л называется собственным подмножеством множества В: АсВ ^(АСВЬАфВ). Здесь и в дальнейшем символ «&» заменяет союз «и». Множество AU В = {х \ х С АУ х С В} называется объединением множеств А и В (символ «V» заменяет союз «или»). Пересечением множеств А и В называется множество Л ПВ = {ж | ж G Л&ж G В}. 15 
Разностью множеств А и В называется множество А\ В = {х | х G А&х 0 В}. Если А С J5, то множество J5 \ Л называют дополнением множества А относительно множества В и обозначают Л, если из контекста ясно, о каком множестве В идет речь. Порядок элементов в двухэлементном множестве {а, 6} не играет роли: {а, 6} = {6, а}. Один из способов определения упорядоченной пары был предложен польским математиком К. Кура- товским: упорядоченная пара (а, 6) определяется как множество {{а},{а,6}}. Теорема 1.1. Каковы бы ни были объекты <2i, <22,6i, 62, равенство (ai,h) = (а2,Ь2) (1.1) имеет место тогда и только т,огда, когда а\ = ач и Ь\ = 62. Доказательство. Очевидно, что если а\ = а2 и 61 = 62. то {ai} = {a2} и {ai,6i} = {a2,62}, так что {{«1}, {ai,M} = {{a2}, {02,^2}}, (1.2) т. е. имеет место (1.1). Докажем обратное, что из (1.1) следует а\ — «2 и 61 = 62. Пусть имеет место равенство (1.1), т. е. (1.2). Тогда {аД G {{a2}, {a2,62}}, так что {аД = {«2} или {аД = = {<22,62}. В первом случае а\ = а2. Во втором случае каждый элемент множества {<22,62} является элементом множества {аД, в частности, ач G {а\}, так что снова а\ — ач- Так как а\ = ач, то из (1.1) имеем (ai,&i) = (од, 62), т. е. {{«!},{01,61}} = {{ai}, {ai,b2}}. (1.3) Тогда {«1,6Д G {{аД, {аь62}}, т. е. {ai,6i} = {ai} или {<21,61} = {<21,62}. В первом случае 61 = ai, и из (1.3) следует {{аД, {<21,62}} = {{<21}}, а тогда 62 G {<21} и 62 = <2i = &1. Во втором случае 62 G {адДД, так что либо Ьч — &i, что и требовалось доказать, либо же Ьч = од, а тогда {ai,6i} = {«1,62} = {62}, так что 61 G {62} и 61 = Ьч. ■ Для любого п > 2 можно индуктивно определить упорядоченный набор (кортеж) (ai, ... ,an) длины п: (a0,ab ... ,an) ^ (a0, (ab ... ,an)). 16 
При этом элемент а* называется г-й компонентой, или i-й координатой кортежа (а\, Прямым (или декартовым) произведением множеств А и В называется множество Ах В = {(а, 6) | a Е Л&Ь Е J5}. Прямое произведение множеств А\, ..., Ап определяется аналогично как множество А\ х • • • х Ап = {(fti, • • •, cin) | cl\ E A\, ..., an E Лп}. Если Ai = • • • = An = Л, то множество A\ x • • • x Лп называется декартовой степенью множества А и обозначается Ап. Пусть М — подмножество множества А\ х • • • х Лп. Проекцией множества М на i-ю ось, где 1 < г < п, называется подмножество множества А{, состоящее из г-х компонент всех кортежей из М. 1.2. Соответствия и функции Соответствием между множествами А и В называется любое подмножество G множества Ах В: G С Ах В. Если (ж, у) Е (?, то говорят, что элемент у Е J5 соответствует элементу ж Е Л. Всякое соответствие полностью характеризуется множествами А и В и подмножеством (? их прямого произведения, так что иногда более точно соответствие определяют именно как тройку ((?, А, В). При этом множество А называют областью отправления, множество В — областью прибытия, а (? — графиком данного соответствия. Областью определения соответствия G называется множество -D(G), состоящее из всех таких ж Е А, что (ж, у) Е G хотя бы для одного у Е В: D(G) = {x\3y((x,y)€G)}. Здесь и в дальнейшем символ «3» означает «существует». Множеством значений соответствия G называется множество E(G), состоящее из всех таких у Е J5, что (ж, у) Е G хотя бы для одного ж Е А: E(G) = {y\3x((x,y)eG)}. 17 
Обратным соответствием для соответствия G называется соответствие G~l между множествами В и Л, состоящее из всех таких упорядоченных пар (ж, у), что (у, ж) G G: G~l = {{а:, у) | (у,ж) € G}. Заметим, что D(G~l) = E(G), E{G~l) = D(G). Если G — соответствие между множествами А и J3, a F — соответствие между множествами В и С, то их произведением (или композицией) называется соответствие GoF между множествами Л и С, состоящее из всех упорядоченных пар (ж, 2), для которых найдется такой элемент у G J3, что (ж, у) G (?, (у, 2) G F: G о F = {(ж, г) | Зу [(ж, у) € G к (у, z) е F]}. Соответствие G между множествами А и В называется • инъективным соответствием, или инъекцией, если разным элементам множества Л соответствуют разные элементы множества В\ 4X1, х2, у [((жьу) G Gk(x2,y) е G) => Ж1 = х2]; • тотальным соответствием, или всюду определенным соответствием,, если каждому элементу множества Л соответствует хотя бы один элемент множества J5, т. е. £)(£?) = Л; • сюръективным соответствием, или сюръекцией, если каждый элемент множества J5 соответствует хотя бы одному элементу множества Л, т. е. £■(£?) = J5; • функциональным соответствием, или функцией из А в В, если каждому элементу множества Л соответствует не более чем один элемент множества В: Var,yi,y2 [((x,yi) € Gk,{x,y2) G (?) => yi = у2]. Отметим следующие очевидные факты, вытекающие непосредственно из определений: 1) соответствие б? инъективно тогда и только тогда, когда обратное соответствие G~1 функционально. Произведение инъективных соответствий инъективно. Произведение функциональных соответствий функционально; 2) соответствие G тотально тогда и только тогда, когда обратное соответствие G~l сюръективно. Произведение тотальных соответствий тотально. Произведение сюръективных соответствий сюръективно. 18 
Приведенное ранее определение функции из А в В соответствует принятому в математике представлению о функции именно как о соответствии, при котором каждому элементу из области определения соответствует один определенный элемент из множества значений. Имея в виду обсуждавшееся ранее различение области отправления, области прибытия и графика соответствия, следует заметить, что при теоретико-множественном подходе функция по существу отождествляется со своим графиком. При этом область определения D(f) функции / может не совпадать с областью отправления А, т. е. функция, вообще говоря, не является тотальной. Иногда, чтобы подчеркнуть этот факт, мы будем употреблять термин частичная функция, означающий то же, что и функция. Частичную функцию / из множества А в множество В будем называть функцией типа А —» В и обозначать так: f:A—>B. Если / - функция, и (х,у) G /, то пишут у = f(x). В этом случае у называется значением функции / на элементе х или образом элемента х относительно /, а х называется прообразом элемента у относительно /. Если х £ D(f), то выражение f(x) считается неопределенным. Среди функций из А в А выделим тождественную функцию id а = {(ж,х) | х G А}. Очевидно, что {6а{х) = х для любого х G А. Тотальная функция /: А —» В называется отображением А в В. Очевидно, что любая частичная функция /: А —» В является отображением D(f) в В. Инъективное отображение А в В называется взаимно-однозначным отображением. Сюръективное отображение /: А —> В называется отображением А на В. Любое отображение /: А —> В является отображением А на E(f). Всякая тотальная функция /: N —» А называется последовательностью или, более точно, последовательностью элементов множества А. В этом случае вместо f(n) обычно пишут fn. Если / — отображение /1 в В, и I С Л, то совокупность всех образов элементов множества X называется образом множества X при отображении / и обозначается f(X): Нх) = {У I Зж(ж е Xkf(x) = у)}. Если Y С JB, то множество всех прообразов элементов множества Y называется прообразом множества Y при отображении / и обозначается f~1(Y): /-100 = {х | Зу (у е Y k f(x) = у)}. 19 
Если /: А В — отображение, X С А и /(ж) = ж для любого ж G X, то говорят, что / тождественно на X. Соответствие G между множествами А и В называется биективным, или взаимно-однозначным, или биекиией, если оно функционально, инъективно, тотально и сюръективно. Заметим, что если (? — взаимно-однозначное соответствие между множествами А и J5, то обратное соответствие (?-1 является взаимнооднозначным соответствием между В и Л. Если при этом F — взаимно-однозначное соответствие между множествами В и (7, то произведение G о F является взаимно-однозначным соответствием между Л и С. Каждое взаимно-однозначное соответствие между А и В является взаимно-однозначным отображением А на J5. С другой стороны, взаимно-однозначное отображение f:A—>B является взаимно-однозначным соответствием между Л и /(Л). 1.3. Бинарные отношения В случае, когда множества Л и В совпадают, соответствие между множествами А и В называется бинарным отношением на множестве А. Если R — бинарное отношение на множестве Л, т.е. R С Л х Л, и (ж, у) G i?, то говорят, что элемент ж находится в отношении R к элементу у. Вместо (ж, у) £ R часто пишут xRy. Слово «отношение» встречается в школьном курсе математики, когда говорят, например, об отношении «меньше» для действительных чисел. С этим отношением естественным образом связано множество всех таких пар действительных чисел (ж, у), что ж < у, т.е. бинарное отношение i? = {(ж, у) | ж G R&y G К&ж < у} на множестве R. Естественно это бинарное отношение обозначить символом < и вместо xRy писать ж < у. Аналогично определяется бинарное отношение < на множестве R как множество {(ж,у) | ж G R&у G R&ж < у}- Рассмотрим отношение делимости для положительных целых чисел: ж:у, если ж = у • z для некоторого целого числа г. Его можно представить как бинарное отношение на множестве всех положительных целых чисел Z+: 20 
R = {(ж, у) |xGZ+& у g Z+ &ж:у}. Естественно это бинарное отношение обозначить символом : и вместо xRy писать х\у. Как и для любых соответствий, определены понятия обратного бинарного отношения и произведения бинарных отношений. Например, бинарное отношение > на R, определяемое как {(ж,у) | х G R&у G R&x > у}, является обратным для бинарного отношения <. Аналогично, обратным для бинарного отношения < на множестве R является бинарное отношение >, определяемое как {(ж,у) | х G R&у G R&x > у}- Обратным для бинарного отношения : на множестве Z+ является бинарное отношение |, состоящее из всех таких пар положительных целых чисел (ж,у), что число ж является делителем числа у. Бинарное отношение R на множестве А называется • рефлексивным, если каждый элемент множества А находится в отношении R к самому себе: (\/ж G А) (ж, ж) G 7?; • иррефлексивным (или антирефлексивным), если никакой элемент множества А не находится в отношении 7? к самому себе: (Уж G А) (ж, ж) ^ 7?; • симметричным, если всякий раз, когда элемент ж находится в отношении R к элементу у, то и элемент у находится в отношении 7? к элементу ж: (Уж, у € Л) [(ж,у) G Я => (у,ж) G Я]; • антисимметричным, если никакие различные элементы множества А не могут одновременно находиться в отношении R друг к другу: (Уж,у G А) [((ж,у) G Я& (у,ж) € Я) => ж = у]; 21 
• транзитивным, если всякий раз, когда элемент х находится в отношении R к элементу у, а элемент у находится в отношении R к элементу z, то элемент х находится в отношении R к элементу 2: (\fx,y,z € А) [((ж,у) € Rk (y,z) (Е R) => (x,z) e R}. Бинарное отношение R на множестве А называется частичным порядком, если R рефлексивно, антисимметрично и тран- зитивно. Частичный порядок обычно обозначают < или ■<. Множество А с заданным на нем частичным порядком < называется частично упорядоченным и обозначается (Л, <). Бинарное отношение на множестве А называется строгим частичным порядком, если оно иррефлексивно и транзитив- но. Строгий частичный порядок обычно обозначают < или -*<. Множество А с заданным строгим частичным порядком < на нем называется строго частично упорядоченным и обозначается (Л, <). Бинарное отношение на множестве Л называется отношением эквивалентности, или эквивалентностью, если оно рефлексивно, симметрично и транзитивно. Обычно эквивалентность обозначают символом Классом эквивалентности элемента х Е А по эквивалентности ~ на множестве Л называется множество М~ = {у I х ~ у}- Множество всех классов эквивалентности элементов множества Л по отношению ~ называется фактор-множеством А по ~ и обозначается Л/ Классы эквивалентности обладают следующими свойствами: х € [жД ж ~ у =$> [аД = [уД хфу^ [аД П [уГ = 0. Таким образом, множество Л разбивается на непересекающи- еся классы эквивалентности по отношению 1.4. Числовые множества К концу XIX в. наивная теория множеств достигла своего наивысшего развития и стала играть в математике роль своеобразного стандарта, в соответствии с которым любой математический объект может быть определен как подходящее множество. 22 
Например, натуральные числа можно определить следующим образом. Натуральное число 0 есть пустое множество 0; если число п уже определено, то п + 1 есть множество п U {п}. Таким образом, 0 = 0, 1 = {0}, 2 = {0,{0}}, 3 = {0,{0},{0,{0}}}. Идея этого определения состоит в отождествлении натурального числа п с конкретным n-элементным множеством. После этого множество всех натуральных чисел (натуральный ряд) можно охарактеризовать как наименьшее по включению множество N, которое содержит пустое множество (т. е. число 0) и вместе с каждым множеством х содержит множество х U {х} (в частности, если содержит число п, то содержит и число п+1). На таком определении натурального ряда основан принцип индукции: пусть для множества М С N выполняются условия • 0 G М, • Мп[п G М => п + 1 G М]; тогда М = N. На множестве N определяется операция сложения следующим образом. Пусть А — наименьшее по включению соответствие между множествами N2 (т. е. N х N) и N, удовлетворяющее следующим условиям: • (Vn G N) ((n,0),n) G А; • (Vn, m, k G N) [((n, m), k) G A => ((n, m + 1), k + 1) G A\. Нетрудно доказать, что A — функциональное соответствие. Тогда т + п = k ^ ((n, m), fc) G Л. Аналогично определяется операция умножения. Теперь в рамках теории множеств можно ввести целые числа. На множестве N2, состоящем из всех пар натуральных чисел, определим отношение ~ следующим образом: (a, b) ~ (с, d) ^ а + d = Ъ + с. Нетрудно убедиться, что ~ — эквивалентность, при этом в каждом классе эквивалентности есть ровно одна пара вида (п, 0) или (0,п). Для любого натурального числа к положим к — = [(&, 0)]~, —к — [(0, /с)]^. Элементами фактор-множества N2/ ~ будут в точности множества вида к и —к. Они и называются целыми числами. Заметим, что О = —О = [(0,0)]^. На множестве всех целых чисел Z нетрудно определить операции сложения, вычитания и умножения, а также естественный порядок <. Идея такого определения целых чисел состоит в представлении целого числа в виде разности а — Ъ двух натуральных чисел 23 
а и b. Поэтому мы и начали с рассмотрения пар натуральных чисел. Поскольку такое представление неоднозначно, мы отождествляем пары (а, Ъ) и (с, d), если a — b~c — d: т. е. а + d = 6 + с. Целые числа вида к (к Е N) находятся в естественном взаимно-однозначном соответствии с натуральными числами. Можно считать целое число к представителем натурального числа к в множестве целых чисел, и в этом смысле всякое натуральное число является целым числом. Множество всех целых чисел вида к также будем обозначать N. На множестве Z х (N\{0}), состоящем из всех пар вида (а, 6), где а — целое число, а Ъ — натуральное число, отличное от О, определим отношение ~ следующим образом: (а, Ь) ~ (с, d) ±=; а • d = b • с. Нетрудно убедиться, что ~ — эквивалентность. Теперь заметим, что в каждом классе эквивалентности есть ровно одна такая пара (А;, п), что целые числа кип взаимно просты. Элементы фактор-множества (Z х (N\{0}))/ Ги называются рациональными числами. Идея такого определения рациональных чисел состоит в представлении рационального числа в виде дроби а/Ь, где а — целое число, a Ь — натуральное число, отличное от нуля. Поэтому мы и начали с рассмотрения пар вида (а, Ь). Поскольку такое представление неоднозначно, мы отождествляем пары (а, Ь) и (с, d), если a/b — c/d, т. е. а • d = Ъ • с. Рациональные числа вида [(&, 1)]^ находятся в естественном взаимно-однозначном соответствии с целыми числами. Рациональное число этого вида можно считать представителем целого числа к в множестве рациональных чисел, и в этом смысле всякое целое число является рациональным числом. Множество всех рациональных чисел вида [(&, 1)]^, также будем обозначать Z. На множестве всех рациональных чисел Q нетрудно определить операции сложения, вычитания, умножения и деления на число, отличное от 0, а также естественный порядок <. Для определения действительных чисел в рамках теории множеств применялись различные конструкции. Рассмотрим одну из них, предложенную Р. Дедекиндом. Множество а С Q называется дедекиндовым сечением, если выполнены следующие условия: • а ф 0, а ф Q; 24 
• (Vp,<? € Q) [(p € akq < p) => q e a]; • в a нет наибольшего числа. Дедекиндовы сечения и называются действительными числами. Действительные числа рассматривались в математике задолго до появления теории множеств. Поэтому, когда мы говорим об определении действительных чисел, то речь идет о точном определении математических объектов, отвечающих интуитивному представлению о действительных числах. Идея определения действительных чисел по Дедекинду становится прозрачной, если иметь в виду интуитивное представление о действительном числе как о точке на числовой оси. Каждая такая точка х характеризуется множеством а рациональных точек, лежащих левее х. Это множество и есть дедекиндово сечение. Если сама точка х рациональная, то в множестве a = Q\a существует наименьший элемент — само число х. Если же х иррационально, то в множестве а нет наименьшего элемента. Множество всех отрицательных рациональных чисел является дедекиндовым сечением, следовательно, действительным числом, которое обозначается как 0. На множестве всех действительных чисел R вводится порядок: a < р ^ a С р. Если а<0, то число а называется отрицательным, а если 0 < a — положительным. Используя сложение рациональных чисел, можно определить сумму действительных чисел: a + p^ {р + q | р Е a, g Ер}. Пусть А — ограниченное сверху множество рациональных чисел. Тогда через А° обозначим множество А без его наибольшего элемента (если таковой в нем был). Тогда для любого действительного числа а число —а определяется так: -а ±=; {— р | р Е Q кр а}°. Нетрудно доказать, что a + (—a) =0. Мы не можем определить произведение действительных чисел прямо по аналогии с суммой, положив a-p^{p*g|pEa, q Е р}, так как в этом случае множество a • р не является дедекиндовым сечением. Поэтому сначала мы определим произведение положительных действительных чисел: если 0 < а и 0 < р, то а • р = {р | р Е Q hp < 0} U {р • q | р Е a, q Е р, 0 < р, 0 < q}. 25 
Теперь произведение любых двух действительных чисел определяется разбором случаев: Vp, (-а) • (-р), а'Р — < -((-<*) -Р). "(« Т-Р)), 10, если 0 < а и 0 < р, если а < 0 и р < 0, если а < 0 и 0 < р, если 0 < а и р < 0, если а = 0 или р — 0. Пусть р G Q. Тогда множество D(p) = {х Е Q | х < р}, очевидно, является сечением. Сечение D(p) можно считать представителем рационального числа р в множестве всех действительных чисел. Множество всех действительных чисел вида D(p) также будем обозначать Q. Поскольку понятие функции из R в R, т. е. функционального соответствия между множествами R и R, определяется в рамках теории множеств, имеется возможность развивать математический анализ и другие разделы математики на основе теории множеств. 1.5. Эквивалентные множества Если существует взаимно-однозначное соответствие между множествами А и В, то эти множества называются равномощными. Чтобы выразить, что А и В равномощны, пишут А ~ В. Теорема 1.2. Каково бы ни было семейство множеств X, отношение ~ является эквивалентностью на X. Доказательство. Каково бы ни было множество Л, функция id а является взаимно-однозначным соответствием между А и Л, так что Л ~ Л, и отношение ~ рефлексивно. Если / — взаимно-однозначное соответствие между множествами Л и J5, то /-1 есть взаимно-однозначное соответствие между множествами В и Л, так что из Л ~ В следует В ~ Л, и отношение ~ симметрично. Если / — взаимно-однозначное соответствие между множествами Л и J5, а д — взаимно-однозначное соответствие между множествами В и (7, то их произведение fog есть взаимно-однозначное соответствие между множествами Л и (7, так что изЛ~ВиВ~С следует Л ~ (7, и отношение ~ тран- зитивно. ■ 26 
Равномощные множества называются также эквивалентными. Согласно Кантору, под кардинальным числом или мощностью множества А понимается то общее, что присуще всем множествам, эквивалентным множеству А. Независимо от способа представления того абстрактного объекта, который называется кардинальным числом, фундаментальное значение имеет то, что два множества А и В имеют одну и ту же мощность, если и только если они эквивалентны. Мощность множества А обозначается \А\. Таким образом, \А\ = |J5|, если и только если А ~ В. Если множество А равномощно некоторому подмножеству множества J5, пишут \А\ < \В\. В частности, если А С J5, то и < \В\. Очевидно, что \А\ < |J5|, если и только если существует взаимно-однозначное отображение А в В. Из определения отношения < следует, что оно рефлексивно и транзитивно. Антисимметричность отношения < вытекает из следующей теоремы Кантора — Бернштейна. Теорема 1.3. Если \А\ < \В\ и \В\ < |А|, то \А\ = \В\. Доказательство. Пусть а: А —В и (3: В А суть взаимно-однозначные отображения. Тогда а(А) С J5, [3(B) С А. Композиция у = а о р является взаимно-однозначным отображением А на у(А) = (3(а(А)). Заметим, что у (А) С (3(B). Положим оо С = Р(В) \ Y (А), у °(С) = С, Y п+1(С) = Y(Tn(C)), S = U Г {С). п=О Рассмотрим отображение у*: А —» А, определяемое следующим образом: * / \ _ fж для х ^ S, = для ж € (А \ S). у* тождественно на 5 и совпадает с у на А \ S. Так как S = = С U у(S'), то 5 П у(А \ 5) = (С П у(А \ 5)) U (y(S) П у(А \ 5)) = 0, и поэтому у* есть взаимно-однозначное отображение множества А на множество у*(А) = у*(S и (А \ S)) = S U у(А \ S) - С U у(S) U у(А \ S) = = с и Y Д) = (Р(В) \ У Д)) и у(А) = р(В). Следовательно у* о(3-1 является взаимно-однозначным отображением А на В, т. е. |А| = \В\. ■ 27 
Если А и В не равномощны и \А\ < \В\, то пишут \А\ < \в\. Имеет место следующая теорема Кантора. Теорема 1.4. Для любого множества А имеет место Л1 < \Р(А)\. Доказательство. Функция д: А —» Р(Л), где д(х) = {х}, устанавливает взаимно-однозначное соответствие между множеством А и подмножеством множества V(A), состоящим из всех одноэлементных подмножеств множества А, так что \А \ < \V(A)\. Покажем, что \А\ ф \Р(А)\. Пусть / — какая-либо функция из А в 'Р(И), и пусть S = {х | х G Л&х ^ /(х)}. Таким образом, для любого элемента х £ А выполняется условие х £ S х ф f(x). (1.4) Очевидно, что S £ V{A). Покажем, что S ф E(f). Пусть для некоторого s £ А m = s. (1.5) Тогда из (1.4) при х = s и (1.5) следует абсурдное утверждение s £ S s ф S. Таким образом, никакая функция из Л в V{A) не является сюръективной. Это означает, что не существует взаимно-однозначного соответствия между А и V(A). ■ Конечные множества X и Y эквивалентны, если количество элементов в одном из них равно количеству элементов в другом. Принято обозначать мощность n-элементного конечного множества числом п. Множество, равномощное множеству N, называется счетным. В частности, множество N счетно. Мощность счетного множества обозначается Ко (читается алеф-нуль; К — первая буква еврейского алфавита). Предложение 1.1. Множество N2 счетно. Доказательство. Отображение л: N2 —> N, где л (га, п) = 2т • (2п + 1) — 1, (1.6) устанавливает взаимно-однозначное соответствие между N2 и N. ■ 28 
Предложение 1.2. Множество Z счетно. Доказательство. Очевидно, что отображение Z —» N, устанавливает взаимно-однозначное соответствие между Z Предложение 1.3. Множество Q счетно. Доказательство. Так как N С Q, то |N| < |Q|. Докажем, что IQI < |N|. Для этого достаточно указать взаимнооднозначное отображение Q в N. Пусть х Е Q. Число х единственным образом представимо в виде несократимой дроби га/п, где т Е Z, п Е (N \ {0}). Положим р(ж) = и(Дт),п — 1), где к и £ — отображения, определяемые формулами (1.6) и (1.7) соответственно. Очевидно, что р является взаимно-однозначным отображением Q в N. Таким образом, |N| < IQI и IQI < |N|, а тогда по теореме Кантора - Бернштейна получаем |Q| = |N|, т. е. Q — счетное множество. ■ Из теоремы Кантора следует, что |N| < |P(N)|. Мощность множества 'P(N) называется мощностью континуума и обычно обозначается с. Таким образом, Ко < с. Можно доказать, что |R| = с. Предположение о том, что не существует множества М, для которого Ко < \М\ < с, называют континуум-гипотезой. Это правдоподобное с интуитивной точки зрения предположение долгое время не удавалось ни доказать, ни опровергнуть. Лишь в 60-е годы XX в. проблема, связанная с континуум-гипотезой, была окончательно решена, но в несколько необычном смысле, который будет разъяснен чуть позже. 1.6. Парадоксы теории множеств К концу XIX в. математический анализ и основанные на нем разделы математики были сведены к теории множеств. Поэтому обнаружение противоречий в теории множеств явилось драматическим событием в истории всей математики. Рассмотрим два таких противоречия. Парадокс Кантора. Пусть М множество всех множеств. Так как М содержит в себе все множества, то V(M) С М. Зна¬ где если х > 0, если х < 0, (1.7) и N. 29 
чит, \V(M)\ < \М\. С другой стороны, для любого множества М имеет место неравенство \М\ < \V(M)\. Отсюда по теореме Кантора-Бернштейна (см. теорему 1.3) получаем \М\ = \V(M)\, что противоречит теореме Кантора (см. теорему 1.4). Этот парадокс был известен самому Кантору еще в 1899 г., но был опубликован лишь в 1932 г. Парадокс Рассела. Пусть R — множество всех множеств, которые не являются своими элементами, т. е. R = {х \ х £ х}. Иными словами, х Е R <=> х £ х. Взяв здесь R в качестве ж, получаем, что R Е R выполняется тогда и только тогда, когда R £ R. Это явный абсурд. Этот парадокс был обнаружен английским математиком, логиком и философом Б. Расселом в 1902 г. и был опубликован им в 1903 г. Парадоксы Кантора, Рассела и другие противоречия, обнаруженные в наивной теории множеств, демонстрируют трудности, связанные с попытками построить теорию множеств на основе интуитивного понятия множества. Обнаружение противоречий в теории множеств Кантора вызвало кризис оснований математики. Поиски выхода из него оказались мощным стимулом для исследований по теории множеств и математической логике. Различные математики высказывали разные взгляды по поводу причин возникновения противоречий и предлагали некоторые способы избавления от них. Один из возможных путей избавления от противоречий, предложенный американским математиком Дж. фон Нейманом, состоит в различении совокупностей двух сортов, называемых классами и множествами: произвольная совокупность объектов считается классом, а множествами являются только те из классов, которые сами могут быть элементами других классов. При таком подходе рассуждения, используемые в парадоксах Кантора и Рассела, приводят не к противоречию, а всего лишь к тому результату, что рассматриваемые там совокупности М и R не являются множествами. Чтобы убедиться, что это не просто игра терминами, попытаемся получить парадокс Рассела при условии, что R — класс, не являющийся множеством. Очевидно, что R не является своим элементом, потому что элементами класса могут быть только множества. Но отсюда не следует, что мы должны включить его в R в качестве элемента, потому что к классу R мы относим только множества. Так что никакого противоречия нет. 30 
1.7. Аксиоматическая система теории множеств Поскольку свободное пользование понятиями, исходящими из интуитивных представлений о множествах, приводит к противоречиям, в 1908 г. немецкий математик Э. Цермело предложил ограничиться рассмотрением множеств, существование которых может быть доказано на основе некоторого списка аксиом. Система Цермело Z содержит следующие аксиомы Zl —Z8. Z1. Аксиома объемности. Два множества равны, если и только если они состоят из одних и тех же элементов. Z2. Аксиома пары. Для любых множеств х и у существует множество {х,?/}, элементами которого являются только х и у. Z3. Аксиома суммы. Для любого множества х существует множество Ux, состоящее в точности из всех элементов тех множеств, которые являются элементами множества х. Z4. Аксиома степени. Для всякого множества х существует множество 'Р(х), элементами которого являются все подмножества множества х и только они. Z5. Аксиома выделения. Для любых множества х и свойства Ф(Д таких, что для любого z Е х утверждение Ф(^) либо истинно, либо ложно, существует множество {z | z G х&Ф(г)}, состоящее в точности из тех элементов z множества х, которые обладают свойством Ф(z). Аксиомы Z2 — Z5 являются частными случаями принципа свертывания (см. подразд. 1.1), согласно которому для всякого свойства Ф(х) существует множество {х | Ф(х)}. Так, если фиксированы множество х и свойство Ф(^), мы можем рассмотреть свойство 2 G х & Ф(г). Из принципа свертывания получаем существование множества у — {z \ z G х&Ф(Д}, что дает и аксиома выделения. Попробуем вывести парадокс Рассела из аксиомы выделения тем же путем, как это было сделано в подразд. 1.6. Для этого в аксиоме Z5 зафиксируем х = а, в качестве Ф(^) возьмем свойство z £ z и построим множество у — {z\zEahz^ z}. 31 
Рассуждая, как в случае парадокса Рассела, получаем, что у G у тогда и только тогда, когда у G а и у £ у, откуда следует лишь у $ а, что само по себе противоречием не является. Z6. Аксиома бесконечности. Существует множество ж, содержащее элементы 0, {0}, {0, {0}}, {0, {0}, {0, {0}}}, ... , т. е. натуральные числа 0,1, 2,3, ... . Z7. Аксиома выбора. Для любого множества ж существует функция, которая сопоставляет каждому непустому множеству у G х некоторый элемент множества у. В действительности в работе Цермело 1908 г. аксиома Z2 постулирует существование пустого множества, а также существование одноэлементного множества {ж} для любого множества ж и существование двухэлементного множества {ж, у} для любых двух различных множеств хну. Однако очевидно, что эти постулаты легко следуют из аксиом Z2 и Z5. Впоследствии Цермело добавил к своей системе следующий постулат, впервые сформулированный фон Нейманом. Z8. Аксиома фундирования. Всякое непустое множество ж содержит элемент у, не имеющий общих элементов с ж. Отсюда следует, в частности, что не может существовать такое множество ж, что ж G ж, ибо тогда существование множества {ж} противоречило бы аксиоме Z8. Аксиому фундирования называют также аксиомой регулярности. Из аксиом системы Z можно вывести значительную часть теории множеств Кантора, однако ее оказалось недостаточно для разработки теории кардинальных чисел, и в 1922 г. израильский математик и логик А. Френкель предложил добавить следующую аксиому. ZF9. Аксиома подстановки. Для любого множества ж и любой функции /, определенной на множестве ж, существует множество щ состоящее в точности из всех элементов вида /(у), где у G ж. Система Цермело — Френкеля ZF получается добавлением аксиомы ZF9 к системе Z. В этой системе удается вывести все обычные математические теоремы. Сформулированная Цермело аксиома выбора встретила отрицательное отношение со стороны многих математиков. Это объяснялось, во-первых, тем, что эта аксиома имеет, так сказать, неконструктивный характер: она не дает правила, согласно которому в каждом непустом элементе множества ж можно было бы выбрать определенный элемент. Во-вторых, с помощью 32 
аксиомы выбора были доказаны утверждения, противоречащие интуиции. Например, из аксиомы выбора следует существование разбиения шара на конечное число частей, из которых движениями в пространстве можно составить два таких же шара. Поэтому представляет интерес возможность доказательства того или иного утверждения в системе ZF~, полученной устранением аксиомы выбора из системы ZF. Часто посредством ZF обозначают систему Цермело — Френкеля без аксиомы выбора, а систему с аксиомой выбора обозначают ZFC. 1.8. Программа Гильберта Несмотря на то, что в теории ZF никаких противоречий не обнаружено, это еще не означает, что противоречия здесь невозможны. Чтобы установить недоказуемость противоречия математическими методами, нужно сделать математически точным понятие доказательства. Программа доказательства непротиворечивости математических теорий была намечена немецким математиком Д. Гильбертом. Он предложил представлять исследуемую математическую теорию в виде формальной аксиоматической системы. Ее построение начинается с выбора подходящего формализованного языка. Сначала фиксируются символы для обозначения основных понятий теории: объектов, операций и отношений, играющих важную роль в этой теории. Используя эти, а также логические и некоторые служебные символы, по фиксированным правилам строятся выражения, являющиеся формальным аналогом предложений теории. На полученном языке записываются аксиомы теории. Наряду с аксиомами фиксируются правила логического вывода, позволяющие из одних предложений получать другие. Эти правила выбираются таким образом, чтобы они отражали способы рассуждений, обычно применяемые в математике. Теорема данной формальной теории — это предложение, которое можно получить из аксиом путем последовательного применения правил вывода. Таким образом, предложения данной теории представляются словами в фиксированном алфавите, а доказательства — последовательностями таких слов. Исследование этих объектов можно вести строгими математическими методами. При этом проблема непротиворечивости сводится к доказательству невыводимости двух противоречащих друг другу предложений. 33 
Очевидно, что если мы собираемся доказывать непротиворечивость аксиоматической теории множеств, то при этом нельзя использовать теоретико-множественные методы, поскольку они вызывают подозрения в своей несостоятельности. К счастью, формальные доказательства представляются простыми объектами, и можно ожидать, что для их исследования достаточно очень скромных средств. Приемлемые в этой ситуации методы Гильберт назвал финитными. Они характеризуются тем, что рассматриваются только так называемые конструктивные объекты, т. е. объекты, которые можно получить из некоторого фиксированного конечного набора элементарных объектов по фиксированным правилам построения. Таковы предложения формализованного языка и формальные доказательства. Бесконечная совокупность конструктивных объектов рассматривается не как завершенная, данная в целом, а как процесс порождения ее элементов. Каждое доказательство существования должно давать метод построения объекта, существование которого доказывается. Изучение математических доказательств в рамках программы Гильберта ознаменовало собой становление математической логики как самостоятельной математической дисциплины. В заключение вернемся к континуум-гипотезе. Именно с помощью уточнения понятия доказательства и методов математической логики в работах австрийского логика и математика К. Гёделя и американского математика Дж. Коэна было доказано, что континуум-гипотеза не может быть ни доказана, ни опровергнута на основе обычных аксиом теории множеств. Это не единственный пример того, как математическая логика помогла получить нетрадиционное решение известных математических проблем. 
Глава 2 ЛОГИКА ВЫСКАЗЫВАНИЙ Изучение математической логики начнем со сравнительно простого ее раздела, называемого логикой высказываний. 2Л. Высказывания и логические операции Основной задачей математической логики является уточнение и изучение понятия правильного рассуждения. Всякое рассуждение состоит в последовательном переходе от одной мысли к другой, или, как говорят в логике, от одного суждения к другому. Материальным выражением суждения является предложение того или иного языка. Например, математические суждения мы обычно записываем в виде текстов на русском или каком-либо другом естественном языке, обогащенном математической символикой. Предложения, выражающие определенные суждения, называются высказываниями. Они характеризуются тем, что могут быть истинными или ложными, и этим отличаются, например, от повелительных или вопросительных предложений. Пример повествовательного предложения, которое не является высказыванием, дает следующий парадокс лжеца, хорошо известный еще в древности: «Высказывание, которое я сейчас произношу, ложно». Стоящее в кавычках предложение нельзя без противоречия признать ни истинным, ни ложным. Под истинностным значением понимается абстрактный объект («истина» или «ложь»), сопоставляемый высказыванию в зависимости от того, является это высказывание истинным или ложным. В математической логике для обозначения истинностных значений «истина» и «ложь» чаще всего используются числа 1 и О или буквы И и Л, Т и F соответственно. Иногда говорят, что истинностные значения 0 и 1 двойственны друг другу. Из одних высказываний можно строить более сложные высказывания. Логическая операция -- это способ построения 35 
сложного высказывания из данных высказываний, при котором истинностное значение сложного высказывания определяется истинностными значениями исходных высказываний. Некоторые логические операции имеют специальные названия и обозначения. Отрицание — одноместная логическая операция, в результате которой из данного высказывания А получается новое высказывание «Неверно, что Л», обозначаемое -*А. Высказывание -*А истинно тогда и только тогда, когда А ложно. Этот факт выражается следующей истинностной таблицей: А -<А 0 1 1 0 (2.1) Конъюнкция — двухместная логическая операция, заключающаяся в соединении высказываний А и В в новое высказывание «А и J5», обозначаемое Ah В. Дизъюнкция — двухместная логическая операция, заключающаяся в соединении высказываний А и В в новое высказывание «А или J5», обозначаемое А У В. Импликация — двухместная логическая операция, заключающаяся в соединении высказываний А и В в новое высказывание «Если А, то J5», обозначаемое A D В. При этом А называется посылкой, а В — заключением высказывания A D J5. Эквиваленция — двухместная логическая операция, заключающаяся в соединении высказываний А и J5 в новое высказывание «Л, если и только если J5», обозначаемое А = В. Смысл этих операций задается истинностной таблицей, определяющей зависимость истинностного значения результата от истинностных значений исходных высказываний Л и В: А В АкВ AW В Аэ В А = В 0 0 0 0 1 1 0 1 0 1 1 0 1 0 0 1 0 0 1 1 1 1 1 1 (2.2) Операция D, понимаемая в соответствии с указанной таблицей, называется материальной импликацией. Она соответствует математической практике. Действительно, всякий признает, что для любого натурального п истинно высказывание «Если п де¬ 36 
лится на 6, то п делится на 3». В частности, это высказывание истинно, когда п = 8,9,12, и этим определяются первая, вторая и четвертая строки таблицы для импликации. В заключение приведем пример операции над высказываниями, не являющейся логической операцией. По высказыванию А строим высказывание «Я знаю, что А». Очевидно, что истинность такого высказывания зависит не только от истинностного значения Л, но и от осведомленности лица, произносящего это высказывание. 2.2. Алфавит, буква, слово Математическая логика исследует математические рассуждения. Рассуждения оформляются в виде математических текстов. Поэтому будет уместно рассмотреть некоторые общие понятия, относящиеся к письменным математическим языкам. Элементарные знаки, из которых состоит текст, называются буквами. При использовании того или иного знака нас не интересуют его части, а лишь этот знак в целом. Например, было бы неправильно утверждать, что мягкий знак является частью буквы «ы». При выборе букв необходимо быть уверенным в том, что всякий раз, рассматривая любые две написанные буквы, мы сможем определить, одинаковы эти буквы или различны. Алфавит — это непустой конечный список букв. Слово в данном алфавите — конечная последовательность букв этого алфавита. Для удобства рассматривают пустое слово — последовательность, не содержащую ни одной буквы. Его обозначают символом А. Чтобы иметь возможность математически строго доказывать утверждения о словах, нужно иметь строгое определение слова в данном алфавите. В качестве исходных возьмем понятия пустого слова и приписывания к объекту X справа буквы S; данного алфавита, в результате чего получается объект АД. Теперь определение слова можно сформулировать в следующем виде. Определение 2.1. Пусть А — какой-либо алфавит. Тогда 1) пустое слово А считается словом в алфавите А; 2) если X — слово в алфавите A, a S; — любая буква алфавита А, то АД считается словом в алфавите А. Сущность этого определения состоит в том, что словами в алфавите А считаются те и только те объекты, которые могут 37 
быть получены в результате конечного числа раз последовательного применения правил 1) и 2). Слова, полученные применением правила 2), будем называть непустыми словами. Из определения немедленно вытекает следующее утверждение. Теорема 2.1. Любое непустое слово в алфавите А имеет вид Х£, где X — слово в алфавите А, а с; — буква алфавита А. Определение 2.1 является примером индуктивного определения. Такие определения обычно используются для задания какого-либо типа конструктивных объектов. Индуктивное определение имеет следующую структуру: одни пункты определения объявляют объектами данного типа некоторые конкретные объекты (в нашем случае это п. 1), а в остальных случаях говорится, как по уже имеющимся объектам данного типа строить новые (в нашем случае это п. 2). Тогда объектами данного типа являются те, которые можно получить в результате применения правил построения. Индуктивный характер определения слова дает возможность использовать принцип индукции по построению слова’, если требуется доказать, что все слова в алфавите А обладают некоторым свойством Р, то для этого достаточно установить, что 1) пустое слово обладает свойством Р; 2) если X обладает свойством Р, а с; — любая буква алфавита А, то Xс; обладает свойством Р. Индуктивный характер определения слова позволяет также индукцией по построению слова задавать функции, определенные на множестве всех слов в алфавите А: пусть 1) пустому слову Л поставлен в соответствие объект Р(Л); 2) задано правило, определяющее, какой объект Р(Хс;) ставится в соответствие слову Х£, где S; — буква алфавита Л, если слову X поставлен в соответствие объект Р(Х); тогда для каждого слова X определен объект Р(Х). В качестве примера использования этого приема определим длину \Х\ слова X, положив 1) |Л| = 0; 2) |Х£| = |Х| + 1. Определение 2.2. На множестве всех слов в алфавите А определим бинарное отношение «слова X и У графически равны», обозначаемое X = У, индукцией по построению слова X. 1) Если X есть Л, то X ^ У означает, что У есть Л. 2) Допустим, что для слова X уже определено, для каких слов У в алфавите А имеет место X = У, а для каких — нет (в этом случае будем говорить, что слова X и У графически различны, и писать X / У). Пусть S; — любая буква алфавита А. Определим 38 
отношение Х\ = Y индукцией по построению слова Y. Если Y — пустое слово, то X<; ^ Y. Пусть г) — произвольная буква алфавита А. Тогда будем считать, что графическое равенство Х\ = Yr\ имеет место, если и только если X = У, а буквы S; и 7) одинаковы. Графическое равенство X = Y означает, что слова X и Y составлены из одинаковых букв, одинаковым образом расположенных. Это понятие и обозначение важно в тех случаях, когда слова X и Y сами служат обозначениями каких-либо объектов, для которых определено отношение равенства. Например, слова 2 + 3 и 7 — 2 оба обозначают число 5, и этот факт выражается обычным равенством 2 + 3 — 7 — 2, однако очевидно, что эти слова графически различны, так что 2 + 3 ^ 7 — 2. Теорема 2.2. Отношение = рефлексивно. Доказательство. Индукцией по построению слова X докажем, что имеет место X = X. 1) Из п. 1) определения 2.2 следует, что Л = Л. 2) Пусть X = X, S; Е А. Тогда в силу п. 2) определения 2.2 определения имеем XS; + Х%. ■ Теорема 2.3. Отношение + симметрично. Доказательство. Индукцией по построению слова X докажем, что X + Y => Y = X для любого слова Y. 1) Пусть X есть Л, и X = Y. В силу п. 1) определения 2.2 это возможно, только если Y — пустое слово. Но тогда Y = X. 2) Пусть X = V => V = X для любого слова V, 'i Е А. Допу¬ стим, что XS; = Y. По п. 2) определения 2.2 это возможно, только если Y — непустое слово, а тогда по теореме 2.1 У имеет вид Vr\ для некоторых слова V и буквы г). Таким образом, Х^ = Vr\. В силу п. 2) определения 2.2 это означает, что X = V, а буквы с; и 1) совпадают. По индукционному предположению V = X, и в силу п. 2) определения 2.2 имеем Vr\ = т. е. Y = Х^. ■ Теорема 2.4. Отношение = транзитивно. Доказательство. Индукцией по построению слова X нетрудно доказать, что X = Y hY = Z +> X + Z для любых слов Y и Z. Детальное доказательство является несложным упражнением. ■ Теорема 2.5. Отношение = — эквивалентность на множестве всех слов в алфавите А. 39 
Доказательство. По теоремам 2.2 —2.4 отношение = рефлексивно, симметрично и транзитивно, т. е. является эквивалентностью. ■ Определение 2.3. Для любого слова X индукцией по построению слова У определим слово [X, Y]: 1) [Х,А] -X; 2) [Х,У5] [Х,У]£. Теорема 2.6. Если [X, У] = Л, то X = Л и Y = Л. Доказательство. Пусть [X, У] = Л. Допустим, что Y ф- Л. Тогда Y — непустое слово, и по теореме 2.1 Y имеет вид Vr\ для некоторых слова V и буквы г). Но тогда [X, У] есть слово [X, Ут)], которое имеет вид [X, V]r\ и не является пустым вопреки условию. Значит, У = Л, тогда [X, У] есть X и X = Л. ■ Теорема 2.7. Каковы бы ни были слова Xi,X2, Ух, У2, X1~X2kY1 = Y2^ [Хь Yi] = [Х2,У2]. Доказательство. Пусть Х\ = Х2. Индукцией по построению Ух можно доказать, что У\ = У2 => [Хх,Ух] = [Х2,У2] для любого У2. Детальное доказательство является несложным упражнением. ■ Слово [X, У] получается приписыванием справа к слову X слова У. Иногда это слово будем обозначать ХУ и называть произведением слов X и У. Очевидно, что операция произведения слов не коммутативна, однако она ассоциативна. Теорема 2.8. Каковы бы ни были слова X, У, Z в алфавите А, [X,[Y,Z]] = [[X,Y],Z\. (2.3) Доказательство. Индукция по построению слова Z. 1) Если Z есть Л, то [X, [Y,Z]] = [X, [У,Л]] = [X,Y] = [[Х,У],Л] = \[X,Y],Z\. 2) Пусть для слова Z имеет место (2.3), 5 € А. Тогда [X, [У, zi}\ = [X, [У, Щ = [X, [У, z\\l = = [[x,y],z]5 = [[x,y],zg. ■ Слово X называется началом слова У, если существует такое слово Z, что У = [X, Z}. Слово X называется концом слова У, если существует такое слово Z, что У = [Z, X]. 40 
Теорема 2.9. Каково бы ни было слово X в алфавите А, каждое из слов А и X является началом и концом слова X. Доказательство. Согласно определению 2.3 [X, Л] = X, откуда следует, что Л является концом, а X — началом слова X. Докажем, что для любого слова X в алфавите А имеет место [Л,Х]=Х. (2.4) Воспользуемся индукцией по построению слова X. 1) Если X = Л, то [Л, X] = [Л, Л] = Л = X. 2) Пусть для слова X имеет место (2.4), a S; — любая буква алфавита А. Тогда [Л, Х£] = [Л, Х]£ = Х%. Из (2.4) следует, что Л является началом, а X — концом X. ■ Собственное начало слова X — это любое начало слова X, отличное от Л и X. Собственный конец слова X — это любой конец слова X, отличный от Л и X. Следующая теорема называется теоремой о двух началах. Теорема 2.10. Если X и Y — начала слова Z, то X - начало слова У или Y — начало слова X. Доказательство. Индукция по построению слова Z. Детальное доказательство является несложным упражнением. ■ Аналогично доказывается следующее утверждение, называемое теоремой о двух концах. Теорема 2.11. Если X и Y — концы слова Z, то X — конец слова Y или Y — конец слова X. Будем считать, что буква * не принадлежит алфавиту А. Определение 2.4. Говорят, что слово X в алфавите А входит в слово Y в том же алфавите, если существуют такие слова U и У, что Y = UXV. При этом слово U * X * V в алфавите A U {*} называется вхождением X в У, слово U называется левым крылом данного вхождения, а слово V — правым крылом этого вхождения. Определение 2.5. Пусть слово X входит в слово У, непроизвольное слово. Зафиксируем некоторое вхождение X в У, т. е. представление У в виде UXV. Тогда слово UZV называется результатом замены данного вхождения слова X в У на слово Z. 41 
2.3. Пропозициональные формулы Предположим, что фиксирован некоторый класс атомарных высказываний, из которых с помощью логических операций строятся более сложные высказывания. Нас не будет интересовать внутренняя структура атомарных высказываний. Важно лишь, что каждое такое высказывание имеет определенное истинностное значение. В логике высказываний изучаются логические связи между высказываниями, обусловленные тем, каким образом эти высказывания строятся из атомарных высказываний. Подобно тому как при переходе от изучения арифметических действий над конкретными числами к изучению общих свойств арифметических операций в школьной алгебре вводятся числовые переменные — буквенные обозначения для произвольных чисел, так и в математической логике вводятся обозначения для произвольных высказываний. Тогда становится возможным представить логическую структуру сложного высказывания в виде своеобразного алгебраического выражения, использующего обозначения для простых высказываний и символы логических операций. Поэтому логику высказываний иногда называют алгеброй высказываний или алгеброй логики. Математическая логика пользуется математическими методами. Поэтому выражения алгебры высказываний должны быть точными математическими объектами. Для этого используется формальный язык логики высказываний. Алфавит этого языка состоит из символов Р, -1, &, V, D, =, (,). Слова (Р),(РР), (РРР), ... будем называть пропозициональными переменными и обозначать их соответственно Pi, Р2, Р3, ... . Условимся также иногда писать Р вместо Pi, Q вместо Р2, R вместо Р3, S вместо Р4. Символы -1, &, V, D, = называются пропозициональными связками. Пропозициональные формулы (или формулы логики высказываний) определяются индуктивно следующим образом: 1) всякая переменная есть пропозициональная формула (такая формула называется атомной формулой или атомом); 2) если А — формула, то слово (-'А) считается формулой; 3) если АиВ- формулы, то слова (А& Р), (A VP), (A d Р), (.А = В) считаются формулами. Слово А в алфавите языка логики высказываний является формулой тогда и только тогда, когда существует конечная последовательность слов Ai, . ..,АП такая, что для каждого г = 42 
= 1, ...,п слово Ai либо получено по правилу 1, т.е. является пропозициональной переменной, либо получается из одного или двух предшествующих слов по правилу 2 или 3, и при этом Ап совпадает с А. Такую последовательность можно рассматривать как историю построения формулы А в соответствии с правилами 1 — 3. Пример 2.1. Следующая последовательность — история построения формулы (Р D (ф<2)): 1) Р (получено по правилу 1); 2) Q (получено по правилу 1); 3) (“’Q) (получено по правилу 2 из слова 2)); 4) (Р D (-iQ)) (получено по правилу 3 из слов 1) и 3)). ■ Индуктивное определение формулы логики высказываний дает возможность использовать в доказательствах принцип индукции по построению формулы. А именно, пусть V — некоторое свойство слов в алфавите логики высказываний и пусть 1) каждая атомная формула обладает свойством V; 2) если А обладает свойством Р, то (-iA) обладает свойством V] 3) если А и В обладают свойством Р, а X — одна из букв &, V, D, =, то (А\В) обладает свойством V. Тогда все формулы обладают свойством V. Пусть А — слово в алфавите логики высказываний, 1(A) — число левых скобок «(» в А, а г (А) число правых скобок «)». Число s(A) — 1(A) — г (А) назовем скобочным итогом слова А. Для иллюстрации применения индукции по построению формулы докажем следующую теорему о скобочном итоге. Теорема 2.12. 1) Скобочный итог формулы равен 0; 2) скобочный итог собственного начала формулы положителен; 3) скобочный итог собственного конца формулы отрицателен. Доказательство. Утверждения 1) —3) будем доказывать одновременно индукцией по построению формулы. Если А — атом (Р...Р), то 1(A) = г (А) = 1. Следовательно, s(A) = 0. Любое собственное начало X атома (Р... Р) имеет вид ( или (Р...Р, так что l(X) = 1, г(Х) — 0 и s(X) = 1 > 0. Любой собственный конец Y атома (Р... Р) имеет вид Р...Р) или ), так что l(Y) = 0, г{Y) = 1 и «(У) = —1 < 0. Пусть А имеет вид (—<JB), причем для В выполнено доказываемое утверждение. Имеем: 1(A) = 1(B) + 1, г (А) = r(B) + 1, 43 
следовательно, 5(A) = 1(A) — г (А) = 1(B) — г (В) = s(B) = 0. Собственными началами А являются слова (, (->, а также слова вида (-iX, где X — начало Б, так что s(X) > 0. Очевидно, 5(() = s((-i) = 1 > 0; s((^X) = 1 + s(X) > 1 > 0, что и требовалось доказать. Собственными концами А являются слова ), -■Б), а также слова вида X), где X — конец Б, так что s(X) < 0. Очевидно, 5()) = s(-*B)) — — 1 < 0; s(X)) — s(X) — 1 < —1 < 0. Пусть А имеет вид (БХС), где X — одна из связок &, V, D, =, а для В и С выполнено доказываемое утверждение. Очевидно, 1(A) = 1(B) + 1(C) + 1, г (А) — г(В) + г (С) + 1, следовательно, s(A) = 1(A) - г (А) = 1(B) + 1(C) - г (В) - г (С) = s(B) + s(C) = 0. Собственными началами А являются слово (, слова вида (X, где X — начало Б, так что s(X) > 0, слово (БХ, а также слова вида (БХУ, где Y — начало С, так что з(У) > 0. Имеем: s(() = 1 > 0; s((X) = 1 + 5(X) > 0; 5((БХ) - 1 + 5(Б) + 5(Х) = 1 > 0; s((B\Y) = 1 + s(B) + 5(Х) + s(F) > 0, что и требовалось доказать. Аналогично доказывается, что скобочный итог всякого собственного конца А отрицателен. ■ Теорема 2.13. Если формула А является началом или концом формулы Б, то формулы А и В совпадают. Доказательство. Это следствие теоремы о скобочном итоге. ■ Теорема о скобочном итоге позволяет доказать единственность логического анализа всякой пропозициональной формулы. Теорема 2.14. Всякая пропозициональная формула либо является атомом, либо может быть единственным образом представлена в одном из видов (-1А), (А&Б), (А V Б), (A D D Б), (А = В) для некоторых формул А и В. Доказательство. Возможность представления любой пропозициональной формулы, не являющейся атомом, в одном из видов Ы), (AkB), (А V В), (Ad В), (А = В) вытекает из определения формулы. Остается доказать единственность такого представления. Очевидно, что представление формулы в виде (-,А), где А — формула, если оно существует, единственно. Действительно, если слова (~>А\) и (~*А2) совпадают, то, очевидно, А\ совпадает с А2. 44 
Докажем, что никакая формула не может быть представлена одновременно в виде (-'А) и (ВХС), где X — одна из связок &, V, D,= аД В и С — формулы. Действительно, если (фА) = (ВХС), то -1А = ВХС, и получается, что формула В начинается с символа -1, что, как видно из определения формулы, невозможно. Докажем, что если формула представлена в виде (АХВ) и в виде (C\xD), где X, р Е {&,V, D,=}, а А, В, С, D — формулы, то X = р, А = С, В = D. Действительно, если (А\В) = (C\iD), то АХВ = C\jlD. Тогда, если А и С не совпадают, то либо А — собственное начало С, либо С — собственное начало А. В любом случае получаем противоречие с теоремой 2.12. Значит, А = С, и тогда X = р, В = D, что и требовалось доказать. ■ Теорема 2.14 показывает, что в формуле, которая не является атомом, можно указать вхождение главной логической связки. А именно, если формула имеет вид (-А) для некоторой формулы А, то главной логической связкой является -i, левое и правое крылья вхождения которой суть ( и А). Иногда такую формулу тоже называют отрицанием. Если формула имеет вид (АХВ) для некоторых формул А и J5, где X — одна из связок &, V, D, =, то эта связка является главной, причем левое и правое крылья ее вхождения суть (А и J5), а формулу (AXJ5) называют соответственно конъюнкцией, дизъюнкцией, импликацией, эквивален- цией. Индуктивное определение пропозициональной формулы позволяет индукцией по построению формулы задавать функции, определенные на множестве всех формул. А именно, пусть 1) каждой атомной формуле А поставлен в соответствие некоторый объект F(A); 2) задано правило, определяющее, какой объект F(-iA) ставится в соответствие формуле (ДА), если формуле А поставлен в соответствие объект F(A); 3) задано правило, определяющее, какой объект F(A\B) ставится в соответствие формуле (АХВ), где X — одна из связок &, V, D, =, если формулам А, В уже поставлены в соответствие объекты F(A), F(B). Тогда для каждой формулы А определен объект F(A). Пусть Qi, ...,Qn — попарно различные пропозициональные переменные, А\, ...,АП — произвольные пропозициональные формулы. Индукцией по построению формулы А определим формулу A[Ai/Qi, ..., An/Qn\ — результат подстановки Аь ..., Ап вместо Qь ..., Qn в А. 1) Пусть А — атом. Если А = Qi (1 < г = п), то 45 
Q\, ..., Ап/ Qn] ^ A{. Если А отлична от всех переменных Q i, ..., Qn, то A[Ai/Qi, ...,An/Qn] ^ A. 2) Если А имеет вид (-^P), полагаем A[A\/Qi, ..., ^4n/Qn] ^ (^BlAi/Qi, ..., ЛП/(5П]). 3) Если Л имеет вид (PXC), где X — один из логических символов &, V, D, =, то полагаем A[A\/Q\, ..., An/Qn\ ^ (S[Ai/Qi, ..., An/QnfrCfa/Qu ..., i4n/Qn]). Пример 2.2. Формула (Q V ((->Д) D (Д&Р))) есть результат подстановки формул Q, (^Д), (Д&Р) вместо переменных P,Q,R в формулу (Р V (Q D Д)). ■ Будем говорить, что формула А является подформулой формулы Р, если А входит в В. Очевидно, что всякая формула А является подформулой формулы А. Подформула формулы Л, отличная от Л, называется собственной подформулой формулы Л. Теорема 2.15. Всякая собственная подформула формулы (->Р) является подформулой формулы В. Доказательство. Пусть Л является собственной подформулой формулы (~'Д). По теореме 2Л2 формула Л не может быть ни собственным началом, ни собственным концом формулы (-iP). Следовательно, Л входит в слово ~^В. Так как -i не является первым символом формулы Л, то Л не может быть началом слова —1а тогда Л входит в Р, что и требовалось доказать. ■ Теорема 2.16. Всякая собственная подформула формулы (РХС), где X — один из логических символов &, V, D, = , а В и С — формулы, является подформулой формулы В или формулы С. Доказательство. Пусть Л является собственной подформулой формулы (РХС). По теореме 2.12 формула Л не может быть ни собственным началом, ни собственным концом формулы (ВХС). Следовательно, Л входит в слово РХС, т. е. В\С = UAV 46 
для некоторых слов U и V. Заметим, что если U пусто и ВХС = = AV, то по теореме 2.10 либо А начало формулы J5, либо В — начало формулы А, ив обоих случаях по теореме 2.13 формулы А и В совпадают, и А входит в В. Теперь будем считать, что U непусто. По теореме 2.10 либо В — начало С/, либо U — начало В. В первом случае U = BW для некоторого слова W, а тогда ВХС = BWAV и далее ХС = WAV. Так как X не является первым символом формулы А, то W непусто и имеет вид XW' для некоторого слова W\ так что ХС = XW'AV и С = Wf AV, т. е. А — подформула формулы С. Рассмотрим случай, когда U — начало J5, т. е. В = UW для некоторого слова W. Тогда UWXC = UAV и далее WXC = AV. По теореме 2.10 либо W — начало А, либо А — начало W. Первый случай невозможен, так как W — собственный конец формулы J5, и по теореме 2.12 его скобочный итог отрицателен, а по той же теореме скобочный итог любого начала формулы А не может быть отрицательным. Таким образом, А — начало W, т. е. W = AWf для некоторого слова VP7, а тогда В = UAW', т. е. А входит в В. ■ Теорема 2.17. Если А — подформула формулы В, то результат замены всякого вхождения А в В на формулу С является формулой. Доказательство. Эта теорема доказывается несложной индукцией по построению формулы В с учетом теоремы 2.16. ■ При написании формул принято опускать некоторые скобки. В частности, не пишут внешние скобки, а вместо (-,С') пишут ->С. Дальнейшая экономия скобок возможна, если принять соглашение о том, какие операции «сильнее». Для этого расположим логические символы в следующем порядке: -д &, V, D, =, и будем считать, что в первую очередь выполняется та операция, которая в этом списке стоит левее, а из нескольких одинаковых операций выполняется та, которая встречается в выражении раньше. 2.4. Истинностные таблицы Пусть V = {Р\, Р2, ...} — множество всех пропозициональных переменных. Оценкой называется отображение g: V —> {0,1}, которое каждой пропозициональной переменной сопоставляет истинностное значение 0 или 1. Индукцией по построению фор¬ 47 
мулы А определим ее значение д{А) при оценке д. Для атома А значение д(А) задано оценкой д. Положим дЬА) = 49(A)), д(АХВ) = д(А)\д(В), где X е {&,V,D,=}, а значения правой части равенств определяются таблицами (2.1) и (2.2). Пример 2.3. Пусть д(Р) = g(Q) = 0, g(R) = 1. Тогда 9ЬР) = 1; g{Q&R) = 0; gbPvQbR) = 1; д(~^Р V Q & R = Q) =0. ■ Следующая теорема показывает, что значение формулы А при оценке д зависит только от значений д на переменных, входящих в А. Теорема 2.18. Каковы бы ни были формула А и оценки д\ и д2, если значения этих оценок на всех переменных, входящих в А, совпадают, то gi(A) — дД-Т)- Доказательство. Индукция по построению формулы А. Детальное доказательство является несложным упражнением. ■ Теорема 2.18 показывает, что для определения значения формулы А при данной оценке достаточно знать лишь значения этой оценки на переменных, входящих в А. Это позволяет представлять зависимость значения формулы от оценки в виде так называемой истинностной таблицы. Пусть Qi, - -,Qn ~ некоторый список переменных, включающий все переменные, входящие в формулу А. Истинностной таблицей формулы А над списком Q1, ..., Qn называется таблица следующего вида: Qi Qi Qn—1 Qn А 0 0 0 0 ао 0 0 0 1 (XI 0£г,1 «г,2 • • • Щ,П — 1 ®г,п u-i 1 1 1 1 (Х2п — 1 48 
Эта таблица содержит 2П строк, в которых выписаны различные наборы • • • аг,п-1^г,п (г = 0, ..., 2П — 1) нулей и еди¬ ниц и значения щ Е {0,1} формулы А при оценке д такой, что g(Qj) = <*i,j {j = l,...,n). Каждый набор нулей и единиц од од • • • u-n-iu-n можно рассматривать как двоичную запись числа o*n Т otn-i • 2 + ... + од • 2П 2 -(- од • 2п 1. Например, набор 0101 может рассматриваться как двоичная запись числа 5. Условимся, что в левой части истинностной таблицы наборы нулей и единиц выписаны в порядке возрастания чисел, двоичной записью которых эти наборы являются (такой порядок в дальнейшем будем называть правильным). Таким образом, набор агдаг,2 • • • о*г,п-1аг,п — это двоичная запись числа г. Пример 2.4 • Построим истинностную таблицу для формулы Р D (Q V R D (ЙЭ^Р)). Так как формула содержит три переменные Р, Q, Р, ее истинностная таблица состоит из 8 строк. Отметим в формуле порядок выполнения логических операций. Под каждой логической связкой выпишем столбец значений той подформулы, в которой эта связка является главной. р Q R Р D5 (Q v1 R D4 {R D3 J to ^3 0 0 0 1 0 1 1 1 0 0 1 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 0 1 1 0 1 1 1 1 0 1 1 1 0 1 0 0 0 Сначала вычисляются значения подформулы Q V R в каждой строке на основе значений переменных Q и R и значения подформулы -iP на основе значений переменной Р. Затем вычисляются значения подформулы R D -tP на основе значений переменной R и подформулы -»Р. Далее вычисляются значения 49 
подформулы Q V R D (R D -»P) на основе значений подформул <2 V Р и Р D -iP. Наконец, вычисляются значения всей рассматриваемой формулы на основе значений переменной Р и подформулы Q V R D (Р D -iP). Значения рассматриваемой формулы для наглядности выделены в таблице полужирным шрифтом. Столбец выделенных значений и есть столбец значений данной формулы. ■ 2.5. Тавтологии Тавтология (общезначимая формула, тождественно истинная формула) — это пропозициональная формула, значение которой при каждой оценке равно 1. Истинностная таблица тавтологии обладает тем свойством, что в столбце ее значений во всех строках стоит 1. Каждая тавтология является схемой истинных высказываний и в этом смысле выражает некоторый логический закон. Пример 2.5. Следующие формулы являются тавтологиями: PdP (закон тождества); Р V ->Р (закон исключенного третьего); ->(Р & ->Р) (закон противоречия); —'Р = Р (закон двойного отрицания); (Р D Q) = (~>Q D -iP) (закон контрапозиции); -i(P&;<2) = (-iPV-'Q), -i(P V Q) = (-iPfe-iQ) (законы де Моргана) . ■ Противоречие (тождественно ложная формула) — это пропозициональная формула, значение которой при каждой оценке равно 0. Истинностная таблица противоречия обладает тем свойством, что в столбце ее значений во всех строках стоит 0. Очевидно, что формула А является тавтологией тогда и только тогда, когда формула -*А является противоречием, и что формула А является противоречием тогда и только тогда, когда формула -*А является тавтологией. Пример 2.6. Следующие формулы являются противоречиями: Р&-Р; -.Р = Р; P&Qee-PV-Q; PvQ = -P&-Q. ■ Следующая теорема называется теоремой о подстановке. 50 
Теорема 2.19. Если А является тавтологией (противоречием) ^ то формула A[A\/Qi, ..., An/Qn\ является тавтологией (соответственно, противоречием), каковы бы ни были попарно различные переменные Q\, ... ,Qn и каковы бы ни были формулы А\, ..., Ап. Доказательство. Индукцией по построению формулы А нетрудно доказать следующее утверждение. Лемма 2.1. Пусть Qi, ...,Qn — попарно различные пропозициональные переменные, А\, ...,Ап — произвольные формулы, д — произвольная оценка. Пусть д\ — оценка, которая совпадает с g на всех переменных, отличных от Q\, ..., а gi(Qi) = д(Аг) (г = 1, ..., п). Пусть А — произвольная формула. Тогда 9{A[Ai/Qi, ..., лп/дп]) = 91(А). (2.6) Пусть формула А — тавтология, Qi, ..., — попарно раз¬ личные пропозициональные переменные, А\, ...,Ап — произвольные формулы, g — произвольная оценка. Пусть д\ — оценка, совпадающая с оценкой д на переменных, отличных от Q\, ..., Qn, a gi(Qi) = g(Ai) для г = 1, ..., п. По лемме 2.1 g(A[Ai/Q1, An/Qn}) = gi(A) = 1, так как А — тавтология. Поэтому g(A[Ai/Qi, • • •, An/Qn]) = 1. Так как д — произвольная оценка, то A[A\/Q\, ..., An/Qn] является тавтологией. Совершенно аналогично рассматривается случай, когда А — противоречие. ■ Чтобы проверить, является ли данная формула тавтологией, достаточно построить ее истинностную таблицу. Теорема 2.19 позволяет любую данную тавтологию рассматривать как схему бесконечного числа новых тавтологий, получающихся из данной подстановкой в нее произвольных формул вместо переменных. Пример 2.7. Путем построения истинностной таблицы можно убедиться, что формула (Р D Q) D ((Q DR)D(PD R)) является тавтологией. Тогда в силу теоремы 2.19 тавтологией является любая формула вида 51 
(A D В) D ((Б D С) D (i D C)), где Л, Б, С — произвольные формулы. Например, если в качестве А взять формулу -iP, в качестве В — формулу P&Q, а в качестве С — формулу Q D Р, получим, что формула (-Р D P&Q) D ((P&Q D (Q D Р)) D (-Р D (Q D Р))) является тавтологией. ■ Построение истинностной таблицы, которое иногда может оказаться довольно трудоемким (например, в случае большого числа различных переменных или логических связок в формуле), является не единственным способом проверки того, является ли данная формула тавтологией. На практике можно просто попытаться найти контрпример для данной формулы, т. е. такой набор значений переменных, на котором данная формула принимает значение 0. Если поиск такого набора окажется успешным, мы докажем, что формула не является тавтологией. В противном случае мы можем убедиться в бесплодности наших попыток и тем самым доказать, что формула является тавтологией. При этом поиск контрпримера можно вести довольно целенаправленно, учитывая логическую структуру формулы. Пример 2.8. Попытаемся найти контрпример для формулы (PdQ)d(Qd Р). Рассуждаем следующим образом. Чтобы при некоторой оценке формула вида A D В принимала значение 0, необходимо и достаточно, чтобы при этой оценке формула А принимала значение 1, а формула В — значение 0. Таким образом, нам надо найти такую оценку g, при которой а) формула Р D Q принимает значение 1; б) формула Q D Р принимает значение 0. Условие б) выполняется, лишь когда g(Q) = 1, g(P) = 0. Очевидно, что в этом случае условие а) также выполнено. Таким образом, контрпример для данной формулы найден, и тем самым доказано, что она не является тавтологией. ■ Пример 2.9. Попробуем найти контрпример для формулы (Р d R) k (Q d S) & (-.Я V -.S) D —*Р V Для этого, очевидно, достаточно найти такую оценку д, при которой: а) формула Р D R принимает значение 1; б) формула 52 
Q D S принимает значение 1; в) формула ~^R У ~^S принимает значение 1; г) формула ~^Р У принимает значение 0. В свою очередь условие г) выполнено, только когда д(Р) = g(Q) — 1. Но тогда для выполнения условий а) и б) необходимо g(P) — g(S) = = 1. Однако в этом случае не выполняется условие в). Итак, мы убедились, что не существует такой оценки д, для которой выполнялись бы условия а)—г), и тем самым доказали, что данная формула является тавтологией. Заметим, что истинностная таблица для этой формулы содержит 16 строк, и ее построение заняло бы довольно много времени. ■ 2.6. Равносильные формулы Пропозициональные формулы А и В называются равносильными (или эквивалентными), если д(А) = д(В) для любой оценки д\ в этом случае пишут А ~ В. Очевидно, что отношение ~ рефлексивно (А ~ Л), симметрично (из А ~ В следует В Г'sj А) и транзитивно (из А ~ В и В ~ С следует А ~ С), так что отношение ~ является эквивалентностью на множестве всех пропозициональных формул. Теорема 2.20. Формулы А и В равносильны тогда и только тогда, когда формула А = В является тавтологией. Доказательство. Как видно из таблицы (2.2), для любой оценки g выполняется условие д(А = В) = 1 д(А) = д(В). Отсюда следует утверждение теоремы. ■ Теорема 2.20 показывает, что для установления равносильности формул А и В достаточно построить истинностную таблицу для формулы А = В и убедиться, что она является тавтологией. Пример 2.10. Истинность следующих равносильностей вытекает из общезначимости соответствующих эквиваленций: Р&Р-Р; P&Q~Q&P; P&(Q&P) ~ (P&Q)&P; РУ Р ~ Р; РУ Q ~ <2 V Р; РУ (Qy R) ~ (Р V Q) У Р; Pk{Q У R) ~ Р&Q У Р&R\P У Q&R ~ (Р V Q) & (Р V Р); P&(QVP) ~Р; PVQ&P~P; Pz>Q~--PVQ; Р = Q - (Р D Q) & (Q D Р); —Р - Р; -(P&Q) --PV-Q; -.(PVQ) --.P&--Q; -.(Р D Q) - P&-Q; -n(P = Q) -P&-QVQ&-P; P&(Q V-Q) - Р; Р V Q & ~ Р. ■ 53 
Следующая теорема позволяет обобщить любую доказанную равносильность и получить много новых равносильностей. Теорема 2.21. Пусть А ~ В. Тогда для любых попарно различных переменных Qi, ..., Qn и любых формул С\, ..., Сп име- ет место A[C\/Q\, ... ,Cn/Qn\ ~ B[Ci/Qi, ... ,Cn/Qn\■ Доказательство. Пусть А ~ В. Тогда по теореме 2.20 формула А = В является тавтологией. По теореме о подстановке (см. теорему 2.19), каковы бы ни были попарно различные пропозициональные переменные Qi, и пропозициональные формулы Сь ...,Сп, формула (А = B)[Ci/Qi, ..., Cn/Qn], т. е. Afa/Qu Cn/Qn} = S[Ci/Qb Cn/Qn], также является тавтологией, и по теореме 2.20 A[C\/Q\, ..., Cn/Qn\ ~ B[C\/Qi, ..., Cn/Qn}- ■ Теорема 2.22. Каковы бы ни были формулы А, В, С, имеют место следующие равносильности: 1) АкА ~ А] 2) AkB ~ ВкА; 3) Ak(BkC) ~ (AkB)kC-, 4) Л V Л ~ Л; 5) Л V В ~ JB V4; 6) Л V (В V С) ~ (Л V В) У С; 7) 4&(BVC)~4&BV4&C; 8) A У BkC~ (А У В)к(АУС); 9) А к (В У А) ~ Л; 10) Ау ВкА~ А- 11) A D В ~ ~Л V В; 12) Л); 13) —>—~ Л; 14) ДА к В) ~ -^АУ^В; 15) —>(Л V J5) ~ ~>Л &; ~>5; 16) ~>(Л D В) ~ Л &: —'J5: 17) -|(Л = В) ~ Ак ~^В У В к -Л; 18) Ак(ВУ^В) ~ Л; 19) Л V В к-•В ~ Л. Доказательство. Все перечисленные равносильности получаются применением теоремы 2.21 к конкретным равносильностям, рассмотренным в примере 2.10. ■ 54 
Некоторые равносильности из теоремы 2.22 имеют специальные названия: 1) и 4) — законы идемпотентности конъюнкции и дизъюнкции; 2) и 5) — законы коммутативности конъюнкции и дизъюнкции; 3) и 6) — законы ассоциативности конъюнкции и дизъюнкции; 7) и 8) — законы дистрибутивности конъюнкции по отношению к дизъюнкции и дизъюнкции по отношению к конъюнкции; 9) и 10) — законы поглощения для конъюнкции и дизъюнкции; 13) — закон двойного отрицания; 14) и 15) - законы де Моргана. Зафиксируем некоторое вхождение формулы А в формулу С и, имея это в виду, будем обозначать С как С[А\. Пусть В — произвольная формула. Через С [В] будем обозначать формулу, полученную в результате замены выделенного вхождения формулы А в С на В. Следующая теорема называется теоремой об эквивалентной замене. Теорема 2.23. Каковы бы ни были формулы А, В, С, если А входит в С и А ~ В, то для любого вхождения формулы А в С имеет место С [А] С\В]. Доказательство. Зафиксируем равносильные формулы А и В и докажем утверждение индукцией по построению формулы С. Если С атомная формула, а А — ее подформула, то А = С. Тогда С[А] = А, С [В] = J5, так что С [А] ~ С[В\. Пусть С = (-I.D), причем для D выполнено утверждение теоремы: если А входит в JD, то D[A] ~ D[B]. Пусть А — подформула формулы С. Тогда либо А = С, либо А является собственной подформулой формулы С. Если А = 67, то С [А] = А, С [В] = J5, и С [А] ~ С [В]. Если же А является собственной подформулой формулы С, то в силу теоремы 2.15 А входит вД и С [А] = (-*D[A]). Тогда С [В] = (~^D[B\), и для любой оценки g имеем: g{C[A])=gbD[A]) = ^g{D[A]) = = ^g(D[B}) = gbD[B}) = g(C[B}), т.е. C[A] C[B\, что и требовалось доказать. Аналогично, с использованием теоремы 2.16, рассматривается случай, когда С имеет вид (D\E), где X Е {&; V; D; =}, а С и D — формулы, для которых выполнено доказываемое утверждение: если А входит в JD, то D[A] ~ D[B\, и если А входит в S, то Е[А] ~ Е[В\. ш 55 
Теоремы 2.22 и 2.23 лежат в основе метода равносильных преобразований, позволяющего для данной формулы строить формулы, равносильные ей. Чтобы доказать, что формулы А и В равносильны, можно построить последовательность формул, начинающуюся с Л и завершающуюся В, причем каждая формула, начиная со второй, равносильна предыдущей. Пример 2.11. С помощью преобразований докажем равносильность формул (Р D Q) D Q и Р V Q. Для этого строим последовательность равносильных формул, указывая номер равносильности из теоремы 2.22, которая используется для получения очередной формулы: (Р D Q) D Q -п -ДР D Q)y Q -16 Р к V <3 —5 ~5 Q VP& -><2 —8 (Q V P) к (Q V -*Q) —is <2 V P ~5 P V Q. ■ 2.7. Принцип двойственности Атомные формулы и их отрицания называются литерами. Если Q — атом, то литеры Q и -■Q будем называть контрарными. Формулы с тесными отрицаниями определяются индуктивно: 1) всякая литера считается формулой с тесными отрицаниями; 2) если А и В — формулы с тесными отрицаниями, то (А к В) и [А У В) — формулы с тесными отрицаниями. Иными словами, формула с тесными отрицаниями — это такая формула, которая содержит только связки -i, &, V, причем -• встречается в ней лишь непосредственно перед переменными. Пример 2.12. Р, -i<2, Р & -iQ, Q V -Д, Р k~^Qk (Q V -Д) суть формулы с тесными отрицаниями, причем первые две из них являются литерами. Формулы -i-Д, -\(Q V -Д), Pk~^Q D D (<2 V -Д) не являются формулами с тесными отрицаниями. ■ Теорема 2.24. Любая формула равносильна формуле с тесными отрицаниями. Доказательство. Докажем более общее утверждение: какова бы ни была формула А, существуют формулы с тесными отрицаниями А! и А° такие, что А' ~ А, А° ~ -А. Воспользуемся индукцией по построению формулы А. 56 
Если А —переменная, то в качестве А' можно взять литеру Л, а в качестве А° — контрарную литеру -<Л. Пусть А = (“'В), причем для Б построены формулы с тесными отрицаниями В7 и В° такие, что В7 ~ Б, Б° ~ -^Б. Тогда в качестве Л7 можно взять Б°, а в качестве Л° можно взять Б7. Пусть Л = (БХС), где X есть & или V, причем для формул В и С построены формулы с тесными отрицаниями Б7, Б°, С7, (7° такие, что Б' - Б, Б° ~ -Б, С' ~ <7, С° ~ -С. (2.7) Тогда в качестве А! можно взять формулу (Б7Х(77), а в качестве Л° — формулу (Б°Х*(7°), где х* = /&, если Х ^ V; I V, если X = &. Пусть Л = (Б D С), причем для формул В и С построены формулы с тесными отрицаниями Б7, Б°, С7, (7° такие, что выполнены условия (2.7). Тогда в качестве А! можно взять формулу (Б° V (77), а в качестве Л° — формулу (Б7&(7°). Пусть, наконец, Л = (Б = (7), причем для формул В и С построены формулы с тесными отрицаниями Б7, Б°, (77, (7° такие, что выполнены условия (2.7). Тогда в качестве Л7 можно взять формулу (Б° V (77) Sz (С° V Б7), а в качестве Л° — формулу (Б7& (7°) V ((77 & Б°). ■ Доказательство теоремы 2.24 дает алгоритм приведения произвольной формулы к виду с тесными отрицаниями, т. е. построения равносильной ей формулы с тесными отрицаниями. Пример 2.13. Построим формулу с тесными отрицаниями, равносильную формуле ((Б D Q) D (R D -iP)) D (-iQ D -iP). Пользуясь обозначениями и рассуждениями из доказательства теоремы 2.24, получаем следующую цепочку равносильностей: (((Р Э Q) Э (Я Э -Р)) Э (-Q Э -Д))' ~ ~ ((Р DQ)D(RD -.р))° V (-.Q D -Д)' ~ ~ (Р D Q)' & (й D ^Р)° V (-.Q)° V (-.Д)' ~ ~ (Р° v <50 &R! & (-'Р)0 v <5 v -<Д ~ ~ (“1Р v Q) & Д & Р v Q v -|Д. ■ 57 
Теорема 2.25. Пусть А — формула с тесными отрицаниями, А! — формула, полученная из А заменой в ней & па V, V на & и каждой литеры на контрарную ей. Тогда -<А ~ А!. Доказательство. Индукция по построению формулы с тесными отрицаниями А. Если А есть литера, то А7 — контрарная ей литера, и доказываемое утверждение очевидно. Пусть А = (В&С), где В и С — формулы с тесными отрицаниями, причем -iJ5 ~ В7, -iC ~ С. Тогда А7 = (В' V С7), и ~«И = -<(В & (7) ~ (-<В V (7) ~ (В7 V (77) = И7, что и требовалось доказать. Аналогично рассматривается случай, когда А = (В V (7), где В и С — формулы с тесными отрицаниями. ■ Пример 2.14. Пусть А есть формула Р (QV->B). Тогда А' есть формула ->Р V Q V и в силу теоремы 2.25 ~'(В & 'Q & (Q V ~>К)) ~ —'В V Q V -iQ & В. ■ Пусть Л — формула с тесными отрицаниями. Двойственная к А формула Л* получается из Л заменой в ней всех вхождений & на V и всех вхождений V на &. Следующая теорема называется принципом двойственности. Теорема 2.26. Пусть А и В — формулы с тесными отрицаниями, А* и В* двойственные им формулы. Тогда 1) если А — противоречие, то Л* — тавтология; £) ео/ш Л — тавтология, то Л* — противоречие; 5) еслп Л ~ В, то Л* ~ В*; ^) еа/ш формула Л D В является тавтологией, то формула В* D Л* также является тавтологией. Доказательство. Пусть Л — формула с тесными отрицаниями. Замену в ней всех литер на контрарные можно провести в два этапа: сначала подставляем в Л формулы ..., ~^Qn вместо всех входящих в нее переменных Qi, . ..,(Jn, а затем, пользуясь равносильностями ~ Qi (г = 1, ...,п), опуска¬ ем возникшие двойные отрицания перед переменными, получая равносильную формулу. Таким образом, формула Л7, рассмотренная в теореме 2.25, равносильна формуле, полученной из Л* указанной подстановкой. Аналогично, формула Л* равносильна формуле, полученной из формулы Л7 той же подстановкой. Ины- 58 
ми словами, если Qi, ... , — все переменные, входящие в Л, то А' ~ ..., -^Qn/Qn], . A*~A'bQi/Qu...,^Qn/Qn]. 1) Пусть А — противоречие. По теореме 2.25 Af ~ ->Л, следовательно, А! — тавтология. В силу теоремы о подстановке (см. теорему 2.19) формула A'[-^Qi/Qi, ..., -^Qn/Qn\ также является тавтологией. С другой стороны, в силу (2.8) эта формула равносильна Л*, следовательно, Л* является тавтологией. 2) Это утверждение доказывается аналогично предыдущему. 3) Пусть Л ~ В. Тогда по теореме 2.23 ->Л ~ -iJ5. По теореме 2.25 отсюда следует Л7 ~ J57, т. е. А! = В' — тавтология. Пусть Q1, ..., Qn — все входящие в нее переменные. По теореме 2.19 формула A'[-*Qx/Qi, ... ,-<Qn/Qn\ = £'H2l/Qb • • • ,^Qn/Qn] является тавтологией. С другой стороны, в силу (2.8) и теоремы об эквивалентной замене эта формула равносильна формуле Л* = Б*, следовательно, Л* ~ В*. 4) Пусть формула Л D В — тавтология. Тогда и равносильная ей формула D -Л является тавтологией. В силу теоремы 2.25 и теоремы об эквивалентной замене эта формула равносильна формуле Bf D Л', которая, таким образом, также является тавтологией. По теореме о подстановке формула B'bQx/Qi, • • •, -Qn/Qn] D A'[-^Q\/Qi, ..., 4?„/Qn] является тавтологией. С другой стороны, в силу (2.8) и теоремы об эквивалентной замене, эта формула равносильна J5* D Л*, следовательно, В* D Л* — тавтология. ■ Пример 2.15. Законы идемпотентности, коммутативности и ассоциативности дизъюнкции (равносильности 4--6) теоремы 2.22) легко получаются из соответствующих законов для конъюнкции (равносильности 1) — 3) из теоремы 2.22) с помощью принципа двойственности. Так, частным случаем равносильности 2) является равносильность Р & Q ~ Q h Р. Из нее с помощью принципа двойственности получаем равносильность Р V Q ~ Q V Р, откуда равносильность 5) получается с помощью теоремы 2.21. Закон поглощения для дизъюнкции (равносильность 10) из теоремы 2.22) получается с помощью принципа двойственности из закона поглощения для конъюнкции (равносильность 9) из теоремы 2.22). Дистрибутивность дизъюнкции по отношению к конъюнкции (равносильность 8) из 59 
теоремы 2.22) получается с помощью принципа двойственности из дистрибутивности конъюнкции по отношению к дизъюнкции (равносильность 7) из теоремы 2.22). Законы де Моргана (равносильности 14) и 15) из теоремы 2.22) получаются друг из друга с помощью принципа двойственности. ■ 2.8. Нормальные формы в логике высказываний Понятие дизъюнкта определяется индуктивно: 1) всякая литера считается дизъюнктом; 2) если D — дизъюнкт, L — литера, то (D V L) — дизъюнкт. Пользуясь соглашением об опускании скобок, каждый дизъюнкт можно записать в виде [L\ V ... V Ln), где Li, ..., Ln — литеры. Такой дизъюнкт принимает при данной оценке значение 0 тогда и только тогда, когда все литеры Li, ..., Ln принимают значение 0. Отсюда следует, что дизъюнкт (L\ V ... V Ln) является тавтологией тогда и только тогда, когда среди литер Li, ..., Ln есть контрарные. Понятие конъюнкта определяется индуктивно: 1) всякая литера считается конъюнктом; 2) если К — конъюнкт, L — литера, то (К & L) - конъюнкт. Пользуясь соглашением об опускании скобок, любой конъюнкт можно записать в виде L\ h ... & Ln, где Li, ..., Ln — литеры, n > 1. Очевидно, что такой конъюнкт принимает при данной оценке значение 1 тогда и только тогда, когда все литеры Li, ...,Ln принимают значение 1. Отсюда, в частности, следует, что конъюнкт L\ & ... & Ln является противоречием тогда и только тогда, когда среди литер Li, ..., Ln есть контрарные. Конъюнктивная нормальная форма (КНФ) определяется индуктивно: 1) всякий дизъюнкт есть КНФ; 2) если А есть КНФ, D — дизъюнкт, то (AhD) есть КНФ. Пользуясь соглашением об опускании скобок, любую КНФ можно записать в виде Di Z)n, где D\, ...,JDn — дизъ¬ юнкты. Теорема 2.27. Для любой формулы существует равносильная ей конъюнктивная нормальная форма. 60 
Доказательство. В силу теоремы 2.24 любая формула равносильна формуле с тесными отрицаниями. Поэтому достаточно доказать, что любую формулу А с тесными отрицаниями можно привести к КНФ, т. е. построить равносильную ей КНФ. Воспользуемся индукцией по построению формулы А. 1) Если А — литера, то она является дизъюнктом, следовательно, есть КНФ. 2) Пусть А = А\ & Л2, причем для А\ и А2 построены равносильные им КНФ £){&...& Djn и £>!&...& D\. Тогда очевидно, что КНФ D\ & ... & D\n & D\ & ... & равносильна формуле А. Если же А = А\ V Л2, то Л равносильна формуле £)}&...V £)?&...&£>2. (2.9) Пользуясь дистрибутивностью дизъюнкции по отношению к конъюнкции, нетрудно убедиться, что формула (2.9), а значит и А, равносильна КНФ V Dj). ■ На практике удобно пользоваться аналогией между логическими операциями V и & с одной стороны и арифметическими операциями • и + с другой, ибо равносильность 8) из теоремы 2.22 напоминает алгебраическое тождество А - (В + С) = = А В + А С. Пример 2.16. Приведем формулу ((Р D Q) D (Р D -Р)) D (-.Q D -Р) к КНФ. Ранее (см. пример 2.13) мы привели эту формулу к виду с тесными отрицаниями (-iP \fQ)hRhP\/Q\/ ->Р. Имея в виду аналогию между логическими и арифметическими операциями, перепишем эту формулу в алгебраической форме: ЬР • Q + R + Р) • Q • - Я- Раскрывая скобки и возвращаясь к логической символике, получаем КНФ (-iP V Q V Q V -»Р) & (Р V Q V -iP) & (Р V Q V ->Р). Первый дизъюнкт в этой формуле можно упростить, пользуясь идемпотентностью дизъюнкции, и получить формулу (~> Р V Q V ~> Р) & (Р V Q V ~> Р) & (Р VQ V ~Р). Второй дизъюнкт в этой формуле является тавтологией. После его удаления получается КНФ (-PVQV->Р) &; (PN/QV^P). ■ 61 
Дизъюнктивная нормальная форма (ДНФ) определяется индуктивно следующим образом: 1) всякий конъюнкт есть ДНФ; 2) если А есть ДНФ, К — конъюнкт, то А У К есть ДНФ. Пользуясь соглашением об опускании скобок, любую ДНФ можно записать в виде К\ V ... V Кп, где К\, ..., Кп — конъюнкты. Теорема 2.28. Для любой формулы существует равносильная ей дизъюнктивная нормальная форма. Доказательство. Эта теорема может быть доказана тем же методом, что и теорема 2.27: любую формулу с тесными отрицаниями можно привести к ДНФ, пользуясь дистрибутивностью дизъюнкции по отношению к конъюнкции. Но можно поступить и иначе. В силу теоремы 2.27 любую формулу можно привести к КНФ. Поэтому, если дана формула Л, можно построить КНФ Р, равносильную формуле -*А. Затем для формулы В построим формулу Р', заменив в В каждое вхождение & на V, каждое вхождение V на & и каждую литеру на контрарную. В силу теоремы 2.25 имеем В' ~ -■ В ~ А. Очевидно, что В' есть ДНФ, равносильная А. ■ На практике удобно пользоваться аналогией между логическими операциями & и V с одной стороны и арифметическими операциями • и + с другой, так как равносильность 7) из теоремы 2.22 напоминает тождество А • (Р + С) = А • В + А • С. Пример 2.17. Приведем формулу ((Р D Q) D (Р D --Р)) D (-.Q D --Р) к ДНФ. Эта формула равносильна формуле с тесными отрицаниями (-iPV Q)hRhP V Q V -^Р (см. пример 2.13). Имея в виду аналогию между логическими и арифметическими операциями, перепишем эту формулу в алгебраической форме: (—iР + Q) • Р • Р + Q + ~'Р. Раскрывая скобки и возвращаясь к логической символике, получаем ДНФ РfeP&PvQ&P&PVQVP. Первый конъюнкт в этой формуле является противоречием. После его удаления получается ДНФ Q&P&PVQVP. ■ 62 
Пусть А — пропозициональная формула, ос Е {0,1}. Через Аа будем обозначать А, если ос = 1, и -Л, если ос = 0. Для любой оценки д выполняются условия: д(РП = 1 о д(Рг) = а; д(Р?) = 0 д{Рг) = а*, где а = 0, если а = 1; 1, если а = 0. Стандартный конъюнкт над списком попарно различных переменных Q1, ... ,<3п, соответствующий набору нулей и единиц ос = ос\ ... ап, — это конъюнкт Q*1 h ... & Q®". Очевидно, что для любой оценки g g(Q*1 k.. -&Qnn) = 1 ^ (Vi e {1, • • .,n})g(Qi) = a*. Пример 2.18. Формула P & -*Q & R есть стандартный конъюнкт над списком Р, Q,R, соответствующий набору 101. ■ Пусть К\, ... , Кт (га > 1) суть стандартные конъюнкты над списком Q1, ..., соответствующие наборам а1, ..., ат, выписанным в правильном порядке, т. е. в порядке возрастания чисел, двоичной записью которых эти наборы являются. Формула К1 V ... V Кт называется совершенной дизъюнктивной нормальной формой (СДНФ) над списком ..., Qn. Очевидно, что для любой оценки g имеет место g(K\ V ... V Кт) — 1 тогда и только тогда, когда набор g(Qi), ... ,g(Qn) совпадает с одним из наборов а1, ..., ост. Заметим, что СДНФ не является противоречием. Пример 2.19. -iP h Q & R V P & -*Q & R V P hQh ->P есть СДНФ над списком Р, <3,Р, построенная по наборам 011, 101, 110. ■ Для любой формулы А, не являющейся противоречием, можно построить равносильную ей СДНФ над любым списком переменных Qi, ..., Qn, включающем все переменные, входящие в Л. Пусть а1, ..., ост — все наборы значений переменных Qi, ..., Qn, на которых формула А принимает значение 1, выписанные в правильном порядке, и пусть К\, ..., Кт — стандартные конъюнкты над списком Qi, . ..,<3П, соответствующие наборам а1, ..., ат. Тогда, очевидно, СДНФ К\ V ... V Кш равносильна формуле А. Пример 2.20. Из истинностной таблицы (2.5) для формулы Pd(QvPd(Pd-P)) (2.10) 63 
видно, что эта формула принимает значение 1 на наборах 000, 001, 010, 011, 100 и 110 значений переменных P,Q,R. Соответствующие этим наборам стандартные конъюнкты суть ^P&^Q&^R, -P&-Q&P, -.Р & Q& -ii?, P&Q&R, Pk-^Q&^R, P&Q&^R, поэтому формула ^P&^Q&^RV ^P&^Q&RV ^P&Q&^RV V-P&Q&PVP&-Q&-PVP&Q&-P есть СДНФ, равносильная формуле (2.10). ■ Стандартный дизъюнкт над списком Qi, •••iQn, соответствующий набору а = (Xi ... ап, — дизъюнкт Q^ V ... V Qnn • Очевидно, что для любой оценки g выполняется следующее условие: g(QI1 v... V<2“") =0Ф> (Vi е {1, ...,n})g(Qi) = а*. Пример 2.21. Формула -«PVQV-'P есть стандартный дизъюнкт над списком Р, Q, Р, соответствующий набору 101. ■ Пусть Pi, ..., Dm (m > 1) суть стандартные дизъюнкты над списком Q1, ..., Qn, соответствующие наборам а1, ..., а771, выписанным в правильном порядке. Формула D\ & ... &; Dm называется совершенной конъюнктивной нормальной формой (СКНФ) над списком Qi, ..., Очевидно, что для любой оценки g имеет место g(D\ &... & Dm) = 0 тогда и только тогда, когда набор g(Qi), ..., g(Qn) совпадает с одним из наборов а1, ..., ат. Заметим, что никакая СКНФ не является тавтологией. Пример 2.22. (Р V ~^Q V —• R) & (->Р V Q V ~>Р) & (~>Р V ~V Р) есть СКНФ над списком Р, Q,P, построенная по наборам 011, 101, 110. ■ Любую формулу Л, не являющуюся тавтологией, можно привести к СКНФ, т. е. построить равносильную ей СКНФ, над любым списком переменных Q i, ..., Qn, включающем все переменные, входящие в А. Пусть а1, ...,ат — все наборы значений переменных Qi, . ..,(Jn, на которых А принимает значение 0, выписанные в правильном порядке. Пусть Pi, ..., Рш — стандартные дизъюнкты над списком Qi, ... соответствующие наборам а1, ..., ат. Тогда СКНФ Pi & ... & Dm равносильна А. 64 
Пример 2.23. Построим СКНФ для формулы (2.10). Из истинностной таблицы (2.5) видно, что эта формула принимает значение 0 на наборах 101 и 111 значений переменных Р, Q, Р. Соответствующие этим наборам стандартные дизъюнкты суть -iP V Q V ->Р и -iP V -iQ V —ijR, поэтому формула (-iP V Q V ->Р) & (->Р V -iQ V -iД) есть СКНФ, равносильная формуле (2.10). ■ Мы умеем строить СДНФ и СКНФ, равносильные формуле А, по истинностной таблице для А. Обе нормальные формы содержат полную информацию о формуле, так как по ним можно восстановить истинностную таблицу. Поэтому представляет интерес приведение формулы к СДНФ или СКНФ с помощью равносильных преобразований. СДНФ над списком переменных Qi, • • • iQn — это ДНФ, характеризующаяся тем, что 1) каждый конъюнкт содержит ровно одно вхождение каждой из переменных Qi, ..., Qn, и 2) сами конъюнкты и литеры в них выписаны в определенном порядке. Выполнения условия 2) нетрудно добиться, пользуясь коммутативностью конъюнкции и дизъюнкции. Покажем, как добиться выполнения условия 1). Если конъюнкт содержит два или более вхождения одной и той же литеры, то в силу идемпотентности конъюнкции можно оставить только одно вхождение этой литеры. Если конъюнкт содержит контрарные литеры, то он является противоречием, и его вообще можно вычеркнуть. Таким образом можно добиться, чтобы каждый конъюнкт содержал не более одного вхождения каждой из переменных Qi, • • •, Qn- Допустим теперь, что конъюнкт К не содержит вхождений переменной Qi. Тогда в силу равносильности 18) из теоремы 2.22 К ~ К & (Qi V -><5г) ~ К &Qi V К к, -1Qi, т. е. можно заменить К на дизъюнкцию двух конъюнктов, каждый из которых уже содержит вхождение переменной Qi. Пример 2.24• Преобразуем ДНФ Qh^R V P&Q в СДНФ над списком P,Q,R. В первом конъюнкте отсутствует переменная Р, поэтому сделаем с ним такое равносильное преобразование: Q&^R~ (Р V-P)&Q&-P ~ P&Q&^RV ^P&Q&^R. Во втором конъюнкте отсутствует переменная Р, поэтому сделаем с ним такое равносильное преобразование: 65 
P&Q - P&Q&(PV -.Я) - P&Q&RV P&Q&^R. Заменяя в исходной ДНФ конъюнкты на равносильные дизъюнкции и вычеркивая повторяющиеся конъюнкты, получим следующую ДНФ: Р hQh -iPV ->Р hQ & -'RvPSz Q & R. Для получения СДНФ над списком Р, Q, R остается только расположить конъюнкты в правильном порядке: -nP&Qfe-nPV P&Q&-PV P&Q&P. ■ СКНФ над списком переменных Qi, • • •, Qn — это КНФ, характеризующаяся тем, что каждый дизъюнкт содержит ровно одно вхождение каждой из переменных Qi, ..., Qn, а сами дизъюнкты и литеры в них выписаны в определенном порядке. Выполнения последнего условия нетрудно добиться, пользуясь коммутативностью конъюнкции и дизъюнкции. Если же какой-либо дизъюнкт содержит два или более вхождения одной и той же литеры, то можно оставить только одно вхождение этой литеры. Если дизъюнкт содержит контрарные литеры, то он является тавтологией, и его вообще можно вычеркнуть. Таким образом можно добиться, чтобы каждый дизъюнкт содержал не более одного вхождения каждой из переменных • • •, Qn• Допустим теперь, что дизъюнкт D не содержит вхождений переменной Qi. Тогда в силу равносильности 19) из теоремы 2.22 D — D V Qih ~^Qi — (D V Qi) & (D V ~^Qi), т. e. можно заменить D на конъюнкцию двух дизъюнктов, каждый из которых уже содержит вхождение переменной Qi. Пример 2.25. Преобразуем КНФ (Q V R) & (Р V R) в СКНФ над списком Р, Q, R. В первом дизъюнкте отсутствует переменная Р, поэтому сделаем с ним такое равносильное преобразование: <2VP-P&^PV<2VP-(PV<2VP)& (iP VQ VP). Во втором дизъюнкте отсутствует переменная Q, поэтому сделаем с ним такое равносильное преобразование: Р V Р — Р V Q& ~*Q VP- (Р V Q V Р) & (Р V —*Q V Р). Заменяя в исходной КНФ все дизъюнкты на равносильные им конъюнкции и вычеркивая повторяющиеся дизъюнкты, получим следующую КНФ: (PvQVP) & (-iPvQvP) & (PV-iQvP). Для получения СКНФ над списком Р, Q,P расположим дизъюнкты в правильном порядке: (Р V Q V Р) & (Р V -iQ V Р) & (->Р V VQVP). ■ 66 
2.9. Выполнимость и логическое следование в логике высказываний Множество формул Г называется выполнимым, если существует такая оценка д, при которой все формулы из Г принимают значение 1. В этом случае оценку д называют выполняющей оценкой для множества Г. Очевидно, что если множество формул Г выполнимо, то любое его подмножество также выполнимо. Если множество формул не является выполнимым, то оно называется невыполнимым. Невыполнимые множества формул называются также несовместными. Очевидно, что если множество формул Г несовместно, то любое его расширение, т. е. множество формул Д такое, что Г С Д, также несовместно. Формула А называется выполнимой, если выполнимо множество {А}, т. е. существует оценка, при которой А принимает значение 1. Очевидно, что пропозициональная формула выполнима тогда и только тогда, когда она не является противоречием. Пример 2.26. Множество формул {->Р, Р hQ} несовместно, так как при любой оценке, при которой первая формула принимает значение 1, вторая формула принимает значение 0. ■ Пример 2.27. Множество формул {Р V Q, ~^Q D R. R = Р] выполнимо. Оценка д, для которой д(Р) = g(Q) = g(R) = 1, является выполняющей оценкой для этого множества. ■ Следующая теорема называется локальной теоремой. Теорема 2.29. Пусть Г — бесконечное множество пропозициональных формул. Тогда Г выполнимо, если и только если выполнимо всякое конечное его подмнооюество. Доказательство. Если множество Г выполнимо, то выполнимо любое, в частности, конечное, его подмножество. Докажем обратное: множество Г выполнимо, если выполнимо любое конечное его подмножество. Поскольку множество всех формул счетно, то и Г счетно. Пусть Г = {А1,А2,Аз, ...}. Положим Дп = {Ai, ... , Ап} (п > 1). Очевидно, каждое из множеств Ап — это конечное подмножество множества Г, следовательно, оно выполнимо по предположению. Пусть дп — такая оценка, при которой все формулы из Дп принимают значение 1. Построим оценку д индукцией по п, определив значение д(Рп) для каждой переменной Рп. Положим д(Р\) = 1, если множество {п \ дп(Р\) = 1} 67 
бесконечно. В противном случае положим д(Р\) = 0. Очевидно, в последнем случае бесконечно множество {п \ gn{P\) — 0}. Таким образом, в любом случае множество М\ = {п | дп{Р\) = g(Pi)} бесконечно. Допустим, что уже определены значения g(Pi), ... ,д(Рк) Для некоторого к > 1, причем множество Мк = {п | gn(Pi) = g(Pi), ■■■,дп{Рк) = д(Рк)} бесконечно. Положим д(Рк+1) = 1, если бесконечно множество {п\пе Мк,дп(Рк+1) = 1}. В противном случае положим д(Рк+1) = 0. Очевидно, в этом случае бесконечно множество {п \ п £ Мк, дп(Рк+\) = 0}. Таким образом, в любом случае бесконечно множество Мк+1 = {п | п е Мк,дп(Рк+1) = д(Рк+1)} = = {п I gn(Pi) = g(Pi), ■ ■ ■,дп(Рк) = я(Рк),gn(Pk+i) = д(Рк+1)}- Тем самым значения д(Рк) определены при всех к. Докажем, что д(Ап) = 1 для любого п > 0. В формуле Ап используется лишь конечное число переменных. Пусть все они содержатся среди переменных Р\, ..., Рк. По построению множество Мк бесконечно, следовательно, в нем есть элемент I > п. Так как I Е Мк) то gi(Pi) = д(Рi)? • • • ,gi(Pk) = д(Рк)• Заметим, что Ап G Д/, а при оценке gi все формулы из Д/ принимают значение 1. Следовательно, gi{An) = 1. Но оценка д совпадает с оценкой gi на всех переменных, входящих в Лп, и по теореме 2.18 д(Ап) = gi(An) = 1, что и требовалось доказать. ■ Теорема 2.30. Бесконечное множество пропозициональных формул Г несовместно тогда и только тогда, когда существует конечное несовместное подмножество множества Г. Доказательство. Очевидно, что если некоторое (не обязательно конечное) подмножество множества высказываний Г несовместно, то и множество Г несовместно. Обратно, пусть множество Г несовместно. Допустим, однако, что всякое конечное его подмножество выполнимо. Тогда по теореме 2.29 множество Г также выполнимо. Полученное противоречие показывает, что существует конечное несовместное подмножество множества Г. ■ 68 
Обычным занятием для математиков является установление того факта, что некоторое утверждение вытекает или, как говорят, логически следует из аксиом. Одной из задач математической логики является уточнение понятия логического следования. Интуитивно, тот факт, что утверждение А логически вытекает из утверждений Ло, . ..,ЛП, обычно понимается так, что утверждение А истинно всегда, когда истинны утверждения Ло, ..., Ап. В логике высказываний это понятие уточняется следующим образом: говорят, что пропозициональная формула Л логически следует из множества пропозициональных формул Г, и пишут Г |= Л, если g(A) = 1 для любой оценки д, при которой все формулы из Г принимают значение 1. Если Г = {Ло, ..., Лп}, то вместо Г |= Л иногда пишут Ло, ..., Ап |—А. Если Г \= Л, то говорят, что Л является логическим следствием из Г. Пример 2.28. Формула Р V Q логически следует из множества {й D Р, Р V Q} так как формулы из указанного множества одновременно принимают значение 1 только на наборах 010, 101, 110, 111 значений переменных Р, Q, Р, а на всех этих наборах формула Р V Q также принимает значение 1. ■ Пример 2.29. Формула PVQ не является логическим следствием из множества {R D Р, PVQ}: обе формулы из указанного множества принимают значение 1 на наборе 100 значений переменных Р, Q, Р, однако формула RVQ на этом наборе принимает значение 0. Таким образом, {R D Р; Р V Q} R V Q. ■ Теорема 2.31. Каковы бы ни были формулы Ло, ..., Лп, Л, А0,...,Ап\=А (2.11) тогда и только тогда, когда является тавтологией формула Ао э (...(Ai-i э (Ап D Л))...). (2.12) Доказательство. Пусть имеет место (2.11). Докажем, что формула (2.12) является тавтологией. Пусть g — произвольная оценка. Очевидно, что если при этой оценке хотя бы одна из формул Ло, ..., Ап принимает значение 0, то формула (2.12) принимает значение 1. Если же при оценке g все формулы Ло, ..., Ап принимают значение 1, то в силу (2.11) g(A) — 1, и формула (2.12) принимает значение 1. Таким образом, при любой оценке д формула (2.12) принимает значение 1, т. е. является тавтологией. 69 
Пусть формула (2.12) является тавтологией. Докажем (2.11). Пусть д — такая оценка, при которой все формулы Ло, ... , Ап принимают значение 1. Так как и формула (2.12) принимает при этой оценке значение 1, то необходимо д(А) = 1. Таким образом, для любой оценки д, при которой все формулы Ло, ... , Ап принимают значение 1. имеет место д(А) = 1, что и означает (2.11). ■ Теорема 2.32. Каковы бы ни были множество формул Г и формула Л, имеет место Г |= Л, (2.13) если и только если множество Г U 'Л} несовместно. Доказательство. Пусть имеет место (2.13). Если множество Г U {-^Л} выполнимо, то существует такая оценка д, что все формулы из Г принимают значение 1 и д(~^А) = 1, т. е. д(А) = О, что невозможно в силу (2.13). Значит, множество Ги{-^Л} несовместно. Пусть множество Г U {-^Л} несовместно. Докажем, что имеет место (2.13). Пусть д — такая оценка, что все формулы из Г принимают значение 1. Тогда обязательно д{А) = 1, ибо в противном случае д(->Л) = 1, и множество Г U {-<Л} выполнимо. Значит, д(А) = 1 для любой оценки д, при которой все формулы из Г принимают значение 1, т. е. имеет место (2.13). ■ Следующая теорема называется теоремой компактности. Теорема 2.33. Пусть Г — бесконечное множество формул. Тогда для любой формулы А имеет место Г |= Л, если и только если Д |—А для некоторого конечного подмножества Д С Г. Доказательство. Очевидно, что если Д |= Л для некоторого подмножества Д С Г, то Г |= Л. Докажем обратное: если Г |= Л, то существует конечное подмножество Д С Г, для которого имеет место Д |= Л. Пусть Г |= Л. Тогда в силу теоремы 2.32 множество Г U {-^Л} несовместно. По теореме 2.30 существует конечное несовместное подмножество Д7 С Г U {—«Л}. Положим Д = Д7 \ {—'Л}. Тогда множество Д конечно, Д С Г, причем Д7 С Д и {—>Л}, следовательно, множество Д U {—>Л} несовместно, и по теореме 2.30 имеет место Д |= Л, что и требовалось доказать. ■ 
Глава 3 ИСЧИСЛЕНИЕ ВЫСКАЗЫВАНИЙ Путем построения истинностной таблицы нетрудно проверить, является ли данная формула тавтологией. Однако представляет интерес и другой способ описания тавтологий — с помощью исчисления. 3.1. Общее понятие исчисления Исчисление, или дедуктивная система, — это способ задания множества путем указания исходных элементов (аксиом исчисления) и правил вывода. Каждое правило вывода задает способ порождения объектов, называемых заключением данного правила, но множеству объектов, называемых посылками этого правила. Наиболее часто исчисления используются для задания множеств слов в данном алфавите. Пусть Е — некоторый алфавит, т. е. конечный набор букв. Исчисление в алфавите Е задается путем указания аксиом некоторых выделенных слов в алфавите Е — и правил вывода, позволяющих из одного или нескольких слов получать новые слова. Обычно для каждого правила вывода фиксируется число посылок, к которым это правило применяется. Если это число равно п, то такое правило называется n-посылочным. Часто n-посылочные правила вывода формулируются в виде схемы Х\ X —7 у ’—-, где Xi, ... ,ХП — посылки, a Y — выражение для заключения правила. Вывод — это конечная последовательность слов w\, ..., wn в алфавите Е такая, что для каждого г = 1, ... , п слово либо является аксиомой, либо получается из предшествующих слов по одному из правил вывода. Говорят, что слово w в алфавите Е выводимо в данном исчислении, и пишут Ь гг, если существует вывод, оканчивающийся словом w. 71 
Пример 3.1. Пусть Е = {а}. Рассмотрим исчисление с един¬ ственной аксиомой аа и правилом вывода X XX (*). Применение этого правила к произвольному слову X состоит в его удвоении, т. е. построении слова XX. Следующая последовательность слов является выводом слова аааааааа: 1) аа (аксиома); 2) аааа (получено по правилу (*) из предыдущего слова); 3) аааааааа (получено по правилу (*) из предыдущего слова). Нетрудно убедиться, что в этом исчислении выводимы все слова длины 2п (п = 1, 2, ...) и только они. ■ Пример 3.2. Рассмотрим исчисление в алфавите логики высказываний, аксиомами которого являются пропозициональные переменные, а правила вывода таковы: X Х,У Х,У Х,У Х,У (-■X)’ (Х&У)’ (X V7); (X D Y) ’ (Х = У)’ Легко убедиться, что все пропозициональные формулы и только они выводимы в этом исчислении. ■ 3.2. Классическое исчисление высказываний Аксиомами классического исчисления высказываний называются пропозициональные формулы любого из следующих видов, где А, В, С — произвольные формулы: 1. А D (В Э А); 2. (Ad Б) Э ((A D (5 D С)) D (A D С))] 3. А& В D А] 4. A&Bd В- 5. A D (Б D А&J5); 6. A D А V JB; 7. J5 D А V JB; 8. (A D С) D ((В D С) D (А V В D С)); 9. (А = £) D (A D Б); 10. (А = JB) D (J3 D А); 11. (A D В) D ((£ D A) D (А = J5)); 12. (AD Б) D ((A D ->5) D -о4); 13. —1—>А D А. 72 
Выражения 1 — 13 называются схемами аксиом классического исчисления высказываний. Единственным правилом вывода классического исчисления высказываний является modus ponens (по латыни — «положительный способ»; читается «модус поненс»; сокращенно: МР) — A, A D В л л гу правило — , которое позволяет из формул А и A D В по- В лучить формулу В. В соответствии с общим определением, выводом в исчислении высказываний считается такая конечная последовательность формул Ai, ..., Ап, в которой каждая формула либо является аксиомой, либо получается по правилу МР из каких-нибудь двух предшествующих формул. Формула А выводима в исчислении высказываний, если существует вывод, оканчивающийся формулой А; в этом случае будем писать Ь А. Очевидно, что всякая аксиома выводима в исчислении высказываний. Предложение 3.1. Какова бы ни была пропозициональная формула F, формула F D F выводима в классическом исчислении высказываний. Доказательство. Пусть фиксирована формула F. Следующая последовательность есть вывод формулы F D F: 1. (F D (F D F)) D ((F D ((F D F) D F)) D (F D F)) (эта формула получается по схеме аксиом 2, когда в качестве А и С берется формула F, а в качестве В — формула (F D F)); 2. F D (F D F) (эта формула получается по схеме аксиом 1, когда в качестве А и В берется формула F); 3. (F D ((F D F) D F)) D (F D F) (эта формула получена по правилу МР из формул 1 и 2); 4. F D ((F D F) D F) (эта формула получается по схеме аксиом 1, когда в качестве А берется формула F, а в качестве В — формула (F D F)); 5. F D F (получена по правилу МР из формул 3 и 4). ■ Пусть Г — некоторое множество формул. Выводом из Г называется конечная последовательность формул Ai, ..., Ап, каждая из которых либо является аксиомой, либо принадлежит множеству Г, либо получается по правилу МР из каких-нибудь двух предшествующих формул. Говорят, что формула А выводима из Г в исчислении высказываний, и пишут Г Ь А, если существует вывод из Г, оканчивающийся формулой А. Очевидно, что всякая аксиома и всякая формула из Г выводимы из Г. Заметим, что 73 
всякий вывод в исчислении высказываний является выводом из пустого множества формул, поэтому Ь А означает то же самое, что и 0 I-А. При рассмотрении выводов из множества Г формулы, входящие в это множество, принято называть гипотезами. Пример 3.3. Следующая последовательность является выводом из множества {A D В, В D С} формулы Ad С: 1. (AD В) D ((A D (В D С)) D (A D С)) (аксиома 2); 2. A D В (гипотеза); 3. (A D (В D С)) D (A D С) (по правилу МР из формул 1 и 2); 4. (В D С) D (A D (В D С)) (аксиома 1); 5. В D С (гипотеза); 6. A D (В D С) (по правилу МР из формул 4 и 5); 7. A D С (по правилу МР из формул 3 и 6). ■ Следующее утверждение устанавливает свойство монотонности отношения выводимости К Теорема 3.1. Если Г С Д и Г Ь А, то Д Ь А. Доказательство. Пусть А\, ..., Ап — вывод формулы А из Г. Каждая из формул Ai (г = 1, ... ,п) либо является аксиомой, либо принадлежит множеству Г (а значит, и множеству Д), либо получается по правилу МР из предыдущих формул, т. е. последовательность А\, ..., Ап удовлетворяет определению вывода из множества Д. Таким образом, существует вывод формулы А из Д, т. е. Д I~А. ■ Следующее утверждение устанавливает транзитивность отношения выводимости К Теорема 3.2. Каковы бы ни были множества Г и Д и формула А, если Г Ь Л, и Д Ь В для любой формулы В Е Г, то Д Ь А. Доказательство. Пусть Ai, ...,ЛП — вывод формулы А из множества формул Г. Всюду в этом выводе заменим каждую формулу из Г на ее вывод из множества Д. Очевидно, что полученная последовательность является выводом формулы А из Д. ■ Следующая теорема устанавливает свойство компактности отношения выводимости К 74 
Теорема 3.3. Пусть Г — бесконечное множество формул, А — формула. Если Г Ь А, то существует конечное подмножество Д С Г такое, что Д Ь А. Доказательство. Пусть А\, ..., Ап -- вывод формулы А из множества Г, и Д — множество всех формул из Г, встречающихся в этом выводе. Очевидно, что последовательность А\, ... , Ап удовлетворяет определению вывода из Д. Значит, формула А выводима из конечного множества Д С Г. ■ 3.3. Теорема о дедукции и допустимые правила вывода Построение вывода формулы в исчислении высказываний является довольно трудной творческой задачей, поэтому в математической логике разработаны средства, облегчающие ее решение. Одним из них является следующая теорема о дедукции. Теорема 3.4. Если Г U {А} Ь J5, то Г Ь A D В. С помощью теоремы о дедукции задача построения вывода формулы A D В из множества Г сводится к задаче построения вывода более простой формулы В из более широкого множества Г U {А}. Доказательство. Пусть А\, ... , Ап — вывод В из Г U {А}. Индукцией по i докажем, что Г Ь A D Ai (г = 1, ..., п). Так как Ап = J5, то при г — и получим требуемое утверждение. Если г — 1, то Ai — либо аксиома, либо гипотеза из Г, либо формула А. Если Ai — аксиома или гипотеза из Г, то следующая последовательность является выводом A D Ai из Г: 1) Ai D (A D Ai) (аксиома 1); 2) Ai (аксиома или гипотеза); 3) A D Ai (получено по правилу МР из формул 1 и 2). Если же Ai совпадает с Л, то в силу предложения 3.1 Ь A D Ai и в силу теоремы 3.1 Г Ь A D Ai. Допустим, что для к < и выполнено, что Г Ь A D Ai (i = = 1, ..., к). Докажем, что Г h A D А^+\. Если А^+\ — аксиома или гипотеза из Ги{Л}, утверждение доказывается, как в случае i — 1. Пусть формула А^+1 получена по правилу МР из Ai и Aj, где г, j < /с, причем Aj = (Ai D Аь+\). По индукционному предположению 75 
T\-AdAu r\-AD(AiDAk+1). (3.1) Следующая последовательность является выводом A D Ак+1 из множества {A D А{, A D (Ai D Ак+1)} : 1) (А D Ai) э ({А D (Ai D Ак+1)) D (Ad Ак+1)) (аксиома 2); 2) Ad Ai (гипотеза); 3) (A D (Ai D Ak+i)) D (A D Ак+1) (получено по правилу МР из формул 1 и 2); A) Ad (Ai D Ак+1) (гипотеза); Ъ) A D Ак+1 (получено по правилу МР из формул 3 и 4). Таким образом, {A D А^А D (Ai D Ак+1)} \~ A D Ак+\. Отсюда и из (3.1) в силу транзитивности выводимости (теорема 3.2) вытекает Г Ь Ad Ак+\, что и требовалось. ■ Пример 3.4• Докажем, что Ь (А = В) D (В = А). В силу теоремы о дедукции достаточно доказать {А = В} Ь В = А. Построим соответствующий вывод: 1. А = В (гипотеза); 2. (А = В) D (A D В) (аксиома 9); 3. A D В (получено по правилу МР из формул 1 и 2); 4. (А = В) D (В D А) (аксиома 10); 5. В D А (получено по правилу МР из формул 1 и 4); 6. ((В D A) D ((A D В) D (В = А)) (аксиома 11); 7. (A D В) D (В = А) (получено по правилу МР из 5 и 6); 8. В = А (получено по правилу МР из формул 3 и 7). ■ Теорема о дедукции позволяет доказывать выводимость формул без построения вывода. Ее можно сформулировать в виде до- , TU{4}hS л пустимого правила вывода: у \- Ав В ‘ ^мысл его такои: если верно утверждение в посылке правила, то верно и утверждение в заключении. Следующая теорема дает многочисленные примеры допустимых правил. Теорема 3.5. В исчислении высказываний допустимы следующие правила вывода: . ГЬВ Г\-А&В ГЬЛ&В * и&) ТГЖв~: <& _>) гьУ ' ТУв-’ ГЬЛ Г \-В * ^ ГЬ AW В' Г b A VB’ ГЦ{Л}ЬС ГЦ {B}hC * 1 J ru{ivs}hc 76 
Ги{Л}Ь£ ГЬЛ ГЬ АэВ ГЬ A DB Г Ь В ’ rhADB П-BdA ГhA=B ’ Г \~А = В Г \~ А = В Г b A d В’ ГЬВэЛ’ Ги{А}ЬВ Ги{А}Ь^В Г I—'Л ’ Ги{->Л}1-Я Ги{^4}Ь^В гь л ' Правила вида (—> X), где X Е {&, V, D, =}, называют правилами введения, а правила вида (X ->) —- правилами удаления связки X. Доказательство. Докажем допустимость (—» &). Пусть Г Ь А; Г Ь В. (3.2) Следующая последовательность является выводом Ah В из множества гипотез {АД}: 1) A D (В D Ah В) (аксиома 5); 2) А (гипотеза); 3) В D Ah В (получено по правилу МР из 1 и 2); 4) В (гипотеза); 5) A h В (получено по правилу МР из 3 и 4). Таким образом, {АД} Ь Ah В. Отсюда и из (3.2) в силу транзитивности отношения Ь (см. теорему 3.2) вытекает Г Ь Ah В. Докажем допустимость правила (h —Д Пусть ГЬЛ&В. (3.3) Следующая последовательность является выводом формулы А из множества гипотез {Ah В}: 1) Ah В D А (аксиома 3); 2) Ah В (гипотеза); 3) А (получено по правилу МР из формул 1 и 2). Таким образом, {Ah В} Ь А. Отсюда и из (3.3) в силу транзитивности отношения Ь вытекает Г Ь А. Аналогично доказывается, что при условии (3.3) Г h В. Допустимость правила (-> V) доказывается с помощью аксиом б и 7. Допустимость правила (V —>) доказывается с помощью • (-о) • Н=) • (=->) • ид • Е -О 77 
аксиомы 8. Правило (—ю) — это доказанная нами теорема о дедукции. Правило (D—>) есть modus ponens. Допустимость правил (—»=) и (=—>) доказывается с использованием аксиом 9— 11. Допустимость правила (—» -Д доказывается с помощью аксиомы 3.2. Допустимость правила (->—») доказывается с помощью правила (—» -i) и аксиомы 13. ■ Определение 3.1. Множество формул Г называют противоречивым, если существует такая формула В. что Г Ь В и Г I—>В. В противном случае Г называется непротиворечивым. В силу монотонности отношения Ь очевидно, что если множество Г противоречиво, то любое более широкое множество Д Э Г также противоречиво. С другой стороны, если Г непротиворечиво, то любое подмножество Д С Г также непротиворечиво. Теорема 3.6. Множество Г противоречиво тогда и только тогда, когда каждая формула выводима из Г. Доказательство. Если каждая формула выводима из Г, то для любой формулы В имеет место Г Ь В и Г I В, так что множество Г противоречиво. Докажем обратное утверждение. Пусть Г противоречиво, т. е. для некоторой формулы В имеет место Г \~ В и Г \~ ~^В, и пусть А — произвольная формула. В силу монотонности отношения выводимости Ь имеет место Г U {-Д} Ь В и Г U {—1Д} I—'J3, откуда по правилу (-> —») получаем Г Ь А. ш Правило (—» ->) называют правилом приведения к абсурду. Его можно переформулировать так: если множество Ги{Л} противоречиво, то Г I—А. Это правило означает, что если требуется вывести формулу -Д из множества Г, то достаточно вывести противоречие из множества Г U {А}. Правило (-1 —») называют правилом доказательства от противного. Его можно переформулировать следующим образом: если множество формул Г U {-'А} противоречиво, то Г Ь А. Правило (V —Д называют правилом разбора случаев. Оно позволяет разумно распорядиться гипотезой вида А V В. А именно, если требуется вывести формулу С из множества Г U {А V J5}, то достаточно вывести С из Ги{А}, а также из Г U {В}. Пример 3.5. Докажем, что I А V В D (A D В). Дважды применяя теорему о дедукции, получаем, что достаточно доказать —>А V J5, А Ь В. В силу правила разбора случаев достаточно 78 
показать, что 1) |ДЛ, Л} Ь В и 2) {В, .4} Ь В. Утверждение 2) очевидно. Утверждение 1) получается но теореме 3.6. ■ Пример 3.6. Докажем, что Ь ДЛ I) --Б) D (В D Л). Дважды применяя теорему о дедукции, получаем, что достаточно доказать {ДЛ D —>, ,8} Ь Л. В силу правила доказательства от противного для этого достаточно показать, что множество ДЛ D -nJ5, J5, -пЛ} противоречиво, но это очевидно. ■ Пример 3.7. Докажем выводимость формулы Л V -Д, выражающей закон исключенного третьего. В силу правила Д —>) достаточно показать, что множество {—'(ЛУ—'Л)} противоречиво. Покажем, что 1) —'(Л V~1Л) Ь Л и 2) -ДЛу-Д I—«Л. Для доказательства 1) в силу правила (Д —Д достаточно установить противоречивость множества {-ДЛ V -«Л), -^Л}, что очевидно, так как из него выводится гипотеза -ДЛ V —<Л), а из гипотезы -iЛ по правилу Д V) выводится Л V —1Л. Для доказательства 2) в силу правила (—» Д достаточно установить противоречивость множества {—|(Л V -пЛ), Л}, что очевидно, ибо из него выводится гипотеза —'(ЛV“1 Л), а из гипотезы Л по правилу (Д V) выводится Л\/->Л. ■ 3.4. Корректность и полнота исчисления высказываний Важность рассмотрения и изучения классического исчисления высказываний обусловлена следующей теоремой о корректности. Теорема 3.7. Если Ь Л, то А является тавтологией. Доказательство. Очевидно, что каждая аксиома является тавтологией. Очевидно также, что если формула получена но правилу МР из двух тавтологий, то она тоже является тавтологией. Таким образом, все формулы в выводе формулы Л оказываются тавтологиями, в том числе и последняя формула, т. е. Л. ■ Имеет место следующая обобщенная теорема о корректности. Теорема 3.8. Если Г Ь Л, то Г Д Л. Доказательство. Пусть Г Ь Л. По теореме 3.3 существует конечное Д = {Лi, ... , Ап} такое, что Д С Г и A h Л. Применяя 79 
п раз теорему о дедукции, получаем b А\ D (... D (Лп D А)...). По теореме 3.7 формула Л1 D (... D (Лп D Л)...) является тавтологией. Докажем, что Г |—А. Пусть д — такая оценка, при которой все формулы из Г принимают значение 1. В частности, g(Ai) = 1 (г = 1, ..., п). Так как А\ D (... d (Лп D Л)...) — тавтология, то д(А\ D (... D (Лп D Л)...)) = 1. Отсюда получаем д(А) = 1, что и требовалось доказать. ■ Теорема о корректности означает, что построение вывода является одним из способов установить общезначимость формулы. На самом деле этот способ является универсальным: для любой тавтологии можно построить ее вывод в классическом исчислении высказываний. Для доказательства этого факта необходимо проделать некоторую подготовительную работу. Множество формул Г будем называть максимальным непротиворечивым, если 1) Г непротиворечиво и 2) всякое собственное расширение множества Г противоречиво. Предложение 3.2. Пусть Г — максимальное непротиворечивое множество формул. Тогда для всякой формулы А выполняется ровно одно из условий A G Г и (ДЛ) G Г. Доказательство. Тот факт, что для формулы Л не могут выполняться оба условия Л G Г и (~>Л) G Г, следует из непротиворечивости Г. Докажем, что одно из этих условий обязательно выполняется. Пусть для некоторой формулы Л имеет место Л 0 Г и (->Л) ^ Г. Тогда оба множества Г U {Л} и Г U {—<Л} противоречивы как собственные расширения Г. В силу правил приведения к абсурду и доказательства от противного получаем Г I—\А и Г h Л, что невозможно, так как Г непротиворечиво по условию. ■ Следствие 3.1. Каковы бы ни были максимальное непротиворечивое множество формул Д и формула Л, А \~ А А Е А. Доказательство. Пусть Д — максимальное непротиворечивое множество и Д h Л. Допустим, что Л ^ Д. Тогда в силу предложения 3.2 (“>Л) G Д и Д I «Л, что невозможно, так как Д непротиворечиво. Значит, Л G Д. ■ Предложение 3.3. Для любого непротиворечивого множества формул Г существует такое максимальное непротиворечивое множество Д, что Г С Д. 80 
Доказательство. Пусть Г — непротиворечивое множество формул. Пусть Ао, Ai, А2, ..., Ап, ... — какой-либо пересчет всех пропозициональных формул. Для каждого натурального и индуктивно определим множество формул Ап. Положим До — Г. Если множество Ai уже определено, пусть I Ai U {АД, если А{ U {АД непротиворечиво; 1 = < Л I Ai в противном случае. Множество До непротиворечиво но условию. Очевидно также, что если множество Ai непротиворечиво, то непротиворечиво и множество Дг+ъ Значит, все множества Ai непротиворечи- оо вы. Положим Д = |J Ai. Таким образом, 2—0 Г = Д0СД1С...СДгС дг+1 с ... с Д, так что условие Г С Д выполнено. Докажем, что множество Д непротиворечиво. Допустим, что существует такая формула А, что Д h А и Д h -чА. В силу компактности отношения выводимости (см. теорему 3.3) существуют такие конечные множества Д7 С Д и Д" С Д, что Д7 Ь А и Д" Ь ->А. Очевидно, что A' U А" С Ai для некоторого г. Тогда в силу монотонности отношения выводимости (см. теорему 3.1) получаем Ai Ь А и ДД -1А вопреки непротиворечивости Д+ Значит, Д непротиворечиво. Пусть А ^ Д. Заметим, что А совпадает с Ai для некоторого г. Таким образом, Ai ^ Д, следовательно, Ai £ Дг+ъ Как видно из определения множества Дг+i, это означает, что множество Ai U {АД противоречиво, а тогда противоречиво и Д U {А}. Таким образом, Д — максимальное непротиворечивое расширение непротиворечивого множества Г. ■ Предложение 3.4. Каждое максимальное непротиворечивое множество пропозициональных формул А выполнимо. Доказательство. Пусть Д — максимальное непротиворечивое множество формул. Оценку g определим следующим образом: 9(Рг) = 1, если Pi G Д, 0, если Pi £ А. Докажем, что для любой формулы А выполняется условие g(A) = 1 4+ A G Д. (3.4) 81 
Индукция по построению формулы А. Если А = Pi, то (3.4) выполнено по определению оценки д. Пусть А = (-iB), причем Докажем (3.4). Пусть д(А) = 1. Тогда д(В) = 0, и в силу (3.5) В £ Д. Тогда A G Д по предложению 3.2. Обратно, если 4 G Д, то В £ А в силу непротиворечивости Д. А тогда в силу (3.5) д(В) = 0 и д(А) = 1. Пусть Л = (В&(7), причем выполняются условия (3.5) и Докажем (3.4). Пусть д(А) = 1. Тогда д(В) = 1 и д(С) = 1, и в силу (3.5) и (3.6) В Е А и С Е А. По правилу (—» &) имеем Д I- Л и далее A G Д по следствию 3.1. Обратно, если A G Д, то по правилу (& —>) имеем ДЬВиДЬС, а тогда В Е А и С Е А по следствию 3.1. Теперь в силу (3.5) и (3.6) получаем д(В) — 1 и д(С) = 1, значит, д(А) = 1. Пусть Л = (В V (7), причем выполнены условия (3.5) и (3.6). Докажем (3.4). Пусть д(А) = 1. Тогда д(В) = 1 или д(С) = 1, и в силу (3.5) и (3.6) В Е А или С Е А. По правилу (—» V) в обоих случаях Д Ь Л и далее Л G Д по следствию 3.1. Обратно, если A G Д, то В G Д или С Е Д, так как в противном случае (-■В) G Д и (-iC) G Д, а тогда Д содержит формулы В У С, ->В, ->(7, из которых легко вывести противоречие. В силу (3.5) и (3.6) д(В) = 1 или g(C) = 1, значит, д(А) = 1. Пусть Л = (Б D (7), причем выполнены условия (3.5) и (3.6). Докажем (3.4). Пусть д(А) = 1. Тогда д(В) = 0 или g((7) = 1, и в силу (3.5) и (3.6) В ^ Д и (-iB) Е А или С Е А. По правилу (—> V) в обоих случаях Д I <В V (7. Тогда (-iB V С) Е А в силу следствия 3.1. Ранее было доказано (см. пример 3.5), что формула -iB V С D (В D С) выводима в исчислении высказываний. Значит, Д Ь В D С, т. е. Д h Ли Л G Д. Обратно, пусть А Е А. Докажем, что д(А) = 1. Допустим, что д(А) = 0. Тогда д(В) = 1 и д((7) = 0. В силу (3.5) и (3.6) В G Д и С 0 Д, т. е. (~i(7) G Д. Таким образом, {В D (7, В, -iC} С Д, и Д противоречиво. Значит, 5(A) = 1. Рассмотрение случая, когда Л = (В = (7), является несложным упражнением. Таким образом, g(A) = 1 для любой формулы А из Д, т. е. д — выполняющая оценка для Д. ■ д(В) = 1<^>BG Д. (3.5) д(С) = 1 «СеД. (3.6) 82 
Теорема 3.9. Всякое непротиворечивое множество пропозициональных формул выполнимо. Доказательство. Пусть Г непротиворечивое множество формул. В силу предложения 3.3 существует максимальное непротиворечивое множество Л такое, что Г С Д. В силу предложения 3.4 множество Д выполнимо, т. е. существует оценка д. при которой все формулы из Д, в частности, все формулы из Г, принимают значение 1. Значит, множество Г также выполнимо. ■ Следующая теорема называется обобщенной теоремой о полноте классического исчисления высказываний. Теорема 3.10. Каковы бы ни были множество пропозициональных формул Г и формула А, если Г |= А, то Г Ь А. Доказательство. Пусть Г |= А. В силу теоремы 2.32 множество Г U {-I.А} несовместно, и из теоремы 3.9 следует, что оно противоречиво* Но тогда в силу правила (-< —») имеем Г Ь А. ■ Следующая теорема называется теоремой о полноте классического исчисления высказываний. Теорема 3.11. Всякая тавтология выводима в классическом исчислении высказываний. Доказательство. Пусть А — тавтология. Тогда множество {~'А} несовместно и в силу теоремы 3.9 противоречиво. Но тогда в силу правила доказательства от противного Ь А. ■ Теоремы о корректности и полноте классического исчисления высказываний (см. теоремы 3.7 и 3.11) дают следующее утверждение. Теорема 3.12. В классическом исчислении высказываний выводимы все тавтологии и только они. Теорема 3.11 означает, что для любой тавтологии можно построить ее вывод в исчислении высказываний, однако приведенное доказательство этой теоремы не дает никакого рецепта для реального построения вывода. Поэтому рассмотрим другое доказательство. Но сначала докажем два вспомогательных утверждения. Лемма 3.1. Каковы бы ни были формулы В и С, имеют место следующие выводимости: 83 
I) {В} I '-<5; £) {-i-B} I—<(B&zC); 3) {-C} h -.(BkC); Ц ЬВ, ^}h.(BvC); 5) {-.B} h В D C: (?) {С} b В D C; 7) {B, -*C} b -i(B D C); 5) {£, C} b В = C; P) {->.6, -C} \- B = C; 10) {B, -nC} b ~>(B = cy II) ЬВ, C}\-^(B = C). Доказательство. Утверждения 1) —11) легко доказываются с помощью подходящих допустимых правил вывода. ■ Напомним, что через А1 обозначается формула А, если ос 1. и ->А, если а = 0. Лемма 3.2. Пусть формула А содержит только переменные из списка Р\, ... ,Рп, и пусть ос — значение формулы А на наборе oil, • • • ,осп £ {0,1} значений этих переменных. Тогда {Р?1, (3.7) Доказательство. Индукция по построению формулы А. Если А есть переменная Pi (г = 1, ...,п), то а — о^, а Аа совпадает с Р“г, так что утверждение (3.7) очевидно. Пусть А = (-iP), причем Ц?1, ...,*£»} hB0, (3.8) где р — значение В на наборе ai, ... , an значений переменных Pi, . ..,РП. Если р = 1, то Р^ = Р, a = 0, Ла = —<Р, и (3.7) следует из (3.8) и утверждения 1) из леммы 3.1 в силу транзитивности отношения выводимости К Если же р = 0, то Р^ = -iP, a = 1, Аа = —«Р, так что (3.7) следует из (3.8). Пусть А = (Р&С), причем выполнены условия (3.8) и {Д1, ...,РЬ}УС\ (3.9) где у — значение формулы С на наборе ai, ..., an значений переменных Pi, ...,РП. Если р = у = 1, то a = 1, и (3.7) следует из (3.8) и (3.9) в силу правила (—» &). Если же р = 0 или у = 0, то (3.7) следует из (3.8) и (3.9) и утверждений 2) и 3) 84 
из леммы 3.1 в силу монотонности и транзитивности отношения выводимости К Случаи, когда А имеет вид (В V С), (В D С) или (В = С), причем выполнены условия (3.8) и (3.9), рассматриваются аналогично. ■ Теперь мы готовы дать новое доказательство теоремы 3.11 о полноте исчисления высказываний. Другое доказательство теоремы о полноте. Пусть тавтология А содержит только переменные Pi, ...,РП. В силу леммы 3.2, каков бы ни был набор ai, . ..,an £ {0,1} значений этих переменных, имеет место выводимость {Д011, Ь А (3.10) В частности, для значений ai, .... a„ 1 переменных Pi, ..., Pn-l {РГ, ..., Р“Л1, Рп) Л;, {Piai, ..., P^I1, -Pn} Ь Л. Отсюда в силу правила разбора случаев получаем Так как формула Рп V -*Рп выводима в исчислении высказываний (см. пример' 3.7), то в силу свойства транзитивности отношения выводимости Ь получаем, что имеет место выводимость {Р^1, Ь А, каковы бы ни были значения ai, ..., 0Ln-1 переменных Pi, ..., Pn_i. Таким образом, мы исключили из (3.10) гипотезу Р^п. Рассуждая подобным образом, можно исключить все остальные гипотезы и получить Ь А. ■ 3.5. Секвенциальное исчисление высказываний На практике выводимость формул обычно доказывают с помощью допустимых правил вывода. Использование допустимых правил по существу означает, что мы имеем дело не с формулами, а с утверждениями о выводимости формул из множеств формул. Этот факт приводит к идее построения исчисления, в котором будут выводиться именно утверждения о выводимости. 85 
В общем случае секвенция — это выражение вида Г h Д, где Г и Д списки формул (каждый из которых может быть пустым). Известны различные секвенциальные исчисления, формализующие классическую логику высказываний в том смысле, что секвенция А\, ... , Аш h Бх, ... , Вп выводима тогда и только тогда, когда формула А\ & ... h Ат D В\ V ... V Вп является тавтологией. Мы рассмотрим один вариант секвенциального исчисления высказываний, наиболее близкий к приведенной выше системе допустимых правил вывода. В этом варианте рассматриваются только такие секвенции Г Ь Д, где список Д содержит не более одной формулы. Секвенцией называется всякое выражение одного из следующих трех видов: 1) Ах, ..., Ап Ь Б; 2) Ь Б; 3) Ах, ..., Ап Ь, где Ах, ..., Ап, В — произвольные пропозициональные формулы. Секвенциальное исчисление высказываний задается схемой аксиом А Ь А, где А — произвольная формула, и следующими правилами вывода, где Г,Г1,Г2,Гз — конечные (возможно, пустые) последовательности формул, A, Б, С — произвольные формулы: 1 Гх Ь А Г2ЬВ 2. 3. 4. 5. 7. ГЬГ2 ь А&В ГЬ А&В (введение &); ГЬ А ГЬ АкВ Г Ь В ГЬ А Г Ь А V Б ГЬ Б Г Ь А V Б Г1 Ь А У В (удаление &); (удаление &); (введение V); (введение V); г2,аьс г3,бьс Гьг2,г3ьс (удаление V); Г, А Ь Б 10. Г Ь -пА Ti Ь А (введение D); (удаление D); (введение -■); ГЬ A D Б Гг Ь А Г2 Ь A d Б ГьГ2ЬБ Г, А Ь Г2 I—IА Гьг2ь (сведение к противоречию); 86 
11. 12. 13. 17. 18. Г,-ЛЬ ГЬ А Г! Ь A D В (удаление -»); Г2 Ь В D Л ГьГ2Ь Л = Б Г Ь Л = Б (введение =); 14. 15. 16. ГЬ Л D В ГЬ Л = Б (удаление =) (удаление =) Г Ь Б D Л ГЬ / ч YJTJ (утончение); ГЬ Л Г, Б ЬЛ ГьЛ,Б,Г2ЬС ГьВ,Л,Г2ЬС г, л, л ь с (расширение); (перестановка); Г, Л ьс (сокращение). Выводом в секвенциальном исчислении называется конечная последовательность секвенций, каждая из которых либо есть аксиома, либо получается из предыдущих по одному из правил вывода. Секвенция называется выводимой, если существует вывод, который оканчивается этой секвенцией. Пример 3.8. Ранее была доказана выводимость в исчислении высказываний формулы Л V -Л (см. пример 3.7). Приведенные там рассуждения можно оформить в виде вывода в секвенциальном исчислении секвенции Ь Л V -Л. Вот этот вывод. 1) “’(Л V ~'Л) I—I(Л V ~'Л) (аксиома); 2) -Л I—Л (аксиома); 3) ~~Л Ь Л V ~~Л (получено из 2) по правилу введения V); 4) -Л, -|(Л V -Л) Ь (получено из 3) и 1) по правилу сведения к противоречию); 5) —1(Л V —'Л), ~~Л Ь (получено из 4) по правилу перестановки); 6) -|(Л V -Л) Ь Л (получено из 5) по правилу удаления -ф 7) Л Ь Л (аксиома); 8) Л Ь Л V -Л (получено из 7) по правилу введения V); 9) Л, ~'(Л V -Л) Ь (получено из 8) и 1) по правилу сведения к противоречию); 10) “'(Л V -Л), Л Ь (получено из 9) по правилу перестановки); 11) -1(Л V -Л) I—'Л (получено из 10) по правилу введения -ф 87 
12) -п(Л V -iA), ->(Л V ~^А) Ь (получено из 6) и 11) по правилу сведения к противоречию); 13) ->(Л V -1 А) Ь (получено из 12) по правилу сокращения); 14) I- А У ~^А (получено из 13) по правилу удаления -i). ■ Следующая теорема означает корректность секвенциального исчисления высказываний. Теорема 3.13. 1) Если секвенция А\, ... ,Ап Ь В выводима в секвенциальном исчислении, то в классическом исчислении высказываний имеет место выводимость {А\, ...,Ап} Ь В. 2) Если секвенция А\, ..., Ап Ь выводима в секвенциальном исчислении, то множество {А\, ... ,Ап} противоречиво. 3) Если секвенция Ь В выводима в секвенциальном исчислении, то формула В выводима в классическом исчислении высказываний. Доказательство. Теорема доказывается индукцией по длине вывода секвенции в исчислении высказываний с учетом того очевидного факта, что аксиомы суть верные утверждения о выводимости в классическом исчислении высказываний, а каждое правило вывода из верных утверждений о выводимости в классическом исчислении высказываний позволяет получить верное же утверждение, если при этом секвенцию А\, ...,Ап Ь трактовать как утверждение о противоречивости множества {А\, ..., Ап}. ■ Многочисленные примеры выводов в секвенциальном исчислении представлены в доказательстве следующей теоремы о полноте секвенциального исчисления. Теорема 3.14. Если формула А выводима в классическом исчислении высказываний, то секвенция Ь А выводима в секвенциальном исчислении. Доказательство. Докажем, что все аксиомы исчисления высказываний выводимы в секвенциальном исчислении, а правило МР сохраняет выводимость в этом исчислении. Пусть аксиома получена но схеме 1, т. е. имеет вид A D (В D А). Приведем вывод секвенции Р A Z) (В э А): 1) А I- А (аксиома); 2) А, В Р А (получено из 1) по правилу расширения); 3) А Р В D А (получено из 2) по правилу введения d); 88 
4) b A D (B D А) (получено из 2) по правилу введения d). Пусть аксиома получена по схеме 2, т. е. имеет вид (Ad В) d ((A d (В d С)) d (Ad С)). Вот вывод секвенции b (A D В) D ((A D (В D С)) D (A D С)): 1) А Ь А (аксиома); 2) A D В \~ A D В (аксиома); 3) A, A D В Ь В (получено из 1) и 2) по правилу удаления d); 4) A D (В D С) h A D (В D С) (аксиома); 5) A, A D (В D С) h В D С (получено из 1) и 4) по правилу удаления D); 6) A, A D В, A, A D (В D С) Ь С (получено из 3) и 5) но правилу удаления D); 7) A D J5, A, A, A D (В D С) h С (получено из 6) по правилу перестановки); 8) A D В) A, A D (В D С) h С (получено из 7) по правилу сокращения); 9) A D В, A D (В D С), A h С (получено из 8) по правилу перестановки); 10) A D В, A D (В D С) h A D С (получено из 9) по правилу введения d); 11) A D В b (A D (В D С)) D (A D С) (получено из 10) по правилу введения d); 12) b (A D В) D ((Л D (В D С)) D (Ad С)) (получено из 11) по правилу введения d). Пусть аксиома получена по схеме 3, т. е. имеет вид Ah В D А. Приведем вывод секвенции b Ah В D А: 1) Ah В \~ Ah В (аксиома); 2) Ah В Ь А (получено из 1) по правилу удаления &); 3) Ь Ah В D А (получено из 2) по правилу введения D). Пусть аксиома получена по схеме 4, т. е. имеет вид AhB D В. Вывод секвенции \- Ah В D В строится, как и в случае предыдущей аксиомы. Пусть аксиома получена по схеме 5, т. е. имеет вид Ad (В D AhB). 89 
Вот вывод секвенции Ь A D (Б D Ah В): 1) А I- А (аксиома); 2) В Ь В (аксиома); 3) Д В h Ah В (получено из 1) и 2) по правилу введения &;); 4) А \~ В Z> Ah В (получено из 3) по правилу введения d); 5) h A D (В D Ah В) (получено из 4) по правилу введения D). Пусть аксиома получена по схеме 6, т. е. имеет вид AZ) АУ В. Вот вывод секвенции Ь A D А У В: 1) А \- А (аксиома); 2) А\~ А У В (получено из 1) по правилу введения V); 3) Ь A Z) А У В (получено из 2) по правилу введения D). Пусть аксиома получена по схеме 7, т. е. имеет вид В D А У В. Вывод секвенции Ь В D А У В строится, как и в случае предыдущей аксиомы. Пусть аксиома получена по схеме 8, т. е. имеет вид (A D С) D ((В D С) D (А У В Э С)). Вот вывод секвенции Ь (A D С) D ((В D С) D (А У В D С)): 1) А У В h АУ В (аксиома); 2) А Ь А (аксиома); 3) AdC\-Az>C (аксиома); 4) A, A D С h С (получено из 2) и 3) по правилу удаления d); 5) A Z) С,А\- С (получено из 4) по правилу перестановки); 6) В Ь В (аксиома); 7) Bz>C\~BZ)C (аксиома); 8) В, В D С \~ С (получено из 6) и 7) по правилу удаления D); 9) В D С, В h С (получено из 8) но правилу перестановки); 10) А У В Ь А У В (аксиома); 11) А У В, A D (7, В D С \~ С (получено из 1), 5) и 9) по правилу удаления V); 12) A d С, А У В, В D С \~ С (получено из 11) по правилу перестановки); 13) A D С, Б D С, Л V Б h С (получено из 12) по правилу перестановки); 90 
14) Ad C, BdC\~A\/BdC (получено из 13) по правилу введения D); 15) A D С \~ (В D С) D (А V В D С) (получено из 14) по правилу введения D); 16) 1— (A D С) D ((J5 D С) D (Л V J5 D С)) (получено из 16) по правилу введения D). Пусть аксиома получена по схеме 9. т. е. имеет вид (А = В) d(AdB). Вот вывод секвенции \~ (А = В) D (A D В): 1) А = В\~А = В ^аксиома); 2) A = B\~AdB (получено из 1) по правилу удаления =); 3) h (А = В) D (A D В) (получено из 2) по правилу введения d). Пусть аксиома получена по схеме 10, т. е. имеет вид (А = В) D (BdA). Вывод секвенции \~ (А = В) D (В D А) строится, как и в случае предыдущей аксиомы. Пусть аксиома получена по схеме 11, т. е. имеет вид ((AD В) D ((В D A) D (А = В)). Вот вывод секвенции b ((A D В) D ((В D A) D (А = В)): 1) AdB\~AdB (аксиома); 2) BdA\~BdA (аксиома); 3) Ad В, В D А \~ А = В (получено из 1) и 2) по правилу введения =); 4) A D В h (В D A) D (А = В) (получено из 3) по правилу введения D); 5) h (A D В) D ((В D A) D (А = В)) (получено из 4) по правилу введения D). Пусть аксиома получена по схеме 12, т. е. имеет вид (A D В) D ({A D -пВ) D -уА). Вот вывод секвенции \~ (A D В) D ((A D -В) D -уА): 1) А \~ А (аксиома); 2) AdB\~AdB (аксиома); 3) Л, A D В Ь В (получено из 1) и 2) по правилу удаления d); A) Ad -*В 1-Ad В (аксиома); 91 
5) Л, Л D -1В I <Б (получено из 1) и 4) по правилу удале¬ ния D); 6) Д4 D D ~^В h (получено из 3) и 5) по правилу сведения к противоречию); 7) A D Б, Л, Л, A D -*В I- (получено из 6) по правилу перестановки); 8) A D Б, Л, A D -\В h (получено из 7) по правилу сокращения); 9) Л D Б, Л D -iJ3, Л h (получено из 8) по правилу перестановки); 10) Л D Б, Л D ->Б I >Л (получено из 9) по правилу введе¬ ния -i); 11) А D Б h (A D -пБ) D -Л (получено из 10) по правилу введения D); 12) b (A D В) D ((Л D -^Б) D ->Л) (получено из 11) по правилу введения D). Пусть аксиома получена по схеме 13, т. е. имеет вид -н-Л D Л. Вот вывод секвенции I <—«Л D Л: 1) -1-1Л I—i-iЛ (аксиома); 2) -пЛ I <Л (аксиома); 3) —>Л, -i-iЛ h (получено из 1) и 2) по правилу сведения к противоречию); 4) -i-iЛ, —Л Ь (получено из 3) по правилу перестановки); 5) -i-iЛ Ь Л (получено из 4) по правилу удаления -■); 6) I i-i Л D Л (получено из 5) по правилу введения D). Докажем, что если формула Б получена по правилу modus ponens из формул Л и Л D Б, причем секвенции Ь Л и Ь Л D Б выводимы в секвенциальном исчислении, то секвенция Ь Б выводима в этом исчислении. Для этого запишем друг за другом выводы секвенций ЬЛиЬЛэБи продолжим полученный вывод до вывода секвенции Ь Б: i) I- А; j) Ь Аэ В- j-fl) I- Б (получено из i) и j) по правилу удаления D). ■ 
Глава 4 ЛОГИКА ПРЕДИКАТОВ В логике высказываний учитываемся лишь логическая структура высказываний: как одни высказывания получены из других более простых высказываний с помощью таких логических операций, как конъюнкция, дизъюнкция, импликация, эквива- ленция, отрицание. В логике предикатов делается дальнейший шаг анализа высказываний, учитывающий структуру простых высказываний. 4.1. Высказывательные формы и кванторы Не всякое повествовательное предложение может рассматриваться как высказывание. Например, нельзя ставить вопрос об истинности или ложности предложения «Остаток от деления числа п на 7 равен 3». Буква п, входящая в это предложение, играет роль переменной, при подстановке вместо которой обозначения какого-либо натурального числа получается высказывание. Вообще, переменная — это языковое выражение, служащее для обозначения произвольного объекта из некоторого фиксированного множества, называемого областью возможных значений переменной. Часто для переменных употребляют специальные названия, указывающие область возможных значений. Так, если область возможных значений переменной есть N, Z, Q, то такую переменную называют соответственно натуральной, целой, рациональной. Если переменная употребляется так, что допускается подстановка вместо нее имен объектов из области возможных значений, то эта переменная называется свободной. Таковы, например, переменные х, у и 2 в предложениях x<ynz — х-\-1. Если же но смыслу выражения, содержащего переменную, подстановка вместо нее имен конкретных объектов недопустима, то эта переменная называется связанной. Например, в выражении 93 
lim x2 = у переменная х является связанной, а переменные а X—У (2 и у — свободными. В одном выражении одна и та же переменная может употребляться и как свободная, и как связанная. На- х пример, в выражении x2dx оба вхождения х в подынтеграль- о ное выражение являются связанными, а вхождение в качестве верхнего предела интегрирования — свободным. Вообще, следует говорить о свободных и связанных вхождениях переменной в данное выражение. Выражение, содержащее свободные переменные и превращающееся в имя некоторого объекта, когда вместо свободных вхождений каждой переменной подставляется имя какого-либо объекта из области ее возможных значений, называется именной х формой. Например, выражения х2 + 1, \х х dx, где х -- дей- о ствительная переменная, являются именными формами. Выражение, содержащее свободные переменные и превращающееся в высказывание, когда вместо свободных вхождений каждой переменной подставляется имя какого-либо объекта из области ее возможных значений, называется высказывательной формой. Например, выражения х < у, z = х + 1, х = |х|, где x,y,z — действительные переменные, суть высказывательные формы. Переменные, имеющие свободные вхождения в именную или высказывательную форму, называются ее параметрами. Такую форму будем называть n-местной, если она содержит и параметров. Можно говорить и о 0-местных именных и высказыватель- ных формах, понимая под ними имена и высказывания. Часто для /с-местной именной или высказывательной формы употребляют обозначение F(xi, . ..,од), указывая все ее параметры. Тогда, если од, ..., од — имена объектов из областей возможных значений переменных ад, ..., ад, то через F(ai, ..., од) обозначается выражение, полученное из F(x 1,...,од) подстановкой ai, ...,од вместо свободных вхождений переменных од, ..., од. Пример 4-1-Fcjm F(x,y) — именная форма 6 yx2dx, то F(3,6) есть выражение бx2dx, являющееся именем числа 378. 94 з 
Пример 4-%- Пусть A(i,fc,Z) — высказывательная форма 1 1 Етд < lim log2 х. 7. гг—Ьг i—k Тогда А(3,7,11) есть истинное высказывание < lim log2 х. х—>-3 11 i Егг г=7 1 < Над высказывательными формами можно совершать логические операции. Абсолютно ясен смысл высказывательных форм -ь4, Ah J5, А V J5, A D В, А = В, если А и В — высказыва- тельные формы. Наряду с логическими операциями в математической логике рассматриваются кванторы, позволяющие из данной высказывательной формы получать высказывательную форму с меньшим числом параметров. Квантор всеобщности по переменной х позволяет из высказывательной формы А(х) с единственным параметром х получить высказывание «Для всех х имеет место А(х)», которое обозначается МхА{х). Высказывание \/хА(х) считается истинным тогда и только тогда, когда при подстановке в А{х) вместо свободных вхождений переменной х имени любого объекта а из области ее возможных значений получается истинное высказывание А(а). Квантор существования по х позволяет из высказывательной формы А(х) с единственным параметром х получить высказывание «Существует такой х, что А(х)», обозначаемое ЗхА(х). Высказывание Зх А(х) считается истинным тогда и только тогда, когда в области возможных значений переменной х найдется такой объект а, что при подстановке его имени в А{х) вместо свободных вхождений переменной х получается истинное высказывание А(а). В предложениях \/хА(х) и Зх А(х) переменная х не является свободной: кванторы «связывают» эту переменную. Кванторы Мх и Зх можно применять к высказывательным формам, содержащим наряду с х другие параметры. В результате получится форма, имеющая те же параметры, что и исходная, кроме х. 4.2. Понятие предиката Логический анализ высказываний сходен с грамматическим разбором сложно-сочиненных и сложно-подчиненных предложе- 95 
ний. Однако иногда нас интересует внутренняя структура простых предложений: что и о чем говорится в данном предложении. В таком случае в грамматике используются понятия субъекта и предиката. Субъект (или подлежащее) — это то, о чем или о ком говорится в предложении, а предикат (называемый также сказуемым или группой сказуемого) выражает то, что говорится о субъекте. В математической логике используется более широкая трактовка субъектно-предикатной структуры предложения. Прежде всего, в качестве субъектов данного предложения мы можем выделить одно или несколько входящих в это предложение имен объектов. Заменив выделенные имена на переменные, мы получим высказывательную форму, «в чистом виде» выражающую то, что говорится о субъекте. Эту высказывательную форму тоже называют предикатом. Например, если в высказывании «12 делится на 3», которое, используя общепринятую символику, можно записать как 12:3, выбрать в качестве субъекта число 12, получается одноместный предикат х: 3. Если же в качестве субъекта взять число 3, то получится другой одноместный предикат 12: у. Считая 12 и 3 субъектами этого предложения, получаем двухместный предикат х : у. С любым предикатом F(xi, ... ,хп) связано отображение, которое каждому набору од, ... ,an значений переменных яд, ..., хп сопоставляет высказывание Е(сд, ...,an). Обобщая это наблюдение, мы приходим к представлению о предикате как о тотальной функции, значениями которой являются высказывания. Наконец, если мы не будем различать высказывания, имеющие одно и то же истинностное значение, то придем к следующему определению. Определение 4.1. к-местным предикатом на множестве М называется произвольное отображение Р : Мк —» {0,1}. Высказывательная форма F(xi, ..., хп), где яд, ...,хп — переменные с областью возможных значений М, может рассматриваться как предикат, значение которого на наборе (од, ..., ап) эдементов М есть истинностное значение высказывания F(ai, • • • ,Оп)- Пример 4-3. Высказывательная форма х < у, где х и у — вещественные переменные, задает двухместный предикат на R, который на паре вещественных чисел (а, Ь) принимает значение 1, если число а меньше числа 6, и 0 в противном случае. ■ 96 
Пример 4-4• Для любого множества М высказывательная форма х = у, где х и у — переменные с областью возможных значений М, задает двухместный предикат равенства на М, значение которого на паре (а, 6) G М2 равно 1, если и только если а и Ъ совпадают. ■ Пусть Р есть к-местный предикат на множестве М. Совокупность всех элементов Мк, на которых Р принимает значение 1, называется областью истинности предиката Р. Имеется взаимно-однозначное соответствие между семейством всех к- местных предикатов на М и семейством всех подмножеств Мк. А именно, каждому к-местному предикату Р на М соответствует область истинности этого предиката {(ад, ...,#&) | Р(ад, ..., Xk) = 1}. С другой стороны, каждое множество А С Мк является областью истинности /с-местного предиката (ад, ... ,ад) G А, где ад, ... ,ад — переменные, областью возможных значений которых является М. Одноместные предикаты называют свойствами. Так, с каждым свойством, которым элементы данного множества М могут обладать или не обладать, естественным образом связан одноместный предикат Р : М —» {0, 1}, где для любого a G М имеет место Р(а) = 1, если а обладает данным свойством, и Р(а) = О, если а этим свойством не обладает. Область истинности двухместного предиката на М есть подмножество М2, т. е. является бинарным отношением на М, поэтому двухместные предикаты называют также бинарными отношениями, а n-местные предикаты — n-местными отношениями. Поскольку значение предиката есть истинностное значение О или 1, то обычно вместо Р(хi, ... ,xn) = 1 пишут Р(ад, ..., жп), рассматривая эту запись как высказывательную форму. В частности, если Р есть 0-местный предикат, то вместо Р — 1 будем писать Р. Это примерно соответствует ситуации, когда мы вместо «Верно, что 2x2 = 4» пишем просто «2x2 = 4». 4.3. Предикатные формулы Изучение логических связей между высказываниями, учитывающих субъектно-предикатную структуру предложений, мы будем вести с помощью формального языка логики предикатов. Алфавит этого языка содержит следующие символы: предмет¬ 91 
ные переменные: од, £2, • • •; предикатные переменные: Pf, Р^, ... (п = 0,1,2, ...); пропозициональные связки: ->,&,V,D,=; кван- торные символы: V, 3; вспомогательные символы: (,),,. Тот факт, что это бесконечный алфавит, не является существенным. Мы вполне могли бы обойтись конечным алфавитом {ж, Р, k, V, D, =, V, 3, (,),,, |}, определив предметную переменную хп как слово х | ... |, а пре- п дикатные переменные Рр, Pf, ... как слова (Р) |... |, (РР) |... |, п п Верхний индекс п у предикатной переменной PJ} называют валентностью этой переменной. Предикатные переменные валентности п называются n-местными. 0-местные предикатные переменные называются пропозициональными переменными. Условимся иногда писать х, у, z, и, v вместо ад, ад, £3, £4, £5. Предикатные формулы определяются индуктивно: 1) пропозициональная переменная - предикатная формула; 2) если Р есть n-местная предикатная переменная (n > 1), гд, ..., гп — предметные переменные, то слово Р(гд, ..., гп) считается предикатной формулой; 3) если Л — предикатная формула, то ->Л — предикатная формула; 4) если А и Р — предикатные формулы, то слова (Л&Р), (iVB), (A d Р), (Л = В) считаются предикатными формулами; 5) если Л — предикатная формула, г — предметная переменная, то слова \/v А и 3v А считаются предикатными формулами. Формулы, построенные по правилам 1 и 2, называются атомными формулами, или атомами. Слово в алфавите логики предикатов считается формулой, если и только если этот факт может быть обоснован с помощью пп. 1—5 приведенного определения. Поскольку валентность предикатной переменной однозначно определяется ее употреблением в формуле, мы будем опускать верхний индекс. Кроме того, будем иногда писать Р, Q, R вместо РиРъРг- Пример 4-5. Докажем, что слово 98 
((P(x)k3xQ(x,z)) D\/yQ(z,x)) (4.1) является предикатной формулой. Согласно п. 2 определения предикатной формулы слова Р(ж), Q(x,z) и Q(z.x) суть предикатные формулы. Согласно п. 5 3xQ(x,z) и MyQ{z,x\ предикатные формулы. Согласно п. 2 (P{x)$z3xQ(x,z)) является предикатной формулой. Наконец, согласно п. 2 слово (4.1) является предикатной формулой. ■ Индуктивное определение предикатной формулы позволяет использовать в доказательствах принцип индукции по построению формулы, а также индукцией по построению формулы задавать функции, определенные на множестве всех формул. Подобно тому, как это было сделано для пропозициональных формул, может быть доказана единственность логического анализа всякой предикатной формулы. Теорема 4.1. Всякая предикатная формула либо является атомом, либо единственным образом представима ровно в одном из видов -iA, (А & J5), (А V J5), (A d J5), (А = J5), Vr А, 3v А для некоторых формул А и В и предметной переменной у. Формулы вида Vr А и 3v А называются соответственно универсальными и экзистенциальными формулами. При этом А называется областью действия соответствующего квантора. Вхождение переменной v в формулу А называется связан- ным, если оно входит в квантор \/v или 3v или в область действия такого квантора. Вхождение переменной, не являющееся связанным, называется свободным. Формула, не содержащая свободных вхождений переменных, называется замкнутой формулой. Пример 4-6- В формуле (Уж (Р((ж) z)) D 3xR(x,x)) V Q(z,x)) подчеркнуты связанные вхождения переменной ж, причем одним и тем же числом черточек помечены каждый квантор и связанное им вхождение этой переменной; неподчеркнутые вхождения переменной ж, а также все вхождения переменной 2 свободны. ■ Иногда приходится подставлять предметную переменную вместо всех вхождений другой предметной переменной в предикатную формулу. В связи с этим примем следующее соглашение: если мы собираемся подставлять и вместо всех свободных 99 
вхождений v в формулу А, то для А будем употреблять обозначение A(v), а результат подстановки и вместо v в А будем обозначать А(и). Пример 4-7- Пусть А(х) есть формула (УхР(х) У Q(x)). Тогда А(у) есть формула (Ух Р(х) У Q(y)). ■ Практически, записывая предикатные формулы, мы иногда будем опускать некоторые скобки. В частности, обычно опускают внешние скобки. С целью дальнейшей экономии скобок примем соглашение, какие логические операции «сильнее». Для этого расположим логические символы в таком порядке: V, 3, V,D,= и будем считать, что в первую очередь выполняется та операция, которая в этом списке стоит раньше. Пример 4-8- Формула Ух(Р(х) D (3yQ(y) У (R(x) & Q(x)))) сокращенно записывается так: Ух (Р(х) D 3yQ(y)У R(x) &Q(x)), а выражение Ух Р(х) D Зу Q(y) УR(x) & Q(x) является сокращенной записью формулы (УхР(х) D (3yQ(y) У (R(x) & Q(x)))). ■ 4.4. Выполнимость и общезначимость Изучая логику высказываний, мы считали, что значениями пропозициональных переменных являются произвольные высказывания. В логике предикатов предполагается, что возможными значениями предикатных переменных являются произвольные предикаты. Но в предикатных формулах используются и предметные переменные. Вообще, n-местная предикатная переменная Р употребляется не сама по себе, а в атомах вида Р(гц, ..., гп), где щ, ..., vn — предметные переменные. Поэтому интерпретацию предикатных переменных необходимо увязать с интерпретацией предметных переменных. Это делается следующим образом: фиксируется непустое множество М, называемое предметной областью, элементы которого считаются возможными значениями предметных переменных, а возможными значениями любой (n-местной) предикатной переменной считаются (n-местные) предикаты на М. Иногда в математике разным переменным приписываются разные области возможных значений. Например, используются вещественные переменные x,y,z и целые переменные /,га,п. Однако в языке логики предикатов все переменные одного сорта, и они должны иметь одну и ту же область возможных зна¬ 100 
чений. Построение логики предикатов с двумя и более сортами предметных переменных полностью аналогично односортному случаю. Ограничение одним сортом предметных переменных не является принципиальным и принимается ради простоты изложения. Принципиальным является другое ограничение. Мы имеем два вида переменных — предметные и предикатные, но только первые позволяем связывать кванторами. Употребление кванторов VP или 3Q, где Р и Q — предикатные переменные, характерно для логики предикатов второго порядка. Мы же будем изучать логику предикатов первого порядка, или элементарную логику предикатов, где не допускаются кванторы по предикатным переменным. Определение 4.2. Пусть множество М непусто, и каждой (n-местной) предикатной переменной поставлен в соответствие (n-местный) предикат на М. В таком случае будем говорить, что задана интерпретация языка логики предикатов на М. Множество М называется предметной областью интерпретации. Предикат, сопоставляемый интерпретацией I предикатной переменной Р будем обозначать Р1. Заметим, что если Р — пропозициональная переменная то Р1 есть 0 или 1. Предикат Р1 будем называть значением предикатной переменной Р в интерпретации I. Пусть фиксирована интерпретация I на множестве М. Тогда предикатная формула А с параметрами v\, ..., vn может интерпретироваться как высказывательная форма А1 (у\, ... ,гп) с теми же параметрами, получаемая заменой в А каждой атомной подформулы вида Р(и\, ... , щ), где Р есть к-местная предикатная переменная, а щ, ...,Uk — предметные переменные, на высказывательную форму Р1 (и\, ... , щ) (или высказывание Р1 при к = 0). Очевидно, что если А замкнута, то А1 — высказывание. Определение 4.3. Оценкой на предметной области М называется всякая функция, определенная на конечном множестве предметных переменных и сопоставляющая им элементы из М. Если оценка g определена на всех свободных переменных предикатной формулы Л, будем говорить, что g — оценка формулы А. Если даны интерпретация I на предметной области М, предикатная формула А и задана оценка g этой формулы на М, 101 
можно определить истинностное значение формулы А в интерпретации I при оценке д, которое будем обозначать [A]j^g. А именно, если А — замкнутая формула, то интерпретация I сопоставляет ей высказывание А1. Для любой оценки д положим [А\цд = 1, если высказывание А1 истинно, и [А\цд = 0, если оно ложно. Таким образом, если формула А замкнута, то ее значение не зависит от оценки, поэтому вместо [А\цд пишут просто [A]j и называют это значением формулы А в интерпретации I. Если формула А не замкнута, а гд, ... , гп — все ее свободные предметные переменные, то интерпретация I сопоставляет ей высказывательную форму А7(гд, ... , гп). Положим [Л\цд = 1, если высказывание A1 (g{v 1), ... ,g{vn)) истинно, и [А\цд — 0, если оно ложно. Итак, [A]ii9 совпадает с истинностным значением высказывания ./^(^(гд), ... ,g(vn)). Очевидно, что значение формулы А в интерпретации I при оценке д зависит только от значений в I предикатных переменных, входящих в А, и от значений оценки д на предметных переменных, имеющих свободные вхождения в А. Предложение 4.1. 1) Если предикатная формула А имеет вид -iJ5, то имеет место равенство [А\цд = где значение правой части определяется таблицей для операции -i. 2) Если предикатная формула А имеет вид (J3XC), где X — одна из связок &, V, D, = , то {A\pg — [i^/^XfC]/^, г^е значение правой части определяется таблицей для логической операции X. 3) Если формула А имеет вид \/v J5, то [A]j^g = 1, если и только если [B]pg> — 1 для каждой оценки gf, отличающейся от g только значением на переменной у. 4) Если формула А имеет вид Зу В, то [Л\цд = 1, если и только если [В\цд/ = 1 для некоторой оценки </, отличающейся от д только значением на переменной у. Доказательство. Утверждения вытекают из определения значения формулы в данной интерпретации при данной оценке. ■ Определение 4.4. Говорят, что предикатная формула А истинна в интерпретации I при оценке д, если [А]/^д = 1. Если же [A\i^g = 0, говорят, что формула А ложна в интерпретации I при оценке д. Говорят, что замкнутая предикатная формула А истинна в интерпретации /, и пишут / |= А, если [A]j = 1. Если же предикатная формула А замкнута, и [A]j = 0, говорят, что формула А ложна в интерпретации I и пишут I А. 102 
Пример 4-9- Пусть М = {1,2}, и интерпретация I на М сопоставляет пропозициональной переменной Q значение О (Q1 = 0), а одноместной предикатной переменной Р — рреди- кат Р1, заданный так: Р7( 1) = 0, Р1 (2) = 1. Тогда формуле Р(у) V Vx (Р(х) D Q) сопоставляется высказывательная форма Р7(у) V Vx(P7(x) D Q7). Пусть оценка д такова, что у(у) = 1. Найдем значение формулы Р(у) У Ух (Р(х) D Q) в интерпретации / при оценке у, т. е. истинностное значение высказывания Р7( 1) V Vx(P7(x) D Q7). Рассматриваемое высказывание есть дизъюнкция, так что надо найти истинностные значения левого и правого дизъюнктивных членов. В силу задания предиката Р1 истинностное значение левого дизъюнктивного члена Р1 (1) равно 0. Найдем истинностное значение правого дизъюнктивного члена Ух(Р1(х) D Q1). По определению квантора всеобщности это значение равно 1, если и только если высказывательная форма Pr(x) D Q1 превращается в истинное высказывание при любом значении переменной х. Поскольку в М всего два элемента 1 и 2, достаточно рассмотреть высказывания Р1 {1) D Q1 и Р7(2) d Q7. Первое высказывание есть импликация, посылка и заключение которой ложны, следовательно, это высказывание истинно. Однако второе высказывание — это импликация с истинной посылкой и ложным заключением, следовательно, это высказывание ложно. Мы видим, что высказывание Ух(Р1(х) D Q1) ложно. Таким образом, в высказывании Р7( 1) V Ух(Р1(х) D Q) оба дизъюнктивных члена ложны, следовательно, [Р(у) У Ух (Р(х) D Q)]/,p = 0, т. е. рассматриваемая формула ложна в данной интерпретации при данной оценке. ■ Пример 4-Ю. Найдем значение формулы Уу(Р(у) УУх(Р(х) dQ)) в интерпретации I из примера 4.9, т. е. истинностное значение высказывания Уу (Р1 (у)УУх (Р1 (х) D Q1)). По определению, это значение равно 1, если и только если высказывательная форма Р1 (у) У Ух (Р1 (х) D Q7) превращается в истинное высказывание при любом значении у. Но в примере 4.9 установлено, что эта форма превращается в ложное высказывание, когда у принимает значение 1. Следовательно, [Уу(Р(у) У Ух(Р(х) D Q))\i =0. ■ Пример 4-11- Найдем значение формулы Зу (Р(у) v Vz (Р(х) D Q)) 103 
в интерпретации I из примера 4.9, т. е. истинностное значение высказывания Зу (Р1 (y)\ZMx (Р1 (х) D Q1))- По определению, это значение равно 1, если и только если высказывательная форма Р1 (у) V \/х (Р1 (х) D Q1) превращается в истинное высказывание при каком-нибудь значении у. В примере 4.9 мы установили, что эта высказывательная форма превращается в ложное высказывание, когда у принимает значение 1. Но если придать у значение 2, получается истинное высказывание Р1 {2) \fMx{PI{x) D Q7), поскольку истинно Р1 {2), т. е. [Зу(Р(у) УУх(Р(х) D Q))\i = 1. ■ Определение 4.5. Будем говорить, что предикатная формула А выполнима в предметной области М или является М- выполнимой, если существуют такие интерпретация / на М и оценка g, что [A]j^g = 1. Замкнутая предикатная формула А выполнима в предметной области М, если существует такая интерпретация I на множестве М, что [A\j = 1. Заметим, что формула Л(щ, ... ,нп) со свободными переменными v\, ..., vn является М-выполнимой тогда и только тогда, когда М-выполнима замкнутая формула Зщ ... 3vn A(vi, ..., пп), называемая экзистенциальным замыканием формулы А(гц, ...,пп). Пример 1^.12. Формула Р(у) УУх(Р(х) D Q) М-выполни- ма, если М = {1,2}. Действительно, как показано в примере 4.11, эта формула истинна в интерпретации I из примера 4.9 при оценке д, где д(у) = 2. ■ Определение 4.6. Предикатная формула называется выполнимой, если она М-выполнима в некоторой предметной области М. Очевидно, что предикатная формула выполнима тогда и только тогда, когда выполнимо ее экзистенциальное замыкание. Пример 1^.13. Формула Р(у) V Ух(Р(х) D Q) выполнима, поскольку в примере 4.12 показано, что она {1,2}-выполнима. ■ Определение 4.7. Формула А общезначима в предметной области М или М-общезначима, если [A\pg = 1, каковы бы ни были интерпретация I и оценка д на М. Замкнутая предикатная формула А общезначима в предметной области М, если [Ajj = 1, какова бы ни была интерпретация / на М. Заметим, что предикатная формула A(vi, ...,нп), содержащая свободные предметные переменные щ, ... ,пп, М-общезна- 104 
чима тогда и только тогда, когда М-общезначима замкнутая формула \/гц ... Vvn A(v 1, ..., жп), называемая универсальным замыканием A(v 1, ...,г?п). Очевидно также, что формула А М-общезначима тогда и только тогда, когда ее отрицание не М-выполнимо. Пример 4-14- Формула Р(у) V Мх (Р(х) D Q) не М-обгце- значима, если М = {1,2}, как показывает пример 4.9, где были указаны такие интерпретация I на М и оценка д, что [Л]/^ = 0. ■ Пример 4-15- Докажем, что формула ЗхМу (Р(х) = Р{у)) является М-общезначимой, каково бы ни было одноэлементное множество М. Пусть М = {а} и дана интерпретация / на М. Докажем, что истинно ЗхУу(Р1(х) = Р[(у)). Для этого надо указать значение ж, при котором форма Му{Р1{х) = Р1 (у)) превращается в истинное высказывание. Придадим х значение а и докажем, что истинно \/у(Р1(а) = Р7(у)), т. е. что высказыва- тельная форма Р7(а) = Р\у) превращается в истинное высказывание при любом значении у. Переменная у может принимать только значение а. Если у придать значение а, высказыватель- ная форма Р1 (а) = Р1 (у) превращается в истинное высказывание Р1 (а) = Р1(а). Таким образом, рассматриваемая формула истинна в любой интерпретации на М, т. е. М-общезначима. ■ Определение 4.8. Говорят, что формула А общезначима и пишут |= Л, если А является М-общезначимой, какова бы ни была непустая предметная область М. Заметим, что предикатная формула общезначима тогда и только тогда, когда общезначимо ее универсальное замыкание. Очевидно также, что предикатная формула А общезначима тогда и только тогда, когда ее отрицание ->А невыполнимо. Пример 4-16. Формула Р(у) V Vx(P(x) D Q) не является общезначимой, поскольку в примере 4.9 указаны интерпретация и оценка на множестве {1,2}, при которых эта формула ложна. ■ Пример 4-17- Докажем, что общезначима формула 3x3y\/z«P(z) = Р{х)) V (P(z) = Р(у))). (4.2) Пусть М ф 0, и пусть дана интерпретация I на М, т. е. на М задан одноместный предикат Р1. Докажем, что истинно высказывание Зх Зу Mz ((Р1 (z) = Р1 (х)) V (P^z) = Р^у))). Для этого надо указать значение переменной ж, при котором высказыва- 105 
тельная форма 3y\/z ((Р1 (z) = Р1 (х)) V (Р1 (z) = Р1 (у))) превращается в истинное высказывание. Придадим переменной х произвольное значение а из множества М и докажем, что истинно высказывание 3yMz ((Р1 (z) = Р7(а)) V (Р1 (z) = Р7(?/))). Для этого надо указать такое значение переменной у, при котором высказывательная форма Mz ((P7(z) = Р1 (х)) V (PJ(z) = Р1 (у))) превращается в истинное высказывание. Сначала рассмотрим случай, когда Р1{х) = р\а) для всех х G М. Тогда придадим переменной у значение а и докажем, что истинно высказывание yz((PI(z) = PI(a))W(PI(z)^PI(a))), т. е. что высказывательная форма (P^z) = Р1 (а)) V (.P\z) = Р\а)) (4.3) превращается в истинное высказывание при любом значении переменной 2. Если переменной 2 придать произвольное значение с G М, высказывательная форма (4.3) превращается в истинное высказывание (Р1 (с) = Р7(а)) V (Р7 (с) = Р7(а)), поскольку Р7(с) = Р7(а). Теперь рассмотрим случай, когда найдется такой элемент Ъ G М, что Р1 (Ь) ф Р1 (а). Придадим переменной у значение Ъ и докажем, что истинно высказывание Vz ((P^z) = Р1 (а)) V (P!(z) = Р!(Ь))), т. е. что высказывательная форма {P\z) = Р1 (а)) V {Р\г) = Р1 (Ь)) (4.4) превращается в истинное высказывание при любом значении 2. Если придать z произвольное значение с G М, форма (4.4) превращается в высказывание (Р7(с) = Р1 (а)) V (Р1 (Ь) = Р7(6)), которое истинно, поскольку либо Р1(с) = Р1(а), либо Р7(с) = Р7(6). Таким образом, формула (4.2) истинна в любой интерпретации на любой предметной области. ■ Теорема 4.2. Каковы бы ни были пропозициональная тавтология Л (Pi, ..., Рп) и предикатные формулы Pi, ..., Рп, предикатная формула Л (Pi, ..., Рп), полученная подстановкой В1, ..., Вп вместо переменных Pi, ... , Рп в Л (Pi, ..., Рп), общезначима. Доказательство. Пусть Л(Рх, ..., Рп) — пропозициональная тавтология, Pi, ..., Вп — предикатные формулы, М - непустое множество, I — интерпретация на М, g — оценка в М. 106 
В силу утверждений 1) и 2) предложения 4.1 [А(В\, ..., Pn)]/.g совпадает со значением формулы А(Р\, . ..,РП), когда пропозициональным переменным Р\, ..., Рп сопоставляются значения [В\}цд1 ..., [Bn\itg соответственно, которое равно 1, так как А(Р\, . ..,РП) — тавтология. Таким образом, формула А(В\, ...,Вп) истинна в любой интерпретации при любой оценке, т. е. общезначима. ■ Довольно очевидно, что М-выполнимость и М-общезначи- мость зависят лишь от мощности множества М. Дадим строгое доказательство этого факта. Сначала докажем одно вспомогательное утверждение. Предложение 4.2. Если М\ и М2 — непустые множества и \М\\ = IM2I, то для любых интерпретации J и оценки h на М2 существуют такие интерпретация I и оценка g на М\, что для любой предикатной формулы А имеет место [A\i,g — Д],/д. Доказательство. Пусть на множестве М2 ф 0 задана интерпретация J. Пусть Mi — такое множество, что |Mi| = | А/21 • Зафиксируем взаимно-однозначное соответствие ср между Mi и М2. Зададим интерпретацию I на Mi, положив Р/ = Pf для любой 0-местной предикатной переменной Р^, а если Pi есть п- местная предикатная переменная, где и > 1, то предикат Р/ определим так: P/(ai, ..., ап) — P/(cp(ai), ..., ср(ап)) для любых ai, ..., ап G Mi. Для каждой оценки h на М2 зададим оценку g на Mi, положив g{v) = ср_1(/г(г)) для любой предметной переменной v. Таким образом, cp(g(r)) = h(v). Будем говорить, что оценки g и /г, связанные этим соотношением, согласованы. Индукцией по построению предикатной формулы А нетрудно доказать, что если оценки g и h согласованы, то |A\j^g = [A]j^. ■ Теорема 4.3. Пусть непустые множества М\ и М2 равномощны. Тогда для каждой предикатной формулы А выполняются следующие условия: 1) формула А М\ -выполнима тогда и только тогда, когда она М2~выполнима\ 2) формула А М\-обще- значима тогда и только тогда, когда она М2-общезначима. Доказательство. Пусть непустые множества Mi и М2 равномощны, и А — произвольная предикатная формула. Докажем 1). Пусть А М2-выполнима, т. е. существуют такие интерпретация J и оценка h на М2, что [A\j^ = 1. По предложению 4.2 существуют такие интерпретация I и оценка g на Mi, что [Л\цд — [A\jд = 1, т. е. А Mi-выполнима. Поменяв ролями Mi и 107 
М2, получаем, что если А Mi-выполнима, то она М2-выполнима, что доказывает 1). Докажем 2). Пусть A Mi-общезначима. Тогда [А\цд = 1 для любых интерпретации I и оценки д на М\. Пусть J — произвольная интерпретация, a h — произвольная оценка на М2. По предложению 4.2 существуют такие интерпретация I и оценка д на Mi, что [A\jfi = [A]j^g = 1, т. е. формула А М2-общезначима. Поменяв ролями Mi и М2, получаем, что если А М2-общезначима, то она Mi-общезначима, что дает утверждение 2). ■ 4.5. Равносильные формулы Говорят, что предикатные формулы А и В равносильны и пишут А ~ Р, если [А]рд = [Р]/?р для любых интерпретации I и оценки д. Очевидно, что А ~ В тогда и только тогда, когда формула А = В общезначима. Замкнутые формулы А и В равносильны, если и только если I |= А I |= В для любой интерпретации /. Отношение ~ рефлексивно (А ~ Л), симметрично (если А ~ Р, то Р ~ Л) и транзитивно (если Л ~ Р и В ~ (7, то Л ~ (7), так что ~ — эквивалентность на множестве предикатных формул. Теорема 4.4. Если пропозициональные формулы А\(Р\, ..., Рп) и Л2(jPi , ..., Рп) равносильны, то любых предикатных формул Pi, ..., Рп имеет место А\(В\, ..., Рп) ~ Л2(Рь ..., Вп). Доказательство. Если ЛДР1 , . . . ,Рп) ~ 42(Pl, • ■ • ,Рп), ТО формула Л, (Pi, ..., Рп) = Л2(РЬ ..., Рп) является тавтологи- ей. По теореме 4.2, если Pi, ... ,РП — произвольные предикатные формулы, то формула ЛДР1, ..., Вп) = Лг(Р1, ..., Вп) общезначима, т. е. ЛДР1, ..., Вп) ~ Л2(Р1, ..., Вп). ш При изучении логики высказываний в подразд. 2.6 был установлен ряд равносильностей. Теорема 4.4 означает, что теорема 2.22 остается в силе, если в ней считать, что Л, Р, С — предикатные формулы. Наряду с равносильностями из этой теоремы можно установить ряд новых, отражающих особенности обращения с кванторами. Теорема 4.5. Каковы бы ни были формула Л (г), формула Р, не содержащая свободно предметную переменную г, и предметная переменная и, не входящая в формулу Л (г), 1) -fiv A(v) ~ 3v^A{v)\ 108 
2) -*3v A(v) A(v)\ 3) (Vv A{v) &B)~\/V (A(v) & B): 4) (BbVvA(v))~Vv(BbA(v))\ 5) (3v A(v) &B)~3v (A(v) & B); 6) (В к 3v A(v)) ~ 3?; (B & A(v)); 7) (Vv A(v) V B) ~ Vv (A(v) V B)\ 8) (В V Vv A(v)) Л(г)); 5) (3v Л(г) V Б) ~ 3r (Л(г) V В); 10) {В У Зг Л(г)) ~ 3v (В У Л(г)); 11) (Vv A(v) DB)~3v(A(v) DB); 12) (В D Vv A(v)) ^Vv (Bl) A(v))\ 13) (3v A(v) D Б) ~ Vv (A(v) D Б); (Б D 3vA(v)) - Зг(Б D Л(Д); 15) Vv A(v) ~VuA(u)\ 16) 3v A(v) ~ 3uA(u). Доказательство. Равносильности 1) —16) доказываются простыми рассуждениями, опирающимися на определение истинности предикатной формулы в данной интерпретации при данной оценке. Для примера докажем равносильность 7). Пусть дана интерпретация I на множестве М, и пусть A1 (v) и В1 значения формул A(v) и В в этой интерпретации. Всем свободным переменным в высказывательных формах Vv А1 (у) У В1 и Vv(AI{y) V В1) придадим конкретные значения из М. Для полученных высказываний сохраним обозначения Vv A1 (v) V В1 и Vv(AT(v) V В1) и докажем, что VvA!(v) V В1 истинно тогда и только тогда, когда истинно Vv (A1 (v) У В1). Пусть истинно VvA1 (у) V В1. Это означает, что истинно хотя бы одно из высказываний Vv A1 (v) и В1. Если истинно Vv А1 (у), то для любого a Е М истинно высказывание А1 (а). Но тогда для любого a Е М истинно А1 (а) V Б7, а это означает, что истинно Vv(A!(v) V В1). Если же истинно Б7, то для любого a Е М истинно А1 (а) V Б7, откуда снова получаем, что истинно Vv(AT(v) У В1). Таким образом, мы доказали, что если истинно Vv А1 (у) У В1), то истинно и Vv (А1 (у) У В1). Пусть теперь истинно Vv (А1 (у) V В1). Это означает, что для любого йЕМ истинно А1 (а) У В1. Если при этом истинно Б7, то истинно Vv А1 (у) V В1. Если же высказывание в1 ложно, то для любого а Е М истинно А1 (а). Но тогда истинно VvA(v), и вместе с ним — и Vv A1 (v) V Б7. ■ Требование в формулировке теоремы 4.5, чтобы формула В не содержала свободно переменную г, является существенным. 109 
Пример 4-18. Рассмотрим равносильность 7) в случае, когда A(v) есть формула Р(х), а В есть Q(x), так что условие, при котором эта равносильность доказана, не выполняется. Покажем, что формулы Ух Р(х) У Q{x) и Ух (Р(х) У Q(x)) не равносильны, т. е. что формула (Ух Р(х) У Q(x)) = Ух (Р(х) У Q(x)) не является общезначимой. Рассмотрим интерпретацию на множестве N, которая предикатной переменной Р сопоставляет предикат х = 1, а предикатной переменной Q — предикат х ф 1. В этой интерпретации рассматриваемой формуле сопоставляется высказывательная форма (Ухх = 1 У х ф 1) = Ух (х — — 1 V х ф 1), в которой для наглядности подчеркнуто свободное вхождение х. Придадим х значение 1. Тогда рассматриваемая высказывательная форма превратится в высказывание (Ух х = 1V1 Ф 1) = Ух (х — IV х ф 1), которое ложно, поскольку правая часть эквиваленции Ух(х = 1 V х ф 1) истинна, а левая Ухх=1У1ф1 ложна. ■ Следующее очевидное утверждение называют теоремой об эквивалентной замене. Теорема 4.6. Если формула Af получена заменой в формуле А некоторой ее подформулы В на формулу В' и В ~ J5'; то А~А'. Эта теорема, подобно теореме об эквивалентной замене для логики высказываний (см. теорему 2.23), доказывается индукцией по построению формулы А с использованием определения истинности предикатной формулы в данной интерпретации при данной оценке. Теорема 4.6 дает способ равносильных преобразований формул: если часть формулы А заменяется на равносильную, то в результате получается формула, равносильная формуле А. Пример 4-19- Докажем, что ->3хР(х) У VxQ(x) ~ УхУу(-^Р(у) У Q(x)). Для этого воспользуемся методом равносильных преобразований: строим последовательность равносильных формул, указывая номер равносильности из теоремы 4.5, которая используется для получения очередной формулы: -пЗх Р(х) У Ух Q(x) ~2 Vx ~^Р(х) У Ух Q(x) ~8 Vx (Vx —*Р(х) V Q(x)) ~15 Vx (Vy —<P(y) V Q(x)) ~7 ~7 Vx Vy (->P(y) V Q(x)). ■ 
Глава 5 ЭЛЕМЕНТАРНЫЕ ЯЗЫКИ Чтобы сделать математические утверждения точными математическими объектами, в математической логике используют искусственные логико-математические языки. Самый распространенный вид таких языков — так называемые логикоматематические языки первого порядка, или элементарные языки. 5.1. Определение элементарного языка Для каждой области математики выбирается свой язык. Построение такого языка требует анализа понятий, которые лежат в основе данной области исследования. Прежде всего следует определиться с предметной областью — множеством объектов, которые исследуются в данной области математики. Например, в элементарной теории чисел (арифметике) предметной областью является множество всех натуральных чисел N, в планиметрии — множество всех точек плоскости. Труднее определиться с предметной областью теории множеств. Эта теория изучает множества, но рассмотрение множества всех множеств ведет к противоречию, как показывает парадокс Кантора. Но практически можно ограничиться какой-нибудь конкретной совокупностью множеств V, называемой универсумом, и рассматривать ее в качестве предметной области, т. е. считать множествами только элементы универсума V. Конечно, при этом сама предметная область V не может считаться множеством. Непременным атрибутом всякого элементарного языка являются предметные переменные (или просто переменные) Х\1Х21 ... Коль скоро фиксирована предметная область М, считается, что возможными значениями предметных переменных являются произвольные элементы М. 111 
После того как определена предметная область, выявляются те ее элементы, которые играют особую роль в данной области исследования. Им даются имена, которые называются предметными константами, или просто константами. Например, в арифметике особую роль играют числа 0 и 1, так что естественно включить константы 0 и 1 в язык арифметики. В планиметрии все точки равноправны, и ни одна из них не заслуживает наделения специальным обозначением. В теории множеств обычно используется константа 0 для обозначения пустого множества. Примерами констант являются ей л, используемые в математическом анализе. Посредством Сп будем обозначать множество всех констант данного элементарного языка. Оно может быть пустым. Затем выявляются те операции над элементами предметной области, которые играют особую роль в данной области исследования. Им даются имена, которые называются функциональными символами. Поскольку каждый функциональный символ является обозначением конкретной операции, то для него определена валентность — количество аргументов, к которым данная операция применяется. Функциональные символы валентности п называются п-местными, так что различаются одноместные, двухместные, трехместные и т. д. функциональные символы. В арифметике особую роль играют операции сложения и умножения, так что естественно включить в язык арифметики двухместные функциональные символы + и •. В планиметрии мы не видим каких-либо операций над точками, заслуживающих наделения специальными обозначениями. В теории множеств обычно используются двухместные функциональные символы Пии для обозначения операций пересечения и объединения множеств. Примерами одноместных функциональных символов являются In, lg, sin, cos и другие широко используемые в математике обозначения для функций. Посредством Fn будем обозначать множество всех функциональных символов данного элементарного языка. Оно может быть пустым. Наконец, выявляются те свойства объектов и отношения между объектами, которые играют особую роль в данной области исследования. Как мы знаем, свойства и отношения называются предикатами. Предикатам, играющим особую роль, даются имена, называемые предикатными символами. Каждый предикатный символ является обозначением конкретного предиката, так что для него определена валентность — положительное 112 
натуральное число, указывающее количество аргументов этого предиката. Предикатные символы валентности п называются п-местными. Таким образом, различаются одноместные, двухместные, трехместные и т. д. предикатные символы. В любой области математики особую роль играет отношение равенства, поэтому в элементарные языки обычно включают двухместный предикатный символ =. В арифметике особую роль играют отношения >,<,>,<, так что эти двухместные предикатные символы естественно включить в язык арифметики. В планиметрии важную роль наряду с равенством играют трехместное отношение «точка у лежит на прямой между точками х и г», которое будем обозначать B(x,y,z), и четырехместное отношение «отрезок ху конгруэнтен отрезку wz» (т. е. отрезки ху и wz имеют одинаковую длину), которое будем обозначать D{x,y,w,z). В теории множеств наряду с символом равенства = используются двухместные предикатные символы Е для отношения принадлежности и С для отношения включения. Посредством Рг будем обозначать множество всех предикатных символов данного элементарного языка. Оно всегда непусто. Набор из трех множеств ft = (Cn, Fn, Рг), где Сп — множество (предметных) констант, Fn — множество функциональных символов, Рг — множество предикатных символов, полностью определяет конкретный элементарный язык и называется сигнатурой этого языка. Элементарный язык с сигнатурой ft будем называть языком ft. Наряду с предметными переменными и сигнатурными символами каждый элементарный язык включает логические символы &, V, D, =, V, 3, смысл которых вполне ясен, и служебные символы — скобки «(», «)» и запятую «,». После того как зафиксирован элементарный язык, на нем можно записывать различные осмысленные выражения. Различают два типа таких выражений — термы и формулы. Термы суть формальные аналоги имен объектов и именных форм, а формулы — это аналоги высказываний и высказывательных форм. Определение 5.1. Понятие терма определяется индуктивно: 1) каждая предметная переменная есть терм; 2) каждая константа есть терм; 3) если / есть /с-местный функциональный символ, £i, ..., tk — термы, то выражение /(£i, ..., tk) есть терм. 113 
Если / — двухместный функциональный символ, то иногда вместо /(^1,^2) пишут (£1/^2) или просто t\ft2. Например, пишут х + у, а не -\-(х:у). Если / — одноместный функциональный символ, то иногда вместо f(t) пишут ft. Например, пишут не sin(x), a sinx. Определение 5.2. Терм, не содержащий вхождений переменных, т. е. построенный только с использованием констант и функциональных символов, называется замкнутым термом. Поскольку дана предметная область М, являющаяся областью возможных значений предметных переменных, и известны значения всех констант и функциональных символов, каждый замкнутый терм является именем некоторого объекта из М, а терм, содержащий вхождения переменных, является именной формой, которая превращается в имя некоторого объекта из М, если всем предметным переменным придать значения из М. Определение 5.3. Атомные формулы (или атомы) — это выражения вида P(£i, ..., £&), где Р £ Рг есть к-местный предикатный символ (к > 1), а £1, ..., tk — термы. Каждый 0-местный предикатный символ Р £ Рг также считается атомной формулой. Если Р — двухместный предикатный символ, то иногда вместо P{t\, £2) пишут {t\Pt2) или просто t\Pt2- Например, обычно пишут х = у и х £ у, а не — (х,у) и £ (х,у). Определение 5.4. Понятие формулы определяется индуктивно: 1) каждый атом есть формула; 2) если Ф — формула, то -<Ф — формула; 3) если Ф и Ф — формулы, то (Ф & Ф), (Ф V Ф), (Ф D Ф), (Ф = = Ф) — формулы; 4) если Ф — формула, v — переменная, то Vr Ф и 3v Ф — формулы. Количество вхождений логических связок и кванторных символов в формулу будем называть логической длиной этой формулы. В формулах вида =ЗгФ и \/v Ф формула Ф называется областью действия соответствующего квантора. Связанные и свободные вхождения переменной в формулу определяются так же, как в случае предикатных формул. А именно, вхождение пере¬ 114 
менной v в формулу Ф называется связанным, если оно входит в квантор Уу или Зу или в область действия такого квантора. Вхождение переменной, не являющееся связанным, называется свободным. Формула, не содержащая свободных вхождений переменных, называется замкнутой формулой. Коль скоро заданы предметная область М и значения констант, функциональных и предикатных символов, каждая замкнутая формула имеет определенное истинностное значение. Поэтому замкнутые формулы называют высказываниями. Формула, содержащая свободные вхождения переменных, является высказывательной формой. Практически, записывая формулы, принято опускать некоторые скобки в соответствии с теми же соглашениями, что и в случае предикатных формул: обычно опускают внешние скобки, а из возможных операций У у, Зщ &, V, D, = в первую очередь выполняется та, которая в этом списке стоит раньше. 5.2. Примеры элементарных языков Рассмотрим некоторые примеры элементарных языков. Язык теории множеств. Сигнатура языка теории множеств состоит из двухместных предикатных символов = и G, обозначающих соответственно отношения равенства и принадлежности. Считается, что фиксирован некоторый универсум, элементы которого называются множествами и могут быть значениями переменных. Следуя установившейся традиции, условимся писать t\ = £2 вместо = и t\ G £2 вместо G (^i,^2)• Поскольку в этом языке нет ни констант, ни функциональных символов, то термами языка теории множеств являются только переменные. Рассмотрим некоторые примеры формул языка теории множеств. 1) Посредством у = 0 обозначим формулу Vu^(wG^), где и и у — различные переменные. 2) Посредством и = {г?} обозначим формулу \/w (w G и = w = = г>), где w — переменная, отличная от и и у. 3) Посредством и = {щ,г?2} обозначим формулу Уи> (w G и = = w = У\ У w = г?2), где w — произвольная переменная, отличная от щ щ, г?2- 4) Посредством и = Uy обозначим формулу Уи) (w G и = 3z(z G у hw G z)). 115 
5) Посредством гг С v обозначим формулу Ми (и G гг D и G г), где и — любая переменная, отличная от гг и г. 6) Через и = V(v) обозначим формулу Mw (гг G и = w С г), где гг — любая переменная, отличная от и и v. 7) Запишем в виде формулы предикат х = (y,z). Согласно определению упорядоченной пары по Куратовскому, это предложение можно записать как х — {{?/},{?/, z}} и далее, учитывая пункт 3), как Ми (и G х = и — {у} V и = {?/, z}). Пользуясь пунктами 2) и 3), записываем и — {у} в виде формулы Mw (w G и = гг = у), а и = {г/, — в виде формулы \/гт (w ^ и ^ w = уМ w — z). В результате получаем формулу Ми (и G х = \/гг (гг G и = гг — у) V Угг (wEu = w = yMw = z)). 8) Запишем в виде формулы предикат «х — функция»: Му (у G х D Зи Згу = (и, г;)) &MuMv MwMyMz (у = (и, г?) & & ^ = (щгт) &у Gx&zGxD ^ = гг)). Обозначим эту формулу Fun(x). В подразделе 1.7 были приведены аксиомы теории множеств Цермело — Френкеля ZF, сформулированные на обычном языке. Эти аксиомы можно записать в виде формул языка теории множеств. Покажем, как это делается. Z1. Аксиома объемности: МхМу (х = у ^Mz (z G х = z G у)). Z2. Аксиома пары: MxMy3z z = {x,y}. Z3. Аксиома суммы: МхЗуу = Ux. Z4. Аксиома степени: МхЗуу = 'Р(х). Z5. Аксиома выделения: Vui... МипМх 3yMz{z G у = z G х & Ф(^, ui, ..., ггп)), где Ф(^,г^1, . ..,г/п) — формула с параметрами z,ui, ...,un, не содержащая свободных вхождений переменных х и у. Приведенная запись аксиомы выделения является схемой аксиом: для 116 
каждой конкретной формулы ...,ип) получается своя аксиома. Z6. Аксиома бесконечности: Зх (Му (у = 0 D у Е х) & V2 (z Е х D Mw (w = z U {z} D w E ж))), где w = z U {z} есть формула Mv(vEw = vEzMv = z). Z7. Аксиома выбора: \/жЗг (Fun(r) hMy(yE x & ^ (y = 0) D 3z {z <E у & {y, z) <E v))), где (у, г)в есть формула Эи (и = (у, г)&и£ и). Z8. Аксиома фундирования: Мх (Зу у Е х D Зу (у Е х & Мz (z Е х D ^z Е у))). ZF9. Аксиома подстановки: Мх (MyMzMw ((у Е х & Ф(у, г) & Ф(у, гг) D 2 = гг) D D Зу Vz (2 Е у = Згт (гг Е х к, Ф(гт, г))))), где Ф(ж, у) — произвольная формула языка теории множеств. Таким образом, эта запись аксиомы подстановки является схемой аксиом. Суть такой формулировки аксиомы подстановки состоит в том, что для любого множества х и любого соответствия, задаваемого формулой Ф(ж,у), если это соответствие однозначно на ж в том смысле, что для каждого элемента из х существует не более чем один соответствующий ему объект, то существует множество, состоящее в точности из тех объектов, которые соответствуют элементам множества х. Язык формальной арифметики. Сигнатура языка формальной арифметики состоит из константы 0, обозначающей натуральное число 0, одноместного функционального символа ' для операции следования, т. е. перехода от числа х к следующему числу х + 1, двухместных функциональных символов + и *, обозначающих соответственно операции сложения и умножения, и двухместного предикатного символа =, обозначающего отношение равенства. Считается, что предметная область — это множество всех натуральных чисел N = {0,1,2, ...}. Условимся вместо '(£), + (£i,£2), *(£i,£2), — (£1,^2) писать £', (t\ +£2), (£1 • £2)5 £1 = £2 соответственно. Иногда будем опускать скобки в термах, имея в виду, что арифметические операции выполняются в следующем порядке: ', •, +. Например, терм ((ж • у) + (0" • z)f) 117 
можно кратко записать так: х • у + (О77 • z)!. Примерами термов этого языка являются выражения О, О7, О77, О777 , ..обозначающие числа 0,1, 2, 3, ... Формулы языка формальной арифметики называются арифметическилт формулами. Вот примеры арифметических формул. 1) Формула 3z (z + х = у) выражает предикат х < у. Очевидно, что здесь вместо связанной переменной г можно употреблять любую переменную, отличную от х и у. Более того, если переменная w отлична от и и г, то формула 3w (w 3- и = х) является записью предложения и < v. 2) Формула Зх (х7 3-х — у), где х — любая переменная, отличная от х и у, выражает двухместный предикат х < у. 3) Одноместный предикат «и четное число», можно записать в виде формул 3v (и = х + v) и 3v (и = 0" • г), где х — любая переменная, отличная от и. Соответственно, «и - нечетное число» можно записать как -dx (и = х + х) или -dx (и — О77 • v). 4) Двухместный предикат «и делится на V» выражается формулой 3w (и = w • х), где w - любая переменная, отличная от и И X. 5) Запишем в виде арифметической формулы одноместный предикат «и — простое число». Для этого воспользуемся тем фактом, что простое число — это отличное от 1 число, которое делится только на 1 и на себя. Пользуясь п. 4), получаем формулу -л/ = О7 & Vx (3w (и — w • х) D х = О7 V х = ?i), где х и w — произвольные переменные, отличные друг от друга и от и. Язык упорядоченных множеств. Сигнатура языка упорядоченных множеств содержит предикатные символы = и < для равенства и порядка соответственно. Условимся писать t\ = = ^2 и t\ < t>2 вместо = (ПД2) и < (ПД2)- Этот язык предназначен для записи утверждений, относящихся к упорядоченным множествам. А именно, предполагается фиксированным непустое множество М, на котором задано бинарное отношение <. Тогда возможными значениями переменных являются элементы М. На этом языке аксиомы частично упорядоченного множества могут быть записаны в виде следующих формул: 1) Vx(x < х) (рефлексивность); 2) VxVy (х < у &у < х D х = у) (антисимметричность); 3) \/x\/y\/z (х < у &zy < z D х < z) (транзитивность). 118 
Частичный порядок < называется линейным, если истинно высказывание, выражаемое следующей формулой: 4) \/хМу (х < у V у < х). Линейный порядок называется плотным, если истинно высказывание, выражаемое формулой 5) \/х\/у (фх = yhx<y^)3z (-1 z = xh ~^z = y hx<z & z<y)). Одноместный предикат «х — наименьший элемент» выражается формулой 6) \/ух < у. Одноместный предикат «х — наибольший элемент» выражается формулой 7) Ууу< х. Языки алгебраических структур. Сигнатура языка теории групп состоит из двухместного функционального символа + для групповой операции, константы 0 для нейтрального элемента, или нуля, одноместного функционального символа — для операции взятия обратного элемента и предикатного символа = для равенства. Этот язык предназначен для записи утверждений, относящихся к группам. А именно, предполагается фиксированной некоторая группа G, элементы которой являются возможными значениями переменных. Условимся писать (Ч +£2), (—t) и t\ = £2 вместо +(£i,£2)? —(£) и = (Ч,^)- При записи термов будем опускать некоторые скобки, имея в виду, что сначала выполняется операция —, а затем — операция +. На этом языке аксиомы группы могут быть записаны так: 1) Vx Vy Vz (х + (у + z) = (х + у) + z) (ассоциативность +); 2) Мх (х + 0 = х &; 0 + х = х) (аксиома нуля); 3) \/х (х + (~х) = 0 & — х + х = 0) (аксиома обратного элемента). Группа называется абелевой, если истинно следующее: 4) \/х Vy (х + у = у + х) (коммутативность +). Сигнатура языка теории колец получается добавлением к сигнатуре языка теории групп двухместного функционального символа •. Этот язык предназначен для записи утверждений, относящихся к кольцам. Предполагается фиксированным некоторое кольцо R, элементы которого являются возможными значениями переменных. Условимся писать (£1*^2) вместо -(Чф)- При записи термов будем опускать некоторые скобки, имея в виду, что операции —,+,• выполняются в указанном порядке. Аксиомами кольца являются аксиомы абелевой группы, т. е. формулы 1) —4) из предыдущего примера, а также следующая формула: 119 
5) \/x My Mz (x • (y + z) = x- y + x- z!k(x + y)-z = x- z + y’z) (дистрибутивность • относительно -г). Кольцо называется ассоциативным, если истинно следующее высказывание: 6) \/x\/yVz (х • (у • z) = (х • у) • z) (ассоциативность •). Кольцо называется коммутативным, если истинно следующее высказывание: 7) \/х \/у (х • у = у • х) (коммутативность •). Сигнатура языка теории полей получается добавлением к сигнатуре языка теории колец константы 1 для нейтрального элемента относительно •, или единицы. Предполагается фиксированным некоторое поле F, элементы которого являются возможными значениями переменных. Аксиомами поля являются аксиомы ассоциативного коммутативного кольца, т. е. формулы 1) —7), а также следующие формулы: 8) -(0 = 1); 9) Vx (х • 1 = х) (аксиома единицы); 10) = 0) D Зу(х • у = 1)) (существование обратного элемента относительно операции • для любого ненулевого элемента) . Язык планиметрии. Язык планиметрии предназначен для записи утверждений, относящихся к геометрии на плоскости. Считается, что возможными значениями переменных являются точки плоскости. Сигнатура этого языка содержит предикатный символ = для равенства, трехместный предикатный символ J5, где B(x,y,z) означает, что точка у лежит на прямой между точками х и z или совпадает хотя бы с одной из них, и четырехместный предикатный символ JD, где D(w,x,y, z) означает, что отрезок wx конгруэнтен отрезку yz. Рассмотрим некоторые примеры формул этого языка. 1) Трехместный предикат «Точки щ г, w лежат на одной прямой» выражается формулой B(u,v,w) V B(y,w,u) V B{w,u,v). Условимся эту формулу обозначать G(u,v,w). 2) Трехместный предикат «Точка w лежит на прямой uv» выражается формулой -> (и = v) & (7(щ г, гг), т. е. -'{u = v)& (В (и, г, гг) V В(у, гг, и) V 2?(гг, щ г)). 3) Трехместный предикат «Точка гг принадлежит отрезку uv» выражается формулой (и = v) & В {и, гг, v). Обозначим эту формулу £(щг,гг). 120 
4) Четырехместный предикат «Прямые u\V\ и U2V2 параллельны» выражается формулой (ui = Vi) & -1 (U2 = V2) & (G(ui,Vi,w) & G(u2,V2i w)). Здесь w — произвольная переменная, отличная от щ, щ, U2, V2. В дальнейшем эту формулу будем обозначать Р(щ, щ, щ, V2). 5) Аксиома о параллельных, утверждающая, что для любой данной прямой и любой точки, не лежащей на этой прямой, существует одна и только одна прямая, проходящая через эту точку и параллельная данной прямой, записывается следующей формулой: УхМу (-1 (х — у) D Mz (-1 G(x, у, z) D D 3u(P{x,y,z,u)&Vv (P(x,y,z,v) D G(z, u, v))))). 6) Трехместный предикат «Точка w — середина отрезка uv» выражается формулой г, w) h D(u, w, и, w): t. e. (u = v) & B{u, л;, л) & Р(гц л;, л, л;). 5.3. Языки второго порядка При формализации математических теорий с помощью элементарных языков нужно иметь в виду ограниченность их выразительных возможностей, обусловленную отсутствием в них переменных для функций и предикатов и, соответственно, возможности использования кванторов по таким переменным. На практике же иногда приходится рассматривать понятия, формулируемые не в терминах свойств объектов, а, скажем, в терминах свойств подмножеств предметной области. В этом случае используются так называемые языки второго порядка. Алфавит языка второго порядка сигнатуры ft получается добавлением к алфавиту элементарного языка сигнатуры ft счетного множества функциональных переменных /q\/{\/^, ... валентности п для каждого п > 1 и счетного множества предикатных переменных Pq1, Рр, Рр, ... валентности п для каждого п > 0. Индуктивное определение 5.1 терма сигнатуры ft расширяется еще одним пунктом: 4) если t\, ..., — термы, а / есть к-местная функциональная переменная, то выражение /(Ч, считается термом. Таким образом, в термах языка второго порядка функциональные переменные используются наравне с функциональными 121 
символами из сигнатуры ft, которые теперь выступают в роли «функциональных констант». В определение 5.3 атомной формулы сигнатуры ft вносится дополнение, согласно которому атомной формулой считается всякое выражения вида P{t\, ... , £&), где Р есть к-местная предикатная переменная (к > 1), a ...,£& — термы. Каждая 0- местная предикатная переменная также считается атомной формулой. Таким образом, в языках второго порядка предикатные переменные используются наравне с предикатными символами из сигнатуры ft, которые теперь выступают в роли «предикатных констант». Индуктивное определение 5.4 формулы сигнатуры ft дополняется следующими двумя пунктами: 5) если Ф — формула, / — функциональная переменная, то V/ Ф и 3/ Ф — формулы; 6) если Ф - формула, Р — предикатная переменная, то VP Ф и =ЗРФ — формулы. Формула Ф, к которой применяются эти правила построения, называется областью действия соответствующего квантора. Свободные и связанные вхождения функциональных и предикатных переменных определяются точно так же, как и для предметных переменных: вхождение переменной считается связанным, если оно входит в квантор или в область действия квантора по этой переменной, а остальные вхождения этой переменной считаются свободными. Формулы языка второго порядка сигнатуры ft, не содержащие вхождений функциональных и предикатных переменных, будем называть элементарными формулами. Можно говорить и о формулах языка второго порядка пустой сигнатуры, т. е. сигнатуры, не содержащей ни констант, ни функциональных и предикатных символов. Формулы такого языка являются формулами языка второго порядка любой сигнатуры ft. Заметим, что всякая предикатная формула является элементарной формулой языка второго порядка пустой сигнатуры, следовательно, любой сигнатуры ft. Если дана предметная область М, то возможными значениями каждой (к-местной) функциональной переменной считаются произвольные тотальные функции типа Мк М, а возможными значениями каждой (к-местной) предикатной переменной считаются произвольные (к-местные) предикаты на М; возможные значения каждой 0-местной предикатной переменной суть 122 
истинностные значения 0 и 1. Каждая замкнутая формула языка второго порядка является высказыванием. Если же формула содержит свободные переменные, то она является высказыва- тельной формой, причем ее параметрами могут быть предметные, функциональные и предикатные переменные. Пример 5.1. В любом языке второго порядка предикат равенства х = у выражается следующей формулой второго порядка пустой сигнатуры: УР(Р(х)э Р(у)), где Р есть одноместная предикатная переменная. ■ Пример 5.2. На языке формальной арифметики второго порядка принцип математической индукции может быть записан с использованием одноместной предикатной переменной Р следующим образом: VP (Р(0) & Мх {Р(х) D Р(х')) D \/х Р(х)). Эта формула не является элементарной. В гл. 13 будет показано, что принцип математической индукции нельзя заменить никаким множеством аксиом, формулируемых в элементарном языке. ■ Пример 5.3. Линейно упорядоченное множество М называется вполне упорядоченным, если любое непустое подмножество А С М имеет наименьший элемент. Это определение может быть записано на языке упорядоченных множеств второго порядка с использованием одноместной предикатной переменной Р следующим образом: VP (Зх Р(х) D Зу (Р(у) & Mz (P(z) D у < z))). Эта формула не является элементарной. В гл. 7 будет показано (см. пример 7.20), что понятие вполне упорядоченного множества нельзя определить с помощью элементарного языка. ■ Пример 5.4- В алгебре рассматривается понятие подгруппы. Это такое подмножество группы, которое само является группой. Однако в элементарном языке теории групп нет возможности говорить о произвольных подгруппах, так что на этом языке невозможно формулировать теоремы, в которых участвует понятие подгруппы. В то же время в языке теории групп второго порядка можно, используя одноместную предикатную переменную 77, выразить условие, что область истинности предиката 123 
Н является подгруппой. Дело в том, что непустое подмножество Н группы G является подгруппой тогда и только тогда, когда Н замкнуто относительно групповой операции + и операции взятия обратного элемента —. В частности, подгруппа должна содержать нейтральный элемент 0. Так что непустота выражается формулой Н(0). В результате получаем следующую формулу второго порядка, выражающую тот факт, что предикат Н задает подгруппу: H(0)bVx4y{H(x)kH(y) D H(x + y))bVx(H(x) D Н(-х)). Эта формула содержит единственную свободную предикатную переменную Н. Обозначим эту формулу S(Н). Тогда теорему о том, что пересечение двух подгрупп является подгруппой, можно записать в виде следующей формулы второго порядка: 4F4GVH(S(F)kS(G)kVx{H(x) = F(x)&G(x)) D S(tf)). ■ 5.4. Подстановка Индуктивное определение терма элементарного языка позволяет использовать в доказательствах принцип индукции по построению терма: если требуется доказать, что все термы обладают некоторым свойством Р, то для этого достаточно установить: 1) каждая переменная обладает свойством V\ 2) каждая константа обладает свойством V] 3) если / — к-местный функциональный символ, а термы £i, ... ,tk обладают свойством Р, то терм f(t\, обладает свойством V. Индукцией по построению терма можно также определять различные понятия, связанные с термами. Рассмотрим пример такого определения. Пусть даны список различных переменных v\, ..., vn и список (не обязательно различных) термов £i, ..., tn. Для каждого терма s индуктивно определим терм s\t\/v\, ... ,tn/vп\ — результат подстановки термов £i, ... ,tn вместо переменных щ, ..., vn в терм s: 1) если терм s есть константа или предметная переменная, отличная от щ, ..., гп, то s[ti/vi, .. .,tn/vn\ ^ s; 124 
2) если s = Vi, где i = 1, ... , n. то s[ti/vu .. .,tn/vn\ ^ U: 3) если s = /(<§!, . где / есть (к-местный) функциональный символ, a si, — термы, причем для каждого г = 1, ..., к терм Si[ti/v\, ..., tn/vn\ уже определен, то s[*iM, • • • ,tn/vn\ ^ ---Дп/Чг], ...,Sk[tl/vi, ...,tn/vn]). Практически s[t\/v\, ..., tn/vn\ получается одновременной подстановкой ..., tn вместо вхождений переменных гд, ... , vn соответственно в терм s. Имея в виду дальнейшую подстановку термов £i, ..., tn вместо гд, ..., пп в терм s, будем употреблять для него обозначение s(t?i, ..., гп), а для терма s\t\/v\, ..., tn/vn\ — обозначение s(t\, ... Дп). Пример 5.5. Пусть s(x,y) — это терм х' + у • х языка формальной арифметики. Тогда s(yf. O') есть терм у" + 0' • yf. ■ Индуктивный характер определения формулы позволяет использовать в доказательствах принцип индукции по построению формулы, а также индукцией по построению формулы определять понятия, связанные с формулами. Пусть даны список попарно различных переменных гд, . ..,г>п и список (не обязательно различных) термов t\, ... ,tn. Для каждой формулы Ф индуктивно определим формулу Ф[ti/vi, ... ,tn/vn\ — результат подстановки термов t\, ... Дп вместо переменных гд, ..., vn в формулу Ф: 1) если Ф = P{s\) . ..,Sfc), где Р есть (к-местный) предикатный символ, a si, ..., Sk — термы, то Ф[ь/уи .. .,tn/vn] ±=; ^ P(si[h/vi, ...,tn/vn\, ...,sk[ti/vi, ...,tn/v„]); 2) если Ф = -|ф, причем формула ...,tn/vn] уже определена, то Ф[Ь/У1, ...,tn/vn] ^ ->Ф[tl/vi, ...,tn/vn}- 3) если Ф = (Ф1ХФ2), где X € {&,V,D,=}, и уже определены формулы Ф1 [t\/vi, .. .,tn/vn] и Ф2[^/Г1, .. .,tn/vn], то Ф[Ь/Щ, ■■■,tn/vn} ^ ... ,tn/vn\k^ 2[ti/vi, ...,tn/vn]); 125 
4) если Ф имеет вид кг?Ф, где к есть V или 3, причем для любого списка попарно различных переменных г*х, .. . , ит и любого списка термов ..., sm определена формула Ф[$х/^х> ..., Sm/Л-ш] 1 ТО ф.. .,tn/vn\ ^ Kvty[ti/vi, .. .,tv/vn\. если переменная v отлична от всех переменных щ, ... , г^, и Ф^х/ri, .. .,tn/vn\ ^ ^ кгФ[ti jv\, . . . • • • ,tn/vn], если переменная v совпадает с переменной Vi (г = 1, ... ,п). Практически формула Ф[£хЛ?ъ ..., tn/vn} получается в результате одновременной подстановки термов вместо свободных вхождений в формулу Ф переменных гд, ..., vn соответственно. Нетрудно заметить, что если формула Ф не содержит свободных вхождений переменных гд, ...vn (в частности, если она замкнута), то Ф[t\/v\, ... ,tn/vn] совпадает с Ф. Имея в виду дальнейшую подстановку термов t\, ... , tn вместо гд, ... , vn в формулу Ф, иногда мы будем употреблять для нее обозначение Ф(щ, ..., vn), а для формулы Ф[ti/v\, ... , tn/vn] — обозначение Ф(*ь Пример 5.6. Пусть Ф(х\,Х2,хз) есть формула х Е Х\ D х Е х2 V х G жз языка теории множеств. Тогда Ф(х,у, z) есть формула xExDxEyVxEz. ■ Пусть Ф(гд, ..., vn) — некоторая формула элементарного языка ft. Она может рассматриваться как высказывательная форма, т. е. некоторое утверждение о произвольных объектах щ, ..., vn. Термы t\, ... , £п суть имена объектов или именные формы, являющиеся обозначениями объектов определенного вида. Естественно ожидать и даже требовать, чтобы формула Ф(П, • • • ,tn) утверждала об объектах t\, . ..,£п то же самое, что формула Ф(щ, ..., vn) утверждает об объектах гд, ..., vn. Однако это условие выполняется не всегда. Пример 5.7. Пусть Ф(х) есть формула 3у(х + у = 0"') 126 
языка формальной арифметики, утверждающая, что х < 3. Пусть t есть терм 0" • у того же языка. Этот терм является числовой формой, значениями которой являются числа вида 2у, т. е. четные числа. Хотелось бы, чтобы формула Ф(£) выражала предложение 2у < 3, т. е. она должна превращаться в истинное высказывание, когда у принимает значения 0 и 1, и в ложное -- при других значениях у. Однако Ф(£) в данном случае есть формула Зу((у + у) +У = О"'), выражающая истинное высказывание, значение которого никак не зависит от значений переменной у. ■ Причина явления, которое мы наблюдали в приведенном примере, кроется в том, что после подстановки терма t в формулу Ф(ж) входящая в этот терм переменная у оказалась в области действия квантора по у, так что терм t потерял свою «индивидуальность». Это явление обычно называют «коллизией переменных». Определение 5.5. Будем говорить, что терм t свободен для переменной v в формуле Ф, если никакое свободное вхождение переменной v в формулу Ф не входит в область действия квантора Зи или Vu, где и — переменная, входящая в терм t. Пример 5.8. Терм 0" • у не свободен для переменной х в формуле Зу {х + у = 0"'). Вообще, любой терм, содержащий у, не свободен для х в этой формуле, а любой терм, не содержащий у, свободен. ■ Определение 5.6. Подстановка термов £i, ...,£п вместо предметных переменных v\, ... , vn в формулу Ф свободна, если для каждого г = 1, ..., и терм t\ свободен для переменной ^вФ. Пример 5.9. Подстановка термов х + у и у ■ 2 вместо переменных X и у в формулу 3^ (x + z' = O'") D Зх (х + у' = О"') свободна. В результате такой подстановки получается формула 3z ((х + у) + z' = O'") D Зх (х + (у • z)' — O'"). ■ Как мы видели, подстановка термов вместо переменных в формулу не годится, если она не свободна. Связь между элементарными языками и логикой предикатов, которую мы изучали в предыдущей главе, состоит в сле- 127 
дующем. Пусть фиксирован элементарный язык сигнатуры П, причем возможными значениями переменных являются произвольные элементы множества М. Будем рассматривать такие интерпретации предикатных формул, у которых предметная область есть М, а значениями предикатных переменных служат предикаты, задаваемые формулами языка П. Эта идея приводит нас к рассмотрению предикатных формул как своего рода схем для формул языка П. Пусть -A(Pi, . ..,РП) — предикатная формула, не содержащая предикатных переменных, отличных от Pi, ... ,РП, причем Pi имеет валентность га* (г = 1, ..., п), и ..., Фп — формулы элементарного языка П. Посредством А(Ф\, . ..,ФП) обозначим формулу языка Г2, которую будем называть результатом подстановки формул Фх, ...,Фп вместо предикатных переменных Pi, ..., Рп в предикатную формулу А(Р\, ..., Рп). Формула А(Фь ..., Фп) получается заменой каждого вхождения в формулу А(РЬ . ..,РП) атомной формулы Рфщ, ...,vmt) на Ф^щ/хь ..., vmi/xmi}. При этом подстановка термов гд, . ..,г?Шг вместо переменных ад, ... ,хШг в формулу Ф* должна быть свободной. Если это условие выполняется для каждого атома Рг(гд, ..., г?Шг), будем говорить, что формула Ф* допустима для подстановки в -A(Pi, ...,РП) вместо Р{. Очевидно, что подстановка формул Ф1, ..., Фп вместо предикатных переменных Pi, ...,РП в предикатную формулу -A(Pi, ... ,РП) не годится, если хотя бы одна из формул Ф* (г = 1, ..., и) недопустима для подстановки в Л(РЬ ... ,РП) вместо Pi. Заметим, что формула Ф может быть допустимой для подстановки вместо некоторой предикатной переменной в одну предикатную формулу, но недопустимой для подстановки вместо той же предикатной переменной в другую предикатную формулу. Пример 5.10. Формула Зу(х 1 G у&у G х2) языка теории множеств допустима для подстановки вместо двухместной предикатной переменной Р в формулу Му Q(x, у, z) V P(z, х), так как подстановка переменных z и х вместо х\ и^в указанную формулу свободна. Подстановка той же формулы вместо Р в предикатную формулу MyQ(x,y,z) V Р(у,х) недопустима, так как терм у не свободен для переменной х\ в формуле Зу (ад G у & у G g4 ■ Пример 5.11. Пусть A(P,Q) — формула MyQ(x,y,z) V V P(z,x), Ф — формула Зу (х 1 G у&у G х2) языка теории мно¬ 128 
жеств, Ф — формула х Е х\ D х Е х^ V х Е £3 того же языка. Очевидно, что формулы Ф и Ф допустимы для подстановки вместо предикатных переменных Р и Q соответственно в формулу Л(Р, Q). Чтобы построить формулу Л(Ф,Ф), мы должны в предикатной формуле А(Р, Q) заменить атомную формулу Q(x, у, z) на формулу Ф[х/ж1, у/х2, z/xs\, которая есть xExDxEx/V V х Е 2, а атомную формулу P(z,x) — на Ф^/ад, х/х^, т. е. 3y(z Е у&у Е ж). Таким образом, результат подстановки формул Зу(х 1 G у&|/ G Ж2) и х G xi D х G Х2 V х G Хз вместо предикатных переменных Р и Q соответственно в предикатную формулу Vy Q(x, х/, z) V P(z, х) есть формула Vx/ (х Е х D х Е у V х Е 2) V Зу (z Е у &iy Е ж). ■ Если формулы Фь ..., Фп языка ft допустимы для подстановки вместо предикатных переменных Р\, ..., Рп соответственно в предикатную формулу А(Р\, ...,РП), будем говорить, что список формул Ф1, ...,Фп допустим для подстановки в А{Р\, ..., Рп). Очевидно, что в этом случае не происходит коллизия переменных при замене атомных подформул в предикатной формуле на формулы языка ft. Однако при подстановке формул языка ft вместо предикатных переменных в предикатную формулу нас подстерегает другая опасность, как показывает следующий пример. Пример 5.12. Предикатная формула Р{х) D ЗуР{у) общезначима. Поэтому естественно ожидать и даже требовать, чтобы при подстановке в эту формулу произвольной арифметической формулы вместо предикатной переменной Р получалась тождественно истинная высказывательная форма. Формула {х\ = у) не содержит кванторов и потому допустима для подстановки вместо любой предикатной переменной в любую предикатную формулу, в частности, она допустима для подстановки вместо Р в формулу Р(х) D ЗуР(у). В результате такой подстановки получается высказывательная форма (х = у) D Зу-* (у = у). параметры которой суть хну. Придав в этой форме переменной х значение 0, а переменной у — значение 1, получим высказывание -1 (0 = 1) D Зу -1 (у — у), очевидно ложное. ■ Причина явления, которое мы наблюдали в последнем примере, связана с тем, что вместо одноместной предикатной переменной Р в данную предикатную формулу подставлялась арифметическая формула, содержащая наряду с х\ «лишний» параметр 129 
у, который после подстановки попал в область действия квантора по у, присутствующий в данной предикатной формуле, так что снова произошла «коллизия» переменных. Будем говорить, что формула Ф языка ft свободна для п-местной предикатной переменной Р в предикатной формуле А, если выполняются следующие условия: 1) Ф допустима для подстановки вместо Р в А; 2) никакая подформула вида Р(щ, ...,vn) в формуле А не находится в области действия квантора Vv или =3щ где v — свободная переменная формулы Ф, отличная от ад, ... ,хп. Подстановка формул ...,Фт языка ft вместо предикатных переменных Р\ ч ♦ • * > Рщ в предикатную формулу А называется свободной, если каждая формула Ф* (г = 1, ..., га) свободна для Pi в А. В дальнейшем при подстановке формул Фх, ..., Фт вместо Pi, ... ,РШ в предикатную формулу А будем требовать, чтобы эта подстановка была свободной. Заметим, что если подстановка формул Ф1, ..., Фт вместо предикатных переменных Рь ..., Рт в замкнутую предикатную формулу Л(РЬ ..., Рт) свободна, то параметрами формулы А(Ф1, ...,Фт) являются в точности «лишние» параметры формул Ф1, ...,ФШ, т. е. свободные переменные каждой из формул Ф*, отличные от яд, ... ,хПг, где щ — валентность предикатной переменной Р*. 5.5. Алгебраические системы Хотя при построении конкретного элементарного языка обычно подразумевается некоторый смысл составляющих его символов, этот смысл никак не используется при синтаксическом описании языка. После того как выбрана сигнатура языка, мы вправе наделять входящие в нее символы новым смыслом, отличным от того, который вкладывался в них на этапе построения языка. Более того, рассмотрение различных интерпретаций одного и того же языка является одним из важнейших приемов, используемых в математической логике. Интерпретации элементарных языков. Чтобы задать интерпретацию элементарного языка с сигнатурой ft = (Си, Рп,Рг), нужно: 1) зафиксировать непустое множество М, называемое основным множеством или носителем интерпретации; 2) каждой константе с G Сп сопоставить элемент с G М — значение константы с в данной интерпретации; 130 
3) каждому (к-местному) функциональному символу / G Fn сопоставить тотальную функцию / : Мк —» М — значение функционального символа / в данной интерпретации; 4) каждому (/с-местному) предикатному символу Р G Рг сопоставить предикат Р : -> {0,1} — значение предикатного символа Р в данной интерпретации. Обычно при разработке элементарного языка уже предполагается заданной предметная область, а константам, функциональным и предикатным символам придается конкретный смысл, т. е. заранее фиксирована некоторая интерпретация этого языка. Эту интерпретацию называют подразумеваемой или стандартной интерпретацией. Пример 5.13. Стандартная интерпретация языка формальной арифметики — это интерпретация с предметной областью N, где константа 0 обозначает число 0, функциональный символ ' обозначает операцию перехода от натурального числа п к следующему натуральному числу п + 1, функциональный символ + обозначает сложение, функциональный символ • — умножение, а предикатный символ = — равенство натуральных чисел. ■ Пример 5.14 • Рассмотрим еще одну интерпретацию языка формальной арифметики с предметной областью N. Пусть константа 0 обозначает число 1, функциональный символ ' обозначает функцию, которая каждому натуральному числу и сопоставляет число 2П, функциональный символ + обозначает умножение натуральных чисел, функциональный символ • обозначает двухместную функцию, которая каждой паре натуральных чисел (m,n) сопоставляет число гап, а предикатный символ = обозначает равенство натуральных чисел. Эта интерпретация не заслуживает особого внимания. Мы рассмотрели ее лишь для иллюстрации того факта, что язык арифметики допускает наряду со стандартной и другие интерпретации. ■ Пример 5.15. Любая группа, любое кольцо и любое поле являются подразумеваемыми интерпретациями языка теории групп, языка теории колец и языка теории полей соответственно. ■ Пример 5.16. Любое частично-упорядоченное множество является подразумеваемой интерпретацией языка упорядоченных множеств. ■ 131 
Пример 5.17. Рассмотрим одну интерпретацию языка планиметрии, лежащую в основе аналитической геометрии. Носителем этой интерпретации является множество R2, т. е. «точки» — это пары действительных чисел. Предикатный символ — обозначает отношение равенства. Значение В предикатного символа В определим так. Пусть даны точки х\ — (ai,bi), х2 — («2,62), х3 = ф3,Ь3). Тогда В(х \,х2,хз) = 1, если и только если хотя бы две из точек яд, £2,^3 совпадают или же все они различны, но выполняются следующие условия: 1) (Ъ2 - Ьг) • (а3 - а2) = (&з - Ъ2) • (а2 - ai); 2) («2 —_ai) • (а3 — «2) > 0, (Ьз — Ъ2) ‘ (Ь2 — Ь\) > 0. Значение D предикатного символа D определим так. Пусть даны точки Х\ = (ai,bi), х2 = (а2,Ъ2), х3 = (a3,b3), х4 = (a4,b4). Тогда JD(xi,X2,x3) = 1, если и только если (о2 - ах)2 + (Ь2 - Ьх)2 = (а4 - а3)2 + (Ь4 - 63)2. ■ Определение 5.7. Непустое множество М с интерпретацией на нем символов сигнатуры ft называется алгебраической системой сигнатуры П и обозначается (М, ft). При этом множество М называют носителем алгебраической системы (М, ft). Мощностью алгебраической системы называется мощность ее носителя. Пример 5.18. Алгебраическая система ОТ = (N,'.+,•,=) — это стандартная интерпретация языка формальной арифметики. ■ Пример 5.19. Алгебраическая система (Z,0, +,-,=) сигнатуры теории колец — это кольцо целых чисел. ■ Пример 5.20. Поле рациональных чисел — это алгебраическая система (Q, 0,1, +,—,*, =) сигнатуры теории полей. Поле действительных чисел и поле комплексных чисел — это соответственно алгебраические системы (R, 0»1?+>т>—) и (С,0,1,+, — ,*,=) той же сигнатуры. ■ Пример 5.21. Множество натуральных чисел N с равенством и естественным порядком < — это алгебраическая система (N,—, <) сигнатуры языка упорядоченных множеств. ■ Пример 5.22. Множество натуральных чисел N, рассматриваемое вместе с отношением равенства = и двухместным пре- 132 
дикатом |, где т\п означает, что число т является делителем числа п, — это алгебраическая система (N, =, |) сигнатуры языка упорядоченных множеств. ■ Пример 5.23. Семейство V(A) всех подмножеств фиксиро¬ ванного множества А, рассматриваемое, вместе с отношениями равенства = и включения С, — это алгебраическая система сигнатуры языка упорядоченных множеств, которую естественно обозначить (V(A), =, С). ■ Формальное определение истинности. Пусть фиксиро¬ вана алгебраическая система Ш = (М, ft). Как и в случае логики предикатов, оценкой переменных в множестве М будем называть произвольную функцию, определенную на конечном множестве переменных и сопоставляющую им элементы из М. Если оценка определена на всех параметрах терма £, будем называть ее оценкой терма t. Индукцией по построению терма t определим элемент множества М, обозначаемый \t\%fi,g и называемый значением терма t в алгебраической системе Ш при оценке д терма t: 1) если t = с, где с G Сп, то [Ь]щд ^ с; 2) если t есть переменная г, то \t\m,g ^ #(т); 3) если t = /(ti, ..., tn), где / G Fn есть n-местный функцио¬ нальный символ, a £i, ..., tn — термы, то каждая оценка д терма t является оценкой каждого из термов П, ... , £п, так что определены значения [ti]m,g для каждого г = 1, ..., п, и мы полагаем йал,р — , [tn\m,g)- Очевидно, хотя это можно строго доказать, что Щш,д зависит только от значений оценки д на параметрах терма t. В частности, если терм t замкнут, то Щш,д не зависит от оценки д и называется значением терма в алгебраической системе Ш. Если из контекста ясно, какая алгебраическая система Ш имеется в виду, вместо Щш,д будем писать просто [t\g или даже [£], если терм t замкнут. Пример 5.24 • Пусть t — это терм (х • х + (1 + 1) • (х • у)) + + у • у языка теории полей, а Ш — поле действительных чисел. Рассмотрим оценку д такую, что д[х) = л/2, д(у) — л/З. Тогда Щд = 5 + 2л/б. ■ Пример 5.25. Значением замкнутого терма 0" • 0" языка формальной арифметики в стандартной интерпретации ОТ этого языка является число 4. ■ 133 
Условимся о следующем обозначении, которое будет использоваться в дальнейшем: если д — оценка переменных в множестве М, v — переменная, т Е М, то д™ будет обозначать оценку, которая совпадает с д на всех переменных, кроме v, а переменной v сопоставляет значение т. Предложение 5.1. Для любых термов t и s(v) сигнатуры ft, любой алгебраической системы {М, ft) и любой оценки д термов t и s(y) имеет место равенство [*(*)]<> = (5Л) где т — [t]g. Суть этого предложения становится прозрачной, если терм s(v) содержит единственный параметр v, вместо которого подставляется замкнутый терм t. Тогда, чтобы найти значение составного замкнутого терма s(t) в алгебраической системе Ш, достаточно найти значение самого терма s (v) при оценке, которая переменной v сопоставляет значение терма t в Ш. Доказательство. Индукция по построению терма s(г). Если s(v) есть константа с, то s(t) = с, так что [s(£)]p = С [s(v)\9™ = = с, и равенство (5.1) доказано. Если s(v) есть переменная и, отличная от v, то s(t) = и, так что [s(£)]p = g(u), [s(v)]grn = g™(u) = = g(u), и снова имеет место (5.1). Если же s(v) = v, то s(t) есть t, так что [s(t)]g = [t]g = m, [s(v)]gnb = g™(v) = m, и (5.1) имеет место. Пусть теперь s(v) = f(si(r), ... ,sn(r)), где / есть (n-местный) функциональный символ, a si(r), . ..,sn(r) — термы, причем для каждого г = 1, ...,п имеет место равенство Тогда s(t) = ■ ■ ■,sn(t)) и [s(t)]g = [/ЫД ••• >sn(0)]<? = /(ЫД<?> ■■■ = = /([Sl(r)]9-> • • • » ЫДдД = [s(u)]ffm, что и требовалось доказать. ■ Пусть фиксирована алгебраическая система Ш — (M,ft). Если оценка переменных в множестве М определена на всех параметрах формулы Ф сигнатуры ft, будем называть ее оценкой формулы Ф. Индукцией по логической длине формулы Ф, т. е. количеству входящих в нее логических связок и кванторов, определим истинностное значение (0 или 1) формулы Ф в алгебраической системе Ш при оценке g формулы Ф, обозначаемое [Ф]ш1,р. 134 
1) Пусть логическая длина Ф равна 0. Тогда Ф = Р(Д, • • •, где Р G Рг есть (n-местный) предикатный символ, ati, ..., tn — термы сигнатуры П, для которых выше определены их значения [ti\g, ..., [tn\g в алгебраической системе Ш при оценке д. В этом случае положим [Ф]щ?,3 ^ P([h\g, ■■■, [tn}g)- Допустим, что для любой формулы Ф, логическая длина которой не превосходит /с, определено истинностное значение [Ф]т,д в алгебраической системе Ш при оценке д формулы Ф, и пусть Ф — формула, логическая длина которой равна к + 1. 2) Если Ф = -пф, то логическая длина формулы Ф равна к. Каждая оценка д формулы Ф является оценкой формулы Ф, и в силу индукционного предположения уже определено значение В этом случае полагаем [Ф]ял,р ^ ДФ]^^ где выражение в правой части определяется в соответствии с истинностной таблицей для логической операции -i; таким образом, [Ф}т,д есть Ф если [Ф]яя?0 = 1, и 1 в противном случае. 3) Если Ф = (Ф1ХФ2), где X G {&, V, D, =}, то логическая длина каждой из формул Ф1 и Ф2 не превосходит к. Каждая оценка д формулы Ф является оценкой формул Ф1 и Ф2, так что в силу индукционного предположения уже определены значения [^i]an,ff и [ф2]ш?,д- в этом случае полагаем [Ф]эл,9 ^ [Ф^эл^ х х МФ'^Ыгд: где выражение в правой части определяется в соот- ветствии с истинностной таблицей для логической операции X. 4) Если Ф = =ЗгФ, то логическая длина формулы Ф равна к, и в силу индукционного предположения для формулы Ф уже определено истинностное значение [Ф]ялд в алгебраической системе Ш при любой оценке h формулы Ф. Для каждой оценки д формулы Ф и каждого т G М оценка д™ является оценкой формулы Ф, так что в силу индукционного предположения уже определены значения [Ф]ая,0™- В этом случае, по определению, [Ф]9Л,р = 1, если и только если найдется такой элемент т G М, что [Ф]ял,р™ — 1* Если Ф = УгФ, то [Ф]яя,р = 1, если и только если для каждого т G М имеет место равенство [Ф]ял,р™ = = 1. Очевидно, хотя это можно строго доказать, что [Ф]ш1,р зависит только от значений оценки д на параметрах формулы Ф. В частности, если Ф — высказывание, то [Ф]т,д не зависит от оценки д и называется значением высказывания в алгебраической системе Ш. Если из контекста ясно, какая алгебраическая система Ш имеется в виду, вместо [Ф]ял,р будем писать просто [Ф]д или даже [Ф], если Ф — высказывание. 135 
Для всякого высказывания Ф языка ft запись Ш |= Ф будет означать, что [Ф] — 1, а запись Ш ф будет означать, что [Ф] = 0. Будем говорить, что высказывание Ф истинно в алгебраической системе 9К, если Ш |= Ф, и ложно в противном случае. Пример 5.26. Пусть Ф — это формула (х • х + (1 + 1) • х) - ((1 + 1) + 1) = 0 языка теории полей, а ШТ — поле действительных чисел. Рассмотрим оценку д, где д(х) — 1. Тогда [Ф]р = 1. Если же д(х) = — — 1, то [Ф}д = 0. Вообще, [Ф}д = 1, только если д(х) = 1 или д(х) = -3. ■ Пример 5.27. Высказывание 0" • 0" = 0" + 0" языка формальной арифметики истинно в стандартной интерпретации этого языка, а высказывание 07/ • О77 = 0/7/ ложно. ■ Пусть фиксирована алгебраическая система Ш = (М, ft). Рассмотрим сигнатуру полученную добавлением к ft имен всех элементов из М. Условимся отождествлять константу, обозначающую элемент га G М, и сам этот элемент. Таким образом, можно считать, что сигнатура Пм содержит константу m для каждого m G М. Алгебраическую систему Ш можно рассматривать как систему сигнатуры Пм, положив га = га. Удобство рассмотрения сигнатуры Г2м состоит в том, что значения замкнутых термов и формул языка Пм можно определить, не привлекая понятие оценки. Так, значение [t] замкнутого терма t определяется индукцией по построению t: 1) если t = с, где с — константа сигнатуры П, то [£] = с; 2) если t = га, где т G М, то [t] = га; 3) если t = f(ti, ... .tn), то [t} = f([h], ..., [tn]). Истинностное значение [Ф] высказывания Ф языка Пм определяется индукцией по количеству вхождений логических связок и кванторов в Ф: 1) [P(h, ...,tn)} = P([ti], ...,[in]); 2) [^Ф] = 1 [Ф]; 3) [Ф1ХФ2] = [Ф1]Х[Ф2] (X € {&, V, D, =}); 4) [\/г? Ф(г?)] = 1 <=^> (Vra G М)[Ф(га)] = 1; 5) [Зг?Ф(г>)] = 1 <=> (3га G М)[Ф(га)] — 1. Пусть Ф(хь ..., хп) — формула языка П, не содержащая свободных переменных, отличных от яд, ..., хп. Анализируя приве¬ 136 
денные определения истинностного значения формулы, нетрудно убедиться, что для любой оценки д имеет место равенство [Ф(жь ...,жп)]/)9 = [Ф(ть ...,тп)\, где mi = д(хг) (г — 1, ..., п). Напомним, что терм t свободен для переменной v в формуле Ф, если никакое свободное вхождение v в Ф не находится в области действия квантора по переменной, входящей в t. Предложение 5.2. Каковы бы ни были терм t и формула Ф(у) языка П, если t свободен для переменной v в Ф(г), то для любой алгебраической системы (М, ft) и любой оценки g терма t и формулы Ф(v) имеет место равенство №)]g = mv)]grn, (5.2) где т = [t\g. Доказательство. Индукция по построению Ф(у). Пусть Ф(у) — атомная формула P(si(v), ..., sn(i;)), где Р — (п-мест- ный) предикатный символ, a si(v), ...,sn(v) — термы. В силу предложения 5.1 для г = 1, ..., п имеет место [si(t)]g — [si(v)]grn, так что №(t)}9 = Р(Ы*)}д, • ■ • > [Sn(t)]g) = = • • • > = [фН]<с> и равенство (5.2) доказано. Пусть теперь Ф(г?) = -1ф(г;), причем для формулы Ф(г?) доказываемое утверждение имеет место, т. е. выполняется равенство [Ф(*)Ь = №)]<«?*• ТоГДа [т]д = = -№)k-* = [*(«)]<c. так что (5.2) доказано. Если Ф(г?) = Ф1(г?)ХФ2(г?), где X — одна из связок &,V, D,=, и для г = 1,2 имеет место [Фi(t)]g = [Фi(v)]grn, то [т]д = [Ф1(*)]9Х[Ф2(*)]в = = [*(«)],*», так что (5.2) доказано. Пусть Ф(у) = 3?хФ(г;), где и — переменная, отличная от г?, причем для любой оценки /г, определенной на всех параметрах формулы Ф и терма £, имеет место равенство [Ф(£)]/* = [Ф(г;)]^ь, где Ъ — [t\h- Тогда имеем: 137 
т)}9 = 1 ^ (За G М) [Ф(*)]й = 1 ФФ (За € М) [Ф(*)]г.ь = 1, (5.3) где Ь = [t]ga. Теперь вспомним, что терм t свободен для переменной v в формуле Ф(г), а это значит, что переменная и не входит в £, так что [t]ga = [t]g: т. е. b — га, и из (5.3) получаем [Ф(£)]э = 1 фф (3 а ем) [Ф(«)]д.т = 1 о <£> (За G М) [Ф(г;)]9та = 1 ФФ> [ЗмФ(«)]рт = 1 ФФ> [Ф(и)]рт = 1, откуда вытекает (5.2). Аналогично, если Ф(г) = \/тхФ(г;), то т)]д = 1 О (Va G М) [Ф(t)]ga = 1 ФФ (Va G М) [Ф(и)]9-т = 1 ФФ •ФФ- (Vo € М) [Ф(и)]9{п« = 1 [УиФ(и)]3пг = 1 ФФ- [Ф(и)]гт - 1, откуда вытекает равенство (5.2). ■ Выполнимость и общезначимость. Определение 5.8. Формула Ф языка ft называется выполнимой,, если существуют такие алгебраическая система Ш — (М, ft) и оценка д, что [Ф]<ш,р = 1- Поскольку истинностное значение замкнутой формулы не зависит от оценки, то высказывание Ф языка ft является выполнимым, если существует такая алгебраическая система Ш сигнатуры ft. что Ш |= Ф. Такая алгебраическая система 9Л называется моделью высказывания Ф. Если же 9Л У=- Ф, то ЗДТ называется контрмоделью для Ф. Таким образом, замкнутая формула выполнима, если она имеет модель. Из определения 5.8 следует, что формула Ф(х\. ... ,хп) языка ft, не содержащая параметров, отличных от х\. ...,жп, выполнима, если существуют алгебраическая система Ш — (М, ft) и mi, .. •, тпп G М такие, что истинно высказывание Ф(тп1, ..., тп) языка Пм- Заметим, что формула Ф(х\, ...,хп) выполнима тогда и только тогда, когда выполнимо ее экзистенциальное замыкание — высказывание Зх\... Зхп Ф(х\, ..., хп). Множество замкнутых формул Г называется выполнимым, если существует такая алгебраическая система 9К, что Ш |= Ф для всякой формулы Ф Е Г; в этом случае Ш называется моделью множества формул Г. Запись Ш |= Г означает, что 9Л — модель множества Г. 138 
Определение 5.9. Формула Ф языка ft называется общезначимой или тождественно истинной, если для любой алгебраической системы Ш сигнатуры ft и любой оценки g имеет место равенство [Ф]ая,р = 1. Запись \= Ф означает, что формула Ф общезначима. Из определения 5.8 следует, что высказывание Ф языка ft является общезначимым, если Ш |= Ф, какова бы ни была алгебраическая система Ш сигнатуры ft. Таким образом, замкнутая формула Ф языка ft общезначима, если каждая алгебраическая система сигнатуры ft является моделью высказывания Ф. Формула Ф(яд, ... ,хп) языка ft, не содержащая параметров, отличных от яд, ..., хп, общезначима, если для любой алгебраической системы Ш = (М, ft) и любых элементов mi, ..., тп Е М истинно высказывание Ф(т1, ...,mn) языка 0>м- Нетрудно заметить, что формула Ф(яд, ... ,хп) общезначима тогда и только тогда, когда общезначимо ее универсальное замыкание — высказывание Мх 1... Мхп Ф(яц, ..., хп). Важный пример общезначимых формул дает следующая теорема. Теорема 5.1. Если терм t свободен для v в формуле Ф(г), то формулы \/уФ(у) D Ф(£) и Ф(£) D ЗгФ(г) общезначимы. Доказательство. Пусть терм t свободен для переменной v в формуле Ф(у) сигнатуры ft, и пусть Ш = (M,ft) — алгебраическая система сигнатуры ft, a g оценка в М. Докажем, что [УуФ(у) Э Ф(4)]зп,р = 1- (5.4) Заметим, что [Vw$(v) D Ф(«)]от,9 = ^Ф(у)Ы,д D [Ф(0]ал,р. Очевидно, что (5.4) выполнено, если [\/гФ(г)]9л,р = 0. Пусть теперь [Vr Ф{и)]ш,д — 1- Тогда для любого гпЕМ, в частности для т = [t\g, имеет место [Ф(у)]т,д™ — 1- Но в силу предложения 5.2 [Ф(Ь)]ш,д — №(v)]wi,g™ = 1? так что имеет место (5.4). Докажем, что [Ф(£) D ЗиФ(г))]ал)9 = 1. (5.5) Заметим, что [Ф(£) э Зг>Ф(^)]ш1)3 = [Ф(£)]эп,<, ^ [Эг> Ф('Ь’)]*от,р> и (5.5) имеет место, если [Ф(Ь)]<т,д = 0- Пусть [Ф(t)]<m,g — 1- Тогда в силу предложения 5.2 [Ф(v)]yfi,g™ = [Ф(£)]ял,р = 1? но это озна- 139 
чает, что [ЗиФ(у)]ш д — 1> так что и в этом случае имеет место (5.5). ’ > Убедимся, что в теореме 5.1 существенно требование, чтобы терм t был свободен для переменной v в формуле Ф(г). Пример 5.28. Пусть Ф(х) есть формула Зу-^х — у языка формальной арифметики. Очевидно, что терм у не свободен для х в Ф(х). Заметим, что Ф(у) есть формула Зу-^у = у. Но формула УхФ(х) D Ф(у), которая есть \/х Зу -п х = у D Зу -л у = у, не общезначима, поскольку не истинна в стандартной интерпретации языка формальной арифметики. ■ Напомним, что если Фх, ..., Фп — формулы сигнатуры П, то результат подстановки этих формул вместо предикатных переменных Pi, ..., Рп в предикатную формулу А(Р\, ..., Рп) — это формула -А(Ф1, ..., Фп) сигнатуры П, полученная заменой каждого вхождения в А{Р\) ...,РП) атомной формулы вида Рфщ, на Ф^гд/яд, ..., иШг / Хтг] при условии, что каждая из переменных Vj (j = 1, свободна для xj в Ф*. Напом¬ ним также, что подстановка формул Фх, ...,Фт вместо предикатных переменных Pi, ..., Рт в предикатную формулу А считается свободной, если каждая формула Ф* (г = 1, . ..,га) свободна для Р{ в А в том смысле, что никакая подформула вида Р(гд, ... ,гп) в формуле А не находится в области действия квантора Vr или =3щ где v — свободная переменная формулы Ф*, отличная от од, ..., хп. Теорема 5.2. Пусть A(Pi, ...,РП) — общезначимая предикатная формула, и подстановка формул Ф1, ... , Фп языка П вместо предикатных переменных Pi, ..., Рп в А(Р\, ..., Рп) является свободной. Тогда формула -А(Фь ... , Фп) общезначима. Доказательство. Так как подстановка Ф1, ..., Фп вместо предикатных переменных Pi, ...,РП в А(Р\, ...,РП) свободна, то параметрами формулы Л(Ф1, ...,ФП) являются в точности свободные переменные каждой из формул Ф*, отличные от ад, ..., xmi, где mi — валентность Pi, а также все свободные переменные формулы .A(Pi, ..., Рп). Пусть это будут переменные гд, ...,г/с. Теперь, если фиксирована алгебраическая система Ш = (М, Н), то формула Л(Ф1, ..., Фп) задает к-местную выска- 140 
зывательную форму Ф(щ, Если переменным гд, придать значения ai, ...,<2/; Е М, то получится высказывание, означающее то же самое, что и формула А{Р\, ... ,РП) в интерпретации /, при которой значением каждой предикатной переменной Pi (г = 1, ..., и) является тщ-местный предикат, задаваемый высказывательной формой Ф*, в которой «лишние» параметры замещены их значениями из списка ai, ...,а&, и оценке, которая свободным переменным формулы А(Р\, ..., Рп) придает соответствующие значения из списка ai, ..., а&. Так как формула -A(Pi, ..., Рп) по условию общезначима, то высказывательная форма Ф(щ, ... ,Vk) принимает значение 1 при любых значениях ее параметров, а это означает, что [А(Ф1, ..., Фп)]р = 1 для любой оценки д, т. е. формула А(Ф1, ..., Фп) общезначима. ■ Равносильные формулы. Определение 5.10. Формулы Ф и Ф языка ft называются равносильными, если [Ф]*т,д = [Ф]ап,р? каковы бы ни были алгебраическая система Ш сигнатуры ft и оценка д. Тот факт, что формулы Ф и Ф равносильны, обозначается так: Ф ~ Ф. Нетрудно заметить, что формулы Ф и Ф равносильны тогда и только тогда, когда формула Ф = Ф общезначима. Замкнутые формулы (высказывания) Ф и Ф равносильны, если и только если в любой алгебраической системе истинностные значения высказываний Ф и Ф совпадают, а формулы со свободными переменными Ф(ж1, . ..,хп) и Ф(хь ...,хп) равносильны тогда и только тогда, когда в любой алгебраической системе Ш = (М, ft) для любых элементов mi, ..., тп Е М истинностные значения высказываний Ф(т1, ... , mn) и Ф(т1, ... , mn) языка Нм совпадают. Очевидно также, что отношение ~ рефлексивно (Ф ф), симметрично (если Ф ~ Ф, то Ф ~ Ф) и транзитивно (если Ф1 ~ Ф2 и Ф2 ~ Фз, то Ф1 ~ Ф3). Таким образом, ~ — отношение эквивалентности на множестве всех формул сигнатуры ft. Следующее довольно очевидное утверждение называют теоремой об эквивалентной замене. Теорема 5.3. Если формула Ф' получена заменой в формуле Ф подформулы Ф на формулу Ф', причем Ф ~ Ф', то Ф ~ Ф'. Теорема 5.3 дает важный способ равносильных преобразований формул: если часть формулы Ф заменяется на равносильную, то в результате получается формула, равносильная формуле Ф. 141 
В подразд. 2.6 был установлен ряд равносильностей логики высказываний. Довольно очевидно, что теорема 2.22 останется в силе, если в ней считать, что А, В, С — формулы любого элементарного языка. Следующая теорема дает ряд новых равносильностей общего вида, аналогичных тем, что были установлены в логике предикатов. Теорема 5.4. Каковы бы ни были формула Ф(гф формула Ф, не содержащая свободно переменную у, и переменная г/, не входящая в формулу Ф(г>), имеют место следующие равносильности: 1) -ММуФ(у) ~ Зу-^Ф(у): 2) ~'ЭуФ(у) ~ \/у-^Ф(у)] 3) (Му Ф(у) кФ) ~ to (Ф{у) к Ф); 4) (ФкМуФ(у)) ~Му(ФкФ(у))] 5) (Зу Ф{у) & Ф)~Зу (Ф(г?) к Ф); 6) (Ф к Зг Ф(г)) ~ Зу (Ф к Ф(г?)); 7) (Му Ф(у) V Ф) ~ \/v (Ф(г) V Ф); 8) (Ф V Му Ф(г)) ~ Му (Ф V Ф(Д); 9) (Зу Ф(у) V Ф) ~ Зу (Ф(у) V Ф);. 10) (Ф V Зу Ф(у)) ~ Зу (Ф V Ф(г?)); 11) (МуФ(у) D Ф) ~ Зу(Ф(у) D Ф); 12) (Ф D Му Ф(?;)) ~ Му (Ф D Ф(ф)); 13) (Зу Ф(у) D Ф) - W (Ф(у) D Ф); Ц) (Ф D ЗгФ(г)) ~ Зу (Ф D Ф(Д); 15) МуФ(у) ~ Vu Ф(гх); 16) Зу Ф(у) Зи Ф(и). Доказательство. Начнем с равносильности 15). Пусть Ф(у) — формула языка П, причем у, уi, ... , уп — все ее параметры. Поэтому для Ф(г?) будем употреблять обозначение Ф(г,гх, ..., уп). Пусть переменная и не входит в формулу Ф(г>), так что щ У\, ... , уп — все параметры формулы Ф(гх), которую обозначим Ф(щщ, ... , гп). Докажем, что в любой алгебраической системе 9К = (МД) для любых элементов mi, ..., тп Е М истинностные значения высказываний Му Ф(щ mi, ..., тп) и МиФ(и,а\, ...,ап) языка Пм совпадают. Пусть фиксированы алгебраическая система Ш = (МД) и элементы mi, ...,mn. Истинность \/г;Ф(г;, mi, ...,тп) означает, что (Mm Е М) Ш |= Ф(т,т1, ..., тп). Но это в точности есть условие истинности высказывания Ми Ф(щ mi, ..., mn). Для доказательства 16) заметим, что для любой алгебраической системы Ш = (М, Q) и любых mi, ..., тп Е М условие ис¬ 142 
тинности высказываний ЗгФ(г;,га1, ..., тп) и Зи Ф(и. а\. . ..,ап) языка 0<м одно и то же, а именно, (Зга Е М) 9Л \= Ф(га, rai, ..., win)- Теперь доказательство равносильностей 1) —14) можно свести к соответствующим равносильностям из теоремы 4.5. Рассмотрим, например, равносильность 1). Пусть Ф(г>) — произвольная формула языка П, а и, щ, ... ,г;п — все ее параметры, так что формулу Ф(г) обозначим Ф(щ щ, ..., vn). Равносильность 1) означает, что в любой алгебраической системе Ш = (М, П) для любых rai, ... ,тп из М истинно -Л/г; Ф(щ rai, ...,гап) = = Зг;-пФ(г;, rai, ... , гап). Таким образом, мы свели задачу доказательства равносильности 1) к случаю, когда Ф(у) — формула языка не содержащая параметров, отличных от г;. С по¬ мощью равносильностей 15), 16) и теоремы об эквивалентной замене можно так переименовать связанные переменные в формуле Ф(г;), что получится равносильная ей формула, не содержащая кванторов по переменной х\. Будем считать, что формула Ф(у) уже удовлетворяет этому условию. Частным случаем равносильности 1) из теоремы 4.5 является равносильность -1 \/уР{у) ~ Зг;-|Р(?;), где Р — одноместная предикатная переменная. Это означает, что предикатная формула -Л/г; Р(у) = = 3у-*Р(у) общезначима. Очевидно, что подстановка Ф(х{) вместо Р в эту предикатную формулу свободна. Поэтому по теореме 5.2 формула ~Л/г;Ф(г;) = Зг; —>Ф(г;) общезначима, а это доказывает равносильность 1). Так же доказываются равносильности 2) -14). ■ 5.6. Предваренные формулы Формула Ф сигнатуры ft называется предваренной, если она не содержит кванторов или имеет вид Q\X\... Qnxnty, где Ф — бескванторная формула, a Qi (г = 1, ..., п) есть символ V или 3. Пример 5.29. \/х (х = О V у = 0) — предваренная формула языка формальной арифметики, а формула \/хх = 0\/у = 0 не является предваренной. ■ Теорема 5.5. Для любой формулы Ф языка П можно построить равносильную ей предваренную формулу Ф/ того же языка. Доказательство. С помощью равносильности 12) из теоремы 2.22 для формулы Ф можно построить равносильную ей 143 
формулу, не содержащую = . Поэтому можно считать, что Ф не содержит =. Теперь применим индукцию по построению формулы Ф. Если Ф — атомная формула, то она по определению является предваренной формулой, так что можно положить Ф7 ^ Ф. Пусть Ф = —«Ф, причем для формулы Ф построена равносильная ей предваренная формула Ф7. Тогда по теорема 5.3 Ф ~ -чф7. Пусть Ф7 = Q\V\... QnVn^ff, где Qi, ..., Qn — кванторные символы, а Ф7/ — бескванторная формула. Тогда Ф ~ ... QnVn'b"- Применяя равносильности 1) и 2) из теоремы 5.4, получаем, что -<>1^1 . . . QnVn'b" ~ QlVl ■ ■ ■ QnVn^", где V есть 3, а 3 есть V. Таким образом, можно положить Ф' Qm...Qnvn^". Пусть Ф = Ф1ХФ2, где X Е {&, V, D}, причем для формул Ф1 и Ф2 построены равносильные им предваренные формулы Ф7г и Ф^. Тогда Ф ~ Ф^ХФ^. Индукцией по суммарному количеству кванторов в формулах Ф7г и Ф2 нетрудно доказать, что для формулы Ф^ХФ^ существует равносильная ей предваренная формула. Для этого используются подходящие равносильности из теоремы 5.4. Пусть Ф = Qv Ф, где Q Е {V, 3}, причем для формулы Ф построена равносильная ей предваренная формула Ф7. Тогда формула Ф равносильна предваренной формуле Qv Ф7. ■ Построение предваренной формулы, равносильной данной формуле Ф, называют приведением формулы Ф к предваренной форме. Пример 5.30. Приведем к предваренной форме формулу языка формальной арифметики -dxx7 = OVVxx = О7. Для этого построим последовательность равносильных формул, указывая номер равносильности из теоремы 5.4, которая используется для получения очередной формулы: -чЗх х7 — О V Vx х = О7 ~2 Vx -ix7 = О V Vx х = О7 ~8 ~8 Vx (Vx -ix7 = О V х = О7) ~i5 Мх (Му -• у' = О V х = О7) ~7 ~7 Мх Му (-чу7 = О V х — О7). ■ 
Глава б ИСЧИСЛЕНИЕ ПРЕДИКАТОВ На подходящем элементарном языке можно записывать отдельные утверждения, относящиеся к той или иной области математики. В данной главе рассматривается вопрос о формализации математических рассуждений. Будет дано строгое математическое определение логического следования и приведена дедуктивная система, служащая для формализации логических рассуждений, применяемых в математике. 6.1. Логическое следование Пусть ft — сигнатура некоторого элементарного языка. Говорят, что высказывание Ф языка ft логически (семантически) следует из множества высказываний Г языка П, и пишут Г |= Ф, если Ф истинно во всякой модели множества Г. В этом случае высказывание Ф называется логическим следствием множества высказываний Г. Теорема 6.1. Каковы бы ни были высказывание Ф и множество высказываний Г языка П, имеет место Г \= Ф тогда и только тогда, когда множество Г U {-ф} невыполнимо. Доказательство. 1) Пусть Г |= Ф. Докажем, что множество Ги{-|ф} невыполнимо. Допустим противное, т. е. что существует модель Ш множества Г U {->Ф}. Тогда 9Я|=ГиЗДТ|=-нФ. Но так как Ф логически следует из Г, то Ф истинно в любой модели множества Г, в частности, Ш |= Ф, что невозможно. Полученное противоречие показывает, что множество Г U {—<Ф} невыполнимо. 2) Пусть множество Г U {—>Ф} невыполнимо. Докажем, что имеет место Г |= Ф. Пусть Ш — модель множества Г. Тогда непременно Ш |= Ф, ибо в противном случае Ш была бы моделью множества Г U {—<Ф}, что невозможно. ■ 145 
Понятие логического следствия из множества высказываний Г особенно интересно в случае, когда Г — множество аксиом некоторой математической теории, записанных на элементарном языке. Нахождение логических следствий из данной системы аксиом составляет основное содержание деятельности математиков. Но как практически искать логические следствия из аксиом? Ясно, что нет смысла действовать в соответствии с определением логического следствия, т. е. перебрать все модели данной системы аксиом и убедиться, что в них истинно данное утверждение, ибо у совместной теории бесконечно много моделей. Все же иногда путем некоторого рассуждения удается доказать, что то или иное утверждение логически следует из аксиом. Такое рассуждение мы называем доказательством, а полученное с его помощью следствие из аксиом — теоремой. Оказывается, что таким образом можно доказать любое утверждение, логически вытекающее из аксиом, записанных в виде формул элементарного языка, а необходимые для этого методы доказательства можно полностью обозреть и систематизировать. Это делается с помощью исчисления предикатов. 6.2. Аксиомы и правила вывода классического исчисления предикатов Пусть фиксирован некоторый элементарный язык сигнатуры П. Исчисление предикатов в сигнатуре П задается следующим набором схем аксиом: 1. A D (В D А); 2. (Аэ B)D ((И D (J3 э С)) D (A D С)); 3. А к В D А; 4. АкВ D В; 5. Аэ (Вэ АкВ)-, 6. А э А \/ В\ 7. В D A VB; 8. (А Э С) Э ((В Э С) Э (А V В D С)); 9. (А = В) э (А э В)- 10. (А = В) э (В э А); 11. ((A D В) D ((В D A) D (А = В)); 12. (А Э В) Э ((A D -'В) D -•А); 13. -1->А D А; 14. Vv A(v) D A(t); 146 
15. A(t) D 3vA(v). В схемах 14 и 15 A(v) — произвольная формула языка Г2, у — переменная, t - терм сигнатуры Г2, свободный для у в А(у) (т. е. никакое свободное вхождение переменной v в формулу А(у) не находится в области действия квантора по переменной, входящей в терм £), A(t) — результат подстановки терма t вместо всех свободных вхождений переменной у в формулу А(у). Правилами вывода исчисления предикатов являются: A A В (I) — (modus ponens или МР); В (II) ——(удаление квантора существования); 3v A D В В Z) А (III) g у д{введение квантора всеобщности). В правилах (II) и (III), называемых правилами Берпайса, А и В — произвольные формулы сигнатуры П, у — произвольная переменная, не имеющая свободных вхождений в формулу В. Определение 6.1. Выводом в исчислении предикатов называется конечная последовательность формул Фх, ...,Фп такая, что для каждого i = 1, ...,п формула Ф* либо есть аксиома, либо получается из одной или двух предыдущих формул по одному из правил вывода. Говорят, что формула Ф выводима в исчислении предикатов и пишут Ь Ф, если существует вывод в исчислении предикатов, оканчивающийся формулой Ф. Будем говорить, что применение правила (II) или (III) связывает переменную v. Пример 6.1. Пусть сигнатура П содержит одноместный предикатный символ Р. Следующая последовательность формул является выводом формулы \/х Р(х) D VyP(y): 1) МхР(х) D Р(у) (аксиома 6.2); 2) \/хР(х) D \/уР(у) (получено по правилу (III) из формулы 1). Здесь применение правила (III) связывает переменную у. ■ Пусть Г — некоторое множество формул, условно называемых гипотезами. Определение 6.2. Квазивыводом из множества гипотез Г называется конечная последовательность формул Фх, ..., Фп такая, что для каждого г = 1, ... ,п формула Ф^ либо есть акси¬ 147 
ома, либо есть гипотеза (т. е. принадлежит множеству Г), либо получается из одной или двух предыдущих формул по одному из правил вывода. Понятие квазивывода не может служить формальным аналогом логического рассуждения, если гипотезы содержат свободные переменные. Пример 6.2. Пусть сигнатура содержит одноместный предикатный символ Р. Следующая последовательность формул является квазивыводом VxP(x) из множества гипотез {Р(х)}: 1) Р(х) (гипотеза); 2) -i-iVxP(x) D МхР{х) (аксиома 13); 3) Р{х) D ((-n-nVxP(x) D МхР(х)) D Р(х)) (аксиома 1); 4) (-i-iVxP(x) D VxP(x)) D Р(ж) (получено из 1) и 3) по правилу МР); 5) (-i-iVxP(x) D VxP(x)) D VxP(x) (получено из 4) по правилу Бернайса (III)); 6) VxP(x) (получено из 2) и 5) по правилу МР). Очевидно, что высказывание УхР(х) не может рассматриваться как разумное следствие из предположения, что имеет место Р(х). Например, если мы говорим «Пусть р — простое число», то в дальнейшем рассуждении мы не вправе рассматривать р как свободную переменную, принимающую произвольные значения, в результате чего получается неверный вывод, что все числа простые. ■ Таким образом, если в гипотезах имеются свободные переменные, то по существу их следует рассматривать как константы по крайней мере в тех формулах, которые в данном квазивыводе зависят от гипотез в следующем смысле. Для каждого квазивывода Фх, ...,Фп определим по индукции множество формул Д(Фг) Q Г (г = 1, ... ,п): 1) если Фг есть аксиома, то Д(ФД = 0; 2) если Фг есть гипотеза, то Д(ФД = {ФД; 3) если Фг получена по правилу МР из Ф& и Ф/ (&;,/ < г), то Д(Фг) — Д(Ф/с) U Д(Ф/); 4) если Фг получена по правилу (II) или (III) из формулы Ф& (к < г), то Д(Фг) = Д(Фк)- Если гипотеза Ф G Г принадлежит множеству Д(ФД, будем говорить, что в данном квазивыводе формула Ф^ зависит от гипотезы Ф. 148 
Определение 6.3. Выводом из множества гипотез Г называется квазивывод из Г, удовлетворяющий следующему условию: всякое применение в этом квазивыводе правила (II) или (III) к формуле Ф* связывает переменную, не входящую свободно ни в одну из формул из множества Д(Ф^). Говорят, что формула Ф выводима из множества гипотез Г и пишут Г Ь Ф, если существует вывод из множества Г, оканчивающийся формулой Ф. Заметим, что Ь Ф означает то же самое, что и 0 Ь Ф. Пример 6.3. Следующая последовательность является выводом Q(x) из множества (Р(ж), \/у (Р(у) D Q(y))}: 1) Vy(P(y) D Q{y)) (гипотеза); 2) \/y(P(y) D Q(y)) D (P(x) D Q(x)) (аксиома 6.2); 3) P(x) D Q(x) (получено по правилу МР из 1 и 2); 4) Р(х) (гипотеза); 5) Q(x) (получено по правилу МР из 3 и 4). ■ Пример 6.4. Пусть переменная и не входит в формулу Ф(у). Следующая последовательность является выводом формулы ЗиФ(и) из множества гипотез (Зг?Ф(г?)}: 1) =Зг?Ф(г?) (гипотеза); 2) Ф(г) D ЗиФ(и) (аксиома 6.2); 3) Зг?Ф(г?) D ЗиФ(и) (получено по правилу (II) из 2); 4) ЗиФ(и) (получено по правилу МР из 1 и 3). ■ Отметим некоторые очевидные свойства отношения К 1) Монотонность: если ГРФиГСД, тоДЬФ. 2) Компактность: если Г h Ф, то существует такое конечное множество Д С Г, что Д Ь Ф. Следующая теорема называется теоремой о корректности исчисления предикатов. Теорема 6.2. Всякая формула языка П, выводимая в исчислении предикатов в сигнатуре П, общезначима. Доказательство. Каждая аксиома исчисления предикатов общезначима. Это очевидно для аксиом, полученных по схемам 1 — 13, так как каждая из них получается подстановкой формул языка ft в общезначимую пропозициональную формулу и потому общезначима в силу теоремы 5.2. Общезначимость аксиом, полученных по схемам 14 и 15 устанавливает теорема 5.1. Довольно очевидна также корректность каждого из трех правил вывода: при применении этих правил к общезначимым формулам полу¬ 149 
чается общезначимая формула. Это позволяет утверждать, что в процессе вывода общезначимость формул сохраняется, так что последняя формула в каждом выводе также общезначима. ■ Определение 6.4. Тавтологией языка ft называется формула, получающаяся подстановкой формул языка ft вместо пропозициональных переменных в пропозициональную тавтологию. Пример 6.5. Если Ф - произвольная формула языка Г2, то формула Ф D Ф является тавтологией языка ft. ■ Теорема 6.3. Всякая тавтология языка ft выводима в исчислении предикатов в сигнатуре П. Доказательство. Пусть тавтология языка ft получена подстановкой формул Фх,... , Фп языка ft в пропозициональную тавтологию А(Р\,... , Рп) вместо Рх,... , Рп соответственно, т. е. имеет вид А(Фх, ...,ФП). В силу теоремы о полноте исчисления высказываний (см. теорему 3.11), существует вывод формулы А(Рх, ..., Рп) в исчислении высказываний. Поскольку все схемы аксиом исчисления высказываний являются схемами аксиом исчисления предикатов, то, заменив в этом выводе пропозициональные переменные Рх, ..., Рп на формулы Фх, ..., Фп, а остальные пропозициональные переменные — на произвольные формулы языка П, получим вывод формулы А(Фх, ..., Фп) в исчислении предикатов, что и требовалось. ■ б.З. Теорема о дедукции и другие допустимые правила вывода Следующая теорема называется теоремой о дедукции для исчисления предикатов. Теорема 6.4. Каковы бы ни были множество формул Г и формулы Ф, Ф, если Г U {Ф} Ь Ф, то Г Ь Ф D Ф. Доказательство. Сначала отметим одно свойство отношения выводимости. Пусть имеется вывод Фх, ... ,ФП формулы Ф из множества гипотез Г, в котором Ф не зависит от гипотезы Ф G Г. Вычеркнем из него все формулы Ф^, для которых Ф G Д(Ф^). Нетрудно проверить, что получившаяся новая последовательность формул является выводом из множества Г \ {Ф} и оканчивается формулой Ф, т. е. является выводом формулы Ф из Г \ {Ф}. Более того, в полученном выводе каждая формула 150 
зависит от тех же гипотез, от которых она зависела в исходном выводе. Приступим к доказательству теоремы. Пусть Фх, ..., Фп вывод формулы Ф из множества гипотез Ги{Ф}. Для г — 1, ... , п через Д'(Фг) обозначим множество тех гипотез из Г, от которых в этом выводе зависит Ф* (иными словами, Д'(Фг) = Д(Фг )ПГ). По индукции докажем, что для любого i — 1, ... ,п существует вывод из Г формулы Ф D Фд в котором Ф D Фг не зависит от гипотез, не входящих в Д'(ФД Сначала рассмотрим случай, когда в выводе Фх, ..., Фп формула Ф^ не зависит от Ф. Тогда, как мы заметили выше, существует вывод формулы Ф* из Г, в котором Ф* зависит от тех же гипотез, что и в исходном выводе, так что Д'(Ф^) = Д(Фг). Продолжим этот вывод до вывода формулы Ф D Ф* из Г: ... [вывод формулы Ф* из Г] а) Ф* (зависит от Д(Ф*)); а+1) Фг D (Ф D Фг) (аксиома 1, зависит от 0); а+2) Ф D Ф* (получено по правилу МР из формул а) и а| 1), зависит от Д(Ф^), которое есть Д'(Ф^)). Теперь рассмотрим случай, когда Ф* есть формула Ф. Так как формула Ф D Фд т. е. Ф D Ф, является тавтологией, то в силу теоремы 6.3 существует ее вывод в исчислении предикатов, который является также выводом из Г, причем в этом выводе формула Ф D Ф не зависит ни от каких гипотез, в частности, не зависит от гипотез, не входящих в Д'(Фг). Перейдем к доказательству по индукции для общего случая. Если i — 1, то формула Ф* либо совпадает с Ф, либо является аксиомой или принадлежит множеству Г\{Ф} и потому не зависит от Ф. В обоих случаях утверждение доказано выше. Пусть г — к +1, и для каждого j < к доказываемое утверждение верно, т. е. существует вывод из Г формулы Ф D Ф^ , в котором Ф^ не зависит от гипотез, не входящих в Д'(Ф^). В случаях, когда Ф* является аксиомой или гипотезой из Ги{Ф}, утверждение уже доказано. Рассмотрим случай, когда в исходном выводе из Г U {Ф} формула Ф* получена по одному из правил вывода. Пусть формула Ф* получена по правилу МР из формул Ф^ и Фi (jj < к), причем Ф/ = Ф^ D Ф*. Тогда Д'(Фг) = Д7(Ф^) U U Д'(Фг). По индуктивному предположению, существует вывод из Г формулы Ф D Ф^, в котором Ф D Ф^ не зависит от гипотез, не входящих в Д/(Ф<7-), а также существует вывод из Г формулы 151 
Ф D Ф/, в котором Ф D Ф/ не зависит от гипотез, не входящих в Д'(Ф^). Выпишем подряд эти выводы и продолжим их до вывода из Г формулы Ф D Ф^: ... [вывод из Г формулы Ф D Ф;] a) Ф D Ф^ (зависит только от Д'(Ф^)); ... [вывод из Г формулы Ф з ф|] b) Ф D (*з Э Фг) (зависит только от Д'(Ф/)); Ь+1) (Ф D Ф^) D ((Ф D (Ф^- D Фг)) D (Ф D Фг)) (аксиома 2, зависит от 0); Ь+2) (Ф D (Ф^ D Ф^) D (Ф D Фг) (получено по правилу МР из формул а) и Ь+1), зависит только от Д'(Ф^)); Ь+3) Ф D Ф^ (получено по правилу МР из Ь) и Ь+2), зависит ТОЛЬКО ОТ Д7(Ф,) U Д'(Ф/) = Д'(Фг)). Пусть формула Фг получена по правилу (II) из формулы Ф^ (j < к). В этом случае формула Ф^ имеет вид Ф7 D Ф, а формула Фг имеет вид ЗуФ' d Ф, где Ф7 и Ф — формулы сигнатуры П, у — переменная, не имеющая свободных вхождений в Ф. При этом Д(Фг) = Д(Ф^). Случай, когда Ф^ не зависит от Ф, нами уже рассмотрен. Поэтому будем считать, что Ф^ зависит от Ф. Следовательно, Ф^ также зависит от Ф. Отсюда и из определения вывода из гипотез вытекает, что Ф и все формулы из Д'(Ф^) не содержат свободных вхождений переменной v. По индуктивному предположению, существует вывод из Г формулы Ф D Ф^ (т. е. формулы Ф D (Ф7 D Ф)), в котором Ф D Ф^ не зависит от гипотез, не входящих в Д'(Ф^). Продолжим его до вывода из Г формулы Ф D Фг (т. е. формулы Ф D (Е+Ф7 D Ф)), в котором Ф D Фг не зависит от гипотез, не входящих в Д'(Фг): ... [вывод из Г формулы Ф D (Ф7 D *)] a) Ф D (Ф7 D Ф) (зависит только от Д'(Ф^)); ... [вывод формулы Ф7 D (Ф D Ф) из формулы Ф D (Ф7 D Ф) средствами исчисления высказываний]; b) Ф7 D (Ф D Ф) (зависит только от Д7(Ф^)); Ь+1) ЗгФ7 D (Ф D Ф) (получено по правилу (II) из Ь), зависит только от Д7(Ф^)); ... [вывод формулы Ф D (=ЗгФ7 D Ф) из ЕЬФ7 D (Ф D Ф) средствами исчисления высказываний]; c) Ф D (ЗгФ7 D Ф) (зависит только от Д'(Ф^) — Д7(Фг)). Таким образом, случай, когда формула Ф^ получена по правилу (II), полностью рассмотрен. Пусть формула Ф^ получена по правилу (III) из формулы Ф^ (j < к). В этом случае формула Ф^ имеет вид Ф D Ф7, а формула 152 
Ф* имеет вид Ф D Mv Ф7, где Ф7 и Ф — формулы сигнатуры П, v — переменная, не имеющая свободных вхождений в Ф. При этом Д(Фг) = Д(Ф^). Случай, когда Ф* не зависит от Ф, нами уже рассмотрен. Поэтому будем считать, что Ф* зависит от Ф. Следовательно, Ф^ также зависит от Ф. Отсюда и из определения вывода из гипотез вытекает, что Ф и все формулы из Д^Ф^) не содержат свободных вхождений переменной v. По индуктивному предположению, существует вывод из Г формулы Ф D Ф^ (т. е. формулы Ф D (ф D Ф7)), в котором Ф D Ф^ не зависит от гипотез, не входящих в Д^Ф^). Продолжим его до вывода из Г формулы Ф D Фг (т. е. формулы Ф D (Ф D \/гФ7)), в котором Ф D Ф^ не зависит от гипотез, не входящих в Д7(Ф*): ... [вывод из Г формулы Ф D (Ф D Ф')] a) Ф D (Ф D Ф7) (зависит только от Д7(Ф^)); ... [вывод формулы Ф&Ф D Ф' из формулы Ф D (Ф D Ф7) средствами исчисления высказываний]; b) Ф&Ф D Ф7 (зависит только от Д'(Ф^)); Ь+1) Ф&Ф D Уу Ф7 (получено по правилу (III) из формулы Ь), зависит только от Д7(Ф^)); ... [вывод формулы Ф D (Ф D \/гФ7) из Ф & Ф D \/v Ф7 средствами исчисления высказываний]; c) Ф D (Ф D \/гФ7) (зависит только от Д7(Ф<?-) = Д7(Ф^)). Таким образом, случай, когда формула Ф* получена по правилу (III), также полностью рассмотрен. ■ Приведем одно применение теоремы о дедукции. Следующая теорема называется обобщенной теоремой о корректности исчисления предикатов. Теорема 6.5. Каковы бы ни были множество высказываний Г и высказывание Ф, если Г Ь Ф, то Г \= Ф. Доказательство. Пусть Г Ь Ф. Тогда в силу свойства компактности отношения выводимости Ь существует такое конечное подмножество Д = {Фх, ..., Фп} множества Г, что Д Ь Ф. Применяя п раз теорему о дедукции, получаем Ь Ф1 D (... D (Фп D D Ф)...). В силу теоремы о корректности исчисления предикатов (теорема 6.2), формула Ф1 =>(...=> (ф« D Ф)...) общезначима. Докажем, что Г |= Ф. Пусть Ш — модель множества Г. Тогда все формулы Ф1, ..., Фп истинны в интерпретации Ш. Так как, кроме того, общезначимая формула Ф1 D (... D (Фп D Ф)...) истинна в интерпретации 9Я, то, очевидно, формула Ф также истинна в интерпретации Ш. ■ 153 
Обобщенная теорема о корректности исчисления предикатов приобретает особенно важный смысл, когда Г — это система аксиом некоторой математической теории: эта теорема означает, что можно извлекать логические следствия из аксиом, т. е. доказывать теоремы, путем построения формальных выводов из множества аксиом в исчислении предикатов. Как и в случае исчисления высказываний, теорема о дедукции для исчисления предикатов может рассматриваться как пример допустимого правила вывода. Теорема 3.5 устанавливает допустимость в исчислении высказываний правил введения и удаления для каждой пропозициональной связки. При этом использовались схемы аксиом исчисления высказываний, которые являются также схемами аксиом исчисления предикатов. Поэтому правила (—> X) и (X —»), где X — любая из связок -i, &, V, =, допустимы в исчислении предикатов. Наряду с ними в исчислении предикатов допустимы правила, облегчающие оперирование с кванторами. Теорема 6.6. В исчислении предикатов допустимы следующие правила вывода: Г b А(у) HV) (v-0 Н 3) (э-0 Г Ь Mv А(у) ГЬ МуА{у) Г Ь A(t) Г h A(t) Г h 3v A(v) (v не входит свободно в формулы из Г); (терм t свободен для v в A(v)): (терм t свободен для v в А(у)): Ги{Л(г)} Ь В Г U {ЗуА{у)} Ь В (v не входит свободно в Г и В). Правила (—» V) и (—» 3) называются правилами введения квантора всеобщности и квантора существования, а правила (V —») и (3 —») называются правилами удаления этих кванторов. Доказательство. Докажем допустимость (—» V). Предположим, что Г Ь Л(г), причем у не входит свободно в формулы из Г. Зафиксируем какую-нибудь замкнутую аксиому В (в качестве В можно взять, например, формулу ->->(3 D (3, где (3 — произвольное высказывание языка П). Продолжим вывод формулы А(у) из Г до вывода формулы \/у А(у) из Г: a) A(v); afl) A(v) D (В D Л(г;)) (аксиома 1); 154 
а+2) В D A(v) (получено из а) и а+1) по правилу МР); а+3) В D Уу A(v) (получено из аг2) по правилу (III); применение этого правила возможно, так как по условию, во-первых, формула В замкнута и потому не содержит у свободно, и во- вторых, v не входит свободно в формулы из Г, так что формула а+2) не зависит от гипотез, содержащих у свободно); а+4) В (аксиома); а+5) Уу А(у) (получено из а+3) и а+4) по правилу МР). Докажем допустимость (V -+). Пусть Г Ь Уу А(у), и терм t свободен для v в А{у). Продолжим вывод формулы Уv A(v) из Г до вывода формулы A(t) из Г: b) Уу А(у); b I 1) Уу А(у) d A{t) (аксиома 14); b г 2) A(t) (получено из Ь) и bf 1) по правилу МР). Докажем допустимость (-> 3). Предположим, что Г Ь A(t), причем терм t свободен для у в А{у). Продолжим вывод формулы A(t) из Г до вывода формулы Зу А{у) из Г: c) A{t)\ с+1) A(t) D Зу А(у) (аксиома 15); с+-2) Зу А{у) (получено из с) и с + 1) по правилу МР). Докажем допустимость (3 —Д Пусть Ги{А(г)}ЬВ, причем у не входит свободно в формулы из Г и формулу В. По теореме о дедукции Г Ь А{у) D В. Продолжим вывод формулы А(у) + В из Г до вывода В из Г U {Зг А(у)}: d) А(у) D Б; d+1) 3у А{у) D В (получено из d) по правилу (II); применение этого правила возможно, так как по условию, во-первых, формула В не содержит у свободно, и во-вторых, у не входит свободно в формулы из Г, так что формула d) не зависит от гипотез, содержащих у свободно); d+2) 3у А{у) (гипотеза); d+З) В (получено из d+1) и d+2) по правилу МР). ■ Рассмотрим примеры применения допустимых правил для доказательства выводимости формул в исчислении предикатов. Пример 6.6. Пусть Ф(х,у) — произвольная формула языка ft. Докажем, что Ь ЗхУу Ф(х,у) D УуЗхФ(х,у). В силу теоремы о дедукции для этого достаточно установить, что 155 
{ЭхУу Ф(ж, у)} I- Уу Эх Ф(ж, у). В силу правила (3 —>) для этого достаточно показать, что {Уу Ф(х, у)} Н Уу Эх Ф(ж, у). В силу правила (—> У) для этого достаточно убедиться, что {УуФ(ж,у)} I- ЭхФ(х,у). В силу правила (-> 3) для этого достаточно проверить, что (УуФ(х,у)} h ф(х,у), но это очевидно в силу правила (V —>), так как {УуФ(х,у)} \~УуФ(х,у). Приведенное рассуждение показывает, как, используя допустимые правила вывода, можно задачу о выводимости формулы свести к совсем простой задаче. На основе этого рассуждения можно получить доказательство выводимости исходной формулы более прямым путем. Рассуждаем так: 1) очевидно, что {Уу Ф(х,у)} Ь Уу Ф(х, у); 2) по правилу (V —») из 1) следует {Уу Ф(х,у)} Ь Ф(ж, у); 3) по правилу (—» 3) из 2) следует {Уу Ф(х,у)} Ь ЗхФ(ж, у); 4) по правилу (—> У) из 3) следует {Уу Ф(х,у)} Ь УуЗхФ(х,у)] 5) по правилу (3 —») из 4) следует {ЗхУуФ(х,у)} \-УуЭхФ(х,у)] 6) по правилу (-»d) из 5) следует I- ЗхУу Ф(х,у) D УуЗх Ф(х,у). ■ Пример 6.7. Докажем, что в исчислении предикатов выводима формула УхФ(х) У УуФ(у) D Уг(Ф(г) У Ф(^)), если переменная 2 свободна для х в Ф(х) и свободна для у в Ф(у). Сразу приведем «прямое» доказательство этого факта, опирающееся на допустимые правила вывода. 1) Очевидно, что {\/хФ(ж)} \~УхФ(х). 2) По правилу (V —>) из 1) следует (\/хФ(х)} Ь Ф(^). 3) По правилу (—>• V) из 2) следует |\/хФ(х)} Ь Ф(^) V ад- 4) Очевидно, что (\/уФ(?/)} \~УуФ(у). 156 
5) По правилу (V —») из 4) следует {\Л/Ф(?/)} Ь Ф(г). 6) По правилу (—> V) из 5) следует {\Л/Ф(?/)} Ь Ф(^) V Ф(^). 7) По правилу (V —») из 3) и 6) следует {Ух Ф(х) V Уу Ф(у)} h Ф(^) V Ф(;г). 8) По правилу (—> V) из 7) следует {Ух Ф(х) У УуФ(у)} У Уг (Ф(г) V Ф(*)). 9) По правилу (—>о) из 8) следует h Ух Ф(ж) V Уу Ф(у) D Уг (Ф(г) У Ф(^)). ■ Пример 6.8. С помощью допустимых правил докажем, что в исчислении предикатов выводима формула ~Уу Ф(г) D Зу ~^Ф(у). 1) Очевидно, что {—»\/г; Ф(г;), -нФ(г),->3г-<Ф(v)} I—>Ф(г?). 2) По правилу (—> 3) из 1) следует {—«\/г; Ф(г), —<Ф(г;), —<3г; -'Ф(г’)} b Зу -|ф(v). 3) Очевидно, что {-Л/г;Ф(г>), ->Ф(г?), —<3г; —<Ф(г;)} I <3г; —1ф(^). 4) По правилу (-> —») из 2) и 3) следует {-Л/г;Ф(г;), -*3v ->Ф(г)} Ь Ф(г). 5) По правилу (—» V) из 4) следует {-Л/г; Ф(г>), -иЗг; —<Ф(г;)} Ь Уу Ф(у). 6) Очевидно, что {-*УуФ(у), -*Зу —'Ф(^)} I—Л/г>Ф(г;). 7) По правилу (-» —>) из 5) и 6) следует {-Л/г; Ф(г;)} Ь Зг -1ф(г;). 8) По правилу (—ю) из 7) следует I—*УуФ(у) d Зг;-1ф(г;). ■ 6.4. Непротиворечивые расширения Обобщенная теорема о корректности исчисления предикатов (см. теорему 6.5) означает, что построение вывода высказывания Ф из множества высказываний Г является одним из способов установить, что Ф логически следует из Г. Нашей ближайшей целью будет доказательство того факта, что этот способ является универсальным: если высказывание Ф логически следует из множества высказываний Г, то можно построить вывод Ф из Г. Но для этого нужно проделать некоторую подготовительную работу. 157 
Определение 6.5. Множество формул Г называется противоречивым, если существует такая формула Ф, что Г h Ф и Г I Ф. В противном случае множество Г называется непроти¬ воречивым. Теорема 6.7. Множество Г противоречиво тогда и только тогда, когда Г Ь Ф, какова бы ни была формула Ф. Доказательство. Докажем, что если множество Г противоречиво, то Г Ь Ф, какова бы ни была формула Ф. Очевидно, что если множество Г противоречиво, то противоречиво и множество Г U {—<Ф}, какова бы ни была формула Ф. Значит, существует такая формула Ф, что Г U {—<Ф} Ь Ф и Г U {—<Ф} I >Ф. По правилу (-!—») отсюда следует, что Г Ь Ф. Тот факт, что если Г Ь Ф для любой формулы Ф, то множество Г противоречиво, очевиден. Действительно, в этом случае для произвольной формулы Ф имеет место Г Ь Ф и Г I <Ф. ■ Зафиксируем какую-нибудь замкнутую формулу Ф и через _L обозначим формулу Ф & Ы. Очевидно, что множество Г противоречиво тогда и только тогда, когда ГЫ. Действительно, если множество Г противоречиво, то в силу предложения 6.7 имеет место Г Ь _1_. Обратно, если ГЫ, т.е. Г Ь Ф & —«Ф, то по правилу (& ->) Г Ь Ф и Г I >Ф. Поэтому вместо «множество Г противоречиво» можно писать Г Ь _1_. Из свойства компактности отношения Ь вытекает, что множество непротиворечиво тогда и только тогда, когда всякое конечное его подмножество непротиворечиво. Отметим еще некоторые важные факты. Предложение 6.1. Для любого множества формул Г и любой формулы Ф имеют место следующие утверждения: 1) Г U {Ф} Ь _L Г I—>Ф; 2) Г U {-Ф} Ы^ГЬФ. Доказательство. 1) Пусть Г U {Ф} b _L. Тогда для любой формулы Ф имеет место Ги{Ф} Ь Ф и Ги{Ф} I—<Ф. По правилу (Ы -i) отсюда следует, что Г I—<Ф. Обратно, если Г I—<Ф, то в силу монотонности отношения выводимости имеет место Ги{Ф} I—Ф. Так как, с другой стороны, Г U {Ф} Ь Ф, получаем, что множество Г U {Ф} противоречиво. 2) Пусть Г U {->Ф} Ь Т. Тогда в силу только что доказанного утверждения 1) имеет место Г I <Ф. Отсюда с использовани¬ ем аксиомы 13 легко получается Г Ь Ф. Обратное утверждение доказывается точно так же, как в случае утверждения 1). ■ 158 
Наша ближайшая цель — доказать, что всякое непротиворечивое множество высказываний совместно, т. е. имеет модель. Теорема 6.8. Пусть Го, Г i, Г2, ... непротиворечивые множества высказываний сигнатуры £2, причем Го С гх с г2 с ... с гп с гп+1 с ... сю Тогда множество Г = (J Гп непротиворечиво. 71=1 Доказательство. Допустим, что ГЫ. Тогда противоречиво некоторое конечное Д С Г. Но Д С Гп для некоторого п. Следовательно, Гп b _L вопреки условию. Значит, Г непротиворечиво. ■ Множество высказываний Г языка ft называется максимальным непротиворечивым, если 1) множество Г непротиворечиво, но 2) всякое собственное расширение множества Г противоречиво. Теорема 6.9. Каковы бы ни были максимальное непротиворечивое множество высказываний Г и высказывание Ф языка £2, выполняется ровно одно из условий: Ф £ Г либо -пФ £ Г. Доказательство. Из непротиворечивости Г следует, что условия Ф G Г и -пф G Г не могут выполняться одновременно. Докажем, что одно из этих условий выполняется. Предположим противное: пусть для высказывания Ф имеет место Ф 0 Г и -пф ^ Г. Тогда множества Г U {Ф} и Ги {—>Ф} противоречивы как собственные расширения множества Г. В силу предложения 6.1 отсюда получаем Г I <Ф и Г Ь Ф, что невозможно, так как Г непротиворечиво. ■ Теорема 6.10. Каковы бы ни были максимальное непротиворечивое множество высказываний Г и высказывание Ф языка £2, если Г h Ф, то Ф £ Г. Доказательство. Пусть Г — максимальное непротиворечивое множество высказываний, и пусть Г Ь Ф. Допустим, что Ф ^ Г. Тогда -чф £ Г в силу теоремы 6.9. Но тогда Г Ь ->Ф, что невозможно, так как множество Г непротиворечиво. Значит, Ф £ Г. ■ Теорема 6.11. Каковы бы ни были максимальное непротиворечивое множество высказываний Г и высказывания Ф и Ф, 1) -«Ф £ Г Ф £ Г; 159 
2) (Ф&Ф)еГ*»[ФеГ&ФеГ]; 3) (Ф V Ф) Е Г [Ф G Г или Ф G Г]; 4) (ф D Ф) G Г «=> [Ф 0 Г или Ф G Г]; 5) (Ф = Ф) G [Ф G Г&Ф G Г или Ф £Г&Ф £Г]. Доказательство. 1) Если -нф G Г, то Ф ^ Г в силу непро¬ тиворечивости Г. Обратно, если Ф 0 Г, то ->Ф G Г по теореме 6.9. 2) Если (Ф&Ф) G Г, то Г h Ф, Г Ь Ф, и Ф G Г, Ф G Г по теореме 6.10. Обратно, если Ф G Г и Ф G Г, то Г Ь (Ф&Ф), и (Ф&Ф) G Г по теореме 6.10. 3) Пусть (Ф V Ф) G Г, но Ф ^ Г и Ф ^ Г. Тогда по теореме 6.9 -чф G Г, -чф G Г. Формула -|ф D (~>Ф D ~>(Ф V Ф)) являет¬ ся тавтологией и по теореме 6.3 выводима в исчислении предикатов. Поэтому Г Ь -1(Ф V Ф), и Г противоречиво. Итак, если (Ф V Ф) G Г, то Ф G Г или Ф G Г. Обратно, если Ф G Г или Ф G Г, то Г Ь (Ф V Ф), и (Ф V Ф) G Г по теореме 6.10. 4) Пусть а) (Ф D Ф) G Г, но б) Ф G Г и в) Ф 0 Г. Из а) и б) следует Г Ь Ф, а из в) следует -пф G Г по теореме 6.9, что невозможно, так как Г непротиворечиво. Обратно, если Ф ^ Г, то -пф G Г. Так как формула ~^Ф D (Ф D Ф) является тавтологией и потому выводима в исчислении предикатов, то Г h (Ф D Ф) и (Ф D Ф) G Г по теореме 6.10. Если же Ф G Г, то Г Ь (Ф D Ф), так как формула Ф D (Ф D Ф) является аксиомой. Утверждение 5) доказывается аналогично. ■ Определение 6.6. Множество высказываний Г языка ft называется насыщенным, если для любого выводимого из Г высказывания вида ЗгФ(г) существует константа с G Сп, для которой ГЬФ(с). Теорема 6.12. Каковы бы ни были максимальное непротиворечивое насыщенное множество высказываний Г языка П и формула Ф(у) того же языка с единственным параметром г, 1) Зг;Ф(г) G Г <=> [Ф(с) G Г для некоторой константы с]; 2) Уг;Ф(г;) G Г<^> [Ф(с) G Г для каждой константы с]. Доказательство. 1) Пусть Зг;Ф(г;) G Г. Тогда Г Ь Зг;Ф(г;), и в силу насыщенности множества Г имеет место Г Ь Ф(с) для некоторой константы с, а тогда Ф(с) G Г по теореме 6.10. Обратно, если Ф(с) G Г для некоторой константы с, то Г Ь Ф(с), а тогда Г Ь Зг;Ф(г;) в силу правила (—> 3) и Зг;Ф(г;) G Г по теореме 6.10. 2) Пусть УуФ(у) G Г. Тогда Г Ь УгФ(г;), и в силу правила (V ->) имеет место Г Ь Ф(с) для каждой константы с G Сп. 160 
В силу теоремы 6.10 отсюда получаем Ф(с) G Г для каждой константы с G Сп. Обратно, пусть Ф(с) G Г для каждой константы с G Сп. Докажем, что УуФ(у) G Г. Допустим противное. Тогда -^/уФ(у) G Г в силу теоремы 6.9 и Г Ь -Л/гФ(г). Как было установлено ранее (см. пример 6.8), формула -Л/гФ(г) D Зг->Ф(г) выводима в исчислении предикатов. Следовательно, Г Ь Зг-1ф(г), а тогда в силу насыщенности множества Г имеет место Г Ь -1ф(с) для некоторой константы с G Сп, что невозможно, так как Г непротиворечиво, а но условию Ф(с) G Г для каждой константы с G Сп. Значит, УуФ(у) G Г. ■ Теорема 6.13. Пусть Г — непротиворечивое множество высказываний сигнатуры ft. и пусть сигнатура ft' получена добавлением к П счетного множества дополнительных констант. Тогда существует максимальное непротиворечивое насыщенное множество высказываний Г' сигнатуры ft' такое, что Г С Г'. Доказательство. Будем считать, что сигнатура ft не более чем счетна. Пусть сигнатура ft' получена добавлением к ft дополнительных констант C0,Ci,C2, (6.1) Тогда множество всех высказываний сигнатуры ft' счетно. За¬ фиксируем некоторый пересчет Фо,ФьФ2, ... (6.2) всех высказываний сигнатуры ft'. Множество высказываний вида 3v Ф сигнатуры ft' также счетно. Зафиксируем некоторый пересчет таких высказываний ЗуоФо, ЗщФь Зг2Ф2, .... (6.3) Определим последовательность множеств Го,Г1,Г2, .причем Гп (п = 0,1,2, ...) будет некоторым непротиворечивым множеством высказываний в сигнатуре Пп, полученной добавлением к ft лишь конечного числа констант из последовательности (6.1). При этом в ходе построения последовательности Го,Г1,Г2, ••• некоторые формулы из последовательностей (6.2) и (6.3) будут вычеркиваться. Положим По — П, Го — Г. Пусть непротиворечивое множество Гп в сигнатуре ftn построено. Если п чётно, т. е. n = 2к для некоторого /с, и Гп I—>Ф^, полагаем ftn+\ = ftn и 161 
Гп+1 = Гп. Очевидно, что в этом случае множество Гп+х непротиворечиво. Если же Гп \/ ->Ф/с, полагаем Гп+1 = Гп U {Ф/Д, а Г2П+1 получается добавлением к Пп всех дополнительных констант, которые входят в формулу Ф^, но не вошли в Пп. В этом случае множество Гп+х непротиворечиво в силу предложения 6.1. Если же п нечётно, т. е. п — 2к + 1 для некоторого к, пусть Зг?Ф(д) — первая еще не вычеркнутая формула из последовательности (6.3) такая, что Гп Ь Зг?Ф(г). Пусть с — первая константа из последовательности (6.1), не входящая в сигнатуру Пп и не встречающаяся в формуле Ф(гф Пусть Пп+1 — сигнатура, полученная добавлением к ftn константы с и всех дополнительных констант, которые входят в формулу Ф(Д, но не вошли в Пп. Докажем, что множество высказываний Гп U {Ф(с)} в сигнатуре Пп+1 непротиворечиво. Допустим противное, т. е. что Гп U U {Ф(с)} h _L. Тогда в силу теоремы о дедукции существует вывод из Гп формулы Ф(с) D .1. Заменим всюду в этом выводе каждое вхождение константы с на переменную щ которая не встречается ни в одной из формул этого вывода. При такой замене сохраняется логическая структура формул, следовательно, каждая аксиома превратится в аксиому. Гипотезы, т. е. формулы из Гп, вообще не изменятся, так как константа с в них не встречается. Таким образом мы получим вывод из Гп формулы Ф(и) D _1_. Применив к этой формуле правило Бернайса (II), получим вывод из Гп формулы ЗиФ(и) D 1. С помощью примера 6.4 и теоремы о дедукции нетрудно показать, что формула Зг?Ф(г?) D Т выводима из формулы ЗиФ(и) D _1_. Поэтому Гп h 3v Ф(у) D 1, а так как Гп Ь 3v Ф(Д, то Гп Ь Т, что невозможно в силу предположения о непротиворечивости множества Гп. В качестве Гп+х возьмем множество Гп U {Ф(с)} в сигнатуре Пп+1. Последовательность Го,Г1,Г2, ... построена. оо Положим Г' = |J Гп. В силу теоремы 6.8 множество Г' не- п—1 противоречиво. Докажем, что Г' является максимальным непротиворечивым множеством в сигнатуре П'. Пусть Ф — такое высказывание сигнатуры П', что Ф ^ Г'. Высказывание Ф содержится в последовательности (6.2). Пусть Ф есть Ф&. Если высказывание Ф не вошло в Г', то это значит, что при построении множества Гп+1 для п = 2к выполнялось условие Гп Ь —«Ф^. Но тогда Г' h ->Ф/с, и множество Г' U {Ф} противоречиво. Таким образом, мы доказали, что всякое собственное расширение множества Г' противоречиво, т. е. Г' — максимальное непроти- 162 
воречивое множество. Докажем, что множество Г' является насыщенным. Пусть высказывание вида Эг;Ф(г;) выводимо из Г'. Тогда Гп h Эг;Ф(г;) для некоторого п. Но это означает, что для некоторого нечетного г > и при построении множества IYn была рассмотрена формула Зг?Ф(г), и для некоторой константы с формула Ф(с) была включена в I\+i. Следовательно, Г' Ь Ф(с). Очевидно также, что Г С Г'. ■ 6.5. Теорема Гёделя о полноте Теорема 6.14. Любое насыщенное максимальное непротиворечивое множество высказываний языка П имеет модель. Доказательство. Пусть Г — максимальное непротиворечивое насыщенное множество высказываний языка ft. Интерпретацию Ш определим следующим образом. Ее носителем будет множество М всех замкнутых термов сигнатуры ft. Для каждой константы с сигнатуры ft положим с = с. Для каждого (скажем, n-местного) функционального символа / сигнатуры ft и для любых элементов (т. е. термов) £х, ... Дп Е М положим М, ■■■Зп) = / Д, ■■■Зп)- Очевидно, что при этом для каждого замкнутого терма t имеет место равенство [t\^x = t. Для каждого (например, п-местного) предикатного символа Р сигнатуры П и для любых элементов (т. е. термов) П, • • • Лп С М положим 5 • • • Лп) — 1 ^ • • • Лп) С Г. Докажем, что для любого высказывания Ф языка ft Ш |= Ф ^ Ф Е Г. (6.4) Индукция по количеству логических символов в формуле Ф. Если в Ф нет логических символов, то Ф имеет вид Р(П, ..., £п), и в этом случае (6.4) выполнено в силу задания интерпретации Ш. Допустим, что утверждение (6.4) имеет место для любого высказывания Ф, содержащего не более п логических символов, и докажем это утверждение для любого высказывания Ф, в котором п + 1 логических символов. Пусть высказывание Ф имеет вид -^Ф для некоторого высказывания Ф. Тогда Ф содержит п логических символов, и в силу индукционного предположения имеет место 163 
Ш1 |= Ф <^> Ф G Г. (6.5) Докажем (6.4). Если 9Я |= Ф, то9Л^Ф,иФ^Гв силу (6.5). Тогда Ф G Г в силу утверждения 1) теоремы 6.11, так как Г — максимальное непротиворечивое множество. Обратно, если Ф G Г, то Ф ^ Г в силу утверждения 1) теоремы 6.11. Тогда в силу (6.5) имеет место Ш ^ Ф, а значит, Ш |= Ф. Пусть высказывание Ф имеет вид Ф1 & Ф2 для некоторых высказываний Ф1 и 4/2- Тогда каждое из высказываний Ф1, Ф2 содержит не более п логических символов, и в силу индукционного предположения имеет место Докажем (6.4). Пусть 9Я |= Ф. Тогда Ш |= Ф* (г = 1,2), и в силу (6.6) Фг G Г (г = 1, 2). Тогда Ф G Г в силу утверждения 2) теоремы 6.11. Обратно, если Ф G Г, то Ф* G Г (г — 1, 2) в силу утверждения 2) теоремы 6.11. Тогда в силу (6.6) имеет место ®t |= Фi (г = 1,2), а значит, Ш |= Ф. Пусть высказывание Ф имеет вид Ф1 V Ф2 для некоторых высказываний Ф1 и Ф2. Тогда каждое из высказываний Фi, Ф2 содержит не более п логических символов, и в силу индукционного предположения имеет место (6.6). Докажем (6.4). Пусть Ш |= Ф. Тогда Ш |= Ф1 или Ш |= Ф2, и в силу (6.6) Ф1 G Г или Ф2 G Г. Тогда Ф G Г в силу утверждения 3) теоремы 6.11. Обратно, если Ф G Г, Т0Ф1 G Г или Ф2 G Г в силу утверждения 3) теоремы 6.11. Тогда, в силу (6.6), имеет место Ш |= Ф1 или Ш |= Ф2, а значит, Ш цф. Пусть высказывание Ф имеет вид Ф1 D Ф2 для некоторых высказываний Ф1 и Ф2. Тогда каждое из высказываний Ф1, Ф2 содержит не более п логических символов, и в силу индукционного предположения имеет место (6.6). Докажем (6.4). Пусть 9Л |= Ф. Тогда Ш \f=- Ф1 или Ш |= Ф2, и в силу (6.6) Ф1 ^ Г или Ф2 G Г. Тогда Ф G Г в силу утверждения 4) теоремы 6.11. Обратно, если Ф G Г, то Ф1 ^ Г или Ф2 G Г в силу утверждения 4) теоремы 6.11. Тогда в силу (6.6) имеет место Ш Ф1 или Ш |= Ф2, а значит, Ш |= Ф. Случай, когда высказывание Ф имеет вид Ф1 = Ф2 для некоторых высказываний Ф1 и Ф2, рассматривается аналогично. Пусть высказывание Ф имеет вид 3v Ф(г) для некоторой формулы Ф(г), не содержащей свободных переменных, отличных от v. Тогда, каков бы ни был терм t G М, высказывание Ф(t) содер- 2Л Ц ф• ф- G Г (г = 1, 2). (6.6) 164 
жит п логических символов, и в силу индукционного предположения имеет место [ЯЛ |= Ф(£) Ф(£) £ Г] для каждого терма t £ М. (6.7) Докажем (6.4). Пусть ЯЛ |= Ф. Тогда для некоторого терма t £ М имеет место ЯЛ |= Ф(£), и в силу (6.7) Ф(£) £ Г. Тогда Г Ь ЗгФ(г), и Ф £ Г в силу теоремы 6.10. Обратно, если Ф £ Г, то Ф(с) £ Г для некоторой константы с в силу утверждения 1) теоремы 6.12. Тогда в силу (6.7) имеет место ЯЛ |= Ф(с), а значит, ЯЛ |= Ф. Пусть высказывание Ф имеет вид Vr Ф(г) для некоторой формулы Ф(г), не содержащей свободных переменных, отличных от v. Тогда, каков бы ни был терм t £ М, высказывание Ф(£) содержит п логических символов, и в силу индукционного предположения имеет место (6.7). Докажем (6.4). Пусть ЯЛ |= Ф. Тогда для каждого терма t £ М имеет место ЯЛ \= Ф(£), и в силу (6.7) Ф(£) £ Г. В частности, Ф(с) £ Г для каждой константы с £ Сп. Тогда Ф £ Г в силу утверждения 2) теоремы 6.12. Обратно, если Ф £ Г, то для каждого терма t £ М имеет место Г Ь Ф(£) и Ф(£) £ Г. Тогда в силу (6.7) имеет место Ш\= Ф(£) для каждого терма t £ М, а значит, Ш |= Ф. Из доказанного утверждения (6.4) следует, что Ш является моделью множества Г. ■ Теорема 6.15. Для любого непротиворечивого множества высказываний существует модель. Доказательство. Пусть Г — непротиворечивое множество высказываний сигнатуры П. В силу теоремы 6.13 существует такое максимальное непротиворечивое насыщенное множество высказываний Г' сигнатуры Г2', полученной добавлением к ft счетного множества дополнительных констант, что Г С Г'. По теореме 6.14 существует модель ЯК' множества Г'. Это интерпретация сигнатуры (У. Рассмотрим интерпретацию Ш сигнатуры ft с тем же носителем, что и ЯЛ', в котором символы из ft интерпретируются точно так же, как и в ЯЛ'. Иными словами, ЯЛ — это по сути та же интерпретация ЯЛ', в которой нас не интересуют значения символов, не входящих в сигнатуру ft. Довольно очевидно (хотя это можно доказать строго), что всякое высказывание сигнатуры ft истинно в интерпретации ЯЛ тогда и только тогда, когда оно истинно в интерпретации ЯЛ'. Так как все высказывания из множества Г истинны в ЯЛ', то они истинны и в ЯЛ. Значит, ЯЛ — модель множества Г. ■ 165 
Следующая теорема называется теоремой Лёвенгейма — Скулема. Теорема 6.16. Всякое непротиворечивое множество высказываний в не более чем счетной сигнатуре имеет счетную модель. Доказательство. Пусть Г — непротиворечивое множество высказываний в не более чем счетной сигнатуре О. В силу теоремы 6.13, существует максимальное непротиворечивое насыщенное его расширение Г' в сигнатуре П', полученной добавлением к ft счетного множества дополнительных констант. При доказательстве теоремы 6.14 была построена модель множества Г', носителем которой является множество всех термов сигнатуры ГУ, не содержащих переменных, которое, очевидно, счетно. Модель множества Г, построенная при доказательстве теоремы 6.15, имеет тот же носитель, следовательно, эта модель счетна. ■ Следующая теорема называется теоремой Гёделя о полноте исчисления предикатов. Теорема 6.17. Всякая общезначимая формула сигнатуры П выводима в исчислении предикатов. Доказательство. Пусть Ф — общезначимая формула языка ft. Если в ней есть свободные переменные щ, . ..,гп, то замкнутая формула \/щ... \/гпФ, которую мы обозначим через Ф, также общезначима. Докажем, что имеет место Ь Ф. Допустим противное, т. е. что I/ Ф. Тогда, в силу утверждения 2) предложения 6.1, множество {—<Ф} непротиворечиво. По теореме 6.15 оно имеет модель. В этой модели формула Ф ложна, что противоречит ее общезначимости. Значит, Ь \/v\.. ЛупФ, а тогда, очевидно, и Ь Ф. ■ Теорема 6.18. В исчислении предикатов выводимы все общезначимые формулы и только они. Доказательство. Это утверждение вытекает из теорем 6.17 и 6.2. ■ Следующая теорема называется обобщенной теоремой Гёделя о полноте исчисления предикатов. Теорема 6.19. Каковы бы ни были множество высказываний Г и высказывание Ф языка П, если Г |= Ф, то Г Ь Ф. Доказательство. Пусть Г |= Ф. Допустим, что Г I/ Ф. Тогда в силу предложения 6.1 множество высказываний Г U {—<Ф} 166 
непротиворечиво, и по теореме 6.15 оно имеет модель 9Я. Таким образом, Ш 1= Г и Ш -»Ф. С другой стороны, если Ш |= Г, то Ш |= Ф, ибо Г |= Ф. Полученное противоречие показывает, что на самом деле Г Ь Ф. ■ Теорема 6.20. Каковы бы ни были множество высказываний Г и высказывание Ф языка Q, Г |=Ф<^ГЬФ. Доказательство. Это утверждение вытекает из теорем 6.19 и 6.5. ■ Следующая теорема называется локальной теоремой Мальцева. Теорема 6.21. Если любое конечное подмножество множества высказываний Г имеет модель, то Г имеет модель. Доказательство. Пусть любое конечное подмножество множества высказываний Г имеет модель. Покажем, что множество Г имеет модель. В силу теоремы 6.15 для этого достаточно показать, что множество высказываний Г непротиворечиво. Но это действительно так, ибо если бы Г было противоречиво, то в силу свойства компактности отношения выводимости было бы противоречиво некоторое конечное его подмножество, которое в таком случае не имело бы модели вопреки условию теоремы. ■ Следующая теорема носит название теоремы Мальцева о компактности. Теорема 6.22. Пусть Г — бесконечное множество высказываний, а Ф — высказывание языка П, причем Г |= Ф. Тогда существует конечное множество А С Г такое, что А \= Ф. Доказательство. Пусть Г \= Ф. Тогда Г Ь Ф по теореме 6.19. В силу свойства компактности отношения выводимости существует конечное множество высказываний А С Г такое, что имеет место А Ь Ф. Согласно обобщенной теореме о корректности исчисления предикатов в этом случае имеет место А |= Ф. ■ В гл. 4 рассматривался язык логики предикатов, который содержит счетное множество предметных переменных и счетное множество предикатных переменных любой валентности. Он может рассматриваться как элементарный язык сигнатуры По? не содержащей предметных констант и функциональных символов и содержащей счетное множество предикатных символов валентности п для каждого натурального п > 0. Действительно, при 167 
таком подходе интерпретация языка логики предикатов в смысле определения 4.2 является интерпретацией языка По в том смысле, как она определяется в подразд. 5.5. Понятия выполнимой и общезначимой предикатной формулы в смысле определений 4.6 и 4.8 в точности совпадают с понятиями выполнимой и общезначимой формулы языка По в смысле определений 5.8 и 5.9. Определение 6.7. Чистым исчислением предикатов называется исчисление предикатов в сигнатуре По- Чистое исчисление предикатов задается схемами аксиом 1 — 15, а правилами вывода являются modus ponens и правила Бер- найса. При этом в схемах аксиом 14 и 15 A(v) — произвольная предикатная формула, v и t — произвольные предметные переменные, причем t свободна для v в А{у) (т. е. никакое свободное вхождение v в А{у) не находится в области действия квантора по £), A(t) — результат подстановки t вместо всех свободных вхождений v в формулу A{v). Теорема 6.23. Если предикатная формула А выводима в чистом исчислении предикатов, то А общезначима. Доказательство. Применяем теорему 6.2 в случае, когда сигнатура П есть По- ■ Теорема 6.24. Всякая общезначимая предикатная формула выводима в чистом исчислении предикатов. Доказательство. Применяем теорему 6.17 в случае, когда сигнатура П есть По- ■ Теорема 6.25. Предикатная формула выводима в чистом исчислении предикатов тогда и только тогда, когда она общезначима. Доказательство. Это утверждение является непосредственным следствием теорем 6.23 и 6.24. ■ 6.6. Секвенциальное исчисление предикатов Обычно при доказательстве выводимости формул в исчислении предикатов используются допустимые правила вывода. Как и в случае исчисления высказываний, весь арсенал допустимых 168 
правил удается оформить в виде секвенциального исчисления предикатов, в котором выводимыми объектами являются утверждения о выводимости формул из множеств формул. Пусть фиксирован элементарный язык сигнатуры ft. Определение 6.8. Секвенциями называются выражения следующих трех видов: 1) А\, ..., Ап Ь J5; 2) Ь В; 3) А\, ..., Ап Ь, где Ai, ..., Ап, В — произвольные формулы языка ft. В секвенциальном исчислении предикатов выводятся секвенции. Это исчисление задается схемой аксиом А Ь А, где А — произвольная формула языка ft, правилами вывода 1 — 18 секвенциального исчисления высказываний, сформулированного в подразделе 3.5, а также следующими правилами вывода, где Г, Pi, Г2, Г3 — конечные (возможно, пустые) последовательности формул языка ft, А, В, С, А(х) — произвольные формулы языка ft, t 19. 20. 21. 22. произвольный терм, свободный для х в А{х)\ Г Ь А{х) где х не свободна в Г (введение V); (удаление V); ГЬ УхА(х) Г Ь Ух А(х) Г b A(t) Г h A(t) , ГНЗхА{х) (ВВеДе"Ие 3); Ti h ЗхА(х) Г2,А{х) Ь В ГьГ2ЬБ ’ где х не свободна в Г2 и В (удаление 3). Выводом в секвенциальном исчислении предикатов называется конечная последовательность секвенций, каждая из которых либо есть аксиома, либо получается из предыдущих секвенций по одному из правил вывода. Секвенция называется выводимой, если существует вывод, который оканчивается этой секвенцией. Следующая теорема означает корректность секвенциального исчисления предикатов. Теорема 6.26. 1) Если секвенция А\, ..., Ап Ь В выводима в секвенциальном исчислении предикатов, то {Ai, ... , Ап} Ь В в исчислении предикатов. 2) Если секвенция А1, ..., Ап Ь выводима в секвенциальном исчислении предикатов, то множество {Ai, ...,АП} противоречиво. 3) Если секвенция Ь В выводима в секвенциальном исчислении предикатов, то формула В выводима в исчислении предикатов. 169 
Доказательство. Теорема доказывается рутинной индукцией по длине вывода секвенции в исчислении предикатов с учетом того очевидного факта, что аксиомы суть верные утверждения о выводимости в исчислении предикатов, а каждое правило вывода корректно в том смысле, что из верных утверждений о выводимости в исчислении предикатов оно позволяет получить верное же утверждение, если при этом секвенцию ..., Ап Ь трактовать как утверждение о противоречивости множества {А1:...,Ап}. ■ Примеры выводов в секвенциальном исчислении предикатов будут представлены в доказательстве следующей теоремы, которая означает полноту секвенциального исчисления предикатов. Теорема 6.27. Если формула А выводима в исчислении пре- дикатов, то секвенция Ь А выводима в секвенциальном исчислении предикатов. Доказательство. Докажем, что все аксиомы исчисления предикатов выводимы в секвенциальном исчислении предикатов, а правила Бернайса и modus ponens сохраняют выводимость в этом исчислении. Случай, когда аксиома исчисления предикатов получена по одной из схем аксиом 1 — 13, по существу рассмотрен при доказательстве теоремы 3.14, где для каждой аксиомы А этого вида построен вывод секвенции Ь А, использующий правила вывода, имеющиеся в секвенциальном исчислении предикатов. Пусть аксиома получена по схеме 14, т. е. имеет вид W A(v) D A(t), где t — терм, свободный для v в A(v). Вот вывод секвенции Ь Vr A(v) D A(t): 1) Mv A{v) h VrA(r) (аксиома); 2) \/v A(y) h A(t) (получено из 1) по правилу удаления V); 3) h \/v A{v) D A{t) (получено из 2) по правилу введения d). Пусть аксиома получена по схеме 15, т. е. имеет вид A(t) D 3v A{v), где t — терм, свободный для v в A(v). Вот вывод секвенции Ь A(t) D 3vA(v): 1) A(t) Ь A(t) (аксиома); 170 
2) A(t) h 3v A{y) (получено из 1) по правилу введения =3); 3) Ь A(t) D 3v A{v) (получено из 2) по правилу введения d). Таким образом, мы доказали, что если А — аксиома исчисления предикатов, то секвенция Ь А выводима в секвенциальном исчислении предикатов. Тот факт, что если формула В получена по правилу modus ponens из выводимых в исчислении предикатов формул А и A D J5, причем секвенции Ь А и b A D В выводимы в секвенциальном исчислении предикатов, то и секвенция Ь В выводима в этом исчислении, доказывается точно так же, как и в случае секвенциального исчисления высказываний при доказательстве теоремы 3.14. Докажем, что если формула 3v A D J5, где v не входит свободно в J5, получена по правилу удаления квантора существования из выводимой в исчислении предикатов формулы A D J5, причем секвенция Ь A D В выводима в секвенциальном исчислении предикатов, то секвенция Ь 3v A D В также выводима в этом исчислении. Для этого продолжим вывод секвенции Ь A D В до вывода секвенции \- 3v A D В: [) Ь Л D В; i+1) A h А (аксиома); i+2) A h В (получено из i-Tl) по правилу удаления d); i-t-3) 3v A h 3v А (аксиома); i+4) 3v A h В (получено из i+3) и i+2) по правилу удаления 3); i+5) h 3v A D В (получено из i+3) по правилу введения d). Докажем, что если формула В D Vr А, где v не входит свободно в J5, получена по правилу введения квантора всеобщности из выводимой в исчислении предикатов формулы В D Л, причем секвенция Ь В D А выводима в секвенциальном исчислении, то секвенция Ь В D \/г А также выводима в этом исчислении. Для этого продолжим вывод секвенции Ь В D А до вывода секвенции h В D V+ А : i) Ь В D А; i+1) В \~ В (аксиома); i+2) В \~ А (получено из i+1) по правилу удаления +>); i+З) В h V+ А (получено из i+2) по правилу введения V); i+4) Ь В D \/v А (получено из i+З) по правилу введения +>). ■ 
Глава 7 ЭЛЕМЕНТАРНЫЕ ТЕОРИИ И МОДЕЛИ В этой главе приводятся основные понятия и факты, относящиеся к исследованию аксиоматических теорий, излагаемых на подходящем элементарном языке. С одной стороны, с каждой элементарной теорией Т связан класс ее моделей Mod(T). с другой — с любым классом К алгебраических систем одной сигнатуры связана его элементарная теория Th(K). Взаимосвязь между классами алгебраических систем и их элементарными теориями, а также между элементарными теориями и их моделями изучает теория моделей. 7.1. Аксиоматические теории Аксиоматический метод построения научной теории состоит в том, что некоторые исходные положения, называемые аксиомами или постулатами, принимаются «без доказательства», а другие утверждения этой теории выводятся из них путем рассуждения. Аксиоматический метод в математике впервые был использован древнегреческим математиком Евклидом в III в. до н. э. в его трактате «Начала» при изложении основ античной математики. Дальнейшее развитие аксиоматический метод получил в XIX в. В 1891 г. Дж. Пеано предложил аксиоматику для натурального ряда. Были построены аксиоматические теории для действительных чисел. В начале XX в. в работах Э. Цермело, а затем А. Френкеля, Дж. фон Неймана, К. Гёделя, П. Бернайса, У. Куайна были выработаны различные системы аксиом для теории множеств. Особенно широкое распространение формальные аксиоматики получили в современной алгебре, где система аксиом выступает в роли определения той или иной структуры, Нас будут интересовать только такие аксиоматические теории, аксиомы которых записываются в виде формул подходяще¬ 172 
го элементарного языка. Пусть дана какая-либо система аксиом, т. е. (вообще говоря, произвольное) множество Г высказываний элементарного языка ft. Математика интересуют прежде всего те высказывания языка Г2, которые являются логическим следствием аксиом, т. е. такие высказывания Ф, что Г |= Ф. Определение 7.1. Множество всех высказываний, логически следующих из данной системы аксиом, называется неформальной аксиоматической теорией, или семантической теорией. Термин семантика (от греч. arjpaviiKo^ — обозначающий) означает смысл выражений языка. При семантическом построении теории учитывается смысл утверждений, записанных посредством формул элементарного языка. Обобщенная теорема о корректности исчисления предикатов (см. теорему 6.5) показывает, что построение вывода высказывания Ф из системы аксиом Г является одним из способов установления того факта, что Ф логически следует из Г. Предъявление вывода Ф из Г можно рассматривать как доказательство высказывания Ф на основе аксиом, а само высказывание Ф, для которого построен такой вывод, — как теорему. Это вполне соответствует принятому в математике представлению о теореме как об утверждении, имеющем доказательство на основе аксиом. Определение 7.2. Множество всех высказываний, выводимых из данной системы аксиом, называется формальной аксиоматической теорией или дедуктивной теорией. Термин дедукция (от лат. deductio — выведение) означает вывод по правилам логики. При дедуктивном построении теории теоремы выводятся из аксиом при помощи формальных правил исчисления предикатов. При аксиоматическом задании теории важным является вопрос о непротиворечивости системы аксиом. Теорема 6.5 дает способ установить непротиворечивость системы аксиом: если система аксиом имеет модель, то она непротиворечива. Действительно, пусть алгебраическая система Ш является моделью системы аксиом Г. Если при этом система аксиом Г противоречива, то для некоторого высказывания Ф языка ft имеет место Г h Ф и Г h -|ф. Но тогда по теореме 6.5 Ш |= Ф и Ш \= ->Ф, что невозможно в силу определения истинности высказывания в алгебраической системе. 173 
Определение 7.3. Множество высказываний Г языка ft называется дедуктивно замкнутым, если для каждого высказывания Ф языка ft из Г Ь Ф следует Ф G Г. Предложение 7.1. Любая дедуктивная теория дедуктивно замкнута. Доказательство. Пусть Г — некоторая система аксиом, Т — задаваемая ею дедуктивная теория, т. е. множество всех высказываний, выводимых из Г, и Т Ь Ф. Пусть Фх, ..., Фп — вывод Ф из Т. Всюду в этом выводе заменим каждую формулу из Т на ее вывод из Г. Очевидно, что полученная последовательность является выводом формулы Ф из Г. Таким образом, Г Ь Ф, т. е. Ф G Т. ■ Предложение 7.2. Любая семантическая теория дедуктивно замкнута. Доказательство. Пусть Г — некоторая система аксиом, Т - задаваемая ею семантическая теория, т. е. множество всех высказываний, логически следующих из Г, и пусть Т Ь Ф. В силу свойства компактности отношения выводимости Ь существует конечное множество высказываний {Фх,...,Фт} С Т такое, что {Ф1,. .. , Фт} I- Ф- Пусть Ш — произвольная модель системы аксиом Г. Тогда Ш |= Ф* для каждого г = 1,... , т, т. е. Ш — модель множества {Фх,..., Фт}. В силу обобщенной теоремы о корректности исчисления предикатов {Ф],..., Фш} |= Ф. Значит, Ш |= Ф. Таким образом, высказывание Ф истинно в каждой модели системы аксиом Г, значит, Ф логически следует из Г, т. е. Ф G Т. ■ По теореме 6.5, если Г — система аксиом, 7\ — задаваемая ею дедуктивная теория, а Т2 — соответствующая ей семантическая теория, то Т\ СТ2. По теореме 6.19 Т2 С Тх, так что Т\ = Т2. Таким образом, можно говорить об аксиоматической теории, опуская эпитеты «формальная» и «неформальная». Тем не менее различение семантического и дедуктивного подхода к построению теории важно с исторической и методологической точек зрения. Неформальное семантическое построение теорий практиковалось на протяжении всей истории развития математики. Семантическое построение теории предполагает проникновение в семантику (т. е. смысл) аксиом и доказываемых теорем. Формальный дедуктивный метод был разработан лишь в XX в. в русле осуществления выдвинутой Гильбертом программы обос¬ 174 
нования математики, главным пунктом которой была формализация математики, в том числе выработка математически строгого понятия доказательства, что и было достигнуто через понятие вывода. При формальном построении теории мы смотрим на аксиомы и теоремы как на слова в определенном алфавите и заботимся лишь о соблюдении формальных правил при построении вывода. Правда, было бы лукавством утверждать, что нас совершенно не интересует смысл рассматриваемых высказываний, так как иногда именно он помогает построить формальный вывод интересующей нас теоремы. Как показывают предложения 7.1 и 7.2, любая дедуктивная теория и любая семантическая теория дедуктивно замкнуты. Это свойство лежит в основе следующего определения. Определение 7.4. Элементарной теорией, или теорией первого порядка, в сигнатуре ft называется произвольное дедуктивно замкнутое множество высказываний языка ft. Таким образом, для элементарной теории Т утверждения Ф G G Т и Т Ь Ф равносильны. Семантические и дедуктивные аксиоматические теории являются элементарными теориями. Высказывания, принадлежащие аксиоматической элементарной теории, логически следуют из аксиом и выводимы из них в исчислении предикатов. Этим оправдывается следующее определение. Определение 7.5. Теоремой элементарной теории Т называется всякое высказывание Ф такое, что Ф G Т. Определение 7.6. Элементарная теория Т называется совместной, если и только если Т имеет модель. Класс всех моделей теории Т будем обозначать Mod(T). Таким образом, Т совместна, если и и только если Mod(T) ф 0. Рассмотрим конкретные примеры аксиоматических элементарных теорий. Пример 7.1. Теория множеств Цермело — Френкеля ZF, запись аксиом которой на элементарном языке теории множеств приведена в подразд. 5.2, является элементарной теорией. Вопрос о совместности этой теории и послужил отправной точкой тех исследований в математической логике, изучением которых мы занимаемся. Хотя гипотеза о непротиворечивости теории ZF кажется правдоподобной, было установлено, что она не может быть доказана средствами, формализуемыми в самой этой тео- 175 
рии. Поэтому результаты о невыводимости тех или иных утверждений в этой теории доказываются в предположении ее непротиворечивости. ■ Пример 7.2. Элементарная теория частично-упорядоченных множеств РО задается следующей системой аксиом в языке упорядоченных множеств: 1) Мх (х < х) (рефлексивность <); 2) \/хМу (х < yhy < х D х = у) (антисимметричность <); 3) MxMyMz(x < у hy < z D х < z) (транзитивность <). Всякое частично-упорядоченное множество является моделью теории РО. Элементарная теория линейно упорядоченных множеств LO задается системой аксиом, содержащей аксиомы 1)--3) теории РО, а также следующую аксиому: 4) Мх \/у (х < у V у < х) (полнота отношения <). Всякое линейно упорядоченное множество является моделью теории LO. Элементарная теория плотного линейного порядка без первого и последнего элементов DLO задается системой аксиом, содержащей аксиомы элементарной теории линейно упорядоченных множеств 1) —4), а также следующие аксиомы: 5) МхМу(~^х = yhx < у D 3z(->z = x&^z = ySzx < zhz < у)) (плотность отношения <); 6) МуЗхх < у (отсутствие первого элемента); 7) МуЗху < х (отсутствие последнего элемента). Всякое множество, на котором задан плотный линейный порядок без наименьшего и наибольшего элементов, является моделью теории DLO. ■ Пример 7.3. Элементарная теория групп G задается следующей системой аксиом в языке теории групп: 1) MxMyMz (х + (у + z) — (х + у) + z) (ассоциативность +); 2) Мх (х + 0 = х & 0 + х = х) (аксиома нуля); 3) Мх (х + (~х) = 0 & — х + х = 0) (аксиома обратного элемента). Всякая группа является моделью теории G. Элементарная теория колец R задается системой аксиом в языке теории колец, содержащей аксиомы элементарной теории групп 1) - 3) и следующие высказывания: 4) Мх Му (х + у = у + х) (коммутативность операции +); 176 
5) Vx Vy \/z (x • (y + z) = X'y + x- zh{x + y)-z = x- z + y-z) (дистрибутивность • относительно +). Всякое кольцо является моделью теории R. Элементарная теория полей F задается системой аксиом в языке теории полей, содержащей аксиомы элементарной теории колец 1) —5) и следующие высказывания: 6) \/x\/y\/z (х ♦ (у • z) — (х • у) • z) (ассоциативность •); 7) Vx \/у (х • у — у • х) (коммутативность ♦): 8) -(0 = 1); 9) Vx (х • 1 = х) (аксиома единицы); 10) Vx (-1 (х = 0) D Зу (х • у = 1)) (существование обратного элемента относительно операции • для любого ненулевого элемента) . Всякое поле является моделью теории F. ■ Рассмотрим еще один способ задания элементарных теорий, который широко используется в математике наряду с аксиоматическим методом. Пусть фиксирован некоторый класс К алгебраических систем сигнатуры ft. Рассмотрим множество всех высказываний языка Г2, истинных во всех алгебраических системах из класса К. Обозначим его Th(K). Очевидно, что каждая алгебраическая система из класса К является моделью множества Th(K). Предложение 7.3. Каков бы ни был класс алгебраических систем К, множество Th(K) дедуктивно замкнуто. Доказательство. Докажем, что если высказывание Ф языка ft таково, что Th(K) Ь Ф, то Ф Е Th(K). Пусть Th(K) Р Ф. В силу обобщенной теоремы о корректности исчисления предикатов Th(K) |= Ф, т. е. высказывание Ф истинно в каждой модели множества Th(K), в частности, в каждой алгебраической системе из класса К, но это как раз и означает, что Ф Е Th(K). ■ В силу предложения 7.3 Th(K) — элементарная теория. Определение 7.7. Элементарной теорией класса К называется множество Th(K), состоящее из всех высказываний, истинных во всех алгебраических системах из класса К. Элементарная теория класса {ШТ} называется элементарной теорией алгебраической системы Ш и обозначается Th(ffl). Из определения видно, что К\ С К2 => Th(K2) Q Th(KД, a также что Th(K) = f| ТН(Ш). тек 177 
Пример 7.4• Элементарные теории G, R, F являются элементарными теориями классов всех групп, колец, полей. ■ Рассмотренные способы задания элементарной теории — аксиоматический и посредством указания некоторого класса ее моделей — принципиально не различаются. Каждая непротиворечивая элементарная теория Т может рассматриваться как элементарная теория класса всех ее моделей. В то же время произвольная элементарная теория может рассматриваться как дедуктивная теория, аксиомами которой являются все теоремы этой теории. Однако часто представляют интерес вопросы нахождения в некотором смысле простой аксиоматики для данной теории. 7.2. Элементарные теории с равенством При формализации математических теорий часто используются элементарные языки, содержащие предикатный символ = для равенства. Однако, если в языке имеется предикатный символ =, мы, вообще говоря, вовсе не обязаны интерпретировать его именно как равенство. Изучим более подробно ситуацию, когда символ = интерпретируется именно как предикат равенства. Нормальные интерпретации. Пусть элементарный язык содержит символ = и еще какие-либо константы, функциональные и предикатные символы, которые мы выделим в отдельную сигнатуру ft. Принимая это во внимание, сигнатуру рассматриваемого языка будем обозначать ft U {=}• Определение 7.8. Алгебраическая система сигнатуры ft U U {=}, в которой предикатный символ = интерпретируется как предикат равенства, называется нормальной алгебраической системой. Через Eq(ft) обозначим множество, состоящее из следующих высказываний — аксиом равенства для сигнатуры Пи { = }: Eql. Vx (х = х)] Eq2. Vx Му (х — у D у = ж); Eq3. \/xMyMz (x = yD (у = zDx — z)); Eq(/). Mx\... VxnVj/i... Vyn(xi = yi k.. .kxn = yn D D f(xu ...,xn) = /(yi, .. .,xy)) для каждого (n-местного) функционального символа /; 178 
Eq(P). Vaq ... Vxn Vj/i ...Myn(xi = yi & ... к xn = yn D D (P(*i, ..., жп) D P(yi, ..., xy))) для каждого (n-местного) предикатного символа Р. Очевидно, что аксиомы равенства для сигнатуры Пи {=} ис- тинны в каждой нормальной алгебраической системе этой сигнатуры. Иными словами, каждая нормальная алгебраическая система сигнатуры ft U {—} является моделью множества Eq{ft). Определение 7.9. Элементарная теория Т в языке ft U {=} называется теорией с равенством, если все высказывания из множества Eq(ft) являются теоремами теории Т. Обычно при аксиоматизации теорий в языке с равенством высказывания из множества Eq{ft) включаются в аксиоматику, но иногда все или некоторые их этих высказываний могут быть доказаны на основе других аксиом теории. Пример 7.5. В элементарной теории множеств ZF выводимы аксиомы равенства Eql — Eq3. Действительно, из аксиомы объемности с помощью правила (V —>) получается формула х — х = \/z (z £ х = z £ x). Так как правая часть этой эквивалентности очевидно выводима, го выводима и формула х — х, а из нее но правилу (—» V) получается Eql. Чтобы убедиться в выводимости аксиомы Eq2, заметим, что из аксиомы объемности с помощью правила (V —») получаются формулы х — у = \/z (z £ х = z £ у) и у = х = ^z (z£y = = z £ ж), после чего выводимость формулы х — у D у — х, а вместе с ней и аксиомы Eq2, становится очевидной. Выводимость аксиомы Eq3 легко устанавливается после получения из аксиомы объемности с помощью правила (V —») формул х — у = \/w (w £ х = w £ у), у = z = \/w (w £ у = w £ z), X — Z = \/w (w £ X = w £ z). Из аксиомы объемности нетрудно вывести формулу Vx Vyi Vj/2 (yi = У2 з (х € У! D х G у2)). Поэтому, чтобы добиться выводимости аксиомы Eq(e), доста- точно включить в систему аксиомам теории ZF высказывание Vxi Va?2 Vy (xi = x2 D (x! € у D x2 € у)). Я 179 
Пример 7.6. Язык теории упорядоченных множеств наряду с символом = содержит предикатный символ <, поэтому, вообще говоря, в системы аксиом РО, LO, DLO следовало бы включить Eql --Eq3, а также следующую аксиому равенства для <: Eq(<). VxiVx2VyiVy2(xi=yi&X2 = y2 3 (х\ < х2 Э yi < у2))- Мы употребили выражение «вообще говоря», потому что при семантическом построении теории как бы само собой разумеется, что = означает равенство. Но если теория строится дедуктивно, тогда необходимы формальные аксиомы для равенства. ■ Пример 7.7. Язык теории групп содержит функциональные символы + и —, поэтому в систему аксиом теории G следовало бы включить аксиомы равенства для них: Eq(+). Vrci Vx2V?/i Уу2 (aq = yi к x2 = y2 Э xx + x2 = yi +2/2); Eq(—). \/xMy{x = у D —x = —y). В аксиоматику теорий R и F наряду с аксиомами равенства для + и — следовало бы включить аксиому равенства для •: Eq(-). Vxi Vx2Vj/i V3/2 (^1 = У\ к х2 = У2 D хг • х2 = у\ • у2)- ■ Теорема 7.1. Множество высказываний Г языка ft U {=} имеет нормальную модель, если и только если ГиEq(ft) имеет модель. Доказательство. Пусть 9К — нормальная модель множества высказываний Г языка ft U {=}. Очевидно, что все высказывания из Eq(ft) истинны в любой нормальной интерпретации, в частности, в Ш. Следовательно, Ш является моделью множества Г U Eq(ft). Обратно, допустим, что Ш — некоторая модель множества высказываний Г U Eq(fl), и множество М — ее носитель. Пусть Е — двухместный предикат на М, интерпретирующий —. Определим на М бинарное отношение а ~ b ^ E(a,b) = 1. Так как в Ш истинны высказывания Eql - Eq3, то ^ — эквивалентность на М. Более того, так как для каждого функционального символа / в Ш истинно высказывание Eq(/), то функция /, интерпретирующая / в ЗДТ, согласована с отношением « в том смысле, что если «1 « Ьь ... ,ап « Ьп, то /(аь ... ,а„) и f{bx, .. . ,*>„)• Наконец, так как для каждого предикатного символа Р в Ш истинно высказывание Eq(P), то предикат Р, интерпретирующий Р в ЗДТ, согласован с отношением « в том смысле, что если И bi, ...,ап& Ьп, то Р(а\, ...,а„) = Р(Ъ ь ... ,Ьп). 180 
Пусть М/ « — множество всех классов эквивалентности по отношению Определим интерпретацию Ш/ « следующим образом. Носителем ее будет множество М/ Для каждой константы с сигнатуры ft ее значением с в интерпретации Ш/ « будет класс эквивалентности [с], которому принадлежит элемент с. интерпретирующий константу с в ЗДТ, т.е. с = [с]. Значением функционального символа / в интерпретации 9Л/ ~ будет функция /, которая каждому набору классов эквивалентности [ai],..., [ап] сопоставляет класс эквивалентно- сти элемента /(«i, ..., оп), т. е. /([«i], ..., [an]) = [/(a_i, ..., an)]. В силу упомянутой выше согласованности функции / с отношением эквивалентности такое задание функции / корректно в том смысле, что ее значение на наборе классов эквивалентности не зависит от выбора представителей этих классов. Значением предикатного символа Р сигнатуры ftU {=} в интерпретации Ш/ « будет предикат Р, который на каждом наборе классов эквивалентности [ai], ..., [ап\ принимает такое же значение, как и предикат Р на наборе ai, ..., an, т. е. P([ai], ..., [ап\) — Р(сц, ...,an). В силу упомянутой выше согласованности предиката Р с отношением эквивалентности ^ такое задание предиката Р корректно в том смысле, что его значение на наборе классов эквивалентности не зависит от выбора представителей этих классов. В частности, если Р есть предикатный символ равенства, то P([a],[6]) = 1, если и только если Р(а, b) = 1, т. е. а « 6, и классы [а] и [Ь] совпадают. Таким образом предикатный символ = интерпретируется в системе 9Я/ « именно как равенство, т. е. 9Л/^ — нормальная интерпретация. Пусть д — произвольная оценка в интерпретации 9Я, т. е. функция, сопоставляющая каждой переменной некоторый элемент множества М. Через д7 обозначим оценку в интерпретации Ш/ которая каждой переменной v сопоставляет класс эквивалентности [g(v)], и будем говорить, что оценки д и д' согласованы. Для каждого терма t сигнатуры ft через [t]g будем обозначать значение этого терма в алгебраической системе Ш при оценке д, а через [t\g/ — его значение в алгебраической системе Ш/ « при оценке д'. Лемма 7.1. Каков бы ни был терм t сигнатуры ft, Щд> = Ш, (7-1) 181 
т. е. значение терма t в алгебраической системе ЯЛ/ ~ при оценке д7 есть класс эквивалентности значения терма t в алгебраической системе ЯЛ при оценке д. Доказательство. Индукция по построению герма t. Если t есть константа с, то [t\g = с, [t]gt = [с], и (7.1) очевидно. Если t есть переменная v. то [t]g = g(v), [t]gt = g'(r) = [д(г)], так что (7.1) имеет место. Пусть t = f(t\, ... Дп), где / есть (п- местный) функциональный символ, a £i, ... , tn — термы, причем для каждого г = 1, ..., п имеет место [ti\g> = [[ti}g]- Тогда [Ад' = /([^l]p'» ■ • • > [tn}g') = /([[Д^Ь • • • 5 [[^n]flf]) = = [f([tl]gi ■ ■ • > [^n]p)] = t. e. (7.1) выполнено и в этом случае. ■ Для каждой формулы Ф языка ft U {=} через [Ф]д будем обозначать ее значение в системе ЯЛ при оценке д, а через [Ф]р/ — значение в системе ЯЛ/ ^ при оценке gf. Лемма 7.2. Каковы бы ни были формула Ф сигнатуры U U {=} и оценка д, имеет место равенство [*]«,' = №д, (7-2) т. е. значение Ф в системе ЯЛ/ ~ при оценке д' совпадает со значением Ф в системе ЯЛ при оценке д. Доказательство. Индукция по построению формулы Ф. Если Ф — атом Р(П, • •• Дп), где Р — (n-местный) предикатный символ, а £], ... , £п — термы, то по лемме 7.1 для каждого i — 1, ... , п имеет место [ti\g> = [[^]5]. Тогда №д' = Hlhlg', 1Ш = P([[*lU • • • - Ы) = = * 5 [tn\g) = [Ф]#5 т. е. (7.2) выполнено. Если Ф = -нф, причем [Ф]р/ = [Ф]р, то так что (7.2) имеет место. Если Ф = (Ф1ХФ2), где X G {&, V, D, =}, Причем [Ф^/ = [Ф1 \д, [Ф2\д' = [Ф2\д, то [% = ШдЛШд' = ШдЦ*2\д = Щд, т. е. имеет место (7.2). Пусть Ф = 3v Ф, причем для любой оценки h имеет место [Ф]^/ — [Ф]^. В частности, для любого [a] G М/ ~ выполнено [Ф] ,[а] — [Ф]ра. Тогда д v v 182 
[Ф}9, = 1 О (3[а] € М/ ») ([Ф]5,,о1 = 1) ^(Эа€М)([Ф]9- = 1)^[Ф]р = 1, и (7.2) доказано. Если Ф = \/v Ф, то [Ф] , = 1 ^ (V[o] е М/ и) ([Ф] ,[с] = 1) ^ У v ** (Va € М) ([Ф]й = 1) [Ф]э = 1, т. е. (7.2) выполнено и в этом случае. ■ Теперь можно завершить доказательство теоремы. Так как истинностное значение высказывания не зависит от оценки, то из леммы 7.2 следует, что для любого высказывания Ф его истинностные значения в интерпретациях Ш и Ш/ ~ совпадают. Поскольку все высказывания из Г истинны в ЗД1, то все они истинны и в 9Л/ т. е. Ш/ « — нормальная модель множества высказываний Г. ■ Следствие 7.1. Какова бы ни была теория с равенством Т, если Т совместна, то Т имеет нормальную модель. Доказательство. Пусть теория с равенством Т совместна, т. е. имеет модель Ш. Так как все высказывания из множества Eq(fl) являются теоремами теории Т, то ШТ является моделью теории Т U Eq(ft)) а тогда по теореме 7.1 Т имеет нормальную модель. ■ Исчисление предикатов с равенством. Обычно при семантическом построении аксиоматической теории символ = интерпретируется именно как предикат равенства. Иногда = причисляют к логическим символам наряду с логическими связками и кванторами. При дедуктивном построении аксиоматической теории приходится включать аксиомы равенства в систему аксиом в явном виде. На самом деле аксиомы равенства можно раз и навсегда включить в логический дедуктивный аппарат теории. Определение 7.10. Исчисление предикатов с равенством в сигнатуре П U {=} получается добавлением к обычному исчислению предикатов в сигнатуре ft U {=} множества аксиом Eq(ft). Понятия вывода в исчислении предикатов с равенством и вывода из гипотез в этом исчислении определяются так же, как и в случае обычного исчисления предикатов. Заметим, что каждый вывод в исчислении предикатов с равенством является выводом из множества гипотез Eq(ft) в обычном исчислении предикатов. 183 
Следующая теорема называется теоремой о корректности исчисления предикатов с равенством. Теорема 7.2. Всякое высказывание языка ft U {=}, выводимое в исчислении предикатов с равенством, истинно в каждой нормальной алгебраической системе сигнатуры Г2 U {=}. Доказательство. Пусть высказывание Ф выводимо в исчислении предикатов с равенством. Тогда Eq(ft) Ь Ф в обычном исчислении предикатов. По теореме 6.5 Eq(ft) \= Ф. Это означает, что Ф истинно во всякой алгебраической системе сигнатуры ft U { = }, которая является моделью множества Eq{ft). Но в каждой нормальной алгебраической системе все высказывания из множества Eq{ft) истинны. Следовательно, Ф также истинно в каждой нормальной алгебраической системе сигнатуры Пи{=}. ■ Многие результаты, касающиеся соотношения между истинностью в алгебраических системах и выводимостью в исчислении предикатов, сохраняются, если ограничиться рассмотрением только нормальных алгебраических систем и исчисления предикатов с равенством. Отметим некоторые из таких результатов. Следующая теорема является аналогом теоремы 6.15 о существовании модели для непротиворечивого множества высказываний. Будем говорить, что множество высказываний Г непротиворечиво в исчислении предикатов с равенством, если нет такой формулы Ф, что Ф и -<Ф выводимы из Г в этом исчислении. Теорема 7.3. Если множество высказываний Г языка ft U U {= } непротиворечиво в исчислении предикатов с равенством, то Г имеет нормальную модель. Доказательство. Так как в исчислении предикатов с равенством из множества высказываний Г не выводится противоречие, то множество высказываний Г U Eq(ft) непротиворечиво в обычном смысле. В силу теоремы 6.15 множество Г U Eq(ft) имеет модель, а тогда по теореме 7.1 множество Г имеет нормальную модель. ■ Теорема Лёвенгейма—Скулема (см. теорему 6.16) утверждает, что непротиворечивое множество высказываний в не более чем счетной сигнатуре имеет счетную модель. В случае языков с равенством эта теорема приобретает такую формулировку. 184 
Теорема 7.4. Всякое непротиворечивое в исчислении предикатов с равенством множество высказываний Г в не более чем счетной сигнатуре П U {=} имеет не более чем счетную нормальную модель. Доказательство. Если в исчислении предикатов с равенством из Г не выводится противоречие, то множество ruE’g(fi) непротиворечиво в обычном смысле. По теореме 6.16 множество Г U Eq(Q) имеет счетную модель Ш. Как показано при доказательстве теоремы 7.1, Г имеет нормальную модель вида Ш/ Поскольку число классов эквивалентности по отношению « может оказаться конечным, то модель Ш/ « не более чем счетна. ■ Следующая теорема о полноте исчисления предикатов с равенством является аналогом теоремы Гёделя о полноте. Теорема 7.5. Всякое высказывание языка П U {=}, истинное в каждой нормальной алгебраической системе, выводимо в исчислении предикатов с равенством в сигнатуре Л U {=}. Доказательство. Пусть высказывание Ф языка Л U {=} истинно в любой нормальной алгебраической системе. Допустим, что Ф не выводится в исчислении предикатов с равенством. Тогда множество {—'Ф} непротиворечиво в исчислении предикатов с равенством. В силу теоремы 7.3 множество {—^Ф} имеет нормальную модель, что невозможно, ибо в любой нормальной алгебраической системе истинно высказывание Ф. ■ Определение 7.11. Высказывание Ф языка Л U {=} будем называть нормальным логическим следствием множества высказываний Г того же языка и писать Г |=н Ф, если Ф истинно в каждой нормальной модели множества Г. Следующая теорема называется обобщенной теоремой о корректности исчисления предикатов с равенством. Теорема 7.6. Каковы бы ни были множество высказываний Г языка Пи {—} и высказывание Ф того же языка, если Ф выводимо из Г в исчислении предикатов с равенством, то Г |=н Ф. Доказательство. Пусть Г Ь Ф в исчислении предикатов с равенством. Тогда Ги£л/(Л) h Фв обычном исчислении предикатов. По теореме 6.5 Г U Eq(Q) |= Ф. Это означает, что Ф истинно во всякой алгебраической системе сигнатуры Л U {=}, которая является моделью множества Г U Eq(Л), в частности, в каждой 185 
нормальной модели множества Г. Таким образом, Ф истинно в каждой нормальной модели множества Г, т. е. Г J=H Ф. ■ Следующая теорема называется обобщенной теоремой о полноте исчисления предикатов с равенством. Теорема 7.7. Каковы бы ни были множество высказываний Г языка П U {=} и высказывание Ф того же языка, если Ф является нормальным логическим следствием множества Г, то Ф выводимо из Г в исчислении предикатов с равенством. Доказательство. Пусть Г (=н Ф, но Г I/ Ф в исчислении предикатов с равенством. Тогда множество Г U {—<Ф} непротиворечиво в исчислении предикатов с равенством. По теореме 7.3 множество Г U {—'Ф} имеет нормальную модель, что невозможно, ибо в любой нормальной модели множества Г истинно высказывание Ф. ■ Следующая теорема есть вариант теоремы Мальцева о компактности (см. теорему 6.22) для языков с равенством. Теорема 7.8. Каковы бы ни были множество высказываний Г и высказывание Ф языка Пи{=}, если Г |=н Ф, то существует конечное Д С Г такое, что Д |=н Ф- Доказательство. Пусть Г |=н Ф. Тогда по теореме 7.7 Г Ь Ф в исчислении предикатов с равенством. В силу свойства компактности выводимости существует конечное множество Д С Г такое, что Д h Ф в исчислении предикатов с равенством. По теореме 7.6 в этом случае имеет место Д (=НФ* ■ Следующая теорема есть вариант локальной теоремы Мальцева (см. теорему 6.21) для языков с равенством. Теорема 7.9. Каково бы ни было множество высказываний Г языка Пи{=}, если любое конечное его подмножество имеет нормальную модель, то Г имеет нормальную модель. Доказательство. Пусть любое конечное подмножество множества высказываний Г сигнатуры ft U {=} имеет нормальную модель. Тогда, очевидно, любое конечное подмножество множества Г U Eq(ft) имеет модель. По теореме 6.21 множество Г U Eq(ft) имеет модель, а по теореме 7.1 в этом случае Г имеет нормальную модель, что и требовалось доказать. ■ Теорема 7.10. Если множество высказываний Г языка Пи U {=} для любого натурального п имеет нормальную модель мощности, большей п. то Г имеет бесконечную модель. 186 
Доказательство. Для каждого натурального п > 1 определим формулу Еп следующим образом. В качестве Е\ возьмем формулу Зх (х = х). При п > 2 формула Еп выглядит так: Очевидно, что формула Еп истинна во всякой нормальной алгебраической системе, носитель которой содержит не менее и элементов. Пусть Л = Ги {Е\, Е2, ..Всякое конечное подмножество множества Л имеет нормальную модель. Действительно, любое конечное подмножество множества Л содержит лишь конечное число высказываний вида Еп и потому является подмножеством множества ru{£i, ..., Егп} для некоторого т. По условию Г имеет конечную нормальную модель мощности > т. Очевидно, что в этой модели истинны все высказывания Е\, ... , Ет, так что она является моделью множества Г U {Е\, ..., Ет}. По теореме 7.9 множество Л имеет нормальную модель, которая, очевидно, может быть только бесконечной. Она же будет и бесконечной моделью множества Г. ■ Теорема 7.11. Не существует такого высказывания сигнатуры Пи{ = }, которое было бы истинным во всех конечных нормальных алгебраических системах сигнатуры Q U { = } и ложным во всех бесконечных алгебраических системах этой сигнатуры. Эта теорема означает невозможность различения конечных и бесконечных интерпретаций посредством элементарного языка. Доказательство. Пусть высказывание Ф истинно во всех конечных нормальных интерпретациях. Тогда для любого п £ N множество {Ф} имеет нормальную бесконечную модель мощности, большей п, и по теореме 7.10 имеет бесконечную модель. Значит, Ф не может быть ложным во всех бесконечных интерпретациях. ■ Отметим некоторые технические детали, касающиеся исчисления предикатов с равенством. Если Дад, ..., хп) — терм, то через ДН, ... Дп) обозначим результат подстановки в него термов П, ... Дп вместо х\, ..., хп. Если подстановка термов t\, ... Дп вместо ад, ...,а:п в формулу Ф(ад, ...,хп) свободна в смысле определения 5.6, то результат подстановки будем обозначать Ф(£ь .. ,,tn). 187 
Предложение 7.4. 1. Каковы бы ни были термы 6 исчислении предикатов с равенством выводимы формулы ti = (7.3) t\ = t2 D t2 = ti; (7.4) h = t2 D (t2 = Э 4 = ^з)• (7-5) 2. Каковы бы ни были термы t{x\, ..., xn), £i, ... , tn, si, ..., sn, в исчислении предикатов с равенством выводима формула ti = Si&...&tn = sn D t(ti, ...,tn) = t(s 1, . ..,sn). (7.6) 3. Каковы бы ни были термы t\1 ... , £n, si, ...,sn и формула Ф(х1, ..., хп), еа/ш подстановка каждого из наборов Ч, ..., tn и s 1, ...,sn вместо ... , хп в Ф(х\. ..., жп) свободна, то в исчислении предикатов с равенством выводима формула ti = si&...&£n = 5n D (Ф(*ь ..., £n) D Ф(5Ь ...,5n)). (7.7) Доказательство. Формулы, выводимость которых утверждается, истинны в любой нормальной интерпретации. По теореме о полноте исчисления предикатов с равенством (см. теорему 7.5) они выводимы в этом исчислении. ■ Следствие 7.2. Следующие правила допустимы в исчислении предикатов с равенством: (sym =) Г t] = t‘2 _ Г b i2 = ti; ('trans =) Г h t\ = £2 Г Ь £2 = £3 Г Ь Ч = £3 где £1,^2 Дз ~ произвольные термы. Доказательство. Допустимость этих правил следует из выводимости формул (7.4) и (7.5). ■ Пусть терм t\ имеет вхождения в бескванторную формулу Ф. Зафиксируем одно такое вхождение, и формулу Ф с выделенным вхождением t\ обозначим Ф[Ч]. Через Ф[^] обозначим результат замены в Ф выделенного вхождения t\ на терм Если же терм t\ не входит в формулу Ф, будем считать, что Ф[^] == Ф[Ч] = Ф- Следствие 7.3. В исчислении предикатов с равенством допустимо следующее правило, называемое правилом замены: Г Ь Ч = t2 Г Ь Ф[Ч] г Ь t2 = с Г h ф[4] {г) ГЬФ[*2] ’ Г Ь Ф[й2] где t\ и t‘2 — любые термы, Ф — любая бескванторная формула. 188 
Доказательство. Если t\ не входит в Ф, то утверждение очевидно. Если же t\ входит в формулу Ф, заменим в ней выделенное вхождение терма t\ на переменную г, не встречающуюся в Ф. Полученную формулу обозначим Ф(г). Так как формула Ф(г) бескванторная, то любой терм допустим для подстановки в нее вместо v. Очевидно, что тогда Ф[^] есть Ф(П), а Ф[^] есть Ф(^). Пусть Г Ь ti = £2 и Г Ь Ф^]. В силу утверждения 3 из предложения 7.4 выводима формула t\ = t2 D (Ф(£х) Ф(^)). Отсюда, дважды применяя правило (D—»), получаем Г Ь Ф[^], что и требовалось доказать. Случай, когда Г Ь £2 = и Г Ь Ф^], сводится к рассмотренному, так как в силу правила (sym =) Г h t\ = t2. ■ 7.3. Изоморфизмы и элементарная эквивалентность Пусть Ш\ = (Mi, Л) и Ш2 — (М2,П) — алгебраические системы сигнатуры ft = (Сп, Fn, Рг). Значения константы с G Сп, функционального символа feFn, предикатного символа PgPt в Ш\ будем обозначать соответственно с, /, Р, а их значения в Ш2 будем обозначать с, /, Р. Пусть ср — некоторое отображение из Mi в М2. Вместо ср(т) для краткости будем писать срт. Определение 7.12. Будем говорить, что ср: сохраняет константу с, если ср с = с; сохраняет функциональный символ /, если для всех а\, ... , ап из Mi имеет место cp/(ai, ..., an) = /(cpai, ..., cpan); сохраняет предикатный символ Р, если для всех ai, ... , ап из Mi имеет место P(ai, ... ,an) = P(cpai, ... , cpan). Заметим, что если ЗДГ} и ШТ2 — нормальные алгебраические системы, то всякое взаимно-однозначное соответствие ср между множествами Mi и М2 сохраняет предикатный символ равенства: а = Ъ сра = срб для любых а, 6 G Mi. Определение 7.13. Пусть = (Mi,H) и 9Л2 = (M2,fl) - алгебраические системы сигнатуры ft. Отображение ср: Mi -»М2 называется изоморфизмом систем и Ш2 (или изоморфизмом из Ш\ в ЭЛг), если ср — взаимно-однозначное соответствие между Mi и М2, сохраняющее все константы, функциональные и предикатные символы сигнатуры ft. Говорят, что и Ш2 изо- 189 
морфны, и пишут Ш\ ~ Ш12? если существует изоморфизм и ОТ2. Пример 7.8. Рассмотрим две нормальные интерпретации 9Jtj и 9Н2 языка теории групп. Предметная область алгебраической системы ЗДТх — множество 2Z, состоящее из всех четных целых чисел, а алгебраической системы Ш2 — множество 3Z, состоящее из всех целых чисел, которые делятся на 3. Будем считать, что все сигнатурные символы интерпретируются естественным образом, т. е. 0 = 0 = 0, — интерпретируется как функция перехода к противоположному числу, + и + - сложение целых чисел. Определим отображение ср : 2Z —3Z так: ср(х) = 3 • х Очевидно, что ср — взаимно-однозначное соответствие между 2Z и 3Z, следовательно, сохраняет =. Отображение ф сохраняет константу 0, так как ф0 = ф0 3-0 2 0 = 6. Отображе¬ ние ф сохраняет функциональный символ —, так как ф(—а) — 3 • (-а) 3 ■ а = = — = —ф(а) для любого четного а. Наконец, ф сохраняет функциональный символ +, так как / 7 \ 3 • (а + Ь) 3 • а 3 -Ь ф(а + о) = = — 1 — = ф(а) + ф(6) для любых четных а и Ь. Следовательно, ф — изоморфизм Ш\ и Ш2, так что ~ Ш2. Заметим, что отображение ф не будет изоморфизмом колец 2Z и 3Z, т. е. интерпретаций языка теории колец, в которых функциональный символ • понимается как умножение целых чисел. Действительно, ф(2 • 2) = ф(4) = б, но ф(2) • ф(2) =3-3 = 9. ■ Определение 7.14. Говорят, что алгебраические системы и Ш2 сигнатуры ft элементарно эквивалентны, и пишут = ЗДТ2, если для любого высказывания Ф имеет место Шг И Ф ^ 9Л2 h Ф- Теорема 7.12. Если алгебраические системы и Ш2 сигнатуры П изоморфны, то они элементарно эквивалентны. Более того, если ф — изоморфизм из Ш\ в Ш2, а Ф(хь ... ,хп) — формула с параметрами ..., хп, uai, ..., ап Е М\, то ШГх (= ф(аь ... ,ап) <=> Ш2 |= Ф(сраь ... ,срап). 190 
Доказательство. Пусть М\ и М2 — носители изоморфных систем Ш\ и Ш2 соответственно, ср: М\ М2 — изоморфизм 971} и М2. Пусть и П2 — сигнатуры, полученные добавлением к П в качестве новых констант имен элементов М\ и М2 соответственно. Для каждого терма t сигнатуры Пх обозначим через t терм сигнатуры ft2, полученный заменой в t каждой константы т G Мх на константу срт G М2. Аналогично для любой формулы Ф языка Пх через Ф будем обозначать формулу языка И2, полученную заменой в Ф каждой константы т G Mi на срт. Пусть t — замкнутый терм сигнатуры fix, a [t\i — его значение в 9Jti, и пусть [i\ 2 — значение терма t в 9^2 ■ Лемма 7.3. Каков бы ни был замкнутый терм t сигнатуры fix, имеет место ср[£]х = [t\2. Доказательство. Несложная индукция по построению t. ■ Лемма 7.4. Для любого высказывания Ф языка fix выполнено 9Лх Д Ф фф 9Л2 И Ф. Доказательство. Индукция по логической длине формулы Ф. 1) Пусть Ф = Р(£х, ... Дп). Тогда Ф = Р(П, • • • Дп)5 так что 9Лх \= Ф фф P([ix]x, ..., [tn] 1) = 1 фф <=> Р(ф[П]ь • • • ,ф[*п] 1) = 1 Р([Д]2, • • • , [tn]2) = 1 ^ 5^2 И Ф- 2) Пусть Ф = —«Ф, причем 9Лх Д Ф ФФ Ш2 |= Ф. Тогда 971 х Д Ф фф 971} ^ Ф фф 9712 [Д Ф фф 9712 |= Ф. 3) Пусть Ф = (Ф1&Ф2), причем 977} \= Фх ФФ 9^2 |= Фх и 9Лх |= Ф2 ФФ 9Л2 |= Ф2- Тогда 9Лх |= Ф фф [9JT1 |= Фх и 9711 |= Ф2] фф фф [Ш2 Д Фх и Ш2 |= Ф2] фф Ш2 |= Ф. Аналогично рассматриваются случаи, когда высказывание Ф имеет вид (Фх V Ф2), (Фх D Ф2) или (Фх = Ф2). 4) Пусть Ф = ЕЬФ(г?), причем для любого замкнутого терма t сигнатуры Пх выполнено 9Лх |= Ф(£) фф 9Jt2 |= Ф(£). Заметим, что Ф = Зг?Ф(г). Тогда, если 9Лх \= Ф, то для некоторого т из М\ выполнено 9JTх Д Ф(т) и Ш2 Д Ф(т). Так как Ф (га) есть Ф(га'), где т! = срт, то 9^2 Д Ф(гп'), следовательно, 9Л2 |= Ф. 191 
Обратно, если Ш2 |= Ф, то для некоторого rrг' G М2 выполнено Ш2 |= Ф(ш'). Так как <р — взаимно-однозначное соответствие, то т! — срга для некоторого т G М\. Таким образом, ЗДТ? |= Ф(срга), т. е. Ш2 [= Ф(т), и Ш\ |= Ф(т), следовательно, \= Ф. Аналогично рассматривается случай, когда Ф = \/v Ф(г). ■ Пусть Ф — произвольное высказывание сигнатуры ft. Тогда Ф совпадает с Ф, и но лемме 7.4 Ш\ |= Ф Ш2 \= Ф. Пусть Ф(х1,... , жп) — произвольная формула сигнатуры ft с параметрами ад, ... , хп, и од, ...,ап G АД. Обозначим Ф(а\. ..., ап) через Ф. Тогда Ф = Ф(фах, ..., срап), и по лемме 7.4 OTi |= Ф(аь ... ,а„) -ФФ- Ш2 \= Ф(фаь • • • ,фап). ■ Теорема 7.12 означает, что если две алгебраические системы не являются элементарно эквивалентными, то они не изоморфны. Пример 7.9. Докажем, что упомянутые в примере 7.8 кольца 2Z и 3Z не изоморфны. Для этого покажем, что 2Z Щ 3Z. Пусть Ф — высказывание языка теории колец =3х(->х — 0 &:х 3- + х = х • х). Очевидно, что 2Z \= Ф, но 3Z ^ Ф, следовательно, 2Z Щ 3Z. ■ Полнота и категоричность. Определение 7.15. Элементарная теория Т сигнатуры ft называется полной, если Т непротиворечива, и для любого высказывания Ф языка ft либо Ф, либо -|ф является теоремой теории Т. В противном случае непротиворечивая теория называется неполной. Теорема 7.13. Для всякой алгебраической системы Ш ее элементарная теория Т/г(9Я) полна. Доказательство. Каково бы ни было высказывание Ф, выполняется ровно одно из условий: Ш \= Ф или Ш ^ ф. В первом случае Ф G Т/г(9Л), во втором — Ш \= —»Ф, следовательно, --Ф G Th(ffl). ш Определение 7.16. Пусть пг — какое-нибудь кардинальное число. Элементарная теория Т называется категоричной в мощности пг или пг - категории! юй, если Т имеет хотя бы одну модель мощности пг, и всякие две ее модели мощности пг изоморфны. 192 
Пример 7.10. Докажем, что теория плотного линейного порядка без первого и последнего элементов DLO является Кд-ка- тегоричной. Пусть А и В счетные множества, на каждом из которых задан плотный линейный порядок, в обоих случаях обозначаемый <, причем в А и В нет ни наименьшего, ни наибольшего элемента. Зафиксируем бесповторные пересчеты этих множеств: А — — {ao,ai,a2, ...}, В — {ЬоДъ^ •••}• Пусть х < у означает х < У & х ф у, & х > у означает у < х. Индукцией по г определим пары (Pi,qi), где pi G Л, ft G В. При этом будем следить за соблюдением условия Pi < Рз о Яг < Qj (7.8) для любых г и j. Положим ро = ao, qo = Пусть определены пары (po,qо), • • • (Рп, Яп)*, причем для г, j = 0, ..., п выполняется (7.8) . Если п чётно, положим рп+1 = щ, где г — наименьшее число такое, что щ ^ {ро? • • • ,Рп}- Если pn+i < Pj для всех j < п. положим gn+i = гДе ^ — наименьшее число такое, что bi < qj для всех j < п. Такое i найдется, так как в В нет наименьшего элемента. Если pn+i > Pj Для всех j < п, положим qn+\ = Ьг, где г - наименьшее число такое, что bi > qj для всех j < п. Такое г найдется, так как в В нет наибольшего элемента. Наконец, рассмотрим случай, когда pk < pn+i < Pi для некоторых fc, l < п. Пусть pj^ — наибольший среди таких элементов, что р^ < Рп+1, а pi -- наименьший среди таких элементов, что Рп+1 < Pi• Положим qn+\ — Ы, где г -- наименьшее число такое, что qk < bi < qp Такое число г найдется, так как порядок < плотный. Если п нечетно, положим qn+1 = bi, где г наименьшее число такое, что bi £ {qo, ..., qn}. Далее выбираем рп+1, как в случае четного п, с той разницей, что множества А и В меняются ролями. Очевидно, что в любом случае выполняется условие (7.8) для г, j = 0, ..., п + 1. Множество ср всех пар (pi,qi) (г = 0,1, 2, ...) является соответствием между множествами А и В. Очевидно, что это соответствие является взаимно-однозначным, а условие (7.8) для всех г, j = 0,1,2, ... означает, что ср является изоморфизмом упорядоченных множеств А и В. ■ Следующая теорема Лося Воогпа дает достаточное условие полноты теории. 193 
Теорема 7.14. Непротиворечивая теория с равенством, не имеющая конечных моделей и категоричная в счетной мощности, полна. Доказательство. Пусть Т — непротиворечивая теория с равенством, не имеющая конечных моделей и категоричная в счетной мощности. Предположим, что нашлось такое высказывание Ф, что оно и его отрицание ~^Ф не являются теоремами теории Т. Тогда множества Т U {Ф} и Т U {-^Ф} оба непротиворечивы. По теореме Лёвенгейма—Скулема (см. теорему 7.4) эти множества имеют не более чем счетные нормальные модели Ш\ и Ш2 соответственно. Поскольку Ш\ и Ш2 являются моделями теории Т, а по условию Т не имеет конечных моделей, то обе эти модели счетны. В силу ^о-категоричности теории Т модели Ш\ и Ш2 изоморфны, следовательно, элементарно эквивалентны в силу теоремы 7.12. Но это невозможно, так как в модели Ш\ истинно высказывание Ф, а в модели Ш2 истинно высказывание —«Ф, а Ф ложно. Полученное противоречие показывает, что одно из высказываний Ф и -*Ф является теоремой теории Т. ■ Автоморфизмы и выразимые предикаты. Пусть в определении 7.13 системы и Ш2 совпадают. Определение 7.17. Изоморфизм из Ш в Ш называется автоморфизмом алгебраической системы Ш. Пусть Ф(#1, ... ,хп) — формула сигнатуры ft с параметрами х\, ... ,хп, Ш — алгебраическая система сигнатуры ft с носителем М, a R есть n-местный предикат на М. Определение 7.18. Говорят, что формула Ф(хь ... ,хп) выражает предикат R в алгебраической системе ЯЛ, если (Vai, ... ,ап Е М)[Д(аь ...,a„) = l« ^ |= Ф(аь ... ,ап)]. Предикат йнаМ называется выразимым в Ш. если существует формула, его выражающая. Определение 7.19. Пусть R есть n-местный предикат на множестве М, а ср — функция из М в М. Говорят, что ср сохраняет 72, если R(a\, ..., ап) — i?(cpai, ..., срап) для всех а\, ..., ап G G М. Теорема 7.15. Пусть ср — автоморфизм алгебраической системы 9Я. Тогда ср сохраняет все выразимые в Ш предикаты. 194 
Доказательство. Пусть n-местный предикат R выразим в системе Ш. Тогда для некоторой формулы Ф(жь ... ,хп) выполнено (7.9). По теореме 7.12 для всех а\, .... ап Е М выполнено Ш \= Ф(аь ... ,ап) <3- Ш \= Ф(фоь ... ,срап). Отсюда и из (7.9) получаем Д(ах, ..., ап) = i?(cpai, ..., срап). и В силу теоремы 7.15 для доказательства невыразимости предиката достаточно найти автоморфизм алгебраической системы, который не сохраняет данный предикат. Пример 7.11. Предикат х + у = z невыразим в системе (Z, <), так как отображение ср(х) = х + 1 является автоморфизмом этой системы, но не сохраняет указанный предикат. ■ 7.4. Аксиоматизируемые классы Пусть К — некоторый класс алгебраических систем сигнатуры ft. Нам хотелось бы дать определение этого класса в элементарном языке П, т. е. указать такое множество высказываний Г языка П, которые истинны в точности во всех системах из класса К. Тогда можно было бы сказать, что системы из класса К это те системы, в которых истинны все высказывания из Г. Эта задача приводит к следующим понятиям. Определение 7.20. Класс К алгебраических систем сигнатуры ft называется аксиоматизируемым, если существует множество высказываний Г языка ft такое, что К есть в точности класс всех моделей множества Г, г. е. К = Mod(Y). В этом случае Г называется аксиоматикой класса К. Если существует конечная аксиоматика класса К, то класс К называется конечно аксиоматизируемым. Определение 7.21. Класс К нормальных алгебраических систем сигнатуры ПU { = } называется аксиоматизируемым, если существует множество высказываний Г языка Г2и{—} такое, что К есть в точности класс всех нормальных моделей множества Г. Очевидно, что если класс К алгебраических систем сигнатуры Ли{=} аксиоматизируем, то его аксиоматика является также аксиоматикой класса всех нормальных систем из К. 195 
Пример 7.12. Аксиоматикой класса всех нормальных алгебраических систем сигнатуры Г2U {=} является, например, пустое множество аксиом. Действительно, любая нормальная алгебраическая система является моделью пустого множества аксиом. ■ Пример 7.13. Класс всех бесконечных нормальных алгебраических систем сигнатуры ft U {=} аксиоматизируем. Его аксиоматикой является, например, бесконечное множество высказываний {Е\, Е2, ...}, где Еп (п = 1,2,3, ...) есть высказы¬ вание, построенное при доказательстве теоремы 7.10: цт цт ( ^ ~'{%i — xj) ^ 1 l<i<j<n I • Действительно, каждое из высказываний Еп истинно в данной алгебраической системе Ш сигнатуры Г2 U {=}, если и только если предметная область системы Ш содержит не менее п элементов. Поэтому все вместе эти высказывания истинны во всех бесконечных алгебраических системах и только в них. ■ Пример 7.14• Класс всех групп конечно аксиоматизируем. Его аксиоматикой является, например, система аксиом элементарной теории групп G, приведенная в подразделе 7.1, так как всякая нормальная модель теории G является (называется) группой. ■ Пример 7.15. Аксиоматика класса всех абелевых групп получается добавлением к системе G высказывания Vx Vy (х + у — = у + ж), выражающего коммутативность групповой операции +. ■ Пример 7.16. Класс всех колец конечно аксиоматизируем. Его аксиоматикой является система аксиом элементарной теории колец R, приведенная в подразделе 7.1. ■ Пример 7.17. Класс всех колец без делителей нуля конечно аксиоматизируем. Его аксиоматика получается добавлением к системе аксиом R высказывания \/х\/у (х - у = 0 D х = 0 V у = = 0). - Пример 7.18. Класс всех полей конечно аксиоматизируем. Его аксиоматикой является система аксиом элементарной теории полей F, приведенная в подразделе 7.1. ■ Пример 7.19. Для каждого поля однозначно определена его характеристика. Это такое простое число р, для которого р • 1 = 196 
= 0, где р • 1 обозначает сумму р слагаемых 1 + • • • + 1. Если же такого числа р нет, то говорят, что поле имеет характеристику 0. Для каждого простого числа р класс всех полей характеристики р конечно аксиоматизируем. Его аксиоматика Fp получается добавлением к аксиоматике класса всех полей F высказывания р • 1 =0. Класс всех полей характеристики 0 аксиоматизируем. Его аксиоматика Fo получается добавлением к аксиоматике класса всех полей F высказываний —ip -1 = 0 для каждого простого р. Таким образом, Fo = F U {->(2 -1 = 0), ->(3 -1 = 0), -Д5 • 1 = = 0),...}. Докажем, что класс всех полей характеристики 0 не является конечно аксиоматизируемым. Предположим, что этот класс имеет конечную аксиоматику, состоящую из высказываний Фх, ..., Фп. Тогда ее можно заменить одной аксиомой Ф — конъюнкцией Ф1 h ... h Фп. Так как Ф истинна в любом поле характеристики 0, то Ф является нормальным логическим следствием аксиоматики класса всех полей характеристики 0, иными словами, Fo |=н Ф- По теореме 6.22 существует конечное подмножество Д множества Fo такое, что Д |=н Ф- Множество Д содержит какие-то аксиомы теории полей F и конечное число высказыва- ний-.(р1-1 = 0),~'(р2■1 = 0), 1 = о), гдерьр2, •••,№ - некоторые простые числа. Пусть р — простое число, отличное от всех чисел pi,p2> • • • ,Pfc- Очевидно, что поле Ър характеристики р является нормальной моделью множества Д, а значит в этом поле истинно высказывание Ф, являющееся нормальным логическим следствием множества Д. Но это невозможно, так как высказывание Ф истинно только в полях характеристики 0. ■ Пример 7.20. Напомним, что линейно упорядоченное множество называется вполне упорядоченным, если каждое непустое его подмножество имеет наименьший элемент. Простейший пример бесконечного вполне упорядоченного множества — множество N с естественным порядком < на нем. Докажем, что класс всех вполне упорядоченных множеств не является аксиоматизируемым. Допустим противное: пусть Г — некоторое множество высказываний языка упорядоченных множеств, являющееся аксиоматикой этого класса. Временно расширим язык упорядоченных множеств, добавив в его сигнатуру счетное множество констант со, с\, с2, ... Рассмотрим тео¬ 197 
рию в этом расширенном языке, задаваемую системой аксиом Д = Г U {с0 > С\, ci > с2, .. .}, где а > ст (г = 0,1, ...) есть 1 < Cih^(ci+1 = С{). Каждое конечное подмножество Е С Д содержит конечное число аксиом из Г, а также конечное число высказываний > c^ + i, с*2 > q2+i, ..., > Qn+i, где ii < г2 < • • • < гп. Зададим интерпретацию расширенного языка на множестве N следующим образом. Пусть < интерпретируется как естественный порядок, а значением константы с^ (А; = 1, ... ,п) будет число in — ik + 1- Очевидно, что эта интерпретация является нормальной моделью множества Е. Таким образом, каждое конечное подмножество Д имеет нормальную модель. По теореме 7.9 Д имеет нормальную модель. Эта модель представляет собой непустое множество М, на котором заданы отношение < и значения co,ci,C2, ... констант co,ci,C2, ... Так как при этом истинны все высказывания из Г, то М вполне упорядочено отношением <. С другой стороны, очевидно, что в множестве {co,Ci,C2, ...} нет наименьшего элемента. Полученное противоречие означает, что на самом деле никакой аксиоматики для класса всех вполне упорядоченных множеств не существует. ■ Предложение 7.5. Если класс К алгебраических систем сигнатуры П конечно аксиоматизируем, то его дополнение К в классе всех систем сигнатуры ft конечно аксиоматизируемо. Доказательство. Пусть {Ф1, ..., Фп} — конечная аксиоматика класса К, и пусть Ф есть высказывание Ф1 & ... & Фп. Очевидно, что множество {-нф} является аксиоматикой класса К. ■ Теорема 7.16. Пусть К\ и К2 -- аксиоматизируемые классы. Тогда их пересечение К1ПК2 является аксиоматизируемым классом. Если при этом классы К\ и К2 конечно аксиоматизируемы, то класс К\ П К2 конечно аксиоматизируем. Доказательство. Пусть К\ и К2 — аксиоматизируемые классы алгебраических систем сигнатуры ft, и пусть Гi - аксиоматика класса К\, а Г2 — аксиоматика класса К\. Нетрудно доказать, что алгебраическая система Ш сигнатуры ft принадлежит классу К1 П К2 тогда и только тогда, когда Ш является моделью для Г\ U Г2. Таким образом, множество Г1 U Г2 — аксиоматика класса К\ П 7^2- Заметим, что если множества Г\ и Г2 оба конечны, то их объединение Т\ U Г2 также конечно. Тем 198 
самым мы доказали, что пересечение любых двух конечно аксиоматизируемых классов является конечно аксиоматизируемым классом. ■ Теорема 7.17. Объединение К\ U К2 (конечно) аксиоматизируемых классов К\ и К2 (конечно) аксиоматизируемо. Доказательство. Пусть Гх и Г2 — аксиоматики классов К\ и К2• Докажем, что множество Г = {Фх V Ф2 | Ф1 G Гх, Ф2 G Г2} является аксиоматикой класса К\ U К2. Требуется доказать, что алгебраическая система Ш сигнатуры ft принадлежит классу К\ U К2 тогда и только тогда, когда Ш |= Г. Итак, пусть Ш Е K\U К2 и Ф — произвольное высказывание из Г. Тогда Ф = (Фх V Ф2), где Фх Е Гх, Ф2 £ Г2. Докажем, что ®Т |= Ф. Пусть Ш Е К\. Тогда Ш \= Фх, а значит, Ш |= Ф. Аналогично, если Ш Е К2, то Ш |= Ф2 и Ш |= Ф. Таким образом, мы доказали, что всякая алгебраическая система из класса К\ U К2 является моделью множества высказываний Г. Докажем, что 9Л |= Г =Ф> Ш Е К\ U К2. Пусть Ш |= Г, однако Ш £ К\ U /^2. Тогда 9Л ^ К\, 9Я ^ Так как Гх и Г2 — аксиоматики классов К\ и К2 соответственно, то найдутся высказывания Фх Е Гх и Ф2 Е Г2 такие, что Ш Фх и ЗД1 Ф2. Но тогда 9К ^ (Фх V Ф2), что невозможно, ибо высказывание Фх V Ф2 принадлежит множеству Г, а Ш является моделью для Г. Если множества Гх и Г2 оба конечны, то множество Г также конечно, так что объединение любых двух конечно аксиоматизируемых классов является конечно аксиоматизируемым. ■ Теорема 7.18. Класс К алгебраических систем сигнатуры ft является конечно аксиоматизируемым тогда и только тогда, когда и класс К, и его дополнение К в классе всех алгебраических систем сигнатуры ft аксиоматизируемы. Доказательство. Пусть класс К алгебраических систем сигнатуры ft конечно аксиоматизируем. Тогда в силу предложения 7.5 его дополнение К также аксиоматизируемо. Докажем, что если класс К и его дополнение К оба аксиоматизируемы, то К конечно аксиоматизируем. Итак, пусть классы К и К аксиоматизируемы, и пусть Г — аксиоматика для К, а Г7 — аксиоматика для К. Как видно из доказательства теоремы 7.16, множество высказываний ГиГ7 является аксиоматикой пустого класса К Г) К, следовательно, множество ГиГ7 не имеет моделей. В силу локальной теоремы Мальцева существует ко- 199 
печное подмножество Д° С Г U Г. которое не имеет моделей. Оба множества Д = Д° П Г и Д' = Д° П Г/ конечны. Докажем, что множество Д является аксиоматикой класса К. Пусть Ш — модель множества Д. Докажем, что 9Л £ К. Допустим противное. Тогда Ш Е К, и в Ш истинны все высказывания из Д'. Значит, в Ш истинны все высказывания из Д° = = Д U Д;, что противоречит предположению о невыполнимости множества Д°. Таким образом, мы доказали, что всякая модель множества высказываний Д принадлежит классу К. Обратное утверждение, что всякая алгебраическая система Ш из класса К является моделью множества Д, очевидно, так как Д С Г, а Г является аксиоматикой класса К, так что в любой алгебраической системе из К, в частности, в ЗД1, истинны все высказывания из Г, в частности, все высказывания из Д. ■ Теорема 7.19. Пусть К аксиоматизируемый класс алгебраических систем сигнатуры П U { = }. Тогда класс К00 всех бесконечных нормальных алгебраических систем из К аксиоматизируем. Доказательство. Класс К^ пересечение аксиоматизи¬ руемого класса К и класса всех бесконечных нормальных алгебраических систем сигнатуры Q U {=}, аксиоматизируемость которого установлена в примере 7.13. По теореме 7.16 класс К^ аксиоматизируем. ■ Пример 7.21. Классы всех бесконечных групп, колец, полей аксиоматизируемы. Их аксиоматики получаются добавлением бесконечного множества высказываний Е\, Еъ к аксиоматикам классов всех групп, колец, полей соответственно. ■ Теорема 7.20. Если аксиоматизируемый класс К содержит конечные нормальные алгебраические системы со сколь угодно большим числом элементов, то К содержит бесконечную нормальную алгебраическую систему. Доказательство. Пусть К — аксиоматизируемый класс алгебраических систем сигнатуры П U {=}, и Г — его аксиоматика. Пусть К содержит конечные нормальные алгебраические системы со сколь угодно большим числом элементов. По условию, для любого натурального п в классе К имеется конечная нормальная алгебраическая система, содержащая более п элементов, которая, таким образом, является нормальной моделью 200 
множества высказываний Г. По теореме 7.10 Г имеет бесконечную нормальную модель, которая принадлежит К, так как Г -- аксиоматика К. ■ Следствие 7.4. Если класс К конечных алгебраических систем содержит нормальные системы со сколь угодно большим; числом элементов, то К не является аксиоматизируемым. Доказательство. Если бы класс К был аксиоматизируем, то по теореме 7.20 он содержал бы бесконечную нормальную алгебраическую систему вопреки условию. ■ Пример 7.22. Классы всех конечных групп, колец, полей не являются аксиоматизируемыми, поскольку существуют конечные группы, кольца, поля со сколь угодно большим числом элементов. ■ Теорема 7.21. Если класс алгебраических систем, К содержит конечные нормальные алгебраические системы со сколь угодно большим числом элементов, то класс К00 всех бесконечных нормальных систем из К не является конечно аксиоматизируемым. Доказательство. Допустим, что класс К, содержащий конечные нормальные алгебраические системы со сколь угодно большим числом элементов, конечно аксиоматизируем. Тогда в силу предложения 7.5 его дополнение К конечно аксиоматизируемо. С другой стороны, как показывает пример 7.12, класс L всех нормальных алгебраических систем сигнатуры ft U { = } конечно аксиоматизируем. Тогда по теореме 7.16 аксиоматизируем класс КПЬ, состоящий из всех конечных алгебраических систем из К, а это противоречит следствию 7.4. ■ Пример 7.23. Классы всех бесконечных групп, колец, полей не являются конечно аксиоматизируемыми. ■ Класс всех бесконечных алгебраических систем аксиоматизируется одной формулой второго порядка. Множество М бесконечно тогда и только тогда, когда существует отображение /: М —» М, которое инъективно, но не сюръективно. Инъективность / выражается формулой \JxMy (f(x) = f(y) D х = у)) (обозначим ее 1п(/)), а сюръективность -- формулой УхЗу f(y) — х (обозначим ее Sur(/)). Тогда бесконечность предметной области выражается формулой второго порядка =3/ (In(/) &; ->Sur(/)), где / — функциональная переменная. 
Глава 8 НАЧАЛЬНЫЕ ПОНЯТИЯ ТЕОРИИ АЛГОРИТМОВ В данной главе вводятся понятия, осмысление которых необходимо для изложения и изучения теории алгоритмов. 8.1. Неформальное понятие алгоритма Алгоритм — это точное предписание, которое задает вычислительный (алгоритмический) процесс, начинающийся с произвольного исходного данного (из некоторой совокупности возможных для данного алгоритма исходных данных) и направленный на получение полностью определяемого этим исходным данным результата. Алгоритм описывает порядок действий исполнителя для решения некоторой задачи. В наше время в качестве исполнителя алгоритма чаще всего выступает компьютер. В этом случае алгоритм называют также компьютерной программой. Однако исполнителем может быть и человек. Так, именно для человека формулируются известные из начальной школы правила (т. е. алгоритмы) сложения, вычитания, умножения и деления чисел столбиком. В этих алгоритмах возможными исходными данными служат упорядоченные пары натуральных чисел, записанных в десятичной системе, а возможными результатами — натуральные числа. Именно с правилами арифметических действий связано само появление термина «алгоритм». Его происхождение связывают с именем среднеазиатского ученого аль-Хорезми (полное имя Абу Абдалла Мухаммед бен Муса аль-Маджуси аль-Хорезми), жившего в IX в., описавшего изобретенную в Индии позиционную десятичную систему счисления и сформулировавшего правила вычислений в этой системе. Именно благодаря латинскому переводу трактата аль-Хорезми (XII в.) позиционная система счисления стала известной в Европе, а правила счета в этой системе получили название алгоритмов по латинской транскрипции имени автора трактата. В широ¬ 202 
ком смысле, к алгоритмам можно отнести всякое точное предписание (например, подробный рецепт приготовления некоторого блюда или инструкцию по сборке предмета мебели из деталей). Однако мы будем рассматривать лишь алгоритмы, направленные на решение математических задач. Роль алгоритмов в математике определяется тем, что на протяжении всей истории ее развития возникают и решаются задачи, явно или косвенно связанные с понятием алгоритма. Эго происходит всякий раз, когда речь идет об умении решать задачу «в общем виде». Например, говоря об умении человека извлекать квадратный корень, имеют в виду, что он владеет некоторым единообразным приемом (т. е. алгоритмом) извлечения квадратного корня. Понятие решения задачи «в общем виде» уточняется в математике при помощи понятия массовой алгоритмической проблемы, состоящей в требовании найти единый алгоритм для решения некоторой серии отдельных, единичных проблем. К ним относятся, например, возникающие в алгебре проблемы численного решения уравнений того или иного типа, проверки алгебраических равенств и т. п. В настоящее время построение алгоритмов для численного решения математических задач особенно актуально в связи с широким использованием вычислительной техники. Положительное решение алгоритмической проблемы, т. е. построение соответствующего алгоритма, не требует специального анализа понятия алгоритма. В каждом конкретном случае обычно бывает ясно, является ли предложенное общее правило решения данной серии задач алгоритмом. Так, например, в математике известны процесс нахождения наибольшего общего делителя двух целых чисел (алгоритм Евклида), алгоритмы разложения натурального числа на простые множители, извлечения квадратного корня из натурального числа, решения системы линейных уравнений методом Гаусса и т. д. Однако со временем математика столкнулась с такими алгоритмическими проблемами, которые не поддавались решению. Одной из наиболее известных (это не значит, что наиболее важных) таких проблем является десятая проблема Гильберта, состоящая в требовании найти алгоритм для распознавания разрешимости в целых числах ди- офантовых уравнений, т.е. уравнений вида Р(хi, ...,хп) = О, где Р(х 1, ..., хп) — многочлен от переменных яд, ..., хп с целочисленными коэффициентами. Трудности решения этой и ряда других алгоритмических проблем постепенно привели к осозна¬ 203 
нию того, что искомый алгоритм, возможно, вообще не существует. Но для строгого математического доказательства невозможности алгоритма для решения той или иной массовой проблемы требуется строгое математическое определение понятия алгоритма и исследование общих свойств алгоритмов. Этим и занимается раздел современной математики, который называется теория алгоритмов. Математическое понятие алгоритма стало предметом самостоятельного изучения лишь в XX в. В настоящее время известны различные математические уточнения понятия алгоритма и связанного с ним понятия вычислимости. Все они оказались в некотором смысле эквивалентными и отражают общие интуитивные представления об алгоритмах. Эти представления можно сформулировать в виде следующих общих свойств алгоритмов. 1. Дискретность. Выполнение алгоритма состоит из отдельных шагов. Каждый шаг обязательно завершается. Если выполнение алгоритма никогда не закончится, это означает, что алгоритм совершает бесконечное число шагов. В случае компьютерной программы шагом работы считается выполнение одной команды. 2. Элементарность тагов. Выполнение каждого шага работы алгоритма должно быть простым и не требовать какой-либо изобретательности от исполнителя. Это свойство наглядно проявляется при выполнении алгоритма компьютером, где способ исполнения команд изначально заложен в операционную систему. 3. Детерминированность. Результат выполнения каждого шага алгоритма однозначно определяется программой и результатами выполнения предшествующих шагов алгоритма. 4. Направленность. Должно быть указано, что надо считать результатом алгоритма. 5. Массовость. Исходные данные для алгоритма могут выбираться из заранее фиксированного множества возможных исходных данных. Обычно это множество бесконечно. Рассмотрим некоторые понятия, относящиеся к алгоритмам. 8.2. Конструктивные объекты Тип конструктивных объектов. С каждым алгоритмом связано множество возможных исходных данных этого алгоритма. Так, как уже отмечалось, возможными исходными дан¬ 204 
ными известных из школы алгоритмов сложения, вычитания, умножения и деления натуральных чисел служат упорядоченные пары таких чисел, записанных в десятичной системе. В общем случае возможными исходными данными алгоритма могут быть лишь так называемые конструктивные объекты. Конструктивный объект — это такой объект, который построен (сконструирован) из некоторых исходных элементарных неделимых элементов фиксированного точно очерченного конечного множества по фиксированным правилам построения. Если фиксированы набор исходных элементов и правила построения объектов из них, говорят, что задан тип конструктивных объектов. Каждый конструктивный объект данного типа можно представлять себе как результат конструктивного процесса, который состоит в последовательном применении правил построения. Обычно тип конструктивных объектов задается с помощью индуктивного определения: одни правила построения объявляют объектами данного типа некоторые конкретные объекты, а остальные правила позволяют по уже имеющимся объектам данного типа строить новые. Примером типа конструктивных объектов является словарное пространство над данным конечным алфавитом £ — множество £* всех слов в алфавите £. При этом исходными элементами являются буквы алфавита £, а способ конструирования состоит в построении конечных цепочек букв, т. е. слов. Для удобства в £* включают и пустое слово, не содержащее ни одной буквы; обычно его обозначают символом Л. Индуктивное определение словарного пространства £* приведено в подразделе 2.2. Множество всех натуральных чисел N = {0,1, 2,...} может рассматриваться как тип конструктивных объектов, так как натуральные числа можно изображать, например, словами в однобуквенном алфавите {1}: 0 — пустое слово; 1 — слово 1; 2 — слово 11 и т. д. (Такое представление называется унарной записью натуральных чисел.) Таким образом, любое натуральное число можно представлять как результат конструктивного процесса, состоящего в последовательном выписывании ряда единиц, а натуральный ряд N — как словарное пространство {1}*. Другой способ задания типа конструктивных объектов состоит в выделении с помощью некоторого простого правила объектов определенного вида среди всех конструктивных объектов данного типа, например, заданного индуктивно. Так, исполь¬ 205 
зуя десятичную запись натуральных чисел, множество N можно представлять также как совокупность, состоящую из слова 0 и всех тех непустых слов в алфавите, состоящем из цифр 0,1,2, 3,4,5, б, 7, 8, 9, (8.1) которые не начинаются с буквы 0. В этом случае конструктивный процесс порождения натуральных чисел можно представлять как процесс порождения слов в алфавите (8.1), совмещенный с тестированием их на предмет выполнения условия, что первая буква не есть 0. Можно дать и непосредственное индуктивное определение типа натуральных чисел N: 1) всякая цифра есть натуральное число; 2) если X — натуральное число, отличное от 0, a S; — десятичная цифра, то слово XS; есть натуральное число. Множество всех целых чисел Z может быть задано как совокупность тех слов в алфавите { — ,1}, которые вообще не содержат букву « —» или имеют вид — X, где X — натуральное число, отличное от 0. Индуктивное определение типа целых чисел Z можно дать, считая известным определение натурального числа: 1) всякое натуральное число есть целое число; 2) если X — натуральное число, отличное от 0, то слово — X есть целое число. Аналогично, тип рациональных чисел Q можно определить как совокупность слов в алфавите {/, —, 1}, содержащую все целые числа, а также все слова вида Х/У, где X — целое число; У — натуральное число, отличное от 0 и от 1, причем числа X и Y взаимно просты. Множество возможных исходных данных любого алгоритма есть некоторый тип конструктивных объектов. Типы конструктивных объектов соответствуют используемому в программировании понятию «тип данных». Тип конструктивных объектов может быть конечным. Таков, например, логический тип данных, состоящий из элементов 1 («истина») и 0 («ложь»). Однако для теории алгоритмов представляют интерес бесконечные типы. При этом бесконечный тип конструктивных объектов рассматривается как потенциально бесконечный. Это означает, что хотя за конечное время можно реально построить лишь конечное число объектов данного типа, все же конструктивный процесс построения объектов может быть продолжен сколь угодно далеко и давать нам все новые объекты 206 
этого типа. Таковы, например, типы конструктивных объектов Нумерация конструктивных объектов. Все многообразие конструктивных объектов не исчерпывается словами в том или ином алфавите. Так, на практике приходится иметь дело с алгоритмами, исходными данными для которых являются таблицы (например, алгоритм умножения матриц или алгоритм вычисления определителя квадратной матрицы). Однако и в этом случае можно перейти к представлению исходных данных в ви- где Р, Q, R, 5, Т, U — слова в некотором алфавите S (натуральные, целые или рациональные числа), записывать в виде слова PhQhR \ S&T&U (конечно, при условии, что буквы \ и Sz не принадлежат алфавиту Е). Другой пример конструктивных объектов - конечные графы. Поскольку любой конечный граф с точностью до изоморфизма определяется своей матрицей смежности, то представление такой матрицы в виде слова может считаться и представлением графа. Существуют и другие способы представления конечных графов в виде слов. Приемы подобного рода дают возможность переходить к изображению конструктивных объектов любого типа словами в подходящем алфавите. Поэтому словарные пространства играют особую роль в теории алгоритмов. Более того, отличительной особенностью любого типа конструктивных объектов является возможность кодирования его элементов словами в подходящем алфавите. Кодирование конструктивных объектов данного типа X словами в алфавите Е устанавливает взаимно-однозначное соответствие между X и некоторым подмножеством множества Е*. Это означает, что всякий тип конструктивных объектов является не более чем счетным множеством. Поэтому, например, множество всех действительных чисел R не является типом конструктивных объектов и, следовательно, не может рассматриваться как множество возможных исходных данных какого-либо алгоритма. На практике мы иногда встречаются с алгоритмами, оперирующими с действительными числами (например, алгоритм решения квадратного уравнения с действительными коэффициентами). На самом деле исходными данными для таких алгоритмов являются не сами действительные числа, а их представления в какой-либо системе кодирования. Всякая такая система £*, N, Z, Q. де слов. Например, можно условиться матрицу 207 
дает возможность представления в виде конструктивных объектов лишь для некоторого счетного множества действительных чисел. Поэтому на практике обычно имеют дело с приближенным представлением исходных данных, выражаемых действительными числами. Кодирование конструктивных объектов типа X словами в алфавите Е само должно быть алгоритмическим. А именно, требуется выполнение следующих условий: 1) существует алгоритм, который по всякому объекту a £ X строит кодирующее его слово а в алфавите S; 2) существует алгоритм, который по любому слову w в алфавите Е позволяет определить, является ли это слово кодом некоторого объекта из X; 3) существует алгоритм, который по любому слову w £ Е*, являющемуся кодом некоторого объекта из X, строит этот объект. В свою очередь, элементы любого словарного пространства допускают кодирование натуральными числами. Например, мы можем установить взаимно-однозначное соответствие между элементами словарного пространства Е* и натуральными числами, занумеровав все слова в алфавите Е в лексикографическом порядке. А именно, пусть Е = {ai, ...,ар}. Если р = 1, т.е. алфавит Е состоит из одной буквы, то слову w £ Е* сопоставим его длину, т. е. количество букв в слове w. Если же р > 2, то номер пустого слова полагаем равным 0, а номером непустого слова w = сщ ... а?1 щ0 будем считать число ve(w) = г0 + i\p + . •. + isps- (8.2) Так как при фиксированном р каждое положительное целое число п единственным образом представимо в виде п = г0 + iip + ... + isps, (8.3) где 1 < ik < р (к = 0,1, ..., 5), то каждое натуральное число является номером одного и только одного слова в алфавите Е. Нетрудно проверить, что если длина слова w\ меньше длины слова и?2, то vs(tci) < v^(w;2), а если длины слов w\ и W2 совпадают, то порядок номеров этих слов соответствует расположению слов w\ и w<i в алфавитном порядке. Заметим, что формула (8.2) справедлива и для р=1. Формула (8.2) позволяет найти номер каждого слова w £ Е* в описанной нумерации. Обратно, по любому натуральному числу п можно найти то слово w в алфавите Е = {ai, ...,ар}, номером которого является число п. Очевидно, что для этого надо представить число п в 208 
виде (8.3). Если такое представление найдено, то искомое слово есть w = ... а^аго- Пример 8.1. Пусть алфавит Е состоит из букв а, 6. с. В этом случае р — 3, а\ — а, = 6, аз = с. 1) Найдем номер слова w = accb в только что описанной нумерации V£. Имеем w = 0,10,3(13(12, так что го = 2, г’] = 3, гг = 3, гз = 1. Таким образом, по формуле (8.2) ve(w) = 2 + 3 • 3 + 3 • З2 + 1 • З3 = 65. 2) Найдем слово w с номером 100. Представим число 100 в виде (8.3). Остаток от деления 100 на 3 равен 1, так что го = 1. Неполное частное от деления 100 на 3 равно 33. Это число делится па 3, поэтому полагаем %\ =3. Продолжая этот процесс далее, получаем 100 = 1 3 • 3 Т 1 * З2 Т 3 * З3. Таким образом, г’о = г 2 = 1, Н = ?з = 3. Следовательно, искомое слово есть a^aia^ai. т. е. сасо. ■ Учитывая возможность кодирования конструктивных объектов любого типа X словами в подходящем алфавите Е, можно установить соответствие между объектами типа X и натуральными числами, сопоставив объекту a Е X число vx(fl) = V£*(a), где а — слово в алфавите Е, являющееся кодом объекта а. Таким образом, можно говорить о нумерации типа конструктивных объектов X. Эта нумерация является вычислимой в следующем смысле. 1) Существует алгоритм, который по всякому объекту а типа X находит его номер vx(a). Действительно, по объекту а можно алгоритмически найти кодирующее его слово а, а затем вычислить V£*(a), т. е. vx(a). 2) Существует алгоритм, который для всякого натурального числа гп позволяет определить, является ли это число кодом некоторого объекта из X. Действительно, но числу т мы можем найти то слово w G Е*, номером которого число т является, а затем проверить, является ли слово w кодом какого-либо объекта типа X. 3) Существует алгоритм, который позволяет по любому натуральному числу т, являющемуся номером некоторого объекта типа X, найти этот объект. Действительно, по числу т мы можем найти то слово w G Е*, номером которого число т является. Очевидно, что если т является номером некоторого объекта a G X, то слово w является кодом объекта а, и можно алгоритмически найти этот объект. Свойства 1)—3) позволяют получить взаимно-однозначную нумерацию v^- любого типа конструктивных объектов X. А именно, положим v^(tt) равным порядковому номеру объек- 209 
та а в пересчете всех объектов типа X в порядке возрастания их номеров в нумерации vx- Очевидно, что число может быть построено алгоритмически по любому объекту а. Обратно, по любому числу г может быть алгоритмически найден объект а, для которого Vx(a) = г. Это позволяет говорить об эффективной счетности любого типа конструктивных объектов. Эффективная счетность — наличие вычислимой взаимно-однозначной нумерации — является главной отличительной особенностью любого типа конструктивных объектов X. В дальнейшем любое множество конструктивных объектов будем рассматривать как тип конструктивных объектов, коль скоро установлена его эффективная счетность. Исходными данными для алгоритмов могут быть не только отдельные конструктивные объекты, но и их упорядоченные пары, тройки и т. д. Например, исходными данными для алгоритмов, осуществляющих арифметические действия над числами, являются пары чисел. В общем случае представим себе, что исходными данными для алгоритма являются всевозможные пары (ж, у), где ж и у — конструктивные объекты типов X и Y соответственно. Иными словами, речь идет об элементах прямого (декартова) произведения X х Y. Покажем, что множество X х Y само может рассматриваться как тип конструктивных объектов. Для этого достаточно убедиться, что множество Хх Y имеет вычислимую взаимно-однозначную нумерацию. Сначала убедимся, что множество N х N имеет вычислимую взаимно-однозначную нумерацию, для чего расположим все пары натуральных чисел в последовательность (0,0); (0,1), (1,0); (0, 2), (1,1), (2,0); (0,3), (8.4) Здесь пары идут в порядке возрастания суммы их членов, а из пар с одинаковой суммой членов раньше идет пара с меньшим первым членом. Обозначим через с(ж, у) номер пары в последовательности (8.4), причем нумерацию начинаем с нуля. Неслож¬ ные вычисления показывают, что с(ж, у) = (х + у)2 + Зж + у (х + у)(х + у + 1) + + X = . Число с(ж,у) будем называть (канто- ровским) номером пары (ж, у). Пусть теперь vi и V2 — вычислимые взаимно-однозначные нумерации типов конструктивных объектов X и Y соответственно. 210 
Нумерацию тт: множества X х Y определим следующим образом: если (х,у) Е X х Y, положим тт:((х,у)) = c(vi(x),V2(г/)). Для каждого п > 2 определим функцию cn(xi, .... хп): c2{xi,x2) = c(avy); cn+i(xi,x2,x3, ...,xn+i) = cn(c(xi,x2),x3, ...,xn+i). Нетрудно убедиться, что cn осуществляет взаимно-однозначное соответствие между Nn и N. Пусть даны вычислимые взаимнооднозначные нумерации vi, ...,vn типов конструктивных объектов Хь ...,ХП соответственно. Для (а\, ..., ап) GXi х ... х Хп положим v((ai, . ..,an)) = cn(vi(ai), ..., vn(an)). Очевидно, что функция v задает вычислимую взаимно-однозначную нумерацию множества Xi х ... х Хп. Следовательно, это множество может рассматриваться как тип конструктивных объектов. 8.3. Алгоритмический процесс Выполнение, или работа, алгоритма идет в дискретном времени. Это означает, что выполнение алгоритма представляет собой некоторую последовательность шагов (конечную или бесконечную), каждый из которых совершается и завершается за конечное время. Эта последовательность шагов определяется исходным данным для алгоритма и программой. Выполнять алгоритм может человек или вычислительное устройство. В начальный, нулевой момент задается исходный набор конструктивных объектов, или начальная конфигурация Мо, которая строится на основе исходного данного и определяется особенностями обработки данных тем или иным алгоритмом. Например, для алгоритма сложения натуральных чисел столбиком исходным данным является пара чисел (га, п), а для построения начальной конфигурации надо десятичные записи этих чисел расположить определенным образом друг под другом. Затем на каждом (п + 1)-м шаге выполнения алгоритма анализируется набор (конфигурация) конструктивных объектов Мп, имеющихся в данный момент, т. е. после выполнения п шагов. Алгоритм должен содержать инструкцию, которая позволяет по программе и конфигурации Мп определить, является ли эта конфигурация заключительной. Если это так, то выполнение алгоритма завершается. В противном случае, в соответствии с программой, строится новый набор конструктивных объектов (конфигурация) Мп+\. 211 
При этом программа должна содержать инструкцию построения конфигурации Mn+i, коль скоро дана конфигурация Мп. Эта инструкция должна быть такой, что результат ее выполнения не зависит от времени и места выполнения алгоритма. В частности, эта инструкция может быть передана от одного исполнителя к другим исполнителям, и результат ее исполнения применительно к данной конфигурации Мп будет один и тот же. Так, например, недопустимо, чтобы перед выполнением очередного шага работы алгоритма требовалось бросить монету и в дальнейшем поступать в зависимости от результата этого бросания. Каждый шаг работы алгоритма должен быть простым в том смысле, что его выполнение не требует никакой изобретательности и осуществляется чисто «механически». В частности, при выполнении каждого шага алгоритма не требуется решать какие-либо математические задачи. Таким образом, конечная или бесконечная последовательность конфигураций Мп однозначно определяется исходным данным и программой алгоритма. Имея это в виду, говорят о детерминированности алгоритмического процесса. Сами конфигурации Мп также могут рассматриваться как элементы некоторого типа конструктивных объектов М (типа конфигураций). Этот тип определяется особенностями каждого конкретного алгоритма. Пусть тип конструктивных объектов X есть множество возможных исходных данных алгоритма Л. Однако конфигурации Мп могут содержать объекты, не принадлежащие типу X. Например, при работе с элементами словарного пространства £* над алфавитом £ для записи промежуточных вычислений могут использоваться символы, не входящие в алфавит £. Если согласно алгоритму на некотором шаге п выполнение алгоритма завершается, то возможны два случая. В первом случае алгоритм указывает, как на основе конфигурации Мп, построенной на последнем шаге, выделить результат работы алгоритма. Тогда говорят, что произошла результативная остановка алгоритма. Результат работы алгоритма есть элемент некоторого типа конструктивных объектов Y, который заранее объявляется как тип возможных результатов работы алгоритма. Если у Е Y является результатом работы алгоритма Л в применении к исходному данному ж, иногда говорят, что алгоритм Л возвращает у для исходного данного х. 212 
Во втором случае алгоритм указывает, что результата нет. Тогда говорят о безрезультатной остановке алгоритма. Если выполнение алгоритма никогда не закончится, т. е. совершается бесконечное число шагов, результата работы алгоритма также нет. Если процесс применении алгоритма к исходному данному х завершится результативной остановкой, то говорят, что алгоритм применим к х. Совокупность возможных исходных данных, к которым применим данный алгоритм, называется областью применимости этого алгоритма. Пусть X — множество возможных исходных данных алгоритма Л. Если алгоритм Л применйм к исходному данному х Е X, это обозначают так: !Л(х). В этом случае результат применения алгоритма Л к исходному данному х обозначают Л(х). Это будет конструктивный объект из типа конструктивных объектов Y. Если объект х не входит в область применимости алгоритма Л, выражение Л(х) лишено смысла: оно ничего не обозначает. Таким образом, запись !Л(х) означает, что выражение Л(х) определено, или осмысленно. Выполнение алгоритма Л в применении к исходному данному х представляет собой последовательность шагов. Каждый шаг работы алгоритма завершается за конечное время. Алгоритм Л применим к исходному данному х, если после конечного числа шагов происходит результативная остановка. Если после конечного числа шагов происходит безрезультатная остановка или же алгоритм Л совершает бесконечное число шагов, то алгоритм неприменим к исходному данному х. 8.4. Вычислимые функции Пусть X и Y — некоторые множества. Напомним, что частичной функцией из X в Y называется любая функция /, область определения D(f) которой есть некоторое подмножество X, а множество значений E(f) — некоторое подмножество Y. Слово «частичная» здесь подчеркивает, что область определения такой функции является частью множества X. В частности, область определения частичной функции может быть пустым множеством. В этом случае говорят о нигде не определенной функции. Частичную функцию / из X в Y обозначают так: 213 
/: X —» Y. Если функция / определена для данного xGl, этот факт обозначается так: !/(х). Пусть тип конструктивных объектов X — множество возможных исходных данных алгоритма Л, а его результаты принадлежат типу конструктивных объектов Y. Пусть D С X — область применимости А. С алгоритмом А естественным образом связана частичная функция / : X —» Y, которая каждому х Е D сопоставляет результат применения алгоритма А к х. Будем говорить, что алгоритм А вычисляет эту функцию /. Таким образом, каждый алгоритм с множеством возможных исходных данных X, результаты которого принадлежат типу конструктивных объектов Y, вычисляет некоторую частичную функцию из X в Y. Пусть X и Y — типы конструктивных объектов. Частичная функция /: X —» Y называется вычислимой, если существует алгоритм, который вычисляет функцию / в только что описанном смысле. Таким образом, частичная функция /: X —» Y вычислима тогда и только тогда, когда существует алгоритм А со следующими свойствами: 1) множество возможных исходных данных алгоритма А есть тип X, а его результаты принадлежат типу Y; 2) область применимости алгоритма А совпадает с £)(/); 3) для каждого х Е D(f) имеет место равенство А(х) — f(x). Для множества всех вычислимых функций из X в Y будем использовать обозначение Сога(Х, Y), а для множества всех тотальных вычислимых функций из X в Y — обозначение TCom(X,Y). В дальнейшем будем иметь дело с выражениями, в которых встречаются обозначения для частичных функций, и которые, следовательно, определены не при всех значениях аргументов. В связи с этим будем употреблять символ условного равенства ~ и считать, что утверждение s ~ t истинно, если оба выражения s и t имеют смысл и их значения равны или же оба эти выражения не имеют смысла. Это относится, в частности, к случаю, когда выражения s и t содержат переменные, от которых зависят их значения. Пусть, например, выражения s(xi, ... , хп) и t(x 1, ..., хп) не содержат переменных, отличных от xi, ..., хп. Тогда запись s(x i, ...,xn) ~ t(x\, ..., хп) означает, что при любых значениях ад, ...,ап переменных ад, выражения з(ад, ..., ап) и £(ац, ..., ап) оба определены и имеют одинаковые значения или же оба не определены. 214 
Некоторые функции задаются таким способом, который дает алгоритм их вычисления. Пример 8.2. Пусть кп есть п-я цифра в десятичном разложении числа 71. Поскольку известно представление числа тт: в виде суммы числового ряда, например, 71 — 4 — 4 4 4 ^ (-1Г 3 + 5~7 + "-~ S 2п + Г п=0 мы имеем возможность вычислить любую цифру в десятичном разложении числа к и тем самым найти значение кп для любого п. Это означает, что последовательность кп вычислима. ■ Пример 8.3. Рассмотрим функцию /: N —» N, определяемую следующим образом: /(«) 1, если кп = 7; О в противном случае. Очевидно, что функция / вычислима. Для вычисления f(n) нужно найти значение кп и выдать результат 1, если кп = 7, и результат 0 в противном случае. ■ Пример 8.4 • Рассмотрим другую функцию д\ N —» N, определяемую так: д(п) = < если в десятичном разложении тт: имеется точно п цифр 7, идущих подряд; в противном случае. В настоящее время не известно алгоритма для вычисления функции д. Может оказаться, что такого алгоритма вообще нет. В таком случае функция д является невычислимой. ■ Таким образом, в случае функции д мы не только не имеем алгоритма для ее вычисления, но даже не знаем, существует ли такой алгоритм. Иная ситуация имеет место в следующем примере. Пример 8.5. Пусть функция h: N —N определена следующим образом: h(n) = < fi, о если в десятичном разложении тт: имеется по крайней мере п цифр 7, идущих подряд; в противном случае. 215 
Если в десятичном разложении числа к имеются сколь угодно длинные отрезки, сплошь состоящие из цифры 7, то функция h тождественно равна 1, и алгоритм ее вычисления очевиден. Если же максимальная длина отрезков, сплошь состоящих из цифр 7, равна /с, то, очевидно, , , ч II, если п < к. Мп) = < 1 0, если п > к, и для вычисления значения h(n) достаточно сравнить число п с числом к. Таким образом, в обоих случаях функция h вычислима, хотя в настоящее время никто не владеет алгоритмом для ее вычисления. Можно сказать, что вычислимость — это свойство функции h, а незнание вычисляющего ее алгоритма — наше свойство. Как видно из этого примера, поиск алгоритма для вычисления функции является самостоятельной задачей. ■ Функция вычислима, если существует алгоритм, который ее вычисляет. Если мы не знаем алгоритма для вычисления некоторой функции, то это еще не означает, что данная функция не является вычислимой. 8.5. Сигнализирующее множество Мы рассмотрели общие понятия, относящиеся к алгоритмам, алгоритмическому процессу и вычислимости. Отметим теперь некоторые факты, вытекающие из общих представлений о развертывании алгоритмического процесса. Как было отмечено ранее, выполнение алгоритма Л в применении к конкретному исходному данному х состоит в построении (конечной или бесконечной) последовательности конфигураций Мп. При этом начальная конфигурация Мд строится по исходным данным, а каждая последующая конфигурация Мп+\ строится по конфигурации Мп в соответствии с правилом, указанным в программе. Очевидно, что в ходе развертывания алгоритмического процесса мы имеем возможность для каждого п алгоритмически найти конфигурацию Мп. Это означает, что функция га: N —М, сопоставляющая числу п конфигурацию Мп, является вычислимой. Пусть Л — алгоритм, возможными исходными данными для которого являются конструктивные объекты типа X. 216 
Определение 8.1. Сигнализирующим множеством для алгоритма Л называется множество С XxN, состоящее из всех таких пар (х,п), где х Е X, п Е N. что алгоритм Л результативно завершает работу в применении к исходному данному х за не более чем п шагов. Отметим некоторые свойства сигнализирующего множества. Предложение 8.1. Функция )(: XxN —» {0,1}, определенная следующим образом: / ч J1, если (х,п) Е SV Х(.х,п) = < ’ х ’ ' 744 [и в противном случае, вычислима. Доказательство. Функция х вычисляется таким алгоритмом. Пусть дана пара (х,п), где п — натуральное число, х Е X. Выполним не более п шагов в применении алгоритма Л к исходному данному х, строя последовательно конфигурации Mo,Mi, М2, ... до тех пор, пока не будет построена заключительная конфигурация или же конфигурация Мп. Если за не более чем п шагов удалось построить заключительную конфигурацию, то проверяем, является ли завершение работы алгоритма результативным; если это так, полагаем Дх,п) — 1, а в противном случае полагаем Дх,п) = 0. Если же все построенные конфигурации, в том числе и Мп, не являются заключительными, полагаем Х(Х! П) — 0- ■ Предложение 8.2. Область применимости алгоритма Л — это проекция множества Дд на первую ось. Доказательство. Докажем равенство области применимости алгоритма Л и проекции множества Дд на первую ось. Пусть алгоритм Л применим к объекту х из X. Применение Л к исходному данному х завершится результативно за какое-то конечное число шагов п. Тогда (x,n) Е Дд, следовательно, объект х принадлежит проекции множества на первую ось. Обратно, пусть объект х принадлежит проекции множества Дд на первую ось. Это означает, что (х, п) Е Дд для некоторого п Е N. Следовательно, применение алгоритма Л к исходному данному х завершится результативно за не более чем п шагов, и объект х принадлежит области применимости алгоритма Л. ■ Из доказанного свойства следует, что область определения вычислимой функции есть проекция на первую ось сигнализирующего множества алгоритма, вычисляющего эту функцию. 
Глава 9 АЛГОРИТМИЧЕСКАЯ ТЕОРИЯ МНОЖЕСТВ Теория множеств служит основанием современной математики, поэтому математические алгоритмы интенсивно используют понятие множества явно и неявно. В данной главе рассматриваются свойства множеств конструктивных объектов, важные с алгоритмической точки зрения. При этом не требуется какое- либо уточнение понятия алгоритма. Доказываемые здесь факты опираются только на интуитивные представления об алгоритмах, конструктивных объектах и развертывании алгоритмического процесса. 9.1. Разрешимые множества Использование множеств в математике и программировании существенно различается: те операции с множествами, которые математик воспринимает как элементарные, для программиста элементарными не являются и часто требуют дополнительных усилий по реализации. При этом сам вопрос о возможности программной реализации той или иной математически корректно описанной операции с множествами оказывается нетривиальным и допускает как положительное, так и отрицательное решение. Пример 9.1. Пусть требуется описать алгоритм вычисления следующей функции, определенной на всех натуральных числах п: п/ ч I п + 1, если п четно, /ы = < л Iп — 1 иначе. Математик справедливо заметит, что само определение функции / фактически и есть описание искомого алгоритма: получив число п в качестве исходного данного надо проверить, принадле- 218 
жит ли оно множеству четных чисел, и в зависимости от результата проверки вернуть нужное из чисел п -hi или п — 1 в качестве результата. Программист же вынужден проанализировать определение функции более детально и задать существенный дополнительный вопрос: как проверять принадлежность числа п множеству всех четных чисел? Ответ в данном случае прост — надо запрограммировать отдельно вычисление остатка от деления на 2. ■ Показательность примера не в трудности дополнительного вопроса, а в его необходимости, нетривиальности. Программист вынужден ставить подобные вопросы во всех аналогичных случаях, потому что у него нет единого готового решения. (Как будет показано далее, алгоритмическая проверка принадлежности элементов множеству не всегда возможна.) Обобщим использованный в примере способ решения вопроса о принадлежности элементов множеству. Определение 9.1. Пусть М — подмножество типа конструктивных объектов X. Характеристической функцией множества М называется функция )(м- X —» {0,1}, определенная так: Как видно из определения 9.1, характеристическая функция Хм множества МСХ есть одноместный предикат на X, задаваемый высказывательной формой х G М. Имеется естественное взаимно-однозначное соответствие между подмножествами типа конструктивных объектов X и одноместными предикатами на X. Легко видеть, что при этом соответствии теоретико-множественным операциям объединения, пересечения и дополнения отвечают операции дизъюнкции, конъюнкции и отрицания, примененные к характеристическим функциям как предикатам: Определение 9.2. Подмножество М типа конструктивных объектов X называется разрешимым, если его характеристическая функция хм вычислима. При этом алгоритм вычисления функции хм называется алгоритмом разрешения или разреша¬ Хм(х) 1, если х G М, О, если х G X \ М. Хлив(х) = хл(х) V хв(х), ХАпв(х) = ха(х)&хв{х), Хх\д(ж) = -Ха(ж). (9.1) 219 
ющим алгоритмом для М. Подмножества типа конструктивных объектов X, которые не являются разрешимыми, называются неразрешимыми. Замечание. Следует отметить, что понятие разрешимости относительно, т. е. требует указания того типа конструктивных объектов, о подмножестве которого идет речь. В то же время часто используют более короткий термин разрешимое множество, предполагая, что соответствующий тип легко восстанавливается из контекста или не влияет на ответ. Следует отметить, что просто описываемые подмножества типа конструктивных объектов обычно оказываются разрешимыми, так как простые описания часто сводятся к изложению соответствующих разрешающих алгоритмов. Следующая теорема показывает, что основные теоретико-множественные операции сохраняют свойство разрешимости, что позволяет использовать их наряду с описаниями разрешающих алгоритмов для конструирования новых примеров разрешимых множеств. Теорема 9.1. Пусть А и В — разрешимые подмножества типа конструктивных объектов X. Тогда множества A U В, АП В и X \ А также разрешимы. Доказательство. По условию, характеристические функции хл и X# вычислимы. Булевы операции V, & и -» вычислимы по таблицам истинности. Поэтому формулы (9.1) задают алгоритмы вычисления функций ХАив, ХАпв и хх\л- ■ Вернемся к уже встречавшейся ранее (см. пример 9.1) схеме определения функции разбором случаев в общем виде: где fug — две вычислимые функции, определенные на некоторых подмножествах типа конструктивных объектов X. В каком случае функция h окажется вычислимой, т. е. когда такое определение можно использовать в описаниях алгоритмов? Ответ прост: достаточно потребовать разрешимости множества М, т. е. вычислимости его характеристической функции хм- Алгоритм вычисления функции h в этом случае следующий. Сначала вычисляется значение характеристической если х G М, если х G х\м, (9.2) 220 
функции хм(я)> оно 0 или 1. Если это 1, то результат вычисляется с помощью алгоритма вычисления /(х); если 0, то с помощью алгоритма вычисления д(х). Этот алгоритм можно записать так: р ■- хм{х); IF р = 1 THEN return f(x) ELSE return g(x) ENDIF. 9.2. Полуразрешимые множества Еще один способ алгоритмического описания подмножества М типа конструктивных объектов X основан на представлении М в виде области определения вычислимой функции. Пусть /: X —» Y - вычислимая функция, и ее область определения D(f) совпадает с М. Вопрос о принадлежности произвольного элемента х Е X множеству М теоретически может быть решен следующим образом: Подать х в качестве входного данного для алгоритма вычисления функции /. Если процесс вычисления f(x) закончится, то f(x) определено и х Е М. В противном случае f(x) не определено, т. е. х £ М. Алгоритм, частично реализующий описанный метод, состоит в моделировании процесса вычисления f(x) до его завершения, после чего выдается ответ 1. Этот алгоритм вычисляет так называемую полухарактеристическую функцию км множества М: Однако попытка получить аналогичным образом разрешающий алгоритм для М сталкивается с существенными трудностями: в общем случае непонятно, как алгоритмически проверять, что процесс вычисления значения f(x) никогда не закончится. Определение 9.3. Подмножество М типа конструктивных объектов X называется полуразрешимым, если его полухаракте- ристическая функция км вычислима. Вопрос. Верно ли, что D(f) для каждой вычислимой функции /: Х-Э Y является полуразрешимым подмножеством типа конструктивных объектов X? Ответ. Да, верно. Именно это установлено в начале подраздела. 221 
Вопрос. Верно ли, что каждое полуразрешимое подмножество типа конструктивных объектов X есть D(f) для некоторой вычислимой функции /? Ответ. Да. верно. Одно из таких представлений: М — D(z.m)- Таким образом, области определения вычислимых функций и полуразрешимые множества - - это одно и то же. На практике полуразрешимые множества часто возникают в задачах, требующих полного перебора неограниченной совокупности вариантов. Пример 9.2. Пусть дано натуральное число п, и требуется подобрать натуральные числа х, у, г, для которых хп + уп = zn. Очевидный прямой алгоритм решения этой задачи состоит в переборе всевозможных троек натуральных чисел (x,y,z) и проверке условия хп + уп = zn для каждой из них. Перебор прерывается, когда тройка чисел, удовлетворяющих указанному условию, будет обнаружена. Если соответствующей тройки чисел не существует, то алгоритм будет работать вечно. Исходным данным для алгоритма служит натуральное число п, а результатом работы - найденная тройка чисел (x,y,z), т. е. этот алгоритм вычисляет некоторую частичную функцию типа N —> N3. Область определения этой функции образует полуразрешимое множество, состоящее в точности из тех натуральных чисел п, для которых поставленная задача имеет решение1. ■ Как соотносятся понятия разрешимости и полуразрешимо- сти? Ответ на этот вопрос дает следующая теорема Чёрча — Поста. Теорема 9.2. Пусть X тип конструктивных объектов. 1. Каждое разрешимое подмножество X полуразрешимо. 2. Если у полуразрешимо г о подмножества М С X дополнение X \ М также полуразрешимо, то М разрешимо. 1 Обсуждаемый пример связан с известной великой теоремой Ферма, которая утверждает, что при п > 2 таких натуральных чисел x,y,z не существует. Этот факт был объявлен французским математиком Пьером Ферма в 1637 г., однако доказать его удалось лишь три с половиной века спустя, в 1994 г. Завершивший это доказательство английский, впоследствии американский, математик Эндрю Уайлс получил многочисленные награды и был посвящен в рыцари Британской Империи (2000 г.). Только после его работы удается утверждать, что рассматриваемое в примере множество на самом деле является конечным множеством {1,2}, а потому разрешимо. 222 
Доказательство. 1. Пусть подмножество М С X разрешимо. Заметим, что постоянная функция /(ж) = 1 при всех ж Е X, а также нигде не определенная функция д вычислимы очевидными алгоритмами, не использующими значения ж. Полухарак- теристическая функция км множества М определяется через вычислимые функции / и д по схеме разбора случаев (9.2) с разрешимым множеством М, поэтому она вычислима, а М полу разрешимо. 2. Пусть полу характеристические функции множества М и его дополнения Х\М вычисляются алгоритмами Ли В соответственно. Для вычисления значения характеристической функции Хм(х) на входе х Е X достаточно размножить исходное данное х в двух экземплярах и промоделировать параллельное применение обоих алгоритмов в пошаговом режиме, каждого к своей копии х\ 1-й шаг вычисления А(х), 1- й шаг вычисления В(х), 2- й шаг вычисления И. (ж), 2-й шаг вычисления £>(ж), и т. д. Процесс продолжается до тех пор, пока одно из вычислений Л(х) или В(х) не закончится. Это обязательно произойдет, так как области применимости алгоритмов Ли В дополняют друг друга до X. Если закончилось вычисление *Д(ж), то в качестве результата выдаем 1, если В(х) — то 0. Таким образом, хм ~~ вычислимая функция, а М — разрешимое подмножество X. ■ Условие нолуразрешимости дополнения в теореме Чёрча — Поста существенно и не может быть опущено. Алгоритм вычисления полухарактеристической функции множества М в общем случае не содержит информации, достаточной для вычисления полухарактеристической функции его дополнения X \ М. Это будет доказано точно в гл. 12, где будет построен явный пример полуразрешимого множества М, не являющегося разрешимым. Согласно теореме Чёрча —Поста его полухарактеристиче- ская функция км вычислима, а полухарактеристическая функция его дополнения тtx\M не может быть вычислена никаким алгоритмом. В частности, невозможен универсальный метод преобразования алгоритма вычисления функции км в алгоритм вычисления тт:х\м- В то же время для теоретико-множественных операций пересечения и объединения аналогичные преобразования возможны. 223 
Теорема 9.3. Пусть А и В — полуразрешимые подмножества типа конструктивных объектов X. Тогда их объединение A U В и пересечение АП В также полуразрешимы. Вопрос. По формулировке эта теорема очень похожа на теорему 9.1 из предыдущего параграфа. Может быть и доказывать ее надо аналогично — ссылкой на вычислимость булевых операций V и & ? Ответ. Нет, так не получится. Дело в том, что для полухаракте- ристических функций аналоги равенств (9.1) не имеют места, так как значения полухарактеристических функций могут оказаться неопределенными, и к ним нельзя применять булевы операции. Например, в случае объединения и х Е А \ В. значение правой части тсДх) V тсв(х) не определено, в то время как левая часть haub{x) равна 1. Для пересечения имеет место слабый аналог тсапв(х) — тсд(:г) А тсв(х), что значительно упрощает соответствующий алгоритм. Доказательство. Значение т1апв(%) можно вычислять так: р := лл(*); р := кв(х); return 1. Последовательно вычисляются значения тсд(х) и тс в (ж). В случае, когда х Е А П £?, вычисления тс л (ж) и тс в (ж) оба заканчиваются, и результатом работы алгоритма будет 1, что совпадает со значением тсдпб(^)- В противном случае хотя бы одно из вычислений тсд(ж) или тсв(х) продолжается вечно, поэтому алгоритм не возвращает никакого результата, что также согласуется с определением тсапв(х)- Процесс вычисления значения kaub(%) должен заканчиваться (за конечное число шагов с результатом 1) тогда и только тогда, когда заканчивается по крайней мере один из процессов вычисления тса(х) и тся(ж). При этом другой из этих процессов может никогда не закончиться, поэтому оба эти процесса следует исполнять параллельно. Алгоритм вычисления значения kaub(%) на входе х Е X работает следующим образом: 1-й шаг вычисления тсд(.х), 1- й шаг вычисления тс^(ж), 2- й шаг вычисления тсд(х), 2-й шаг вычисления тсв(х), и т. д. Как только один из процессов завершится (если это произойдет), следует также прервать другой процесс и выдать результат 1. ■ 224 
9.3. Перечислимые множества Рассмотренные способы алгоритмического описания подмножеств типа конструктивных объектов X так или иначе связаны с задачей распознавания принадлежности множеству: алгоритмы вычисления характеристических и полухарактеристических функций напрямую направлены на решение вопросов о принадлежности произвольных элементов х Е X данному множеству МСХ. Рассматриваемое в этом параграфе понятие перечислимого множества основано на другой идее — порождении всех элементов множества с помощью единой алгоритмической процедуры. Так как все подмножества типа конструктивных объектов не более чем счетны, то в качестве процедуры порождения достаточно использовать алгоритмическое перечисление, т. е. построение алгоритмически заданной (вычислимой) последовательности, содержащей все элементы множества и ничего более. Напомним, что последовательностью элементов множества X называется всякая тотальная функция типа N —» X. Соответственно, вычислимая последовательность конструктивных объектов типа X — это тотальная вычислимая функция типа N -> X. Определение 9.4. Подмножество М типа конструктивных объектов X называется перечислимым1, если М пусто или является множеством значений вычислимой последовательности, называемой в этом случае вычислимым пересчетом множества М. Из определения видно, что непустое множество М перечислимо, если и только если М = {mo,mi,m2, ...}, причем функция /(г) = mi вычислима. При этом члены последовательности mo, Ш1,Ш2, ... могут повторяться. Пример 9.3. Всякое конечное подмножество типа конструктивных объектов X перечислимо. В самом деле, если множество М пусто, то оно перечислимо по определению. Для непустого конечного множества М = {ao,ai, ...,a/c_i} С X его вычислимый пересчет задается периодической последовательностью тп = Q"n mod к ■> гДе п mod к обозначает остаток от деления п на к. Так, для множества М = {2, 7, 9} это представление выглядит так: М = {2, 7, 9, 2, 7, 9, ...}. Соответствующая функция **В литературе также встречаются более длинные термины, обозначающие то же понятие: «рекурсивно перечислимое множество», «вычислимо перечислимое множество». 225 
f(n) = mn = < 2, если (n mod 3) = 0, 7, если (n mod 3) = 1, 9, если (n mod 3) = 2, очевидным образом вычислима. ■ Пример 9.4 • Рассмотрим вычислительную программу, которая работает неограниченно долго (пока пользователь ее не остановит) и в некоторые моменты времени выдает на экран текстовые сообщения. Мы предполагаем, что программа не требует получения данных извне, а пользователь не собирается прерывать ее работу. Появляющиеся на экране текстовые сообщения — слова в конечном алфавите £, состоящем из всех символов, которые могут быть выведены на экран в соответствующем текстовом режиме. Этот вычислительный процесс задает алгоритмическое порождение множества М С S*, состоящего из всех сообщений, которые когда-либо появятся на экране. Множество М перечислимо. В самом деле, случай конечного М рассмотрен ранее. Для бесконечного М пусть тп есть (п+ 1)-ое сообщение, появившееся на экране (п = 0,1, ...). Тогда mo, mi, ... является вычислимым пересчетом множества М. Для вычисления функции f(n) = тп достаточно программно промоделировать процесс до момента появления (п + 1)-го сообщения и в качестве результата выдать именно его. ■ Пример 9.5. Каждое разрешимое подмножество натурального ряда перечислимо. Случай конечного подмножества разобран выше. Для построения вычислимого пересчета бесконечного разрешимого подмножества М С N достаточно из последовательности 0,1, 2, ... вычеркнуть те числа, которые не принадлежат множеству М. Оставшиеся члены образуют бесконечную последовательность mg,mi, ..., перечисляющую все элементы множества М в порядке возрастания. Остается проверить вычислимость функции /, где f(n) есть mn, т. е. (п + 1)-й по величине элемент множества М. Для вычисления f(n) достаточно последовательно применять алгоритм вычисления характеристической функции хм к числам г = 0,1,2, ..., сохраняя те из них, для которых Хм(0 — 1- Процесс прерывается, когда количество сохраненных чисел окажется равным п-hi. Последнее сохраненное число есть тп. ■ Аналогично можно установить перечислимость каждого разрешимого подмножества всякого типа конструктивных объектов 226 
х, но для этого потребуется вычислимый пересчет самого типа X. Лемма 9.1. Каждый бесконечный тип конструктивных объектов является перечислимым подмножеством самого себя. Доказательство. Как отмечалось в подразделе 8.2, всякий бесконечный тип конструктивных объектов X эффективно счетен в том смысле, что существует вычислимая однозначная нумерация v^-: X —> N, для которой обратная функция g: N —» —У X, восстанавливающая элемент по его номеру, также вычислима, а множество номеров всех элементов X разрешимо. Пусть М — разрешимое бесконечное множество, состоящее из номеров всех элементов типа X, т. е. область определения функции д. Как следует из примера 9.5, множество М перечислимо. Пусть M = {mo,mi, ...} вычислимый пересчет М. Функция f(n) = = д(гпп) вычислима, а ее область значений совпадает с X. Поэтому g(rao),g(mi), ... является вычислимым пересчетом X. ■ В качестве следствия получаем такую теорему. Теорема 9.4. Каждое разрешимое подмножество произвольного типа конструктивных объектов X перечислимо. Доказательство. В примере 9.5 разобрано доказательство этого утверждения, когда X = N. Оно использует очевидный вычислимый пересчет натурального ряда: N = {0,1,2,...}. В общем случае следует использовать вычислимый пересчет типа X и повторить те же рассуждения. В частности, вычислимый пересчет бесконечного разрешимого подмножества М С X получается из вычислимого пересчета X = {xo,xi, ...} удалением всех членов х\ £ М. ■ Пересчеты без повторений. В случае бесконечного перечислимого множества появление элементов в его вычислимом пересчете можно ускорить за счет устранения повторений. Определение 9.5. Вычислимый пересчет mo, mi, ... бесконечного перечислимого множества М называется пересчетом без повторений, если все члены последовательности mg, mi, ... различны, т. е. i ф j => mi ф mj. Предложение 9.1. Для всякого бесконечного перечислимого множества существует его вычислимый пересчет без повторений. 227 
Доказательство. Пусть задан вычислимый пересчет то, mi, ... бесконечного перечислимого множества М. Определим последовательность щ.щ, ... индуктивно: щ = то, ип+ \ — первый элемент т*, отличный от щ, ...,un. Ввиду бесконечности М значения ип определены при всех п. Построенная последовательность вычислима, не содержит повторяющихся членов и перечисляет М. ■ Пересчеты, допускающие ограниченный поиск. Если бесконечное перечислимое множество М СХ задано своим вычислимым пересчетом mo, mi, ..., то поиск элемента х G X среди членов указанной последовательности (чтобы убедиться, что х G М) в общем случае требует вычисления произвольного количества членов. При этом негативный ответ (ж ^ М) не удается получить за конечное время. Иногда перебор можно ограничить, т. е. подобрать такую вычислимую функцию д: X —» N, что при всех х G X выполняется эквивалентность: х G М х G {то, ..., тд(х}}. (9.3) В этом случае М оказывается разрешимым. Для вычисления значения его характеристической функции хм(х) достаточно вычислить члены то, ..., тд^ и сравнить х с каждым из них. Следующие примеры демонстрируют этот метод доказательства разрешимости множеств. Пример 9.6. Пусть бесконечное перечислимое множество М С N задано своим вычислимым пересчетом, образующим неубывающую последовательность mo < mi < m2 < ... Применяя к нему конструкцию устранения повторений из предложения 9.1, получим строго возрастающий вычислимый пересчет того же множества ио,щ, ..., где ио < щ < ... Для строго возрастающих последовательностей натуральных чисел ио,щ7 ... выполняется неравенство п < ип, поэтому х G М х G {то, ..., тд(х)} Для д(х) = х- Тем самым установлена разрешимость множества М. ■ Пример 9.7. Пусть вычислимый пересчет mo,mi, ... перечислимого множества М С N имеет монотонную неограниченную вычислимую нижнюю оценку, т. е. существует такая вычислимая функция h : N —» N, для которой при всех п G N выполнено h(n) < h(n + 1), lim h(n) — 00, h(n) < mn. Определим n-+oo функцию g так: g(n) = min{fc | h(k) > n}. Функция g тотальна, 228 
так как функция h принимает сколь угодно большие значения. Функция д вычислима очевидным алгоритмом, последовательно проверяющим условия h(k) > п, к = 0,1, ..пока не обнаружится значение А;, удовлетворяющее этому неравенству. Покажем, что для функции д выполнено условие (9.3). Достаточно установить, что х Шк при к > д(х). Ввиду монотонности /&, при к > д(х) имеем > h(k) > h(g(x)) > ж, поэтому совпадение х с rrik невозможно. В результате установлено, что множество М разрешимо. ■ 9.4. Равнообъемность понятий перечислимости и полуразрешимости Понятия перечислимости и полуразрешимости оказываются равнообъемными. Для произвольного подмножества М типа конструктивных объектов X условия «М перечислимо» и «М по- луразрешимо» эквивалентны. Однако это не означает, что соответствующие равнообъемным понятиям алгоритмические описания множеств содержат одну и ту же информацию и могут быть с одинаковым эффектом использованы для решения всевозможных алгоритмических задач. В качестве примера рассмотрим задачу распознавания пустоты множества М. Если алгоритмическое описание этого множества извлечено из определения перечислимости, то оно уже содержит явный ответ — либо указано, что М пусто, либо предложен алгоритм вычисления последовательности, являющейся вычислимым пересчетом множества М, и тогда М гарантированно непусто. Если же М задано алгоритмом вычисления его полухарактеристической функции тхм, то задача распознавания пустоты М остается нетривиальной. Как будет установлено в гл. 12, она не имеет алгоритмического решения. Таким образом, алгоритмическое описание множеств посредством задания алгоритмов вычисления полухарактеристических функций оказывается менее информативным. Докажем равнообъемность указанных понятий. Теорема 9.5. Всякое перечислимое подмножество типа конструктивных объектов X является полуразрешимым. 229 
Доказательство. Пусть М — перечислимое подмножество X. Требуется установить вычислимость его полухаракте- ристической функции км• Если М пусто, то функция км вычисляется алгоритмом, не применимым ни к каким исходным данным. В случае непустого М существует его вычислимый пересчет: М = {mo, mi, ...}, где функция /(п) = тп вычислима. Для вычисления км(х) достаточно организовать поиск значения х среди членов последовательности mo,mi, ... Соответствующий алгоритм последовательно сравнивает х со значениями /(0), /(1), ..., пока не обнаружится совпадение. После обнаружения совпадения (если это произойдет) алгоритм завершает работу с результатом 1. ■ Пусть X — тип конструктивных объектов, а Л - алгоритм с областью возможных исходных данных X. Напомним, что сигнализирующим множеством алгоритма Л называется множество Sa С X х N, состоящее из всевозможных пар (жД), первая компонента х которых принадлежит области применимости алгоритма Л, а вторая, £, является натуральным числом, ограничивающим сверху количество шагов, затраченное алгоритмом Л на вычисление значения Л{х). Таким образом, Sa — {(жД) I вычисление Л на входе х заканчивается результативно за t шагов или раньше }. В силу предложения 8.1 характеристическая функция множества Sa вычислима, следовательно, Л является разрешимым подмножеством типа конструктивных объектов X х N. Теорема 9.6. Область применимости всякого алгоритма является перечислимым подмножеством его области возможных исходных данных. Доказательство. Пусть тип конструктивных объектов X является областью возможных исходных данных алгоритма Д, а подмножество М С X — область применимости алгоритма Д, т. е. множество тех элементов х Е X, для которых процесс применения алгоритма Д к х заканчивается результативно за конечное число шагов. В силу предложения 8.2 М совпадает с проекцией сигнализирующего множества Sa на первую ось. Таким образом, х Е М (хД) Е Sa Для некоторого £ Е N. 230 
Так как сигнализирующее множество Дд разрешимо, то оно перечислимо по теореме 9.4. Докажем, что его проекция М также перечислима. Действительно, если ЗД пусто, то его проекция также есть пустое множество, перечислимое по определению. Непустое перечислимое множество Дд допускает вычислимый пересчет Дд = {{хоДо)> (Xl•••}• Тогда последовательность жо,яц, ... является вычислимым пересчетом проекции Дд, т. е. М. ■ Следствие 9.1. Какова бы ни была вычислимая функция, ее область определения перечислима. Доказательство. Если функция / вычисляется алгоритмом Л, то ее область определения £)(/) совпадает с областью применимости алгоритма Д, которая перечислима по теореме 9.6. ■ Следствие 9.2. Всякое полуразрешимое множество является перечислимым. Доказательство. Всякое полуразрешимое множество М является областью определения своей полухарактеристической функции км, вычислимой в силу определения полуразрешимого множества. Согласно следствию 9.1 М перечислимо. ■ Таким образом, равнообъемность понятий перечислимости и полуразрешимости установлена: каждое перечислимое множество полуразрешимо (см. теорему 9.5) и каждое полуразрешимое множество перечислимо (см. следствие 9.2). Вопрос. Верно ли утверждение, обратное к следствию 9.1, т. е. каждое ли перечислимое множество представимо в виде области определения вычислимой функции? Ответ. Да, верно. По теореме 9.5 каждое перечислимое множество М полуразрешимо, т. е. его полухарактеристическая функция им вычислима. Но D(tzm) = М. Таким образом получаем следующую характеризацию перечислимых множеств. Перечислимые множества — это области определения вычислимых функций и только они. Следствие 9.3. Какова бы ни была вычислимая функция /, ее множество значений E(f) перечислимо. Доказательство. Пусть /: X —» Y — вычислимая функция. В силу следствия 9.1 ее область определения D(f) С X пе- 231 
речислима. Если D(f) = 0, то множество E(f) С Y также пусто, а потому перечислимо. В противном случае рассмотрим вычислимый пересчет области определения: D(f) = {mo,mi, ...}. Тогда последовательность /(mo),/(mi), ... образует вычислимый пересчет множества значений E(f). ■ Вопрос. Верно ли обратное утверждение, т. е. каждое ли перечислимое множество можно представить в виде множества значений подходящей вычислимой функции? Ответ. Да, верно. Пустое множество можно представить в виде множества значений нигде не определенной функции. Непустое перечислимое множество по определению является множеством значений вычислимой последовательности. В результате получаем еще одну характеризацию класса перечислимых множеств. Перечислимые множества — это области значений вычислимых функций и только они. Вопрос. Доказательство теоремы 9.6 устанавливает, что каждое полуразрешимое, а потому и каждое перечислимое множество можно представить как проекцию на первую ось специального разрешимого «плоского» множества — сигнализирующего множества некоторого алгоритма. Будет ли перечислимым множеством проекция на первую ось произвольного разрешимого «плоского» множества R С X х Y? Ответ. Да, будет. Заключительная часть доказательства теоремы 9.6, устанавливающая перечислимость проекции сигнализирующего множестваДд, использует лишь его разрешимость. Поэтому то же рассуждение применимо к произвольному разрешимому множеству R С X х Y. Таким образом получаем следующее утверждение. Перечислимые множества — это проекции разрешимых «плоских» множеств и только они. 9.5. Теорема о графике В теории множеств функции отождествляются с их графиками, однако алгоритмические описания этих объектов различаются. Пусть X и Y — типы конструктивных объектов, /: X —» Y — частичная функция. Напомним, что графиком функции / называется «плоское» множество Г/ = {(х,у> | х € D(f),y = f(x)} С X х Y. 232 
Алгоритмическое описание функции / — это алгоритм ее вычисления. Что может служить алгоритмическим описанием графика функции /? Ответ на этот вопрос содержится в следующей теореме о графике. Теорема 9.7. Функция /: X —» Y вычислима тогда и только тогда, когда ее график Г у является перечислимым подмножеством X х Y. Доказательство. Пусть функция / вычислима. Тогда ее область определения D(f) перечислима по следствию 9.1. Если D(f) = 0, то график является пустым множеством, а потому перечислим. Если же область определения непуста, существует ее вычислимый пересчет: D(f) = {жо,Ж1, ...}. Тогда г/ = { (*о, /(*о)), (XI, /(si)), • • • } является вычислимым пересчетом графика. Для того, чтобы по индексу п вычислить член последовательности (жп,/(жп)), достаточно сначала вычислить хп (пересчет области определения вычислимый), а затем использовать алгоритм вычисления функции / для нахождения значения f(xn). Предположим теперь, что график Г у перечислим. Если он пуст, то функция нигде не определена, а потому вычислима с помощью алгоритма, не применимого ни к каким исходным данным. Если Гу ф 0, то у него есть вычислимый пересчет Г/ = { (х0,Уо), (xi,yi), ...}. Для вычисления значения функции /(ж) на аргументе х достаточно применить следующий алгоритм: Последовательно вычислять члены (хп,уп), п — 0,1, ..., пока не появится пара с хп = х. (9.4) Если это произошло, то f(x) = уп. Если в графике нет такой пары, то х ^ D(/), и поиск будет продолжаться вечно. Если пара с первой компонентой хп — х присутствует в графике, то она единственна, причем ее вторая компонента уп совпадает со значением /(ж). Алгоритм обнаружит эту пару и выдаст значение /(ж) в качестве результата. ■ Таким образом, для алгоритмического описания графиков вычислимых функций подходят все средства эффективного задания перечислимых множеств, например, вычислимые пересчеты или алгоритмы вычисления полухарактеристических функций. 233 
Заметим, что алгоритм (9.4) вычисления / может быть использован и в более общей ситуации, когда вычислимый пересчет задает произвольное непустое перечислимое множество пар ЙСХх Y: R = { (хо,Уо), (XI,У1), ... }• Множеству R можно сопоставить семейство {Rx}xex подмно- жеств Y, индексированное элементами X: Rx = {у | (х; у) е R} с Y, х е X. Само множество R называется универсальным множеством этого семейства. Алгоритм (9.4) в этом случае вычисляет так называемую функцию выбора для семейства {Rx}x£X, которая по индексу х Е X всякого непустого множества Rx из данного семейства строит один из элементов этого множества: D(f) = = {х | Rx Ф 0}, f{x) е Rx при х е £>(/). Предложение 9.2. Для всякого перечислимого универсального множества ЙСХх Y индексированного семейства множеств {Rx} х(Ех существует вычислимая функция выбора. Доказательство. Случай непустого R разобран выше. Для R = 0 функцией выбора является нигде не определенная функция. ■ Основные факты о разрешимых и перечислимых множествах. Отметим многообразие характеризаций класса всех перечислимых множеств: М перечислимо М полуразрешимо М — область определения подходящей вычислимой функции М — множество значений подходящей вычислимой функции М — проекция подходящего «плоского» разрешимого множества. Наличие разнообразных по своей природе описаний этого класса свидетельствует о том, что это основной класс множеств, возникающий при анализе различных аспектов вычислимости. В терминах перечислимости удается охарактеризовать и другие основные понятия теории алгоритмов. МСХ разрешимо М и X \ М перечислимы. Функция / вычислима ее график Г у перечислим. 234 
Все установленные до сих пор факты имели следующую форму: если существуют одни алгоритмы, то существуют и другие. Доказательство состояло в построении желаемых алгоритмов из имеющихся, по существу — в программировании. Однако центральная задача теории алгоритмов несколько иная — изучить границы возможностей программирования: выяснить, для каких задач не существует и не может существовать алгоритмов их решения. Одна из таких границ тривиальная: нельзя запрограммировать функцию, у которой область определения или множество значений не содержится ни в одном типе конструктивных объектов, например, несчетна. Но есть и гораздо более глубокие ограничения, актуальные уже для счетных областей. На выяснение этих нетривиальных ограничений направлены следующие вопросы, которые в той или иной форме уже возникали ранее: • как построить нетривиальный явный пример невычислимой функции; • как построить пример неразрешимого перечислимого множества? Для решения этих вопросов требуются средства доказательства отрицательных фактов, т. е. того, что такая-то функция не является вычислимой. 9.6. Эффективно аксиоматизируемые теории Пусть фиксирована сигнатура ft. Можно считать, что язык ft строится на основе конечного алфавита Е. Таким образом, термы и формулы этого языка являются элементами словарного пространства Е*. Поэтому применительно к ним уместно рассматривать понятия из теории алгоритмов. Например, очевидно, что множество всех термов и множество всех формул являются разрешимыми подмножествами словарного пространства Е*. Множество высказываний Г сигнатуры ft называется аксиоматикой для элементарной теории Т в сигнатуре ft, если Т задается системой аксиом Г, иными словами, высказывание Ф сигнатуры ft является теоремой теории Т тогда и только тогда, когда Г |= Ф или, что то же самое, Г Ь Ф. Определение 9.6. Элементарная теория Т называется 235 
• аксиоматизируемой, если существует перечислимая аксиоматика для Т; • эффективно аксиоматизируемой, если существует разрешимая аксиоматика для Т; • конечно аксиоматизируемой, если существует конечная аксиоматика для Т. Очевидно, что каждая конечно аксиоматизируемая теория эффективно аксиоматизируема, а каждая эффективно аксиоматизируемая теория аксиоматизируема. Пример 9.8. Теория групп G, теория колец R и теория полей F конечно аксиоматизируемы. ■ Представляется любопытным следующее утверждение. Теорема 9.8. Всякая аксиоматизируемая теория является эффективно аксиоматизируемой. Доказательство. Пусть перечислимое множество высказываний Г является аксиоматикой для элементарной теории Т. Это означает, что имеется алгоритм, который перерабатывает каждое натуральное число п в высказывание Фп, так что Г = {Фо,ФьФ25 •••}• Посредством Фп обозначим конъюнкцию п + 2 экземпляров высказывания Фп. Таким образом, Фд есть формула (Фд&Фо), Ф1 есть формула ((Ф1 & Ф1) & Фх), Ф2 есть (((Ф2 & Ф2) & Ф2) & Ф2) и т.д. Положим А = {Фо,Ф1,Ф2, ...}• Очевидно, что из А выводимы в точности те же высказывания, что и из Г, следовательно, А является аксиоматикой для Т. Покажем, что множество А является разрешимым подмножеством словарного пространства £*. Пусть дано произвольное слово X в алфавите £. Проверим, является ли оно формулой. Если X — не формула, то X £ А. Если же X — формула, посмотрим, является ли она конъюнкцией двух или более экземпляров некоторого высказывания Ф, т. е. имеет вид ((... (Ф & Ф) &...)& Ф). Если это не так, то А ^ А. Если же X является конъюнкцией п + 2 экземпляров высказывания Ф для некоторого натурального п, то найдем высказывание Фп и сравним его с Ф. Если эти высказывания совпадают, то X Е А, в противном случае X £ А. ■ Теорема 9.9. Если элементарная теория Т эффективно аксиоматизируема,, то множество теорем теории Т перечислимо. 236 
Доказательство. Пусть Г — разрешимая аксиоматика для элементарной теории Т. Тогда высказывание Ф является теоремой теории Т, если и только если имеется вывод высказывания Ф из Г, т. е. конечная последовательность формул Фх, ...,Ф^, удовлетворяющая определению вывода из Г, причем Фп есть Ф. Любая последовательность формул является словом в алфавите Е. Пусть D — подмножество множества Е* х Е*, состоящее из всех таких пар слов (X, У), что Y — высказывание, а X — вывод У из Г. Множество D разрешимо. Действительно, пусть дана произвольная пара слов (X,Y) в алфавите Е. Проверим, является ли Y высказыванием. Если это не так, то (X, Y) 0 D. Если же Y — высказывание, проверим, является ли X последовательностью формул. Если это не так, то (X, Y) £ D. Если же X есть последовательность формул Фх, ...,ФП, сравниваем Фп с Ф. Если они не совпадают, то (X,Y) £ D. Если же Фп есть Ф, проверяем, является ли последовательность формул Фх, ..., Фп выводом. А именно, для каждого i = 1, ... , п проверяем, верно ли, что Фг — аксиома исчисления предикатов, или Фг G Г, или Фг получена из предыдущих формул по одному из правил вывода исчисления предикатов. Это можно сделать, поскольку очевидно, что множество всех аксиом исчисления предикатов разрешимо, множество Г разрешимо по условию, и очевидно, что можно проверить, получается ли формула Ф из формул Фх и Ф2 по правилу modus ponens, а также получается ли формула Ф из формулы Фх по одному из правил Бернайса. Таким образом, множество D разрешимо. Теперь заметим, что Т есть проекция множества D, следовательно, теория Т перечислима. ■ Теорема 9.10. Множество теорем всякой аксиоматизируемой элементарной теории перечислимо. Доказательство. В силу теоремы 9.8 всякая аксиоматизируемая элементарная теория эффективно аксиоматизируема, следовательно, множество ее теорем перечислимо по теореме 9.9. ■ По теореме 9.10 всякая аксиоматизируемая элементарная теория перечислима. Известно, что существуют перечислимые неразрешимые множества. Поэтому для всякой аксиоматизируемой теории Т представляет интерес вопрос о ее разрешимости: существует ли алгоритм, распознающий теоремы теории Т сре¬ 237 
ди всех высказываний данного языка? Следующая теорема дает достаточное условие разрешимости. Теорема 9.11. Каждая полная аксиоматизируемая элементарная теория разрешима. Доказательство. Пусть Т — полная аксиоматизируемая теория в сигнатуре П. По теореме 9.10 множество всех теорем теории Т перечислимо, т. е. существует алгоритм, который каждое натуральное число п перерабатывает в некоторое высказывание Фп, так что Т = {Фо, Фь $2? • • •}• Разрешающий алгоритм для Т работает следующим образом. Пусть дано произвольное высказывание Ф языка П. Будем строить высказывания Ф^, начиная с г = 0, и каждое из них будем сравнивать с Ф и -»Ф. Если и как только найдется такое г, что Ф совпадает с одним из высказываний Ф и —*Ф, алгоритм завершает работу с результатом Ф G Т в первом случае и Ф ^ Т во втором. Для каждого высказывания Ф алгоритм завершит работу, так как по условию теория Т полна, и либо Ф, либо -»Ф появится в пересчете множества Т. ■ Пример 9.9. Как показывает пример 7.10, теория плотного линейного порядка без первого и последнего элемента DLO категорична в счетной мощности. Очевидно также, что эта теория не имеет конечных моделей. Поэтому в силу теоремы 7.14 теория DLO полна, а в силу теоремы 9.11 и разрешима. ■ 
Глава 10 МАШИНЫ ТЬЮРИНГА Для получения отрицательных фактов про вычислимость важно иметь возможность анализировать не только абстрактные алгоритмы, но и их записи на каком-нибудь языке программирования. Какой язык программирования выбрать? Программист и аналитик выбирают язык по-разному: программист -- чтобы было удобно программировать, а аналитик - чтобы было удобно анализировать. Для анализа удобнее самый примитивный язык, который все же обладает свойством универсальности, т. е. принципиально позволяет реализовать все алгоритмы. Мы пойдем именно этим путем. В этой книге рассматриваются три равносильных варианта формализации понятия алгоритма — машины Тьюринга, нормальные алгорифмы Маркова и рекурсивные функции. Каждый из них порождает свой примитивный универсальный язык программирования, достаточно удобный для получения обозримого описания множества всех программ. Для доказательства невы- числимости какой-либо функции остается установить, что ни одна программа из этого множества ее не вычисляет, что в ряде случаев удается сделать. Заметим, что использование для тех же целей реальных языков программирования затруднительно ввиду заведомо более сложного устройства множества всех программ. Построенные примитивные языки оказываются в той же степени неприспособленными для реального программирования, но они для этого и не предназначены. В данной главе рассматривается один тип абстрактных вычислительных машин. Идея таких машин, разработанная Постом и Тьюрингом, основана на анализе действий человека, осуществляющего по заданной программе последовательные преобразования слов. 239 
10.1. Одноленточная машина Тьюринга Машина Тьюринга состоит из управляющего устройства (УУ) и потенциально бесконечной внешней памяти, структура которой не меняется со временем. Она снабжена программой, задающей правила функционирования: Программа -> УУ -> Память В случае одноленточной машины память представляет собой бесконечную в обе стороны ленту, разбитую на одинаковые ячейки, предназначенные для хранения букв фиксированного конечного алфавита £ = {од, ..., }, одна буква в ячейке. Этот ал¬ фавит называется ленточным алфавитом машины Тьюринга. Лента с данными: 0 1 0 1 1 1 Д Предполагается, что все ячейки заполнены буквами, т. е. совсем пустых ячеек нет. В то же время удобно иметь символ, помечающий ячейку как незаполненную — букву ф (пробел), которая обязательно присутствует в ленточном алфавите. В начальный момент времени некоторый конечный кусок ленты заполняется исходными данными, а все остальные ячейки — буквой ф. Имеется одна читающе-пишущая головка. В каждый момент времени головка обозревает одну ячейку памяти. За один такт работы головка может изменить содержимое этой ячейки и переместиться к одной из соседних (или остаться на месте). Функционированием головок управляет управляющее устройство. В каждый момент времени оно находится в одном из фиксированного конечного множества внутренних состояний Q = {до, gi, • • •, gm}- Один такт работы состоит в следующем: машина читает содержимое обозреваемой ячейки и внутреннее состояние, выбирает из программы инструкцию, однозначно определяемую этими данными, и исполняет ее. В инструкции сказано, каким должно стать новое внутреннее состояние, какая буква должна быть записана в обозреваемую ячейку и куда должна переместиться головка. 240 
Таким образом, работа машины описывается тремя функциями: a: Q х Е —У Q — новое состояние; Р: Q х Е —» Е — новое содержимое ячейки; у: Q х Е —» {TV, L, i?} — движение головок. Символы движения означают: N — «остаться на месте»; L — «передвинуть головку на одну ячейку влево»; R — «передвинуть головку на одну ячейку вправо». Функции а, р, у можно задать таблицей: Состояние Буква Новое состояние Новая буква Движение Qi a.j a(qi,aj) У (яi,a.j) Таблицу удобно записывать в виде программы — непротиворечивого набора команд вида qa i-> а(д, а) р(д, а) у(д, а), q G Q,a G Е. Непротиворечивость набора означает, что в нем нет двух команд с одинаковой левой частью qa. Для сокращения записи предполагают также, что если команда с левой частью qa не выписана явно, то она все-таки есть в программе, но имеет специфический вид qa i—> qaN. Такие команды не меняют содержимого ленты, состояния и положения головки, поэтому вызывают зацикливание, если исполняются. На ленту записывается входное слово, и головка располагается в «пустой» ячейке перед ним. При включении машины УУ оказывается в заранее фиксированном начальном состоянии qi G Q, а переход в также фиксированное заключительное состояние go £ Q вызывает ее остановку (отключение). Изложенное можно резюмировать в следующем определении. Определение 10.1. Полная спецификация машины Тьюринга есть набор М = (Q, Е, а, р, у, go, </i)- Пример 10.1. Опишем машину Тьюринга, реализующую операцию сложения натуральных чисел. Договоримся представ¬ 241 
лять натуральные числа в унарной записи: п <—> 11 „. 1 . Исход- п раз ные данные будем представлять словами вида 11...1 + 11...1. Например, для вычисления значения выражения 3+2 машина Тьюринга должна осуществить следующее преобразование содержимого ленты: ...# 1 1 1 4- 1 1 #... д 4 • ••# 1 1 1 1 1 # Для этого можно сначала переместить головку к букве + и заменить ее на 1, а затем переместить головку в конец слова и стереть последнюю единицу. Соответствующая программа выглядит так: 91# ^ qi#R qil qilR qi~\~ Н► q2^R 92# 93#^ 9з1 ^ 90#^ Здесь ленточный алфавит есть множество £ = {#, 1, + }, множество состояний есть Q = {qo, 91,92,93}> начальное состояние — q\, заключительное состояние — qo- ■ Вопрос. Зачем при замене + на 1 предусмотрена смена состояний? Ответ. Если оставить состояние q\ неизменным, то при достижении конца слова головка будет продолжать движение направо. Вопрос. Почему головка вынуждена сначала проехать мимо последней единицы слова, а только потом вернутся и стереть ее? Ответ.Чтобы обнаружить, что обозреваемая в данный момент единица — последняя, машине Тьюринга приходится прочитать содержимое соседней ячейки справа. Следующий пример показывает, как состояния машины используются для запоминания прочитанных символов. Пример 10.2. На ленте записано непустое слово в алфавите {0,1}. Переместить первую букву слова в конец. 242 
• ••# 1 1 0 1 0 1 д 1 • ••# 1 0 1 0 1 1 Машине Тьюринга достаточно стереть первую букву, переместить головку в конец слова и записать стертую букву в первую свободную ячейку за словом. При этом стертую букву надо «помнить» все время, пока головка перемещается по слову. Вот соответствующая программа: <71# Ql#R q20^q20R q30 i-> q30R qi0^q2#R q2l^q2lR q3l •-> q3lR <711^-><7з#Я <72# •-> <2oOL <73#H->g0lL Запоминание моделируется тем, что при стирании символа машина переходит в одно из двух состояний — q2, если стертый символ был 0, и дз, если 1. В дальнейшем оба эти состояния обеспечивают перемещение головки в первую пустую ячейку справа от слова, но обрабатывают эту ячейку различным образом: q2 записывает в нее букву 0, a q% — букву 1. ■ Часто оказывается полезным расширить ленточный алфавит машины Тьюринга дополнительными «служебными» символами, отсутствующими в записи исходных данных. Пример 10.3. Рассмотрим задачу удвоения слова нЕ {0,1}*: V д 1 • ••# V V Метод копирования символов был использован в предыдущем примере, однако теперь необходимо следить за тем, чтобы не скопировать один и тот же символ дважды. Естественное решение — помечать уже скопированные буквы. Для этого добавим в ленточный алфавит две дополнительные буквы а и 6, которые будут играть роль помеченных 0 и 1, соответственно. Процесс удвоения будет происходить так: 243 
# 0 1 1 0 # # а 1 1 0 а # # а ь 1 0 а # # а ь ъ 0 а b ь # # а ъ ъ а а b ь a # # 0 1 1 0 0 1 1 0 # Приведем соответствующую программу. Копирование одного символа осуществляется следующим блоком команд: <7i# qi#R qiO q2aR qi 1 qsbR q20 i-> q20R q2l i У q2^-R q2a q2aR q2b q2bR 92# >->• q^aL 930 q30R 931 <-> 93I-R 9зо <->■ 9з«Л q3b н-> д36Д 93# <->• q^bL Возврат головки, поиск очередного подлежащего копированию символа, переход к следующей итерации или выход из цикла обеспечивается командами: q^O i-> q$0L q$0 qz,0L 941h-^951L 95I i-> q5lb 94а i-> ^aL q^a i-> 94 ai? q$b i-> q^bL q3b i-> W? 94# l—^ 96#^ Остается заменить буквы-двойники на исходные: 9б« •-> 9бОЙ 96 Ь <-> 9б1Д 96# <->• 9о#£ ■ 10.2. Вычисление функций на машинах Тьюринга Заметим, что спецификация машины Тьюринга вместе с входным словом задают вычислительный процесс, но еще не определено, что именно он вычисляет. Восполним этот пробел. 244 
Определение 10.2. Пусть Eg Я (£\{#}). Машина Тьюринга М вычисляет (частичную) словарную функцию /: £q —» Eg, если 1) на входах г; G Eg машина М останавливается тогда и только тогда, когда значение w = f(v) определено, и, 2) если такое произошло, то слово w оказалось записанным на ленте, непосредственно справа и слева от него стоят буквы, не принадлежащие алфавиту Eg, а головка остановилась внутри или непосредственно перед словом w. (В описанном случае условимся говорить, что головка указывает на слово w.) Замечание. В этом определении машине разрешается оставлять на ленте «мусор» справа и слева от результата. Вопрос. Машина, вычисляющая словарную функцию /: Eg -> Eg, на входе v G Eg остановилась, но ни в обозреваемой ячейке, ни непосредственно справа от нее нет букв алфавита Eg. Чему равно f(v) ? Ответ. Пустому слову Л. Определение 10.3. Частичная функция /: Eg —» Е^ называется вычислимой по Тьюрингу, если существует машина Тьюринга, которая ее вычисляет. Определение вычислимости по Тьюрингу легко переносится на другие типы конструктивных объектов с помощью выбора подходящего способа кодирования объектов словами в некотором алфавите Eg. Например, в случае натуральных чисел можно выбрать унарное кодирование п <—> п = 11... I G {1}* или дво- п раз ичное кодирование п <—> Bin(n) G {0,1}*, где Bin(n) — двоичная запись числа п. Функция /: N —» N вычислима по Тьюрингу, если таковой является словарная функция, преобразующая код аргумента п в код f(n). Для определения вычислимости по Тьюрингу несущественно, какой из указанных способов кодирования выбрать: числовая функция, вычислимая по Тьюрингу при выборе одного из указанных способов кодирования, будет также вычислимой по Тьюрингу при выборе другого. Это следует из того, что преобразование унарной записи числа в двоичную и обратно можно выполнить с помощью подходящих машин Тьюринга. Обозначение. Пусть машина Тьюринга М на входе v остановилась. Обозначим через M(v) I то максимальное слово в 1£0 алфавите Eg на ленте, на которое указывает головка. 245 
после остановки: 0 1 0 1 1 1 Д w = 010111 = M(v)' {0,1} Определение 10.4. Пусть Eg С (Е\{#}). Машина Тьюринга М вычисляет (частичную) словарную функцию / : Eg —» Eg в сильном смысле, или чисто, если выполняется условие 1) из определения 10.2, а в условии 2) из того же определения дополнительно требуется, чтобы на ленте ничего кроме результата w Е Eq и букв ф не оставалось, и головка остановилась в клетке непосредственно перед словом w. (Это требование назовем условием чистоты.) Замечания. 1. Понятие чисто работающей машины Тьюринга относительно: надо указывать алфавит Ео. Иначе неясно, что считается результатом, а что —- мусором. 2. Можно аналогично определить вычислимость и «чистую» вычислимость функций типа Eg х ... х Eg -> Eg. Для этого надо объявить какой-нибудь символ из Е\Ео (например, □) разделителем и подавать все аргументы на вход машине Тьюринга в виде одного слова, отделяя один от другого разделителем. Теорема 10.1. Пусть словарная функция /: Eg —Eg вычислима машиной Тьюринга М. Тогда можно построить машину Тьюринга М', которая чисто вычисляет /. Доказательство. Сначала преобразуем машину М в другую, Mi, которая будет вычислять ту же функцию /, но при этом никогда не будет писать ф в ячейки, которые читала. Добавим к ленточному алфавиту Е машины М новую букву □ (двойник Ф). В программе М изменим команды с участием ф так: вместо напишем qa и->> ффХ qa i—> qfHX чФ •—> qra'X Чф q'a'X X - символ движения qU i-> q'a'X q# q'#X q# q'OX qU i—> q'nX 246 
В результате получим машину Mi, которая записывает □ в те ячейки, в которые М писала #, а в остальном повторяет вычисление М. Теперь добавим группу команд, которые «чистят мусор» на ленте после того, как Mi выполнит основную работу. Разжалуем заключительное состояние машины Mi в обычное состояние qn. Допишем следующие команды: qna i-> qn+iaN, a Е £ U {□}; qn+1<2 и-> gn+iaL, а Е £о; (к началу ответа) qn+ia qn^aN, а Е (Е U {□}) \ Е0; Яп+2^ qn+2#L, а Е (Е U {□}) \ {#}; (чистим слева) Яп+2# дгг+3#й; <?п+з# •-> Яп+(возврат к ответу) Яп+За ^ </п+4<27?, ^ £ S0; (/п+4<2 дп+4аД, а Е Eq; (к концу ответа) ЯпЛ-Аа £ (S U {О}) \ Eq; gn+5a дп+5#Д, a Е (Е U {□}) \ {#}; (чистим справа) Яп+ъФ Яп+вФЦ <7n+6# •-> Яп+ьфц (возврат головки) gn+oa I—> gn+7aL, а Е Eq; (в исходное положение) gn+7a i-> gn+7aL, a Е Е0; Яп+7Ф Осталось объявить </п+8 заключительным состоянием и машина М7 готова. ■ Вопрос. Зачем машину М сначала преобразовали в Mi ? Ответ. Чтобы было ясно, какую зону надо очищать от мусора. В процессе работы машина Mi заполняет клетки, в которых побывала головка, буквами, отличными от ф. В результате вся зона ее работы составляет одно слово в алфавите Е \ {#}. 10.3. Синтез машин Тьюринга Теорема 10.2. Если функции fug типа Eq —> Eq вычислимы на машинах Тьюринга, то их композиция h(v) ~ g(f(v)) также вычислима на подходящей машине Тьюринга, причем эту машину можно построить явно по машинам, вычисляющим fug. Доказательство. Пусть машины Му и Мд вычисляют функции / и д соответственно. Преобразуем Му в Му, вычисляющую / чисто. Переименуем состояния машины Мд так, чтобы 247 
ее начальное состояние совпало с заключительным состоянием машины Mj, а остальные состояния не совпадали с состояниями машины Mj. Объединим две получившиеся программы в одну. Объявим общим начальным состоянием начальное состояние машины Мр а общим заключительным — заключительное состояние переименованной машины Мд. Получившаяся машина вычисляет g(f(v)). ■ Вопрос. Зачем машину Mf сначала преобразовали в которая чисто вычисляет ту же функцию /? Ответ. Чтобы обеспечить стандартное начало работы для машины Мд. Мусор на ленте от работы машины Mf мог изменить поведение машины Мд. Следует отметить, что все традиционные для языков программирования управляющие конструкции сохраняют свойство вычислимости на машинах Тьюринга. К ним, в частности, относятся структурное ветвление IF g(v) = Л THEN fi(v) ELSE f2{v) и итерация WHILE g(v) = A DO v := f(v) DONE; RETURN v. Для этих конструкций имеют место аналоги теоремы 10.2. Доказательства этих результатов весьма громоздки, и здесь их не приводим. 10.4. Тезис Тьюринга Результат сравнительного изучения классов вычислимых словарных функций для различных моделей вычислений можно сформулировать в виде следующего неформального утверждения, называемого тезисом Тьюринга. Каков бы ни был конечный алфавит Eg, каждую вычислимую функцию типа Eq —Eq можно вычислить на подходящей машине Тьюринга. Неформальность тезиса Тьюринга состоит в том, что он не может быть полностью обоснован математическими средствами, т. е. доказан как математическая теорема. В то же время все многочисленные попытки его опровергнуть, предложив язык 248 
программирования с большими вычислительными возможностями, оказались безуспешными, в результате чего в настоящее время подобные проекты считаются абсолютно бесперспективными. Причина невозможности полного математического обоснования кроется в словах «какого угодно языка программирования»: они не определяют ни самого семейства языков, о которых идет речь, ни какого-либо свойства этого семейства. Если их заменить на достаточно информативное описание семейства языков программирования (которое необходимо окажется менее общим), то соответствующий частный случай тезиса станет обычным, «поддающимся доказательству» математическим утверждением. Пример 10.4» Пусть семейство языков программирования состоит из языков С и PASCAL. Оба эти языка обладают компиляторами в язык ASSEMBLER, поэтому для обоснования соответствующего частного случая тезиса Тьюринга достаточно построить компилятор, преобразующий ассемблерный код в программу для машины Тьюринга. Последнее является весьма трудоемкой, но абсолютно реалистичной задачей по программированию. Для аккуратного математического доказательства потребуется еще доказать, что все три компилятора работают правильно. ■ Можно ли ограничить объем ленточного алфавита Е, достаточный для вычисления всех вычислимых функций типа Eq —> —Eq на машинах Тьюринга? Оказывается, что ограничение на запас «служебных» букв, т. е. на мощность множества E\Eq, почти не влияет на возможность вычисления словарных функций типа Eq —> Eq. Приведем без доказательства следующий результат. Теорема 10.3. Пусть буквы ф иП не принадлежат алфавиту Eq. Если словарная функция /: Eq —> Eq вычислима на машине Тьюринга, то существует машина Тьюринга с ленточным алфавитом Е = Eq U {□, #}, которая чисто вычисляет /. Конечно, выбор именно буквы □ в качестве дополнительного служебного символа несущественен. Важным следствием этого утверждения является следующее уточнение тезиса Тьюринга. Каждую вычислимую функцию типа Eq Eq можно вычислить на подходящей машине Тьюринга с ленточным алфавитом E = EoU{D,#}. 249 
В реальных компьютерах данные кодируются последовательностями нулей и единиц, поэтому представляет интерес изучение вычислимых словарных функций типа {0,1}* -> {0,1}*. Приведенное уточнение позволяет ограничить рассмотрение машинами Тьюринга с ленточным алфавитом {ОД, #, □}. Но для качественной теории ограничение именно четырехбуквенным алфавитом оказывается несущественным. Важна лишь возможность заранее фиксировать некоторый достаточно большой ленточный алфавит £ D {ОД, #, □}, что и будет сделано в дальнейшем. 10.5. Универсальная машина Тьюринга Соглашения. Раз и навсегда фиксируем какой-нибудь достаточно большой алфавит £ 2 {0,1, #, □} в качестве ленточного (например, все символы, присутствующие в ASCII-таблице), несколько символов из него будем использовать как служебные (£сл £>{#}), несколько других — как разделители (£ра3д 2 {П}), а остальные - - как буквы для формирования алфавитов изучаемых словарных пространств: £q, £i, ... С £ \ (£сл U £разд). Разделители нужны для представления исходных данных (vu € Е* X ... х е; в виде одного слова v = гцП ... Пуп Е £* для определения вычислимости по Тьюрингу словарных функций от многих переменных, т. е. функций типа £| х ... х £* —» £р. Такая функция / считается вычислимой по Тьюрингу, если соответствующее отображение VI!->■ f(Vl, ...,Vn) вычислимо по Тьюрингу как функция одного аргумента. Условимся также представлять натуральные числа в унарной записи. Кодирование программ машин Тьюринга словами в алфавите программ. Вопрос. Как определить вычислимость по Тьюрингу для функций, аргументами (и/или значениями) которых являются машины Тьюринга? Ответ. Надо научиться кодировать машины Тьюринга словами в «неслужебной части» алфавита £. 250 
Заметим, что если договориться, что у машины Тьюринга начальное состояние есть (ц, а заключительное — qo1 то ее программа будет однозначно определять спецификацию (Q, Е, а, р, у, q\, %)■ Осталось закодировать программу. Предполагаем, что буквы 1, а, (/, г, TV, L, принадлежат алфавиту Е, но не являются ни служебными, ни разделителями. • Буквы di Е Е будем записывать словами аг Е {а, 1}*. • Состояния qj Е Q будем записывать словами qj Е {g, 1}*. • Договоримся опускать символ —» в записи команд. • Переведенные так команды будем записывать в одно слово, разделяя буквой «г». В результате получим слово Code(M) в алфавите программ ^прог = { 1 5 Ql ^5 Д ^5 ^ } 5 которое называется кодом машины М. Именно оно и будет на ленте представлять машину М как исходное данное или результат вычисления для других машин Тьюринга. Отметим некоторые свойства кодирования: 1) соответствие между машинами и их кодами является взаимно-однозначным. Это следует из того, что ленточный алфавит, начальное и заключительное состояния фиксированы; 2) множество кодов программ является разрешимым подмножеством Е*рог. Этот факт является несложным упражнением. Вопрос. Как быть, если по каким-нибудь причинам желательно ограничиться бедным ленточным алфавитом Е, не содержащим все буквы алфавита Епрог? Ответ. В этом случае применяется дополнительный перевод слов Code(M) Е Е* словами, составленными из «неслужебных» символов алфавита Е. Например, если «неслужебными» символами являются только 0 и 1, то можно выбрать побуквенный перевод, заменяющий каждую букву алфавита программ на 3 бита: 1 <—> 000 а <—► 001 q <—► 010 N <—> 011 L <—э 100 R<—► 101 2 <—► по 251 
Построение универсальной машины Тьюринга. Определение 10.5. Универсальной машиной для класса всех машин Тьюринга с ленточным алфавитом £ называется такая машина Тьюринга £/, что для всех машин М из этого класса и всех слов i;G{£\{#})* выполняется условное равенство U(Code(M)Dv £\{#} M(v) Е\{#} Напомним, что левая и правая части равенства означают те максимальные слова в алфавите £ \ {#}, на которые указывают головки после остановки машин. Таким образом, универсальная машина способна моделировать вычисления каждой машины Тьюринга с ленточным алфавитом £. Теорема 10.4. Существует универсальная машина для класса всех машин Тьюринга с ленточным алфавитом £. Доказательство. Пусть функция /: (£\{#})* —>* (£ \{#})* определена только на словах вида Code(M)Ov, где v G (£\{#})* и машина М заканчивает работу на слове щ при этом значение f(Code(M)Bv) есть M(v) I . Функция / вычислима с помо- 1 ^\{#} щью следующего алгоритма А: 1. Во входном слове х G (£ \ {#})* найти самое левое вхождение буквы □ и разделить х в этом месте на части: х = wOv. Если не удалось, то остановиться без результата. 2. Проверить, что w G £*рог и w = Code(M) для некоторой машины Тьюринга М. Восстановить М. Если не удалось, то остановиться без результата. 3. Запустить вычисление М на входе v. Когда (если) оно закончится результативно, то вернуть M(v) I в качестве А(х). !s\{#} Применим тезис Тьюринга: существует машина Тьюринга С/, которая вычисляет /. Это и есть искомая универсальная машина Тьюринга. (Заметим, что при некотором усердии и избытке времени применения тезиса Тьюринга можно избежать. Достаточно непосредственно запрограммировать указанный алгоритм на машинах Тьюринга, что неоднократно делалось.) ■ Некоторым недостатком приведенной конструкции является то обстоятельство, что сама универсальная машина U не попадает в класс машин, которые она способна моделировать (в указанном смысле). Ее ленточный алфавит может быть шире алфавита £, в результате чего ее код С ode (U) не определен. Это обстоятельство нетрудно устранить, 252 
если ограничиться моделированием машин, вычисляющих словарные функции типа Eg —> Eg для меньшего алфавита Ео. Определение 10.6. Пусть алфавит Ео 3 Епрог. U {□} является собственным подмножеством алфавита Е \ {#}, т. е. разность Е \ Ео содержит по крайней мере две буквы. Машину Тьюринга Uq назовем (Е, Ео)-универсальной, если для всех машин Тьюринга М с ленточным алфавитом Е и для всех слов v G Eg справедливо U0(Code(M)Uv) S0 M(v) s0 (10.1) Таким образом, если машина М вычисляет значение f(v) G Е^ словарной функции по ее аргументу v G Eg, то машина Uo вычисляет то же значение по входному слову Code(M)Ov. Теорема 10.5. Пусть Епрог U {□} С Ео С Е \ {#}• Существует (Е, Ео)-универсальная машина Тьюринга с ленточным алфавитом Е. Доказательство. В конструкции из доказательства теоремы 10.4 заменим всюду алфавит Е \ {#} на Ео- Получим машину Тьюринга U, для которой условие U{Code(M)Uv) So M(v) So (10.2) уже выполнено для всех машин Тьюринга М с ленточным алфавитом Е и всех слов v G Ео. Осталось преобразовать ее в машину с ленточным алфавитом Е. Это можно сделать по теореме 10.3. Рассмотрим словарную функцию д: Eg —» Eg, вычисляемую машиной U. По теореме 10.3 для вычисления д достаточно машины Тьюринга с ленточным алфавитом Ео U {а, #}, где а Ео- Возьмем a G G E\(EqU{#}) и построим соответствующую машину. Расширим ее ленточный алфавит до алфавита Е фиктивно, т. е. с помощью тривиальных команд вида qb qbN, b G Е \ (Е0 U {а, #}). Получим машину Тьюринга Uo с ленточным алфавитом Е, которая вычисляет функцию д. Тогда U(w)|е0 — g(w) — Uo(w)\^0 для всех гг G Eg. В частности, это справедливо для слов w вида Code{M)Uv1 поэтому из (10.2) следует (10.1). ■ 10.6. Теорема о компиляции Наличие единого алгоритма применения программ к исходным данным характерно для всех языков программирования. Рассмотрим следующую абстрактную модель языка программирования PrL, приспособленного для вычисления словарных 253 
функций типа £* —» £q. Предположим, что программы этого языка представлены словами в алфавите £ргр и имеется универсальный алгоритм U(p,v), который применяет PrL-программу р к слову v G £д: U{p)v) ~ результат применения программы р к слову v. При этом он проверяет, является ли слово р G £prL синтаксически правильной программой языка PrL, и не выдает никакого результата, если это не так. Будем считать, что алфавиты £о и £rvr включены в алфавит £, содержащий достаточное количество букв, не принадлежащих этим алфавитам: #, □ и другие. В этих предположениях удается доказать существование алгоритма компиляции, преобразующего всякую программу языка PrL в код машины Тьюринга, вычисляющей ту же функцию, что и исходная PrL-программа. Следующая теорема называется теоремой о компиляции. Теорема 10.6. Существует такая вычислимая функция S: £prL —» £*рог, для которой выполнены следующие условия: 1) D(S) совпадает со всем словарным пространством £prL, все ее значения являются кодами некоторых машин Тьюринга; 2) для всех слов р G £prL и v G £g справедливо: [/(5Ып^) I ~ W(p,v). Условия 1) и 2) описывают функцию, вычисляемую алгоритмом компиляции. Первое условие гарантирует результативное завершение процесса компиляции независимо от того, является ли компилируемая программа р синтаксически корректной или нет. Второе условие обеспечивает корректность компиляции: машина с кодом S(p) вычисляет ту же функцию, что и программа р. Вопрос. Что вычисляет машина Тьюринга с кодом 5(р), если слово р G £prL не является PrL-программой? Ответ. В этом случае результат U(p,v) для всех слов v G £q не определен, поэтому машина Тьюринга с кодом S(p) на каждом слове v G ££ работает вечно. Доказательство теоремы 10.6. Отображение, которое переводит слово вида рПу в слово £/(р, г;), если оно определено, является вычислимой функцией типа £^ —> £J, где £i = £рг^и U£oU{D}. Согласно тезису Тьюринга и теореме 10.3 существует 254 
машина Тьюринга UprL с ленточным алфавитом Е, которая чисто вычисляет эту функцию, т. е. Uprb(pav) - U(p,v), Sl Р G SprL, v G S0. Пусть pi есть i-я буква слова p. Каждому слову р = р\ ... рп в алфавите ЕрГ£, сопоставим машину Тьюринга Мр, заданную следующей программой: 91 # !-> to □ L Я2 # |—У ЯЗ Рп L Яз # Я4Рп- ■1 L Яп+1 # |—У Я0Р1 L Будучи примененной к входному слову щ машина Мр приписывает к нему слева слово рП, в результате чего получается слово рПу. Рассмотрим машину Тьюринга Мр, реализующую композицию (последовательное применение) машин М® и £/ргр так, как это сделано в доказательстве теоремы 10.2. А именно, заключительное состояние машины Мр отождествляется с начальным состоянием машины С/ргр, а остальные состояния машины UprL переименовываются таким образом, чтобы они не пересекались с состояниями машины Мр. В качестве начального состояния машины Мр выбирается начальное состояние машины Мр, в качестве заключительного — заключительное состояние машины UprL (после переименования). Имеем Mp(0|El - UPrL(pnv)|Ei ~U(p,v), pGSJ,rL) weS0. Однако значение £/(р, г;), если оно определено, является словом в алфавите Eq и Ео С Ег Поэтому Mp(v) I ~ Mp(v) I , Е0 Е1 т. е. машина Мр чисто вычисляет ту же функцию типа Eq —» Eq, что и PrL-программа р. Согласно определению машины Мр, ее ленточный алфавит тот же, что и у машины J7prp, т. е. Е. Тем самым определен ее код Code(Mp) Е Е*рог. Определим функцию S так: S(p) = Code(Mp), ре Е*. Алгоритм вычисления функции S (компилятор) состоит в построении описанным способом кода машины Тьюринга Мр. 255 
Выполнение условия 1) следует из определения функции S. Проверим условие 2). Пусть р £^*РгЬ и v Е Eg. Тогда t/(5(p)Du)|EX{#}~ Mp(t’)|EX{#}~ Mp(v)|Eq~ U(p,v). Первое условное равенство выполняется ввиду определения универсальной машины Тьюринга, второе — так как машина Мр чисто вычисляет функцию со значениями в Eg. ■ Теорема о компиляции может рассматриваться как некоторое усиление тезиса Тьюринга. Но в отличие от неформального тезиса Тьюринга, в теореме о компиляции речь идет о языке программирования, обладающем вполне определенным описанием — универсальным алгоритмом 14. В этом частном случае она усиливает тезис Тьюринга, устанавливая не только вычислимость по Тьюрингу всех функций, программируемых на этом языке, но и возможность компиляции, т. е. эффективного преобразования программ в соответствующие машины Тьюринга. Заметим также, что если описание языка программирования конкретизировать еще больше, потребовав в условии теоремы не только существование, но и вычислимость по Тьюрингу универсального алгоритма ZY, то использования тезиса Тьюринга в ее доказательстве можно избежать. 10.7. Многоленточные машины Тьюринга Многоленточные машины Тьюринга представляют собой модификацию рассмотренного ранее класса одноленточных машин Тьюринга, более приспособленную для нужд практического написания программ. Именно эта модель вычислений традиционно используется в вопросах, связанных с оценкой сложности вычислений. Основное отличие состоит в наличии нескольких (конечного числа) лент, с отдельной головкой на каждой из них. Каждая лента бесконечна в обе стороны и разбита на одинаковые ячейки, предназначенные для хранения букв фиксированного ленточного алфавита Е = {од, ..., ап} по одной букве в ячейке. Как и ранее, головками управляет единое управляющее устройство, которое может находиться в одном из конечного множества состояний Q — {(/о,</ъ Один шаг работы машины задается конечными функциями а(д,а), (3(д, а), у(д,а), описание которых модифицируется соответственно: 256 
а : Q х (Т,*)к —» Q— новое состояние; (3 : Q х (E*)fc —»* (E*)fc— новое содержимое ячеек; у : Q х (E*)fc —> {TV, L, Д}^— движения головок. В случае /с лент аргументами этих функций будут текущее состояние q <Е Q и вектор а = (ад, ... , ад) Е (Е*)^, состоящий из букв, обозреваемых головками в начале шага. Все соглашения о выборе ленточного алфавита, начального и заключительного состояний, а также записи таблиц функций а, (3, у программой переносятся на случай многоленточных машин очевидным образом. В частности, команды теперь будут иметь следующий вид: qaix ...aik •-> q ah ...ajkrn . ..гд, где </ = «(<?, a), (ah .. .ajk) = $(q,a), {rh ... rik) = y(g, a). Такая команда вызывает переход из состояния g в д', заменяет буквы ад, ... , ад в обозреваемых ячейках лент на ад, ..., ajk соответственно, а также перемещает головки так, как указывают символы движения гд ... гд. Для головки на l-й ленте Гц = L означает перемещение на одну клетку влево, Гц = R — на одну клетку вправо, Гц = N — остаться на месте. Наличие нескольких лент позволяет разделить их функции. Одна или несколько лент объявляются входными, предназначенными только для чтения, остальные — рабочими, на которых можно читать и писать. Среди рабочих выделяются выходные ленты, с которых следует считывать результат после завершения работы. Удобно также ввести ограничительные буквы b и е для обозначения границ входного слова, за которые головке вылезать запрещается. Начальная конфигурация лент выглядит так: Входная лента с исходными данными: ъ 1 0 1 1 е Л Рабочие ленты: # # # # # #••• д • ••# # # # # # #••• д # # # # # Д 257 
На входных лентах записаны исходные данные, а ячейки рабочих лент заполнены буквой ф. Дальнейшее функционирование аналогично случаю одноленточных машин Тьюринга. Пример 10.5. Следующая программа для двухленточной машины Тьюринга с одной входной и одной рабочей лентой, которая обращает входное слово v Е {0,1}*, т. е. переписывает его буквы в обратном порядке. qi Ьф q\ Ьф RN q2 ОФ i-> q\2 00 LR qi 0ф i-> q\ 0Ф RN (/2 1# q2 П LR qil#^qil#RN Ч2 Ьф нэ q3 Ьф NL 41 еф <?2 e# LN Рассмотрим работу этой программы на входном слове 1011. Начальное состояние — q\. Исходное заполнение лент такое: # ь 1 0 1 1 е # д # # # # # # # # Д Состояние qi перемещает головку на входной ленте к концу слова и меняется на (/2- # ъ 1 0 1 1 е # —► д # # # # # # # # Д В состоянии (/2 обе головки начинают двигаться в противоположных направлениях, и происходит копирование битов с входной ленты на рабочую. # 6 1 0 1 1 е # д «— # 1 1 # # # # # Д 258 
Когда головка на входной ленте достигает символа 6, происходит остановка, т. е. переход в заключительное состояние до- # ъ 1 0 1 1 е # д # 1 1 0 1 # # # Д Как и в случае одноленточных машин, полная спецификация многоленточной машины есть набор (Q, Е, а, (3, у, go- дД. Если к ней добавлен входной алфавит Ео С Е \ {#, 6, е}, выделены входные (ко штук) и выходные (/о штук) ленты и функция (3 в самом деле не меняет содержимое входных лент, то получаем алгоритм вычисления (частичной) функции /: (ЕдДо —» (Eq)/o. Для нахождения ее значения (гщ, ... , гс/0) = /(щ, ..., у^0) надо записать на входных лентах слова bv^e. г = 1, ..., Ад, запустить машину и дождаться остановки. Результат следует считывать с выходных лент: Wj есть то слово в алфавите Ео, на которое указывает головка на j-й выходной ленте. Если машина работает бесконечно долго, то значение /(щ, ... , г^0) считается неопределенным. Пример 10.6. Опишем трехленточную машину Тьюринга, которая реализует алгоритм сложения «столбиком» двух натуральных чисел, представленных своими двоичными записями. Две входные ленты служат для записи слагаемых, третья (рабочая, выходная) — для записи их суммы. Машина вычисляет словарную функцию типа ({О, I}*)2 —» {0,1}*. Пусть, например, требуется вычислить сумму 11 + 5. Тогда начальное заполнение лент выглядит так: # ь 1 0 1 1 е # д # ь 1 0 1 е # # д # # # # # # # # Л Начальное состояние gi перемещает головки на входных лентах к правым ограничителям (буква е) и там меняется на д2, сдвинув головки на одну позицию влево; головка на третьей ленте стоит на месте: 259 
qi bb# ^ qi bb# RRN 91 -> 9i « qile#^qile#RNN £,7)<E {0,1} 9i el# -> qi el# 7Vi?7V qi ее# i-> q2 ее# LL7V Получим следующее расположение головок в состоянии ^2- # ъ 1 0 1 1 е # д #, ъ 1 0 1 е # # д # # # # # # # # Д Состояния #2 и 9з реализуют алгоритм сложения. Все три головки синхронно движутся влево. На третьей ленте пишется младший разряд суммы битов, обозреваемых на входных лентах, а также запомненного старшего разряда, оставшегося от предыдущего суммирования. Запоминание старшего разряда осуществляется переходом в состояние 93 («1 в уме»): 92 00# 1-» 92 000 LLL 93 00# !-> (/2 001 LLL 92 01# |-> 92 011 LLL <73 01# (/з 010 LLL <72 10# |-> 92 101 LLL <73 Ю# !-> (/з 100 LLL <72 11# 9з 110 LLL 9з H# 1-Э- дз 111 £LL Эта группа команд выполняется до тех пор, пока одна из головок на входных лентах не достигнет ограничителя b в состоянии 93: # 6 1 0 1 1 е # д # ь 1 0 1 е # # д # # 0 0 0 # # # Д Следующие команды работают, когда длины слагаемых не совпадают. При этом учитывается, что головкам на входных лентах запрещено заходить за ограничители 260 
(/2 Ob# i—> q2 ObO LNL q2 bO# i-> q2 bOO NLL q2 lb# q2 1Ы LNL q2 bl# i-> q2bll NLL qs Ob# к-» q2 ОЫ LNL q% bO# i У q2 601 NLL q3lb# i у q3 lbO LNL q%bl# i—> q^blONLL Завершение работы обеспечивается командами q2 bb# н-> qo bb# NNN q% bb# i-» qo bbl NNL В состоянии qo получаем следующее: # ъ 1 0 1 1 е # д # ь 1 0 1 е # # д # # 1 0 0 0 0 # Д Принципиальные вычислительные возможности многоленточных машин Тьюринга те же, что и у одноленточных. Конечно, многоленточные машины Тьюринга могут моделировать одноленточные машины — для этого достаточно одной входной и одной рабочей ленты. Моделирующая двухленточная машина сначала копирует исходные данные (без ограничителей) на рабочую ленту, а затем функционирует так же, как и моделируемая одноленточная машина, при этом головка на входной ленте остается неподвижной. Однако и одной ленты хватает для моделирования работы любой многоленточной машины Тьюринга. Это легко следует из тезиса Тьюринга. В самом деле, если функция / типа (Е5)*° (£5)*° вычислима на многоленточной машине, то отображение Hvk о 1—> гщП ... □ гс/0, где (гщ, ..., гт/0) = /(щ, ... , щ^), является вычислимой словарной функцией типа (£д Э {□})* —» (£о Э {□})*, а потому вычислимо на подходящей одноленточной машине согласно тезису Тьюринга. 261 
Возможно и прямое доказательство этого факта, не опирающееся на тезис Тьюринга. Оно более трудоемко и состоит в предъявлении явной конструкции моделирования. Из этого доказательства видно, что при моделировании происходит замедление: моделирующая одноленточная машина может работать существенно дольше моделируемой многоленточной. Например, про рассмотренную выше задачу обращения входного слова (см. пример 10.5) известно, что на одноленточных машинах она не решается за линейное (от длины ф| входного слова г;) время. В то же время наша программа для двухленточной машины тратит на это 2\v\ + 2 шага. Причина замедления состоит в специфике размещения на одной ленте данных, расположенных на нескольких лентах моделируемой машины. Символы, обозреваемые головками многоленточной машины, оказываются расположенными далеко друг от друга. Если многоленточная машина могла изменить их одновременно, за один шаг, то одноленточной машине приходится тратить время на перемещение головки от одного символа к другому. Поэтому моделирование одного шага требует в худшем случае сканирования всех задействованных одноленточной машиной ячеек. Общая оценка времени увеличивается в С • s раз, где s — максимум по всему вычислению длины куска ленты, задействованного одноленточной машиной, а С — некоторая константа. Остановимся на процессе моделирования более подробно. В качестве примера ограничимся моделированием двухленточной машины Тьюринга. Пара лент а Ъ 1-я лента д с d 2-я лента Д моделируется одной так: а 1 с 0 ь 0 d 1 1-я 2-я 1-я 2-я Одной ячейке на исходной ленте соответствуют две соседние ячейки на моделирующей. Левая содержит ту же букву, а правая — 0 или 262 
1 — признак того, что одна из головок исходной машины обозревает моделируемую ячейку. Такие пары чередуются, т. е. соседним ячейкам на одной из исходных лент соответствуют пары, расположенные на расстоянии 2. Один шаг исходной машины моделируется двойным проходом по всей рабочей зоне моделирующей ленты. При движении справа налево определяются буквы, обозреваемые исходной машиной, а при движении в обратную сторону имитируются необходимые изменения (замена букв и перемещение головок). Моделирующее состояние поддерживает счетчик для хранения остатка от деления на 4 величины текущего смещения головки, что позволяет определить, к какой из моделируемых лент относится обозреваемая ячейка. При этом в каждой ячейке рабочей зоны головка моделирующей машины бывает не более фиксированного числа С раз, поэтому время моделирования одного шага не превосходит С • s, где s — длина задействованного («отформатированного») куска ленты. В случае вычисления функции /: £q Eg одна из моделируемых лент является входной, т. е. содержит аргумент v Е EJ, а на другой в конце работы появляется слово f(v) Е Dq* Моделирующая одноленточная машина получает входные данные и должна выдавать результат в том же формате, в виде слов в алфавите £о- Поэтому надо добавить два дополнительных модуля. Один будет переписывать входное слово «разряженно»: # Cl С2 д 1 # 1 # 1 Cl 0 # 0 С2 0 # 0 1-я 2-я 1-я 2-я 1-я 2-я Второй модуль должен выполнять обратное преобразование с результатом. Все остальное моделирование сохраняется. 
Глава 11 ДРУГИЕ ФОРМАЛИЗАЦИИ ВЫЧИСЛИМОСТИ В данной главе излагается один из наиболее распространенных вариантов уточнения понятия вычислимой числовой функции — частично-рекурсивные функции. Рассматривается одно из наиболее удобных для работы со словами уточнение представления об алгоритмах — нормальные алгорифмы Маркова. 11.1. Рекурсивные функции В гл. 10 с помощью машин Тьюринга получено точное определение понятия вычислимой частичной функции типа Е* —» Е* для произвольного алфавита Е. В частности, имеется понятие вычислимой по Тьюрингу n-местной числовой функции, т. е. частичной функции типа Nn -» N. Исследование вычислимости числовых функций важно потому, что числовые функции — один из основных математических объектов, а натуральные числа — простейший тип конструктивных объектов, к которым с помощью нумераций можно перейти от объектов произвольного типа. Поэтому изучение вычислимых функций с натуральными аргументами и значениями является первоочередной задачей теории алгоритмов. В силу тезиса Тьюринга класс всех вычислимых по Тьюрингу частичных функций из Nn в N совпадает с классом Сот(Nn, N) всех вычислимых в интуитивном смысле n-местных частичных функций из Nn в N. Естественно возникает вопрос о традиционно математическом описании класса Сот(Nn,N), не использующем вообще какое-либо понятие вычислимости. В идеале речь идет о представлении каждой функции / из этого класса формулой вида f(xi, ... ,хп) ~ F, (11.1) где F — подходящее «математическое выражение». Это означает сведение вычислительных процессов к «вычислению по форму¬ 264 
ле». Определение частично-рекурсивной функции дает некоторое решение указанного вопроса: каждая частично-рекурсивная функция получается из фиксированного набора исходных (базисных) функций с помощью операций подстановки, рекурсии и минимизации, причем правые части формул (11.1) определяют порядок получения / из базисных функций применением этих операций. Определение 11.1. Следующие тотальные числовые функции будем называть простейшими или базисными: s(x) = х + 1; о(х) = 0; ... ,хп) = Хт (I < т < п). и Очевидно, что все базисные функции вычислимы. Более того, нетрудно построить машины Тьюринга для их вычисления и тем самым доказать, что все они вычислимы по Тьюрингу. Операция подстановки. Определение 11.2. Говорят, что n-местная (и > 1) частичная функция h получается с помощью операции подстановки из /с-местной функции / и n-местных функций щ, ... ,дд, если для любых х\, ..., хп Е N имеет место условное равенство h(x 1, ...,хп) ~ f(gi(хь ...,хп), ...,gk{xi, ...,хп)). Поскольку роль функций / и д\, ..., в определении операции подстановки не одинакова, для ясности иногда говорят, что h получается подстановкой функций щ, ... в функцию /. Пример 11.1. Функция-константа d\(x) — 1 получается подстановкой о в s: d\(x) — s(o(x)). При этом o(s(x)) = о(х). Аналогично функция-константа d2(x) = 2 получается подстановкой d\ в s. Для любого натурального п > 1 функция-константа dn+i(x) = п + 1 получается подстановкой функции dn(x) = п В S. ■ Пример 11.2. Функция g(x,y,z) = z + 1 получается подстановкой функции в s: g(x,y,z) = s(/f(ж, у, z)). ■ Если функция h получена подстановкой вычислимых функций gi, в вычислимую функцию /, то h вычислима. Алго¬ ритм вычисления h можно представить в виде следующей программы, имея в виду, что даны подпрограммы для вычисления f,9i, ■ ■ ■ ,9k¬ 265 
b\ :— g\ (ai, ..., <2n)*, ... b^ *— g&(оц, ..., &n)5 6 := /(61, .. .A); return b. Если /, щ, ... ,gk всюду определены, то h — тотальная функция. Операция рекурсии. Определение 11.3. Говорят, что (п + 1)-местная (п > 1) частичная функция h получается с помощью операции рекурсии из n-местной функции / и (п + 2)-местной функции д, если для любых xi, ... , хп, у Е N выполняются следующие уравнения рекурсии.: Щь ...,ж„,0) ^ f(xi, ...,хп); 2 /г(хь ... ,ж„,у + 1) ~ д(хь .. ,,xn,y,h(x 1, .. .,хп,у)). При п = 0 в роли 0-местной функции / выступает произвольное натуральное число а, и определение функции h принимает такой вид: h(0) = a; h(y + 1) ~ д(у, h(y)). Употребление термина «рекурсия» (от лат. recursus — возвращение) в данном случае связано с тем, что значение функции h в точке (xi, ... , xn, у+1) определяется уравнениями (11.2) через значение этой же функции в «предшествующей» точке (xi, . ..,хп,г/). В математике рассматриваются и другие, более сложные рекурсивные способы задания функций (возвратная рекурсия, одновременная рекурсия). Поэтому для схемы (11.2) используется термин примитивная рекурсия. В настоящей книге другие виды рекурсии рассматриваться не будут, так что термин «рекурсия» будет означать «примитивная рекурсия». Если функция h получена рекурсией из вычислимых функций / и д, то h вычислима. Алгоритм вычисления h можно представить в виде следующей программы: b := /(ai, ..., an); if an+i = 0then return b; else for г := Otoan+i — 1 do b := g{a\, ..., an, г, b); return b. Если fug всюду определены, то h — тотальная функция. Пример 11.3. Функция h(x,y) = х + у получается рекурсией из функций /(х) = х (т. е. 1\) и g(x,y,z) = z + l. Действительно, 266 
/г (ж, 0) = x + 0 = x — /(ж), h(x, у + 1) = ж + (у + 1) = (ж + у) + 1 = h(x, у) + 1 = = у(ж,у,Л(ж,у)). Пример 11.4• Функция h(x,y) = x • у получается рекурсией из функций f(x) = 0 (т. е. о) и д(х, y,z) = z + х. Действительно, h(x, 0) = х • 0 = 0 = /(ж), Д(ж, у + 1) = ж-(у + 1)=ж-у + ж = h(x, у) + х = = у(ж,у,/г(ж,у)). ■ Пример 11.5. Каково бы ни было натуральное р > 2, функция /&(ж) = получается с помощью операции рекурсии из натурального числа 1 и двухместной функции у(ж,у) = р - у- Действительно , h(0) = р° = 1; h(y + 1) = py+1 = р • ру — = Р-Ну) =9(У,КУ))- ■ Пример 11.6. Функция /г(ж,у) = ху получается рекурсией из функций d\(x) = 1 и g(x,y,z) = z - х. Действительно, /г(ж, 0) = х° = 1 = <Д(ж), Д(ж, у + 1) = ж274-1 = ху • х — h(ж, у) • ж = = у(ж,у,/1(ж,у)). ■ Примитивно-рекурсивные функции. Определение 11.4. Функция типа Nn —» Nn называется примитивно-рекурсивной, если она может быть получена из базисных функций с помощью конечного числа применений операций подстановки и рекурсии. Иными словами, функция / является примитивно-рекурсивной, если существует конечная последовательность функций /о, в которой каждая функция Д (г < п) либо является базисной, либо получается из каких-нибудь предшествующих функций с помощью подстановки или рекурсии, и при этом fn есть функция /. Из отмеченных выше свойств подстановки и 267 
рекурсии следует, что всякая примитивно-рекурсивная функция (ПРФ) вычислима и тотальна. Для задания функций удобно пользоваться элементарным языком, сигнатура которого содержит константы 0,1,2, ... и функциональные символы для обозначения конкретных числовых функций. Если даны терм t этого языка и список различных переменных х\, . ..,жп, содержащий все переменные, входящие в А, то однозначно определена n-местная функция /, задаваемая равенством /(ад, ...,хп) = t: для любых натуральных Ад, . .., кп значение /(Ад, ..., кп) совпадает со значением терма t при оценке, которая переменным ад, ..., хп сопоставляет соответственно значения Ад, ... ,кп. Будем говорить, что терм t представляет функцию /. Пусть fi, ..., fs — какие-нибудь числовые функции. Функции, которые можно получить с помощью конечного числа применений правила подстановки из /1, ... , fs и функций (п = 1, 2, ...; 1 < т < п), называются элементарными относительно f\, ..., /s. Имеет место следующее довольно очевидное утверждение. Предложение 11.1. Для того, чтобы п-местная числовая функция / была элементарной относительно функций /х, ..., fs, необходимо и достаточно, чтобы / была представима термом, использующим только функциональные символы f\, ..., fs и переменные из списка ад, ..., хп. Очевидно, что если функция / является элементарной относительно примитивно-рекурсивных функций /i, ...,/s, то / также является примитивно-рекурсивной. Отсюда и из предложения 11.1 следует, что если функция / представлена примитивно-рекурсивным термом, т. е. термом, содержащим лишь символы для примитивно-рекурсивных функций, то / является примитивно-рекурсивной. Пример 11.7. Как показывает пример 11.1, при любом п функция-константа dn(x) = п является примитивно-рекурсивной. Она представима термом s(... s( о(х))...). Вообще, како- п во бы ни было А: > 1, Адместная функция-константа, тождественно равная п, представима примитивно-рекурсивным термом dn(Ii(x 1, ...,хь)). Очевидно также, что все эти функции представимы термом п. ■ Пример 11.8. Функция g(x,y,z) = z + 1 представима примитивно-рекурсивным термом ^(г), следовательно, является ПРФ. Как показывает пример 11.3, функция h(x, у) = х + у получается рекурсией из функций 1\ и д, следовательно, является ПРФ. ■ 268 
Пример 11.9. Функция g(x,y.z) — z + х представлена примитивно-рекурсивным термом, следовательно, примитивно-рекурсивна. Как показывает пример 11.4. функция h{x,y) — х • у получается рекурсией из функций о и д. следовательно, является ПРФ. ■ Пример 11.10. Для всякого натурального числа р > 2 функция д(х,у) — р • у является примитивно-рекурсивной, гак как она представима примитивно-рекурсивным термом. Как показывает пример 11.5, функция h(x) — рх получается рекурсией из числа 1 и функции д. Таким образом, функция h является ПРФ. ■ Пример 11.11. Функция g(x.y,z) — z ' х представлена примитивно-рекурсивным термом, следовательно, примитивно-рекурсивна. Как показывает пример 11.6, функция h(x,y) = ху получается рекурсией из функций d\ и д, следовательно, является ПРФ. ■ 1-г ^ ^ . II, если х > О, Пример 11.12. Функция sg(x) = < прими- I 0, если х — О, тивно-рекурсивна, так как она получается рекурсией из числа О и ПРФ д(х,у) = 1: sg(0) = 0; sg(x + 1) = g(x,sg(x)). Анало- . . ч II, если х — 0, гично, функция sg(x) = < получается рекурсией I 0, если х > 0 из числа 1 и ПРФ д(х, у) — 0 и потому является примитивнорекурсивной. ■ Пример 11.13. Функция р(х) — х — 1, если х > 0, полу- 0, если х — 0 чается рекурсией из числа 0 и ПРФ д(у, z) = у и потому является примитивно-рекурсивной. ■ Пример 11.14 • Функция х -f- у = х — у, если х > у, при- 0, если х < у митивно-рекурсивна, так как получается рекурсией из функций 1\ и д(у, z) = p(z), где р — функция из примера 11.13. ■ Пример 11.15. Функция f(x,y) = \х — у\ примитивно-рекурсивна, что следует из очевидного равенства \х — у\ = (х -=- у) + + (г/Ч-х). ■ 269 
Ограниченная сумма и ограниченное произведение. Операции подстановки и рекурсии, примененные к ПРФ, дают в качестве результата ПРФ. Рассмотрим еще несколько операций, обладающих этим свойством. Предложение 11.2. Если д есть п-местная ПРФ, то п-местная функция /, определенная равенством Хп /Оь •••,хп) = Y9^Xl' ь*)> (И-З) г=0 примитивно-рекурсивна. Доказательство. Из равенства (11.3) вытекает /(хь ... ,жп_1,0) = g(x 1, ... ,хп_х,0), f(x 1, • • •,xn-i,y + 1) = f(xi, ...,хп^1,у) + д(х1, ...,xn-i,y + l), так что / получается рекурсией из ПРФ д(хi, ... ,xn_i,0) и h{xx, ...,xn-i,y,z) = z + g(x\, ...,xn_i,y + l). ■ Предложение 11.3. Если g есть п-местная ПРФ, то (п + + 1 )-местная функция /, определенная условием f(xi, ■ ■ ■ ,xn-i,y,z)= < если y<z, г=У О, если у > z, (11.4) примитивно-рекурсивна. Доказательство. Из определения функции / видно, что /(хь ...,жп-ъУ, z) = = I Y9^1’ ■■■ixn-^i) + Yg(Xl' ■■■’хп-1,г) I + \г=0 г=0 / +g(x 1, ...,xn_i,y) -sg(y4-z). Так как функция -=- примитивно-рекурсивна, то в силу предложения 11.2 функция / примитивно-рекурсивна. ■ 270 
Следствие 11.1. Пусть д, а и р суть п-местные ПРФ, и Г(х 1, • ••,хп) ' Р(Х1,...,ХП) < г=а(ж1, ...,жп) если а(жь ... ,жп) < f3(xb ... ,хп); О в остальных случаях. Тогда функция /* примитивно-рекурсивна. Доказательство. Пусть / — функция, определенная формулой (11.4). Тогда, очевидно, / (%1 J • • • ? 1/15 • • • 5 Ут) = = /(жъ • • • ,Ж„,а(у1, . . • ,Уш),Р(У1, • • • ,Ут))- Таким образом, функция /* представляется примитивно-рекурсивным термом и потому примитивно-рекурсивна. ■ Предложение 11.4. Если g есть п-местная ПРФ, то п-местная функция /, определенная равенством /01, •••,£„) = Ду(ж1, • • • ,хп_1,г), (11.5) г=0 примитивно-рекурсивна. Доказательство. Из равенства (11.5) вытекает f(x 1, • • • ,хп-!,0) = g(x 1, .. ,,ХП-1,0), /(хь ...,жп_1,у + 1) = f(x1, ...,xn-i,у) ■ д(хг, ...,xn-1,y + 1), так что / получается рекурсией из ПРФ д(х i, . ..,xn_i,0) и h(xi, ... ,жп_1,у,г) = г • д(х 1, .. .,хп-1,у + 1). ■ Ограниченный оператор минимизации. Определение 11.5. Говорят, что п-местная функция / получается из (п + 1)-местной функции д и n-местной функции h с помощью ограниченного оператора минимизации (или ограниченного [х-оператора), если /(ад, ...,жп) определено и равно 1/ тогда и только тогда, когда д(х i, ... ,хп, 0), .. . ,#(xi, ...,хП1у-Т) определены и не равны 0, а д(хi, ..., хп, у) = 0 и у < /i(xi, ..., яп). 271 
Что можно сказать о примитивной рекурсивности функции /, если что д и h суть ПРФ? Заметим, что функция / может оказаться не всюду определенной, если для некоторых яд, ..., хп значения д(хi, ... ,хп,у) не равны нулю для всех у < h(x 1, ..., хп). Однако имеет место следующее утверждение. Предложение 11.5. Если тотальная функция / получена из ПРФ д и h с помощью ограниченного [i-оператора, то / примитивно-рекурсивна. Доказательство. Пусть тотальная n-местная функция / получена с помощью ограниченного р-оператора из (п + ^-местной ПРФ д и гс-местной ПРФ h. Тогда для любых ад, ... ,хп h(x\,...,xn) / i \ f(x 1,...,хп)= У] sg ( П9{х\; ■ ■ ■ ,ХП,j) 1 , (11.6) i=o \j=о J и утверждение следует из примитивной рекурсивности функций sg и /г, предложения 11.4 и следствия 11.1. ■ Формула (11.6) сама по себе определяет ПРФ /, коль скоро заданы ПРФ д и h. Для так заданной функции / будем писать /(жь ... ,хп) = \iy<h(xu-.xn)[g{x\, ...,хп,у) = 0]. Таким образом из тотальных функций д и h получается тотальная функция /. А именно, для любых ад, ...,хп значение /(ад, ...,хп) равно наименьшему у < /г(ад, ..., жп), для которого д(ад, ... ,хП1у) = = 0. Если же такое у не существует, то /(ад, ..., хп) = /г(ад, ..., Хп) + 1. Примитивная рекурсивность некоторых функций. С помощью доказанных ранее общих утверждений теперь можно легко проверить, что многие часто используемые в математике числовые функции являются примитивно-рекурсивны- Пример 11.16. \х целая часть частного от деления х на у (полагаем — =0). Примитивная рекурсивность этой функ- L0J ции следует из очевидного равенства :X]sg ((г-у)ч-х). г=О 272 
Пример 11.17. rest(ж,р) — остаток от деления ж на у, если у ф 0, и rest(x,0) = х. Примитивная рекурсивность этой функции следует из равенства restfx, у) = х + ( у • — V [у\ Пример 11.18. т(ж) — количество делителей числа х (полагаем т(0) = 0). Примитивная рекурсивность этой функции сле- х дует из равенства т(ж) = Е sg(rest(x, г)). ■ г-0 Пример 11.19. тс(ж) — количество простых чисел, не превосходящих х. Примитивная рекурсивность функции к следует из х равенства тт:(ж) = ^T^sg(|T(z) — 2|), так как простое число — это г=0 число, которое имеет ровно два делителя. ■ Пример 11.20. р(ж) — х-е по величине простое число (р(0) = = 2, р(1) = 3, р(2) = 5 и т.д.). Примитивная рекурсивность р следует из примитивной рекурсивности функции h(x) = 22Ж, предложения 11.5 и равенства р(ж) = \±у<2ъх [|л(р) — (ж + 1)| = 0], основанного на том факте, что р(п) < 22П для любого п. Обозначив р(п) через рп, индукцией по п докажем неравенство рп < 22 . Так как ро = 2, то неравенство верно при п — 0. Пусть неравенство верно для всех п < s; докажем его для п = 5 + 1. Из индукционного предположения следует, что PoPi .. .ра + 1 < 22°+2l+-+2S + 1 = 22S+1_1 + 1 < 22S+1. Число a = PoPi ... ps + 1 больше единицы и потому имеет простой делитель рг, который не может совпадать с ро, Pi, • • •, Ps- Следовательно, Ps+i < Рг < а < 22* . ■ Пример 11.21. ех(ж,р) — показатель степени числа р(ж) в разложении на простые множители числа у (полагаем ех(ж,0) = = 0). Примитивная рекурсивность функции ех следует из равенства ех(х,у) = ^<a;[(sg rest(y, (р(х))г+1)) • sgу = 0]. ■ Пример 11.22. /(ж) = [л/х\ — целая часть квадратного корня из ж. Примитивная рекурсивность этой функции следует из равенства [у/х\ = [iz<x[sg((z + I)2 + ж) = 0]. ■ 273 
(x 4~ ц)(х -|- у -f- 1) Пример 11.23. с(х,у) = + х — канторов- ская функция, нумерующая все пары натуральных чисел. Примитивная рекурсивность этой функции следует из равенства с(ж, у) (х + у)(х + у + 1) 2 + X. Пример 11.24• К Л г(ж) — соответственно первая и вторая компоненты пары натуральных чисел с номером х в нумерации пар, задаваемой функцией с. Для доказательства примитивной рекурсивности этих функций заметим, что, как следует из определения функции с, если 1(п) = х, г(п) = ?/, то 2п = х2 + 2ху + 4- у2 + Зх + у, 8п + 1 = 4х2 + 8ху + 4у2 + 12х 4- 4г/ 4- 1, так что с одной стороны 8n + 1 = (2х 4-2у + I)2 4- 8х, а с другой — 8п 4- 1 = (2х + 2у + З)2 — 8у — 8, откуда вытекают неравенства (2х 4- 2у 4- I)2 < 8п 4- 1 < (2х 4- 2у 4- З)2, 2х 4~ 2у 4- 1 < [х/8тД^-~Т] <с 2х 4- 2у 4- 3, 2х 4- 2у 4- 2 < [y/to + i] 4-1 < 2х 4- 2у 4- 4, [V8n + 1] + 1 х 4- у 4- 1 < < х + у + 2. Последнее неравенство означает, что \ у/8?тГ+Т1 4- 1 х 4- у 4- 1 — (11.7) Отсюда и из формулы для с(х,г/) получаем 1(п) — х — п 4- - [л/8 п + lj + [л/8 п + 1 -г 1 2 2 (11.8) Из (11.7) и (11.8) получается выражение для г(п) Арифметизация словарного пространства. В гл. 8 была введена функция : £* —> N, нумерующая все слова в алфавите Е = = {ai, ... ,%>}. А именно, vs(A) = 0, а номером непустого слова w — = ciis ... ощЩо считается число VE(w) = io 4- i\p 4- •.. 4- isps• (П.9) Рассмотрим некоторые числовые функции, естественным образом возникающие в связи с этой нумерующей функцией. 274 
Пример 11.25. Пусть \п(х) обозначает длину слова с номером х. Докажем, что функция In примитивно-рекурсивна. Через а(п) обозначим количество всех слов длины < п. Так как количество всех п слов длины г равно рг, то а (гг) = Отсюда видно, что функ- i=О ция а примитивно-рекурсивна. Если длина слова w равна п, то ос(п — — 1) < vs(ie) < а(п), поэтому 1п(х) = аг<ж[^(х -=- а(г)) = 0]. Из этого представления видно, что функция In примитивно рекурсивна. ■ Пример 11.26. Пусть х = vs(ic), где w = als ... апаin. Для каждого п = 0,1, ..., s положим Ь(т, п) = in. Таким образом, Ь(т, п) это номер п-й справа буквы слова гг, если крайнюю правую букву считать 0-й. Для определенности положим Ь(х,п) = 0, если х — 0 или п > s. (11.10) Докажем, что b — ПРФ. Пусть х ф 0. Обратившись к описанию функции vs, можно доказать, что Ь(х, 0) = sg(rest(x,p)) • rest(x,p) + sg(rest(x,p)) • р. (11.11) Выражение справа от знака = в (11.11) задает ПРФ. Пусть известно значение b(х, гг). Найдем b(x, п + 1), если п + 1 < s. Обратившись к описанию нумерующей функции vs, можно доказать, что = sg rest nn+l b(x, n + 1) b(x, n) rest r>n+1 b(x, n) ,p + Tsg rest X Ь(х, п) рп+1 . Р . -P* (11.12) Из (11.11) и (11.12) следует, что функция b примитивно-рекурсивна. Наконец, если умножить Ь(х, п) на sg(x) • sg(n4- s), то и условие (11.10) окажется выполненным. ■ Пример 11.27. Посредством lt(x) обозначим номер последней буквы непустого слова с номером х. Для определенности положим lt(0) = 0. Функция It примитивно-рекурсивна, так как lt(x) = b(x,0), где b — функция из примера 11.26. ■ Пример 11.28. Пусть непустое слово w с номером х имеет вид w\as. Посредством h(x) обозначим номер слова w\. Для определенности положим h(0) = 0. Как видно из определения функции vs, vs(wi) = р . Таким образом, h(x) = lt(x) Р . Из этого пред¬ ставления видно, что функция h примитивно-рекурсивна. 275 
Пример 11.29. Посредством \h(x) обозначим номер первой буквы непустого слова с номером х. Для определенности положим lh(0) = 0. Функция lh примитивно-рекурсивна, так как lh(x) = b(x, In х ч- 1). ■ Пример 11.30. Пусть непустое слово w с номером х имеет вид asW\. Посредством t(x) обозначим номер слова w\. Для определенности положим t(0) = 0. Обратившись к описанию функции vs, заме- 1п х 2 чаем, что t(x) = Ь(х, г) • рг. Из этого представления видно, что г—О функция t примитивно-рекурсивна. ■ Пример 11.31. Для любого г Е {1,2, ... , р} посредством £{(х) обозначим число вхождений буквы аг в слово с номером х. Очевидно, что In жЗТ Zi(x) = sg|Ь(л^, j) — г|. Из этого представления видно, что каждая з=о из функций £i примитивно рекурсивна. Операция минимизации. Определение 11.6. Говорят, что n-местная (п > 1) частичная функция д получается с помощью операции минимизации (или [i-onepamopa) из (п + 1)-местной частичной функции /, если для любых яд, ..., я;п, у Е N значение д(хi, ... , хп) определено и равно у тогда и только тогда, когда для любого z < у значение f(x 1, ...,xn,z) определено и не равно 0, а /(яд, ...,хп,у) = 0. В этом случае пишут д(хг, ... ,хп) ~ \iy[f(жь ..., хп, у) = 0]. Если функция д получается операцией минимизации из вычислимой функции /, то д также вычислима. Алгоритм вычисления функции д можно представить в виде такой программы: i 0; while /(яд, ... ,хп,г) > Odoz := г + 1; returnz. Заметим, что функция у, полученная минимизацией из всюду определенной функции /, может оказаться не тотальной. Частично-рекурсивные функции. Определение 11.7. Частичная функция типа Nn —» N называется частично-рекурсивной, если она может быть получена из базисных функций с помощью конечного числа применений операций подстановки, рекурсии и минимизации. Функция / является частично-рекурсивной, если существует конечная последовательность функций, заканчивающаяся 276 
функцией /, в которой каждая функция либо является базисной, либо получается из предыдущих функций с помощью операций подстановки, рекурсии или минимизации. Тотальные частичнорекурсивные функции называются общерекурсивными. Из определения частично-рекурсивной функции (ЧРФ) немедленно следует, что всякая ПРФ является частично-рекурсивной и даже общерекурсивной. Пример 11.32. Нигде не определенная n-местная функция С частично-рекурсивна. Это следует, например, из условного равенства С(^ь • • •, хп) ~ [iy[s(xi) + у = 0]. ■ Пример 11.33. Частичная функция /(ж, г/) ~ ж — у, определенная только в случае, когда ж > у, частично-рекурсивна, так как, очевидно, /(ж, у) ~ y.z[\x — (z + у)\ = 0]. ■ X Пример 11.34• Частичная функция f(x,y) ~ —, определен- У ная только в случае, когда у делит ж, частично-рекурсивна, так как, очевидно, f(x,y) ~ [iz[\x — z • у\ = 0]. ■ Пример 11.35. Частичная функция /(ж, г/) ~ ^/ж, определенная только в случае, когда zy = ж для некоторого г, частичнорекурсивна, так как, очевидно, /(ж, г/) ~ \±z[\x — zy \ — 0]. ■ Теорема 11.1. Класс всех ЧРФ совпадает с классом числовых функций, вычислимых на машинах Тьюринга. Эта теорема содержит два утверждения: 1) всякая ЧРФ вычислима на машине Тьюринга; 2) всякая функция, вычислимая на машине Тьюринга, частично-рекурсивна. Утверждение 1) следует из тезиса Тьюринга и вычислимости всех ЧРФ. Однако оно может быть непосредственно доказано. Теорема 11.2. Любая ЧРФ вычислима на машине Тьюринга. Доказательство. Эта теорема доказывается рутинным способом. А именно, строятся машины Тьюринга, вычисляющие базисные функции, а также описываются общие способы, позволяющие а) из машины Тьюринга F, вычисляющей ^-местную функцию /, и машин Gi, ...,6^, вычисляющих п-местные функции щ, ..., gr*., получить машину, вычисляющую п-местную функцию, полученную подстановкой щ, ..., в /; б) из машины Тьюринга F, вычисляющей n-местную функцию /, и маши- 277 
ны Тьюринга G, вычисляющей (п + 2)-местную функцию д, получить машину, вычисляющую (п+ 1)-местную функцию, полученную рекурсией из / и д\ в) из машины Тьюринга F, вычисляющей (п + 1)-местную функцию /, получить машину, вычисляющую n-местную функцию, полученную минимизацией из /. Мы этого делать не будем, а сосредоточимся на доказательстве утверждения 2). ■ Теорема 11.3. Все вычислимые по Тьюрингу числовые функции являются частично-рекурсивными. Из этой теоремы и тезиса Тьюринга следует, что всякая числовая функция, вычислимая в интуитивном смысле, частичнорекурсивна. Это утверждение называют тезисом Чёрча. Тезис Чёрча вытекает из тезиса Тьюринга и теоремы 11.3. Для доказательства этой теоремы нам придется разработать некоторую технику, позволяющую рассуждения о вычислениях на машине Тьюринга заменить на рассуждения о натуральных числах. Арифметизация машин Тьюринга. Пусть М — машина Тьюринга с множеством внутренних состояний Q = {до, • • • , Ят} и ленточным алфавитом £ = {ai,a2, ... ,ap}, причем а\ = #, аг = 1, аз = □. Наличие в алфавите £ символов 1 и □ позволяет использовать унарную запись натуральных чисел и представлять на ленте исходное данное (ад, ад, • ••,хп) для вычисления значения п-местной числовой функции в виде слова адПядП • • • Пхп. (11.13) Пусть в некоторый момент внутреннее состояние машины М есть Як G Q, а на ленте написано слово w Е £*, так что все остальные ячейки ленты «пустые» (т. е. в них содержится символ #), причем обозревается ячейка, в которой записан символ a/ Е £. Имея это в виду, представим слово w в виде AaiB, выделив вхождение обозреваемого символа. Тогда описанная ситуация полностью описывается словом Aq^aiB. которое называется конфигурацией. Вообще, конфигурацией называется всякое слово вида AqkaiB, где 0</с<т,0</<п,А и В — слова (возможно, пустые) в алфавите £. Если m = AqkaiB — конфигурация, то полагаем v(m) = 2ve(j4) • 3fc • 5г • 7ve(b), (11.14) где vs — функция (11.9). Число v(m) будем называть номером конфигурации ш. Из определения функции ех, введенной в примере 11.21, и (11.14) следует, что если х — номер конфигурации AqkaiB, то ех(0,х) = vs(A), ех(1,х) = /с, ех(2,х) = Z, ех(3,х) = vs(ll). (11.15) 278 
Для любых натуральных х\, х2, ..., хп обозначим через 5n(xi, ..., хп) номер слова (11.13), сопоставляемый ему функцией v^: 8n(xi, ..., хп) = ... Пжп). Предложение 11.6. Для любого п > 1 функция Ьп примитивнорекурсивна. Доказательство. Индукция по п. Если п = 1, то 81(х) = = ve(E^_1)- Как видно из определения v^, 81(0) = 0; 81 [х + 1) = 2 + X + Ъг(х) -р. Очевидно, что эти равенства задают рекурсивное определение функции 81. Докажем, что если Ьп примитивно рекурсивна, то и Ъп+1 примитивно рекурсивна. Нетрудно заметить, что §n+1(xi, ..., хп, xn+\) — — Ьп(х 1, ..., хп) • рХп+1 + 1. Мы видим, что функция 8n+1 представима примитивно-рекурсивным термом и потому примитивно рекурсивна. ■ Рассмотрим работу машины М в случае, когда исходным данным является слово (11.13). Тогда начальная конфигурация есть qi#x ... Птп. Посредством yn(xi,x2, ... ,хп) обозначим номер этой конфигурации в описанной выше нумерации всех конфигураций. Таким образом, yn(xi, х2, ..., хп) = v(gi#xiDx2D ... Пхп). Предложение 11.7. Для любого п > 1 функция уп примитивнорекурсивна. Доказательство. Заметим, что в силу определения нумерации v у’г(ж1,ж2, ...,х„) = v(qi#xi Пх2п • • • □£„) = 3 • 5 • 75"(ж1’" ’Хп). Так как в силу предложения 11.6 функция Ьп примитивно рекурсивна, то функция уп также примитивно рекурсивна. ■ Пусть V Е {TV, L,R}. Номером команды qiaj qtai V будем считать число Рс(г'j)'5a(V) ’ ГДе с — к^нторовская функция, нумерующая пары натуральных чисел, a s(V) есть: 0, если V = N; 1, если V = L; 2, если V = R. Номером машины М будем называть произведение номеров команд машины М. Пусть даны машина Тьюринга М и конфигурация m = AqiajB. Посредством m'M обозначим конфигурацию, которая получается из m по следующим правилам: 1) если г = 0, то т'м = ш; 2) если i ф 0 и в программе для М есть команда qiaj то т'м = AqkaiB; 3) если i ф 0 и в программе для М есть команда qiaj i-» qkCiiR, а слово В пусто, то = Aaiqk#‘, 4) если г ф 0 и в программе для М есть команда qiaj д^а/Д, а слово В не пусто, то m'M = Aaiq^B; 5) если i / 0 и в программе для М есть команда qiaj i—>• , а слово Л пусто, то = qki^aiB; 279 
6) если i ф 0 и в программе для М есть команда qtdj i-> qkaiL, а слово А не пусто и имеет вид А = Aias, то = AiqkasdiB. Смысл определения конфигурации тД таков. Пусть на ленте написано слово AdjB, машина находится в состоянии qi и обозревает указанный символ dj. Эта ситуация записывается в виде конфигурации т. Тогда т'м — это конфигурация, полученная в результате выполнения одной команды машины М. Нашей ближайшей задачей будет доказательство того факта, что по номеру t машины М и номеру х конфигурации m номер конфигурации тД может быть вычислен с помощью ПРФ. Но для этого нам понадобится ряд вспомогательных утверждений. Пусть дана конфигурация m = AqidjB. Допустим, что программа машины М содержит команду qidj н-> qkd(S/. Очевидно, что конфигурация ш^, полученная в результате выполнения этой команды, полностью определяется ее правой частью и словами А и В. Докажем, что номер конфигурации т'м может быть вычислен с помощью ПРФ, коль скоро даны номера слов А и В, а также числа /с, I и s = s(V). Предложение 11.8. Существует Ъ-местная ПРФ р, удовлетворяющая условию: для любой конфигурации m = AqidjB, если числа и и v суть номера слов А и В соответственно, т. е. и = vs(A) и v = \>j:(B), программа для машины М содержит команду qidj \ s = s(V), то р(s, /с, /, гл, г?) — v(m^f). Доказательство. Анализируя нумерацию конфигураций, можно положить p(s, k,l,u,v) = sg s • p(0, k,l,u,v) + sg|s — 1| • p(l, k, /, u, v) + + sg \s — 21 ■ p(2, кф,и,у), где p(0, k, /, щ v) = 2U • 3k • Ъ1 • 7V\ p(l, fc, /, u, r) = • 3fc • x x jv+i p1"^). p(2) k,l,u,v) = 2u p+l ■ 3fc • 5^+ss«’-ih(«) . 7t(«) _ a Пусть даны конфигурация m = AqidjB и номер t машины M. Таким образом, теперь, в отличие от предложения 11.8, нам дана левая часть выполняемой команды, но зато известен номер машины М. Очевидно, что в этом случае однозначно определена конфигурация т'м. Докажем, что номер конфигурации может быть вычислен с помощью ПРФ, коль скоро даны числа г, j, t и номера слов А и В. Предложение 11.9. Существует Ъ-местная ПРФ а, удовлетворяющая условию: какова бы ни была конфигурация m = AqidjB, если t — номер машины М, и = vs(A), v = vs(-B), то o(t, i,j, и, v) = v(m/M). Доказательство. Заметим, что ех(с(г, j),t) есть номер команды вида qidj к-» g^a/V, причем к = ех(0, ех(с(г, j) , £)); I = ех(1, ех(с(г, j),£)); s(V) = ех(2, ех(с(г, j) , £)). Таким образом, в силу предложения 11.8 можно положить o(t, ОД, и, v) = 2й ■ 3° • 5J • 7V и a(£, г, j, u, v) = = p(ex(2, ех(с(г, j), 0), ex(0, ех(с(г, j), *)), ex(l, ех(с(г, j), £)), u, г;), если г > > 0. ■ 280 
Наконец можно доказать, что номер конфигурации может быть вычислен с помощью ПРФ, коль скоро даны номера конфигурации m и машины М. Предложение 11.10. Существует такая двухместная ПРФ т, что если t — номер машины М, а х — номер конфигурации т, то x(t,x) = Доказательство. Заметим, что m = AqzajB, где vs(A) = ех(0, х), г = ех(1,х), j = ех(2,х), \>^{В) = ех(3,х). Таким образом, на основании предложения 11.9, можно положить т(t,x) = а(£, ех(1, х), ех(2, х), ех(0, х), ех(3, х)). ■ Положим — т, т™/1 = (т^)'. Будем говорить, что машина М перерабатывает конфигурацию m в конфигурацию mi, если mi = для некоторого п. Докажем, что для любого п номер конфигурации т^ может быть вычислен с помощью ПРФ но числу п и номерам конфигурации m и машины М. Предложение 11.11. Существует такая трехместная ПРФ w, что если t — номер машины М, х — номер конфигурации т, то w{t,x,y) = v(m^). Доказательство. Полагаем гс(£,х, 0) = х, ге(£,х,?/ + 1) = = т(£, w(tj х, у)). Теперь утверждение вытекает из свойств функции т, установленных в предложении 11.10. ■ Предложение 11.12. Пусть машина Тьюринга М чисто вычисляет п-местную частичную функцию /, и to — номер машины М. Тогда, каковы бы ни были натуральные числа xi,X2, ... ,хп, значение /(х 1, Х2, ..., хп) определено, если и только если существует такое у, что в разложении на простые множители числа гс(£о, yn(xi, х2, • • •, хп),у), где уп — функция из предложения 11.7, показатель при числе 3 равен 0, иными словамщ ех(1, w(to, yn(xi, х2> • • •, хп), г/)) = 0. Доказательство. Так как М чисто вычисляет /, то /(хi, Х2, ..., хп) определено тогда и только тогда, когда, начав работу в конфигурации m = qi#xiOx2^ ... Пхп, машина М за конечное число шагов у перейдет в заключительное состояние qo, причем заключительная конфигурация имеет вид # ... #<7o#/Oi, х2, • • •, хп)# ... #. В силу предложения 11.7 yn(xi, • • • 5 хп) есть номер конфигурации т. В силу предложения 11.11, значение ги(£о? yn(xi, • ••,хп),г/) есть номер заключительной конфигурации. Тогда в силу (11.15) ех(1, wit®, yn(xi, Х2, ..., хп),у)) = о. ■ Предложение 11.13. Пусть машина Тьюринга М чисто вычисляет п-местную частичную функцию /, и to - номер машины М. Тогда, каковы бы ни были натуральные числа xi, Х2, ..., хп? f(xi,X2, ...,хп) ~ е2(ех(3, w(i0.у"(хьж2, /in+1(i0,a;i,X2, . •.,£„)))), ■ •> хп), (11.16) 281 
где hn+l(t0,xi, ... ,хп) ~ \j.y[ex(l,w(t0,Yn(xi, ■ ■ ■ ,хп),у)) = 0], е2 ~ функция из примера 11.31, указывающая число единиц в слове. Доказательство. Докажем, что для любых Х\,Х2, ..., хп имеет место условное равенство (11.16). Пусть значение f(pc i,X2, . ..,xn) определено. Это означает, что вычисление машины М на исходном данном х\Пх2^ . •. Пхп завершается за некоторое конечное число шагов, так что начальная конфигурация есть qi#xi Пж2П ... Пхп, а заключительная имеет вид # ... #до#/(хь ^2, ..., жп)# . •. #. Теперь заметим, что у71 (ад, • • • ^ хп) есть номер начальной конфигурации, а функция hn+l дает номер шага при работе машины М на исходном данном xiOx2^ ... Пхп, на котором машина перешла в заключительное состояние до- Таким образом, /гп+1(£о> ^4, • • • ?хп) есть в точности количество шагов в вычислении /(xi,X2, . ..,хп) на машине М, a w(to, yn(xi,X2, ..., хп)? /in+1(^o, xi, X2, ..., xn)) есть номер заключительной конфигурации. В силу (11.15) ех(3, w(to, yn(xi, хг, . ..,хп), ftn+1(^o,xi,x2, • •. ,хп))) есть номер слова f(xi, ад, ..., хп)# • • • #, а /(хь Х21 ..., хп) есть в точности количество единиц в этом слове, т. е. равно числу е2(ех(3,гу(^о, yn{xi,x2, ... ,xn),hn+1(t0,xi,x2, ...,xn)))). Таким образом, если левая часть условного равенства (11.16) определена, то определена и правая его часть, причем значения обеих частей совпадают. Если же f(xi,X2, ... ,хп) не определено, то вычисление М на исходном данном х\Пх2^ ... Пхп не завершается, так что при любом у конфигурация с номером w(to, yn(xi, ..., хп), у) не заключительная и ех(1, w(to, Yn(xi, ..., хп), г/)) = 0 не выполняется. Это означает, что выражение hn+1(to, ад, ад, . ..,хп) не определено, а вместе с ним не определена и правая часть условного равенства (11.16). ■ Поскольку правая часть в (11.16) задает ЧРФ, из предложения 11.13 немедленно следует, что всякая числовая функция, вычислимая на машине Тьюринга, является частично-рекурсивной. Тем самым теорема 11.3 доказана. ■ Нормальная форма Клини. Следующая теорема Клини о нормальной форме показывает, что всякая ЧРФ / может быть стандартным способом (а именно, всего одним применением оператора минимизации и одной подстановки) получена из двух ПРФ, из которых одна зависит от /, а другая фиксирована. В примерах 11.23 и 11.24 рассматривались двухместная ПРФ с, нумерующая пары натуральных чисел, а также «обратные» одноместные ПРФ I и г, так что 1(п) и г(п) суть соответственно левая и правая компоненты пары с номером п. В теореме Клини о нормальной форме в качестве «фиксированной» ПРФ используется функция I. 282 
Теорема 11.4. Всякая п-местная ЧРФ / представима в виде f(xi, ■ ■ ■ ,хп) ~ l([iz[F(xi, ...,xn,z) = 0]), (11-17) где F — некоторая (зависящая от f) ПРФ. Доказательство. В силу тезиса Тьюринга или теоремы 11.2 любая частично-рекурсивная функция вычислима на машине Тьюринга. Пусть t — номер некоторой машины Тьюринга М, чисто вычисляющей данную n-местную функцию /. Рассмотрим (п + 2)-местную функцию Sn?t, определенную следующим образом: ЗгДжьжг, • • • ,xn,y,z) = 0, если М переводит конфигурацию qi#x\Ux2^ ... Пхп в конфигурацию # • • • #9оФуФ • • • # за <2 шагов, ^ 1 в противном случае. Лемма 11.1. Функция Snj примитивно-рекурсивна. Доказательство. В силу предложения 11.11 для каждого i значение w(t, yn(xi, ..., хП1 г)) — это номер конфигурации, в которую М перерабатывает начальную конфигурацию за г шагов. Значит, Snj(xi, ... , хП} у, z) = 0, если и только если наименьшее г, для которого w(t, yn(xi, ..., г)) есть номер конфигурации вида # ... #(/оФуФ •.. #, не превосходит г. В силу (11.15) условие, что w(t, yn(xi, ..., хп, г)) есть номер конфигурации вида # ... #</оФуФ • • • #, означает, что ех(1, гг(£, yn(xi, ..., жп, г)) = 0 и в конфигурации с номером гс(£, yn(xi, ..., хп, г) имеется ровно у единиц, т. е. e2(ex(3,ic(£,yn(xi, ... ,жп,г)) = у. Таким образом, 5n^(xi, ..., жп, ?/, г) = 0, если и только если рг<г[ех(1, w(t, rn(xi, ■■■,хп, г))+ + |e2(ex(3,w(i,Yn(xb ...,хп,г)) - у\ = 0] < 2, иными словами, если число рг<г[ех(1,г<Д, уп(жь ...,хп,г))+ +|е2(ех(г/Д, Yn(xi, ■ ■ ■, хп, г), 3) - у\ = 0] z равно нулю. Таким образом, можно положить 283 
Sn,t(xЬ ■■■,xn,y,z) = [ai<z[ex(l,w(i,Yn(zb ...,xn,i))+ + \z2(ex(w(t,Yn{xi, .. 3) -y\ = 0]-i-z. (11.18) Очевидно, что функция SVa примитивно-рекурсивна. ■ Положим Sn(t,x 1, ...,xn,y,z) = Sn}t(x 1, ...,xn,y,z). Таким образом, (n + 3)-местная функция Sn задается выражением, стоящим в правой части равенства (11.18), поэтому очевидно, что функция Sn примитивно-рекурсивна. Используя упомянутые выше функции I и г, можно наряду с функцией Sn ввести {п+ +2)-местную функцию Tn(t,x i, ...,xn,z) = Sn(t,x ь ... ,xn,\(z), r(z)). Очевидно, что функция Tn примитивно рекурсивна. Теперь, если функция / вычисляется машиной Тьюринга М, а t — номер этой машины, то в силу свойств функции Snj имеем: Tn(t,x 1, ..., xn, z) — 0, если и только если вычисление значения f(x 1, . ..,хп) на машине М завершается за < r(z) шагов с результатом I(z). В противном случае Tn(£,xi, . ..,хп,;г) = 1. При фиксированном t положим F(xi, ..., xn, z) = Tn(£, xi, ... , xn, z). Докажем, что функция F удовлетворяет условию (11.17). Пусть значение /(ад, ..., хп) определено и равно у. Тогда его вычисление с помощью машины М завершается за конечное число к шагов. Очевидно, что с(у, к) есть как раз то наименьшее г, для которого Tn(t, ад, ... , xn, z) — 0, т. е. F(aд, ... , xn, z) — 0, и при этом у — \([iz[F(xi, ..., xn, z) — 0]). Обратно, пусть значение \(\iz[F(xi, ...,xn,z) — 0]) определено и равно у. Это означает, что для некоторого г F(aд, ... , xn,z) = 0, т. е. Tn(t,x 1, ...,xn,z) — 0, причем г = с (у, к) для некоторого к. Это означает, что вычисление /(ад, ..., хп) на машине М завершается за к шагов с результатом у, так что /(ад, .•.,Хп)=у. ■ Универсальная частично-рекурсивная функция. Пусть Т — некоторое семейство n-местных частичных числовых функций. Тогда (п+ 1)-местная функция и называется универсальной функцией для J7, если выполнены следующие условия: 1) для любого г функция /(ад, ..., хп) ~ гл(г, xi, ... , хп) принадлежит семейству J7; 2) для любой функции / Е Т найдется г такое, что имеет место /(ад, ..., хп) ~ гх(г, xi, ..., хп) для всех xi, ..., хп. Положим ф(х 1, ... , хп) ~ гх(г, xi, ..., хп). Таким образом, гл - универсальная функция для J7, если Т — {/о, /ь • • •}• 284 
Теорема 11.5. Для любого натурального п > 1 существует (n + I)-местная ЧРФ ип. универсальная для семейства всех п-местных ЧРФ. Доказательство. Положим Un{t, XI, ... ,хп) ~ 1(цг[Гп(*,Ж1, ...,xn,z) = 0]). Очевидно, что так определенная функция ип частично-рекурсивна. Заметим, что при любом фиксированном t выражение для un(t,x 1, . ..,жп) задает n-местную ЧРФ, так что для функции ип выполнено условие 1) из определения универсальной функции. С другой стороны, если / есть n-местная ЧРФ, то в силу теоремы 11.2 она вычислима на некоторой машине Тьюринга. Пусть t — номер какой-нибудь машины, вычисляющей функцию /. Тогда, как видно из доказательства теоремы 11.4, имеет место условное равенство /(жi, ... ,жп) ~ un(t,xi, ... ,жп), так что условие 2) из определения универсальной функции тоже выполнено. ■ 11.2. Нормальные алгорифмы Наряду с машинами Тьюринга нормальные алгорифмы являются одним из уточнений общего интуитивного представления об алгоритме, работающем со словами в некотором алфавите. Определение 11.8. Алгоритмом в алфавите Е называется всякий алгоритм, возможными исходными данными и результатами работы которого являются слова в алфавите Е. Исполнение каждого алгоритма можно разбить на простейшие шаги. В нормальных алгорифмах, предложенных А. А. Марковым, шаг состоит в подстановке одного слова вместо другого. Определение 11.9. Пусть алфавит Е не содержит символы —> и •. Формулой подстановки в алфавите Е называется всякое слово вида U —> V или [/—>•!/, где U и V — слова в алфавите Е. Формула подстановки U —» V называется простой. Формула подстановки U —> -V называется заключительной. Слово U называется левой частью формулы подстановки, а V — правой ее частью. Определение 11.10. Схемой нормального алгорифма в алфавите Е называется всякий упорядоченный конечный список формул подстановки в алфавите Е. 285 
Именно схема определяет алгоритмический процесс, поэтому нормальный алгорифм обычно отождествляется с его схемой. Всякий нормальный алгорифм 21 в алфавите £ порождает детерминированный процесс переработки слов в алфавите £. Опишем один шаг этого процесса в применении к слову Р Е £*. Если в схеме алгорифма 21 нет формул, левые части которых входят в Р, то выполнение шага работы алгоритма завершается с результатом Р. Этот факт обозначается так: 21 : Р □. Если же в схеме алгорифма 21 имеются формулы с левой частью [/, входящей в Р, т. е. Р = XUY для некоторых слов X и У, то в схеме выбирается первая из таких формул, и результатом выполнения шага работы алгоритма считается слово Q, полученное подстановкой правой части V выбранной формулы вместо первого вхождения U в Р, т. е. вхождения X * U * Y с самым коротким левым крылом X. Таким образом, Q = XVY. Если использованная на этом шаге формула подстановки была заключительной, то говорят, что алгорифм 21 заключительно переводит Р в Q, и пишут 21 : Р h Q. Если же использованная формула подстановки была простая, то говорят, что алгорифм 21 просто переводит Р в Q, и пишут 21 : Р Б Q. Определение 11.11. Будем писать 21 : Р |= Q, если существует такая конечная последовательность Pq, Ръ • • •, Р& слов в алфавите £, что Р = Ро, Q = Рь 21 : Р^ Б Pj+i для j = 0,1, ..., к — 2 и либо 21 : P/c_i Б Р&, либо 21 : Rk-i Б Rk (в последнем случае вместо 21 : Р |= Q будем писать 21 : Р |= Q). Если 21 : Р |= Q и при этом 21 : Q □, то вместо 21 : Р |= Q будем писать 21 : Р |= Q □. Определение 11.12. Будем говорить, что нормальный алгорифм 21 перерабатывает слово Р в слово Q и писать 2l(P) = Q, если 21: Р |= Q или же 21 : Р |= Q □. В этом случае Q называется результатом применения 21 к Р. Если существует результат применения 21 к Р, говорят, что 21 применим к Р; в противном случае говорят, что 21 неприменим к Р. Когда нормальный алгорифм 21 применйм к слову Р, последовательность слов Ро, Pi, ..., Rk из определения 11.11 для наглядности удобно изображать так: 21 : Рп Б Pi Б • • • Б P/,_i Б -Р/, или 21 : Ро Б Pi h • • • Б Rk-i Б Р* □ . Пример 11.36. Пусть £ есть алфавит {а, 6}, а нормальный алгорифм 21 задается следующей схемой: 286 
Рассмотрим процесс применения 21 к пустому слову Л. Так как левые части обеих формул подстановки в схеме 21 не входят в пустое слово, то 21 : Л □. Следовательно, 21(A) = Л. Применим 21 к слову ababa. Левые части обеих формул подстановки имеют вхождения в это слово. Выбирает первую из них. Левая часть этой формулы — буква b — имеет два вхождения в ababa: а * b * aba и aba * b * а. Левое крыло первого из них короче, чем второго. Поэтому подставляем правую часть первой формулы, т. е. пустое слово, вместо первого вхождения b в ababa и получаем ааЪа. Так как примененная подстановка заключительная, то 21 : ababa Ь •aaba. Это означает, что 21 : ababa -aa&a, и 21 (ababa) = ааба, т. е. слово ааЪа есть результат применения нормального алгорифма 21 к слову ababa. Вообще, 21 перерабатывает всякое слово Р, содержащее хотя бы одно вхождение буквы Ь, в слово, получающееся вычеркиванием в Р первого вхождения буквы Ь. Применим алгорифм 21 к слову ааа. Левая часть первой формулы подстановки не входит в это слово, а левая часть второй — входит. Очевидно, имеем 21 : ааа В ааа. Таким образом, за один шаг работы алгорифм 21 преобразовал слово ааа в это же слово, причем выполнение алгорифма не завершилось, поскольку использованная подстановка простая, так что процесс преобразования данного слова бесконечен. Это означает, что алгорифм 21 неприменйм к слову ааа. Вообще, этот алгорифм неприменим к любому непустому слову, не содержащему вхождений буквы Ъ. ■ Пример 11.37. Пусть алфавит £ состоит из букв ао, ад, ..., ап. Рассмотрим следующую схему нормального алгорифма 21: 1ао а [ —у ап —> Эту схему можно сокращенно изобразить так: Очевидно, что эта схема задает алгорифм, перерабатывающий всякое слово в пустое слово. Например, 287 
21 : <21(22(23 1“ <22<2з h аз h Л □ . Определение 11.13. Нормальным алгорифмом над алфавитом £ называется всякий нормальный алгорифм в каком-либо расширении алфавита £. Имеются веские основания считать, что уточнение общего представления об алгоритме, работающем со словами в некотором алфавите, с помощью понятия нормального алгорифма является адекватным в том смысле, что для всякого алгоритма 21, работающего со словами в алфавите £, можно построить нормальный алгорифм 25 над £, перерабатывающий каждое слово Р Е £* в тот же результат, что и алгоритм 21. Это соглашение известно в теории алгоритмов как принцип нормализации. Уточнение понятия алгоритма на основе понятия нормального алгорифма оказалось эквивалентным другим известным уточнениям. Нормальные алгорифмы являются удобным рабочим аппаратом в исследованиях, требующих точного понятия алгоритма, когда объекты рассмотрения допускают удобное представление в виде слов в подходящем алфавите. С помощью нормальных алгорифмов можно вычислять числовые функции. Будем использовать унарную запись натуральных чисел, т. е. изображать их словами в алфавите {1}: 0 — пустое слово, 1 — слово 1,2- слово 11 и т. д. Пусть п обозначает запись числа п. Определение 11.14. Говорят, что нормальный алгорифм 21 над алфавитом {1,*} вычисляет частичную функцию /: -е N, если для любых натуральных чисел пх, ..., для которых определено значение /(пх, ..., п^), имеет место 21(пх * • • • * Uk) — п, где п — /(пх, ..., 72fc); если же значение /(пх, ..., п^) не определено, то алгорифм 21 неприменим к слову п\ * • • • * п^. Пример 11.38. Нормальный алгорифм 21 со схемой {* —» • вычисляет функцию f(x,y) — х Ру. Например, 21 : 11 * 111 Ь -11111. ■ Определение 11.15. Функция / : Nk —» N вычислима по Маркову, если существует нормальный алгорифм, вычисляющий /. Теорема 11.6. Всякая ЧРФ вычислима по Маркову. Доказательство. Будем исходить из того факта, что по теореме 11.2 всякая ЧРФ вычислима по Тьюрингу, причем для 288 
каждой такой функции / может быть построена машина Тьюринга М, которая чисто вычисляет /. Пусть до5 дъ • • • :Яп~~ внутренние состояния машины М, а ее ленточный алфавит £ состоит из символов ao,ai, ... , am, причем ao есть #, ai есть 1, a2 есть символ □ , который мы заменим на *. На основе программы Р машины М составим схему нормального алгорифма 21, вычисляющего /: rqidj —» qras для каждой команды qidj i—> qrasN \qidj —» grc;a5 для каждой команды qidj qrasL и каждого символа 5 Е £ > qri£as ^ qittjZ, ^ dsqrE, для каждой команды i—у qrasL для каждой команды qidj i—> qrasR и каждого символа с; Е £ дщ^ —» asqr# для каждой команды g*aj ь-» qrasL gi# Чтобы убедиться, что алгорифм 21 вычисляет /, проследим за его работой в применении к исходному слову вида п\ * • • • *П£. Поскольку символы ф и qi (г = 0, ..., п) не входят в это слово, то на первом шаге выполняется самая последняя подстановка, что дает начальную конфигурацию gi#ni * • • • * для машины М. Затем выполняются подстановки, имитирующие команды из программы Р. Очевидно, что выполнение каждой такой подстановки к данной конфигурации дает следующую конфигурацию, определяемую работой машины М. Если значение /(ni, ..., rife) не определено, работа машины М, а значит и алгорифма 21, никогда не завершится. Если же /(пх, ..., пф) определено и равно п, машина М завершает работу в конфигурации Ф ... фqoфnф . • • и именно это слово появится как промежуточный результат при работе алгорифма 21. Поскольку символ до не встречается в левой части подстановок, имитирующих команды из Р, следующей выполняется третья от конца подстановка, пока из слова не исчезнут все вхождения символа #, так что получится слово q^n. В этой ситуации выполняется предпоследняя подстановка, в результате чего получается слово п. Так как эта подстановка заключительная, работа алгорифма 21 завершается с результатом п. ■ 
Глава 12 НЕРАЗРЕШИМЫЕ АЛГОРИТМИЧЕСКИЕ ПРОБЛЕМЫ В данной главе устанавливается неразрешимость некоторых алгоритмических проблем, естественно возникающих в теории алгоритмов. 12.1. Нумерации вычислимых числовых функций В теории вычислимых функций натурального аргумента нумерации играют ту же роль, что и кодирование программ машин Тьюринга словами в алфавите программ (см. подразд. 10.5) при изучении вычислимых словарных функций. Занумеровать все вычислимые функции типа Nw —» N означает определить последовательность функций Фот)(ЖЪ ...,Жт),ф(1т)(Ж1, ...,Хт), • • • , Ф2т) Щ в которой присутствуют все вычислимые функции указанного типа и только они. Обычно речь идет о построении целого семейства нумераций одновременно для всех типов Nw —> N, т = 1,2, ... Верхний индекс т в обозначении ф^ означает количество аргументов функции и позволяет использовать это обозначение без явного указания аргументов. Условимся опускать верхний индекс в случае т = 1, т. е. ф* будет всегда обозна- (1) чать ф) Напомним, что Сот(NW,N) обозначает множество всех вычислимых функций типа Nw —» N. Это множество счетно, поэтому существует много различных его нумераций, однако не все они подходят для наших целей. Основное назначение номеров вычислимых функций — хранение в доступном виде информации о вычисляющих эти функции алгоритмах. Общий метод построения «хороших» в этом смысле нумераций следующий: 290 
выбирается некоторый универсальный язык программирования с несложным синтаксисом, и некоторым естественным образом нумеруются программы этого языка; номером функции объявляется номер вычисляющей ее программы. Остановимся на формализации основных требований, предъявляемых к «хорошим» нумерациям. Вычислимость нумерации. Хранение информации в доступном виде означает возможность алгоритмического извлечения ее. В данном случае речь идет о возможности по номеру функции восстановить алгоритм ее вычисления в такой степени подробности, что его в самом деле можно применить к аргументам функции и правильно вычислить ее значение. Это значит, что должен существовать алгоритм, который по номеру функции и ее аргументам вычисляет соответствующее значение функции. Это требование формализуется следующим определением. Определение 12.1. Нумерация ф!,т|,<р<Г|.4т). ••• (12.1) множества Сот{Nm,N) называется вычислимой, если функция гД,жь ... ,хт) ~ cp|m)(xi, ... ,хт), называемая универсальной функцией этой нумерации, вычислима. Главные нумерации. Менее очевидное, но не менее важное требование к нумерации связано с возможностью «записывать» информацию в номера. Полезно иметь возможность алгоритмически подобрать соответствующий номер функции по достаточно произвольному описанию алгоритма ее вычисления, например, по номеру той же функции в другой аналогичной нумерации. Пусть имеется любая другая вычислимая нумерация ф£”),ф(Г’,‘|4’"). ... (12.2) множества Сот(Nw, N) и соответствующая ей вычислимая универсальная функция /(г,ж 1, ...,жт) ~ фг(т)(хь . ..,жт). Желательно иметь вычислимую функцию s, которая преобразует номера функций в нумерации (12.2) в номера тех же функций в 291 
нумерации (12.1). Такая функция должна быть тотальной и удовлетворять условию ф!со(хь - Д*’жЬ (12.3) Известные способы построения нумераций, обладающих этим свойством, не используют специфики функции /. Соответствующую вычислимую функцию s удается построить для любой вычислимой функции /. Мы приходим к следующему понятию. Определение 12.2. Вычислимая нумерация (12.1) называется главной, если для каждой функции / Е Сот(Nm+1,N) существует тотальная вычислимая функция s, для которой выполнено условие (12.3) при всех г, жi, ... , жт Е N. ■ Свойство параметризации. Это обобщение свойства плавности на тот случай, когда вычислимая функция / в (12.3) зависит не от одного параметра г, а от нескольких. Определение 12.3. Будем говорить, что вычислимая нумерация (12.1) множества Cora(Nw,N) обладает свойством параметризации, если для каждой функции / Е Сот(Nw+n,N) существует тотальная вычислимая функция s, для которой условие - /(*1. ■■■Зп,х 1, .. .,хт) (12.4) выполнено при всех zi, ...,гп,жi, ..., хт Е N. Свойство параметризации порождает единый общий метод построения вычислимых функций, реализующих различные операции над вычислимыми функциями на их номерах. Пример 12.1. Пусть вычислимая нумерация фо5фьф2?--* множества Com(N,N) обладает свойством параметризации. Рассмотрим операцию сложения, которая преобразует функции д(х) и h(x) в их сумму д(х) + h(x). Как определить вычислимую функцию, вычисляющую номер суммы функций по номерам слагаемых? Для этого следует: 1) выбрать функцию /(гх,г2,ж) ~ фга(ж) + q>i2(x)] 2) установить ее вычислимость: /(гьг2,ж) ~ г/(гх,ж) + гфг2,ж), где и — вычислимая универсальная функция; 3) воспользоваться свойством параметризации, которое дает существование тотальной вычислимой функции s, удовлетворяющей следующему частному случаю условия (12.4): 292 
9«(г1,г2)(ж) - f(h,i2,x). Тогда s — искомая функция: qs{iui2){x) ^ - ?п(ж) +фг2(ж). ■ Вопрос. Что получится, если применить эту конструкцию к функции f(h,i2,x) ~ фц (фг2 (х))? Ответ. Получится тотальная вычислимая функция, выдающая номер композиции g(h(x)) по номерам функций д и h. Теорема 12.1. Каждая вычислимая главная нумерация множества Сот(NW,N) обладает свойством параметризации. Доказательство. Пусть даны главная вычислимая нумерация (12.1) множества Сот(Nm, N) и функция / G Сот{Nw+n, N). Требуется найти такую тотальную вычислимую функцию s, для которой выполняется условие (12.4). Рассмотрим определенную в подразд. 8.2 n-местную вычислимую функцию сп, которая взаимно-однозначно отображает множество Nn на N. Ввиду ее тотальности по числу i cn(zi, ..., in) (12.5) можно алгоритмически восстановить числа zi, ..., гп (например, с помощью алгоритма, который перебирает все возможные значения аргументов). Определим вычислимую функцию g G G Сот{Nn, N) так, чтобы при всех Д, ...,гп,жi, ... , хт выполнялось условное равенство д(сп(ч, ...,in),x 1, ~ Ж1 , ... , хт). Для нахождения значения д(г,жх, . ..,жт) достаточно по г восстановить набор гх, ...,гп, для которого справедливо равенство (12.5), и вычислить /(гх, ..., гп, жх, ..., хт). Ввиду свойства главности существует тотальная вычислимая функция /г, кото- рая удовлетворяет условию ср^Дь . ..,жт) ~ 5(г,жь ...,хт) при всех г,жх, ... , жт. Подставим (12.5) в это равенство и учтем определение д: - /(*1, ...,хт). Положим Дгх, ...,гп) = /z(cn(ix, ...,гп)). Определенная таким образом функция s вычислима и тотальна, так как обе функции h и сп обладают этими свойствами, и удовлетворяет условию (12.4). ■ 293 
12.2. Нумерации, порожденные машинами Тьюринга Опишем построение вычислимых нумераций для семейств вычислимых функций Сот(Nm, N), т — 1,2, ... , порожденных нумерацией кодов программ одноленточных машин Тьюринга с фиксированным ленточным алфавитом Е. Мы предполагаем выполненными введенные в подразд. 10.5 соглашения о выборе алфавитов и способе представления исходных данных. В частности, натуральные числа записываются на ленту машины Тьюринга в унарной записи, а для записи конечных наборов натуральных чисел используется разделитель □: xi,X2,...,xm сд х — >ТМП.ТМ>П ... □ >Т^Л. Х\ Х2 Хщ Отметим, что длина унарной записи числа х совпадает с самим х. Для каждой машины М с ленточным алфавитом Е определен ее код Code(M) G Е*рог, причем множество всех кодов разрешимо, а следовательно, и перечислимо. Рассмотрим вычислимую последовательность слов Po,Pi, • ••, состоящую из всех кодов всех машин с ленточным алфавитом Е. (Эта последовательность получается из перечисления всех слов в алфавите Епрог вычеркиванием слов, не являющихся кодами программ.) Возьмем универсальную машину Тьюринга U для алфавита Е. Зададим функцию и : Nm+1 —» N следующим алгоритмом. Исходные данные: г, жi, ..., хш G N. 1. Вычислить pi и х 1...1 □ 1...1 □ ... □ 1...1. Х\ Х2 Хщ 2. Организовать вычисление U(pi^x). 3. Когда (если) вычисление закончится, выделить на ленте то максимальное слово в алфавите Е \ {#}, на которое указывает головка: w := U(pi^x ) | . Положить гх(г,хi, ..., жт) = |гс|. Положим ф|т)(ж1, • • • ,хт) ~ и(г,х 1, .. .,хт). (12.6) Лемма 12.1. Последовательность ср^т\ cpfG ... — вы- числимая нумерация множества Сот(NW,N). Доказательство. Эта последовательность состоит из функций, принадлежащих множеству Com(Nw,N). Надо проверить, что в ней встречаются все функции из этого множества. 294 
По тезису Тьюринга семейство Сот(Nm,N) совпадает с множеством тех функций ср : Nm —» N, которые вычислимы по Тьюрингу. Если ф Е Сот(NW,N), то существует машина Тьюринга М с ленточным алфавитом £, которая ее чисто вычисляет. Для всех х\, ..., хп Е N выполнено cp(xi, ... ,хп) ~ | М(х) | | , так как кодировка результата вычисления унарная. Найдем г из условия рг = Code(M). Так как М работает чисто, то в результате вычисления М(х) мусора не появится и М(х) {1} ;М(ж) tU(Code(M)- u(Piax)\su#}- Отсюда u(i, х\, ... , xn) ~ £/(р*Пх)| г ^ S\{#} - фОъ • • • ,яп). Та¬ ким образом, функция ф совпадает с членом последовательности ф|т^. Тем самым установлено, что указанная последовательность функций является нумерацией множества Сот(NW,N). По построению вычислимая функция и является универсаль- « (т) нои для нумерации ф^ , что означает вычислимость этой нумерации. ■ Вопрос. Зачем нужно, чтобы машина М вычисляла функцию ф чисто? Ответ. Иначе нарушится условное равенство М(х) I ~ '{1} ~М(х) I v yls\{#} Теорема 12.2. Построенная по формуле (12.6) вычислимая нумерация множества Сот(NW,N), основанная на нумерации кодов программ машин Тьюринга, является главной. Доказательство. Эта теорема является аналогом теоремы о компиляции (см. теорему 10.6) и легко из нее следует. Пусть дана вычислимая функция / Е Сот(Nm+1,N). Надо построить тотальную вычислимую функцию s так, чтобы выполнялось условие (12.3). Пусть г означает унарную запись натурального числа Дозапись набора натуральных числе xi, ..., xm: х =1^П1^ЛП...П . Xi Х2 Хт Рассмотрим алгоритм ZY, который преобразует пары слов вида (г, х) в унарные записи чисел /(г, xi, ..., xm), если они определены. К остальным парам слов в алфавите {1, □} он неприменим. 295 
Этот алгоритм является универсальным для некоторого специфического «игрушечного» языка программирования, к которому все же применима теорема о компиляции. В роли программ здесь выступают слова вида г, в роли исходных данных — слова вида ж, а применение программы к исходным данным состоит в вычислении U(i,x). Согласно теореме о компиляции (см. теорему 10.6), существует тотальная вычислимая функция S : {1}* —» Е*рог, которая преобразует г в код некоторой машины Тьюринга М, Code(M) = = S(i), адекватно моделирующей работу «программы» г: U(S(i)Пу) I ~ U(i}v), хЕ{1,П}*. Здесь U — универсальная машина Тьюринга для машин с ленточным алфавитом £, а алфавит программ машин Тьюринга ^прог.э алфавит «игрушечных» программ {1} и алфавит исходных данных Sq = {1, □} включены в Е. Зададим вычислимую функцию s следующим алгоритмом. Вход: натуральное число г. 1. Восстановить слово г. 2. Вычислить р — S(i). Это слово — код некоторой машины. 3. Пользуясь перечислением po,pi, • • • кодов всех машин Тьюринга с ленточным алфавитом £, найти номер j слова р, т. е. определить j из условия pj = р = S(i). Положить s(i) = j. Докажем, что s — искомая функция. Ее вычислимость и тотальность непосредственно следуют из определения. Проверим условие (12.3). Его левая часть cp^j(xi, ...,xm) условно равна длине слова U{ps{i)Bx) | ^ J7(5(i)Dx)j ^ Щ,х) ~ ~ 11 ... 1 . Длина последнего условно равна /(г,хд, ... , жт), s*" " 'V /(г,Х1, ...,Хт) что совпадает с правой частью (12.3). ■ Вопрос. Почему длина слова 11 ... 1, составленного из /(г, х\, ..., хт) единиц, лишь условно равна /(г, жi, ..., xm), а не просто равна? Ответ. Составить слово из /(г, ад, ...,хт) единиц можно лишь тогда, когда число /(г, ад, ..., хт) определено. В нашем случае функция / не обязана быть тотальной, поэтому указанное число определено не всегда. Используя здесь термин «условно равно», мы сообщаем верный факт, что слово имеет длину /(г, ад, ..., хш), когда это число определено, и не существует в противном случае. Замена этого термина на «равно» приводила бы к неточному, формально ошибочному утверждению, подразумевающему, что функция / тотальна. 296 
12.3. Примеры невычислимых функций Мы приступаем к получению так называемых отрицательных фактов про вычислимость, т. е. теорем, утверждающих невозможность алгоритмического решения тех или иных задач. Эти факты как раз и составляют основу качественной теории алгоритмов. Фиксируем главные вычислимые нумерации q>QW\ ... множеств Cora(Nw,N) (га = 1,2, ...) и соответствующие универсальные функции u^m\i^x ~ ... , жД. Получим следующую таблицу нумераций: Фо(ж) фУ(ж) ф^(ж) Фо2)(^,у) ф|2)(^,у) Ф22){Х,У) фпт)(»Ь ф1т)(жь • • -,хт) ф^Оъ . . .,Хт) В ней перечислены все вычислимые функции с натуральными аргументами и значениями и только они, поэтому чтобы доказать, что какая-то функция не является вычислимой, достаточно установить, что ее нет в этой таблице. Для качественной теории вычислимых функций натурального аргумента существенны лишь следующие два свойства таблицы: 1. Универсальная функция и^т\ порождающая нумерацию га-й строки таблицы, встречается в (га -f 1)-й строке. 2. Свойство параметризации: для каждой функции д из (га + + п)-й строки найдется такая тотальная функция s из п-й стро- ки, что g(h, XI. ..хт) ~ ср^ Лп){х\. ..хт). Согласно введенному ранее соглашению, срДж) и u(i,x) означают ср^(х) и u^\i^x) соответственно. Факт существования невычислимых функций типа N —» N немедленно следует из мощностных соображений: функции из первой строки таблицы образуют счетное множество, а все функции указанного типа — множество мощности континуума. Интерес представляют явно описанные примеры, т. е. примеры корректных определений, которые нельзя запрограммировать. 297 
Определение 12.4. Функция д называется продолжением частичной функции /, если D(f)CD(g) и (VxeD(/)) g(x) = f(x). Тотальное продолжение функции / — это такое ее продолжение д, которое является тотальной функцией, т. е. D(g) — N. Теорема 12.3. Существует частичная вычислимая функция / из N в N, не имеющая тотального вычислимого продолжения. Доказательство. Функцию /: N —» N определим так: Функция / вычислима, так как функция и вычислима. Пусть g: N —» N — произвольная тотальная вычислимая функция. Докажем, что она не может быть продолжением функции /. Функция д встречается в первой строке таблицы (12.7) под некоторым номером га, т. е. д — срт. Так как д тотальна, то значение д(т) = cpт(га) определено. Так как значение cpт(т) определено, то определено значение /(га), и f(rn) — cpт(га) + 1. Итак, оба значения д(га) и /(га) определены и /(га) 7^ д(га). Значит, функция д не является продолжением функции /. ■ Вопрос. Какой же пример явного, но не поддающегося программированию, определения мы получили? Ответ. Например, Вопрос. А чем плоха следующая реализация? IF !cpn(n) THEN return cpП(п) + 1 ELSE return 0 ENDIF Ответ. В ней не сказано, как проверять условие. Попыткой исправить было бы добавление вызова подпрограммы вычисления характеристической функции ух для множества К = {п | !срп(п)}, если бы множество К оказалось разрешимым. По предыдущей теореме эта попытка (как и все другие) обречена на провал. Это рассуждение, в частности, доказывает неразрешимость множества К. Отсюда получаем пример перечислимого неразрешимого множества. Следствие 12.1. Множество К = {п | !срп(п)} является перечислимым, но неразрешимым подмножеством N. f(n) ~ м(п, п) + 1 Ц>п(п) + 1, если !ср„(га), не определено иначе. если !срп(п), иначе. (12.8) 298 
Доказательство. Множество К перечислимо, так как является областью определения вычислимой функции h(x) ~ ~ и(х,х). Его неразрешимость была установлена в обсуждении выше. Повторим соответствующее рассуждение. Допустим, что К разрешимо, т. е. функция у к вычислима. Тогда функцию (12.8) можно было бы вычислить таким алгоритмом: I := Хк(п); IF I THEN return срп(п) + 1 ELSE return 0 ENDIF В то же время она является продолжением функции /, построенной в теореме 12.3 и не имеющей тотальных вычислимых продолжений. Получили противоречие. ■ Задачу разрешения множества К можно переформулировать в следующей форме, известной как одна из формулировок массовой проблемы самоприменимости: : по номеру п кода Code(M) машины Тьюринга М выяснить, остановится ли М на входе п = 11... 1. Мы доказали алгоритмическую неразрешимость п этой проблемы. Следствие 12.2. Существует перечислимое множество натуральных чисел М, дополнение N \М которого не перечислимо. Доказательство. В качестве множества М, существование которого утверждается в теореме, можно взять К. Это перечислимое множество. Если бы его дополнение оказалось также перечислимым, то по теореме Чёрча--Поста (см. теорему 9.2) К оказалось бы разрешимым, что противоречит следствию 12.1. ■ Проблема остановки. Определение 12.5. Массовой проблемой остановки называется следующая задача: по коду Code(M) машины Тьюринга с ленточным алфавитом £ и слову v в алфавите £q С £ выяснить, остановится ли машина М на входе у. (Будем считать, что алфавит £q фиксирован и 1 Е £о-) Предложение 12.1. Множество STOP = {(г,п) | !ср^(гг)} является перечислимым неразрешимым подмножеством N2. Доказательство. Это утверждение вытекает из следствия 12.1. Множество STOP является областью определения уни- 299 
версальной функции и, а потому перечислимо. Неразрешимость следует из эквивалентности п Е К <=> (n, п) Е STOP. В силу этой эквивалентности характеристические функции множеств К и STOP связаны соотношением х^г(п) — XSTOp(n,n), обеспечивающим вычислимость функции х/с, если бы функция XSTOP была вычислимой. Однако по следствию 12.1 функция х/с невычислима, поэтому XSTOP также не может быть вычислимой функцией. ■ Следствие 12.3. Массовая проблема остановки алгоритмически неразрешима. Доказательство. Допустим, что существует алгоритм А, который применим к каждой паре вида (Code(M),v), где v Е Eg, и заканчивает работу с результатом 0 или 1, причем A(Code(M),v) = 1 <=ИМ(Ф). В построении вычислимой универсальной функции и участвовала вычислимая последовательность pg,pi, •••, нумерующая коды всех программ машин Тьюринга: pi — код программы, вычисляющей функцию срi. Тогда оказывается, что XSTOp(hn) — — A(pi,n). Эта формула дает возможность вычислять характеристическую функцию множества STOP, что противоречит предложению 12.1. ■ Замечание. Фиксация одного из двух параметров (Code(M) или v) в проблеме остановки не делает ее проще. Например, если в качестве М выбрать машину, вычисляющую полухарактеристическую функцию множества К, то проблема остановки именно этой машины М эквивалентна задаче разрешения множества К, а потому алгоритмически неразрешима. Проблема остановки с фиксированным входным словом v = vo оказывается также алгоритмически неразрешимой, что будет доказано далее. 12.4. Теорема Успенского — Райса Какие свойства вычислимых функций можно алгоритмически распознать по вычисляющим их программам? В простейшем случае одноместных функций типа N —» N теорема Успенского — Райса дает исчерпывающий, но крайне неутешительный ответ: никакие, кроме тривиальных. Тем более не следует ожидать разрешимости каких-либо нетривиальных свойств вычислимых 300 
функций с более сложно устроенными типами аргументов и значений. Каждое свойство вычислимых функций типа N —» N, т. е. одноместный предикат на множестве Сот(N, N), задает разбиение семейства Com(N,N) на два класса X и У, так что К классу X относят те функции, которые обладают рассматриваемым свойством, а к У — все остальные функции. Разбиение (12.9) считается нетривиальным, если оба класса X и У непустые. Пусть фиксирована главная вычислимая нумерация множества Com(N, N). Определение 12.6. Пусть X С C7om(N,N) — произвольное семейство вычислимых функций. Индексным множеством семейства X называется множество lx — {i Е N | cp* Е X}. Иными словами, индексное множество семейства X состоит в точности из всех номеров всех программ машин Тьюринга, вычисляющих функции из семейства X. Для разбиения (12.9) индексные множества Iх и 1у образуют разбиение множества N: 1Х и ly = N, 1Х П 1у = 0. Следующая теорема называется теоремой Успенского — Райса. Теорема 12.4. Если разбиение (12.9) нетривиально, то Iх и 1у являются неразрешимыми подмножествами N. Доказательство. Пусть \ — нигде не определенная функция. Она вычислима, а потому попадает в один из классов разбиения, например, в X. Другой класс также непуст. Фиксируем какую-нибудь функцию h Е У и какое-нибудь перечислимое неразрешимое подмножество множества N, например, К. Определим частичную функцию g: N2 —» N так: 1. Функция д вычислима. Заметим, что прямое переписывание определения функции д с помощью управляющей конструкции IF THEN ELSE не дает алгоритма ее вычисления, так как X и у = Com(N, N), ХПУ = 0. (12.9) фО,фЪф2, • • • (12.10) h(n), если г € К\ не определено иначе. 301 
условие «г G К» невозможно проверить алгоритмически. Предлагается следующий алгоритм: «Перебирая элементы множества К (оно перечислимо!), осуществить поиск числа i в К. Когда (если) нашли, перейти к вычислению h(n). Когда (если) вычисление завершится результативно, положить g(i}n) = h(n).» 2. Нумерация (12.10) является главной, поэтому существует тотальная вычислимая функция s: N —» N, для которой д(г, п) ~ u(s-(z), п) ~ cps(i) (га). 3. Тогда г е К ^ ф5(г) =h => фв(г) € У => s(i) G Iy, i ^ К => фз(г) = ^ ^ ф$(г) ^ Т => s(i) G /л'* 4. Допустим, что какое-нибудь из индексных множеств Iх и 1у разрешимо. Тогда другое тоже разрешимо (как дополнение первого), и характеристическую функцию множества К можно вычислить с помощью следующего алгоритма: «Вход: г. Вычислить s(i) и проверить, какое именно из условий «з(г) G 1у» и «з(г) G 1х» выполняется. В первом случае вернуть 1, во втором — 0.» Получили противоречие с неразрешимостью множества К. ■ Пример 12.2. Для любой функции д G Com(N,N) неразрешимо свойство «/ — д»1 так как неразрешимо индексное множество {г | ф* = д}. ■ Пример 12.3. Свойство «!/(123)» неразрешимо, так как неразрешимо индексное множество {г | !ф^(123)}1. ■ Пример 12.4 • Свойство «/ тотальна» неразрешимо, так как неразрешимо индексное множество {г | \/п!ффп)}. ■ Пример 12.5. Свойство «/ ограничена» неразрешимо, так как неразрешимо множество {г | За\/п(!фДп) => фi(n) < а)}. ■ *Этот пример показывает, что следующая частная проблема остановки с фиксированным входным словом алгоритмически неразрешима: по коду Code(M) произвольной машины Тьюринга М распознать применимость М к входному слову vo = 11... 1, состоящему из 123 единиц. Если бы соответствующий разрешающий алгоритм существовал, то существовал бы также и алгоритм, который распознает это же свойство по номеру кода машины Тьюринга. Последний алгоритм вычисляет характеристическую функцию множества {г | !фг (123)}, что невозможно. 302 
Заметим, что множество {г | программа pi вычисляет ср^(О) за < 100 шагов} разрешимо. Оно не является индексным множеством никакого семейства вычислимых функций, поэтому теорема Успенского — Райса тут не работает. 12.5. Десятая проблема Гильберта В 1900 г. на Международном математическом конгрессе в Париже Д. Гильберт сформулировал ряд математических проблем, актуальных для математики наступающего XX в. Одна из них, под номером 10, касалась диофаптовых уравнений, т. е. уравнений вида р(хi,X2, • • • 5 хп) = 0, где р(х\,х2, ...,жп) — многочлен от переменных xi, тд, ..., хп с целыми коэффициентами, причем ищутся только целые решения такого уравнения. Десятая проблема Гильберта состояла в том, чтобы установить, существует ли алгоритм, с помощью которого можно определить, имеет ли решение произвольное наперед заданное диофантово уравнение. В 1970 г. советский математик Ю. В. Матиясевич доказал, что такого алгоритма не существует. Суть его доказательства состоит в следующем. Множество А С N называется диофантовым, если существует многочлен р(х, щ, ..., уп) с целыми коэффициентами такой, что А = {х е N I (Зуь ...,уп€ Z)p(x,y1, ...,уп) = 0}. (12.11) Иными словами, если рассматривать р(х,щ, ... ,уп) = 0 как уравнение с неизвестными щ, . ..,?/n, а х считать параметром, то А состоит в точности из тех натуральных значений х. при которых это уравнение имеет целочисленные решения. Пример 12.6. Множество полных квадратов диофантово, так как представимо в виде {х | 3ур(х, у) — 0}, где р(х, у) = х — -у2. Я Множество И, представленное в виде (12.11), является проекцией на первую ось (п 3- 1)-мерного разрешимого множества В = {(ж, 2/1, ...,Уп) I р(х,У1, ■ ■ ■, уп) = 0} С N х Ъп. 303 
Поэтому из теоремы о том, что проекция всякого разрешимого множества перечислима, вытекает перечислимость множества А, так что всякое диофантово множество перечислимо. Ю. В. Матиясевич доказал, что верно и обратное. Теорема 12.5. Всякое перечислимое множество Л С N является диофантовым. Доказательство этой теоремы использует сложную технику из теории чисел и не может быть воспроизведено здесь. Отрицательное решение десятой проблемы Гильберта следующим образом вытекает из теоремы 12.5. Пусть А С N — неразрешимое перечислимое множество. В силу теоремы 12.5 множество А диофантово. Пусть р(х,щ, ..., уп) — такой многочлен с целыми коэффициентами, что А представляется в виде (12.11). Тогда для любого натурального а выполняется условие: а 6 А, если и только если уравнение р(а, щ, ... ,уп) — 0 разрешимо в целых числах, и если бы существовал алгоритм для распознавания разрешимости диофантовых уравнений, то А оказалось бы разрешимым. Заметим, что хотя множество всех диофантовых уравнений, имеющих целочисленное решение, неразрешимо, все же оно перечислимо. В этом можно убедиться, доказав его полуразреши- мость. Можно предложить, например, следующий алгоритм, обнаруживающий разрешимость в целых числах данного диофан- това уравнения р(хi, ..., хп) = 0: нужно в каком-нибудь порядке подставлять в это уравнение всевозможные кортежи целых чисел fci, . пока не будет найден такой кортеж (если он вообще существует), что p(fci, ..., kn) = 0. В этом случае алгоритм завершает работу с утвердительным ответом. В противном случае алгоритм работает вечно. 12.6. Проблема равенства слов в полугруппах В качестве приложения машин Тьюринга рассмотрим одну алгоритмическую проблему из алгебры, а именно, проблему равенства слов в полугруппах, заданных определяющими соотношениями. Совокупность элементов, рассматриваемая вместе с некоторой определенной на ней бинарной ассоциативной операцией, на¬ 304 
зывается ассоциативной системой или полугруппой. Основную операцию в полугруппе обычно называют умножением и обозначают точкой. Вместо а • b обычно пишут ab. Ассоциативность этой операции означает, что для любых элементов а, Ь, с имеет место равенство (аЪ)с = а(Ьс), поэтому распределение скобок в произведениях нескольких сомножителей (например, ((ab)c)d. a(b(cd))) на величину этих произведений не влияет, так что при записи таких произведений скобки опускают. Система элементов с\, ... , ср полугруппы С называется системой порождающих для С, если каждый элемент с полугруппы С может быть представлен в форме с = сцс^.-.с^ (г& G G {1, 2, ... ,р}, где множители могут и повторяться. Пример 12.7. Множество всех непустых слов в алфавите {ci, ... ,ср} является полугруппой относительно операции умножения слов, определяемой, как результат приписывания одного слова к другому: и • v — uv. Однобуквенные слова ci, ..., ср будут порождающими для этой полугруппы. Такая полугруппа называется свободной полугруппой со свободными порождающими Ci, . . . , Ср. Ш В алгебре важное место занимает способ задания полугрупп посредством определяющих соотношений. Сущность его состоит в следующем. Задаем алфавит Е = {щ, ... ,ср} и конечную совокупность формальных равенств вида U\ = г>1, и2 = V2, - - - ,щ = VI, (12.12) где = — особый знак, а щ, щ, г^2, ..., щ, vi — слова в алфави¬ те Е. Левым элементарным преобразованием слова w G Е*, отвечающим соотношению щ = будем называть подстановку в слово w слова Vi вместо какого-нибудь вхождения слова щ. Аналогично, правым элементарным преобразованием, отвечающим соотношению щ = vi, называется подстановка в слово w слова щ вместо какого-нибудь вхождения слова w\. Левые и правые элементарные преобразования, отвечающие определяющим равенствам (12.12), называются просто элементарными преобразованиями. Пусть t и и — слова в алфавите Е. Условимся писать t —» щ если слово и получается каким-либо элементарным преобразованием из слова £, и условимся писать t = щ если существуют 305 
такие слова гi, ... , rm, что t —> r\ —» ... —> гт —» и, или если t — и. Очевидно, что отношение = рефлексивно, транзитивно, симметрично и согласовано с операцией умножения: Г = П, Q = Ql =>■ rq = nqi. (12.13) Таким образом, = — отношение эквивалентности. Совокупность всех слов, эквивалентных слову w Е Е*. обозначается [гс] и называется смежным классом по модулю эквивалентности =. Введем операцию умножения смежных классов, полагая И • И = М- (12.14) Очевидно, что операция умножения смежных классов ассоциативна. Совокупность всех смежных классов по модулю = является полугруппой, которую мы будем обозначать через Т. Элементы [ci], ..., [ср\ образуют порождающую систему для полугруппы Т. Полугруппа Т называется полугруппой, заданной порождающими ci, ...,ср и определяющими соотношениями (12.12). Полугруппы, задаваемые таким образом, называются конечно определенными полугруппами или ассоциативными исчислениями. Условимся говорить, что слово w представляет элемент [гг] полугруппы Т. Проблема равенства для ассоциативных исчислений состоит в следующем: для данного ассоциативного исчисления указать общий метод, посредством которого для любых двух слов £, и можно было бы определить, представляют они один и тот же элемент полугруппы или нет (т. е. эквивалентны они в заданном исчислении или нет). Алгоритмическая разрешимость проблемы равенства означает наличие алгоритма, решающего эту задачу. Теорема 12.6. Каково бы ни было ассоциативное исчисление, множество всех пар эквивалентных в этом исчислении слов перечислимо. Доказательство. Докажем, что множество М, состоящее из всевозможных пар эквивалентных между собой слов, полу- разрешимо. Опишем алгоритм вычисления полухарактеристи- ческой функции тсм этого множества. Пусть дана пара слов (t,u). Организуем порождение всех слов, получаемых из t одним элементарным преобразованием, 306 
двумя последовательными элементарными преобразованиями и т. д. Если при этом когда-нибудь появится слово и, то t = и и км((Ь,и)) = 1. В случае t ф и поиск слова и будет продолжаться вечно и значение км((Ь:и}) не определено. ■ Следующая теорема, доказанная А. А. Марковым и Э. Л. Постом, означает существование ассоциативных исчислений, для которых множество пар эквивалентных слов неразрешимо. Теорема 12.7. Существует ассоциативное исчисление с алгоритмически неразрешимой проблемой равенства. Идея построения ассоциативного исчисления, имеющего неразрешимую проблему равенства, основана на близости элементарных преобразований слов в ассоциативных исчислениях и преобразований слов в машинах Тьюринга. Пусть дана машина Тьюринга Т с ленточным алфавитом {ао,аь ..., аш} (причем ао есть #), состояниями до, #1, • • •, gn- Построим ассоциативное исчисление, обозначаемое Д(Т), следующим образом. Алфавит исчисления Л(Т) состоит из символов ао, ai, ..., am, go, gi, • •, qn и дополнительных символов щ v. Определяющие соотношения исчисления Л(Т) выписываются при помощи программы машины Т: слева указаны команды из программы, а справа - соответствующие им определяющие соотношения для Л(Т): qiaj qsarN qia3 = qsar, qiaj нэ qsarL akqia3 = gsa/car (A; = 0,1, ..., m), (12.15) qiaj i У qsarR qiaj = arqs. Добавляя к этим соотношениям еще соотношения и# = и (12.16) #V = V, (12.17) получим полный список определяющих соотношений исчисления Л(Т). Теорема 12.8. Пусть машина Т имеет ленточный алфавит £ = = {ao,ai, ...,am} (причем ао есть #) и состояния go,gi, •••чЧп, Л(Т) -- соответствующее ассоциативное исчисление, A,B,C,D произвольные слова в алфавите £, из которых слово D либо пусто, либо оканчивается буквощ отличной от #. Для того чтобы в исчислении А(Т) было истинно соотношение uAqwanBv = uCqoapDv, необходимо и достаточно, чтобы машина Т за конечное число шагов переводила конфигурацию AqwaiB в конфигурацию #xCqoapD#y. Доказательство. Докажем достаточность условий. Пусть AqwanB = Ш() —> нц пц = ^х С q$apDj£-y 307 
суть последовательные конфигурации, возникающие при работе Т на исходной конфигурации AqwanB. Конфигурация m^+i получается из конфигурации гщ путем выполнения некоторой команды из программы Т. Пусть слово Ш/с переходит в слово т&+1 в результате выполнения команды qidj i-> qsarN. Это значит, что Ш/с = A'qidj Вm^+i = = A!qsarB'. Очевидно, что слово umk+iv получается из слова um^v левым элементарным преобразованием, соответствующим соотношению qidj = gsar, входящему в Д(Т), так что = umk+iv. Пусть Ш/с переходит в m^+i в результате выполнения команды qidj и-* qsarL, не сопровождаемой надстраиванием ячейки слева. Это значит, что гщ = А!diqidjB', m^+i = A!qsaiarBf. Очевидно, что слово uxrik+iv получается из слова шп/cv левым элементарным преобразованием, соответствующим соотношению aiqidj = qsaiar. входящему в А(Т), так что ихтцщ = umk+iv. Пусть m/c переходит в mk+i в результате выполнения команды qidj ь-э gsarL, сопровождаемой надстраиванием ячейки слева, т. е. Ш/с = qidj В', rrifc+i = qs#drB'. Очевидно, что слово uxrik+iv получается из слова uvc\kV последовательным выполнением правого элементарного преобразования, соответствующего входящему в А(Т) соотношению иф = и, и левого элементарного преобразования, соответствующего соотношению #qidj = gs#ar, входящему в Д(Т), так что UXTlkV = UXKXk+\V. Пусть Ш/с переходит в Ш/с_|_ i в результате выполнения команды qidj qsdrR, не сопровождаемой надстраиванием ячейки справа. Это значит, что Ш/с = A!qid3diB*, mk+i — A! drqsdiB'. Очевидно, что слово uvcik+iv получается из слова шп^г; левым элементарным преобразованием, соответствующим соотношению qidjdi = drqsdi, входящему в Л(Т), так что umkV = umk+iv. Пусть Ш/с переходит в vrik+i в результате выполнения команды qidj qsdrR, сопровождаемой надстраиванием ячейки справа, т. е. Ш/с = A!qidj, mfc+i = A'drqsф. Очевидно, что слово umk+iv получается из слова uvc\kv последовательным выполнением правого элементарного преобразования, соответствующего входящему в А(Т) соотношению фу = и, и левого элементарного преобразования, соответствующего соотношению qidjф = args#, входящему в А(Т), так что шп^г; = umk+iv. Таким образом, в исчислении А(Т) истинно соотношение итог; = = штцг, т. е. uAqwdnBv = CqodpDv, что и требовалось доказать. Докажем необходимость условий. Пусть uAqwdnBv = Шо mi -э ... -> = uCqodpD (12.18) суть последовательные слова, получаемые элементарными преобразованиями, отвечающими соотношениям из А(Т). Из формы элементарных преобразований следует, что в преобразованном слове они не меняют ни числа вхождений каждой из букв и, г;, ни числа вхождений букв вида qi. Поэтому каждое слово в цепочке (12.18) имеет вид 308 
rrifc = uAkqWkankBkV, где А\~,В}~ — некоторые слова в алфавите ao,ai, • • • 1 О'ГП' Пусть в двух последовательных преобразованиях m/c -э rrifc+i -э -> m/c-i-2 из (12.18) второе преобразование есть правое ^-преобразование, т. е. правое преобразование, соответствующее соотношению фу = v. Тогда этот участок цепочки (12.18) имеет вид uA'qiB'v -э -э uA/fqsB"v -э иАп qsB" фу, и вместо цепочки (12.18) можно рассматривать цепочку ... -> uA!qiB,v -> uA’qiB’ftv -> uA"qaB"#v (12.19) Переход от (12.18) к (12.19) будем называть сдвигом правого ^-преобразования rtifc+i -э m/c-i-2 влево. Аналогично, если на участке trifc -> m^+i -> т/с+2 преобразование т/с -э т/с+1 есть левое ^-преобразование фу —> у, то этот участок имеет вид uAfqiB'фу uA'qiB'y -> uA"qsB,fv, и вместо цепочки (12.18) можно рассматривать цепочку ... -> иА^гВ'фу -э uA,fqsB"фу -э uA"qsB"v ->.... (12.20) Переход от (12.18) к (12.20) будем называть сдвигом левого ^-преобразования m/с —> Ш/c+i вправо. Рассуждая совершенно аналогично, можно показать, что в цепочке (12.18) все правые ^-преобразования, т. е. правые преобразования, соответствующие соотношению иф = и, можно сдвинуть влево, а все левые ^-преобразования — вправо. Сдвигая в цепочке (12.18) все правые и- и ^-преобразования влево, а все левые и- и ^-преобразования вправо достаточное число раз, получим цепочку вида uAqwanBv ифхAqwanBфyv —у ифх CqoapDфy —у ... —у uCqodpD, где участок ифхАЧшапВфуу = щ -> пг пв = ифх СЧ^арВфу (12.21) преобразований вида (12.16) и (12.17) уже не содержит. Последнее слово в (12.21) содержит заключительный символ qo, не входящий в левые слова соотношений ассоциативного исчисления А(Т). Поэтому преобразование ns_i ns не может быть правым. Допустим, что цепочка (12.21) содержит правые преобразования. Пусть П/с —» rifc+i — последнее правое преобразование в ней, отвечающее некоторому соотношению исчисления А(Т). Слово rifc+i содержит подслово вида qrap. Но среди соотношений исчисления А(Т) есть лишь одно, левая часть которого содержит qrap. Следовательно, это соотношение должно совпадать с упомянутым соотношением. Таким образом, преобразования П/с -> rifc+i и rifc+i -э П/с+2 взаимно обратны, ГЦ, = Ufc+2 и цепочку (12.21) можно сократить до цепочки (12.22) 
Продолжая этот процесс дальше, получим цепочку вида (12.21), в которой все преобразования левые, отвечающие соотношениям (12.15). Но эти соотношения были так подобраны, чтобы, выполняя левое преобразование над какой-нибудь конфигурацией m машины Т, мы получали следующую конфигурацию т'. Следовательно, машина Т, начав работать в конфигурации AqwanB#y, закончит работу в конфигурации фх CqwapD#y . Последняя буква слова D отлична от #. Поэтому машина Т, начав работать в конфигурации AqwanB, закончит работу в конфигурации вида CqwapD#z, что и требовалось. ■ Доказательство теоремы 12.7. В параграфе 12.3 было построено перечислимое, но не разрешимое множество К С N. Очевидно, что одноместная частичная функция /, определенная в точности на множестве К и принимающая только значение 0, вычислима. Таким образом, f{x) = 0 е К. (12.23) Пусть Т — машина Тьюринга, чисто вычисляющая функцию /. Ленточный алфавит машины Т обязательно содержит символы # и 1. Если значение f(x) определено, то машина Т за конечное число шагов переводит начальную конфигурацию q\#x в конфигурацию вида Согласно теореме 12.8 это означает, что для любого на¬ турального х в ассоциативной системе А(Т) имеет место равенство uqi#xv = uqo#v, если и только если f(x) = 0. С учетом (12.23) получаем х Е К <^> uqi#xv = uqo#v. Заметим, что в А(Т) имеет место равенство uqo#v = uq^v. Отсюда следует, что вопрос о принадлежности произвольного натурального числа х множеству К сводится к вопросу об эквивалентности слов uq\#xv и uqov в исчислении А(Т). Поскольку множество К неразрешимо, то для исчисления А(Т) проблема эквивалентности произвольного слова слову uqov алгоритмически неразрешима. ■ 
Глава 13 ФОРМАЛЬНАЯ АРИФМЕТИКА В данной главе рассматривается формализация конкретного раздела математики — арифметики натуральных чисел. 13.1. Аксиомы Пеано В математике натуральные числа понимаются как объекты, которые могут быть порождены, если отправляться от начального объекта 0 (нуль) и последовательно переходить от уже порожденного объекта п к другому объекту п' (следующему за п). Тогда 0, 0', 0", 0"', ... суть натуральные числа 0,1, 2, 3, .... Итальянский математик Дж. Пеано представил это описание в виде следующей системы аксиом, характеризующих натуральные числа: 1) 0 является натуральным числом; 2) если п — натуральное число, то и п! — натуральное число; 3) для любых чисел гп и п из т' — п' следует т — щ 4) каково бы ни было натуральное число п, п! ф 0; 5) принцип математической индукции: пусть Р — такое свойство натуральных чисел, что а) 0 обладает свойством Р, б) если число п обладает свойством Р, то и число пг обладает свойством Р; тогда каждое натуральное число обладает свойством Р. На языке формальной арифметики второго порядка, сигнатура которого состоит из константы 0, одноместного функционального символа 1 и символа равенства =, аксиомы Пеано могут быть записаны посредством следующих формул: Ух У у (xr — yf D х = у); Ух -ix' = 0; VP (Р(0) & Ух (Р(х) эР(ж')) DVxP(x)). Назовем эту систему аксиом арифметикой Пеано второго порядка и обозначим ее РА2. 311 
Теорема 13.1. Система аксиом РА2 категорична. Доказательство. Докажем, что если даны множества N\ и iV2, в которых выбраны объекты Oi и О2, и на каждом из этих множеств задана операция ', удовлетворяющая аксиомам Пеано, то существует взаимно-однозначное соответствие ср между N\ и N2 такое, что cp(Oi) = О2, cp(n/) = (ср(п))'. Соответствие ф между N\ и N2 назовем допустимым, если выполнены следующие уело- вия: 1) (0ь02)еф; 2) (Vx <G iVi)(Vy € iV2)[(x, у) <Е ф => (х', у'} G ф]. Очевидно, что пересечение ср всех допустимых соответствий является допустимым соответствием. Таким образом, ср - наименьшее по включению допустимое соответствие. Докажем, что ср — тотальное соответствие. Рассмотрим свойство элементов ж Е состоящее в том, что х Е D{ср). Из определения допустимого соответствия следует, что Oi Е D(cp), и если х Е D(ср), то х' Е D(ср). Поэтому из аксиомы индукции для N\ следует, что D(ср) = N Докажем, что ср — сюръективное соответствие. Рассмотрим свойство элементов у Е N2, состоящее в том, что у Е Е{ср). Из определения допустимого соответствия и аксиомы индукции следует, что все элементы N2 обладают этим свойством, т. е. Е( ср) = N2. Докажем, что ср — функциональное соответствие. Рассмотрим свойство элементов х Е состоящее в том, что в ср имеется единственная пара вида (ж, у). Элемент Oi обладает этим свойством. В ср есть пара (Oi,О2)- Если же (Oi,y) Е ср для у ф О2, удалим пару (Oi,y) из ср. Получится допустимое соответствие, но это противоречит тому, что ср — наименьшее по включению допустимое соответствие. Пусть х Е N\ обладает рассматриваемым свойством, т. е. в ср имеется единственная пара вида (ж, у). Тогда (ж', у') Е ср. Если же (ж', z) Е ср для г ф у', удалим пару (жf,z) из ср. Получим допустимое соответствие, а это противоречит тому, что ср — наименьшее по включению допустимое соответствие. Докажем, что ср инъективно. Рассмотрим свойство элементов у Е N2, состоящее в том, что в ср имеется единственная пара вида (ж, у). Элемент О2 обладает этим свойством. В ср есть пара (0i,02). Если же (ж, О2) Е ср для ж ф Oi, удалим (ж, О2) из ср. Получим допустимое соответствие, но это противоречит тому, что ср — наименьшее по включению допустимое соответствие. Пусть у Е A^2 обладает рассматриваемым свойством, т. е. в ср имеется единственная пара вида (ж, у). Тогда (ж', у'} Е ср. Если же 312 
(z,yf) E cp для г ж', удалим (z,yr) из cp. Получим допустимое соответствие, а это противоречит тому, что ср — наименьшее допустимое соответствие. Таким образом, ср — изоморфизм интерпретаций N\ и N2. ■ Множество N, на котором задана операция ', удовлетворяющая аксиомам Пеано, называется натуральным рядом. Теорема 13.1 показывает, что с точностью до изоморфизма имеется только один натуральный ряд. Аксиомы Пеано позволяют на множестве N ввести операции сложения + и умножения *. Операция + определяется так. Соответствие а между N2 и N назовем ^-допустимым, если выполнены следующие условия: 1) (Ух G N) {(ж, 0), ж) G а; 2) (Vx, у, z 6 N)[((x, у), z) е а =» ((ж, у'), z') € а]. Пересечение + всех +-допустимых соответствий является +- допустимым. Нетрудно доказать, что + является двухместной функцией, причем для любых ж, у G N ж + 0 = ж; X + у' = (х + у)'. Аналогично определяется операция • как наименьшее но включению соответствие р между N2 и N, удовлетворяющее условиям: 1) (Vx е N) ((х, 0), 0) <Е ц; 2) (Vx,y,z € N)[((x,y),z) G ц => {(x,y'),z + x) € ц]. Для любых ж, у G N выполняются такие условия: ж • 0 = 0; ж • у* = ж • у + ж. 13.2. Нестандартные модели арифметики Для формализации арифметики, т. е. раздела математики, изучающего натуральные числа, используется элементарный язык формальной арифметики, описанный в подразд. 5.2. Его сигнатура состоит из константы 0, одноместного функционального символа двухместных функциональных символов + и • и двухместного предикатного символа =. Натуральные числа 0,1, 2, ... выражаются в языке арифметики термами 0, (У, 0", 313 
Условимся термы 0, 0', 0", О'", ... обозначать посредством 0,1, 2, 3, ... Константа 0 и функциональный символ f служат для обозначения основных понятий, фигурирующих в аксиомах Пеано. Добавление к ним символов + и • обусловлено стремлением к увеличению выразительных возможностей языка. Будем считать, что в арифметических термах и формулах используются только переменные из множества V = {жо, ад,.. При записи термов и формул будем использовать также буквы u,v,w,x,y,z и будем считать, что они обозначают некоторые переменные из множества V, отличные друг от друга и от других переменных, явно указанных в данной формуле. Логической длиной арифметической формулы будем называть количество вхождений в нее логических связок и кванторов. Подразумеваемая интерпретация языка формальной арифметики, т. е. множество натуральных чисел N с выделенным элементом 0 и операциями ', +, •, называется стандартной моделью арифметики и обозначается 91. Арифметической теорией называется произвольное множество арифметических высказываний, т. е. замкнутых арифметических формул. Арифметическую теорию будем называть корректной, если все входящие в нее высказывания истинны в стандартной модели арифметики ОТ. Теорема 13.2. Какова бы ни была корректная арифметическая теория Т, существует модель теории Т, не изоморфная стандартной модели арифметики ОТ. Доказательство. Пусть Т — корректная арифметическая теория. Добавим к языку арифметики константу с, а к теории Т — формулы —'с = 0, с = 1, —«с = 2, .... Докажем, что полученная теория Т' имеет нормальную модель. По теореме 7.9 для этого достаточно показать, что всякая конечная подтеория теории Т' имеет модель. Всякая такая подтеория наряду с высказываниями из Т содержит конечное число высказываний вида с = к. Рассмотрим модель 91 и придадим константе с такое значение п Е N, что -»с = п не входит в рассматриваемую подтеорию; получим модель этой подтеории. Таким образом, теория Tf имеет модель 931, которая будет и моделью теории Т, если «забыть» о константе с. Модель Ш не может быть изоморфна 91, ибо при изоморфизме значения термов О, I, 2, ... должны соответствовать друг другу, но в 91 этими элементами исчерпывается вся предметная область, а в Ш значение с не является таким элементом. ■ 314 
13.3. Арифметические множества и функции Фиксируем стандартную интерпретацию элементарного языка формальной арифметики. Всякое арифметическое высказывание оказывается истинным или ложным при естественном понимании всех входящих в него символов. Обозначим через Т множество всех истинных, а через Т — множество всех ложных высказываний. Определение 13.1. Множество А С Nn называется арифметическим,, если существует арифметическая формула Фд(жх, ..., хп) с параметрами из списка Х\, ... , хп такая, что для любых чисел fci, ..., kn имеет место (Ад, ..., кп) е А <=> Фд(А;1, ..., кп) G G Т. В этом случае говорят, что Фд(жх, ... ,хп) определяет А. Теорема 13.3. Если А, В С Nn — арифметические множества, то A, A U В, А П В — также арифметические множества. Доказательство. Пусть множества А ж В определяются формулами Фд(ж1, ...,хп) и Фв(фъ ...,хп). Тогда множество А определяется формулой -»Фд(ж1, ..., хп), множество A U В - формулой Фд(х1, ..., хп) V Фв(фъ ... , хп), а множество А П В - формулой Фд(жь ... ,ХП)&ФБ(Х1, .. .,хп). ■ Определение 13.2. Частичная функция / : N71 —> N называется арифметической, если ее график — арифметическое множество. Арифметическую формулу, определяющую Гj, будем обозначать Ф$(х\, ..., хп, хп+\) и будем говорить, что она определяет /. Таким образом, формула Фу(хх, ..., хп, xn+i) определяет функцию /, если для любых натуральных чисел к\, ..., kn, I выполняется условие f(k\, ..., кп) = I <=> Ф/(Ац, ..., кп, I) G Т. Теорема 13.4. Всякая вычислимая числовая функция является арифметической. Доказательство. В силу тезиса Чёрча всякая вычислимая числовая функция частично-рекурсивна. Поэтому достаточно доказать, что всякая ЧРФ арифметична. Арифметичность базисных функций очевидна: функция s(x) = х + 1 определяется формулой ж2 = х[, функция о(х) = 0 — формулой Х2 — 0, функ- ция (жь ...,хп) = хт — формулой хп+1 = хт. 315 
Докажем, что n-местная функция h, полученная подстановкой n-местных арифметических функций д\. ...,#& в ^-местную арифметическую функцию /. является арифметической. Пусть Ф/Щ ...,хк,хк+1), Ф9г(х1, ...,xn,xn+i)(i = 1, ...,к) — фор- мулы, определяющие /, щ, ... Тогда h определяется формулой 3щ...3ик (Фд1(х1, ...,хп,щ)к... ...&Фдк(х1, ...,хп,ик)кФ/(и1, ...,ик,хп+1)). Докажем, что если n-местная (n > 1) функция д получается минимизацией из (п+ 1)-местной арифметической функции /, то д также арифметична. Пусть формула Ф/(ад, ..., жп, жп+1, жп+2) определяет функцию /. Тогда д определяется формулой \/v(v < хп+\ D Згг(Ф/(ж1, ..., жп, ж, гг) & -»(гг = 0))) & &Ф/(хь ... ,жп,жп+1,0), где ж<жп+1 есть сокращенная запись формулы 3u(v + и1 = хп+\). Докажем, что если (п+1)-местная (n > 1) частичная функция h получается рекурсией из n-местной арифметической функции / и (п + 2)-местной арифметической функции д, то h арифметична. Пусть ж, г/, z G N. Говорят, что число г сравнимо с числом у по модулю х и пишут z = у (mod ж), если z и у дают одинаковые остатки при делении на х. Отметим следующий известный факт: если гг и х взаимно просты, то существует такое г, что wz = 1 (mod ж). Лемма 13.1. Каковы бы ни были щ, . ..,г/^ G N и попарно взаимно простые числа ..., ж&, существует натуральное число z такое1 что z = ?/i(mod жД, ..., z = уь(mod жД. Эта лемма называется китайской теоремой об остатках. Доказательство. Если ж = жг... ж&, то ж = гщжх = ... = = WkXk для подходящих ггх, ..., гг^. Для г = 1, ..., к числа гг* и ж* взаимно просты, поэтому WiZi = 1 (тобжД для некоторого Zi. Положим г = w\Z\yi + ... + WkZkPk- Тогда г = т/ДтобжД {г = 1, я Пусть тоб(ж, у) обозначает остаток от деления ж на у. Рассмотрим следующую функцию: (3(ж, у, z) = mod (ж, 1 + (z + 1) • у) (обычно ее называют (3-функцией Гёделя). 316 
Лемма 13.2. Какова бы пи была конечная последовательность натуральных чисел &о, fci, ..., существуют такие числа b и с, что для i = 0,1, ...,п имеет место равенство Р(Ь,с,г) = кг. Доказательство. Пусть j = max(n, Ад, Ац, • ■ •, А;п) и с = j!. Положим щ = 1 + (г + 1) • с (г = 0,1, ..., п). Числа попарно взаимно просты. Действительно, если щ и гхт, где 1 < / < т < п, имеют простой общий делитель р, то р является делителем их разности иш — щ — (т — I) • с, а значит, и делителем хотя бы одного из чисел т — I и с. Но так как т — I < j, то в любом случае с делиться на р. Но тогда ни щ, ни иш не могут делиться на р. Полученное противоречие показывает, что на самом деле числа щ и ит взаимно просты. По лемме 13.1 существует b такое, что для г = 0,1, ...,п имеет место b = АДтоб щ), т. е mod(Ь,щ) = modЗаметим, что кг < j < j\ = с < 1 + (г + 1) • с = щ, т. е. ki < щ. Это означает, что mod (кг,щ) = /с*. Тогда Р(Ь, с, г) = mod(fe, 1 + (г + 1) • с) = mod(fe, щ) — mod(A;*, щ) = кг, что и требовалось доказать. ■ Заметим, что функция (3 определяется формулой Эх Х\ = (Дз • Х2У • X + Х4 & Х4 < (х'3 • Х2)', которую естественно обозначить Фр(хх, х2, хз, хД. Вернемся к доказательству теоремы 13.4. Пусть (п+ ^-местная (и > 1) функция h получается с помощью рекурсии из n-местной арифметической функции / и (п + 2)-местной арифметической функции у, И Ф/(хЬ . . . ,Xn,Xn+i,Xn+2), Ь •••, хп+2,хп+з) суть формулы, определяющие / и д. Тогда h определяется формулой Эи Эу (Эю (Фр(гх, х, 0, w) & Ф/(хх, ..., хп, гг)) & & Фр(г/, х, xn+i, xn+2) & Vic (w < xn+i Э Зу 3z (Фр(гх, х, гг, у) & & ФрО, г>, и/, г) & Фд(хи ...,хп,и>, у, г)))). Если одноместная функция h получается рекурсией из числа а и двухместной функции у, определяемой формулой Ф^(хх, х2, Х3), то h определяется формулой 317 
3и 3v (Фр(гх, v, 0, а) & Фр (гх, щ xi, Х2) & \/гт (w < xi D D 3y 3z (Фр(«, v, ги, у) & Фр(и. v, и/, z) & Фд(и), у, z)))). Мы доказали, что все базисные функции арифметичны, а с помощью операций подстановки, рекурсии и минимизации из арифметических функций получаются арифметические функции. Следовательно, всякая ЧРФ арифметична. ■ Теорема 13.5. Всякое перечислимое множество A CN является арифметическим. Доказательство. Пусть множество А С N перечислимо. Тогда оно является областью определения некоторой вычислимой функции /. По теореме 13.4 функция / арифметична. Пусть формула Фj(xi, Х2) определяет /. Так как А = D(f), то формула 3x2 Ф/(ад, Ж2) определяет множество А. ■ Не всякое арифметическое множество является перечислимым. Пусть А — неразрешимое перечислимое множество. По теореме 13.5 оно является арифметическим. Тогда по теореме 13.3 его дополнение А также арифметично, но оно неперечислимо. 13.4. Теорема о неподвижной точке Следуя идее К. Гёделя, каждому символу а из алфавита языка формальной арифметики сопоставим натуральное число 5(a), которое будем называть гёделевым номером символа а: 9(0) =3, д{') = 5, у(+) = 7, д(-) = 9, д(=) = 11, УН = 13, <?(&) = 15, <?(V) = 17, у(Э) = 19, fl'(V) = 21, у(3) = 23, 5(() = 25, <?()) = 27, д(щ) = 29 + 2г (г = 0,1,2,.. .)• Каждому слову w — olo<Xi ... an в алфавите языка формальной арифметики сопоставим натуральное число g(w) — 2^a°)-39(аА х Я (.О-п) о х ... • рп , где рп есть п-е простое число, если считать р$ = 2. Число g(w) будем называть гёделевым номером слова w. Каждый терм t имеет гёделев номер g(t), и каждая формула Ф имеет гёделев номер д(Ф). В силу единственности разложения натурального числя в произведение степеней простых чисел разные выражения имеют различные гёделевы номера. Гёделевы номера выражений четны и потому отличны от гёделевых номеров символов. 318 
Рассмотренный способ построения гёделевых номеров не является единственно возможным. Главной особенностью этой и других гёделевых нумераций является существование алгоритма, позволяющего по выражению найти его гёделев номер, и алгоритма, который для любого натурального п позволяет определить, является ли п гёделевым номером какого-нибудь выражения и, если является, найти его. Если X — некоторое множество выражений языка формальной арифметики, то ему соответствует множество lx ^ N, состоящее из гёделевых номеров выражений, входящих в X, называемое индексным множеством множества X. Множество выражений X называется арифметическим, если арифметично множество 1х. Если натуральное число п является гёделевым номером некоторой формулы, то будем обозначать эту формулу посредством Фп. Очевидно, что существует алгоритм, который позволяет для произвольного натурального числа п выяснить, является ли это число гёделевым номером некоторой формулы, и если является, то найти формулу Фп. Для этого нужно разложить число п в произведение степеней простых чисел и для каждого показателя степени в этом разложении выяснить, является ли он гёделевым номером некоторого символа (т. е. является ли он нечетным числом > 3), и если все показатели являются номерами символов, выписать эти символы подряд и проверить, является ли полученное слово формулой. Если это слово оказалось формулой, то она и есть Фп. Теорема 13.6. Для всякой арифметической формулы Ф(жх), не содержащей параметров, отличных от яд, существует такое число п, что п является гёделевым номером замкнутой арифметической формулы и при этом 91 \= Ф(п) = Фп. Эта теорема называется теоремой о неподвижной точке. Доказательство. Рассмотрим следующую функцию: sub(x, у) = < д(Фх[y/xi]), если х является гёделевым номером некоторой формулы; не определено в противном случае. Функция sub вычисляется таким алгоритмом: «Пусть даны натуральные х и у. Определите, является ли х гёделевым номером какой-либо формулы. Если это так, то вместо всех свободных 319 
вхождений х\ в формулу Фх подставьте терм у, изображающий число у. Вычислите гёделев номер полученной формулы. Это и есть sub(x,y).» Поскольку функция sub вычислима, то по теореме 13.4 она арифметична. Пусть формула Ф5-иб(#ь х2-> ^з) определяет функцию sub. Через 4/(xi) обозначим формулу Зхо(Ф5-иб(х1, xi, хо) & &Ф(жо)). Пусть т = g(4/(xi)). Положим п = sub(m,m). Из определения функции sub следует, что sub(m,m) = д(Ф(т)). Таким образом, п — гёделев номер замкнутой арифметической формулы, причем Фп есть формула Ф(га). Докажем, что 94 |= Ф(п) = = Ф (га). Сначала докажем, что если истинно высказывание Ф(п), то истинно и высказывание Ф(ш). Допустим, что высказывание Ф(п) истинно. Так как sub(m,m) = п, то истинно Ф5^(ш,т,п). Следовательно, истинно высказывание Ф5^(ш, ш, п) &: Ф(п), а тогда истинно и высказывание Зхо(Ф8иь(т, т, хо) & Ф(хо)), т. е. высказывание Ф(ш), что и требовалось доказать. Докажем обратное: если истинно Ф(га), то истинно и Ф(п). Высказывание Ф(т) имеет вид Зхо(Ф8иь(гп, га, хо) & Ф(хо)) и означает, что существует /с, для которого истинно Ф5^(ш, тД) &: Ф(^). Следовательно, к = sub(m,m), т. е. к — п, и истинно Ф(п). ■ Отметим, что доказательство теоремы о неподвижной точке дает алгоритм, который позволяет для каждой арифметической формулы Ф(хД найти соответствующее натуральное число п. 13.5. Теорема Тарского С математической точки зрения интересен вопрос о свойствах множества Т всех истинных высказываний языка формальной арифметики. Некоторый ответ дает следующая теорема Тарского. Теорема 13.7. Множество Т не является арифметическим. Доказательство. Допустим, что множество Т арифметич- но, и Ф^хД — формула, определяющая его индексное множество. Это означает, что формула Фт(п) истинна тогда и только тогда, когда п — гёделев номер истинной замкнутой формулы. Рассмотрим формулу -^7~(x*i). По теореме о неподвижной точ¬ 320 
ке (см. теорему 13.6) существует такое число п, что п является гёделевым номером замкнутой арифметической формулы, и при этом УХ |= -,Фг(п) = Ф„. (13.1) Допустим, что формула Фп истинна. Тогда по определению <J>7~(xi) истинно высказывание Ф^(п). С другой стороны, в силу (13.1), если истинно Фп, то истинно и высказывание -1Ф7~(п), а высказывание Фт(п) ложно. Полученное противоречие означает, что высказывание Фп не может быть истинным. Значит, оно ложно. А тогда по определению формулы Фт^жх) высказывание Ф7~(гг) тоже ложно, а высказывание ^Ф^(п) истинно, что противоречит (13.1). Таким образом, высказывание Фп не истинно и не ложно, чего не может быть. Значит, предположение о существовании формулы Ф^(х1) неверно, и множество Т неарифметично. ■ Приведенное доказательство теоремы Тарского имитирует известный парадокс лжеца, который состоит в рассмотрении предложения, утверждающего свою ложность. Действительно, —|ф^(п) означает, что высказывание Фп ложно. Но в силу (13.1) эти высказывания одновременно истинны или ложны. Значит, по существу высказывание -1Ф7~(п) утверждает, что оно ложно. Теорема 13.8. Множество Т не является перечислимым. Доказательство. По теореме 13.5 всякое перечислимое множество является арифметическим. В силу теоремы 13.7 множество Т неарифметично, значит, оно неперечислимо. ■ 13.6. Теорема Гёделя о неполноте Теорема 13.8 имеет непосредственное отношение к проблеме задания формальной арифметики в виде элементарной аксиоматической теории. По теореме 13.1 система аксиом арифметики Пеано второго порядка РА2 категорична: все ее модели изоморфны стандартной модели арифметики УХ. В то же время теорема 13.2 показывает, что никакая корректная система аксиом элементарного языка формальной арифметики не может быть аксиоматикой класса всех алгебраических систем сигнатуры арифметики, изоморфных УХ. Поэтому, рассматривая ту или иную элементарную аксиоматическую систему для арифметики, мы должны иметь в виду, что наряду с УХ она имеет и другие модели. 321 
В качестве формализации арифметики на элементарном языке обычно рассматривается следующая система аксиом, называемая арифметикой Пеано и обозначаемая РА: 1) УхУу(х' = у' Э х = у); 2) Ух ->(х' = 0); 3) Ух (х + 0 = х); 4) Ух У у (х + у' = (ж + у)'); 5) Ух (х • 0 = 0); Vt V?/ f т • ?/ = т • ?/ -4- tV 7) (Ф(0)&Уи(Ф(и) ЭФ((/)) эУиФ(г>)), где г; — произвольная переменная, Ф(у) — произвольная арифметическая формула, а щ, ..., ип — все ее параметры, отличные от v. Аксиомы 1) и 2) являются записью на языке формальной арифметики соответствующих аксиом Пеано. Аксиомы 3) — 6) задают рекурсивное определение операций сложения и умножения. Аксиома 7) является схемой аксиом и выражает принцип математической индукции, однако не в полном объеме, а лишь в применении к арифметическим свойствам натуральных чисел, т. е. таким свойствам, которые выражаются арифметическими формулами. Очевидно, что все аксиомы арифметики Пеано истинны в стандартной модели арифметики 91, так что РА является корректной арифметической теорией. Теорема 13.2 показывает, что арифметика Пеано, как и любая другая корректная аксиоматическая арифметическая теория, не является категоричной в отличие от аксиоматики второго порядка. Это расплата за отмеченное ограничение принципа индукции арифметическими свойствами. Отсутствие категоричности не является каким-либо недостатком теории. Для нас важна прежде всего возможность получения математических теорем чисто формальным дедуктивным путем. Теоремы произвольной аксиоматической арифметической теории можно выводить из аксиом с помощью исчисления предикатов с равенством. В силу обобщенной теоремы о полноте исчисления предикатов с равенством (см. теорему 7.7) таким путем можно получить все нормальные логические следствия из данной системы аксиом. При этом является важным вопрос о полноте арифметики Пеано или любой другой корректной аксиоматики арифметики, т. е. можно ли на основе аксиом решить вопрос об истинности или ложности произвольного данного ариф¬ 322 
метического высказывания Ф, а именно, вывести из этих аксиом высказывание Ф или его отрицание -|ф. Если множество всех аксиом перечислимо или даже разрешимо (как, например, в случае арифметики Пеано), то множество всех теорем этой теории является перечислимым, как показывает теорема 9.9. Следовательно, в силу теоремы 13.8 оно не совпадает с множеством Т всех высказываний, истинных в стандартной модели арифметики ОТ. Приведенное рассуждение представляет собой доказательство теоремы Гёделя о неполноте, которая в упрощенном виде формулируется следующим образом. Теорема 13.9. Какова бы ни была корректная аксиоматизируемая арифметическая теория Т, существует арифметическое высказывание Ф, истинное в стандартной модели арифметики, но не являющееся теоремой Т, иными словами, ОТ \= Ф, но Т I/ Ф. Как построить конкретное истинное высказывание, которое не доказуемо в данной аксиоматической теории с перечислимым множеством аксиом? Ответ дает следующая конструкция. Пусть дано перечислимое множество X С Т. Так как его индексное множество 1х перечислимо, то по теореме 13.5 оно ариф- метично. Пусть Фх{х{) — формула, которая его определяет. Это означает, что Фд’(п) истинно тогда и только тогда, когда п гё- делев номер высказывания из X. Рассмотрим формулу ~^Фх{х\). По теореме 13.6 существует число п, которое является гёделевым номером замкнутой арифметической формулы Фп, и при этом 91 h -Ф*(п) = Фп- (13.2) Допустим, что формула Фп принадлежит множеству X. Тогда по определению формулы Фх{х\) истинно высказывание Фх{п). С другой стороны, так как X С Т, то формула Фп истинна, и в силу (13.2) истинно и высказывание -*Фх(п). Полученное противоречие означает, что высказывание Фп не может принадлежать множеству X. Но тогда истинно высказывание -^ФдДгг), и в силу (13.2) истинно и высказывание Фп. Таким образом, высказывание Фп истинно, но не принадлежит множеству X. Если X — это множество теорем арифметики Пеано или какой-либо другой аксиоматизируемой корректной арифметической теории, то построенное высказывание Фп является конкретным примером истинного высказывания, которое не может быть доказано на основе рассматриваемой системы аксиом. Отрица¬ 323 
ние этого высказывания ложно, поэтому также не может быть теоремой корректной арифметической теории. Заметим, что высказывание Фп по существу утверждает свою невыводимость. Действительно, высказывание ~^Фх(п) означает, что высказывание Фп с гёделевым номером п не принадлежит множеству А, т. е. недоказуемо. Но в силу (13.2) эти высказывания одновременно истинны или ложны. Значит, высказывание Фп означает, что оно невыводимо. 13.7. Формальная система арифметики Теорема Гёделя о неполноте показывает, что не всякое высказывание, истинное в стандартной модели арифметики 91, может быть доказано в теории РА. Поэтому интересно очертить тот круг истинных высказываний, которые заведомо доказуемы в РА Теоремы теории РА выводятся из ее аксиом с помощью исчисления предикатов с равенством. При выводе теорем можно пользоваться допустимыми правилами вывода исчисления предикатов. В случае арифметики Пеано оказывается удобным еще одно допустимое правило вывода, называемое правилом индукции. Предложение 13.1. Пусть Ь означает выводимость в РА. Тогда допустимо следующее правило вывода: Г b Ф(0) Г b Ф(v) D ф(у') Г b Ф(v) ’ где Ф(Д — произвольная формула, Г — произвольное множество формул, не содержащих свободно переменную v. Доказательство. Пусть формулы из Г не содержат свободно переменную щ и пусть Г Ь Ф(0), Г Ь Ф(Д D Ф(г/). Тогда в силу правил (—>* V) и (—» &) имеет место ГЬ Ф(0)&У^(Ф(Д D Ф(*/)). (13.3) Но формула Ущ ... Уип (Ф(0) &Vv (Ф(г>) D Ф(г/)) D УуФ(у)), где щ, ..., ип — все параметры формулы Ф(г>), отличные от г;, является частным случаем аксиомы индукции 7). Из этой аксиомы по правилу (V —>) получаем Г Ь Ф(0) & Vi; (Ф(г>) Э Ф(г/)) D УуФ(у). 324 
Отсюда и из (13.3) по правилу (D—») получаем Г Ь УуФ(у) и далее по правилу (V —>*) Г Ь Ф(у), что и требовалось доказать. ■ При применении правила (Ind) особую роль играет переменная у, фигурирующая в формулировке этого правила. При применении этого правила будем говорить, что мы пользуемся индукцией по у. В РА доказуемы основные свойства арифметических операций. Предложение 13.2. Следующие формулы выводимы в РА: х + у = у + х] (13.4) (х + у) + z = X + (у + z)\ (13.5) х-у = у-х; (13.6) (х-у) • z = х • (у • z)\ (13.7) х * (У + z) — х • у + х • z. (13.8) Доказательство. Докажем выводимость формулы (13.4) индукцией по у. В силу правила (Ind) достаточно вывести формулы х + 0 = 0 + х] (13.9) x + y = y + xDx + yf = у + х. (13.10) Выводимость формулы (13.9) докажем индукцией по х. В силу правила индукции достаточно доказать выводимость формул 0 + 0 = 0 + 0; (13.11) x + 0 = 0 + xDx/ + 0 = 0 + x/. (13.12) Формула (13.11) является частным случаем формулы (7.3) и выводима в силу утверждения 1) из предложения 7.4. Докажем выводимость формулы (13.12). Для этого в силу правила (—о) достаточно доказать выводимость формулы х/ + 0 = 0 + х (13.13) из формулы х + 0 = 0 + х (13.14) и аксиом теории РА. Рассмотрим следующую последовательность выводимых из этих гипотез формул: 1) х* + 0 = х* (получается по правилу (V —>) из аксиомы 3)); 2) х + 0 = х (получается по правилу (V —») из аксиомы 3)); 3) х' + 0 = (ж + 0)' (получается из 2) и 1) по правилу замены); 325 
4) ж + 0 = 0 + ж (гипотеза (13.14)); 5) ж' + О = (О + ж/ (получается из 4) и 3) по правилу замены); 6) 0 + х' = (0 + ж)' (получается из аксиомы 4) по правилу (У -О); 7) ж' + 0 = 0 + ж' (получается из 6) и 5) по правилу замены). Формула 7) как раз и есть (13.13). Для доказательства выводимости формулы (13.5) воспользуемся индукцией по г. В силу правила индукции достаточно доказать выводимость формул (ж + у) + 0 = X + (у + 0) (13.15) и (х+ у) + z = х + (у + z) D (х + у) + zf = х + (у + z ). (13.16) Для доказательства выводимости формулы (13.15) рассмотрим следующую последовательность выводимых в теории РА формул: 1) (ж + ?/)+0 = ж + у (получается по правилу (V —>) из аксиомы 3)); 2) у + 0 = у (получается по правилу (V —») из аксиомы 3)); 3) (ж + у) + 0 = ж + (у + 0) (получается из 2) и 1) по правилу замены). Формула 4) как раз и есть (13.15). Докажем выводимость формулы (13.16). Для этого в силу правила (—о) достаточно доказать выводимость формулы (х + у) + zf - х + (у + zf) (13.17) из формулы (ж + у) + z = х + (у + z) (13.18) и аксиом теории РА. Рассмотрим следующую последовательность выводимых из этих гипотез формул: 1) (ж + у) + zr — ((ж + у) + z)r (получается из аксиомы 4) по правилу (V —»)); 2) (х + у) + z = х + {у + z) (гипотеза (13.18)); 3) (ж + y) + zf — (ж +{y + z))f (получается из 1) и 2) по правилу замены); 4) ж + (у + z)f = (ж + (у + z))f (получается из аксиомы 4) по правилу (V —>*)); 5) (ж + у) + zf = ж + (у + z)' (получается из 4) и 3) по правилу замены); 326 
6) у + zr — (у + z)f (получается из аксиомы 4) по правилу (У -У); 7) (х+ у) + zr = х + (у + zf) (получается из 6) и 5) по правилу замены). Формула 7) есть (13.17). Аналогично, с использованием аксиом 5) и 6), индукцией по у доказывается выводимость формулы (13.6) и индукцией по z доказывается выводимость формулы (13.7). Для доказательства выводимости формулы (13.8) воспользуемся индукцией по г. В силу правила индукции достаточно доказать выводимость формул х-(у-\-0)=х-у + Х‘0 (13.19) и х • (у + z) — х • у 4- х • г D х • (у + z!) = х • у + х • zf. (13.20) Чтобы доказать выводимость формулы (13.19), рассмотрим следующую последовательность выводимых формул: 1) х • (у + 0) = х • (у + 0) (частный случай формулы (7.3)); 2) у + 0 = у (получается по правилу (V —») из аксиомы 3)); 3) х • (у + 0) = х • у (получается из 2) и 1) по правилу замены); 4) х-у + 0 = х-у (получается по правилу (V —>) из аксиомы 3)); 5) х • (у + 0) = х ♦ у + 0 (получается из 4) и 3) по правилу замены); 6) х • 0 = 0 (получается из аксиомы 5) по правилу (V —»)); 7) х • (у + 0) = х • у + х • 0 (получается из 6) и 5) по правилу замены). Формула 7) есть (13.19). Докажем выводимость формулы (13.20). В силу правила (—о) достаточно доказать выводимость формулы х • (у + z') = х • у + х • z (13.21) из формулы x-{y + z)=x-y + x- z (13.22) и аксиом теории РА, что на основании правила замены (г) получается из выводимого равенства х • (у + zf) = х • (у + zf) путем последовательного преобразования его правой части, как показывает следующая цепочка доказуемых равенств: х ■ (у + z') =1 X ■ (у + z)' =2 х ■ (у + z) + X =3 =3 (х • у + х • z) + X =4 X ■ у + (х ■ Z + х) =5 X ■ у + X ■ z'. 327 
Равенство =i получается из равенства у + zf = (у + z)f, доказуемого на основе аксиомы 4). Равенство =2 получается по правилу (V —») из аксиомы 6). Равенство =з получается из гипотезы (13.22). Равенство =4 получается из формулы (13.5) применением правил (—» V) и (V —»). Наконец, равенство =5 получается из равенства x-z* = х ■ z + x, выводимого из аксиомы 6) по правилу (v-a ■ Обратимся к вопросу о том, какие истинные арифметические высказывания заведомо доказуемы в теории РА. Определение 13.3. Говорят, что арифметическое высказывание Ф разрешимо в арифметической теории Т. если Т Ь Ф или Т I—-Ф. Напомним, что предикат х < у выражается в языке формальной арифметики формулой 3zx z = у. Поэтому в дальнейшем будем употреблять запись t\ < £2, где t\ и £2 — термы, как сокращенное обозначение для формулы 3ut\ + и = £2, где и — переменная, не входящая в t\ и £2- При сокращенной записи арифметических формул также часто используются ограниченные кванторы (Vv < £) и (3v < £), где £ — терм, не содержащий переменную г;, причем (Vv < £) Ф и (3v < £) Ф считаются сокращенной записью формул Vv (v < £ D Ф) и 3v (v < £ & Ф) соответственно. Определение 13.4. Арифметические До-формулы определяются индуктивно следующим образом: 1) всякая атомная формула есть До-формула; 2) если Ф и Ф суть До-формулы, то —*Ф, (Ф V Ф), (Ф&Ф), (Ф D Ф), (Ф = Ф) являются До-формулами; 3) если v — переменная, £ — терм, не содержащий г;, а Ф есть До-формула, то (3v < £) Ф и (Vv < £) Ф суть До-формулы. Предложение 13.3. Всякое До-высказывание разрешимо в РА. Предложение доказывается индукцией по количеству логических связок и кванторов в До-высказывании Ф. Мы не приводим его здесь, так как детальная разработка техники формального вывода в арифметике Пеано не входит в задачи данного курса. Определение 13.5. Арифметические Е-формулы определяются индуктивно следующим образом: 1) всякая До-формула есть Е-формула; 328 
2) если ФиФ - S-формулы, то (Ф\/Ф) и (Ф& Ф) суть Е-фор- мулы; 3) если г; — переменная, t — терм, не содержащий г>, а Ф есть Е-формула, то (3v < t) Ф, (Vv < t) Ф, Зг>Ф суть Е-формулы. Предложение 13.4. Пусть Ф(щ, ...,жп) есть Л-формула с параметрами щ, ..., vn, и пусть Ад, ... , кп — произвольные натуральные числа. Тогда 91 |= Ф(Ад, ... , кп) => РА Ь Ф(Ац, ..., кп) • Утверждение доказывается индукцией по построению формулы Ф(гд, ..., vn) с использованием предложения 13.3. Мы также не будем приводить его здесь. В подразд. 13.3 было показано, как для произвольной частичной вычислимой функции / : ~Nk —» N построить арифметическую формулу Ф^(жх, . ..,Ж£,у), определяющую график функции /. Анализ построения этой формулы, приведенного в доказательстве теоремы 13.4, показывает, что Ф/ является Е-фор- мулой. Этот факт вместе с предложением 13.4 дает следующее утверждение. Предложение 13.5. Каковы бы ни были к-местная вычислимая функция / и натуральные числа ni, ... , /, если значе¬ ние /(ni, ... ,п/с) определено и равно /, то в арифметике Пеано РА выводима формула Ф^(пх, ..., n^, I). По теореме 13.5 каждое перечислимое множество 4 С N является арифметическим. Из доказательства теоремы 13.5 видно, как построить Е-формулу Фд(жх), определяющую А. Поэтому в силу предложения 13.4 имеет место следующее утверждение. Предложение 13.6. Каковы бы ни были перечислимое множество А С N и натуральное число п, если п Е А, то в арифметике Пеано РА выводима формула Фд(п). Что можно сказать о выводимости формулы Фд(п), если п £ & А? Поскольку теория РА корректна, а формула Фд(п) в этом случае ложна в 91, то эта формула конечно же не выводима в РА. А можно ли ожидать, что тогда формула Фд(п) опровержима в РА, т. е. доказуемо ее отрицание -»Фд(п)? Следующее рассуждение показывает, что в общем случае это невозможно. Пусть А — такое перечислимое множество, что для любого п высказывание Фд(п) разрешимо в РА. Тогда имеем: если п Е А, то высказывание Фд(п) истинно и выводимо в РА, а высказы¬ 329 
вание -»ФДп) ложно и невыводимо; если же п £ А, то высказывание Фд(п) ложно и невыводимо в РА. следовательно, выводимо высказывание ->Фд(п). Поскольку множество всех теорем теории РА перечислимо, мы получаем разрешающий алгоритм для множества А: чтобы узнать, принадлежит ли данное натуральное число п множеству А, надо подождать, пока в перечислении множества теорем теории РА появится одно из высказываний Фд(п) и -»Фд(п). Поэтому для неразрешимого перечислимого множества А не всегда тот факт, что п £ А, может быть доказан в теории РА. Теорема 13.10. Теория РА неразрешима. Доказательство. Пусть А С N - перечислимое неразрешимое множество. Тогда для любого натурального п. если п Е А, то по предложению 13.6 Фд(п) является теоремой РА, а если п $ А, то Фд(п) ложна и не может быть теоремой. Следовательно, п <Е А тогда и только тогда, когда Фд(п) является теоремой РА. Поэтому если бы теория РА была разрешима, то мы имели бы разрешающий алгоритм для А. ■ Наряду с арифметикой Пеано РА представляет интерес элементарная теория арифметики, заданная конечным числом аксиом. Эта теория, называемая арифметикой Робинсона, получается заменой в теории РА схемы аксиом индукции на одну формулу: 7) Ух (х — О V Зу х = у1). Обозначим эту теорию RA. Оказывается, что предложение 13.4 остается в силе, если заменить в нем РА на RA. Следовательно, такую же замену можно сделать и в предложениях 13.5 и 13.6. Поэтому имеет место следующая теорема. Теорема 13.11. Теория RA неразрешима. В предыдущем подразделе была доказана неполнота РА и любой корректной аксиоматизируемой арифметической теории с использованием обычных математических методов, в частности, рассматривалась стандартная интерпретация языка формальной арифметики как тот объект, который гарантирует непротиворечивость любой корректной арифметической теории. Однако в программе формализации математики, выдвинутой Д. Гильбертом, предполагалось исследование формальных аксиоматических теорий так называемыми финитными методами, которые, во всяком случае, не допускают рассмотрения каких- 330 
либо содержательных интерпретаций формализованного языка, а имеют дело только с выражениями языка как таковыми. Посредством гёделевой нумерации рассуждения о синтаксических объектах можно свести к рассуждениям о натуральных числах. Не уточняя представлений о финитных методах, естественно предположить, что финитные методы могут быть формализованы в РА. Поэтому представляет интерес вопрос о возможности доказательства теоремы Гёделя о неполноте в рамках формальной системы арифметики. В связи с этим отметим некоторые факты, играющие важную роль в исследовании РА. Следующая теорема является формальным аналогом теоремы о неподвижной точке для арифметики (см. теорему 13.6). Теорема 13.12. Для всякой арифметической формулы Ф(жх), не содержащей свободных переменных, отличных от х\, существует такое число п, что п является гёделевым ном,ером замкнутой арифметической формулы и при этом РА Ь Ф(п) = Фп. Множество теорем теории РА перечислимо, поэтому существует S-формула Рг(ж), выражающая предикат «х — гёделев номер доказуемой в РА формулы». В силу теоремы 13.12 можно построить такую замкнутую формулу Ф, что РА I- -.Рг(п) = Ф, (13.23) где п — гёделев номер формулы Ф. Предположим, что РА Ь Ф. Тогда из (13.23) получаем РА b -»Pr(n). С другой стороны, Е-формула Рг(п) истинна, следовательно, РА Ь Рг(п). Таким образом, если формула Ф выводима, то теория РА противоречива. Итак, мы доказали следующее утверждение: Теорема 13.13. Если РА непротиворечива, то она неполна. Именно такая строгая формулировка теоремы Гёделя о неполноте обычно встречается в литературе по теории доказательств. Теорема Гёделя о неполноте имеет непосредственное отношение к вопросу о возможности финитного доказательства непротиворечивости формальной арифметики. Мы видели, что если теория РА непротиворечива, то формула Ф невыводима в этой теории, а тогда в силу (13.23) формула -»Рг(п) также невыводима. Последняя выражает тот факт, что формула Ф невыводима. Но невыводимость хотя бы одной формулы влечет непротиворечивость теории, так что уже формулу -»Pr(n) можно рассматри¬ 331 
вать как утверждение о непротиворечивости теории РА. Следовательно, мы установили, что непротиворечивость теории РА, выражаемую формулой ->Рг(п), невозможно доказать в самой этой теории. Поскольку РА I '(У = 0, обычно непротиворечивость РА по¬ нимают как невыводимость в ней формулы 0' = 0, а формальной записью утверждения о непротиворечивости считается формула -iPr(c), где с — гёделев номер формулы (У = 0; обозначим ее Consis (от англ, consistency — непротиворечивость). В РА выводима формула Consis D -»Pr(n), откуда следует невыводимость формулы Consis, так что имеет место следующее утверждение. Теорема 13.14. Если теория РА непротиворечива, то ее непротиворечивость не может быть доказана в самой этой теории. Теорему 13.13 называют первой теоремой Гёделя о неполноте, а теорему 13.14 — второй теоремой Гёделя о неполноте. Результаты Гёделя имеют большое значения для программы обоснования математики, предложенной Д. Гильбертом. Конечно, мы надеемся (и даже уверены), что формальная система арифметики непротиворечива. Но если это так, то по первой теореме Гёделя эта система обязательно неполна. Таким образом, нам не удалось формализовать содержательную арифметику полным образом, чтобы всякое арифметическое высказывание или его отрицание можно было вывести по формальным правилам из аксиом. Что касается проблемы финитного доказательства непротиворечивости, то вторая теорема Гёделя показывает, что всякое такое доказательство должно использовать методы, которые не формализуются в системе. Это означает, что для доказательства непротиворечивости следует употреблять средства более мощные, чем те, что используются в элементарной арифметике. Такие доказательства непротиворечивости арифметики были найдены. 13.8. Тождественно истинные предикатные формулы Одним из первых результатов об алгоритмической неразрешимости проблемы, относящейся не к самой теории алгоритмов, 332 
а к логике, была теорема Чёрча о неразрешимости чистого исчисления предикатов, введенного в гл, 6 (см. определение 6.7). Теорема 13.15. Проблема разрешимости для чистого исчисления предикатов неразрешима, га. е. не существует алгоритма для распознавания того, выводима ли произвольная данная предикатная формула в этом исчислении. Доказательство. Не вдаваясь в технические детали, изложим лишь общую идею доказательства этой теоремы. Заметим, что если имеется элементарная конечно аксиоматизируемая теория в языке, не содержащем констант и функциональных символов, то проблема выводимости формул в такой теории сводится к проблеме выводимости формул в чистом исчислении предикатов. Действительно, пусть Т — конъюнкция всех аксиом данной теории. Тогда высказывание Ф является теоремой этой теории, т.е.ТЬФ, если и только если формула Т D Ф выводима в исчислении предикатов для данного языка. Но если предикатные символы в этой формуле считать предикатными переменными, то выводимость в этом исчислении совпадает с выводимостью в чистом исчислении предикатов. Таким образом, Т h Ф тогда и только тогда, когда предикатная формула Т D Ф выводима в чистом исчислении предикатов. Следовательно, если бы проблема выводимости в чистом исчислении предикатов была алгоритмически разрешима, то любая элементарная конечно аксиоматизируемая теория в чисто предикатном языке была бы разрешимой. Поэтому для доказательства теоремы достаточно привести пример неразрешимой теории указанного вида. В качестве такой теории возьмем арифметику Робинсона RA, слегка модифицировав ее для наших целей. Во-первых, добавим к аксиоматике теории RA явно выписанные аксиомы равенства (на самом деле некоторые из них выводимы в теории RA). Получим следующую систему аксиом: 1) УхУу (V = yf D х = у)\ 2) Ух -ix' = 0; 3) Ухх + 0 = х\ 4) УхУух + у' = (х + у)'; 5) Ухх • 0 = 0; 6) УхУух-у' = х-у + х; 7) Ух (х = 0 V Зу х = у')\ 8) Ухх — ж; 9) УхУу (х = у D у = ж); 333 
10) \/x\/yVz (x = yD(y — zDx = z)); 11) Vx У у (x = у D xf — yf)\ 12) VxVyVuVv (x = и к у = v D x + у = и + v); 13) VxVyVu\/v (x = uky = v D x • у — и • г;). Таким образом, арифметическая формула выводима в арифметике Робинсона, если и только если она выводима в исчислении предикатов для языка арифметики из формул 1) —13). Следующий шаг состоит в переходе от языка арифметики к чисто предикатному языку. Для этого применяется так называемая элиминация констант и функциональных символов. Она состоит в том, что вместо константы 0 мы вводим в язык одноместный предикатный символ Z, понимая формулу Z(x) как х — 0. Вместо одноместного функционального символа ' вводим двухместный предикатный символ 5, так что S(x,y) означает х1 — у. Аналогично заменяем двухместные функциональные символы 4- и • на трехместные предикатные символы А и М соответственно, при этом A(x,y,z) означает х + у — £, a M(x,y,z) означает х • у. Наконец, вместо символа равенства = будем употреблять двухместный предикатный символ Е. Теперь каждую арифметическую формулу можно переписать на этом чисто предикатном языке, содержащем только предикатные символы Z, Е1, S', А, М. Для этого достаточно перевести на новый язык атомные формулы. Каждая атомная арифметическая формула имеет вид t\ = £2. Нетрудно доказать, что в арифметике Робинсона такая формула эквивалентна формуле 3v(ti = — vkt2 = Д, где v — переменная, не входящая в термы t\ и £2. Поэтому достаточно описать перевод для формул вида £ — v, где £ — терм, v — переменная, не входящая в £. Индукцией по построению терма £ для формулы Ф вида £ — v определим формулу Ф* в чисто предикатном языке. Положим (и = г;)* = Е(и, v); (0 = г;)* = Z{v)\ (tf — v)* = 3и ((£ = и)* к S(u, г;)); (£i + £2 = v)* = Зиг Зи2 ((£1 = uiY к (£2 = u2y к A{u\,U2,v))\ (£1 • £2 = v)* = 3ui 3u2 ((£1 = щ)* к (t2 = и2у к M(ui,u2,v)). Например, (x' = у')* есть Зг; (S(x, v) к S(y, г;)), a (V — 0)* есть 3 v(S(x,v)kZ{v)). Теперь, если дана произвольная арифметическая формула Ф, заменим в ней каждую атомную подформулу Ф на Ф* и получим формулу Ф* в чисто предикатном языке, которую будем называть предикатной записью формулы Ф. В частности, для каждой из 13 аксиом теории RA может быть построена ее пре¬ 334 
дикатная запись. Например, предикатной записью аксиомы 1) является формула УхУу (3v (5(х, v) Sz S(y, v)) D E(x,y)), а формула Ух -t3v (S(x, v) & Z(y)) является предикатной записью аксиомы 2). К предикатным записям аксиом арифметики Робинсона добавим следующие аксиомы: 14) Эх Z(x); 15) VxVy(Z(x)&Z(y)DE(x,y)); 16) VxziyS(x.y); 17) УхУуУг (S(x, у) &; S(x, z) D E(y,z)); 18) УхУуЗгА(х,у.г); 19) УхУуУиУу (A(x,y,u) A(x,y.v) D E(u,y)); 20) УхУуЗгА(х,у,г); 21) УхУуУиУу (A(x,y,u) &; A(x,y.v) D E(u,v)): 22) Ух Уу 3z M(x, y, z)\ 23) УхУуУиУу (A(x, у, и) Sz A(x, y.v) D E(u, v)). Мы получили конечно аксиоматизированную теорию. Обозначим ее RA*. Имеет место следующий факт: какова бы ни была формула Ф, RA Ь Ф <3> RA* Ь Ф*. Отсюда и из теоремы 13.11 следует, что теория RA* неразрешима. Таким образом, мы построили неразрешимую конечно аксиоматизируемую теорию в чисто предикатном языке. Тем самым теорема доказана. ■ 13.9. О логике второго порядка Наряду с элементарными языками мы неоднократно обращались к языкам второго порядка и убедились, что они обладают большими выразительными возможностями. С помощью языка второго порядка аксиоматизируется класс всех вполне упорядоченных множеств, чего нельзя сделать на элементарном языке. Арифметика Пеано второго порядка категорична в отличие от элементарной теории арифметики. На языке второго порядка можно с помощью одной формулы записать утверждение о бесконечности предметной области. Возникает законный вопрос: зачем же мы все внимание уделяли именно элементарным языкам и элементарным теориям? Все дело в теореме Гёделя о полноте исчисления предикатов, которую можно назвать основной теоремой математической логики. Эта теорема сводит поиск логических следствий из аксиом к построению формальных выводов в исчислении предикатов. 335 
В частности, множество теорем любой элементарной аксиоматизируемой теории оказывается перечислимым. Перечислимо и множество общезначимых формул любого элементарного языка. Совсем иначе обстоит дело в случае логики второго порядка. Напомним, что в языке второго порядка сигнатуры ft наряду с символами из ft имеются счетные наборы предметных переменных, а также функциональных и предикатных переменных любой валентности. Как и в случае элементарных языков, определяются понятия терма и формулы, свободные и связанные вхождения предметных, функциональных и предикатных переменных и понятие замкнутой формулы, или высказывания. Если дана алгебраическая система Ш = (М, П), то естественным образом определяется истинностное значение [Ф] высказывания второго порядка Ф в Ш. При этом возможными значениями предметных переменных считаются элементы М, возможными значениями n-местных функциональных переменных — отображения из Мп в М, а возможными значениями n-местных предикатных переменных — n-местные предикаты на М. Говорят, что высказывание Ф истинно в Ш и пишут ШТ |= Ф, если [Ф] = 1. В противном случае говорят, что Ф ложно и пишут Ш Ф. Замкнутая формула Ф языка второго порядка сигнатуры ft называется выполнимой, если существует такая алгебраическая система Ш сигнатуры П, что Ш |= Ф; в этом случае Ш называется моделью Ф. Множество замкнутых формул Г называется выполнимым, если существует такая система 9Л, что (N/Ф Е Е Г)9Л |= Ф; в этом случае Ш называют моделью Г и пишут ш ь=г. Говорят, что высказывание Ф языка второго порядка сигнатуры ft логически следует из множества высказываний Т этого же языка, и пишут Т \= Ф, если 9JI |= Ф для любой модели Ш множества Т. В этом случае Ф называется логическим следствием из Т. Таким образом, для языков второго порядка мы имеем ту же систему логических понятий, что и для языков первого порядка. Одним из важнейших достижений математической логики является теорема Гёделя о полноте, которая утверждает, что все общезначимые формулы языка первого порядка и только они выводятся в классическом исчислении предикатов, а отношение логического следования |= в случае языков первого порядка совпадает с отношением выводимости К Отсюда, в частности, следует, что множество всех общезначимых формул первого по¬ 336 
рядка перечислимо, т. е. существует алгоритм, который шаг за шагом порождает все общезначимые формулы первого порядка. Оказывается, что в случае языков второго порядка ситуация в корне другая: множество общезначимых формул второго порядка неперечислимо, а значит, оно не может быть задано каким- либо исчислением. Для установления этого факта мы сначала убедимся в огромной выразительной силе языков второго порядка. Так, в языке второго порядка определимо равенство: формула УР(Р(х) D Р(у)) в любой интерпретации выражает предикат X = у. Для элементарных языков была доказана теорема Лёвенгей- ма —Скулема: если элементарная теория имеет модель, то она имеет не более чем счетную модель. В частности, всякая выполнимая формула имеет не более чем счетную модель. Покажем, что для языков второго порядка эта теорема неверна. А именно, рассмотрим следующую формулу второго порядка: 3z3fVP(P(z)&Vx(P(x) эР(/(ж))) DVxP(x)). (13.24) Докажем, что эта формула истинна в некоторой интерпретации тогда и только тогда, когда предметная область не более чем счетна. Заметим, что (13.24) — формула в пустой сигнатуре, так что для ее интерпретации достаточно указать только предметную область. Пусть формула (13.24) истинна в интерпретации с предметной областью М. Тогда для некоторого а Е М и некоторой одноместной функции /: М —» М истинно высказывание VP (Р(а) (Р(х) D Р(/(ж))) D VxP(x)). (13.25) Пусть А = {a,f(a),f(f(a)),f(f(f(a))), ...}. Тогда А — не более чем счетное подмножество множества М, содержащее а и вместе с каждым своим элементом х содержащее также элемент f(x). Пусть Р — одноместный предикат на М, принимающий значение 1 в точности на элементах множества А. В силу истинности формулы (13.25) должно быть истинно высказывание P(a)&Vx(P(x) D P{f(x))) DVxP(x). (13.26) Так как a Е А, то Р(а) — 1. Поскольку А вместе с х содержит /(ж), то истинно высказывание Vx(P(x) D Р(/(ж))). Таким образом, истинна посылка высказывания (13.26). А поскольку само это высказывание истинно, то истинно и его заключение Vx Р(х), которое означает, что М = А, и М не более чем счетно. 337 
Докажем, что если непустое множество М не более чем счетно, то формула (13.24) истинна в интерпретации с предметной областью М. Зафиксируем бесповторный пересчет ао, ах, ... множества М (если М конечно, пересчет имеет вид ао, ... ,ап). Положим а = ао- Определим на М функцию / следующим образом: если М бесконечно, то /(а$) = сц+i', если же М конечно, то /(а*) = для г < п и f(an) — ап. В любом случае выполняется условие: если множество А С М содержит а и вместе с каждым элементом х содержит элемент /(ж), то А — М. Отсюда получаем, что какой бы одноместный предикат Р, заданный на М, мы ни взяли, будет истинно высказывание (13.26). Следовательно, истинно высказывание (13.25), а вместе с ним — и высказывание (13.24). Таким образом, мы доказали, что высказывание (13.24) истинно в некоторой интерпретации тогда и только тогда, когда предметная область этой интерпретации не более чем счетна. Рассмотрим отрицание высказывания (13.24). По доказанному, это высказывание истинно в некоторой интерпретации тогда и только тогда, когда предметная область этой интерпретации бесконечна и несчетна. Таким образом, это высказывание имеет модель, но не имеет не более чем счетной модели, и аналог теоремы Лёвенгейма—Скулема в случае языков второго порядка не имеет места. Докажем неперечислимость множества общезначимых формул второго порядка. Для этого обратимся к языку формальной арифметики. Рассмотрим формулу РА, которая является конъюнкцией формулы VP (Р(0) & Vx (Р(х) D Р(ж')) D VxP(x)), и аксиом 1)—6) теории РА. Формула РА истинна в стандартной интерпретации языка формальной арифметики. Верно и обратное утверждение: всякая модель для формулы РА изоморфна стандартной модели арифметики. Действительно, РА содержит как конъюнктивные члены аксиомы арифметики Пеано второго порядка, которая категорична. Изоморфизм моделей арифметики второго порядка, описанный в доказательстве теоремы 13.1, продолжается на операции + и •. Поэтому в любой модели для РА истинны в точности те же высказывания, что и в стандартной интерпретации. Теорема 13.16. Каково бы пи было высказывание Ф языка арифметики второго порядка, формула РА D Ф общезначима, если и только если Ф истинно в стандартной интерпретации. 338 
Доказательство. Предположим, что формула РА D Ф общезначима. В частности, она истинна во всех моделях формулы РА. Тогда и высказывание Ф истинно во всех моделях формулы РА, в частности, в стандартной интерпретации. Обратно, предположим, что Ф истинно в стандартной интерпретации. Докажем, что формула РА D Ф общезначима. Пусть Ш — произвольная интерпретация. Если Ш ^ РА. то Ш 1= (РА D Ф). Если же Ш является моделью для РА. то интерпретация Ш изоморфна стандартной, а тогда Ф истинно в Ш. В этом случае формула РА D Ф также истинна в Ш. ■ Теорема 13.17. Множество всех общезначимых формул второго порядка неперечислимо. Доказательство. Допустим, что это множество перечислимо. Тогда множество Т всех истинных элементарных арифметических высказываний разрешимо. Действительно, чтобы узнать, истинно ли данное элементарное арифметическое высказывание Ф, надо следить за перечислением множества всех общезначимых формул второго порядка и ждать, когда появится одна из формул РА D Ф или РА D -пф. Это непременно произойдет, так как ровно одно из высказываний Ф и -»Ф истинно, и но теореме 13.16 ровно одна из формул РА D Ф и РА D -»Ф общезначима. Но по теореме 13.8 множество Т неперечислимо, следовательно, оно неразрешимо. ■ Таким образом, хотя арифметика второго порядка конечно аксиоматизируема, множество ее логических следствий неперечислимо, т. е. не существует никакого аналога исчисления предикатов для логики второго порядка. 
Глава 14 МЕТОД РЕЗОЛЮЦИЙ В подразделе 9.6 было установлено (см. теорему 9.10), что множество теорем всякой аксиоматизируемой элементарной тео- рии перечислимо. Теоретически это дает возможность автоматически получать доказательства всех теорем такой теории: надо запустить алгоритм, перечисляющий теоремы этой теории, и терпеливо ждать, пока он выдаст доказательство интересующей нас теоремы. Но совершенно очевидно, что такой способ получения доказательств практически бесполезен. Поэтому различными исследователями предпринимались усилия, направленные на изобретение способов доказательства теорем, которые можно было бы на практике реализовать в виде программ для вычислительных машин. Один такой способ был предложен еще в 1930 г. французским математиком Ж. Эрбраном. Правда, этот способ был весьма труден при ручном счете. Однако с появлением вычислительной техники интерес к изобретению Эрбрана возродился, и это привело к разработке различных процедур автоматического доказательства теорем. В данной главе рассматриваются логико-математические основы метода резолюций, предложенного в 1965 г. английским философом и логиком Дж. Робинсоном. Этот метод оказался чрезвычайно эффективным и легко доступным для реализации на ЭВМ. Он сыграл важную роль в исследованиях по искусственному интеллекту — области деятельности, связанной с применением вычислительной техники для решения таких задач, которые можно было бы назвать интеллектуальными, если бы ими занимались люди. Доказательство математических теорем — одна из таких задач. 340 
14.1. Скулемовская форма высказываний Теоремы аксиоматической теории — это логические следствия из аксиом. По теореме 6.1 высказывание Ф логически следует из множества высказываний Г тогда и только тогда, когда множество Г U {—>Ф} невыполнимо. По теореме Мальцева о компактности имеет место Г \= Ф тогда и только тогда, когда существуют такие высказывания Фь ..., Фп из Г, что (Фь ..., Ф„} \= Ф, т. е. множество {Ф1, . ..,ФП,-»Ф} невыполнимо. Последнее равносильно невыполнимости высказывания Ф1 & ... & Фп & -»Ф. Таким образом, доказательство той или иной теоремы в аксиоматической теории сводится к установлению невыполнимости некоторого множества высказываний или даже одного высказывания. Очевидно, что в этой ситуации допустимы такие преобразования формул, которые дают, вообще говоря, не равносильную формулу, но сохраняют выполнимость или невыполнимость. Рассмотрим одно такое преобразование. Пусть фиксирован элементарный язык сигнатуры П. Через V обозначим множество переменных, через Т — множество всех термов сигнатуры П. Напомним, что формулы вида Р(Ч, •••, tn), где Р — предикатный символ, ti, ...,tn Е Т, называются атомами. Если А — атом, то формулы А и ->А будем называть литерами. Литеры вида А, где А — атом, называются положительными, а литеры вида -Л, где А — атом, называются отрицательными. Литеры А и -Л называются контрарными. Пусть фиксирована интерпретация Ш сигнатуры П с предметной областью М. Напомним, что оценкой называется произвольное отображение д: V —> М. Для каждой интерпретации и каждой оценки определено значение любого терма в этой интерпретации при этой оценке, а также истинностное значение любой формулы в данной интерпретации при данной оценке. Определение 14.1. Будем говорить, что формула Ф находится в стандартной форме, если каждая ее подформула вида (ФхХФ2)5 где ^ £ {&,V,D,=}, обладает таким свойством: если переменная v связана в Фх (Ф2), то не входит в Ф2 (соответственно, в Фх). Пример Формула Vx Р(х) & Q(y) находится в стандартной форме, а формула Vx Р(х) & Vx Q(x) — нет. ■ 341 
Очевидно, что путем переименования связанных переменных каждую формулу можно привести к стандартной форме, т. е. построить равносильную ей формулу в стандартной форме. Пример 14-2. Формула Vx Р(х) & Ух Q(x) равносильна формуле Ух Р(х) & У у Q(y). которая находится в стандартной форме. ■ Определение 14.2. Говорят, что формулы Ф и Ф равновыполнимы, и пишут Ф ~sat Ф, если Ф выполнима тогда и только тогда, когда Ф выполнима. Заметим, что если Ф ~ Ф, то Ф ~Sat Ф- Очевидно, что существуют только два класса эквивалентности относительно ~sat: класс выполнимых и класс невыполнимых формул. Пример 14-3. Формулы Ух Р(х, а) и Ух Р(а, х) обе выполнимы, следовательно, они равновыполнимы (но не равносильны). ■ Пример 14-4* Формула 3х Р(х,а) 8z-*P(b,a) выполнима, а формула Р(6, а) & -iP(b, а) невыполнима, следовательно, эти формулы не равновыполнимы. ■ Нашей целью является представление высказываний элементарного языка в некотором специальном виде, удобном для применения автоматических методов доказательства теорем. При этом нам придется расширять исходную сигнатуру ft путем добавления новых констант и функциональных символов. Первый шаг в преобразовании формулы Ф состоит в замене ее на равносильную формулу а(Ф), не содержащую символов D и =, в которой символ -1 стоит только перед атомами (такая формула строится из литер с помощью логических символов &,V,V, 3). Для получения формулы а(Ф) используются следующие равносильности: Ф1 d Ф2 ~ —'Фх V Ф2; Фх = Ф2 ~ (Фх & Ф2) V (—»Фх & “■Фг); —'(Фх&Фг) ~ —|фх V ~'Ф25 —'(Ф1 V Ф2) ~ —>Фх —1Ф2; —1—>Ф ~ Ф; -1 Vi; Ф ~ 3^ -пф; -»3г; Ф ~ Уи -»Ф. Пример 14-5. Если Ф есть -УУх Зу (Р(ж, у) & Q(y) D Я(у)), то формула а(Ф) строится следующим образом: -А/ж Зу (Р(ж, у) к Q{y) Э R{y)) ~ ~ Зж --Зу (Р(х, у) к Q(y) э R{y)) ~ ~ 3x\fy^(P(x,y)kQ(y) D R(y)) ~ ~ Зж Vy ->(->(Р(х, у) к Q{y)) V Р(у)) ~ ~ Зж Vy (-1—'(Р(ж, у) к Q(y)) к R(y)) ~ ~ 3xVy (P(x,y)kQ(y)k->R(y)). я 342 
Определение 14.3. Формулу будем называть а-нормальной, если к ней преобразование а уже неприменимо, т. е. она не содержит символов D и = , а символ -» стоит только перед атомами. Следующий шаг в преобразовании формулы Ф состоит в замене ее на равновыполнимую формулу |3(Ф), не содержащую символа 3. При этом нам понадобятся дополнительные константы и функциональные символы. Будем считать, что формула Ф уже находится в стандартной форме, и является а-нормальной. Строим формулу Ф* следующим образом. Если в Ф нет кванторов существования, то Ф* есть Ф. В противном случае находим первое вхождение квантора вида Зг;. Пусть это вхождение не находится в области действия никакого квантора всеобщности. Через Фобозначим формулу, полученную вычеркиванием из Ф этого вхождения квантора 3v. Тогда Ф* есть формула Ф3v[a/v\, полученная заменой в формуле Ф^ всех свободных вхождений переменной v на новую константу а. Таким образом, в этом случае Ф* — формула в более широкой сигнатуре. Если первое вхождение квантора существования 3v находится в области действия кванторов всеобщности Ущ, ... ,Уип, перечисленных в порядке их появления в формуле слева направо, то Ф* есть формула Ф3v[f{uii .. •, г/п)/х], полученная вычеркиванием из Ф квантора Зг; и заменой в полученной формуле всех свободных вхождений переменной v на терм f(ui, ...,ип), где / — новый n-местный функциональный символ. Таким образом, и в этом случае Ф* — формула в более широкой сигнатуре. Через (3(Ф) обозначим результат последовательного применения к формуле Ф операции * до полного устранения кванторов существования. Пример 14-6. Если Ф есть формула (Vx 3у Р(х, у) V Уи 3v ~^Q(u, v)) к 3z ~^P(z, z), то Ф* — это формула (VxP(x,/(x)) VVu 3v ->Q(u, г;)) к 3z -»P(z, z); Ф** — это формула (Vx P(x, /(x)) V Vu ^Q(u, g(u))) к 3z -»P{z, z); наконец, Ф*** (она же (3(Ф)) есть формула (Vx Р(х, /(х)) V Vu -»Q(u, д(и))) к -»Р(а, а). ■ Построение формулы (3(Ф) обычно называют скулемизацией в честь норвежского математика Т. А. Скулема, а саму формулу (3(Ф) называют скулемовской формой формулы Ф. 343 
Докажем, что если формула Ф замкнута, то Ф ~sat (3(Ф). Для этого достаточно показать, что для любой замкнутой а-нормаль- ной формулы Ф имеет место Ф ~Sat Ф*- Лемма 14.1. Пусть Ф есть а-нормальная формула в стандартной форме, и пусть Ф содержит вхождение квантора к г;, где к есть V или 3, которое не находится в области действия других кванторов. Через ФК|; обозначим формулу, полученную зачеркиванием в Ф этого вхождения квантора кv. Тогда Ф ~ ~ к^Фк^. Доказательство. Лемма по существу утверждает, что из а- нормальной формулы в стандартной форме любой квантор, который не находится в области действия никакого другого квантора, можно «выносить наружу», получая при этом равносильную формулу. Доказывается лемма индукцией по количеству связок & и V в формуле Ф. Если таких связок нет, то, поскольку формула Ф является a-нормальной, она имеет вид кдщ ... кпг;пФ, где Ф — литера. Тогда вхождение квантора кг;, о котором идет речь в лемме, есть Кхгц. В этом случае киФку совпадает с Ф, и утверждение очевидно. Допустим теперь, что утверждение леммы верно для любой формулы, в которой не более к связок & и V, и рассмотрим формулу Ф, в которой fc + 1 связок & и V. Если Ф имеет вид кг;Ф, то, как и рассмотренном выше случае, кг;Фкг; совпадает с Ф, и доказываемое утверждение очевидно. Рассмотрим случай, когда Ф имеет вид Ф1ХФ2, где X Е {&,V}. Допустим, что квантор кг;, о котором идет речь в лемме, входит в формулу Фх. Очевидно, что в Фх не более к связок & и V, так что в силу индуктивного предположения имеем Фх ~ kv^ikv. Тогда Ф ~ кг;Фхкг;ХФ2. Так как Ф находится в стандартной форме, то переменная v не входит свободно в Ф2, и имеет место равносильность кФхкг;ХФ2 ~ кг; (Фхкг;ХФ2). С другой стороны, очевидно, что ФхкгДФг как раз и есть Фкг;, так что утверждение доказано. Случай, когда квантор кг;, о котором идет речь в лемме, входит в формулу Ф2, рассматривается аналогично. ■ Лемма 14.2. Пусть Ф — замкнутая а-нормальная формула, находящаяся в стандартной форме. Тогда Ф ~sat Ф*. Доказательство. Если в Ф нет кванторов существования, то Ф* есть Ф, и доказываемое утверждение очевидно. Если первое вхождение квантора вида Зг; не находится в области действия никакого квантора всеобщности, то это вхождение не на¬ 344 
ходится в области действия никакого квантора, и по лемме 14.1 имеем ф ЗуФ^у. С другой стороны, в этом случае Ф* есть формула Ф3v[a/v\, полученная заменой в формуле Ф^у всех свободных вхождений переменной v на новую константу а. Таким образом, достаточно доказать, что ЗуФ^у ~sat $3v[a/v\. Обозначим формулу Фчерез Ф и докажем, что 3v Ф ~Sat Ф[а/у]. Пусть формула Ф [a/у] выполнима, т. е. истинна в некоторой интерпретации. Тогда, очевидно, в той же интерпретации истинна и формула Зу Ф, т. е. эта формула также выполнима. Обратно, пусть формула Зу Ф выполнима. Тогда существует интерпретация, в которой эта формула истинна. Истинность формулы Зу Ф означает, что существует такая оценка д} при которой в этой интерпретации истинна формула Ф. Придадим константе а значение д(у). Тогда в полученной интерпретации будет истинна формула Ф[а/гф значит, она также выполнима. Пусть первое вхождение квантора существования Зу находится в области действия кванторов Ущ, ... ,Уип, перечисленных в порядке их появления в формуле слева направо. Тогда квантор Ущ не находится в области действия других кванторов, и по лемме 14.1 имеет место Ф ~ Применяя лемму 14.1 к формуле Ф\/иц получаем Ф ~ Ущ Ущ Ф\/и1\/и2- Продолжая эти рассуждения дальше, получаем Ф ~ Ущ Ущ ... Уип Ф\/гп\м2...Vwn* Тогда в формуле Ф\/и1Уи2...Уип квантор Зу не находится в области действия других кванторов, и по лемме 14.1 имеет ме- сто <&vUlv«2...v«n ~ Зг>Ф, где Ф есть Ф^и^и2...^ип3ь- Тогда Ф ~ ~ Ущ Ущ ... Уип Зу Ф. С другой стороны, Ф* есть формула Ф3г,[/(иь ..., ип)/у], полученная вычеркиванием из Ф квантора 3v и заменой всех свободных вхождений у на терм /(щ, ...,ип), где / — новый функциональный символ. В формуле Ф ..., ип)/у] можно «вынести наружу» Ущ Ущ ... Уип подобно тому, как мы это сделали с формулой Ф, и получить формулу Ущ Ущ ... Уип Ф[/(г/1, ..., un)/v\, равносильную ФзгД/(^ъ • ••, ип)/у]. Теперь достаточно доказать, что Vui Ущ ... Уип Зу Ф ~8at \/щ Ущ ... Уип Ф[/(щ, ..., ип)/у]. Пусть формула Ущ Ущ ... Уип Ф[/(щ, ..., ип)/у\ выполнима, т. е. истинна в некоторой интерпретации. Тогда в той же интерпретации истинна и формула Ущ Ущ ... Уип Зу Ф, т. е. она также выполнима. Обратно, пусть формула Ущ Ущ ... Уип Зу Ф выполнима. Тогда существует интерпретация, в которой эта формула истинна. Истинность формулы УщУщ ... Уип3у Ф означает, что 345 
существует функция /*, которая каждому набору ар ... , ап сопоставляет такой элемент b, что в этой интерпретации истинна формула Ф при оценке, которая сопоставляет переменным гр, ..., ип значения ар . ..,ап, а переменной v — значение Ь. Придадим функциональному символу / в качестве значения эту функцию /*. Тогда формула Уи\ Mu2 ... Уип Ф[/(фр ..., un)/v] будет истинна в полученной интерпретации, значит, она также выполнима. ■ Из леммы 14.2 немедленно следует, что замкнутая формула Ф и ее скулемовская форма (3(Ф) равновыполнимы. 14.2. Дизъюнктная форма высказываний В скулемовской форме Р(Ф) высказывания Ф используются кванторы всеобщности и связки &, V, причем последняя встречается только перед атомами. Так как (3(Ф) есть а-нормаль- ная формула в стандартной форме, то по лемме 14.1 она равносильна формуле вида Уу\... Ууп Ф, где Ф - бескванторная формула, построенная из литер с помощью & и V. Пользуясь законом дистрибутивности Фо V Ф1&Ф2 ~ (Фо V Ф!)&(Ф0 V Ф2), можно привести Ф к конъюнктивной нормальной форме вида D\ & ... & Dm, где каждая из формул Di {г — 1, ... , т) есть дизъюнкт, т. е. имеет вид Li V ... где L1, ... , — литеры. Таким образом, мы привели высказывание (3(Ф) к виду Теперь вспомним, что верна равносильность Vv (Фх & ... & Фш) ~ Vv Фх & ... & Vv Фт. Применяя эту равносильность п раз, приведем (14.1) к виду Vyi... Vyn £>!&...& Vyi... Ууп Dm. Наконец, для каждого г = 1, ..., т из формулы \/щ ... Ууп Di уберем кванторы по переменным, которые не встречаются в дизъюнкте Di. В результате получим высказывание вида где Ущ означает ряд кванторов всеобщности по переменным, входящим в дизъюнкт Di. Это высказывание равносильно высказыванию (3(Ф) и равновыполнимо с высказыванием Ф. Очевидно, что высказывание (14.2) выполнимо тогда и только тогда, Vyi.. .Vy„ (£>1 & ... & Ап). (14.1) MuiDih ... & Уит Ап, (14.2) 346 
когда выполнимо множество высказываний Т>(Ф) = {Viii Z?i, ..., Уйш Dm}. Следовательно, исходное высказывание Ф выполнимо, если и только если выполнимо множество Т>(Ф). Каждое высказывание из множества Р(Ф) можно однозначно восстановить по его бескванторной части, поэтому будем представлять это множество в виде множества дизъюнктов £>(Ф) = {£>ь (14.3) Поскольку множество Р(Ф) строится однозначно по Ф, будем называть это множество дизъюнктным представлением высказывания Ф. Таким образом, представление высказывания Ф в виде множества дизъюнктов получается следующим алгоритмом: 1) высказывание Ф приводим к стандартному виду и строим формулу а(Ф), которая равносильна формуле Ф, не содержит символов D и =, а символ -» стоит в ней только перед атомами; 2) по высказыванию а(Ф) строим скулемовскую форму (3(Ф) формулы Ф, которая равносильна формуле вида Уу\ ... \/уп Ф, где Ф — бескванторная формула, построенная из литер с помощью связок & и V, при этом формулы (3(Ф) и Ф равновыполнимы; 3) в формуле (3(Ф) отбрасываем кванторы, а бескванторную часть Ф приводим к конъюнктивной нормальной форме и получаем формулу у(Ф) вида D\ & ... & Dmi где D\, ..., Dm — дизъюнкты; тогда искомое множество есть Р(Ф) = {Р>ь . • •, Dm}. Пример 14-7. Пусть Ф есть формула -»(\/ж 3 у Р(ж, у) 8zVu\/v (Р(и, v) D R(u)) D Уг R(z)). Тогда а(Ф) есть формула Ух 3у Р(ж, у) &УиУу (—«Р(гх, v) У Р(?г)) & 3z а (3(Ф) есть формула \/ж Р(ж, /(ж)) к,УиУу (-1 Р(гх, х) V Д(гх)) & -»Д(а). Наконец, у(Ф) есть формула Р(ж, /(ж)) & (-iP(w, у) У Д(гх)) & -iP(a), и £>(Ф) = {Р(ж, /(ж)), ~>Р(и, v) V Д(и), --Д(а)}- ■ Важно понимать и помнить, что в (14.3) каждый из дизъюнктов Di есть лишь сокращенное обозначение высказывания ViiiDi. Поскольку связанные переменные можно переименовывать, то несущественно, какие переменные используются в дизъюнктах. 347 
Пример 14-8. Дизъюнкты Р(/(ж),а) V -»Q(y) и P(f(y),a) V V Q(z) представляют равносильные высказывания Vx Vy (P(f (х),а) V ~>Q(y)) и \/y\/z (P(f (у),а) V -^Q(z)). я Порядок литер в дизъюнкте Li V.. .VL^ не играет роли, поэтому его можно рассматривать как множество литер {Li, Введем в рассмотрение пустой дизъюнкт _L, и будем считать _L атомом. Дизъюнкт D принимает значение 1 в данной интерпретации при данной оценке, если и только если в D существует литера, принимающая значение 1. Поскольку в пустом дизъюнкте _1_ вообще нет литер, то он не может быть истинным ни в какой интерпретации ни при какой оценке. Следовательно, _L обозначает 0, т. е. ложь. Очевидно, что AV_LVB~AVB, _LV_L~_L. 14.3. Теорема Эрбрана Допустим, что нас интересует вопрос о выполнимости высказывания Ф. Очевидно, что в этом случае достаточно решить аналогичный вопрос для его дизъюнктного представления Р(Ф). Оказывается, что в этом случае возможные модели можно искать среди довольно ограниченного класса возможных интерпретаций — так называемых эрбрановских интерпретаций. Пусть дано некоторое множество дизъюнктов С. Обозначим через CS(C) множество всех констант, а через FSk(C) — множество всех /с-местных функциональных символов, встречающихся в дизъюнктах из С. Индукцией по п определим множество замкнутых термов Нп. Положим Hq = CS(C), если это множество не пусто. Если же в дизъюнктах из С нет ни одной константы, пусть Hq = {а}, где а — произвольная константа. Допустим, что для некоторого i > 1 определено множество термов Hi. Тогда Hi+1 = Hi U ... ,tk) | / € FSk(C);ti, ... ,tk e € Ну, к € N}, t. e. Hl+ \ получается добавлением к Hi всех термов f{t\, ... ,tk), где / — (^-местный) функциональный символ, 11, • • • ,tk € Hi. Пример 14-9. Пусть С = -ЬР(х) V P(f(x)), P(h(x, х)), -P(h(u, v)) V Q(v)}. Тогда H0 = {а}, Нi = {а, /(а), h(a,a)}, Н2 = {а, /(а), h(a, а), /(/(а)), f(h(a,a)), h{f(a),/(а)), h{f(a), h(a, a)), h(h(a, а), /(а)), h(h(a, a), h(a, а))}. ■ 348 
Положим Н(С) = |J Hi. Множество Н(С) называется эрбра- г—0 новским универсумом для С. Очевидно, что эрбрановский универсум Н(С) состоит в точности из всех термов, построенных из функциональных символов и констант, встречающихся в С (если же констант нет, то используется константа а). Множество Hi будем называть г-м уровнем эрбрановского универсума. Пусть С — произвольное множество дизъюнктов, PSk(C) — множество всех /с-местных предикатных символов, встречающихся в дизъюнктах из С. Множество AS(C) = {P(tu ...,tk)\Pe PSk(C); tls ..., tk e H(C); ke N} называется множеством атомов для С. Определение 14.4. Пусть С — произвольное множество дизъюнктов, D — дизъюнкт из С. Основным примером дизъюнкта D называется любой дизъюнкт, полученный подстановкой в D элементов эрбрановского универсума Н(С) вместо переменных. Пример 14-10. ПустьC = {P(x)\/P(f(x))} -»Р(а), -*P(f(a))}. Тогда Р(а) V P(f(a)) и Р(/(а)) V P(f(f(a))) суть основные примеры дизъюнкта Р(х) V P(f(x)) из С. ■ Определение 14.5. Эрбрановская интерпретация для множества дизъюнктов С определяется следующим образом. Ее носителем является множество Н(С). Если a G CS(C), то а = а. Если / Е FSn(C), то / — функция, которая каждому набору /ii, ..., hn элементов из Н(С) сопоставляет терм /(Лт, ..., /гп) Е е н(С). Таким образом, эрбрановская интерпретация —это не то же самое, что интерпретация, носителем которой является эрбрановский универсум. Важно, что константы и функциональные символы интерпретируются определенным выше стандартным образом. Различные эрбрановские интерпретации отличаются друг от друга интерпретацией предикатных символов. Пример 14-11• Пусть С = {Р(х) V P(f(x)), Р(а), ->P(f(z)) V Q(u), ->Q(g{y,y))}. Тогда Н(С) = {а, /(а), д(а,а), /(/(а)), f(g(a,a)), g(aj(a)), ...}. В случае эрбрановской интерпретации значения сигнатурных символов таковы, что а = a, f(h) = f{h) для любого h Е Н(С), 349 
g(huh2) = g(hi,h2) для любых h\,h2 G H(C). Каждый из предикатных символов Р и Q может интерпретироваться различными способами. Положим, например, P(h) = 1 для любого h G Н{С), Q(/ii,/i2) = 0 для любых hi,h2 G Н(С). В этой интерпретации первый дизъюнкт (представляющий формулу Ух(Р(х) V P(f(x)))) имеет значение 1, а, скажем, третий дизъюнкт (представляющий формулу VzVu (~^P(f(z)) V Q(u))) имеет значение 0. ■ Каждая эрбрановская интерпретация для множества дизъюнктов С полностью характеризуется интерпретацией предикатных символов, а именно, множеством атомов для С, истинных в этой интерпретации. Важность рассмотрения эрбрановских интерпретаций обусловлена следующей теоремой. Теорема 14.1. Множество дизъюнктов выполнимо тогда и только тогда, когда оно имеет эрбрановскую модель. Доказательство. Нужно доказать, что множество дизъюнктов С выполнимо, если и только если существует эрбрановская интерпретация для С, в которой все дизъюнкты из С истинны, т. е. истинна формула, представленная множеством дизъюнктов С. Очевидно, что если существует эрбрановская модель для С. то С выполнимо. Докажем обратное утверждение. Допустим, что множество дизъюнктов С выполнимо, и пусть Ш — его модель с носителем М. Для произвольных с G С5(С), / G FS(C), Р G PS(C) посредством с*,/*,Р* будем обозначать их значения в интерпретации Ш. Определим отображение о : Н{С) —» М. Для констант с G CS(C) положим со (с) = с*. Если CS(C) = 0 и Hq = {а}, то пусть о (а) — произвольный фиксированный элемент из М. Если для термов П, ..., G Н(С) определены значения ЦП), ..., <o(tn), и / G FSn(C), то Ц/(Д, ... ,tn)) = = /*(о(Д), ..., со(£п)). Заметим, что если CS(C) ф 0, то для любого терма t G Н(С) элемент o(t) есть t* — значение терма t в интерпретации Ш. Теперь построим эрбрановскую интерпретацию, которую мы обозначим Н(Ш), в определенном смысле согласованную с моделью Ш. Для задания эрбрановской интерпретации достаточно указать значения предикатных символов. Для Р G PSn(C) предикат Р, интерпретирующий предикатный символ Р в Р(9Л), определим так: Р(Д, ... ,£n) = Р*(о(Н), ..., с>(£п)) для £i, ...,£n G Р(С). Докажем, что так построенная интерпретация Н(Ш) является моделью множества дизъюнктов С. Пусть С — {D1, ..., Dm}. Тогда С представляет формулу 350 
Vyi ... Myp{Di L>m), где щ, ..., yp — все переменные, входящие в дизъюнкты Z?i, . Допустим, что эта формула ложна в интерпретации Н(Ш). Покажем, что в таком случае она ложна и в интерпретации Ш. Отсюда будет следовать доказываемое утверждение, так как Ш — модель для С. Итак, пусть формула, представленная множеством дизъюнктов С, ложна в Н(Ш). Тогда существует оценка v : V —» if (С), при которой некоторый дизъюнкт Di принимает значение 0 в интерпретации if (9Л). Пусть этот дизъюнкт имеет вид L\ V... VL&, где Li, ... , Lk — литеры. Пусть L G {Li, ..., L/Д. Тогда литера L также принимает значение 0 в интерпретации Н(Ш) при оценке v. Литера L имеет вид Р(П, ..., £п) или ... ,tn) для неко¬ торого предикатного символа Р G PS'(C) и некоторых термов П, ...,£п. Для доказательства утверждения достаточно показать, что существует такая оценка переменных v‘' : V —» М, что истинностное значение любого атома при оценке г/ в интерпретации совпадает с истинностным значением этого атома при оценке v в интерпретации Н(Ш). Действительно, так как при оценке v литера L принимает значение 0 в интерпретации if(9Jt), то при оценке vf эта литера примет значение 0 в интерпретации Ш. Поскольку это верно для любой литеры L G {Li, ... , L&}, то при оценке г/ дизъюнкт Di примет значение 0 в интерпретации Ш. Значит, формула, представленная множеством дизъюнктов С, ложна в Ш. Оценку vf определим так: vf(x) = ы(у(х)) для любой переменной х. Используя определение отображения о, нетрудно доказать, что имеет место равенство vf(t) = u>(v(t)) для любого терма t. Значениями термов Н, • • • Дп ПРИ оценке v будут некоторые термы /гх, ... G if (С). Тогда значениями этих термов при оценке vf будут элементы сo(/ii), ..., o)(hn) G М. Значением атома P(ti, ... ,£п) при оценке vf в интерпретации Ш будет Р*(<о(/ц), ... , с>(/in)), а значением этого атома при оценке г; в интерпретации Н(Ш) будет P(h\, ..., /гп). По определению интерпретации if(9Jt) эти значения совпадают. Значит, vf — искомая оценка. ■ Теорема 14.1 показывает, что для доказательства невыполнимости множества дизъюнктов С достаточно убедиться, что оно не имеет эрбрановской модели. Поскольку в эрбрановских интерпретациях для С константы и функциональные символы имеют фиксированный смысл, все внимание должно уделять- 351 
ся интерпретации предикатных символов, которую можно рассматривать как приписывание истинностных значений атомам из AS (С). Выполнимость множества дизъюнктов С означает, что существует такое приписывание истинностных значений атомам из AS (С), при котором все основные примеры дизъюнктов из С истинны. Следующая теорема называется теоремой Эрбрана. Теорема 14.2. Множество дизъюнктов С невыполнимо тогда и только тогда, когда существует конечное невыполнимое множество основных примеров дизъюнктов из С. Доказательство. Допустим, что существует конечное невыполнимое множество основных примеров дизъюнктов из С. Это означает, что не существует такой эрбрановской интерпретации, в которой все основные примеры всех дизъюнктов из С были бы истинны. Тогда по теореме 14.1 множество С невыполнимо. Обратно, пусть множество дизъюнктов С невыполнимо. Тогда по теореме 14.1 не существует эрбрановской модели для С, а это означает, что невыполнимо множество всех основных примеров дизъюнктов из С. По локальной теореме Мальцева существует конечное невыполнимое подмножество этого множества. ■ Пример 14-12. Пусть С = {Р(х, /(а)), ^Р(и, v) V Q(f(v)), -Q(z)}. Среди основных примеров дизъюнктов из С есть такие: Р(а,/(а)), -»Р(а,/(а)) VQ(/(/(a))), ->Q(/(/(a))). Очевидно, что они не могут быть истинны одновременно, значит, множество С невыполнимо. ■ Теорема Эрбрана сводит проблему доказательства теоремы в аксиоматической теории к задаче установления невыполнимости некоторого (вообще говоря, бесконечного) множества пропозициональных формул. Действительно, основной пример всякого дизъюнкта строится с помощью &, V из атомов, которые независимо друг от друга могут принимать истинностные значения 0 и 1, т. е. играют ту же роль, что и пропозициональные переменные. Поэтому построение эрбрановской модели — это то же самое, что задание оценки для пропозициональных переменных. 352 
Теперь процедуру автоматического доказательства теорем, основанную на теореме Эрбрана можно представлять себе следующим образом. Пусть дана конечная система аксиом Г, и мы хотим убедиться, что данное высказывание Ф является теоремой, т. е. Г |= Ф. Последнее, как мы знаем, означает, что невыполнима формула Ф & —*Ф, где Ф — конъюнкция всех формул из Г. Для этой формулы построим представляющее ее множество дизъюнктов S. Пусть Si — множество всех основных примеров дизъюнктов из 5, полученных подстановкой вместо переменных термов из множества НДля каждого г = 0,1, 2, ... множество Si конечно и может быть явно выписано. Проверим, является ли множество So выполнимым. Если это не так, то Г |= Ф. Если же множество So выполнимо, переходим к рассмотрению множества Si. Вообще, каково бы ни было г, если множество Si невыполнимо, то Г |= Ф, и алгоритм завершает работу. В противном случае проверяется выполнимость множества ЗДц. По теореме Эрбрана, если на самом деле Г \= Ф, то найдется конечное невыполнимое множество основных примеров дизъюнктов из S. В этих основных примерах используются термы из какого-то конечного уровня Нп эрбрановского универсума, следовательно, Sn невыполнимо, и это будет обнаружено. В описанной процедуре существенную роль играет проверка выполнимости конечного множества пропозициональных формул. Очевидно, что практически немыслимо решать эту задачу с помощью истинностных таблиц, так как с увеличением п возрастает количество термов в множестве Нп, а уж количество формул в Sn возрастает до астрономических величин. Пример 14-13. Пусть S = {Р(х, д(х), у, h(x, у), z, f(x, у, z)), “■Р(и, V, i(v),w,j(v, w), ж)}. Можно убедиться, что самое первое невыполнимое множество основных примеров дизъюнктов из S есть S5, но в множестве Н$ порядка 1064 элементов, а в множестве S5 порядка 10256 формул. Построение истинностных таблиц для такого множества формул — непосильная задача даже для вычислительной машины. ■ Избежать построения истинностных таблиц при проверке выполнимости множества пропозициональных дизъюнктов позволяет метод резолюций, к рассмотрению которого мы переходим. 353 
14.4. Метод резолюций для логики высказываний Пусть С — конечное или бесконечное множество замкнутых дизъюнктов, т. е. не содержащих переменных. Как отмечалось ранее, в этом случае атомы можно рассматривать как пропозициональные переменные, принимающие значения 0 и 1 независимо друг от друга. Будем рассматривать дизъюнкты как множества литер. Это значит, что порядок литер в дизъюнкте не играет никакой роли, и в дизъюнкте нет повторяющихся литер. Напомним, что пустой дизъюнкт обозначается _L и считается тождественно ложным. Определение 14.6. Пусть D\ = С\ V Р, Р2 = С2 V -»Р, где (71,(72 — дизъюнкты, Р — пропозициональная переменная, т. е. Pi и Р>2 содержат контрарные литеры Р и -»Р. Резольвентой дизъюнктов D\ и Р>2 называется дизъюнкт С\ V С2. Эту резольвенту будем называть резольвентой по переменной Р. В том случае, когда дизъюнкты D\ и D2 имеют вид А и -»А, где А — атом, их резольвентой считается пустой дизъюнкт _L. Пример 14-14 • Дизъюнкт Q V R является резольвентой дизъюнктов Р V R и -»Р V Q V Р по переменной Р. ■ Теорема 14.3. Пусть дизъюнкт D является резольвентой дизъюнктов D\ и D2. Тогда {Z?i,Z?2} 1= D. Доказательство. Пусть Pi и Р2 имеют соответственно вид С\ V Л и С2 V ->Л, где Ci и С2 — дизъюнкты, Л — атом. Тогда D есть Ci V С2, a {Pi, Р2} {= Р означает, что для любой оценки д, если g{C\ V Л) = 1 и g(C2 V -»Л) = 1, то д{С\ V С2) = 1. Пусть д — произвольная оценка, для которой д(С\ V А) = 1, g(C2 V -ь4) = 1. Если р(А) = 0, то д{С\) = 1, а если д(А) = 1, то д(С2) = 1. Таким образом, в любом случае g(D) = 1, что и требовалось доказать. ■ Определение 14.7. Правило резолюции позволяет из двух дизъюнктов, содержащих контрарные литеры, получить их резольвенту. Резолюционным выводом дизъюнкта Р из множества дизъюнктов С называется конечная последовательность дизъюнктов, в которой каждый дизъюнкт либо принадлежит С, либо получается из двух предшествующих дизъюнктов по правилу резолюции, а последний дизъюнкт есть Р. Если существует революционный вывод дизъюнкта Р из множества дизъюнктов С, пишут СЕР. 354 
Пример 14-15. Следующая последовательность дизъюнктов является революционным выводом пустого дизъюнкта из множества дизъюнктов С = {-»Р V Q, -<Q. Р}: 1) -1Р V Q; 2) — 3) Р; 4) -iP (получено по правилу резолюции из 1) и 2)); 5) _1_ (получено по правилу резолюции из 3) и 4)). ■ Теорема 14.4. Если С b Р, то С \= D. Доказательство. Пусть д такая оценка пропозициональных переменных, что д(С) — {1}. Пусть Pi, ..., Dn — резолю- цонный вывод дизъюнкта D из С (это означает, в частности, что Dn есть D). Индукцией но г докажем, что g(Di) = 1. Если дизъюнкт Di принадлежит множеству С, то g(Di) = 1 по условию. В частности, g(Di) = 1. Пусть для всех j < г доказываемое утверждение верно, и пусть дизъюнкт Di получен по правилу резолюции из дизъюнктов Dи Р/, где /с, / < г, так что g(D^) = = v(Di) = 1. Тогда по теореме 14.3 g(Di) — 1, что и требовалось доказать. ■ Метод резолюций может быть использован для доказательства невыполнимости множества дизъюнктов. Теорема 14.5. Если С b _L, то множество С невыполнимо. Доказательство. Невыполнимость С означает, что не существует оценки д, при которой все дизъюнкты из С принимают значение 1. Допустим, что д(С) = {1} для некоторой оценки д. Если при этом Chi, то по теореме 14.4 д(Е) — 1, что невозможно. ■ Следующая теорема называется теоремой о полноте метода резолюций для логики высказываний. Теорема 14.6. Если множество С невыполнимо, то С h _L. Доказательство. Пусть множество дизъюнктов С невыполнимо. По локальной теореме для логики высказываний (см. теорему 2.29) существует конечное невыполнимое подмножество С множества С. Если мы докажем, что С b _1_, то, очевидно, будет доказано Chi. Итак, пусть С — конечное невыполнимое множество дизъюнктов. Индукцией по количеству переменных в дизъюнктах из С докажем, что С Ь _L. Если в С вообще нет переменных, то С состоит только из пустого дизъюнк¬ 355 
та _1_, и тогда С Ь _L. Пусть существует революционный вывод пустого дизъюнкта из любого невыполнимого множества дизъюнктов, содержащего < и переменных, и пусть С' — конечное невыполнимое множество дизъюнктов, в котором п +1 переменных. Пусть Р — переменная, входящая в СЗаметим, что если некоторый дизъюнкт из С содержит одновременно литеры Р и -»Р, то такой дизъюнкт является тавтологией и не влияет на выполнимость или невыполнимость множества С. Следовательно, при удалении таких дизъюнктов из невыполнимого множества получается невыполнимое множество дизъюнктов. Поэтому можно считать, что в С нет дизъюнктов, содержащих одновременно литеры Р и -IР. Через Cq обозначим множество всех тех дизъюнктов из С', которые не содержат переменную Р, через С+ обозначим множество дизъюнктов из С', которые содержат литеру Р, а через С_ — множество дизъюнктов из С', которые содержат литеру -»Р. Допустим, что множество С_ пусто. Тогда каждый дизъюнкт, содержащий переменную Р, имеет вид D V Р, где D — дизъюнкт. В этом случае множество дизъюнктов С'0 непусто и невыполнимо. Действительно, если бы нашлась оценка д, для которой д(С'0) = {1}, то, положив д(Р) = 1, мы получили бы, что д(С\_) = {1}, значит и g(Cf) = {1}, что невозможно, так как по условию множество С невыполнимо. Множество Cq содержит < п переменных, и по индукционному предположению имеет место Cq b _L, следовательно, С Ь _1_. Аналогично доказывается, что С В _L, если множество С+ пусто. Рассмотрим теперь случай, когда множества С_ и С+ оба непустые. Обозначим через С[ множество всех резольвент дизъюнктов из С_ и С+ по переменной Р. Докажем, что множество С'0 U С[ невыполнимо. Допустим противное, т. е. что для некоторой оценки д имеет место д(С'0) = {1} и д(С[) = {1}. Продолжим эту оценку на переменную Р, положив д(Р) = 1. Так как множество С невыполнимо, то в нем найдется дизъюнкт, который при такой оценке принимает значение 0. Очевидно, что он принадлежит множеству С_ и имеет вид D\ V —*Р, причем g{D\) = 0. Если же оценку д продолжить на переменную Р, положив д(Р) = 0, то найдется дизъюнкт из Cf+ вида Р>2 V Р, где g(D2) — 0. Резольвента дизъюнктов Z?i V-»P и P2VP есть P1VP2 и принадлежит множеству С[, следовательно, g(D\ V D2) = 1. С другой стороны, g(Di V D2) = g{Di) V g(D2) = 0. 356 
Полученное противоречие показывает, что на самом деле множество Cq U С[ невыполнимо. В этом множестве п переменных, и по индукционному предположению из него выводим пустой дизъюнкт. Так как каждый дизъюнкт множества CqUC[ выводим из (Г, в силу транзитивности отношения выводимости получаем С Ь _L. ■ Теоремы 14.5 и 14.6 вместе означают, что множество дизъюнктов С невыполнимо тогда и только тогда, когда С Ь _L. 14.5. Алгоритм унификации Метод резолюций для логики высказываний дает способ установить невыполнимость множества дизъюнктов без построения истинностных таблиц. В применении к элементарным языкам этот метод дает нечто большее: он позволяет обойтись без порождения множеств основных примеров дизъюнктов. Для описания метода резолюций в логике предикатов нам потребуются некоторые технические понятия и конструкции. Пусть фиксирован некоторый элементарный язык сигнатуры П. Подстановкой называется всякая частичная функция 0 из множества переменных V в множество Т всех термов сигнатуры П. При этом дополнительно предполагается, что область определения функции 0 конечна. Если 0 — подстановка с областью определения {xi, . ..,xm}, причем 0(х*) = Si (г = 1, ...,т), то пишут 0 = {х\ —> s 1, ..., хш —» sm}. Пустая подстановка обозначается £. Пример 14-16. Область определения подстановки 9 = {х -> f(z), у ^ о, z у у} состоит из х, у и г, причем 0(х) = /(z), Q(y) — a, Q(z) = у. ■ Для каждого терма t индукцией по его построению определяется терм tQ — результат применения подстановки 0 к терму t. Если t есть х £ V, причем х £ {xi, ... , хп}, то t6 = t. Если терм t есть х £ {xi, ...,хп}, то £0 = 0(х). Если терм t имеет вид /(Н, •.. Дп), где / — функциональный символ, ti, ... £ Т, то tQ = /(Нб, ... На этом определение терма £0 завершено. Результат применения подстановки 0 = {xi —> si, ..., xm -» sm} 357 
к терму t — это результат подстановки в t термов s 1, ..., sm вместо всех вхождений переменных яд, ..., хт соответственно. Пример 14-17. Пусть 0 = {х -> /(х), у -> g(x,z)}, а терм t есть g(f(x),g(f(z),y)). Тогда *0 есть g(f(f(x)),g{f(z),g(x,z))). я Для каждой формулы Ф индукцией по ее построению определяется формула Ф0 — результат применения подстановки 0 к формуле Ф. Если Ф есть атом P(ti, ...,£п), где Р — предикатный символ, £i, ..., G Т, то Ф0 есть формула P(Qt х, ..., 0^). Если Ф имеет вид Ф1ХФ2, где X G {&, V, D, =}, то Ф0 есть формула (Фх0)Х(Ф20). Если Ф имеет вид -пф, то Ф0 есть формула -ч(Ф0). Наконец, если Ф имеет вид кхФ, где к G {V, 3}, х G V, причем х £ {xi, ... , хп}, то Ф0 есть формула кх(Ф0). Если же Ф имеет вид кхФ, где к G {V, 3}, х G {яд, . ..,хп}, то Ф0 есть формула кх(Ф0'), где 0' = 0|{Xl,...,xn}\{a:}j т-е- есть сужение подстановки 0 путем выбрасывания переменной х из ее области определения. На этом определение формулы Ф0 завершено. По сути, результат применения подстановки 0 = {х\ —» —» s 1, ..., хт —» sm} к формуле Ф - это результат подстановки в Ф термов s 1, ..., Sm вместо свободных вхождений переменных яд, ..., хт соответственно. Определение 14.8. Произведением (или композицией) подстановок 0 = {яд -> t\, . . . ,xn->tn} И X = {yi Ui, .. ^Ут-^Um} называется подстановка, обозначаемая 0оХ, которая получается из множества {яд —» £хХ, ... , хп —» £nX,yx —» гд, ..., ут —» ит } вычеркиванием всех элементов Xj —» ^Х, для которых tjX есть Xj, и всех элементов гд, для которых у* G {хх, ... ,хп}. Пример 14-18. Найдем произведение подстановок 9 = {х -> /(у), У -> И X = {х —» а, у —» 6, г —» у}. Здесь п = 2, га = 3. В роли xi, Х2 из определения 14.8 выступают переменные х, у, а в роли yi, У2,Уз — переменные х, у, г. При этом *1 = f(y), t2 = z, щ = а, и2 = Ь, щ = у, t{k = /(6), Ы = У- Тогда {хх -> *iX, х2 -» i2X, 2/1 -> «1, У2 -> «2, Уз -> «з} = = {х -» /(6), у ->• у, х -> а, у -» Ъ, z -> у}. Из этого множества следует вычеркнуть у —» у, х —> а и у —>6. В результате получаем, что 0 о X = {х —» /(b), г —» у]. ■ 358 
Основное свойство произведения подстановок состоит в том, что £'(0 о X) = (£0)Х для любого выражения (терма или формулы) Е. Заметим, что £ о 0 = 0 о £ = 0, какова бы ни была подстановка 0. Определение 14.9. Подстановка 0 называется унификатором для множества выражений {Ец, ..., £&}, если £i0 = ... = = Еф. Множество выражений называется унифицируемым;, если для него существует унификатор. Пример 14-19. Множество атомов {Р(а,у), Р(ж,/(&))} унифицируемо. Подстановка {х —> а, у —» /(&)} — его унификатор. Определение 14.10. Унификатор о для множества атомов W называется наиболее общим унификатором для W, если, каков бы ни был унификатор 0 для W, существует такая подстановка X, что 0 = о о X. Оказывается, для любого унифицируемого множества атомов существует наиболее общий унификатор. Он может быть найден с помощью следующего алгоритма. Пусть дано множество атомов W. Очевидно, что множество W может быть унифицируемым, только если во всех атомах из W используется один и тот же предикатный символ. Будем считать, что W удовлетворяет этому условию. Множество рассогласований для W получается следующим образом. В атомах из W выявляем первую слева позицию, на которой не во всех выражениях из W стоит один и тот же символ, и для каждого атома из W выписываем те термы, которые начинаются с этой позиции. Полученное множество термов и есть множество рассогласований для W. Пример 14-20. Пусть Ж = {P(x,f(y,z)), Р(х,а), Р(х,g(h(k(x))))j. Мы видим, что начала Р(х, во всех этих атомах одинаковые, а различия начинаются с пятой позиции, и множество рассогласований для W есть {/(у, г), a, g(h(k(x)))}. ■ Алгоритм унификации работает по шагам. На к-м шаге строятся множество атомов W\~ и подстановка а&. При к = 0 полагаем Wo = W, о о = г. Пусть Wk и о к построены. Если Wk состоит только из одного атома, то о к — наиболее общий унификатор для W, и выполнение алгоритма на этом заканчивается. Если же в Wk два или более атомов, то находим множество рассогласова¬ 359 
ний для Wk-> которое обозначим DЕсли среди термов из множества Dk есть переменная Vk и терм tтакие, что Vk не входит в то выбираем одну такую пару, полагаем 0^+1 = Ок°{ук —> Wk+1 = Wifely tк} и переходим к следующему шагу. В про¬ тивном случае W не унифицируемо, и выполнение алгоритма заканчивается. Пример 14.21. Пусть W = {P(a,x,f(g(y))),P{z,f(z)J{u))}. Тогда qq = е, Wo — W. Так как в Wo более одного элемента, найдем множество рассогласований для него: Do — {a, zj. Переменная г не входит в терм а, так что полагаем о\ = {z —» a}, VEi = = W0{z -э а} = {Р(а,ж,/0(у))),Р(а,/(а),/(и))}. Так как в более одного элемента, найдем множество рассогласований для него: D\ = {ж,/(а)}. Переменная х не входит в терм /(а), поэтому полагаем о 2 = о {х -> /(а)} = {2 а,х -> /(а)}, Т2 = = Wi{x -> /(а)} = {Р(а, /(а), /(у(у))), Р(а, f(a),f(u))}. Так как в W2 более одного элемента, найдем множество рассогласований для него: D2 — {д(у),и}. Переменная и не входит в терм д(у), по- этому о3 = о2 о {и -> д(у)} = {z -> а,х -> /(а), и -» у(у)}, W3 = = ИДи —> у(у)} = {Р(а,/(а),/(у(у)))}- Множество W3 состоит из одного атома, и аз — наиболее общий унификатор для W. ш 14.6. Метод резолюций для элементарных языков Опишем метод резолюций для установления невыполнимости множеств дизъюнктов элементарного языка. Определение 14.11. Если две или более литер дизъюнкта D имеют наиболее общий унификатор 0, то дизъюнкт DQ называется склейкой дизъюнкта D. Пример 14*22. Первые две литеры дизъюнкта Р(х) V Р(/(у)) V ~<Q(x) имеют наиболее общий унификатор {х —» /(?/)}, так что nf(y))v-e(/(2/)) является склейкой этого дизъюнкта. ■ Предложение 14.1. Если дизъюнкт С является склейкой дизъюнкта D, то {р>} (= С. 360 
Доказательство. Каждый дизъюнкт является сокращенной записью высказывания — универсального замыкания этого дизъюнкта. Поэтому утверждение типа Г |= D следует понимать так, что высказывание, представленное дизъюнктом D, логически следует из множества высказываний, представленных дизъюнктами из множества Г. С другой стороны, в определении склейки D понимается именно как дизъюнкт сам по себе. В дальнейшем, чтобы различать эти два аспекта понимания дизъюнктов, будем говорить о высказывании D в первом случае и о дизъюнкте D — во втором. Итак, пусть дизъюнкт С является склейкой дизъюнкта D. Если мы докажем, что высказывание С выводимо из высказывания D в исчислении предикатов, то отсюда будет следовать, что {D} |= С. Пусть яд, ... , хп — все переменные, входящие в дизъюнкт D, так что этот дизъюнкт можно обозначить D(x 1, ...,жп). Тогда дизъюнкт D является сокращенной записью высказывания \/яц ... Ухп D(x 1, ..., хп), а дизъюнкт С получается подстановкой в D(x 1, ..., хп) некоторых термов t\. ... ,tn вместо яд, ...,жп, т. е. имеет вид D{t\, ...,tn). Теперь очевидно, что дизъюнкт С получается из высказывания D применением правила (V —»). Высказывание С имеет вид \/щ .. .УутС, где 2/i, ... ,ут — все переменные, входящие в дизъюнкт С. Это высказывание получается из дизъюнкта С по правилу (—» V), которое в этом случае применимо, так как мы рассматриваем выводимость в исчислении предикатов из высказывания Р, не содержащего свободных переменных. ■ Определение 14.12. Пусть D\ и D2 — два дизъюнкта, которые не имеют общих переменных, и пусть D\ содержит литеру Ai, a D2 содержит литеру -1А2, где Ai,A2 — атомы, имеющие наиболее общий унификатор 0. Тогда дизъюнкт (Di0 \ {Ai0}) U U (D2Q \ {->^20}) называется резольвентой дизъюнктов D\ и 1>2- При этом литеры А\,^А2 называются отрезаемыми литерами. Пример 14-23. Дизъюнкты Р(х)\/ Q(x) и -»Р(а)\/ R(y) имеют резольвенту Q(a) V R(y), а резольвентой дизъюнктов Р(/(а)) и ->Р(у) является пустой дизъюнкт _L. ■ Правило резолюции состоит в получении из двух дизъюнктов их резольвенты. Следующее утверждение означает корректность правила резолюции. 361 
Предложение 14.2. Если дизъюнкт С — резольвента дизъюнктов D\ и D2, то {D1, D2} [= С. Доказательство. Докажем, что высказывание С выводимо в исчислении предикатов из множества высказываний {£>1,1)2}. Дизъюнкт D\ имеет вид С\ V а дизъюнкт D2 имеет вид С2 V ->А2, причем атомы Ai и А 2 имеют наиболее общий унификатор 0. Тогда дизъюнкт С имеет вид C\Q V С20. Теперь заметим, что по правилу (V —») из высказывания D\ получается дизъюнкт Ci0VAi0, а из высказывания D2 — дизъюнкт причем ii0 и ^20 есть один и тот же атом, который мы обозначим А. Таким образом, в исчислении предикатов {£>i,£>2} 1“ Ci0 V V Л и {£>i,£>2} Ь С20 V ->А С другой стороны, очевидно, что в исчислении предикатов имеет место выводимость {Ci0VA, C20V V -A} h Ci0 V С20. Следовательно, {£>1,1)2} 1“ СД0 V С2В, т. е. {DUD2}\-C. ш Определение 14.13. Пусть Г — некоторое множество дизъюнктов. Революционным выводом из Г называется конечная последовательность дизъюнктов, в которой каждый дизъюнкт либо принадлежит Г, либо является склейкой какого-нибудь предшествующего дизъюнкта, либо получается по правилу резолюции из каких-нибудь двух предшествующих дизъюнктов. Говорят, что дизъюнкт D выводится из Г, и пишут Г Ь £>, если существует революционный вывод из Г, последним дизъюнктом которого является £>. Следующее утверждение называется теоремой о корректностей метода резолюций для элементарных языков. Теорема 14.7. Каковы бы ни были множество дизъюнктов Г и дизъюнкт С, если Г b С, то Г \= С. Доказательство. Доказываем теорему индукцией по длине к революционного вывода дизъюнкта С из Г. Если к = 1, то С Е Г, и доказываемое утверждение очевидно. Допустим, что теорема справедлива в случае, когда длина вывода < к. Пусть существует революционный вывод С из Г, и длина этого вывода равна к. Если С Е Г, то доказываемое утверждение очевидно. Пусть С есть склейка некоторого дизъюнкта £>, который встречается в этом выводе раньше, чем С. Тогда по индукционному предположению Г \= D. Это означает, что в каждой модели для множества высказываний Г истинно высказывание £>, а тогда в силу предложения 14.1 истинно и высказывание С. т. е. Г |= С. 362 
Аналогично, с использованием предложения 14.2, доказывается, что если С есть резольвента дизъюнктов D\ и которые встречаются в выводе раньше, чем С, так что по индукционному предположению Г |= D\ и Г \= D2, то Г \= С. ■ Следствие 14.1. Если Г b _L, то Г невыполнимо. Доказательство. Пусть Г h 1. Тогда Г |= _1_ по теореме 14.7, откуда следует, что Г не имеет модели. ■ Следствие 14.1 означает, что построение резолюционного вывода _L из множества высказываний Г, представленных в дизъюнктной форме, является одним из возможных способов доказательства невыполнимости множества Г. Следующая теорема, называемая теорем,ой о полноте метода резолюций для элементарных языков, показывает, что этот метод дает универсальный способ установления невыполнимости множества высказываний. Теорема 14.8. Если множество дизъюнктов Г невыполнимо, то существует революционный вывод Е из Г. Доказательство. Пусть множество дизъюнктов Г невыполнимо. Тогда по теореме 14.2 существует конечное невыполнимое множество основных примеров дизъюнктов из Г. Обозначим это множество А. По теореме 14.6 существует революционный вывод _1_ из А. Пусть этот вывод имеет вид £>i, ..., Dni причем Dn = JL. Индукцией по г докажем, что для любого дизъюнкта Di (г = 1, ... ,п) существует такой дизъюнкт С*, что Г h и Di = С$ для некоторой подстановки 0. Если Di Е А (в частности, при г = 1), то Di — основной пример некоторого дизъюнкта С G Г, значит, Di — С$ для некоторой подстановки 0. Возможно, в результате применения 0 к С некоторые литеры отождествились. Это означает, что Di получается некоторой подстановкой 0; из некоторого дизъюнкта С', являющегося склейкой дизъюнкта С*. Тогда Di = , причем Г b С[. Пусть дизъюнкт Di получен по правилу резолюции из дизъюнктов Dk и Di, где k,l < i. Индукционное предположение состоит в том, что существуют дизъюнкты Ck и С/ такие, что Г Ь С&, Г Ь Ci и Dk = Сфк-> D[ = Cfii для некоторых подстановок 0/с и 0/. Можно считать, что Ск и С/ не имеют общих переменных, так что Dk = С&0, Di = С/0, где 0 = 0^ U 0/. Так как к Dk и Di применимо правило резолюции, то Dk = D!k V А, Di = D[ V ~>А для некоторого атома А. Тогда, Cj. имеет вид 363 
Ck V Ak, a Ci имеет вид C[ V -»A\ для некоторых атомов Ak,A[, причем D'k — CkQ, D[ = (7^0, A — AkQ = A/0. Это значит, что атомы Ak и А[ унифицируемы и имеют наиболее общий унификатор а, а так как 0 тоже является их унификатором, то 0 = аоХ для некоторой подстановки X. Таким образом, к дизъюнктам Сk и Ci применимо правило резолюции, причем резольвентой является дизъюнкт СкоУ С[о, который и можно взять в качестве Ci. Действительно, Г h причем А = Dfk V D[ = <7'0 V <7/0 = С'к{о о X) V С[{р о X) = <7гХ. При г = п получаем Г b _L, что и требовалось доказать. ■ Метод резолюций можно применять для доказательства теорем в аксиоматических теориях. Пусть дана элементарная аксиоматическая теория Т. Для простоты будем считать, что множество аксиом теории Т конечно, а значит, его можно заменить одной замкнутой формулой А — конъюнкцией всех аксиом. Теоремы теории Т — это логические следствия из А, при этом А |= Ф тогда и только тогда, когда множество {А, —*Ф} невыполнимо, т. е. невыполнима формула Д&-»Ф. Обозначим эту формулу Ф. Приведем Ф к скулемовской форме и получим формулу Ф*, равновыполнимую с Ф. Для доказательства утверждения А \= Ф достаточно убедиться, что формула Ф* не имеет модели. Для этого представим формулу Ф* в виде множества дизъюнктов С и воспользуемся методом резолюций, а именно, попытаемся построить резолюционный вывод из С пустого дизъюнкта _1_. Если это удастся, то тем самым будет доказано, что множество дизъюнктов С невыполнимо, следовательно, формула Ф* не имеет модели, а значит, формула Ф также не имеет модели, а тогда А (= Ф, т. е. высказывание Ф является теоремой теории Т. Этот метод находит практическое применение в области автоматического доказательства теорем. Пример 14.24. Докажем, что из формулы Ух Уу Уг (Р(ж, у) D (P(y,z) D P(x,z)), Ух ~^Р{х,х) логически следует формула -dx Зу (Р(х, у) к Р(у, ж)). Для этого достаточно доказать, что формула Vx Vy Vz (Р(ж, у) D (Р(у, z) э Р(Ж, г)) к к Уж ->Р(ж, ж) к ->-|Зж Зу (Р(х, у) к Р(у, ж)) 364 
не имеет модели, a-нормальная форма этой формулы имеет вид VxVyVz (-»Р(х, у) V ->Р(у, z) V Р(х, г)) & & V?x -»Р(гх, гх) & Зу Згу (Р(у, гу) &; Р(гу, у)). Скулемовская форма этой формулы выглядит так: VxVyVz (-»Р(х, у) V -»Р(у, г) V Р(х, г)) & & Vw -»Р(?х, гх) & Р(а, Ь) & Р(Ь, а). Таким образом, формула (14.4) представляется следующим множеством дизъюнктов: 1) ->Р(х, у) V ->Р(у, У V Р(ж, 2); 2) 3) Р(а,Ь); 4) Р(Ь,а). Продолжим этот список до резолюционного вывода _L: 5) -1 P(b,z) V P(a,z) (резольвента дизъюнктов 1) и 3)); 6) Р(а,а) (резольвента дизъюнктов 4) и 5)); 7) _L (резольвента дизъюнктов 2) и 6)). Итак, рассматриваемое множество дизъюнктов невыполнимо, следовательно, невыполнима и формула (14.4). ■ 14.7. Хорновские дизъюнкты Определение 14.14. Дизъюнкт называется хорновским, если он содержит не более одной положительной литеры. Пример 14-25. Пустой дизъюнкт _1_ является хорновским. ■ Непустой хорновский дизъюнкт, не содержащий положительных литер, называется запросом. Запрос имеет вид ~^А\ V ... V V-o4n, где п > 1, Их, ..., Ап — атомы, и является записью высказывания Vxi... Ухт (-ь4х V ... V -»ИП), где xi, ..., хт — все переменные, входящие в дизъюнкт. Это высказывание равносильно высказыванию Vxi ... Ухт ->(Ai &...&; Ап). Хорновский дизъюнкт, содержащий одну положительную и несколько отрицательных литер, называется правилом или процедурой. Правило имеет вид АУ^А\У... ~^Ап и является записью высказывания Vxi ...Ухт (А V ~^А\ V ... -»АП), где xi, ..., хт — все переменные, входящие в дизъюнкт. Оно равносильно высказыванию Vxi... Ухт (Ai & ... & Ап D A). 365 
Непустой хорновский дизъюнкт без отрицательных литер называется фактом. Всякий факт имеет вид А, где А — атом, и является сокращенной записью высказывания Vxi ... УхтА, где х\, ... ,хш — все переменные, входящие в этот атом. Теорема 14.9. Пусть Г — множество хорновских дизъюнктов, п — некоторое семейство эрбрановских моделей для Г. Определим эрбрановскую модель положив для каждого (п- местного) предикатного символа Р и элементов эрбрановского универсума h\, ...,hn: P^°(hi, ...,hn) = 1 ^ (VT) G TL)P^(hi, ...,hn) = l, где P* — интерпретация предикатного символа Р в модели $). Тогда $)о является моделью для Г. Доказательство. Докажем, что любой дизъюнкт из Г истинен в S)о- Если этот дизъюнкт является запросом, то он - запись формулы вида Vxi ... Ухт (-*Ai V ... V ~^Ап). Так как эта формула истинна в каждой интерпретации из то для любых значений hi, ..., hm G Н переменных xi, ... ,хт и любой эрбрановской модели для Г найдется атом Ai (г = 1, ... ,п), который при этих значениях переменных принимает значение 0. Но тогда значение атома Ai при этих значениях переменных в S)о также есть 0, а значение литеры -iAi и всего дизъюнкта есть 1. Таким образом, при любых значениях переменных xi, ...,хш рассматриваемый дизъюнкт истинен в S)о, значит, формула Vxi ... Ухт (->^i V ... V ~^Ап) истинна в интерпретации Яо. Рассмотрим случай, когда дизъюнкт из Г является правилом. Тогда он равносилен формуле Vxi ... \/хт (Ai Ап D A). Зафиксируем произвольные значения hi, ...,hm G H переменных xi, ... ,xm. Допустим, что при этих значениях переменных атомы Ai,... ,Ап истинны в интерпретации $)о, и докажем, что тогда и атом А истинен в интерпретации Истинность атомов Ai, ... ,Ап в интерпретации $)о означает, что они истинны в любой интерпретации из TL. Поскольку рассматриваемая формула также истинна в любой интерпретации из TL, то атом А при рассматриваемых значениях переменных принимает значение 1 в любой интерпретации из Н, а значит, он принимает значение 1 в интерпретации $)$. Рассмотрим случай, когда дизъюнкт из Г является фактом. Он равносилен формуле Vxi ... Ухт Р(хi, ..., хт). Так как эта формула истинна в любой интерпретации из TL, то для любых элементов эрбрановского универсума hi, ... , hm и любой интер- 366 
претации S) G В имеет место ... ,hm) = 1. Тогда по определению f)о имеет место P^°(hi, ..., hm) = 1 для любых элементов эрбрановского универсума /д. ...,hm. а это означает, что формула \/ад ... Ухш Р(хi, ... , хт) истинна в интерпретации f)o* ■ В случае, когда В — семейство всех эрбрановских моделей для Г, эрбрановская модель существование которой утверждается в теореме 14.9, называется минимальной эрбрановской моделью для множества хорновских дизъюнктов Г. Теорема 14.10. Пусть Г — некоторое множество хорновских дизъюнктов, и Г \= Зад ... Зхш Ап), где ..., Ап — атомы, ад, ... ,жт — все входящие в них перелгенные. Тогда существует такая подстановка Q — {x\ —у /д, ..., хт —>hm}, где hi, ...,ЛтЕЙ; что Г |= AiQUz ... $zAn 9. Доказательство. Так как Г [= Зад... Зхт (Ai Sz ... & Лп), то множество Г U {-«Зад ... Зхт (Ai Sz ... Sz Ап)} невыполнимо. После скулемизации получаем, что невыполнимо множество хорновских дизъюнктов Г U {~^Ai V ... V -'АД. Это означает, что в любой эрбрановской модели для Г формула Vxi... Ухт {-'Ai V V.. .V-iAn) ложна, следовательно, ее отрицание 3xi ... Зхт (Ai Sz ... Sz Ап) истинно. В частности, эта формула истинна в минимальной эрбрановской модели для Г. Это означает, что существуют такие значения /д, ..., hm Е Н переменных ад, .... хт, при которых атомы Ад ..., Ап истинны в минимальной модели. Но тогда все они истинны в любой модели для Г, т. е. Г |= Ai0 Sz ... Sz AnQj где 0 — {ад у hi, ..., хш у }. и 14.8. Логические программы Определение 14.15. Произвольное конечное множество процедур и фактов называется логической программой. Процедуру BV-AiV.. .V->An в логическом программировании принято записывать в виде В 4— Ai, ..., Ап, (14.5) а факт В — в виде В Таким образом, и процедуры, и факты записываются в виде (14.5), где п > 0 (при п = 0 список атомов справа от <— считается пустым). В дальнейшем будем называть процедурами любые выражения вида (14.5). При этом В назы¬ 367 
вается заголовком процедуры (14.5), а список Ai, ...,Ап — ее телом. Интуитивный смысл логической программы состоит в том, что она в форме хорновских дизъюнктов на подходящем элементарном языке описывает некоторую ситуацию, и может рассматриваться как система аксиом. Пусть мы хотим выяснить, является ли высказывание вида Зх\ ... Зхт (А\ Ап). где Ai, ..., Ап — атомы, логическим следствием из этой системы аксиом. Для этого достаточно установить невыполнимость множества, полученного присоединением к системе аксиом отрицания этого высказывания, которое представляется запросом ->Ai V V ... V ~^Ап. Невыполнимость указанного множества может быть доказана построением резолюционного вывода из него пустого дизъюнкта. В этом и заключается обработка данного запроса логической программой. Запрос —iHiV... V—iHn принято записывать в виде ?Hi, ..., Ап. Пусть даны логическая программа П и запрос ?А\, ..., Ап. Обработка запроса состоит в следующем. Среди процедур, составляющих программу П, отыскивается такая, которая отвечает па запрос в том смысле, что ее заголовок унифицируем с одним из атомов Hi, ..., Ап. Пусть, например, факт В, входящий в программу П, унифицируем с атомом И* (г = 1, ..., п). Тогда строится наиболее общий унификатор 0 атомов В и Ai. Резольвентой факта В и рассматриваемого запроса является новый запрос ?Hi0, ..., H^_i0, Иг+10, ...,ИП0, который и подлежит дальнейшей обработке. Если же на запрос отвечает правило В <— С\, ..., Ст1 т. е. атом В унифицируем с одним из атомов (г = 1, ..., п), то строится наиболее общий унификатор 0 атомов В и Ai. Резольвентой факта В и рассматриваемого запроса является новый запрос ?Hi0, ..., Нг_!0, Иг+10, ..., Ип0, Сф, ..., Ст0, который подвергается дальнейшей обработке. На каждой стадии работы программы, или вычисления, существует текущий запрос. Последовательность запросов, которые обрабатываются в процессе вычисления, называют протоколом вычисления. Протокол представляет собой революционный вывод из программы и запроса, характеризующийся тем, что на каждом шаге строится резольвента запроса и одной из процедур. Вычисление считается успешным, если его протокол оканчивается пустым дизъюнктом _1_. В этом случае высказывание, 368 
представленное исходным запросом, логически следует из высказываний, составляющих программу. Можно доказать и обратное утверждение: если запрос логически следует из логической программы, то существует успешное вычисление, т. е. революционный вывод указанного специального вида, оканчивающийся пустым дизъюнктом. Вычисление с помощью логической программы недетермини- ровано в том смысле, что на каждом шаге выбор процедуры, отвечающей на текущий запрос, вообще говоря, неоднозначен: может найтись много процедур, отвечающих на запрос, причем унифицируемыми с заголовками процедур могут оказаться различные атомы, входящие в запрос. Поэтому при обработке данного запроса может возникнуть много различных вычислений, которые составляют так называемое пространство вычислений. Пространство вычислений можно представлять в виде дерева, корнем которого является исходный запрос, вершины соответствуют запросам, получающимся в процессе вычислений, а ребра соединяют данный запрос с запросами, получающимися на первом шаге при обработке данного запроса. Ветви такого дерева суть различные вычисления (точнее — их протоколы). Успешному вычислению отвечает конечная ветвь. Конечная ветвь может соответствовать и вычислению, не являющемуся успешным, если оно оканчивается непустым запросом, на который не отвечает ни одна процедура. Возможны также неуспешные бесконечные вычисления. Значением логической программы называется множество основных атомов А таких, что существует успешное вычисление с запросом ?А. Теорема 14.11. Значение логической программы П состоит из всех тех основных атомов, которые истинны в минимальной эрбрановской модели для П. Доказательство, Пусть основной атом А принадлежит значению логической программы П, т. е. существует революционный вывод пустого дизъюнкта _L из множества Пи {-»Л}. Это означает, что П |= Д так что высказывание А истинно в любой модели для П, в частности, в минимальной эрбрановской модели для П. Обратно, пусть высказывание А, которое является основным атомом, истинно в минимальной эрбрановской модели для П. Тогда по определению минимальной эрбрановской модели оно ис- 369 
тинно в любой эрбрановской модели для П. Допустим, однако, что ПИ= А Тогда множество Пи{-»Д} выполнимо. Значит, существует эрбрановская модель для этого множества, являющаяся, очевидно, и эрбрановской моделью для П, в которой высказывание А ложно, что, как мы видели, невозможно. ■ Теорема 14.12. Для запроса ?Ai, ..., Ап существует успешное вычисление логической программы П тогда и только тогда, когда в минимальной эрбрановской модели для П истинно высказывание Зх\ ... 3xk (Ai & ... & Ап), где xi, ..., х& — все переменные, входящие в А\ & ... & Ап. Доказательство. Запрос ?Ai, ..., Ап является записью высказывания Vxi.. . Vx/^ {~^А\ V ... V -о4п), равносильного высказыванию (Лх Дп). Поэтому, если для за¬ проса ?Лх, ..., Ап существует успешное вычисление логической программы П, то высказывание Зх\ ... Зх^ (А\ & ... & Ап) является логическим следствием из П. Но тогда это высказывание истинно в любой модели для П, в частности, в минимальной эрбрановской модели для П. Обратно, пусть высказывание Зх\ ... Зх^ (А\ Ап) истинно в минимальной эрбрановской модели для П. Это означает, что существует такая подстановка a = {xi —>hi, ..., х& —» ИД, где /ii, ..., hk — элементы эрбрановского универсума, что в минимальной эрбрановской модели для П истинны атомы А\о, ..., Апо. По теореме 14.11 в этом случае все эти атомы логически следуют из П. Но тогда и Зх\... 3xk {А\ Ап) логически следует из П, т. е. существует успешное вычисление для запроса ?Аг, ...,Ап. и Определение 14.16. Пусть М — некоторое множество основных атомов. Говорят, что данная логическая программа корректна относительно М, если значение программы П является подмножеством множества М. Программа П полна относительно М, если М является подмножеством значения программы П. Если запрос имеет вид ?Ai, ...,Ап, где А\, ..., Ап — атомы с переменными xi, ... , xm, то успешное вычисление означает, что высказывание Зх\... 3xk (А\ & ... & Ап) логически следует из множества высказываний, составляющих программу. Но логическое программирование позволяет получить нечто большее — значения xi, ... , xm, при которых формула А\ & ... & Ап 370 
истинна. Для этого в ходе вычисления нужно вести так называемый протокол связываний данного вычисления, включающий те присваивания из наиболее общих унификаторов, строящихся на каждом шаге, которые влияют на значения переменных •^15 • • • 5 Чтобы протокол связываний получился не очень громоздким, и из него можно было бы достаточно просто извлечь ответ, следует соблюдать такие правила. 1) Если на каком-то шаге перед применением правила резолюции необходимо переименование переменных в запросе или в процедуре, то делается переименование переменных именно в процедуре, а не в запросе. 2) Если при построении наиболее общего унификатора возможно присвоение значения переменной, входящей в запрос, или же какой- либо иной переменной, то значение присваивается именно той переменной, которая входит в запрос. Логические программы можно использовать для вычисления числовых функций. Пусть сигнатура П содержит единственную константу 0 и единственный одноместный функциональный символ s. Тогда эрбрановский универсум состоит из термов 0, ДО), s(s(0)), ..., которые можно отождествить с натуральными числами 0,1, 2, ... Иными словами, в этом случае эрбрановский универсум есть в точности натуральный ряд. Определение 14.17. Пусть / : Nn —» N — некоторая частичная функция, и сигнатура П содержит (п + 1)-местный предикатный символ Pf, а также, возможно, другие предикатные символы. Будем говорить, что логическая программа П в языке сигнатуры П вычисляет функцию /, если, каковы бы ни были натуральные числа Ад, ..., kn, fc, основной атом Pf(k\, ..., fcn, к) принадлежит значению программы П тогда и только тогда, ко- гда f(ki, ..., кп) = к. Логическая программа, вычисляющая функцию /, позволяет решать различные задачи, касающиеся /. Во-первых, она позволяет убедиться в истинности равенства вида /(Ац, ..., кп) — к для конкретных Ац? ..., кп, к. Для этого достаточно указать запрос lPf(k\, ..., кп, к). В этом случае успешное вычисление означает справедливость проверяемого равенства. Во-вторых, логическая программа позволяет вычислить значение /(Ад, ..., кп) для конкретных чисел Ад, ..., кп. Для этого достаточно указать запрос ?Р/(Ац, ..., кП1х). В этом случае успешное вычисление означает, что значение /(Ад, ..., кп) определено, а получен¬ 371 
ное из протокола связываний значение переменной х есть искомое значение функции /. В-третьих, программа позволяет решать уравнения вида f(t\, . . . ,tn) = £, где каждый из термов Ч, ... , есть либо переменная, либо конкретное натуральное число. Для этого достаточно указать запрос ?Pf(t\, ...ЛпЛ). В этом случае успешное вычисление означает, что уравнение имеет решение, а полученные из протокола связываний значения переменных дают искомое решение. Очевидно, что если функция вычисляется некоторой логической программой, то она вычислима в интуитивном смысле, следовательно, в силу тезиса Чёрча является частично-рекурсивной. Теорема 14.13. Для всякой частично-рекурсивной функции существует логическая программа, вычисляющая эту функцию. Доказательство. Так как ЧРФ получаются из базисных функций s(x) = х + 1, о(х) = 0, ДДхь ..., хп) = хт (1 < т < п) с помощью операций подстановки, рекурсии и минимизации, то для доказательства теоремы достаточно написать логические программы для вычисления базисных функций и показать, как построить логическую программу для вычисления функции, полученной из некоторых данных функций с помощью операции подстановки, рекурсии или минимизации, если имеются логические программы для вычисления данных функций. Функция s вычисляется следующей логической программой П5: Ps(x,s(x)) так как в минимальной эрбрановской модели для этой программы истинны все основные атомы вида Ps(n,n+ 1) и только они. Функция о вычисляется следующей логической программой: Р0(ж, 0) <— . Функция ДДад, ... , хп) = Хт (1 < т < п) вычисляется следующей логической программой: Pl^{xЪ • • • 5 Хп, Хт) < . Пусть n-местная (п > 1) частичная функция h получается подстановкой n-местных функций щ, ..., в fc-местную функции /, т. е. для любых xi, . ..,хп Е N имеет место условное равенство h(xь ...,хп) ~ f(gi(xi, ...,хп), ...,gk(xi, ...,хп)), и 372 
пусть имеются логические программы П у*, , . ..,П 9к, вычисляющие соответственно /,щ, Тогда h вычисляется сле¬ дующей программой: ГП / < ... Пдк ^ Ph (х? У) <- PgA^Vl) 5 * *' ’ Рдк (x,J/fe), -Р/(Уь ■•■,Ук,У)- Здесь х обозначает ад, ....хп. Пусть (и + 1)-местная (п > 1) частичная функция h получается с помощью операции рекурсии из n-местной функции / и (п + 2)-местной функции д1 т. е. для любых ад, ... ,хп,у Е N выполняются следующие условные равенства: h(xi, ... ,хп, 0) ~ /(z 1, ...,хп)\ h(x 1, ... ,хп,у + 1) ~ д(х 1, .. .,xn,y,h(xi, . ■ .,хп,у)), и пусть логические программы и вычисляют соответственно / и д. Тогда h вычисляется следующей программой: П/ ^ Ph(x,0,z) <r- Pf(x.,z) ,Ph(x,s(y),z) <r- Ph(-x,y,u),Pg{x,y,u,z). Здесь x обозначает ад, ...,хп. Пример 14-26. Следующая логическая программа П+ вычисляет функцию /(ж, у) = х + у: Гр+(ж,0,ж) <г- н \p+(x,s(y),s(z)) <г- P+(x,y,z). Пример 14-27. Следующая логическая программа Пх вычисляет функцию /(ж, у) = х • у\ 'п+ < Рх(х,0,0) ■ ^Px(x,s(y),z) <r- Px(x,y,v),P+(x,v,z). 373 
Пусть n-местная (п > 1) частичная функция д получается минимизацией из (п + 1)-местной частичной функции /, т. е. для любых xi, ... , хп, у Е N значение д{х\, ..., хп) определено и равно у тогда и только тогда, когда для любого z < у значение /(х 1, . ..,xn,jz) определено и не равно 0, а /(х i, . ..,хп,у) = О, и пусть имеется логическая программа Пf, вычисляющая функцию /. Тогда функция у вычисляется следующей программой: ГП/ Пх < Q(x, 0, s(0)) <— ■ <Э(х, s(y), z) <r- Q(x, у, u),Pf(x, у, и), Рх (и, w, г) Д3(х,2) Q(x,s(.z),0),Q(x,z,s(t>)). 
Глава 15 ИНТУИЦИОНИСТСКАЯ ЛОГИКА В классическом исчислении высказываний выводимы все тавтологии и только они. Поэтому может показаться излишним использование исчисления высказываний для описания логических законов. Однако это не совсем так. Во-первых, логические законы не исчерпываются законами логики высказываний, а описание законов логики предикатов в виде исчисления представляется единственно возможным. Во-вторых, наряду с классической логикой возможны другие, неклассические логические системы. В данной главе мы познакомимся с интуиционистской логикой. 15.1. Что такое интуиционизм Обнаружение парадоксов в теории множеств вызвало интерес к поискам причин их возникновения. В 1908 г. появилась работа голландского математика Брауэра «Недостоверность логических принципов». В ней отмечалось, что принципы классической логики, дошедшие до нас от Аристотеля, абстрагированы от обращения с конечными совокупностями. Однако впоследствии эту логику приняли за нечто первичное по отношению к математике и стали применять ее к математике бесконечных множеств. Принципом классической логики, который Брауэр не принимает для бесконечных множеств, является закон исключенного третьего Ф V ->Ф. Пусть Ф есть высказывание «Существует элемент множества D, обладающий свойством Р», причем свойство Р таково, что для любого элемента из D мы можем определить, обладает ли он свойством Р. Тогда «не Ф» эквивалентно утверждению «Каждый элемент из D не обладает свойством Р». Если D — конечное множество, то в принципе можно обследовать по очереди все его элементы и либо найти элемент, об¬ 375 
ладающий свойством Р, либо убедиться, что все элементы не обладают свойством Р, так что в этом случае справедлив закон исключенного третьего. Если же D бесконечно, то принципиально невозможно закончить исследование всех его элементов. Для некоторых множеств D и свойств Р мы можем найти элемент, обладающий свойством Р, или, напротив, доказать посредством математического рассуждения, что каждый элемент множества D не обладает свойством Р (как, например, с помощью известного рассуждения доказывается, что не существует таких натуральных чисел тип, что т2 — 2 и2). Однако нет никакой уверенности в существовании такого решения вопроса об истинности утверждения Ф в общем случае. В отличие от традиционной, классической логики, Брауэр и его последователи развивали другую логику, получившую название интуиционистской. Это название обусловлено тем, что в качестве единственного критерия истинности в математике Брауэр провозгласил интуицию. При этом брауэровскую интуицию не следует понимать в каком-то «мистическом» смысле. Согласно концепции Брауэра, математические объекты рождены человеческой мыслью, поэтому истинность суждений о них полностью определяется представлениями об этих объектах того математика, в сознании которого возникли эти объекты. Строго говоря, с точки зрения интуиционизма, сколько математиков столько и математик. Однако в силу некоторых общих свойств человеческого мышления возможно образование в сознании разных людей сходных математических понятий. К ним относится, например, понятие натурального числа. Отправляясь от этого понятия, на основе интуиционистских представлений Брауэром и его школой была развита своеобразная математическая теория. В интуиционистской математике умозаключения не производятся по заранее установленным правилам. Убедительность каждого логического шага должна проверяться непосредственно в соответствии с интуицией. При этом несколько иной, чем в классической логике, смысл интуиционисты придают исходным логическим понятиям. В традиционной логике высказывание понимается как предложение, которое может быть истинным или ложным, так что истинностное значение есть непременный атрибут всякого высказывания. Интуиционистский взгляд на истинность высказывания более соответствует математической практике. С точки зрения интуиционизма истинность высказывания связана с возможностью его доказательства. 376 
Таким образом, высказывание считается истинным, если имеется его доказательство. В этом контексте понимаются и традиционные логические операции над высказываниями. Так, высказывание Ф & Ф считается истинным тогда и только тогда, когда истинны оба высказывания Ф и Ф, т. е. мы располагаем доказательством каждого из этих высказываний. Высказывание Ф V Ф считается истинным тогда и только тогда, когда истинно хотя бы одно из высказываний Ф и Ф, т. е. мы располагаем доказательством высказывания Ф или доказательством высказывания Ф. Высказывание Ф D Ф считается истинным тогда и только тогда, когда имеется некий общий метод, позволяющий любое доказательство высказывания Ф преобразовать в доказательство высказывания Ф. Отрицание -»Ф высказывания Ф считается истинным, если истинно высказывание Ф D JL, где _1_ — некоторое заведомо абсурдное высказывание (например, 0=1). Пусть Ф(ж) — некоторое свойство, которым могут обладать или не обладать объекты подходящим образом заданного множества. Тогда высказывание ЗжФ(ж) считается истинным, если для некоторого конкретного объекта а из рассматриваемого множества мы имеем доказательство высказывания Ф(а). Наконец, высказывание УхФ(х) считается истинным, если имеется общий метод, позволяющий для любого конкретного объекта а из рассматриваемого множества получить доказательство высказывания Ф(а). Понятие ложного высказывания не является самостоятельным в интуиционисткой логике: высказывание Ф считается ложным, если нам удалось доказать высказывание ->Ф. Таким образом, в отличие от классической логики, где каждое высказывание либо истинно, либо ложно, в интуиционистской логике высказывания подразделяются на три класса: истинные, ложные и все прочие, или непроверенные, при этом только принадлежность высказывания к одному из первых двух классов является окончательной, а всякое непроверенное высказывание с течением времени в результате исследовательской деятельности человека может перейти в разряд истинных (если удастся доказать его) или в разряд ложных (если удастся его опровергнуть, т. е. доказать истинность отрицания этого высказывания). Видим, что интуиционистское понимание некоторых видов высказываний существенно отличается от классического. Пусть, например, высказывание имеет вид Ф V -»Ф. Если Ф — истинное 377 
высказывание, например, 0=0, то высказывание Ф V -»Ф также истинно. Аналогично, высказывание Ф V -»Ф истинно, если Ф — ложное высказывание, например, 0=1. Если же Ф — непроверенное высказывание (такое высказывание нетрудно найти в современной научной литературе, где формулируются нерешенные математические проблемы), то мы не можем утверждать, что высказывание Ф V -»Ф истинно. Но с классической точки зрения это высказывание истинно, правда, единственным аргументом здесь является тезис, что такое высказывание «истинно всегда». Рассмотрим один хрестоматийный пример математического доказательства, неприемлемого с интуиционистской точки зрения. Теорема 15.1. Существуют иррациональные числа а и b такие, что число аь рационально. \/2 Доказательство. Рассмотрим число л/2 . Если это число рационально, то можно взять а = л/2, Ь = л/2. Если же число у/2^ иррационально, можно взять а = л/24^, Ъ = \/2. Таким образом, в любом случае нужные а и b существуют. ■ Это яркий образец доказательства «чистого существования», когда доказывается существование некоторого объекта без явного предъявления его. Такие доказательства часто встречаются в математике и даже считаются особенно изящными. Но для инту- ициониста, очевидно, такое доказательство неприемлемо. К счастью, для рассматриваемой теоремы имеется и другое, более глубокое доказательство, показывающее, что число л/2^ иррацио- нально, так что искомые числа таковы: а = л/2 , Ъ = у/2 15.2. Интуиционистская логика высказываний В интуиционистской математике единственным критерием правильности рассуждения является интуитивная ясность каждого его шага. Но это не исключает существования общих логических правил, которые позволяют из истинных математических утверждений интуитивно ясным путем получать новые истинные утверждения. Выявление и изучение таких правил составляет предмет интуиционистской логики. 378 
Первая попытка построения системы аксиом интуиционистской логики высказываний была предпринята А. Н. Колмогоровым в 1925 г. Исчисление Колмогорова имеет следующие схемы аксиом: Kl. A D (В D А); К2. (A d (A d Б)) d (A d В); КЗ. (A D (В D С)) D (В D (A D С)); К4. (В D С) D ((A D В) Э (A Э С)); К5. (A D В) Э ((A D -»В) Э -пА). Единственным правилом вывода является modus ponens. Аксиомы исчисления Колмогорова являются схемами интуиционистски истинных высказываний. Рассмотрим схему К1. Покажем, что высказывание A D (В D А) интуиционистски истинно, т. е. существует общий метод получения обоснования для В D А, если дано обоснование для А. Пусть дано обоснование а для А. Обоснованием для В D А может служить операция, которая любое обоснование для В преобразует в имеющееся у нас обоснование а для А. Аналогичными рассуждениями нетрудно показать, что схемы К2 — К5 приемлемы с интуиционистской точки зрения. Modus ponens сохраняет интуиционистскую истинность: если высказывания А и A D В истинны, т. е. даны обоснование для А и общий метод, позволяющий получить обоснование для В из любого обоснования для А, то истинно и высказывание В. Поэтому все формулы, выводимые в исчислении Колмогорова, являются схемами интуиционистски истинных высказываний. В дальнейшем были предложены другие системы аксиом интуиционистской логики, эквивалентные между собой в том смысле, что из них выводимы одни и те же формулы. Все они эквивалентны следующей системе аксиом, использующей связки D,&, V,--: И1. A D (В D А); И2. (AD В) D ((Л D (В D С)) D (A D С))\ ИЗ. АкВ D А; И4. АкВэ В- И5. Ad(Bd АкВ)-, И6. A D A VB; И7. В D AV В; И8. (A D С) D ((В D С) D (А V В D С))\ И9. (A D В) D ((A D ->В) D ->А); ИЮ. A D (->А D В). 379 
Эти схемы аксиом вместе с правилом modus ponens задают интуиционистское исчисление высказываний. Каждая аксиома интуиционистского исчисления высказываний является схемой интуиционистски истинных высказываний. Аксиома И1, совпадающая с аксиомой К1 исчисления Колмогорова, была рассмотрена выше. Подобными рассуждениями обосновывается интуиционистская истинность высказываний, построенных по схемам И2 —И9. Рассмотрим, например, схему И8. Интуиционистски высказывание вида И8 означает существование общего метода, позволяющего по обоснованиям для A D С, В D С и AV В получить обоснование для С. Этот метод состоит в следующем. По обоснованию для А У В находим обоснование одного из высказываний А и В. Пусть это обоснование для А. Тогда, используя обоснование для A D С, строим обоснование для С. Аналогично, если дано обоснование для В, то мы находим обоснование для С, используя обоснование для В D С. Особо следует остановиться на схеме ИЮ. По поводу этой схемы А. Н. Колмогоров пишет, что хотя критика Бруаэра не коснулась ее, тем не менее она «не имеет и не может иметь интуитивных оснований как утверждающая нечто о последствиях невозможного: мы обязаны признать £?, если признали ложным истинное суждение А». Поэтому схема ИЮ была отвергнута Колмогоровым. Все же она включена в систему постулатов интуиционистского исчисления высказываний. В пользу этого можно привести такое рассуждение. Пусть дано обоснование для А. Тогда в качестве обоснования для -»A D В можно взять произвольное общее правило, поскольку оно должно применяться только в случае, когда дано обоснование для -»А, однако, имея обоснование для А. мы можем быть уверены, что наше обоснование для -1A D В никогда не будет использовано. Те, кого такое обоснование удовлетворяет, могут пользоваться интуиционистским исчислением высказываний. Остальные должны довольствоваться минимальным исчислением, введенным И.Юхансоном. Оно задается схемами аксиом И1 — И9. Если из минимального исчисления исключить схему аксиом И9, то получится позитивное исчисление. Так как в интуиционистском, минимальном и позитивном исчислениях есть схемы аксиом И1 и И2, а единственным правилом вывода является modus ponens, то остается в силе доказательство теоремы о дедукции для классического исчисления высказываний: каковы бы ни были множество формул Г и формулы 380 
А, £?, если Г U {A} h В, то Г h 4 D В. Так как среди схем аксиом интуиционистского и минимального исчислений есть схема И9, то для этих исчислений верен принцип приведения к абсурду: если из множества формул Г U {А} выводимо противоречие, т. е. Г U {A} h В и Г U {Л} I >5 для некоторой формулы В, то Г1--.А Логические матрицы. В силу доводов, основанных на неформальной интуиционисткой семантике, следует ожидать, что формула PV-.P, выражающая закон исключенного третьего, не выводится в интуиционистском исчислении высказываний. Чтобы строго доказать это утверждение, требуется разработка подходящего математического аппарата. Для исследования интуиционистского исчисления высказываний используются алгебраические модели. Логическая матрица М = (М; 1, •,+,—>>, ~) — это непустое множество М (носитель матрицы) с выделенным элементом 1, на котором заданы двухместные операции •,+,—)> и одноместная операция причем для любых элементов х,у Е М выполняются условия: 1) 1—>х = 1=>х = 1\ 2) x—>y = y—tx=l=>x = = У- Элементы М называют элементами логической матрицы М и иногда пишут х Е М вместо х Е М. Логическая матрица — это своего рода обобщение множества истинностных значений, причем 1 означает истину, а операции *, +, —», ~ соответствуют конъюнкции, дизъюнкции, импликации и отрицанию. Оценкой в логической матрице М называется функция, которая каждой пропозициональной переменной сопоставляет некоторый элемент из множества М. Всякую оценку / можно продолжить на множество всех пропозициональных формул, положив f(A & В) = f(A) • /(-В); f(A V В) = f(A) + ДВ); f(A Э В) = f(A) /(В); f{~'A) =~ f(A). Будем говорить, что формула А истинна в логической матрице М, если f(A) = 1, какова бы ни была оценка / в М. В этом случае логическая матрица М называется моделью пропозициональной формулы А. Если же для некоторой оценки / имеет место f(A) ф 1, то говорят, что формула А опровергается в матрице М, а матрица М называется контрмоделью для этой формулы. 381 
Логическая матрица М называется моделью пропозиционального исчисления, если все формулы, выводимые в этом исчислении, истинны в матрице М. Логическая матрица называется точной моделью данного исчисления, если в этом исчислении выводимы те и только те формулы, которые истинны в этой матрице. Пример 15.1. Логическая матрица Мд = ({0,1}, •, +, —~), где х • у = xSz у; х у = х \/ у: х —> у = х D у; ~ х — -»ж, а значения правых частей этих равенств вычисляются по таблицам для логических операций &, V, D, является точной моделью классического исчисления высказываний. ■ Теорема 15.2. Если единственным правилом вывода пропозиционального исчисления X является modus ponens, то логическая матрица М является моделью X, если и только если все аксиомы исчисления X истинны в М. Доказательство. Пусть логическая матрица М — модель данного пропозиционального исчисления X. Поскольку все аксиомы этого исчисления выводимы в нем, они истинны в М по определению модели. Обратно, пусть в логической матрице М истинны все аксиомы исчисления X, в котором единственным правилом вывода является modus ponens, и пусть ... ,Ап — некоторый вывод в этом исчислении. Используя определение логической матрицы, индукцией по г нетрудно доказать, что для любого г = 1, ..., п формула Ai истинна в матрице М. ■ Пример 15.2. Моделью интуиционистского исчисления высказываний является логическая матрица Mi = + У где х • у = min (я, у); х + у = та х(ж, г/); х -> у = (1, если х < у. ^ I 1, если х = О, ~х = х->0=< у, если х > у] 10, если х ф 0. Интуитивный смысл элементов этой логической матрицы следующий. Представим себе, что объективно каждое высказывание либо истинно, либо ложно, но некоторые истинные высказывания еще не доказаны. Тогда доказанным истинным высказываниям сопоставляется значение 1. Если же высказывание ис¬ 382 
тинно, но еще не доказано, ему сопоставляется значение - (такое высказывание истинно, так сказать, наполовину). Ложным высказываниям сопоставляется значение 0. Рутинной проверкой можно убедиться, что все аксиомы интуиционистского исчисления высказываний истинны в матрице Mi. Для этого достаточно для каждой аксиомы построить истинностную таблицу. Очевидно, что если в формуле п переменных, то в истинностной таблице для такой формулы должно быть Зп строк. ■ Если логическая матрица М является моделью данного исчисления, то для того, чтобы установить невыводимость формулы А в этом исчислении, достаточно доказать, что она опровергается в М, указав такую оценку /, что f(A) ф 1. Пример 15.3. Докажем, что формулы и -»-»Р D Р не выводимы в интуиционистском исчислении высказываний. Для этого рассмотрим такую оценку / в матрице Mi, что f(P) — Тогда fbP) =~ f(P) =~ \ = 0; fb-P) =~ fbP) =~ о = 1; f(P V -,Р) = f(P) + Д-Р) = l- + 0 = i; fb-'P ^P) = fb^P) f(P) = = Таким образом, при оценке / формулы Р V -»Р и -i-iР D Р принимают значение Значит, обе эти формулы не выводимы в интуиционистском исчислении высказываний. ■ Пример 15.4 • Формула (Р D Q) D ((-»Р D Q) D Q) не выводима в интуиционистском исчислении высказываний. Рассмотрим такую оценку / в матрице Mi, что f(P) = f(Q) = Тогда f(P Э Q) = \ -> \ = 1; fbP) =~ \ = 0; fbP => Q) = 1; f(bPDQ)DQ) = l-+\ = \. Наконец, Д(Р D Q) D ((-P D Q) D Q)) = 1 —> - = Таким образом, значение рассматриваемой формулы при этой оценке 383 
равно -, следовательно, эта формула не истинна в модели Mi интуиционистского исчисления высказываний и потому не выводима в этом исчислении. ■ Пример 15.5. Докажем, что формула (-»Р D -»Q) D (Q D Р) не выводима в интуиционистском исчислении высказываний. Для этого рассмотрим такую оценку / в матрице Mi, что /(Р) = = 1 /(О = 1. Тогда Д-Р) = 0; /(-<?) = 0; Д-Р э -Q) = 0 -> 0 = 1; /(Q D Р) = 1 \ = 1; Д(-Р Э ->Q) D (Q D Р)) - = 1 —» - = -. Так как значение формулы не равно 1, она не истинна в модели Mi и не выводима в интуиционистском исчислении высказываний. ■ Пример 15.6. Моделью интуиционистского исчисления высказываний является матрица М2 = ({0,1} 2 U {1}> 15 ч чrs"'} ч где 1 • а = а ■ 1 = a: l-fa = a-fl = l; 1 —а = a; а -> 1 = 1; ~ 1 = (0, 0) (здесь а — произвольный элемент матрицы М2), а операции над элементами вида (а, Ь), где a, b Е {0,1}, определяются так: (ab6i) • (a2,fe2) = (min(ai,a2),min(6bb2)); («1,61) + {a2,b2) = (max(a1,a2),max(6i,62)); (а, Ь) = 1, если а — b = 0, где у(х) = (1 — а, 1 — Ь), если а / 0 или 6 7^ 0; (аьЬД -> (а2,Ь2) = у(~ (ai,bi) + («2,62)), {1, если х = (1,1), х если х ф (1,1). Пример 15.7. Докажем, что формула —»Р V —*Р, выражающая слабый закон исключенного третьего, не выводима в интуиционистском исчислении высказываний. Для этого рассмотрим такую оценку / в матрице М2, что /(Р) = (0,1). Тогда fbP) =~ (0,1) = (1-0,1-1) = (1,0); 384 
fb^P) =~ (1, 0) = (1 - 1, 1 - 0) = (0,1); fbP v = (1, 0) + (0.1) = (max(l, 0),max(0,1)) = (1,1). Так как (1,1) ф 1, рассматриваемая формула опровергается в модели М2 интуиционистского исчисления высказываний и потому не выводима в этом исчислении. Заметим, что формула ->Р V -1-1Р истинна в логической матрице Mi. ■ Метод доказательства невыводимое™ формул в интуиционистском исчислении высказываний путем построения конечной контрмодели является универсальным: если формула А не выводима в интуиционистском исчислении высказываний, то существует конечная логическая матрица М, которая является моделью для этого исчисления и контрмоделью для А. Таким образом, для любой пропозициональной формулы А можно либо построить ее вывод в интуиционистском исчислении высказываний, либо найти конечную контрмодель для А. Теоретически этот результат дает разрешающий алгоритм для интуиционистского исчисления высказываний. Чтобы узнать, выводима ли данная пропозициональная формула А в этом исчислении, нужно параллельно совершать два действия: 1) порождать множество всех выводимых формул (оно перечислимо) и ждать появления в этом множестве формулы А; 2) строить всевозможные конечные логические матрицы и искать среди них модель интуиционистского исчислении высказываний, в которой опровергается формула А. Ровно одно из этих действий когда-нибудь успешно завершится. Разработаны и другие разрешающие алгоритмы, пригодные для практического применения. Пропозициональное исчисление X называется табличным, если существует конечная точная модель исчисления X. Например, классическое исчисление высказываний является табличным: его точная модель — двухэлементная логическая матрица Мд. Теорема 15.3. Интуиционистское исчисление высказываний не является табличным. Доказательство. Для каждого натурального п > 2 определим логическую матрицу Ln, носителем которой является Г 1 1 11 множество < 1, -, 0 >, а операции •, +, —», ~ задаются но [23 п J тем же формулам, что и в матрице В частности, матрица L2 есть дЯ\. Рутинным способом можно убедиться, что каждая 385 
матрица Ln является моделью интуиционистского исчисления высказываний. Для п > 1 рассмотрим формулу Fn = \J (Pi D Pj), no- 0<i<j<n+l строенную из переменных Pq, Рь • • • , Pn, Pn+i- Пусть / — оценка в матрице Ln+i такая, что /(Ро) = 1; f(Pi) = (1 < г < п); г + 1 /(Pn+i) = 0. Очевидно, что если г < /, то /(Рг) > /(Pj). так что /(Рг Э Р,') = /(Рг) /(Pj) = ДД) 7^ 1. Но тогда f(Fn) = max(/(P1), ..., /(Pn+1)) = ^ 1. Значит, формула Fn опровергается в матрице Ln и потому не выводима в интуиционистском исчислении высказываний. Допустим, что существует конечная логическая матрица М, являющаяся точной моделью интуиционистского исчисления высказываний. Пусть в ней п + 1 элементов (п > 1). Тогда для произвольной оценки / в матрице М найдутся такие г и j, что 0<j<i<n+ln /(Рг) = f(Pj) = а Для некоторого a G М. Тогда /(Рг D РД = /(Рг) -> /(Р?) = а а. Теперь заметим, что формула Р D Р выводима в интуиционистском исчислении высказываний, следовательно, при любой оценке д в матрице М значение д(Р) —» д(Р) равно 1. В частности, если д(Р) = а, получаем а —а — 1. Таким образом, для произвольной оценки / в матрице М найдутся такие г и /, что 0 < j < i < п + 1 и при этом /(Рг D Pj) — 1. Следовательно, один из дизъюнктивных членов в Fn принимает значение 1 при оценке /. Теперь заметим, что формулы (Р D D Р) V <2 и <2 V (Р D Р) выводимы в интуиционистском исчислении высказываний, следовательно, при любой оценке д в матрице М значения 1 + g(Q) и g(Q) -h 1 равны 1. В частности, для любого а Е М, положив g(Q) = а, получаем а + 1 = 1 + а = 1. Следовательно, если в дизъюнкции хотя бы один дизъюнктивный член принимает значение 1, то и вся дизъюнкция принимает значение 1. Поэтому f(Fn) — 1, т. е. Fn истинна в М. Поскольку М — точная модель интуиционистского исчисления высказываний, то Fn должна быть выводима, но это неверно, как показано выше. Полученное противоречие показывает, что не существует конечной точной модели интуиционистского исчисления высказываний. ■ Модели Крипке для логики высказываний. Логические матрицы являются универсальным, но довольно формаль¬ 386 
ным инструментом исследования интуиционистского исчисления высказываний. Другая интерпретация пропозициональных формул, близкая по духу интуиционистскому пониманию логических операций, была предложена в 1965 г. американским философом и логиком С. А. Крипке. Определение 15.1. Моделью Крипке для логики высказываний называется набор /С = (К, lh), где (К, ■<) — частично-упорядоченное множество, называемое шкалой Крипке, а lh некоторое соответствие между множеством К и множеством всех пропозициональных переменных, обладающее тем свойством, что если ос,(3 Е К, Р — переменная, a lh Р и а ■< (3, то (3 lh Р. Соответствие lh называется оценкой. Модель Крипке /С = (К, lh) называется конечной, если конечно множество К. Интуитивный смысл моделей Кринке соответствует интуиционистским представлениям о становящемся характере истинности. А именно, элементы множества К можно трактовать как «моменты времени», причем а -< (3 для а,р G X означает, что момент а предшествует моменту (3. При этом моменты времени можно понимать не в «физическом» смысле, а, так сказать, в «логическом»: каждый момент времени характеризуется состоянием знаний в этот момент. Поэтому и шкала Крипке («временная шкала»), вообще говоря, не является линейно упорядоченным множеством, ибо в будущем развитие знаний может пойти разными путями. Выражение a lh Р читается «а вынуждает Р» или «Р истинно в момент а». Интуитивно, а lh Р означает, что в момент а утверждение Р доказано, а условие, что если a lh Р и а р, то р lh Р, выражает принцип сохранения истинности: то, что истинно в данный момент, остается истинным всегда в будущем. На основе соответствия lh определяется соответствие между множеством К и множеством всех формул, обозначаемое тем же символом lh. Это соответствие задается индукцией по построению формулы. Для переменных оно уже определено. Далее полагаем: a lh (А&Р) ^ [a lh А и a lh В]\ a lh (А V В) [a lh А или a lh В\\ a lh (A D В) (V(3 У а)[(3 If А или (3 lh Р]; a lh ->А ^ (Vp >: а)р А. Нетрудно доказать, что принцип сохранения истинности остается верным и для формул: если a lh А и а ^ (3, то (3 lh В. 387 
Говорят, что формула А истинна в модели Крипке JC и пишут JC |= А, если для любого а Е К имеет место а II- А. Если формула А не истинна в модели Крипке /С, т. е. /С А то & называют контрмоделью для А. Имеет место следующая теорема о корректности и полноте интуиционистского исчисления высказываний относительно моделей Крипке. Теорема 15.4. Пропозициональная формула выводима в интуиционистском исчислении высказываний тогда и только тогда, когда она истинна в любой конечной модели Крипке. Притер 15.8. Докажем, что формула РУ -iР невыводима в интуиционистском исчислении высказываний, построив для нее контрмодель. Пусть К = {а,(3}, причем а -< а, а -< (3, (3 ■< (3. Таким образом, шкала Крипке состоит из двух «моментов»: а («сегодня») и (3 («завтра»). Положим (3 lh Р. Докажем, что а I/ PV-.P. В силу определения соответствия lh для дизъюнкции а lh Р У -iP означает, что выполняется хотя бы одно из условий: 1) a lh Р или 2) а lh -■ Р. Условие 1) очевидно не выполнено. Условие 2) в силу определения соответствия lh для отрицания означает, что а) а I/ Р и б) (3 1^ Р. Условие а) выполнено, а б) — нет. Следовательно, условие 2) также не выполнено. Таким образом, а Iу- Р У -1Р. ■ 15.3. Интуиционистская логика предикатов Пусть фиксирована сигнатура £1, содержащая лишь константы и предикатные символы. Интуиционистское исчисление предикатов в сигнатуре П задается схемами аксиом И1 — ИЮ интуиционистского исчисления высказываний, а также схемами аксиом И11. УуА(у) d A{t)\ И12. A(t) D З^П(Д. В этих схемах аксиом А(у) — произвольная формула сигнатуры Л; v — произвольная переменная, t — терм сигнатуры £1 (т. е. переменная или константа), свободный для переменной у в формуле А(у) (т. е. если t есть переменная гц то никакое свободное вхождение переменной у в формулу A(v) не находится в области действия квантора по переменной гх); A(t) — результат подстановки терма t вместо всех свободных вхождений переменной у в формулу А (у). Правила вывода интуиционистского исчисления предикатов: 388 
(I) A, Ad В В ( modus ponens); (П) (III) A D В 3v Ad В Bp A В dVv A (удаление квантора существования); (введение квантора всеобщности). В правилах (И) и (III) В не содержит свободных вхождений v. Интуиционистское исчисление предикатов отличается от классического исчисления предикатов лишь схемой аксиом ИЮ, заменяющей закон двойного отрицания. Как и в случае классического исчисления предикатов, определяются понятия квазивывода из гипотез и вывода как такого квазивывода, в котором соблюдаются определенные ограничения на применение правил (II) и (III). Оправданием применения эпитета «интуиционистское» к этому исчислению является следующий факт. Пусть фиксирована некоторая интерпретация данного элементарного языка сигнатуры П, т. е. выбрана некоторая непустая предметная область М, константам из П сопоставлены в качестве значений некоторые элементы из М, а предикатным символам из ft — конкретные предикаты на М (т. е. высказывательные формы некоторого понятного языка с соответствующим числом параметров). Тогда 1) все аксиомы интуиционистского исчисления предикатов сигнатуры П становятся интуиционистски истинными высказываниями или высказывательными формами, замыкания которых кванторами всеобщности по всем параметрам интуиционистски истинны в данной интерпретации; 2) правила вывода сохраняют интуиционистскую истинность. Для схем аксиом И1 —ИЮ этот факт отмечался при рассмотрении интуиционистского исчисления высказываний, схемами аксиом которого они являются. Рассмотрим схему аксиом И11. Пусть формула А{у) содержит свободно лишь переменную щ а терм t есть константа с. В фиксированной интерпретации формула A(v) задает конкретный одноместный предикат Р(Д, а значением константы с является некоторый элемент т из предметной области М. В соответствии с интуиционистским пониманием импликации истинность формулы Vv А(у) D А(с) в данной интерпретации означает, что существует общий метод, позволяющий любое обоснование («доказательство») высказывания Р(у) преобразовать в обоснова¬ ние высказывания Р(га). 389 
Итак, пусть дано доказательство высказывания Vv P(v). В силу интуиционистского понимания квантора всеобщности, это означает, что нам дан общий метод, позволяющий для любого элемента a Е М получить доказательство высказывания Р(а). Применим этот метод к элементу га. Тогда получим доказательство высказывания Р(га), что и требовалось. Теперь рассмотрим случай, когда A(v) содержит свободно переменные, отличные от v. а, терм t также может быть переменной и. Пусть гщ, ...,Wk — все параметры формулы \/v A(v) D D A(t). Пусть фиксирована некоторая интерпретация сигнатуры ft. Придадим переменным иц, ... , произвольные значения из предметной области. Тогда формула A(v) превратится в одноместный предикат Р(и), а значением терма t будет некоторый элемент га из предметной области. Выше был описан общий метод, позволяющий из обоснования высказывания Vv P(v) получить обоснование высказывания Р(т). Этот метод не зависит от того, какие именно значения придали переменным гщ, ...,гт/с. Значит, высказывание \/гщ ... \/кд> (Vu А(у) D A(t)) интуиционистски истинно. Нетрудно с помощью аналогичных рассуждений показать, что схема аксиом И12 также является схемой интуиционистски истинных высказываний или тождественно истинных высказы- вательных форм. Правило вывода modus ponens, очевидно, сохраняет интуиционистсткую истинность. Покажем, что правило (II) также сохраняет интуиционистскую истинность. Пусть высказывание \/гщ ... Уу {A(v) D P), где u;i, ... — все параметры формулы A(v) D Р, отличные от v, истинно в данной интерпретации. Докажем, что высказывание \/гщ ... (3v A~D В) также ис¬ тинно в этой интерпретации. Придадим переменным гщ, ... ,Wk произвольные значения rai, ... , из предметной области. Тогда формула A(v) превратится в некоторый одноместный предикат Р(и), а формула В — в некоторое высказывание Q. Докажем, что истинно высказывание 3v P(v) D Q. Для этого надо описать общий метод, который позволяет из любого обоснования высказывания 3v P(v) получить обоснование высказывания Q. Итак, пусть дано обоснование высказывания 3vP(v). Это означает, что дан некоторый элемент га из предметной области и обоснование высказывания Р(га). В силу истинности высказывания \/гщ... Vic/c Уу (A(v) D P), можно найти обоснование вы- 390 
оказывания Р(т) D Q. Теперь, имея обоснование высказывания Р(га), получаем обоснование высказывания Q. что и требовалось. В этом рассуждении описанное обоснование высказывания ЗаР(а) D Q не зависело от элементов шь ... , гид, и истинность Vw 1... (За A D В) доказана. Совершенно аналогично доказывается, что правило (III) сохраняет интуиционистскую истинность. Математическое уточнение интуиционистской семантики элементарных языков дает семантика Крипке для логики предикатов. Пусть фиксирован элементарный язык сигнатуры Д, не содержащей функциональных символов. Модель Крипке для языка сигнатуры ft — это набор JC = = (К, D, lb), где (К, ^) — частично упорядоченное множество (шкала Крипке), D — функция, каждому элементу а € К сопоставляющая непустое множество Д*, причем Д* С Др, если а ^ (3. Если сигнатура П содержит константу с, то ей сопоставляется некоторый объект с, который, по определению, принадлежит любому множеству Да для а Е К. В дальнейшем константа с отождествляется с элементом с. Наконец, II- — некоторое соответствие между множеством К и множеством всех атомов вида P(ai,... , an), где Р есть (п-мест- ный) предикатный символ сигнатуры Д, а ai, ..., ап — элементы множества U А*, обладающее тем свойством, что если a <Е К, а £К P(ai, ...,an) — атом указанного вида и a lb P(ai, ...,an), то {ai, ... , an} С Da, и если a :< p, то p lb P(ai, ..., an). Соответствие lb называется оценкой атомов в данной модели. Запись a lb P(ai, ..., ап) читается «а вынуждает P(ai, ..., ап)» или «P(ai, ... , ап) истинно в момент а». На основе соответствия 1Ь определяется соответствие между множеством К и множеством всех высказываний (т. е. замкнутых формул) сигнатуры Д, расширенной за счет констант для обозначения всех элементов множества U А, обозначаемое тем а ек же символом 1Ь. Это соответствие задается индукцией по логической длине высказывания, т. е. количеству логических символов в нем. Для атомов оно уже определено. Далее полагаем: a lb (Ah В) ^ [a lb А и alb В]\ a lb (А V В) ^ [a 1Ь А или а 1Ь В]\ a lb (А э В) ^ (Vp У а) [р f А или р lb В]\ alb-.^^(Vp>:a)plK А\ a lb За A(v) ^ (За Е Да) a lb А{а)\ 391 
a lh Vv A(v) ^ (\/p >: a) (Va E D$) p II- A(a). Здесь p >: а означает a ^ p, а A(a) есть результат подстановки константы а вместо переменной v в формулу A(v). Говорят, что высказывание А истинно в модели /С и пишут /С |= А, если для любого a G К имеет место a lh А. Если высказывание А не истинно в модели Крипке /С, т. е. /С А, то /С называют контрмоделью для А. Имеет место следующая теорема о корректности и полноте интуиционистского исчисления предикатов относительно моделей Крипке. Теорема 15.5. Замкнутая формула сигнатуры выводима в интуиционистском исчислении предикатив тогда и только тогда, когда она истинна в любой модели Крипке. Таким образом, для любой замкнутой формулы А можно либо построить ее вывод в интуиционистском исчислении предикатов, либо найти контрмодель для А. Пример 15.9. Докажем, что формула -1->\/ж(Р(ж) V ~^Р(х)) не выводится в интуиционистском исчислении предикатов, построив контрмодель для нее. Пусть К — N, причем т -< п ^ ^ т < п для любых ra,n Е N, и Dn = {0, ...,п}. Положим т lh Р(п) ^ т > п. Допустим, что О II—<-Л/ж (Р(ж) V -»Р(ж)). (15.1) В силу определения lh (15.1) означает т Iу- -Л/ж (Р(ж) V ~^Р(ж)) для каждого m Е N. В частности, О Iу- —>\/ж (Р(ж) V -1Р(ж)). Это означает т lh Мх (Р(ж) V -»Р(ж)) для некоторого т Е N. Отсюда и из определения lh для квантора всеобщности следует, что т lh Р(т) V -»Р(га), так как т Е Dm. В силу определения соответствия lh для дизъюнкции это означает, что имеет место либо 1) т lh Р(га), либо 2) т lh -»Р(га). Однако ни то, ни другое не имеет места. Действительно, условие 1) не выполняется в силу определения соответствия lh для атомов. Докажем, что условие 2) также не выполняется. Допустим противное, г. е. т II Р(т). В силу определения соответствия lh для отрицания это означает, что (Vn >т)п\у- Р(т). Но это не так, ибо га + 1 lh P(m). Таким образом, предположение (15.1) приводит к противоречию. Значит, О If —*—«\/ж (Р(ж) V -»Р(ж)), и построенная модель Крипке является контрмоделью для формулы \/ж(Р(ж) У-Р(ж)). ■ Интуиционистское исчисление предикатов используют при формализации интуиционистских математических теорий. Так, 392 
если в формулировке элементарной арифметики Пеано РА заменить обычное, классическое исчисление предикатов на интуиционистское, получится интуиционистская система арифметики, обычно обозначаемая НА (арифметика Гейтинга). 15.4. Рекурсивная реализуемость Неформальная интуиционистская семантика логических операций не является математически точной. Что такое, например, «общий метод», используемый при толковании импликации и квантора всеобщности, или что такое «доказательство» — основное понятие, используемое при разъяснении интуиционистской семантики? Эти вопросы получили разрешение, когда в рамках математической логики была развита теория алгоритмов. Не уточняя понятие «доказательства», можно считать, что доказательства кодируются натуральными числами. Далее, под «общим методом», можно понимать алгоритм. Алгоритмы также нумеруются натуральными числами. Так мы приходим к понятию рекурсивной реализуемости, введенному С.К.Клини в 1945 г. Клини определяет понятие ег Ф (натуральное число е реализует арифметическое высказывание Ф) индукцией по числу логических символов в Ф. Если Ф — атом, то считается, что е г Ф тогда и только тогда, когда е = 0 и высказывание Ф истинно. Если Ф = (Фо&ФД, то егФ тогда и только тогда, когда е имеет вид 2е° • З61, где ео гФо, е\ г Фь Если Ф = (ФоVФД, тоегФ тогда и только тогда, когда имеет вид 2° • Зе°, где е0 г Ф0, либо 21 • З61, где е\ г Фр Если Ф = (Фо D ФД, то егФ тогда и только тогда, когда е является номером ЧРФ, которая всякое число ео такое, что ео гФо, переводит в число ех такое, что е\ гФ^ Если Ф = —*Ф, то егФ означает ег(Ф D 0 = 1). Если Ф = ЗжФ(ж), то е г Ф тогда и только тогда, когда е имеет вид 2п • За, где агФ(п). Если Ф = \/жФ(ж), то е г Ф тогда и только тогда, когда число е является номером ЧРФ, которая всякое натуральное п переводит в такое число а, что агФ(п). Арифметическое высказывание Ф называется реализуемым, если существует такое число е, что егФ. Понятие рекурсивной реализуемости может рассматриваться как один из вариантов уточнения интуиционистской семанти¬ 393 
ки языка арифметики. Именно такая семантика лежит в основе конструктивной математики, разрабатывавшейся А. А. Марковым и его школой. Вообще, под конструктивной семантикой обычно понимают такой вариант интуиционистской семантики, где термин «общий метод» понимается как «алгоритм». Отметим некоторые очевидные свойства рекурсивной реализуемости, вытекающие из определения: высказывания Ф и ->Ф не могут быть оба реализуемыми; высказывание -»Ф реализуемо тогда и только тогда, когда высказывание Ф не реализуемо; каково бы ни было высказывание Ф, одно из высказываний Ф и -пф реализуемо; если высказывание Ф реализуемо, то Ф D Ф реализуемо; если высказывание Ф не реализуемо, то Ф D Ф реализуемо. Рассмотрим вопрос о соотношении классической истинности и реализуемости. Из перечисленных свойств реализуемости вытекает, что высказывание, не содержащее кванторов, реализуемо тогда и только тогда, когда оно истинно с классической точки зрения. Отсюда следует, что высказывание вида Зх\... Зхп Ф(жх, ..., хп), где Ф(жь ..., хп) — бескванторная формула, реализуемо тогда и только тогда, когда оно классически истинно. Этот результат можно перенести вообще на все S-высказывания. В случае более сложных высказываний ситуация иная. Теорема 15.6. Существует высказывание, которое классически истинно, но не реализуемо. Доказательство. Существует S-формула Ф(ж) с единственным параметром ж, определяющая предикат фДж) = 1. Рассмотрим классически истинное высказывание Ух(Ф(х) У-Ф(ж)). (15.2) Докажем, что оно не реализуемо. Допустим, что существует число е, которое реализует высказывание (15.2). Посредством (a)i будем обозначать показатель, с которым г-е простое число входит в разложение числа а на простые множители. Функция /(ж) = (сре(ж))о вычислима и всюду определена, причем принимает только значения 0 и 1. Пусть т — номер функции /, т. е. / — фт- Рассмотрим значение /(га). Если /(га) = 0, т. е. фт(га) = = 0, то высказывание -пФ(га) реализуемо. Но в таком случае (фе(га))о = 1, т. е. /(га) = 1. Получили противоречие. С другой стороны, если /(га) = 1, т.е. фт(га) = 1, то реализуемо Ф(га), и в этом случае (фе(га))о = 0, т. е. /(га) = 0, так что снова получается противоречие. ■ 394 
Следствие 15.1. Существует высказывание, которое реализуемо., по не является истинным с классической точки зрения. Доказательство. В качестве такого высказывания можно взять высказывание -»Ф, где Ф есть высказывание (15.2). ■ Формула Ф(ж1, ...,хп), не содержащая свободных переменных, отличных от xi, ... , жп, называется реализуемой, если существует тотальная вычислимая n-местная функция / такая, что число f(k 1, ..., kn) реализует формулу Ф(х\. ... ,жп), каковы бы ни были натуральные числа к\. ..., кп. В этом случае говорят, что / реализует Ф(х1, ..., хп), а Ф(жх, ... , хп) реализуема функцией /. Имеет место теорема о корректности интуиционистской арифметики НА относительно рекурсивной реализуемости. Теорема 15.7. Каковы бы ни были множество формул Г и формула Ф, если в интуиционистской арифметике НА имеет место Г Ь Ф, и все формулы в Г реализуемы, то Ф реализуема. Доказательство этой теоремы носит конструктивный характер в том смысле, что по выводу формулы Ф из Г можно эффективно, т. е. с помощью алгоритма, найти реализацию Ф, коль скоро даны реализации формул из Г. Это обстоятельство играет важную роль в применениях интуиционистской логики в теоретическом программировании. Допустим, что нам требуется написать программу для вычисления некоторой функции, про которую известна зависимость ее значения у от значения аргумента х (спецификация), и эта зависимость выражается арифметической Е-формулой Ф(х,у). Прежде чем писать программу, мы хотим убедиться, что для каждого х действительно существует соответствующее значение у, т. е. доказать утверждение Ух Зу Ф(ж, у). Если нам удалось это сделать средствами интуиционистской логики, например, вывести формулу УхЗу Ф(х1у) в системе НА, то по этому выводу мы можем найти реализацию этой формулы, т. е. номер (а значит, и алгоритм вычисления) частично-рекурсивной функции ср, которая каждому натуральному п сопоставляет реализацию формулы ЗуФ(п,у), которая имеет вид 2т • За, и при этом агФ(п,т), следовательно, Е-высказывание Ф(п,т) реализуемо и истинно. Таким образом, чтобы найти алгоритм для вычисления функции, заданной ее спецификацией Ф(ж, у), достаточно доказать утверждение Ух Зу Ф(ж, у), пользуясь только интуиционистскими логическими средствами. 
Глава 16 ЭЛЕМЕНТЫ ТЕОРИИ СЛОЖНОСТИ ВЫЧИСЛЕНИЙ В реальных вычислениях даже для вычислимой функции / актуальным является вопрос: «Вычислима ли / практически?» Иными словами, существует ли программа, вычисляющая функцию / за время, которым мы располагаем? Конечно, многое зависит от мастерства программиста. Однако есть и объективные факторы, влияющие на скорость вычисления функций. Они изучаются в теории сложности вычислений. 16.1. Предварительные сведения О-символика. В теории сложности вычислений в качестве оценок сложности используют функции натурального аргумента. При этом найти соответствующую оценку часто удается лишь с точностью до постоянного множителя. В такой ситуации удобно использовать О-символику. Определение 16.1. Числовая функция / называется ограниченной, если для некоторой константы С и всех натуральных чисел п выполняется неравенство |/(п)| < С. Определение 16.2. Пусть fug — числовые функции. Запись /(п) = 0(д(п)) (16.1) означает, что существуют ограниченная функция h и константа по такие, что f(n) = д{п) • h(n) при п > по- Отметим простые свойства этих обозначений. 1) Условие (16.1) эквивалентно существованию таких констант С и по, что /(и) < С * д(п) при п > щ. 2) Если /i(n) = 0(51 (п)) и /2(п) = 0(д2(п)), то fi{n) ■ /2(п) = 0(gi(n) ■ д2(п)), 396 
что коротко записывается так: 0{д\{п)) ■ 0{д2{п)) = 0(gi(n) ■ д2(п)). 3) Если /i(n) = 0(gi(n)), f2(n) = 0(д2{п)), д2{п) = 0(gi(n)), то fi(n) + /2(п') = 0(gi(п)). Короткая запись этого такова: 0(gi(n)) + 0(д2(п)) = 0(gi(n)) при д2{п) = 0(gi(n)). Особую роль в дальнейшем изложении будут играть степенные функции пс, с > 0. Для них последние два свойства переписываются так: 0(nCl) • 0(пС2) = 0(nCl+C2); 0(nCl) + 0(nC2) = 0(nmax{Cl’c2}). Двоичная арифметика. Каждое целое число п > 0 единственным образом разлагается в сумму степеней числа 2 : п = аш • 2т + ат— 1 • 2т * + ...+ а®, (16.2) где di суть 0 или 1, аш — 1. Слово атат-1 ... ао 6 {0,1}* называется двоичной записью числа п. Длина /(п) двоичной записи числа п, представленного в виде (16.2), равна га-hi. Так как га < log2n < га+1, то /(п) отличается от log2 п не более, чем на 1. Графы. В ряде примеров будут использованы основные понятия теории графов. Определение 16.3. Графом называется пара (К, Е)1 где V — произвольное конечное множество, называемое множеством вершин, а Е — конечное множество, состоящее из некоторых неупорядоченных пар вершин (г;,г/), v 7^ г/, г;, г/ G К. Элементы множества 1? называются ребрами графа. Обычно вершины графа изображают на плоскости выделенными точками, а ребра — отрезками или дугами, соединяющими изображения соответствующих вершин. Определение ориентированного графа отличается от приведенного выше тем, что на каждом ребре задано направление. Формально это означает, что элементы множества Е — упорядоченные пары вершин. Для любых двух различных вершин щ vf G V множеству Е могут принадлежать либо обе пары (щ г/) и (г/, г;), либо одна из них, либо ни одной. Определение 16.4. Граф называется полным, если каждая пара его вершин соединена ребром. 397 
Определение 16.5. Путь на (ориентированном) графе — это последовательность ребер вида (тд, щ), (гд, гд), ... , (г;п-ь vn). Определение 16.6. Граф (Уь Е\) называется подграфом графа если 14 С Г2 и Si С Г2- Это определение также относится и к ориентированным графам. 16.2. Меры сложности вычислений Процесс вычислений, развиваясь в дискретном времени, потребляет различные (разнородные) ресурсы. Предполагается, что величина потребленного к данному моменту ресурса измеряется натуральными числами и не может быть бесконечной, т. е. бесконечный ресурс требуется только для никогда не заканчивающегося процесса. Удобно считать, что никогда не заканчивающийся процесс потребляет бесконечное количество каждого ресурса. Конкретизировать понятие ресурса и способ его вычисления удается посредством задания модели вычислений, включающей язык программирования вместе с операционной семантикой, т. е. объяснением того, как программе и исходным данным сопоставляется процесс вычислений. Способ подсчета ресурса для данной модели называется мерой сложности вычислений и представляет собой вычислимую функцию Compl(p,v), которая по программе р и исходному данному v вычисляет ресурс, затраченный процессом применения р к щ если этот процесс конечен. В случае бесконечного процесса Compl (р, г;) не определено (Compl(p,v) = оо). Важным требованием, предъявляемым к мерам сложности вычислений, является разрешимость отношения Compl(p,v) < < п: множество {(р, щп) | Compl(p,v) < п} разрешимо. (16.3) Таким образом, имеется алгоритм, который по программе р, исходному данному v и количеству ресурса п проверяет, хватит ли этого количества для завершения вычисления программы р на входе и. Как используется модель вычислений для оценки трудоемкости алгоритмов? Изучаемый алгоритм по возможности точно реализуют в виде программы р на языке программирования данной модели, выбирают ресурс г (из числа определенных в 398 
модели) и ищут верхние оценки на величину затрат. Например, при анализе поведения алгоритма «в худшем случае» оценивают величину max Complr(p< v), (16.4) |г>|=п а поведение «в среднем» характеризуется оценками для 2~п Complr(p.v). (16.5) |г>|=п Здесь предполагается, что исходными данными для алгоритма являются двоичные слова, а ф| есть длина слова v Е {0,1}*. Основными (но не единственными) ресурсами являются время и память. Но в каждой модели вычислений они измеряются по-своему, что приводит к тому, что оценки указанных величин зависят не только от алгоритма, но и от модели вычислений. Традиционно в теории сложности вычислений в качестве базисной модели вычислений используют многоленточные машины Тьюринга с достаточно богатым фиксированным ленточным алфавитом Е (см. подразд. 10.7). Мы будем пользоваться введенными ранее соглашениями о выборе алфавита Е (см. подразд. 10.5), однако выбор способов словарного представления данных требует теперь большего внимания1. В частности, в теории сложности вычислений натуральные числа обычно записываются на ленте в двоичной записи, что существенно уменьшает длину записи (по сравнению с унарной записью, использованной в гл. 10). Определение 16.7. Мера сложности вычислений время работы Тм(у) многоленточной машины Тьюринга М — это число шагов в вычислении машины Тьюринга М на входе v. Шагом считается исполнение одной команды. Определение 16.8. Мера сложности вычислений зона, или память, Sm(v) многоленточной машины Тьюринга М определяется как максимум по всем рабочим лентам количества использованных ячеек к моменту остановки машины М на входе v. Если машина никогда не заканчивает работу, то полагаем зону бесконечной. Ячейка считается использованной, если в ней побывала головка. 1 Последнее объясняется тем, что длина входных данных п является основным параметром, от которого зависят показатели эффективности (16.4) и (16.5). 399 
Выбор максимума в определении зоны вместо более естественной меры — суммарного количества использованных ячеек — значительно упрощает расчеты, но практически не сказывается на получаемых оценках. В то же время оказывается существенным исключение входных лент из подсчета. Оно позволяет адекватно оценивать малые затраты памяти, когда вычисление требует рабочих ячеек меньше, чем длина входного слова. Пример 16.1. В подразд. 10.7 разобрана работа трехленточной машины Тьюринга М, реализующей сложение двух натуральных чисел в двоичной записи. Непосредственный подсчет зоны и времени ее работы на входе v = (х,у) приводит к следующим оценкам сложности операции сложения: Sm{v) < п + 1, Гм И < 2п + 2, где п — максимум длин двоичных записей слагаемых х и у. Аналогичные линейные оценки получаются и для операции вычитания. ■ Заметим, что для временной меры сложности Тм(у) условие (16.3) очевидным образом выполнено. В то же время для зоны наличие алгоритма проверки условия «Sm(v) < s» не следует непосредственно из определения На самом деле такой алгоритм существует. Он основан на следующей оценке. Теорема 16.1. По описанию машины Тьюринга М можно вычислить константу С такую, что если процесс вычисления М заканчивается за t шагов с зоной s1 то s < t < (п + 2)k°Cs. где п — максимум длин входных слов, ко — число входных лент. Алгоритм проверки условия Sm(v) < s такой: «По М, щ s вычисляем Т = (п + 2)k°Cs и моделируем вычисление M(v) на Т шагов. Если оно закончилось и фактическая зона оказалась меньше s, то возвращаем 1; иначе — 0.» 16.3. Класс Р Определение 16.9. Числовая функция / называется функцией полиномиального роста, если для некоторых с и щ выполнено f(n) < пс при п > по- Более коротко это можно записать так: /(п) = 0(пс) для некоторой константы с. Пусть алфавит Eq является подмножеством ленточного алфавита Е многоленточной машины Тьюринга М, причем E\Eq содержит достаточное количество разделителей и служебных сим¬ 400 
волов (см. иодразд. 10.5). Пусть к — количество входных лент машины М, a v = (щ, ..., Vk) — ее исходное данное. Е Eq. Определение 16.10. Говорят, что время работы машины Тьюринга М на словах в алфавите Eq полиномиально ограпиче- но, если функция Тм(п) = maxsize^=nTM(v), где size(v) = |гц| + + ... + \vk\, есть функция полиномиального роста. В частности, такая машина всегда останавливается на входных словах из Eq. (Если использовать size(v) = max фф то получится эквивалентное определение.) Отметим некоторые свойства полиномиально ограниченных по времени машин Тьюринга, вытекающие из определения и деталей рассмотренных ранее конструкций. 1) Если время работы машины Тьюринга на словах алфавита Ео полиномиально ограничено, то ее зона также есть функция полиномиального роста. Это следует из того, что зона не превосходит времени работы машины Тьюринга (см. теорему 16.1). 2) Конструкция «чистки мусора» из теоремы 10.1 сохраняет свойство полиномиальной ограниченности по времени. Если время работы машины Тьюринга М на словах алфавита Eq полиномиально ограничено, то построенная в доказательстве теоремы 10.1 машина М7, которая чисто вычисляет ту же функцию типа Eq —» Eq, что и М, также полиномиально ограничена по времени. Это следует из предыдущего свойства: для удаления «мусора», расположенного на полиномиальной зоне, достаточно полиномиального времени. Теорема 10.1 и настоящее ее уточнение без труда переносятся на случай многоленточных машин Тьюринга. 3) Конструкция теоремы о композиции машин Тьюринга (см. теорему 10.2) также сохраняет свойство полиномиальной ограниченности по времени. Если время работы машин Тьюринга Mi, М2 над словами алфавита Eq полиномиально ограничено, то построенная в доказательстве этой теоремы машина М, которая моделирует последовательное применение машин Mi и М2, также полиномиально ограничена по времени. В самом деле, согласно свойству 2) можно считать, что машина Mi уже работает чисто. Тогда время работы моделирующей композицию машины М есть сумма времен работы машины Mi на входе v и машины М2 на входе w = M(v). Если pi(n) и P2(ji) — оценки времени работы машин Mi и М2 над словами длины п, то длину слова w можно оценить величиной m = pi(n), где п — ф|, а время работы маши¬ 401 
ны М2 на слове w — величиной Р2(тп) = P2{pi(n))- Складываем эти величины и учитываем, что оценки pi(n) и Р2(п) — степенные функции от п: Tm(v) < Pi(n) + P2(Pi(^)) = пс + (пс) = 0{nc+d). Естественное обобщение этого факта на случай многоленточных машин Тьюринга с несколькими входными лентами также имеет место. 4) Конструкция моделирования многоленточных машин Тьюринга одноленточными (см. подразд. 10.7) сохраняет свойство полиномиальной ограниченности по времени. Для доказательства напомним, что у полиномиально ограниченной по времени машины зона также полиномиально ограничена. Предложенный способ моделирования увеличивает зону исходной к-ленточной машины в 2к раз, то есть до s = 2к • g(n), где п — размер входных данных, a q(n) — степенная оценка зоны моделируемой машины. Моделирование одного шага происходит за время 0(5), а число шагов ограничено степенной функцией р(п). В результате получим, что время работы моделирующей одноленточной машины есть 0(р(п) • q(n)). Определение 16.11. Класс Р в широком смысле состоит из всех тотальных функций /: (Eg)fc —» (Ед)г, вычислимых на машинах Тьюринга с полиномиально ограниченным временем работы. Класс Р в узком (основном) смысле, состоит из всех одноместных предикатов L : Eq —» {0,1}, вычислимых на машинах Тьюринга с полиномиально ограниченным временем работы. Замечание. Часто предикаты на множестве Eq отождествляют с их областями истинности, т. е. предикат L: Eq -Э {0,1} отождествляется с множеством L = {х G EJ | L(x) = 1} С Eg. Подмножества словарного пространства Eg также называют формальными языками. В этом случае элементы класса Р в узком смысле суть формальные языки L, для которых условие «х Е L» распознается за полиномиальное время от |х|. Другими словами, класс Р в узком смысле состоит из тех, и только тех разрешимых подмножеств Eg, характеристические функции которых вычислимы на полиномиально ограниченных по времени машинах Тьюринга. Зависимость определения класса Р = Р^0 от выбора алфавита Ео не является существенной. Так как побуквенное кодирование слов алфавита Eq двоичными словами и соответствующее обратное преобразование вычислимы за полиномиальное время, то Р{од} фактически уже содержит в себе все функции и предикаты из Р. 402 
Если некоторая модель вычислений допускает компиляцию в машины Тьюринга и обратно с не более, чем полиномиальным замедлением но времени (таковы все реальные языки программирования), то класс Р, определенный посредством этой модели, совпадает с нашим. В частности, совершенно несущественен выбор варианта машин Тьюринга (сколько каких лент, головок и т. п.). Класс Р представляет собой математическую модель понятия вычислительной задачи, приемлемой для реального программирования. Имеется устойчивое мнение, что предикаты и функции, не принадлежащие классу Р, реально вычислять гораздо труднее, чем предикаты и функции класса Р. Практические задачи, которые лежат в классе Р, но требуют для своего решения времени, оцениваемого полиномом большой степени, встречаются довольно редко. Обычно приходится сталкиваться с одной из двух реалий: либо задача решается за время — полином небольшой степени, либо она требует экспоненциального времени, причем резкий рост временных затрат начинается уже на малых длинах входных данных. Различия наглядно проявляются в процессе эксперимента, поэтому факт принадлежности задачи классу Р позволяет предполагать реалистичное поведение соответствующей программы. Этот факт может служить основанием для постановки вопроса о разработке эффективной программы, решающей указанную задачу за приемлемое с практической точки зрения время. Пример 16.2. Считаем, что целые числа представлены в двоичной записи. Тогда операции сложения, вычитания, умножения, деления принадлежат классу Р. Можно показать, что «школьные» алгоритмы для этих операций имеют полиномиальные верхние оценки времени работы. ■ Пример 16.3. Функция НОД (а, Ъ) — наибольший общий делитель чисел а и b — принадлежит классу Р. Для ее вычисления за полиномиальное время подходит алгоритм Евклида, состоящий в многократном применении тождества НОД(аД) = НОД(Ь, mod (а, Ь)) (а > Ь), где mod (а, Ь) — остаток от деления а на Ь, которое сводит задачу вычисления значения d = НОД(а, Ь) к такой же задаче, но для меньших значений аргументов. ■ Пример 16.4 • Функция f(x) = 2х не принадлежит классу Р, так как длина двоичной записи 2х не является функцией поли- 403 
номиального роста от п = |ж|, так что за полиномиальное время невозможно даже выписать результат вычисления. ■ Пример 16.5. mod (ж + у, га), mod (х — у1 га), mod (х • у, га) как функции от ж, у и га легко вычисляются за полиномиальное время с помощью целочисленной арифметики. Более того, и функцию mod(xy,ra) удается вычислить за полиномиальное время. ■ 16.4. Класс NP Далеко не для всех алгоритмически разрешимых задач известны полиномиальные по времени алгоритмы их решения. В первую очередь это касается так называемых переборных задач, когда для поиска решения приходится перебрать большое количество внешне равноценных вариантов, лишь некоторые из которых оказываются продуктивными, т. е. в самом деле приводят к решению. В общем случае трудность таких задач характеризуется двумя параметрами — количеством вариантов, которые надо перебрать в процессе поиска продуктивного варианта, и сложностью задачи проверки продуктивности. Принципиальная трудность проявляется уже тогда, когда проверку продуктивности вариантов все же удается выполнить за полиномиальное время, но объем перебора, как функция от размера входных данных, растет экспоненциально. Такие параметры соответствуют определению класса NPy который содержит многие практически значимые трудные задачи. Определение 16.12. Формальный язык L С принадлежит классу 7VP, если существует предикат Р(ж, у) класса Р и степенная функция q{n) — пк такие, что для всех х G X* условие х G L эквивалентно существованию слова у G {0,1}* длины \у\ < q(|ж|), для которого R(x,y) = 1. Иными словами, хе L<&3y\y\<qQx\)R(x,y). (16.6) Соответствующее слово у называется свидетелем того, что xGL. Распознавание принадлежности слов языку L класса NP можно представить в форме интерактивного процесса, в котором человек пытается «убедить» вычисляющую предикат R машину Тьюринга в том, что х G L, а машина проверяет его доводы. На первой входной ленте написано х. Человек пишет на вторую 404 
входную ленту в качестве потенциального свидетеля слово у, длина которого ограничена значением q(\x\). Машина вычисляет R(x,y) и «соглашается», если результат есть 1. Слово х принадлежит языку L, если у человека есть принципиальная возможность (но не обязательно эффективный метод) убедить в этом машину. Язык L принадлежит классу 7VP, если такой интерактивный процесс распознавания принадлежности слов языку L возможен. Полиномиальное ограничение q(\x\) на длину свидетелей ограничивает перебор потенциальных свидетелей. Если «правильный» свидетель того, что х Е L неизвестен, то его можно подобрать в худшем случае за 2д^х^ попыток. Для определения класса NP существенен порядок этой величины, а не точный вид ограничения на алфавит и длину свидетелей. В частности, варианты определения 16.12, в которых в качестве свидетелей используются слова более широкого алфавита, либо длины свидетелей ограничиваются одним из условий \у\ < q(\x\) или \у\ = q(|ж|), оказываются эквивалентными нашему. Объем перебора во всех этих случаях будет 0(2Я'^Х^)1 где qf(n) — подходящая степенная функция. Правую часть (16.6) можно переписать в виде эквивалентного условия с ограничением типа равенства. Рассмотрим вычислимое за полиномиальное время отображение ср типа {0,1}* —» —» {0,1}*, стирающее блок вида 10... 0 в конце слов, так что ф(ДО...О) = у {у Е {0,1}*). Определим предикат R'(x,z) как Д(х,ср(г)). Он также принадлежит классу Р. Отображение ф осуществляет взаимно-однозначное соответствие между множе- ствами {z € {0,1}* | \z\ = <?(|ж|) } и {у <Е {0,1}* | \у\ < <г(|ж|)}, поэтому условие (16.6) эквивалентно следующему: х € L <^> 3z\z\=q{\x[)R'{x,z). (16.7) Заметим, что для доказательства факта L G NP достаточно установить справедливость условия (16.6) (или (16.7)) лишь для всех достаточно длинных слов ж, например, для \х\ > по- Слов длины \х\ < по — конечное число, и предикат R(x,y) всегда можно выбрать так, чтобы он не зависел от у для таких х. Каждый формальный язык из класса NP разрешим за вре- мя 0(2Р°1у(п)) с помощью перебора всех возможных свидетелей. Здесь п — длина слова, поступающего на вход разрешающему алгоритму, poly(n) — некоторая степенная функция от п, показатель степени которой для каждого языка L свой. 405 
Эквивалентное определение класса NP использует интерактивную модель вычислений — многоленточные недетерминированные машины Тьюринга. Отсюда происходит название класса NP (nondeterministic polynomial — недетерминированный полиномиальный). Недетерминированная машина отличается от детерминированной тем, что в программе разрешается использовать несколько команд с одинаковой левой частью «qa —» ...». Вычисление происходит интерактивно: человек выбирает одну из возможных в данный момент команд, а машина проверяет допустимость выбора и производит действия. Таким образом, для данного входа может быть не одно, а несколько вычислений. Определение 16.13. Недетерминированная машина Тьюринга М распознает (или допускает) язык L С SJ, если для каждого слова х Е Eq выполняется: 1) х Е L => на входе х существует вычисление М с результатом 1: 2) х ф L => все вычисления М на входе х не дают результата 1. В обоих случаях допускаются незаканчивающиеся вычисления. Если, кроме того, для некоторых с, по и каждого входного слова х Е L длины |х| > по имеется вычисление с результатом 1. длина которого не превосходит |ж|с, то говорят, что машина М распознает язык L за полиномиальное время. Определение 16.14. Формальный язык L принадлежит классу 7VP, если существует недетерминированная машина Тьюринга, которая распознает язык L за полиномиальное время. Имеет место следующее утверждение. Теорема 16.2. Определения 16.12 и 16. Ц эквивалентны. О проблеме «Р ф NP». Имеет место включение Р С NP. Для доказательства принадлежности языка L Е Р классу NP достаточно в качестве R(x, у) взять предикат х Е L и положить q(n) = 1. Вопрос о строгости этого включения, т. е. верно ли, что Р ф NP, остается центральной нерешенной проблемой в теории сложности вычислений. Хотя мнение исследователей склоняется в пользу положительного ответа и полезность многих алгоритмов основывается на этом предполагаемом ответе, строгость включения до сих пор не доказана. Имеется некоторая аналогия между качественной теорией алгоритмов и количественной, т. е. теорией сложности. Классы Р 406 
и NP соответствуют классам разрешимых и перечислимых множеств. Так, гипотеза о несовпадении классов Р и NP есть аналог известной теоремы о существовании перечислимого неразрешимого множества. Другой известный результат качественной теории — критерий разрешимости Чёрча —Поста: множество А разрешимо тогда и только тогда, когда оно и его дополнение А перечислимы. Его аналогом является недоказанное и не опровергнутое (но сомнительное) равенство Р = NP П co-NР. где co-NP состоит из всех языков L, чье дополнение L принадлежит NP. В настоящее время известны лишь вытекающие непосредственно из определений нестрогие включения Р С NPПсо-NP С С NP. Примеры задач класса NP. Последующие примеры задач из класса NP требуют кодирования рассматриваемых конечных объектов словами подходящего алфавита. Мы предполагаем, что подобное кодирование уже выбрано некоторым разумным (обычно, очевидным) образом. Задача распознавания какого-либо свойства конечных объектов принадлежит классу 7VP, если язык (подмножество соответствующего словарного пространства), который состоит из кодов, удовлетворяющих этому свойству объектов, лежит в классе NP. Пример 16.6. Проблема выполнимости булевых формул (SAT). Булевы формулы — это пропозициональные формулы, построенные из переменных р\,Р2-> • • • с помощью связок &, V, По булевой формуле cp(pi, ... ,рп) требуется выяснить, существует ли набор истинностных значений (битов 0 и 1) bi, ..., Ьп, для которого cp(bi, ..., bn) = 1. Свидетелем правильности ответа «да, выполнима» служит любой выполняющий набор (£>i, ..., bn). Его размер п не превосходит длины формулы, т. е. ограничен полиномом первой степени от ее длины. Свидетели имеются у всех выполнимых формул и только у них. Проверка того, что набор из п битов свидетельствует о выполнимости формулы, сводится к вычислению ее истинностного значения при заданных значениях переменных, что проверяется за полиномиальное время. Отсюда, SAT Е NP. ■ Пример 16.7. Проблема существования гамильтонова цикла. По графу требуется выяснить, существует ли в нем гамильтонов цикл — замкнутый путь по ребрам, проходящий через каждую вершину ровно один раз. Свидетель здесь — гамильтонов цикл. ■ 407 
Пример 16.8. Задача о клике. Подграф данного графа называется кликой, если он полный. Размер клики — это число ее вершин. По графу требуется выяснить, существует ли в нем клика данного размера d. Свидетель здесь — клика. ■ Пример 16.9. Полимино, краевая задача. Полимино — это двухмерное домино. Костяшки квадратные, на всех четырех сторонах имеются пометки — буквы фиксированного алфавита. Для каждого варианта игры фиксирован свой набор типов квадратиков. Краевые условия: на сторонах клетчатого прямоугольника т х и пометки заданы. По краевым условиям и варианту игры требуется определить, можно ли замостить весь прямоугольник по правилам домино. Для определенности считаем, что крутить костяшки нельзя (фиксирован верх). Свидетель — замощение. ■ Пример 16.10. Существование целочисленного решения системы линейных неравенств. Дана система линейных неравенств с целыми коэффициентами. Требуется выяснить, имеет ли она целочисленное решение. Свидетель — решение. (Для доказательства принадлежности классу NP нужна полиномиальная оценка на длину свидетеля. Можно показать, что если такая система имеет целочисленные решения, то длина некоторого из них оценивается сверху полиномом от длины системы.) ■ Следующие задачи также лежат в классе NP, но представляются более простыми, чем приведенные примеры 16.6 16.10. Пример 16.11. Требуется проверить, что данное натуральное число является составным. Свидетель здесь — разложение натурального числа в произведение двух натуральных сомножителей, каждый из которых больше 1. ■ Пример 16.12. Два графа называются изоморфными, если между их вершинами можно установить такое взаимно-однозначное соответствие, что если две вершины одного из графов соединены ребром, то соответствующие им вершины в другом графе — тоже. Само соответствие называется изоморфизмом. Исходными данными задачи является пара графов. Требуется проверить, что данные графы изоморфны. Свидетель здесь — изоморфизм. ■ 408 
16.5. Примеры заведомо трудных задач Общий подход к сравнению задач по трудности основан на понятии сводимости задач. Он позволяет сравнивать задачи, имеющие форму массовых проблем. Под массовой проблемой понимается семейство однотипных задач, различающихся лишь исходными данными. Обычно говорят, что задача Л сводится к задаче В и пишут Л < В, если существует метод, позволяющий получить решение каждой индивидуальной задачи из семейства Л, пользуясь решениями некоторых индивидуальных задач из семейства В. Под методом обычно понимается интерактивный алгоритм, решающий индивидуальную задачу из Л в процессе диалога с гипотетическим «оракулом», который знает решения всех индивидуальных задач семейства В. Запрос к оракулу состоит в передаче ему исходных данных, выделяющих индивидуальную задачу семейства В. Предполагается, что оракул отвечает на все запросы мгновенно и выдает правильные решения предлагаемых ему задач. Известны различные формализации понятия сводимости. При изучении сложностных классов в первую очередь используют много-однозначную сводимость за полиномиальное время <т, называемую также сводимостью Карпа. Класс задач ограничивается массовыми проблемами распознавания языков. Для языка L С задача распознавания формулируется так: по данному слову х G Eg узнать, верно ли, что х е L. Определение 16.15. Говорят, что язык Li С сводится по Карпу к языку L2 С. 'Eq и пишут L\ L2, если существует функция / G Р такая, что для всех х G Eg выполнено х G Li f(x) G Ь2. Соответствующую функцию / называют сводящей функцией. Если одновременно Ь\ Ь2 и L2 Li, то языки L\ и Ь2 называют эквивалентными относительно сводимости и пишут Li =Рт Ь2. В случае сводимости L\ Ь2 алгоритм взаимодействия с оракулом прост: для получения ответа на вопрос «х G L\ ?» достаточно вычислить значение сводящей функции у = f(x) и задать оракулу вопрос «у G Ь21». Ответ оракула совпадет с пра¬ 409 
вильным ответом на вопрос «х G Ь\ ?». Полиномиальное ограничение на время вычисления сводящей функции гарантирует полиномиальную оценку для времени работы алгоритма с оракулом, если последний в самом деле отвечает мгновенно. Основные свойства отношения сводимости <?ш собраны в следующей лемме. Первые два свойства характерны для всех видов сводимости. Они означают, что сводимость в самом деле можно использовать для сравнения задач. Остальные свойства специфичны для сводимости <^, и служат для того, чтобы устанавливать принадлежность конкретных языков классам Р и NP. Лемма 16.1. Пусть ЬД\Д2Дз С Eq. 1. L <т L (рефлексивность <т)- 2. Li <т Ь2, 1/2 <т ^3 => L\ <т L% (транзитивность <т)- 3. Li <?т ь2, ь2 G Р => Li G Р. 4. Lx <рт ь2, L2 G NP => Lx G NP. Доказательство. 1. Сводящая функция есть f(x) = х. 2. Пусть сводящие функции / и д устанавливают, что Ь\ Ь2 и L2 <т L3, соответственно. Тогда их композиция h(x) — g(f(x)) сводит L\ к L3: х G Lx <f> f(x) G L2<=> g{f(x)) G L3. Функция h принадлежит классу P, так как конструкция теоремы о композиции машин Тьюринга сохраняет свойство полиномиальной ограниченности но времени (см. подразд. 16.3). 3. Если язык L\ сводится к языку Ь2 с помощью функции /, то их характеристические функции )(щ и связаны соотноше- нием хьЛх) = Хь2(Кх))- Поэтому XLi Р при хь2 € Р и / <Е Р. 4. Пусть язык Li сводится к языку L2 G NP с помощью сводящей функции /, а условие принадлежности слов г G Eq языку Ь2 описывается формулой z<E L2^ 3y\y\<q(lzl)R2(z,y), где у — переменная по двоичным словам, q(n) = пс — подходящая степенная функция, а предикат Р2 принадлежит классу Р. Определим предикат ДДх, г/): Ri{x,y) R2(f{x),y) A \у\ < q(\f(x)\). Он также принадлежит классу Р, причем х G Ь\ Эу Ri(x,y). Осталось заменить квантор Зу в правой части эквивалентности на подходящий полиномиально ограниченный квантор. Для этого заметим, что 410 
Rl(x.y) => \y\ < q(\f(x)\). Так как / G P, то длина слова f(x) является функцией полиномиального роста, т. е. |/(ж)| < \x\d при |х| > щ для подходящих d и по- Тогда q(\f(x)\) < \x\cd, и при \х\ > щ 3yRi(x,y) <f> 3ylyl<McdRi(x,y). (16.8) Исправим определение предиката R\, положив R\(x, у) Е Ь\ при \х\ < по. Ввиду конечности множества {х | |х| < по} такое изменение не нарушит принадлежности классу Р, но теперь (16.8) выполняется для всех слов х. ■ Определение 16.16. Язык L называется N P-трудным, если все языки из NP к нему <^-сводятся. iVP-трудный язык называется NР-полным, если он сам также принадлежит классу NP. Понятие ЛгР-полноты первоначально возникло в связи с попытками доказать гипотезу Р ф NP: если это так, то NP-uon- ные языки должны заведомо лежать в разности NP \ Р. В настоящее время известно много примеров TVP-нолных задач, но ни про одну из них не удалось доказать или опровергнуть, что она не лежит в классе Р. Сейчас характеризация задачи как iVP-полной (и TVP-трудной тоже) воспринимается как довод в пользу невозможности ее практического решения программными средствами в столь общей постановке: написать программу вполне реально, но обеспечить эффективность ее работы на всех исходных данных не удается. Естественный выход в этой ситуации - сужение задачи, переход к частным случаям, как раз к тем, в которых программа работает приемлемым образом. Примером TVP-полной задачи является проблема выполнимости булевых формул SAT (см. пример 16.6). Отметим один частный случай этой проблемы. Напомним, что конъюнктивной нормальной формой (КНФ) называется булева формула вида D\Sz ... &Dm, где каждый член Di представляет собой дизъюнкцию некоторого числа литер, т. е. переменных или отрицаний переменных. КНФ называется 3-КНФ, если в каждом Di не более трех литер. Например, формула (-1Ж V у V z)&z(x V -1 u)h(~^x V v) является 3-КНФ. В первой скобке три литеры: -»ж, у и z. В остальных двух скобках по две литеры в каждой. Проблема выполнимости 3-КНФ (3-SAT) является iVP-нолной. 
СПИСОК ЛИТЕРАТУРЫ 1. Ахо А. Построение и анализ вычислительных алгоритмов / А. Ахо, Дж. Хопкрофт, Дж. Ульман. — М. : Мир, 1979. 2. Верещагин Н. К. Вычислимые функции / Н. К. Верещагин, А. Шень. - М. : МЦНМО, 1999. 3. Верещагин Н. К. Начала теории множеств / Н. К. Верещагин, А. Шень. - М. : МЦНМО, 1999. 4. Верещагин Н.К. Языки и исчисления / Н. К. Верещагин, А. Шень. - М. : МЦНМО, 2000. 5. Гейтинг А. Интуиционизм. М. : Мир, 1965. 6. Гильберт Д. Основания математики. Логические исчисления и формализация математики / Д. Гильберт, П.Бернайс. — М. : Наука, 1979. 7. Гэри М. Вычислительные машины и труднорешаемые задачи / М.Гэри, Д. Джонсон. - М. : Мир, 1982. 8. Ершов Ю. Л. Теория нумераций. — М. : Наука, 1977. 9. Ершов Ю.Л. Математическая логика / Ю. Л. Ершов, Е. А. Палю- тин. — М. : Наука, 1987. 10. Катленд Н. Вычислимость. Введение в теорию вычислимых функций. — М. : Мир, 1983. 11. Китаев А. Классические и квантовые вычисления / А. Китаев, А. Шень, М. Вялый. — М. : МЦНМО, ЧеРо, 1999. 12. Клини С. К. Введение в метаматематику. -- М. : ИЛ, 1957. 13. Клини С. К. Математическая логика. — М. : Мир, 1973. 14. Ковальски Р. Логика в решении проблем. — М. : Наука, 1990. 15. Колмогоров А. Н. Математическая логика / А. Н. Колмогоров, А. Г. Драгалин. — М. : Едиториал УРСС, 2004. 16. Крупский В. Н. Введение в сложность вычислений. — М. : Факториал Пресс, 2006. 17. Крупский В. Н. Теория алгоритмов / В. Н. Крупский, В. Е. Пли- ско. — М. : Издательский центр «Академия», 2009. 18. Лавров И. А. Математическая логика. — М. : Издательский центр «Академия», 2006. 19. Лавров И. А. Задачи по теории множеств, математической логике и теории алгоритмов / И. А. Лавров, Л. Л. Максимова. — М. : Физ- матлит, 1995. 412 
20. Мальцев А. И. Алгебраические системы. — М. : Наука, 1970. 21. Мальцев А. И. Алгоритмы и рекурсивные функции. — М. : Наука, 1986. 22. Манин Ю. И. Вычислимое и невычислимое. - М. : Советское радио, 1980. 23. Манин Ю. И. Доказуемое и недоказуемое. — М. : Советское радио, 1979. 24. Марков А. А. Теория алгорифмов / А. А. Марков, Н. М. Нагорный. — М. : Наука, 1984. 25. Мендельсон Э. Введение в математическую логику. - М. : Наука, 1971. 26. Робинсон А. Введение в теорию моделей и метаматематику алгебры. М. : Наука, 1967. 27. Роджерс X. Теория рекурсивных функций и эффективная вычислимость. — М. : Мир, 1972. 28. Успенский В. А. Лекции о вычислимых функциях. — М. : Физ- матгиз, 1960. 29. Успенский В. А. Вводный курс математической логики / В. А. Успенский, Н. К. Верещагин, В. Е. Плиско. — М. : Физматлит, 2002. 30. Чень Ч. Математическая логика и автоматическое доказательство теорем / Ч. Чень, Р. Ли. — М. : Наука, 1983. 
ОГЛАВЛЕНИЕ Предисловие 3 Введение 8 Глава 1. Элементы теории множеств 14 1.1. Множества 14 1.2. Соответствия и функции 17 1.3. Бинарные отношения 20 1.4. Числовые множества 22 1.5. Эквивалентные множества 26 1.6. Парадоксы теории множеств 29 1.7. Аксиоматическая система теории множеств 31 1.8. Программа Гильберта 33 Глава 2. Логика высказываний 35 2.1. Высказывания и логические операции 35 2.2. Алфавит, буква, слово 37 2.3. Пропозициональные формулы 42 2.4. Истинностные таблицы 47 2.5. Тавтологии 50 2.6. Равносильные формулы 53 2.7. Принцип двойственности 56 2.8. Нормальные формы в логике высказываний 60 2.9. Выполнимость и логическое следование в логике высказываний 67 Глава 3. Исчисление высказываний 71 3.1. Общее понятие исчисления 71 3.2. Классическое исчисление высказываний 72 3.3. Теорема о дедукции и допустимые правила вывода 75 3.4. Корректность и полнота исчисления высказываний 79 3.5. Секвенциальное исчисление высказываний 85 Глава 4. Логика предикатов 93 4.1. Высказывательные формы и кванторы 93 4.2. Понятие предиката 95 4.3. Предикатные формулы 97 4.4. Выполнимость и общезначимость 100 4.5. Равносильные формулы 108 414 
Глава 5. Элементарные языки 111 5.1. Определение элементарного языка 111 5.2. Примеры элементарных языков 115 5.3. Языки второго порядка 121 5.4. Подстановка 124 5.5. Алгебраические системы 130 5.6. Предваренные формулы 143 Глава 6. Исчисление предикатов 145 6.1. Логическое следование 145 6.2. Аксиомы и правила вывода классического исчисления предикатов 146 6.3. Теорема о дедукции и другие допустимые правила вывода . 150 6.4. Непротиворечивые расширения 157 6.5. Теорема Гёделя о полноте 163 6.6. Секвенциальное исчисление предикатов 168 Глава 7. Элементарные теории и модели 172 7.1. Аксиоматические теории 172 7.2. Элементарные теории с равенством 178 7.3. Изоморфизмы и элементарная эквивалентность 189 7.4. Аксиоматизируемые классы 195 Глава 8. Начальные понятия теории алгоритмов 202 8.1. Неформальное понятие алгоритма 202 8.2. Конструктивные объекты 204 8.3. Алгоритмический процесс 211 8.4. Вычислимые функции 213 8.5. Сигнализирующее множество 216 Глава 9. Алгоритмическая теория множеств 218 9.1. Разрешимые множества 218 9.2. Полуразрешимые множества 221 9.3. Перечислимые множества 225 9.4. Равнообъемность понятий перечислимости и полуразрешимости 229 9.5. Теорема о графике 232 9.6. Эффективно аксиоматизируемые теории 235 Глава 10. Машины Тьюринга 239 10.1. Одноленточная машина Тьюринга 240 10.2. Вычисление функций на машинах Тьюринга 244 10.3. Синтез машин Тьюринга 247 10.4. Тезис Тьюринга 248 10.5. Универсальная машина Тьюринга 250 10.6. Теорема о компиляции 253 10.7. Многоленточные машины Тьюринга 256 415 
Глава 11. Другие формализации вычислимости 264 11.1. Рекурсивные функции 264 11.2. Нормальные алгорифмы 285 Глава 12. Неразрешимые алгоритмические проблемы 290 12.1. Нумерации вычислимых числовых функций 290 12.2. Нумерации, порожденные машинами Тьюринга 294 12.3. Примеры невычислимых функций 297 12.4. Теорема Успенского — Райса 300 12.5. Десятая проблема Гильберта 303 12.6. Проблема равенства слов в полугруппах 304 Глава 13. Формальная арифметика 311 13.1. Аксиомы Пеано 311 13.2. Нестандартные модели арифметики 313 13.3. Арифметические множества и функции 315 13.4. Теорема о неподвижной точке 318 13.5. Теорема Тарского 320 13.6. Теорема Гёделя о неполноте 321 13.7. Формальная система арифметики 324 13.8. Тождественно истинные предикатные формулы 332 13.9. О логике второго порядка 335 Глава 14. Метод резолюций 340 14.1. Скулемовская форма высказываний 341 14.2. Дизъюнктная форма высказываний 346 14.3. Теорема Эрбрана 348 14.4. Метод резолюций для логики высказываний 354 14.5. Алгоритм унификации 357 14.6. Метод резолюций для элементарных языков 360 14.7. Хорновские дизъюнкты 365 14.8. Логические программы 367 Глава 15. Интуиционистская логика 375 15.1. Что такое интуиционизм 375 15.2. Интуиционистская логика высказываний 378 15.3. Интуиционистская логика предикатов 388 15.4. Рекурсивная реализуемость 393 Глава 16. Элементы теории сложности вычислений . . . 396 16.1. Предварительные сведения 396 16.2. Меры сложности вычислений 398 16.3. Класс Р 400 16.4. Класс NP 404 16.5. Примеры заведомо трудных задач 409 Список литературы 412 
МАТЕМАТИЧЕСКАЯ ЛОГИКА И ТЕОРИЯ АЛГОРИТМОВ ISBN 978-5-7695-9559-2 Издательский центр «Академия» www. academia-moscow. ru