
- •Математические методы теории доказательств. Автоматизация процесса логического вывода.
- •Семантика логики предикатов
- •Доказательство методом резолюции
- •Префиксная формальная форма.
- •Сколемовская нормальная формула.
- •Клаузальная форма (форма предположений)
- •Резолюция для основных предложений
- •Предложения и резольвенты
- •Унификация и подстановка
- •Резолюция в общем случае
- •Система опровержения на основе резолюции.
- •Извлечение ответа из опровержения на основе резолюции
- •Системы дедукции на основе правил
Унификация и подстановка
Чтобы применить резолюцию к предложениям, содержащим переменные, необходимо предварительно провести некоторую подстановку в переменные и ввести понятие унификации с помощью этой подстановки.
Пусть имеются два предиката L(x) иL(A), гдеx– переменная, аA– константа. Хотя предикатные символы и одинаковые, о самих предикатах этого сказать нельзя. Тем не менее, подстановкойAвxможно эти предикаты сделать одинаковыми. Однако операцию подстановки нельзя проводить при отсутствии каких-либо ограничительных условий. Подстановкуtвxпринято записывать как {t/x}. Поскольку в одну ППФ может входить более одной переменной и, следовательно, можно провести более одной подстановки, то обычно эти подстановки записываются в виде множества упорядоченных пар: {t1/x1;t2/x2; …,tn/xn}. Условия, допускающие подстановку, состоят в следующем:
1). xiявляется переменной, аti– термом (константа, переменная, функция), отличным отxi.
2) для любой пары элементов из группы подстановок в правых частях символов "/" не содержатся одинаковые переменные.
Обозначим группу подстановок {t1/x1;t2/x2; …,tn/xn} черезS. Если для некоторого представленияLприменяется подстановка содержащихся в ней переменных {x1;x2; …,xn}, то результат подстановки, при которой переменные заменяются соответствующими им термамиt1;t2; …,tn, принято обозначать какLS.
Если имеется группа различных выражений предиката L, т.е. {L1,L2, …,Lm}, то подстановкаS(положим, что она существует) такая, что в результате все эти выражения становятся одинаковыми, т.е.L1S=L2S=…LmSназывается унификатором для {L1,L2, …,Lm}. Если такая подстановкаSсуществует, то множество выражений {L1,L2, …,Lm} является унифицируемым.
Множество {L(x),L(A)} – унифицируемо, при этом унификатором является подстановка {A/x}.
Для одной группы выражений унификатор не обязательно единственный. Для группы выражений {L(x,y)},L{z,f(x)} подстановкаS= {x/z,f(x)/y} является унификатором, но унификатором является и подстановкаS' = {A/x;A/z;f(A)/y}, гдеA– константа, аx– переменная.
В таких случаях возникает проблема: какую подстановку лучше всего выбрать в качестве унификатора.
Если существует несколько унификаторов, то среди них непременно найдется такая подстановка , что все другие унификаторы являются подстановками, выражаемыми в видеS, как сложная форма, включающая эту подстановку. В результате подстановки переменные будут замещены константами и описательная мощность ППФ будет ограничена.
Чтобы унифицировать два различных выражения предиката, необходима такая подстановка, при которой выражение с большой описательной мощностью согласуется с выражением, имеющим малую описательную мощность. Подстановка, которая является унификатором с минимальным ограничениями называется "наиболее общим унификатором" (НОУ). В рассмотренном выше примере из подстановокSиS' НОУ является подстановкаS.
Метод отыскания НОУ из заданной группы предикатных выражений называется алгоритмом унификации. В таблице приведены наиболее общие подстановочные частные случаи для нескольких множеств литералов.
Множество литералов |
Наиболее общие подстановочные частные случаи |
{P(x), P(A)} |
P(A) |
{P(f(x), y, g(y)), P(f((x), z, g(x)} |
P(f(x), x, g(x)) |
{P(f(x, g(A, y)),g(A, y)), P(f(x, z), z)} |
P(f(x, g(A, y)), g(A, y)) |