Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Математическая логика и ТА (Рудаков С.А

.).pdf
Скачиваний:
29
Добавлен:
23.02.2016
Размер:
1.11 Mб
Скачать

0VB, -BV0 |= 0 0V0 |= 0

получаем в результате ноль, что и свидетельствует о справедливости исходной клаузы.

5. Доказательство закончено.

Пример 2. Докажем справедливость клаузы

(AVB, CVA) |= (B&C)VA.

Первый шаг алгоритма:

1.(AVB, CVA), -((B&C)VA) |= 0.

2.Преобразуем третий конъюнкт в левой части по формуле де Моргана

AVB, CVA, (-(B&C)&-A) |= 0, применим формулу де Моргана еще раз

AVB, CVA, ((-BV-C)&-A) |= 0. Используя силлогизм (7) получим

AVB, CVA, (-BV-C), -A |= 0.

3-4. Выпишем по порядку все посылки в таблицу, в которой

первый столбик содержит номера формул в левой части клаузы и возможные склейки,

второй столбик содержит формулы,

третий столбик содержит номера формул из таблицы, участвующих в

склейке.

Далее начнем их склеивать согласно очередности. Справа от каждого

нового конъюнкта будем писать номера используемых конъюнктов,

получим:

Таблица 10 Склейки конъюнктов клаузы

AVB, CVA, (-BV-C), -A |= 0 тупым перебором

1

AVB

 

8

C

2,4

2

CVA

 

9

A

2,5

3

-BV-C

 

10

-C

3,6

4

-A

 

11

-B

3,8

5

AV-C

1,3

12

-C

4,5

6

B

1,4

13

-B

4,7

7

AV-B

2,3

14

0

4,9

 

 

 

21

 

 

Подобная стратегия поиска нуля очень непродуктивна. Если к этой же задаче подойти более творчески, то ноль обнаружится на третьем шаге от начала поиска:

Таблица 11 Творческие склейки конъюнктов клаузы

AVB, CVA, (-BV-C), -A |= 0

1

AVB

 

2

CVA

 

3

-BV-C

 

4

-A

 

5

AV-C

1,3

6

A

2,5

7

0

4,6

5. Доказательство закончено.

Упражнения

Доказать справедливость следующих клауз с помощью таблиц истинности и методом резолюций. Если таблица истинности показывает, что клауза неверна, то следует добавить в правую часть дизъюнкт, который превратит клаузу в верную. Разработать для каждой клаузы легенду.

1.(A => С, -В ~ С, В V D, В => А) |= (DV(А & С))

2.((А => В) => (С => D), (D => F) => Е) |= (A V Е)

3.(А => В, С => D, (В & D) => Е, Е, А)|=

4.(С=> (A V В), D => (В V С)) |= (A V ВV -D)

5.(С => А) |= ((А & В) V С) ~ (А & (В V С))

6.А => (В => -С), -А => В, -А => (-В => С) |= СV В

7.(А => С) => ( -А & В) |=А v В

8.A v D, В v Е, D => С, D v С |= А & С; Е & D; В

9.А => В, С => D, A v С, А => (-D), С => -В |= (A v В) => (А & В)

10.С => A, B v C, B => D, D => A |= A 11.D => E, E => C, A ~ D, B ~ C |= A => B

12.A v B, A => B, B => (C => (-D)), A => D |= -(A & C)

13.(А & В) => С |= А => (В=>С)

22

14.A => (В => С), (С & D) => E, -F => (D & -Е) |= A => (B => F)

15.(А & (В => С)) ~ D, Е ~ (А & -(В v С)) |= (D & -Е) ~ (А & С)

16.А => (В => -С), -А => В, -А => (-В => С) |= С; В

17.А, -В => (А => D), С => (В => Е), D => (Е v -С) |= С => Е

18.-С, D => С, А => (-В => D), В |= А => С

19.(A v C) ~ -(B v D) |= -A~B; -C~D

20.А => В, С => D, B => Е, D => F, -(Е & F), А => С |= А

21.С => (В => А), -В => D, С |= A v D

22.-C, A v B |= (B => C) =>A (*)

23.А => С, D => F, В => Е, -D => -С, А => В |= А => (Е & F)

24.А, В v С, С ~ D |= (В => -А) => (В => D)

25.А => (С => В), D => А, С |= D => В

26.Е => F, С => (D => Е), (А => В) => С |= D => (A v F)

