/
Author: Крупский В.Н. Плиско В.Е.
Tags: математическая логика основы математики математика теория алгоритмов алгоритмы
ISBN: 978-5-7695-9559-2
Year: 2013
Text
Высшее профессиональное образование Учебное пособие В. Н. Крупский, В.Е.Плиско МАТЕМАТИЧЕСКАЯ ЛОГИКА И ТЕОРИЯ АЛГОРИТМОВ ИНФОРМАТИКА И ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА
Высшее профессиональное образование БАКАЛАВРИАТ В. Н. КРУПСКИЙ, В.Е.ПЛИСКО МАТЕМАТИЧЕСКАЯ ЛОГИКА И ТЕОРИЯ АЛГОРИТМОВ Рекомендовано Научно-методическим советом по математике Министерства образования и науки Российской Федерации в качестве учебного пособия для бакалавров, обучающихся по направлениям подготовки «Информатика и вычислительная техника», «Информационные системы» 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 — номер некоторой