Составители:
Рубрика:
22
Теперь дадим определение ПНФ. Говорят, что формула F
исчисления предикатов находится в ПНФ тогда и только тогда, когда
ее можно представить в форме K
1
x
1
K
2
x
2
… K
r
x
r
M, где K
i
x
i
, i=1,2,
…,r есть либо
∀ x
i
, либо ∃ x
i
и М – бескванторная формула. Иногда
называют K
1
x
1
K
2
x
2
… K
r
x
r
префиксом, а М – матрицей формулы
F.
Например, формула
F
1
= ∃ х ∀ у (Q (х, у) ∨
¬
Р (f (х)) → R (х, g (у)))
находится в ПНФ.
Существует простой алгоритм, преобразующий произвольную
заданную формулу в равносильную ей формулу, имеющую
пренексный вид. Алгоритм состоит из следующих шагов.
Шаг 1. Исключение логических связок ~ и
→ . Многократно (пока
это возможно) применяется следующее правило: найти самое левое
вхождение связки ~ или
→ и сделать замены:
F~ Ф = (
¬
F ∨ Ф) & (F∨
¬
Ф),
F
→ Ф =
¬
F ∨ Ф.
Результатом этого шага будет формула, равносильная исходной и
не содержащая связок ~ и
→ .
Шаг 2. Продвижение знака отрицания
¬
до атома. Многократно
(пока это возможно) делаем замены:
¬
¬
F = F,
¬ (F ∨ Ф) =
¬
F ∨
¬
Ф,
¬ (F & Ф) =
¬
F&
¬
Ф,
¬
∀
xF[x] =
∃
x(
¬
F[x]),
¬ ∃ xF[x] =
∀
x(
¬
F[x]).
В результате выполнения этого шага получается формула, у
которой знаки отрицания стоят только перед атомами.
Шаг 3. Переименование связанных переменных. Многократно
(пока это возможно) применяется следующее правило: найти самое
левое вхождение переменной такое, что это вхождение связано
(некоторым квантором), но существует еще одно вхождение этой же
переменной; затем сделать замену
связанного вхождения на
вхождение новой переменной.
Шаг 4. Вынесение кванторов. Для этого используем следующие
равносильности:
K x F[х]
∨ Ф =K x( F[х] ∨ Ф),
K x F[х] & Ф =K x( F[х] & Ф),
∀
x F[х] &
∀
x Ф[х] =
∀
x( F[х] & Ф[х]),
∃
x F[х] ∨∃x Ф[х] =
∃
x( F[х] ∨ Ф[х]),
K
1
x F[х] ∨ K
2
x Ф[х] = K
1
x K
2
y ( F[х] ∨ Ф[y]),
K
1
x F[х] & K
2
x Ф[х] = K
1
x K
2
y ( F[х] & Ф[y]),
где K
1
, K
2
, K – кванторы либо
∀
, либо
∃
.
Теперь дадим определение ПНФ. Говорят, что формула F
исчисления предикатов находится в ПНФ тогда и только тогда, когда
ее можно представить в форме K 1 x 1 K 2 x 2 … K r x r M, где K i x i , i=1,2,
…,r есть либо ∀ x i , либо ∃ x i и М – бескванторная формула. Иногда
называют K 1 x 1 K 2 x 2 … K r x r префиксом, а М – матрицей формулы
F.
Например, формула
F 1 = ∃ х ∀ у (Q (х, у) ∨ ¬ Р (f (х)) → R (х, g (у)))
находится в ПНФ.
Существует простой алгоритм, преобразующий произвольную
заданную формулу в равносильную ей формулу, имеющую
пренексный вид. Алгоритм состоит из следующих шагов.
Шаг 1. Исключение логических связок ~ и → . Многократно (пока
это возможно) применяется следующее правило: найти самое левое
вхождение связки ~ или → и сделать замены:
F~ Ф = ( ¬ F ∨ Ф) & (F ∨ ¬ Ф),
F → Ф = ¬ F ∨ Ф.
Результатом этого шага будет формула, равносильная исходной и
не содержащая связок ~ и → .
Шаг 2. Продвижение знака отрицания ¬ до атома. Многократно
(пока это возможно) делаем замены:
¬ ¬ F = F,
¬ (F ∨ Ф) = ¬ F ∨ ¬ Ф,
¬ (F & Ф) = ¬ F& ¬ Ф,
¬ ∀ xF[x] = ∃ x( ¬ F[x]),
¬ ∃ xF[x] = ∀ x( ¬ F[x]).
В результате выполнения этого шага получается формула, у
которой знаки отрицания стоят только перед атомами.
Шаг 3. Переименование связанных переменных. Многократно
(пока это возможно) применяется следующее правило: найти самое
левое вхождение переменной такое, что это вхождение связано
(некоторым квантором), но существует еще одно вхождение этой же
переменной; затем сделать замену связанного вхождения на
вхождение новой переменной.
Шаг 4. Вынесение кванторов. Для этого используем следующие
равносильности:
K x F[х] ∨ Ф =K x( F[х] ∨ Ф),
K x F[х] & Ф =K x( F[х] & Ф),
∀ x F[х] & ∀ x Ф[х] = ∀ x( F[х] & Ф[х]),
∃ x F[х] ∨ ∃ x Ф[х] = ∃ x( F[х] ∨ Ф[х]),
K 1 x F[х] ∨ K 2 x Ф[х] = K 1 x K 2 y ( F[х] ∨ Ф[y]),
K 1 x F[х] & K 2 x Ф[х] = K 1 x K 2 y ( F[х] & Ф[y]),
где K 1 , K 2 , K – кванторы либо ∀ , либо ∃ .
22
Страницы
- « первая
- ‹ предыдущая
- …
- 20
- 21
- 22
- 23
- 24
- …
- следующая ›
- последняя »
