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

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

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

7.1. СИНТАКСИС ЛОГИЧЕСКОГО ЯЗЫКА

181

ной либо константой следует открывающая скобка, а за C должна сле-

довать бинарная связка. И этот случай приведен к противоречию, и рас-

смотрение бинарных операций закончено.

Случаи унарных операций, функциональных выражений и кванто-

ров рассматриваются проще. Большую роль играет здесь лемма о разде-

лителях,

исключающая все нежелательные разбиения функциональных

и кванторных выражений.

 

Конец доказательства теоремы.

Анализ доказательства позволяет сделать вывод, что обозначения

для переменных, констант и функций должны четко отличаться друг от

друга6.

 

 

В работах по логике часто встречается другое, специализированное

для логического языка с одним типом объектов определение сигнатуры,

которое интересно для нас используемым в нем способом задания.

Определение 7.1.4. Сигнатурой σ называется тройка непересекающих-

ся множеств (P, C, F), где:

 

• P

непустое множество предикатных символов. Каждому преди-

катному символу (сокращенно предикату) P P сопоставляется

его арность a(P )

натуральное число, указывающее количество

его аргументов.

 

• C

множество (возможно, пустое) констант.

• F

множество (возможно, пустое) функциональных символов, или

функций. Каждой функции f F также сопоставляется ее арность

a(f).

Заметим что логическое определение легко получается из общего специализацией, 7 и опусканием фиксированных частей например опре делений логических связок и кванторов). ( , -

6 Сделаем еще одно ехидное и важное замечание о приложениях математики На прак тике теорема почти никогда не применяется в условиях когда выполнена ее.посылка- поскольку она просто не может быть в точности выполнена, в реальном мире Поэто, му анализ доказательства необходим гораздо чаще чем этого хотелось бы нам. Лишь- он позволяет понять когда же можно до некоторой,степени полагаться на теорему. вне области, где она была, доказана.

7 Специализация фиксация конкретных значений неизменных в данном контексте

переменных сокращение в соответствии с контекстом областей значений других пере менных и проведение, после этого упрощений. -

182 ГЛАВА 7. ВВЕДЕНИЕ В СИНТАКСИС

В искусственном интеллекте свободно вводятся подходящие сигна-

туры для конкретных классов задач или даже отдельных задач. Напри-

мер, для задачи,

 

связанной с описанием родства, можно ввести предика-

ты Отец(a, b),

Родственник(a, b). В таких формализациях константы

соответствуют собственным именам.

 

 

В современной лингвистике вынуждены вводить весьма сложные

типы данных для придания математического смысла таким, казалось

бы, элементарным понятиям, как местоимения.

Теперь можно определить язык над обобщенной сигнатурой σ. Его

выражения строятся из констант и переменных как обобщенные термы,

обозначающие и предметы,

и формулы, и многое другое. Они вводятся

индуктивными определениями, задающими способы построения более

сложных объектов через более простые. Синтаксис логического языка

был первым местом, где осознанно использовался этот класс определе-

ний, ныне занимающий центральное место в формальных языках (в том

числе в языках программирования и искусственного интеллекта).

Определение 7.1.5.

Выражения типизированного языка с кванторами.

a) Константа c

сигнатуры σ

выражение типа χ(c).

b) Переменная типа τ

выражение типа

τ.

c) Если

E1, . . . , En

выражения типов

τ1, . . . ,τn соответствен-

но, E

выражение типа 1, . . . , τn → τ) , то E(E1, . . . , En)

выражение типа τ.

 

 

 

 

d) Если

A

и B

выражения типов τ1, τ2, — бинарная опера-

ция сигнатуры

σ, такая, что χ( ) = (τ1, τ2 → τ) то (A B)

выражение типа τ.

 

, — унарная операция сигнатуры

e) Если A

 

выражение типа τ1

σ, такая, что χ( ) = (τ1 → τ)

то A

выражение типа τ.

f) Если

K

квантор сигнатуры σ,

 

 

