Таблицы истинности
[предыдущая глава]  [оглавление]  [следующая глава]

Таблица истинности - это один из способов вычислений в формальной логике. Таблица позволяет определить истинность какого-нибудь сложного логического высказывания по истинности его фрагментов. К сожалению, не для всякого высказывания можно составить таблицу истинности (особено вне булевой алгебры), но, когда это возможно, это удобно.

Таблица истинности имеет примерно вот такой вид:

AB~(A & B)
falsefalsetrue
falsetruetrue
truefalsetrue
truetruefalse

В верхней строке указана истинность фрагментов высказывания в виде переменных A и B а также формула ~(A & B).

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

Если переменная 1, то сочетаний 2:
true
false

Если переменных 2, то сочетаний 4 (как в рассмотренном случае):
false, false
false, true
true, false
true, true

Если переменных 3, то сочетаний 8:
false, false, false
false, false, true
false, true, false
false, true, true
true, false, false
true, false, true
true, true, false
true, true, true

Добавление одной новой переменной увеличивает число сочетаний ровно в два раза. Общее число сочетаний равно 2N, где N - число переменных. Выписывать все возможные комбинации удобно по столбцам, начиная справа. В столбце, который соответствует последней переменной, true и false меняются каждую строку, в следующем столбце - в два раза реже (два раза false, два раза true), в следующем столбце - еще в два раза реже (четыре раза false, четыре раза true) и так далее. Можно начинать чередование не с false, а с true, такой вариант ничем не хуже. В принципе, строки в таблице истинности можно перечислять в любом порядке, но описанные выше способы - наиболее удобные.

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

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

Пусть, например, мы каким-то образом выяснили, что A = true и B = false. Ищем в таблице строку, которая начинается с сочетания true,false. Это - четвертая строка (выделена желтым цветом). В самом правом столбце видим результат - true. Это - истинность, вычисленная по формуле ~(A & B).

Теперь рассмотрим какую-нибудь интерпретацию для этих вычислений.

Пусть есть два фрагмента текста: "Саша - женщина" и "Саша - чукча". Имя "Саша" может прнадлежать как женщине, так и девушке, девочке или мужчине. Только в первом случае утверждение будет истинным, иначе - ложным. Получается, первый фрагмент текста может быть либо истинным, либо ложным, как и положено булевому высказыванию.

Рассмотрим второй фрагмент. Имя "Саша" в ходу у разных национальностей. Тут нам надо избежать споров на тему: а насколько чистокровная чукча та Саша, чтобы называть ее чукчей. Мы будем считать чукчами всех, у кого есть отец, который в данный момент жив и считает себя чукчей, и мать, которая тоже в данный момент жива и считает себя чукчей. Такой критерий оставляет нам только два варианта: либо истина, либо ложь, так что второй фрагмент, понимаемый таким образом,- тоже высказывание. Пусть далее мы каким-то способом выяснили, что Саша, о которой шла речь,- действительно женщина, но не чукча, а украинка.

Первый фрагмент: "Саша - женщина". Обозначим его истинность переменной A. Мы выяснили, что

A = Tr("Саша - женщина") = true,

Второй фрагмент: "Саша - чукча". Его истинность обозначим переменной B. Мы выяснили, что:

B = Tr("Саша - чукча") = false.

Дальше, как объяснялось выше, ищем в таблице нужную строку и выясняем, что по формуле ~(A & B) получается true. Теперь остается понять: это самое true к чему относится? В одном из вариантов интерпретации можно сказать, что это true будет истинностью фразы "Неправда, что Саша - женщина и чукча".

Я специально рассказываю так подробно, поскольку таблицами истинности мы будем пользоваться еще не раз. Теперь перейдем к изучению конкретных операций (и их таблиц истинности).

Вопросы и задания для самостоятельной работы

  1. Что отображается в верхней правой ячейке таблицы истинности?
  2. Что отображается в самом правом столбце таблицы истинности, не считая самой верхней ячейки?
  3. Сколько строк будет в таблице истинности, если в ней 4 столбца (считая и столбец с результатами вычислений)?
  4. Что отображается в верхней строке таблицы истинности (не считая крайней правой ячейки)?
  5. Если в таблице истинности вообще нет ни одной переменной, сколько в ней будет строк и столбцов?