Алгоритм метода резолюций для проверки невыполнимости множества дизъюнктов в логике высказываний
Резольвента – разрешающее уравнение, разрешающая функция, разрешающие операторы. Правилом резолюций в логике предикатов называется правило из дизъюнктов P (t 1, …, tn) F и P (s 1, …, sn) G, выводим дизъюнкт (F) (G), где – наибольший общий унификатор множества { P (t 1, …, t n); P (s 1, …, sn)}. Дизъюнкт (F) (G) называется бинарной резольвентой первых двух дизъюнктов, а литералы P (t 1, …, tn) и P (s 1, …, sn) – отрезаемыми литералами. Пример: Из дизъюнктов Q (a, f (x)) R (x) и Q (u, z) P (z) можно выделить дизъюнкт – бинарную резольвенту исходных дизъюнктов R (x) P (f (x)) используя подстановку = { u = a; z = f (x)}. Правилом склейки в логике предикатов называется правило из дизъюнкта ◊ P (t 1, …, tn) … ◊ P (s 1, …, sn) F выводим дизъюнкт = (◊ P (t 1, …, tn)) (F), где - наиболее общий унификатор множества { P (t 1, …, tn), …, P (s 1, …, sn)}, ◊ - знак отрицания или его отсутствие. Дизъюнкт = (◊ P (t 1, …, tn)) (F) называется склейкой первого дизъюнкта. Пример: Правило склейки, применённое к дизъюнкту: P (x, y) P (y, x) P (a, a) Q (x, y, v) даёт дизъюнкт P (a, a) Q (a, a, v) P (x, y) P (y, x) P (a, a) Q (x, y, v) = { x = a, y = a } – НОУ (P (x, y)) = P (a, a); (Q (x, y, v)) = Q (a, a, v). Резольвентой дизъюнктов D 1 и D 2 называется одна из следующих бинарных резольвент: - бинарная резольвента дизъюнктов D 1 и D 2; - бинарная резольвента склейки D 1 и дизъюнкта D 2; - бинарная резольвента дизъюнкта D 1 и склейки D 2; - бинарная резольвента склейки D 1 и склейки D 2. Определение вывода в логике предикатов Пусть S – множество дизъюнктов. Выводом из множества дизъюнктов S называется последовательность дизъюнктов D 1, D 2, …, D n, такая, что каждый дизъюнкт D i принадлежит S, выводим из предыдущих дизъюнктов по правилу резолюций или выводим из предыдущего по правилу склейки. Пример: S = { B(x) C(x) T(f(x)), C(y) T(f(z)), B(a)} Вывод из S – последовательность дизъюнктов: D 1 = B(x) C(x) T(f(x)) - S D 2 = C(y) T(f(z)) - S D 3 = B(x) T(f(x)) T(f(z)) – из D 1 и D 2 по правилу резолюций D 4 = B(x) T(f(x)) – из D 3 по правилу склейки D 5 = B(a) S D 6 = T (f (a)) из D 4 и D 5 по правилу резолюций Пример вывода по правилу резолюций D 1 = B(x) (C(x)) T(f(x)) - S D 2 = C(y) T(f(z)) - S = {y = x} D 3 = B(x) T(f(x)) T(f(z)) – из D 1 и D 2 по правилу резолюций
Пример: по правилу склейки D 3 = B(x) T(f(x)) T(f(z)) = {z = x} D 4 = B(x) T(f(x)) из D 3 по правилу склейки Теорема о полноте: Множество дизъюнктов S логики первого порядка невыполнимо тогда и только тогда, когда из S выводим пустой дизъюнкт (). Имеется множество гипотез (формул) {F1, …, Fk}. Доказать, что формула G – логическое заключения множества гипотез. {F1, …, Fk} G Для доказательства этого также применяется метод резолюций.
|