χ(K) = ($, τ1, . . . , τk, ($ → π1), . . . , ($ → πl) → τ) ,

повx переменная типа $,соответственноD1, . . . , Dk, E1,.то. . , El выражения ти-

τ1, . . . , τk, π1, . . . , πl, ,

hKx | D1, . . . , Dk | E1, . . . , Eli

выражение типа τ.

7.1. СИНТАКСИС ЛОГИЧЕСКОГО ЯЗЫКА

183

Чтобы данное индуктивное определение было корректным необхо димо доказать единственность анализа выражений т е что каждое, вы- ражение представляется в одном и только в одном из, перечисленных. . ви- дов и что соответствующие операции и компоненты определяются одно- значно Здесь это достаточно тривиально поскольку мы использовали- скобки.во всех сомнительных случаях Тем, не менее доказательство од нозначности будет проведено в следующем. параграфе как для того что- бы показать технику индуктивных рассуждений так и для того чтобы, - выявить некоторые неявные, но практически важные, предположения, .

Пример 7.1.4. В языке теории групп имеются следующие выражения:

(Inv a ◦ Inv b)

(7.1)

(оно имеет тип o),

 

h x | h y | ((Inv x ◦ Inv y) = Inv(y ◦ x))ii

(7.2)

(оно имеет тип t). Как говорилось в части 1, в математической логике

выражения предметного типа называются термами, а выражения логи-

ческого типа

формулами. В стандартной теоретико-групповой и ло-

гической записи первое и второе выражения представляются как

 

и

 

 

a−1 ◦ b−1

(7.3)

 

x y x−1 ◦ y−1 = (y ◦ x)−1

(7.4)

соответственно.

Пример 7.1.5. Рассмотрим теперь, как представляются в нашей форме

выражения языка математического анализа.

 

ii

round 1, round xr

 

sin((1 + real 1) ◦ (π ◦ xr))

 

P

|R xr | 0, real ii | exp|

(7.5)

rxr | (xr >r 0) Z xr | 1, xr | 1/xr = ln xr

(7.6)

или же в обычной форме представления

 

 

 

round x

0

i

 

 

 

 

X

 

 

 

 

 

i=1

Z

 

exp sin 2πx dx,

(7.7)

184

 

 

ГЛАВА 7.

ВВЕДЕНИЕ В СИНТАКСИС

 

x (x > 0) Zx

1/x dx = ln x .

(7.8)

 

 

1

 

 

 

Из данных примеров видно, к чему приводит строгое различение

типов. Случайно взяв не ту константу 1, мы вынуждены явно преобра-

зовать ее к другому типу. Далее, показывается один из способов, как

действовать с величинами, не попавшими в сигнатуру. 2

было просто

представлено как (1 + 1).

 

 

 

 

Теперь рассмотрим еще один практически важный момент, вокруг

которого в информатике к настоящему времени наросло немало теоре-

тических работ. Мы заметили,

что представление выражений в нашей

форме заставляет писать много скобок. На практике порою пишут все

скобки подряд8, но гораздо чаще стараются побольше скобок опустить,

конечно же, без ущерба для понимаемости выражения и, не дай Бог, без

того, чтобы допустить двусмысленность.

 

 

Например, в логических формулах скобки опускаются согласно сле-

дующим соглашениям.

 

 

 

 

1.

Внешние скобки в формуле могут быть опущены.

 

2.

применяется после &

и .

 

 

 

3.

Если подряд идет несколько одинаковых связок & либо , то скоб-

 

ки внутри данного выражения могут опускаться.

 

Таким образом в первую очередь формула либо подформула в скобках делится на посылку, и заключение импликации Взаимное старшинство и не фиксируется здесь скобки необходимо. использовать Следо вательно& , формула ; . -

 

A & B C D

читается Из A и B следует C или D”, и наши сокращения согласуются

также с грамматикой русского языка. Еще одно часто используемое со-

кращение

связка . (A B) определяется как (A B) & (B A)

и читается

A и B эквивалентны”. Связка связывает так же слабо, как

.

 

