
Непейвода. Прикладная логика
.PDF
11.8. ОКОЛЬНЫЕ ПУТИ КАК СРЕДСТВО СОКРАЩЕНИЯ ВЫВОДА |
331 |
При предобработке для метода резолюций формулы (11.16) Bn(0, 0) |
||||||
получаются следующие дизъюнкты: |
|
|||||
P (x, 0, s(x)) |
|
|
|
|
|
|
¬ P (y, 0, u) ¬ P (v, y, z) ¬ P (z, y, w) P (v, u, w) |
(11.17) |
|||||
¬ P (0, 0, vk) |
¬ P (0, vk, vk−1) · · · ¬ P (0, v1, v0). |
|
||||
При каждой унификации единственная имеющаяся функция s итериру- |
||||||
ется не более одного раза. |
|
|
|
|||
Чтобы коротко доказать b0 x Bn(x), исходя из (11.16), восполь- |
||||||
зуемся следующим приемом. Дадим серию индуктивных определений, |
||||||
каждое из которых содержательно будет означать одно и то же — |
нату- |
|||||
ральный ряд, |
но шаг каждого последующего будет равен многим шагам |
|||||
предыдущего. |
|
|
|
|
|
|
|
4 |
|
|
v0 P (x, y, v0), |
|
|
A (x, y) = |
|
|
|
|||
0 |
· · · |
|
|
|
|
|
|
|
|
|
|
|
|
A |
4 |
|
vi+1(Ai(vi+1) & P (x, y, vi+1)), |
|
||
= |
(11.18) |
|||||
i+1 |
4 |
w0 v0 P (w0, x, v0), |
||||
A0(x) = |
|
|
||||
|
· · · |
|
|
|
|
|
|
4 |
wi+1(Ai(wi+1) Ai+1(wi+1, x)). |
|
|||
Ai+1(x) = |
|
|||||
Содержательно каждое Ai можно интерпретировать как индукцию по |
||||||
|
|
|
|
v |
0 P (w0, x, v0) и определения нату- |
|
определению для предиката w0 ...2 |
||||||
рального ряда прыжками через 22 |
|
(n раз) членов. Каждое Ai+1 выво- |
||||
дится из Ai, а из последнего из них элементарно выводится Bn. |
|
|||||
Но логическая сложность формул Ai быстро возрастает с увеличе- |
||||||
нием номера. |
Если же разрешить использовать окольные пути лишь по |
формулам ограниченной сложности то длина вывода начинает су перэкспоненциально возрастать как,только исчерпаетсяBпотенциалn воз- можных определений Поэтому ни, метод резолюции ни метод семанти- ческих таблиц не может. даже в принципе состязаться, с естественным- выводом при доказательстве трудных формул.11
Упражнения к § 11.8
11 Правда большинство практически нужных формул вполне пригодны для примене ния методов, без окольных путей Но как и везде неприятность может поджидать в- самый неожиданный момент для.внешне безобидных, утверждений Одним из таких утверждений является теорема Кантора-Шредера-Бернштейна 5.2. .

332 ГЛАВА 11. ЕСТЕСТВЕННЫЙ ВЫВОД
11.8.1. Оцените порядок длины формулы Ai (скажем, ее длина пропор- |
||||||
циональна i, i2 |
или какой-то еще быстрее растущей функции?) |
|
||||
§ 11.9. |
НЕСКОЛЬКО СЛОВ О ЯЗЫКЕ ПРОЛОГ |
|
||||
Язык Пролог рекламируется как язык логического программирования. |
||||||
Его основой явилось наблюдение, сделанное Хорном, что формулы вида |
||||||
~x(P1(~x) & · · · Pn(~x) |
Q(~x)) обладают многими приятными свой- |
|||||
ствами. |
В частности, |
из классического доказательства формулы вида |
||||
~y(R1(12) & · · · & |
|
k |
( )) можно получить построение соответствую |
|
||
щего y |
. В данных формулировках P , Q, R — |
предикаты. Переводя |
||||
~y |
|
R |
~y |
|
- |
хорновские формулы на язык метода резолюций получаем класс хор новских дизъюнктов вида , -
¬ P1 · · · ¬ Pn Q,
содержащих ровно один неотрицательный предикат и служащих пере водами хорновских аксиом теории, и целевой дизъюнкт -
¬ R1 · · · ¬ Rk,
вообще положительных предикатов не содержащий и представляющий доказываемую теорему Далее поиск вывода в такой системе дизъюнк тов можно организовать. достаточно, регулярно каждый раз вести резо- люцию с результатом предыдущего преобразования: целевого дизъюнк- та аксиомы же между собой прямо не взаимодействуют Но это дает- практически, идею языка программирования основанного. на следую щих принципах , -
Программа состоит. из множества хорновских дизъюнктов записы ваемых в виде , -
~ − ~ ~ Q((t)) : P1(t1), . . . , Pn(tn).
Корме того, в программе имеется цель вида
: −R1, . . . , Rk.
12 Вы должны уже понимать, что слишком часто это не так.

