Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Непейвода. Прикладная логика

.PDF
Скачиваний:
1002
Добавлен:
10.08.2013
Размер:
2.27 Mб
Скачать

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}.