27.–A ~ B, B => C, -C ~ D |= (C => B) => (D => A) 28.А ~ В, С ~ D |= (A v С) ~ (B v D)

29.А => (В => С), С => (В => -A), D => А, А => В |= -D 30.А => В, В => D, D => A, B v C, С => D |= D

31.А, В v С |= А & В; С

32.С, (А => В) => (С => А) |= А

33.А, В => С |= А & -В; В & С

34.А => (В & С), -В v D, (Е => -F) => -D, -В v (А & -Е) |= В => Е

35.A v B, A v C, A => C, C => (A => D) |= B v D. 36.А, В=>С |= (А => -С) => -В

37.А => В, А ~ D, С ~ Е |= (В => С) => (D => Е)

38.А => (С => В), D => А, С |= D => В

39.А => (В => С), А => (В v С) |= А => С

40.А ~ -В, A v C, -(С & Е), В => С, B v D, А => Е |= D ~ Е; -(С & D)

41.A, D => С, В v (А => D), В => С |= С

42.А ~ В, С ~ D |= (А => С) => (В => D)

43.A v С, С => D, -(А & D), -(В & С), А => В, А v В |= А & В

23

44.Е => D, С v Е, A v D, D => -В |= С & D; (Е & В) => (Е => А)

45.А, В => С |= А & -В; В & С

46.С => (D => Е), Е => F |= ((А => В) => С) => (D => (-А => F))

47.А => В, А ~ С, D ~ Е |= (В => D) => (С => Е)

48. (АТС) - (В v D), А ~ В |= С => -D

49.A => (B v C), A v B, B =>A, B => D |= C v D

50.Е => D, С v Е, A v D, D => В, Е |= А; В & Е; С & D

51.А => В, В v С, С => А, В => С |= А & В

52.E => D, E ~ C, C ~ A, D ~ В |= А => В 53.A v B, B ~ C, C, D, A ~ D |= A & B

54.А => В, A v С, С => В, D => А |= (В => D) => В