8 Особенно отличился в данном отношении язык ЛИСП Там программисты уже просто запоминаютсколькоскобок например пять нужно ставить. в начале и в конце того или иного стандартного, выражения( . , )

7.1. СИНТАКСИС ЛОГИЧЕСКОГО ЯЗЫКА

 

185

 

Итак, на данном примере мы видим, что некоторые бинарные опера-

ции считаются сильнеедругих, но это отношение не является полным

порядком: порою разные операции могут не сравниваться по силе и ка-

ждая из них требует скобок при сочетании с другой; далее, порою скоб-

ки опускаются внутри выражений с несколькими применениями одной

и той же операции,

скажем, A & B & C & D

является сокращением

и для ((A & B) & (C & D)), и для (((A & B) & C) & D), и для других

подобных выражений. Но, конечно же, никому не придет9 в голову опус-

кать скобки при сочетании нескольких , поскольку эта операция не-

ассоциативна. Итак, ассоциативность операции кажется необходимым

условием для того, чтобы опускать скобки в последовательности опера-

ций.

 

 

 

 

 

Здесь язык логики раскрывает еще одну ловушку, в которую легко

угодить. Так и подмывает сейчас заявить, что скобки могут опускаться

в последовательности любых ассоциативных операций. Но рассмотрим

пример операции эквивалентности . Она в классической логике ассо-

циативна; в самом деле, постройте таблицу истинности для

 

 

((A B) C) (A (B C)) .

Но практически любой, увидев запись A B C,

подумает, что она

выражает равенство значений всех трех формул A, B, C. А формула,

скажем, (A B) C истинна не во всех таких случаях и не толь-

ко в таких, как можно убедиться, рассмотрев ее таблицу истинности.

Итак, математики понимают под

A B C

нечто совсем другое, а

именно, (A B) & (B C). Бог им судья, но предусматривать такие

несистематические сокращения

мы просто не можем.

 

Итак, проанализировав практическое использование опускания ско-

бок, мы приходим к любопытной структуре на бинарных операциях,

промежуточной между строгим и нестрогим частичным порядком. Ее

можно назвать частично нестрогим порядком. Это

транзитивное от-

ношение, антирефлексивность которого опущена.

n-арный преди-

Определение 7.1.6 (Формулы).

a) Если P P

 

кат, t1, . . . , tn

термы, то P (t1, . . . , tn)

элементарная формула.

 

В. В.):

 

 

 

 

9 (Пупышев

 

 

 

 

А мне придет!

 

 

 

 

(Автор):

 

 

 

 

Тогда сам виноват!

 

 

 

 

186

 

ГЛАВА 7. ВВЕДЕНИЕ В СИНТАКСИС

b) Если A и B

формулы, то (A & B), (A B), (A B) и

¬A

формулы.

 

c) Если A формула, x переменная, то xA и xA формулы.

Формула входящая в другую формулу называется ее подформулой Аналогично ,терм входящий в другой терм, называется его подтермом.

, , .

Практическая работа

Обучение работе с программой Мир Тарского Нахождение синтакси ческих ошибок работа с простейшимивысказываниями”. предложения- Абеляра Аккермана, Аристотеля Буля Бернайса Бозо (условные де Моргана, Доджсона ,Джона Рассела, Лестрейда, Людвига, , Пирса Уай, тхеда, Шенфинкеля, ,, Шерлока). , , , , -

Упражнения к § 7.1

Студент Чудаков использовал при формализации этнографиче 7.1.1. ского материала следующие предикаты удмурт отец жена -

брат вотяк жрец побратим : Выскажите(), свои(), замеча(, ),

ния. (), (), (, ), (, ). - 7.1.2. Правильно ли сокращены формулы:

xA(x) & B(x) C(x) D(x),

x y (A(x) B(x, f(y)) C(y, g(x)))?

7.1.3. Что имел в виду студент, написавший:

x (A(x)) : B(x)?

Покажите что опустив скобки вокруг кванторных выражений 7.1.4. можно получить, неоднозначное представление. , Покажите что после опускания скобок кванторные выражения 7.1.5. остаются однозначными, если любой квантор содержит не более

