Непейвода. Прикладная логика
.PDF7.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 Точнее, приводимых к одному и тому же виду заменами связанных переменных.