Дискретная математика:
логика, группы, графы, фракталы

Акимов О.Е.

1.3. Методы доказательства в логике Буля

Примеры доказательств булевых тождеств

Требуется выяснить, будет ли выполняться закон ассоциативности относительно штриха Шеффера:

(a | b) | c = a | (b | c)?

Здесь можно не прибегать к таблицам истинности или диаграммам Эйлера — Венна. Достаточно знать связь между операциями, чтобы показать, что закон не выполняется:

a | (b | c) = 1 + а (1 + bc) = 1 + а + abc;

(a | b) | c = 1 + (1 + ab) с = 1 + с + abc.

Позиция конструктивистов состоит в том, чтобы любое тождество в математической логике получило свое убедительное обоснование, будь то закон дистрибутивности для дизъюнкции и конъюнкции или закон ассоциативности для этих операций — ничто не должно браться в качестве «аксиом», т.е. утверждений без доказательств. Аналогичный конструктивный прием можно использовать для доказательства тавтологии:

(а а (аb)) → b = 1.

Доказательство:

а (1 + а + аb) → b = аbb = 1 + аb + аbb = 1.

В следующем примере полиномиальная форма уже не используется, а доказательство ведется посредством булевых операций. Требуется доказать:

((а + b) → (аb)) ∧ ((аb) → (а +b)) = a | b.

Доказательство:

((а + b) → (аb)) ∧ ((аb) → (а + b)) =

= (((аb) ∧ (аb)) → (аb)) ∧

∧ ((аb) ∨ ((аb) ∧ (аb)) =

= ((аb) ∨ (аb) ∨ (аb)) ∧ ((аb) ∨ (аb)) =

= 1 ∧ ((аb) ∨ (аb)) = аb = a | b.

Часто встречаются доказательства смешанного характера. Например, требуется установить, что

A ∪ В = 1, если A ⊂ В.

Когдa встречается символ включения, его лучше всего перевести в тождество. Если A полностью включено в В, то с помощью диаграмм Эйлерa — Веннa легко проверить, что 

A ∩ В = A или A ∪ В = В.

Далее, используя последнее равенство и аксиомы булевой логики, получим:

A ∪ В = A ∪ (A ∪ В) =

= (A ∪ A) ∪ В = 1 ∪ В = 1.

Предположим, требуется доказать тождество

A ∩ В = В или A ∪ В = А.

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

В = В ∪ 0 = В ∪ (A ∪ A) =

= (A ∪ В) ∩ (A ∪ В) = A ∩ (A ∪ В) =

= (A ∩ A) ∪ (A ∩ В) = 0 ∪ (A ∩ В) = A ∩ В.

Второй способ:

A ∩ В = (A ∪ В) ∩ В = В.

При втором способе доказательства использовался закон поглощения, который, вообще говоря, не входит в систему провозглашенных ранее аксиом, но справедливость которого, тем не менее, легко установить отдельно. Отсюда вывод: всякое доказательство зависит от тех средств, которыми мы располагаем.

Закон де Моргана можно доказать следующим образом. «Умножим» тождество слева и справа на скобку (а ∨ b), получим:

(ab) ∧ (аb) = (аb) ∧ (аb).

Так как аа = 0, то левая часть тождества равна нулю. Раскрывая скобки в правой части, убеждаемся, что и она равна нулю.

По аналогии с этим доказательством, вполне правдоподобным кажется и такое доказательство закона поглощения:

а = а ∧ (аb).

Обе части тождества «умножаем» на скобку (аb):

а ∧ (аb) = а ∧ (аb) ∧ (аb).

Используя закон идемпотентности, приходим к тождеству: 

а ∧ (аb) = а ∧ (аb).

Однако такое доказательство не совсем корректно. Здесь мы заранее знали, что закон поглощение — истинное тождество. Если же нам заранее не известно, справедливо тождество или нет, то использованный только что прием может привести к ошибке. Возможно лишь такое «умножение» и «сложение», которое отвечает законам нуля и единицы, т.е. аа = 0, аа = 1. Для иллюстрации сказанного возьмем заведомо ложное тождество: 

(аb) ∨ (а с) ∨ (ас) = (аb) ∨ (а с).

Воспользуемся законом поглощения в виде:

а = а ∨ (ас).

«Сложив» его с исходным выражением, получим тождество:

(аb) ∨ (а с) ∨ (ас) ∨ а =

= (аb) ∨ (а с) ∨ (а с) ∨ а,

что должно доказывать справедливость исходного выражения. Однако с помощью таблиц истинности (табл. 1.18) легко установить, что это не так. Две нижние строки, соответствующие правой ( fR ) и левой ( fL ) частям исходного выражения, отличаются друг от друга. Это выглядит необычно, ведь прибавление к неравенству 1 < 3 одного и того же числа, например, (1 + 2) < (3 + 2) не обращает неравенство в тождество. И, тем не менее, исходное тождество было записано ошибочно. Истинным тождеством является:

(аb) ∨ (а с) ∨ (b с) = (аb) ∨ (а с).

Таблица 1.18

Закончим этот подраздел примерами решения задач.

1) Доказать тождество:

