Справочник от Автор24
Поделись лекцией за скидку на Автор24

Математическая логика и теория алгоритмов

  • ⌛ 2009 год
  • 👀 496 просмотров
  • 📌 443 загрузки
  • 🏢️ МГТУ им. Н. Э. Баумана
Выбери формат для чтения
Загружаем конспект в формате pdf
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Конспект лекции по дисциплине «Математическая логика и теория алгоритмов» pdf
ÔÍ-12 ÔÍ-12 ÌÃÒÓ Московский государственный технический университет имени Н.Э. Баумана ÌÃÒÓ Факультет «Фундаментальные науки» Кафедра «Математическое моделирование» ÌÃÒÓ À.Í. Êàíàòíèêîâ È ÒÅÎÐÈß ÀËÃÎÐÈÒÌΠÊîíñïåêò ëåêöèé ÔÍ-12 Москва 2009 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 Äëÿ ñòóäåíòîâ êàôåäðû ÈÓ9 ÌÃÒÓ ÌÃÒÓ ÌÀÒÅÌÀÒÈ×ÅÑÊÀß ËÎÃÈÊÀ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ 1. АЛГЕБРА ВЫСКАЗЫВАНИЙ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 1 ÌÃÒÓ Математическая логика — математическая дисциплина о законах правильного мышления. Можно выделить два первоисточника этой дисциплины. Первый — аристотелевская логика, представляющая собой науку о правильном построении суждений, о структуре суждений и о построении умозаключений, т.е. последовательности суждений, в которой одни суждения необходимо вытекают из других. Второй первоисточник — феномен математического доказательства. Математика отличается от других естественнонаучных дисциплин тем, что все ее факты требуют доказательств в виде некоторых умозаключений. Ссылки на опыт и наблюдения в математике, как правило в расчет не берутся. Можно, конечно, не согласиться с тем, что доказательство в виде цепи умозаключений — прерогатива только математики. И можно задаваться вопросом, почему математика так устроена. Но это уже отдельные вопросы. Математическое доказательство строится как цепь некоторых умозаключений, в которой одни суждения выводятся из других. Разумеется, в каждой такой цепи должны быть первичные суждения, обосновывать которые не требуется. В результате принцип математического доказательства привел к тому, что мы называем аксиоматическим методом. Впервые аксиоматический метод как научный принцип мы наблюдаем в Началах“ Евклида, в которой все ” положения сформулированы как теоремы, доказываемые с помощью некоторого набора первичных утверждений — аксиом. Первоначально считалось, что аксиомами могут быть такие утверждения, истинность которых очевидна. Однако уже Евклиду пришлось столкнуться с тем, что для достижения требуемого результата (обоснования всех имеющихся к тому времени в геометрии фактов) одних очевидных истин недостаточно. Споры вызвал знаменитый пятый постулат Евклида, который в современной формулировке гласит, что через точку вне прямой можно провести, и притом только одну, прямую, не пересекающую данную. Неочевидный характер этого постулата связан с непосредственным использованием понятия бесконечного. Если постулат о том, что через две точки можно провести прямую, в определенном смысле можно проверить на практике, то пятый постулат нет, так как невозможно обеспечить неограниченное продолжение прямой. Именно исследования пятого постулата (а точнее, борьба с пятым постулатом) привели к созданию неевклидовой геометрии, с одной стороны, и к новому взгляду на понятие аксиомы, с другой. Новый взгляд на понятие аксиомы можно выразить следующим образом: очевидность аксиомы не обязательна, но важно, чтобы из набора выбранных аксиом не вытекало каких-либо противоречий. Неевклидова геометрия как раз и была создана как набор логических выводов из системы аксиом, в которых вместо пятого постулата было взято его отрицание. Пытаясь прийти к противоречию, Лобачевский старался вывести пятый постулат из других аксиом, а взамен получил развитую логически непротиворечивую теорию. Создание неевклидовой геометрии — это первый поворотный момент в развитии аксиоматического метода (в литературе иногда именно это событие считают моментом создания аксиоматического метода). Следующий поворотный момент на рубеже 19–20 вв. вызван открытием противоречий (их называют антиномиями) в теории множеств. Опять ситуация возникла из-за произвольного использования понятия бесконечности. Интуитивно ясно, что противоречия возникают, когда о том или ином понятии судят, еще не определив его толком. Парадокс Рассела состоит в рассмотрении множества всех множеств, не принадлежащих самому себе. Но ÔÍ-12 ÔÍ-12 Феномен математического доказательства. Теоремы и аксиомы. Аксиоматический метод и его развитие. Понятие исчисления. Цели формализации в математике. ÌÃÒÓ ÌÃÒÓ 1.1. Введение ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ на бытовом уровне должно быть ясно, что для того, чтобы говорить о принадлежности какого-либо объекта множеству, этот объект должен быть однозначно определен. Значит, говорить о принадлежности множества самому себе неправомерно. Но тогда что такое множество, как дать формально строгое определение этого понятия, исключающее подобные парадоксы? Беда однако не приходит одна. Найденные парадоксы касаются не только множеств, но и некоторых определений. Парадокс Рассела можно квалифицировать как плохое определение“, ” при котором объект определяется рекурсивно, через себя самого. Это говорит о том, что и приемы конструирования логических суждений, без которых математика невозможна, также должны быть подвергнуты точному математическому исследованию. Основой для такого исследования явилась символика, подобная алгебраической, в которой математические суждения и связи между ними записываются в виде математических формул. Эти формулы подчиняются определенным правилам преобразований и соединений, а логика может быть превращена в некую алгебру, подобную алгебре арифметических выражений или уравнений. Эти соображения привели к дальнейшему уточнению понятия аксиоматический метод“. ” Аксиоматический метод — это формальное описание математический теорий, при котором все теоремы теории являются логическим следствием аксиом, при этом содержательный смысл аксиом не является существенным: лишь такие следствия не были взаимоисключающими. Поскольку насчет правил логического вывода возникли разногласия, сами эти правила тоже должны быть формализованы. С введением символики в логику изложение математической теории превращается в некоторый набор исходных формул, т.е. неких буквенных конструкций, сконструированных по определенным правилам, которых можно преобразовать с помощью фиксированного набора правил преобразования. Содержательный смысл исходных формул, их преобразования и получаемых при этом новых формул игнорируется. Подобная конструкция называется формальным исчислением. Характерные ее черты: • фиксированный набор используемых символов, называемый алфавитом теории; • определенный набор правил составления формул из алфавита (совокупность всех правильно составленных формул называется языком теории); • выделенный набор правильно составленных формул, объявляемых истинными (это система аксиом теории); • строго определенный набор правил преобразования формул, с помощью которых из уже имеющихся истинных формул получаются новые истинные формулы — теоремы теории. Построение исчислений не является высшей целью развития математики. На это указывает положение дел в таких классических областях математики, как дифференциальное и интегральное исчисления, геометрия. Эти разделы, несмотря на их многолетнюю историю, по-прежнему излагаются на содержательном, а не формальном, уровне. Парадоксы теории множеств — до сих пор нерешенная проблема. Однако это не мешает с успехом использовать теорию множеств в самых различных математических дисциплинах. Дело в том, что формализация математической теории — это метод математического исследования этой теории, который позволяет провести анализ исходных положений теории, выявить скрытые допущения, используемые при построении теории и т.п. Собственно, для любого формального исчисления ставятся три вопроса: непротиворечивость, полнота и разрешимость. Под непротиворечивостью понимается, что в этой теории нет взаимно противоположных теорем A и ¬A. Под полнотой понимается то, что любое утверждение A, которое может быть сформулировано на языке теории может быть либо доказано, либо опровергнуто (т.е. доказано противоположное утверждение ¬A). Наконец, под разрешимостью понимается существование алгоритма (т.е. некоторого конечного набора процедур), позволяющего для любого утверждения теории проверить, верно оно или нет. При содержательном анализе формальной теории приходится выходить за ее рамки. Поэтому вокруг формальной теории возникает другая теория: учение о формальной теории“, ” которую называют метатеорией. Метатеория формирует свой язык, расширяющий язык формальной теории, который называется метаязыком. ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 2 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 1. АЛГЕБРА ВЫСКАЗЫВАНИЙ ÌÃÒÓ Высказывания и их истинностные значения. Понятие логической операции. Логические операции ∨, ∧, →, ∼, ¬. Пропозициональные формулы: пропозициональные переменные и шаг индукции (X ∨Y , X ∧Y , X →Y , ¬X). Истинностные функции и пропозициональные формулы. ÔÍ-12 ÌÃÒÓ ÔÍ-12 Напомню, что под высказыванием понимается любое предложение, относительно которого можно сказать истинно оно или нет, т.е. утвердительное предложение. Строго говоря, сказанное не следует рассматривать как настоящее математическое определение — лишь как указание на те реальные объекты, которые могут служить иллюстрацией к точной математической теории. Формирование предложений в естественном языке указывает на то, что высказывания могут объединяться с помощью связывающих союзов. С математической точки зрения эти союзы реализуют операции над высказываниями. В математической логике рассматривают только такие операции над высказываниями, для которых истинность результирующего высказывания можно определить исходя из истинности исходных независимо от смысла этих высказываний, т.е. независимо от того, что именно утверждают эти высказывания. Вообще говоря, под операцией на множестве A понимают любое отображение ϕ: An → A, которое любому упорядоченному набору из n элементов множества A (кортежу) ставит в соответствие элемент того же множества. Натуральный показатель n называют арностью этой операции. Ясно, что множество всех операций на заданном множестве бесконечно, даже если само множество конечно. Однако на практике ограничиваются операциями небольшой арности: унарными (n = 1), бинарными (n = 2), тернарными (n = 3). Кроме того, практические важные операции обладают определенными свойствами (например, свойство коммутативности для бинарных операций). Ассоциация операция — функция“ наталкивает на мысль о введении нульарных операций ” (функций без аргументов). С точки зрения математики нульарная операция — это постоянная функция или, иными словами, некоторый фиксированный элемент множества A. В качестве таких элементов выступают, например, число 0 или 1, т.е. элементы, чем-то выделяющиеся с точки зрения других операций. Выделим пять операций над высказываниями: 1) дизъюнкция (соответствует союзу или“); ” 2) конъюнкция (соответствует союзу и“); ” 3) импликация (соответствует фразе типа если . . . , то ); ” ” 4) эквиваленция (соответствует фразе типа . . . тогда и только тогда, когда . . . ); ” 5) отрицание (соответствует союзу не“). ” Первые четыре из этих операций бинарные, последняя унарная. Относительно указанных операций можно сказать лишь, что они формируют новое высказывание. При этом, зная, истинны или ложны исходные высказывания, можно сказать, является ли истинным вновь ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 1.2. Алгебра логики ÌÃÒÓ ÌÃÒÓ Непротиворечивость конкретной теории можно установить, построив модель этой теории в рамках другой теории. В результате мы придем к заключению: если та, другая теория непротивречива, то и наша теория непротиворечива. В этом случае говорят об относительной непротиворечивости. Абсолютная непротиворечивость означает, что данная теория непротиворечива независимо от того, являются непротиворечивыми другие теории или нет. В 20 в. практически все математические теории получили свои модели в рамках арифметики. Так, все числовые системы были построены на базе множества натуральных чисел. Все геометрические теории имеют естественную интерпретацию на базе множества действительных чисел. Связь алгебры и геометрии общеизвестна. Однако выяснилось, что непротиворечивость формальной арифметики нельзя доказать средствами самой арифметики и что формальная арифметика не обладает ни свойством полноты, ни свойством разрешимости. Выходит, в математике, как и в других науках абсолютной истины нет. ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 3 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 1. АЛГЕБРА ВЫСКАЗЫВАНИЙ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ образованное высказывание. Введенные пять операций мы будем называть логическими или пропозициональными. Для символической записи высказываний и операций над ними необходимо ввести некоторый набор символов и сформулировать правила записи с помощью этих символов. Набор символов (алфавит) в сочетании с набором правил записи представляет собой некоторый язык — язык алгебры высказываний. Вообще говоря, алфавит позволяет из заданного набора символов составлять цепочки символов (слова, фразы). Множество всех цепочек символов разделяется на две группы: правильные и неправильные. Правильные цепочки можно назвать словами, их множество и называется языком. На практике язык можно определить как множество цепочек, удовлетворяющих некоторым требованиям, которые в конечном счете сводятся к тому, является ли данная цепочка интепретируемой с точки зрения выполнения операций или нет. Но часто язык определяют, указывая правила, по которым из уже построенных слов можно строить новые. Набор таких правил называется грамматикой. Хотя любой математический язык проще любого естественного, многие закономерности у них схожи. Так слова русского языка собираются из отдельных частей с помощью некоторых правил. Описание языка с помощью грамматики в математике приводит к особому типу определения, так называемому индуктивному определению. При таком определении сначала задаются первичные, элементарные слова (это база индукции), а затем указываются правила, по которым из уже построенных слов формируются новые (шаг индукции). Алфавит языка алгебры высказываний составляют множество пропозициональных переменных, множество функциональных символов (символов операций, или логических связок) ∨, ∧, →, ∼, ¬ и множество служебных символов (две круглые скобки). Формулы языка вводятся индуктивно. База индукции: пропозициональные переменные представляют собой формулы. Шаг индукции: если X и Y — формулы, то формулами являются (X ∨ Y ), (X ∧ Y ), (X → Y ), (X ∼ Y ), ¬X. Договоримся о следующих обозначениях. Будем обозначать: пропозициональные переменные — строчными латинскими буквами конца алфавита (x, y, z и т.д.); какие-либо формулы — прописными латинскими буквами конца алфавита (X, Y , Z и т.д.). Для сокращения количества скобок в формулах с целью улучшить их читаемость договоримся о дополнительных правилах. Это правило приоритета операций. Вместо, например ((X∆Y )∆Z), как положено по определению, будем писать X∆Y ∆Z, имея в виду, что операции выполняются слева направо, причем сначала отрицание, затем дизъюнкция и конъюнкция, а потом ипликация и эквиваленция. Соглашение не относится к самому языку и служит лишь для удобства: в любой момент сокращенную запись формулы однозначным образом можно преобразовать в полную запись со всеми нужными скобками. В математический язык эти правила вводить нет смысла, поскольку они ничего не добавляют к математической сути вопроса. В наших рассуждениях будут встречаться формулы, которые относятся к введенному языку, но, кроме того, придется использовать и дополнительные обозначения и символику, чтобы рассуждать не в рамках языка, а о самом языке и его формулах. Так, обозначения переменных — это элемент языка алгебры высказываний, а обозначения формул или соглашение о приоритете уже выходят за рамки языка. В этом случае говорят о расширении рассматриваемого языка или о метаязыке. На практике язык и метаязык тесно переплетаются и трудно разделимы. Рассмотрим какую-либо формулу, например (x → y) → z. Об истинности этой формулы можно судить, если известно, истинны ли элементарные высказывания x, y, z. Например, если x и z ложны, а y истинна, то x→y является истинной, а (x→y)→z ложной. Приписав истинной формуле значение 1, а ложной — 0, мы получаем функцию, которая по значениям истинности пропозициональных переменных (элементарных высказываний) определяет значение истинности всей формулы. Эта функция есть отображение вида h: {0, 1}n → {0, 1} (и аргументы, и функция принимают значения 0 и 1). Она называется истинностной функцией данной ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 4 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 1. АЛГЕБРА ВЫСКАЗЫВАНИЙ ÌÃÒÓ Понятие истинностной функции позволяет и введенные логические операции рассматривать совершенно формально — как формульную запись некоторых истинностных функций (табл. 1.1). В дальнейшем через |X| мы будем обозначать истинностную функцию формулы X. Таблица 1.1 ÌÃÒÓ x 1 1 y 1 1 ¬x 1 x∨y 1 1 1 x∧y 1 x→y 1 1 1 x∼y 1 1 1.3. Тавтологии и эквивалентность формул ÌÃÒÓ ÔÍ-12 Среди формул алгебры высказываний выделяют: – тождественно истинные, или тавтологии, истинные при любой истинности переменных; – выполнимые, имеющие значение 1 хотя бы для одного набора значений пропозициональных переменных; – опровержимые, имеющие значение 0 хотя бы для одного набора значений пропозициональных переменных. – тождественно ложные, или противоречия, ложные при любой истинности переменных. Эти четыре понятия связаны между собой. Формула, не являющаяся опровержимой, есть тавтология. Такие формулы описывают универсальные логические законы. Именно с использованием тавтологий проводится любое математическое доказательство. Формула, не являющаяся выполнимой, тождественно ложна, т.е. представляет собой противоречие. Для тавтологий (противоречий) истинностная функция есть константа 1 (0). Для выполнимых формул истинностная функция не равна постоянной 0, а для опровержимых — постоянной 0. ÔÍ-12 Тавтологии. Формулы выполнимые и опровержимые. Теорема о правиле modus ponens: если X и X → Y — тавтологии, то и Y — тавтология. Подстановка. Эквивалентность формул алгебры высказываний. Теорема о заменах. Следствие 1: если X — тавтология, то и S(z1 , z2 , . . . , zn |Y1 , Y2 , . . . , Yn |X) — тавтология. Следствие 2: инвариантность эквивалентности относительно логических операций. Способы получения эквивалентных формул: на основе свойств логических операций; на основе взаимосвязей операций; на основе двойственности. ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ Замечание. Отметим различия понятий формула“ и функция“. Первое понятие связано ” ” с языком, на котором описываются свойства математических объектов. Формула имеет некоторый набор переменных, если заданы значения этих переменных, то формула также имеет некоторое значение. В этом смысле формулу можно рассматривать как запись некоего правила, которое заданным значениям переменных ставит в соответствие новое значение. Это похоже на понятие функции, но функция (отображение) есть реальный математический объект, а не запись о нем в некотором языке. Кроме того, исходные значения, по которым отображение формирует значение, должны быть упорядочены. Одна и та же формула задает разные функции. Так, формула x − t определяет и функцию f (x, t), и функцию f (t, x), а также, например, функцию f (x, y, t). Чтобы с формулой связать некоторую функцию n аргументов, необходимо установить связь между аргументами функции и переменными формулы. Это в языках программирования реализуется формальными переменными: f (x, t) = x − t. ÌÃÒÓ ÔÍ-12 формулы. Позже мы увидим, что любая двузначная (булева) функция от n аргументов есть истинностная функция некоторой пропозициональной формулы с n переменными. ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 5 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 1. АЛГЕБРА ВЫСКАЗЫВАНИЙ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 6 Пример 1.1. Формула (x ∨ (¬y)) → z является одновременно выполнимой и опровержимой: она истинна, если переменная z обозначает истинное высказывание, и ложна, если, например, переменные y и z обозначают ложные высказывания. Это можно увидеть, составив истинностную функцию, которая в данном случае описывается вектором 01110101. Формула (x ∨ (¬x)) является тавтологией, а формула (x ∧ (¬x)) — противоречием. # ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 1. АЛГЕБРА ВЫСКАЗЫВАНИЙ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 Как и в булевой алгебре, введем понятие эквивалентных формул алгебры высказываний — формул, имеющих равные истинностные значения при любых значениях входящих в формулы переменных. Альтернативное определение: формулы X и Y называются эквивалентными, если формула X ∼ Y является тавтологией. Нетрудно показать, рассуждая как в последней теореме, что формула X ∼ Y является тавтологией тогда и только тогда, когда при любых значениях переменных формулы X и Y одновременно или истинны, или ложны, т.е. истинностные функции этих формул совпадают. Для эквивалентных формул введем обозначение X ≡ Y . Итак, X ≡ Y ⇔ X ∼ Y — тавтология. Обратите внимание на три символа эквивалентности в последней фразе. Первый обозначает отношение эквивалентности формул, введенное на множестве формул алгебры высказываний, третий — операцию эквиваленции, а второй — по сути та же эквиваленция, но в утверждении, в котором формулируется свойство самой алгебры высказываний, и ее следует отнести к сфере метаязыка. Имеются некоторые стандартные приемы, приводящие к эквивалентным формулам. Один из них — подстановка. Если мы в формуле заменим одну из подформул другой, то получим новую цепочку символов. Нетрудно доказать индукцией по построению, что это цепочка будет формулой. Заменяемая подформула может встречаться несколько раз. В этом случае говорят о вхождениях подформулы. Замена может выполняться для одного какого-либо вхождения данной подформулы или для всех. Под подстановкой будем понимать замену всех вхождений в формулу одной или нескольких переменных некоторыми формулами. Результат подстановки в формулу X вместо переменных z1 , . . . , zn формул Y1 , . . . , Yn обозначают примерно так: S(z1 , . . . , zn |Y1 , . . . , Yn |X). Мы также n будем использовать обозначение XYz11 ,...,z ,...,Yn . Отметим, что замена в формуле X одного или нескольких вхождений подформулы Y форe подмулой Z можно рассматривать как получение самой формулы X и результата замены X b становкой в третью формулу X вместо некоторой переменной u формул Y (для получения X) и e Какие именно вхождения Y меняются, определяется конструкцией форZ (для получения X). b Например, в формуле X = (x → y) ∨ (x ∧ (x ∨ y)) два вхождения формулы Y = x → y. мулы X. Взяв Zb = u ∨ (x ∧ (x ∨ y)), в результате подстановки ZbYu получим X, а в результате подстановки u e = (x ∼ y) ∨ (x ∧ (x ∨ y)) — результат замены в X первого вхождения Zbx∼y получим формулу X Y на формулу Z = x ∼ y. Введем также обозначение X[x1 , x2 , . . . , xn ], имея в виду, что список x1 , x2 , . . . , xn содержит все переменные, входящие в формулу X. ÌÃÒÓ ÌÃÒÓ J Пусть формулы X и Y построены из переменных z1 , . . . , zn . Выберем для этих переменных какие-либо значения. Тогда об истинности формулы X → Y можно судить на основании истинности формул X и Y . Анализируя истинностную функцию для импликации, видим, что при истинности X и ложности Y формула X → Y является ложной. Но по условию теоремы эта формула тождественно истинная, как и формула X. Следовательно, формула Y не может быть ложной при выбранных значениях переменных. Поскольку значения переменных выбирались произвольно, заключаем, что формула Y тождественно истинна, т.е. тавтология. I ÔÍ-12 ÔÍ-12 Теорема 1.1. Если формулы X и X → Y являются тавтологиями, то и формула Y есть тавтология. ÌÃÒÓ ÌÃÒÓ Следующее утверждение отражает часто используемое на практике умозаключение, называемое modus ponens (модус поненс). ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 7 Теорема 1.2. Если X ≡ Y , то при замене всех вхождений какой-либо переменной u и в формуле X, и в формуле Y какой-либо формулой Z получим эквивалентные формулы, т.е. X≡Y ⇒ XZu ≡ YZu . Если в формуле X заменить одно из вхождений подформулы Y эквивалентной формулой Z, то получим формулу, эквивалентную X, т.е. Y ≡Z ⇒ X ≡ XZY . J Объединим списки переменных у формул X, Y , Z в общий упорядоченный список z1 , z2 , . . . , zk , u. Тогда условие эквивалентности X ≡ Y можно записать как равенство истинностных функций: fX (z1 , . . . , zk , u) = fY (z1 , . . . , zk , u). (1.1) fXe (z1 , . . . , zk , u) = fX (z1 , . . . , zk , fZ (z1 , . . . , zk , u)) (1.2) fYe (z1 , . . . , zk , u) = fY (z1 , . . . , zk , fZ (z1 , . . . , zk , u)) (1.3) и ÔÍ-12 Замена всех вхождений переменной u формулой Z приводит к композиции истинностных функe = X u , Ye = Y u , то ций: если X Z Z ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 1. АЛГЕБРА ВЫСКАЗЫВАНИЙ e и Ye . а это равносильно эквивалентности формул X Пусть дана формула X[x1 , . . . , xn ], в которую входит подформула Y [x1 , . . . , xn ] (мы можем считать, что подформула включает все переменные исходной формулы, рассматривая недостающие как фиктивные). Заменим подформулу Y новой переменной z, которая не входит в список x1 , . . . , xn . Получим новую формулу Γ[x1 , . . . , xn , z], связь которой с исходной формулой z можно записать в виде X = Γ Y . Замена подформулы Y [x1 , . . . , xn ] эквивалентной формулой e =Γ z. Z[x1 , . . . , xn ] приведет к новой формуле X Z Задав упорядоченный список переменных x1 , x2 , . . . , xn , z, можем для формул рассмотреть их истинностные функции. По условию fY (x1 , x2 , . . . , xn ) = fZ (x1 , x2 , . . . , xn ) (так как Y ≡ Z), Подстановки вместо z формул Y и Z можно записать как композицию функций: ÔÍ-12 ÔÍ-12 fXe (z1 , . . . , zk , u) = fYe (z1 , . . . , zk , u), ÌÃÒÓ ÌÃÒÓ Из равенств (1.1)–(1.3) вытекает, что Из равенства fY (x1 , x2 , . . . , xn ) = fZ (x1 , x2 , . . . , xn ) вытекает равенство fX (x1 , x2 , . . . , xn ) = e I = fXe (x1 , x2 , . . . , xn ), что равносильно эквивалентности X ≡ X. Следствие 1.1. Если X — тавтология, то и S(z1 , . . . , zn |Y1 , . . . , Yn |X) — тавтология. J Можно рассуждать так. Тавтологии — это формулы, эквивалентные, например, формуле W = x ∨ ¬x. В качестве переменной x можно выбрать ту, которая не входит в формулу X. В силу теоремы, заменив в формулах X и W все вхождения переменных z1 , . . . , zn формулами Y1 , . . . , Yn , мы получим эквивалентные формулы. Но формула W при этом не изменится. Поэтому вновь построенная формула S(z1 , . . . , zn |Y1 , . . . , Yn |X) будет эквивалентна формуле W , т.е. будет являться тавтологией. I Следствие 1.2. Пусть X ≡ Z и Y ≡ W . Тогда (X ∨ Y ) ≡ (Z ∨ W ), (X ∧ Y ) ≡ (Z ∧ W ), (X → Y ) ≡ (Z → W ), (X ∼ Y ) ≡ (Z ∼ W ), (¬X) ≡ (¬Z). ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 fXe (x1 , x2 , . . . , xn ) = fΓ (x1 , x2 , . . . , xn , fZ (x1 , x2 , . . . , xn )). ÌÃÒÓ ÌÃÒÓ fX (x1 , x2 , . . . , xn ) = fΓ (x1 , x2 , . . . , xn , fY (x1 , x2 , . . . , xn )), ÌÃÒÓ Еще один способ получения эквивалентностей — замена одних операций другими по соответствующим формулам. Из теории булевых функций вытекает, что верны следующие эквивалентности: (¬(¬x)) ≡ x, (¬(x ∨ y)) ≡ (¬x) ∧ (¬y), (x → y) ≡ ((¬x) ∨ y). Отталкиваясь от этих эквивалентностей можно доказать следующее. J Доказывается теорема так же, как и предыдущая. Например, на основании простой эквивалентности (¬(¬x)) ≡ x, устанавливаемой непосредственно, путем подстановки вместо переменной x формулы X получаем эквивалентность (¬(¬X)) ≡ X. I ¬(x ∨ y) ≡ ¬x ∧ ¬y, ¬(x ∧ y) ≡ ¬x ∨ ¬y, t1 ,...,tn X ∗ ≡ ¬X¬t , 1 ,...,¬tn (1.4) (1.5) t1 ,...,tn ¬Z¬t ≡ Z ∗, 1 ,...,¬tn ÔÍ-12 где t1 , t2 , . . . , tn — полный список переменных, входящих в X. Доказательство проводится индукцией по построению формулы. Действительно, для переменных утверждение очевидно. Пусть X = Y ∨ Z. Тогда, согласно первой эквивалентности (1.4) ¬X = ¬(Y ∨ Z) ≡ ¬Y ∧ ¬Z. Предполагая в соответствии с индуктивным предположением, что t1 ,...,tn ¬Y¬t ≡ Y ∗, 1 ,...,¬tn ÌÃÒÓ Для формул, содержащих только три операции ¬, ∨, ∧, имеет место принцип двойственности. Для каждой такой формулы X в результате взаимной замены операций ∨ и ∧ получим новую формулу X ∗ , которую назовем двойственной для X. Отметим, что если X ∗ двойственна X, то X двойственна X ∗ , так что отношение двойственности симметрично. Это можно выразить формулой X ∗∗ = X (знак равенства отражает совпадение формул, а не их эквивалентность). Учитывая эквивалентности ÔÍ-12 Теорема 1.4. Для любых пропозициональных формул X, Y и Z верны следующие эквивалентности: 1) (¬(¬X)) ≡ X (закон двойного отрицания); 2) (¬(X ∨ Y )) ≡ (¬X) ∧ (¬Y )) (перенос отрицания через конъюнкцию); 3) (¬(X ∧ Y )) ≡ (¬X) ∨ (¬Y )) (перенос отрицания через дизъюнкцию); 4) (¬(X → Y )) ≡ (X ∧ (¬Y )) (перенос отрицания через импликацию); 5) (X → Y ) ≡ ((¬X) ∨ Y ) (представление импликации через дизъюнкцию); 6) (X → (¬X)) ≡ (¬X) (закон упрощения); 7) (X → Y ) ≡ ((¬Y ) → (¬X) (закон контрапозиции). ÔÍ-12 ÌÃÒÓ ÌÃÒÓ J Непосредственно из таблицы для истинностной функции вытекает, что x ∧ x ≡ x. Подставив вместо всех вхождений переменной x формулу X, получим эквивалентность X ∧ X ≡ X. Остальные эквивалентности доказываются аналогично. I ÌÃÒÓ ÔÍ-12 Теорема 1.3. Для любых пропозициональных формул X, Y и Z верны следующие эквивалентности: 1) X ∧ X ≡ X; 2) X ∧ Y ≡ Y ∧ X; 3) (X ∧ Y ) ∧ Z) ≡ (X ∧ (Y ∧ Z); 4) X ∨ X ≡ X; 5) X ∨ Y ≡ Y ∨ X; 6) (X ∨ Y ) ∨ Z) ≡ (X ∨ (Y ∨ Z); 7) X ∧ (Y ∨ Z) ≡ (X ∧ Y ) ∨ (X ∧ Z); 8) X ∨ (Y ∧ Z) ≡ (X ∨ Y ) ∧ (X ∨ Z); 9) X ∧ (Y ∨ X) ≡ X; 10) X ∨ (Y ∧ X) ≡ X. ÌÃÒÓ ÌÃÒÓ С помощью подстановки можно получать эквивалентные формулы, отталкиваясь от известных свойств логических операций. ÔÍ-12 ÔÍ-12 ÌÃÒÓ 8 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 J Формулу (Z ◦ W ), где ◦ — одна из логических связок, можно рассматривать как результат замены в формуле (X ◦ Y ) сперва подформулы X эквивалентной формулой Z, а затем подформулы Y эквивалентной формулой W . Согласно доказанной теореме такая замена приводит к эквивалентной формуле. Аналогичны рассуждения и для отрицания. I Приходим к эквивалентности ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 1. АЛГЕБРА ВЫСКАЗЫВАНИЙ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 9 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 1. АЛГЕБРА ВЫСКАЗЫВАНИЙ заключаем, что t1 ,...,tn t1 ,...,tn X ∗ = Y ∗ ∧ Z ∗ ≡ ¬Y¬t ∧ ¬Z¬t = (¬Y ∧ ¬Z) 1 ,...,¬tn 1 ,...,¬tn t1 ,...,tn ¬t1 ,...,¬tn t1 ,...,tn ≡ ¬X¬t . 1 ,...,¬tn Аналогично доказательство в случае второй операции. Под функцией алгебры логики, или булевой функцией понимают любое отображение f : {0, 1}n → {0, 1}. Это значит, что каждый аргумент булевой функции, как и сама функция, принимает два значения 0 и 1. Частными случаями булевых функций являются логические операции, которые формально оперируют высказываниями, но по сути своей есть функции, в которых и аргументы, и значение могут принимать лишь два значения: ИСТИНА и ЛОЖЬ. Так, отрицание есть булева функция одного переменного, а дизъюнкция, конъюнкция, импликация, эквиваленция — функции двух переменных. Булеву функцию можно рассматривать как некое логическое условие, которые по входам — значениям аргументов вырабатывает логическое значение 0 (ложь) или 1 (истина). Для булевых функций можно ввести операцию суперпозиции. Это вариант обычной композиции отображений, использующий понятие формулы. Пусть заданы функции f (x1 , . . . , xn ), g1 (u11 , . . . , u1,m1 ), . . . , gn (un1 , . . . , un,mn ). Тогда можно образовать функцию F (u11 , . . . , u1,m1 , . . . , un1 , . . . , un,mn ) = f (g1 (u11 , . . . , u1,m1 ), . . . , gn (un1 , . . . , un,mn )), ÌÃÒÓ ÔÍ-12 которую и назовем суперпозицией функций f , g1 , . . . , gn . В действительности при суперпозиции некоторые из переменных uij могут совпадать. В частном случае все функции gi могут иметь один и тот же набор переменных, и тогда суперпозиция — это обычная композиция отображений. Здесь нетрудно увидеть, что суперпозиция — это построение некоторой формулы из исходных функций и выбор функции, определяемой этой формулой. Порядок переменных определяется порядком функций и порядком их аргументов. Мы не будем здесь проводить строгие построения, но поставим следующий вопрос: каково множество булевых функций, которое может быть получено из данного множества функций F с использованием суперпозиции? Ясно, что ответ зависит от множества F . В первую очередь нас будут интересовать условия на множество F , при выполнении которых можно утверждать, что каждая булева функция может быть построена таким способом. Множество всех булевых функций, которые могут быть получены из данного множества X функций с использованием суперпозиции, назовем замыканием X и обозначим [X]. Множество X булевых функций назовем полным, если его замыкание совпадает с множеством P2 всех булевых функций. Конечное полное множество называют базисом в множестве булевых функций. ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ Понятие булевой функции. Множества P2,n и P2 . Композиция функций. Множество функций и его замыкание. Замкнутые и полные множества функций. Теорема: если F полно и все функции в F выражаются через функции множества G, то G полно. Понятие базиса. Стандартный базис. Базис Жегалкина. Понятие ДНФ и КНФ. Примеры построения ДНФ и КНФ. Совершенные ДНФ и КНФ. Теорема о существовании СДНФ и СКНФ. Утверждение: каждая истинностная функция соответствует некоторой пропозициональной формуле. Штрих Шеффера и стрелка Пирса. ÔÍ-12 ÔÍ-12 1.4. Функции алгебры логики ÌÃÒÓ ÌÃÒÓ Принцип двойственности приводит к еще одному способу получения эквивалентных формул. ÔÍ-12 ÔÍ-12 t1 ,...,tn t1 ,...,tn J Действительно, из эквивалентности X ≡ Y получаем ¬X ≡ ¬Y и ¬X¬t ≡ ¬Y¬t . 1 ,...,¬tn 1 ,...,¬tn Согласно (1.5) делаем вывод X ∗ ≡ Y ∗ . I ÌÃÒÓ ÌÃÒÓ Теорема 1.5. Если формулы X и Y эквивалентны, то и формулы X ∗ , Y ∗ эквивалентны. ÌÃÒÓ J Так как каждая функция из F есть формула над G, то F ⊂ [G]. Из свойств замыкания вытекает, что [F ] ⊂ [[G]] = [G]. Но поскольку [F ] совпадает с множеством всех булевых функций, то и [G] совпадает с множеством всех булевых функций, т.е. G — полный базис. I Доказанная теорема позволяет строить базисы исходя из уже известных базисов. Один из таких базисов (это станет ясно из дальнейшего) составляют дизъюнкция, конъюнкция и отрицание. Этот базис назовем стандартным. Через эти операции можно выразить другие логические операции: X ∼ Y ≡ (X ∧ Y ) ∨ (¬X ∧ ¬Y ). ÔÍ-12 Теорема 1.7. Каждая формула алгебры высказываний, не являющаяся противоречием, имеет эквивалентную ей совершенную ДНФ. Каждая формула алгебры высказываний, не являющаяся тавтологией, имеет эквивалентную ей совершенную КНФ. # ÌÃÒÓ Имея в виду эти формулы можно было бы ограничиться только тремя операциями ¬, ∨, ∧. Более того, можно ограничиться двумя операциями, заменив ∨ или ∧. Среди формул, содержащих дизъюнкцию, конъюнкцию и отрицание можно выделить в некотором роде канонические формулы. Назовем элементарной конъюнкцией формулу X1 ∧X2 ∧. . .∧Xn , в которой каждая подформула Xi либо элементарная, либо отрицание элементарной. Удобно ввести обозначение xσi i c σi ∈ {0, 1}, считая, что x1i = xi и x0i = ¬xi . Тогда элементарную конъюнкцию можно записать в виде xσ1 1 ∧ xσ2 2 ∧ . . . ∧ xσnn . Элементарная конъюнкция или дизъюнкция нескольких элементарных конъюнкций называется дизъюнктивной нормальной формой, или ДНФ. Пример: (x1 ∧ x2 ) ∨ (¬x1 ∧ x3 ). Двойственным к ДНФ понятием является конъюнктивная нормальная форма, или КНФ. Это элементарная дизъюнкция или конъюнкция нескольких элементарных дизъюнкций. Количество переменных в элементарной конъюнкции называется ее длиной. Если в ДНФ все элементарные конъюнкции имеют одинаковый состав переменных и отличаются только распределением между переменными знаков отрицания, то ДНФ называется совершенной (сокращенно СДНФ). Аналогично вводится понятие совершенной КНФ (СКНФ). ÔÍ-12 X → Y ≡ ¬X ∨ Y, ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 Теорема 1.6. Если F — полное множество булевых функций, каждая из которых представима формулой над множеством G, то и G — полное множество. ÌÃÒÓ ÌÃÒÓ Операция замыкания сродни, например, замыканию множества элементов группы по операции группы или замыканию множества точек на плоскости, состоящему в присоединении к множеству всех его предельных точек. Замыкание можно рассматривать как унарную операцию на подмножествах множества P2 . Свойства операции замыкания: 1) [∅] = ∅; 2) [[X]] = [X]; 3) F ⊂ [X]; 4) [X] ∪ [Y ] ⊂ [X ∪ Y ]. Первое свойство носит формальный характер. Второе вытекает из конечности процедуры построения любой формулы: достаточно, следуя по дереву синтаксического анализа, последовательно заменять функции из [X] их формулами над X. Третье и четвертое свойства очевидны. Из четвертого свойства вытекает, что если X ⊂ Y , то [X] ⊂ [Y ]. Действительно, включение X ⊂ Y равносильно равенству X ∪ Y = Y . Если X ⊂ Y , то в силу свойства 4 заключаем, что [X] ∪ [Y ] ⊂ [X ⊂ Y ] = [Y ]. Следовательно, [X] ⊂ [Y ]. Из указанных свойств замыкания вытекает следующее утверждение. ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 10 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 1. АЛГЕБРА ВЫСКАЗЫВАНИЙ ÌÃÒÓ J Действительно, доказательство теоремы построено так, что характер формулы не является существенным. Если f (ξ1 , ξ2 , . . . , ξn ) не равна тождественно 0, мы можем для нее построить СДНФ. Если f (ξ1 , ξ2 , . . . , ξn ) не равна тождественно 1, мы можем построить СКНФ. Таким образом, любая функция имеет либо СДНФ, либо СКНФ, либо и то, и другое. I 1 ≡ x + x ≡ x ∨ ¬x, f (x1 , x2 , x3 ) = a0 ⊕ a11 x1 ⊕ a12 x2 ⊕ a13 x3 ⊕ a21 x1 x2 ⊕ a22 x1 x3 ⊕ a23 x2 x3 ⊕ a3 x1 x2 x3 . ÔÍ-12 Итак, в многочлене Жегалкина 2n слагаемых и, значит, 2n коэффициентов. Записывая 2n значений функции, мы получим систему уравнений, из которой можем найти все коэффициенты многочлена. Этот подход носит название метода неопределенных коэффициентов. В принципе можно показать, что такая система имеет и притом единственное решение (это следует из того, что любая булева функция представима многочленом Жегалкина, причем такой многочлен единственный). Кроме базиса Жегалкина существуют и другие базисы. Основным способом проверки множества функций на полноту является сведение к стандартному базису. Оказывается, такую проверку можно свести к простой проверке некоторых свойств функций заданного множества. ÌÃÒÓ где первое представление дано в альтернативной символике операций: дизъюнкция как сложение x + y, конъюнкция как умножение xy, отрицание как дополнение x. Согласно теореме 1.6, базис Жегалкина — полное множество. Представление булевой функции через базис Жегалкина — это представление ее в виде многочлена в поле Z2 , при этом все переменные в многочлене имеют степень 1, поскольку в Z2 имеем xk = x для любого элемента x. Учитывая это, заключаем, что для функции f (x1 , . . . , xn ) от n аргументов соответствующий многочлен имеет не более 2n слагаемых (одно слагаемое нулевой степени, n слагаемых 1-й степени, Cn2 слагаемых 2-й степени и т.д.). Например, для функции трех переменных многочлен Жегалкина имеет вид: ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ Исходя из стандартного базиса можно строить и другие базисы. Один из них — базис Жегалкина, состоящий из сложения по модулю 2 ⊕“, умножения (она же конъюнкция) ” ·“, и нульарной операции (постоянной функции) 1. Отметим, что алгебраическая система ” ({0, 1}, {⊕, ·}) есть поле Z2 вычетов по модулю 2, а формулы, построенные на операциях ⊕“ ” и ·“ представляют собой многочлены в Z2 (их называют многочленами Жегалкина). ” Нетрудно прямой проверкой убедиться в том, что ÌÃÒÓ ÔÍ-12 Следствие 1.3. Каждая булева функция является истинностной функцией какой-либо пропозициональной формулы. ÔÍ-12 ÌÃÒÓ ÌÃÒÓ 11 J Структура самой формулы не имеет значения. Пусть x1 , x2 , . . . , xn — список всех переменных, входящих в формулу, и f (ξ1 , ξ2 , . . . , ξn ) истинностная функция этой формулы (ξi — истинностное значение переменной xi ). Отметим, что элементарная конъюнкция xσ1 1 ∧xσ2 2 ∧. . .∧xσnn истинна при ξ1 = σ1 , x2 = σ2 , . . . , ξn = σn и ложна при любом другом варианте истинностных значений переменных. Поэтому в СДНФ при заданном наборе истинностных значений переменных максимум одна элементарная конъюнкция имеет истинностное значение 1. Для каждого набора σ1 , σ2 , . . . , σn , для которого f (σ1 , σ2 , . . . , σn ) = 1 составляем элементарную конъюнкцию xσ1 1 ∧ xσ2 2 ∧ . . . ∧ xσnn , а затем из них составляем СДНФ. Получим формулу, для которой f (ξ1 , ξ2 , . . . , ξn ) является истинностной функцией. Значит, эта СДНФ эквивалентна исходной формуле. Для построения СДНФ требуется лишь, чтобы истинностная функция хотя бы при одном наборе истинностных значений переменных принимала значение 1, т.е. исходная формула не должна быть противоречием. Утверждение о КНФ является двойственным утверждением о ДНФ и может быть получено взаимной заменой в рассуждениях дизъюнкции и конъюнкции. I x ⊕ y ≡ xy + xy ≡ (¬x ∧ y) ∨ (x ∧ ¬y), ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 1. АЛГЕБРА ВЫСКАЗЫВАНИЙ ÌÃÒÓ J Необходимость сформулированного критерия установлена выше. Поэтому сосредоточим внимание на доказательстве достаточности критерия. Это доказательство сводится к построению на основе множества F функций стандартного базиса, причем можно ограничиться только отрицанием и умножением, поскольку сложение (дизъюнкция) выражается через отрицание и умножение: x + y = x y. ÔÍ-12 ÌÃÒÓ ÔÍ-12 Пусть F не является подмножеством ни одного из классов Поста. Для каждой функции f ∈ F рассмотрим формулу g(x) = f (x, x, . . . , x). Поскольку F не содержится в T0 и в T1 , в F , во-первых, есть непостоянные функции, а во-вторых есть хотя бы одна функция f1 , для которой g1 (0) = 1, и есть хотя бы одна функция f2 , для которой g2 (1) = 0. Это возможно, если одна из функций g1 (x) и g2 (x) есть отрицание, либо обе функции постоянны и представляют константы0 и 1. Рассмотрим оба случая. Пусть функции g1 (x) и g2 (x) являются константы 0 и 1. Тогда для любой функции f ∈ F формула f (α1 , α2 , . . . , αi−1 , x, αi+1 , . . . , αn ), в которой αj — константы, есть формула над F . Выберем функцию f , не являющуюся монотонной. Тогда существуют два булевых вектора p и q, удовлетворяющие условиям p < q и f (p) = 1, f (q) = 0. Векторы p и q можно соединить цепочкой p = p0 , p1 , . . . , pk = q непосредственно предшествующих друг другу векторов (соседних). В этой цепочке найдется два соседних вектора pj−1 и pj , которые отличаются только одной компонентой с некоторым номером i и на которых f (pj−1 ) = 1, f (pj ) = 0. Пусть αj , j 6= i, одинаковые компоненты этих векторов. Тогда формула f (α1 , α2 , . . . , αi−1 , x, αi+1 , . . . , αn ) представляет собой операцию отрицания. Предположим, например, что функция g1 (x) является отрицанием. Тогда мы можем составлять формулы вида f (x ⊕ σ 1 , . . . , x ⊕ σn ), где x ⊕ σ есть переменная x при σ = 0 и ее отрицание при σ = 1. Выберем функцию f ∈ F , не являющуюся самодвойственной. Тогда можно указать такой булев вектор p ∈ Bn , что f (p) 6= f (p), откуда f (p) = f (p). Пусть σ1 , . . . , σn — компоненты вектора p. Рассмотрим функцию g(x) = f (x ⊕ σ 1 , . . . , x ⊕ σn ), определяемую выбранной несамодвойственной функцией f и вектором p. Так как 0 ⊕ σi = σi , 1 ⊕ σi = σ i , то g(0) = f (p) = f (p) = f (σ1 ⊕ 1, . . . , σn ⊕ 1) = g(1). Следовательно, функция g(x) является константой. Пусть, например, g(x) = 1. Тогда g(x) = 0 — другая константа. Итак, мы показали, что множество F , не являющееся подмножеством классов T0 , T1 , S, M , позволяет получить в виде формул отрицание и обе константы. Для построения формулы для ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 Теорема 1.8 (критерий Поста). Множество F булевых функций полно тогда и только тогда, когда оно не является подмножеством ни одного из классов Поста. ÌÃÒÓ ÌÃÒÓ Введем пять так называемых классов Поста. Класс T0 содержит все функции, удовлетворяющие условию f (0, 0, . . . , 0) = 0, т.е. функции, принимающие нулевое значение при нулевых значениях всех аргументов. Аналогично T1 — это класс функций, удовлетворяющих условию f (1, 1, . . . , 1) = 1. Класс S — это класс самодвойственных функций, т.е. функций, удовлетворяющих условию f (x1 , . . . , xn ) = f (x1 , . . . , xn ), где x = 1 − x — отрицание. Вектор значений самодвойственной функции удовлетворяет условию b1 b2 . . . bn = bn bn−1 . . . b1 . Для двух булевых векторов a = a1 a2 . . . an и b = b1 b2 . . . bn полагаем a 6 b, если ai 6 bi , i = 1, n. Булеву функцию f (x) = f (x1 , x2 , . . . , xn ) назовем монотонной, если f (x) 6 f (y) при x 6 y. Множество всех монотонных функций составляют класс M . Наконец, класс L линейных функций составляют функции, у которых полином Жегалкина имеет степень не выше первой. Каждый из классов Поста является замкнутым множеством. Доказательство можно провести методом индукции по построению формулы. При этом ни один из классов не совпадает с множеством P2 всех булевых функций. Отсюда вытекает, что если заданное множество F булевых функций включено в один из классов Поста, то оно не является полным, поскольку его замыкание также будет включено в этот класс Поста. Мы получили необходимое условие полноты множества булевых функций. Оказывается, что это условие является и достаточным. ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 1. АЛГЕБРА ВЫСКАЗЫВАНИЙ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 13 произведения выберем функцию f ∈ F , не являющуюся линейной. Составляя формулы вида f (X1 , X2 , . . . , Xn ), где Xi — это либо переменная x, либо переменная y, мы получим функции двух аргументов. Покажем, что среди таких функций есть нелинейные. В полиноме Жегалкина, представляющем функцию f , выберем нелинейное (степени два или выше) слагаемое наименьшей степени. Пусть это слагаемое имеет вид xi1 xi2 . . . xik . В формуле f (X1 , X2 , . . . , Xn ) положим Xi1 = x, Xij = y, j = 2, k, а для остальных переменных, не вошедших в выбранное слагаемое выберем значение 0. Тогда выбранное слагаемое преобразуется в xy, остальные нелинейные слагаемые обнулятся, и мы получим функцию вида g(x, y) = xy ⊕ αx ⊕ βy ⊕ γ. Так как g(x, y) = xy ⊕ αx ⊕ βy ⊕ γ = (x ⊕ β)(y ⊕ α) ⊕ αβ ⊕ γ = (x ⊕ β)(y ⊕ α) ⊕ γ 0 , заключаем, что g(x ⊕ β, y ⊕ α) ⊕ γ 0 = xy. Но x ⊕ σ — это переменная x при σ = 0 и ее отрицание x при σ = 1. Поэтому, если g(x, y) принадлежит замыканию F , то и функция g(x ⊕ β, y ⊕ α) ⊕ γ 0 = xy, т.е. конъюнкция, принадлежит замыканию F . Итак, мы показали, что если множество F не является подмножеством никакого класса Поста, то формулами над F можно представить отрицание и конъюнкцию, а значит, и дизъюнкцию. В этом случае, согласно теореме 1.6, множество F полное. I Пример 1.2. Полное множество составляет единственная функция x | y = ¬(x ∧ y), называемая штрихом Шеффера. Проверка критерия Поста здесь элементарна, и мы на этом не будем останавливаться. Нетрудно также с помощью этой функции представить функции стандартного базиса: xy = x | y = (x | y) | (x | y), x + y = xy = x | y Аналогична стрелка Пирса. Она тоже составляет базис. ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 Пример 1.3. В математической логике ключевой операцией является импликация. Совместно с отрицанием она составляет базис: отрицание не попадает в классы T0 , T1 , M , а импликация оказывается за бортом классов S и L. Впрочем, как и в случае других базисов, можно через импликацию и отрицание представить дизъюнкцию и конъюнкцию, а затем сослаться на теорему 1.6. ÌÃÒÓ x = xx = x | x, ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 1. АЛГЕБРА ВЫСКАЗЫВАНИЙ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÌÃÒÓ 14 14 16 21 3. Алгебра предикатов 3.1. Предикаты и кванторы . . . . . . . . . . . 3.2. Логико-математические языки . . . . . . . 3.3. Переименования и подстановки . . . . . . 3.4. Семантика логико-математического языка 3.5. Логические законы . . . . . . . . . . . . . 3.6. Замены . . . . . . . . . . . . . . . . . . . . 3.7. Упрощение формул . . . . . . . . . . . . . . . . . . . . 26 26 27 30 33 35 38 40 4. Исчисление предикатов 4.1. Построение теории P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2. Правила естественного вывода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3. Глобальные свойства теории P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 42 43 45 5. Генценовские формальные системы 5.1. Исчисление GV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2. Исчисление GP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 52 56 6. Примеры формальных теорий 6.1. Теория групп . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2. Формальная арифметика . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 59 61 7. Метод резолюций 7.1. Скулемовские функции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2. Метод резолюций для исчисления высказываний . . . . . . . . . . . . . . . . . . . 7.3. Метод резолюций для исчисления предикатов . . . . . . . . . . . . . . . . . . . . . 66 66 68 71 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ÌÃÒÓ 2. Исчисление высказываний 2.1. Основные положения теории N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Правила естественного вывода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3. Глобальные свойства теории N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ÔÍ-12 . . . . 1 1 3 5 9 ÔÍ-12 ÔÍ-12 1. Алгебра высказываний 1.1. Введение . . . . . . . . . . . . . . . . . 1.2. Алгебра логики . . . . . . . . . . . . . 1.3. Тавтологии и эквивалентность формул 1.4. Функции алгебры логики . . . . . . . . ÔÍ-12 75 ÌÃÒÓ ÔÍ-12 ОГЛАВЛЕНИЕ ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ Московский государственный технический университет имени Н.Э. Баумана ÌÃÒÓ Факультет «Фундаментальные науки» Кафедра «Математическое моделирование» ÌÃÒÓ À.Í. Êàíàòíèêîâ È ÒÅÎÐÈß ÀËÃÎÐÈÒÌΠÊîíñïåêò ëåêöèé ÔÍ-12 Москва 2009 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 Äëÿ ñòóäåíòîâ êàôåäðû ÈÓ9 ÌÃÒÓ ÌÃÒÓ ÌÀÒÅÌÀÒÈ×ÅÑÊÀß ËÎÃÈÊÀ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 2.1. Основные положения теории N ÔÍ-12 Язык теории N . Аксиомы (их одиннадцать): 1) X → (Y → X); 2) X → Y → (X → (Y → Z) → (X → Z)); 3) X ∧ Y → X; 4) X ∧ Y → Y ; 5) (X → Y ) → ((X → Z) → (X → Y ∧ Z)); 6) X → X ∨ Y ; 7) Y → X ∨ Y ; 8) X → Z → (Y → Z → (X ∨ Y → Z)); 9) X → Y → (¬Y → ¬X); 10) ¬¬X → X; X, X → Y 11) X → ¬¬X. Правило вывода (modus ponens). Вывод в теории N . Вывод из Y гипотез. Пример: X → X. Дерево вывода. 7) Y → X ∨ Y ; 2) X → Y → (X → (Y → Z) → (X → Z)); 8) X → Z → (Y → Z → (X ∨ Y → Z)); 3) X ∧ Y → X; 9) X → Y → (¬Y → ¬X); 4) X ∧ Y → Y ; 10) ¬¬X → X; 5) (X → Y ) → ((X → Z) → (X → Y ∧ Z)); 11) X → ¬¬X. 6) X → X ∨ Y ; 14 ÔÍ-12 1) X → (Y → X); ÌÃÒÓ Язык теории N — это язык алгебры высказываний. В теории N одиннадцать схем аксиом. Схема аксиом отличается от аксиомы тем, что в ней используются не конкретные переменные, а символы подстановки, вместо которых могут подставляться конкретные формулы теории. При выборе вместо символов подстановки конкретных формул мы получаем конкретную аксиому. Отметим, что можно было бы избежать схем аксиом, но тогда придется вводить дополнительные правила вывода, которые позволили бы размножить“ аксиому. ” Итак, сформулируем одиннадцать схем аксиом теории N : ÌÃÒÓ ÔÍ-12 ÌÃÒÓ Напомним, что полностью формализованная математическая теория (исчисление) выглядит так. Имеется некоторый язык, позволяющий составлять правильные слова-формулы, которые отражают возможные утверждения теории. Есть некоторый набор формул, изначально объявленных истинными (это аксиомы). Кроме того, задан некоторый набор правил преобразования формул, которые позволяют из истинных формул получать новые истинные формулы. Все истинные утверждения теории получаются путем формальных преобразований формул в рамках узаконенных правил преобразований. Цепочка последовательных преобразований называется выводом. В полностью формализованной теории утрачивается содержательный смысл формул, а все построение теории превращается в манипуляции заданными символами. Алгебра высказываний — это содержательная теория, все ее суждения устанавливаются на базе истинностных функций, которые никак не отражаются в языке алгебры высказываний. Полная формализация алгебры высказываний устанавливает связь получения тех или иных утверждений с реальным процессом умозаключений, который и представляет собой подлинное математическое доказательство. Кроме того, алгебра высказываний в основном сводится к теории булевых функций, т.е. к исследованию конечных объектов. Поэтому исчисление высказываний — одно из самых простых и в этом смысле удобно как иллюстрация современного подхода к формализации в математике. Любая теория имеет множество вариантов формализации. В рамках логики высказываний мы остановимся на одном из этих вариантов, который назовем теорией N . ÔÍ-12 ÔÍ-12 2. ИСЧИСЛЕНИЕ ВЫСКАЗЫВАНИЙ ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ Следует заметить, что фактически вывод представляет собой особую структуру — дерево: каждая формула вывода есть либо аксиома или гипотеза (лист дерева, начальный элемент структуры), либо имеет предшественников, из которых она получена по правилу вывода. Для формулы X → X из последнего примера дерево вывода имеет следующий вид: X → (X → X → X) X → (X → X → X) → (X → X) X →(X →X)→(X →(X →X →X)→(X →X)) X → (X → X) ÔÍ-12 X →X ÌÃÒÓ Пример 2.1. Построим вывод формулы X → X, где X — какая-либо формула теории N : 1) из схемы 1 получаем аксиому X → (X → X); 2) из схемы 2, заменяя Z на X и Y на X → X, получаем аксиому X → (X → X) → (X → (X → → X → X) → (X → X)), 3) из двух предыдущих формул по правилу вывода X → (X → X → X) → (X → X); 4) из схемы 1 при X → X взамен Y получаем аксиому X → (X → X → X); 5) из двух последних формул по правилу вывода X → X. ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ Представленная запись означает, что из двух правильных“ формул вида X и X → Y вытекает ” правильная“ формула Y . ” После введения языка, аксиом и правил вывода формальная теория готова. Дальше можно начинать игру в слова“ и получать теоремы (т.е. выводимые формулы) этой теории. На ” этом, собственно, заканчивается формальная часть и начинается неформальная, т.е. метатеория. Основной вопрос: что дает формальная теория в качестве выводимых формул. Отметим, что добросовестный вывод даже простых теорем оказывается весьма трудоемким, и следует прибегать к приему, хорошо известному математикам: использовать уже выведенные теоремы наравне с аксиомами. Выводом теории N будем называть последовательность формул X1 , X2 , . . . , Xn , в которой каждая формула Xi есть либо аксиома, либо получена из каких-либо предшествующих формул Xk , Xm (k, m < i) по правилу modus ponens. Формула X называется выводимой в теории N , если она является конечной формулой некоторого вывода. Этот факт будем обозначать следующим образом: ` X. Для нас будет важен условный вывод, или выод из гипотез, при котором некоторые формулы мы предполагаем истинными и на основании этого строим вывод. Такой условный вывод играет промежуточную роль, позволяя рассматривать отдельные части окончательного вывода. Кроме того, условный вывод можно рассматривать как построение вывода из нелогических аксиом, которые присутствуют во всех математических теориях (они характеризуют основные положения теории). Далее большими греческими буквами будем обозначать списки формул теории N . Выводом из гипотез Γ в теории N будем называть последовательность формул, в которой каждая формула есть либо аксиома, либо формула из списка Γ, либо она получена из предшествующих формул по правилу modus ponens. При этом конечная формула X любого вывода из гипотез Γ называется выводимой из гипотез Γ, что обозначается следующим образом: Γ ` X. ÔÍ-12 ÔÍ-12 X, X → Y . Y ÌÃÒÓ ÌÃÒÓ В теории N всего одно правило вывода — правило заключения (modus ponens): ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 15 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 2. ИСЧИСЛЕНИЕ ВЫСКАЗЫВАНИЙ ÌÃÒÓ Теорема 2.1 (теорема о дедукции). Если Γ, X ` Y , то Γ ` X → Y . ÔÍ-12 По определению в выводе каждая формула есть либо аксиома, либо гипотеза, либо выводится из предыдущих по правилу modus ponens, т.е. формулы в выводе, строго говоря, могут повторяться. Однако ясно, что повторения можно убрать, не нарушая связей в выводе. ÌÃÒÓ * ÔÍ-12 J Доказательство строится на анализе последовательности вывода. Фактически надо показать, что для любого вывода Z1 , Z2 , . . . , Zn = Y из гипотез Γ, X существует вывод из гипотез Γ формулы X → Y . Доказательство проведем индукцией по длине вывода. При n = 1 конечная формула вывода Zn = Y есть либо аксиома, либо формула из списка Γ, либо формула X (правило modus ponens в данном случае не применялось, так как длина вывода меньше двух). В первом и втором случаях строим последовательность формул Y , Y → (X → Y ) (аксиома схемы 1), X → Y (modus ponens), которая является выводом формулы X и списка гипотез Γ. В третьем случае X = Y и формула X → Y совпадает с выводимой формулой X → X (см. пример 2.1). Таким образом, при n = 1 утверждение доказано. Предположим, что утверждение доказано для всех формул Y , имеющих вывод из гипотез Γ, X длины менее n. Рассмотрим произвольный вывод Z1 , Z2 , . . . , Zn = Y . Формула Y есть либо аксиома, либо формула из списка Γ, либо X, либо получена по правилу modus ponens. В первых трех случаях рассуждения те же, что и при n = 1 (в выводе можно оставить только последнюю формулу и свести дело к n = 1). Рассмотрим случай, когда Y получена по правилу modus ponens из формул Zk и Zj . В этом случае одна из формул, например Zj , есть импликация Zk → Y . В соответствии с индукционным предположением из гипотез Γ выводимы формулы X → Zk и X → (Zk → Y ). Объединим два этих вывода, удалив из списка повторения формул, если они есть* . Дополняем полученное объединение следующими тремя формулами: X → Zk → (X → (Zk → Y ) → (X → Y )) (аксиома схемы 2); X → (Zk → Y ) → (X → Y ) (modus ponens); X → Y (modus ponens). В результате получаем вывод формулы X → Y из гипотез Γ. В соответствии с методом математической индукции утверждение теоремы доказано для конечной формулы любого вывода из гипотез Γ, X. I ÌÃÒÓ ÔÍ-12 ÌÃÒÓ Одна из целей введения исчисления высказываний — анализ используемой практики построения доказательств. В качестве единственного правила вывода в теории взято правило modus ponens, в то время как построение доказательств на практике использует и многие другие правила: правило исключенного третьего, доказательство от противного и т.п. Оказывается, что все подобные правила можно получить из аксиом исчисления высказываний и правила modus ponens. Веденный символ ` выводимости в исчислении высказываний позволяет строить формулы нового типа Γ ` X, которые на содержательном уровне можно интерпретировать так: если ” истинны формулы списка Γ, то истинна формула X. Это формулы метаязыка, позволяющие упростить процесс установления того, выводима данная формула или нет. Само правило modus ponens можно трактовать как формулу X, X → Y ` Y . Формулу вида Γ ` X будем называть секвенцией. Секвенция — это логическая формула, которая может быть истинной или нет. Чтобы приблизиться к общепринятой практике доказательств, выведем в теории N ряд дополнительных правил, называемых правилами естественного вывода. Следующая теорема дает основополагающее правило естественного вывода, в некотором смысле обращающее правило modus ponens. Фактически эта теорема представляет собой утверждение об эквивалентности символа импликации → и символа выводимости `. ÔÍ-12 ÔÍ-12 Теорема о дедукции: если Γ, X ` Y , то Γ ` X → Y . Структурные правила естественного вывода. Логические правила естественного вывода. Дополнительные правила естественного вывода: присоединение посылки; закон противоречия; двойное отрицание; доказательство от противного; удаление конъюнкции справа. Обобщенное правило введения дизъюнкции. ÌÃÒÓ ÌÃÒÓ 2.2. Правила естественного вывода ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 16 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 2. ИСЧИСЛЕНИЕ ВЫСКАЗЫВАНИЙ ÌÃÒÓ Правила, обозначенные в теореме, — элементарные следствия из определения понятия вы” вод из гипотез“ и лишь фиксируют очевидное. Отметим также очевидный факт, что мы можем произвольно вводить аксиомы в список Γ гипотез или выводить аксиомы из списка, не меняя сути. первое вытекает из правила добавления гипотез, а второе утверждение можно получить как формальное следствие правила сечения: Γ`X Γ, Y ` X `Y Следующая теорема вводит так называемые логические правила естественного вывода, описывающие некоторые общепринятые приемы проведения математических доказательств. 1) 2) 3) 6) 7) ÔÍ-12 J Первые два правила — это теорема о дедукции и правило modus ponens в применении к выводу из гипотез. В самом деле, объединив выводы из Γ формул X и X → Y , получим последовательность, в которой есть эти формулы. Применив modus ponens, получим Y , которую добавим в конец последовательности формул. Получим вывод Y из Γ. Для доказательства правила 3 для произвольно заданных формул X и Y используем какуюлибо аксиому T и аксиому T → X → (T → Y → (T → X ∧ Y )) схемы 5. Из выводимости формул X ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 8) ÌÃÒÓ 5) Γ, Y ` X (введение импликации, теорема о дедукции); Γ`Y →X Γ ` X; Γ ` X → Y (удаление импликации, modus ponens); Γ`Y Γ ` X; Γ ` Y (введение конъюнкции); Γ`X ∧Y Γ, X, Y ` Z (удаление конъюнкции); Γ, X ∧ Y ` Z Γ`X Γ`X и (введение дизъюнкции); Γ`X ∨Y Γ`Y ∨X Γ, X ` Z; Γ, Y ` Z (удаление конъюнкции, правило разбора случаев); Γ, X ∨ Y ` Z Γ, X ` Y ; Γ, X ` ¬Y (введение отрицания); Γ ` ¬X Γ ` ¬¬X (удаление отрицания). Γ`X ÔÍ-12 Теорема 2.3. Для любого списка формул Γ и любых формул X, Y , Z верны следующие утверждения: ÌÃÒÓ ÔÍ-12 Γ`X (правило добавления гипотез); Γ, ∆ ` X Γ, Y, Y, ∆ ` X 3) (правило сокращения гипотез); Γ, Y, ∆ ` X Γ, Y, Z, ∆ ` X 4) (правило перестановки гипотез); Γ, Z, Y, ∆ ` X ∆ ` Y ; Γ, Y ` X (правило сечения). 5) Γ, ∆ ` X 2) ÌÃÒÓ ÌÃÒÓ Теорема 2.2. Для любых списков формул Γ и ∆ и любых формул X, Y , Z истинны следующие секвенции: 1) Γ, X, ∆ ` X (закон тождества); ÔÍ-12 ÔÍ-12 ÌÃÒÓ 17 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 Следующая теорема устанавливает пять правил, называемых структурными правилами естественного вывода. Правила сформулированы не для формул языка алгебры высказываний, а для секвенций. Они позволяют из уже известных выводимостей получать новые. При этом соответствующий вывод на самом деле не строится, а лишь формулируется заключение о существовании такого вывода. 4) ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 2. ИСЧИСЛЕНИЕ ВЫСКАЗЫВАНИЙ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 и Y из списка Γ следует выводимость формул T → X и T → Y . Дважды удаляя импликацию в аксиоме схемы 5, получим выводимость T → X ∧ Y . Еще раз удаляя импликацию (T выводима), получаем выводимость X ∧Y . Указанную последовательность шагов можно представить в виде дерева Γ`X ∧Y Γ`T Γ`T →Y →(T →X ∧Y ) Γ`T →Y ÌÃÒÓ ÌÃÒÓ Γ`T →X ∧Y `T Γ`T →X →(T →Y →(T →X ∧Y )) Γ`T →X Γ, T ` Y `T →X →(T →Y →(T →X ∧Y )) Γ, T ` X Γ`Y Γ`X Правило 4 опирается на аксиомы X ∧ Y → X и X ∧ Y → Y . Из этих аксиом по правилу modus ponens получаем выводимости X ∧ Y ` X и X ∧ Y ` Y . Остается соединить два этих вывода с выводом Γ, X, Y ` Z для получения нужного вывода Γ, X ∧ Y ` Z. Соответствующее дерево вывода имеет следующий вид: Γ, X ∧ Y ` Z ÔÍ-12 ÔÍ-12 ÌÃÒÓ 18 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 2. ИСЧИСЛЕНИЕ ВЫСКАЗЫВАНИЙ Γ, X ∧ Y ` X ÌÃÒÓ ÌÃÒÓ Γ, X ∧ Y, X ∧ Y ` Z Γ, X, X ∧ Y ` Z Γ`X ∧Y →X Γ, X, X ∧ Y ` Y Γ, X, Y ` Z `X ∧Y →X Γ, X ` X ∧ Y → Y (здесь использовано упрощенное правило 2 вида Γ`X →Y ). Аналогично доказывается правило Γ, X ` Y 5, но с использованием аксиом X → X ∨ Y и X → Y ∨ X, полученных по схемам 6 и 7. Правило 6 опирается на аксиому X → Z → (Y → Z → (X ∨ Y → Z)), полученную по схеме 8 и выводится аналогично правилу 5: Γ, X ∨ Y ` Z ÔÍ-12 ÔÍ-12 `X ∧Y →Y Γ ` Y → Z → (X ∨ Y → Z) Γ`Y →Z Γ ` X → Z → (Y → Z → (X ∨ Y → Z)) Γ`X →Z ` X → Z → (Y → Z → (X ∨ Y → Z)) Γ, X ` Z Γ, Y ` Z ÌÃÒÓ ÌÃÒÓ Γ`X ∨Y →Z Γ ` ¬¬X → X Γ ` ¬¬X ` ¬¬X Отметим, что из схемы 11 вытекает правило, обратное к правилу 8: Γ`X . Γ ` ¬¬X ÌÃÒÓ Γ`X ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 Правило 8 опирается на схему аксиом 10 и доказывается следующим деревом: ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 19 Остановимся на правиле 7, которое вытекает из схем 9, 10, 11. Непосредственно из схемы Γ, X ` Y ; Γ ` ¬Y аксиом 9 вытекает более слабое правило : Γ ` ¬X Γ ` ¬X Γ ` ¬Y → ¬X Γ ` X → Y → (¬Y → ¬X) Γ ` ¬Y Γ`X →Y ` X → Y → (¬Y → ¬X) Чтобы получить нужное правило, необходимо в список Γ добавить аксиому X. Получим правиΓ, X, X ` Y ; Γ, X ` ¬Y Γ, X ` Y ; Γ, X ` ¬Y ло , или после сокращения одинаковых гипотез: . Оста- ÔÍ-12 Γ, X ` ¬X случае правила 5 используется какая-либо аксиома T . Эта аксиома вводится в список гипотез, а затем дважды применяется слабый вариант доказываемого правила: Γ ` ¬X Γ, X ` ¬T Γ ` ¬¬T ÔÍ-12 Γ, X ` ¬X Γ, X ` ¬X , для чего используется схема аксиом 11. Кроме того, как и в ется обосновать правило Γ ` ¬X ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 2. ИСЧИСЛЕНИЕ ВЫСКАЗЫВАНИЙ ÔÍ-12 Γ, X ` ¬X ` ¬¬T `T ` T → ¬¬T Теорема полностью доказана. I ÌÃÒÓ Как видно по комментариям в формулировке теоремы, логические правила естественного вывода есть двух видов: правила введения, которые позволяют доказывать формулу с данной логической связкой, и правила удаления, которые показывают, как использовать эту формулу для доказательства других формул. Правила естественного вывода (в первую очередь, теорема о дедукции) позволяют устанавливать выводимость в исчислении высказываний тех или иных формул, не строя конкретного вывода. Достаточно опираться на установленные правила и, как показано, в доказательстве теоремы, строить вывод, но уже других формул — секвенций. Отметим, что набор правил естественного вывода самодостаточен: в этих правилах учтены все схемы аксиом. При установлении истинности секвенций нет нужды прибегать непосредственно к аксиомам. Как станет ясно из дальнейшего изложения, выводимость формулы X равносильна тому, что секвенция ` X выводима из правил естественного вывода. На практике при установлении истинности конкретных секвенций удобно использовать дополнительные правила, вытекающие из правил естественного вывода. Укажем некоторые простейшие следствия правил естественного вывода. ÔÍ-12 ÌÃÒÓ Γ, X, T ` X ÌÃÒÓ ÌÃÒÓ (2.1) Γ, Y ` X Γ`X ÌÃÒÓ Γ`Y →X ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 Γ`X , называемое присоединением посылки, вытекает из Пример 2.2. а. Правило Γ`Y →X правила введения импликации и правила добавления гипотез: ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 20 (закон противоречия) вытекает из правила введения отрицания Γ`Y Γ ` ¬¬Y Γ, ¬Y ` X Γ, ¬Y ` ¬X Γ, ¬Y ` X Γ, ¬Y ` ¬X Γ`X Γ ` ¬X Γ`X ÔÍ-12 ÔÍ-12 может быть получено из схемы аксиом в. Правило введения двойного отрицания Γ ` ¬¬X 11. Его можно также вывести из правил естественного вывода: Γ ` ¬¬X Γ, ¬X ` X ÌÃÒÓ ÌÃÒÓ Γ ` X; Γ ` ¬X б. Правило Γ`Y добавлением гипотез: ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 2. ИСЧИСЛЕНИЕ ВЫСКАЗЫВАНИЙ Γ, ¬X ` ¬X Γ`X Γ, X, ¬Y ` ¬Y Γ, X ` Y Γ`X ∧Y Γ`X ∧Y д. Правила и удаления конъюнкции справа вытекают из правила удалеΓ`X Γ`Y ния конъюнкции (но также могут быть получены из схем аксиом 6 и 7). Например, первое из этих правил получается применением правила сечения и правила удаления конъюнкции: Γ`X Γ, X, Y ` X Второе правило удаления конъюнкции справа можно получить аналогично. # Правила естественного вывода и их следствия позволяют доказать выводимость широкого круга секвенций. Однако отметим, что наиболее тяжело устанавливаются выводимости вида Γ ` X ∨ Y . Правило введения дизъюнкции сводит задачу к выводу более сильного утверждения Γ ` X или Γ ` Y . Пример 2.3. На практике для доказательства утверждения вида X ∨ Y можно рассуждать так: пусть X не верно, т.е. истинно ¬X. Докажем, что тогда истинно Y .“ Этому варианту ” Γ, ¬X ` Y Γ, ¬Y ` X рассуждений соответствуют правила и , которые можно получить и в исΓ`X ∨Y Γ`X ∨Y числении высказываний. Для этого достаточно использовать правило введения отрицания и ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 Γ`X ∧Y ÌÃÒÓ ÌÃÒÓ Γ, X ∧ Y ` X ÔÍ-12 ÔÍ-12 Γ, X, ¬Y ` Y ÌÃÒÓ ÌÃÒÓ Γ, X ` Y г. Полезно правило доказательства от противного, которого вытекает из правила Γ, ¬Y ` ¬X введения отрицания: Γ, ¬Y ` ¬X ÌÃÒÓ Γ, ¬(X ∨ Y ) ` X Γ, ¬(X ∨ Y ) ` ¬X Γ, ¬(X ∨ Y ) ` ¬¬X Γ, X ` X ∨ Y Γ, ¬X ` X ∨ Y Γ, X ` X Γ, ¬X ` Y Это правило назовем обобщенным правилом введения дизъюнкции. 2.3. Глобальные свойства теории N Выводимые формулы и тавтологии. Непротиворечивость теории N . Полнота теории N . Разрешимость теории N . Независимость аксиом в теории N . Теорема 2.4. Любая формула, выводимая в теории N , является тавтологией. # Итак, множество формул, выводимых в теории N содержится в множестве всех тавтологий. На самом деле оба множества совпадают. Чтобы это доказать, установим одно вспомогательное утверждение. Как и в случае булевых функций для произвольной пропозициональной переменной x введем обозначение xσ , σ ∈ B, полагая, что x1 = x и x0 = ¬x. ÔÍ-12 J Доказательство строится индукцией по построению формулы. В этом случае базис индукции относится к элементарным формулам, т.е. к переменным. Пусть Y = x и задано истинностное значение α. При α = 1 имеем xα = x, Y = x, и севенция xα ` Y истинна, поскольку и левая, и правая части секвенции — одна и та же формула. При α = 0 имеем xα = ¬x, ¬Y = ¬x, и истинной является секвенция xα ` ¬Y . Чтобы доказать шаг индукции, необходимо в предположении, что утверждение верно для формул Z и W , установить его истинность для формул (Z ∨ W ), (Z ∧ W ), (Z → W ) и (¬Z). Пусть z1 , . . . , zn — общий список переменных формул Z и W . Рассмотрим случай Y = Z ∧ W . Для заданного набора α значений α1 , . . . , αn введем обозначение Γ = xα1 1 , . . . , xαnn . Предположим, что на наборе α истинностные функции fZ и ÌÃÒÓ Теорема 2.5. Пусть Y — формула, построенная на переменных x1 , . . . , xn , f (ξ1 , . . . , ξn ) — истинностная функция формулы Y , αi ∈ B, i = 1, n, — набор истинностных значений для переменных x1 , . . . , xn . Если f (α1 , . . . , αn ) = 1, то имеет место выводимость xα1 1 , . . . , xαnn ` Y . Если f (α1 , . . . , αn ) = 0, то имеет место выводимость xα1 1 , . . . , xαnn ` ¬Y . ÔÍ-12 Остановимся на описании множества выводимых формул в теории N . Нетрудно убедиться в том, что все аксиомы этой теории являются тавтологиями . Например, любая аксиома, полученная по схеме 1, может быть получена подстановкой формул в тавтологию x → (y → x), а потому сама является тавтологией (следствие 1.1). Если формулы X и X → Y являются тавтологиями, то правило modus ponens приводит к формуле Y , также являющейся тавтологией (теорема 1.1). Это означает, что в любом выводе все формулы являются тавтологиями, поскольку либо являются аксиомами, либо получены из тавтологий по правилу modus ponens (аккуратное доказательство может быть проведено методом математической индукции по длине вывода). Можно также утверждать, что если в списке Γ все формулы — тавтологии, то и все формулы, выводимые из гипотез Γ, также будут тавтологиями. ÌÃÒÓ ÔÍ-12 ÌÃÒÓ Γ ` ¬¬(X ∨ Y ) ÔÍ-12 ÔÍ-12 Γ`X ∨Y ÌÃÒÓ ÌÃÒÓ правило доказательства от противного: ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 21 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 2. ИСЧИСЛЕНИЕ ВЫСКАЗЫВАНИЙ ÌÃÒÓ ÔÍ-12 Γ ` ¬(Z ∧ W ) Γ, Z ∧ W ` Z Γ, Z, W ` ¬Z Γ, Z, W ` Z Γ ` ¬Z В результате получена выводимость Γ ` ¬Y , поскольку ¬Y = ¬(Z ∧ W ). Рассмотрим случай Y = Z ∨ W . Опять выберем набор значений α и введем, как и выше, обозначение Γ. Если одна из функций fZ fW на наборе α имеет значение 1, например fZ (α) = 1, то по индуктивному предположению имеет место выводимость Γ ` Z. Отсюда сразу получаем выводимость Γ ` Z ∨ W = Y в силу правила введения дизъюнкции. Осталось рассмотреть вариант fZ (α) = fW (α) = 0. В этом варианте fY (α) = fZ (α) ∨ fW (α) = 0 и, значит, нужно установить выводимость Γ ` ¬Y исходя из индуктивных предположений Γ ` ¬Z и Γ ` ¬W . Имеем: Γ ` ¬(Z ∨ W ) Γ, W ` ¬U В результате требуемая секвенция оказадась сведена к четырем однотипным севенциям, в которых выбор формулы U (соответственно ¬U ) не имеет значения. Истинность всех четырех севенций устанавливается по единому сценарию с помощью закона противоречия. Рассмотрим, например, первую из них: Γ, Z ` U Γ, Z ` Z Γ, Z ` ¬Z Γ, Z → W ` W Γ, Z → W ` Z Γ, Z → W ` Z → W Γ, Z → W ` ¬W Γ ` ¬W ÔÍ-12 Γ`Z Пусть fZ (α) = 0, fW (α) = 0. Тогда fY (α) = 1, и требуется установить Γ ` Z → W исходя из Γ ` ¬Z и Γ ` ¬W . Из первой секвенции добавлением гипотезы получаем Γ, Z ` ¬Z, что с очевидной секвенцией Γ, Z ` Z по закону противоречия приводит к выводимости Γ, Z ` W и далее по правилу введения импликации к Γ ` Z → W . Рассмотрим случай Y = ¬Z. Если fZ (α) = 1, то fY (α) = 0 и Γ ` Z. Введением отрицания получаем Γ ` ¬¬Z = ¬Y . Аналогично при fZ (α) = 0 имеем fY (α) = 1 и Γ ` ¬Z, что равносильно Γ ` Y . I ÌÃÒÓ Γ ` ¬Z Рассмотрим случай Y = Z → W . Выделим вариант fW (α) = 1. В этом варианте fY (α) = 1 и нужно установить выводимость Γ ` Z → W исходя из Γ ` W . Это верно в силу правила присоединения посылки. Пусть fZ (α) = 1, fW (α) = 0. Тогда fY (α) = 0, и нужно установить выводимость Γ ` ¬(Z → W ) исходя из Γ ` Z и Γ ` ¬W . Это можно сделать следующим образом: Γ ` ¬(Z → W ) ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ Γ, Z ` ¬U ÔÍ-12 ÔÍ-12 Γ, W ` U ÌÃÒÓ Γ, Z ` U Γ, Z ∨ W ` ¬U ÌÃÒÓ ÔÍ-12 Γ, Z ∧ W ` ¬Z ÔÍ-12 ÌÃÒÓ ÌÃÒÓ 22 fW принимают значение 1. Тогда по индуктивному предположению имеем Γ ` Z и Γ ` W , откуда по правилу введения конъюнкции получаем выводимость Γ ` Y , так как Y = Z ∧ W . Пусть одна из истинностных функций, например fZ , принимает значение 0. Тогда имеет место выводимость Γ ` ¬Z. Используя правила естественного вывода, получаем Γ, Z ∨ W ` U ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 2. ИСЧИСЛЕНИЕ ВЫСКАЗЫВАНИЙ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 23 Теорема 2.6. Любая тавтология Y выводима в теории N . J Пусть формула Y построена из переменных x1 , . . . , xn . Поскольку Y — тавтология, ее истинностная функция на любом булевом векторе α принимает значение 1. Значит, для любых значений α1 , . . . , αn имеет место выводимость xα1 1 , . . . , xαnn ` Y . Обозначим Γ2 = xα2 1 , . . . , xαnn . Имеют место выводимости x1 , Γ2 ` Y и ¬x1 , Γ2 ` Y . По правилу удаления конъюнкции находим x1 ∨ ¬x1 , Γ2 ` Y . Используя выводимость ` x1 ∨ ¬x1 , по правилу сечения получаем Γ2 ` Y . Повторяя рассуждения, последовательно убираем из списка гипотез переменные x2 , x3 и т.д. В конечном счете получим выводимость ` Y , что равносильно утверждению теоремы. I ÔÍ-12 Полученное описание выводимых в теории N формул позволяет установить такие свойства этой теории, как непротиворечивость, полноту и разрешимость. Установление этих свойств — цель, преследуемая при формализации любой теории. Под непротиворечивостью формальной теории понимают отсутствие в этой теории такой формулы X, для которой выводимыми являются и сама формула X, и ее отрицание ¬X. Иногда дают такое определение непротиворечивости теории: теория непротиворечива, если в ней существует невыводимая формула. Формально утверждение о выводимости любой формулы сильнее, чем утверждение о выводимости какой либо пары X и ¬X (из первого утверждения очевидно вытекает второе). Однако в данном случае оба подхода дают одно и то же: если в теории выводимы и X, и ¬X, то по закону противоречия выводима любая формула. ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 2. ИСЧИСЛЕНИЕ ВЫСКАЗЫВАНИЙ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ Под полнотой формальной теории понимают свойство, согласно которому не существует такой невыводимой формулы X, добавление которой к аксиомам приводит к непротиворечивой теории. Другими словами, в такой теории Для каждой формулы X выводима либо сама формула, либо ее отрицание. Наша теория не полна в этом смысле. Действительно, если, добавив в качестве аксиомы некоторую формулу X, мы найдем вывод формулы ¬X, то, с иной точки зрения, мы получим вывод ¬X из гипотезы X в теории N , т.е. X ` ¬X. Значит, согласно дереву (2.1), имеет место выводимость ` ¬X. Однако, как доказано, такое возможно только, если X — противоречие. Следовательно, добавление любой формулы, не являющейся тавтологией или противоречием, дает непротиворечивую теорию. Впрочем, если в теорию ввести дополнительную схему аксиом, построенную на формуле, не являющейся тавтологией, то подставляя в схему вместо символов подстановки определенные формулы, можно получить противоречие. Это противоречие, с одной стороны, является аксиомой, поскольку получено из схемы аксиом, а с другой стороны, его отрицание есть тавтология, выводимая в теории N . Пусть например, схема аксиом построена на формуле, представленной истинностной функцией f (x1 , . . . , xn ). Так как формула — не тавтология, существует набор значений α1 , . . . , αn аргументов функции, на котором она принимает значение 0. Каждую переменную xj заменим формулой xj ∨ ¬xj , если αj = 1, и формулой xj ∧ ¬xj . Полученная формула, построенная по схеме аксиом, будет противоречием. При построении исчисления высказываний (и далее исчисления предикатов) различают полноту в широком смысле, означающую сказанным выше, и полноту в узком смысле, означающую, что выводимыми являются все тавтологии. В узком смысле теория N полна. Впрочем, отсутствие полноты в широком смысле легко устраняется простой модификацией формальной теории: достаточно вместо каждой схемы аксиом записать обычную аксиому, заменив места подстановки переменными и добавить еще одно правило вывода, заключающееся в подстановке вместо переменных произвольных формул. Отметим, что свойством полноты обладают очень ÔÍ-12 ÔÍ-12 J Выводимыми в теории N являются только тавтологии. Если формула X выводима в теории N , то X — тавтология. Но тогда ¬X является противоречием и не относится к числу выводимых формул. I ÌÃÒÓ ÌÃÒÓ Теорема 2.7. Теория N является непротиворечивой. ÌÃÒÓ Теорема 2.8. Схемы аксиом исчисления N не зависят друг от друга. ÌÃÒÓ J Наиболее просто доказать независимость схем, начиная с 3-й, так как все эти схемы используют, кроме импликации, еще одну операцию, которая участвует лишь в двух других схемах аксиом. Можно ограничиться двухэлементной областью изменения переменных и стандартной интепретацией операций, кроме одной. В табл. 2.1 приведены схемы аксиом и новая интерпретация одной из операций. При этой интерпретации указанная схема аксиом при некоторых значениях входящих в нее формул принимает значение 0, в то время как остальные аксиомы ÔÍ-12 ÌÃÒÓ ÔÍ-12 простые математические теории: согласно теореме Геделя о неполноте любая достаточно содержательная теория не является полной, поскольку в рамках такой теории удается построить такую формулу Z, что ни эта формула, ни ее отрицание не являются выводимыми. Под разрешимостью теории понимают наличие алгоритма, который для любой формулы позволяет установить за конечное число элементарных операций, выводима эта формула или нет. В данном случае в качестве такого алгоритма может рассматривать процедуру построения истинностной функции и проверки ее на наличие значений 0. Отсутствие таких значений означает, что функция является постоянной, а формула — тавтологией, т.е. выводимой в теории N . Указанная процедура выполняется за конечное число алгебраических операций и дает однозначный ответ, выводима формула или нет. В этом смысле теория N является разрешимой теорией. Еще один вопрос, связанный с построением формальной теории — независимость аксиом. Аксиома формальной теории не зависит от остальных аксиом этой теории, если эта аксиома не является выводимой формулой в теории, которая получается из исходной удалением указанной аксиомы. Если ни одна из аксиом формальной теории не является логическим следствием остальных, то говорят о независимой системе аксиом. Система аксиом теории N является независимой в том смысле, что удалив одну из схем аксиом теории, мы не сможем вывести ни одну из формул, получаемой в рамках этой схемы аксиом. Как можно доказать утверждения подобного рода. Напомним, что в формальной теории формулы теряют всякий содержательный смысл; например, знак импликации может означать какую угодно бинарную операцию на множестве возможных значений переменных, а сами переменные могут быть связаны с любыми математическими объектами. Придание смысла символам формальной теории называют интерпретацией этой теории. В данном случае множество всех высказываний как область изменения переменных и естественный логический смысл символов операций — это одна из возможных интерпретаций исчисления N . Интерпретация формальной теории строится в рамках какой-либо другой математической теории. Надежность интепретации определяется надежностью той теории, в которой интепретируется исчисление. Так, суждения о непротиворечивости, полноте и разрешимости исчисления N получены в рамках так называемой теории булевых функций, т.е. теории функций с областью изменения переменных и функций 0 и 1. В этом смысле подобные суждения носят относительный характер. В математике считают абсолютно надежными теории, связанные с конечными множествами. В этом смысле утверждения о непротиворечивости, полноте и разрешимости исчисления N являются абсолютными. Утверждение о независимости системы аксиом тоже будет абсолютным, если оно будет получено на базе какой-либо конечной интерпретации. ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ 24 ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 2. ИСЧИСЛЕНИЕ ВЫСКАЗЫВАНИЙ ÔÍ-12 ÌÃÒÓ ÔÍ-12 3 4 5 6 7 Интерпретируемая № Интерпретируемая Схема аксиом операция операция X ∧Y →X x∧y =y 8 X →Z →(Y →Z →(X ∨Y →Z)) x∨y =1 X ∧Y →Y x∧y =x 9 X → Y → (¬Y → ¬X) ¬x = x X →Y →(X →Z →(X →Y ∧Z)) x∧y =0 10 ¬¬X → X ¬x = 1 X →Y ∨Z x∨y =z 11 X → ¬¬X ¬x = 0 Y →Y ∨Z x∨y =y Схема аксиом ÌÃÒÓ № ÔÍ-12 ÔÍ-12 Таблица 2.1 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ 25 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ имеют постоянное истинностное значение 1. Изменение интерпретации не затрагивает правила modus ponens, так что при удалении указанной схемы аксиом мы получаем теорию, в которой все выводимые формулы — тавтологии, но некоторые формулы, получаемые из указанной схемы, выводимыми не являются. Это и означает, что указанная схема аксиом не зависит от остальных. Независимость первых двух схем доказать сложнее, поскольку они касаются импликации, затрагивающей все схемы. Ответ можно найти, рассмотрев в качестве области изменения переменных множество из трех целых чисел {0, 1, 2} и выбрав следующие интерпретации операций: x ∧ y = min {x, y}, x ∨ y = max {x, y}, ¬x = 2 − x. Для импликации потребуем выполнения условия, что x → y = n тогда и только тогда, когда x 6 y. При поставленных условиях схемы 3, 4, 6, 7, 10, 11 будут давать формулы с тождественным значением n, а в силу условия, наложенного на импликацию, значение Y будет тождественное n при X ≡ n и X → Y ≡ n. Недоопределенность импликации можно использовать для получения нужных значений первых двух схем аксиом и для обеспечения тождественного значения n схем 5, 8, 9. Положим x → y = 0 при x > y. Тогда схема X → (Y → X) будет иметь значение 0 при X = 1, Y = 2, в то время как остальные аксиомы будут давать тождественное значение 2. Действительно, в схеме 2 исключаем случай X > Y или X 6 Z, так как тогда она имеет вид 0→W или W →1. Значит, Z < X 6 Y и схема имеет вид 2→(X →0→0). Но X > Z > 0, значит, X → 0 = 0 и 2 → (X → 0 → 0) = 2 → (0 → 0) = 2 → 2 = 2. В схеме 5 исключаем случай X > Y или X > Z, когда она имеет значение 2. Но тогда X 6 min {Y, Z} и X → Y ∨ Z = 2. Поэтому X → Y → (X → Z → (X → Y ∧ Z)) = X → Y → (X → Z → 2) = 2. В схеме 8 исключаем случай X > Z или Y > Z. Тогда max {X, Y } 6 Z, X ∨ Y → Z = 2 и схема 8 имеет тождественное значение 2. В схеме 9 исключаем случай X > Y . Но тогда X 6 Y , ¬Y 6 ¬X и формула имеет вид 2 → 2. Положим x → y = 1 при x > y. Тогда схема 8 будет иметь значение 1, например, при X = 1, Y = 2, Z = 0. В схеме 1 исключаем случай Y 6 X. Тогда X < Y 6 2, а значит, X 6 1 и X → (Y → X) = X → 1 = 2. Схемы 5, 8, 9 проверяются так же, как выше. I ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 2. ИСЧИСЛЕНИЕ ВЫСКАЗЫВАНИЙ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÌÃÒÓ 14 14 16 21 3. Алгебра предикатов 3.1. Предикаты и кванторы . . . . . . . . . . . 3.2. Логико-математические языки . . . . . . . 3.3. Переименования и подстановки . . . . . . 3.4. Семантика логико-математического языка 3.5. Логические законы . . . . . . . . . . . . . 3.6. Замены . . . . . . . . . . . . . . . . . . . . 3.7. Упрощение формул . . . . . . . . . . . . . . . . . . . . 26 26 27 30 33 35 38 40 4. Исчисление предикатов 4.1. Построение теории P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2. Правила естественного вывода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3. Глобальные свойства теории P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 42 43 45 5. Генценовские формальные системы 5.1. Исчисление GV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2. Исчисление GP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 52 56 6. Примеры формальных теорий 6.1. Теория групп . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2. Формальная арифметика . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 59 61 7. Метод резолюций 7.1. Скулемовские функции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2. Метод резолюций для исчисления высказываний . . . . . . . . . . . . . . . . . . . 7.3. Метод резолюций для исчисления предикатов . . . . . . . . . . . . . . . . . . . . . 66 66 68 71 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ÌÃÒÓ 2. Исчисление высказываний 2.1. Основные положения теории N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Правила естественного вывода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3. Глобальные свойства теории N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ÔÍ-12 . . . . 1 1 3 5 9 ÔÍ-12 ÔÍ-12 1. Алгебра высказываний 1.1. Введение . . . . . . . . . . . . . . . . . 1.2. Алгебра логики . . . . . . . . . . . . . 1.3. Тавтологии и эквивалентность формул 1.4. Функции алгебры логики . . . . . . . . ÔÍ-12 75 ÌÃÒÓ ÔÍ-12 ОГЛАВЛЕНИЕ ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ Московский государственный технический университет имени Н.Э. Баумана ÌÃÒÓ Факультет «Фундаментальные науки» Кафедра «Математическое моделирование» ÌÃÒÓ À.Í. Êàíàòíèêîâ È ÒÅÎÐÈß ÀËÃÎÐÈÒÌΠÊîíñïåêò ëåêöèé ÔÍ-12 Москва 2010 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 Äëÿ ñòóäåíòîâ êàôåäðû ÈÓ9 ÌÃÒÓ ÌÃÒÓ ÌÀÒÅÌÀÒÈ×ÅÑÊÀß ËÎÃÈÊÀ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ 3. АЛГЕБРА ПРЕДИКАТОВ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 26 ÌÃÒÓ Построенное исчисление высказываний в реальности оказывается довольно бедной теорией. Оно позволяет строить и анализировать различные комбинации высказываний. Однако в математике встречаются предложения, которые, вообще говоря, не являются высказываниями. Например, нельзя сказать, истинно ли утверждение число x положительное“. Ответ ” зависит от того, какое это число. Здесь мы сталкиваемся с уточнением того, что такое суждение. В каждом суждении присутствуют два компонента — субъект и предикат. Субъект — это понятие, отражающее предмет, о котором идет речь. В предложении субъект связывается с подлежащим. Предикат же можно уподобить сказуемому, поскольку этот структурный элемент выражает свойства, приписываемые предметам или отрицаемые у них. В суждениях Роза красная“, Гитара семиструнная“ субъектами являются роза“ и гитара“, а предиката” ” ” ” ми — красная“ (все то, что называется красным) и семиструнная“ (все то, что называется ” ” семиструнным). В математике этой трактовке суждения отвечает высказывание с параметрами“, т.е. су” ждение, которое становится высказыванием при конкретизации параметров. Такие суждения называют предикатами. С математической точки зрения предикат можно интерпретировать как некое отображение, которое каждому набору входящих в него параметров ставит в соответствие высказывание. Количество участвующих в предикате параметров называется его арностью. Понятие предиката не вкладывается в язык исчисления высказываний. Требуется построение более широкой теории, требующей и расширения языка теории. Что должен охватывать такой язык помимо высказываний и логических связок? Во-первых, если в формулах алгебры высказываний встречаются переменные, областью действия которых является множество высказываний, то в формулах любой математической теории есть переменные, область действия которых связана не с высказываниями, а с объектами, изучаемыми в этой теории. В математическом анализе переменные числовые, в геометрии переменные обозначают точки, прямые, плоскости. Такие переменные называют предметными, а область их действия — предметной областью. В теории могут участвовать предметные переменные разного рода, поскольку описывают объекты разных классов (например, точки и прямые в геометрии). Во-вторых, в ряде математических теорий есть установленные символы для обозначения некоторых стандартных объектов (например, число π). В отличие от переменных эти символы имеют конкретное значение. Их называют константами. В третьих, в каждой математической теории используются функции, причем разные, к которым можно отнести и операции над объектами математической теории. Функции можно рассматривать двояко: как отображение и как связь между переменными. С точки зрения формальной записи функция — это символ, который исходя из некоторой совокупности переменных формирует новую переменную (точнее, новый объект, имеющий неопределенное значение). Наконец, в четвертых, в этом языке должны быть отражены и такие символы, как кванторы. Кванторы — специальные символы (или фразеологические штампы), которые позволяют ÔÍ-12 ÔÍ-12 Ограниченность исчисления высказываний. Переменные высказывания. Cубъект и предикат переменного высказывания. Понятие предиката в математической логике. Арность предиката. Контуры будущей теории. Кванторы как символы агрегирования. Выражения двух видов. ÌÃÒÓ ÌÃÒÓ 3.1. Предикаты и кванторы ÌÃÒÓ ÌÃÒÓ Язык как совокупность четырех множеств (V, C, F, P ). Предметные переменные, константы и их сортность. Функциональные и предикатные символы, их тип. Предикатные символы арности 0 как пропозициональные переменные. Индуктивное построение термов и формул. Функциональная сложность терма, логическая сложность формулы. Выражения. Правильные формулы: A(x), B(x, y), C, (∀xA(x)). Комментарии по вариантам построения логико-математических языков. Односортные языки. Свободные и связанные вхождения переменных. Предложения (замкнутые термы и формулы). Соглашения о сокращенной записи формул. ÔÍ-12 3.2. Логико-математические языки ÔÍ-12 Под логико-математическим языком мы будем понимать совокупность (V, C, F, P ) из четырех не более чем счетных множеств, элементы которых называют символами. Первое множество — это множество V предметных переменных. Предметные переменные могут иметь разные сорта. Конкретно мы считаем, что есть еще пятое множество S — множество сортов и задано отображение sortV : V → S. Значение отображения sortV на переменной x ∈ V и есть сорт этой переменной. Каждому сорту π ∈ S соответствует множество Vπ предметных переменных этого сорта, являющееся полным прообразом sort−1 V (π) элемента π ∈ S. ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 n=1 переменная n входит свободно (первое вхождение) и связанно (второе и третье). В дальнейшем изложении мы не будем использовать предметных символов агрегирования, ограничившись только двумя кванторами, так как предметные символы агрегирования усложняют язык, но не добавляют чего-то существенного в формальную теорию как таковую. Отметим, что за бортом“ остаются обозначения множеств и связи множеств и элементов. Если ” в формальной теории нет средств для обозначения множеств, ее называют теорией 1-го порядка. При введении множеств отдельных элементов получаем теорию 2-го порядка, множества множеств приводят к теории 3-го порядка. И так далее. Отметим, что новая теория будет содержать выражения двух видов. Первые не означают какое-то высказывание, они описывают лишь действия, выполняемые над объектами теории. Например, выражение x + y играет роль новой предметной переменной, значения которой однозначно определяются значениями x и y. Напротив, выражение x + y = 0 выражает суждение, которое может быть истинным или ложным при заданных значениях неизвестных. Разделяя два типа выражений, первые будем называть термами, а вторые формулами. Таким образом, значением терма является некоторый объект теории (например, число), в то время как значением формулы является высказывание. ÌÃÒÓ ÌÃÒÓ из неопределенного предложения построить правильное высказывание, истинность которого устанавливается однозначно. Кванторы можно рассматривать как символы агрегирования, которые из совокупности возможных значений формируют одно значение. Таковы символы предела, интеграла, суммы. В логике используют два квантора: всеобщности ∀ и существования ∃. Запись ∀xP (x) формирует высказывание, являющееся истинным, если предикат P (x) является истинными для любого возможного значения предметной переменной x. Запись ∃xP (x) формирует высказывание, истинное, если предикат P (x) имеет значение истины хотя бы для одного возможного значения предметной переменной x. Введение в язык символов агрегирования приводит к тому, что вхождение переменных в формулы может играть две разных роли. В формуле x + y переменным x и y можно присвоить конкретные значения, в результате чего конкретное значение получит все выражение. В формуле ∀xP (x) переменной x нельзя присвоить конкретное значение, поскольку формула подразумевает использование целого множества значений переменной, а не отдельно взятого значения (поэтому и квантор — символ агрегирования). В первом случае говорят о свободном вхождении переменной, а во втором — о связанном вхождении. Одна и та же пере3 P менная в выражение может входить и свободно, и связанно. Например, в выражении n + an ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 27 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 3. Алгебра предикатов ÌÃÒÓ ÌÃÒÓ ÔÍ-12 Замечание. 1. На самом деле понятие логико-математического языка можно вводить различными способами, не меняя содержательной сути. Так, предикатные символы можно ÔÍ-12 где знак модуля обозначает функциональную сложность терма. Подобное индуктивное определение может использоваться не только для определения понятий, но и для доказательства различных утверждений. Например, пусть все элементарные термы обладают свойством P ; из того, что термы t1 , t2 , . . . , tn обладают свойством P , следует, что терм f (t1 , t2 , . . . , tn ) также обладает свойством P . Тогда все термы обладают свойством P . Определим теперь формулы. Б а з а и н д у к ц и и. Если t1 , t2 , . . . , tn — термы сортов π1 , . . . , πn соответственно, p — предикатный символ типа (π1 , . . . , πn ), то p(t1 , t2 , . . . , tn ) — формула (такую формулу будем называть элементарной). Ш а г и н д у к ц и и. Если X1 , X2 — формулы, то (X1 → X2 ), (X1 ∧ X2 ), (X1 ∨ X2 ), ¬X1 — формулы. Если X — формула, x — предметная переменная, то ∀xX и ∃xX — формулы. В то время как термы представляют собой записи последовательностей операций над объектами предметной области, формулы обозначают те или иные утверждения о свойствах этих объектов. Совокупность всех термов в рассматриваемом языке обозначим Tm, совокупность всех формул — Fm, а совокупность и тех, и других — Expr. Элементы Expr будем называть выражениями. Отметим, что допускаются предикатные символы арности 0, которые являются элементарными формулами. Множество таких символов в сочетании с логическими связками образует подмножество языка, эквивалентное языку алгебры высказываний. Поэтому предикатные символы арности 0 можно рассматривать как пропозициональные переменные. Для формул может быть введена характеристика, называемая логической сложностью, аналогичная функциональной сложности термов, но определяемая количеством предикатных символов в формуле. ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ Элементы множества C называются константами. Каждая константа относится к определенному сорту π ∈ S, т.е. задано отображение sortC : C → S множества констант в множество сортов. Элементы множества F — это функциональные символы, каждый из которых характеризуется своим типом, определяемым кортежем (π0 , π1 , . . . , πn ) ∈ S n+1 сортов (целое число n > 0 называется арностью функционального символа). Элементы множества P — это предикатные символы, каждый из которых характеризуется своим типом, определяемым кортежем сортов (π1 , . . . , πn ) ∈ S n (и в этом случае n > 0 — арность предикатного символа). Названия элементов четырех множеств указывают на роль, которые они будут играть в содержательной интерпретации языка. Однако этот содержательный смысл не играет роли в формальной теории. Главное, каким образом из символов составляются правильные слова языка. В логико-математическом языке два вида правильных слов. Это термы и формулы. Начнем с индуктивного определения термов. Б а з а и н д у к ц и и. Любая переменная или константа сорта π является термом сорта π (элементарные термы). Ш а г и н д у к ц и и. Если t1 , t2 , . . . , tn — термы сортов π1 , . . . , πn соответственно, f — функциональный символ типа (π0 , π1 , . . . , πn ), то f (t1 , t2 , . . . , tn ) — терм сорта π0 . Из этого определения нетрудно понять, что термы служат для записи выражений в предметной области (например, многочленов в полях). Функциональной сложностью терма называется количество функциональных символов в нем. Индуктивно эту характеристику можно определить так: сложность элементарного терма равна 0; сложность терма f (t1 , t2 , . . . , tn ) равна сумме сложностей аргументов плюс один, т.е. |f (t1 , t2 , . . . , tn )| = |t1 | + t2 | + . . . + |tn | + 1, ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ИУ-9, МЛТА, 2009-10 уч.г. ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ 28 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 полужирным шрифтом помечены связанные вхождения переменных, а светлым — свободные. ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 Среди логико-математических языков выделим односортные языки, в которых все предметные переменные имеют один сорт. Таков язык, например, арифметики. Напротив, язык линейной алгебры является двусортным (числа и векторы). В формулах ∀x X или ∃x X первый символ называется квантором (далее, если несущественно, какой именно квантор, мы будем использовать обозначение ∇). Комбинация из квантора и переменной называется кванторной приставкой, а формула X, следующая за кванторной приставкой — областью действия квантора. Допускается, что переменная кванторной приставки (кванторная переменная) вообще не имеет вхождений в области действия этой приставки. Появление кванторов приводит к тому, что предметные переменные формулы по своему положению могут иметь разные свойства. В языке высказываний была введена такая операция, как подстановка вместо переменных других переменных или формул. Однако при наличии кванторов произвольная подстановка может привести к неправильной формуле. Например, В формуле ∀x (x > 0) нельзя переменную x заменить произвольной формулой: слово ∀(x + 1) ((x + 1) > 0) не является формулой, потому что по индуктивному правилу образования формул сразу за квантором должна следовать переменная, а не служебный символ или константа. Содержательный смысл формулы при такой подстановке также теряется. Будем говорить, что вхождение предметной переменной x в формулу X является связанным, если оно есть часть кванторной приставки или находится в области действия кванторной приставки с той же переменной. В противном случае вхождение переменной называется свободным. В терме все вхождения каждой переменной свободные. В одной и той же формуле переменная x может иметь и свободные, и связанные вхождения. Например, в формуле p1 (x) ∨ ∀x p2 (x) три вхождения переменной x, причем первое вхождение свободное, а два других связанные. Если переменная x имеет свободные вхождения в формулу X, то ее называют свободной переменной этой формулы. Отметим, что определенное вхождение переменной может быть связанным в формуле и свободным в некоторой подформуле. Например, предикатный символ, в один из аргументов которого входит переменная, является подформулой, а в элементарной формуле вхождение любой переменной свободное. Еще один пример. В формуле (∀xp(x, y) ∧ q(x)) → (∃xr(x, x)) ÌÃÒÓ ÌÃÒÓ рассматривать как особый род функциональных символов, для которых сорт π0 есть выска” зывание“. Аналогично можно было бы отказаться от переменных языка, рассматривая их как функциональные символы арности 0. В результате дело можно было бы свести к двум множествам: С и F . Отметим также, что множество V на самом деле можно трактовать как семейство множеств, в котором каждое множество — это множество переменных одного сорта. Чтобы обозначить сорт переменной, достаточно указать множество, которому эта переменная принадлежит. Выбор конкретного варианта определения диктуется субъективными факторами, а также тем, что должно присутствовать нечто, трактуемое как сорт высказываний. 2. Совокупность всех переменных, констант, функциональных и предикатных символов плюс логические связки, кванторы, скобки и запятая составляет алфавит логико-математического языка. В данном случае алфавит оказывается счетным множеством. Однако нетрудно дело свести к конечному алфавиту, если считать, что элементы логико-математического языка на самом деле являются словами другого языка (языка нижнего уровня). Так, для всех натуральных чисел можно получить обозначения с помощью двух символов 0 и 1, используя позиционную форму записи. Однако этот механизм находится за пределами интересов математической логики. Поэтому мы и считаем идентификаторы переменных, функций и т.п. простейшими неделимыми элементами языка — символами. # ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 29 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 3. Алгебра предикатов ÌÃÒÓ 3.3. Переименования и подстановки Роль свободных и связанных переменных. Переименование. Коллизия переменных при переименовании. Отношение конгруэнтности (≈). Подстановка, свободная для данного выражения. Сохранение конгруэнтности при подстановке. Свойство чистоты переменных. Лемма о чистоте переменных. С понятием связанной переменной мы встречаемся уже в курсе математического анализа Обозначения предела, определенного интеграла дают примеры связывания переменных. Из того же курса известно, что связанную переменную можно изменять, не меняя смысла выражения. Однако это в общем верное правило может приводить к неверным результатам. Например, если в выражении lim cos(x2 +y 2 ) заменить связанную переменную x переменной y, получим формулу x→0 ÔÍ-12 Напомним, что символ ∇ обозначает любую из двух кванторных приставок. ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 * ÔÍ-12 lim cos(y 2 + y 2 ), имеющую совсем другой смысл. В этом случае говорят, что при подстановке y→0 произошла коллизия переменных. Одновременная замена переменной x в кванторной приставке* ∇x и всех свободных вхождений переменной x в области действия этой приставки на переменную y того же сорта называется переименованием. Коллизия переменных при переименовании в формуле ∇x X — ситуация, когда при переименовании переменной x в переменную y в X или в одной из ее подформул есть переменная, которая из свободной превращается в связанную. Например, в формуле ∀x p(x, y, z) переменные y и z являются свободными. Но при переименовании x в y получим ∀y p(y, y, z), где только одна переменная z осталась свободной. Может быть и другая ситуация. В формуле ∀x p1 (x, (∀y p2 (x, y)), z) оба вхождения переменной y связанные. Переменная x в формулу входит связанно (раз есть квантор), но в подформулу ∀y p2 (x, y) эта переменная уже входит свободно. Но переименование x в y переводит y в разряд связанной переменной в этой подформуле: ∀y p1 (y, (∀y p2 (y, y)), z). В этом случае также произошла коллизия переменных. Можно сказать по-другому. Назовем переменную x в формуле Z свободной переменной для переменной y, если никакие вхождения y в Z, являющиеся свободными для Z или одной из ее подформул, не попадают в область действия кванторных приставок с переменной x. Коллизия переменных при переименовании — попытка заменить кванторную переменную x на y в то время как x не является свободной для y. Мы будем говорить, что две формулы X и X 0 конгруэнтны (являются вариантами одна другой, обозначение X ≈ X 0 ), если одна получена из другой с помощью правильного, т.е. без коллизии переменных, переименования. Точное определение этого понятия можно дать индукцией по построению формулы: 1) элементарная формула конгруэнтна только себе самой; ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 Свободные переменные, входящие в терм или формулу, называются параметрами этого терма или формулы. Если формула не имеет свободных переменных, то она называется замкнутой или предложением. При записи формул будем использовать сокращения скобок на основе приоритета операций. Наивысшим приоритетом обладают кванторные приставки. Затем идет отрицание, далее дизъюнкция и конъюнкция. Наинизшим приоритетом обладает импликация. Мы будем также использовать сокращение (X ∼ Y ) для формулы ((X → Y ) ∧ (Y → X)), причем символу ∼ (эквиваленция) припишем самый низкий приоритет (ниже, чем у импликации). Кроме того, некоторые из функциональных символов арности 2, будем употреблять в инфиксной форме (например, символы алгебраических операций). Все эти соглашения используются для более удобной записи и с теоретическими построениями не связаны. От подобных соглашений всегда можно избавиться, модфицировав соответствующим образом терм или формулу. Разумеется, эти элементы можно было бы включить в формальный язык, но это в теоретическом плане ничего существенного не добавит, хотя заметно усложнит изложение. ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ИУ-9, МЛТА, 2009-10 уч.г. ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ 30 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 Отмечу, что любое алгебраическое уравнение является не термом, а формулой: его можно рассматривать как утверждение, касающееся указанных переменных, при этом решение уравнения представляет собой выявление области истинности этой формулы. ÔÍ-12 ** ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 в которой x1 , x2 , . . . , xn — конечный набор (предметных) переменных, а t1 , t2 , . . . , tn — набор термов, причем сорт терма ti совпадает с сортом переменной xi . Такую запись мы всегда можем трактовать как запись отображения, определенного на конечном подмножестве множества всех предметных переменных языка, в множество Tm всех термов языка, которое сохраняет сортность термов. Допускается, что приведенная таблица может быть пустой. Далее через T θ будем обозначать результат подстановки θ в выражение (т.е. терм или формулу) T , т.е. результат замены в T всех свободных вхождений каждой переменной xi из подстановки θ соответствующим термом ti . Отметим, что при этом некоторые переменные xi могут не входить свободно в T . В этом случае в отношении xi не происходит никаких замен, соответствующий столбец в подстановке θ можно опустить. В алгебре высказываний подстановка — один из способов преобразования формулы в эквивалентную. При этом на подстановку не накладывалось никаких ограничений. Ситуация меняется с появлением кванторов. При подстановке в формуле с кванторами смысл формулы может заметно измениться. Поэтому не все подстановки пригодны с точки зрения логики. Например, формула** x + y = z с натуральными переменными x, y, z есть предикат от трех переменных. Формула ∃y (x + y = z) есть предикат уже от двух переменных x и z, логическим эквивалентом которого является формула x < z. Заменим в этой формуле свободную переменную x термом x · y, надеясь на то, что получим предикат x · y < z. Однако формула ∃y (x·y +y = z) имеет совсем другой смысл. Здесь возникла та же проблема, что и при переименовании — коллизия переменных: при замене переменной x термом x·y переменная y, входящая в терм свободно, оказалась в области действия кванторной приставки и стала связанной. Чтобы избежать искажения, достаточно было предварительно убрать“ из формулы связанную пере” менную y с помощью переименован ия а уж затем выполнить подстановку: ∃u (x · y + u = z). При таком порядке действий действительно получим предикат x · y < z. Подстановку θ назовем свободной для выражения T , если для любой переменной xi из области определения dom θ подстановки θ (т.е. встречающейся в первой строке матрицы), никакое свободное вхождение xi в T не попадает в область действия никаких кванторных приставок с переменными, свободно входящими в ti = θ(xi ). В частности, если ни один из параметров формул θ(x) не является кванторной переменной в T , то θ свободна для T . Это будет так в случае, когда каждая из формул ϑ(x) вовсе не имеет параметров, т.е. является замкнутой. Такая подстановка называется константной. Если подстановка θ не является свободной для T , то, как показывает рассмотренный выше пример, можно, не меняя логической сути формулы, выполнить переименование переменных ÌÃÒÓ ÌÃÒÓ 2) если Y ≈ Y 0 , Z ≈ Z 0 , то ¬Y ≈ ¬Y 0 и Y ∇Z ≈ Y 0 ∇Z 0 , где ∇ — одна из трех двуместных логических связок; 3) если X = ∇x Y , X 0 = ∇y Z, то X ≈ X 0 , если x и y одного сорта и для любой переменной z того же сорта, вообще не входящей ни в Y , ни Z, имеем Yzx ≈ Zzy , где Wuv есть результат замены в W всех свободных вхождений переменной v на переменную u. Отметим, что конгруэнтность — это отношение эквивалентности (симметричное, рефлексивное и транзитивное). Таким образом, множество всех формул разделяется на классы попарно конгруэнтных формул. Хотя формально конгруэнтные формулы различаются, нет оснований такое различие учитывать. С математической точки зрения здесь осуществляется переход от понятия формула“ к более общему понятию класс конгруэнтных формул“. ” ” Под подстановкой θ мы будем понимать символическую запись вида   x 1 x 2 . . . xn θ= , t1 t2 . . . tn ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 31 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 3. Алгебра предикатов ÌÃÒÓ Теорема 3.1. Если X 0 ≈ X 00 , а θ свободна для X 0 и X 00 , то X 0 θ ≈ X 00 θ. J Доказательство базируется на индукции по построению формулы и на индуктивном определении конгруэнтности. Если X 0 ≈ X 00 , то формулы X либо обе элементарные, либо обе получены с помощью логической связки, либо обе построены присоединением кванторной приставки. В первом случае X 0 и X 00 совпадают, а значит, формулы X 0 θ и X 00 θ также элементарны и совпадают, т.е. X 0 θ ≈ X 00 θ. Пусть, например, X 0 = U 0 ∨W 0 и X 00 = U 00 ∨W 00 , причем U 0 ≈ U 00 , W 0 ≈ W 00 . По индуктивному предположению U 0 θ ≈ U 00 θ и W 0 θ ≈ W 00 θ. Следовательно, U 0 θ ∨ W 0 θ ≈ U 00 θ ∨ W 00 θ и X 0 θ = (U 0 ∨ W 0 )θ = U 0 θ ∨ W 0 θ ≈ U 00 θ ∨ W 00 θ = (U 00 ∨ W 00 )θ = X 00 θ. ÔÍ-12 Лемма 3.2 (о чистоте переменных). Для любой формулы X и любого множества S ⊂ V переменных существует формула Y , когруэнтная X, обладающая свойством чистоты переменных, в которой нет связанных переменных, принадлежащих S. ÌÃÒÓ Будем говорить, что формула X обладает свойством чистоты переменных, если, во-первых, никакая переменная кванторной приставки не входит в X свободно, и во-вторых, разные кванторные приставки содержат разные переменные. Следующая лемма позволяет утверждать, что в любой формуле T можно устроить переименование, в результате которого данная подстановка θ станет свободной для переименованной формулы. ÔÍ-12 Аналогичны рассуждения для других логических связок. Пусть X 0 = ∇xU 0 , X 00 = ∇yU 00 . Выберем переменную z, не входящую ни в формулы U 0 , U 00 , ни в формулы подстановки θ. Тогда, согласно условию X 0 ≈ X 00 , имеем (U 0 )xz ≈ (U 00 )yz . Согласно индуктивному предположению, (U 0 )xz θ ≈ (U 00 )yz θ. Отметим, что переменные x и y не входят свободно в формулы (U 0 )xz и (U 00 )yz , так как эти формулы конгруэнтны, x не входит свободно в первую из этих формул, y — во вторую. Рассмотрим подстановку θ, полученную из θ удалением столбцов с переменными x и y, если они есть. Применение подстановок θ и θ к формулам (U 0 )xz и (U 00 )yz дает один и тот же результат, поскольку переменные x и y не входят свободно в эти формулы. Следовательно, (U 0 )xz θ ≈ (U 00 )yz θ. Так как (U 0 )xz θ = (U 0 θ)xz и (U 00 )yz θ = = (U 00 θ)yz , то (U 0 θ)xz ≈ (U 00 θ)yz . В соответствии с определением конгруэнтности заключаем, что ∇x(U 0 θ) ≈ ∇y(U 00 θ). Наконец, с учетом равенств ∇x(U 0 θ) = (∇xU 0 )θ = (∇xU 0 )θ и ∇y(U 00 θ) = = (∇yU 00 )θ = (∇yU 00 )θ заключаем, что X 0 θ = (∇xU 0 )θ = (∇yU 00 )θ = X 00 θ. I ÌÃÒÓ ÔÍ-12 ÌÃÒÓ J Это интуитивно ясное утверждение (переименование не затрагивает свободных переменных) строго доказывается методом индукции по построению формулы. Утверждение очевидно для элементарных формул (конгруэнтность в этом случае равносильна совпадению). Если X 0 = U 0 ∨ W 0 , X 00 = U 00 ∨ W 00 , то конгруэнтность X 0 ≈ X 00 означает, что U 0 ≈ U 00 и W 0 ≈ W 00 . Если, например, u входит свободно в U 0 , то, согласно индуктивному предположению, u входит свободно и в U 00 , а значит, и в X 00 = U 00 ∨ W 00 . Аналогичны рассуждения для остальных логических связок, включая отрицание. Пусть X 0 = ∇xU 0 , x00 = ∇yU 00 , где ∇ — один из кванторов. Условие X 0 ≈ X 00 в данном случае означает, что для переменной z, не входящей в U 0 и U 00 , имеем (U 0 )xz ≈ (U 00 )yz . Отметим, что в этом случае u 6= x, поскольку x не входит свободно в X 0 . Следовательно, u входит свободно в (U 0 )xz . По индуктивному предположению u входит свободно в (U 00 )yz , откуда вытекает, что u 6= y, так как y не входит свободно в (U 00 )yz . Но тогда u входит свободно и в X 00 = ∇yU 00 . I ÔÍ-12 ÔÍ-12 Лемма 3.1. Если X 0 ≈ X 00 и переменная u входит в X 0 свободно, то и в X 00 переменная u входит свободно. ÌÃÒÓ ÌÃÒÓ в T , переходя к конгруэнтной формуле T 0 , для которой θ уже будет свободной. Этот подход позволяет обеспечить универсальность подстановки, но, правда, пожертвовав однозначностью: результат будет лишь с точностью до когруэнтности. ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ИУ-9, МЛТА, 2009-10 уч.г. ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ 32 ÌÃÒÓ В соответствии с доказанной леммой, чтобы выполнить в X правильную подстановку θ, необходимо переименовать X в X 0 так, что среди переменных X 0 не будут встречаться переменные термов θ(x). Тогда подстановка θ будет свободной для X 0 , и мы можем реализовать эту подстановку. 3.4. Семантика логико-математического языка ÔÍ-12 π∈S В-третьих, нужно каждому функциональному символу f типа (π0 , . . . , πn ) поставить в соответствие конкретное отображение fe: Dπ1 × . . . × Dπn → Dπ0 , т.е. задать некоторое отображение Fe: f 7→ fe. В-четвертых, следует каждому предикатному символу p типа (π1 , . . . , πn ) поставить в соответствие n-местный предикат того же вида, т.е. отображение, которое каждому элементу ÌÃÒÓ Сами по себе термы и формулы логико-математического языка ничего не значат. Это лишь средство для обозначения или записи реальных объектов. Чтобы термы и формулы приобрели какой-то содержательный смысл, необходимо связать их с реальными объектами из какой-либо области математики, т.е. определить интерпретацию логико-математического языка, или построить модель языка. Для этого мы должны предусмотреть несколько вещей. Во-первых, необходимо придать смысл предметным переменным, определив их возможные значения. Мы назовем носителем (или предметной областью) языка Ω отображение, которое каждому сорту π ∈ S ставит в соответствие некоторое непустое множество Dπ . Множество Dπ представляет собой носитель сорта π или, другими словами, область изменения переменных сорта π. Во-вторых, следует придать смысл предметным константам. Естественно каждую константу c ∈ C сорта π связать с некоторым элементом e c ∈ Dπ из носителя сорта π, т.е. задать e отображение C: C → ∪ Dπ , сохраняющее сортность. ÔÍ-12 Интерпретация логико-математического языка. Предметная область. Интерпретация предметных констант. Интерпретация функциональных и предикатных символов. Интерпретация логических связок и кванторов. Расширение языка введением символов реальных объектов. Оценка и оцененные выражения. ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 u конгруэнтную X. Если мы теперь заменим Yux конгруэнтной формулой Y 0 со свойством чистоты переменных и без переменных из S, то получим конгруэнтную Y формулу ∇u Y 0 со свойством чистоты переменных и без переменных из S. I ÌÃÒÓ ÌÃÒÓ J Доказательство проводится индукцией по построению формулы. Для элементарных формул утверждение тривиально, поскольку такие формулы вообще не имеют связанных переменных. Пусть задано множество S и формула X = Y ∇Z, где ∇ — одна из двуместных логических связок. Предположим, что относительно формул Y и Z уже доказано утверждение леммы с произвольным множеством S. Пусть SX — множество всех переменных (и свободных, и связанных), входящих в X. Существует формула Y 0 , конгруэнтная Y , обладающая свойством чистоты переменных и не имеющая связанных переменных из множества S ∪ SX . Обозначим через SY множество всех переменных, входящих в Y 0 . Существует формула X 0 , конгруэнтная X, обладающая свойством чистоты переменных и не имеющая связанных переменных из множества S ∪ SY . Формула X 0 ∇Y 0 обладает свойством чистоты переменных (любая кванторная переменная, например, в X 0 не совпадает со своими“ переменными, т.е. другими кванторны” ми переменными формулы X 0 , а по построению и с чужими“ переменными, составляющими ” множество SY ). Кроме того, в построенной формуле нет связанных переменных, попадающих в S. Для одноместной связки ¬ утверждение теоремы очевидно. Пусть X = ∇x Y , где ∇ — один из кванторов. Сперва надо вывести“ новую кванторную ” переменную за пределы S. Для этого выбираем новую переменную u, не принадлежащую S и   x свободна и мы получаем формулу ∇u Yux , не входящую никаким образом в Y . Подстановка ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 33 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 3. Алгебра предикатов ÌÃÒÓ ÌÃÒÓ ÔÍ-12 Пример 3.1. В качестве примера логико-математического языка рассмотрим язык элементарной арифметики. Этот язык имеет лишь один сорт переменных, которые мы будем обозначать x, y, z, . . . Единственную константу обозначим 0. Три функциональных символа f , g, h, из которых первый одноместный, два остальных двуместные. Единственный двуместный предикатный символ обозначим p. Для функциональных и предикатного символов введем альтернативные бинарные нотации: f (x) ≡ x+ (переход к следующему натуральному числу); g(x, y) ≡ (x + y) (операция сложения); h(x, y) ≡ (x · y) (операция умножения); p(x, y) ≡ (x = y) (формальное равенство). ÔÍ-12 Это константная подстановка, называемая оценкой языка Ω. Если θ содержит все переменные терма T , то терм T θ оказывается замкнутым выражением (без параметров) и будет иметь конкретное значение. В этом случае θ называется оценкой для выражения T , а само выражение T θ называется оцененным. В общем оцененное выражение — это любое замкнутое выражение языка Ω(D). Все сказанное переносится и на формулы языка Ω. Значением оцененной формулы является ложь или истина. При этом говорят, что оцененная формула истинна (ложна) в модели M . Подчеркнем, что сами по себе формулы не имеют какого-либо значения. Истинность возникает, когда конкретную интерпретацию получают все функциональные и предикатные символы, а формула не содержит параметров (или все они заменены константами в результате оценки). ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ множества Dπ1 ×. . .×Dπn ставит в соответствие высказывание. Впрочем, поскольку нас интересует лишь истинность формул, можно ограничиться булевым вариантом и символу p поставить в соответствие отображение pe: Dπ1 × . . . × Dπn → B. Отдельно упомянем предикатные символы арности 0. Это пропозициональные переменные, которые в случае булевой интерпретации можно заменить двумя булевыми константами. В-пятых, следует придать смысл всем логическим связкам и кванторам. Мы будем считать, что они имеют общепринятый смысл и что их интерпретация фиксирована. Все сказанное означает, что интерпретация — предписание, которое символам языка ставит в соответствие настоящие объекты. Говорят, что модель языка определяет его семантику. Если задана интерпретация M языка Ω, то каждый терм сорта π определяет отображение, которое каждому набору значений переменных ставит в соответствие объект сорта π, т.е. элемент множества Dπ . Другими словами, терм получает значение, если известны значения всех его параметров. Значение терма легко определить индукцией по построению. Обычно придание переменным терма некоторых значений рассматривается как некоторый формальный акт подстановки в терм вместо свободных переменных других объектов. Вообще говоря, использовать в выражении конкретные объекты не очень удобно. Во-первых, это выводит за пределы рассматриваемого языка. Во-вторых, подстановка в выражение неизвест” но чего“ может привести к неоднозначностям или другим казусам, поскольку так называемые реальные“ объекты вполне могут оказаться словами другого языка. ” Указанный формальный подход можно реализовать следующим образом. Введем в обиход дополнительный набор констант, каждая из которых соответствует реальному объекту. Более точно, выберем множество C символов, равномощное D = ∪ Dπ и биективное отображение π∈S b D → C, устанавливающее взаимно однозначное соответствие между объектами a ∈ Dπ и C: символами a того же сорта. В формулах будем использовать не сами объекты, о сопоставленные им символы. В результате получим некоторое расширение Ω(D) исходного языка Ω. Теперь мы можем в рамках расширенного языка выполнить формальную подстановку вида   x1 x2 . . . xn . θ= a1 a2 . . . an ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ИУ-9, МЛТА, 2009-10 уч.г. ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ 34 ÌÃÒÓ 3.5. Логические законы Формулы общезначимые, выполнимые, опровержимые, тождественно ложные. Пропозициональные тавтологии. Тавтологии с кванторами. Пример: ¬∃x¬X → ∀x X — тавтология; ∀x ∃y p(x, y) → ∃y ∀x p(x, y) — нет. Основные логические законы: а) де Моргана (пронесение через отрицание); б) пронесение кванторов через бинарные связки (8 законов); в) обобщенное пронесение кванторов через дизъюнкцию и конъюнкцию (4 закона); г) добавление кванторов или изменение порядка (5 законов); д) законы конгруэнтности. ÔÍ-12 ÌÃÒÓ ÔÍ-12 Среди формул языка Ω есть такие, которые остаются истинными при любой интерпретации и при любой оценке. Такие формулы называют тавтологиями или общезначимыми формулами. То, что X — тавтология, будем записывать так: |= X. Например, формула p → (q → p) истинна в любой модели, поскольку вообще не имеет параметров и в любой модели автоматически становится оцененной, тождественно истинной формулой. В то же время есть формулы, которые являются тождественно истинными для данной модели, но не являются тождественно истинными в другой модели. Например, формула x · y = y · x в модели ω тождественно истинна. Однако, если в качестве модели взять множество квадратных матриц (операции x+ можно поставить в соответствие добавление единичной матрицы) с естественной интерпретацией двуместных функциональных символов, формула x · y = y · x уже не будет тождественно истинной. Если формула X является истинной в данной модели M при любой оценке (т.е. тождественно истинна в M ), но не является истинной в некоторой другой модели при некоторой оценке, то эта формула выражает закон в модели M , истинность X в модели M будем обозначать M |= X. Поскольку нульарные предикатные символы не имеют параметров, их значение не меняется в рамках заданной модели. Поэтому множество всех нульарных предикатных символов в сочетании с логическими связками образует подмножество рассматриваемого языка, идентичное языку алгебры высказываний. Следовательно, любой тавтологии из алгебры высказываний соответствует тавтология языка Ω. Например, |= ¬A ∨ B → ¬(A ∧ ¬B), так как это калька с тавтологии из алгебры высказываний. Такие тавтологии будем называть пропозициональными. В них нет ни предметных переменных, ни кванторов. ÌÃÒÓ ÔÍ-12 ÌÃÒÓ Носителем второй модели, которую обозначим R, является множество R действительных чисел. Функциональным символам опять сопоставим сложение, умножение и добавление единицы. Формула x = y выражает совпадение действительных чисел. Вообще говоря, в качестве интерпретации рассматриваемого языка можно выбрать любое множество D, два любых отображения типа f, g: D2 → D, отображение типа h: D → D и отображение p: D → B. Все возможно. Но при этом меняется смысл термов и формул. Например, в модели ω истинна формула x + y = y + x, отражающая арифметический закон. Она сохраняется в модели R, но теряет силу в других моделях. ÔÍ-12 ÔÍ-12 5 3 ÌÃÒÓ ÌÃÒÓ Для введенного языка рассмотрим две модели. Первую обозначим ω. Носителем этой модели является множество N0 целых неотрицательных чисел. Символу 0 поставим в соответствие число нуль. Функциональным символам припишем соответствующие операции над целыми числами. Наконец, равенство (x = y) будет истинным тогда и только тогда, когда два числа x и y совпадают. Рассмотрим терм (x + y) · z + x+ . Этому терму мы можем давать различные оценки. На  x y z пример, при оценке получим терм (1 + 5) · 3 + 1+ , который в ω имеет значение 20. 1 2 3   x z дает истинную оцененную формулу ∃y (3 + y = 5). В Формула ∃y (x + y = z) при оценке 3 5   x z то же время при оценке получим ложную формулу ∃y (5 + y = 3). ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 35 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 3. Алгебра предикатов ÌÃÒÓ Две формулы X и Y называются логически эквивалентными, X ≡ Y , если формула X ∼ Y есть логический закон (напомним, что запись X ∼ Y — это сокращение формулы (X → Y ) ∧ (Y → X)). Можно сказать иначе: две формулы логически эквивалентны, если в любой модели и при любой оценке они обе или истинны, или ложны. Теорема 3.2. Если X ≡ Y , то ∀xX ≡ ∀xY и ∃xX ≡ ∃xY . min fX (x, x1 , . . . , xn ) = min fY (x, x1 , . . . , xn ) и x x max fX (x, x1 , . . . , xn ) = max fY (x, x1 , . . . , xn ). x x Приведем некоторые логические законы. Остановимся лишь на тех, которые выходят за рамки пропозициональных. Законы де Моргана: 1. ¬(∀x X) ∼ ∃x (¬X). 2. ¬(∃x X) ∼ ∀x (¬X). ∧ ∀x Y (x) ∼ ∀x (X ∨ ∀x Y (x) ∼ ∀x (X ∧ ∃x Y (x) ∼ ∃x (X ∨ ∃x Y (x) ∼ ∃x (X ∧ Y (x)). ∨ Y (x)). ∧ Y (x)). ∨ Y (x)). ÔÍ-12 X X X X 7. X → ∀x Y (x) ∼ ∀x (X → Y (x)). 8. X → ∃x Y (x) ∼ ∃x (X → Y (x)). 9. ∀x Y (x) → X ∼ ∃x (Y (x) → X). 10. ∃x Y (x) → X ∼ ∀x (Y (x) → X). ÌÃÒÓ 3. 4. 5. 6. ÔÍ-12 Доказательства общезначимости этих формул аналогичны доказательству общезначимости формулы ¬∃x¬X → ∀x X, рассмотренной выше. Одностороннее пронесение кванторов (здесь X не содержит свободно переменной x): ÌÃÒÓ Вычисление минимума или максимума функций fX , fY равносильно навешиванию квантора ∀ или ∃ с переменной x на формулы X, Y . Это указывает на то, что пары формул ∀xX и ∀xY , ∃xX и ∃xY эквивалентны в выбранной модели. Так как модель выбиралась произвольно, заключаем, что эти пары формул логически эквивалентны. I ÔÍ-12 J Пусть x, x1 , x2 , . . . , xn — полный набор всех параметров формул X и Y , в котором в качестве первой выбрана переменная x. При произвольно выбранной интепретации языка и при указанном порядке переменных формулы X и Y порождают булевы функции fX (x, x1 , x2 , . . . , xn ) и fY (x, x1 , x2 , . . . , xn ). Эквивалентность формул означает, что эти функции совпадают. Но тогда ÔÍ-12 ÌÃÒÓ ÔÍ-12 Пример 3.2. Покажем, что формула ∀x ∃y p(x, y) → ∃y ∀x p(x, y) не является логическим законом. Для этого необходимо придумать такую модель M , что M |= ∀x ∃y p(x, y), но формула ∃y ∀x p(x, y) в модели M не является истинной (отметим, что рассматриваемые формулы замкнуты, а потому в любой модели автоматически являются оцененными). В качестве модели выберем ω — модель элементарной арифметики. Предикатному символу p(x, y) поставим в соответствие отношение x < y на множестве натуральных чисел. Тогда формула ∀x ∃y p(x, y) будет означать, что в множестве натуральных чисел с отношением порядка x < y нет максимального элемента, а формула ∃y ∀x p(x, y) будет иметь противоположный смысл, что в множестве натуральных чисел есть наибольший элемент. Ясно, что первая формула истинна, а вторая нет. ÌÃÒÓ ÌÃÒÓ Кроме пропозициональных тавтологий в языке Ω есть и другие тавтологии, порожденные кванторами. Например ¬∃x¬X → ∀x X — тавтология. Чтобы это показать, выберем произвольную модель M и в ней произвольную оценку θ. Поскольку переменная x не входит свободно в формулу ¬∃x¬X → ∀x X, можно считать, что x не входит и в верхнюю строку θ. Поэтому (¬∃x¬X → ∀x X)θ = ¬∃x¬Xθ → ∀x Xθ. Таким образом, необходимо установить истинность M |= ¬∃x¬(Xθ) → ∀x (Xθ). Для доказательства этого предположим, что левая часть импликации истинна, т.е. M |= ¬∃x¬(Xθ). Надо доказать, что тогда M |= ∀x (Xθ), т.е. для всякого объекта a ∈ Dπ верно M |= (Xθ)xa . Предполагая противное, заключаем, что существует такой объект a ∈ Dπ , что формула (Xθ)xa в M ложна. Но тогда M |= ¬(Xθ)xa . Следовательно M |= ∃x ¬(Xθ). Но это противоречит предположению M |= ¬∃x¬(Xθ). ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ИУ-9, МЛТА, 2009-10 уч.г. ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ 36 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 37 Рассмотрим, например, формулу 3. Выберем произвольную модель и в ней произвольную оценку θ. Поскольку x в формулу не входит свободно, считаем, что и в θ переменная x не выходит. Получим оцененную формулу Xθ ∧∀x Y θ ∼ ∀x (Xθ ∧Y θ), которая является истинной в том и только в том случае, когда обе части эквиваленции имеют одно и то же истинностное значение. Если левая часть импликации истинна, то формулы Xθ и ∀x Y θ обе истинны. Значит, при любом a формула (Y θ)xa является истинной. Следовательно, истинна формула Xθ ∧ (Y θ)xa . Отсюда вытекает, что формула ∀x(Xθ ∧ (Y θ)) в правой части эквиваленции истинна. Нетрудно увидеть, что приведенные рассуждения можно провести в обратном порядке и тем самым показать, что из истинности правой части эвиваленции вытекает истинность левой части. Отметим, что доказанная формула 3 имеет естественную интрпретацию при выборе конкретной модели:  min fX , min fY = min min {fX , fY }. x x x x y y x ÔÍ-12 x Формулы 17 и 18 ассоциируются с правилом перестановки максимумов и минимумов по разным переменным, например: max max u(x, y) = max max u(x, y), ÌÃÒÓ Это верно при условии, что функция fX не зависит от переменной x. Дополнительные законы пронесения кванторов: 11. ∀x X(x) ∧ ∀x Y (x) ∼ ∀x (X(x) ∧ Y (x)). 13. ∃x (X(x) ∧ Y (x)) → ∃x X(x) ∧ ∃x Y (x). 12. ∃x X(x) ∨ ∃x Y (x) ∼ ∃x (X(x) ∨ Y (x)). 14. ∀x X(x) ∨ ∀x Y (x) → ∀x (X(x) ∨ Y (x)). Рассмотрим, например, формулу 11. Выбрав произвольную модель и в ней произвольную оценку θ (считаем, что она не содержит x), получим оцененную формулу ∀x Xθ ∧ ∀x Y θ ∼ ∼ ∀x (Xθ ∧ Y θ). Истинность левой части означает, что истинны формулы ∀x Xθ и ∀x Y θ. Следовательно, для любой константы a истинны (Xθ)xa и (Y θ)xa , откуда заключаем, что истинна формула (Xθ)xa ∧ (Y θ)xa . Поэтому истинна ∀x (Xθ ∧ Y θ). Наоборот, если формула ∀x (Xθ ∧ Y θ) истинна, то для любой константы a истинна формула (Xθ)xa ∧ (Y θ)xa . Делаем вывод, что для любой a истинна формула (Xθ)xa и для любой a истинна формула (Y θ)xa . Поэтому истинны формулы ∀x Xθ и ∀x Y θ, а значит, и формула ∀x Xθ ∧ ∀x Y θ. Логические законы, связанные добавлением кванторов или изменением их порядка: 15. ∀x X → X. 18. ∀x∀yX ∼ ∀y∀xX. 16. X → ∃x X. 19. ∃x∀yX → ∀y∃xX. 17. ∃x∃yX ∼ ∃y∃xX. Формулы 15 и 16 можно интерпретировать как утверждение, что для функции u(x) имеет место неравенство min u(x) 6 u(x) 6 max u(x). (3.1) ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 3. Алгебра предикатов x y y x И в самом деле, u(x, y) 6 maxx u(x, y). Следовательно, miny u(x, y) 6 miny maxx u(x, y). В результате справа — константа, а слева — функция переменного x, т.е. miny maxx u(x, y) есть верхняя грань функции miny u(x, y). Значит, имеет место неравенство (3.1). Логические законы, связанные с конгруэнтностью (формула X не имеет свободных вхождений переменной y): 20. ∀x X ∼ ∀y Xyx . 21. ∃x X ∼ ∃y Xyx . Эти логические законы указывают на то, что конгруэнтные формулы логически эквивалентны. Впрочем, эквивалентность конгруэнтных формул лучше доказывать непосредственно, опираясь на индуктивное определение конгруэнтности. Иначе придется доказывать, что конгруэнтная формула получается последовательным переименованием, что интуитивно ясно, но требует формальных рассуждений. ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 max min u(x, y) 6 min max u(x, y). ÌÃÒÓ ÌÃÒÓ а формула 19 — отражение неравенства ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ИУ-9, МЛТА, 2009-10 уч.г. Что касается сформулированных логических законов, то можно рассуждать так (на пример квантора всеобщности). Выбираем произвольную модель и в ней произвольную оценку θ. При этом, поскольку ни x, ни y в формулу ∀xX не входят свободно, можно считать, что и в оценку θ эти переменные не входят. Если переменная x не входит в X свободно, то наличие квантора не играет роли: формула Xθ оказывается оцененной. Если же x входит в X свободно, то формула Xθ будет содержать единственный параметр x. Истинность ∀x(Xθ) означает, что для любого объекта a формула (Xθ)xa оказывается истинной. Но если мы предварительно выполним   y подстановку (Xθ)xy ), а затем подстановку , то получим ту же формулу (Xθ)xa ). Она окажется a истинной. Аналогичны рассуждения при ложности формулы ∀x(Xθ). Тем самым доказано, что в выбранной модели формулы ∀xX и ∀yXyx при любой оценке одновременно истинны или ложны. Значит, они эквивалентны, а формула ∀xX ∼ ∀yXyx есть логический закон. ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ 38 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 Речь идет о получении аналога теоремы 1.2. У нас нет самостоятельных пропозициональных переменных. Их роль играют предикатные символы арности нуль. Разумеется, теорема 1.2 остается верной при замене предикатного символа арности нуль какой-либо формулой. Но как быть, если нужно заменить предикатный символ, имеющий параметры? Таким образом, речь идет об обобщении теоремы 1.2 на случай замены в формуле произвольной элементарной подформулы. Механизм замены должен сохранять эквивалентность формул. При замене какого-либо вхождения элементарной подформулы p(t1 , . . . , tn ) (аргументы в этой подформуле — какие-либо термы) некоторой формулой X следует установить соответствие между переменными, входящими в элементарную подформулу, и переменными, входящими в X. Такое соответствие можно организовать, вводя понятие формального предиката. Под формальным предикатом мы будем понимать слово вида x1 x2 . . . xn X. Такое слово означает лишь, что задана какая-то формула X и упорядоченный набор переменных x1 , x2 , . . . , xn — больше ничего. Эти переменные и все их вхождения в X в рамках формального предиката будем считать связанными. Кортеж сортов (π1 , π2 , . . . , πn ) объявленных“ переменных x1 , x2 , . . . , xn ” будем называть типом формального предиката. Чтобы в формуле Y заменить элементарную подформулу p(t1 , . . . , tn ), необходимо построить формальный предикат U = x1 x2 . . . xn X того же типа, что и предикатный символ p, затем в ,...,xn формуле X выполнить подстановку Xtx11,...,t и результат подстановки подставить в формулу Y n взамен подформулы p(t1 , . . . , pn ). Подобный подход будет более понятным, если учесть, что в любой модели формула задает предикат, роль аргументов которого играют переменные формулы. Задавая формальный предикат, мы выбираем некоторую совокупность переменных (записываем их перед формулой) и упорядочиваем. Эти отобранные переменные фиксируются, остальные остаются свободными. При подстановке вместо элементарной формулы мы должны на место объявленных ” аргументов“ предиката подставить аргументы элементарной формулы и в таком виде подставить формулу вместо элементарной. Например, пусть элементарная формула имеет вид p(t1 , t2 , . . . , tn ). Формальный предикат x1 x2 . . . xn X следует в любой модели интерпретировать как предикат pe(x1 , . . . , xn , z1 , . . . , zm ), в котором первые n аргументов по типам соответствуют аргументам предиката p. В результате мы меняем в исходной формуле элементарную подформулу p(t1 , t2 , . . . , tn ) на подформулу pe(t1 , . . . , tn , z1 , . . . , zm ). Отобранные элементы формального предиката играют роль подстановочных мест и заменяются аргументами элементарной подформулы. Оставшиеся переменные формулы X без изменений переходят в изменяемую формулу. ÌÃÒÓ ÔÍ-12 Понятие формального предиката. Замена элементарной формулы формальным предикатом (индуктивное определение). Теорема о замене элементарных подформул. Правило замены эквивалентным. Пример: эквивалентность r(x)∨∀z (¬∀x q(x, z)) и r(x)∨∀z(∃x ¬q(x, z)). Принцип двойственности. Нильпотентность. Эквивалентность двойственных формул. ÔÍ-12 ÔÍ-12 3.6. Замены ÌÃÒÓ ÌÃÒÓ ÔÍ-12 Указанный алгоритм подстановки можно описать с помощью индукции по построению формулы. Пусть задан формальный предикат U = x1 x2 . . . xn X и Y обозначает исходную формулу. Результат Y (p || U ) подстановки в Y формального предиката U типа (π1 , π2 , . . . , πn ) вместо элементарной подформулы p(t1 , . . . , tn ) с предикатным символом p того же типа определим следующим образом. 1. Если Y — атомарная формула q(r1 , . . . , rm ), то при q, отличном  от p полагаемY (p || U ) = x 1 x 2 . . . xn = Y , а если Y = p(t1 , . . . , tn ), то полагаем Y (p || U ) = Xθ, где θ = . t1 t2 . . . tn 2. Если Y = V ∇W , где ∇ — одна из трех двуместных логических связок, то Y (p || U ) = = V (p || U )∇W (p || U ). Если Y = ¬V , то Y (p || U ) = ¬V (p || U ). 3. Если Y = ∇z V , где ∇ — один из кванторов, то возможны два случая. В первом случае, когда U не содержит свободных вхождений z или V не содержит вхождений предикатного символа p, полагаем Y (p || U ) = ∇z V (p || U ). Во втором случае, когда z имеет свободные вхождения в U , а V имеет вхождения p, выбираем новую переменную u (т.е. не встречающуюся ни в Y , ни в U ) и полагаем Y (p || U ) = ∇u (Vuz )(p || U ). Обратим внимание на то, что в соответствии с описанным индуктивным правилом при замене меняются все вхождения данного предикатного символа. Последний пункт регулирует вхождение свободных переменных формального предиката. Снова действует правило: никакое свободное вхождение переменной после преобразования не должно оказаться связанным. Если такое получается, соответствующую кванторную переменную надо изменить. Теорема 3.3. Если X ≡ Y , то и X(p || x1 . . . xk Z) ≡ Y (p || x1 . . . xk Z). Если Y ≡ Z, то и X(p || x1 . . . xk Y ) ≡ X(p || x1 . . . xk Z). J Пусть x1 , x2 , . . . , xn — полный список переменных, входящих в формулы Y и Z. Рассмотрим формулу Γ, полученную заменой подформулы X элементарной формулой p(x1 , x2 , . . . , xn ). Тогда X = Γ(p || x1 . . . xn Y ) и X 0 = Γ(p || x1 . . . xn Z). Согласно теореме эти формулы эквивалентны. I ÌÃÒÓ Следствие 3.1. Если Y ≡ Z, то после замены в формуле X одного из вхождений подформулы Y формулой Z получим формулу X 0 , эквивалентную X. ÔÍ-12 J Первое утверждение сводится к следующему: если U — тавтология, то и U (p || x1 . . . xk Z) — тавтология (достаточно в качестве U взять формулу X ∼ Y ). То, что U — тавтология, означает, что при любой интерпретации и любой оценке формула U истинна. Интерпретация, в частности, обеспечивает конкретное содержание предикатного символа p, а формальный предикат x1 x2 . . . xk Z превращается в некоторый предикат q(x1 , . . . , xk , y1 , . . . , yl ). При замене происходит замена одного предиката другим, при этом появляются свободные переменные y1 , . . . , yl , которые мы можем зафиксировать с помощью оценки. В результате дело фактически сводится к замене предикатной буквы p на предикатную букву q. Такую замену можно интепретировать как изменение интерпретации буквы p. При изменении интерпретации формула остается истинной. Значит, и после замены формула остается истинной. Доказательство второго утверждения аналогично. Замена предикатного символа p одним из формальных предикатов можно интерпретировать как выбор интепретации символа p. Так как формулы Y и Z эквивалентны, то и первая, и вторая замены дают одну и ту же интерпретацию символу p. Следовательно и истинностное значение двух формул будет одинаковым. I ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ 39 ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 3. Алгебра предикатов Пример 3.3. Покажем, что формулы r(x) ∨ ∀z (¬∀x q(x, z)) и r(x) ∨ ∀z(∃x ¬q(x, z)) эквивалентны. Обе формулы можно рассматривать как две подстановки в формулу X = r(x) ∨ ∀z p(z) двух эквивалентных формул V = ¬∀x q(x, z) и W = ∃x ¬q(x, z). Сформируем два формальных предиката zV и zW . В результате получим X(p || zV ) = r(x) ∨ ∀z (¬∀x q(x, z)) и X(p || zW ) = = r(x) ∨ ∀z(∃x ¬q(x, z)). В соответствии с последним логическим законом эти формулы эквивалентны. ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 Утверждение следствия известно как правило замены эквивалентным. ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ИУ-9, МЛТА, 2009-10 уч.г. Отметим, что было бы неверно в качестве шаблона использовать, например, формулу X1 = = r(x) ∨ ∀z p, опуская в заменяемом символе связанную переменную z. В этом случае в соответствии с индуктивным правилом мы получили бы формулы X1 (p || zV ) = r(x) ∨ ∀z1 (¬∀x q(x, z)) и X1 (p || zW ) = r(x) ∨ ∀z1 (∃x ¬q(x, z)), которые тоже эквивалентны, но отличаются от того, что мы хотели бы получить. На формулы алгебры предикатов, не содержащие импликации, распространяется принцип двойственности. Формулу X ∗ , двойственную данной формуле X определим индуктивно: 1) если X — элементарная формула, то X ∗ = X; 2) если X = ¬U , то X ∗ = ¬U ∗ ; 3) если X = U ∧ V , то X ∗ = U ∗ ∨ V ∗ ; 4) если X = U ∨ V , то X ∗ = U ∗ ∧ V ∗ ; 5) если X = ∀xU , то X ∗ = ∃xU ∗ ; 6) если X = ∃xU , то X ∗ = ∀xU ∗ . Непосредственно из определения следует, что преобразование двойственности нильпотентно: X ∗∗ = X. Следующее утверждение связывает преобразование двойственности с отношением эквивалентности. Кроме того, верно следующее утверждение. Назовем внутренним отрицанием X̌ формулы X ее преобразование, при котором каждая элементарная подформула p(t1 , t2 , . . . , tn ) заменяется формальным предикатом x1 x2 . . . xn ¬p(x1 , x2 , . . . , xn ). Теорема 3.4. Формула X ∗ , двойственная формуле X, эквивалентна формуле ¬X̌. X ∗ = U ∗ ∨ V ∗ ≡ ¬Ǔ ∨ ¬V̌ ≡ ¬(Ǔ ∧ V̌ ) = ¬X̌. ÌÃÒÓ J Доказательство проводится индукцией по построению формулы. Для элементарных формул внутреннее отрицание совпадает с обычным отрицанием ¬, так что ¬X̌ = X, но в то же время по определению X ∗ = X. Если X = U ∧ V и уже доказано, что U ∗ ≡ ¬Ǔ , V ∗ ≡ ¬V̌ , то согласно определению двойственной формулы и правилу замены эквивалентным ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ 40 Теорема 3.5. Эквивалентность X ≡ Y равносильна эквивалентности X ∗ ≡ Y ∗ . J Доказательство в силу нильпотентности достаточно провести в одну сторону. При этом достаточно заметить, что если X ≡ Y , то X̌ ≡ Y̌ и ¬X ≡ ¬Y . Поэтому в силу предыдущей теоремы X ∗ ≡ ¬X̌ ≡ ¬Y̌ ≡ Y ∗ . I 3.7. Упрощение формул На основании логических законов можно преобразовывать формулы логико-математического языка, упрощая или добиваясь получения формул определенной структуры. Например, если в формуле отсутствуют кванторы (бескванторная формула), то ее можно привести к ДНФ или КНФ. Такое преобразование всегда можно проводить в рамках языка логики высказываний, рассматривая любую элементарную подформулу как пропозициональную переменную. ÔÍ-12 Приведение бескванторной формулы к ДНФ и КНФ. Предваренная нормальная форма. Теорема о приведении. Пример: X = ∀x ¬∃y p(x, y) → ∀x (q(x) → ¬∃y p(x, y)). Замечание о порядке вынесения кванторов. ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ Аналогичны рассуждения для кванторной приставки ∃x. I ÌÃÒÓ ÔÍ-12 X ∗ = ∃xU ∗ ≡ ∃x¬Ǔ = ¬∀xǓ = ¬X̌. ÔÍ-12 ÔÍ-12 Аналогично утверждение доказывается для дизъюнкции и отрицания. Если X = ∀xU и уже доказано, что U ∗ ≡ ¬Ǔ , то ÌÃÒÓ J Для доказательства нужно исходную формулу X заменить формулой X 0 со свойством чистоты переменных, а затем, применяя логические законы одностороннего пронесения кванторов, вытащить“ все кванторы за пределы формулы. ” Аккуратно доказательство следует проводить методом индукции по построению формулы. В самом деле, утверждение очевидно для элементарных формул (они все бескванторные). Пусть X = V ◦ W , где ◦ — одна из двуместных логических связок, и формулы V и W имеют предваренные формы: V ≡ ∇v1 . . . ∇vm V 0 , W ≡ ∇w1 . . . ∇wk W 0 , где V 0 и W 0 бескванторные. Полагая, что X обладает свойством чистоты переменных, заключаем, что все переменные vi и wj различны, V 0 не содержит переменных wj , а W 0 — переменных vi . Тогда с помощью законов одностороннего пронесения кванторов получаем X ≡ (∇v1 . . . ∇vm V 0 ) ◦ (∇w1 . . . ∇wk W 0 ) ≡ ∇v1 . . . ∇vm ∇w1 . . . ∇wk (V 0 ◦ W 0 ). Здесь мы воспользовались также правилом замены подформулы эквивалентной. Если формула X имеет вид X = ¬V , рассуждения аналогичны. Наконец, в случае X = ∇z V достаточно заменить V предваренной формой, чтобы получить предваренную форму X. I X 0 = ∀x ¬∃y p(x, y) → ∀u (q(u) → ¬∃v p(u, v)). Применяя одностороннее пронесение кванторов, последовательно получаем: ÔÍ-12 Замечание. Вынесение кванторов может проходить в разном порядке. Следовательно, и в предваренной форме кванторные приставки могут идти в разном порядке: предваренная форма определена неоднозначно. В матрице предваренной формы все связки идут в том же порядке и без изменений. Она получается из исходной формулы удалением всех кванторных приставок. ÌÃÒÓ ∀x ¬∃y p(x, y) → ∀u (q(u) → ¬∃v p(u, v)) ≡ ≡ ∀x∀y ¬p(x, y) → ∀u (q(u) → ∀v ¬p(u, v)) ≡ ≡ ∀x∀y ¬p(x, y) → ∀u∀v (q(u) → ¬p(u, v)) ≡  ≡ ∃x∃y ¬p(x, y) → ∀u∀v (q(u) → ¬p(u, v)) ≡ ≡ ∃x∃y∀u∀v ¬p(x, y) → (q(u) → ¬p(u, v)) . ÔÍ-12 Пример 3.4. Рассмотрим формулу X = ∀x ¬∃y p(x, y) → ∀x (q(x) → ¬∃y p(x, y)). Она не обладает свойством чистоты. Используя переименование с помощью двух новых переменных u и v, получим конгруэнтную (а потому эквивалентную) формулу ÌÃÒÓ ÔÍ-12 ÌÃÒÓ Теорема 3.7 (о предваренной форме). Любая форма имеет предваренную форму. ÔÍ-12 ÔÍ-12 Разумеется, подобные преобразования возможны и для формул, содержащих кванторы. Наличие кванторов лишь усложняет сам процесс, но не отменяет его. Кванторы не мешают преобразованиям, если они в формуле собраны вместе. Формулу вида ∇x1 ∇x2 . . . ∇xn X, где X — бескванторная формула, называют предваренной или пренексной. В частности, любая бескванторная формула является предваренной. Предваренной (пренексной) формой данной формулы X называют любую предваренную формулу Y , логически эквивалентную X. Часть формулы Y без кванторных приставок называют матрицей предваренной формы. ÌÃÒÓ ÌÃÒÓ Теорема 3.6. Всякая бескванторная формула эквивалентна некоторой ДНФ и некоторой КНФ. ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 41 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 3. Алгебра предикатов ÌÃÒÓ ÌÃÒÓ 14 14 16 21 3. Алгебра предикатов 3.1. Предикаты и кванторы . . . . . . . . . . . 3.2. Логико-математические языки . . . . . . . 3.3. Переименования и подстановки . . . . . . 3.4. Семантика логико-математического языка 3.5. Логические законы . . . . . . . . . . . . . 3.6. Замены . . . . . . . . . . . . . . . . . . . . 3.7. Упрощение формул . . . . . . . . . . . . . . . . . . . . 26 26 27 30 33 35 38 40 4. Исчисление предикатов 4.1. Построение теории P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2. Правила естественного вывода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3. Глобальные свойства теории P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 42 43 45 5. Генценовские формальные системы 5.1. Исчисление GV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2. Исчисление GP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 53 57 6. Примеры формальных теорий 6.1. Теория групп . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2. Формальная арифметика . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 60 63 7. Метод резолюций 7.1. Скулемовские функции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2. Метод резолюций для исчисления высказываний . . . . . . . . . . . . . . . . . . . 7.3. Метод резолюций для исчисления предикатов . . . . . . . . . . . . . . . . . . . . . 69 69 71 74 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ÌÃÒÓ 2. Исчисление высказываний 2.1. Основные положения теории N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Правила естественного вывода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3. Глобальные свойства теории N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ÔÍ-12 . . . . 1 1 3 5 9 ÔÍ-12 ÔÍ-12 1. Алгебра высказываний 1.1. Введение . . . . . . . . . . . . . . . . . 1.2. Алгебра логики . . . . . . . . . . . . . 1.3. Тавтологии и эквивалентность формул 1.4. Функции алгебры логики . . . . . . . . ÔÍ-12 42 ÌÃÒÓ ÔÍ-12 ОГЛАВЛЕНИЕ ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ Московский государственный технический университет имени Н.Э. Баумана ÌÃÒÓ Факультет «Фундаментальные науки» Кафедра «Математическое моделирование» ÌÃÒÓ À.Í. Êàíàòíèêîâ È ÒÅÎÐÈß ÀËÃÎÐÈÒÌΠÊîíñïåêò ëåêöèé ÔÍ-12 Москва 2009 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 Äëÿ ñòóäåíòîâ êàôåäðû ÈÓ9 ÌÃÒÓ ÌÃÒÓ ÌÀÒÅÌÀÒÈ×ÅÑÊÀß ËÎÃÈÊÀ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ 4. ИСЧИСЛЕНИЕ ПРЕДИКАТОВ 7) Y → X ∨ Y ; 2) X → Y → (X → (Y → Z) → (X → Z)); 8) X → Z → (Y → Z → (X ∨ Y → Z)); 3) X ∧ Y → X; 9) X → Y → (¬Y → ¬X); 4) X ∧ Y → Y ; 10) ¬¬X → X; 5) (X → Y ) → ((X → Z) → (X → Y ∧ Z)); 11) X → ¬¬X. 6) X → X ∨ Y ; Еще четыре схемы связаны с кванторами (ниже Xtx — правильная подстановка терма t вместо переменной x, Y не содержит свободных вхождений переменной x): ∀x X → Xtx ; ∀x (Y → X(x)) → (Y → ∀x X(x)); Xtx → ∃x X; ∀x (X(x) → Y ) → (∃x X(x) → Y ). В дополнение к правилу заключения (modus ponens) добавляется правило обобщения: ÔÍ-12 42 ÔÍ-12 X, X → Y ; Y X . 2∗ ∀x X Как и в исчислении высказываний, выводом называем последовательность формул языка, в которой каждая формула либо аксиома, либо получена по одному из правил вывода из предшествующих формул. Также вводим понятие вывода из гипотез Γ (частного вывода), в котором 1∗ ÌÃÒÓ 12) 13) 14) 15) ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ 1) X → (Y → X); ÔÍ-12 ÔÍ-12 Исчисление предикатов строится как расширение исчисления высказываний. Основная цель та же: формализовать доказательство различного рода утверждений. Исчисление предикатов — составная часть любой формальной теории, отвечающая за логическую часть теории. Мы будем строить теорию P, языком Ω которой является произвольный логико-математический язык. Фактически мы строим целое семейство формальных теорий. Однако все эти теории имеют единую логическую составляющую, отличаясь лишь способом формирования предметных выражений — термов. Любую из построенных формальных теорий можно трансформировать так, что предметная составляющая будет простейшей: один сорт переменных при отсутствии констант и функциональных символов. Упрощается и интерпретация простейшего языка. Достаточно задать единую предметную область для всех предметных переменных и указать отображение, которое n-арному предикатному символу ставит в соответствие булеву функцию от n переменных, а в случае 0-арного предикатного символа — символ 0 или 1. Зададим аксиомы исчисления предикатов в виде некоторого набора схем аксиом. Первые одиннадцать схем повторяют схемы исчисления высказываний: ÌÃÒÓ ÌÃÒÓ Язык алгебры предикатов как расширение языка алгебры высказываний. Аксиомы исчисления предикатов: схемы аксиом исчисления высказываний плюс 4 аксиомы с кванторами: 11) ∀x X → Xtx ; 12) ∀x (Y → X(x)) → (Y → ∀x X(x)); 13) Xtx → ∃x X; 14) ∀x (X(x) → Y ) → ; 2∗ ∀xXX . Вывод и вывод из гипотез. Струк(∃x X(x) → Y ). Правила вывода: 1∗ X, X→Y Y турное ограничение. Секвенции. ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ 4.1. Построение теории P ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ 4.2. Правила естественного вывода ÔÍ-12 Теорема о дедукции. Правила естественного вывода исчисления высказываний. Новые правила: X Γ`X p1) Γ`∀y p2) Γ`∀x X x (введение общности); Γ`X x (удаление общности); y p3) Γ`Xtx Γ`∃x X t (введение существования); p4) Γ,X`Y Γ,∃y Xyx `Y (удаление существования). ÔÍ-12 ÔÍ-12 ÌÃÒÓ Пример 4.1. Пусть переменная y не имеет свободных вхождений в X. Тогда ` ∀x X → → ∀y (Xyx ). Действительно: 1) ∀x X → Xyx (схема аксиом 12); 2) ∀y (∀x X → Xyx ) (по правилу обобщения из 1); 3) ∀y (∀x X → Xyx ) → (∀x X → ∀y Xyx ) (схема аксиом 13); 4) ∀x X → ∀y Xyx (по правилу заключения из 2 и 3); ÌÃÒÓ в последовательности формул могут находиться формулы из списка Γ. Однако для вывода из гипотез введем дополнительное структурное требование: если формула ∀x X получена по правилу обобщения, то во всех гипотезах, используемых для вывода этой формулы, переменная x не должна иметь свободных вхождений. Указанное структурное требование не касается аксиом. Поэтому в выводе без гипотез его можно не учитывать. Смысл сформулированного структурного требования становится понятным, если учесть, что вывод должен сохранять истинность формул. Правило заключения сохраняет истинность формул при фиксированной модели и фиксированной оценке, а именно: если θ — оценка формулы X → Y в данной модели M , то из истинности Xθ и (X → Y )θ следует истинность Y θ. Правило обобщения в отсутствие структурного требования нарушает фиксированность оценки при выводе. Впрочем, структурное требование касается лишь частного вывода. Мы могли бы это ограничение не учитывать, но тогда нам придется считаться с ним при сшивке“ частных выводов ” в окончательный вывод без гипотез. Поясним сказанное. Выводимость из X формулы ∀x X следует увязать с выводимостью формулы X → ∀x X, т.е. с тем, что эта формула есть тавтология. Но если переменная x входит в X свободно, то при некоторой интерпретации для некоторого объекта a формула Xax будет ложной, а для некоторого объекта b формула Xbx — истинной. В этом случае ∀x X в соответствии с интерпретацией квантора всеобщности будет ложной формулой при любой оценке, а это приведет к ложности X →∀x X. Однако эта формула будет тавтологией, если X не имеет свободных вхождений x. Мы сохраняем запись Γ ` X, означающую, что формула X выводима из списка гипотез Γ. Эту запись называем секвенцией. ÌÃÒÓ ÌÃÒÓ 43 ÔÍ-12 ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 4. ИСЧИСЛЕНИЕ ПРЕДИКАТОВ Теорема 4.1. Если Γ, X ` Y , то Γ ` X → Y . J Доказательство теоремы, как и в исчислении высказываний, проводится индукцией по построению формулы. Рассуждения в основном повторяют доказательство теоремы из исчисления высказываний. Дополнительно надо лишь рассмотреть случай, когда конечная формула вывода получена по правилу обобщения. Итак, пусть в выводе X1 , X2 , . . . , Xi = X, . . . , Xj , . . . , Xn = Y конечная формула Y имеет вид ∀xXj . Этот вывод, как свою часть, содержит и вывод формулы Xj . Если в выводе формулы Xj формула X не используется, то можно считать, что ее нет и в выводе X1 , X2 , . . . , Xn = Y . Добавляя к этому выводу аксиому ∀x Xj → (X → ∀x Xj ) (схема аксиом 1), а затем на ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 Как и в случае исчисления высказываний, на практике вывод строится с помощью правил естественного вывода. Сохраняются структурные правила естественного вывода, так как они не связаны с сутью самого вывода. Сохраняется теорема о дедукции. Однако в доказательство этой теоремы необходимо внести некоторые коррективы. ÌÃÒÓ ÌÃÒÓ Пример: ∃x X → ¬∀x(¬X). ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 44 основании правила заключения X → ∀x Xj , получим вывод формулы X → Y ≡ X → ∀x Xj из гипотез Γ. Пусть формула X используется в выводе формулы Xj . Тогда, согласно структурному требованию, формула X не имеет свободных вхождений переменной x. Согласно индуктивному предположению из вывода Γ, X ` Xj вытекает вывод Γ ` X → Xj , откуда по правилу обобщения (ни X, ни гипотезы, использованные в выводе Xj ) не содержат свободных вхождений x) получаем Γ ` ∀x (X → Xj ). Присоединив аксиому ∀x (X → Xj ) → (X → ∀x Xj ), получаем вывод формулы X → ∀x Xj , т.е. формулы X → Y . I ÔÍ-12 Теорема о дедукции позволяет без изменений перенести из исчисления высказываний в исчисление предикатов все восемь логических правил естественного вывода, а вслед за ними и дополнительные правила естественного вывода: доказательства этих правил не используют правила обобщения. Кроме того, добавляются следующие четыре правила с кванторами: ÌÃÒÓ Γ ` Xtx (введение существования); Γ ` ∃x X Γ, X ` Y p4) (удаление существования). Γ, ∃y Xyx ` Y Γ`X (введение общности); Γ ` ∀y Xyx Γ ` ∀x X (удаление общности); p2) Γ ` Xtx p3) p1) В правилах p1 и p4 переменная x не имеет свободных вхождений в формулы списка Γ и формулу Y . Кроме того, если y отлично от x, то y не входит свободно в X. В правилах p2 и p3 подстановка xt должна быть свободной для формулы X. Докажем четыре новых правила естественного вывода. При выводе формулы p1 учтем, что формулы списка Γ не содержат свободных вхождений переменной x: ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 4. ИСЧИСЛЕНИЕ ПРЕДИКАТОВ Γ ` ∀xX → ∀yXyx Γ ` ∀xX Γ`X ` ∀y(∀xX → Xyx ) → (∀xX → ∀yXyx ) Γ ` ∀y(∀xX → Xyx ) ` ∀y(∀xX → Xyx ) ÌÃÒÓ ÌÃÒÓ Γ ` ∀yXyx ÔÍ-12 ÔÍ-12 ` ∀xX → Xyx Формула p2 непосредственно следует из аксиомы 12: Γ ` Xtx ` ∀xX → Xtx Γ ` ∀xX Аналогично выводится и формула p3: ` Xtx → ∃xX Γ, ∃yXyx ` Y Γ, ∃yXyx ` ∃xX Γ, ∃yXyx ` ∃xX → Y ∃yXyx ` ∃xX Γ ` ∃xX → Y Γ ` ∀x(X → Y ) ` ∀x(X → Y ) → (∃xX → Y ) Γ`X →Y Γ, X ` Y ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 Наиболее длинный вывод получается для правила p4: ÌÃÒÓ Γ ` Xtx ÌÃÒÓ ÌÃÒÓ Γ ` ∃xX ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 45 В этом выводе осталась нераскрытой одна ветка (в рамке). Соответствующий вывод строится на той же аксиоме: ∃yXyx ` ∃xX ∃yXyx ` ∃yXyx → ∃xX ∃yXyx ` ∃yXyx ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 4. ИСЧИСЛЕНИЕ ПРЕДИКАТОВ ` ∀y(Xyx → ∃xX) ` ∀y(Xyx → ∃xX) → (∃yXyx → ∃xX) ` Xyx → ∃xX ÔÍ-12 Лемма 4.1. Пусть Γ — список формул X1 , X2 , . . . , Xm и Γ ` Y . Если для данной модели M и данной оценки θ формул X1 , X2 , . . . , Xm , Y в M истинны X1 θ, X2 θ, . . . , Xm θ, то и Y θ в M истинна. ÔÍ-12 Остановимся на вопросах непротиворечивости, полноты и разрешимости теории P . Ответ на эти вопросы тесно связан с ответом на вопрос: каково множество формул заданного языка, выводимых в исчислении предикатов? Разумеется, это множество зависит от выбора языка. Однако эта зависимость не связана с логической частью языка. В принципе можно ограничиться вариантом исчисления предикатов, который базируется на односортном языке без функциональных символов. В этом варианте каждая элементарная формула является простой: каждый аргумент есть предметная переменная. Действительно, зафиксировав некоторый порядок в счетном множестве переменных, мы можем каждую элементарную формулу интерпретировать как простую, вводя взамен каждого терма новую переменную. В результате язык модифицируется так, что в нем не будет функциональных символов. Наличие сортов переменных ограничивает их использование при формировании элементарных формул. Снятие ограничений приводит к тому, что, например, вместе с p(x, y) появляется формула p(y, x), т.е. происходит расширение множества элементарных формул. Допуская такое расширение, приходим к односортному языку, в котором термы — это переменные одного сорта. Далее мы покажем, что множество выводимых формул совпадает с множеством логических законов в данном языке. Начнем с важного свойства, присущего выводу из гипотез. Оказывается, что вывод из гипотез сохраняет истинность формул при фиксированной модели и фиксированной оценке. ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ О множестве формул, выводимых в исчислении предикатов. Лемма об истинности при фиксированной оценке. Следствия: о том, что любая выводимая формула общезначима; о непротиворечивости исчисления предикатов. Понятие формальной аксиоматической теории. Непротиворечивость, полнота формальной аксиоматической теории. ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 4.3. Глобальные свойства теории P Последняя секвенция вытекает из правила p2. ÔÍ-12 Пример 4.2. Используя правила естественного вывода, докажем выводимость в теории P формулы ∃x X → ¬∀x¬X, т.е. построим вывод секвенции ` ∃x X → ¬∀x¬X. Имеем цепочку преобразований снизу вверх“: ” ` ∃x X → ¬∀x¬X ⇐ ∃x X ` ¬∀x¬X ⇐ X ` ¬∀x¬X ⇐ ∀x¬X ` ¬X ⇐ ∀x¬X ` ∀x¬X. ÌÃÒÓ Использование правил естественного вывода такое же, как и в случае исчисления высказываний. ÌÃÒÓ ÌÃÒÓ ` ∃yXyx → ∃xX ÌÃÒÓ Следствие 4.1. Если Γ ` X и все формулы в Γ являются логическими законами, то и X есть логический закон. В частности, если ` X, то X — логический закон. J Как и в случае исчисления высказываний, последнее следствие показывает, что исчисление предикатов является непротиворечивым. Действительно, если ` X, то по следствию 4.1 формула X общезначима. Предположение ` ¬X приводит к выводу, что и ¬X общезначима. Но нет ни одной формулы, которая общезначима вместе со своим отрицанием. Это непосредственно вытекает из определения: если X общезначима, то, выбрав произвольную модель M , а в ней оценку θ, получим истинную формулу Xθ. Но тогда (¬X)θ ≡ ¬Xθ ложна, а формула ¬X не является тождественно истинной в M , т.е. ¬X не является общезначимой. I ÌÃÒÓ ÔÍ-12 Далее мы докажем, что любая общезначимая формула выводима в исчислении предикатов. Однако воспроизвести доказательство из исчисления высказываний не удастся. Появились новые понятия интерпретации и модели, и нам необходимо понятие, напоминающее вывод из гипотез, но связанное с понятием интерпретации. Уточним смысл термина аксиоматической формальной теории, понимая под этим пару T = (Ω, A) из некоторого логико-математического языка Ω, снбженного набором 15 схем аксиом и 2 правил вывода исчисления предикатов, и некоторого множества A замкнутых формул в языке Ω. Формулы из множества A будем называть нелогическими аксиомами теории. Выводом в теории T = (Ω, A) будем называть вывод в исчислении предикатов из гипотез Γ, где Γ ⊂ A — конечный список нелогических аксиом. Таким образом, нелогические аксиомы используются в дополнение к стандартному набору логических аксиом (т.е. аксиом исчисления предикатов). Конечная формула X всякого вывода теории называется выводимой в ней, и этот факт мы будем обозначать T ` X. Выводимые формулы еще называют теоремами ÔÍ-12 Следствие 4.2. Теория P непротиворечива. ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ J Доказательство проводится индукцией по длине вывода. Утверждение очевидно, если вывод содержит одну формулу, которая в этом случае есть либо аксиома (являющаяся логическим законом), либо гипотеза Xj . Но тогда Y θ и Xj θ — одно и то же. Предположим утверждение доказано для всех выводов длины менее k. Рассмотрим произвольный вывод Z1 , Z2 , . . . , Zk из гипотез Γ длины k с конечной формулой Y = Zk . Формула Y есть либо логический закон, либо гипотеза, либо получена по правилу заключения, либо по правилу всеобщности. В первых двух случаях рассуждения те же, что и при k = 1. В третьем случае в выводе есть формулы Zj и Zl = Zj → Y . Если в какой-либо модели M при оценке θ истинны формулы X1 θ, Xm θ, то в силу предположения индукции формулы Zj θ и (Zj → Y )θ истинны в M . В этом случае правило заключения гарантирует истинность в M формулы Y θ, т.е. утверждение теоремы доказано в случае, когда формула Y получена по правилу заключения. Пусть Y получена по правилу обобщения, т.е. Y = ∀xZj для некоторой формулы Zj , j < k. Предположим, что в выводе формулы Zj использованы все гипотезы X1 , . . . , Xm (неиспользуемые можно просто не рассматривать). В силу структурного требования каждая из этих формул не имеет свободных вхождений переменной x. Обозначив через x1 = x, x2 , . . . , xr все переменные, имеющие вхождения в вывод формулы Zj , рассмотрим любую совокупность оценок θa , отличающихся только значением a, которое ставится в соответствие переменной  x. Такие оценки можно записать в виде θa = xa θ , где θ — общая часть всех этих оценок, относящаяся к переменным x2 , . . . , xr . Применение любой из оценок θa к формулам X1 , . . . , Xm дает один и тот же результат X1 θ, . . . , Xm θ, поскольку переменная x в эти формулы не входит. Пусть все формулы X1 θ, . . . , Xm θ в выбранной модели M истинны. Тогда для любого значения a истинны формулы X1 θa , . . . , Xm θa . Согласно индуктивному предположению для любого значения a истинна формула Zj θa . Следовательно, для данной оценки θ в соответствии с интерпретацией квантора всеобщности истинна формула (∀xZj )θ или, что то же самое Y θ. Тем самым утверждение теоремы доказано для формулы Y в случае, когда она получена по правилу обобщения. I ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 46 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 4. ИСЧИСЛЕНИЕ ПРЕДИКАТОВ ÌÃÒÓ X = ∀x2 ∀x3 . . . ∀xn (∃x1 p(x1 , x2 , . . . , xn ) → ∀x1 p(x1 , x2 , . . . , xn )). Γ, ¬X ` X ∨ Y Γ, ¬X, X ` Y Γ, ¬X, Y ` Y Γ`X ∨Y Теорема 4.2. Любая непротиворечивая формальная аксиоматическая теория имеет счетную модель. ÔÍ-12 J Для построения соответствующей интерпретации нужно выбрать произвольное счетное множество (неважно какое), конкретизировать функциональные символы и константы (опять-таки неважно как), и придать смысл предикатным символам. Последнее является ключевым: необходимо так конкретизировать предикатные символы, что все нелогические аксиомы станут истинными. Ясно, что сосредоточиться надо на символах, входящих в нелогические аксиомы. Разобраться можно, проведя синтаксический анализ нелогических аксиом. Сделать это можно так. В логико-математический язык Ω формальной теории введем дополнительное счетное множество констант, получив расширенный язык Ψ. Очевидно, что рассматриваемая формальная теория T будет формальной теорией и с языком Ψ, причем непротиворечивой (обозначим ее Tψ ). В этом языке рассмотрим множество D всех замкнутых термов (чтобы такие существовали в нужном количестве, и нужно расширение языка). Это будет носителем нашей интерпретации. ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 Γ, ¬X, X ∨ Y ` Y ÌÃÒÓ ÌÃÒÓ Это правило обратимо, т.е. . Действительно, воспользовавшись правилом сечения, поΓ, ¬X ` Y лучаем: Γ, ¬X ` Y ÔÍ-12 Γ`X ∨Y Γ, ¬X ` Y (см. пример 2.3). Γ`X ∨Y ÌÃÒÓ Нетрудно убедиться в том что эта формула истинна в одних интерпретациях и ложна в других. Присоединим ее в качестве нелогической аксиомы. Тогда получим непротиворечивую теорию T0 . Действительно, если T0 ` Y и T0 ` ¬Y , то X ` Y и X ` ¬Y (X — единственная нелогическая аксиома), откуда в силу правила введения отрицания заключаем, что ` ¬X. Но это неверно, поскольку ¬X не является общезначимой. В то же время и сама формула X по тем же соображениям не выводима в исчислении предикатов. Однако исчисление предикатов полно в широком смысле. Доказательство этого факта, известного как теорема Геделя о полноте, опирается на следующую теорему, также дока- ÌÃÒÓ ÌÃÒÓ этой теории. Построенное нами исчисление предикатов можно трактовать как формальную аксиоматическую теорию с пустым множеством нелогических аксиом. Любая интерпретация языка Ω будет также называться интерпретацией формальной аксиоматической теории T . Модель теории T — это такая интерпретация теории, при которой каждая нелогическая аксиома является истинной (аксиомы замкнуты и не требуют оценки). Для исчисления предикатов любая интерпретация является моделью, поскольку имеет только логические аксиомы, истинные в любой интерпретации. Если формальная теория имеет модель, то она называется интерпретируемой. Отметим, что если среди нелогических аксиом есть противоречия (т.е. формулы, ложные в любой интерпретации), то такая теория не интерпретируема. Теория непротиворечива, если не существует такой замкнутой формулы X, что T ` X и T ` ¬X. Формальную теорию называют полной в узком смысле, если присоединение любой невыводимой замкнутой формулы к списку нелогических аксиом приводит к противоречивой теории. Полнота в широком смысле для исчисления предикатов — выводимость в этой теории любой общезначимой формулы. Покажем, что исчисление предикатов не является полным в узком смысле. Полагаем, что язык этой теории имеет хотя бы один предикатный символ p положительной арности (иначе это исчисление высказываний). Рассмотрим формулу занную Геделем. Предварительно вспомним дополнительное правило ÔÍ-12 ÌÃÒÓ 47 ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 4. ИСЧИСЛЕНИЕ ПРЕДИКАТОВ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ Любопытна следующая интерпретация функциональных символов: функциональному символу f ставим в соответствие отображение, которое термы t1 , t2 , . . . , tn преобразует в терм f (t1 , t2 , . . . , tn ). Надо построить интерпретацию предикатных символов. Сформируем два множества замкнутых формул L и R, выдерживая следующее условие разделенности: для любого списка X1 , X2 , . . . , Xn из L и любого списка Y1 , Y2 , . . . , Ym из R формула X1 ∧X2 ∧. . .∧Xn →Y1 ∨Y2 ∨. . .∨Ym не выводима в исчислении P с языком Ψ. Для этого выберем выводимую в исчислении предикатов замкнутую формулу S (например S = C ∨ ¬C) и сформируем множество L0 из всех нелогических аксиом теории с дополнительной формулой S и множество R0 , содержащее единственную формулу ¬S. В силу непротиворечивости теории множества L0 и R0 разделены. Далее строим последовательность пар разделенных множеств Ln , Rn , в которой каждая очередная пара есть расширение предыдущей: Ln ⊃ Ln−1 , Rn ⊃ Rn−1 . Затем объединяем две последовательности S∞ S∞ множеств: L = n=1 Ln , R = n=1 Rn . Очевидно, что если все пары Ln , Rn разделены, то и множества L, R разделены. Опишем процедуру расширения пары множеств Ln , Rn . При этом отметим, что невыводимость в исчислении P формулы X1 ∧ X2 ∧ . . . ∧ Xn → Y1 ∨ Y2 ∨ . . . ∨ Ym равносильна тому, что не существует вывода X1 , X2 , . . . , Xn ` Y1 ∨ Y2 ∨ . . . ∨ Ym . Дизъюнкцию всех формул списка ∆ будем обозначать V∆ . Выбираем произвольную формулу Z ∈ Ln \ Ln−1 . Пусть Z = U ∧ W . Для произвольной пары списков Γ ∈ Ln и ∆ ∈ Rn секвенция Γ∧Z ` V∆ невыводима. Это значит, что для любых списков Γ и ∆ нет выводимости Γ, U, W ` V∆ , и мы можем включить формулы U и W в множество Ln+1 , не нарушая условия разделенности. Действительно, в противном случае существуют списки Γ1 , ∆1 , для которых, например, секвенция Γ1 , U ` V∆1 явялется выводимой. но тогда Γ1 , U, W ` V∆1 и Γ1 , U ∧ W ` V∆1 , что противоречит разделенности множеств Ln и Rn . Пусть Z = U ∨ W . Невыводимость Γ, U ∨ W ` V∆ означает, что мы можем включить одну из формул U или W в множество Ln+1 , не нарушая условия разделенности. Действительно, если для пары списков Γ1 , ∆1 есть выводимость Γ1 , U ` V∆1 а для пары списков Γ2 , ∆2 — выводимость Γ2 , W ` V∆2 , то сразу получаем выводимости Γ1 , Γ2 , U ` V∆1 ∨ V∆2 и Γ1 , Γ2 , W ` V∆1 ∨ V∆2 (по правилам введения гипотез и введения дизъюнкции), откуда Γ1 , Γ2 , U ∨ W ` V∆1 ∨ V∆2 , что противоречит разделенности Ln и Rn . Пусть Z = U → W . Тогда мы, не нарушая разделенности, можем включить либо U в Rn+1 , либо W в Ln+1 . Если бы это было не так, то существовали бы выводимости Γ1 ` V∆1 ∨ U и Γ2 , W ` V∆2 . Значит, есть выводимость Γ1 , ¬V∆1 ` U , и мы заключаем, что существует выводимость Γ1 , Γ2 , ¬V∆1 , U → W ` V∆2 , из которой заключаем о существовании выводимости Γ1 , Γ2 , U → W ` V∆1 ∨ V∆2 , а это противоречит разделенности Ln и Rn . Пусть Z = ¬U . Тогда мы можем включить U в множество Rn+1 , поскольку из существования выводимости Γ ` U ∨ V∆ следует существование выводимости Γ, ¬U ` V∆ , что противречит разделенности Ln и Rn . Пусть Z = ∀xU . В множество Ln+1 включаем все формулы Ucx , где c пробегает множество всех констант языка. В противном случае для некоторой константы c существует выводимость Γ, Ucx ` V∆ , откуда с учетом ∀xU ` Ucx в силу правила сечения получаем выводимость γ, ∀xU ` V∆ , противоречащую разделенности Ln и Rn . Пусть X = ∃xU . Тогда есть такая константа c, для которой добавление Ucx в Ln не нарушает условия разделенности с Rn . Впрочем, отметим, что если для любой константы c имеет место Γc , Ucx ` ∆c , то в силу счетности множества констант сделать заключение о существовании выводимости Γ, ∃xU ` ∆ мы не сможем, поскольку объединение всех участвующих гипотез может быть счетным. Выход из возникшей проблемы такой. Выберем константу c, не входящую ни в одну из формул множеств Ln и Rn . Тогда существование выводимости Γ, Ucx ` V∆ с некоторыми списками Γ и ∆ равносильно существованию выводимости Γ, Uyx ` ∆ с произвольной переменной y, не входящей в формулы списка Γ (мы, не нарушая требований по всему выводу можем заменить c на y). Отсюда заключаем о существовании выводимости Γ, ∃xU ` ∆, что противоречит разделенности Ln и Rn . Чтобы эта схема работала, надо гарантировать, что ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 48 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 4. ИСЧИСЛЕНИЕ ПРЕДИКАТОВ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 Замечание. Изложенное доказательство верно по сути, но, вообще-то не может быть признано строгим по некоторым соображениям. Дело в том, что в доказательстве идет манипуляция бесконечными множествами, причем на содержательном уровне. Такого рода рассуждения в современной математической логике не считаются достаточно надежными. Однако следует учесть, что все множества, рассматриваемые в доказательстве, являются счетными. Поэтому построение множеств L и R, обладающих свойством замкнутости (в определенном смысле) ÔÍ-12 ÌÃÒÓ на любом шаге будет существовать свободная константа c. Для этого надо скорректировать действия при анализе формулы вида Z = ∀xU . При обработке такой формулы надо включать в Ln+1 не все формулы Ucx , а хотя бы одну с нерассмотренной еще константой c, но обеспечить бесконечное количество обработок этой формулы: если в других случаях обработанная формула больше не рассматривается, то эту надо периодически просматривать, генерируя очередные формулы вида Ucx . Сделать это можно, поскольку и количество формул в рассматриваемом языке, и количество констант счетно. Рассмотрим теперь формулу Z ∈ Rn . Если Z = U ∧W , то в множество Rn+1 можно включить одну из формул U или W , не нарушая условия разделенности. Действительно, если существуют выводимости Γ1 ` V∆1 ∨U и Γ2 ` V∆2 ∨W , то существуют выводимости Γ2 , ¬V∆1 ` U и Γ2 , ¬V∆2 ` W , откуда с помощью введения гипотез и введения конъюнкции получаем Γ1 , Γ2 , ¬V∆1 , ¬V∆2 ` U ∧ W и Γ1 , Γ2 ` V∆1 ∨ V∆2 ∨ (U ∧ W ), что противоречит разделенности Ln и Rn . Если Z = U ∨W , то в Rn+1 включаем и U , и W . Например, если есть выводимость Γ ` V∆ ∨U , то сразу Γ ` V∆ ∨ U ∨ W , а порядок дизъюнкций справа не играет роли. Пусть Z = U → W . Тогда включаем U в Ln+1 , а W в Rn+1 . Действительно, если существует выводимость Γ, U ` V∆ , то Γ, U ` V∆ ∨ W , откуда Γ, ¬V∆ , U ` W и в силу теоремы о дедукции Γ, ¬V∆ ` U → W . Следовательно, Γ, ¬V∆ ` V∆ ∨ (U → W ), что противоречит разделенности Ln и R n . Если Z = ¬U , формулу U включаем в Ln+1 : из выводимости Γ, U ` V∆ следует выводимость Γ ` V∆ ∨ ¬U , которая противоречит разделенности Ln и Rn . Пусть Z = ∀xU . Выбрав константу c, не входящую ни в одну из формул множеств Ln и Rn , заключаем, что нет выводимости Γ ` V∆ ∨ Ucx . Действительно, из существования такой выводимости с некоторыми списками Γ и ∆ следует выводимость Γ ` V∆ ∨ Uyx , где переменная y не входит в формулы списков Γ и ∆, а из последней — выводимость Γ ` V∆ ∨ ∀xU , противоречащая условию разделенности Ln и Rn . Для выбранной константы в список Rn+1 включаем формулу Ucx . Если Z = ∃xU , то в Rn+1 включаем формулы Ucx для всех констант c, обеспечив их посте” пенное поступление“, как в случае формулы Z = ∀xU из множества Ln . Построив последовательности разделенных множеств {Ln } и {Rn }, переходим к их объединениям L и R. Эти объединения тоже разделены: если бы существовала выводимость Γ ` V∆ с некоторыми списками Γ и ∆, то в силу конечности списков можно было бы утверждать, что Γ ⊂ Lk и ∆ ⊂ Rk для некоторого номера k и что множества Lk и Rk не являются разделенными. Элементарным формулам множества L присвоим истинностное значение 1, элементарным формулам множества R — истинностное значение 0, остальным — неважно. Тогда можно утверждать, что все формулы множества L будут иметь истинностное значение 1, а все формулы множества R — истинностное значение 0. Доказательство этого проводится индукцией по построению формул. Действительно, для элементарных формул это вытекает из заданной интепретации. Пусть Z ∈ L имеет, например, вид Z = U → W . Тогда в соответствии с построением множеств L и R имеем либо U ∈ R, либо W ∈ L. В первом случае, согласно индуктивному предположению, формула U ложна, а значит, формула U → W истинна. Во втором случае формула W истинна, поэтому U → W истинна. Если Z = U → W ∈ R, то по построению U ∈ L, W ∈ R. Значит, U истинна, а W ложна, откуда заключаем, что Z ложна. Аналогично рассматриваются остальные случаи. Поскольку множество L содержит все нелогические аксиомы, заключаем, что они в построенной интерпретации истинны, а интерпретация является моделью. I ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 49 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 4. ИСЧИСЛЕНИЕ ПРЕДИКАТОВ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 50 можно провести так, что на каждом шаге мы будем иметь дело с конечными множествами. Требуется аккуратная работа с нумерациями счетных множеств, но эти детали затушевывают основную идею доказательства. Доказанная теорема позволяет сделать вывод о полноте исчисления предикатов в широком смысле. ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 4. ИСЧИСЛЕНИЕ ПРЕДИКАТОВ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 Пример 4.3. Рассмотрим формулу ∃x(p→q(x))→(p→∀xq(x)). Попробуем построить контрпример, т.е. интерпретацию, в которой она ложна, или убедиться в ее истинности. Редукцию формулы удобно построить в виде дерева, в котором преобразуется формула вида Γ > ∆, где Γ и ∆ — конечные списки формул. Слева — формулы множества L, справа — формулы множества ÌÃÒÓ Исчисление предикатов не является разрешимой теорией. Это становится понятно, если учесть, что средств исчисления предикатов достаточно, чтобы представить содержание практически любой математической теории. Было бы странно предполагать, что есть некий формальный алгоритм, по которому можно любую теорему проверить, верна она или нет. Это, разумеется, расходится с нашим представлением о бесконечном разнообразии окружающего мира. Однако строгое доказательство этого факта выходит за рамки курса: требуется строгое математическое описание понятия алгоритм“ и развитая теория об алгоритмах, чтобы можно ” было строго показать неразрешимость исчисленния предикатов. Но здесь важно одно обстоятельство. Доказанная теорема устанавливает эквивалентность понятий выводимая“ и истинная“. Значит, метод, которым разворачивалась невыводимая ” ” формула может быть использован (с некоторыми модификациями) для анализа формулы на истинность. Поясним сказанное. Ставим задачу убедиться в общезначимости некоей формулы X или опровергнуть это. Последнее означает построение интерпретации, в которой эта формула ложна. Чтобы работать только с замкнутыми формулами, можем эту формулу замкнуть кванторами всеобщности. Что значит ложность X? Допустим X = X1 ∨ X2 . Тогда ложность X равносильна ложности и X1 , и X2 . Допустим X = X1 → X2 . Тогда ложность X равносильна истинности X1 и ложности X2 . Эти рассуждения показывают, что исходная формула разворачивается в два множества L и R более простых формул, причем все формулы в L должны быть истинны, а все формулы в L2 ложны. Разворачивание сопровождается уменьшением логической сложности формул, и в конце концов дело дойдет до элементарных формул. Однако при этом возникает несколько вариантов (например, истинность U ∨ W обеспечивается истинностью U или истинностью W ; какой из этих вариантов возможен, на этапе анализа формулы не известно; надо иметь в виду все варианты) Если при этом множества L и R будут пересекаться, то мы приходим к невозможности обеспечить главное требование: истинность формул из L и ложность формул из R. Это означает, что интерпретаций, в которых исходная формула истинна, нет. Если же пересечений нет, то можно так устроить интерпретацию предикатных символов, что основное требование будет выполняться. ÔÍ-12 J Пусть общезначимая формула A не выводима в теории P . Мы можем считать, что эта формула замкнута, добавляя к ней в случае необходимости кванторные приставки. Замкнутая формула ¬A, не являясь общезначимой, тоже не выводима в теории P . Рассмотрим формальную теорию T , которая получается из P добавлением нелогической гипотезы ¬A. Эта теория непротиворечива, так как иначе в ней выводилась бы любая формула, в том числе и A. Другими словами, в исчислении предикатов имела бы место выводимость ¬A ` A. Но это возможно только в случае, когда A — выводимая формула. Но если T — непротиворечивая теория, то она имеет модель, т.е. такую реализацию, в которой формула ¬A истинна. В этой же реализации формула A ложна. Следовательно, она не является общезначимой. Полученное противоречие доказывает, что предположение о невыводимости A неверно. I ÌÃÒÓ ÌÃÒÓ Теорема 4.3. В исчислении предикатов выводима любая тавтология. ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ 51 R. Получится следующее: > ∃x(p → q(x)) → (p → ∀xq(x)) ∃x(p → q(x)) > p → ∀xq(x) ∃x(p → q(x)), p > ∀xq(x) p → q(a0 ), p > ∀xq(x) p → q(a0 ), p > q(a1 ) p > p, q(a1 ) q(a0 ), p > q(a1 ) Разобранный пример можно истолковать как алгоритм проверки формулы на истинность. Это верно, но этот алгоритм не всегда приводит к ответу за конечное число шагов. ÔÍ-12 ÔÍ-12 Пример 4.4. Рассмотрим формулу ¬∀x∃yp(x, y). Для нее дерево разбора имеет следующий вид: > ¬∀x∃yp(x, y) ÌÃÒÓ Мы видим, что в левой ветке формула p встречается и слева, и справа, и в этом случае обеспечить истинность формул левее > и ложность правее нельзя. В то же время правая ветка обеспечивает нужную интерпретацию: предикатный символ p нулевой арности полагаем равным 1, а для q полагаем q(a0 ) = 1, q(a1 ) = 0. Таким образом, если носитель интерпретации содержит два элемента, а предикатные символы имеют заданный смысл, формула будет ложной. Впрочем, если носитель интерпретации имеет всего лишь один элемент (а почему бы и нет?), то нужное условие не удается обеспечить и в правой ветви. Что это значит? В любой момент в левом и правом списках формул есть формулы эквивалентные. Если две такие формулы истинны, то дизъюнкция всех правых формул истинна, т.е. истинна исходная формула. Если же обе формулы ложны, то конъюнкция левых формул ложна, откуда следует истинность исходной формулы. Вывод: анализируемая формула истинна при любой интерпретации. ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 4. ИСЧИСЛЕНИЕ ПРЕДИКАТОВ ∀x∃yp(x, y) > ∃yp(c0 , y), ∀x∃yp(x, y) > p(c0 , c1 ), ∀x∃yp(x, y) > ...................... При разборке квантора всеобщности мы выбираем первую не реализованную для этого квантора константу, а при разборке квантора существования — первую свободную константу. Для построения контрпримера есть два варианта. Можно в очередной момент вместо свободной константы использовать прежнюю (считать, что новых констант уже нет), например, считать, что c2 = c1 . Тогда истинность формул p(c0 , c1 ) и p(c1 , c1 ) в интерпретации с двумя элементами c1 и c2 будет означать и истинность формулы ∀x∃yp(x, y). Мы получаем контрпример, т.е. интерпретацию, в которой анализируемая формула ¬∀x∃yp(x, y) является ложной. Возможен и другой вариант — счетный набор констант. Мы получаем набор формул p(ck , ck+1 ), которые объявляем истинными. Считая, что других констант нет, делаем заключение об истинности формулы ∀x∃yp(x, y) и ложности формулы ¬∀x∃yp(x, y). Мы снова получили контрпример, но уже со счетным носителем интерпретации. ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 p(c0 , c1 ), p(c1 , c2 ), ∀x∃yp(x, y) > ÌÃÒÓ ÌÃÒÓ p(c0 , c1 ), ∃yp(c1 , y), ∀x∃yp(x, y) > ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 52 Однако, если бы проверяемая формула была тавтологией, мы должны были бы рассмотреть оба этих варианта, за конечное число шагов установить истинность формулы нам бы не удалось. ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 Процесс расшифровки“, предпринятый в разобранном примере очень похож на построение ” вывода в рамках правил естественного вывода, но с одним уточнением. В секвенциях исчисления предикатов справа могла быть только одна формула, в то время как в разобранном примере и слева, и справа находятся списки формул. Приведенное построение, а также теория N , в которой дело свелось к манипуляциям с секвенциями, приводит к идее построить совсем другое исчисление, основанное на понятии секвенции. Такое исчисление называют исчислением генценовского типа в противовес исчислениям N и P , которые относят к исчислениям гильбертовского типа. ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 4. ИСЧИСЛЕНИЕ ПРЕДИКАТОВ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÌÃÒÓ 14 14 16 21 3. Алгебра предикатов 3.1. Предикаты и кванторы . . . . . . . . . . . 3.2. Логико-математические языки . . . . . . . 3.3. Переименования и подстановки . . . . . . 3.4. Семантика логико-математического языка 3.5. Логические законы . . . . . . . . . . . . . 3.6. Замены . . . . . . . . . . . . . . . . . . . . 3.7. Упрощение формул . . . . . . . . . . . . . . . . . . . . 26 26 27 30 33 35 38 40 4. Исчисление предикатов 4.1. Построение теории P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2. Правила естественного вывода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3. Глобальные свойства теории P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 43 44 46 5. Генценовские формальные системы 5.1. Исчисление GV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2. Исчисление GP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 54 58 6. Примеры формальных теорий 6.1. Теория групп . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2. Формальная арифметика . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 61 63 7. Метод резолюций 7.1. Скулемовские функции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2. Метод резолюций для исчисления высказываний . . . . . . . . . . . . . . . . . . . 7.3. Метод резолюций для исчисления предикатов . . . . . . . . . . . . . . . . . . . . . 68 68 70 73 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ÌÃÒÓ 2. Исчисление высказываний 2.1. Основные положения теории N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Правила естественного вывода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3. Глобальные свойства теории N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ÔÍ-12 . . . . 1 1 3 5 9 ÔÍ-12 ÔÍ-12 1. Алгебра высказываний 1.1. Введение . . . . . . . . . . . . . . . . . 1.2. Алгебра логики . . . . . . . . . . . . . 1.3. Тавтологии и эквивалентность формул 1.4. Функции алгебры логики . . . . . . . . ÔÍ-12 53 ÌÃÒÓ ÔÍ-12 ОГЛАВЛЕНИЕ ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ Московский государственный технический университет имени Н.Э. Баумана ÌÃÒÓ Факультет «Фундаментальные науки» Кафедра «Математическое моделирование» ÌÃÒÓ À.Í. Êàíàòíèêîâ È ÒÅÎÐÈß ÀËÃÎÐÈÒÌΠÊîíñïåêò ëåêöèé ÔÍ-12 Москва 2009 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 Äëÿ ñòóäåíòîâ êàôåäðû ÈÓ9 ÌÃÒÓ ÌÃÒÓ ÌÀÒÅÌÀÒÈ×ÅÑÊÀß ËÎÃÈÊÀ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 1. Утончение У >: Γ >∆ X, Γ > ∆ >У: Γ >∆ Γ > ∆, X 2. Сокращение С >: Γ, X, X, Λ > ∆ Γ, X, Λ > ∆ >С: Γ > ∆, X, X, Λ Γ > ∆, X, Λ 3. Перестановка П >: Γ, X, Y, Λ > ∆ Γ, Y, X, Λ > ∆ >П: Γ > ∆, X, Y, Λ Γ > ∆, Y, X, Λ ÔÍ-12 ÔÍ-12 и большое количество правил вывода (всего 15). Их разделим на структурные и логические. Итак структурные правила: ∆ > Λ, X; X, Γ > Θ ∆, Γ > Λ, Θ → >: > →: X, Γ > ∆, Y Γ > ∆, X → Y X, Γ > ∆ Y, Γ > ∆ , X ∧ Y, Γ > ∆ X ∧ Y, Γ > ∆ > ∧: Γ > ∆, X; Γ > ∆, Y Γ > ∆, X ∧ Y 3. Дизъюнкция ∨ >: X, Γ > ∆; Y, Γ > ∆ X ∨ Y, Γ > ∆ > ∨: Γ > ∆, X Γ > ∆, Y , Γ > ∆, X ∨ Y Γ > ∆, X ∨ Y 4. Отрицание ¬ >: Γ > ∆, X ¬X, Γ > ∆ > ¬: X, Γ > ∆ Γ > ∆, ¬X ÔÍ-12 54 ÔÍ-12 2. Конъюнкция ∧ >: ∆ > Λ, X; Y, Γ > Θ X → Y, ∆, Γ > Λ, Θ ÌÃÒÓ Логических правил восемь — по две на каждую логическую связку. Похоже на логические правила в теории N , но нет правил удаления, а есть только введение, но либо в антецеденте, либо в сукцеденте: 1. Импликация ÌÃÒÓ X >X ÃÒÓ ÌÃÒÓ Для языка исчисления высказываний построим некоторое расширение, добавив символы “,” и “ >”: 1) если X и Y — формулы, то X >, > Y и X > Y — секвенции (первые две назовем открытыми соответственно справа и слева); 2) если S — закрытая слева секвенция, X — формула, то X, S — секвенция; если S — закрытая справа секвенция, X — формула, то S, X — секвенция. Как следует из этого формального определения, секвенция — это два списка формул, соединенных специальным знаком. При этом один из списков (но не оба вместе) может быть пустым. Левый список называется антецедентом, а правый — сукцедентом секвенции. Далее через X, Y , . . . будем обозначать отдельные формулы, через Γ, ∆ и т.д. — списки формул. Исчисление GV имеет только одну схему аксиом ÔÍ-12 ÔÍ-12 5.1. Исчисление GV ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÌÃÒÓ 5. ГЕНЦЕНОВСКИЕ ФОРМАЛЬНЫЕ СИСТЕМЫ 3. Сечение ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 55 Единственная схема аксиом и правила вывода позволяют получать выводимые секвенции так же, как и в теории N или P . Как и ранее, выводом в исчислении GV называем последовательность секвенций, в которой каждая секвенция либо аксиома, либо получена на основании одного из правил вывода. Конечная секвенция всякого вывода называется выводимой в исчислении GV . Можно также ввести понятие частного вывода. Частный вывод строится исходя из одной или нескольких исходных секвенций, называемых гипотезами, и завершается одной результирующей секвенцией. Результат частного вывода можно записать в том же виде, что и правила вывода, и в дальнейшем использовать в качестве дополнительного правила вывода. Условие выводимости секвенции S будем записывать в виде ` S, а вывод S из гипотез S1 , S2 , . . . , Sn — в виде S1 , S2 , . . . , Sn ` S. Пример 5.1. Построим вывод секвенции > ¬¬X → X. Имеем: > ¬¬X → X ⇐ ¬¬X > X ⇐ > X, ¬X ⇐ X > X. Пример 5.2. Построим вывод секвенции > X ∨ ¬X. Имеем: > X ∨ ¬X ⇐ > X ∨ ¬X, X ∨ ¬X ⇐ > X ∨ ¬X, ¬X ⇐ X > X ∨ ¬X ⇐ X > X. Пример 5.3. Построим вывод секвенции > ¬X → (X → Y ): > ¬X → (X → Y ) ⇐ ¬X > X → Y ⇐ X, ¬X > Y ⇐ ⇐ ¬X, X > Y ⇐ X > Y, X ⇐ X > X, Y ⇐ X > X. Γ > ∆, X , Γ > ∆, ¬¬X Γ > ∆, X, Y . Γ > ∆, X ∨ Y Действительно, ¬¬X, Γ > ∆ ⇐ Γ > ∆, ¬X ⇐ X, Γ > ∆ ÔÍ-12 X, Γ > ∆ , ¬¬X, Γ > ∆ ÌÃÒÓ Структурные правила сокращения и перестановки означают, что в списках формул антецедента и сукцедента порядок не важен и формулы могут повторяться, т.е. эти списки есть просто конечные множества формул, которые могут записываться в любом порядке. Мы будем этим пользоваться для сокращения деревьев вывода: соответствующие формальности всегда можно восстановить. Из рассмотренных примеров можно выделить некоторые простые правила, которые также можно использовать для сокращения вывода: ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 5. Генценовские формальные системы (этот прием использован в примере 5.1) и Γ > ∆, X ∨ Y ⇐ Γ > ∆, X ∨ Y, X ∨ Y ⇐ Γ > ∆, X ∨ Y, Y ⇐ Γ > ∆, X, Y X > ¬¬X ¬¬X, Γ > ∆ Γ > ∆, X, Y Γ > ∆, X ∨ Y X ∨ Y > X, Y ¬X, X > X > X, Y Y > X, Y X >X X >X Y >Y ÌÃÒÓ X, Γ > ∆ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 (этот прием использован в примере 5.2). Эти правила обратимы, что можно установить, используя правило сечения: ÌÃÒÓ ÌÃÒÓ Γ > ∆, ¬¬X ⇐ ¬X, Γ > ∆ ⇐ Γ > ∆, X ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ИУ-9, МЛТА, 2009-10 уч.г. Установленные дополнительные правила показывают, что формулы можно свободно переносить из одной части секвенции в другую, навешивая знак отрицания или, наоборот, убирая его. Кроме того, из них следует, что выводимость секвенции Γ > Y1 , Y2 , . . . , Ym эквивалентна выводимости секвенции Γ > Y1 ∨ Y2 ∨ . . . ∨ Ym , а выводимость секвенции X1 , X2 , . . . , Xk > ∆ эквивалентна выводимости X1 ∧ X2 ∧ . . . ∧ Xk > ∆. Последнее свойство аналогично следующему свойству теории N : существование частного вывода X1 , X2 , . . . , Xn ` Y равносильно выводимости формулы X1 ∧ X2 ∧ . . . ∧ Xn → Y . Это вытекает из двух правил теории N : X1 , X2 , Γ ` Y X1 ∧ X2 , Γ ` Y и X1 ∧ X2 , Γ ` Y . X1 , X2 , Γ ` Y Первое из этих правил — правило удаления конъюнкции, а второе может быть получено из правила введения конъюнкции с помощью сечения: ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ 56 Теорема 5.1. Если в теории N существует вывод Γ ` Y , то в теории GV существует вывод ` (Γ > Y ). Γ >Y Γ >X →Y X → Y, Γ > Y Y >Y Γ > Y, X Γ >X Правило удаления конъюнкции сводится к введению конъюнкции в антецеденте: Γ, X1 ∧ X2 > Y ⇐ Γ, X1 ∧ X2 , X1 ∧ X2 > Y ⇐ Γ, X1 , X1 ∧ X2 > Y ⇐ Γ, X1 , X2 > Y. ÔÍ-12 Y, Γ > Y ÌÃÒÓ J Доказательство строится на том, что каждое правило естественного вывода в теории N можно интерпретировать в рамках правил вывода теории GV , а также на том, что любой вывод в теории N можно получить в рамках техники естественного вывода. Последнее вытекает из доказательства полноты исчисления высказываний: теоремы 2.5 и 2.6 доказаны с помощью техники естественного вывода. Остановимся на вопросе интерпретации. Закон тождества вытекает из аксиомы теории GV с учетом правила утончения. Правила добавления, сокращения и перестановки гипотез сводятся к правилам утончения сокращения и перестановки для антецедента в исчислении GV . Наконец, правило сечения теории N есть частный случай правила сечения теории GV . Таким образом, все структурные правила естественного вывода теории N интерпретируются в теории GV . Правила введения импликации (теорема о дедукции), введения конъюнкции и введения дизъюнкции есть частные случаи введения соответствующего символа в сукцеденте (при ∆ = ∅). Правило удаления дизъюнкции также непосредственно сводится к введению дизъюнкции в антецеденте. Рассмотрим остальные правила естественного вывода. Правило удаления импликации сводится к введению импликации в антеценденте: ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ Мы видим, что вывод в технике естественного вывода в N и вывод в исчислении GV очень похожи. Это приводит к вопросу: как соотносятся утверждения Γ ` Y из теории N и ` (Γ > Y ) из теории GV ? ÃÒÓ ÔÍ-12 X1 , X2 ` X2 ÔÍ-12 ÌÃÒÓ X1 , X2 ` X1 Γ, X1 ∧ X2 ` Y ÌÃÒÓ ÔÍ-12 X1 , X2 ` X1 ∧ X2 ÔÍ-12 ÔÍ-12 Γ, X1 , X2 ` Y ÌÃÒÓ ÌÃÒÓ Γ > ¬X X, Γ > ÌÃÒÓ Y, ¬Y > Γ, X > Y Γ, X > ¬Y Y >Y Правило удаления отрицания это одно из правил удаления двойного отрицания, установленных ранее. Поскольку все правила естественного вывода интерпретируемы в исчислении GV , любой вывод Γ ` Y в технике естественного вывода можно трансформировать в вывод секвенции Γ > Y в исчислении GV . I Теорема 5.2. Если в теории GV существует вывод ` (Γ > Y ), то в теории N существует вывод Γ ` Y . ÌÃÒÓ J Можно предложить два подхода к доказательству теоремы. Первый основан на интерпретации правил вывода теории GV в рамках правил естественного вывода теории N , как в предшествующей теореме. Более короткий второй подход, основанный на следующих соображениях. Можно показать непосредственной проверкой, что если ` (Γ > ∆), где Γ = X1 , X2 , . . . , Xn , ∆ = Y1 , Y2 , . . . , Ym , то формула X1 ∧ X2 ∧ . . . ∧ Xn → Y1 ∨ Y2 ∨ . . . ∨ Ym является тавтологией. На основании этого сразу делаем вывод, что если ` (Γ > Y ), то формула X1 ∧ X2 ∧ . . . ∧ Xn → Y выводима в теории N , т.е. существует частный вывод Γ ` Y . Последний переход базируется на применении правил удаления конъюнкции и удаления импликации. I ÔÍ-12 ÔÍ-12 X, Γ > Y ∧ ¬Y ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ 57 Рассмотрим правило введения отрицания: Y ∧ ¬Y > Еще в исчислении N было отмечено, что правило сечение является излишним и может быть заменено комбинацией правил введения и удаления импликации: ÔÍ-12 ÔÍ-12 ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 5. Генценовские формальные системы Γ, ∆ ` X Γ, ∆ ` Y Γ, ∆ ` Y → X ∆`Y Γ, ∆, Y ` X ÌÃÒÓ ÔÍ-12 ÔÍ-12 Γ > ∆, X, Y . Γ > ∆, X ∨ Y ÔÍ-12 и ÌÃÒÓ X, Y, Γ > ∆ X ∧ Y, Γ > ∆ ÔÍ-12 В исчислении GV нет правила modus ponens и таким способом избавиться от правила сечения не удастся. Однако генценовскому исчислению можно придать важное свойство, из которого следует, что любой вывод в этом исчислении можно строить без использования правила сечения. Генценовские правила (структурные не в счет) устроены таким образом, что при построении дерева вывода мы из невыводимой (иными словами, ложной) секвенции получаем невыводимую секвенцию в одной из ветвей. Однако обратное утверждение, во всяком случае для исходных правил, неверно: наличие невыводимой секвенции внизу дерева еще не означает, что и корень дерева есть невыводимая секвенция. Причиной тому правила введения конъюнкции в антецеденте и дизъюнкции в сукцеденте. Но их можно усилить, заменив правилами ÌÃÒÓ ÌÃÒÓ Γ, Y ` X ÌÃÒÓ 5.2. Исчисление GP Генценовское исчисление предикатов строится как расширение генценовского исчисления высказываний. Мы выбираем любой логико-математический язык и с помощью пары списков формул Γ и ∆ строим формулы вида Γ > ∆ называя их секвенциями. Для этих секвенций оставляем в силе единственную схему аксиом X > X и все пятнадцать правил вывода. Кроме того, добавляются еще четыре правила вывода, связанные с кванторами: ∀ >: Γ > ∆, X Γ > ∆, ∀yXyx > ∀: Xtx , Γ > ∆ ∀xX, Γ > ∆ 6. Введение ∃ Γ > ∆, Xtx ∃ >: Γ > ∆, ∃xX > ∃: X, Γ > ∆ ∃yXyx , Γ > ∆ Пример 5.4. Построим в GP вывод секвенции > ¬∃xY (x) → ∀x¬Y (x). Вывод строим в виде дерева > ¬∃xY (x) → ∀x¬Y (x) ¬∃xY (x) > ∀x¬Y (x) > ∃xY (x), ¬Y (x) Y (x) > ∃xY (x) Y (x) > Y (x) ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 > ∃xY (x), ∀x¬Y (x) ÌÃÒÓ Здесь те же ограничения, что и в исчислении P : подстановка x → t свободна для X; В формулах введения ∀ слева и ∃ справа переменная x не имеет свободных вхождений в формулы списков Γ и ∆ и если y 6= x, то y не входит свободно в X. ÔÍ-12 5. Введение ∀ ÃÒÓ ÔÍ-12 Теорема 5.3 (теорема Генцена об устранении сечения). Если в исчислении GV секвенция Γ > ∆ выводима, то существует вывод этой секвенции, в котором не используется правило сечения. ÌÃÒÓ ÌÃÒÓ После этого все восемь логических правил исчисления GV окажутся сбаланисрованными: выводимость секвенций в числителе правила будет равносильна выводимости секвенции в знаменателе (речь пока не идет о том, как строится такой вывод). С введением этих усиленных правил вывод превращается в простую разборку формул антецедента и сукцедента. Если, например, в антецеденте стоит формула X = U → W , X = U ∧ W , X = U ∨ W или X = ¬U , то применением соответствующего правила в антецеденте формула X заменяется подформулами U и W . Повторяя этот процесс, мы в результате придем к дереву, у которого в листьях имеются лишь элементарные формулы, т.е. пропозициональные переменные. Секвенция Γ > ∆, у которой все формулы элементарные является истинной в том и только в том случае, когда списки Γ и ∆ имеют общую переменную. Выводимость исходной секвенции в свете вышесказанного означает выводимость всех таких элементарных секвенций, т.е. во всех элементарных секвенциях есть одинаковые переменные и слева, и справа. Но такие секвенции — простейшее следствие соответствующей аксиомы, получаемое с помощью правила утончения. Описанный вывод не использует, как видно правила сечения — только три первые пары структурных правил. Итак, нами, по существу доказан следующий факт. ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ИУ-9, МЛТА, 2009-10 уч.г. ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ 58 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 59 ÔÍ-12 Пример 5.5. Построим в GP вывод секвенции > ∀x∀y(X(x) ∧ Y (y)) → Yxy : > ∀x∀y(X(x) ∧ Y (y)) → Yxy ∀x∀y(X(x) ∧ Y (y)) > Yxy ∀x∀y(X(x) ∧ Y (y)) > ∀yY (y) ∀yY (y) > Yxy ∀x∀y(X(x) ∧ Y (y)) > Y (y) Yxy > Yxy ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 5. Генценовские формальные системы ∀y(X(x) ∧ Y (y)) > Y (y) X(x) ∧ Y (y) > Y (y) В этом выводе использовано правило сечения. Однако вспомним исчисление GV , в котором правило сечения можно не использовать. Покажем, как можно построить вывод той же секвенции без правила сечения. Первый шаг, как и в предыдущем выводе (введение импликации в сукцеденте), а затем последовательно разбираем формулы (использована чистая“ перемен” ная z): > ∀x∀y(X(x) ∧ Y (y)) → Yxy ÔÍ-12 ÔÍ-12 Y (y) > Y (y) Остановимся на связи между теориями P и GP . Естественно рассчитывать, что установленная связь между двумя исчислениями высказываний в каком-то виде сохранится и для исчисления предикатов. Теорема 5.4. Пусть Γ — список формул, а X — формула в логико-математическом языке. Тогда если Γ ` X в исчислении P , то ` (Γ > X) в исчислении GP . В частности, если ` X в исчислении P , то ` ( > X) в исчислении GP . Γ > ∀xX ∀xX > Xtx Xtx > Xtx ÔÍ-12 J Это утверждение доказывается так же, как и аналогичное утверждение для исчислений высказываний. Более того, высказывательное“ утверждение — составная часть предикатного. ” Нам необходимо дать интерпретацию правил естественного вывода в рамках правил вывода генценовского исчисления. Для правил исчисления высказываний такая интерпретация уже дана. Остается разобраться с четырьмя дополнительными правилами, связанными с кванторами. Три из этих правил — очевидные следствия трех правил вывода генценовской формальной сиΓ ` ∀xX стемы. Остановимся на последнем правиле . Для него строим дерево вывода на основе Γ ` Xtx правила сечения: Γ > Xtx ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 Yxy > Yxy Как видим, что действует в основном тот же принцип, что и в исчислении высказываний, но несколько усложненный сменой переменных при снятии кванторов. Здесь использовано свойство (Xzx )zx = X(x) (обратимость правильной подстановки переменной вместо переменной). ÌÃÒÓ ÌÃÒÓ Xzx ∧ Yxy > Yxy ÔÍ-12 ÔÍ-12 ∀y(Xzx ∧ Y (y)) > Yxy ÌÃÒÓ ÌÃÒÓ ∀x∀y(X(x) ∧ Y (y)) > Yxy ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ИУ-9, МЛТА, 2009-10 уч.г. Учитывая, что все правила естественного вывода могут быть реализованы в рамках правил вывода исчисления GP , делаем заключение о верности утверждения теоремы. I Теорема 5.5. Пусть Γ — список формул, а X — формула в логико-математическом языке. Тогда если ` (Γ > X) в исчислении GP , то Γ ` X в исчислении P . В частности, если ` ( > X) в исчислении GP , то ` X в исчислении P . 1 Но здесь есть один изъян: надо еще доказать, что выводимость любой тавтологии можно обосновать средствами правил естественного вывода. ÔÍ-12 ÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 J Доказательство можно построить на тех же принципах, что и доказательство аналогичной теоремы1 5.2. Можно показать, что если в исчислении GP выводима секвенция Γ > ∆, где Γ = X1 , X2 , . . . , Xn , ∆ = Y1 , Y2 , . . . , Ym , то формула X1 ∧ X2 ∧ . . . ∧ Xn → Y1 ∧ Y2 ∧ . . . ∧ Ym является тавтологией. В частности, при m = 1 из выводимости в GP секвенции Γ > Y следует, что X1 ∧ X2 ∧ . . . ∧ Xn → Y есть тавтология и, значит, выводима в P . Но тогда имеет место выводимость X1 ∧ X2 ∧ . . . ∧ Xn ` Y , откуда получаем выводимость Γ ` Y . I ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ 60 ÌÃÒÓ ÌÃÒÓ 15 15 17 22 3. Алгебра предикатов 3.1. Предикаты и кванторы . . . . . . . . . . . 3.2. Логико-математические языки . . . . . . . 3.3. Переименования и подстановки . . . . . . 3.4. Семантика логико-математического языка 3.5. Логические законы . . . . . . . . . . . . . 3.6. Замены . . . . . . . . . . . . . . . . . . . . 3.7. Упрощение формул . . . . . . . . . . . . . . . . . . . . 27 27 28 31 34 36 39 41 4. Исчисление предикатов 4.1. Построение теории P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2. Правила естественного вывода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3. Глобальные свойства теории P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 43 44 46 5. Генценовские формальные системы 5.1. Исчисление GV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2. Исчисление GP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 54 58 6. Примеры формальных теорий 6.1. Теория групп . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2. Формальная арифметика . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 61 64 7. Метод резолюций 7.1. Скулемовские функции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2. Метод резолюций для исчисления высказываний . . . . . . . . . . . . . . . . . . . 7.3. Метод резолюций для исчисления предикатов . . . . . . . . . . . . . . . . . . . . . 70 70 72 75 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ÌÃÒÓ 2. Исчисление высказываний 2.1. Основные положения теории N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Правила естественного вывода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3. Глобальные свойства теории N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ÔÍ-12 . . . . 2 2 4 6 10 ÔÍ-12 ÔÍ-12 1. Алгебра высказываний 1.1. Введение . . . . . . . . . . . . . . . . . 1.2. Алгебра логики . . . . . . . . . . . . . 1.3. Тавтологии и эквивалентность формул 1.4. Функции алгебры логики . . . . . . . . ÔÍ-12 61 ÌÃÒÓ ÔÍ-12 ОГЛАВЛЕНИЕ ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ Московский государственный технический университет имени Н.Э. Баумана ÌÃÒÓ Факультет «Фундаментальные науки» Кафедра «Математическое моделирование» ÌÃÒÓ À.Í. Êàíàòíèêîâ È ÒÅÎÐÈß ÀËÃÎÐÈÒÌΠÊîíñïåêò ëåêöèé ÔÍ-12 Москва 2009 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 Äëÿ ñòóäåíòîâ êàôåäðû ÈÓ9 ÌÃÒÓ ÌÃÒÓ ÌÀÒÅÌÀÒÈ×ÅÑÊÀß ËÎÃÈÊÀ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 6. ПРИМЕРЫ ФОРМАЛЬНЫХ ТЕОРИЙ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 61 ÌÃÒÓ Подбор составляющих любой формальной теории — творческий процесс, не дающий однозначного результата. В основе, конечно, лежат содержательные аксиомы соответствующей дисциплины. В теории групп встречаются объекты одного типа. Значит, можно использовать один сорт переменных. Для обозначения операции группы нужен один функциональный символ арности 2. Но есть еще две вторичные операции, точнее очевидная константа и унарная операция вычисления обратного элемента. Для записей условий нужен хотя бы один предикатный символ и наиболее уместным является символ равенства. Это бинарный символ, но чтобы бинарный предикатный символ мог расцениваться именно как знак равенства, нужны некоторые требования (аксиомы). Учитывая вышесказанное опишем формальную теорию групп G. Рассмотрим односортный логико-математический язык с одной константой, которую мы обозначим через e, двумя функциональными символами m(x, y) и i(x) и одним бинарным предикатным символом p(x, y). Правила вывода — стандартные для исчисления предикатов. Запишем нелогические аксиомы: 1) p(x, y) → (p(x, z) → p(y, z)); 2) p(x, y) → p(m(x, z), m(y, z)); 3) p(x, y) → p(m(z, x), m(z, y)); 4) p(m(m(x, y), z), m(x, m(y, z))); 5) p(m(x, e), x); 6) p(m(x, i(x)), e). Напомним, что нелогические аксиомы любой формальной теории должны быть замкнутыми формулами. Поэтому здесь неявно предполагается, что аксиомы теории групп замкнуты кванторами весобщности по всем свободным переменным. Запись нелогических аксиом прямо следует описанию логико-математического языка, но неудобна для восприятия человеком. Введем альтернативные обозначенияЖ x ∗ y вместо m(x, y), x−1 вместо i(x), 1 вместо e и x = y вместо p(x, y). Тогда перечисленные аксиомы будут выглядеть следующим образом: 1◦ (x = y) → ((x = z) → (y = z)); 2◦ (x = y) → (x ∗ z = y ∗ z); 3◦ (x = y) → (z ∗ x = z ∗ y); 4◦ (x ∗ y) ∗ z = x ∗ (y ∗ z); 5◦ x ∗ 1 = x; 6◦ x ∗ x−1 = 1. Из рассмотренных аксиом (в любой записи) первая характеризует предикат, вторая и третья связывают предикат с основной операцией, а последние три фиксируют свойства операций группы. Вообще говоря, бинарный предикат определяет на носителе интерпретации отношение, и если мы хотим рассматривать предикат как равенство, указанное отношение должно быть отношением эквивалентности, т.е. должны быть истинными утверждения о рефлексивности, симметричности и транзитивности. В аксиоме 1 можно усмотреть рефлексивность, но не хватает двух других свойств. ÔÍ-12 ÔÍ-12 6.1. Теория групп ÌÃÒÓ ÌÃÒÓ Рассмотрим построение формальных теорий, описывающих некоторые конкретные математические дисциплины. ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ИУ-9, МЛТА, 2009-10 уч.г. Не следует ожидать, что выбором некоторых формул в качестве аксиом можно гарантировать, что рассматриваемый предикат будет именно равенством, т.е. истинным при совпадении объектов, обозначаемых двумя термами. Для теории групп такие попытки даже вредны. Дело в том, что термин равны“ следует понимать как неразличимы“, т.е. это могут быть разные, ” ” вообще говоря, объекты, но подпадающие под одно понятие. В математике формирование понятий связано с отношением эквивалентности. Так и здесь: отношение x = y на самом деле — это отношение эквивалентности. Отметим, что в G сохраняются все правила естественного вывода, а доказательство теорем представляет собой частный вывод, в котором роль гипотез играют нелогические аксиомы. Для сокращения вывода сами нелогические аксиомы удобно заменить некоторыми правилами вывода, налогичными правилам естественного вывода. Так, аксиомам 2 и 3 соответствуют правила Γ`X=Y Γ`X=Y , , (6.1) Γ`X ∗Z =Y ∗Z Γ`Z ∗X =Z ∗Y а аксиомы 4–6 трансформируются в схемы выводимых формул: ` X ∗ 1 = X, ` X ∗ X −1 = 1. (6.2) Например, первое из правил (6.1) устанавливается следующим образом: Γ`X ∗Z =Y ∗Z Γ`X=Y Γ`X =Y →X ∗Z =Y ∗Z ÔÍ-12 ` (X ∗ Y ) ∗ Z = X ∗ (Y ∗ Z), ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ 62 ` ∀y∀z(X = y → X ∗ z = y ∗ z) ` ∀x∀y∀z(x = y → x ∗ z = y ∗ z) Обращаем внимание на переход от переменной (например x) к произвольной формуле (в данном случае X) через снятие квантора с подстановкой. Аналогично устанавливаются секвенции (6.2). приведем вывод второй из них: ` X ∗ 1 = X ⇐ ∀x(x ∗ 1 = x). Аксиома 1 позволяет установить правила ` X = X, Γ`X=Y , Γ`Y =X Γ ` X = Y ;Γ ` Y = Z , Γ`X=Z `X=X ` X ∗ 1 = X → (X ∗ 1 = X → X = X) `X ∗1=X ÔÍ-12 `X ∗1=X ` ∀z(X ∗ 1 = X → (X ∗ 1 = z → X = z)) ` ∀y∀z(X ∗ 1 = y → (X ∗ 1 = z → y = z)) ` ∀x∀y∀z(x = y → (x = z → y = z)) ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 `X ∗1=X →X =X ÌÃÒÓ выражающие свойства, характеризующие отношение эквивалентности (рефлексивность, симметричность, транзитивность). В принципе формулу X = X (точнее ∀x(x = x)) следовало бы ввести как аксиому поддержки формального равенства. Однако в данном случае эта формула оказывается выводимой в теории G. Действительно, ÃÒÓ ÔÍ-12 ` ∀z(X = Y → X ∗ z = Y ∗ z) ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ `X =Y →X ∗Z =Y ∗Z ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ 63 Используя доказанную рефлексивность, можно доказать и симметричность: ÔÍ-12 ÌÃÒÓ ÔÍ-12 6. Примеры формальных теорий ÌÃÒÓ Γ`Y =X Γ`X=Y X=Y `Y =X X = Y, X = X ` Y = X `X=X ` X = Y → (X = X → Y = X) ` ∀x∀y∀z(x = y → (x = z → y = z) Транзитивность можно получить из аксиомы 1 с доказанным свойством симметричности: Γ`X=Z Γ`X=Y X =Y ∧Y =Z `X =Z Γ`Y =Z ÔÍ-12 ÔÍ-12 Γ`X =Y ∧Y =Z ÌÃÒÓ ÌÃÒÓ X =Y `X =X →Y =X X = Y, Y = Z ` X = Z Y = X, Y = Z ` X = Z Y =X `Y =Z →X =Z X=Y `Y =X X=Y `X=Y ` Y = X → (Y = Z → X = Z) Остальные свойства могут быть получены использованием цепи равенств. Докажем формулу (A ∗ X = A) → (X = 1), означающую, что правая единица единственная. Содержательное рассуждение таково. Если A ∗ X = A, то A−1 ∗ (A ∗ X) = A−1 ∗ A = 1. Но A−1 ∗ (A ∗ X) = (A−1 ∗ A) ∗ X = 1 ∗ X = X. Поэтому X = 1. Соответствующий вывод формулы (A∗X = A)→(X = 1) может быть таким (для сокращения знак умножения опущен): ` AX = A → X = 1 AX = A ` X = 1 AX = A ` A−1 A = 1 AX = A ` X = A−1 AX AX = A ` A−1 AX = A−1 A AX = A ` A−1 AX = X AX = A ` AX = A ` A−1 AX = 1 ∗ X ` A−1 A = 1 `1∗X =X ` A−1 A = 1 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 AX = A ` X = A−1 A ÌÃÒÓ ÔÍ-12 1 ∗ x = (x ∗ x−1 ) ∗ x = x ∗ (x−1 ∗ x) = x ∗ 1 = x. ÌÃÒÓ ÌÃÒÓ Теперь докажем, что правая единица является левой: ÔÍ-12 Действие симметричности, рефлексивности и транзитивности можно записывать как цепочку равенств: X = Y = Z = . . . Отметим, что существование левой единицы и левого обратного в аксиомах не оговорено. Однако это можно получить из существования правой единицы и правого обратного для каждого элемента. Действительно, докажем, что правый обратный является левым:  x−1 ∗ x = (x−1 ∗ x) ∗ 1 = (x−1 ∗ x) ∗ (x−1 ∗ (x−1 )−1 ) = x−1 ∗ x ∗ (x−1 ∗ (x−1 )−1 ) =   = x−1 ∗ (x ∗ x−1 ) ∗ (x−1 )−1 = x−1 ∗ 1 ∗ (x−1 )−1 = (x−1 ∗ 1) ∗ (x−1 )−1 = x−1 ∗ (x−1 )−1 = 1. ÌÃÒÓ ÌÃÒÓ ` ∀x∀y∀z(x = y → (x = z → y = z) ÌÃÒÓ P6. P7. P8. P9. m + 0 = m; m + n+ = (m + n)+ ; m · 0 = 0; m · n+ = m · n + m. ÔÍ-12 При построении формальной теории первые две аксиомы Пеано не нужны, поскольку реализуются на уровне логико-математического языка. Например, первая аксиома фактически утверждает, что в языке арифметики есть константа. В то же время в состав аксиом необходимо включить аксиомы поддержки формального равенства. Кроме того, в состав аксиом мы включаем формулы определения арифметических операций. Все аксиомы, кроме аксиомы индукции, должны быть замкнутыми формулами (хотя для краткости мы кванторы опустим, ÌÃÒÓ Нетрудно убедиться в том, что все эти аксиомы необходимы. Первые две дают, по существу, индуктивное определение натуральных чисел. Отсутствие аксиомы P3 приводит к существованию древовидной модели, в которой некоторые ветви начинаются не с нуля. Аксиома P4 препятствует появлению циклической модели (например, комплексных корней n-й степени из 1). Наконец, аксиома P5 обеспечивает связность натурального ряда, т.е. свойство, что любое натуральное число получается с помощью аксиом P1 и P2. Она же лежит в основе принципа математической индукции. С помощью этой аксиомы вводятся основные арифметические операции — сложение и умножение: ÔÍ-12 P1. 0 — натуральное число. P2. Если n — натуральное число, то n+ — натуральное число. P3. Если m, n — натуральные числа и m+ = n+ , то m = n. P4. Если n — натуральное число, то n+ 6= 0. P5. Пусть A — некоторое свойство, которым могут обладать натуральные числа. Предположим, что: а) 0 обладает свойством A; б) из того, что n обладает свойством A, вытекает, что и n+ обладает свойством A. Тогда любое натуральное число обладает свойством A. ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 Рассмотрим формальную теорию AP , описывающую элементарную теорию чисел (арифметику), т.е. теорию натуральных чисел с арифметическими операциями. Отметим, что при построении формальных систем всегда руководствуются некоторой реальной математической дисциплиной, которая в таком случае обеспечивает естественную интерпретацию строящейся теории. Построенная теория может иметь множество интерпретаций (как теория G). Но может быть (а в некоторых случаях должно быть) так, что все интерпретации являются изоморфными, т.е. между этими интерпретациями есть взаимно однозначное соответствие, сохраняющее все свойства этих интерпретаций. Так должно быть в случае формальной арифметики, поскольку наличие нескольких моделей натуральных чисел, ясно различающихся по своим свойствам, вряд ли можно считать приемлемым. Подчеркнем, что под натуральным мы будем понимать целое неотрицательное число (т.е. включая нуль). Логико-математический язык должен быть односортным. Есть одна константа, которую мы обозначим через 0, две основные арифметические операции сложение и умножение реализуем двумя бинарными функциональными символами, которые будем обозначать в инфиксной форме знаками + и · (этот знак по традиции опускается между двумя переменными). Описание двух операций кольца недостаточно. Характерным свойством натуральных чисел является переход к следующему натуральному числу, вытекающий из процесса пересчета предметов. Это отразим унарным функциональным символом, который будем обозначать в виде x+ . Наконец, нужен предикатный символ, в качестве которого выбираем формальное равенство. В основе нашей формальной теории лежит аксиоматика натуральных чисел Пеано, включающая пять аксиом: ÃÒÓ ÌÃÒÓ 6.2. Формальная арифметика ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ИУ-9, МЛТА, 2009-10 уч.г. ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ 64 ÌÃÒÓ Γ ` Ax0 ∧ ∀x(A → Axx+ ) Γ ` ∀x(A → Axx+ ) ` Ax0 ∧ ∀x(A → Axx+ ) → A ` ∀x(Ax0 ∧ ∀x(A → Axx+ ) → A) 1. (X = Y ) → (X + Z = Y + Z). ÔÍ-12 Отметим, что в этом правиле выбор переменной x не является существенным: последний шаг может идти с переименованием. На практике в качестве переменной x следует выбирать любую, не входящую свободно в формулы списка Γ. Правила C4–C6 отражают характерные черты формального равенства как предиката для отношения эквивалентности, они полностью определяются аксиомами A4 и A6. Вывод этих правил повторяет вывод соответствующих правил формальной теории групп. Многие ключевые факты арифметики (например, коммутативность сложения) вытекают из сформулированных аксиом. В их доказательстве особую роль играет схема аксиом, отражающая принцип математической индукции. Рассмотрим некоторые формулы. ÌÃÒÓ Γ ` Ax0 Γ ` Ax0 ∧ ∀x(A → Axx+ ) → A ÔÍ-12 Γ`A ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 Γ ` Ax0 ; Γ ` ∀x(A → Axx+ ) ; Γ`A Γ ` X+ = Y + C2. ; Γ`X=Y C3. ` ¬(X + = 0); C4. ` X = X; Γ`X=Y ; C5. Γ`Y =X Γ`X =Y; Γ`Y =Z ; C6. Γ`X=Z Γ`X=Y C7. ; Γ ` X+ = Y + C8. ` X + 0 = X; C9. ` X + Y + = (X + Y )+ ; C10. ` X · 0 = 0; C11. ` X · Y + = X · Y + X. Все эти правила устанавливаются так же как и в теории групп. Например правило C1: C1. ÌÃÒÓ ÌÃÒÓ неявно полагая, что формулы замкнуты кванторами всеобщности по всем свободным переменным). Исключение составляет аксиома индукции. Эта аксиома связана с произвольным свойством, которое характеризуется некоторым предикатом A, и задается некоторой схемой. В результате мы получаем одну схему аксиом и восемь аксиом:  A1. Ax0 ∧ ∀x(A → Axx+ ) → A. A2. (x+ = y + ) → (x = y). A3. ¬(x+ = 0). A4. (x = y) → ((x = z) → (y = z)). A5. (x = y) → (x+ = y + ). A6. x + 0 = x. A7. x + y + = (x + y)+ . A8. x · 0 = 0. A9. xy + = xy + x. Как и в случае теории G, эти аксиомы удобно преобразовать в правила вывода: ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 65 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 6. Примеры формальных теорий ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ИУ-9, МЛТА, 2009-10 уч.г. J На содержательном уровне рассуждение таково. При z = 0 равенство X + z = Y + z сводится к очевидному равенству X + 0 = Y + 0, вытекающему из цепочки X + 0 = X = Y = Y + 0. Если верно равенство X + z = Y + z, то X + z + = (X + z)+ = (Y + z)+ = Y + z + . На основании метода математической индукции делаем вывод, что равенство X + z = Y + z верно для любого z. Формальный вывод рассматриваемой формулы строится на сведении к правилу C1 и может выглядеть так: ÔÍ-12 ÔÍ-12 ÌÃÒÓ 66 ÌÃÒÓ ÌÃÒÓ `X =Y →X +Z =Y +Z X =Y `X +Z =Y +Z X = Y ` ∀z(X + z = Y + z) X =Y `X +0=Y +0 X = Y ` ∀z(X + z = Y + z → X + z + = Y + z + ) 1 X = Y ` X + z = Y + z → X + z+ = Y + z+ ÔÍ-12 ÔÍ-12 X =Y `X +z =Y +z X = Y, X + z = Y + z ` X + z + = Y + z + X + z = Y + z ` X + z+ = Y + z+ Обе ветки заканчиваются секвенциями, которые можно обосновать цепочкой равенств. Ветка 1 подробно раскрывается так: X =Y `X +0=Y +0 `X +0=X X =Y `X =Y +0 X=Y `X=Y X =Y `Y =Y +0 `Y =Y +0 `Y +0=Y Ветка 2 ракрывается аналогично (список Γ содержит одну формулу X + z = Y + z): ÔÍ-12 ÔÍ-12 X =Y `X +0=X ÌÃÒÓ ÌÃÒÓ 2 ` X + z + = (X + z)+ Γ ` (X + z)+ = Y + z + Γ ` (X + z)+ = (Y + z)+ Γ ` (Y + z)+ = Y + z + Γ`X +z =Y +z ` (Y + z)+ = Y + z + ` Y + z + = (Y + z)+ Как видим, формальный вывод заметно длиннее содержательного. I 2. 0 + X = X. J Содержательное доказательство основано на замене Z переменной и применении индукции по этой переменной. Имеем 0 + 0 = 0. Если 0 + x = x, то 0 + x+ = (0 + x)+ = x+ . Значит, ÔÍ-12 ÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 Γ ` X + z + = (X + z)+ ÌÃÒÓ ÌÃÒÓ Γ ` X + z+ = Y + z+ ÌÃÒÓ 0 + x = x. Формальное доказательство следующее: `0+X =X ` ∀x(0 + x = x) `0+x=x ` 0 + x = x → 0 + x+ = x+ 0 + x = x ` 0 + x+ = x+ 0 + x = x ` 0 + x+ = (0 + x)+ ` 0 + x+ = (0 + x)+ 0 + x = x ` (0 + x)+ = x+ 0+x=x`0+x=x Отметим переход от формулы X к переменной x, совершенный в начале вывода. Это стандартная подготовка к применению идукции, состоящая в замене одной из подформул переменной, которая становится переменной индукции. I 3. X + + Y = X + Y + . J Ограничимся содержательным рассуждением. Имеем x+ + 0 = x+ = (x + 0)+ = x + 0+ . Пусть x+ + y = x + y + . Тогда x+ + y + = (x+ + y)+ = (x + y + )+ = x + y ++ . Таким образом, x+ + y = x + y + . I 4. X = Y → Z + X = Z + Y . J Содержательное рассуждение можно строить на переменной z, поставленной взамен формулы Z. при z = 0 имеем 0 + X = X = Y = 0 + Y (использовано уже установленное свойство 2). Пусть доказано, что z + X = z + Y . Тогда, согласно свойству 3 В соответствии с методом математической индукции, если X = Y , то z + X = z + Y . I 5. (X + Y ) + Z = X + (Y + Z). (X + Y ) + z + = ((X + Y ) + z)+ = ((X + (Y + z))+ = X + (Y + z)+ = X + (Y + z + ). В соответствии с методом математической индукции заключаем, что (X +Y )+z = X +(Y +z). I 6. X + Y = Y + X. 7. X + Y = 0 → X = 0. J Заменяем формулу X индуктивной переменной x, При x = 0 имеем формулу 0+Y = 0→0 = 0, которая получается из истинной формулы 0 = 0 присоединением посылки. Пусть формула ÔÍ-12 J Заменяем формулу Y индутивной переменной y. При y = 0 имеем X + 0 = X = 0 + X. Если X + y = y + X, то X + y + = (X + y)+ = (y + X)+ = y + X + = y + + X. Значит, X + y = y + X для любого значения переменной y. I ÌÃÒÓ J Содержательное доказательство основано на методе математической индукции по переменной z, включенной в формулу взамен Z. Согласно свойству 4 имеем: (X + Y ) + 0 = X + Y = = X + (Y + 0), поскольку Y = Y + 0. Предположим (X + Y ) + z = X + (Y + z). Тогда ÔÍ-12 z + + X = z + X + = (z + X)+ = (z + Y )+ = z + Y + = z + + Y. ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ` ∀x(0 + x = x → 0 + x+ = x+ ) ÌÃÒÓ ÔÍ-12 ÌÃÒÓ `0+0=0 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 67 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 6. Примеры формальных теорий ÌÃÒÓ x+ +Y =0`(x+Y )+ =x+ +Y x+ +Y =0`x+ +Y =0 (x + Y )+ = 0 ` x+ = 0 Γ`(x+Y )+ =0 ` (x + Y )+ = x+ + Y Γ`¬((x+Y )+ =0) ` ¬((x + Y )+ = 0) Следовательно, формула x + Y = 0 → x = 0 истинна при любом x. Отметим, что индуктивное предположение об истинности формулы x + Y = 0 → x = 0 фактически не нужно: общезначимость формулы (x+ + y = 0) → (x+ = 0) устанавливается без использования аксиомы индукции. I 8. 0 · X = 0. J Заменяем формулу X индуктивной переменной x. При x = 0 равенство 0 · 0 = 0 вытекает из правила C10. Предположим 0 · x = 0. Тогда 0 · x+ = 0 · x + 0 = 0 + 0 = 0. Значит, формула 0 · x = 0 истинна для любого значения переменной x. I 9. Введем обозначение 1 = 0+ . Тогда X · 1 = X и 1 · X = X. J Для первого равенства имеем x · 1 = x · 0+ = x · 0 + x = 0 + x = x. Второе равенство 1 · x верно при x = 0 (по аксиоме). Пусть 1·x = x. Тогда 1·x+ = 1·x+1 = 1·x+0+ = x+0+ = (x+0)+ = x+ . Значит, 1 · x = 1. I 10. X + · Y = X · Y + Y . J Содержательное доказательство проводится индукцией по переменной y, включенной в формулу взамен подформулы Y . При y = 0 имеем X + ·0 = 0 = 0+0 = X ·0+0. Пусть X + ·y = X ·y+y. Тогда + X · y + (y + + X) = X · y + (X + y + ) = (X · y + X) + y + = X · y + + y + . Поэтому формула X + · y = X · y + y верна при любом значении переменной y. I 11. Умножение коммутативно: X · Y = Y · X. x+ · Y = x · Y + Y = Y · x + Y = Y · x+ . Следовательно, формула x · Y = Y · x верна при любом значении переменной x. I 12. Умножение дистрибутивно относительно сложения: (X + Y ) · Z = X · Z + Y · Z. (X + Y ) · 0 = 0 = 0 + 0 = X · 0 + Y · 0. Пусть (X + Y ) · z = X · z + Y · z. Тогда (X +Y )·z + = (X +Y )·z+(X +Y ) = (X ·z+Y ·z)+(X +Y ) = (X ·z+X)+(Y ·z+Y ) = X ·z + +Y ·z + . ÔÍ-12 J Доказательство также строится на принципе математической индукции по переменной z, включенной в формулу взамен подформулы Z. При z = 0 имеем ÌÃÒÓ J Содержательное доказательство проводится индукцией по переменной x, включенной в формулу взамен X. При x = 0 имеем x · Y = 0 · Y = 0 = Y · 0 = Y · x, т.е. при x = 0 формула верна. Пусть x · Y = Y · x. Тогда ÔÍ-12 X + · y + = X + · y + X + = (X · y + y) + X + = X · y + (y + X + ) = ÌÃÒÓ ÔÍ-12 ÌÃÒÓ x+ + Y = 0 ` (x + Y )+ = 0 ÔÍ-12 ÔÍ-12 x+ + Y = 0 ` x+ = 0 ÃÒÓ ÌÃÒÓ ` (x+ + Y = 0) → (x+ = 0) ÌÃÒÓ ÔÍ-12 x + Y = 0 → x = 0 истинна. Тогда ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ИУ-9, МЛТА, 2009-10 уч.г. ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ 68 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 69 Следовательно, формула (X + Y ) · z = X · z + Y · z истинна при любом значении переменной z. I (x 6 x) ≡ ∃z(x + z = x) ⇐ x + 0 = x. На множестве натуральных чисел существует отношение порядка. Можно рассмотреть формулу p(x, y) ≡ ∃z(x + z = y) и переобозначить ее как x 6 y. Двуместный предикатный символ можно интерпретировать как бинарное отношение. Это отношение оказывается рефлексивным, транзитивным и антисимметричным, т.е. истинны формулы x 6 x, (x 6 y) ∧ (y 6 z) → (x 6 z) и (x 6 y) ∧ (y 6 x) → (x = y). Рефлексивность устанавливается просто: ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 6. Примеры формальных теорий ÌÃÒÓ Упражнение на транзитивность посложнее: ` ∃u(x + u = y) ∧ ∃u(y + u = z) → ∃u(x + u = z) x + u1 = y, y + u2 = z ` ∃u(x + u = z) x + u1 = y, y + u2 = z ` x + (u1 + u2 ) = z x + u1 = y, y + u2 = z ` (x + u1 ) + u2 = z x + u1 = y, y + u2 = z ` (x + u1 ) + u2 = y + u2 x + u1 = y, y + u2 = z ` y + u2 = z ÔÍ-12 ÔÍ-12 ∃u(x + u = y), ∃u(y + u = z) ` ∃u(x + u = z) мулой 7, которую легко превратить в правила Γ`X +Y =0 Γ`X +Y =0 и . Γ`X=0 Γ`Y =0 ∃u(X + u = Y ), ∃u(Y + u = X) ` X = Y X + u1 = Y, Y + u2 = X ` X = Y Γ ` Y + u2 = Y Γ ` X = Y + u2 Γ ` u2 = 0 Γ ` Y + u2 = X Γ ` u 1 + u2 = 0 Γ ` X + u1 + u2 = X Γ ` X + u 1 + u2 = Y + u2 Γ ` Y + u2 = X ÌÃÒÓ ÌÃÒÓ Теперь выведем формулу (X 6 Y ) ∧ (Y 6 X) → (X = Y ). Эта задача сводится к доказательству выводимости ∃u(X + u = Y ), ∃u(Y + u = X) ` X = Y . Вывод сводится к удалению кванторов существования (список Γ содержит формулы X + u1 = Y , и Y + u2 = X): ÔÍ-12 ÔÍ-12 Но самое сложное — антисимметричность. В основе — утверждение, что если сумма двух чисел равна нулю, то каждое слагаемое равно нулю. Это утверждение устанавливается фор- ÌÃÒÓ ÌÃÒÓ x + u1 = y, y + u2 = z ` x + u1 = y ÔÍ-12 ÔÍ-12 Γ ` X + u1 = Y ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ОГЛАВЛЕНИЕ 15 15 17 22 3. Алгебра предикатов 3.1. Предикаты и кванторы . . . . . . . . . . . 3.2. Логико-математические языки . . . . . . . 3.3. Переименования и подстановки . . . . . . 3.4. Семантика логико-математического языка 3.5. Логические законы . . . . . . . . . . . . . 3.6. Замены . . . . . . . . . . . . . . . . . . . . 3.7. Упрощение формул . . . . . . . . . . . . . . . . . . . . 27 27 28 31 34 36 39 41 4. Исчисление предикатов 4.1. Построение теории P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2. Правила естественного вывода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3. Глобальные свойства теории P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 43 44 46 5. Генценовские формальные системы 5.1. Исчисление GV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2. Исчисление GP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 54 58 6. Примеры формальных теорий 6.1. Теория групп . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2. Формальная арифметика . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 61 64 7. Метод резолюций 7.1. Скулемовские функции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2. Метод резолюций для исчисления высказываний . . . . . . . . . . . . . . . . . . . 7.3. Метод резолюций для исчисления предикатов . . . . . . . . . . . . . . . . . . . . . 70 70 72 75 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ÌÃÒÓ 2. Исчисление высказываний 2.1. Основные положения теории N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Правила естественного вывода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3. Глобальные свойства теории N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ÔÍ-12 . . . . 2 2 4 6 10 ÔÍ-12 ÔÍ-12 1. Алгебра высказываний 1.1. Введение . . . . . . . . . . . . . . . . . 1.2. Алгебра логики . . . . . . . . . . . . . 1.3. Тавтологии и эквивалентность формул 1.4. Функции алгебры логики . . . . . . . . ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÃÒÓ ÔÍ-12 70 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ Московский государственный технический университет имени Н.Э. Баумана ÌÃÒÓ Факультет «Фундаментальные науки» Кафедра «Математическое моделирование» ÌÃÒÓ À.Í. Êàíàòíèêîâ È ÒÅÎÐÈß ÀËÃÎÐÈÒÌΠÊîíñïåêò ëåêöèé ÔÍ-12 Москва 2009 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 Äëÿ ñòóäåíòîâ êàôåäðû ÈÓ9 ÌÃÒÓ ÌÃÒÓ ÌÀÒÅÌÀÒÈ×ÅÑÊÀß ËÎÃÈÊÀ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 7.1. Скулемовские функции ∃x1 . . . ∃xr−1 ∃xr ∇xr+1 . . . ∇xk X ⇒ ∃x1 . . . ∃xr−1 ∇xr+1 . . . ∇xk Xcxrr . ∃x∀y∀z∃u∀v∃wP (x, y, z, u, v, w). В префиксе формулы три квантора существования. Левее ∃x нет кванторов всеобщности. Поэтому первый шаг — замена переменной x константой. Получим: ∀y∀z∃u∀v∃wP (c1 , y, z, u, v, w). 70 ÔÍ-12 Пример 7.1. Построим скулемовскую стандартную форму для формулы ÌÃÒÓ Пусть i1 , i2 , . . . , is — список номеров всех кванторов всеобщности, предшествующих кванторной приставке ∃xr . Вводим новый функциональный символ f , тип которого определяется последовательностью сортов переменных xr , xi1 , xi2 , . . . , xis , затем в формуле X каждое вхождение переменной xr заменяем термом f (xi1 , xi2 , . . . , xis ), а кванторную приставку ∃xr из префикса удаляем. Добавляемые в описанной процедуре константы и функциональные символы называют скулемовскими функциями, а полученную формулу в предваренной форме без кванторов существования с матрицей в конъюнктивной нормальной форме — скулемовской стандартной формой. ÔÍ-12 Напомним, что любая формула алгебры предикатов может быть приведена к предваренной форме, т.е. форме вида ∇x1 ∇x2 . . . ∇xk X[x1 , x2 , . . . , xk ], где формула X (матрица предваренной формы) не имеет кванторов, а символ ∇ обозначает один из кванторов. Формула X, как бескванторная, может быть преобразована в экививалентную конъюнктивную нормальную форму. В исчислении высказываний это можно сделать через таблицы истинности, но более эффективно (а в исчислении предикатов и неизбежно) использовать метод эквивалентных преобразований. Достаточно выразить все импликации и эквиваленции через отрицание, дизъюнкцию и конъюнкцию, а затем преобразовать формулу по законом булевой алгебры, рассматривая конъюнкцию как сложение, а дизъюнкцию как умножение. Следующий шаг — такое преобразование предваренной формы, при котором в ее префиксе нет кванторов существования. Делается это путем расширения языка с добавлением констант и функциональных символов следующим образом. Пусть кванторная приставка ∇xr содержит квантор существования, т.е. имеет вид ∃xr . Если левее ее в префиксе нет кванторов всеобщности, выбираем константу as , не содержащуюся в формуле X, в этой формуле заменяем все вхождения переменной xr на константу cr и кванторную приставку удаляем: ÌÃÒÓ ÔÍ-12 ÌÃÒÓ Одно из прикладных направлений развитие логики — автоматический поиск доказательств. Основу для соответствующих алгоритмов составляют формальные системы генценовского типа, в которых вывод секвенций обладает высокой алгоритмичностью. И хотя, как было доказано, не существует универсальной разрешающей процедуры для построения вывода любой формулы или ее опровержения, генценовский вывод показывает, что для многих формул конечная разрешающая процедура существует. Мы рассмотрим один из подходов к решению поставленной проблемы — так называемый метод резолюций. Он приспособлен для формул исчисления предикатов (или высказываний) определенного вида. Оказывается, что любая формула может быть преобразована в эквивалентную форму, пригодную для применения метода резолюций. ÔÍ-12 ÔÍ-12 7. МЕТОД РЕЗОЛЮЦИЙ ÃÒÓ ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 71 Перед приставкой ∃u два квантора существования. Поэтому переменную u меняем на двуместный функциональный символ: ∀y∀z∀v∃wP (c1 , y, z, f1 (y, z), v, w). перед приставкой ∃w три квантора всеобщности. Значит, используем трехместный функциональный символ: ∀y∀z∀vp(c1 , y, z, f1 (y, z), v, f2 (y, z, v)). ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ 7. Метод резолюцийÔÍ-12 Последняя формула и есть скулемовская стандартная форма. Пример 7.2. Построим скулемовскую стандартную форму для формулы ∀x∃y∃z((¬p(x, y) ∧ q(y, z)) ∨ r(x, y, z)).  ∀x [¬p(x, f1 (x)) ∨ r(x, f1 (x), f2 (x))] ∧ [q(f1 (x), f2 (x)) ∨ r(x, f1 (x), f2 (x))] . Теорема 7.1. Пусть S — множество дизъюнктов из стандартной формы для формулы F . Тогда формула F противоречива в том и только в том случае, когда множество дизъюнктов S противоречиво. ÔÍ-12 J Мы сразу можем считать, что формула F дана в предваренной форме. В принципе убирать кванторы существования можно в любом порядке (эти операции независимы и отличаются лишь выбором свободных констант и функциональных символов). Но удобнее это делать в порядке слева направо. Более того, достаточно доказать, что условие противоречивости сохраняется при убирании одного квантора. Пусть формула F имеет вид F = ∃x1 X. В соответствии с описанной процедурой преобразованная форула будет иметь вид Fe = Xcx11 . Ложность F равносильна истинности ¬F ≡ ∀x1 ¬X или, что то же самое, истинности ¬X при любой интерпретации и любой оценке. Замена x1 на константу лишь переносит конкретизацию значения x1 из сферы оценки в сферу интерпретации. ÌÃÒÓ Чтобы объяснить смысл описанного преобразования формул, введем несколько понятий. литера — это элементарная формула алгебры предикатов или ее отрицание. Дизъюнкция нескольких литер называют дизъюнктом. Иногда дизъюнкт удобно интерпретировать как множество литер, а не их дизъюнкцию. При этом пустое множество литер представляет собой пустой дизъюнкт, который обозначают символом “. Считают, что пустой дизъюнкт — ” всегда ложная формула. Далее будем рассматривать конечные множества дизъюнктов. Такое множество является формой представления конъюнкции всех дизъюнктов этого множества. Отсюда вытекает понятие противоречивого множества дизъюнктов как множества дизъюнктов, конъюнкция которых, замкнутая кванторами всеобщности, дает противоречие (т.е. формула, ложная в любой интерпретации). В скулемовской стандартной форме матрицу как КНФ можно интерпретировать как множество нескольких дизъюнктов. Мы также считаем, что каждая свободная переменная связана квантором всеобщности. Суть преобразования к стандартной форме — в сохранении условия противоречивости. ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ Наконец, убираем и второй квантор существования: ÌÃÒÓ ÔÍ-12  ∀x∃z [¬p(x, f1 (x)) ∨ r(x, f1 (x), z)] ∧ [q(f1 (x), z) ∨ r(x, f1 (x), z)] . ÔÍ-12 ÌÃÒÓ Далее элиминируем (т.е. убираем) первый слева квантор существования: ÌÃÒÓ ÔÍ-12  ∀x∃y∃z [¬p(x, y) ∨ r(x, y, z)] ∧ [q(y, z) ∨ r(x, y, z)] . ÔÍ-12 ÔÍ-12 Первый шаг — приведение матрицы приведенной формы к КНФ: ÌÃÒÓ ÌÃÒÓ Предположим, что формула F имеет вид F = ∀x1 ∀x2 . . . ∀xr−1 ∃xr X. В соответствии с правилом удаления квантора существования преобразованная формула будет иметь вид Fe = r . Ложность формулы F в данной интерпретации означает, что = ∀x1 ∀x2 . . . ∀xr−1 Xfx(x 1 ,x2 ,...,xr−1 )   существует такая оценка ϑ = xc 1 xc 2 .. .. .. xc r−1 , что формула ∃xr Xϑ ложна. Значит, формула 1 2 r−1 Xϑ ложна при любой оценке переменной xr . Но тогда независимо от интерпретации символа f r )ϑ ложна. Значит, формула Fe ложна в данной интерпреформула Xϑxf r(c1 ...cr−1 ) , или (Xfx(x 1 ...xr−1 ) тации. интерпретации формула F истинна. Значит, для любой оценки ϑ =  Пусть в некоторой = xc 1 xc 2 .. .. .. xc r−1 формула ∃xr Xϑ истинна, т.е. каждой оценке ϑ соответствует значение xr (ϑ), 1 2 r−1 при котором формула X истинна. Следовательно, определена функция xr (x1 , x2 , . . . , xr−1 ), которая при x1 = c1 , . . . , xr−1 = cr−1 принимает значение, равное соответствующему значению xr . Добавив к заданной интерпретации интерпретацию символа f как указанной функции, получим интепретацию, в которой формула Fe будет истинной. I ÌÃÒÓ Замечание 7.1. Не следует считать, что скулемовская стандартная форма данной формулы эквивалентна этой формуле. Речь идет лишь о том, что тождественная ложность (т.е. в любой интерпретации) исходной формулы равносильна тождественной ложности ее скулемовской стандартной формы. Рассмотрим простейший пример F = ∃xp(x). Скулемовской стандартной формой будет Fs = p(a). Выбрав носитель интерпретации {1, 2} и положив |p(1)| = 0, |p(2)| = 1, заключаем, что формула F будет истинной. Выбрав в качестве интерпретации константы a элемент 1, приходим к выводу, что Fs будет ложной. Значит F 6≡ Fs . Скулемовская форма не сохраняет даже свойство формулы быть тавтологией. Например, формула ∃x1 ∃x2 (p(x1 ) ∨ ¬p(x2 )) является тавтологией, в то время как ее скулемовская форма (p(c1 ) ∨ ¬p(c2 ) при определенной интерпретации предикатного символа p и констант c1 , c2 оказывается ложной. # ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ИУ-9, МЛТА, 2009-10 уч.г. ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ 72 ÔÍ-12 ÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ Ставится задача построения процедуры, которая за конечное число шагов даст доказательство истинности конкретной формулы. Подход, основанный на построении таблиц истинности, который работает в исчислении высказываний, в исчислении предикатов неприемлем. Но доказательство того, что любая непротиворечивая теория интерпретируема, дает идею для автоматического поиска доказательства. Отметим, что речь не идет о построении вывода в той или иной формальной системе, а лишь о проверке того, что данная формула есть тавтология. Точнее, речь идет не о проверке, а построении некоей процедуры, которая подтвердит, что данная формула есть тавтология, если это действительно так. Оказывается такую процедуру формирует синтаксический разбор, проведенный в доказательстве теоремы о непротиворечивой теории. Отметим, что задача доказать тавтологичность формулы равносильна задаче доказать, что отрицание данной формулы является противоречием. А проверку формулы на противоречивость можно провести, используя ее скулемовскую стандартную форму, в которой не используется импликация, а отрицания относятся непосредственно к атомам формулы. Подобный подход привел к разработке метода, известного как метод резолюций. Использование этого метода начнем с алгебры высказываний. Рассмотрим некоторое множество Γ дизъюнктов. Мы можем считать, что в каждом дизъюнкте литера с данной переменной x входит только один раз, поскольку дизъюнкция одинаковых литер есть сама эта литера, а дизъюнкция контрарных литер (т.е. одна является отрицанием другой) дает дизъюнкт, являющийся тавтологией. Такой дизъюнкт не влияет на противоречивость всего множества и его можно из рассмотрения убрать. ÔÍ-12 ÔÍ-12 7.2. Метод резолюций для исчисления высказываний ÌÃÒÓ e 1 , D2 = ¬p ∨ D e 2 . Нам нужно убедиться в истинности формулы D1 ∧ D2 → J Пусть D1 = p ∨ D e 1, D e 2 . Подставим e1 ∨ D e 2 ), что равносильно выводимости генценовской секвенции D1 , D2 > D (D e 1 , ¬p ∨ D e2 > D e 1, D e 2 . Имеем: в эту секвенцию представление дизъюнктов D1 и D2 : p ∨ D e 1 , ¬p ∨ D e2 > D e 1, D e2 p∨D e2 > D e 1, D e2 p, ¬p ∨ D e2 > D e 1, D e2 p, D e 1, D e 2, p p, > D e 1 , ¬p ∨ D e2 > D e 1, D e 2 выводима в генценовском исчислении. СледоИтак, секвенция p ∨ D o n e e вательно, множество из одного дизъюнкта D1 ∨ D2 есть логическое следствие множества дизъюнктов {D1 , D2 }. I ÔÍ-12 ÌÃÒÓ ÔÍ-12 Доказанная теорема приводит к следующей процедуре обоснования противоречивости множества дизъюнктов. Отталкиваясь от исходного множества S0 , находим контрарную пару, конструируем ее резольвенту и добавляем к S0 , получая S1 . С множеством S1 поступаем аналогично, пропуская, правда, уже рассмотренную контрарную пару. Для автоматизации процесса можно предложить следующий алгоритм. Множество рассматриваем как упорядоченный список, резольвенты добавляем в конец списка, а текущее состояние всего списка фиксируем парой индексов — номер рассматриваемой пары в списке. Завершением этой процедуры является получение пустого дизъюнкта, что и является доказательством противоречивости исходного множества. Действительно, каждая вновь получаемая резольвента есть логическое следствие текущего множества Si дизъюнктов. Значит, ее добавление к множеству дает новое множество, которое с точки зрения противоречивости эквивалентно исходному. Если на очередном шаге возникает пустой дизъюнкт, то последнее множество дизъюнктов противоречиво, а значит, противоречиво и исходное множество дизъюнктов. В этом и состоит суть метода резолюций. Поскольку возникающий пустой дизъюнкт есть резольвента двух уже имеющихся дизъюнктов, которые в свою очередь есть либо дизъюнкты исходного множества, либо резольвенты. Возникает дерево, отражающее процесс построения пустого дизъюнкта из имеющегося множества дизъюнктов. Это приводит к следующему определению. Последовательность дизъюнктов, в которой каждый дизъюнкт либо принадлежит множеству Γ, либо является резольвентой двух предыдущих дизъюнктов, называется резолютивным выводом из множества Γ. Конечный дизъюнкт резолютивного вывода из множества Γ называется выводимым из множества Γ. ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÌÃÒÓ e 1 , ¬p ∨ D e2 > D e 1, D e2 D ÌÃÒÓ ÔÍ-12 Теорема 7.2. Пусть дизъюнкты D1 и D2 образуют контрарную пару. Тогда их резольвента является логическим следствием множества дизъюнктов {D1 , D2 }. ÔÍ-12 ÔÍ-12 ÌÃÒÓ 73 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 Предположитм, что Γ = {D1 , D2 , . . . , Dk }, причем дизъюнкт D1 содержит переменную p, а e 1 , D2 = ¬p∨ D e 2 , где D e1 и D e 2 не содержат переменной p. дизъюнкт D2 — литеру ¬p, т.е. D1 = p∨ D Такие дизъюнкты будем называть контрарной парой. Тогда можно рассмотреть дизъюнкт e1 ∨ D e 2 вообще не содержащий переменной p. Этот дизъюнкт называется резольвентой D дизъюнктов D1 , D2 . Введем очевидное понятие: формула B называется логическим следствием формулы A, если формула A→B является тавтологией. В исчислении высказываний (и в исчислении предикатов тоже) это равносильно существованию выводимости A ` B или выводимости секвенции A > B. Множество дизъюнктов ∆ назовем логическим следствием множества дизъюнктов Γ, если конъюнкция всех дизъюнктов ∆ есть логическое следствие конъюнкции всех дизъюнктов Γ. e 1, D e2 p, ¬p > D ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ 7. Метод резолюцийÔÍ-12 ÌÃÒÓ N11 x2 N12 x2 N21 x2 N22 x3 x3 x2 N23 x3 x3 N24 x3 x3 x3 Рис. 7.1 ÔÍ-12 Листьям этого бинарного дерева соответствуют конкретные наборы значений переменных. По условию при каждом таком наборе значений один из дизъюнктов противоречив, поскольку конъюнкция всех дизъюнктов является противоречием. Рассмотрим пару листьев, выходящих из одного узла: L1 с xn = 0 и L2 с xn = 1. Пусть им соответствуют дизъюнкты D1 и D2 . Возможны два варианта. В первом варианте один из дизъюнктов, например D1 , противоречив для e 1 ∨ xσn , то обоих листьев. Тогда D1 не содержит переменной xn . Действительно, если D1 = D при xn = σ, т.е. для одного из двух листов, дизъюнкт D1 будет истинным. В этом варианте удаляем два листа, а дизъюнкт D1 приписываем узлу, порождающему листы L1 и L2 . После удаления листьев, порождающих их узедл станет листом. Во втором варианте дизъюнкт D1 противоречив в листе L1 (т.е. при xn = 0) и истиннен в листе L2 , а дизъюнкт D2 противоречив в листе L2 и истиннен в L1 . Тогда D1 имеет вид ÌÃÒÓ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ÃÒÓ ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 x1 ÔÍ-12 N0 x1 ÌÃÒÓ J В примере фактически уже было доказано, что если существует вывод пустого дизъюнкта, то исходное множество дизъюнктов противоречиво. Чтобы доказать противоположное утверждение, рассмотрим некоторое противоречивое множество дизъюнктов Γ. Добавляя к нему последовательно резольвенты различных контрарных пар, получаем расширение исходного множества с сохранением его противоречивости. Это расширение потихоньку поглощает дерево вывода пустого дизъюнкта, существование которого необходимо доказать. Что может быть мерой близости к пустому дизъюнкту? Например, количество литер в очередной резольвенте. Чем короче очередной получаемый дизъюнкт, тем ближе дизъюнкт нулевой доины, т.е. пустой. Процедуру перехода ко все более коротким дизъюнктам можно описать геометрически. Все переменные, встречающиеся в исходном списке дизъюнктов Γ, расположим в виде последовательности: x1 , x2 , . . . , xk . Перебор всех вариантов значений этих переменных можно представить в виде дерева, в котором метка дуги xi означает, что xi = 1 (истинно), а метка ¬xi — что xi = 0 (ложно) (рис. 7.1). ÔÍ-12 Теорема 7.3. Множество Γ дизъюнктов противоречиво тогда и только тогда, когда существует вывод из этого множества пустого дизъюнкта. ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ИУ-9, МЛТА, 2009-10 уч.г. Пример 7.3. Рассмотрим множество Γ = {¬x ∨ y, ¬y, x}. Тогда резолютивным выводом для этого множества является следующий: • ¬x ∨ y — дизъюнкт множества Γ; • x — дизъюнкт множества Γ; • y — резольвента двух предыдущих; • ¬y — дизъюнкт множества Γ; •  — резольвента двух предыдущих. Отметим, что получение пустого дизъюнкта как результата вывода означает, что исходное множество дизъюнктов Γ противоречиво. Действительно, последовательно добавляя к Γ формулы из вывода, получаем последовательность расширяющихся множеств дизъюнктов, в которой каждое очередное множество есть логическое следствие предыдущего. Последнее множество содержит пустой дизъюнкт и, следовательно, является противоречивым. Поэтому и исходное множество дизъюнктов является противоречивым. x3 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ 74 ÌÃÒÓ 1 2 n ϑ1 ◦ ϑ2 = x 1 t1 ϑ 2 x2 t2 ϑ 2 ... ... xn tn ϑ2 y1 q1 y2 q2 ... ... yn qn  ÔÍ-12 (запись ti ϑ2 означает, что в терме ti надо выполнить подстановку ϑ2 ). Ясно, что композиция подстановок реализует последовательное применение двух подстановок к формуле, причем последовательность применения — слева направо. Унификатор ϑ множества формул Φ1 , Φ2 ,. . . , Φk называется наиболее общим, если любой унификатор λ этого множества можно представить в виде λ = ϑ ◦ σ с помощью некоторой подстановки σ. Унификация — процедура, позволяющая (при некоторых условиях) сохранять свойство противоречивости, но при этом согласовывать аргументы у одинаковых предикатных символов. ÌÃÒÓ Пример 7.5. Множество из формул p(a, y); p(b, f (x)) не имеет унификаторов, поскольку любая подстановка меняет переменные, но не константы. Следовательно, при любой подстановке ϑ первая формула будет иметь вид p(a, T1 ), а вторая p(b, T2 ), где T1 и T2 — некторые термы соответствующего сорта. Значит, никакая подстановка не приведет к тому, что формулы станут одинаковыми.   Подстановки можно применять последовательно. Пусть есть подстановки ϑ1 = xt 1 xt 2 .. .. .. xt n 1 2 n   y1 y2 . . . yn и ϑ2 = q q . . . q . Их композицией ϑ1 ◦ ϑ2 называется подстановка ÔÍ-12 оно унифицируемо. ÌÃÒÓ ÔÍ-12 ÌÃÒÓ В случае исчисления предикатов резолютивный вывод касается бескванторных формул, но под литерой дизъюнкта надо понимать элементарную формулу, в которую в качестве аргументов предикатного символа могут входить различные термы. Это усложняет ситуацию, поскольку один предикатный символ в зависимости от комбинации термов в его аргументах может давать разные истинностные значения. Но правило резолюций остается тем же: если есть дизъюнкты P ∨ D1 и ¬P ∨ D2 , то их заменяем резольвентой D1 ∨ D2 . Здесь P — некоторая элементарная формула. Однако только такого склеивания дизъюнктов недостаточно. Отметим, что нашей целью является установление противоречивости множества дизъюнктов. С этой целью мы довольно свободно можем менять переменные в аргументах предикатных символов данной формулы. Реализуется это механизмом подстановки. Идея такова: подобрать такую подстановку, что элементарные формулы, содержащие данный предикатный символ, преобразовались в одну и ту же формулу. Подстановка не нарушает условия противоречивости (или тавтологичности). Пусть дано множество формул Φ1 , Φ2 ,. . . , Φk . Подстановка ϑ называется унификатором этого множества, если Φ1 ϑ = Φ2 ϑ = . . . = Φk ϑ. Если множество имеет унификатор, то оно называется унифицируемым.   y Пример 7.4. Множество {p(a, y), p(x, f (b))} имеет унификатор x . Следовательно, a f (b) ÔÍ-12 ÔÍ-12 7.3. Метод резолюций для исчисления предикатов ÌÃÒÓ ÌÃÒÓ e 1 ∨ xn , а D2 имеет вид D2 = D e 2 ∨ ¬xn . Резольвента D двух дизъюнктов, имеющая вид D1 = D e e D = D1 ∨ D2 , противоречива и в L1 , и в L2 . Удаляем листья L1 , L2 , а порождающему их узлу ставим в соответствие резольвенту. Продолжая процедуру отрезания пар листьев, мы последовательно сокращаем размер дерева, причем на каждом шаге каждому листу соответствует дизъюнкт, являющийся противоречивым при соответствующих значениях переменных. В этот дизъюнкт входят только те переменные, которые однозначно определяются узлом исходного дерева. Отрезав все листья, получим дерево из одного корня, которому соответствует пустой дизъюнкт. I ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 75 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ 7. Метод резолюцийÔÍ-12 ÌÃÒÓ менная x, а второй есть терм T . Во всех формулах выполняем подстановку Tx . Процедуру повторяем. Если в какой-то момент очередной список рассогласования не имеет переменных, то множество формул не унифицируемо. Другой вариант завершения процедуры — пустой список рассогласования (формулы стали одинаковыми). Тогда множество унифицируемо, а наиболее общий унификатор — композиция всех выполненных подстановок. те получим множество p(a, x, f (g(y))), p(a, f (a), f (u)). Следующий список рассогласований   x . Реализация этой подстановки дает множество {x, f (a)} устраняется подстановкой f (a) 2. Рассмотрим множество q(f (a), g(x)), q(y, y). Первый список рассогласования {f (a), y}   y устраняется подстановкой f (a) . В результате реализации этой подстановки получим множество q(f (a), g(x)), q(f (a), f (a)). Второй список рассогласования {g(x), f (a)} не может быть устранен, поскольку среди термов нет ни одной переменной. Вывод: рассматриваемое множество не унифицируемо. ÔÍ-12 p(a, f (a), f (g(y))), p(a, f (a), f (u)). Следующий список рассогласований {g(y), u}. Устраняющая   u подстановка g(y) . Реализуем ее: p(a, f (a), f (g(y))), p(a, f (a), f (g(y))). Получили одинаковые   z x u формулы. процесс унификации закончен. Унификатор: a f (a) g(y) . ÌÃÒÓ Пример 7.7. 1. Рассмотрим множество из двух формул p(a, x, f (g(y))), p(z, f (z), f (u)).   Первый список рассогласований: {a, z}. Он устраняется подстановкой az . В результа- ÔÍ-12 Рассмотрим некоторое множество элементарных формул p(T1j , T2j , . . . , Tkj ), j = 1, 2, . . . , s. Находим список рассогласования и в нем определяем два терма, один из которых   есть пере- ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 Пример 7.6. В множестве формул p(x, f (y, z)), p(x, a), p(x, g(h(k(x)))) различие начинается с позиции 5. С этой позиции в первой формуле начинается терм f (y, z), во второй — терм a, в третьей — терм g(h(k(x))). Рассогласование в данном случае — список термов f (y, z), a, g(h(k(x))). Рассмотрим множество формул p(x, f (y, z)), p(x, f (g(x), z)), p(x, f (a, x)). В данном случае формулы имеют одинаковый первый аргумент, а второй у них различается. Но при этом у них у всех этот аргумент порожден одним и тем же функциональным символом f . Различие пор символам наступает в позиции 7, в которой начинается первый аргумент символа f . Выписывая по всем формулам эти аргументы, получаем рассогласование y, g(x), a. ÃÒÓ ÌÃÒÓ Алгоритм, позволяющий для любого конечного множества элементарных формул с одинаковым предикатным символом построить наиболее общий унификатор или доказать, что это множество не унифицируемо, довольно прост. Его идея заключается в том, чтобы найти рассогласования в формулах, а потом найти подстановку, которая это рассогласование устраняет (ну, или убедиться в том, что это рассогласование неустранимо). Например, в формулах p(x, b) и p(a, b) рассогласование заключается в том, что на местах, в которых в первой формуле находится переменная x, вторая формула содержит константу a. Рассогласование можно устранить подстановкой вместо x константы a. Рассматриваем множество элементарных формул вида p(T1 , T2 , . . . , Tn ) с одинаковым предикатным символом. У таких формул последовательности аргументов имеют одинаковую длину и одинаковые последовательности сортов. Мы сравниваем у всех формул первые аргументы, затем вторые и т.д., пока не найдем очередную серию аргументов, в которой есть неодинаковые термы. Эти термы могут порождаться одним и тем же функциональным символом. Тогда мы переходим к сравнению аргументов этого функционального символа. Происходит анализ всего синтаксического дерева. Формально это можно провести так. Просматриваем формулы как последовательности символов слева направо до появления на очередной позиции разных символов. В каждой формуле с этой позиции начинается некоторый подтерм. Список таких подтермов и есть список рассогласования. ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ИУ-9, МЛТА, 2009-10 уч.г. ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ 76 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 77 Пусть в дизъюнкте C несколько литер L1 , L2 , . . . , Lk с предикатным символом p одной полярности (т.е. либо все с отрицанием, либо все без отрицания). Предположим, что они имеют наиболее общий унификатор ϑ. Тогда формулы L1 ϑ, L2 ϑ, . . . , Lk ϑ совпадают и в дизъюнкте Cϑ заменяются одной литерой. Дизъюнкт Cϑ в этом случае называется склейкой дизъюнкта C. Пусть C1 и C2 — два дизъюнкта, не имеющих одинаковых переменных. Предположим, что в них входят литеры вида p(. . .) и ¬p(. . .), для которых существует наиболее общий унификатор e1 , C2 = ¬p(. . .) ∨ C e2 . После подстановки заменим литеры p ϑ, т.е., например, C1 = p(. . .) ∨ C совпадут, и мы можем сформировать резольвенту C1 ϑ ∨ C2 ϑ, которая называется бинарной резольвентой C1 и C2 . Мы рассматриваем множество дизъюнктов как скелет“ матрицы скулемовской стандартной ” формы. Значит, в действительности все переменные связаны кванторами всеобщности. Но отметим, что ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ 7. Метод резолюцийÔÍ-12 Требуется опровержение формулы F1 ∧ F2 ∧ ¬G, которая имеет скулемовскую форму  F1 ∧ F2 ∧ ¬G ' ∀x [¬c(x) ∨ w(x)] ∧ [¬c(x) ∨ r(x)] ∧ c(a) ∧ q(a) ∧ [¬q(x) ∨ ¬r(x)] . ¬c(x) ∨ w(x), ¬c(x) ∨ r(x), c(a), q(a), ÌÃÒÓ Отбрасывая квантор, получим множество дизъюнктов ¬q(x) ∨ ¬r(x). Для доказательства противоречивости этого множества используем метод резолюций: ¬c(x) ∨ r(x) c(a) ¬q(x) ∨ ¬r(x) q(a)  Поскольку методом резолююций получен вывод пустого дизъюнкта, заключаем, что множество дизъюнктов противоречиво, а следовательно, формула G есть логическое следствие F1 и F2 . ÔÍ-12 ¬r(a) r(a) ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 Пример 7.9. Рассмотрим формулы F1 = ∀x(c(x) → w(x) ∧ r(x)); F2 = ∃x(c(x) ∧ q(x)); G = ∃x(q(x) ∧ r(x)). Покажем, что G есть логическое следствие F1 и F2 . Это значит, что множество формул F1 , F2 , ¬G противоречиво. Преобразуем формулы рассматриваемого множества в скулемовскую стандартную форму:  F1 ' ∀x(¬c(x) ∨ (w(x) ∧ r(x)) ' ∀x [¬c(x) ∨ w(x)] ∧ [¬c(x) ∨ r(x)] ; F2 ' c(a) ∧ q(a); ¬G ' ∀x(¬q(x) ∨ ¬r(x)). ÔÍ-12 ÌÃÒÓ Пример 7.8. В множестве формул ¬p(x, y), p(a, b)∨p(a, z)∨p(f (x), f (x)) во втором дизъюнкте возможна склейка второй литеры с первой, а третья литера не слеивается ни с чем. После склейки получим формулу p(a, b) ∨ p(f (x), f (x)), которая имеет резольвенту с первой формулой p(f (a), f (a)). ÌÃÒÓ ÔÍ-12 Это показывает, что скулемовскую стандартную форму можно составить так, что во всех ее дизъюнктах будут разные переменные. Резольвентой двух дизъюнктов C1 , C2 называется бинарная резольвента C1 или его склейки и C2 или его склейки. Здесь четыре ситуации: дизъюнкт–дизъюнкт, склейка–дизъюнкт, дизъюнкт–склейка и склейка–склейка. ÔÍ-12 ÔÍ-12 ∀x(D1 (x) ∧ D2 (x)) ≡ ∀xD1 (x) ∧ ∀xD2 (x) ≡ ∀x1 D1 (x1 ) ∧ ∀x2 D2 (x2 ) ≡ ∀x1 ∀x2 (D1 (x1 ) ∧ D2 (x2 )). ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ИУ-9, МЛТА, 2009-10 уч.г. Пример 7.10. Рассмотрим формулы   F1 = ∃x p(x) ∧ ∀y[d(y) → r(x, y)] , F2 = ∀x p(x) → ∀y[q(y) → ¬r(x, y)] , G = ∀x[d(x) → ¬q(x)]. Выясним, является ли формула G логическим следствием F1 и F2 . Приведем формулы к скулемовской стандартной форме. Для формулы F1 имеем:    F1 ≡ ∃x∀y p(x) ∧ [d(y) → r(x, y)] ≡ ∃x∀y p(x) ∧ [¬d(y) ∨ r(x, y)] ' ∀y p(a) ∧ [¬d(y) ∨ r(a, y)] . ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ 78 Для формулы F2 получаем   F2 ≡ ∀x∀y p(x) → [q(y) → ¬r(x, y)] ≡ ∀x∀y ¬p(x) ∨ ¬q(y) ∨ ¬r(x, y) . Наконец, преобразуем отрицание формулы G: В результате получаем следующее множество дизъюнктов: p(a), ¬d(y) ∨ r(a, y), ¬p(x) ∨ ¬q(y) ∨ ¬r(x, y), d(b), q(b). Приведем дерево резольвентного вывода: ¬p(x) ∨ ¬q(y) ∨ ¬r(x, y) ¬q(y) ∨ ¬r(a, y) ÌÃÒÓ ÌÃÒÓ p(a) ¬d(y) ∨ r(a, y) ¬q(y) ∨ ¬d(y) q(b) ¬d(b) d(b)  ÌÃÒÓ ÌÃÒÓ ÔÍ-12 В результате множество дизъюнктов противоречиво, т.е. формула F1 ∧ F2 → G является тавтологией, а формула G есть логическое следствие F1 и F2 . ÔÍ-12 ÔÍ-12 ÔÍ-12 ÔÍ-12 ¬G ≡ ∃x¬[d(x) → ¬q(x)] ≡ ∃x¬[¬d(x) ∨ ¬q(x)] ≡ ∃x[d(x) ∧ q(x)] ' d(b) ∧ q(b). ÔÍ-12 ÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÌÃÒÓ 15 15 17 22 3. Алгебра предикатов 3.1. Предикаты и кванторы . . . . . . . . . . . 3.2. Логико-математические языки . . . . . . . 3.3. Переименования и подстановки . . . . . . 3.4. Семантика логико-математического языка 3.5. Логические законы . . . . . . . . . . . . . 3.6. Замены . . . . . . . . . . . . . . . . . . . . 3.7. Упрощение формул . . . . . . . . . . . . . . . . . . . . 27 27 28 31 34 36 39 41 4. Исчисление предикатов 4.1. Построение теории P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2. Правила естественного вывода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3. Глобальные свойства теории P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 43 44 46 5. Генценовские формальные системы 5.1. Исчисление GV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2. Исчисление GP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 54 58 6. Примеры формальных теорий 6.1. Теория групп . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2. Формальная арифметика . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 61 64 7. Метод резолюций 7.1. Скулемовские функции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2. Метод резолюций для исчисления высказываний . . . . . . . . . . . . . . . . . . . 7.3. Метод резолюций для исчисления предикатов . . . . . . . . . . . . . . . . . . . . . 70 70 72 75 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ÌÃÒÓ 2. Исчисление высказываний 2.1. Основные положения теории N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Правила естественного вывода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3. Глобальные свойства теории N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ÔÍ-12 . . . . 2 2 4 6 10 ÔÍ-12 ÔÍ-12 1. Алгебра высказываний 1.1. Введение . . . . . . . . . . . . . . . . . 1.2. Алгебра логики . . . . . . . . . . . . . 1.3. Тавтологии и эквивалентность формул 1.4. Функции алгебры логики . . . . . . . . ÔÍ-12 79 ÌÃÒÓ ÔÍ-12 ОГЛАВЛЕНИЕ ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ Московский государственный технический университет имени Н.Э. Баумана ÌÃÒÓ Факультет «Фундаментальные науки» Кафедра «Математическое моделирование» ÌÃÒÓ À.Í. Êàíàòíèêîâ È ÒÅÎÐÈß ÀËÃÎÐÈÒÌΠÊîíñïåêò ëåêöèé ÔÍ-12 Москва 2009 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 Äëÿ ñòóäåíòîâ êàôåäðû ÈÓ9 ÌÃÒÓ ÌÃÒÓ ÌÀÒÅÌÀÒÈ×ÅÑÊÀß ËÎÃÈÊÀ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 8.1. Основные характеристики алгоритма Интуитивное понятие алгоритма. Его отличительные черты: дискретность, детерминированность, элементарность шагов, направленность, массовость). Работа алгоритма как вычисление функции. Понятие вычислимой функции. Алгоритм как функционирование абстрактной машины. 79 ÔÍ-12 К этому иногда добавляют условие локальности, заключающееся в том, что на каждом шаге используются результаты только ограниченного количества предыдущих шагов. Однако в силу конечности всех рассматриваемых процессов условие конечности всегда можно считать выполненным. Это условие носит скорее методологический характер. ÌÃÒÓ * ÔÍ-12 Алгоритм — одно из фундаментальных понятий не только современной математики, но и всего естествознания. Развитие информационных технологий и группы наук, обеспечивающих эти технологии, привело к тому, что понятие алгоритм“ стало одним из ключевых. ” Фундаментальность этого понятия означает, что мы не можем рассчитывать на точное определение алгоритма: это означало бы, что есть более фундаментальные понятия. Но эта ситуация с понятием алгоритм“ далеко не уникальна. Скажем, как определить, что такое ” энергия? Да, в теоретической механике, объектом исследований которой являются относительно простые физические объекты, можно точно сформулировать что такое энергия. В других физических дисциплинах это понятие приходится уточнять и расширять. В конечном счете оказывается, что энергия — нечто большее, нежели физический термин, это некоторая сторона нашего мироощущения. То же самое можно сказать о понятии алгоритм“. Мы можем выделить лишь некоторые ” отличающее это понятие черты. Какие же? Можно сказать, что алгоритм — это точное предписание, задающее вычислительный процесс, который начинается с произвольного объекта некоторой совокупности и направлен на получение полностью определяемого исходным объектом результата. Приведенное описание понятия можно уточнить, указав некоторые характерные черты алгоритма. 1. Дискретность: алгоритмический процесс расчленяется на отдельные шаги ограниченной сложности, каждый из которых состоит в непосредственной переработке полученных к этому моменту результатов. 2. Детерминированность: непосредственная обработка результатов на каждом шаге полностью определяется исходным объектом и результатами, полученными на предыдущих шагах* . 3. Направленность: алгоритмический процесс, примененный к исходному объекту, дает ре” шение задачи“ — заключительный объект. По-другому: на каждом шаге алгоритмического процесса известно, что является результатом. 4. Массовость: исходный объект может выбираться произвольно из некоторой бесконечной совокупности. Описание алгоритма даже с учетом перечисления характерных черт очень расплывчатое. Впрочем это не мешает, когда речь идет о поиске решения задачи. Конкретное описание решения можно непосредственно проанализировать и сказать, является это описание алгоритмом или нет. Приведем некоторые примеры. ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ 8. ОСНОВНЫЕ ПОНЯТИЯ ТЕОРИИ АЛГОРИТМОВ ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ Пример 8.3. Еще один известный алгоритм — алгоритм Гаусса решения линейных систем. Ограничимся крамеровскими системами, хотя это и не принципиально. Отметим, что этот алгоритм в некоторых ситуациях может приводит к делению на нуль и тем самым не давать решения, хотя решение существует (вопрос, для каких систем алгоритм Гаусса не работает?). Модификация алгоритма Гаусса с выбором главного элемента дает решение для любой крамеровской системы. Впрочем, последнее утверждение тоже следует считать условным: при работе с числами, имеющими фиксированное число знаков, алгоритм может аварийно останавливаться в двух случаях: переполнение и деление на нуль. ÔÍ-12 ÌÃÒÓ ÔÍ-12 Вообще говоря, в качестве объектов, которые перерабатываются алгоритмом, могут выступать в принципе любые объекты. Однако отметим два обстоятельства. Во-первых, все объекты, которые изучает математика могут быть представлены в числовой форме (в виде чисел и совокупностей чисел), причем все в конечном счете сводится к натуральным числам. Так, функция действительного переменного — это некоторое подмножество в R2 (то, что мы называем графиком функции), т.е. некоторое множество пар действительных чисел. В свою очередь, каждое действительное число можно представить в виде бесконечной десятичной дроби. Метод координат позволяет все геометрические объекты перевести в числовую форму. Во-вторых, используемые на практике алгоритмы работают не с самими объектами, а с их представлениями в том или ином языке. Все наши процессы обработки сводятся к переработке групп чисел с фиксированным числом разрядов (целых чисел), записанных в той или иной системе исчисления. Поэтому алгоритм можно интерпретировать как функцию нескольких переменных, аргументы и значения которой являются натуральными числами. Отметим, что не всякую целочисленную функцию можно связать с алгоритмом, поскольку алгоритм — это конечное предписание, а значит, их счетное число, а целочисленных функций — континуум. Значит, надо выделять специальный класс целочисленных функций, значение которых можно получить за конечное число элементарных действий. В литературе такие функции называют эффективно вычислимыми. Это понятие, как и алгоритм, относится к интуитивным, первичным. Фактически, эффективно вычислимая функция — это алгоритм, но как бы с другой точки зрения. Один из подходов в теории алгоритмов — представление алгоритма как теории эффективно вычислимых функций. Другой подход — представление алгоритма как процесса функционирования некоторой абстрактной машины. Исходный объект, представленный группой натуральных чисел, интерпретируется как исходной состояние абстрактной машины. В каждый момент времени (которое является дискретным) абстрактная машина из известного состояния пере- ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 Пример 8.2. Алгоритм Евклида вычисления наибольшего общего делителя — один из самых древних в истории математики. Чтобы найти наибольший общий делитель натуральных чисел p и q, делим p на q с остатком: p = α1 q + β1 . Затем второе число q делим первый остаток β1 с остатком: q = α2 beta1 + β2 . Затем делим β1 на β2 и т.д. Наступит момент, когда очередной остаток равен нулю: βk−1 = αk+1 βk . В этот момент процедура прекращается, а пользователю предъявляется решение: наибольший общий делитель — это число βk . Весь этот процесс можно представить себе как работу некоей машины-делителя. В начале мы вносим в нее исходные числа p и q и запускаем процесс. После остановки процесса извлекаем результат βk . Машина будет работать при любых натуральных числах и всегда будет давать ответ. ÌÃÒÓ ÌÃÒÓ Пример 8.1. Самые первые примеры алгоритмов — алгоритмы выполнения арифметических операций над числами, записанными в десятичной (или какой-то иной) системе исчисления. Попутно отметим, что алгоритмы эти работают не с самими числами,а с их представлениями. Можно себе представить, как надо выполнять арифметические операции над числами, записанными римскими цифрами. Во всяком случае ясно, что это будут совсем другие алгоритмы, заметно отличающиеся от привычных нам. ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ИУ-9, МЛТА, 2009-10 уч.г. ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ 80 ÌÃÒÓ Как отмечено, на объекты, которые перерабатываются алгоритмами, накладываются серьезные ограничения. В связи с этим возникает понятие конструктивный объект, под которым понимается такой объект, который создан из конечного числа простейших объектов и в котором эти простейшие составляющие могут быть легко локализованы. Обычно считают, что простейших объектов конечное множество. Таким образом, конструктивный объект — ÔÍ-12 Объекты с которыми работает алгоритм. Конструктивные объекты. Алфавит. Слова. Конкатенация. Подслова и вхождения. ÌÃÒÓ 8.2. Конструктивные объекты ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ходит в другое состояние, строго определенное исходным состоянием. Некоторые состояния являются конечными. Достигнув такого состояния, машина выплевывает“ результат. ” Оба этих подхода являются ограничением исходного интуитивного понятия алгоритм“. ” Есть несколько целей такого ограничения. Во-первых, общее понятие алгоритма слишком обширно, чтобы о нем можно было сказать что-то содержательное. (Аналогично что можно сказать о функции действительного переменного вообще? Чтобы получить какую-то теорию, мы ограничиваем этот слишком широкий класс функций, вводя понятие непрерывности, дифференцируемости и т.п.) Во-вторых, теория алгоритмов начиналась с решения вполне конкретных задач, в первую очередь задач математической логики и оснований математики. Для таких целей общее понятие алгоритма не нужно. Наконец, в-третьих, для решения проблем разрешимости формальных теорий, когда требуется установить отсутствие алгоритмов, решающих задачу, необходимо математически точное определение алгоритма, а это без ограничения понятия невозможно. Исторически сложились три подхода к формальному определению алгоритма: 1) машины Тьюринга — Поста, предложенные Тьюрингом и независимо от него Постом в 1936 г.; 2) частично рекурсивные функции, предложенные Клини в 1936–37 гг.; 3) нормальные алгорифмы Маркова (1951 г.). Все эти подходы объединяют общим понятием вычислительная модель“. Указанные три ” вычислительные модели обладают важным свойством представительности. Это свойство заключается в том, что любой алгоритм со счетным множеством исходов X и со счетным множеством результатов Y может быть реализован в рамках данной вычислительной модели. Утверждение такого сорта не может быть доказано математическими средствами, поскольку общее понятие алгоритма выходит за рамки математики. Его истинность может быть лишь подтверждена практикой. Оно известно как тезис Черча, который впервые был сформулирован для рекурсивных функций в форме: любая эффективно вычислимая функция является ” частично рекурсивной“. Однако отметим, что эквивалентность вычислительных моделей может быть доказана математически строго. В связи с понятием алгоритм“ вспомним другое понятие исчисление“, под которым в ” ” рамках математической логики имелось в виду логическое исчисление (т.е. исчисление математической логики). В общем исчисление представляет собой некий алфавит и набор правил, каждое из которых позволяет заменять то или иное слово другим. Процесс применения правил — это вывод. Вывод начинается с применения одного из правил с пустой посылкой, которые обычно формулируют в виде аксиом. Это действительно похоже на применение алгоритма, но отличается от алгоритма следующим. Если алгоритм носит повелительный характер (из данного слова мы можем перейти к другому только одним способом — детерминированность алгоритма), то исчисление носит разрешительный характер (для преобразования данного слова мы можем применять любое из возможных правил). Можно сказать, что алгоритмический процесс — это линейный вывод, в то время как вывод в исчислении носит древовидный характер. Связь между алгоритмами и исчислениями можно уловить из дальнейшего изложения. ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 81 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 8. Основные понятия теории алгоритмов ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 Слова в данном алфавите A можно соединять. Если X и Y — слова, то под XY (или X · Y будем понимать слово полученное присоединением к слову X справа слова Y . Например, если A = {a, b}, X = abb, Y = baba, то XY = abbbaba. Такая операция часто называется конкатенацией (соединением). Мы используем для нее мультипликативную форму записи операции ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 Пример 8.4. Алфавит, содержащий единственную букву, например I, позволяет представить слова Λ, I, II, III, IIII, . . . Эти слова можно отождествить с натуральными числами (при этом пустое слово будет соответствовать числу 0, которое в математической логике и теории алгоритмов считают натуральным). Введение дополнительного символа − позволяет записывать и другие целые числа: −I, −II. Есть, правда и другие слова, например II−III, которые можно рассматривать как запись разности двух натуральных чисел. Но есть и такое слово: I−II−III. Как его рассматривать? Ему также можно придать смысл, установив порядок выполнения операций. Но есть и другой вариант действий: объявить, что не все слова являются правильными. В принципе это естественно: те слова, которые у нас будут возникать, будут порождаться определенными правилами. Некоторые слова, которые вообще-то состоят из букв данного алфавита, не могут появиться, поскольку для них нет порождающих правил. Если считать, что мы можем добавить к слову символ − только если это слово пустое, а символ I можем добавлять только справа, то получим только правильные“ записи целых чисел. ” Пример 8.5. Терминология буква“ — алфавит“ — слово“ уже встречалась в курсе ” ” ” математической логики. Однако там под буквой понималась переменная, а алфавит автоматически считался счетным множеством. На самом деле требование счетности с точки зрения конструктивности не обременительно. Формальную теорию можно было строить и с конечным алфавитом. Например, рассмотрим алфавит с буквами V , C, F , P , I, #. Эти буквы позволяют порождать слова вида V III#, образующие уже новый счетный алфавит. Здесь первая буква определяет тип символа (в данном случае V — переменная), последующие символы — порядковый номер (в данном случае три), а последняя буква — признак конца этого микрослова. Эти микрослова можно соединять в любом порядке, но при этом всегда сохраняется возможность выделять эти образования в большом слове. В логико-математическом языке это дополнительное построение не вносит ничего нового, но усложняет теоретические построения. ÌÃÒÓ ÌÃÒÓ это конечный объект, т.е. представляет собой конечное множество. Однако не всякое конечное множество конструктивно. Требуется, чтобы по объекту можно было понять и историю его создания из простейших. Например, само по себе натуральное число, как мера количества, не является конструктивным объектом. Однако его легко превратить в конструктивный, если рассматривать десятичную запись натурального числа. При этом простейшими объектами являются десятичные цифры. На самом деле можно ограничиться лишь одним символом: I —1, II — 2, III — 3 и т.д. Как видим понятие конструктивного объекта легко укладывается в терминологию бу” ква“ — алфавит“ — слово“. При этом алфавит —- произвольное конечное множество, эле” ” менты которого мы называем буквами, слово — произвольный упорядоченный набор букв (кортеж). Разумеется, в качестве букв, составляющих алфавит, мы будем выбирать не отвлеченные объекты (например, автомобили в г. Москва), а привычные языковые символы (буквы латинского, греческого алфавитов, кириллицы и др.). Порядок в конечном множестве можно рассматривать как установление взаимно-однозначного (биективного) соответствия между элементами множества и некоторым отрезком натурального ряда. Однако в данном случае проще считать понятия меньше“ — больше“ синонимами понятий левее“ — правее“ при записи ” ” ” ” кортежа. Единственное здесь уточнение: мы не будем использовать для записи кортежа разделителей, поскольку объекты, составляющие кортеж, неделимы. Напомним, что существует формальный объект, называемый пустым кортежем, который есть пустое множество букв алфавита. Такое множество можно считать упорядоченным априори. Пустой кортеж (пустое слово) будем обозначать символом Λ. ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ИУ-9, МЛТА, 2009-10 уч.г. ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ 82 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 83 (т.е. трактуем как умножение). Отсюда понятны обозначения Y 0 = Λ (поскольку нейтральным элементом по конкатенации является пустое слово), Y k = Y k−1 Y , k = 1, 2, . . . Отметим и другую терминологию, связанную с понятиями алфавит“, слово“ и уже встре” ” чавшуюся в курсе математической логики. Количество символов в слове X называется длиной слова X. Так, для алфавита A множество Ar представляет собой совокупность всех слов длиS r ны r. Объединение A , обозначаемое как A∗ , есть множество всех слов в алфавите A. ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 8. Основные понятия теории алгоритмов ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ Итак, объектами, над которыми работают алгоритмы, являются слова в некотором алфавите A. Результат работы алгоритма можно представить как своего рода правило, которое каждому слову из некоторого множества X ⊂ A∗ ставит в соответствие другое слово. Значит, с каждым алгоритмом можно связать отображение ϕ: X → A∗ , называемое словарной функцией. Такая функция называется частичной, если X 6= A∗ , и полностью определенной, если X = A∗ . Вообще говоря, естественно пробовать применять алгоритм (как отображение) к любому слову в данном алфавите. Тогда возможны три сценария завершения работы алгоритма. В стандартном сценарии мы получаем новое слово как результат работы алгоритма. Во втором сценарии мы на очередном шаге можем получить слово, к которому элементарные операции, используемые в алгоритме, не применимы. В этой ситуации работа алгоритма прекращается безрезультатно (например, деление на нуль в ряде численных алгоритмов). Мы можем модифицировать алгоритм, считая, что в данной ситуации он прекращает работу, а его результатом является некое заранее оговоренное слово (например ERROR). Наконец, возможен третий сценарий, когда алгоритм зацикливается“. Простейший вариант такой ситуации — повторение ” результатов, получаемых на каждом шаге. Но такое повторение не обязательно. Исходя из изложенного можно сказать, что алгоритм — это многократное применение некоторой словарной функции, начинающееся с некоторого исходного слова. Этот процесс останавливается, если на очередном шаге выполнено условие останова или слово, полученное на предыдущем шаге, вышло за пределы области определения словарной функции. Мы видим, что исследование алгоритмов по существу есть исследование словарных функций и решение задач представимости одних словарных функций с помощью других. ÔÍ-12 Замечание 8.1. Слова — не единственный конструктивный объект, который можно построить с помощью данного алфавита. Другим простейшим конструктивным объектом являются деревья. Пусть задан алфавит A. Рассмотрим ориентированное дерево, вершины которого помечены буквами алфавита A, а дуги, исходящие из одной вершины, упорядочены, например маркировкой натуральными числами. Такое дерево назовем A-деревом. Максимальная степень исхода k по вершинам дерева может служить мерой сложности этого дерева. (A, k)-деревом называют любое A-дерево, максимальная степень исхода которого не превышает k. Слова над алфавитом A можно рассматривать как (A, 1)-деревья. В то же время любое (A, k)-дерево можно по определенным правилам преобразовать в слово. Так что с теоретической точки зрения новые конструктивные объекты не дают ничего нового. # ÌÃÒÓ ÌÃÒÓ r>0 Если слово Y представимо в виде Y = ZXW , где Z и W могут быть и пустыми, то слово X называется подсловом слова Y . В частности, каждое слово является подсловом самого себя, а пустое слово является подсловом любого другого. У слова Y может быть несколько представлений вида Y = Z1 XW1 = Z2 XW2 = . . . Эти представления можно упорядочить по возрастанию длин подслов Z1 , Z2 и т.д. При этом говорят о первом вхождении, втором и т.п. слова X В слово Y . Так, первое вхождение пустого подслова — в самом начале слова. Также говорят слово X входит в слово Y “, имея ввиду, что X есть подслово слова Y . ” Если в представлении Y = ZXW подслово Z пустое, т.е. на самом деле Y = XW , то подслово X называется началом слова Y . Аналогично вводится понятие конца слова. Подслово (начало слова, конец) называется собственным, если оно не совпадает со всем словом и не является пустым. ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ОГЛАВЛЕНИЕ 79 79 81 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 8. Основные понятия теории алгоритмов 8.1. Основные характеристики алгоритма . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2. Конструктивные объекты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ÌÃÒÓ ÔÍ-12 84 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ Московский государственный технический университет имени Н.Э. Баумана ÌÃÒÓ Факультет «Фундаментальные науки» Кафедра «Математическое моделирование» ÌÃÒÓ À.Í. Êàíàòíèêîâ È ÒÅÎÐÈß ÀËÃÎÐÈÒÌΠÊîíñïåêò ëåêöèé ÔÍ-12 Москва 2009 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 Äëÿ ñòóäåíòîâ êàôåäðû ÈÓ9 ÌÃÒÓ ÌÃÒÓ ÌÀÒÅÌÀÒÈ×ÅÑÊÀß ËÎÃÈÊÀ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 9. НОРМАЛЬНЫЕ АЛГОРИФМЫ МАРКОВА ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 84 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÌÃÒÓ Вообще говоря, в русском языке используют написания алгоритм“ и алгорифм“ как равноценные. Слово” ” сочетание нормальный алгорифм Маркова“ используется как установившийся термин. ” ÔÍ-12 * ÌÃÒÓ Мы считаем, что задан некоторый конечный алфавит, и рассматриваем разные способы преобразования слов в этом алфавите. В качестве базовой операции рассмотрим так называемую контекстную замену. При этой операции определенное подслово данного слова заменяется на другое слово. Иными словами, если исходное слово имеет вид X = Y ∗ W ∗ Z, то контекстная замена W → V приводит к слову X 0 = Y ∗ V ∗ Z. Существует несколько вариантов контекстной замены, которые различаются по своему действию при нескольких вхождениях подслова и наличием специальных подстановочных знаков. Мы остановимся на простейшей операции, при которой заменяется только первое вхождение данного слова. Нормальный алгорифм Маркова* определяется некоторым непустым конечным упорядоченным набором формул вида W → V в заданном алфавите A, где W и V — произвольные слова в A (одно из двух слов может быть пустым). Каждая такая формула относится к одной из двух категорий: первая категория — простые формулы, вторая — терминальные (заключительные). Терминальные формулы выделяют, ставя обычно точку после стрелки, например abba →· ab. Здесь предполагается, что символы → и · не входят в алфавит A. Указанный упорядоченный набор формул называют схемой нормального алгорифма в алфавите A. Действие нормального алгорифма состоит в пошаговом преобразовании исходного слова с помощью контекстной замены. Формально это действие на одном шаге описывается следующим образом. Пусть X — текущее слово. Последовательно просматривается список формул в схеме алгоритма начиная с первой. Для очередной формулы вида W →∗ V , где символ ∗ обозначает или пустое слово, или точку, ищется первое вхождение слова W в слове X. Если такое вхождение найдено, выполняется подстановка вместо этого вхождения слова V . При этом, если формула подстановки терминальная, работа алгоритма заканчивается. Если вхождений нет, переходим к следующей формуле схемы. Если все формулы схемы проанализированы, но вхождений не найдено, алгоритм заканчивает работу. Введем некоторые обозначения. Алгоритмы будем обозначать готическими буквами: A, B и т.д. Если слово X преобразуется в слово Y с помощью простой подстановки, будем писать A: X ` Y и говорить, что алгоритм A переводит X в Y . В аналогичной ситуации при терминальной подстановке пишем A: X ` · Y и говорим, что алгоритм A терминально переводит X в Y . Если в слове X не может быть выполнена ни одна подстановка схемы, будем писать A: Xa и говорить, что алгоритм A не переводит слово X. Предположим, что в результате работы алгоритма A мы получили последовательность слов X = X0 , X1 , . . . , Xk = Y , где A: Xj−1 ` Xj , j = 0, k − 1. Тогда будем обозначать A: X   Y и говорить, что алгоритм A преобразует X в Y . Если на последнем шаге A: Xk−1 ` · Xk , т.е. последнее слово в последовательности получено применением терминальной подстановки, то будем писать A: X  · Y и говорить, что алгоритм A преобразует X в Y терминально. Короче: переводит“ за один шаг, преобразует“ за конечное число шагов, терминально“ — ” ” ” ÔÍ-12 ÔÍ-12 Алфавит и подстановки. Схемы. Нормальный алгорифм Маркова. Терминология. Примеры НА. Эквивалентные НА. Принцип нормализации. ÌÃÒÓ ÌÃÒÓ 9.1. Определение ÌÃÒÓ ÌÃÒÓ 85 ÌÃÒÓ ÔÍ-12 Пример 9.2. Рассмотрим нормальный алгорифм со схемой из одной формулы → P . Такой алгорифм неприменим ни к какому слову, поскольку на каждом шаге подстановка срабатывает и приводит к вставке в начало слова фрагмента P , т.е. мы получаем неограниченную последовательность X, P X, P P X, . . . Отметим, что отсутствие в схеме терминальных подстановок еще не означает, что алгоритм неприменим к любому слову. Может образоваться последовательность слов, завершающаяся непереводимым словом. Это тоже считается нормальным завершением работы алгоритма. ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 Пример 9.3. По-видимому, можно строго показать, что ни один нормальный алгорифм в алфавите A не реализует вставку в конец любого слова фрагмента P . В чем проблема? На последнем шаге должна произойти замена какого-то подслова в конце слова фрагментом P . Но не факт, что это подслово не имеет других вхождений. Возможная стратегия такова. Нужна ÌÃÒÓ Как добавить фрагмент в конец слова? Это более сложная задача, чем добавление фрагмента в начало слова. Условимся о следующем. В формулах подстановки будем использовать специальные символы, не входящие в алфавит (для этих символов будем использовать греческий алфавит). На содержательном уровне эти символы играют ту же роль, что и символ ?“ ” в имени файла, т.е. в левой части такой символ обозначает произвольный символ алфавита (но не пустое слово), а в правой части — тот символ алфавита, на который указывает этот же символ в левой части. С формальной стороны использование такого символа, например ξ, означает, что для каждого символа алфавита в формуле подстановки ξ заменяется на этот символ, давая тем самым конкретную формулу подстановки. Иначе говоря, если в формуле есть специальный символ, то это не формула подстановки, а схема формул. Каждая схема формул дает конечный набор конкретных формул, который и подразумевается взамен схемы формул. Например, пусть дан алфавит A = {a, b, c}. Тогда запись aξ → ξa обозначает три формулы подстановки: aa → aa, ab → ba, ac → ca. Чтобы фиксировать порядок формул подстановки в схеме алгоритма при замене схем формул условимся, что алфавит считается упорядоченным. Тогда в каждой схеме формул выбираем самый первый (левый) специальный символ и, последовательно его заменяя в схеме символами алфавита от первого до последнего, получим набор формул, который и заменяет исходную схему формул. Если в новых формулах остаются специальные символы, процедуру повторяем. ÔÍ-12 ÔÍ-12 Пример 9.1. Рассмотрим некоторый алфавит A и схему из одной подстановки →· P , где P — некоторое фиксированное слово. Соответствующий алгоритм AP применим к любому слову и за один шаг приписывает к любому слову слово P , т.е. AP (X) = P ∗ X. Отметим, что подстановка с пустой левой частью применима всегда и первое вхождение пустой строки — перед первым символом слова. Если в схему алгоритма добавить какие-то другие подстановки, они никогда не будут использованы. Поэтому подстановки с пустой левой частью уместны в конце схемы. ÌÃÒÓ последняя подстановка (возможно, единственная) терминальная. По определению считаем, что для любого слова A: X  X. С каждым нормальным алгорифмом связывается словарная функция, которую мы будем обозначать так же, как и сам алгоритм. Для произвольного слова X ∈ A∗ применение нормального алгорифма приводит к одному из трех результатов: 1) на некотором k-м шаге мы получаем слово Xk , для которого A: Xk−1 ` · Xk ; 2) на некотором k-м шаге мы получаем слово Xk , для которого A: Xk a ; 3) алгоритм продолжает работу неограниченное число шагов. В первых двух случаях считаем слово Xk результатом работы алгоритма и записываем Xk = A(X) (как значение словарной функции). При этом также говорим, что алгоритм A применим к слову X и пишем !A(X). В третьем случае говорим, что алгоритм A неприменим к слову X и пишем ¬!A(X). ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 9. Нормальные алгорифмы Маркова ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ИУ-9, МЛТА, 2009-10 уч.г. какая-то комбинация символов, которая гарантированно не встретится при работе алгоритма. Пусть это будет слово S. Тогда можно составить такую схему: (Sξ → ξS, S →· P, → S). Предполагая, что в исходном слове подслово S не встретится, заключаем, что на первом шаге применяется 3-я подстановка, которая в начало слова вставляет фрагмент S. Далее работает первая схема подстановок, которая любую букву справа от S переставляет в позицию перед S. Первая схема будет пропущена, когда S окажется в конце слова. Тогда сработает вторая подстановка, которая заменит S на P и остановит работу. / A. Еще одно решение — расширение алфавита A добавлением к нему еще одной буквы a ∈ Тогда схема (aξ → ξa, a →· P, → a) ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ 86 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ В связи с последним примером введем некоторые понятия. Если алфавит B как часть содержит алфавит A, то говорим, что B есть расширение A. Запись этого обычная: A ⊂ B. Формально считаем, что каждый алфавит есть расширение самого себя (т.е. подразумевается нестрогое включение). Мы говорим, что A — алгоритм над алфавитом A, если A — алгоритм в некотором расширении B алфавита A. Формально алгоритм в алфавите A является алфавитом над A. Как связаны алгоритм и алфавит? В схеме алгоритма есть некоторый набор символов. Если алфавит содержит все эти символы (но может содержать и еще какие-то символы), то алгоритм в этом алфавите. Если часть символов схемы не входит в алфавит (такие символы можно назвать служебными), то это алгоритм над алфавитом. Как видим жесткой связи между двумя понятиями нет. В принципе мы можем взять любую схему и рассматривать ее как алгоритм над любым алфавитом. Однако если эта парочка несогласована, не следует думать, что алгоритм будет работать так, как мы задумали. Пусть A — некоторый алфавит. Назовем алгоритмы A, B над алфавитом A эквивалентными относительно A, если для любого слова X ∈ A∗ выполнены условия: • если !A(X) и A(X) ∈ A∗ , то !B(X) и B(X) = A(X); • если !B(X) и B(X) ∈ A∗ , то !A(X) и A(X) = B(X). Приведенное определение равносильно тому, что два алфавита A и B либо оба неприменимы к слову X ∈ A∗ , либо оба применимы, причем два результата либо равны, либо выходят за пределы алфавита A. Алгоритмы A, B над алфавитом A назовем вполне эквивалентными относительно A, если для любого слова X ∈ A∗ либо оба неприменимы к X, либо оба дают одинаковый результат, т.е. либо ¬!A(X) ∧ ¬!B(X), либо !A(X)∧!B(X) ∧ (A(X) = B(X)). В дальнейшем для любых алгоритмов A и B и любого слова X будем использовать запись A(X) ' B(X), если либо оба алгоритма неприменимы к слову X, либо оба они применимы и дают одинаковый результат. Выражение A(X) ' B(X) будем называть условным равенством. С помощью этого понятия можно сказать, что алгоритмы A и B вполне эквивалентны относительно алфавита A, если A(X) ' B(X) для любого X ∈ A∗ . В этом случае часто пишут A ' B. Принцип нормализации. Всякий алгоритм в алфавите A вполне эквивалентен относительно A некоторому нормальному алгорифму над алфавитом A. Этот принцип не является строгим математическим утверждением, поскольку здесь есть не определенное с математической точки зрения понятие: алгоритм в алфавите A. Здесь имеется ввиду, некая механическая процедура, которая для любого слова в алфавите A дает результат — слово в том же алфавите или оказывается неприменимым к этому слову. Но и такое пояснение не есть строгое математическое определение. ÔÍ-12 ÔÍ-12 даст нормальный алгорифм, который к любом слову в алфавите A добавит в конце фрагмент P . ÌÃÒÓ Теорема 9.1. Пусть A — произвольный алфавит, B и C — его расширения, введенные выше. Тогда отображение τ обладает следующими свойствами: 1) отображение τ — мономорфизм, т.е. из равенства X τ = Y τ следует равенство X = Y ; 2) равенство X τ = X верно тогда и только тогда, когда X ∈ A∗ . J Следует проверить пошаговую работу алгоритма: если утверждение теоремы верно для любого алгоритма, то оно верно и для алгоритма, в котором все подстановки имеют статус терминальных. Такой алгоритм выполняет в точности то же, что и заданный, но останавливается после первого шага. Для этого достаточно убедиться, что произвольная подстановка ÔÍ-12 Теорема 9.2 (о переводе алгоритма). Пусть A — произвольный алфавит, B и C — построенные выше его расширения, A — нормальный алгорифм в алфавите C. Тогда для любого слова X ∈ C ∗ выполнено равенство Aτ (X τ ) ' A(X)τ . При этом Aτ (X) ' A(X)τ , если X ∈ A∗ , и Aτ (X) ' A(X), если X ∈ A∗ и A(X) ∈ A∗ . ÌÃÒÓ Мономорфизм τ , согласно доказанной теореме, устанавливает взаимно однозначное соответствие между множеством C ∗ всех слов в алфавите C и некоторым множеством слов в алфавите B. Это соответствие позволяет реализовать любую словарную функцию в алфавите C как словарную функцию в алфавите B. Для нормального алгорифма A в алфавите C со схемой (P1 →∗ Q1 , P2 →∗ Q2 , Pk →∗ Qk ) рассмотрим нормальный алгорифм Aτ в алфавите B со схемой (P1τ →∗ Qτ1 , P2τ →∗ Qτ2 , Pkτ →∗ Qτk ). Этот алгоритм будем называть переводом нормального алгорифма A из алфавита C в алфавит B. ÔÍ-12 J Второе свойство очевидно. Действительно, если X ∈ A∗ , то его переводом, согласно определению является оно само, поскольку перевод осуществляется побуквенно. Если X ∈ / A∗ , то в X есть одна из букв t1 , . . . , tn . Значит в слове X τ появляются буквы p и q, т.е. X τ ∈ / A∗ . Рассмотрим первое свойство. Пусть X 6= Y . Обозначим X = x1 x2 . . . xm , Y = y1 y2 . . . yl . Найдется такой индекс i, что x1 = y1 , . . . , xi−1 = yi−1 , но xi 6= yi . Тогда X τ имеет вид τ τ . Однако yiτ . . .. В данном случае xτ1 = y1τ , . . . , xτi−1 = yi−1 xτ1 . . . xτi−1 xτi . . ., а Y τ — вид y1τ . . . yi−1 τ τ τ τ xi 6= yi . Поэтому X 6= Y . I ÌÃÒÓ ÔÍ-12 ÌÃÒÓ Введенное понятие эквивалентности алгоритмов по существу означает, что эти алгоритмы дают одинаковые результаты. Предполагается, что эти алгоритмы действуют в одном алфавите. Однако ясно, что один и тот же алгоритм (в содержательном смысле) можно реализовывать в разных алфавитах (подобно тому, что одни и те же знания можно описать разными языками). Как осуществлять перенос алгоритма в другой алфавит? Отметим, что, каков бы ни был по существу перевод алгоритма из одного алфавита в другой, этот перевод — тоже алгоритм. Пусть задан алфавит A и его некоторое расширение C = A ∪ {t1 , t2 , . . . , tn }. Выберем еще две буквы p и q, не входящие в C, и введем еще одно расширение алфавита A — алфавит B = A ∪ {p, q}. Поставим задачу о переносе алгоритмов в алфавите C на алфавит B. Такой перенос может строиться как перенос соответствующих словарных функций с одного алфавита на другой. А для этого необходимо установить соответствие между словами в двух алфавитах. Если буква x ∈ C есть буква алфавита A, то ее переводом в алфавит B будет она сама, т.е. xτ = x, если x ∈ A. Если x = ti , то полагаем xτ = pq i p (степень — в смысле операции конкатенации). Наш перевод должен сохранять операцию конкатенации. Значит, (XY )τ = X τ Y τ , в частности, если X = x1 x2 . . . xk , то X τ = xτ1 xτ2 . . . xτk . Последняя формула — это определение отображения τ : C ∗ → A∗ . Довольно очевидно, что это отображение сохраняет операцию, т.е. является гомоморфизмом одного моноида в другой. Также очевидны следующие свойства этого отображения. ÔÍ-12 ÔÍ-12 Постановка задачи о переводе. Лемма о взаимно однозначном соответствии. Теорема о переводе. Теорема о приведении (к двухбуквенному алфавиту). ÌÃÒÓ ÌÃÒÓ 9.2. Теорема о переводе и теорема приведения ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 87 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 9. Нормальные алгорифмы Маркова ÌÃÒÓ Теорема 9.3 (о приведении к двухбуквенному алфавиту). Пусть A — произвольный алфавит, p и q — две разные буквы, не входящие в A. Тогда любой нормальный алгорифм над A эквивалентен относительно A некоторому нормальному алгорифму в алфавите A ∪ {p, q}. J Пусть A — нормальный алгорифм над алфавитом A и t1 , t2 , . . . , tn — множество всех букв, использованных в схеме A, но не входящих в алфавит B = A ∪ {p, q}. Тогда A — нормальный алгорифм в алфавите C = A ∪ {t1 , t2 , . . . , tn }. Построим перевод τ из алфавита C в алфавит B. Согласно теореме 9.2, имеем Aτ (X τ ) ' A(X)τ , причем, если X ∈ A, A(X) ∈ A, то Aτ (X) ' A(X). Это означает, что алгоритмы A и Aτ эквивалентны. При этом Aτ — алгоритм в алфавите B. I ÔÍ-12 9.3. Операции над нормальными алгорифмами Расширение НА. Замыкание. Композиция. Соединение. Разветвление. Повторение. ÔÍ-12 Расширение алфавита. Как было отмечено, нормальный алгорифм слабо связан с алфавитом, над которым он действует. Одна и та же схема порождает алгоритмы над разными алфавитами. Различие между такими алгоритмами — лишь в области применимости. Рассмотрим два варианта расширения нормального алгорифма. Пусть A — нормальный алгорифм над алфавитом A, заданный схемой T = {P1 →∗ Q1 , . . . , Pn →∗ Qn }. Алгоритм Ae , который над алфавитом B ⊃ A задан в точности той же схемой T , называется естественным расширением алгоритма A. Этот алгоритм вполне эквивалентен исходному алгоритму, поскольку расширение алфавита никак не отражается на его работе, если исходное слово берется в алфавите A. Однако фактическая область применимости при этом расширяется, при ÌÃÒÓ Над алфавитами можно выполнять различные операции. Комбинируя определенным образом алгоритмы, можно получать новые алгоритмы. В некоторых ситуациях такое комбинирование не затрагивает сути комбинируемых алгоритмов. В таких ситуациях возникает операция над алгоритмами. Поскольку для нас важна не формальная запись алгоритма, а выполняемое им действие, операции над алгоритмами могут выполняться с точностью до эквивалентности, т.е. эквивалентные алгоритмы мы не различаем. ÌÃÒÓ ÔÍ-12 ÌÃÒÓ (здесь B — алгоритм со схемой из единственной подстановки P →· Q). Покажем, что каждому вхождению фрагмента P τ в слово X τ соответствует вхождение фрагмента P в слово X. Достаточно рассмотреть случай, когда P — это одна буква. Пусть Y = X τ = y1 y2 . . . ym и вхождение фрагмента P τ начинается с буквы yj . Если P ∈ A, то P τ = P , это единственная буква yj ∈ A. Эта буква не входит в слова tγi = pq i p. Значит, в слове X букве yj соответствует та же буква. Если P = ti , то yj = p и не является буквой алфавита A. При этом yj+1 = q, а буквенная пара pq в слове Y обозначает начало перевода xτl некоторой буквы xl слова X. Аналогично слово P τ заканчивается парой qp, что соответствует концу перевода в слове X τ . Наконец, фрагмент Y τ содержит всего лишь две буквы p, а значит в слове X τ может соответствовать переводу только одной буквы. Тем самым показано, что если существует вхождение слова P τ в слово X τ , то буква P входит в слово X. Отсюда легко сделать вывод, что для произвольного слова P из существования вхождения P τ в X τ следует существование вхождения P в X. I ÔÍ-12 ÔÍ-12 Bτ (X τ ) = V1τ Qτ V2τ = (V1 QV2 )τ = B(X)τ ÌÃÒÓ ÌÃÒÓ P → Q применима к слову X ∈ C ∗ тогда и только тогда, когда подстановка применима к слову X τ , причем результат второй есть перевод результата первой. Если X = V1 P V2 , то по свойствам операции перевода X τ = V1τ Qτ V2τ , и мы видим, что подстановка P τ → Qτ применима к слову X τ , причем ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ИУ-9, МЛТА, 2009-10 уч.г. ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ 88 ÌÃÒÓ Пример 9.4. Рассмотрим алгоритм A над алфавитом A со схемой   ∗ξ → ξ∗, ∗ →· P,   Λ → ∗, Пример 9.5. Рассмотрим алгоритм A над алфавитом A со схемой   ∗ξ → ξ∗, ∗ →· P,  Λ → ∗, ÔÍ-12 Замыкание. В общем случае есть два сценария прекращения работы нормального алгорифма: по терминальной подстановке и по отсутствию подходящей подстановки. Можно модифицировать алгоритм так, что второй сценарий никогда не будет случаться. Такая модификация называется замыканием нормального алгорифма. Выполняется замыкание добавлением в конец схемы подстановки Λ →· Λ. Наличие подобной подстановки в конце схемы означает, что при любом варианте подстановка произойдет, т.е. прекращение работы алгоритма по отсутствию подходящей подстановки никогда не происходит. ÌÃÒÓ Нетрудно увидеть, что этот алгоритм неприменим ни к одному слову в алфавите A: на первом шаге в начало слова вставляется символ ∗, а далее работает только первая подстановка, приводящая к зацикливанию. Мы видим, что наличие в схеме одной из новых букв может привести к алгоритму, не эквивалентному исходному. ÔÍ-12 где символ ∗ не входит в A. Этот алгоритм добавляет в конец слова из алфавита A слово P (которое можем считать словом в алфавите A). Рассмотрим алфавит B = A∪{∗} и формальное расширение Af алгоритма A, расширив его схему:  ∗ → ∗,    ∗ξ → ξ∗,  ∗ →· P,    Λ → ∗. ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 называется формальным расширением алгоритма A. Если в схему не входят новые буквы (из множества B \ A), в частности, если A — алгоритм в алфавите A, то добавление новых подстановок не отразится на работе алгоритма, начинающейся со слова в алфавите A, т.е. новый алгоритм вполне эквивалентен исходному. Однако алгоритм Af неприменим к словам, содержащим хотя бы одну новую букву. Другими словами, формальное расширение алгоритма сохраняет область применимости алгоритма. ÌÃÒÓ ÌÃÒÓ этом действие алфавита может зависеть от того, входят ли новые буквы (т.е. из B \ A) в схему или нет. При втором варианте расширения алфавита мы также сохраняем эквивалентность алгоритма относительно A, но сохраняем также и область применимости. Пусть A — нормальный алгорифм над алфавитом A, заданный схемой T = {P1 →∗ Q1 , . . . , Pn →∗ Qn }. Алгоритм Af над B ⊃ A со схемой   ξ → ξ, ξ ∈ B \ A,      P1 →∗ Q1 , P2 →∗ Q2 ,    . . . . . . . . . .    P →∗ Q n n ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 89 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 9. Нормальные алгорифмы Маркова ÌÃÒÓ Теорема 9.4. Пусть A — произвольный алфавит. Замыкание A алгоритма A вполне эквивалентно исходному алгоритму A. B Рис. 9.1 ÔÍ-12 A ÌÃÒÓ Композиция нормальных алгорифмов. Алгоритм A (в нашем понимании нормальный алгорифм) перерабатывает исходное слово X в некоторое слово Y , т.е. задает некоторое отображение (словарную функцию) A: D → A∗ , D ⊂ A∗ , т.е. частичную словарную функцию. Для таких функций есть привычная и естественная операция — композиция. Отображение B ◦ A — это функция B(A(X)), областью определения которой является множество A−1 (dom(B)), где dom(B) — область определения функции B, а A−1 (Y ) — стандартное обозначение полного прообраза множества Y . Два алгоритма A и B задают словарную функцию B◦A, которая описывает последовательное применение двух алгоритмов (рис. 9.1). Ясно, что эта функция эффективно вычислимая (налицо конечная последовательность правил, описывающих получение значения этой функции). Однако возникает вопрос: можно ли эту функцию задать нормальным алгорифмом? Исходя из принципа нормализации мы должны дать положительный ответ. Но принцип — всего лишь надежда, возможно уверенность, но никак не строгое математическое утверждение. Мы постоянно должны подтверждать этот принцип, проверяя его в конкретных ситуациях, как и в ситуации с композицией. ÔÍ-12 J Утверждение почти тривиально. Пусть X — исходное слово. Если в алгоритме gA есть подстановка τ , применимая к X, то эта же подстановка есть и в алгоритме A, причем множество подстановок в схеме A, предшествующих τ , совпадает с множеством подстановок схемы A, предшествующих τ . Значит, если к слову X в алгоритме A будет применена подстановка τ , то и в алгоритме A будет применена она же. В этом случае результаты работы двух алгоритмов будут одинаковы, т.е. они дают одно и то же преобразование слова X и имеют одно и то же условие прекращения работы (это условие — терминальность τ ). Если в алгоритме A нет ни одной подстановки, применимой к X, то этот алгоритм прекращает работу и итогом этой работы будет слово X. Для алгоритма A это означает, что к слову X может быть применена только последняя подстановка Λ →· Λ. В результате его применения слово X не изменится, а алгоритм завершит работу. Мы видим, что и в этом случае алгоритмы работают одинаково. Наши рассуждения показывают, что пошаговая последовательность работы двух алгоритмов совпадает. Следовательно, они вполне эквивалентны. I ÌÃÒÓ ÔÍ-12 ÌÃÒÓ Как показывает пример, наличие подстановки с пустой левой частью — достаточное условие замкнутости. С другой стороны, если в схеме алгоритма отсутствует подстановка с пустой левой частью, то, по крайней мере, есть одно слово в рассматриваемом алфавите, к которому неприменима ни одна подстановка схемы: пустое слово. Значит, наличие подстановки с пустой левой частью — и необходимое условие замкнутости. ÔÍ-12 ÔÍ-12 Отметим, что добавление в конец схемы еще одной подстановки по сути ничего не меняет: ни при каких условиях добавленная подстановка не будет применяться из-за предшествующей подстановки. Последнее надо трактовать так: исходный алгоритм уже является замкнутым. ÌÃÒÓ ÌÃÒÓ где символ ∗ не входит в A. Его замыканием, согласно определению, является алгоритм со схемой   ∗ξ → ξ∗, ∗ →· P,  Λ → ∗, Λ →· Λ. ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ИУ-9, МЛТА, 2009-10 уч.г. ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ 90 ÌÃÒÓ Теорема 9.6 (общая теорема композиции). Для любого нормального алгорифма A в алфавите A и нормального алгорифма B в алфавите B существует нормальный алгорифм C над алфавитом A ∪ B, для которого C(X) ' B(A(X)), X ∈ A∗ . ÔÍ-12 Рассмотрим случай композиции алгоритмов в разных алфавитах. ÌÃÒÓ ˜ η̃ — их двойники из алфавита Ã. Здесь ξ, η — произвольная буква алфавита A, а ξ, В сконструированной схеме первые три групповые подстановки перетаскивают спецсимвол p в начало слова и заменяют все буквы двойниками, подготавливая работу второго алгоритма. Запускаются эти подстановки, когда в слове появляется символ p, т.е. когда завершит работу группа Ap . Следующие три групповые подстановки делают обратную операцию, возвращая взамен двойников изначальные буквы. Седьмая строка завершает работу алгоритма. Из построения видно, что в результате работы сконструированной схемы мы получим последовательную работу алгоритмов A и B. I ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 J Здесь существует“ — вполне в духе математической логики и оснований математики: речь ” идет о построении конкретной схемы, обеспечивающей нужное свойство. Собственно, надо соединить две схемы в одну, но при этом обеспечить, чтобы до определенного момента подходили подстановки только первой схемы A, а затем только второй схемы B. Первое сделать нетрудно: достаточно расположить подстановки первой схемы перед подстановками второй. Чтобы не было проскакивания (когда ни одна подстановка алгоритма A не подходит), алгоритм A надо замкнуть. Чтобы после завершения работы A можно было продолжить, надо схему A перестроить, изменив терминальные подстановки. При этом каждая такая подстановка должна инициировать процесс, при котором слово изменяется так, что ни одна подстановка алгоритма A не будет применена. После этого заработает алгоритм B, остановку которого надо переделать в заключительный процесс. Вот эти туманные соображения можно реализовать следующим образом. Рассмотрим алфавит Ã, который содержит столько же букв, сколько и A, причем A∩ à = ∅. Тогда у каждой буквы x ∈ A появляется двойник x̃. Выберем еще две разные буквы p и q, не входящие ни в A, ни в Ã. Новые буквы используем для построения схемы с нужными свойствами. Алгоритм A замкнем (если он не замкнут) и в схеме замыкания алгоритма A (применяемого первым) заменим каждую подстановку вида P →· Q подстановкой P → pQ (слова P и Q могут быть пустыми). Полученную схему обозначим Ap . Алгоритм B замкнем, затем в его схеме заменим все буквы алфавита A на их двойники из алфавита Ã. Кроме того, заменим формулы вида Λ → P на p → pP , а все терминальные формулы вида P →· Q заменяем на P → qQ. Полученную схему обозначим Bpq . Теперь строим следующую схему:  ξp → pξ (букву p протаскиваем в начало),      pξ → pξ˜ (первую букву меняем на двойника),      ˜ → ξ˜η̃ ξη (остальные буквы меняем двойниками),     ˜ → q ξ˜  (букву q протаскиваем в начало), ξq q ξ˜ → qξ (двойника первой буквы меняем на саму букву),     ξ η̃ → ξη (остальные двойники меняем на буквы),     pq →· Λ (заканчиваем),      Bpq ,    Ap . ÌÃÒÓ ÌÃÒÓ Теорема 9.5. Пусть A и B — нормальные алгорифмы в алфавите A. Существует нормальный алгорифм C над алфавитом A, такой, что для любого слова X ∈ A∗ выполняется соотношение C(X) ' B(A(X)). ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 91 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 9. Нормальные алгорифмы Маркова ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ИУ-9, МЛТА, 2009-10 уч.г. J Построим формальные расширения A1 , B1 алгоритмов A и B на алфавит C = A∪B. Согласно теореме 9.5, существует нормальный алгорифм C, для которого B1 (A1 (X)) ' C(X), X ∈ C ∗ . В силу эквивалентности A и A1 , B и B1 получаем B(A(X)) ' C(X), X ∈ C ∗ . I Замечание 9.1. Теорему 9.6 можно переформулировать, заменив понятие алгоритм в ” алфавите“ понятием алгоритм над алфавитом“. Действительно, если A — алгоритм над ал” фавитом A, B — алгоритм над алфавитом B, то A — алгоритм в алфавите à ⊃ A, который получен добавлением к A спецсимволов алгоритма A. Аналогично B — алгоритм в алфавите B̃. Значит, существует нормальный алгорифм B ◦ A над алфавитом C̃ = à ∪ B̃. Сузив алфавит C̃ до C = A ∪ B, получим требуемое утверждение. Композицию нормальных алгорифмов A и B будем обозначать как композицию функций: B ◦ A (справа налево). A B ÔÍ-12 Соединение нормальных алгорифмов. Соединением алгоритмов A и B в алфавите A называется алгоритм C = A&B, который каждому слову X ∈ A∗ ставит в соответствие слово A(X)B(X) (рис. 9.2). Как и в случае композиции в данном случае необходимо показать, что объединение нормальных алгорифмов может быть реализовано как нормальный алгорифм. ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ 92 J Процесс перехода от X к A(X)B(X) можно представить как последовательность преобразований: X → X X → A(X)X = A(X)X → A(X)B(X) → A(X)B(X), где черта сверху обозначает слово-двойник или алгоритм в алфавите-двойнике. Общее преобразование представляет собой композицию нескольких алгоритмов. Построим эти алгоритмы. Первое преобразование осуществляется последовательным применением двух алгоритмов C1  со схемой pξ → ξξp, p →· Λ, Λ → p и C2 со схемой ξη → ηξ. Второе преобразование осуществляется переводом A алгоритма A на алфавит A. Третье преобразование — с помощью алгоритма B. Наконец, необходимо вместо букв-двойников подставить оригиналы. Это осуществляется алгоритмом со схемой ξ → ξ. I ÔÍ-12 ÔÍ-12 Теорема 9.7. Для любых нормальных алгорифмов A и B в алфавите A существует нормальный алгорифм C над алфавитом A, для которого C(X) ' A(X)B(X), X ∈ A∗ . ÌÃÒÓ ÌÃÒÓ Рис. 9.2 J Как и в случае композиции, строим формальные расширения алгоритмов A и B на алфавит C, а затем применяем теорему 9.7. I Следствие 9.1. Для любого нормального алгорифма A в алфавите A, нормального алгорифма B в алфавите B и буквы p существует нормальный алгорифм C в алфавите C = A ∪ B ∪ {p}, для которого C(X) ' A(X)pB(X), X ∈ (A ∪ B)∗ . J Алгоритм C есть объединение трех алфавитов: A, алфавита P, который любое слово в алфавите A ∪ B заменяет на букву p, и алфавита B. Отметим, что объединение алфавитов ассоциативно: это просто поточечная конкатенация словарных функций, а теоремы лишь утверждают, что любая такая конкатенация может быть реализована как нормальный алгорифм. I ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 Теорема 9.8. Для любого нормального алгорифма A в алфавите A и нормального алгорифма B в алфавите B существует нормальный алгорифм C в алфавите C = A ∪ B, для которого C(X) ' A(X)B(X), X ∈ C ∗ . ÌÃÒÓ ÌÃÒÓ Доказанную теорему расширяем на более общий случай алгоритмов в разных алфавитах. ÌÃÒÓ Соответствующий алгоритм C однозначно описывается следующими условиями: 1) X ∈ A∗ ∧!L(X) ∧ (L(X) = Λ) → C(X) ' A(X); 2) X ∈ A∗ ∧!L(X) ∧ (L(X) 6= Λ) → C(X) ' B(X); 3) X ∈ A∗ → (¬!L(X) → ¬!C(X)). Такой алгоритм будем называть разветвлением на алгоритмы A и B под управлением L и обозначать S(L, A, B) (от английского select). Ясно, что если все словарные функции L, A, B, эффективно вычислимы, то построенная функция C эффективно вычислима. Как реализовать эту конструкцию в виде нормального алгорифма? Теорема 9.9. Пусть L, A, B — нормальные алгорифмы в алфавите A. Тогда существует нормальный алгорифм C над алфавитом A, осуществляющий разветвление на A и B под управлением L. ÔÍ-12 ÌÃÒÓ ÔÍ-12 J Один из вариантов построения требуемого алгоритма такой. На основе алгоритма L с помощью некоторой буквы p ∈ / A строим алгоритм L1 , обладающий свойствами: !L(x) ⇔!L1 (X); L1 (X) = pX, если L(X) = Λ; L1 (X) = X, если L(X) 6= Λ. Затем устраиваем композицию L1 , A и B, но при этом скорректируем алгоритмы A и B так, чтобы отрабатывал только один из них. Для этого строим алгоритм B1 следующим образом: берем замыкание алгоритма B, в начало его схемы добавляем подстановку p →· Λ, а в самой схеме каждую терминальную подстановку вида Pi →· Qi заменяем подстановкой Pi →· qQi , где q ∈ / A. Строим алгоритм A1 , добавляя в начало схемы алгоритма A подстановку q →· Λ. После этого строим композицию C = A1 ◦ B1 ◦ L1 . Работа построенного алгоритма протекает следующим образом. Для слова X алгоритм L1 либо неприменим, либо дает pX, либо не изменяет слово X. Если L1 (а значит, и L) неприменим к X, то и построенный алгоритм неприменим к X. Если алгоритм L1 дает слово pX, то следующий алгоритм B просто удаляет p и останавливается. Далее алгоритм A работает со словом X. Если же алгоритм L1 дает слово X, то далее алгоритм B1 работает как B, давая в качестве результата слово Y = B(X), в которое вставлена буква q. Для этого слова действие алгоритма A1 состоит в удалении буквы q и остановке. Мы на выходе получаем B(X). Видно, что алгоритм C удовлетворяет необходимым условиям. Остается построить алгоритм L1 . Сперва выбираем композицию La ◦ L, где La — нормальный алгорифм над A со схемой (ξη → ξ, ξ →· Λ, Λ →· p), где p ∈ / A. В результате получаем алгорритм, который выдает два значения: Λ, если L(X) 6= Λ, и p, если L(X) = Λ. Теперь берем соединение построенного алгоритма с алгоритмом Lb со схемой из одной подстановки Λ →· Λ (он любое слово оставляет неизменным). I ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ( A(X), L(X) = Λ; C(X) = B(X), L(X) = 6 Λ. ÌÃÒÓ ÌÃÒÓ Разветвление нормальных алгорифмов. На практике бывает, что при реализации того или иного метода в данный момент надо выбрать одно из возможных действий в зависимости от полученного результата. В языках программиро= ¤ вания это реализуется условными конструкциями, наприA мер if . . . else . . . end. С точки зрения алгоритмов здесь L участвуют три алгоритма L, A, B: первый L формируB ет условие, при выполнении которого реализуется второй ¹¤ алгоритм A, а при нарушении — третий B (рис. 9.3). Рис. 9.3 Конкретизировать это общее описание можно с помощью словарных функции следующим образом: ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 93 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 9. Нормальные алгорифмы Маркова ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ИУ-9, МЛТА, 2009-10 уч.г. Как и в случае объединения алгоритмов, доказанная теорема обобщается на случай неодинаковых алфавитов. Теорема 9.10 (общая о разветвлении). Пусть L, A, B — нормальные алгорифмы в алфавитах L, A и B соответственно. Существует нормальный алгорифм C над алфавитом C = A ∪ B ∪ L, осуществляющий разветвление на A и B под управлением L. J Достаточно устроить формальное расширение алфавитов на алфавит C и применить теорему 9.9. I = ¤ A L ÔÍ-12 Повторение алгоритма. Разветвление алгоритма — первый пример работы под управлением алгоритма: алгоритм L играет управляющую роль, которая в этом случае состоит в выборе одного из двух алгоритмов. Еще один пример работы под управлением — повторение алгоритма. Суть процедуры в том, что после применения некоторого алгоритма A результат тестируется с помощью еще одного алгоритма L. По результатам теста принимается решение, повторить алгоритм A или остановить работу. Схематично эта процедура показана на рис. 9.4. Будем говорить о том, что алгоритм C реализует повторение алгоритма A под управлением алгоритма L, если алгоритм C применим к слову X тогда и только тогда, когда существуют слова X0 , X1 , . . . , Xn = Y , удовлетворяющие условиям Xi = A(Xi−1 ), i = 1, n, L(Xi ) 6= Λ при i = 1, n − 1 и L(Xn ) = Λ. При этом слово Y есть результат работы алгоритма C(X). ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ 94 Этот алгоритм решает поставленную задачу. I Как и в других предшествующих ситуациях, обобщаем последнюю теорему. J Как и выше, достаточно построить формальное расширение алгоритмов на объединенный алфавит и затем применить теорему 9.11. I Отметим, что реализованная схема повторения A под управлением L приводит к тому, что алгоритм A выполняется по крайней мере один раз. Однако известно, что циклы можно ÔÍ-12 Теорема 9.12 (общая о повторении). Для любого алгоритма A в алфавите A и алгоритма L в алфавите L существует алгоритм C над алфавитом C = A ∪ L, реализующий повторение A под управлением L. ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 J Идея доказательства такова. По алгоритму L строим алгоритм L1 , для которого !L(X) ⇔ ⇔!L1 (X) и который добавляет к слову X символ p, если L(X) = Λ. Построение этого алгоритма описано в доказательстве теоремы 9.9. Рассмотрим алгоритм A1 = L1 ◦ A. Он выполняет работу алгоритма A, а потом, если нужно, добавляет символ p слева, что сигнализирует о прекращении работы. Далее делаем следующее. Замыкаем A1 и заменяем терминальные подстановки вида P →· Q на подстановки P → qQ (буква q сигнализирует о завершении цикла). Получим алгоритм Aq . После этого строим схему  ξq → qξ,    pq →· q,  q → Λ,    Aq . ÌÃÒÓ ÌÃÒÓ Теорема 9.11. Для любых алгоритмов A и L в алфавите A существует нормальный алгорифм C над алфавитом A, реализующий повторение A под управлением L. ÔÍ-12 ÔÍ-12 Рис. 9.4 ÌÃÒÓ ÌÃÒÓ ¹¤ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 95 организовывать так, что тело цикла вообще может не выполняться ни разу. Предыдущий вариант алгоритма с повторением будем называть алгоритмом с постусловием и обозначать RA(L, A), а вариант алгоритма, когда цикл может ни разу не выполняться — алгоритмом с предусловием и обозначать RB(L, A). Схема такого алгоритма показана на рис. 9.5. = ¤ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 9. Нормальные алгорифмы Маркова 9.4. Теорема об универсальном нормальном алгорифме ÔÍ-12 где Xi ∈ A∗ , i = 1, n, — элементы системы слов. Отметим, что буква γ, рассматриваемая как слово, представляет собой пустую систему слов. Понятие системы слов позволяет представить в виде слова в некотором алфавите схему нормального алгорифма. Каждая подстановка есть упорядоченная пара слов в алфавите A и дополнительный атрибут (простая, терминальная). Вводим еще две буквы α и β, не входящие в A. Подстановку вида P → Q будем записывать в виде слова P αQ, а заключительную подстановку P →· Q — в виде слова P βQ. Систему таких слов назовем изображением нормального алгорифма. Изображение нормального алгорифма A будем обозначать Aи . ÌÃÒÓ Каждый алгоритм — заранее фиксированная последовательность действий. Его массовость обеспечивается произвольным характером исходного слова в данном алфавите. В таком контексте алгоритм можно уподобить программе для компьютера. Однако сам компьютер — тоже алгоритм: это автомат, который работает и с текстом программы, и с данными. Было бы печально, если бы требовалось при переходе к новой задаче менять компьютер. Но если компьютер — тоже алгоритм, то его можно записать как нормальный алгорифм, для которого данными являются запись заданного нормального алгорифма (программа) и исходное слово, к которому нужно применить заданный алгоритм (данные). Такой нормальный алгорифм называют универсальным нормальным алгорифмом. Перейдем к точным формулировкам. Условимся, что задан и зафиксирован алфавит A, и мы рассматриваем нормальные алгорифмы в этом алфавите. Сперва запись нормального алгорифма, а точнее, его схемы. Вводим новую букву γ ∈ /Aи рассматриваем слова в алфавите Aγ = A ∪ γ вида γP , где P ∈ A∗γ и заканчивается буквой γ. Каждое такое слово назовем системой слов в алфавите A (точнее γ-системой). Систему слов можно представить в виде R = γX1 γX2 . . . γXn γ, ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ J Построим алгоритм L1 , как выше, который к слову X добавляет символ p, если L(X) = Λ. Затем видоизменим алгоритм A, заменив разветвлением (A g L1 |L) (т.е. разветвление на A и L1 под управлением L). Если L(X) 6= Λ, такой алгоритм работает как обычное повторение A, поскольку разветвление на A и L1 проходит после отрицательной проверки на L. Если же L(X) = Λ, то первое же разветвление даст L1 с последующим завершением. что и требовалось. I ÔÍ-12 ÔÍ-12 Теорема 9.13. Для любого алгоритма A в алфавите A и алгоритма L в алфавите L существует алгоритм C над алфавитом C = A ∪ L, реализующий повторение A под управлением L следующим образом. Алгоритм C применим к слову X тогда и только тогда, когда существуют слова X0 = X, X1 , . . . , Xn , связанные соотношениями Xi = A(Xi−1 ), i = 1, n; L(Xi ) 6= Λ, i = 0, n − 1; L(Xn ) = Λ. ÌÃÒÓ ÌÃÒÓ Рис. 9.5 ÔÍ-12 ÔÍ-12 ¹¤ A ÌÃÒÓ ÌÃÒÓ L ÌÃÒÓ R(Aи δQ) ' A(Q). В дальнейшем в слове Aи δQ левую часть Aи (изображение нормального алгорифма) иногда будем называть программой, а правую часть Q — данными. Расширенный алфавит Aαβγδ будем обозначать Ã. Поскольку всевозможные пары программа — данные“ представлены в виде слов в расши” ренном алфавите, согласно принципу нормализации универсальный алгорифм должен существовать. Теорема 9.14. Универсальный нормальный алгорифм существует. J Построение универсального алгорифма — сложная задача. Поэтому мы не станем строить конкретный алгорифм, а докажем его существование, опираясь на сочетания более простых алгорифмов. В самом общем виде искомый алгоритм можно представить как повторение алгоритма P1 под управлением алгоритма L2 с последующим выполнением алгоритма P3 (рис. 9.6). Алгоритм P1 выполняет один шаг работы нормального алгорифма, т.е. либо находит подстановку и выполняет ее, либо ничего не делает, если подходящей подстановки нет. Алгоритм L2 проверяет условие останова, т.е. была ли выполнена подстановка, и если была, то какая, терминальная или нет. Алгоритм P3 убирает лишнее из конечной строки: спецсимволы и код программы. = ¤ P3 L2 ¹¤ Рис. 9.6 ÌÃÒÓ ÔÍ-12 Конкретизируем каждый из трех описанных алгоритмов. В ходе работы будем использовать спецсимволы p, q, u, t для фиксирования результатов работы: символ p будет указывать текущую подстановку в программе, находясь перед левой частью подстановки, символ q будет указывать текущий символ этой подстановки, а символы u и t — выделять фрагмент данных. Если в результате работы алгоритма все подстановки просмотрены и подходящей нет, символы pq будут находиться перед символом δ (за последней подстановкой программы). Если подходящая подстановка найдена и реализована в данных, то символ p будет располагаться перед этой подстановкой, а символ q — перед разделителем α или β в этой подстановке. Алгоритм L2 должен проверять эти условия. Схема такого алгоритма может быть такой:  ηr → r, η ∈ Apqαβγ,      rη → r, η ∈ Apqαβγδ,    r →· Λ,  pqδ → r,      qα →· qα,    qβ → r. ÔÍ-12 P1 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ Введем четвертый спецсимвол δ и будем рассматривать слова вида Aи δQ, где Aи — изображение нормального алгорифма A, а Q — слово в алфавите A. Нормальный алгорифм R назовем универсальным нормальным алгорифмом, если для любого нормального алгорифма A в алфавите A и любого слова Q ∈ A∗ выполняется соотношение ÔÍ-12 ÔÍ-12 γ00α00γ101α0γ10β1γ01α01γ. ÌÃÒÓ ÌÃÒÓ Пример 9.6. Для нормального алгорифма со схемой (00 → 00, 101 → 0, 10 →· 1, 01 → 01) изображение выглядит следующим образом: ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ИУ-9, МЛТА, 2009-10 уч.г. ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ 96 ÌÃÒÓ Остановимся на алгоритме P1 . Его схема показана на рис. 9.7. Он начинается с инициализирующего алгоритма P11 , за которым следует повторение алгоритма P13 под управлением L12 . Алгоритм P14 завершает работу P1 . Алгоритм P11 устанавливает спецсимволы p, q, u, t в начальное положение: символы pq перед первой подстановкой, символы ut в начале данных (вслед за разделителем δ). Алгоритм L12 проверяет конфигурацию спецсимволов, выявляя два условия: если подходящая подстановка найдена или если все подстановки просмотрены, формируется пустое значение. Все подстановки просмотрены, если символы pq расположены непосредственно перед разделителем δ. Текущая подстановка, отмеченная символом p подходящая, если символ q предшествует разделителю α или β этой подстановки. Алгоритм P14 реализует подходящую подстановку или не выполняет никаких действий, если подходящая подстановка не найдена. P1 = ¤ P11 L12 Рис. 9.7 ÔÍ-12 Ключевой составной частью в P1 является алгоритм P13 , который должен фактически проверить, является ли текущая подстановка подходящей. Такая проверка сводится к соответствующей расстановке спецсимволов. Если комбинация pq располагается перед δ, то все подстановки просмотрены и подходящей нет. Если символ q предшествует разделителю подстановки α или β, то подходящая подстановка выбрана, при этом символы u и t будут ограничивать вхождение левой части найденной подстановки в строку данных. В остальных случаях символы pq располагаются в начале следующей, еще не просмотренной подстановки. В соответствии со сказанным алгоритм P13 можно реализовать как разветвление, которое представляет собой выбор одного из нескольких вариантов изменения положения спецсимволов. ÌÃÒÓ  rη → r, η ∈ Ãpq,      ηr → r, η ∈ Ãpq,     r →· Λ,  pqδ → r,      qα → r,    qβ → r. ÔÍ-12 Алгоритм P11 можно реализовать как композицию P113 ◦P112 ◦P111 трех простых алгоритмов: алгоритм P111 удаляет спецсимволы (его схема ηΛ, η ∈ pqut), алгоритм P112 устанавливает в начальное положение символы pq (его схема γ →· γpq), а алгоритм P113 выполняет то же самое для символов ut (его схема δ →· δut). Алгоритм L12 проверят два условия: положение символа q в конце левой части подстановки, т.е. перед символом α или β, означает, что эта подстановка применима к данным; положение символов pq перед δ означает, что ни одна подстановка не применима к данным. И то, и другое означает выход из текущего шага работы алгоритма. Алгоритм L12 можно задать схемой ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ¹¤ ÌÃÒÓ ÔÍ-12 P14 ÌÃÒÓ ÌÃÒÓ   η → Λ, η ∈ pqut, ηδ → δ, η ∈ Ãp,   δ →· Λ. ÔÍ-12 ÌÃÒÓ ÌÃÒÓ 97 Алгоритм P3 просто удаляет спецсимволы p, q, u, t и все слева от δ (включая δ): P13 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 9. Нормальные алгорифмы Маркова ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ИУ-9, МЛТА, 2009-10 уч.г. P13 ÌÃÒÓ ÌÃÒÓ Для объяснения сути указанного разветвления придадим следующий условный смысл спецсимволам: p — номер текущей подстановки; q — номер символа в левой части текущей подстановки; u — номер первого символа выделенного фрагмента данных; t — номер последнего символа выделенного фрагмента данных, номера u и t изменяются от 1 до m — длины строки данных. Структура алгоритма P13 с содержательной интерпретацией структурных элементов показана на рис. 9.8. На рисунке условие = Λ равносильно да“, xq и yt обозначают символ ” подстановки с номером q и символ данных с номером t. P134 = ¤ = ¤ p = p + 1, q = 1 u = 1, t = 1 L132 u> m? P135 q=1 ? ¤ u = u+ 1, t = u L131 ÔÍ-12 ÔÍ-12 ÌÃÒÓ 98 t> m? ÔÍ-12 ÔÍ-12 P136 = ¤ q = q+1 t = t+ 1 L133 x = y ? q t ? ¤ P 137 q=1 ? ¤ u = u+ 1, t = u  rη → r, η ∈ Ãpq,       ηr → r, η ∈ Ãpq, L131 : r →· Λ,     tξ →· .tξ,    t → r; Алгоритм L133 можно реализовать следующим образом:  rη → r,       ηr → r,      r →· Λ, η ∈ Ãpqut, η ∈ Ãpqut, ÌÃÒÓ sξη → ηsξ, ξ ∈ A, η ∈ Ãu,     sξtξ → r, ξ ∈ A,      sξt →· sξt, ξ ∈ A,    q → qs. ÌÃÒÓ Алгоритм P134 можно реализовать как композицию двух алгоритмов: P134 = P1342 ◦ P1341 . Алгоритм P1341 удаляет символ q, передвигает символ p на следующую подстановку и заканчивает работу вставкой символа q сразу после p. Алгоритм P1342 удаляет символы u и t, а затем вставляет после δ:     q → Λ, u → Λ, pη → ηp, η ∈ Aαβ, t → Λ, P1341 : P1342 :   pγ →· γpq; δ →· δut. ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12  rη → r, η ∈ Ãpq,       ηr → r, η ∈ Ãpq, L132 : r →· Λ,     uξ →· uξ,    u → r; ÔÍ-12 ÔÍ-12 Алгоритмы L131 и L132 однотипны и различаются используемым спецсимволом: ÌÃÒÓ ÌÃÒÓ Рис. 9.8 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 99  qξ → ξqsξ,       qα → qαq,     qβ → qβq. ξ ∈ A, * Вообще-то этот алгоритм построен для двухбуквенного алфавита. Однако он является рабочим и для алфавита с большим числом букв. Кроме того, он приписывает слева к слову спецсимвол π. ÔÍ-12 Замечание 9.2. Из доказательства теоремы 9.14 ясно, что универсальный алгоритм устроен достаточно сложно, и привести конкретную схему этого алгоритма непросто. Однако такие построения были выполнены разными исследователями. Приведем пример нормального алгорифма, построенного В.Г. Жаровым* . Этот алгорифм однократно применяем схему нормального алгорифма к исходному слову. Чтобы построить ÌÃÒÓ Отметим, что этот алгоритм начинает работу в ситуации, когда символ q находится перед разделителем подстановки α или β. А алгоритме формируется второй символ q, помещаемый в правую часть подстановки. После завершения работы первое вхождение символа q остается перед разделителем, сигнализируя, что алгоритм P1 выполнил подстановку, и обозначая тип этой подстановки. I ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ Алгоритм P1432 можно представить схемой   sξη → ηsξ, ξ ∈ A, η ∈ Ãu,      sξt → ξt, ξ ∈ A,     qγ →· γ, ÌÃÒÓ ÔÍ-12 ut →· ut. ÔÍ-12 ÌÃÒÓ Алгоритм P142 ничего не делает: Λ →· Λ, а алгоритм P143 выполняет подстановку, заменяя фрагмент данных между u и t правой частью подстановки. Его можно представить как композицию алгоритма P1431 , который стирает фрагмент между символами u и t, и алгоритма P1432 , который копирует правую часть подстановки в место между u и t. Алгоритм P1431 можно задать схемой ( uξ → u, ξ ∈ A, ÌÃÒÓ ÔÍ-12  rη → r,     ηr → r,  r →· Λ,     pqδ → r. ÔÍ-12 ÔÍ-12 Алгоритм P136 также разделяем в композицию алгоритма P1361 , передвигающего символ q, и алгоритма P1362 , передвигающего символ t. Каждый реализуется одной групповой подстановкой: первый qξ →· ξq, второй tξ →· ξt. Осталось описать алгоритм P14 . Этот алгоритм можно представить в виде разветвления S(L141 , P142 , P143 ), в котором выполняется P142 , если L141 (X) = Λ, и P143 в противном случае. Алгоритм L141 проверяет, следует ли в данных выполнить замену. Его схема: ÌÃÒÓ Алгоритм P135 также удобно разделить в композицию: P135 = P1352 ◦ P1351 , где P1351 отрабатывает ситуацию с символами p и q, а P1352 — с символами u и t: ( ( q → Λ, t → Λ, P1351 : P1352 : p →· pq; uξ →· ξut, ξ ∈ A. ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 9. Нормальные алгорифмы Маркова ÌÃÒÓ ÌÃÒÓ ÔÍ-12 полновесные универсальный алгорифм, достаточно устроить его повторение. В нем использованы символы подстановки ξ и η, причем ξ ∈ A, а η пробегает алфавит, явно указанный. Кроме того, введено обозначение à = Aαβγ): 1. 2. 4. 5. 6. 7. 8. 10. 11. 12. 13. 14. 15. ÌÃÒÓ 17. 18. 19. 20. 21. ÔÍ-12 24. 25. 26. 4) если Q ⊂ S, то LpqQαRγN δutS  LqQαRγN δSRQ и LpqQβRγN δutS  πSRQ , где L, N ∈ Ã, Q, R, S ∈ A. Работу алгоритма Жарова проиллюстрируем на примере алгоритма со схемой, состоящей из единственной подстановки ab → c, и исходного слова aabc. В представленной последователь- ÔÍ-12 Свойства приведенного алгоритма: 1) Aи δQ  pqAи sδutQ. Это начало работы алгоритма, состоящее в применении подстановки 26. 2) pqγX  γpqX, где X ∈ (Ãuδt)∗ . Этот этап реализуется в перемещении s в начало слова (подстановка 5), затем его замене на pq (подстановка 11), и смещении вставленной пары букв на одну позицию вправо (подстановка 17). 3) если Q 6⊂ S, то LpqQM γN δutR  LQM γpqN δS, где L, N ∈ Ã, M ∈ Aαβ, Q, S ∈ A. Это основная часть работы алгоритма, соответствующая побуквенному сравнению, изложенному выше. Очередная буква-двойник смещается вправо до символа t с помощью подстановки 1, затем применяется подстановка 2 (сравнение успешное) или 3 (сравнение неуспешное) ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 23. ÔÍ-12 22. ÌÃÒÓ 16. ÔÍ-12 ÔÍ-12 9. ξη → ηξ, η ∈ Ãuδ; ξtξ → ξt; ξt → s; ξr → ξr; ηs → sη, η ∈ Ãδ; us → su; pqs → u; ps → pq; psγ → γpq; qs → s → pq uξ → sξut u→ v→s pη → ηp, η ∈ Aαβ; pqη → η q, η ∈ αβ; pqγ → γpq; qξ → ξqξ; p → p; uη → u, η ∈ Ã; ut → r; uδ → π; q → q; r → s; β → sv; δ → sδut. ÌÃÒÓ ÌÃÒÓ 3. ÔÍ-12 ÌÃÒÓ ÔÍ-12 ИУ-9, МЛТА, 2009-10 уч.г. ÔÍ-12 ÔÍ-12 ÌÃÒÓ 100 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ 101 ности для наглядности выполнены замены α на >, β на >, γ на и δ на +, номер примененной подстановки указан слева: ab1Qc +autc ab1Qc +arc ab1qc +arc ab1cqC +arc ab1cq C+arc ab1cq +Carc ab1cq +aCrc ab1cq +acrc ab1cq +acsc ab1cq +ascc ab1cq +sacc ab1cq s+acc ab1cqs +acc ab1c +acc absvc +acc asbvc +acc sabvc +acc s abvc +acc pq abvc +acc pq absc +acc pq asbc +acc pq sabc +acc pqs abc +acc u abc +acc uabc +acc ubc +acc uc +acc u +acc u+acc wacc wacc ÔÍ-12 (20) (21) (23) (18) (1) (1) (1) (4) (24) (5) (5) (5) (5) (10) (25) (5) (5) (5) (11) (14) (5) (5) (5) (7) (20) (20) (20) (20) (20) (22) ÔÍ-12 ÌÃÒÓ pab>c +Uaabc pab>c +sautabc pab>c s+autabc pab>cs +autabc pab>sc +autabc pabs>c +autabc pasb>c +autabc psab>c +autabc pqab>c +autabc paqAb>c +autabc paqbA>c +autabc paqb>Ac +autabc paqb>cA +autabc paqb>c A+autabc paqb>c +Aautabc paqb>c +aAutabc paqb>c +auAtabc paqb>c +auatbc pabqB>c +auatbc pabq>Bc +auatbc pabq>cB +auatbc pabq>c B+auatbc pabq>c +Bauatbc pabq>c +aBuatbc pabq>c +auBatbc pabq>c +auaBtbc pabq>c +auabtc Pabq>c +auabtc aPbq>c +auabtc abPq>c +auabtc ab1Qc +auabtc ab1Qc +aubtc ÌÃÒÓ ÔÍ-12 (10) (12) (5) (5) (5) (5) (5) (5) (8) (18) (1) (1) (1) (1) (1) (1) (1) (2) (18) (1) (1) (1) (1) (1) (1) (1) (2) (19) (15) (15) (16) (20) ÌÃÒÓ ab>c +aabc (26) ab>c s+utaabc (5) ab>cs +utaabc (5) ab>sc +utaabc abs>c +utaabc (5) (5) asb>c +utaabc (5) sab>c +utaabc (5) s ab>c +utaabc (11) pq ab>c +utaabc (17) pqab>c +utaabc (18) paqAb>c +utaabc (1) paqbA>c +utaabc (1) paqb>Ac +utaabc (1) paqb>cA +utaabc paqb>c A+utaabc (1) (1) paqb>c +Autaabc paqb>c +uAtaabc (1) (2) paqb>c +uatabc (18) pabqB>c +uatabc (1) pabq>Bc +uatabc (1) pabq>cB +uatabc pabq>c B+uatabc (1) (1) pabq>c +Buatabc (1) pabq>c +uBatabc (1) pabq>c +uaBtabc (3) pabq>c +uasabc pabq>c +usaabc (5) pabq>c +sUaabc (6) (5) pabq>c s+Uaabc pabq>cs +Uaabc (5) (5) pabq>sc +Uaabc (5) pabqs>c +Uaabc ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 9. Нормальные алгорифмы Маркова ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ОГЛАВЛЕНИЕ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 84 87 88 95 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 9. Нормальные алгорифмы Маркова 9.1. Определение . . . . . . . . . . . . . . . . . . . . . . 9.2. Теорема о переводе и теорема приведения . . . . . 9.3. Операции над нормальными алгорифмами . . . . . 9.4. Теорема об универсальном нормальном алгорифме ÌÃÒÓ ÔÍ-12 102 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ Московский государственный технический университет имени Н.Э. Баумана ÌÃÒÓ Факультет «Фундаментальные науки» Кафедра «Математическое моделирование» ÌÃÒÓ À.Í. Êàíàòíèêîâ È ÒÅÎÐÈß ÀËÃÎÐÈÒÌΠÊîíñïåêò ëåêöèé ÔÍ-12 Москва 2010 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 Äëÿ ñòóäåíòîâ êàôåäðû ÈÓ9 ÌÃÒÓ ÌÃÒÓ ÌÀÒÅÌÀÒÈ×ÅÑÊÀß ËÎÃÈÊÀ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ 10. МАШИНЫ ТЬЮРИНГА ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 102 ÔÍ-12 Можно сказать и по-другому: лента бесконечная в обе стороны, но количество ячеек, заполненных непустыми символами, конечно. ÌÃÒÓ * ÔÍ-12 Следующий вариант строгого определения алгоритма — представление результата как результата работы некоего автоматического устройства — машины. В принципе машина — дискретно работающее устройство, которое в каждый момент времени находится в одном из внутренних состояний. Внутреннее состояние меняется за один шаг в зависимости от текущего состояния и входных данных. За один шаг машина формирует какие-то выходные данные. Разумеется, результат действий абстрактной машины можно описать без костылей“ — ” представления их как результат деятельности некоторого механического устройства. Есть объект, который описывает доступную в данный момент входную информацию, есть множество внутренних состояний. В этом контексте речь идет о некотором отображении, которое паре множеств ставит в соответствие новое множество — множество выходных данных. Машина Тьюринга — простейший вариант описанной абстрактной машины. Есть целый ряд ее модификаций. Опишем одну из них. Зададимся некоторым непустым алфавитом A = = {a0 , a1 , . . . , an }, который назовем внешним алфавитом. В этом алфавите буква a0 играет особую роль. Введем еще внутренний алфавит Q = {q0 , q1 , q2 , . . . , qm }, определяющий множество внутренних состояний машины. Считаем, что внутренний алфавит имеет по крайней мере два элемента q0 и q1 , играющих специальную роль. В объединенном алфавите дополнительно включим четыре спецсимвола →, R, L, C составляем слова специального вида qi aj → ql ak M , где 1 6 i 6 m, 0 6 l 6 m, 0 6 j, k 6 n, а M — один из трех символов R, L, C. Множество таких слов, имеющих разные левые части (два символа перед →), назовем программой (заметим, что символ → на самом деле не нужен и используется лишь для наглядности). В дальнейшем символ a0 будем называть пустым символом, символ q0 — заключительным состоянием, символ q1 — начальным состоянием. Действие машины состоит в следующем. Есть лента, разделенная на конечное число ячеек. Лента потенциально бесконечная, т.е. в любой момент к ней можно добавлять ячейки и слева (в начало) и справа (в конец)* . Каждая ячейка заполнена одним символом внешнего алфавита. Добавляемые ячейки заполняются пустым символом a0 . У машины есть читающая головка, которая обозревает ленту. В каждый момент времени головка обозревает одну ячейку с некоторым символом aj и находится в одном из внутренних состояний qi . За один шаг работы машина изменяет свое внутреннее состояние, меняет обозреваемый головкой символ на ленте и может на одну позицию влево или вправо сместить положение читающей головки. Это просходит в соответствии с командой qi aj → ql ak M , которая вызывает замену текущего символа aj символом ak , смену внутреннего состояния с qi на ql . При этом, если M = R, то читающая головка смещается вправо, если M = L, то влево, если же M = C, то остается на месте. Шаги работы машины повторяются до тех пор, пока не произойдет одно из двух событий: 1) для текущего состояния и обозреваемого символа нет команды; 2) текущая команда привела к заключительному внутреннему состоянию q0 . В этом случае машина останавливается, а слово, оказавшееся на ленте, считается результатом работы машины. В действительности представления о ленте и читающей головке, хотя и являются общеупотребительными, нужны лишь для наглядности. С математической точки зрения эти понятия ÌÃÒÓ ÌÃÒÓ 10.1. Основные понятия ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ничтожные (как выражаются юристы). Вместо трех понятий текущее состояние“, обозре” ” ваемый символ“, лента“ введем одно понятие: конфигурация (или машинное слово). Это ” понятие обозначает слово вида Xql aj Y , где X, Y ∈ A∗ , т.е. слово во внешнем алфавите A, в которое добавлена одна буква из внутреннего алфавита. Буква внутреннего алфавита отмечает текущее состояние машины Тьюринга, следующий за ней символ будет обозреваемым. Так, в конфигурации a3 a2 q1 a2 a1 зафиксировано текущее состояние q1 (начальное) и обозреваемый символ a2 . Машина Тьюринга реализует преобразование одной конфигурации в другую. Дадим формальное описание действий, совершаемых машиной Тьюринга за один такт. Предполагаем, что текущая конфигурация имеет вид Xqi aj Y . • если в программе машины есть команда qi aj → qk al R и Y 6= ∅, то новая конфигурация Xal qk Y ; • если в программе машины есть команда qi aj → qk al R и Y = ∅, то новая конфигурация Xal qk a0 ; • если в программе машины есть команда qi aj → qk al L и X = X1 am 6= ∅, то новая конфигурация X1 qk am al Y ; • если в программе машины есть команда qi aj → qk al L и X = ∅, то новая конфигурация q k a0 al Y ; • если в программе машины есть команда qi aj → qk al C, то новая конфигурация Xqk al Y ; Если конфигурация M 0 получена из конфигурации M за один такт работы машины Тьюринга, то будем говорить, что машина Тьюринга переводит M в M 0 . Машина Тьюринга преобразует конфигурацию M в конфигурацию M̃ , если существует такая последовательность конфигураций M0 = M , M1 , . . . , Mn = M̃ , что конфигурация Mi , i = 0, n−1, машиной Тьюринга переводится в конфигурацию Mi+1 . Вычислением машины Тьюринга назовем такое ее преобразование M в M̃ , что конфигурация M̃ является заключительной (терминальной), т.е. либо нет команды, соответствующей ее левой части, либо эта конфигурация соответствует заключительному состоянию. Существуют разные модификации машины Тьюринга, в основном различающиеся в трех аспектах. Во-первых, операции сдвига читающей головки могут оформляться как самостоятельные, т.е. при сдвиге головки обозреваемый символ не изменяется (это так называемый вариант Поста). В этом случае команды машины имеют вид qi aj → ql b, где b ∈ A ∪ {L, R}. Если дана, например, команда qi aj → ql R, то машина изменяет свое внутреннее состояние с qi на ql и сдвигает вправо читающую головку, а обозреваемый символ aj не изменяется. Вариант Поста машины Тьюринга можно считать частным случаем рассматриваемого варианта (варианта Клини), поскольку всегда команды вида qi aj → ql L и qi aj → ql R можно трансформировать в команды qi aj → ql aj L и qi aj → ql aj R, а команды вида qi aj → ql ak — в команды qi aj → ql ak C. В то же время можно произвольную программу трансформировать так, что операции изменения символа на ленте и смещения читающей головки будут выполняться раздельно. Для этого достаточно для каждого состояния qi ввести два новых состояния qip — сдвиг влево и qis — сдвиг вправо. Команды для этих состояний должны иметь вид qip ξ → qi ξL и qis ξ → qi ξR (здесь ξ — любой символ внешнего алфавита). Затем команду с левым сдвигом p читающей головки вида qi aj → qm ak L заменяем командой qi aj → qm ak и аналогично изменяем команды с правым сдвигом читающей головки. Во-вторых, различия проявляются в условиях завершения. В описанном варианте есть два сценария останова машины Тьюринга: либо по отсутствию команды для текущего положения машины (т.е. комбинации внутреннего состояния и обозреваемого символа), либо по наступающему заключительному внутреннему состоянию. Эта ситуация аналогична нормальным алгорифмам. В действительности нет необходимости объявлять какое-либо состояние заключительным: заключительным является всякое состояние, которое не встречается в левой части команд в программе машины Тьюринга. Правда, в описанном варианте могут быть условно ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 103 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 10. Машины Тьюринга ÌÃÒÓ Машина имеет два состояния q0 , q1 (заключительное и начальное). Как сказано выше, начальная конфигурация машины Тьюринга q1 X, где X — исходное слово. В процессе работы машины делает взаимные замены символов b и c, пока не встретит символ a (он играет роль пустого символа). Так, слово bab машина преобразует в слово cab, слово bcbc — в слово cbcb (останов произойдет, когда будет достигнут конец слова и для движения вправо будет добавлен пустой символ; этот символ в окончательном результате не учитывается). ÔÍ-12 Пример 10.2. Машина Тьюринга с алфавитом 01 и программой q1 0 → q0 1, q1 1 → q1 1L вычисляет функцию f (x) = x + 1 (инкремент). Отметим, что алгоритм использует смещение ÌÃÒÓ Выделяют также в некотором смысле регулярные сценарии работы машины Тьюринга (правильные вычисления), при которых не происходит добавления пустых символов к слову справа и/или слева. С помощью машины Тьюринга можно вычислять числовые функции f (x1 , x2 , . . . , xn ), xi ∈ N. Для этого выбираем машину Тьюринга с внешним алфавитом A = {0, 1}, в котором 0 играет роль пустого символа. Аргументы функции записываем в виде 0-системы, т.е. в виде X = = 01x1 01x2 0 . . . 01xn 0. Машина Тьюринга с алфавитом {0, 1} вычисляет функцию f , если соответствующая ей словарная функция преобразует слово X в слово 01y 0, где y = f (x1 , x2 , . . . , xn ), и не определена на слове X, если функция f не определена на сочетании аргументов x1 , x2 , . . . , xn . Если функция f (x1 , . . . , xn ) может быть вычислена с помощью некоторой машины Тьюринга, ее называют вычислимой по Тьюрингу. ÔÍ-12 Пример 10.1. Рассмотрим алфавит A = {a, b, c} и машину Тьюринга с программой   q1 b → q1 cR, q1 c → q1 bR,  q a → q a. 1 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ заключительные состояния, которые приводят к останову лишь для некоторых обозреваемых символов. Программу машины Тьюринга легко модифицировать так, что останов по отсутствию команды не будет происходить. Достаточно из программы удалить все команды для заключительного состояния q0 (они все равно никогда не выполняются) и для каждого положения qi aj , для которого нет команды, добавить команду qi aj → q0 aj . В результате программа будет содержать ровно m(n + 1) (количество незаключительных состояний на количество букв внешнего алфавита) команд, описывающих все незаключительные положения. Такую процедуру будем называть замыканием машины Тьюринга. В-третьих, машины Тьюринга различаются входными и выходными потоками. Так, рабочая лента может быть полуограниченной, т.е. неограниченное перемещение влево оказывается недоступно. Кроме того, могут использоваться несколько лент. Подробнее об этом будет сказано далее. Далее в теоретических рассуждениях будем в основном предполагать, что машина Тьюринга замкнута, в то время как в конкретных примерах будем использовать незамкнутые программы, удаляя тривиальные команды типа qi aj → q0 aj m, которые ничего не делают на ленте, а лишь приводят к останову машины Тьюринга. С машиной Тьюринга можно связать словарную функцию следующим образом. Исходное слово X в алфавите A превращается в конфигурацию MX приписыванием символа q1 начального состояния к слову слева (т.е. фиксируется начальное состояние q1 и читающая головка устанавливается на первый символ слова). Машина Тьюринга начинает работу с этой конфигурации. Если она останавливается на некоторой конфигурации MT (по отсутствию команды или по заключительному состоянию — неважно), то слово, полученное из MT удалением символа состояния, а также всех пустых символов в начале и конце слова считаем значением словарной функции на слове X. Если машина Тьюринга работает бесконечно (зацикливается), то считаем, что словарная функция не определена на слове X. ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ИУ-9, МЛТА, 2009-10 уч.г. ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ 104 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 105 читающей головки за левую границу слова. Для правильного вычисления инкремента, при котором не используется смещение за левую границу (или еще более жестко — и за правую границу), а заключительное положение читающей головки — первый символ слова, можно использовать машину Тьюринга с программой  q1 0 → q2 0R,      q1 1 → q1 1 (Неверное слово!),    q 1 → q 1R, 2 2 q2 0 → q3 1,      q3 1 → q3 1L,    q3 0 → q0 0. ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 10. Машины Тьюринга ÔÍ-12 Довольно трудно устроить соединение машин Тьюринга, так как механизм их работы заметно другой. В первую очередь трудно реализовать вставку символа в слово (нормальный алгорифм это реализует легко). Надо сдвигать все символы вправо, а потом на освободившееся место записать нужный символ. В то же время разветвление машин сделать гораздо проще: никаких специальных управляющих алгоритмов не нужно, для выбора разных действий достаточно использовать разные внутренние состояния. Пусть даны три (замкнутые) машины T1 , T2 , T3 с общим  s sТьюринга s внешним алфавитом A и внутренними алфавитами Qs = q0 , q1 , . . . , qms , s = 1, 2, 3 (полагаем, что три алфавита не имеют общих символов). Выделим в машине T1 два внутренних состояния qi1 и qj1 , i, j 6= 0. Объединим программы трех машин, предварительно выполнив в них следующие преобразования. В программе машины T1 удаляем все команды, у которых в левой части указано состояние qi1 или qj1 . В машине T2 меняем внутренние состояния q02 на q01 , q12 на qi1 . Аналогично в машине T3 меняем внутренние состояния q03 на q01 , q13 на qj1 . После этого объединяем три программы. Результирующая машина будет работать так. Стартовое ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ Замечание 10.1. Поскольку ключевой целью машины Тьюринга является вычисление некоторой словарной функции, следовало бы ввести отношение эквивалентности между машинами, считая эквивалентными те, которые вычисляют одну и ту же словарную функцию. При этом возможны два уровня эквивалентности, как и в нормальных алгорифмах. Мы этого делать не будем, отметив однако, что композиция двух машин может осуществляться разными машинами. ÔÍ-12 Как и нормальные алгорифмы, машины Тьюринга можно сочетать определенным образом. Базовой операцией является композиция машин Тьюринга.  1 1 Пусть T и T — две машины Тьюринга с внутренними алфавитами Q = q0 , q1 , . . . , a1m1 1 2 1  2 2 2 и Q2 = q0 , q1 , . . . , am2 , имеющие одинаковый внешний алфавит A = {a0 , a1 , . . . , an }. Пусть этим машинам соответствуют словарные функции f1 и f2 . Существует машина Тьюринга с внешним алфавитом A, словарная функция f которой удовлетворяет условию f (X) ' f2 (f1 (X)). Такую машину можно построить, используя стандартную процедуру объединения машин T1 и  1 1 T2 . Выберем какое-либо расширение qm1 +1 , . . . , qm внутреннего алфавита Q1 машины T1 . 1 +m2 1 , а в программе P2 В программе P1 машины T1 заменим все вхождения символа q01 символом qm 1 +1 1 2 1 2 машины T2 сделаем следующие замены: q0 → q0 , qj → qm1 +j , j = 1, m2 . После этого измененные программы объединим. Получим программу машины T , которую и назовем композицией машин Тьюринга T1 и T2 . ÌÃÒÓ ÔÍ-12 10.2. Сочетания машин Тьюринга ÔÍ-12 ÔÍ-12 Эта программа смещает читающую головку на конец слова, где завершающий нуль меняется на единицу, а затем головка смещается к началу слова, определяемому символом 0. ÌÃÒÓ Как устроить повторение машины Тьюринга по типу повторения нормальных алгорифмов? Например, так. Рассмотрим в качестве алгоритма T2 специальный алгоритм, который не изменяет слова на ленте, а лишь формирует состояние q0 , которое возникает при обозревании первого символа слова. Изменим состояние этой машины с q0 на q1 . Тогда при достижении состояния qi запускается машина T2 , которая организует повторный запуск машины T1 . 10.3. Эквивалентность машин Тьюринга и нормальных алгорифмов ÔÍ-12 ÌÃÒÓ ÔÍ-12 Форма записи уже подсказывает, что программу машины Тьюринга легко трасформировать в схему нормального алгорифма. Действительно, всего пять сценариев одного такта машины Тьюринга: по два со смещением читающей головки и один без смещения. Выберем в качестве алфавита для нормального алгорифма внешний алфавит машины Тьюринга, а символы внутреннего состояния будем рассматривать как специальные символы (считаем, что машина Тьюринга замкнута). Заменим команду вида qi aj → ql ak L двумя подстановками ξqi aj → ql ξak , qi aj → ql a0 ak , команду вида qi aj → ql ak R — подстановками qi aj ξ → ak ql ξ, qi aj → ak ql a0 , а команду вида qi aj → ql ak C — подстановкой qi aj → ql ak . В конец записываем подстановку Λ → q1 , осуществляющую запуск нормального алгорифма. Перед командой запуска поставим терминальную подстановку q0 →· q0 . Полученный нормальный алгорифм выполнит те же преобразования, что и машина Тьюринга, поскольку в текущем слове только один специальный символ, причем этот символ не является в слове последним. Стартовая подстановка в конце схемы формирует начальную конфигурацию. Следовательно, в результате работы сконструированного нормального алгорифма мы получим конечную конфигурацию машины Тьюринга. Чтобы получить требуемый результат, необходимо удалить пустые символы в начале и конце слова, а также символ q0 конечного состояния. Для этого достаточно взять композицию построенного нормального алгорифма с алгоритмом, например, с такой схемой:  ξq0 → q0 ξ,      q 0 a0 → q 0 ,    q → r,  rξ → ξr,      a0 r → r,    r →· Λ. ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 Замечание 10.2. И в композиции, и в разветвлении предполагается, что рассматриваемые алгоритмы заканчивают работу в стандартном положении, когда читающая головка обозревает первый символ слова. Если это условие не выполняется, то при передаче управления от одной машины к другой нужно вставлять специальную машину, которая не меняет данных, а лишь передвигает читающую головку в нужное положение. Важное обстоятельство состоит в том, что идентифицировать в процессе работы стартовый символ не так-то просто. Если слово не содержит пустых символов, то это можно сделать движением влево до пустого символа, правда, это приведет к смещению за левую границу слова. Еще один вариант: использовать алфавит двойников. Тогда, заменив в самом начале первый символ слова его двойником, мы легко сможем идентифицировать его в дальнейшем. ÌÃÒÓ ÌÃÒÓ состояние q11 начинает работу машины T1 . Если будет достигнуто состояние q01 , машина остановится, так что ни T2 , ни T3 не будут использованы. Если будет достигнуто состояние qi1 , начнет работу машина T2 , для которой это состояние стало стартовым. Завершение работы машины T2 приведет к состоянию q01 , являющемуся заключительным. Если будет достигнуто состояние qj1 , то далее будет работать машина T3 , которая остановит работу в состоянии q01 . По этой же схеме легко устроить разветвление на большее число вариантов. ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ИУ-9, МЛТА, 2009-10 уч.г. ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ 106 ÌÃÒÓ Теорема 10.2. Любая словарная функция, вычислимая по Маркову, вычислима и по Тьюрингу. J Сумасшедшая идея — преобразовать в машину Тьюринга универсальный нормальный алгорифм. Но, во-первых, в универсальном алгорифме одновременно работают несколько спецсимволов, которые непосредственно интерпретировать как состояния машины не удастся, а во-вторых тогда надо составить еще машину, которая приписывает к слову изображение нормального алгорифма. Не факт, что это проще. Можно сделать так. В качестве алфавита конструируемой машины Тьюринга рассматриваем алфавит нормального алгорифма с одним дополнительным символом, который будет играть роль пустого символа. Для каждой подстановки Bi →∗ Ci составляем машину Тьюринга Ti , которая ее реализует. Далее строим каскадное сочетание этих машин согласно схеме на рис. 10.1. q0 q0 q12 qn1,2 ... q1 Tn qn2 Te q0 q1 Рис. 10.1 ÌÃÒÓ ÔÍ-12 Все машины Ti , i = 1, n, используют два общих состояния: q0 — завершение работы всего комплекса (его формируют машины, реализующие терминальные подстановки, при успешной реализации такой подстановки и заключительная машина при неуспешной реализации); q1 — повторение работы всего комплекса (его реализуют машины нетерминальных подстановок, причем каждая машина, завершая работу в этом состоянии, обеспечивает положение головки в начале слова). Остальные состояния машин Ti должны быть разными, и мы их будем обозначать qi2 , qi3 и т.д. Состояние qi2 должно быть заключительным в случае нереализованной подстановки, состояние qi3 начальным, причем qi2 = qi+1,3 , т.е. третье заключительное состояние каждой машины является начальным для следующей. При такой компоновке объединение всех машин даст машину Тьюринга, которая реализует схему нормального алгорифма. Машину Тьюринга Ti , реализующую подстановку Bi → Ci , можно реализовать как разветвление, построенное из трех составляющих машин: • машина Ti1 ищет первое вхождение подстроки Bi ; если вхождение найдено, работа завершается в состоянии qiz с положением читающей головки перед найденным вхождением; если вхождение не найдено, работа завершается в состоянии qi2 с положением читающей головки перед словом; • машина Ti2 , начиная работу в состоянии qiz , заменяет найденное вхождение слова Bi словом Ci и заканчивает работу в состоянии q1 (или q0 в случае терминальной подстановки. ÔÍ-12 q1 T2 q0 q22 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 Доказанная теорема по существу означает, что возможности нормальных алгорифмов по крайней мере не хуже возможностей машин Тьюринга. Дополнительная мощь нормальных алгорифмов связана с нелокальным характером преобразования слова. Чтобы эту энергию ввести в управляемое русло, мы используем расширение алфавита — так называемые спецсимволы. Эти символы сродни символам, обозначающим внутренние состояния машины Тьюринга. И, в общем-то, ясно, как нормальный алгоритм с такими спецсимволами трансформировать в программу машины Тьюринга. Однако, во-первых, не все нормальные алгорифмы используют спецсимволы, а во-вторых, нормальный алгорифм может использовать одновременно несколько спецсимволов. В этом случае трансформировать нормальный алгоритм в машину Тьюринга сложнее. Вопрос, всегда ли такая трансформация возможна? ÌÃÒÓ ÌÃÒÓ Теорема 10.1. Любая словарная функция, вычислимая по Тьюрингу, вычислима и по Маркову. # ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ 107 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 Из приведенных рассуждений получаем следующий вывод. T1 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 10. Машины Тьюринга ÌÃÒÓ i,r+2 r ÔÍ-12  qi,r+2 ξ → qi,r+4 ξ, ξ ∈ A \ {br },      qi,r+3 ξ → qi,r+3 ξL,       qi,r+3 u → qiz b1 (успешное завершение),       qi,r+4 ξ → qi,r+4 ξL, ξ ∈ A \ {a0 },      qi,r+4 u → qi3 b1 R,       qi,r+5 a0 → qi2 a0 R,     q ξ ∈ A \ {a0 } (неуспешное завершение) i,r+5 ξ → qi2 ξR,  qi,2r+4 br → qi,2r+5 cr R,      qi,2r+5 ξ → qi,2r+5 ξL, ξ ∈ A \ {a0 },     q i,2r+5 a0 → q1 a0 R. ÌÃÒÓ ÔÍ-12 Эта машина завершает работу в состоянии q1 и с положением читающей головки в начале слова. Если r > s, то машину Ti2 можно реализовать как композицию двух: первая машина Ti21 заменяет B на C, заполняя лишние r − s позиций пустым символом; вторая машина Ti22 перемещает пустые символы в конец слова. Запишем машину Ti21 :  qiz b1 → qi,r+6 c1 R,      qi,r+6 b2 → qi,r+7 c2 R,      ......................   qi,r+s+4 bs → qi,r+s+5 cs R,     qi,r+s+5 bs+1 → qi,r+s+6 a0 R,      ......................     qi,2r+4 br → qi,2r+5 a0 R, ÔÍ-12 Этот алгоритм завершает работу в состоянии qiz , если сравнение удачное, причем положение читающей головки перед найденным фрагментом. Если вхождение неудачное, то завершаем работу в состоянии qi2 , причем положение читающей головки в начале данного слова. Машина Ti2 имеет три варианта конструкции в зависимости от соотношения длин r и s слов Bi и Ci . Если r = s, то машина Ti2 реализуется без каких-либо проблем:  qiz b1 → qi,r+6 c1 R,       qi,r+6 b2 → qi,r+7 c2 R,      ...................... ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ i,r+3 r ÌÃÒÓ ÌÃÒÓ Пусть Bi = b1 b2 . . . br , Ci = c1 c2 . . . cs . Машину Ti1 , учитывая конкретный характер подстановки можно реализовать следующим образом:   qi3 a0 → qi,r+5 a0 L      qi3 b1 → qi4 uR,       qi3 ξ → qi3 ξR, ξ ∈ A \ {a0 , b1 },       qi4 b2 → qi5 b2 R,      qi4 ξ → qi,r+4 ξ, ξ ∈ A \ {b2 },      ......................      q b →q b R, ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ИУ-9, МЛТА, 2009-10 уч.г. ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ 108 ÌÃÒÓ Эта машина завершает работу в состоянии q1 с положением головки в начале слова. Если r < s то для вставки символов cr+1 , cr+2 надо раздвигать слово, освобождая место для вставляемого символа. Эту операцию лучше выполнить, модифицировав машину Ti2 для случая r = s. Формируем машину Ti21 следующим образом: ÌÃÒÓ ÔÍ-12 Этот фрагмент повторяем для символов cr+1 , . . . cs :  qi,2r+7 ξ → qi,ξ2 a0 R, ξ ∈ A \ {a0 },      qi,ξ2 η → qi,η2 ξR, ξ, η ∈ A \ {a0 },      qi,ξ2 a0 → qi,2r+8 ξL, ξ ∈ A \ {a0 },      qi,2r+8 ξ → qi,2r+8 ξL, ξ ∈ A \ {a0 },      qi,2r+8 a0 → qi,2r+9 cr+2 R, ......................    qi,2s+3 ξ → qi,ξ2 a0 R, ξ ∈ A \ {a0 },      qi,ξ2 η → qi,η2 ξR, ξ, η ∈ A \ {a0 },     qi,ξ2 a0 → qi,2s+4 ξL, ξ ∈ A \ {a0 },      qi,2s+4 ξ → qi,2s+4 ξL, ξ ∈ A \ {a0 },     qi,2s+4 a0 → qi,2s+5 cs . ÔÍ-12 Теперь раздвигаем строку после символа cr и вставляем туда символ cr+1 :   qi,2r+5 ξ → qi,ξ2 a0 R, ξ ∈ A \ {a0 },      qi,ξ2 η → qi,η2 ξR, ξ, η ∈ A \ {a0 }, qi,ξ2 a0 → qi,2r+6 ξL, ξ ∈ A \ {a0 },    qi,2r+6 ξ → qi,2r+6 ξL, ξ ∈ A \ {a0 },    q i,2r+6 a0 → qi,2r+7 cr+1 R. ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ  qiz b1 → qi,r+6 c1 R,     q i,r+6 b2 → qi,r+7 c2 R,  ......................     qi,2r+4 br → qi,2r+5 cr R. ÌÃÒÓ ÔÍ-12 Машина завершает работу в состоянии qi,2r+5 и с положением читающей головки вслед за полем из пустых символов. Машину Ti22 можно реализовать следующим образом:  qi,2r+5 ξ → qi,ξ uL, ξ ∈ A \ {a0 },       qi,ξ a0 → qi,ξ a0 L, ξ ∈ A \ {a0 },    qi,ξ η → qi,ξ1 ηR, ξ, η ∈ A \ {a0 },      qi,ξ1 a0 → qi,2r+6 ξR, ξ ∈ A \ {a0 },      qi,2r+6 a0 → qi,2r+6 a0 R, qi,2r+6 u → qi,2r+5 a0 R,    qi,2r+5 a0 → qi,2r+7 a0 L,      qi,2r+7 a0 → qi,2r+7 a0 L,      qi,2r+7 ξ → qi,2r+8 ξL, ξ ∈ A \ {a0 },      qi,2r+8 ξ → qi,2r+8 ξL, ξ ∈ A \ {a0 },    qi,2r+8 a0 → q1 a0 R. ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ 109 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 10. Машины Тьюринга ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 Доказанная эквивалентность машин Тьюринга нормальным алгорифмам подчеркивает ту мысль, что машины Тьюринга позволяют реализовать любой мыслимый алгоритм или, подругому, вычислить любую эффективно вычислимую словарную функцию. Однако на практике, как и в языках программирования, для решения конкретных задач удобнее использовать не один-единственный универсальный язык программирования, а целое множество таких языков, из которого можно выбрать наиболее подходящий. Так и в теории алгоритмов: предложено много различных вариаций абстрактных машин, да и иных концепций, которые предназначены для формализации понятия алгоритма. Уже отмечалось, что простейшая машина Тьюринга имеет несколько вариаций. Однако эти вариации схожи по конструкции и виду элементарных операций. Есть, однако, конструкции абстрактных машин, которые получены усложнением (или, так сказать, усилением) первоначальной машины Тьюринга. Рассмотрим некоторые варианты. Одноленточная машина с входом и выходом — это набор {I, O, W, Q, P } из пяти множеств, в котором I — входной алфавит, O — выходной алфавит, W — рабочий алфавит, Q — множество состояний, P — программа. Команды программы имеют вид qi xj wk → qr ws yt M , где: qi ∈ Q — исходное состояние на данном такте; xj ∈ I — входной символ (поступает с входной ленты); wk ∈ W — обозреваемый символ рабочей ленты; qr ∈ Q — результирующее состояние на данном такте; ws ∈ W — символ, заменяющий обозреваемый символ рабочей ленты; yt ∈ O — выходной символ (выводится на выходную ленту); M ∈ {L, R, C} — указатель движения головки на рабочей ленте. На каждом такте с входной ленты поступает очередной символ xj . Машина в соответствии с этим символом, внутренним состоянием qi и обозреваемым символом wk на рабочей ленте выполняет одновременно три действия: меняет внутреннее состояние на qr , меняет обозреваемый символ на рабочей ленте на символ ws и выводит на выходную ленту символ yt . В начальном состоянии машина находится во внутреннем состоянии q1 , рабочая лента пуста. Завершение работы машины можно устроить по-разному. Например, как и в случае машины без входа и выхода, останов происходит при достижении внутреннего состояния q0 (завершающего). Тогда исходное слово — последовательность использованных входных символов, результирующее слово — последовательность выходных символов. Как входные символы, так и выходные могут быть пустыми и в итоге не учитываются (нужны, чтобы сделать паузу на входе и выходе). Входная и выходная ленты бесконечны справа. Другой вариант, когда внутреннее завершающее состояние отсутствует, а машина останавливается, когда на выходной ленте появляется один из некоторого набора специальных символов. В этом случае нужен некий символ #, фиксирующий конец входного слова. Когда входное слово завершено, на вход подается символ # и с этого момента появление завершающего символа на выходе останавливает машину. ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 10.4. Обобщения машин Тьюринга ÌÃÒÓ ÔÍ-12 В совокупности рассмотренный комплекс машин Ti реализует нормальный алгорифм с заданной схемой. I ÌÃÒÓ ÌÃÒÓ Машина Te представляет собой заглушку“: она просто переводит состояние qn2 в состояние ” ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ИУ-9, МЛТА, 2009-10 уч.г. ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ Остается установить читающую головку перед словом и завершить работу в состоянии q1 или q0 : ( qi,2s+5 a0 → q1 a0 R, qi,2s+5 ξ → qi,2s+5 ξL, ξ ∈ A \ {a0 }. q0 . ÔÍ-12 ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ 110 ÌÃÒÓ ÌÃÒÓ qi aj1 aj2 . . . ajk → qr as1 as2 . . . ask M1 M2 . . . Mk . (10.1) ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 При внутреннем состоянии qi и обозреваемых символах ajl , l = 1, k, она переходит в состояние qr , каждый l-й обозреваемый символ заменяется на asl , а l-я головка смещается согласно символу Ml ∈ {L, R, C}. Независимое расположение головок на ленте может привести к ситуации, когда несколько головок обозревают один символ. В этом случае действует правило приоритета: за изменение символа отвечает головка с наименьшим номером (можем считать, что каждая головка сделает свое дело, но первой пишет головка с наибольшим номером). Останов такой машины может происходить либо по отсутствию команды, либо по заключительному состоянию (что, в общем-то, одно и то же). Из этих монстров наиболее распространены многоленточные машины Тьюринга, которые используют в задачах оценки сложности алгоритмов. Так называют абстрактную машину, имеющую несколько лент. На каждой ленте имеется читающая головка, все головки перемещаются независимо. Команды машины Тьюринга имеют тот же вид (10.1), но теперь головки находятся на разных лентах. Конфигурацией такой машины является набор слов Xl qi Yl , l = 1, k, где Xl , Yl , — слова во внешнем алфавите, одно из которых не пусто. Начальная конфигурация состоит из слов вида q1 Yl (т.е. Xl = Λ). Машина завершает работу, как и одноленточная машина, по отсутствию команды или по заключительному состоянию. Многоленточные машины удобны для реализации словарных функций нескольких переменных. Каждый аргумент записывается на своей ленте. Одна лента выделена под результат. Некоторые ленты могут использоваться для промежуточных вычислений. Обобщения машины Тьюринга потенциально имеют больше возможностей, чем стандартная машина Тьюринга. Так одноленточная машина может быть реализована на многоленточной, например, так: на одной ленте происходят вычисления, а остальные не изменяются. Чтобы обеспечить соглашение о расположении исходного слова и результата на разных лентах, достаточно реализовать предварительное копирование исходного слова на результирующую ленту. Однако в действительности расширение возможностей не приводит к расширению множества вычислимых словарных функций. Можно придумать разные варианты эмуляции многоленточной машины Тьюринга на одноленточной. Один из них такой. Исходные слова на лентах записываем как γ-систему, добавляя в слова специальный символ µ, указывающий положение головки на этом слове. Одноленточная машина пробегает слово, выбирая обозреваемые символы, которые идут вслед за µ, и формируя соответствующее внутреннее состояние. Затем обратным ходом машина реализует требуемые изменения. Разумеется, такая эмуляция требует большой внутренней памяти (множества внутренних состояний) и большой длины программы. Ясно, что в определенных ситуациях при решении задач на существование алгоритмов многоленточные машины использовать проще. ÌÃÒÓ ÔÍ-12 Многоголовочная машина Тьюринга имеет одну бесконечную двустороннюю ленту и некоторое количество k головок, обозревающих эту ленту. Положения головок независимы, команды такой машины имеют вид ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ 111 ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 10. Машины Тьюринга ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ОГЛАВЛЕНИЕ . . и . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . нормальных алгорифмов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 102 105 106 110 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 10. Машины Тьюринга 10.1. Основные понятия . . . . . . . . . . 10.2. Сочетания машин Тьюринга . . . . 10.3. Эквивалентность машин Тьюринга 10.4. Обобщения машин Тьюринга . . . ÌÃÒÓ ÔÍ-12 112 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ Московский государственный технический университет имени Н.Э. Баумана ÌÃÒÓ Факультет «Фундаментальные науки» Кафедра «Математическое моделирование» ÌÃÒÓ À.Í. Êàíàòíèêîâ È ÒÅÎÐÈß ÀËÃÎÐÈÒÌΠÊîíñïåêò ëåêöèé ÔÍ-12 Москва 2010 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 Äëÿ ñòóäåíòîâ êàôåäðû ÈÓ9 ÌÃÒÓ ÌÃÒÓ ÌÀÒÅÌÀÒÈ×ÅÑÊÀß ËÎÃÈÊÀ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ Мы можем дать индуктивное определение примитивно рекурсивной функции. 1. Простейшие функции примитивно рекурсивные. n 2. Если функции f m , g1n , g2n , . . . , gm примитивно рекурсивные, то их суперпозиция — примитивно рекурсивная функция. 112 ÔÍ-12 hn+1 (x1 , x2 , . . . , xn , 0) = f n (x1 , x2 , . . . , xn ), hn+1 (x1 , x2 , . . . , xn , y + 1) = g n+2 (x1 , x2 , . . . , xn , y, hn+1 (x1 , x2 , . . . , xn , y)). ÌÃÒÓ Выделим простейшие функции натурального аргумента: 1) инкремент f (x) = x+ = x + 1; 2) константа нуль 0(x) = 0; n 3) проективная функция Im (x1 , x2 , . . . , xn ) = xm , 1 6 m 6 n. Теперь определим простейшие операции над функциями: n 1◦ суперпозиция f m (g1n (x1 , x2 , . . . , xn ), . . . , gm (x1 , x2 , . . . , xn )) (здесь верхний индекс в обозначении функции указывает на ее арность); 2◦ примитивная рекурсия, которая из функций f n и g n+2 строит новую функцию hn+1 = = R(f n , g n+2 ) в соответствии с равенствами: ÔÍ-12 11.1. Примитивно рекурсивные функции ÌÃÒÓ ÔÍ-12 ÌÃÒÓ Рекурсивные функции — некоторый класс функций одного или нескольких натуральных аргументов, которые можно получить из некоторого исходного набора функций с помощью определенных операций. Понятие рекурсивная функция“ — удобное математическое описание ” класса вычислимых (в том или ином смысле) функций, поскольку дается в привычных в математике терминах операций. В то же время процедура построения рекурсивной функции с помощью последовательности операций сродни построению формулы в том или ином формальном исчислении. Это родство выражают словом конструктивный“. Конструктивный объект ” отличается как раз тем, что известно, как он получен в результате конечной процедуры применения простейших операций. Поэтому с точки зрения формализации понятия алгоритм“ ” рекурсивные функции ничуть не хуже абстрактных машин или нормальных алгорифмов. Хотя нормальные алгорифмы и машины Тьюринга строились в произвольном алфавите, с принципиальной точки зрения выбор алфавита не является существенным, а любой алгоритм можно трансформировать в алгоритм с двухбуквенным алфавитом (это строго проверено в рамках нормальных алгорифмов). Это и понятно: множество слов в данном алфавите счетно, так что все слова можно перенумеровать, а любую словарную функцию рассматривать как функцию натурального аргумента, которая связывает не сами слова, а их номера. Это было понятно давно, и с самого начала теория алгоритмов строилась на базе двухбуквенного алфавита. В частности, в рамках рекурсивных функций рассматриваются не произвольные словарные функции, а словарные функции в двухбуквенном алфавите, которые легко интерпретируются как функции натурального аргумента. Различают рекурсивные функции, определенные для любых комбинаций значений аргументов, (т.е. область определения есть Nn ), и частично рекурсивные функции, область определения которых составляет лишь часть множества Nn . Начнем с множества исходных (простейших) рекурсивных функций. ÔÍ-12 ÔÍ-12 11. РЕКУРСИВНЫЕ ФУНКЦИИ ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ 113 3. Если функции f n и g n+2 примитивно рекурсивные, то функция R(f n , g n+2 ) примитивно рекурсивная. Отметим, что примитивно рекурсивных функций счетное множество. Действительно, простейших функций счетное множество (за счет проективных функций разной арности). С помощью одной операции из простейших мы получаем опять счетное множество. Следовательно, функций, получаемых двумя операциями счетное множество. В результате имеем счетное семейство счетных множеств, которое, как известно, счетно. В то же время всех функций натурального аргумента континуум. Множество Nk при любом k является счетным. Множество всех отображений Nk в множество {0, 1} есть булеан счетного множества, т.е. континуум. А множество всех функций k аргументов можно представить как множество подмножеств в Nk+1 (графиков функций). Значит, не более чем континуум. Из этих соображений вытекает, что подавляющее большинство функций натурального аргумента не является примитивно рекурсивным. Однако конкретный пример функции, не являющейся примитивно рекурсивной, привести не просто. Здесь та же ситуация, что и с функциями действительного переменного: весь ассортимент функций, которыми мы реально пользуемся — очень малая часть всего многообразия функций. Замечание 11.1. Проективные функции позволяют из данной примитивно рекурсивной функции получать новые функции простой перестановкой или дублированием аргументов. Действительно, если f (x1 , x2 ) примитивно рекурсивна, то примитивно рекурсивными будут f (x2 , x1 ), f (x, x), f (x, 0), поскольку По этой же причине если функция f (x1 , x2 , . . . , xn ) является примитивно рекурсивной, то и функция g(x1 , x2 , . . . , xn , xn+1 ) = f (x1 , x2 , . . . , xn ), полученная добавлением фиктивного аргумента, тоже примитивно рекурсивна: ÌÃÒÓ f (x2 , x1 ) = f (I22 (x1 , x2 ), I12 (x1 , x2 )), f (x, x) = f (I12 (x, x2 ), I12 (x, x2 )), f (x, 0) = f (I12 (x, x2 ), 0(I12 (x, x2 ))). ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 11. Рекурсивные функции где ysr обозначает одну из переменных x1 , x2 , . . . , xn . Как сказано, подстановка может быть сведена к суперпозиции с помощью соответствующих проективных функций. Пример 11.1. Все постоянные функции примитивно рекурсивные. Действительно, функция 0(x) = 0 простейшая, функция f (x) = 1 есть суперпозия 0(x)+ , а значит, простейшая. Далее применяя суперпозицию уже построенной функции f (x) = k с функцией-инкрементом, получаем f (x) = k + 1. Постоянные функции от нескольких переменных можно рассматривать как функции, полученные из постоянных функций одного переменного добавлением фиктивных аргументов. Отметим, что установленное свойство позволяет формально интерпретировать постоянные функции одного переменного как функции, полученные из нульарных“ функций ” добавлением фиктивного аргумента. ÔÍ-12 Замечание 11.2. Формально с помощью примитивной рекурсии мы можем получить лишь функцию, имеющую не менее двух аргументов (поскольку функция f имеет хотя бы один аргумент и, значит, n > 1). Однако использование постоянных функций позволяет построить следующую рекурсию: h1 (0) = k, h1 (y + ) = g 2 (y, h1 (y)). ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ km m hm (x1 , x2 , . . . , xn ) = f m (g1k1 (y11 , . . . , yk11 ), . . . , gm (y1 , . . . , ykmm )), ÌÃÒÓ ÔÍ-12 Эти правила можно обобщить, введя следующее понятие. Говорим, что функция hm получена km из функций f m , g1k1 , . . . , gm с помощью подстановки, если ÔÍ-12 ÔÍ-12 g(x1 , x2 , . . . , xn , xn+1 ) = f (I1n+1 (x1 , . . . , xn+1 ), I2n+1 (x1 , . . . , xn+1 ), . . . , Inn+1 (x1 , . . . , xn+1 )). ÌÃÒÓ После этого получаем нужную функцию: h1 (y) = h2 (y, y) (на самом деле значение h2 не зависит от первого аргумента). Приведенный пример наталкивает на мысль интерпретировать конкретные числа как нульарные функции, что позволяет ввести рассмотренный пример в рамки определения примитивной рекурсии. Пример 11.2. Функция s(x, y) = x + y примитивно рекурсивная. Действительно, из определения суммы в рамках формальной арифметики x + 0 = x, x + y + = (x + y)+ . Из этих равенств заключаем, что s(x, y) есть примитивная рекурсия: s(x, y + ) = s(x, y)+ = I33 (0, 0, s(x, y)+ ). Вторая формула представляет s(x, y + ) как суперпозицию функций g 3 (x, y, z) = z + = I33 (x, y, z + ), 0, 0 и s(x, y). Пример 11.3. Функция m(x, y) = xy также примитивно рекурсивная. Вспомним из формальной арифметики, что m(x, 0) = 0, m(x, y + ) = m(x, y) + x = s(x, m(x, y)). Последняя функция имеет два аргумента, а должно быть три. Вводим функцию s3 (x, y, z) = s(x, z). Тогда m(x, y + ) = s3 (x, y, m(x, y)). Остается показать, что s3 (x, y, z) является примитивно рекурсивной. Ее можно получить с помощью суперпозиции: s3 (x, y, z) = s(I13 (x, y, z), I33 (x, y, z)). n s (x1 , x2 , . . . , xn ) = xn X n n f (x1 , x2 , . . . , xn−1 , i) и m (x1 , x2 , . . . , xn ) = i=0 xn Y f n (x1 , x2 , . . . , xn−1 , i) i=0 примитивно рекурсивны. ÌÃÒÓ Теорема 11.1. Если f n (x1 , x2 , . . . , xn ) примитивно рекурсивна, то функции ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ИУ-9, МЛТА, 2009-10 уч.г. Здесь k — произвольное натуральное число. Действительно, рассмотрим постоянную функцию f 1 (ξ) = k и функцию g 3 (ξ, x1 , x2 ) = g 2 (x1 , x2 ). С помощью f 1 и g 3 строим функцию двух переменных: h2 (ξ, 0) = f 1 (ξ), h2 (ξ, y + ) = g 3 (ξ, y, h2 (ξ, y)). s(x, 0) = I12 (x, 0), ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ 114 sn (x1 , x2 , . . . , xn−1 , 0) = f n (x1 , x2 , . . . , xn−1 , 0), sn (x1 , x2 , . . . , xn−1 , k + ) = sn (x1 , x2 , . . . , xn−1 , k) + f n (x1 , x2 , . . . , xn−1 , k + 1). Функция f n (x1 , x2 , . . . , 0) примитивно рекурсивна как суперпозиция проекций и нулевой функции. Выражение sn (x1 , x2 , . . . , xn−1 , k) + f n (x1 , x2 , . . . , xn−1 , k + 1) можно представить в виде g n+1 (x1 , . . . , xn−1 , k, s(x1 , x2 , . . . , xn−1 , k)), где ÔÍ-12 ÔÍ-12 J В данном случае Последняя функция, очевидно, примитивно рекурсивная. Доказательство в случае умножения аналогично. I Замечание 11.3. Доказанную теорему можно немного обобщить, а именно: в условиях теоремы для любого k примитивно рекурсивными являются функции n n n f (x1 , x2 , . . . , xn−1 , i) и m (x1 , x2 , . . . , xn ) = i=0 xY n −k f n (x1 , x2 , . . . , xn−1 , i), i=0 где предполагается, что сумма нулевая, а произведение равно единице, если нижний предел суммирования больше верхнего. Возьмем, например, сумму. Очевидно, что s (x1 , x2 , . . . , xn ) = xn X f n (x1 , x2 , . . . , i − k). j=k ÌÃÒÓ n ÔÍ-12 ÔÍ-12 s (x1 , x2 , . . . , xn ) = xX n −k ÌÃÒÓ ÌÃÒÓ g n+1 (x1 , . . . , xn−1 , k, m) = f n (x1 , x2 , . . . , xn−1 , k + 1) + m. ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ Положив ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 115 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 11. Рекурсивные функции ( f n (x1 , x2 , . . . , y − k), y > k; g(x1 , x2 , . . . , xn−1 , y) = 0, 0 6 y < k, получим n s (x1 , x2 , . . . , xn ) = xn X g(x1 , x2 , . . . , i). Замечание 11.4. Функции sg(x) и sg(x) можно получить с помощью усеченной разности r(x, y) = x −· y = max {x − y, 0}. Действительно, sg(x) = 1 −· x, sg(x) = sg(sg(x)). Докажем, что усеченная разность разность есть примитивно рекурсивная функция. Имеем x −· 0 = x — примитивно рекурсивная функция. Покажем, что ϕ(x) = x −· 1 — тоже примитивно рекурсивная функция. Опять примитивная рекурсия: ϕ(0) = 0 — примитивно рекурсивна (формально), ϕ(y + ) = y = I12 (y, ϕ(y)). Теперь, возвращаясь к r(x, y) = x −· y, можем записать r(x, y + ) = x −· y + = (x −· y) −· 1 = ϕ(r(x, y)) = I33 (x, y, ϕ(r(x, y))). Полагая g 3 (x, y, z) = I33 (x, y, ϕ(z)), получим r(x, y + ) = g 3 (x, y, r(x, y)), что соответствует определению примитивной рекурсии. # 11.2. Предикаты, простые числа и возвратная рекурсия R1 ∧ R 2 , R1 → R 2 , ÌÃÒÓ R1 ∨ R2 , R1 ∼ R 2 , ¬R1 . ÔÍ-12 Теорема 11.3. Если R1 (x1 , . . . , xn ) и R2 (x1 , . . . , xn ) — примитивно рекурсивные предикаты, то примитивно рекурсивными являются следующие предикаты: ÌÃÒÓ Рассмотренные функции x + y, xy и т.д. получаются с помощью алгебраических операций. Таким способом однако нельзя получить другие используемые на практике функции, например функция p(i), значением которой является (i + 1)-е по порядку простое число. Однако и такие функции являются эффективно вычислимыми и естественен вопрос, являются ли они примитивно рекурсивными. Выделим класс целочисленных функций, принимающих лишь значения 0, 1, т.е. отображений множества Nk в множество {0, 1}. Такие функции являются истинностными функциями предикатов, определенных на множестве натуральных чисел. Не разделяя предикаты и их истинностные функции, будет говорить, что n-местный предикат — это функция от n натуральных аргументов, принимающая два значения 0, 1. В этом контексте можно говорить о примитивно рекурсивных предикатах. Выясним, как себя ведет условие примитивной рекурсивности при выполнении обычных логических операций. ÔÍ-12 ÔÍ-12 ÔÍ-12 в которой функция sg(x) равна 1 при x 6= 0 и 0 при x = 0, а функция sg(x) представляет ее дополнение: sg(x) = 1 − sg(x). Первую можно построить с помощью примитивной рекурсии: sg(0) = 0, sg(x+ ) = 1, где постоянную 1 можно рассматривать как функцию двух аргументов x и sg(x). Аналогично можно построить и дополняющую функцию sg(x): sg(0) = 0+ , sg(x+ ) = 0. I ÌÃÒÓ ÌÃÒÓ f n (x1 , x2 , . . . , xn ) = g1n (x1 , x2 , . . . , xn ) · sg(hn (x1 , x2 , . . . , xn )) + g2n (x1 , x2 , . . . , xn ) · sg(hn (x1 , x2 , . . . , xn )), ÔÍ-12 ÔÍ-12 J Доказательство построено на представлении f n в виде композиции ÌÃÒÓ ÌÃÒÓ Теорема 11.2. Пусть g1n , g2n , hn — примитивно рекурсивные функции. Тогда примитивно рекурсивной является функция ( g1n (x1 , x2 , . . . , xn ), hn (x1 , x2 , . . . , xn ) 6= 0; f n (x1 , x2 , . . . , xn ) = g2n (x1 , x2 , . . . , xn ), hn (x1 , x2 , . . . , xn ) = 0. ÔÍ-12 ÔÍ-12 Согласно теореме 11.1 эта функция примитивно рекурсивна, если функция g примитивно рекурсивна. Доказать примитивную рекурсивность g — несложное упражнение. ÌÃÒÓ ÌÃÒÓ j=0 ÌÃÒÓ ÔÍ-12 x ∨ y = sg(x + y), x ∧ y = xy, ¬x = sg(x), x → y = ¬x ∨ y = sg(x −· y), x ∼ y = sg((x −· y) + (y −· x)). f < g, f 6 g, f > g, f < g, f = g, f 6= g. J Все эти сравнения либо перестановкой двух функций, либо применением логических операций сводятся к одному сравнению f > g. Например, f > g ≡ ¬(g > f ), (f 6= g) ≡ (f > g) ∨ (g > f ). Сравнение f > g можно выразить через ранее рассмотренные функции: (f > g) ≡ sg(f −· g). I С предикатами могут также выполняться кванторные операции. Теорема 11.5. Если R(x1 , x2 , . . . , xn ) — примитивно рекурсивный предикат, то примитивно рекурсивны предикаты R∃ (x1 , x2 , . . . , xn ) = ∃y(y 6 xn ∧ R(x1 , x2 , . . . , xn−1 , y), R∀ (x1 , x2 , . . . , xn ) = ∀y(y 6 xn → R(x1 , x2 , . . . , xn−1 , y) и функция µ(x1 , x2 , . . . , xn ) = min {y: ((y < xn ) ∧ R(x1 , x2 , . . . , y)) ∨ (y = xn )} . J Утверждение о предикатах вытекает из представлений  R(x1 , x2 , . . . , xn−1 , i) , ÔÍ-12 R∃ (x1 , x2 , . . . , xn ) = sg xn X i=0 R∀ (x1 , x2 , . . . , xn ) = xn Y R(x1 , x2 , . . . , xn−1 , i) i=0 и теоремы 11.1. Примитивная рекурсивность функции µ вытекает из представления (i 6= xn ) ∧ i=0 i Y  ¬R(x1 , x2 , . . . , xn−1 , j) . j=0 Здесь особенность — наличие переменного xn под знаком суммы, что не предусматривается в теореме 11.1. Обойти это можно так. Функция y X f n+1 (x1 , x2 , . . . , xn , i) = i=0 y  X i=0 (i 6= xn ) ∧ i Y  ¬R(x1 , x2 , . . . , xn−1 , j) j=0 Для кванторных операций будем использовать упрощенные обозначения: ∀(y6xn ) R(x1 , x2 , . . . , xn−1 , y). ÔÍ-12 примитивно рекурсивна. Значит, и функция µ(x1 , x2 , . . . , xn ) = µe (x1 , x2 , . . . , xn , xn ) примитивно рекурсивна. I ∃(y6xn ) R(x1 , x2 , . . . , xn−1 , y), ÌÃÒÓ µ(x1 , x2 , . . . , xn ) = xn  X ÔÍ-12 ÌÃÒÓ ÔÍ-12 Теорема 11.4. Если функции f (x1 , x2 , . . . , xn ) и g(x1 , x2 , . . . , xn ) примитивно рекурсивны, то примитивно рекурсивными являются предикаты ÌÃÒÓ ÌÃÒÓ Предикаты можно получать как результат сравнения целочисленных функций. Если сравниваемые функции примитивно рекурсивны, то получаемый предикат тоже примитивно рекурсивен. ÌÃÒÓ ÔÍ-12 I ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ИУ-9, МЛТА, 2009-10 уч.г. J Достаточно выразить эти операции через уже рассмотренные: µe (x1 , x2 , . . . , xn , y) = ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ 116 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 117 Как и кванторные операции, операция минимизации допускает вариации с заменой неравенства на нестрогое или на двойное неравенство. Предикаты позволяют ввести новые примитивно рекурсивные функции, например: 1) x ... y — предикат x делится на y“; ” 2) Pr(x) — предикат число x простое“; ” 3) π(i) — функция, значением которой является (i + 1)-е (в порядке возрастания) простое число. Предикаты x ... y и Pr(x) можно записать с помощью логических и кванторных операций: (x ... y) ≡ ∃(i6x) (x = iy), Pr(x) ≡ ¬∃(i 1) ∧ (x ... i)). ÔÍ-12 ÔÍ-12 µ(y6xn )R(x1 , x2 , . . . , xn−1 , y) = min {y: (y < xn ∧ R(x1 , x2 , . . . , y)) ∨ y = xn } . и другие, отличающиеся типом неравенства (здесь ∇ — один из двух кванторов). Аналогичное обозначение введем для операции минимизации µ: ÌÃÒÓ С помощью этих базовых кванторных операций можно получить другие операции, также приводящие к примитивно рекурсивным предикатам, если исходные предикаты примитивно рекурсивны: ∇(y x)), которая возвращает первое простое число на промежутке x < i < y или число y, если на указанном промежутке нет простого числа. Тогда примитивную рекурсию для функции π(x) можно определить так: π(x+ ) = g(π(x), π(x)! + 1). Остается убедиться в том, что x! — примитивно рекурсивная функция. Каждое натуральное (ненулевое) число x можно разложить на простые множители, т.е. представить в виде x = pa11 pa22 . . . pakk . Такое разложение единственно, если простые множители pi пронумерованы по возрастанию. Более того, такое разложение можно записать в виде бесконечного произведения x = π(0)c0 π(1)c1 . . . π(n)cn . . . (11.1) ÌÃÒÓ ÌÃÒÓ π(x+ ) = µ(π(x) < i 6 π(x)! + 1) Pr(i). ÔÍ-12 ÔÍ-12 π(0) = 2, ÌÃÒÓ ÌÃÒÓ Функцию, перечисляющую простые числа, можно задать с помощью примитивной рекурсии следующим образом: ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ИУ-9, МЛТА, 2009-10 уч.г. hn+1 (x, 0) = f n (x), hn+1 (x, y + 1) = g n+s+1 (x, y, hn+1 (x, t11 (y)), . . . , hn+1 (x, t1s (y)) (11.2) (здесь для упрощения через x обозначена группа переменных x1 , x2 , . . . , xn ). H(x, y) = y Y π(i)h(x,i) i=0 Тогда h(x, k) = pw(k, H(x, y)), k 6 y. (11.3) Докажем, что функция H(x, y) примитивно рекурсивна. Имеем ÔÍ-12 ÔÍ-12 J Идея доказательства состоит в переходе от конструируемой функции hn+1 к другой в некотором роде аккумулирующей“ функции H n+1 , для которой* H(x, y) содержит в себе информацию ” о всех значениях h(x, k), 0 6 k 6 y, причем любое значение h(x, k) извлекается из H(x, y) стандартной процедурой. Тогда из примитивной рекурсивности H мы сможем сделать заключение о примитивной рекурсивности h. Речь идет о кодировании нескольких чисел в одно. Введем в рассмотрение производящую функцию ÌÃÒÓ ÌÃÒÓ Теорема 11.6. Функция, полученная возвратной рекурсией из примитивно рекурсивных функций, примитивно рекурсивна. ÔÍ-12 На самом деле последняя формула показывает, что функция двух переменных pw(i, x) есть примитивно рекурсивная функция (правда, надо доказать, что функция xy примитивно рекурсивна). Примитивная рекурсия возникает как реализация метода математической индукции при определении функции. Базовый вариант метода состоит в следующем. Доказываем какое-то утверждение, которое можно рассматривать как истинность некоторого предиката R(x). Если: а) R(0) истинно; б) из истинности R(n) следует истинность R(n+1), то предикат R(n) является тождественно истинным (наше утверждение верно для любого n). Однако известны различные модификации метода математической индукции, в которых для установления истинности R(n + 1) используется истинность нескольких предыдущих значений предиката: истинность R(k1 ), R(k2 ), . . . , R(ks ), где k1 < k2 < . . . < ks 6 n. Аналогичным образом значение целочисленной функции h(x1 , x2 , . . . , xn , y +1) может определяться на основе не только значения h(x1 , x2 , . . . , xn , y), но и некоторых предыдущих значений h(x1 , x2 , . . . , xn−1 , ki ) с ki < y. В этом случае говорят о возвратной рекурсии. Точное определение таково. Говорят, что функция hn+1 получается возвратной рекурсией из функций f n , g n+s+1 , t11 , . . . , t1s , где ti (y) 6 y, i = 1, s, если ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ 118 y−1 , H(x, y + 1) = Y π(i)h(x,i) · π(y + 1)h(x,y+1) = H(x, y)π(y + 1)h(x,y+1) . i=0 Поскольку h(x, y) получена возвратной рекурсией, т.е. по формуле (11.2), заключаем, что h(x, y + 1) = g(x, y, h(x, t1 (y)), . . . , h(x, ts (y)) = = g(x, y, pw(t1 (y), H(x, y)), . . . , pw(ts (y), H(x, y)) = G(x, y, H(x, y)), ÌÃÒÓ ÌÃÒÓ H(x, 0) = π(0) h(x,0) G(x, y, z) = g(x, y, pw(t1 (y), z), . . . , pw(ts (y), z). В результате H(x, y + 1) = H(x, y) π(y+1)G(x,y,H(x,y)) и функция H(x, y) получена примитивной рекурсией. Следовательно, H(x, y) примитивно рекурсивна. Согласно формуле (11.3) при k = y, функция h(x, y) также примитивно рекурсивна. I В доказательстве мы опять через x обозначаем группу неизменных аргументов x1 , x2 , . . . , xn . ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 * ÔÍ-12 ÔÍ-12 где ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ 119 Оказывается, что класс примитивно рекурсивных функции не охватывает множество всех вычислимых функций (в частности, вычислимых по Тьюрингу или Маркову). Первое обстоятельство — примитивно рекурсивные функции всюду определены. Но есть и второе, более серьезное обстоятельство, связанное с ростом функций. Функция Аккермана. Рассмотрим функцию B(x, y), называемую функцией Аккермана, которая определяется индуктивно следующими формулами: B(0, y) = 2 + y, B(x, 0) = sg(x − 1), x > 1, B(x + 1, y + 1) = B(x, B(x + 1, y)), B(0, y) = 2 + y, B(1, y) = 2y, y B(2, y) = 2 , 2 ·2 ·· B(3, y) = 2 (y раз). Видно, что с ростом x функция B(x, y) по y растет все быстрее. В то же время B(x, 1) = 2 + sg(x), B(x, 2) = 4, (11.4) ÌÃÒÓ т.е. при y 6 2 функция B(x, y) как функция переменного x ограничена. Однако B(0, 3) = 5, B(1, 3) = 6, B(2, 3) = 8, B(3, 3) = 16, ÔÍ-12 Из формул видно, что для вычисления B(x + 1, y + 1) необходимо знать B(x + 1, y) (это укладывается в операцию примитивной рекурсии) и все значения B(x, z), поскольку мы не знаем, какое конкретно z = B(x + 1, y) будет использовано. В действительности вычисление значений функции идет в общем порядке возрастания пар x, y, но конкретный порядок перебора этих пар устроен весьма сложно. Тем не менее эта функция вычислима. Непосредственно из формул вытекают соотношения ÌÃÒÓ ÔÍ-12 ÔÍ-12 11.3. Частично рекурсивные функции B(x, 0) = sg(x), ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 11. Рекурсивные функции ..., и видно, что функция B(x, 3) растет. B(x, y) < B(x, y + 1), x ∈ N, B(x, y + 1) 6 B(x + 1, y), x ∈ N. J Сначала докажем неравенство B(x, y) > y + 2, верное при y > 2. При x = 0 оно верно согласно определению функции Аккермана. Оно также верно при любом x > 0 и при y = 2, поскольку B(x, 2) = 4. Предположим, что оно верно при данном значении x для любого y > 2 и при значениях x + 1 и y > 2. Тогда ÔÍ-12 ÔÍ-12 Теорема 11.7. Функция B(x, y) удовлетворяет условиям Наконец, покажем, что B(x + 1, y) > B(x, y + 1) при y > 3. B(x + 1, y) = B(x, B(x + 1, y − 1)) > B(x, y − 1 + 2), поскольку B(x + 1, y − 1) > y + 1 при y > 3 и B(x, z1 ) > B(x, z2 ) при z1 > z2 . I Можно показать, что каждая примитивно рекурсивная функция f (x1 , x2 , . . . , xn ) при некотором достаточно большом m удовлетворяют неравенству kxk > 1. ÌÃÒÓ ÔÍ-12 f (x1 , x2 , . . . , xn ) 6 B(m, kxk), ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 Теперь докажем неравенство B(x, y + 1) > B(x, y). Оно очевидно при x = 0. Оно также верно, согласно (11.4), при любом x и при y < 2. Пусть x > 0 и y > 2. Тогда B(x, y) > y + 2 > 2 и B(x, y + 1) = B(x − 1, B(x, y)) > B(x, y) + 2 > B(x, y). ÌÃÒÓ ÌÃÒÓ B(x + 1, y + 1) = B(x, B(x + 1, y)) > B(x + 1, y) + 2 > y + 4 > y + 2. ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ИУ-9, МЛТА, 2009-10 уч.г. где kxk = max {x1 , x2 , . . . , xn }. Для этого достаточно проверить простейшие функции (для них m = 0) и сохранение свойства при суперпозиции и примитивной рекурсии. Указанным свойством не обладает диагональная функция Аккермана A(x) = B(x, x). Действительно, тогда должно было бы выполняться неравенство B(x, x) 6 B(m, x). Однако это неверно при x > m. Значит, диагональная функция Аккермана не является примитивно рекурсивной. Функция Аккермана — пример вычислимой функции, не являющейся примитивно рекурсивной. Существование таких функций указывает на то, что класс примитивно рекурсивных функций должен быть расширен. Это требование разрешается введением еще одной операции. Скажем, что n-арная функция hn получена из (n + 1)-местного предиката P n+1 с помощью оператора минимизации (µ-оператора), если hn (x1 , x2 , . . . , xn ) = µyP n+1 (x1 , x2 , . . . , xn , y), где символ µ означает выбор первого номера y, при котором P (x1 , x2 , . . . , xn , y) является истинным (т.е. равен единице). Отметим, что оператор µ уже был использован, но с дополнительным ограничением, когда y не превышал одной из переменных (в силу этого такой вариант называют оператором ограниченной минимизации). Оператор ограниченной минимизации не выводит из класса примитивно рекурсивных функций (это было установлено). Оператор общей минимизации уже нельзя выразить через операции композиции и примитивной рекурсии. ÔÍ-12 Определение 11.1. Скажем, что целочисленная функция f частично рекурсивна, если она удовлетворяет одному из условий: 1) примитивно рекурсивная функция частично рекурсивна; 2) функция, полученная с помощью оператора минимизации из частично рекурсивной функции, является частично рекурсивной. Смысл этой функции очевиден: s(x, y) = x − y, если x > y, и s(x, y) не определена, если x < y. Теорема 11.8. Любая частично рекурсивная функция вычислима по Маркову (Тьюрингу). J Понятия вычислимости по Маркову и Тьюрингу эквивалентны. Остановимся на вычислимости по Маркову, для чего будем опираться на сочетания нормальных алгорифмов. Надо доказать, что базисные функции вычислимы по Маркову и что операции образования новых функций сохраняют свойство вычислимости по Маркову. Очевидно, что простейшие функции вычислимы по Маркову. Также легко установить, что композиция функций, вычислимых по Маркову, является вычислимой по Маркову: достаточно сделать соединение нормальных алгорифмов в соответствии с рис. 11.1, на котором алгоритм Z0 удаляет лидирующий нуль в результате, представленном как γ-система. ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 s(x, y) = µz P (x, y, z). ÌÃÒÓ ÌÃÒÓ Пример 11.4. Рассмотрим предикат P (x, y, z) = (x = y + z). С помощью него и оператора минимизации определим функцию ÔÍ-12 Частичная рекурсивная функция при некоторых значениях аргументов может быть не определена. Пусть при данных x1 , x2 , . . . , xn значение предиката P (x1 , x2 , . . . , xn , y) равно нулю независимо от значения переменной y. Тогда оператор минимизации дает неопределенное значение. Внешне это выглядит как бесконечная проверка y = 1, 2, 3, . . . , которая никогда не заканчивается — ситуация, аналогичная неприменимости нормального алгорифма или машины Тьюринга. Если частично рекурсивная функция определена при любых значениях аргументов, ее называют общерекурсивной. ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ 120 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ 121 gn2 ? Z0 gnm Z0 ? fm ? ? gn1 ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 11. Рекурсивные функции ¹¤ б A2 Dl Dl Sl + 1 1 ÔÍ-12 Sl Z0 Z0 2 gn+ ÌÃÒÓ а Z0 в Рис. 11.2 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ Dl ÔÍ-12 ÔÍ-12 Z0 Sl ÔÍ-12 ÔÍ-12 A2 ÌÃÒÓ f L1 A1 ÌÃÒÓ = ¤ Dl ÔÍ-12 id A3 ÌÃÒÓ A1 ÔÍ-12 Перейдем к оператору примитивной рекурсии, который определяет функцию hn+1 по функциям f n и g n+2 . Чтобы вычислить функцию hn+1 для аргументов x1 , x2 , . . . , xn , y, необходимо многократно вычислять функцию g n+2 , а функцию f n использовать как начальное значение. В результате наш алгоритм реализуется как повторение с предусловием (рис. 11.2, а). Алгоритм A1 формирует γ-систему 01x1 0 . . . 01xn 01i 01z 01y 0, где i — текущее значение последнего аргумента функции hn+2 , z — текущее значение самой функции hn+2 , y — счетчик рекурсии. Начальное значение i нулевое, а начальное значение z есть f n (x1 , x2 , . . . , xn ). Далее на каждом шаге мы проверяем условие y = 0 (алгоритм L1 ). Если оно выполняется, выделяем из γ-системы слово z и предъявляем как результат (алгоритм A3 ). Если же y > 0, то в γ-системе заменяем z на g n+2 (x1 , x2 , . . . , xn , y, z), а y на y − 1 (алгоритм A2 ). Алгоритм A1 можно представить как соединение нескольких алгоритмов (рис. 11.2, б). В этом соединении алгоритм Dl удаляет последний элемент γ-системы, алгоритм Sl , наоборот, извлекает из γ-системы последний элемент, алгоритм id пустой, алгоритм f реализует вычисление функции f , алгоритм Z0 удаляет лидирующий нуль в γ-системе. Структура алгоритма A2 представлена на рис. 11.2, в, алгоритмы, обозначенные +1“ и −1“, соответственно при” ” бавляют к числу 1 и вычитают. Алгоритм L1 реализуется как композиция двух алгоритмов: первый алгоритм Sl извлекает из γ-системы параметр y, второй проверяет условие y = 0 и состоит из одной подстановки 00 →· Λ. Наконец, алгоритм A3 есть композиция алгоритмов Dl (удаляет счетчик y) и Sl (извлекает z). Оператор минимизации также реализуется как повторение с предусловием. Формируем γ-систему 01x1 0 . . . 01xn 01y 0. Начальное значение y нулевое. На каждом шаге проверяем значение ÌÃÒÓ ÌÃÒÓ Рис. 11.1 ÌÃÒÓ n(X) = js + js−1 ∗ m + j1 ∗ ms−1 . i = 1, 4, где u0 = (u01 , u02 , u03 , u40 ). Это похоже на примитивную рекурсию, но все четыре функции перевязаны. Выход: упаковать все четыре функции в одну так, что каждая извлекается из ÔÍ-12 ui (u0 , 0) = u0i , ui (u0 , t + 1) = u0i (u1 (u0 , t), u2 (u0 , t), u3 (u0 , t), u4 (u0 , t)), ÌÃÒÓ Таким образом, один шаг машины Тьюринга описывается четырьмя функциями, которые в силу их представления являются примитивно рекурсивными. Для описания многошаговой работы нужно ввести еще один аргумент, играющий роль времени: t = 0 соответствует начальной конфигурации машины Тьюринга, t = k — конфигурации, полученной после k-го шага. В результате получим функции ui (t), которые определяются следующим образом: ÔÍ-12 Каждому состоянию qi ставим в соответствие число i. Представленная числовая интерпретация элементов машины Тьюринга называется ее арифметизацией. Арифметизация машины Тьюринга позволяет любую конфигурацию Xqj ai Y представить как совокупность четырех чисел: n(X), j, i, n(Y ), Y — слово Y в обратном порядке. Инверсия слова Y позволяет пустые символы неограниченной ленты интерпретировать как незначащие разряды числа. Каждый шаг машины Тьюринга состоит из трех действий, зависящих от внутреннего состояния qj и обозреваемого символа ai : смене внутреннего состояния, замене обозреваемого символа и сдвиге читающей головки. Каждое из этих действий описывается соответствующей функцией: внутреннее состояние q̂(j, i), печатаемый символ â(j, i), сдвиг ŝ(j, i), который можно описать тремя значениями 0 (сдвига нет), 1 (влево), 2 (вправо). Каждая из этих функций определена на конечном множестве пар натуральных чисел. Доопределив их нулевым значением вне этого множества, получим примитивно рекурсивные функции. Каждую конфигурацию Xqj ai Y , как сказано, можно представить как совокупность четырех чисел u1 = n(X), u2 = j, u3 = i, u4 = n(Y ). Один шаг машины Тьюринга можно представить как преобразование этих чисел в новую четверку u01 = n(X 0 ), u02 = j 0 , u03 = i0 , u04 = n(Y ). Это преобразование описывается функциями  s(u2 , u3 ) = 0;  u1 , s(u2 , u3 ) = 1; u1 = [u1 /m], u02 = q̂(u2 , u3 );  u ∗ m + â(u , u ), s(u , u ) = 2; 1 2 3 2 3   s(u2 , u3 ) = 0;   â(u2 , u3 ), s(u2 , u3 ) = 0; u4 , u3 = u1 mod m, s(u2 , u3 ) = 1; u4 = u4 ∗ m + â(u2 , u3 ), s(u2 , u3 ) = 1;   u mod m, s(u , u ) = 2; [u /m], s(u2 , u3 ) = 2. 4 2 3 4 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ J В данной теореме мы будем ориентироваться на машины Тьюринга, учитывая, что вычислимость по Тьюрингу равносильна вычислимости по Маркову. Конечно, и машины Тьюринга, и нормальные алгорифмы реализуют словарные функции; числовые функции трактуются как особый тип словарных функций. Но для доказательства теоремы такой трактовки недостаточно, поскольку в процессе работы алгоритм часто выходит за рамки двухбуквенного алфавита. Поэтому необходимо любой словарной функции придать смысл функции числовой. Пусть A = a0 a1 . . . am−1 — внешний алфавит машины Тьюринга, Q = q0 q1 . . . qn−1 — ее внутренний алфавит. Каждое слово в алфавите A можно интерпретировать как запись числа в системе исчисления с основанием m и цифрами a0 , a1 , . . . , an , т.е. слову X = aj1 aj2 . . . ajs мы ставим в соответствие число ÔÍ-12 ÔÍ-12 Теорема 11.9. Любая функция, вычислимая по Тьюрингу (Маркову), частично рекурсивна. ÌÃÒÓ ÌÃÒÓ предиката P . Если значение 0, увеличиваем значение y на единицу и процедуру проверки повторяем. Если P = 0, выделяем из γ-системы последнее слово и завершаем работу алгоритма. I ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ИУ-9, МЛТА, 2009-10 уч.г. ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ 122 ÌÃÒÓ из которых видно, что это преобразование есть примитивно рекурсивная функция. Второе преобразование обратное. Его можно интерпретировать как пересчет числа в сумму его цифр. Можно показать, что она примитивно рекурсивна. С учетом этого факта заключаем, что функция f (x1 , x2 , . . . , xn ) частично рекурсивна. I Теорема 11.10 (теорема Клини о нормальной форме). Для каждого натурального n > 1 существуют такая примитивно рекурсивная функция F 1 и такой примитивно рекурсивный предикат Dn+2 , что для любой n-арной частично рекурсивной функции f n при некотором значении l имеет место представление Как видим, любая частично рекурсивная функция может порождаться только одним применением оператора примитивной рекурсии. Пусть F n — некоторое множество n-арных частично рекурсивных функций. Скажем, что функция U n+1 является универсальной для множества F n , если оно совпадает с множеством ÔÍ-12 f n (x1 , x2 , . . . , xn ) ' F 1 (µyDn+2 (l, x1 , x2 , . . . , xn , y)). # ÌÃÒÓ Пусть дана (n + 1)-арная частично рекурсивная функция f (x0 , x1 , . . . , xn ). Ясно, что для любого конкретного числа l функция gl (x1 , x2 , . . . , xn ) = f (l, x1 , . . . , xn ) является частично рекурсивной. Другими словами, каждая частично рекурсивная функция от n + 1 аргументов порождает счетное семейство частично рекурсивных функций от n аргументов. Может ли быть такое, что это семейство накрывает множество всех частично рекурсивных функций от n аргументов? Существование универсального алгорифма наталкивает на мысль, что такое вполне возможно. Ключевым пунктом здесь является следующая теорема. ÔÍ-12 11.4. Универсальные рекурсивные функции ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 n(X) = m + . . . + mxn + mxn +2 + mxn +3 + . . . + mxn +xn−1 +2 + . . . , ÌÃÒÓ ÌÃÒÓ упакованного варианта с помощью примитивно рекурсивной функции (например, используя характеристическую функцию как в возвратной рекурсии). Наконец, условие останова реализуется с помощью оператора минимизации. Сперва определяется t как функция начальной конфигурации: t = µτ (u2 (u0 , t) = 0). Затем эта функция начальных условий подставляется в функции ui , и мы получаем ui как функции только начальных условий. Можно считать, что машина Тьюринга начинает и завершает работу в стандартном положении, т.е. с положением читающей головки перед первым символом. Тогда в начале работы u01 = 0, u01 = 1, u02 = X mod m, u03 = [X/m], в конце работы Y = ue4 ∗ m + ue3 . Здесь X — исходное слово, Y — результирующее слово, в которое машина Тьюринга преобразовала слово X. В результате мы получили интерпретацию работы машины как вычисление частично рекурсивной функции. Пусть задана функция f (x1 , x2 , . . . , xn ), вычислимая по Тьюрингу. Соответствующая машина Тьюринга преобразует слово, представляющее собой запись аргументов функции в палоч” ной“ системе, в слово, представляющее собой запись результата в той же палочной“ системе. ” Эту машину представляет некоторая функция частично рекурсивная g(x) одного переменного, в которой исходное слово X и результирующее слово Y интерпретируются как запись чисел n(X) и n(Y ) в системе исчисления с основанием m. Исходную функцию f (x1 , x2 , . . . , xn ) можно представить как композицию трех функций, первая преобразует набор чисел x1 , x2 , . . . , xn в число n(X), вторая — это g(x), третья преобразует число n(Y ) в результат f (x1 , x2 , . . . , xn ). В свете этого, чтобы доказать частичную рекурсивность функции f , достаточно доказать частичную рекурсивность двух преобразований. Первое преобразование описывается формулой ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 123 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 11. Рекурсивные функции ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ИУ-9, МЛТА, 2009-10 уч.г. всех функций fl (x1 , . . . , xn ) = U n+1 (l, x1 , . . . , xn ), l ∈ N. В качестве такого множества будем n n всех общевсех частично рекурсивных функций, множество Fор рассматривать множество Fчр n рекурсивных функций и множество Fпр всех примитивно рекурсивных функций. Теорема 11.11. 1. Существует универсальная частично рекурсивная функция для множеn ства Fчр . n 2. Существует общерекурсивная функция, универсальная для множества Fпр , причем ни одна такая функция не является примитивно рекурсивной. n не имеет универсальной общерекурсивной функции. 3. Множество Fор Первое утверждение теоремы — очевидное следствие из теоремы Клини. Два других утверждения менее очевидны. Отметим, что из второго утверждения вытекает, что существуют общерекурсивные функции, не являющиеся примитивно рекурсивными. Универсальные частично рекурсивные функции в определенном смысле имеют максимальную область определения. Скажем, что функция g n является доопределением функции f n , если ее область определения включает область определения f n и на области определения f n значения двух функций совпадают. n Теорема 11.12. Никакая универсальная частично рекурсивная функция для множества Fор не может быть доопределена до общерекурсивной. g(x1 , x2 , . . . , xn ) = U n+1 (l, x1 , x2 , . . . , x2 ) = Gn+1 (l, x1 , x2 , . . . , x2 ). Но, учитывая определение функции g, заключаем, что ÌÃÒÓ J Пусть U n+1 — универсальная частично рекурсивная функция и Gn+1 — ее общерекурсивное доопределение. Рассмотрим функцию g(x1 , x2 , . . . , xn ) = Gn+1 (x1 , x1 , x2 , . . . , xn ) + 1. Это общерекурсивная функция n переменных и должна выражаться через универсальную функцию. Следовательно, при некотором l ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ 124 а это невозможно. I n Конечно, множество Fор имеет универсальную частично рекурсивную функцию (таковой n является любая универсальная функция для множества Fчр ). Согласно теореме 11.12 среди n универсальных функций для множества Fор нет общерекурсивных. Следствие 11.1. Существует одноместный частично рекурсивный предикат, не имеющий общерекурсивных доопределений. J Выберем какую-нибудь универсальную общерекурсивную функцию U n+1 и положим f (x) = = sg(U n+1 (x, x, . . . , x)). Пусть эта функция имеет общерекурсивное доопределение v(x). Образуем функцию n переменных, введя фиктивные переменные: g(x1 , x2 , . . . , xn ) = v(x1 ). Эта функция, как частично рекурсивная, выразима через универсальную. Поэтому при некотором l В частности, sg(U n+1 (l, l, . . . , l)) = U n+1 (l, l, l, . . . , l), а это равенство неверно. I ÔÍ-12 sg(U n+1 (x, x, . . . , x)) = v(x) = U n+1 (l, x, x2 , . . . , xn ). ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ Gn+1 (l, l, . . . , l) + 1 = Gn+1 (l, l, . . . , l), ÌÃÒÓ ÔÍ-12 В частности, ÔÍ-12 ÔÍ-12 Gn+1 (x1 , x1 , x2 , . . . , xn ) + 1 = Gn+1 (l, x1 , x2 , . . . , x2 ). ÌÃÒÓ Определение 11.2. Разрешимое множество (также рекурсивное множество) — любое подмножество множества натуральных чисел, характеристическая функция которого является общерекурсивной. Если характеристическая функция примитивно рекурсивна, то множество называют примитивно рекурсивным. Пример 11.5. Пустое множество, множество всех натуральных чисел примитивно рекурсивны, поскольку их характеристические функции, будучи постоянными, примитивно рекурсивны. Множество четных чисел примитивно рекурсивно: его характеристическая функция описывается формулой f (x) = 1 −· (x mod 2). Теорема 11.13. Если множества A и B разрешимы (примитивно рекурсивны), то и множества A ∩ B, A ∪ B, A \ B, A = N \ A разрешимы (примитивно рекурсивны). J Утверждение теоремы вытекает из следующих представлений теоретико-множественных операций через характеристические функции: χA∪B = χA + χB −· χA χB , χA\B = χA (1 −· χB ), χA = 1 −· χA . I Пример 11.6. Одноточечное множество A = {a} примитивно рекурсивно, поскольку его характеристическая функция χA (x) = sg(|x − a|) примитивно рекурсивна. Конечное множество примитивно рекурсивно как конечное объединение примитивно рекурсивных множеств. Теорема 11.14. Если общерекурсивная (примитивно рекурсивная) функция f удовлетворяет условию f (x) > x, x ∈ N, то множество ее значений разрешимо (примитивно рекурсивно). χA (x) = ∃(y 6 x)(f (y) = x). Пример 11.7. Как было показано, функция Pr(x), значением которой является простое число с номером x, примитивно рекурсивна. Множество ее значений — множество всех простых чисел — является примитивно рекурсивным, поскольку Pr(x) > x, x ∈ N. Определение 11.3. Множество A ⊂ N называется рекурсивно перечислимым, если оно совпадает с областью определения некоторой частично рекурсивной функции. ÔÍ-12 Из этой формулы вытекает общерекурсивность (примитивная рекурсивность) χA в случае, когда f (y) общерекурсивна (примитивно рекурсивна). I ÌÃÒÓ J Суть в механизме проверки, является ли данное число x значением функции f . При y > x имеем f (y) > y > x, так что равенство x = f (y) надо проверять только для значений y, не превышающих x. Характеристическую функцию множества A значений функции f можно записать с помощью ограниченного квантора существования: ÔÍ-12 χA∩B = χA χB , ÌÃÒÓ ÔÍ-12 ÌÃÒÓ Разрешимость множества равносильна вычислимости его характеристической функции. Понятие вычислимой функции мы отождествляем с понятием частично рекурсивной функции. Для целей описания множеств нужны всюду определенные, т.е. общерекурсивные функции. Это объясняет следующее определение. ÔÍ-12 ÔÍ-12 Под разрешимым понимают множество, для которого можно построить разрешающий алгоритм, т.е. алгоритм, который для любого объекта a определяет, принадлежит a множеству или нет. Мы рассматриваем подмножества множества натуральных чисел. Ясно, что среди них есть неразрешимые (на всех алгоритмов не хватает). Каждое подмножество A в N можно описать характеристической функцией ( 1, x ∈ A; χA (x) = 0, x ∈ / A. ÌÃÒÓ ÌÃÒÓ 11.5. Разрешимые и перечислимые множества ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 125 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 11. Рекурсивные функции ÌÃÒÓ Теорема 11.16. Непустое множество рекурсивно перечислимо тогда и только тогда, когда оно является областью значений некоторой одноместной примитивно рекурсивной функции. J Доказательство в одну сторону основано на той же идее, что и предыдущая теорема, только квантор существования уже не будет ограниченным и вместо него лучше использовать оператор минимизации. Итак, пусть A — множество значений примитивно рекурсивной функции f . Сформируем двуместный предикат f (y) = x и используем оператор минимизации: g(x) = µ(y)(f (y) = x). ÔÍ-12 Теорема 11.17. Если A и B рекурсивно перечислимы, то A ∩ B и A ∪ B рекурсивно перечислимы. ÌÃÒÓ где b — один из фиксированных элементов множества, которое по условию непусто. Очевидно, что множество значений функции g совпадает с рассматриваемым множеством. I ÔÍ-12 Функция g(x) частично рекурсивна, так как получена с помощью оператора минимизации из примитивно рекурсивного предиката. Она не определена, если x не является значением функции f , и имеет значение наименьшего числа y, для которого f (y) = x, если x является значением функции f . В другую сторону доказательство сложнее. Речь идет о перестройке процедуры, порождающей частично рекурсивную функцию. Согласно теореме Клини о нормальной форме, частично рекурсивная функция одного переменного может быть получена из примитивно рекурсивного предиката одним оператором минимизации (функция F 1 в нормальной форме не играет роли). Итак, пусть частично рекурсивная функция f (x) получена с помощью примитивно рекурсивного предиката P (x, y) согласно формуле f (x) = µy(P (x, y)). Согласно этой формуле, число x принадлежит области определения функции f , если для этого x при некотором y предикат P (x, y) имеет значение 1. Надо пересчитать все такие x, может быть, с повторением. Для этого достаточно перенумеровать пары (x, y) в одну последовательность, т.е. сформировать функцию c(x, y). Этой функции соответствуют функции l(n) и r(n), вычисляющие по номеру пары левую и правую компоненты. Все три функции при подходящем выборе нумерации примитивно рекурсивны (это можно показать). Далее создаем функцию ( l(n), P (l(n), r(n)); g(n) = b, ¬P (l(n), r(n)), ÌÃÒÓ ÔÍ-12 ÌÃÒÓ J Согласно условию характеристическая функция χA множества A общерекурсивна. Составим функцию fA (x) = µy(χA (x)) + 1. Если χA (x) = 0, то значение оператора минимизации не определено и функция fA (x) не определена. Если χA (x) = 1, то µy(χA (x)) = 0 и значение fA (x) есть 1. Следовательно, область определения функции fA совпадает с множеством A и это множество рекурсивно перечислимо. I ÔÍ-12 ÔÍ-12 Теорема 11.15. Разрешимое множество рекурсивно перечислимо. ÌÃÒÓ ÌÃÒÓ Определение можно переформулировать и так: множество A рекурсивно перечислимо, если существует частично рекурсивная функция f , удовлетворяющая условию: f (x) = 1, если x ∈ A, и f (x) не определена, если x ∈ / A. Действительно, если A есть область определения частично рекурсивной функции g, то указанному требованию удовлетворяет функция f (x) = 1(g(x)). Нетрудно понять, что понятие рекурсивно перечислимого множества более широкое по сравнению с понятием разрешимого множества. Действительно, если для каждого n мы можем проверить, принадлежит оно множеству или нет, то ясен алгоритм и перечисления таких чисел: последовательно просматривая натуральный ряд, мы присваиваем функции значение 1, если число принадлежит множеству, или зацикливаем алгоритм в противном случае. Докажем этот факт строго. ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ИУ-9, МЛТА, 2009-10 уч.г. ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ 126 ÌÃÒÓ Теорема 11.18. Существуют рекурсивно перечислимые множества, не являющиеся разрешимыми. Существуют рекурсивно перечислимые множества, дополнения к которым не являются рекурсивно перечислимыми. J Область определения A предиката f из следствия 11.1 — рекурсивно перечислимое множество. Рассмотрим функцию h(x) = 1(f ((x)), равную 1 на множестве A и не определенную вне A. Если бы множество A было разрешимо, существовал бы предикат χA , равный 1 на A и 0 вне A, т.е. функция h имела бы общерекурсивное доопределение. Но тогда и функция f имеет общерекурсивное доопределение: ( f (x), χA (x); f˜(x) = 0, ¬χA (x). Теорема 11.19 (теорема Поста). Если множество A и его дополнение рекурсивно перечислимы, то множество A разрешимо. ÌÃÒÓ ÔÍ-12 J Можно выделить случай, когда либо A, либо его дополнение пусто. В этом случае утверждение тривиально. Будем считать, что A 6= ∅, A 6= ∅. Существуют примитивно рекурсивная функция f1 , множество значений которой есть A, и примитивно рекурсивная функция f2 , множество значений которой есть A. Рассмотрим функцию f (x) = µy((f1 (y) = x) ∨ (f2 (y) = x)). Покажем, что она общерекурсивна. Это значит, что для любого x существует такое y, что либо f1 (y) = x, либо f2 (y) = x. Пусть x произвольно. Если x ∈ A, то ∃y(f1 (y) = x) (т.е. x есть значение f1 ), а если x ∈ A, то y — значение f2 , т.е. ∃y(f2 (y) = x). Таким образом, функция f является общерекурсивной. Рассмотрим общерекурсивный предикат v(x) = (f1 (f (x)) = x). Если x ∈ A, то ∃y(f1 (y) = x) и 6 ∃y(f2 (y) = x). Значит, значением f (x) является первое же y, для которого f1 (y) = x. Но тогда f1 (f (x)) = x и v(x) = 1. Пусть x∈ / A. Тогда 6 ∃y(f1 (y) = x) и ∃y(f2 (y) = x). Следовательно, значение f1 (f (x) 6= x, каково бы ни было значение y. Поэтому v(x) = 0. Мы доказали, что общерекурсивный предикат v является характеристической функцией множества A. Следовательно, A разрешимо. I ÔÍ-12 Поскольку в силу следствия 11.1 функция f не имеет общерекурсивного доопределения, то и предикат χA не существует, а множество не является разрешимым. Пусть D3 — предикат из нормальной формы Клини для n = 1. Рассмотрим функцию ϕ(x) = µyD3 (x, x, y). Поскольку ϕ образована из примитивно рекурсивного предиката оператором минимизации, она частично рекурсивна. Ее область определения B = {x ∈ N: ∃yD(x, x, y)}. Пусть X — произвольное рекурсивно перечислимое множество. Согласно теореме о нормальной форме его можно определить как область определения функции µyD3 (l, x, y) при некотором значении l. Выясняется, что если l ∈ B, т.е. ∃yD(l, l, y), то l ∈ X, а если l ∈ / B, то l ∈ / X. Значит, произвольно взятое рекурсивно перечислимое множество не может быть дополнением к B и дополнение к B не является рекурсивно перечислимым. I ÌÃÒÓ ÔÍ-12 ÌÃÒÓ Как показано выше класс рекурсивно перечислимых множеств включает в себя класс разрешимых множеств. Уточним связь между двумя классами множеств. ÔÍ-12 ÔÍ-12 Множеством значений этой функции является A ∪ B. I ÌÃÒÓ ÌÃÒÓ J Пусть A и B — области определения функций fA и fB . Тогда область определения, например, функции fA (x)fB (x) есть A ∩ B. Отметим, что при A = ∅ или B = ∅ множество A ∪ B совпадает с B или A, а потому рекурсивно перечислимо. Предположим, что A И B не пусты. Тогда существуют примитивно рекурсивные функции gA и gB , множества значений которых совпадают с A и B. Рассмотрим функцию ( gA ([x/2]), x mod 2 = 0; h(x) = gB ((x/2]), x mod 2 6= 0. ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 127 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 11. Рекурсивные функции ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ОГЛАВЛЕНИЕ . . . . . . рекурсия . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 112 115 119 123 125 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 11. Рекурсивные функции 11.1. Примитивно рекурсивные функции . . . 11.2. Предикаты, простые числа и возвратная 11.3. Частично рекурсивные функции . . . . . 11.4. Универсальные рекурсивные функции . 11.5. Разрешимые и перечислимые множества ÌÃÒÓ ÔÍ-12 128 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 mOSKOWSKIJ GOSUDARSTWENNYJ TEHNI^ESKIJ UNIWERSITET IMENI n.|. bAUMANA ÔÍ-12 ÌÃÒÓ fAKULXTET fUNDAMENTALXNYE NAUKI kAFEDRA mATEMATI^ESKOE MODELIROWANIE ÌÃÒÓ À.Í. Êàíàòíèêîâ È ÒÅÎÐÈß ÀËÃÎÐÈÒÌΠÊîíñïåêò ëåêöèé ÔÍ-12 mOSKWA 2010 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 Äëÿ ñòóäåíòîâ êàôåäðû ÈÓ9 ÌÃÒÓ ÌÃÒÓ ÌÀÒÅÌÀÒÈ×ÅÑÊÀß ËÎÃÈÊÀ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ pROBLEMA RASPOZNAWANIQ SAMOPRIMENIMOSTI 127 ÔÍ-12 eSLI ALFAWIT A SODERVIT NE MENEE DWUH BUKW, L@BOJ NORMALXNYJ ALGORIFM MOVNO ZAPISATX W WIDE SLOWA AZ W TOM VE ALFAWITE A. dLQ \TOGO DOSTATO^NO W ALFAWITE A WYDELITX PODALFAWIT A0 IZ DWUH BUKW I PEREWESTI IZOBRAVENIE ALGORITMA A W ALFAWIT A0 . tO, ^TO POLU^ITSQ, NAZOWEM ZAPISX@ NORMALXNOGO ALGORIFMA. |TA ZAPISX MOVET BYTX ISHODNYM SLOWOM DLQ SAMOGO NORMALXNOGO ALGORIFMA. mOVNO POSTAWITX WOPROS, PRIMENIM LI NORMALXNYJ ALGORIFM K SWOEJ ZAPISI? mOVET BYTX DA, A MOVET BYTX I NET. nAPRIMER, ALGORITM, DOBAWLQ@]IJ K ISHODNOMU SLOWU PERWU@ BUKWU ALFAWITA A, PRIMENIM K L@BOMU SLOWU, W TOM ^ISLE I K SWOEJ ZAPISI. a ESLI NORMALXNYJ ALGORIFM NEPRIMENIM K SLOWAM, IME@]IM NEKOTORYE SO^ETANIQ BUKW (NAPRIMER, K SLOWAM, SODERVA]IM PERWU@ BUKWU PODALFAWITA A0), TO ON MOVET BYTX NEPRIMENIMYM K SWOEJ ZAPISI. ÌÃÒÓ 12.1. ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ oDNA IZ PRI^IN RAZRABOTKI TEORII ALGORITMOW — PROWERKA SU]ESTWOWANIQ ALGORITMOW, RE[A@]IH TE ILI INYE ZADA^I. eSLI ZAQWLEN NEKOTORYJ ALGORITM, RE[A@]IJ TU ILI INU@ ZADA^U, TO PROWERITX EGO KA^ESTWA — W OSNOWNOM TEHNI^ESKAQ ZADA^A. nO ESLI ESTX PODOZRENIE, ^TO TAKOGO ALGORITMA NE SU]ESTWUET (NAPRIMER, ALGORITMA PROWERKI FORMULY LOGIKI PREDIKATOW NA ISTINNOSTX), OBOSNOWATX \TO PODOZRENIE MOVNO TOLXKO TOGDA, KOGDA ALGORITM IZ INTUITIWNOGO PONQTIQ TRANSFORMIROWAN W STROGOE MATEMATI^ESKOE PONQTIE. rAZUMEETSQ, NELXZQ DOKAZATX, ^TO TA ILI INAQ FORMALIZACIQ PONQTIQ ALGORITMA OHWATYWAET WSE MYSLIMYE ALGORITMY. w \TOM SMYSLE TEZIS ~ER^A (ILI tX@RINGA, mARKOWA) — NERAZRE[IMAQ PROBLEMA. wYDELIM TAK NAZYWAEMYE MASSOWYE ALGORITMI^ESKIE PROBLEMY. mASSOWOJ NAZYWA@T PROBLEMU SU]ESTWOWANIQ ALGORITMA, RE[A@]EGO BESKONE^NU@ SERI@ ODNOTIPNYH ZADA^. eSLI UDAETSQ ARIFMETIZIROWATX MASSOWU@ PROBLEMU, T.E. PERENUMEROWATX WSE ^ASTNYE SLU^AI SERII ODNOTIPNYH ZADA^ I PREDSTAWITX W SIMWOLI^ESKOJ FORME WOZMOVNYE RE[ENIQ KAVDOJ ZADA^I, TO ZADA^A SWODITSQ K POSTROENI@ NEKOEJ FUNKCII h, KOTORAQ KAVDOJ ZADA^E S NOMEROM n STAWIT W SOOTWETSTWIE EE RE[ENIE h(n). sIMWOLI^ESKIE ZAPISI WSEH WOZMOVNYH RE[ENIJ TOVE MOVNO PERENUMEROWATX. w \TOM SMYSLE FUNKCIQ h BUDET FUNKCIEJ NATURALXNOGO ARGUMENTA. sU]ESTWOWANIE ALGORITMA WY^ISLENIQ \TOJ FUNKCII I ESTX MATEMATI^ESKAQ INTERPRETACIQ RAZRE[IMOSTI MASSOWOJ PROBLEMY. dADIM TO^NOE OPREDELENIE. pUSTX X — S^ETNOE MNOVESTWO, KOTOROE MY MOVEM INTERPRETIROWATX KAK MNOVESTWO SLOW W NEKOTOROM ALFAWITE A. pOLAGAEM, ^TO ESTX SWOJSTWO, KOTORYM OBLADAET ILI NET KAVDYJ \LEMENT x ∈ X. |TO SWOJSTWO MOVNO OPISATX NEKOTORYM PREDIKATOM P (x), OPREDELENNYM NA MNOVESTWE X. mASSOWAQ ALGORITMI^ESKAQ PROBLEMA SOSTOIT W POSTROENII ALGORITMA A W ALFAWITE A, KOTORYJ PRIMENIM K L@BOMU \LEMENTU x ∈ X, PRI^EM A(x) = Λ, ESLI P (x) ISTINNO, I A(x) 6= Λ, ESLI P (x) LOVNO. mASSOWAQ ALGORITMI^ESKAQ PROBLEMA NERAZRE[IMA, ESLI TAKOGO ALGORITMA NET. pRIMEROM TAKIH PROBLEM QWLQETSQ NERAZRE[IMOSTX RQDA FORMALXNYH AKSIOMATI^ESKIH TEORIJ (W ^ASTNOSTI, IS^ISLENIQ WYSKAZYWANIJ), T.E. OTSUTSTWIE ALGORITMA, KOTORYJ PO ZADANNOJ FORMULE USTANAWLIWAET, WYWODIMA \TA FORMULA W DANNOJ TEORII ILI NET. mY OSTANOWIMSQ NA ODNOJ WNUTRENNEJ PROBLEMATIKE TEORII ALGORITMOW. ÔÍ-12 ÔÍ-12 nerazre{imye algoritmi~eskie problemy 12. ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 w SOOTWETSTWII S FORMULIROWKOJ TEOREMY NORMALXNYJ ALGORIFM P PRIMENIM K ZAPISQM WSEH NESAMOPRIMENIMYH ALGORFMOW I DAET PRI \TOM PUSTOE SLOWO, A K ZAPISQM DRUGIH NORMALXNYH ALGORIFMOW ON MOVET BYTX I NEPRIMENIM, NO ESLI PRIMENIM, TO DAET W REZULXTATE NEPUSTOE SLOWO. ÌÃÒÓ * ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ bUDEM GOWORITX, ^TO ALGORITM A SAMOPRIMENIM, ESLI !A(AZ). eSLI VE ¬!A(AZ), TO GOWORIM, ^TO ALGORITM A NESAMOPRIMENIM. mOVNO LI POSTROITX ALGORITM, PROWERQ@]IJ, QWLQETSQ LI DANNYJ ALGORITM A SAMOPRIMENIMYM? tEOREMA 12.1. pUSTX ALFAWIT A SODERVIT NE MENEE DWUH BUKW. nE SU]ESTWUET NORMALXNOGO ALGORIFMA R W ALFAWITE A, KOTORYJ DLQ L@BOGO NORMALXNOGO ALGORIFMA A W ALFAWITE A PRIMENIM K AZ TOGDA I TOLXKO TOGDA, KOGDA NORMALXNYJ ALGORIFM A NESAMOPRIMENIM. J pREDPOLOVIM, ^TO ALGORITM R SU]ESTWUET. tOGDA W SILU SWOEGO OPREDELENIQ !R(RZ ), ESLI R NESAMOPRIMENIM. nO \TI DWA UTWERVDENIQ WZAIMNO ISKL@^A@]IE. I dOKAZANNAQ, W OB]EM-TO TRIWIALXNAQ, TEOREMA OGRANI^IWAETSQ LI[X ^ASTNYM SLU^AEM NORMALXNYH ALGORIFMOW, NE ISPOLXZU@]IH SPECIALXNYH SIMWOLOW. oDNAKO OB]IJ SLU^AJ MOVNO SWESTI K \TOMU ^ASTNOMU. pUSTX ALFAWIT A SODERVIT NE MENEE 4-H BUKW. zAFIKSIRUEM PODALFAWIT A0 IZ DWUH BUKW, KOTORYE ISPOLXZUEM DLQ ZAPISI NORMALXNYH ALGORIFMOW W ALFAWITE A, I WYDELIM PODALFAWIT A1 ⊂ A IZ ^ETYREH BUKW, WKL@^A@]IJ W SEBQ A0. tEOREMA 12.2. pUSTX A SODERVIT NE MENEE ^ETYREH BUKW I A0 ⊂ A — DWUHBUKWENNYJ PODALFAWIT. nE SU]ESTWUET NORMALXNOGO ALGORIFMA R NAD ALFAWITOM A0, KOTORYJ DLQ L@BOGO NORMALXNOGO ALGORIFMA A W ALFAWITE A PRIMENIM K AZ TOGDA I TOLXKO TOGDA, KOGDA A NESAMOPRIMENIM. J pUSTX TAKOJ ALGORITM SU]ESTWUET. sOGLASNO TEOREME PRIWEDENIQ, MOVNO POSTROITX NORMALXNYJ ALGORITM R1 W ^ETYREHBUKWENNOM ALFAWITE A1, WPOLNE \KWIWALENTNYJ ALGORITMU R OTNOSITELXNO ALFAWITA A0. |TO ZNA^IT, ^TO DLQ L@BOGO SLOWA X ∈ A∗0 IMEEM !R(X) ⇔!R1(X). dLQ ALGORITMA R1 MOVNO POSTROITX EGO ESTESTWENNOE RAS[IRENIE R2 NA ALFAWIT A, TAK ^TO DLQ L@BOGO SLOWA X ∈ A∗0 IMEEM !R1(X) ⇔!R2(X). mY POLU^ILI, ^TO ALGORITM R2 PRIMENIM K TEM I TOLXKO K TEM ZAPISQM W A0 NORMALXNYH ALGORIFMOW W ALFAWITE A, KOTORYE QWLQ@TSQ NESAMOPRIMENIMYMI. nO TAKOGO NORMALXNOGO ALGORIFMA NE SU]ESTWUET. zNA^IT, I NORMALXNOGO ALGORIFMA TIPA ALGORITMA R TOVE NE SU]ESTWUET. I sU]ESTWOWANIE NORMALXNOGO ALGORIFMA SO SWOJSTWOM, OPISANNYM WY[E, WSE RAWNO NE RE[ILO BY PROBLEMU RASPOZNAWANIQ SAMOPRIMENIMOSTI (NESAMOPRIMENIMOSTI), POSKOLXKU DLQ NESAMOPRIMENIMYH ALGORITMOW NA[ ALGORITM R DAWAL BY OTWET, A DLQ SAMOPRIMENIMYH — NET, TAK KAK DLQ TAKIH ALGORITMOW ON BUDET RABOTATX NEOGRANI^ENNO DOLGO. mODIFICIRUEM POSTANOWKU ZADA^I. mASSOWOJ PROBLEMOJ RASPOZNAWANIQ NESAMOPRIMENIMOSTI NAZOWEM PROBLEMU SU]ESTWOWANIQ ALGORITMA P, PRIMENIMOGO K ZAPISI W A0 L@BOGO NORMALXNOGO ALGORIFMA W ALFAWITE A I UDOWLETWORQ@]EGO USLOWI@: P PREOBRAZUET ZAPISX NORMALXNOGO ALGORIFMA W PUSTOE SLOWO, ESLI \TOT NORMALXNYJ ALGORIFM NESAMOPRIMENIM, I W NEPUSTOE SLOWO W PROSTIWNOM SLU^AE. oKAZYWAETSQ, ^TO \TA MASSOWAQ ALGORITMI^ESKAQ PROBLEMA NERAZRE[IMA. tEOREMA 12.3. pUSTX A SODERVIT NE MENEE ^ETYREH BUKW I A0 ⊂ A — DWUHBUKWENNYJ PODALFAWIT. nE SU]ESTWUET NORMALXNOGO ALGORIFMA P NAD ALFAWITOM A0, KOTORYJ DAET PUSTOE ZNA^ENIE NA SLOWE X ∈ A∗0 TOGDA I TOLXKO TOGDA, KOGDA X ESTX ZAPISX NESAMOPRIMENIMOGO NORMALXNOGO ALGORIFMA. J nA SAMOM DELE \TO MODIFIKACIQ PREDYDU]EJ TEOREMY. dEJSTWITELXNO, PUSTX NORMALXNYJ ALGORIFM P SU]ESTWUET. tOGDA EGO LEGKO MODIFICIROWATX, ZACIKLIWAQ W TEH SLU^AQH, KOGDA REZULXTATOM QWLQETSQ NEPUSTOE SLOWO (DOSTATO^NO WZQTX KOMPOZICI@ P S NORMALXNYM ALGORIFMOM, OPISYWAEMYM GRUPPOWOJ PODSTANOWKOJ ξ → ξ, GDE ξ PROBEGAET WESX ALFAWIT ALGORITMA P). w REZULXTATE POLU^IM NORMALXNYJ ALGORIFM S TEMI VE SWOJSTWAMI, ^TO I ALGORITM R IZ TEOREMY 12.2. nO TAKOGO ALGORITMA NE SU]ESTWUET. zNA^IT, NE SU]ESTWUET I ALGORITMA P. I dOKAZANNAQ TEOREMA, W ^ASTNOSTI, UTWERVDAET I OTSUTSTWIE NORMALXNOGO ALGORIFMA, PRIMENIMOGO KO WSEM ZAPISQM NORMALXNYH ALGORIFMOW W ALFAWITE* A, NO DA@]EGO W REZULXTATE PUSTOE ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 iu-9, mlta, 2009-10 U^.G. ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ 128 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 129 SLOWO TOLXKO DLQ NESAMOPRIMENIMYH NORMALXNYH ALGORIFMOW. |TO I OZNA^AET, ^TO MASSOWAQ PROBLEMA RASPOZNAWANIQ NESAMOPRIMENIMOSTI NERAZRE[IMA. nETRUDNO TAKVE SDELATX WYWOD O NERAZRE[IMOSTI MASSOWOJ PROBLEMY RASPOZNAWANIQ SAMOPRIMENIMOSTI, POSKOLXKU IZ SOOTWETSTWU@]EGO ALGORITMA LEGKO POLU^ITX ALGORITM RASPOZNAWANIQ NESAMOPRIMENIMOSTI. pROBLEMA RASPOZNAWANIQ PRIMENIMOSTI ALGORITMA K SLOWU ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12PROBLEMY ÌÃÒÓ 12. nERAZRE[IMYE ALGORITMI^ESKIE ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 sHOVAQ PROBLEMA — SU]ESTWOWANIE ALGORITMA, RASPOZNA@]EGO PRIMENIMOSTX DANNOGO ALGORITMA K PROIZWOLXNOMU SLOWU. pUSTX DAN NORMALXNYJ ALGORIFM A NAD ALFAWITOM A. pOSTAWIM WOPROS: SU]ESTWUET LI NORMALXNYJ ALGORIFM P, KOTORYJ PRIMENIM K L@BOMU SLOWU W ALFAWITE A, I DA@]IJ W REZULXTATE PUSTOE SLOWO TOGDA I TOLXKO TOGDA, KOGDA K ISHODNOMU SLOWU PRIMENIM (NEPRIMENIM) NORMALXNYJ ALGORIFM A? sUTX PROBLEMY W SLEDU@]EM. kONE^NO, MOVNO PRIMENITX SAM ALGORITM A K SLOWU X. oDNAKO \TO DAST OTWET TOLXKO W SLU^AE, KOGDA ALGORITM A PRIMENIM K \TOMU SLOWU X. nEPRIMENIMOSTX OZNA^AET, ^TO A BUDET RABOTATX WE^NO, A MY NA KAVDOM [AGE NE ZNAEM, OSTANOWITSQ ON ^EREZ PARU [AGOW ILI NET. rAZUMEETSQ, ESTX ALGORITMY, DLQ KOTORYH OTWET O^EWIDEN. nAPRIMER, TOVDESTWENNYJ ALGORITM PRIMENIM K L@BOMU SLOWU, POSTROENIE DLQ NEGO RASPOZNA@]EGO ALGORITMA TRIWIALXNO: RASPOZNA@]IJ ALGORITM DOLVEN WSEGDA WOZWRA]ATX Λ. nO DLQ WSEH LI ALGORITMOW IMEETSQ TAKOE RASPOZNAWANIE? tEOREMA 12.4. sU]ESTWUET NORMALXNYJ ALGORIFM C NAD PQTIBUKWENNYM ALFAWITOM A2, OBLADA@]IJ SWOJSTWOM: NE SU]ESTWUET NORMALXNOGO ALGORIFMA P NAD A2, KOTORYJ PREOBRAZUET W Λ TE I TOLXKO TE SLOWA W ALFAWITE A2, K KOTORYM NEPRIMENIM C. J dOKAZATELXSTWO OSNOWANO NA SU]ESTWOWANII UNIWERSALXNOGO ALGORIFMA. pUSTX A2 = a0 a1 αβδ, POLAGAEM A0 = a0a1, A1 = A0αβ. rASSMOTRIM UNIWERSALXNYJ ALGORIFM R DLQ ALFAWITA A2. mY MOVEM EGO TRASFORMIROWATX W NORMALXNYJ ALGORIFM C, W KOTOROM ISPOLXZU@TSQ NE IZOBRAVENIQ NORMALXNYH ALGORFMOW, A IH ZAPISI W ALFAWITE A0. dEJSTWITELXNO, NETRUDNO POSTROITX NORMALXNYJ ALGORIFM SZ, PEREWODQ]IJ ZAPISX NORMALXNOGO ALGORIFMA W EGO IZOBRAVENIE. tOGDA KOMPOZICIQ C = R ◦ SZ BUDET OBLADATX SWOJSTWOM !C(AZδX) ' R(X). pUSTX DLQ NORMALXNOGO ALGORIFMA C SU]ESTWUET RASPOZNA@]IJ NORMALXNYJ ALGORIFM P, T.E. P(X) = Λ ⇔ ¬!C(X). w KA^ESTWE X RASSMOTRIM SLOWA WIDA AZδAZ PO WSEM NORMALXNYM ALGORIFMAM A W ALFAWITE A2. mY ZAKL@^AEM, ^TO P(AZδAZ) = Λ ⇔ ¬!C(AZδAZ). nO !C(AZδAZ) ' !A(AZ ). pO\TOMU P(AZ δAZ ) = Λ ⇔ ¬!A(AZ ). tRANSFORMIRUEM ALGORITM P, WZQW EGO KOMPOZICI@ S ALGORITMOM S2, KOTORYJ UDWAIWAET ZAPISX NORMALXNOGO ALGORIFMA: S2(AZ) = AZδAZ. pOLU^IM NORMALXNYJ ALGORIFM P1 = P ◦ S2, OBLADA@]IJ SWOJSTWOM: P1(AZ) = Λ ⇔ ¬!A(AZ), T.E. NORMALXNYJ ALGORIFM P1 RASPOZNAET SWOJSTWO NESAMOPRIMENIMOSTI. sOGLASNO TEOREME 12.3 TAKOGO ALGORITMA NE SU]ESTWUET. zNA^IT, PREDPOLOVENIE O SU]ESTWOWANII NORMALXNOGO ALGORIFMA P NEWERNO, ^TO I DOKAZYWAET TEOREMU. I zAME^ANIE 12.1. pOSTROENNYJ NAMI NORMALXNYJ ALGORIFM C IMEET BOLX[OJ ALFAWIT: KROME OSNOWNOGO ALFAWITA A2 ON ISPOLXZUET ZNA^ITELXNOE KOLI^ESTWO SPECSIMWOLOW. oDNAKO EGO MOVNO PEREWESTI W \KWIWALENTNYJ NORMALXNYJ ALGORIFM W DWUHBUKWENNOM ALFAWITE, PEREWODQ TAKVE I ISHODNYE SLOWA. w REZULXTATE MY POLU^AEM NORMALXNYJ ALGORIFM W DWUHBUKWENNOM ALFAWITE, PRIMENIMOSTX KOTOROGO K SLOWAM W \TOM ALFAWITE NE RASPOZNAETSQ. iZ DOKAZANNOJ TEOREMY WYEKA@T SLEDU@]IE UTWERVDENIQ. sLEDSTWIE 12.1. sU]ESTWUET NORMALXNYJ ALGORIFM C NAD PQTIBUKWENNYM ALFAWITOM A2, OBLADA@]IJ SWOJSTWOM: NE SU]ESTWUET NORMALXNOGO ALGORIFMA P NAD A2, PRIMENIMOGO KO ÌÃÒÓ ÌÃÒÓ 12.2. ÌÃÒÓ K KOTORYM 2 ÔÍ-12 ÌÃÒÓ ÔÍ-12 OBLADA@]IJ SWOJSTWOM: NE SU]ESTWUET NORMALXNOGO ALGORIFMA P NAD A2, PRIMENIMOGO KO WSQKOMU SLOWU W A2 I PREOBRAZU@]EGO W Λ TE I TOLXKO TE SLOWA W ALFAWITE A2, K KOTORYM PRIMENIM C. |TI SLEDSTWIQ USTANAWLIWA@T NERAZRE[IMOSTX PROBLEMY RASPOZNAWANIQ PRIMENIMOSTI (NEPRIMENIMOSTI) ALGORITMA K SLOWU. oTMETIM E]E ODIN ASPEKT, SWQZANNYJ S \TIMI SLEDSTWIQMI. l@BOJ NORMALXNYJ ALGORIFM ESTESTWENNO ASSOCIIROWATX S ^ASTI^NO REKURSIWNOJ FUNKCIEJ (TAKAQ ASSOCIACIQ WOZNIKAET W REZULXTATE PROCESSA ARIFMETIZACII NORMALXNYH ALGORITMOW). pRI \TOM NORMALXNYJ ALGORIFM, PRIMENIMYJ K L@BOMU SLOWU I DA@]IJ REZULXTAT W WIDE PUSTOGO ILI NEPUSTOGO SLOWA, ASSOCIIRUETSQ S OB]EREKURSIWNYM PREDIKATOM. pRI TAKOJ TRAKTOWKE NETRUDNO UWIDETX SLEDU@]U@ INTERPRETACI@ SFORMULIROWANNYH SLEDSTWIJ: SU]ESTWUET REKURSIWNO PERE^ISLIMOE MNOVESTWO (OBLASTX PRIMENENIQ NORMALXNOGO ALGORIFMA C), DOPOLNENIE K KOTOROMU NE QWLQETSQ RAZRE[IMYM, I SU]ESTWUET REKURSIWNO PERE^ISLIMOE MNOVESTWO, NE QWLQ@]EESQ RAZRE[IMYM. bLIZKA K RASSMOTRENNOJ I PROBLEMA RASPOZNAWANIQ ANNULIROWANIQ, SOSTOQ]AQ W SLEDU@]EM: SU]ESTWUET LI DLQ DANNOGO ALGORITMA A NAD ALFAWITOM A TAKOJ NORMALXNYJ ALGORIFM R, KOTORYJ PRIMENIM K L@BOMU SLOWU W A I ANNULIRU@]IJ (PREOBRAZU@]IJ W PUSTOE SLOWO) TE I TOLXKO TE SLOWA ALFAWITA A, KOTORYE ANNULIRUET A. pROSTOJ MEHANIZM RAZWETWLENIQ POZWOLQET ALGORITM C NAD ALFAWITOM A2 PREWRATITX W ALGORITM B, KOTORYJ ANNULIRUET TE I TOLXKO TE SLOWA, DLQ KOTORYH C PRIMENIM (T.E. LIBO DAET PUSTOE SLOWO, LIBO NEPRIMENIM). dOSTATO^NO WZQTX KOMPOZICI@ ALGORITMA C S ALGORITMOM, ANNULIRU@]IM L@BOE SLOWO. w REZULXTATE PROBLEMA RASPOZNAWANIQ ANNULIROWANIQ DLQ TAKOGO ALGORITMA BUDET RAWNOSILXNA PROBLEME RASPOZNAWANIQ PRIMENIMOSTI, A POSLEDNQQ NE IMEET RE[ENIQ. mNOVESTWO WSEH ^ASTI^NO REKURSIWNYH FUNKCIJ S^ETNO. |TO MOVNO USMOTRETX RAZNYMI SPOSOBAMI. nAPRIMER, MOVNO WSPOMNITX O SU]ESTWOWANII UNIWERSALXNYH FUNKCIJ, KOTOROE WYTEKAET IZ TEOREMY kLINI O NORMALXNOJ FORME. oGRANI^IMSQ FUNKCIQMI ODNOGO PEREMENNOGO. sU]ESTWUET TAKAQ ^ASTI^NO REKURSIWNAQ FUNKCIQ U 2, ^TO MNOVESTWO FUNKCIJ U 2(n, ·) SOWPADAET S MNOVESTWOM WSEH ^ASTI^NO REKURSIWNYH FUNKCIJ ODNOGO PEREMENNOGO. uNIWERSALXNU@ FUNKCI@ MOVNO RASSMATRIWATX KAK NUMERU@]U@: KAVDOMU NOMERU SOOTWETSTWUET NEKOTORAQ FUNKCIQ I TAKIM SPOSOBOM OHWATYWA@TSQ WSE ^ASTI^NO REKURSIWNYE FUNKCII. oTMETIM, ^TO \TOT SPOSOB NUMERACII NE GARANTIRUET EDINSTWENNOSTX NOMERA. oDNAKO WAVNO NE TOLXKO PO NOMERU WY^ISLQTX FUNKCI@, NO I NAOBOROT, PO FUNKCII NAHODITX ODIN IZ EE NOMEROW. a KAK IDENTIFICIROWATX FUNKCI@? mY NE MOVEM \TOGO SDELATX PO EE DEJSTWI@, POSKOLXKU DLQ \TOGO NADO WYPOLNITX BESKONE^NOE KOLI^ESTWO PROWEROK. dWA \TIH MOMENTA SWQZANY. iDENTIFICIROWATX FUNKCII MOVNO SLEDU@]IM OBRAZOM. kAVDU@ FUNKCI@ MOVNO SWQZATX S NORMALXNYM ALGORIFMOM. nORMALXNYJ ALGORIFM W SWO@ O^EREDX MOVNO ZAPISATX W DWUHBUKWENNOM ALFAWITE. dEJSTWITELXNO, MOVNO OGRANI^ITXSQ S^ETNYM NABOROM BUKW I S^ITATX, ^TO ALFAWITY WSEH SHEM ^ERPA@TSQ IZ \TOGO MNOVESTWA. wSE \TI BUKWY MOVNO ZAKODIROWATX W DWUHBUKWENNOM ALFAWITE. w REZULXTATE WSE NORMALXNYE ALGORIFMY OKAVUTSQ PREDSTAWLENNYMI SLOWAMI W DWUHBUKWENNOM ALFAWITE. s KAVDYM NORMALXNYM ALGORIFMOM SWQZANA ^ASTI^NO REKURSIWNAQ FUNKCIQ. w REZULXTATE PERENUMERACII WSEH NORMALXNYH ALGORIFMOW POLU^IM NUMERACI@ ^ASTI^NO REKURSIWNYH FUNKCIJ. mOVNO POKAZATX, ^TO SU]ESTWUET ALGORITM, KOTORYJ PO NOMERU OPREDELQET NORMALXNYJ ALGORIFM, ZATEM SOOTWETSTWU@]U@ ^ASTI^NO REKURSIWNU@ FUNKCI@ I WY^ISLQET EE ZNA^ENIE, T.E. MY IMEEM ALGORITM WY^ISLENIQ FUNKCII DWUH PEREMENNYH, KOTORAQ OKAZYWAETSQ UNIWERSALXNOJ. ÌÃÒÓ ÔÍ-12 ÌÃÒÓ A2 , sLEDSTWIE 12.2. sU]ESTWUET NORMALXNYJ ALGORIFM C NAD PQTIBUKWENNYM ALFAWITOM A , ÔÍ-12 ÔÍ-12 TE I TOLXKO TE SLOWA W ALFAWITE ÌÃÒÓ ÌÃÒÓ Λ ÌÃÒÓ ÔÍ-12 I PREOBRAZU@]EGO W ÌÃÒÓ ÔÍ-12 iu-9, mlta, 2009-10 U^.G. ÔÍ-12 ÌÃÒÓ A2 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 WSQKOMU SLOWU W NEPRIMENIM C. ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ 130 ÌÃÒÓ = U 2 (a, x). I ÔÍ-12 pRAWDA, ZDESX ESTX TONKOSTX: ESTX ^ASTX ALGORITMOW, RABOTA@]IH S SISTEMAMI ^ISEL I TEM SAMYM WY^ISLQ@]IH FUNKCI@, A ESTX PROCEDURA ARIFMETIZACII, KOTORAQ KAVDYJ ALGORITM TRANSFORMIRUET W FUNKCI@. nADO, ^TOBY PRI \TOM HARAKTER PERWYH ALGORITMOW NE IZMENILSQ. ** ÌÃÒÓ dOKAZANNAQ TEOREMA POZWOLQET USTANOWITX UDIWITELXNYJ FAKT. pREDPOLOVIM, ^TO ESTX SWOJSTWO P , KOTORYM MOVET OBLADATX ILI NE OBLADATX ^ASTI^NO REKURSIWNAQ FUNKCIQ ODNOGO PEREMENNOGO. oPUSTIM O^EWIDNYE SLU^AI, KOGDA SWOJSTWOM OBLADA@T WSE FUNKCII ILI, NAOBOROT, NI ODNA IZ FUNKCIJ ODNOGO PEREMENNOGO. pOSTAWIM WOPROS: SU]ESTWUET LI ALGORITM, KOTORYJ PO NOMERU l USTANAWLIWAET, OBLADAET LI SWOJSTWOM P FUNKCIQ U 2(l, ·)? oKAZYWAETSQ, ^TO \TA ALGORITMI^ESKAQ PROBLEMA NERAZRE[IMA. tEZIS O SWOJSTWE ZDESX MOVNO OPUSTITX: SWOJSTWO OPREDELQET NEKOTOROE PODMNOVESTWO W MNOVESTWE WSEH ^ASTI^NO REKURSIWNYH FUNKCIJ ODNOGO PEREMENNOGO, PRI^EM \TO PODMNOVESTWO SOBSTWENNOE (NE PUSTO I NE ESTX WSE MNOVESTWO). sU]ESTWOWANIE RASPOZNA@]EGO ALGORITMA RAWNOSILXNO SU]ESTWOWANI@ OB]EREKURSIWNOGO PREDIKATA, WY^ISLQEMOGO ALGORITMOM, KOTORYJ DLQ DANNOGO x PRINIMAET ZNA^ENIE 1, ESLI FUNKCIQ S NOMEROM x OBLADAET SWOJSTWOM P , I ZNA^ENIE 0 W PROTIWNOM SLU^AE. iNA^E GOWORQ, RAZRE[IMOSTX POSTAWLENNOJ PROBLEMY RAWNOSILXNA TOMU, ^TO MNOVESTWO NOMEROW WSEH ^ASTI^NO REKURSIWNYH FUNKCIJ, OBLADA@]IH SWOJSTWOM ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 GDE U 3 — NUMERACIQ WSEH ^ASTI^NO REKURSIWNYH FUNKCIJ DWUH PEREMENNYH. J aLGORITM, KOTORYJ PO f (x, y) WY^ISLQET EE FUNKCI@ NOMERA s(x), NESLOVNO MODIFICIROWATX SLEDU@]IM OBRAZOM: K ^ISLU y DOBAWLQEM PARU ^ISEL n I x I PRIMENQEM ALGORITM WY^ISLENIQ U 3 . |TU PROCEDURU OFORMLQEM W WIDE ZAPISI I PO NEJ OPREDELQEM NOMER s(n, x) ZNA^ENIE y NA SAMOM DELE ZDESX NE NUVNO. w REZULXTATE ESTX ALGORITM, WY^ISLQ@]IJ s(n, x), A \TO ZNA^IT, ^TO \TA FUNKCIQ OB]EREKURSIWNA. I uSTANOWIM SLEDU@]IJ FAKT. tEOREMA 12.6 (kLINI). dLQ L@BOJ ^ASTI^NO REKURSIWNOJ FUNKCII g(x) SU]ESTWUET ^ISLO a TAKOE, ^TO U 2 (g(a), x) = U 2 (a, x). J rASSMOTRIM WSPOMOGATELXNU@ FUNKCI@ f (y, x) = U 2 (g(s(y, y)), x), GDE s — FUNKCIQ, SU]ESTWOWANIE KOTOROJ UTWERVDAETSQ SLEDSTWIEM 12.3. pOSKOLXKU f (y, x) ^ASTI^NO REKURSIWNA, SU]ESTWUET NOMER n, PRI KOTOROM f (y, x) = U 3(n, y, x). w REZULXTATE U 2(g(s(y, y)), x) = U 3(n, y, x). sOGLASNO SLEDSTWI@ 12.3 U 3(n, y, x) = U 2(s(n, y), x). pO\TOMU U 2(g(s(y, y)), x) = U 2(s(n, y), x). pOLOVIW y = n I OBOZNA^IW a = s(n, n) S U^ETOM OB]EREKURSIWNOSTI s POLU^AEM U 2(g(a), x) = ÌÃÒÓ ÌÃÒÓ U 3 (n, x, y) = U 2 (s(n, x), y), ÌÃÒÓ ÔÍ-12 ~TOBY PERENUMEROWATX WSE ALGORITMY, DOSTATO^NO USTROITX NUMERACI@ WSEH SLOW PO MERE WOZRASTANIQ IH DLINY, A PUTEM PROWERKI, ^TO \TO ZAPISX NORMALXNOGO ALGORIFMA (PO FORMALXNYM PRIZNAKAM), PROPUSTITX WSE LI[NIE SLOWA I TEM SAMYM POLU^ITX NUMERACI@ WSEH NORMALXNYH ALGORIFMOW. w DALXNEJ[EM BUDEM RASSMATRIWATX IMENNO TAKIE NUMERACII. tEOREMA 12.5. dLQ L@BOJ ^ASTI^NO REKURSIWNOJ FUNKCII f 2 SU]ESTWUET TAKAQ OB]EREKURSIWNAQ FUNKCIQ s(x), ^TO f (x, y) = U 2(s(x), y). J sU]ESTWUET NORMALXNYJ ALGORIFM A, WY^ISLQ@]IJ FUNKCI@ f (x, y). iDEQ TAKAQ. dLQ KAVDOGO x MY IMEEM FUNKCI@ ODNOGO PEREMENNOGO f (x, ·). mODIFIKACIEJ ALGORITMA A MOVNO POLU^ITX NORMALXNYJ ALGORIFM, WY^ISLQ@]IJ FUNKCI@ f (x, ·): DOSTATO^NO K ISHODNOMU SLOWU 01y 0 SLEWA DOBAWITX ARGUMENT x I PRIMENITX ALGORITM** A. w REZULXTATE MY POLU^AEM ALGORITM, KOTORYJ PO PERWOMU ARGUMENTU x OPREDELQET NOMER SOOTWETSTWU@]EGO ALGORITMA I TEM SAMYM NOMER s(x). I sLEDSTWIE 12.3. sU]ESTWUET OB]EREKURSIWNAQ FUNKCIQ s(n, x), DLQ KOTOROJ ÔÍ-12 ÌÃÒÓ ÌÃÒÓ 131 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12PROBLEMY ÌÃÒÓ 12. nERAZRE[IMYE ALGORITMI^ESKIE ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 iu-9, mlta, 2009-10 U^.G. RAZRE[IMO. oTMETIM, ^TO MNOVESTWO SAMIH ^ASTI^NO REKURSIWNYH FUNKCIJ MOVET BYTX RAZRE[IMYM, NAPRIMER, ESLI ONO KONE^NO. tEOREMA 12.7 (rAJS). pUSTX P — SOBSTWENNOE PODMNOVESTWO MNOVESTWA WSEH ^ASTI^NO REKURSIWNYH FUNKCIJ ODNOGO PEREMENNOGO. pRI L@BOJ NUMERACII ^ASTI^NO REKURSIWNYH FUNKCIJ MNOVESTWO NOMEROW FUNKCIJ, PRINADLEVA]IH P , NE RAZRE[IMO. J pREDPOLOVIM, ^TO MNOVESTWO NOMEROW N (P ) FUNKCIJ, PRINADLEVA]IH P , RAZRE[IMO. tOGDA I DOPOLNENIE N (P ) RAZRE[IMO, T.E. OBE HARAKTERISTI^ESKIE FUNKCII χN I χN MNOVESTW N (P ) I N (P ) QWLQ@TSQ OB]EREKURSIWNYMI. pO USLOWI@ OBA MNOVESTWA NE PUSTY, PO\TOMU MOVNO WYBRATX α ∈ N (P ) I β ∈/ N (P ). rASSMOTRIM FUNKCI@ P,  g(x) = α, x ∈ / N (P ); β, x ∈ N (P ). ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 w SILU PREDSTAWLENIQ g(x) = αχN (x) + βχN (x) DELAEM ZAKL@^ENIE, ^TO FUNKCIQ g(x) OB]EREKURSIWNA. pO FUNKCII g(x) WYBEREM ^ISLO a W SOOTWETSTWII S TEOREMOJ kLINI I RASSMOTRIM FUNKCI@ f (x) = U (g(A ), x), KOTORAQ, O^EWIDNO, ^ASTI^NO REKURSIWNA. iNTERESNO, PRINADLEVIT LI ^ISLO a MNOVESTWU N (P )? pREDPOLOVIM, ^TO a ∈ N (P ). tOGDA g(a) = β ∈/ N (P ). w REZULXTATE, S ODNOJ STORONY, U (a, ·) ∈ P , A S DRUGOJ, U (a, ·) = U (g(a), ·) = U (β, ·) ∈ / P . pREDPOLOVENIE a ∈ / P TAKVE PRIWODIT K PROTIWORE^I@. sLEDOWATELXNO, ISHODNOE PREDPOLOVENIE O RAZRE[IMOSTI N (p) NEWERNO. I ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ 132 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 13.1. sLOVNOSTX NORMALXNYH ALGORIFMOW ÌÃÒÓ ÔÍ-12 133 ÔÍ-12 sLOVNOSTX@ NORMALXNOGO ALGORIFMA S(A) NAZYWAETSQ KOLI^ESTWO ZNAKOW W IZOBRAVENII \TOGO ALGORIFMA, T.E. S(A) = |AI|. sLOVNOSTX WREMENI RABOTY tA(X) ALGORITMA A NAD SLOWOM X — \TO ^ISLO [AGOW RABOTY ALGORITMA DLQ DANNOGO SLOWA X. eSLI ALGORITM NEPRIMENIM K SLOWU X, S^ITAEM, ^TO tA(X) = ∞. rASSMOTRIM PROBLEMU RASPOZNAWANIQ SWOJSTWA P , KOTORYM MOGUT OBLADATX ILI NE OBLADATX SLOWA W ALFAWITE A. tAKAQ PROBLEMA W CELOM NERAZRE[IMA. oDNAKO RAZRE[IMOJ MOVET BYTX OGRANI^ENNAQ PROBLEMA — PROBLEMA SU]ESTWOWANIQ ALGORITMA, RASPOZNA@]EGO SWOJSTWO P DLQ SLOW DLINY NE BOLEE n. oTSUTSTWIE ALGORITMA DLQ WSEGO MNOVESTWA SLOW, W ^ASTNOSTI, WYTEKAET IZ TOGO, ^TO SLOVNOSTX ALGORITMA, RE[A@]EGO OGRANI^ENNU@ PROBLEMU, RASTET S ROSTOM PREDELXNOJ DLINY SLOWA. nAZOWEM WERHNEJ OCENKOJ SLOVNOSTI RASPOZNAWANIQ SWOJSTWA P TAKU@ FUNKCI@ f (n), ^TO DLQ KAVDOGO n SU]ESTWUET NORMALXNYJ ALGORIFM, RE[A@]IJ n-OGRANI^ENNU@ PROBLEMU RASPOZNAWANIQ SWOJSTWA P I IME@]IJ SLOVNOSTX NE WY[E f (n). nIVNEJ OCENKOJ NAZOWEM TAKU@ FUNKCI@ g(n), ^TO NI ODIN ALGORITM, RE[A@]IJ n-OGRANI^ENNU@ PROBLEMU RASPOZNAWANIQ, NE MOVET IMETX SLOVNOSTX MENEE g(n). pROSTENXKAQ TEOREMA O SLOVNOSTI RASPOZNAWANIQ SAMOPRIMENIMOSTI POKAZYWAET, PO^EMU \TA MASSOWAQ PROBLEMA NERAZRE[IMA. tEOREMA 13.1. pUSTX N — NATURALXNOE ^ISLO I R — NORMALXNYJ ALGORIFM W ALFAWITE A, IME@]EM NE MENEE ^ETYREH BUKW, PRIMENIMYJ K ZAPISI NORMALXNOGO ALGORIFMA A W ALFAWITE A SLOVNOSTI S(A) 6 N TOGDA I TOLXKO TOGDA, KOGDA A NESAMOPRIMENIM. tOGDA S(R) > N . J eSLI S(R) 6 N , TO EGO MOVNO PRIMENITX K SWOEJ ZAPISI. pRI \TOM SOGLASNO USLOWI@, ESLI ON NESAMOPRIMENIM, TO ON PRIMENIM K SWOEJ ZAPISI, T.E. SAMOPRIMENIM I, NAOBOROT, ESLI ON SAMOPRIMENIM, TO ON NEPRIMENIM K SWOEJ ZAPISI, T.E. NESAMOPRIMENIM. pROTIWORE^IE POKAZYWAET, ^TO NA SAMOM DELE S(R) > N . I ÌÃÒÓ ÔÍ-12 ÌÃÒÓ bOGATAQ PRAKTIKA PROGRAMMIROWANIQ W NA[E WREMQ ESTESTWENNYM OBRAZOM FORMIRUET PREDSTAWLENIQ O SLOVNOSTI PROGRAMMY. mY BY SKAZALI, ^TO BOLEE SLOVNOJ QWLQETSQ PROGRAMMA, POTREBLQ@]AQ BOLX[EE KOLI^ESTWO RESURSOW. kL@^EWYMI RESURSAMI W SOWREMENNOJ WY^ISLITELXNOJ PRAKTIKE QWLQ@TSQ PAMQTX I WREMQ. |TO I LOVITSQ W OSNOWU PONQTIJ SO SLOVNOSTI ALGORITMOW. zAMETIM, ^TO ISPOLXZUEMU@ PROGRAMMOJ PAMQTX MOVNO RAZDELITX NA DWE ^ASTI: PAMQTX DLQ RAZME]ENIQ SAMOJ PROGRAMMY I PAMQTX DLQ RAZME]ENIQ DANNYH. mY SOSREDOTO^IMSQ TOLXKO NA 1-J ^ASTI, T.E. NA OCENKE EMKOSTI SAMOJ PROGRAMMY. rAZUMEETSQ, ISPOLXZUEMYE RESURSY ZAWISQT OT TOGO, W KAKOJ SREDE REALIZUETSQ PROGRAMMA. w KONTEKSTE TEORII ALGORITMOW MOVNO SKAZATX TAK: SLOVNOSTX ALGORITMA ZAWISIT OT ISPOLXZUEMOJ WY^ISLITELXNOJ MODELI. mY KOSNEMSQ DWUH WY^ISLITELXNYH MODELEJ: NORMALXNYH ALGORIFMOW I ODNOLENTO^NYH MA[IN tX@RINGA. rEKURSIWNYE FUNKCII STOQT ZDESX OSOBNQKOM, POSKOLXKU MEHANIZM REKURSII MOVNO UPODOBITX NEALGORITMI^ESKOMU OPISANI@ SOOTWETSTWU@]EGO PREOBRAZOWANIQ. pODOBNYE OPISANIQ NA[LI SWOE PRIMENENIE W PRAKTIKE PROGRAMMIROWANIQ. |TU WY^ISLITELXNU@ MODELX W KONTEKSTE SLOVNOSTI MY OBSUVDATX NE BUDEM. ÔÍ-12 ÔÍ-12 slovnostx algoritmow ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ 13. ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 iu-9, mlta, 2009-10 U^.G. pOLU^ENNAQ OCENKA POZWOLQET DOKAZATX SLEDU@]U@ TEOREMU. tEOREMA 13.2. pUSTX NATURALXNOE ^ISLO N I NORMALXNYJ ALGORIFMZ C W A1 TAKOWY, ^TO C PRIMENIM K ZAPISI WSQKOGO ALGORITMA A W A1 S S(A) 6 N , PRI^EM C(A ) = Λ TOGDA I TOLXKO TOGDA, KOGDA A NESAMOPRIMENIM. tOGDA S(C) > N −4 89 . J pO ALGORITMU C POSTROIM ALGORITM Bτ , KAK OPISANO WY[E. tOGDA ALGORITM Bτ BUDET NEPRIMENIM K ZAPISI ALGORITMA A S S(A) 6 N TOGDA I TOLXKO TOGDA, KOGDA C = Λ, T.E. KOGDA A NESAMOPRIMENIM. pO DOKAZANNOMU W TEOREME 13.1 S(Bτ ) > N , A SOGLASNO NERAWENSTWU (13.1) POLU^AEM τ S(C) > N − 89 S(B ) − 89 > . 4 4 eξ → eξ,    ξe → ξe, e →· Λ,    Ae , ÔÍ-12 ^TO I TREBOWALOSX DOKAZATX. I zAME^ANIE 13.1. iZ DOKAZANNOJ TEOREMY NEMEDLENNO WYTEKAET, ^TO OB]AQ PROBLEMA NESAMOPRIMENIMOSTI NERAZRE[IMA: DLQ RAZRE[A@]EGO ALGORITMA C, ESLI ON SU]ESTWUET, POLU^AEM, ^TO S(C) > N −4 89 DLQ L@BOGO NATURALXNOGO N , A \TO NEWOZMOVNO. zAME^ANIE 13.2. aNALOGI^NYM OBRAZOM MOVNO POLU^ITX OCENKU DLQ ALGORITMOW, RE[A@]IH OGRANI^ENNU@ PROBLEMU SAMOPRIMENIMOSTI. dLQ \TOGO WZAMEN ALGORITMA B STROIM ALGORITM B0 SO SHEMOJ  ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 (13.1) ÌÃÒÓ ÌÃÒÓ S(Bτ ) 6 4S(A) − k + 90 6 4S(A) + 89. ÔÍ-12 ÔÍ-12 pERWYE TRI STROKI (FAKTI^ESKI \TO 9 PODSTANOWOK) DOBAWLQ@T E]E (5 · 4 + 4 + 3 + 1 + 1 + 4) · 2+ + 11 + 9 = 86 BUKW. w REZULXTATE ÌÃÒÓ 4(S(A) − (2k + 1)) + 5(k + 1) + 2k + 3 = 4S(A) − k + 4. ÔÍ-12 GDE Ae — NORMALXNYJ ALGORIFM, POLU^ENNYJ IZ ZAMYKANIQ A ZAMENOJ KAVDOJ TERMINALXNOJ PODSTANOWKI P →· Q PODSTANOWKOJ P → eQ. nETRUDNO UWIDETX, ^TO QWNO POSTROENA KOMPOZICIQ DWUH ALGORITMOW, PRI^EM WTOROJ ESTX ZACIKLIWATELX “ ξ →· Λ, Λ → Λ. aLGORITM B PRIMENIM K SLOWU X W A1 TOGDA I TOLXKO ” TOGDA, KOGDA A(X) 6= Λ. uSTROIM PEREWOD Bτ ALGORITMA B W ALFAWIT A1, ISPOLXZUQ W KA^ESTWE BAZY A0 = ab I PEREWODQ OSTALXNYE BUKWY PO PRAWILAM c → cdc, d → cd2c, e → cd3c. oCENIM SLOVNOSTX Bτ ^EREZ SLOVNOSTX A, POLAGAQ, ^TO SHEMA ALGORITMA A IMEET k PODSTANOWOK. ~ISLO BUKW ALFAWITA A1 W SHEME A MOVNO PODS^ITATX, WY^TQ WSE SLUVEBNYE SIMWOLY: k SIMWOLOW α ILI β I k + 1 SIMWOL γ. pOLU^AETSQ S(A) − (2k + 1). sHEMA ALGORITMA Ae SODERVIT DOPOLNITELXNU@ PODSTANOWKU, NO ^ISLO SIMWOLOW ALFAWITA A1 BUDET TO VE SAMOE. pRI PEREHODE K PEREWODU \TOGO ALGORIFMA KAVDAQ BUKWA ALFAWITA A1 ZAMENQETSQ SLOWOM DLINY NE BOLEE 4. kROME TOGO, W \TOM PEREWODE BUDET DO k + 1 BUKW e, KAVDAQ IZ KOTORYH ZAMENQETSQ SLOWOM DLINY 5. w REZULXTATE POLU^IM OCENKU  eξ →· Λ,    ξe →· Λ, e → e,    Ae , ÌÃÒÓ pEREHODIM K OCENKE SLOVNOSTI PROBLEMY RASPOZNAWANIQ NESAMOPRIMENIMOSTI. zAFIKSIRUEM ^ETYREHBUKWENNYJ ALFAWIT A1 = abcd. dLQ PROIZWOLXNOGO NORMALXNOGO ALGORIFMA A W ALFAWITE A1 POSTROIM ALGORITM B W ALFAWITE A1e SO SHEMOJ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ 134 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 135 pERWYE ^ETYRE STROKI W SHEME DA@T [2 · (5 · 4 + 4 + 3 + 1 + 1) + 4] · 2 + 6 + 9 = 139 SIMWOLOW (BYLO 86). pO\TOMU, POWTORQQ RASSUVDENIQ, ZAKL@^AEM, ^TO NORMALXNYJ ALGORIFM C0, RE[A@]IJ N -OGRANI^ENNU@ PROBLEMU SAMOPRIMENIMOSTI, IMEET OCENKU SLOVNOSTI S(C0 ) > N − 142 . 4 S(C) > 45 N − . 36 2 ÌÃÒÓ tEOREMA 13.3 I ZAME^ANIE 13.3 USTANAWLIWA@T NIVN@@ OCENKU DLQ OGRANI^ENNOJ PROBLEMY NEPRIMENIMOSTI ILI PRIMENIMOSTI K SLOWU. sU]ESTWU@T I WERHNIE OCENKI, IME@]IE TOT PORQDOK ROSTA, ^TO I NIVNIE OCENKI. tEOREMA 13.4. kAKOW BY NI BYL NORMALXNYJ ALGORIFM R NAD ALFAWITOM A0, SU]ESTWUET TAKAQ POSTOQNNAQ k, ^TO DLQ L@BOGO N SU]ESTWUET NORMALXNYJ ALGORIFM C SLOVNOSTI NE BOLEE N + k, RE[A@]IJ N -OGRANI^ENNU@ PROBLEMU PRIMENIMOSTI R K SLOWAM ALFAWITA A0 . N 143 − . 36 4 ÌÃÒÓ ÔÍ-12 S(C0 ) > ÔÍ-12 ^TO I TREBOWALOSX DOKAZATX. I zAME^ANIE 13.3. u^ITYWAQ ZAME^ANIE 13.2, NETRUDNO POLU^ITX OCENKU SLOVNOSTI DLQ ALGORITMA, RE[A@]EGO N -OGRANI^ENNU@ PROBLEMU PRIMENIMOSTI K SLOWU: ÌÃÒÓ  N K − 89 1N 45 > − 1 − 89 = − , 4 4 9 36 2 ÔÍ-12 S(C) > ÔÍ-12 eSLI NORMALXNYJ ALGORIFM C RE[AET PROBLEMU NEPRIMENIMOSTI ALGORITMA R3 K SLOWAM W ALFAWITE A0, TO, W ^ASTNOSTI, ON PRIMENIM K ZAPISI L@BOGO ALGORITMA S DLINOJ ZAPISI NE BOLEE N , PRI^EM C(AZ ) = Λ ⇔ ¬!A(AZ ). oTMETIM, ^TO DLQ L@BOGO NORMALXNOGO ALGORIFMA A W ALFAWITE A1 IMEEM |AZ| 6 9|AI|, POSKOLXKU IZOBRAVENIE STROITSQ W SEMIBUKWENNOM ALFAWITE abcdαβγ I PRI PEREWODE SEMI BUKW W DWUHBUKWENNYJ ALFAWIT KAVDAQ BUDET ZAPISANA MAKSIMUM 9 BUKWAMI. h i pUSTX A — NORMALXNYJ ALGORIFM W a1 S DLINOJ IZOBRAVENIQ (SLOVNOSTX@) NE BOLEE N9 (CELOJ ^ASTI DROBI). tOGDA |AZ | 6 N . sLEDOWATELXNO, !C(AZ ) I C(AZ ) = Λ h⇔ i¬!A(AZ ). mY WIDIM, ^TO C RE[AET K-OGRANI^ENNU@ PROBLEMU NESAMOPRIMENIMOSTI S K = N9 . pO\TOMU J ÌÃÒÓ sKAVEM, ^TO NORMALXNYJ ALGORIFM C NAD ALFAWITOM A RE[AET N -OGRANI^ENNU@ PROBLEMU PRIMENIMOSTI NORMALXNOGO ALGORIFMA A K SLOWAM W ALFAWITE A, ESLI DLQ WSQKOGO SLOWA X ∈ A∗ DLINY NE BOLEE N , WO-PERWYH, !C(X), A WO-WTORYH, C(X) = Λ ⇔ !A(X). nAPOMNIM, ^TO PROBLEMA PRIMENIMOSTI BYLA SWEDENA K PROBLEME NESAMOPRIMENIMOSTI. uTO^NIM \TO SWEDENIE, PODS^ITAW SOOTWETSTWU@]EE KOLI^ESTWO SIMWOLOW. nAPOMNIM, ^TO, WIDOIZMENIW UNIWERSALXNYJ ALGORIFM R, MY POSTROILI NORMALXNYJ ALGORIFM R1 NAD ALFAWITOM A1e, KOTORYJ UDOWLETWORQET USLOWI@ R1(AZeX) ' A(X). o^EWIDNAQ MODIFIKACIQ S SOEDINENIEM PRIWODIT K NORMALXNOMU ALGORIFMU R2, DLQ KOTOROGO R2(X) ' R1(XeX). dLQ \TOGO ALGORITMA, W ^ASTNOSTI, R2(AZ) ' A(AZ), T.E. ALGORITM R2 RASPOZNAET SAMOPRIMENIMOSTX ALGORITMA. oSTALOSX PEREWESTI EGO W ALGORITM R3 W ALFAWITE A1, IMEQ W WIDU, ^TO ZAPISI NORMALXNYH ALGORIFMOW ISPOLXZU@T TOLXKO BUKWY a I b. pRI OTSUTSTWII OGRANI^ENIJ NA DLINU ALGORITMA \TA KONSTRUKCIQ PRIWODILA K PROTIWORE^I@, POSKOLXKU DOPUSKALOSX RASSMATRIWATX PRIMENIMOSTX POSTROENNOGO ALGORITMA K SAMOMU SEBE. oDNAKO WWEDENIE NA OGRANI^ENIE DLINY ZAPISI \TU PROBLEMU SNIMAET I MY LI[X MOVEM UTWERVDATX, ^TO ZAPISX POSTROENNOGO ALGORITMA NE PROHODIT PO DLINE. tEOREMA 13.3. pUSTX N — PROIZWOLXNOE NATURALXNOE ^ISLO. kAKOW BY NI BYL ALGORITM C W ALFAWITE A1, RE[A@]IJ N -OGRANI^ENNU@ PROBLEMU NEPRIMENIMOSTI ALGORITMA R3 K SLOWAM W ALFAWITE A0, WERNA OCENKA ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 13. sLOVNOSTX ALGORITMOW ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 iu-9, mlta, 2009-10 U^.G. sLOVNOSTX MA[IN tX@RINGA ÌÃÒÓ pUSTX ZADANA MA[INA tX@RINGA T S WNE[NIM ALFAWITOM A = a0a1 . . . an, I WNUTRENNIM ALFAWITOM Q = q0q1 . . . qm. sLOVNOSTX@ S(T ) MA[INY tX@RINGA T NAZYWAETSQ MAKSIMALXNAQ EMKOSTX PROGRAMMY, RAWNAQ m(n + 1). wREMENNÓJ SLOVNOSTX@ (SLOVNOSTX@ WREMENI RABOTY) tT (K) NA KONFIGURACII K NAZYWAETSQ KOLI^ESTWO [AGOW, SDELANNYH MA[INOJ tX@RINGA NA^INAQ S KONFIGURACII K DO ZAWER[ENIQ RABOTY. eSLI MA[INA tX@RINGA NEPRIMENIMA K DANNOJ KONFIGURACII, TO S^ITAEM, ^TO tT (K) = ∞. dLQ DANNOJ WY^ISLIMOJ SLOWARNOJ FUNKCII f MOVNO UKAZATX MNOGO MA[IN tX@RINGA, EE WY^ISLQ@]IH. w KAKIH PREDELAH MENQETSQ SLOVNOSTX \TIH MA[IN? nAZOWEM ^ISLO l WERHNEJ OCENKOJ SLOVNOSTI DLQ FUNKCII f , ESLI SU]ESTWUET MA[INA tX@RINGA, WY^ISLQ@]AQ f , SLOVNOSTI NE WY[E l. ~ISLO k NAZYWAETSQ NIVNEJ OCENKOJ SLOVNOSTI, ESLI L@BAQ MA[INA tX@RINGA, WY^ISLQ@]AQ f , IMEET SLOVNOSTX NE MENEE k. pRI OTSUTSTWII ALGORITMA, RE[A@]EGO TU ILI INU@ MASSOWU@ PROBLEMU, MOVNO RASSMATRIWATX SERI@ ALGORITMOW, RE[A@]IH OGRANI^ENNU@ MASSOWU@ PROBLEMU. dOPUSTIM, ^TO RE[ENIE MASSOWOJ PROBLEMY WYRAVAETSQ KAK WY^ISLENIE NEKOTOROJ SLOWARNOJ FUNKCII f (X). oTSUTSTWIE ALGORITMA OZNA^AET, ^TO \TA FUNKCIQ NEWY^ISLIMA. rASSMOTRIM N -OGRANI^ENNU@ PROBLEMU, SOSTOQ]U@ W WY^ISLENII FUNKCII f (X) DLQ SLOW DLINY |X| 6 N . tAKIH SLOW W DANNOM ALFAWITE KONE^NOE ^ISLO I, SLEDOWATELXNO, OGRANI^ENNAQ PROBLEMA RAZRE[IMA. rAZRE[A@]IH ALGORITMOW MOVET BYTX MNOGO. sKAVEM, ^TO FUNKCIQ h(N ) ESTX WERHNQQ OCENKA SLOVNOSTI WY^ISLENIQ FUNKCII f (X), ESLI DLQ L@BOGO N SU]ESTWUET MA[INA tX@RINGA, WY^ISLQ@]AQ f (X) PRI |X| 6 N I IME@]AQ SLOVNOSTX NE WY[E h(N ). nIVNEJ OCENKOJ SLOVNOSTI WY^ISLENIQ FUNKCII f (X) NAZYWAETSQ L@BAQ FUNKCIQ g(N ), TAKAQ, ^TO DLQ L@BAQ MA[INA tX@RINGA, RE[A@]AQ N -OGRANI^ENNU@ PROBLEMU WY^ISLENIQ f (X), IMEET SLOVNOSTX NE NIVE g(N ). aNALOGI^NYE OPREDELENIQ WWODQTSQ I DLQ WREMENNOJ SLOVNOSTI. pO POWODU WREMENNÓJ SLOVNOSTI OTMETIM SLEDU@]IJ FAKT. tEOREMA 13.5 (TEOREMA bL@MA OB USKORENII). pUSTX r — OB]EREKURSIWNAQ FUNKCIQ. sU]ESTWUET OB]EREKURSIWNAQ FUNKCIQ f , TAKAQ, ^TO DLQ L@BOJ MA[INY tX@RINGA T , WY^ISLQ@]EJ f , SU]ESTWUET MA[INA tX@RINGA T1, TAKVE WY^ISLQ@]AQ f , DLQ KOTOROJ r(tT (n)) < tT (n) NA^INAQ S NEKOTOROGO NOMERA n. pUSTX r(n) = 2n (\TO, KAK LEGKO POKAZATX, OB]EREKURSIWNAQ FUNKCIQ). sU]ESTWUET FUNKCIQ f , OBLADA@]AQ SLEDU@]IM SWOJSTWOM. eSLI T — MA[INA tX@RINGA, WY^ISLQ@]AQ f , TO SU]ESTWUET MA[INA tX@RINGA T1, TAKVE WY^ISLQ@]AQ f , DLQ KOTOROJ tT (n) < log2 tT (n) PRI BOLX[IH n. dALEE, SU]ESTWUET MA[INA tX@RINGA T2, TAKVE WY^ISLQ@]AQ f , DLQ KOTOROJ tT (n) < log2 tT (n) < log2 log2 tT (n) PRI BOLX[IH n. |TOT PROCESS MOVNO PRODOLVITX. ÔÍ-12 ÔÍ-12 13.2. ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ 136 1 13.3. kLASSY SLOVNOSTI P I N P ÔÍ-12 tEOREMA bL@MA STAWIT KREST NA POPYTKE WWESTI PONQTIE OPTIMALXNOGO, T.E. NAIMENX[EGO PO SLOVNOSTI, ALGORITMA. rAZWITIE TEORII SLOVNOSTI PO[LO PO PUTI WYDELENIQ KLASSOW SLOVNOSTI ALGORITMOW. wO WSEH \TIH ZADA^AH RASSMATRIWA@TSQ TAK NAZYWAEMYE RASPOZNA@]IE ALGORITMY, KOTORYE PRIMENIMY K L@BOMU SLOWU I DA@T DWA WOZMOVNYH OTWETA 1 (DA) I 0 NET. |TIM ALGORITMAM SOOTWETSTWUET PONQTIE OB]EREKURSIWNYJ PREDIKAT. iM MOVNO PRIDATX RAZLI^NU@ TRAKTOWKU: RASPOZNAWANIE SWOJSTWA, KOTORYM MOVET OBLADATX SLOWO W DANNOM ALFAWITE, RASPOZNAWANIE PRINADLEVNOSTI SLOWA MNOVESTWU, PROWERKA TEH ILI INYH UTWERVDENIJ O SLOWAH W DANNOM ALFAWITE I T.P. mOVNO W SAMOM OB]EM WIDE TAK POSTAWITX MASSOWU@ PROBLEMU. eSTX BESKONE^NOE (S^ETNOE) MNOVESTWO ODNOTIPNYH ZADA^, ZAWISQ]IH OT NEKOTOROGO NABORA PARAMETROW. mY KODIRUEM \TI PARAMETRY S POMO]X@ NEKOTOROGO NABORA SIMWOLOW (ALFAWITA) I TEM SAMYM STAWIM KAVDOJ KONKRETNOJ ZADA^E SLOWO W ZAFIKSIROWANNOM ALFAWITE. rE[ENIE ZADA^I — OTWET ”DA“ ILI ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 2 ÌÃÒÓ ÔÍ-12 1 ÔÍ-12 ÔÍ-12 1 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 2 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ NET“. mY PRIHODIM W REZULXTATE K ZADA^E WY^ISLIMOSTI NEKOTOROGO SLOWARNOGO PREDIKATA W ZADANNOM ALFAWITE. w ZNA^ITELXNOJ ^ASTI LITERATURY PO \TOJ TEMATIKE ISPOLXZU@T TAKU@ TRAKTOWKU. l@BOE MNOVESTWO SLOW W DANNOM ALFAWITE NAZYWA@T QZYKOM. iNA^E GOWORQ, QZYK W ALFAWITE A — \TO L@BOE PODMNOVESTWO L ⊂ A∗. aLGORITM T (MA[INA tX@RINGA ILI DRUGAQ WY^ISLITELXNAQ MODELX) RASPOZNAET QZYK L, ESLI ON PRIMENIM K L@BOMU SLOWU W DANNOM ALFAWITE I T (X) = 1 TOGDA I TOLXKO TOGDA, KOGDA X ∈ L. nAPOMNIM, ^TO W \TOM KONTEKSTE MOVNO OGRANI^ITXSQ DWUHBUKWENNYM ALFAWITOM. pUSTX ZADAN ALFAWIT A I SLOWARNAQ FUNKCIQ f : A∗ → A∗ WY^ISLIMA PO tX@RINGU. sKAVEM, ^TO MA[INA tX@RINGA T , WY^ISLQ@]AQ f , POLINOMIALXNAQ (WY^ISLQET f ZA POLINOMIALXNOE WREMQ), ESLI SU]ESTWUET TAKOJ POLINOM Q(t), ^TO DLQ L@BOGO SLOWA X ∈ A∗ IMEEM tT (X) 6 Q(|X|), GDE |X| — DLINA SLOWA X. sLOWARNAQ FUNKCIQ f POLINOMIALXNAQ (WY^ISLIMA ZA POLINOMIALXNOE WREMQ), ESLI SU]ESTWUET MA[INA tX@RINGA, WY^ISLQ@]AQ f ZA POLINOMIALXNOE WREMQ. mNOVESTWO TAKIH FUNKCIJ OBOZNA^IM ^EREZ Π. sREDI SLOWARNYH FUNKCIJ WYDELIM SLOWARNYE PREDIKATY — WS@DU OPREDELENNYE FUNKCII, PRINIMA@]IE LI[X DWA ZNA^ENIQ 0 I 1. sLOWARNYJ PREDIKAT PREDSTAWLQET SOBOJ HARAKTERISTI^ESKU@ FUNKCI@ NEKOTOROGO MNOVESTWA SLOW W RASSMATRIWAEMOM ALFAWITE. sKAVEM, ^TO MA[INA tX@RINGA T RASPOZNAET QZYK L ZA POLINOMIALXNOE WREMQ, ESLI ONA WY^ISLQET HARAKTERISTI^ESKU@ FUNKCI@ \TOGO QZYKA ZA POLINOMIALXNOE WREMQ. qZYK L RASPOZNAWAEM ZA POLINOMIALXNOE WREMQ, tSLI EGO HARAKTERISTI^ESKAQ FUNKCIQ POLINOMIALXNAQ. kLASS TAKIH QZYKOW OBOZNA^IM ^EREZ P . rAZUMEETSQ, WY^ISLIMOSTX SLOWARNOGO PREDIKATA NE ZAWISIT OT WYBORA WY^ISLITELXNOJ MODELI, NO SLOVNOSTX DLQ KAVDOJ MODELI SWOQ. nAPRIMER, MOVNO POSTAWITX WOPROS O WREMENNOJ SLOVNOSTI WY^ISLENIQ DANNOGO PREDIKATA W RAMKAH NORMALXNYH ALGORIFMOW I W RAMKAH MA[IN tX@RINGA KAKOJ-LIBO MODIFIKACII. oDNAKO MOVNO POKAZATX, ^TO PERENOS ALGORITMA IZ ODNOJ WY^ISLITELXNOJ MODELI W DRUGU@ (SREDI IZWESTNYH) PRIWODIT K POLINOMIALXNOMU UWELI^ENI@ SLOVNOSTI. |TO ZNA^IT, ^TO KLASS P , FORMALXNO WWODIMYJ DLQ KAVDOJ WY^ISLITELXNOJ MODELI, NA SAMOM DELE ODINAKOW DLQ [IROKOGO KRUGA TAKIH WY^ISLITELXNYH MODELEJ. w KA^ESTWE \TALONNYH PRI OCENKE SLOVNOSTI WYBIRA@T ODNOLENTO^NYE MA[INY tX@RINGA KAK BOLEE \LEMENTARNYE, NAPRIMER, PO SRAWNENI@ S NORMALXNYMI ALGORIFMAMI. pO\TOMU TE ILI INYE OCENKI DLQ MA[IN tX@RINGA POLU^ITX LEG^E. gOWORQT O ZADA^AH POLINOMIALXNOJ SLOVNOSTI, A TAKVE O ZADA^AH \KSPONENCIALXNOJ SLOVNOSTI — ZADA^AH, SLOVNOSTX KOTORYH NE MOVET BYTX OCENENA SWERHU NIKAKIM POLINOMOM. oTMETIM, ^TO K \KSPONENCIALXNYM OTNOSQT, NAPRIMER, I ZADA^I, WREMENNAQ SLOVNOSTX KOTORYH RASTET KAK eln n (T.E. ^UTX WY[E POLINOMIALXNOJ). s PRAKTI^ESKOJ TO^KI ZRENIQ PROBLEMY POLINOMIALXNOJ SLOVNOSTI OTLI^AET TO, ^TO PRI UWELI^ENIQ BYSTRODEJSTWIQ W NESKOLXKO RAZ, SLOVNOSTX ZADA^I, RE[AEMOJ ZA PRIEMLEMOE WREMQ TAKVE POWY[AETSQ W NESKOLXKO RAZ, T.E. ZDESX ZAWISIMOSTX MULXTIPLIKATIWNAQ. pRI \KSPONENCIALXNOJ SLOVNOSTI ZAWISIMOSTX ADDITIWNAQ. rASSMOTRIM, K PRIMERU, ZADA^U PROWERKI WYPOLNIMOSTI knf. mOVNO WYPOLNITX 2n OPERACIJ WY^ISLENIQ ZNA^ENIQ knf NA WSEWOZMOVNYH NABORAH BULEWYH PEREMENNYH. i DLINA knf, ZAPISANNOJ W TOM ILI INOM ALFAWITE, I ALGORITM WY^ISLENIQ EE ZNA^ENIQ NA KONKRETNOM NABORE ZNA^ENIJ PEREMENNYH POLINOMIALXNO ZAWISQT OT KOLI^ESTWA PEREMENNYH. a W CELOM RASSMATRIWAEMYJ ALGORITM PEREBORA ZNA^ENIJ IMEET \KSPONENCIALXNU@ SLOVNOSTX. aLGORITM POLINOMIALXNOJ SLOVNOSTI DLQ \TOJ ZADA^I NE IZWESTEN. oDNAKO SITUACIQ MENQETSQ, ESLI KOLI^ESTWO PEREMENNYH W KAVDOJ \LEMENTARNOJ DIZ_@NKCII OGRANI^ENO. nAPRIMER, ESLI W KAVDOJ \LEMENTARNOJ DIZ_@NKCII WSEGO DWE PEREMENNYH, TO METOD REZOL@CIJ PRIWODIT K PEREBORU NE BOLEE n(n2+ 1) PAR I DAST OTWET ZA POLINOMIALXNOE WREMQ. e]E ODNA ZADA^A — PROWERKA, QWLQETSQ LI OTNO[ENIE, ZADANNOE NA KONE^NOM MNOVESTWE, OTNO[ENIEM \KWIWALENTNOSTI. zDESX NADO PROWERITX TRI USLOWIQ: SIMMETRI^NOSTX, REFLEKSIWNOSTX I TRANZITIWNOSTX. pROWERKA KAVDOGO IZ \TIH USLOWIJ IMEET POLINOMIALXNU@ WREMENNU@ SLOVNOSTX. tAKIM OBRAZOM, \TA ZADA^A — IZ KLASSA P . ” ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 137 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 13. sLOVNOSTX ALGORITMOW ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ NP. ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ kLASS SLOVNOSTI N P ANALOGI^EN KLASSU SLOVNOSTI P , NO ZA OSNOWU WZQTY TAK NAZYWAEMYE NEDETERMINIROWANNYE MA[INY tX@RINGA. tAKAQ MA[INA USTROENA W CELOM TAK VE, KAK I OBY^NAQ, NO DLQ KAVDOGO SOSTOQNIQ ONA POZWOLQET NESKOLXKO WARIANTOW PEREHODA, T.E. PARE SOSTOQNIE — OBOZREWAEMYJ SIMWOL“ SOOTWETSTWUET NESKOLXKO KOMAND, I ONA WYBIRAET L@BU@. ” dLQ NEDETERMINIROWANNOJ MA[INY tX@RINGA DLQ KAVDOGO SLOWA (ILI DLQ WSEH) ESTX KAK BY NESKOLXKO WARIANTOW OTWETA. s^ITAEM, ^TO REZULXTAT EE RABOTY 1, ESLI HOTQ BY ODIN OTWET 1, INA^E 0. wREMENEM RABOTY NEDETERMINIROWANNOJ MA[INY NA DANNOM SLOWE NAZYWAETSQ LIBO [AG PERWOGO POQWLENIQ REZULXTATA 1, LIBO [AG ZAER[ENIQ POSLEDNEGO WARIANTA, ESLI WSE OTWETY 0. dETERMINIROWANNU@ MA[INU tX@RINGA MOVNO RASSMATRIWATX KAK ^ASTNYJ SLU^AJ NEDETERMINIROWANNOJ. iZ TOGO, ^TO PREDSTAWLQET SOBOJ REZULXTAT RABOTY NEDETERMINIROWANNOJ MA[INY tX@RINGA, ZAKL@^AEM, ^TO RE^X IDET NE O WYBORE SLU^AJNOGO WARIANTA RABOTY (DLQ \TOGO ESTX WEROQTNOSTNYE MA[INY), A OB ANALIZE WSE WARIANTOW RABOTY MA[INY. mOVNO POKAZATX, ^TO RABOTU L@BOJ NEDETERMINIROWANNOJ MA[INY MOVNO REALIZOWATX S POMO]X@ SOOTWETSTWU@]EJ DETERMINIROWANNOJ MA[INY, KOTORAQ PRI POQWLENII NESKOLXKIH WARIANTOW NA LENTE DUBLIRUET INFORMACI@ I PARALLELXNO WEDET KAVDYJ IZ \TIH WARIANTOW. dRUGIMI SLOWAMI, NEDETERMINIROWANNAQ MA[INA — \TO TEORETI^ESKOE OPISANIE PEREBORNOGO ALGORITMA. hOTQ KLASS RAZRE[IMYH PROBLEM DLQ DETERMINIROWANNOJ I NEDETERMINIROWANNOJ MA[IN SOWPADA@T, \TI MA[INY RAZLI^A@TSQ PO SLOVNOSTI WY^ISLENIJ. kLASS N P — \TO KLASS PROBLEM, DLQ KOTORYH SU]ESTWUET RAZRE[A@]AQ NEDETERMINIROWANNAQ MA[INA tX@RINGA POLINOMIALXNOJ WREMENNÓJ SLOVNOSTI. o^EWIDNO, ^TO P ⊂ N P . nO KAKOE \TO WKL@^ENIE STROGOE ILI NET? oTWET NE IZWESTEN. aNALIZU \TOJ PROBLEMY POSWQ]ENO DOWOLXNO MNOGO USILIJ. nEDETERMINIROWANNAQ MA[INA — UDOBNYJ SPOSOB OPISANIQ PEREBORNYH ALGORITMOW, TAKIH KAK POISK W GLUBINU W GRAFE. pRI LINEJNOM PEREBORE MY IMEEM DELO S POLINOIMALXNOJ ZADA^EJ. nO ESLI PEREBOR IDET PO DEREWU (NAPRIMER, WYWODIMOSTX W IS^ISLENII WYSKAZYWANIJ), TO SLOVNOSTX WOZRASTAET DO \KSPONENCIALXNOJ. oTMETIM ALXTERNATIWNOE OPREDELENIE KLASSA N P . qZYK L ∈ A∗ PRINADLEVIT KLASSU N P , ESLI SU]ESTWUET POLINOM p(x) I POLINOMIALXNAQ RASPOZNA@]AQ DETERMINIROWANNAQ MA[INA tX@RINGA T , TAKIE, ^TO X ∈ L TOGDA I TOLXKO TOGDA, KOGDA SU]ESTWUET SLOWO Y , |Y | 6 p(|X|), DLQ KOTOROGO T (Y + X) = 1. pUSTX L ∈ N P . eSLI X ∈ L, SU]ESTWUET WARIANT RABOTY NEDETERMINIROWANNOJ MA[INY, PRIWODQ]IJ K ZNA^ENI@ 1. dOSTATO^NO ZAPISATX W KA^ESTWE SLOWA Y INFORMACI@ O PRAWILXNYJ WYBORE PRI RAZWETWLENII W NEDETERMINIROWANNOJ MA[INE, A ZATEM POWTORITX EE RABOTU PO EDINSTWENNOJ WETKE. nAOBOROT, PUSTX DETERMINIROWANNYJ ALGORITM RABOTAET, ESLI ISHODNOE SLOWO ”PODPRAWLENO“. tOGDA MOVNO SOSTAWITX NEDETERMINIROWANNYJ ALGORITM POLINOMIALXNOJ SLOVNOSTI, FORMIRU@]IJ ”PODSKAZKU“. nAPRIMER, ZADA^A PROWERKI WYPOLNIMOSTI knf OTNOSITSQ K KLASSU N P , TAK KAK DOSTATO^NO DOBAWITX KONKRETNYJ NABOR ZNA^ENIJ PEREMENNYH, PRI KOTORYH knf ISTINNA, A ZATEM ZAPUSTITX POLINOMIALXNYJ ALGORITM WY^ISLENIQ ZNA^ENIQ knf NA IZWESTNOM NABORE ZNA^ENIJ PEREMENNYH. pRINADLEVNOSTX TOJ ILI INOJ ZADA^I DANNOMU KLASSU MOVNO POPYTATXSQ USTANOWITX NEPOSREDSTWENNO. nO ^A]E WYGODNEE SWESTI TAKU@ ZADA^U K PRINADLEVNOSTI KLASSU DRUGOGO ALGORITMA. bUDEM GOWORITX O QZYKAH. sKAVEM, ^TO QZYK L1 ∈ A∗ SWODIM K QZYKU L2 ∈ A∗, ESLI SU]ESTWUET WY^ISLIMAQ SLOWARNAQ FUNKCIQ f POLINOMIALXNOJ SLOVNOSTI, UDOWLETWORQ@]AQ USLOWI@: X ∈ L1 ⇔ f (X) ∈ L2 (f — SWODQ]AQ FUNKCIQ). oBOZNA^AEM L1 4 L2. eSLI DLQ L2 SU]ESTWUET RASPOZNA@]IJ ALGORITM POLINOMIALXNOJ SLOVNOSTI, TO DLQ L@BOGO SLOWA X MY SPERWA WY^ISLQEM f (X), ZATRA^IWAQ POLINOMIALXNOE WREMQ, A ZATEM PRIMENQEM RASPOZNA@]IJ ALGORITM. pOLU^AEM RASPOZNA@]IJ L1 ALGORITM POLINOMIALXNOJ SLOVNOSTI. dRUGIMI SLOWAMI, ESLI L2 ∈ P I L1 4 L2, TO I L1 ∈ P . tO VE, O^EWIDNO, OTNOSITSQ I K KLASSU ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 iu-9, mlta, 2009-10 U^.G. ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ 138 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ 139 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 oTNO[ENIE SWODIMOSTI, O^EWIDNO, REFLEKSIWNOE I TRANZITIWNOE, NO NE ANTISIMMETRI^NOE (SU]ESTWU@T RAZNYE QZYKI, SWODIMYE DRUG K DRUGU). sKAVEM, ^TO QZYKI L1 I L2 \KWIWALENTNY, ESLI L1 4 L2 I L2 4 L1. pOLU^IM OTNO[ENIE \KWIWALENTNOSTI. qZYK L ∈ N P NAZYWAETSQ N P -POLNYM, ESLI K NEMU SWODITSQ L@BOJ QZYK KLASSA N P . wOPROS: SU]ESTWU@T LI N P -POLNYE PROBLEMY, PRINADLEVA]IE KLASSU P ? |TOT WOPROS \KWIWALENTEN RAWENSTWU P = N P . dEJSTWITELXNO, ESLI SU]ESTWUET N P -POLNYJ QZYK IZ P , TO AWTOMATI^ESKI L@BOJ QZYK IZ N P POPADAET W P KAK SWODIMYJ K QZYKU IZ P . oBRATNOE UTWERVDENIE O^EWIDNO. pOKA TAKIH QZYKOW NE NA[LI. sU]ESTWU@T LI WOOB]E N P -POLNYE QZYKI? oTWET DA. oDIN IZ TAKIH WOZNIKAET W ZADA^E PROWERKI WYPOLNIMOSTI knf. mNOVESTWO WYPOLNIMYH knf (A TO^NEE IH ZAPISEJ) OBOZNA^IM SAT. pOLNOTA \TOGO QZYKA OB_QSNQETSQ TEM, ^TO L@BU@ PEREBORNU@ ZADA^U MOVNO OFORMITX KAK PROWERKU WYPOLNIMOSTI (ISTINNOSTI HOTQ BY W ODNOM WARIANTE) NEKOTOROJ knf. ÌÃÒÓ ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÔÍ-12 13. sLOVNOSTX ALGORITMOW ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ oglawlenie 12.1. pROBLEMA 12.2. pROBLEMA RASPOZNAWANIQ RASPOZNAWANIQ sLOVNOSTX ALGORITMOW 127 SAMOPRIMENIMOSTI . . . . . . . . . . . . . . . . . . . . . . 127 PRIMENIMOSTI ALGORITMA K SLOWU . . . . . . . . . . . . . 129 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÔÍ-12 133 13.1. sLOVNOSTX NORMALXNYH ALGORIFMOW . . . . . . . . . . . . . . . . . . . . . . . . . . 133 13.2. sLOVNOSTX MA[IN tX@RINGA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 13.3. kLASSY SLOVNOSTI P I N P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 ÌÃÒÓ 13. nERAZRE[IMYE ALGORITMI^ESKIE PROBLEMY ÔÍ-12 140 ÌÃÒÓ 12. ÌÃÒÓ ÔÍ-12 ÔÍ-12 ÔÍ-12 ÌÃÒÓ ÌÃÒÓ ÔÍ-12 ÌÃÒÓ
«Математическая логика и теория алгоритмов» 👇
Готовые курсовые работы и рефераты
Купить от 250 ₽
Решение задач от ИИ за 2 минуты
Решить задачу
Помощь с рефератом от нейросети
Написать ИИ
Получи помощь с рефератом от ИИ-шки
ИИ ответит за 2 минуты

Тебе могут подойти лекции

Смотреть все 588 лекций
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot