- •Метод резолюций в логике предикатов
- •Основные определения
- •Подстановки
- •Композиция подстановок
- •Множество несогласованности
- •Унификация
- •Склейки и резольвенты
- •Алгоритм метода резолюций
- •Стратегии метода резолюций
- •Стратегия насыщения уровня
- •Линейная стратегия
- •Стратегия предпочтения более коротких дизъюнктов
- •Литература
Математическая логика
Метод резолюций в логике предикатов
Куценко Дмитрий Александрович 14 июля 2011 г.
Приводятся сведения, отсутствующие в [4], касающиеся реализации метода резолюций в логике предикатов. Введены необходимые определения, рассмотрены такие понятия, как подстановки, их композиции, нахождение множества несогласованности для множества выражений, приведён алгоритм унификации множества выражений. Далее подробно рассматривается нахождение резольвент и сам метод резолюций. Для иллюстрации изложенного приведено множество примеров.
Материал основан на работах [1], [6], [8].
Содержание
1.Метод резолюций в логике предикатов . . . . . . . . . . . . . . . . . . . . . . 2
1.1.Основные определения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.Подстановки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3.Композиция подстановок . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4.Множество несогласованности . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.5.Унификация . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.6.Склейки и резольвенты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.7.Алгоритм метода резолюций . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.8. Стратегии метода резолюций . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.8.1.Стратегия насыщения уровня . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.8.2.Линейная стратегия . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.8.3.Стратегия предпочтения более коротких дизъюнктов . . . . . . . . . . . 10
Литература . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Куценко Д. А. Математическая логика. Метод резолюций в логике предикатов |
2 |
1. Метод резолюций в логике предикатов
1.1. Основные определения
Введём рекурсивное определение терма логики предикатов:
1)любая предметная переменная является термом;
2)любая предметная константа является термом;
3)если — -местный функциональный символ, а 1, . . . , — термы, то ( 1, . . . , ) является термом;
4)других термов не существует.
Фундаментальным будем называть терм, в котором нет переменных.
Пример 1.1. Следующие записи являются термами:
( )
, , ( , ) , ( , , ), , ,
( )
( )
, , , ( , ) ,
где трёхместный, двухместный функциональные символы, , предметные переменные, , предметные константы. Термы ( , , ) и являются фундаментальными.
Далее будем использовать следующие определения. Если — -местный предикатный символ и 1, . . . , — термы, то ( 1, . . . , ) является атомом. Литерой будем называть атом или отрицание атома. Дизъюнкция литер образует дизъюнкт. Множество литер для удобства также будем рассматривать как дизъюнкт.
( )
Пример 1.2. Дизъюнкт ( ) ( ) ( ), ( ) можно представить в виде множества
{ ( ) }
литер ( ), ( ), ( ), , ( ) .
Дизъюнкт, содержащий литер, называется -литерным дизъюнктом. Однолитерный дизъюнкт — это дизъюнкт, состоящий из одной литеры. Дизъюнкт, не содержащий литер, назовём пустым дизъюнктом (обозначается « »). Будем рассматривать множество дизъюнктов как конъюнкцию соответствующих дизъюнктов.
Пример 1.3. Множеству дизъюнктов
{ ( ) ( ) }
, ( ) , ( , ) , ( ) , ( ) ( , )
соответствует формула
( )
( ) ( ) ( )
, ( ) & ( , ) , ( ) & ( ) ( , ) .
Под выражением будем понимать терм, множество термов, множество атомов, литеру, дизъюнкт, множество дизъюнктов. Фундаментальным выражением будем называть такое выражение, в котором нет никаких переменных.
Куценко Д. А. Математическая логика. Метод резолюций в логике предикатов |
3 |
1.2. Подстановки
Подстановка — это конечное (возможно, пустое) множество { 1/ 1, . . . , / }, где каждая — предметная переменная, каждый — терм, запись « / » называется подстановочной компонентой и означает, что переменная заменяется термом , причём отличается от , а среди 1, . . . , нет одинаковых переменных. В этом случае называют переменной компоненты / , а — термом / . Подстановки будем обозначать строчными греческими буквами (α, . . . , w). Подстановку, не содержащую элементов, будем называть пустой и обозначать буквой «ε». У каждой непустой подстановки T = { 1/ 1, . . . , / }
имеется множество термов { 1, . . . , } и множество переменных { 1, . . . , }. Подстановка называется фундаментальной, если все термы из её множества термов являются фундаментальными.
Пример 1.4. Следующие множества являются подстановками:
{ ( ) }
T = { ( )/ , / }, σv= / , ( )/ , ( ) , ε = {}.
Пусть даны подстановка T = { 1/ 1, . . . , / } и выражение E. Конкретизацией E посредством T называется операция, состоящая в замене одновременно всех вхождений переменных 1, . . . , на термы 1, . . . , соответственно. Получившееся выражение ET называется T-примером E.
Пример 1.5. Рассмотрим подстановку T = { / , ( )/ , / } и выражение E = ( , , ). В результате конкретизации выражения E посредством подстановки T получим T-пример этого выражения, имеющий вид
T ( )
E = , ( ), .
ET будет называться фундаментальным примером E, если T — фундаментальная подстановка.
1.3. Композиция подстановок
Пусть T = { 1/ 1, . . . , / } и λ = { 1/ 1, . . . , 1/ } — две подстановки. Композицией T и λ называют подстановку T λ, которая получается из множества
{ λ 1, . . . , λ , 1/ 1, . . . , / }
1
вычёркиванием всех подстановочных компонент λ , для которых λ = , а также всех подстановочных компонент / , таких, что { 1, . . . , }.
Пример 1.6. Пусть даны подстановки
T = { 1/ 1, 2/ 2} = { ( )/ , / },
λ = { 1/ 1, 2/ 2, 3/ 3} = { / , / , / }.
Тогда их композиция образуется из следующего множества подстановочных компонент:
{ |
λ |
Hλ |
|
H H |
|
3} |
{ |
Z Z Z |
} |
|
|
1 |
1 |
2 HH2 |
1H/H1 2HH2 3 |
/ |
. |
||||||
|
|
, |
|
, |
, / , |
|
= ( )/ , Z/ , Z/ , Z/ , / |
Мы вычеркнули подстановочную компоненту λ2 2 = / , так как терм этой компоненты равен её переменной ( λ2 = 2, т. е. = ), затем вычеркнули подстановочные компоненты1/ 1 = / и 2/ 2 = / , так как переменные 1 и 2 содержатся среди множества переменных { 1, 2} = { , } подстановки T. В итоге получаем
T λ = { ( )/ , / }.
Куценко Д. А. Математическая логика. Метод резолюций в логике предикатов |
4 |
Легко убедиться, что ε T = T ε = T для любой подстановки T. Кроме того, композиция подстановок ассоциативна, т. е. (T λ) μ = T (λ μ) для любых подстановок T, λ и μ, поэтому можно опускать скобки при записи кратных композиций подстановок. Также отметим, что для любых подстановок T и σvсправедливо следующее: если для каждого выражения E имеет место равенство ET = Eσv, то T = σv.
Сущность композиции операций подстановки состоит в том, что если E — некоторое выражение, а σv= T λ, то Eσv= ET λ = (ET)λ, т. е. Eσv— это λ-пример ET.
1.4. Множество несогласованности
Если E — множество выражений, то множеством несогласованности множества E называется множество всех тех подвыражений элементов множества E, которые начинаются с того места, где не все выражения из E имеют один и тот же символ.
Пример 1.7. Рассмотрим множество выражений
{ ( ) ( ) }
E = , ( , ), , , ( ), , ( , , ) .
Множество несогласованности для E есть { ( , ), ( ), } .
Ясно, что если множество выражений E содержит более одного элемента, то множество несогласованности множества E также содержит более одного элемента.
1.5. Унификация
Пусть E = {E1, E2, . . . , E } — множество выражений, а T — подстановка. Подстановка T является унификатором E (иначе говоря, T унифицирует E) тогда и только тогда, когда
ET1 = ET2 = . . . = ET .
В этом случае будем считать, что множество ET состоит из одного (уникального) элемента (можно записать, что ET = {ET1}).
Множество выражений унифицируемо, если для него существует унификатор.
подстановка |
|
{ |
}, |
{ |
( , ), |
( |
) } |
Пример 1.8. Множество выражений |
, ( ) |
унифицируемо, так как существует |
|||||
|
T = |
/ , ( )/ |
|
являющаяся его унификатором. |
Унификатор σvдля множества выражений будет наиболее общим унификатором (НОУ) тогда и только тогда, когда для каждого унификатора T для этого множества существует такая подстановка λ, что T = σv λ.
Для поиска НОУ для конечного унифицируемого множества W непустых выражений разработан алгоритм унификации, который можно записать следующим образом:
Шаг 1. |
Положить = 0, W0 = W , σv0 = ε и перейти к шагу 2. |
Шаг 2. |
Если W состоит из одного элемента (т. е. |W | = 1), то выдать «σv — НОУ |
|
для W» и окончить работу; в противном случае найти множество несогласо- |
|
ванности D для W и перейти к шагу 3. |
Шаг 3. |
Если в D существуют такие два элемента и , что — переменная, не вхо- |
|
дящая в терм , то обозначить λ = { / } и перейти к шагу 4; в противном |
|
случае выдать «W неунифицируемо» и окончить работу. |
Куценко Д. А. Математическая логика. Метод резолюций в логике предикатов |
5 |
|
Шаг 4. |
Положить σv+1 = σv λ , W +1 = W λ и перейти к шагу 5. (Заметим, |
|
|
что W +1 = W σv+1). |
|
Шаг 5. |
Увеличить значение на 1 и возвратиться к шагу 2. |
|
Если σv— НОУ для множества выражений E, то говорят, что E является общеунифицируемым множеством.
Пример 1.9. Найдём НОУ для множества выражений |
}. |
||||
|
W = { ( , , ( ) |
), , ( ), ( ) |
|||
|
( |
) |
( |
) |
|
1. |
Положим σv0 = ε и W0 = W . |
|
|
|
|
2. |
Так как |W0| ≠ 1, то σv0 не является НОУ для W . Поэтому находим множество несогла- |
||||
|
сованности D0 = { , }. |
|
|
|
|
3. |
В D0 имеется переменная 0 = , которая не встречается в 0 = . Пусть λ0 = { 0/ 0} = |
||||
|
= { / }. |
|
|
|
|
4. |
Пусть σv1 = σv0 λ0 = ε { / } = { / }, |
|
|
|
|
|
W1 = W0λ0 = { ( , , ( ( ))), ( , ( ), ( ))}{ / } = |
||||
|
= { ( , , ( ( ))), ( , ( ), ( ))}. |
||||
5. |
Так как |W1| ≠ 1, то σv1 не является НОУ для W . Поэтому находим множество несогла- |
||||
|
сованности D1 = { , ( )}. |
|
|
|
|
6. |
В D1 имеется переменная 1 = , которая не встречается в 1 = ( ). Пусть λ1 = |
||||
|
= { 1/ 1} = { ( )/ }. |
|
|
|
|
7. |
Пусть σv2 = σv1 λ1 = { / } { ( )/ } = { / , |
( )/ }, |
|
}{ ( )/ } = |
|
|
W2 = W1λ1 = { ( , , ( ) ), , ( ), ( ) |
||||
|
( |
) |
( |
|
) |
|
= { ( , ( ), ( ( ))), ( , ( ), ( ))}. |
||||
8. |
Так как |W2| ≠ 1, то σv2 не является НОУ для W . Поэтому находим множество несогла- |
||||
|
сованности D2 = { ( ), }. |
|
|
|
|
9. |
В D2 имеется переменная 2 = , которая не встречается в 2 = ( ). Пусть λ2 = |
||||
|
= { 2/ 2} = { ( )/ }. |
|
|
|
|
10. |
Пусть σv3 = σv2 λ2 = { / , ( )/ } { ( )/ } = { / , ( )/ , |
( )/ }, |
W3 = W2λ2 = { ( , ( ), ( ( ))), |
( , ( ), ( ))}{ ( )/ } = |
|
= { ( , ( ), ( ( ))), |
( , ( ), ( ( ))) } |
= |
= { ( , ( ), ( ( ))) }. |
|
11. Так как |W | = 1, то σv = { / , ( )/ , ( )/ } НОУ для W .
3 3
Итак, подстановка { / , ( )/ , ( )/ } является НОУ для множества выражений W =
{ ( ) }
( ) ( )
= , , ( ) , , ( ), ( ) .
Пример 1.10. Определим, унифицируемо ли множество выражений
{ ( ) }
W = ( ), ( ) , ( , ) .