a → (bc) = a | (b | c).

Доказательство:

a → (bc) = a ∨ (b | c) = a | (b | c).

2) Доказать тождество:

a + (bc) = (ab) ~ ((a + c) ∧ b).

Доказательство:

(ab) ~ ((a + c) ∧ b) =

= (1 + a + ab) ~ (ab + bc) =

= 1 + (1 + a + ab) + (ab + bc) =

= a + (bc).

3) Доказать тождество:

(abc) → (abc) =

= (ab) ∨ (bc) ∨ (ca).

Доказательство:

(abc) ∨ (abc) =

= (abc) ∨ (abc) =

= (ab) ∨ (bc) ∨ (ca) =

= (ab) ∨ (bc) ∨ (ca).

4) Доказать тождество:

((ab) → (a + b)) ∧ ((ab) → (a | b)) = a b.

Доказательство:

((ab) → (a + b)) ∧ ((ab) → (a | b)) =

= ((ab) ∨ ((ab) ∨ (ab))) ∧ ((ab) ∨ (ab)) =

= ((ab) ∧ ((ab) ∨ (a b))) ∧ (a ∨ 1) =

= (x ∧ (xy)) ∧ 1 = x,

где x = ab, y = ab.

5) Доказать тождество:

(A ∪ C) ∩ (AB) ∩ (B ∪ C) ∩ (A ∪ B) ∩ (B ∪ C) = 0.

Доказательство:

A ∩ C ∩ (A ∪ C) = X ∩ X = 0,

где X = A ∩ C.

6) Доказать тождество:

(A ∪ B ∪ C) + (A ∩ B ∩ C) =

= (A ∪ B ∪ C) – (A ∩ B ∩ C).

Доказательство:

(A ∪ B ∪ C) + (A ∩ B ∩ C) =

= ((A BC) ∩ (A ∩ B ∩ C)) ∪

∪ ((A ∪ B ∪ C) ∩ (A BC)) =

= 0 ∪ ((A ∪ B ∪ C) ∩ (A BC)) =

= (A ∪ B ∪ C) – (A ∩ B ∩ C).

7) Доказать тождество:

((A ∪ B) ∩ (B ∪ C)) ∪ ((A ∪ C) ∩

∩ (B ∪ C) ∩ (A ∪ B)) = 1.

Доказательство:

((A ∪ B) ∩ (B ∪ C)) ∪ ((A ∪ C) ∩ (B ∪ C) ∩ (AB)) =

= (B ∪ (A ∩ C)) ∪ ((A ∪ C) ∩ (B ∪ (A ∩ C))) =

= (B ∪ X) ∪ (X ∩ (B ∪ X)) =

= (B ∪ X) ∪ (XB) =

= (B ∪ X) ∪ (B ∪ X) = 1,

где X = (A ∩ C).

8) Преобразовать в СДНФ функцию:

f = (x + z) – (xy).

Решение:

fСДНФ = (x + z) – (xy) =

= (xz) ∧ (xz) ∧ x y =

= (xz) ∧ x y = x yz.

Правильность нахождения fСДНФ проверим с помощью таблицы истинности (табл. 1.19).

Таблица 1.19

 

9) Используя операции над множествами, представить заштрихованные области рис. 1.18 в виде компактного аналитического выражения.

 

Рис. 1.18

Решение: заштрихованные области можно представить четырьмя конституентами:

(A ∩ BC) ∪ (A B ∩ C) ∪ 

∪  (A ∩ B ∩ C) ∪ (A ∩ B ∩ C) =

= (A ∩ ((BC) ∪ (B ∩ C))) ∪ 

∪  (A ∩ ((B ∩ C) ∪ (B ∩ C))) =

= (A ∩ (B ~ C)) ∪ (A ∩ (B + C)) =

= (A ∩ (B ~ C)) ∪ (A ∩ (B ~ C)) =

= A ~ B ~ C.


 
  


Hosted by uCoz