11.9. НЕСКОЛЬКО СЛОВ О ЯЗЫКЕ ПРОЛОГ |
333 |
Каждый шаг выполнения программы состоит в преобразовании цели путем ее унификации с одним из дизъюнктов. При взаимодействии цели
: −Q(t), R1(s1), . . . , Rk(sk)
с дизъюнктом
Q((t~ )) : −P1(t~1), . . . , Pn(t~n)
получается дизъюнкт вида
: −P1(t~1), . . . , Pn(t~n), R1(s1), . . . , Rk(sk).
Программа считается успешно завершенной если в некоторый момент из цели исчезают все предикаты Программа, может зафиксировать не удачу если один из предикатов цели. ни с одним из дизъюнктов програм- мы не, унифицируется Естественно что может быть и промежуточный- но гораздо чаще встречающийся. случай, программа не может зафикси, ровать неудачу а просто зацикливается: либо переполняется из за не- ограниченного,удлинения выражений - -
Эта схема могла быть реализована. многими способами Посколь ку Пролог появился в самом начале х гг был выбран способ. тогда- находившийся вполне на уровне но70сейчас- .,уже безнадежно морально, устаревший 13 Выбирается всегда, первый член целевого дизъюнкта и первый из унифицируемых. с ним дизъюнктов программы
Здесь возникает сложность которая была удачно разрешена. и соста вила одно из важнейших достижений, Пролога Взяв первого кандидата- мы можем через несколько шагов зайти в тупик. а решение было совсем, рядом надо было взять следующего Тут работает, механизм возвратов : Если фиксируется неудача. мы возвращаемся к первой точке(backtracking)где было. несколько кандидатов на ,унификацию и подставляем следующий, из возможных дизъюнктов Этот механизм явился, красивой и экономичной с точки зрения представления. программ альтернативой явному выписыванию условных операторов Но конечно же с точки зре ния исполнения программ он может безнадежно. проигрывать, в эффек- тивности. -
13 Впрочем уже тогда можно было бы чуть дальше глянуть на уже имевшиеся дости жения информатики, но как правило больше одного удачного нововведения ни в одной- принципиально новой, системе, не делается, .

334 ГЛАВА 11. ЕСТЕСТВЕННЫЙ ВЫВОД
Правило брать первого кандидата из не отвергнутых ранее обла дает и другими« особенностями Во первых логика перестает быть» клас- сической, поскольку тривиально. истинный- , дизъюнкт вида -
P (x) : −P (x)
при помещении в программу вполне может привести к ее зацикливанию если он применится однажды то он будет применяться бесконечно Во( вторых и это уже большой плюс, появляется возможность выражать). циклы- и индукцию( при помощи дизъюнктов) типа
A(n + 1) : −A(n), B.
Далее Пролог некоторое время просуществовав в университетской среде неожиданно, получил громадную рекламу в связи с тем что япон цы объявили, его внутренним языком своего проекта ЭВМ пятого, поко- ления В итоге была набрана критическая масса людей которые знают- Пролог. получили под него ассигнования и больше ничего, знать не хо тят 14 Более, того сам термин логическое программирование сейчас по- нимается. как программирование, на Прологе -
Множество литературы по языку Пролог. имеется на русском язы ке и поэтому нет смысла излагать его подробно здесь Мы остановимся- лишь, на его принципиальных достижениях и в первую. очередь недо статках поскольку дух саморекламы проникший, в учебные пособия, и- особенно, в фирменные руководства ,заставляет о них умалчивать
Пролог сделал еще один любопытный, шаг Поскольку алгоритм. уни фикации мог бы столь же хорошо работать если. бы на месте предиката- также стояла бы переменная либо терм очень, быстро предикаты бы ли обобщены до скобочных выражений,и на месте предиката и функ- ции может стоять любое функциональное выражение унифицируемое- по тем же правилам что и термы Здесь чисто эмпирически, была на щупана тонкая грань, Известно что. для понятий высших порядков опе- рация унификации невычислима. , , а Пролог сдвинулся ровно настолько-
14 В Америке до сих пор во многих фирмах используются безнадежно морально уста ревшие языки и поскольку их персонал просто ничего другого знать не- хочет Сила инерцииCOBOLпривелаPL/1,к тому что случайно выбранная раскладка клавиатуры для англоязычных. пишущих машинок , одна из самых антиэргономичных призванная за медлять скорость печатания на часто( заедавших машинках третьей четверти, века- стала ненарушимым стандартом. XIX )