55.-D, Е |= ((А & -В) => С) ~ -D; Е ~ (А & (В => С)

56.A v (В => С), С => (В => А), А => D |= (A v В) => D

57.-(А => С) ~ (В => D) |= А ~ -В; -С ~ D

58.С => (A v В), D => (В v С) |= A v В; -D

59.А => D, A v С, D v Е, D => В |= (А & В) => (А => Е); С & D

60.A v С, А => В, С => В |= А & В; В & С

61.А => В, А => С, D ~ E, D => A, Е => А, В => Е, C => D|= B ~ С

62.C => (В => А), С v D, D => В, В v D |= (D => С) => А

63.А, В v С |= А & С; В & -С

64.А => В, С => D, (В & D) => Е, Е, А |= -С 65.А => (В => С), В v С v D |= (А => С) v D

66.A v В, А => С |= -А& В; С

67.(А => В) => (С => D), (D => F) => Е |= A v Е

68.A v C, С => -D, А => D, B v C |= D => (B & D)

69.A v В, C => В, В => А, A => С |= (В & С );A

70.A => С, -В ~ С, В v D, В => А |= D; А & С

71.A v В, D v E, D v C, D => С |= А & D; В; С & Е

72.А => С, A v В, В => D, D => С |= С

73.В v D, D => В, С v D, D => С, С => (В => А) |= А

24

74.А => В, A v D, С v Е, Е => А |= (В & Е) => (Е => D); А & С

75.(А & В) v (С & D), -А |= С

76.С => А |= ((А & В) v С) ~ (А & (В v С))

77.D => F, А => (Е => D), (С => В) => А => Е => (С v F)

Решение упражнения 1.

Таблица 12 Доказательство истинности клаузы с помощью таблицы истинности

№ A B C D

A=>C

-B~C

В V D В => А А & С DV(А & С)

1

0

0

0

0

1

0

 

2

0

0

0

1

1

0

 

3

0

0

1

0

1

1

0

4

0

0

1

1

1

1

1

1

0

1

5

0

1

0

0

1

1

1

0

 

 

6

0

1

0

1

1

1

1

0

 

 

7

0

1

1

0

1

0

 

 

 

 

8

0

1

1

1

1

0

 

 

 

 

9

1

0

0

0

0

 

 

 

 

 

10

1

0

0

1

0

 

 

 

 

 

11

1

0

1

0

1

1

0

 

 

 

12

1

0

1

1

1

1

1

1

1

1

13

1

1

0

0

0

 

 

 

 

 

14

1

1

0

1

0

 

 

 

 

 

15

1

1

1

0

1

0

 

 

 

 

16

1

1

1

1

1

0

 

 

 

 

Метод резолюций

1.(A => С, -В ~ С, В V D, В => А),-(DV(А & С)) |= 0

2.Приведем к дизъюнктному виду каждый конъюнкт отдельно

a.A => С= -AVC

b. ~ С=(-B=>C)&(C=>-B)= (BVC)&(-CV-B)

c.В => А= -BVA

d.-(DV(А & С))=-D&-(A&C)= -D&(-AV-C)

Получили конъюнкцию дизъюнкций

-AVC, (BVC),(-CV-B), В V D, -BVA, -D,(-AV-C) |= 0

3. Производим склейки

25

Таблица 13 Склейки

1

-AVC

 

11

BV-B

2,3

2

BVC

 

12

AVC

2,5

3

-CV-B

 

13

BV-A

2,7

4

В V D

 

14

C

2,9

5

-BVA

 

15

-CVD

3,4

6

-D

 

16

-B

3,9

7

-AV-C

 

17

AV-B

3,12

8

-AV-B

1,3

18

-CV-A

3,13

9

-BVC

1,5

19

AVD

4,5

10

-A

1,7

20

B

4,6

4.Повторяем п.3.

5.Доказательство закончено.

Составим легенду для клаузы

(В => А, A => С, -В ~ С, В V D) |= (DV(А & С))

A – Вася прилежно учится;

C – Вася хорошо сдает все экзамены;

B – Вася – умный человек;

B=>A – Если Вася – умный человек, то Вася прилежно учится;

A=>C – Если Вася прилежно учится, то он все экзамены сдаст хорошо;

-B – Вася – глупый;

-B~C – Вася – глупый означает, что он успешно сдает экзамены;

D – Вася занимается спортом;

BVD – Вася – умный человек или Вася занимается спортом;

A&C – Вася прилежно учится и Вася хорошо сдает все экзамены;

DV(A&C) – Вася занимается спортом или Вася прилежно учится и Вася хорошо сдает все экзамены;

Получили следующую легенду:

Про Васю известно, что:

Если Вася прилежно учится, то он все экзамены сдаст хорошо; Вася ведет здоровый образ жизни тогда и только тогда, когда он успешно сдает экзамены; если Вася всегда ведет здоровый образ жизни, то Вася прилежно

учится.

26

Это значит, что Вася занимается спортом или Вася прилежно учится, и Вася занимается

спортом или Вася хорошо сдает все экзамены.

Решение упражнения 6.

А => (В => -С), -А => В, -А => (-В => С) |= С V В

Таблица 14 Клауза

А => (В => -С), -А => В, -А => (-В => С) |= С V В неверна

A

B

C

В=>-С

А=>(В=>-С)

-А=>В

-В=>С

-А=>(-В=>С)

1

0

0

0

 

1

0

 

 

2

0

0

1

 

1

0

 

 

3

0

1

0

 

1

1

1

1

4

0

1

1

 

1

1

1

1

5

1

0

0

1

1

1

 

1

6

1

0

1

1

1

1

 

1

7

1

1

0

1

1

1

 

1

8

1

1

1

0

0

1

 

1

В строках 3-7 таблицы 14 конъюнкты левой части клаузы принимают значения истины, но в строке 5 дизъюнкция в левой части клаузы принимает значение "ложь", следовательно, клауза неверна.

Если в правую часть добавить дизъюнкт A, то клауза будет справедлива!

Применим метод резолюций для клаузы

А => (В => -С), -А => В, -А => (-В => С) |= С V В V A

Выполняем шаги алгоритма

1.Приводим к форме противоречия, используя закон де Моргана,

А=> (В => -С), -А => В, -А => (-В => С), -С,-В,-A |= 0

2.Конъюнкты левой части приводим к дизъюнкции:

(-АV-ВV-С), (АVВ),(АVВVС), -С,-В,-A |= 0

3-4. Записываем в таблицу конъюнкты левой части клаузы и производим

склейки

1

-АV-ВV-С

 

2

АVВ

 

3

АVВVС

 

27

4

 

 

5

 

 

6

-A

 

 

7

A

2,5

 

8

0

6,7

 

6.

Доказательство закончено.

Составим легенду для клаузы

А=> (В => -С), -А => В, -А => (-В => С) |= С V В V A

А– Петр – умный человек;

В – Петр знает ПДД;

C – Петр нарушил ПДД;

-C – Петр никогда не нарушает ПДД;

А => (В => -С) –

-А => В –

-А => (-В => С) –

С V В V A

(С=> (A V В), D => (В V С)) |= (A V ВV -D)

С=> (A V В), D => (В V С), -(A V ВV -D) |= 0 -СV(A V В), -DV (В V С), -A & -В & D |= 0 -СV(A V В), -DV (В V С), -A , -В , D |= 0

A1

A2

A3

A4 A5

 

 

 

 

 

1.

-СVA V В

 

 

 

 

 

 

 

 

2.

-DV В V С

 

 

 

 

 

 

 

 

3.

-A

 

 

 

 

 

 

 

 

4.

 

 

 

 

 

 

 

 

5.

D

 

 

 

 

 

 

 

 

6.

A V В V-DV В

 

 

1,2

 

 

 

 

 

7.

-СVВ

 

 

1,3

 

 

 

 

 

8.

-СVA

 

 

1,4

 

 

 

 

 

9.

-DV С

 

 

2,4

 

 

 

 

 

10.

В V С

 

 

2,5

 

 

 

 

 

 

 

 

28

11.

В V-D

3,6

 

 

 

12.

-D

4,11

 

 

 

13.

0

5,12

 

 

 

2.1 Логика предикатов

2.1.1 Предикаты

Предикат это функциональное высказывание, а высказывание — предикатная константа.

Логика предикатов это расширение логики высказываний за счет использования предикатов в роли логических функций.

Предикат [лат. praedicatum] - 1) сказуемое; 2) логическое сказуемое;