одного ограничения10. ,

10 Именно поэтому в логике предикатов обычно уже в исходном определении формулы опускают скобки вокруг кванторных выражений. То же делают в λ-исчислении.

7.2. ПОДСТАНОВКА

187

Покажите что ни одно типизированное выражение не может быть 7.1.6. началом другого, 11.

СВОБОДНЫЕ И СВЯЗАННЫЕ ПЕРЕМЕННЫЕ ПОДСТА

§ 7.2. НОВКА . -

Как известно статус переменных изменяется после того как они связы ваются квантором, В формуле вместо может быть, подставлено- конкретное значение. чего нельзяA(xсделать) в x Более того одна и та же переменная может, быть свободна для xподстановокA(x). в некоторых, местах выражения и связана кванторами причем разными в других Поэтому статус приписывается не самой по( себе переменной) а ее кон. кретному вхождению в выражение т е тексту выражения в, котором- выделен один из экземпляров переменной( . . В свою очередь, если она связана то мы должны указать конкретное вхождение). квантора, воздей ствовавшее, на данный экземпляр переменной Все эти тонкости,отража- ются следующим определением. . -

Определение 7.2.1 (Свободные и связанные вхождения).

1. Вхождение переменной в переменную (т.е. в саму себя) свободно. Если переменная входит свободно связанно в либо

2. бинарный операторx то соответствующее( ее вхождение) A в B, — также свободно (связано, соответствующим квантором). (A B)

3. Если переменная y отлична от x, K квантор, то ее вхождение в

hKx A1, . . . , Ak|B1(x), . . . , Bn(x)i

имеет тот же статус, что и ее вхождение в Ai, Bj.

Если была связана в то она остается связанной тем же 4. вхождениемx квантора вAi, Bk,

hKx A1, . . . , Ak|B1(x), . . . , Bn(x)i .

11 Здесь есть скрытая ловушка в выражениях начинающихся с унарных операций Най дите ее. Ее не обойти без привлечения иерархии, типов. . -

188 ГЛАВА 7. ВВЕДЕНИЕ В СИНТАКСИС

Если была свободна в то она становится связанной самым 5. внешнимx вхождением квантораBj(x), в

hKx A1, . . . , Ak|B1(x), . . . , Bn(x)i .

6. Если x была свободна в Ai(x), то она остается свободной и в

hKx A1, . . . , Ak|B1(x), . . . , Bn(x)i .

Определение 7.2.2 (Замкнутые выражения). Переменная x называ-

ется свободной в выражении A, если у нее есть хотя бы одно свободное

вхождение в A. Выражение A замкнуто (является постоянным12), если

у нее нет свободных переменных.

 

Только замкнутые выражения могут иметь при интерпретации точно

определенное значение, независимое от значений входящих в них пере-

менных.

установлении семантики важное значение приобретает опера-

При

ция подстановки, позволяющая подставлять конкретные значения сво-

бодных переменных. Ее определение требует аккуратности, поскольку

связанные переменные считаются локальными. Поэтому свободные пе-

ременные, входящие в выражение, подставляемое вместо переменной,

не должны быть связаны каким-либо квантором, и связанные перемен-

ные, оказавшиеся одноименными со свободными переменными подста-

вляемого выражения, должны быть переименованы во избежание колли-

зии.Неприятное явление коллизии было обнаружено почти сразу после

того, как в математике появились первые кванторы

символы сумми-

рования произведения и интегрирования Например при попытке пря мой замены, переменной y на x + y в . , -

Z0

xy dx

получаем неверный результат 1

Z0

x (x + y) dx

1

12 В случае формул говорят предложением.

7.2. ПОДСТАНОВКА

189

(должно быть Z0 z (x + y) dz ).

1

Определение Подстановка терма вместо свободных вхождений переменной x 7в.2выражение.3. E. t

Subst(E, x, t)

i)Если E есть константа c, то Subst(c, x, t) = c.