11.9. НЕСКОЛЬКО СЛОВ О ЯЗЫКЕ ПРОЛОГ |
335 |
вверх по иерархии понятий чтобы не потерять ничего из преимуществ унификации для первопорядковых, выражений 15
Другие шаги Пролога были закономерны .и столь же закономерно вели в тупик Программа не может существовать без ввода вывода и программистам. плохо без стандартных функций Поэтому в Пролог- бы ли введены непосредственно интерпретируемые.предикаты и непосред- ственно вычисляемые функции Так например встретив предикат -
Пролог программа не ищет его. унификации, а, запрашивает значениеInput(x), у человека- Встретив функцию программа, обходится с как xс формальным. символом функцииsin(до tтех), пор пока не определитсяsinзначе ние после чего просто вычисляет его , -
Вt,Пролог было введено Прологовское. отрицание считается успеш но унифицированным если выражение ни с чем не. −унифицируетсяP -
Словом в Пролог были, введены плохоP сочетавшиеся с ним возмож. ности и не только, русские создают сами себе трудности а потом успеш- но их,преодолевают В программировании и во многих, науках это - почти что стандартный. метод действий —
Часто плохо предсказуемый результат. взаимодействия логической структуры почти что вывода и непосредственно исполняемых предика тов и функций приводит к тому что Пролог хорош лишь для небольших- программ а сложные Пролог программы, отлаживать труднее чем соот ветствующие, программы написанные- в хорошем объектно ориентированном, - стиле 16 Как говорят здесь, имеется достаточно грубое концептуальное- противоречие. формально, непротиворечивые понятия сильно мешают друг другу (
Исходя)из. нашего опыта Пролог есть смысл использовать для кус ков программ обладающих,исключительно сложной логикой при яв- ном задании вариантов, Все вычислительные части программ при этом- стоит писать на других.языках и иметь либо Пролог программу вызы вающую вычислительные модули либо скажем Паскаль- программу, с- внешней Пролог-подпрограммой., ( ) -
15 Это удачный пример обобщения без потерь Заметим что литературе о Прологе данное —преимущество упоминается вскользь и как. то стыдливо, что видимо связано с тенденцией рекламировать каждый метод как универсальный- ,А здесь, пришлось, бы подчеркнуть его принципиальные ограничения. .
16 Эта оценка принадлежит не только автору но в том или ином виде повторяется во всех серьезных работах по технологии и методологии, программирования при рассмо трении выгод и недостатков применения Пролога. -

336 |
ГЛАВА 11. ЕСТЕСТВЕННЫЙ ВЫВОД |

Глава Основы теории определений12.
§ 12.1. ОПРЕДЕЛЕНИЯ В МАТЕМАТИКЕ
Прежде всего заметим, что под теорией определений в общей и в мате- |
|||
матической логике понимают совершенно разные вещи. В общей логи- |
|||
ке заботятся о понятиях и рассматривают определения понятий. Здесь |
|||
самое важное — |
разъяснить содержание определяемого. В математиче- |
||
ской логике определения служат средством выражения одних терминов |
|||
через другие, с тем чтобы можно было минимизировать число исход- |
|||
ных, как говорят математики, неопределяемых понятий. Значит, самое |
|||
важное здесь точно выразить объем определяемого. |
|||
Таким образом, содержательное определение должно дать критерии, |
|||
согласно которым можно проверить, подходит ли данный объект под |
|||
данное понятие, а математическое — |
способ замещения данного поня- |
||
тия другими, которые считаются определенными раньше. При этом ча- |
|||
сто замещаемое понятие интуитивно проще своего определения (смо- |
|||
три, например, определение непрерывности на языке ε-δ). |
|||
Пример 12.1.1. |
Определение непрерывности, которым пользовался, в |
||
частности, Л. Эйлер: непрерывная функция — |
такая, график которой |
||
можно начертить, не отрывая карандаша от бумаги. Это определение |
|||
очень хорошо с содержательной точки зрения (хотя и здесь его можно |
|||
покритиковать, |
но совершенства в реальной жизни не бывает). Оно ни- |
||
куда не годится с точки зрения математики (попробуйте-ка определить |
|||
понятие “ начертить, не отрывая карандаша от бумаги” либо задать ак- |
|||
сиоматику его свойств). |
|
|
|
Пример 12.1.2. |
Определение окружности как линии, получающейся при |
сечении шара плоскостью, никуда не годится с содержательной точки