то, что в утверждении высказывается об объекте.

Пример 1. Пусть имеется ряд простых высказываний:

Р1 = «Иван читает Достоевского»,

Р2 = «Петр читает Достоевского»,

……………………………………..

Рn = «Степан читает Достоевского».

Вместо высказываний Р1, Р2,... , Рn мы могли бы ввести одноместный предикат Р(х), для которого переменная х принимала бы значения из предметной области типа —

х{Иван, Петр, ... , Степан},

асама предикатная функция передавалась бы словами:

Р(х) = « х читает Достоевского».

Теперь изменим исходный ряд высказываний на другой:

Р1 = «Иван читает Достоевского»,

Р2 = «Петр читает Толстого»,

…………………………………

Рn = «Степан читает Чехова».

Здесь можно было бы ввести уже двухместный предикат

Р(х, у) = « х читает у »

29

сдополнительной предметной областью —

у{Достоевский, Толстой, ... , Чехов}.

Введем трехместный предикат Р(х, у, z), который означает, что

« х есть сумма у и z ».

Допустим, в процессе вычислений переменная х приняла конкретное

значение, равное 5. Тогда трехместный предикат превратится в двухместный:

Р(5, у, z) = Р’(у, z) = « 5 есть сумма у и z ».

При х = 5 и у = 3 получим одноместный предикат:

Р(5, 3, z) = Р'(3, z) = Р"(z) - « 5 есть сумма 3 и z ».

Наконец, если добавить условие z = 2 , то исходный предикат

становится нулъместным предикатом (константой или высказыванием),

который в данном случае принимает истинное значение:

Р1 = Р(5, 3, 2) = « 5 есть сумма 3 и 2 » = 1.

Но могло случиться, что z= 1 тогда имели бы ложное высказывание:

Р0 = Р(5, 3, 1) = « 5 есть сумма 3 и 1 » = 0.

Таким образом, при замещении переменной xi предметной постоянной

аi, происходит превращение n-местного предиката P(x1,..., xi,..., хn) в (n — 1)-

местный — P(x1,..., аi,..., xn). Приписав конкретные значения всем аргументам предикатной функции — P(a1,..., ai,..., an), мы тем самым получаем предикатную константу, к которой применимы все законы логики высказываний.

Многоместный предикат P(x1, x2,...,xn) - это утверждение об

объектах x1, x2,...,xn, где x1, x2,...,xn

рассматриваются как переменные.

Следовательно, при подстановке x1=a1, x2=a2,...,xn=an

получим

вы-

сказывание P(a1, a2,, ...,an), являющееся истинным или ложным.

 

2.1.2 Формулы

 

 

 

 

 

Определение терма:

 

 

 

 

a) переменные x1, x2,...,xn для объектов - это термы;

 

 

b) если

f(•,...,•)

функция

п

переменных,

ставящая

в

 

 

 

 

30