Здравствуйте
Есть следующий пример из книги
Чень Ли Автоматическое доказательство теорем (стр. 124-125)
Дан набор дизъюнктов:
1.
![$ P_5(y,a) \vee P_1(f(y),y) $ $ P_5(y,a) \vee P_1(f(y),y) $](https://dxdy-03.korotkov.co.uk/f/2/e/a/2ea83b46288504f2c692115b489e221682.png)
2.
![$ P_6(y,a) \vee P_2(y,f(y)) $ $ P_6(y,a) \vee P_2(y,f(y)) $](https://dxdy-01.korotkov.co.uk/f/0/9/b/09b7dd15a0ec715e9be791067b0bdeaf82.png)
3.
![$ \neg P_8(x,y) \vee P_3(f(y),y) $ $ \neg P_8(x,y) \vee P_3(f(y),y) $](https://dxdy-02.korotkov.co.uk/f/1/3/e/13e8cda03bfccc7b04cb34d4912664dc82.png)
4.
![$ \neg P_9(x,y) \vee P_4(y,f(y)) $ $ \neg P_9(x,y) \vee P_4(y,f(y)) $](https://dxdy-04.korotkov.co.uk/f/3/8/5/38589e15259a439b2d2876e01db4bfea82.png)
5.
![$ \neg P_1_0(x,y) \vee \neg P_7(y,a) $ $ \neg P_1_0(x,y) \vee \neg P_7(y,a) $](https://dxdy-04.korotkov.co.uk/f/b/5/f/b5f3f2d1f11418a2b49080420f3b33fa82.png)
Лок-вывод:
6.
![$ P_5(a,a) \vee \neg P_1_0(x, f(a)) $ $ P_5(a,a) \vee \neg P_1_0(x, f(a)) $](https://dxdy-01.korotkov.co.uk/f/4/a/f/4aff5a237e1488aa1c41d919ad6f853982.png)
лок-резольвента 1 и 5
7.
![$ \neg P_8(x,a) \vee \neg P_1_0(y,f(a)) $ $ \neg P_8(x,a) \vee \neg P_1_0(y,f(a)) $](https://dxdy-04.korotkov.co.uk/f/b/0/3/b037c580fe50fc5428f8ef05ef26988682.png)
лок-резольвента 3 и 5
8.
![$ \neg P_1_0(x,f(a)) \vee \neg P_1_0(y,f(a)) $ $ \neg P_1_0(x,f(a)) \vee \neg P_1_0(y,f(a)) $](https://dxdy-02.korotkov.co.uk/f/9/b/0/9b0daaa6c4b6b9aca83b8d5130ef6c4f82.png)
лок-резольвента 6 и 7
9.
![$ P_6(a,a) $ $ P_6(a,a) $](https://dxdy-03.korotkov.co.uk/f/a/8/2/a82f3f2e6db52b440e83e36d6ef6a5c282.png)
лок-резольвента 8 и 2
10.
![$ \neg P_9(x,a) $ $ \neg P_9(x,a) $](https://dxdy-02.korotkov.co.uk/f/d/c/f/dcf66c4f9f909181fdcdf5fc0f129f3182.png)
лок-резольвента 8 и 4
11.
![$ \square $ $ \square $](https://dxdy-04.korotkov.co.uk/f/3/2/1/3212e084ea54c7d63f41583258dea94582.png)
лок-резольвента 9 и 10
Я не пойму как получился вывод 6.
![$ P_5(a,a) \vee \neg P_1_0(x, f(a)) $ $ P_5(a,a) \vee \neg P_1_0(x, f(a)) $](https://dxdy-01.korotkov.co.uk/f/4/a/f/4aff5a237e1488aa1c41d919ad6f853982.png)
лок-резольвента 1 и 5
По правилу лок-резолюции сравниваются две литеры, имеющие наименьшие индексы, в данном случае
![$ P_1(f(y),y) $ $ P_1(f(y),y) $](https://dxdy-03.korotkov.co.uk/f/a/6/c/a6c33cd1c60880e8d53892cddd4b46c682.png)
из набора (1) и \neg
![$ \neg P_7(y,a) $ $ \neg P_7(y,a) $](https://dxdy-04.korotkov.co.uk/f/f/4/b/f4b0f722c0ddab1b85c4772b521bcc8b82.png)
из набора (5). Эти литеры имеют наименьшие индексы и контрарны. Теперь необходимо их унифицировать. Первое рассогласование это
f(y) из литеры
![$ P_1 $ $ P_1 $](https://dxdy-04.korotkov.co.uk/f/3/8/8/388f37c56f5671e950eec953f55c814a82.png)
и
y из
![$ \neg P_7$ $ \neg P_7$](https://dxdy-01.korotkov.co.uk/f/4/f/d/4fd105dc2cdbf393d3a934361d3657f082.png)
. Получается подстановка
f(y)/y, но переменная
y содержится в терме
f(y), и значит по определению алгоритма унификации эти литеры не унифицруемы, однако в данном примере как то получена лок-резольвента. И вообще я получил, что этот набор дизъюнктов выполним, а в примере получен пустой дизъюнкт. Объясните, это опечатка в книге или я что то неправильно делаю
Второй вопрос хотел задать именно по алгоритму лок-резолюции. Нужно ли в нем реализовывать алгоритм поглощения, т.е проверять, является ли определенный дизъюнкт поддизъюнктом другого дизъюнкта. Например, в методе насыщения уровня, такая проверка нужна, чтобы не получать повторяющихся дизъюнктов. Или может сам метод лок-резолюции обеспечивает то, что появлющиеся лок-резольвенты не будут поглощаться никакими вышележащими дизъюнктами.
К примеру, даны два дизъюнкта: (
Чень Ли Автоматическое доказательство теорем (стр. 99-100))
C=
D=![$ \neg P(h(y)) \vee Q(f(h(y)),a) \vee P(z) $ $ \neg P(h(y)) \vee Q(f(h(y)),a) \vee P(z) $](https://dxdy-03.korotkov.co.uk/f/e/0/d/e0d0b02a210b5e016ca150502ad51fcc82.png)
Необходимо проверить, является ли
C поддизъюнктом
DПо алгоритму поглощения для
D находится подстановка
![$ \sigma={b/y, c/z} $ $ \sigma={b/y, c/z} $](https://dxdy-02.korotkov.co.uk/f/d/f/2/df20f9e5763c0532c8b616146e0e6bd382.png)
, далее
![$ \neg D\sigma=P(h(b)) \wedge \neg Q(f(h(b)),a) \wedge P(c) $ $ \neg D\sigma=P(h(b)) \wedge \neg Q(f(h(b)),a) \wedge P(c) $](https://dxdy-03.korotkov.co.uk/f/a/3/e/a3e29c91b07e306c3ec2a4bece01c68b82.png)
Теперь загоняем
![$ \neg D\sigma $ $ \neg D\sigma $](https://dxdy-01.korotkov.co.uk/f/c/1/9/c1917db4bd920637e2ee79e4768b06fd82.png)
в список
W, а
С в список
U![$ W={P(h(b)), \neg Q(f(h(b)),a), P(c)}$ $ W={P(h(b)), \neg Q(f(h(b)),a), P(c)}$](https://dxdy-02.korotkov.co.uk/f/5/f/c/5fc7d36da80b4ee231ec518781daabcf82.png)
![$ U={\neg P(x) \vee Q(f(x),a)}$ $ U={\neg P(x) \vee Q(f(x),a)}$](https://dxdy-02.korotkov.co.uk/f/d/e/4/de4284d8b2c13b17cec0c36688bbb82d82.png)
Теперь с помощью обычного резолютивного вывода находим резольвенты, резольвируя каждый дизъюнкт из
W c
U.
Получается
![$ U={Q(f(h(b)),a), \neg P(h(b)), Q(f(c), a)} $ $ U={Q(f(h(b)),a), \neg P(h(b)), Q(f(c), a)} $](https://dxdy-03.korotkov.co.uk/f/6/2/8/628c6ed9db65f040e50ad80b7475d56d82.png)
. И снова резольвируя W c только что полученной U, будет найден пустой дизъюнкт, а это значит что C поглощается D.
Теперь, т.к все резольвенты находятся с помощью лок-резолюции, то я попытался применить ее к алгоритму поглощения.
Однако, если я буду делать то же самое, но вместо обычного вывода, использовать лок-резолюцию, то у меня получится при первом выводе
![$ U={Q(f(h(b)),a), Q(f(c), a)} $ $ U={Q(f(h(b)),a), Q(f(c), a)} $](https://dxdy-02.korotkov.co.uk/f/9/d/9/9d908747c99b423088b9494f30562d7282.png)
, т.е здесь отсутствует второй дизъюнкт. И в дальнейшем опять применяя вывод к новой U, я уже не получу пустого дизъюнкта, и это будет говорить о том, что C не будет поддизъюнктом D.
Конечно, если алгоритм поглощения можно не использовать, то вопрос отпадает сам собой.