338 ГЛАВА 12. ОСНОВЫ ТЕОРИИ ОПРЕДЕЛЕНИЙ
зрения, поскольку оно определяет более простое через более сложное, |
||
но может великолепно работать в математике при задании аксиоматики |
||
геометрии, берущей в качестве исходных пространственные понятия. |
||
Еще одной целью определений в математике служит сокращение |
||
рассуждений фиксированием постоянно встречающихся в них сложных |
||
блоков. Как правило, в дальнейшем выделенные блоки превращаются в |
||
новые абстрактные понятия. Например, так появилось понятие группы: |
||
часто встречающаяся структура утверждений и данных была аксиома- |
||
тизирована и стала повсюду в рассуждениях заменяться одним поняти- |
||
ем. Третьей целью определений является наименование интересных объ- |
||
ектов, построенных в математике. Так были определены, в частности, |
||
числа π и e. |
|
|
В данной главе мы разберем некоторые элементарные результаты те- |
||
ории определений, как правило, достаточно абсолютные и переносимые |
||
на многие неклассические логики. |
||
§ 12.2. |
СОКРАЩАЮЩИЕ ОПРЕДЕЛЕНИЯ |
|
Простейший вид определений — |
когда сложное выражение заменяется |
|
новым предикатом либо новой функцией. Таким образом можно рассма- |
||
тривать, в частности, определения непрерывности и функции tg. |
||
|
|
4 |
|
Cont f = |
|
x ε (ε > 0 δ (δ > 0 & y (|x − y| < δ |f(x) − f(y)| < ε))) |
||
|
|
4 sin x |
|
tg x = cos x |
|
Общая схема таких определений следующая. |
||
Имеется формула A(x1, . . . , |
xn), не содержащая других свобод- |
|
ных переменных, кроме явно указанных. Тогда можно ввести новый n- |
||
местный предикат P посредством определения: |
x1 . . . xn (P (x1, . . . , xn) A(x1, . . . , xn)) . |
|
Очевидно, что такое определение в некотором смысле ничего нового не |
|
добавляет к старой теории. Но что значит “ ничего нового”, |
полагает- |
ся уточнить. Это может быть уточнено двумя способами — |
семанти- |
ческим через модели и синтаксическим через перевод утверждений новой теории, в утверждения, старой. Оба,уточнения работают с двумя