ii)Если E есть переменная y 6= x, то Subst(y, x, t) = y.

iii)Если E есть переменная x, то Subst(x, x, t) = t.

iv)Если E есть выражение F (t1, . . . , tn), то

Subst (F (t1, . . . , tn) , x, t) = F (Subst (t1, x, t) , . . . , Subst (tn, x, t)) .

v) Если E есть (B C), где бинарная связка, то

Subst(E, x, t) = (Subst(B, x, t) Subst(C, x, t)) .

vi) Если E есть B, где унарная связка, то

Subst(E, x, t) = Subst(B, x, t).

vii) Если E есть

hKy | D1, . . . , Dk | E1, . . . , Eli ,

то рассматриваются следующие подслучаи: a) x 6= y, и y не входит свободно в t. Тогда

Subst (hKy | D1, . . . , Dk | E1, . . . , Eli , x, t) = hKy | Subst (D1, x, t) , . . . , Subst (Dk, x, t) | Subst (E1, x, t) , . . . , Subst (El, x, t)i

190

ГЛАВА 7. ВВЕДЕНИЕ В СИНТАКСИС

b) x = y.

Subst (hKx | D1, . . . , Dk | E1, . . . , Eli , x, t) = hKx | D1, . . . , Dk | E1, . . . , Eli

c) x 6= y, и y входит свободно в t (случай коллизии), то

 

 

 

 

 

 

 

 

 

Subst (hKx | D1, . . . , Dk | E1, . . . , Eli , x, t) =

 

 

 

 

 

 

 

 

 

 

 

 

 

 

hKz | Subst (D1, x, t) , . . . , Subst (Dk, x, t) |

 

 

 

 

 

 

 

Subst (Subst (E1, y, z) , x, t) , . . . , Subst (Subst (El, y, z) x, t)i

 

 

где z

 

 

переменная,

отличная от x и не входящая в t.

 

 

 

 

 

Данное определение корректно, поскольку каждый раз мы ссылаем-

ся на подстановку для выражений меньшей длины,

чем исходная (хотя

в пункте 7

и дважды).

Оно не уточняет конкретного выбора переменной

z в том же пункте,

но это необязательно,

поскольку связанная перемен-

ная должна пробежать весь универс.

Более того, эта недоговоренность

служит ключом к важному для приложений и самой логики понятию

конгруэнтности выражений,

отличающихся лишь заменой связанных

переменных

13

(

обозначается

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A = B).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Определение

7.2.4 (

Конгруэнтность

).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Если

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a) A = A.

 

 

то

 

 

 

 

 

 

b)

A

 

 

B, C

 

 

 

D,

 

 

бинарная связка

,

(A

 

C)

 

 

 

 

 

=

 

=

 

 

 

 

 

 

 

 

 

 

 

 

 

=

(B D).

 

 

 

 

то

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

c) Ec

ли

A

 

 

 

A

B.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ли

 

= B,

 

 

 

 

 

 

=

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

d) Ec

A

i

 

 

 

i

, E

i

 

 

 

 

i то

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

|

 

 

 

= B

 

 

= D

 

 

li h

 

 

|

 

 

 

 

 

k |

 

 

 

 

li

 

h

Kx

 

1

 

 

 

 

 

 

 

k

|

 

 

 

1

 

 

 

 

Kx

1

 

 

 

 

1

 

 

 

 

 

 

A

, . . . , A

 

 

 

E , . . . , E

=

 

B

, . . . , B

 

 

D

, . . . , D

 

.

e) Если y

переменная того же типа, что и x, то

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

h

Kx

|

 

 

1

 

 

 

k |

1

 

 

 

li

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A , . . . , A

 

 

E , . . . , E

 

=

 

 

 

 

 

 

 

 

 

 

 

hKy | A1, . . . , Ak | Subst(E1, x, y), . . . , Subst(El, x, y)i .

 

 

f)

Если

A

 

 

 

 

то

B

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= B,

 

 

 

 

= A.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

13 Точнее, приводимых к одному и тому же виду заменами связанных переменных.