12.2. СОКРАЩАЮЩИЕ ОПРЕДЕЛЕНИЯ |
339 |
|
|||
теориями Th1 и Th2 |
, такими, что сигнатура σ2 |
второй теории шире сиг- |
|||
натуры первой σ1, и все аксиомы первой теории являются аксиомами |
|||||
второй. В таком случае Th2 |
называется расширением Th1. |
||||
Определение 12.2.1. |
1. Th2 сигнатуры σ1 σ называется консерва- |
||||
тивным расширением теории Th1 сигнатуры σ, если формула сиг- |
|||||
натуры σ является теоремой Th2 ттт она является теоремой Th1. |
|||||
2. Th2 называется несущественным расширением Th1, если имеет- |
|||||
ся способ1 ϕ перевода формул второй теории в формулы первой, |
|||||
сохраняющий все логические связки (т. |
е. ϕ(A & B) = ϕ(A) & |
||||
ϕ(B), ϕ( x A) = x ϕ(A) и т.п.) |
|
|
|||
Пример 12.2.1. Рассмотрим теорию коммутативных групп, операции в |
|||||
которой обозначим x + y |
и −x. Добавим умножение и аксиомы, опреде- |
||||
ляющие поле. Полученная теория является консервативным расшире- |
|||||
нием теории групп, |
поскольку все, касающееся лишь аддитивных опе- |
||||
раций, остается без изменения, но не является ее несущественным рас- |
|||||
ширением, поскольку нет средств выразить умножение через сложение. |
|||||
Таким образом, консервативное расширение теории может позволять |
|||||
выразить новые понятия и тем самым быть существенно богаче исход- |
|||||
ной теории,. |
|
|
семантическое распространение теории Th1 |
||
Определение 12.2.2. Th2 — |
|||||
сигнатуры σ на сигнатуру σ1 σ, если всякая модель Th1 может быть |
|||||
без изменения универса и интерпретаций понятий из σ продолжена до |
|||||
модели Th2. Th2 — |
семантическое несущественное расширение, если |
||||
такое продолжение модели единственно. |
|
|
|||
Предложение 12.2.1. |
1. |
Каждое несущественное расширение явля- |
|||
ется семантическим распространением. |
|||||
2. Каждое семантическое распространение является консерватив- |
|||||
ным расширением. |
|
|
|
|
|
Доказательство. Пункт 1. Поскольку все новые понятия определи- |
|||||
мы через старые, пункт очевиден. |
|
|
|||
Пункт 2. Поскольку всякая модель Th1 продолжается до модели Th2, |
|||||
очевидно, что формула исходной сигнатуры, |
опровергаемая на какой- |
либо модели Th1, опровергается и на продолжающей ее модели Th2.
1 Точнее алгоритм Но этого понятия мы еще не ввели Впрочем наложенные ниже ограничения, делают.данный способ для конечных сигнатур. алгоритмом, .

340 |
ГЛАВА 12. ОСНОВЫ ТЕОРИИ ОПРЕДЕЛЕНИЙ |
Таким образом, Th2 |
не добавляет новых теорем в старой сигнатуре, что |
и требовалось доказать. |
|
Конец доказательства |
§ 12.3. ТЕОРЕМА КРЕЙГА ОБ ИНТЕРПОЛЯЦИИ |
|
Рассмотрим один из важнейших результатов математической логики. |
|
Покажем, что, если в логике доказуема импликация от A к B, то имеется |
|
промежуточная формула C, содержащая лишь общие для них понятия. |
|
Формулировка данного результата представляется интуитивно оче- |
|
видной, но на самом деле эта “ очевидность” — |
показатель того, что мы |
склонны потребовать выполнения такого свойства для логической си- |
|
стемы. Во втором томе Вы увидите, насколько легко разрушается тео- |
|
рема интерполяции для неклассических логик. |
|
Пусть имеются две сигнатуры σ1 и σ2. Пусть сигнатура σ (возможно, |
|
пустая) является их пересечением. Если сигнатура пустая, то элементар- |
|
ными формулами данной сигнатуры будем считать > и . |
Теорема 12.1. Теорема Крейга об интерполяции (Craig) Если в клас- |
||
сической логике доказуема формула A B, где A — |
формула сигнату- |
|
ры σ1, B — |
формула σ2, то найдется формула C сигнатуры σ, такая, |
|
что в логике доказуемы импликации A C и C B. |
Такая формула называется интерполяционной формулой или интер- |
|||||
полянтом. |
|
|
|
|
|
Доказательство. Воспользуемся аппаратом семантических таблиц. |
|||||
Формула доказуема, если у нее есть замкнутая семантическая таблица. |
|||||
Внесем в ее определение лишь маленькое видоизменение: противоре- |
|||||
чиями будут считаться формулы |= и |
=| >. Интерполянт построим, |
||||
исходя из данной таблицы, рекурсией по дереву таблицы. Естествен- |
|||||
но, для индуктивного доказательства теорему придется несколько обоб- |
|||||
щить, сформулировав инвариант индукции. |
|
|
|||
Пусть σ1 |
Индуктивное утверждение |
их пересечение. Се- |
|||
, σ2 — произвольные сигнатуры, σ — |
|||||
квенция |
такова, что формулы из подсеквенции записаны в сиг- |
||||
натуре σ1, а формулы из подсеквенции |
— |
в σ2. Пусть Σ — |
вывод дан- |
||
ной секвенции. Тогда найдется формула |
С |
сигнатуры σ, такая, что Σ с |
|||
увеличением количества применяемых правил не более чем в два раза |
|||||
перестраивается в выводы секвенций {=| C} и |
{|= C}. |