Часть первая - Камышинский технологический институт

advertisement
В. В. Сургутанов, О. О. Привалов
МАТЕМАТИЧЕСКАЯ
ЛОГИКА И
ТЕОРИЯ АЛГОРИТМОВ
ЧАСТЬ I
0101010101010101010101010101010101010101010101011010101010
1
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«ВОЛГОГРАДСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
КАМЫШИНСКИЙ ТЕХНОЛОГИЧЕСКИЙ ИНСТИТУТ (ФИЛИАЛ)
ГОУ ВПО «ВОЛГОГРАДСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
В. В. Сургутанов, О. О. Привалов
Математическая логика и теория алгоритмов
Часть I
Учебное пособие
Волгоград
2009
1
УДК 510.6(075.8)
С 90
Рецензенты: доктор технических наук, доцент, профессор кафедры
«Системотехника» Саратовского государственного технического университета Н. П. Митяшин; коллектив кафедры «Программное обеспечение
вычислительной техники и автоматизированных систем» СГТУ
Сургутанов, В. В. МАТЕМАТИЧЕСКАЯ ЛОГИКА И ТЕОРИЯ АЛГОРИТМОВ:
учеб. пособие. Часть I / В. В. Сургутанов, О. О. Привалов; ВолгГТУ, Волгоград, 2009. – 72 с.
ISBN 978-5-9948-0350-9
Содержит лекционный материал, материал для практических занятий, методические указания по решению типовых задач, а также варианты заданий для семестровых работ.
Предназначено студентам технических вузов (направление обучения
«Информатика и вычислительная техника»).
Ил. 12.
Табл. 14.
Библиогр.: 7 назв.
Печатается по решению редакционно-издательского совета
Волгоградского государственного технического университета

ISBN 978-5-9948-0350-9
2
Волгоградский
государственный
технический
университет, 2009
СОДЕРЖАНИЕ
ВВЕДЕНИЕ ..................................................................................................... 4
1. ЛОГИКА ВЫСКАЗЫВАНИЙ ................................................................... 5
1.1. Функции алгебры логики высказываний ........................................... 5
1.2. Свойства булевых операций и СДНФ ................................................ 9
1.3. Методика решения типовых задач.................................................... 16
1.4. Задачи для самостоятельного решения ............................................ 19
1.5. Применение БА к теории множеств ................................................. 20
1.6. Минимизация функций алгебры логики .......................................... 20
1.7. Анализ и синтез систем дискретного действия ............................... 23
1.8. Методика решения типовых задач.................................................... 25
1.9. Задачи для самостоятельного решения ............................................ 32
1.10. Содержательное исчисление высказываний....................................34
2. ФОРМАЛЬНЫЕ СИСТЕМЫ ................................................................... 38
2.1. Метатеория формальных систем ...................................................... 38
2.2. Формальное исчисление высказываний (ФИВ)............................... 41
2.3. Автоматическое доказательство теорем .......................................... 45
2.4. Методика решения типовых задач.................................................... 49
2.5. Задачи для самостоятельного решения ............................................ 53
3. ВАРИАНТЫ ЗАДАНИЙ СЕМЕСТРОВЫХ РАБОТ ............................. 56
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ .................................................................... 69
СПИСОК ИСПОЛЬЗУЕМЫХ СОКРАЩЕНИЙ ........................................ 70
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ ..................................... 71
3
ВВЕДЕНИЕ
Данное учебное пособие предназначено для использования в учебном процессе при изучении дисциплины «Математическая логика и теория алгоритмов».
Изложение в основной части пособия ведется по следующему принципу. Сначала приводится лекционный материал, охватывающий определенную тему или набор тем. Затем, в разделе «Методика решения типовых задач», даются примеры задач для данного набора тем и излагается
методика их решения. После чего следует раздел «Задачи для самостоятельного решения», материалы которого можно использовать на практических занятиях. Данный раздел содержит задачи, решения которых не
требуют большого объема вычислений, но, тем не менее, позволяют
освоить технологию и приобрести практические навыки решения задач.
После основной части пособия в отдельной главе приводятся типовые задачи, требующие большого объема вычислений, поэтому рекомендуются
для самостоятельной проработки во внеаудиторное время.
Пособие состоит из двух частей. Первая часть «Исчисление высказываний», вторая – «Исчисление предикатов и теория алгоритмов». Первая часть состоит из двух глав: «Логика высказываний» и «Формальные
системы». Вторая часть пособия содержит следующие главы: «Логика
предикатов», «Альтернативные логики», «Алгоритмические модели» и
«Теория сложности». Таким образом, первая часть является более простой в изучении: читатель осваивает единственный формальный язык,
алфавит которого составляют элементарные высказывания. Вторая часть
пособия раскрывает более широкий спектр теорий. Приводимые же задачи покрывают его частично. Излагаемый во второй части материал актуален при освоении других специальных дисциплин: «Технологии программирования», «Базы данных», «Системы искусственного интеллекта».
Изучение пособия не требует практически никакой предварительной
подготовки и специальных базовых знаний.
4
1.
ЛОГИКА ВЫСКАЗЫВАНИЙ
1.1. Функции алгебры логики высказываний
1.1.1. Высказывание. Под высказыванием понимается утвердительное предложение, которое может быть либо истинным, либо ложным, но
не то и другое одновременно. Ниже приведены примеры высказываний:
 x: «земля круглая»,
 y4: «плотность воды составляет 0,5 т/м3»,
 z: «идет дождь».
Высказывание несет в себе смысловую нагрузку, и в зависимости от
ситуации высказыванию может быть присвоена различная оценка, касающаяся наличия или отсутствия в нем смысла.
Если высказывание обладает смыслом, то ему приписывают одну из
следующих эквивалентных оценок: «истина», «И», «true» или число 1.
В противном случае полагают, что высказывание лишено смысла и
может быть оценено как «ложь», «Л», «false» или числом 0.
Оценку, присваиваемую высказыванию, называют истинностным
значением высказывания. Таким образом, высказывание представляется
как неделимый, целостный объект, все свойства которого однозначно
определены его истинностным значением.
Так для высказываний, приведенных выше, истинностное значение
высказывания x – «истина», y4 – «ложь», а для высказывания z в дождливую погоду истинностное значение 1, а в солнечную погоду – 0.
1.1.2. Логика высказываний и формулы. В естественном языке высказывания связываются в цепочки – составные высказывания. Оценив
смысл цепочки целиком, ей также можно поставить в соответствие истинностное значение. Записав цепочки высказываний на формальном
(абстрактном, математическом) языке, набором правил (алгеброй) можно
производить семантический (смысловой) анализ таких цепочек. Например, оценивать их истинностное значение на основе оценок элементарных высказываний, входящих в цепочки.
Такой смысловой анализ предоставляет аппарат логики высказываний (ЛВ), в ней цепочка высказывания воспринимается как логическая
функция, значение которой есть истинностное значение всей цепочки, а аргументами являются элементарные высказывания, составляющие цепочку.
На языке ЛВ эти функции представляются в виде формул. Любая формула
записывается на формальном языке. Определим составляющие формального языка логики высказываний: алфавит, синтаксис и семантику.
1.1.3. Алфавит языка ЛВ. Алфавит ЛВ (используемые в формулах
знаки, символы) включает в себя следующие объекты:
1. Атомы – символы, используемые для обозначения высказываний.
x, yi, z – аналог идентификаторов имен переменных, в данном случае переменные двоичные, принимающие значения 0 или 1.
5
2. Разделители – круглые скобки, обеспечивающие однозначность
понимания формулы, верный порядок её прочтения, приоритет высказываний в ней.
3. Логические связки – специальные символы, предназначенные для
создания составных высказываний. Эти символы несут в себе информацию о структуре составного высказывания. В естественной речи такая
структура проявляется в использовании союзов «и», «или» и. т. д. Остановимся на логических связках более подробно.
1.1.4. Функции алгебры логики. Логическая связка n высказываний,
есть двоичная логическая функция над двоичными аргументами – высказываниями в связке. Применение различных функций к одному и тому же
набору аргументов ведет к разным результатам. Всякая логическая функция может быть представлена в виде таблицы истинности, в левой части
которой перечислены все 2n наборов истинностных значений переменных
(аргументов), а в правой части – значение функции на каждом из наборов
значений аргументов.
1.1.5. Унарные логические операции (функции). Если n = 1, имеем
функции одного аргумента, так называемые унарные логические операции
(логическая связка для одного элементарного высказывания). Табл. 1 иллюстрирует все возможные различные функции одного высказывания.
Таблица 1
Логические функции одного аргумента
x
0
1
Л
0
0
f
0
1

1
0
И
1
1
Функции Л и И не являются функциями, не зависят от аргумента,
это константы 0 и 1, функция f(x) = x, несущественна, так как она никак
не отражается на структуре высказывания. Знак «» – так называемая
функция НЕ, есть унарная операция, называемая отрицание и обозначаемая x, x0 или x .
Итак, существует единственная унарная логическая операция над высказыванием, в естественном языке выражаемая частицей «НЕ». При этом
применение данной операции к высказыванию создает цепочку, истинностное значение которой обратно значению элементарного высказывания.
1.1.6. Бинарные логические операции. Если n = 2, имеем цепочку из
двух высказываний. Ее структура формирует взаимосвязь между высказываниями, составляющими цепочку. Логические связки двух высказываний есть бинарные логические операции. Табл. 2 иллюстрирует все 16
возможных вариантов функций двух переменных для элементарных высказываний x1 и x2. Каждая функция применяется к набору из двух значений аргументов. Всего таких наборов 22. Читателю рекомендуется
6
определить размерность таблицы при произвольном значении n.
Таблица 2
Логические функции двух аргументов
x1
0
0
1
1
x2
0
1
0
1
Л 
0
0
0
0
0
0
0
1
f1
0
0
1
0
f2
0
0
1
1
f3
0
1
0
0
f4  
0 0 0
1 1 1
0 1 1
1 0 1

1
0
0
0

1
0
0
1
f5
1
0
1
0
f6
1
0
1
1
f7
1
1
0
0
 
1
1
1
1
0
1
1
0
И
1
1
1
1
1. Функция «» – операция конъюнкция, цепочки такой структуры
обозначают x1 & x2, x1  x2, x1  x2, x1x2. В естественном языке аналог связки союз «и»: цепочка истинна, когда оба высказывания в цепочке истинны.
2. Функция «» – операция дизъюнкция, обозначается x1 + x2, x1  x2.
В естественном языке аналог связки союз «или»: цепочка истинна, когда
хотя бы одно из высказываний истинно.
3. Функция «» – операция сложение по модулю 2 (исключающее
или), инфиксная запись функции x1  x2, x1  x2. Цепочка истинна только
при различии в значениях аргументов. В естественном языке аналог связки – повторяющийся союз «либо, либо».
4. Функция «» – операция импликация, обозначается x1  x2, x1 
x2. Читается «если, … то …». Следование из истины лжи – ложно.
5. Функция «» – операция эквиваленция, обозначается x1  x2.
Функция принимает значение 1 только при одинаковых значениях аргументов.
6. Функция «» – операция стрелка Пирса, обозначается x1  x2.
7. Функция «» – операция штрих Шеффера, обозначается x1  x2.
8. Функции Л и И – логические константы 0 и 1 соответственно.
Оставшиеся 7 функций не имеют названий и легко выражаются через перечисленные 8 операций. Читателю предлагается самостоятельно
отыскать аналоги функций в естественном языке.
Вернемся к описанию языка логики высказываний. Итак, алфавит
языка ЛВ – это атомы и разделители, а также логические связки: отрицание, конъюнкция, дизъюнкция, импликация, эквиваленция, сложение по
модулю два, стрелка Пирса, штрих Шеффера. Эти операции реализуют
алгебру двоичной логики.
1.1.7. Синтаксис языка ЛВ. Используя описанный выше алфавит,
строят, так называемые, правильно построенные формулы (ППФ). Конкретные ППФ реализуют формальную запись цепочки высказываний
естественного языка. Следующее рекурсивное определение ППФ описывает все допустимые конструкции языка:
1. Все атомы есть ППФ.
2. Если x и y ППФ, то x  y, x  y, x  y, x  y, x  y, x  y, x  y,  x,
(x) есть ППФ.
7
3. Нет других способов построения ППФ.
Традиционно связкам приписывают ранг (приоритет), то есть силу,
определяющую порядок выполнения операций в формуле, при отсутствии скобок (разделителей). Читателю предлагается самостоятельно
определить ранг каждой операции. Для этого необходимо составить на
естественном языке конструкции вида x1 * x2 * x3, где * – произвольные
операции. Затем следует определить, в каком порядке нужно применять
их к высказываниям x1, x2, x3, чтобы не исказить смысл цепочки целиком.
Кроме операций, в формуле могут явно присутствовать константы 1
или 0, такая формула не является ППФ и называется полиномом двоичной
алгебры логики.
1.1.8. Способы задания функций. Последовательно применяя алгебру
логики к значениям аргументов функции (вычисляя значения функций и
подставляя их в формулы), получают истинностное значение любой сложной функции для данного набора аргументов. Функция соответствует составному высказыванию естественного языка и задается двумя способами:
1. Записью полинома двоичной алгебры, или ППФ.
2. Таблицей истинности.
Выше уже были построены таблицы истинности для всех функций
одной и двух логических переменных. Если же переменных больше двух,
то для формирования таблицы истинности необходимо рассмотреть все
2n возможных наборов значений переменных и для каждого из них вписать в таблицу истинности значение функции на данном наборе.
Формула может также описывать цепочку высказываний, состоящую
более чем из двух (n > 2) элементарных высказываний. Такая формула
образуется набором элементарных унарных и бинарных логических операций над n двоичными переменными. В этом случае по известной формуле, значение сложного высказывания вычисляют, последовательно
применяя операции алгебры логики.
Отдельно взятый набор истинностных значений двоичных переменных называют интерпретацией.
Читателю предлагается самостоятельно определить преимущества
формульного задания перед табличным.
В качестве примера запишем формулу для функции, реализуемой
цепочкой высказываний: «если осенью или весной на улице холодно, то
человек гуляет в том и только том случае, когда нет дождя»:
x1  x2   y  z  x ,
где x1 – «осень», x2 – «весна», y – «на улице холодно», z – «человек
гуляет», x – «дождь есть».
1.1.9. Булева алгебра. Алгебра логики, основным множеством которой является все множество логических функций, а операциями конъ8
юнкция, дизъюнкция и отрицание, называется булевой алгеброй (БА) логических функций. Операции БА называют булевыми операциями.
1.2. Свойства булевых операций и СДНФ
1.2.1. Необходимость минимизации булевых функций. На практике
системам искусственного интеллекта требуется оценивать лживость или
истинность составных высказываний. Бывает, что эти высказывания составлены неэкономично, например: «я слушаю лекции осенью, зимой и
весной». Используя основные законы логического мышления, это составное высказывание можно переписать: «я не слушаю лекции только летом».
Впоследствии будут даны методы компактного описания логических
функций, то есть их минимизации. Возможность минимизации обусловлена тем, что количество возможных функций для заданного числа аргументов n ограничено как 4n. Так, если аргумента 2, то функций всего 16, и
как бы ни была сложна формула, описывающая функцию 2-х переменных, она сводится к одной из 16-и возможных элементарных функций,
описанных в табл. 2.
1.2.2. Разложение ФАЛ по переменным. Прежде чем изучать минимизацию, необходимо усвоить приемы стандартизации описания функций. Следующая теорема позволяет получить способ единообразной записи функций алгебры логики (ФАЛ).
Пусть x1 = x, а x0 = x , тогда 01 = 0, 00 = 1, и 11 = 1, 10 = 0. Или xx = 1,
иначе 0.
Теорема 1.1. Для всякой логической функции f(x1, … xn) справедливо
следующее:
f ( x1 , ... xm , xm1 , ... xn )   x1a1 ... xmam  f (a1 , ... a m , xm1 , ... xn ), (1.1)
a1 , ... am
где m  n, а дизъюнкция берется по всем 2m интерпретациям первых m
переменных. Это равенство называется разложением по переменным
x1, … xm. Например, при n = 4, m = 2 разложение (1.1) имеет вид:
f(x1, x2, x3, x4) = x10  x20  f(0, 0, x3, x4) + x10  x21  f(0, 1, x3, x4) +
+ x11  x20  f(1, 0, x3, x4) + x11  x21  f(1, 1, x3, x4).
Теорема доказывается подстановкой в обе части равенства (1.1) произвольного набора (1, … m, m+1, ... n) значений всех переменных. Так
как  iai , только если i = ai, то среди 2m наборов конъюнкций обнаружится лишь один набор, при котором для всех i будет i = ai. Эта конъюнкция обратится в единицу, а все остальные конъюнкции будут иметь хотя
бы одну константу 0 и станут ложными. Таким образом:

f (1, ...  n )  0  ...  0  1 1  f (1, ...  n )  0  ...  0  1 f (1, ...  n )  f (1, ...  n )
Теорема доказана.
9
Разложение по переменным позволяет заменять в функции переменные на константы, вынося соответствующие переменные влево от функций. В приведенном примере разложения удалось функцию 4-х переменных разложить в выражение, в котором функция зависит лишь от двух
переменных.
1.2.3. Свойства разложения по переменным. При m = 1 получаем
разложение функции по одной переменной:
(1.2)
f ( x1 , ... xn )  x1  f (0, x2 , ... xn )  x1  f (1, x2 , ... xn ).
Другой важный случай: m = n. При этом все переменные в правой
части (1.1) получают фиксированные значения. Функции в правой части
превращаются в константы 0 или 1 и вступают в конъюнкцию со всеми
переменными. Например, при m = 2 имеем:
f ( x1 , x2 )  x10  x20  f (0, 0)  x10  x12  f (0, 1)  x11  x20  f (1, 0)  x11  x12  f (1, 1).
Вычислив истинностное значение функции во всех четырех различных интерпретациях, необходимо подставить эти значения в формулу.
Пусть, например, f(0, 1) = 0, f(0, 0) = 1, f(1, 0) = 1, f(1, 1) = 0, тогда
f(x1, x2) = x10  x20 + x11  x20. Или компактно: f ( x1 , x2 )  x1 x2  x1 x2 . Легко
заметить, что полученное выражение для функции лежит в области булевой алгебры, так как содержит лишь булевы операции.
В общем виде свойство разложения по всем переменным имеет вид:
(1.3)
f ( x1 , ... xm ) 
x11 ... xm m ,

f (1 , ...  m )  1
то есть каждая дизъюнкция соответствует набору переменных, обращающему исходную функцию в 1.
Правую часть (1.3) называют совершенной дизъюнктивной нормальной формой (СДНФ). Любой ФАЛ ставится в соответствие единственная
СДНФ. Это позволяет говорить о СДНФ как о стандартной форме записи
ФАЛ в виде функции БА специального вида.
В дальнейшем будет показано, как производить перевод любой
функции в СДНФ.
Для получения СДНФ согласно (1.3) требуется информация о наборах, в которых функция обращается в 1. Такая информация есть в таблице истинности. Но известно также, что ФАЛ имеет два способа представления: в виде таблицы истинности и в виде формулы, полинома двоичной
алгебры логики. Если имеется не таблица истинности, а полином, то
можно получить СДНФ, используя только его. Для этого формулу поэтапно видоизменяют, не меняя ее смысла, и постепенно приводят в
форму СДНФ.
1.2.4. Полнота булевой алгебры. (1.3) приводит к важному выводу.
Теорема 1.2. БА, использующая 3 операции: конъюнкцию, дизъюнк10
цию и отрицание – является полной.
Таким образом, 3-х операций достаточно для выражения через них
любой ФАЛ и формализации любого словесного высказывания.
Для доказательства достаточно взглянуть на (1.3), здесь видно, что
любая функция (слева) может быть представлена комбинацией 3-х операций (справа). (1.3) не описывает лишь одну функцию: в этой функции
нет ни одного набора, обращающего ее в 1. Эта функция – константа 0.
Но нетрудно показать, что 0  xx . Теорема доказана.
1.2.5. Переход в булеву алгебру. Чтобы получить СДНФ из ППФ,
сначала необходимо осуществить переход в БА. Ведь в СДНФ присутствуют лишь три операции. Сложные высказывания реальной речи не
ограничены союзами «И», «ИЛИ» и частицей «НЕ». Составные высказывания формируются с использованием всех операций из табл. 2.
Выяснив полноту БА, мы можем быть уверены, что любая логическая
функция, в том числе любая бинарная логическая операция, выражается
через «И», «ИЛИ» и «НЕ». Следующие два соотношения интерпретируют
операции эквивалентности и импликации. Используя табл. 2, читатель легко докажет их проверкой на всех возможных интерпретациях атомов.
(1.4)
x  y  ( x  y)  ( y  x) ,
(1.5)
x  y  x  y.
Читателю рекомендуется завести таблицу равенств, выполняющих
перевод любой операции из табл. 2 в операции БА.
1.2.6. Свойства булевых операций. Булевы операции обладают некоторыми свойствами, проверить которые можно, строя таблицы истинности для выражений, стоящих в равенствах слева и справа, или логическими рассуждениями, исходя из идентичности смысла выражений справа и слева:
1. Ассоциативность:
(1.6)
x1  ( x2  x3 )  ( x1  x2 )  x3 ; x1  ( x2  x3 )  ( x1  x2 )  x3 .
2. Коммутативность:
(1.7)
x1  x2  x2  x1 ; x1  x2  x2  x1.
3. Идемпотентность:
(1.8)
x  x  x; x  x  x.
4. Дистрибутивность:
x1  ( x2  x3 )  ( x1  x2 )  ( x1  x3 ) ; x1  ( x2  x3 )  x1  x2  x1  x3 . (1.9)
Читателю рекомендуется проверить, выполняются ли подобные
свойства для других операций табл. 2.
5. Закон двойного отрицания:
(1.10)
x  x.
11
6. Правила де Моргана:
(1.11)
x1  x2  x1  x2 ; x1  x2  x1  x2
7. Закон противоречия:
(1.12)
x x  0
8. Закон исключения третьего:
(1.13)
x  x 1
9. Свойства констант:
(1.14)
x 1  x ; x  0  0 ; x  1  1 ; x  0  x ; 0  1 ; 1  0
Для получения СДНФ необходимо после перехода в БА использовать свойства 1–9 для дальнейшего преобразования формулы.
1.2.7. Эквивалентные преобразования, правила замены и подстановки. Итак, соотношения (1.4)–(1.14) позволяют, встречая в формуле левые
части, заменять их правыми (эквивалентными), что упрощает формулы.
Имеет место правило замены, когда в формуле какую-либо ее часть меняют на эквивалентную ей, если их эквивалентность предварительно выяснена. Эквивалентность двух формул означает доказанность равенства,
в котором формулы занимают левую и правую части. Эквивалентные
преобразования есть изменение вида функции по правилу замены, при
этом смысл формулы остается прежним.
Для осуществления замены необходимы равенства (1.4)–(1.14), так
называемые эквивалентности. Они были получены спонтанно, с помощью логических рассуждений и по аналогии с арифметикой. Однако существует возможность получать подобные соотношения другими способами, что позволяет увеличить их количество и применять чаще для
упрощения формул.
Новые эквивалентности получают по правилу подстановки. Для этого в известной эквивалентности, записанной в виде равенства, выбирают
некоторую часть и затем заменяют все ее вхождения в равенстве другой
формулой, пусть не эквивалентной данной. Хотя в отдельности левые
(как и правые) части исходной и полученной формулы неэквивалентны,
но равенство левой и правой части получаемой формулы сохраняется.
Например, если в (1.14) подставить xyz вместо x, то получится новая
эквивалентность xyz  1 = xyz.
1.2.8. Упрощение формул. Правило замены позволяет производить
упрощение формул, то есть получение формул, содержащих меньшее
число символов. Для упрощения полезно использовать следующие соотношения:
1. Поглощение:
x  x  y  x ; x  ( x  y)  x .
(1.15)
Доказательство 1-го: x  x  y  x 1  x  y  x  (1  y)  x 1  x , 2-го:
x  ( x  y)  x  x  x  y  x  x  y  x .
12
2. Склеивание:
(1.16)
y x  y x  y .
Доказательство: y  x  y  x  y  ( x  x )  y 1  y .
3. Обобщенное склеивание:
(1.17)
z x  y x  z y  z x  y x .
Забегая вперед, необходимо отметить, что упрощение это и есть минимизация функций.
1.2.9. Приведение к СДНФ. Рассматривая свойства разложения по
всем переменным, было сказано, что существует способ перевода любой
функции в СДНФ.
Анализируя (1.3), приходим к алгоритму получения СДНФ по таблице истинности. Выбираем из таблицы все единицы. Каждая интерпретация, дающая единицу, образует в СДНФ элементарную конъюнкцию всех
переменных. Атом в конъюнкции берется с отрицанием, если в интерпретации значение этого атома равно нулю, и без отрицания, если его значение равно единице.
Ниже приведен пример получения СДНФ для функции эквиваленции () из табл. 2. У функции две единицы. Значит в СДНФ будет две
конъюнкции аргументов функции (два слагаемых разложения). Единицу
дают два набора аргументов: набор 0,0 и набор 1,1. Поэтому элементарные конъюнкции СДНФ имеют вид: x1  x2 и x1  x2 . И окончательно:
x1  x2  x1 x2  x1 x2 .
Если же таблицы истинности нет, а есть лишь формула, представляющая функцию, то применим второй, символьный вариант. Он основывается на полученных выше эквивалентностях.
Шаги формального алгоритма приведения ППФ к СДНФ:
1. Применяя (1.4), (1.5) и подобные соотношения, переходим к БА
трех операций.
2. Используя правила де Моргана и закон двойного отрицания,
«спускаем» все отрицания до атомов.
3. Ассоциативностью, коммутативностью и дистрибутивностью избавляемся от разделителей – скобок.
4. С помощью идемпотентности, закона противоречия, исключения
третьего, склеивания и поглощения упрощаем формулу.
5. По свойствам констант избавляемся от них.
В результате имеем ДНФ: дизъюнктивную нормальную форму. ДНФ
– дизъюнкция элементарных конъюнкций. Элементарные конъюнкции –
конъюнкции атомов и отрицаний атомов, в которых один атом встречается не более одного раза. Например, yxz – элементарная конъюнкция, в
отличие от xyx .
13
ДНФ – это краткая форма записи СДНФ, упрощенная склеиванием и
поглощением.
Используя соотношение склеивания «справа налево» приходят к
СДНФ.
1.2.10. Пример приведения к СДНФ. Получим СДНФ для следующей ППФ:
x  yz   xz.
1. Перейдем в БА:
x  yz   xz  ( x  yz )( yz  x )  xz  ( x  yz )( yz  x )  xz.
2. «Спустим» отрицания до атомов:
( x  yz )( yz  x )  xz  ( x  yz )( y  z  x )  xz.
3. Избавимся от разделителей:
( x  yz )( y  z  x )  xz  xy  xz  xx  yzy  yzz  yzx  xz.
4. Упростим формулу:
xy  xz  xx  yzy  yzz  yzx  xz  xy  xz  0  0  0  yzx  xz .
5. Избавившись от констант, окончательно имеем:
x  yz   xz  xy  xz  xyz  xz.
Получена ДНФ. Для получения СДНФ необходимо «расклеить» первое, второе и четвертое слагаемые, а затем удалить повторяющиеся
конъюнкции.
xy  xz  xyz  xz  xyz  xyz  xyz  xyz  xyz  xyz  xyz 
 xyz  xyz  xyz  xyz  xyz.
СДНФ получена. Читателю рекомендуется проверить правильность
по таблице истинности.
1.2.11. Приведение к СКНФ. Аналогично ДНФ определяется конъюнктивная нормальная форма (КНФ), как конъюнкция элементарных
дизъюнкций (дизъюнктов). От ДНФ к КНФ легко перейти следующим
образом.
Пусть ДНФ имеет вид: f  k1  ...  kn , где k1 , ... kn – элементарные
конъюнкции. Возьмем двойное отрицание от f.
f  k1  ...  k n  k1 ... k n  l1  ...  lm ,
где l1 , ... lm – элементарные конъюнкции для отрицания формулы f, полу

чены перемножением k 1 , ... k n .
f  l1  ...  lm  l 1 ... l m ,
по закону де Моргана. Причем, так как l1 , ... lm – элементарные конъюнкции, то l 1  ...  l m являются дизъюнктами. Они вступают в конъюнкцию
друг с другом, образуя КНФ.
14
Получение СКНФ можно произвести по таблице истинности. Для
этого поэтапно проделаем на таблице то же, что и в символьном методе.
l1 , ... lm образуют СДНФ для функции f , а значит это интерпретации, дающие f  1 Эти интерпретации наблюдаются в строках, где f  0.
СКНФ кодирует собой отрицание данных интерпретаций: l 1 ... l m . Отрицание интерпретации означает, что хотя бы один ее атом принял значение, не равное его значению в интерпретации. Такая формулировка соответствует дизъюнкции отрицаний атомов интерпретации. То есть, если
в интерпретации значение переменной равно 1, то в дизъюнкте данная
переменная с отрицанием, иначе без отрицания.
1.2.12. Пример приведения к СКНФ. Приведем к СКНФ функцию
эквиваленции из табл. 2.
1. Необходимо найти варианты, при которых функция «» обращается в ноль. Таких вариантов два: 0,1 и 1,0.
2. Функция равна 1, если не выполнены одновременно оба варианта.
Необходимо описать их одновременное опровержение:
f = СКНФ = (опровержение x1 x2 ) & (опровержение x1 x2 ). Опровержение
x1 x2 выглядит так: x1  x2 . Опровержение x1 x2 выглядит так: x1  x2 .
В конечном итоге имеем СКНФ: x1  x2  x1  x2  x1  x2  .
Аналогично СДНФ для получения СКНФ можно применить и формальный вариант.
СДНФ операции эквиваленции выглядит так:
f  x1 x2  x1 x2 .
Первое применение закона де Моргана дает:
f  x1 x2  x1 x2  x1 x2  x1 x2  x1  x2   x1  x2   x1  x2   x1  x2  
 x1 x1  x1 x2  x2 x1  x2 x2  0  x1 x2  x2 x1  0  x1 x2  x1 x2 .
Второе применение закона де Моргана дает:



СКНФ  f  x1 x2  x1 x2  x1 x2  x1 x2  x1  x2  x1  x2  x1  x2   x1  x2  ,
что совпадает с результатом, полученным по таблице истинности.
1.2.13. Доказательство эквивалентности формул. Итак, СДНФ и
СКНФ – это стандартные формы записи ФАЛ. Более того, взаимооднозначность функции с ее СДНФ используется при доказательстве эквивалентности двух функций (формул). Последовательно приведя две формулы к СДНФ, делают вывод об их эквивалентности, если СДНФ обоих
совпадают.
1.2.14. Создание эквивалентных формул путем приведения к СДНФ.
Теорема 1.3. Для любых двух эквивалентных формул F1 и F2 существует
эквивалентное преобразование F1 в F2 с помощью соотношений (1.4)–(1.17).
15
Доказательство. Так как F1 и F2 эквивалентны, то их СДНФ совпадают. Читая соотношения (1.4)–(1.17) в обратную сторону, можно от
СДНФ F2 перейти к самой F2. Тогда из F1 перейдем к СДНФ, а от СДНФ
перейдем к F2. Получаемая таким образом цепочка преобразований показывает эквивалентность формул F1 и F2. Теорема доказана.
1.2.15. Двойственность. Как показала практика, эквивалентности
важны в работе с ФАЛ, поэтому не лишним будет описать еще один способ получения эквивалентностей. Это аппарат двойственных функций.
Функция
называется двойственной к функции
f1 ( x1 , ... xn )
f 2 ( x1 , ... xn ) , если f1 ( x1, ... xn ) = f 2 ( x1 , ... xn ). Это соотношение можно читать и в обратную сторону, взяв отрицание над обеими формулами и подставив вместо переменных их отрицания, получим: f1 ( x1 , ... xn ) =
f 2 ( x1 , ... xn ). Бывает, что функция двойственна сама себе, тогда она называется самодвойственной.
1.2.16. Принцип двойственности. Используя определение двойственности, нетрудно прямой выкладкой доказать принцип двойственности: если в формуле, представляющей функцию, все знаки функций заменить двойственными функциями, то полученная формула будет описывать функцию, двойственную исходной функции.
В БА конъюнкция двойственна дизъюнкции, единица – нулю, отрицание самодвойственно. Используя это, в БА получают новые эквивалентные соотношения. Заменив в левой части + на &, & на +, 1 на 0 и 0 на
1, получают двойственную к левой части формулу, затем проделывают то
же с правой частью и полученные формулы приравнивают. Два соотношения поглощения получены именно так.
1.3. Методика решения типовых задач
1.3.1. Формализация высказываний. Задача формализации высказывания – поставить в соответствие высказыванию формулу, отражающую
его внутреннюю структуру.
Для решения задачи формализации высказывания необходимо выделить в высказывании «атомы» – неделимые части, элементарные высказывания. Этим высказываниям наиболее просто сопоставить логический
смысл: «истина» или «ложь». В записи формулы, эквивалентной лингвистическому утверждению, элементарные высказывания соответствуют
атомам (именам переменных).
Рассмотрим пример: «Если огонь горит и дрова сухие, то сейчас
темно или холодно. Если же дрова не сухие, то неверно, что сейчас темно
или холодно, кроме того, если огонь не горит, то холодно. Из всего вышесказанного следует, что либо холодно и дрова сухие, либо сейчас темно и огонь горит». Выделим атомы: x – «огонь горит», y – «дрова сухие»,
z – «сейчас темно», h – «сейчас холодно».
16
После определения атомов необходимо восстановить структуру исходного высказывания при помощи логических связок. Основные конструкции языка, задающие структуру высказывания, представлены в табл.
3. Если в высказывании структура задается речевыми оборотами, не
представленными в табл. 3, необходимо попытаться свести их к табличным. Для этого сомнительный оборот заменяют известным (из табл. 3) и,
если структура и смысл высказывания сохраняются, то применяется замена оборота табличным.
Таблица 3
Сводные данные о логических операциях
Структура
высказывания
…и…
… или …
либо …, либо
…
Если …, то …
…тогда и
только тогда,
когда …
не …
истина
ложь
Связка
конъюнкция
дизъюнкция
исключающее или
импликация
эквивалентность
отрицание
константа истина
константа
ложь
ОбоТаблица истинности для связки
Ранг
значение
1
&, , 00 = 0
01 = 0
10 = 0
11 = 1
, 
00=0 01=1 10=1 11=1 4
00=0 01=1 10=1 11=0 3

, 

, 
1
00=1 01=1 10=0 11=1
00=1 01=0 10=0 11=1
0=1
1=0
2
3
0
0
Высказывание из примера состоит из 3-х предложений. Формализуем каждое из них в отдельности с учетом зафиксированных атомов:
1. «Если огонь горит и дрова сухие, то сейчас темно или холодно»:
x  y  ( z  h). Так как импликация относится к обоим атомам, z и h, их
необходимо отделить разделителями.
2. «Если же дрова не сухие, то неверно, что сейчас темно или холодно, кроме того, если огонь не горит, то холодно»: ( y  z  h)  ( x  h). Задача усложнилась появлением связки «кроме того», замена этой связки
конъюнкцией «и» не меняет смысла произносимого. Связка «и» является
одной из самых «сильных», поэтому требуются разделители, чтобы в
конъюнкцию вступали нужные части предложения. Кроме того, фраза
«неверно, что сейчас темно или холодно» может быть записана двумя эквивалентными способами:
1) замена «неверно, что» на «не»: z  h ,
2) замена «неверно» на «ложь» и «что» на «эквивалентно»: 0  ( z  h).
3. «Из всего вышесказанного следует, что, либо холодно и дрова сухие, либо сейчас темно и огонь горит»: h  y  z  x. Исключающее или
относится к парам атомов.
17
В итоге, провозгласив 1-ое и 2-ое предложения одновременно и допустив «следование из всего вышесказанного» 3-его предложения, получим формулу: 1-ое  2-ое  3-е или:
f ( x, y, z)  [ x  y  ( z  h)] [( y  z  h)  ( x  h)]  [h  y  z  x] .
Формализация завершена.
1.3.2. Получение высказывания по формуле. Существует и обратная формализации задача – задача сопоставления с формулой высказывания. Здесь имеется формула и необходимо, интерпретируя атомы как
лингвистические выражения, получить предложение (фразу), соответствующее имеющейся формуле.
Рассмотрим пример. Пусть имеется формула: x  x  ( x  y) .
Интерпретируя x – «дважды два четыре», y – «дважды два пять» и
учитывая интерпретацию логических связок (табл. 3), получим: «Если
дважды два четыре, то верно, что дважды два четыре и дважды два четыре или пять».
При выполнении данного задания главное – верно воспроизвести
структуру высказывания; совсем не обязательно, чтобы полученная фраза
имела смысл или была истинной.
1.3.3. Построение таблицы истинности. Таблица истинности – средство содержательного исчисления высказываний. Для ее построения слева по строкам перечисляют все возможные интерпретации атомов формулы. Правее находят значения промежуточных функций (операций), используя табл. 3, и, наконец, самый крайний правый столбец содержит истинностные значения формулы в разных интерпретациях.
Пусть, например, имеется следующая формульная запись функции:
f ( x, y, z )  ( x  y )  z  y   x  y .
Для удобства восприятия, учитывая приоритет выполнения операций, разобьем процесс вычисления значений функции на этапы.
f1 ( x, y )  x  y, f 2 ( x, y)  x  y,
f 3 ( f 2 , z )  f 2  z , f 4 ( f 3 , y)  f 3  y , f ( f 4 , f1 )  f 4  f1 .
Таблица 4
Построение таблицы истинности
x y z
y
f1  x  y
f2  x  y
z
f3  f 2  z
f4  f3  y
f
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
18
1.4. Задачи для самостоятельного решения
1. Пользуясь лекционным материалом, дать определения терминов:
1) высказывание,
18) бинарная логическая операция,
2) истинностное значение выска- 19) конъюнкция,
зывания,
20) дизъюнкция,
3) цепочки высказываний,
21) сложение по модулю 2,
4) семантический анализ,
22) инфиксная запись функции,
5) логика высказываний,
23) префиксная запись функции,
6) логическая функция,
24) импликация,
7) алфавит,
25) эквиваленция,
8) синтаксис,
26) алгебра двоичной логики,
9) семантика,
27) правильно построенная фор10) атом,
мула,
11) двоичная переменная,
28) рекурсивное определение,
12) разделитель,
29) ранг операции,
13) логическая связка,
30) полином двоичной алгебры ло14) логическая связка n высказы- гики,
ваний,
31) интерпретация,
15) таблица истинности,
32) булева алгебра,
16) унарная логическая операция,
33) совершенная дизъюнктивная
17) отрицание,
нормальная форма.
2. Построить таблицу истинности для следующих функций:
1) f ( x, y)  x  y  x ,
2) f ( x, y, z )  ( x  y)  xz  y ,
3) f ( x, y, p)  ( x  p)  ( x  p )  ( y  p).
3. Доказать эквивалентность x  y  xy  xy .
4. Осуществить разложение по переменным x и z для функций:
1) f ( x, y, z )  xy  z ,
2) f ( x, y, z)  ( x  y)  z .
5. Формализовать высказывание:
1) «Если прозвенел звонок, то в любом случае верно, что наступила
перемена, даже если преподаватель не отпускает студентов»;
2) «Утверждения, что земля круглая и луна квадратная, а курица
несет яйца, если тепло, равносильны» (самостоятельно).
6. Сопоставить с формулой высказывание:
x  ( y  xy ).
7. Ответить на следующие вопросы:
1) какая функция не имеет СДНФ?
2) какие формулы называются эквивалентными?
3) для чего нужны эквивалентные преобразования?
19
4) как исключить требуемую переменную из формулы, записанной
для некоторой функции?
5) зачем нужно изобретать эквивалентности?
6) как перевести произвольную операцию в булеву алгебру?
7) что необходимо делать, если фраза не соответствует описанию
ни одной логической связки?
1.5. Применение БА к теории множеств
1.5.1. Рассмотрим понятные практические возможности БА. Так
возможно использование булевых операций для реализации работы со
множествами в языках программирования высокого уровня (на примере
языка C).
Организуем в памяти вектор М из n  sizeof (long)  8 двоичных переменных:
long M;
Каждый бит переменной М отведем под один элемент множества.
Тогда мощность множества равна n.
Наличие конкретного элемента во множестве задается единицей в
соответствующем бите, отсутствие – нулем. Операции над множеством
осуществляются следующим образом:
1. Пустое множество задается командой:
M = 0.
При этом все биты M равны 0.
2. Объединение двух множеств M1 и М2 производится применением
к ним операции побитового «или». Это делает команда:
M = M1 | M2.
При этом в итоговом множестве элемент с индексом i будет отсутствовать, если в обоих исходных множествах в i-ом разряде записаны нули.
3. Пересечение множеств реализуют побитовой операцией «И» командой:
M = M1 & M2.
4. Дополнение множества реализуют, инвертируя биты командой:
M = ~ M1.
5. Вычитание множеств реализуют командой:
M = M1 & (~ M2).
6. Добавление i-го элемента во множество реализуют командой:
M = M | (1 << i).
Оператор << создает единицу в i-м бите временной переменной. А
затем побитовое «ИЛИ» прикрепляет единицу к исходному множеству M.
1.6. Минимизация функций алгебры логики
20
1.6.1. Сокращенная ДНФ. Вернемся к механизмам упрощения формул. В общем случае СДНФ не является эффективным средством хранения информации о высказываниях. Существует так называемая сокращенная (тупиковая) ДНФ, устраняющая данный недостаток.
Все дело в том, что СДНФ может хранить несущественную информацию. Пусть функция f ( x, y, z ) задана таблицей истинности 5.
Таблица 5
Таблица истинности функции, требующей упрощения
x
y
z
f
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
СДНФ функции будет иметь вид:
f ( x, y, z )  x yz  x yz  xyz  xyz .
Применяя склеивание, получим тупиковую ДНФ:
x yz  x yz  xyz  xyz  ( x y  x y ) z  ( xy  xy) z  x z  xz  z .
Выяснилось, что функция имела два несущественных аргумента x и y.
Тупиковая ДНФ не подлежит дальнейшей минимизации. Процесс
склеивания видится творческим, так как приходится гадать, какая переменная претендует на роль несущественной и будет склеена.
Существует ряд субъективных методов, позволяющих минимизировать функции. Одним из них является метод карт Карно. Он более алгоритмичен (приближен к реализации на ЭВМ), чем другие.
1.6.2. Метод карты Карно. В данном методе склеивание производят
по таблице истинности, предварительно исключив из нее интерпретации,
дающие нуль, так как эти интерпретации не участвуют в СДНФ. С учетом этого из табл. 5 получена табл. 6.
Таблица 6
Таблица истинности функции, требующей упрощения
X
Y
Z
F
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
Затем выполняется итеративный алгоритм:
1. Столбцы в таблице переставляют так, чтобы соседние столбцы
отличались на значение лишь в одной ячейке. При этом крайний левый и
правый столбцы считают соседними.
2. Столбцы с различиями в одной ячейке склеиваются в один, при
этом на месте различия ставим «+».
21
3. Если после «склейки» есть возможность составить соседние
столбцы с различиями лишь в одной ячейке, то необходимо вернуться к
пункту 1.
4. Иначе тупиковая ДНФ получена, остается записать ее в формальном виде. Для этого каждый столбец представляется в виде элементарной
конъюнкции, при этом единица соответствует переменной, ноль – отрицанию переменной, а «+» – ее отсутствию в элементарной конъюнкции.
Дизъюнкция полученных элементарных конъюнкций есть тупиковая
ДНФ.
Табл. 7 и 8 иллюстрируют работу метода над функцией из табл. 6.
Таблица 7
Первый этап склеивания
x
y
z
f
0
+
0
1
1
+
0
1
Таблица 8
Второй этап склеивания
x
y
z
f
+
+
0
1
Из табл. 8 следует, что тупиковая ДНФ единственна и равна f  z ,
тот же результат получен аналитически. Таблицы – карты Карно, используемые в алгоритме, позволяют удобно минимизировать функции,
если размерность задачи (число двоичных переменных) не более 6. При
большей размерности перебор сочетаний соседних столбцов велик.
1.6.3. Метод кубов. Метод кубов – графический метод минимизации
ФАЛ, наиболее субъективен и удобен для восприятия. Его использование
основано на том, что склеивание имеет наглядную графическую интерпретацию. Согласно методу кубов, каждой переменной соответствует координатная ось, на которой откладывается истинностное значение 0 или
1. Таким образом, три двоичные переменные образуют псевдопространство (псевдо – так как отметок на осях конечное число). Набор переменных, обращающих функцию в единицу, образует точку координатного
пространства (рис. 1).
22
Рис. 1. Минимизация по методу кубов
Если между двумя точками можно провести отрезок, параллельный
какой-либо оси, то для этих двух точек данная ось не существенна и переменная оси исключается из элементарной конъюнкции. Если же точки
удается соединить в квадрат, параллельный какой-либо координатной
плоскости, то исключаются сразу две оси, образующие с квадратом параллельную плоскость. На рис. 1 изображена функция, отличающаяся от
функции из табл. 5 лишь одной интерпретацией, дающей единицу: 1, 1, 1.
Эту функцию можно минимизировать по-разному. Можно записать уравнение плоскости f  z и присоединить точку xyz . Тогда тупиковая ДНФ
будет иметь вид z  xyz . С другой стороны, можно записать три уравнения прямых, склеив по одной переменной: xy , zx , zy , тогда получим
другую тупиковую ДНФ: xy  zx  zy . Таким образом, метод субъективен. Субъективизм устраняется, если найти все тупиковые ДНФ и выбрать ДНФ, содержащую наименьшее число символов. Такой подход реализован в методе Квайна.
На этом вопрос о методах минимизации исчерпан. Получено описание того, как формализовать составное высказывание, привести функцию
в нормальную форму и минимизировать ее, упрощая структуру составного высказывания. Полученные знания применяются при анализе и синтезе систем дискретного действия.
1.7. Анализ и синтез систем дискретного действия
1.7.1. Релейно-контактные схемы. Существует 2 вида систем:
1) непрерывные – такие, в которых все сигналы, передаваемые от
одного элемента системы другому, являются непрерывными функциями
времени;
2) дискретные – такие, в которых сигналы меняются дискретно
(скачкообразно).
Наиболее простыми дискретными системами являются такие, в которых сигнал принимает только два значения: 0 или 1. Это так называемые цифровые системы. Такая дискретизация наблюдается в релейноконтактных схемах (РКС).
23
Существуют 2 вида реле (переключателей): нормально-замкнутые
(рис. 2,а) и нормально-разомкнутые (рис. 2,б).
Реле можно рассматривать как логическую функцию. Аргументом
функции является переменная x, принимающая 2 значения: единица –
напряжение подано на катушку, ноль – напряжение на катушке отсутствует (рис. 3). Результатом функции f(x) также служат 2 значения: единица – выход замкнут, ноль – выход разомкнут.
Рис. 2. Понятие реле: а) нормально-замкнутое; б) нормально-разомкнутое
Рис. 3. Логическая интерпретация реле
1.7.2. Унарные операции в реле. Фактически реле реализуют унарные логические операции f ( x)  x и f ( x)  x. В электрических схемах
нормально-замкнутые реле x обозначают, как на рис. 4.
Рис. 4. Обозначение нормально-замкнутого реле в схеме
А нормально разомкнутые x – как на рис. 5.
Рис. 5. Обозначение нормально-замкнутого реле в схеме
1.7.3. Бинарные операции в реле. Различные соединения реле соответствуют бинарным операциям. Параллельное соединение дает дизъюнкцию (рис. 6,а). Если хотя бы одна катушка с током, то ток будет пропущен по цепи и лампочка будет светиться (имеем сигнал «1» на выходе).
Последовательное соединение реле соответствует конъюнкции (рис. 6,б).
24
Чтобы по цепи прошел ток, должны быть замкнуты оба реле. Импликация реализована на рис. 6,в.
a)
б)
в)
Рис. 6. Логика в реле: a) дизъюнкция; б) конъюнкция; в) импликация
Схемы, эквивалентные операциям алгебры логики, выполняются в
виде конструктивных (законченных) элементов и изображаются в РКС
так, как показано на рис. 7:
Рис. 7. Конструктивные элементы РКС (o на схемах означает отрицание входа или выхода)
Для работы с РКС преобразуют электрическую схему к схеме, содержащей только соединенные конструктивные элементы. При этом избегают зацикливания (выходы не должны попадать на входы).
1.7.4. Задачи анализа и синтеза РКС. Любая РКС, реализованная
конструктивными элементами, может рассматриваться как цепочка высказываний «истина» или «ложь» («контакт замкнут» или «разомкнут»).
Высказывания соединены посредством логических связок (конструктивных элементов). При этом полученному составному высказыванию можно присвоить истинностное значение «истина» или «ложь» («сигнал
есть», «сигнала нет»).
В реальных схемах актуальна задача минимизации схемы, ее упрощения путем использования эквивалентной схемы с меньшим количеством реле. Эта задача разбивается на два этапа: задачи анализа и синтеза.
Задача анализа схемы заключается в переводе схемы на формальный
язык ЛВ, то есть создание либо таблицы истинности, либо формулы, реализующей функцию схемы. Такая формула называется структурной
функцией схемы.
Обратная ей задача синтеза, заключается в создании схемы по имеющейся структурной функции. Получаемая схема называется схемой реализации функции.
1.7.5. Минимизация РКС. Последовательное применение к схеме
анализа, минимизации структурной функции и синтеза эквивалентной
схемы позволяет упрощать РКС и экономить на реле. Применение мето25
дов упрощения логических функций, рассмотренных ранее, адекватно
данной задаче.
1.8. Методика решения типовых задач
1.8.1. Получение эквивалентных соотношений с использованием
принципа двойственности. Для преобразований формул, с целью их
упрощения требуются эквивалентности. Применение принципа двойственности позволяет существенно увеличить их число. Согласно принципу двойственности, для получения новой эквивалентности в уже имеющейся эквивалентности нужно заменить все знаки функций на двойственные им. Если исходная формула состоит из булевых операций, то
для применения принципа двойственности достаточно заменить конъюнкцию на дизъюнкцию, дизъюнкцию на конъюнкцию, 0 на 1 и 1 на 0.
При этом необходимо помнить, что в итоге «владения» операций не
должны измениться (поэтому, возможно, понадобится расставлять дополнительные разделители).
Рассмотрим пример. Пусть имеется эквивалентность (доказанное равенство):
x  y  x  y  x  1.
Действительно:
x  y  x( y  y )  x 1.
Итак, применим принцип двойственности. Для этого заменим в выражении слева все функции двойственными:
x  y  x  y  ( x  y )  ( x  y ).
То же самое проделаем с правой частью эквивалентности:
x 1  x  0.
При объединении полученных результатов получается новое равенство:
( x  y )  ( x  y )  x  0.
Согласно принципу двойственности данное равенство верно.
Читателю в качестве упражнения предлагается самостоятельно доказать полученное равенство.
Итак, принцип двойственности – мощное средство получения новых
эквивалентностей.
1.8.2. Получение СДНФ и СКНФ функции по таблице истинности.
Для получения СДНФ необходима информация об интерпретациях таблицы истинности, дающих истинностное значение функции, равное единице. Каждая такая интерпретация дает одно слагаемое в СДНФ. При
этом слагаемое будет содержать произведения всех атомов. И, если в интерпретации значение атома равно нулю, то в соответствующем слагаемом над данным атомом ставят отрицание.
26
Рассмотрим пример функции:
f ( x, y, z )  ( x  y )  z  y  ( x  y ).
В табл. 4 приводится расчет таблицы истинности для этой функции.
Для построения СДНФ нам необходимы интерпретации, дающие значение функции, равное единице. Для функции из примера имеется три интерпретации, дающие значение функции, равное единице. Каждая из них
образует одно слагаемое в СДНФ. Таким образом, в СДНФ три слагаемых, являющихся конъюнкцией всех переменных: xyz + xyz + xyz.
В табл. 9 даются такие интерпретации.
Таблица 9
Интерпретации, участвующие в формировании СДНФ
x y z f
0
0
1
1
1
0
0
1
0
1
1
1
Теперь необходимо расставить отрицания над атомами, для которых
в таблице истинности, в соответствующей интерпретации, в значении
атома находится ноль. В итоге задача получения СДНФ решена:
f ( x, y, z )  x yz  x yz  xyz .
Для получения СКНФ необходима информация об интерпретациях
таблицы истинности, дающих истинностное значение функции, равное
нулю. Каждая такая интерпретация дает один сомножитель в СКНФ. При
этом сомножитель будет содержать дизъюнкцию всех атомов. И, если в
интерпретации значение атома равно единице, то в соответствующем
сомножителе над данным атомом ставят отрицание.
Для функции из примера имеется пять интерпретаций, дающих значение функции, равное нулю. Каждая из них образует один сомножитель
в СКНФ. Таким образом, в СКНФ пять сомножителей, являющихся
дизъюнкцией всех переменных:
(x + y + z) (x + y + z) (x + y + z) (x + y + z) (x + y + z).
В табл. 10 представлены интерпретации, дающие значение функции,
равное нулю.
Таблица 10
Интерпретации, участвующие в формировании СКНФ
x y z f
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
27
0
0
0
0
0
Теперь необходимо расставить отрицания над атомами, для которых
в таблице истинности, в соответствующей интерпретации, в значении
атома находится единица.
В итоге задача получения СКНФ решена:
f ( x, y, z )  ( x  y  z )( x  y  z )( x  y  z )( x  y  z )( x  y  z ).
1.8.3. Получение СДНФ и СКНФ формулы, с использованием эквивалентных преобразований. Стандартные формы можно получить и аналитически, не строя таблицу истинности. Делается это непосредственно
из записи формулы для функции. В лекционном материале представлен
алгоритм приведения к СДНФ.
1. Применяя (1.4), (1.5) и подобные соотношения, переходим к БА
трех операций.
2. Используя правила де Моргана и закон двойного отрицания,
«спускаем» все отрицания до атомов.
3. Ассоциативностью, коммутативностью и дистрибутивностью избавляемся от разделителей – скобок.
4. С помощью идемпотентности, закона противоречия, исключения
третьего, склеивания и поглощения упрощаем формулу.
5. По свойствам констант избавляемся от них.
6. «Расклеиваем» атомы при необходимости.
Ниже приводятся несколько полезных соотношений для раскрытия
операций, не являющихся булевыми:
(1.18)
A B  A  B,
(1.19)
A  B  A  B  A  B  ( A  B)  ( A  B ) ,
A  B  A  B  A  B  ( A  B )  ( A  B) .
Рассмотрим пример. Пусть дана функция:
(1.20)
f ( x, y, z )  ( x  y )  z  y  ( x  y ).
Переходим к булевой алгебре трех операций. Для этого избавимся от
знака эквиваленции «»:
f  ( x  y )  z  y  ( x  y  x  y ),
затем избавляемся от знака исключающего или «»:


f  ( x  y )  z  y  ( x  y )  z  y  ( x  y  x  y).
Спустим отрицания до атомов, уничтожая двойные отрицания:


f  ( x  y )  z  y  ( x  y )  z  y  ( x  y  x  y).
Для выражения с одним сложным отрицанием ( x  y )  z  y можно
спустить его, инвертируя сразу все двойственные операции внутри:
( x  y)  z  y  ( x  y  z )  y ,
а затем приписав отрицания к каждому операнду:
28
( x  y  z )  y  ( x  y  z )  y.
Такой ускоренный способ приводит к следующему результату:
f   ( x  y  z )  y  ( x  y )  z  y   ( x  y  x  y) 




  ( x  y  z)  y  ( x  y )  z  y   ( x  y  x  y) 


 ( x  y  z )  y  ( x  y )  z  y  ( x  y  x  y) .
Раскроем скобки:
f  xyy  zy  xzy  yzy ( xy  xy),
f  x yyxy  zyxy  xz yxy  yz yxy  x yyx y  zyx y  xz yx y  yz yx y.
Упрощаем формулу:
f  0  0  xz y  yz x  x y  zyx  0  0  xyz  x y  x yz.
В результате имеем ДНФ: дизъюнктивную нормальную форму. ДНФ
является упрощенной формой СДНФ. Для получения СДНФ необходимо
дополнить слагаемые недостающими атомами. Для искусственного введения недостающих переменных используем формулу:
A  A  B  A  B.
Тогда
f  xyz  x yz  x yz  x yz.
Учитывая, что второе и четвертое слагаемые одинаковы, удалим одно из
них и СДНФ примет вид:
f  xyz  x yz  x yz .
Согласно лекционному материалу для получения КНФ достаточно
взять двойное отрицание от ДНФ.
Сначала получим СДНФ для отрицания формулы:
f  xyz  xyz  xyz  xyz  xyz  xyz  ( x  y  z )  ( x  y  z )  ( x  y  z )
 ( x  y  z)  ( x  y  z )  ( x  y  z) 
 ( x  y  z )  ( xx  xy  xz  yx  yy  yz  zx  zy  zz ) 
 ( x  y  z)  ( x  y) .
В последнем преобразовании использовались соотношения:
A  AB  A и
AA  A.
Таким образом:
f  xx  xy  xz  yx  yy  yz  xy  xz  yx  yz
и, «расклеивая»:
f  xyz  xyz  xyz  xyz  xyz  xyz  xyz  xyz  xyz  xyz  xyz  xyz  xyz.
Затем возьмем второе отрицание и спустим отрицания до атомов:
29
f  xyz  xyz  xyz  x yz  x yz .
СКНФ = ( x  y  z )( x  y  z )( x  y  z )( x  y  z )( x  y  z ).
Полученные СДНФ и СКНФ совпали с решением табличным способом.
1.8.4. Задача анализа релейно-контактных схем. Задача анализа схемы сродни задаче формализации высказывания. В роли логических связок выступают конструктивные элементы.
Последовательность операций определяется по ходу сигнала от входов (атомов) к значению функции.
Для упрощения анализа результаты промежуточных операций обозначают промежуточными функциями f1, f2 и т. д.
Рассмотрим пример. Пусть дана релейно-контактная схема, изображенная на рис. 8.
Рис. 8. Пример релейно-контактной схемы
Будем рассматривать выходы конструктивных элементов как промежуточные функции (рис. 9):
Рис. 9. Ввведение промежуточных функций
Опишем, как эти функции вычисляют свои значения в зависимости
от значений на входе:
f1 ( x, y)  x  y , f 2 ( x, y)  x  y , f3 ( f 2 , z)  f 2  z , f 4 ( f 3 , y)  f 3  y ,
f ( f 4 , f1 )  f 4  f1 .
Подставим вместо промежуточных функций их тела (при этом не забывая о разделителях):
f 3 ( x, y, z)  ( x  y )  z , f 4 ( x, y, z )  ( x  y )  z  y ,
f ( x, y, z )  ( x  y )  z  y  ( x  y ) .
Задача анализа РКС решена.
30
1.8.5. Минимизация функций с использованием метода карт Карно.
Минимизацию, то есть получение компактного описания функции,
можно провести методом карт Карно, в результате действия метода удается получить более компактное описание функции.
В данном методе производят склеивание переменных по таблице истинности, предварительно исключив из нее интерпретации, дающие нуль,
так как эти интерпретации не участвуют в формировании ДНФ.
Возьмем отрицание функции из примера решения задачи анализа РКС:
f ( x, y, z )  ( x  y )  z  y  ( x  y ).
Таблица истинности данной функции, без строк где f = 0 имеет вид
табл. 11:
Таблица 11
Исходная карта Карно
x
0
0
0
1
1
1
y
0
0
1
0
1
1
z
0
1
1
0
0
1
f
1
1
1
1
1
1
Склеим 1-ю и 2-ю интерпретацию, 3-ю и 8-ю, 4-ю и 5-ю. Результаты
представлены в табл. 12.
Таблица 12
Карта Карно после склеивания
x
0
1
+
y
0
+
1
Z
+
0
1
f
1
1
1
Тупиковая ДНФ получена, нет возможности дальнейшего «склеивания». В тупиковой ДНФ три слагаемых:
f ( x, y, z)  x  y  x  z  y  z .
1.8.6. Минимизация функций с использованием метода кубов. Метод
кубов – графический метод минимизации ФАЛ, наиболее субъективен и
удобен для восприятия. Его использование основано на том, что «склеивание» имеет наглядную графическую интерпретацию. Согласно методу
кубов, каждой переменной соответствует координатная ось, на которой
откладывается истинностное значение «0» или «1». Таким образом, три
двоичные переменные образуют псевдопространство. Набор переменных,
обращающих функцию в единицу, образует точку координатного пространства.
Рассмотрим пример:
31
f ( x, y , z )  ( x  y )  z  y  ( x  y ) .
Таблица истинности данной функции без строк f = 0 имеет вид табл. 11.
На рис. 10 нанесены точки пространства, образующие функцию f.
Отрезки прямых показывают пути возможной минимизации – «склеивания».
Отрезки 1–2, 5–6 – склеивание относительно переменной z.
Отрезки 1–4, 3–6 – склеивание относительно переменной x.
Отрезки 2–3, 4–5 – склеивание относительно переменной y.
Рис. 10. Возможные пути склеивания по методу кубов
1.8.7. Задача синтеза релейно-контактных схем. Задача синтеза заключается в получении схемы по имеющейся структурной функции. В
качестве структурной функции рассмотрим следующую:
f  z yx xz y.
Реализация структурной функции будет иметь вид, представленный
на рис. 11.
Рис. 11. Решение задачи синтеза релейно-контактной схемы
1.9. Задачи для самостоятельного решения
1. Пользуясь лекционным материалом, дать определения терминов:
1) минимизация,
17) элементарные дизъюнкции,
2) разложение по переменным,
18) конъюнктивная нормальная
3) дизъюнктивная нормальная
форма,
форма,
19) двойственная функция,
4) полная алгебра (теория),
20) самодвойственная функция,
5) ассоциативность,
21) принцип двойственности, со6) коммутативность,
кращенная (тупиковая) ДНФ,
7) идемпотентность,
22) метод карт Карно,
8) дистрибутивность,
23) эквивалентные преобразования,
32
9) закон двойного отрицания,
24) правило подстановки,
10) правила де Моргана,
25) упрощение формул,
11) закон противоречия,
26) поглощение,
12) закон исключения третьего,
27) склеивание,
13) эквивалентные формулы,
28) метод кубов,
14) правило замены,
29) непрерывные системы,
15) элементарные конъюнкции,
30) дискретные системы,
16) дизъюнктивная нормальная
31) цифровые системы,
форма,
32) нормально-замкнутые реле,
33) нормально-разомкнутые реле,
36) структурная функция схемы,
34) конструктивный элемент,
37) задача синтеза,
35) задача анализа схемы,
38) схема реализации функции.
2. Выписать СДНФ и СКНФ для каждой из функций, используя таблицу истинности (использовать ранее полученные таблицы истинности).
1) f ( x, y)  x  y  x ,
f ( x, y, z )  ( x  y)  xz  y ,
3) f ( x, y, p)  ( x  p)  ( x  p)  y  p .
3. С помощью эквивалентных преобразований получить СДНФ и
СКНФ для функций из задания 2.
4. Решить задачу анализа релейно-контактной схемы (рис. 12).
2)
x
y
z
1
M2
=
&
f
а)
x
y
z
=
1
M2
&
б)
Рис. 12. Примеры релейно-контактных схем
33
f
5. Для схем из задания 2 получить тупиковую ДНФ по методу карт
Карно.
6. Для схем из задания 2 получить тупиковую ДНФ по методу кубов.
7. Синтезировать схему реализации для полученных в задании 5 тупиковых ДНФ.
8. Ответить на следующие вопросы:
1) какие функции не имеют СКНФ?
2) как выглядит тупиковая ДНФ для итоговой карты Карно: +++ ?
3) есть ли естественное ограничение в использовании метода кубов?
4) для чего нужно решать задачи анализа и синтеза РКС?
5) как выглядит схема реализации функций-констант 0 и 1?
6) как решать задачу анализа, если конструктивный элемент имеет
один или более двух входов?
1.10. Содержательное исчисление высказываний
1.10.1. Понятие содержательного исчисления высказываний. Итак,
найдено применение теории ЛВ – минимизация логических схем. Но
описываемая здесь наука гораздо «романтичнее» и «глубже», чем требуют РКС. Есть и другие сферы, нуждающиеся в методах ЛВ. Это исчисление высказываний – методы формализации утверждений, сделанных относительно объектов произвольной природы, и методы сопоставления
этим утверждениям истинностного значения. Сопоставление утверждению истинностного значения (оценка смысла утверждения), основанное
на алгебре логики, называется содержательным исчислением высказываний (СИВ).
1.10.2. Методы СИВ. Такое исчисление производят, применяя таблицы истинности, если функция задана такой таблицей. Использование
для суждений об истинности высказываний ДНФ и КНФ приводит еще к
двум так называемым мультипликативным методам доказательства истинности и лживости высказываний (теорем). Эти методы применяются,
когда лингвистическое утверждение формализовано с помощью булевых
операций в виде формулы БА.
1.10.3. Классификация формул ЛВ. Основой СИВ является отнесение конкретной формулы, соответствующей функции некоторого высказывания к одному из классов формул. Введем такую классификацию.
1. Формула F ( x1 , ... xn ) называется выполнимой, если найдется такая интерпретация  1 , ...  n , для которой F ( 1 , ...  n )  1.
2. Формула F ( x1 , ... xn ) называется опровержимой, если найдется
такая интерпретация  1 , ...  n , для которой F ( 1 , ...  n )  0.
34
3. Формула F ( x1 , ... xn ) называется тождественно-истинной (тавтологией), если для любой интерпретации F ( x1 , ... xn )  1.
4. Формула F ( x1 , ... xn ) называется тождественно-ложной (противоречивой), если для любой интерпретации F ( x1 , ... xn )  0.
1.10.4. Теорема как высказывание. Говоря о СИВ, приходится затронуть понятие теоремы как высказывания, состоящего из двух утверждений. Причем высказывание строится так, что второе утверждение –
заключение теоремы – следует из первого утверждения – условия теоремы. Проблемы теорем будут еще неоднократно подниматься. Но на данном этапе достаточно усвоить, что для теоремы основной задачей является ее доказательство. На языке ЛВ это означает проверку истинностного значения высказывания, образующего теорему, т. е. содержательное
исчисление высказывания – теоремы.
1.10.5. Принцип логического следования. Пусть даны формулы A1 ,
A2 , … An и формула B. Формула B есть логическое следствие формул
A1 , A2 , …. An тогда и только тогда, когда для всякой интерпретации I, в
которой истинна формула A1 , A2 , … An , формула B также истинна.
Формулы A1 , A2 , … An называют посылками (аксиомами). B называют заключением. Посылки – это и есть утверждения, образующие условие теоремы с заключением B.
Тот факт, что B логически следует из A1 , A2 , ... An , обычно записывают так: A1 , A2 , ... An  B.
Следующая теорема устанавливает связь между понятием логического следования и импликацией алгебры логики.
Теорема 1.4. Формула B есть логическое следствие формул A1 ,
A2 , ... An тогда и только тогда, когда общезначима формула:
A1  A2 ... An  B.
(1.21)
Доказательство. Допустим, формула не общезначима, тогда по крайней мере она опровержима. То есть найдется такая интерпретация I, при
которой:
F ( A1 , A2 , ... An , B)  A1  A2 ... An  B  0.
Операция импликации предполагает, что это возможно лишь в одном случае, когда A1 , A2 , ... An истинны, а B ложно. Но тогда, по определению логического следствия, B не является логическим следованием,
а это противоречит условию теоремы. Теорема доказана.
35
Из противоположности классов общезначимых и противоречивых
формул исходит еще одна теорема.
Теорема 1.5. Формула B есть логическое следствие формул A1 , A2 ,
... An тогда и только тогда, когда противоречива формула:
(1.22)
A1  A2 ... An  B .
Для доказательства необходимо отметить, что, если F общезначима,
а G противоречива, то F  G. Это очевидно, так как F – фактически константа 1, а G – константа 0. Тогда доказательство теоремы сводится к доказательству эквивалентности формул:
A1  A2  ... An  B и A1  A2 ... An  B .
Докажем их эквивалентность. Для упрощения доказательства воспользуемся правилом замены, обозначив:
J  A1  A2 ... An .
Тогда должно быть:
J  B  J B
или, что эквивалентно:
J  B  J B
по закону де Моргана. Но эта формула есть полученная ранее эквивалентность (1.5). Теорема доказана. Формула (1.21) называется теоремой с
условиями.
Использование принципа логического следования. С помощью теорем (1.21) и (1.22) многие проблемы могут быть сформулированы в терминах доказательства теорем с условиями. Такое доказательство можно
провести методом таблиц истинности или мультипликативными методами. Для этого сначала формализуем теорему, используя (1.21) или (1.22),
затем к полученной формуле применяем один из трех методов содержательной оценки истинности формулы. Эти методы изложены ниже.
1.10.6. Метод таблиц истинности. Для формулы, образующей теорему с условиями, строим таблицу истинности. Для ее построения, как
было упомянуто выше, необходимо последовательно применять к атомам
формулы операции алгебры логики согласно их рангу. В итоге правый
столбец таблицы истинности будет содержать логическое значение теоремы, получаемое для каждой интерпретации исходных данных, записанной в таблице слева. Наиболее важен случай, когда в столбце справа
все значения равны единице. Тогда исходное высказывание не теряет
смысла ни в одной интерпретации исходных данных.
1.10.7. Пример СИВ. Составим таблицу истинности для формулы:
F ( x, y)  ( x  y)( x  y)  y (см. табл. 13).
36
В правом столбце получены все единицы, значит исходное выражение истинно в любой интерпретации. Результат был получен, не вдаваясь
в сущность значений атомов x и y. Таким образом, любая теорема с такой
структурой будет доказанной. Аналогично можно показать, что формула
( x  y)( x  y)  y
противоречива и теоремы такого вида недоказуемы.
Таблица 13
Содержательное исчисление. Метод таблиц истинности
x
0
0
1
1
y
0
1
0
1
x
1
1
0
0
x  y
0
1
1
1
xy
1
1
0
1
(x  y)(x  y)
0
1
0
1
F
1
1
1
1
1.10.8. Мультипликативные методы. Мультипликативные методы
основаны на приведении формулы теоремы к тупиковой ДНФ или КНФ.
При этом, если полученная ДНФ общезначима, то есть тождественно
равна константе 1, то теорема доказана. А КНФ теоремы обращается в 0,
когда формула противоречива.
Итак, существуют методы СИВ, позволяющие судить об истинности
теорем с условиями. Но, если переменных много, то таблицу истинности
строить сложно, а мультипликативные методы требуют процесса минимизации ФАЛ. Методы же минимизации тяжелы при большом количестве переменных. Поэтому СИВ для доказательства теорем в общем случае не пригодно. Проблемы теорем и их доказательства являются предметом формального исчисления высказываний (ФИВ).
37
2.
ФОРМАЛЬНЫЕ СИСТЕМЫ
2.1. Метатеория формальных систем
2.1.1. Признаки формальных теорий. Всякая теория получает знания. Формальные теории – это такие теории, которые получают новые
знания путем комбинации исходного набора знаний, c помощью специальной процедуры. При этом считается, что исходные знания не вызывают сомнений, а процедура получения новых знаний тавтологична. Тавтологичность здесь означает, что получаемое знание не противоречит
исходному. Специальная процедура оперирует знаниями как формальными символами и не делает никаких предположений.
Формальная теория (T) это:
1) множество символов, образующих алфавит (А),
2) множество слов в алфавите (Т), которые называются формулами,
3) подмножество формул (B), которые называются аксиомами,
4) множество отношений на множестве формул (R), которые называются правилами вывода.
В данном случае, отношения – это и есть специальные процедуры,
ставящие, получаемую формулу в соответствие набору исходных формул.
Множество формул задается индуктивным (рекурсивным) определением, подобно тому, как была определена ППФ ЛВ. Как правило, это
множество бесконечно. Множества A и T образуют сигнатуру формальной теории (все возможные символьные конструкции языка).
Множество аксиом B может быть как конечным, так и бесконечным.
Если аксиом бесконечное число, то задается набор схем аксиом (классов,
видов аксиом) и правило получения из одних аксиом других. Аксиомы
делятся на два вида: логические и аксиомы предметной области. Например, логическая аксиома: «Если три символа одинаковы, то любые два из
них также одинаковы». Эта аксиома не вызовет сомнения ни в одной
формальной теории. Аксиомы предметной области применимы лишь в
конкретной формальной теории, а для других теорий часто неприемлемы.
Например, аксиома геометрии: «Две точки совпадают (одинаковы), если
длина отрезка, соединяющего их, равна нулю»: f1(x1) = f(x2), если x1 = x2,
не применима в теориях, не обладающих понятием расстояния или,
например, оперирующих понятием времени: f1(x1, t1) = f(x2, t2) не всегда
верно при x1 = x2, а только при равных значениях времени t1 = t2.
Аксиомы есть исходные знания – формулы, не подвергаемые сомнению.
2.1.2. Понятие выводимости. Пусть A1 , A2 , ... An – формулы теории
T. Если, применяя существующий набор правил вывода R  R1 , R2 , ... Rk 
(специальная процедура из k элементарных шагов, k раз получающая но38
вую формулу из старых) к A1 , A2 , ... An , получаем новое знание, в виде
формулы B, то формула B называется непосредственно выводимой из
формул A1 , A2 , ... An . Обычно этот факт записывают так:
или
A1 , A2 , ... An ,
R
B
A1 , A2 , ... An  B.
При этом формулы A1 , A2 , ... An называются посылками, а формула B
– заключением. A1 , A2 , ... An – это набор исходных знаний. R – набор правил, используемых для получения нового знания B из имеющихся. При
этом процесс (выполнение шагов R  R1 , R2 , ... Rk  ), позволяющий получить новое знание B из имеющихся, называется выводом или доказательством. В процессе вывода формуле B предшествует вывод промежуточных формул E1 , E2 , ... Ek , каждая последующая Ei получена путем применения к формулам A1 , A2 , ... An , E1 , E2 , ... Ei 1 элементарного правила
вывода Ri .
Таким образом, вывод формулы идет по шагам. На каждом шаге к
имеющимся формулам добавляется новая. Эта формула получается путем
применения тавтологичного правила вывода к каким-либо формулам из
уже имеющихся. Результатом последовательности шагов является вывод
итоговой формулы.
Примеры вывода уже приводились. Например, правило подстановки
– это правило вывода, его использование вело к получению новых знаний
(эквивалентностей) из уже имеющихся.
В СИВ также упоминались понятия посылки и заключения при обсуждении принципа логического следования. Определим остальные понятия формальных теорий.
2.1.3. Теорема, гипотеза. Формулы A1 , A2 , ... An называются гипотезами вывода (или посылками, дополнительными условиями, ведущими к
B). Если  B , то формула B называется теоремой теории. То есть, для ее
доказательства хватает лишь аксиом теории и не нужны гипотезы. Для
получения теоремы B процедура вывода произведет вывод промежуточных теорем, постепенно придя к формуле B.
2.1.4. Общезначимость и непротиворечивость. Каждая аксиома имеет определенную интерпретацию в области объектов теории. То есть,
каждому атому аксиомы можно сопоставить определенный объект теории. И если выясняется, что при подстановке вместо атомов любого
набора реальных объектов предметной области аксиома является истинной, то есть не лишается логического смысла, то об аксиомах говорят,
39
что они общезначимы (тавтологии). Так, например, аксиома геометрии
о совпадении двух точек (объектов геометрии) выполняется при подстановке вместо точек любых других объектов, например отрезков, и является тавтологией в формальной теории, соответствующей геометрии Евклида. А приведенная выше логическая аксиома есть тавтология вообще
для любых объектов любой формальной теории. Ведь, как бы мы не интерпретировали три символа, являющиеся атомами аксиомы, она останется
верна.
С помощью правил вывода, из имеющихся аксиом, можно получать
все множество теорем теории. При этом, если аксиомы тавтологичны, то
и теоремы будут тавтологичны, так как правило вывода не нарушает тавтологичности. А так как множество теорем и аксиом образуют теорию,
то, если они тавталогии, теорию принято называть общезначимой.
Если же аксиома или теорема ни в одной интерпретации ее атомов
не имеет логического смысла, то она является противоречивой.
Теория называется непротиворечивой, если в теории нет ни одной
противоречивой формулы (теоремы или аксиомы). Фактически для формальных систем это значит, что в них не должны одновременно присутствовать формулы F и F . Таким образом, общезначимые теории имеют
обоснование и мощную поддержку в виде своей предметной области.
Формулы, конструируемые в таких теориях, позволяют получать новые
знания касательно предметной области.
2.1.5. Полнота, независимость и разрешимость. Формальная теория
называется полной, если каждому истинному высказыванию относительно объектов предметной области в теории сопоставлена теорема. Такая
теория описывает все явления, присущие предметной области.
Если множеству изучаемых объектов может быть сопоставлена полная, формальная, непротиворечивая теория, то такое множество называется аксиоматизируемым.
Система аксиом непротиворечивой теории называется независимой, если ни одна ее аксиома не выводится по правилу вывода из других аксиом.
Формальная теория называется разрешимой, если существует алгоритм, позволяющий определить по формуле, является ли она теоремой
теории. Фактически это свойство выводимости в обратную сторону.
Определения, данные здесь, являются метатеоремами, то есть теоремами о самих формальных теориях. Их доказательство не содержит гипотез и основывается лишь на самом понятии формальной теории.
Итак, формальные теории строятся на основе предметной области.
Для начала необходимо выделить набор аксиом и записать их в виде
формул, используя определенный алфавит. Эти аксиомы должны быть
общезначимыми и не вызывающими сомнений. Затем следует зафиксировать правило вывода, такое, которое позволяло бы получать новые
40
формулы, причем тоже тавтологичные. Процесс работы правил вывода
есть автоматическое доказательство теорем. При этом для полных, формальных, непротиворечивых теорий существует возможность при любом
наборе исходных посылок проверять выводимость некоторого заключения, используя посылки в качестве гипотез.
2.2. Формальное исчисление высказываний (ФИВ)
2.2.1. ФИВ как формальная теория. Рассмотрим формальную теорию ФИВ, которая не только позволяет найти метод автоматического доказательства теорем ЛВ, но и дает обоснования для формализации этих
проблем в терминах теорем. Тем самым ФИВ позволяет оценить возможности логического мышления.
Алфавит ФИВ. Алфавит теории ФИВ состоит из:
1) атомов, соответствующих объектам предметной области – высказываниям;
2) логических связок «» и «» (аналогично лингвистическим
связкам «следует» и «не»); смысл связок не определяется из таблиц истинности, а проистекает из таких общезначимых понятий, как логическое
следствие и дополнение множества;
3) служебных символов «(», «)» и «,» (позволяют группировать и
разделять объекты – атомы).
2.2.2. ППФ ФИВ. Индуктивное определение ППФ ФИВ:
1) атом есть ППФ,
2) если A1 и A2 есть ППФ, то A1 , A2 – ППФ (группа объектов, является объектом),
3) если A ППФ, то ( A1 ) – ППФ (выделение объекта из совокупности объектов),
4) если A ППФ, то A есть ППФ (у любого объекта есть противоположность),
5) если A и B ППФ, то A  B – ППФ (причинно-следственная
связь),
6) других ППФ не существует.
Конструкции в ППФ правомерны, так как объектами ФИВ являются
высказывания и каждое высказывание может быть сгруппировано с другим, выделено из общего множества высказываний, иметь причинноследственную связь с другим высказыванием и иметь высказывание обратного смысла. Можно доопределить и другие конструкции формирования ППФ, найдя им обоснование в предметной области ЛВ.
2.2.3. Система аксиом ФИВ. В ФИВ определены три схемы аксиом:
41
1) схема аксиом A1 : A  B  A – логическая аксиома «истина
из чего угодно»,
2) схема аксиом A2 : (A  (B  C))  ((A  B)  (A  C)) – логическая аксиома, позволяющая опускать промежуточные рассуждения B,
3) схема аксиом A3 : B  A  B  A  B – логическая аксиома, исключающая возможность получения теорем противоречивого содержания.
Эти аксиомы есть тавтологии, это легко проверить содержательным
исчислением, а также логическим мышлением.
2.2.4. Правило вывода ФИВ. Определим правило, по которому можно получать новые формулы из набора уже известных.
Modus ponens (МП), называемое также правилом отделения:

 


A, A  B  B.
Это отношение интерпретируется так: если в теории есть формула A
и формула A  B, то B также является формулой теории.
2.2.5. Правило подстановки в ФИВ. Выше были указаны схемы аксиом. Из них можно получать бесконечное множество аксиом. Это делают по правилу подстановки, согласно которому в аксиоме любой атом
(объект теории) заменяют любым другим объектом теории. Таким образом, вместо любой подформулы аксиомы можно подставлять любую
формулу, получая новую аксиому данного класса. Подстановку вместо
атома x формулы A в тексте будем обозначать {A / x}.
2.2.6. Пример вывода теоремы. В ФИВ легко можно получить несколько теорем, то есть формул, для вывода которых не нужны гипотезы,
а достаточно лишь аксиом.
Теорема 2.1. Закон тождества:
(2.1)
 A  A.
Вывод (формальное доказательство по правилу вывода).
Для начала необходимо получить из схем аксиом три новые аксиомы.
1. Подстановка {A / B}в аксиому A1 дает: A  (A  A).
2. Подстановка {A  A / B} в аксиому A1 дает: A  ((A  A)  A).
3. Подстановка {A  A / B} и {A, С} в A2 дает:
A  A  A  A  A  A  A  A  A  A .
Теперь применим к аксиомам из п. 2 и п. 3 правило Modus ponens:
A   A  A  A,  A   A  A  A   A   A  A  A   A  A
MP.
 A   A  A  A   A  A
Получена промежуточная теорема T1 : (A  ((A  A)  A))  (A  A).
Далее применим к аксиоме из п. 1 и промежуточной теореме T1
Modus ponens:
42
A   A  A  A,  A   A  A  A   A  A
MP .
A A
Теорема 2.1 доказана.
2.2.7. Правило введения импликации. Легко доказать теорему о введении импликации, обозначается: +.
Теорема 2.2. Пусть A – гипотеза (формула А, некий факт предметной
области). Тогда
(2.2)
A B A.
Вывод теоремы 2.2.
Из гипотезы А и аксиомы A1 по Modus ponens имеем:
A, A  B  A  B  A .
Теорема 2.2 доказана.
2.2.8. Теорема дедукции. В теории ФИВ импликация очень тесно
связана с выводимостью.
Теорема 2.3. Если Г , A  B , то Г  A  B и обратно.
(2.3)
Эта теорема носит название теоремы дедукции.
Доказательство (в прямом направлении теоремы):
Пусть E1 , ... Ei , ... En – промежуточные формулы вывода B из Г, А и
En  B . Проведем доказательство по индукции, последовательно доказав, что если Г , A  B , то Г  A  E1 , … Г  A  Ei , ... Г  A  En .
Сначала докажем базу индукции: Г  A  E1 . Здесь возможны три
варианта:
1. Пусть E1 – аксиома, тогда по правилу введения импликации (2.2)
имеем: E1  A  E1 или
 A  E1 и тем более Г  A  E1 (напомним,
что аксиомы слева от знака формального вывода не выписываются).
2. Пусть E1 – одна из посылок в Г, тогда по (2.2): E1  A  E1 и, так
как E1 включена в Г, Г  A  E1 .
3. Пусть E 2 есть А. Учитывая, что по (2.1)  A  A , получим:
 A  E1 и тем более Г  A  E1 .
Итак, в любом случае Г  A  E1 . Таким образом, база индукции
доказана.
Пусть теперь доказано, что для всех i < k доказано Г  A  Ei , докажем, что Г  A  Ek .
43
Возможны четыре случая, первые три аналогичны базе индукции:
для них Г  A  Ek .
Четвертый случай добавляется, так как E k могла получиться в процессе
вывода E1 , ... Ei , ... En по условию теоремы Г , A  B из промежуточных
формул Ei и E j  Ei  Ek . То есть Ei , E j  Ek , или Ei , Ei  Ek Ek , где
j  k . Но для формул, полученных ранее по индукции, считаем доказан-
ным, что: Г  A  E j или Г  A  Ei  Ek  . Это значит, что в ФИВ
была получена формула A  Ei  Ek  .
Дальнейшее доказательство требует новой аксиомы. Подстановкой
{ Ei / B} и { E k / C} в A2 имеем:
A  Ei  Ek   A  Ei   A  Ek  .
По правилу MP имеем:
A  ( Ei  Ek ),  A  Ei  Ek    A  Ei    A  Ek 
MP.
 A  Ei    A  E k 
Затем по MP имеем:
A  Ei ,  A  Ei    A  E k 
MP.
A  Ek
В итоге получили, что в четвертом случае вывод формулы A  Ek
потребовал в качестве посылок аксиому A2 и формулу A  Ei  Ek  . То
есть для четвертого случая имеем: A  Ei  Ek   A  Ek . Но доказано,
что Г  A  Ei  Ek  , а значит Г  A  Ek .
Следуя по индукции, имеем при k  n : Г  A  En или Г  A  B .
Теорема доказана.
Доказательство обратного хода теоремы дедукции. Пусть Г  A  B .
Тогда в ФИВ имеется формула: A  B. Добавим к Г еще одну гипотезу:
А. По MP имеем A, A  B  B или A, Г  B . Теорема 2.3 доказана.
2.2.9. Следствия теоремы дедукции.
Следствие 1:
Если A  B , то А  B и обратно.
Замена вывода (логического следования) на импликацию.
Доказательство из теоремы дедукции при Г  {0} .
Следствие 2:
A  B, B  C  A  C,
правило транзитивности.
44
(2.4)
(2.5)
Доказательство. Введем, а затем удалим гипотезу А.
A, A  B, B, B  C  C.
A, A  B, B  C  B,
Тогда по теореме дедукции: A  B, B  C  A  C ( Г  {A  B, B  C} ).
Следствие 2 доказано.
Аналогичным приемом доказывается следствие 3, называемое правилом сечения:
(2.6)
A  B  C , B  A  C.
2.2.10. Некоторые теоремы ФИВ. В ФИВ выводимы следующие
теоремы:
1)
2)
A  A , A  A (закон двойного отрицания),
A  ( A  B) (из ложного, что угодно),




3) B  A  ( A  B) , ( A  B)  B  A (закон противоположности),
4) A  B  ( A  B) .


2.2.11. Перспективы формальных теорий. Все теоремы, полученные выше, являются принципами логического мышления, так необходимого инженерам. Их необходимо применять не только в исчислении высказываний, но и в других отраслях знаний.
В ФИВ из основных аксиом, тавтологий конструируются другие
формулы, сохраняющие тавтологичность. При конструировании объектов любой другой природы нужно задаваться определенным набором
объектов, обладающих нужным нам свойством, а затем, применяя правило вывода, сохраняющее данное свойство, конструировать другие объекты, удовлетворяющие этому свойству. В частности, в ФИВ по этим
принципам строится правило резолюций, обосновывающее одноименный
метод автоматического доказательства теорем. Важным результатом
ФИВ является теорема дедукции. Интерпретировать ее результаты в область ЛВ можно так: если имеется общезначимая формула (аксиома) и из
нее выводится другая формула (теорема), то истинна импликация аксиомы и теоремы.
2.3. Автоматическое доказательство теорем
2.3.1. Посылки. Ранее было отмечено, что СИВ дает методы автоматического доказательства теорем. После рассмотрения ФИВ стало ясно,
что посылки делятся на аксиомы и на гипотезы. Аксиомы проистекают из
предметной области и воспринимаются как имеющий место факт.
Например: «Известно, что, если снег не тает, то потепления не будет при
45
условии, что зима не длится уже более 2 месяцев или не приходит антициклон».
Гипотезы, в отличие от аксиом, есть некоторые дополнительные
условия, накладываемые на состояние предметной области, и по сути являются постановкой задачи при доказательстве какого-либо утверждения.
Например: «Пусть снег не тает и не приходит антициклон».
2.3.2. Заключение. Заключение теоремы с условиями – это некоторое высказывание относительно предметной области при заданных условиях (гипотезах). Пример заключения: «Верно ли, что (для задачи выше)
потепления не будет?».
2.3.3. Приведение задачи к языку алгебры логики. Для ответа на вопрос, правомерно ли заключение теоремы с условиями, необходимо осуществить перевод лингвистических утверждений на формальный язык.
В рассматриваемом примере следует ввести следующие обозначения
элементарных высказываний:
S – «снег тает»,
W – «будет потепление»,
L – «зима длится более 2 месяцев»,
G – «приходит антициклон».
Теперь можно записать аксиому, гипотезы и заключение на языке
ЛВ. Аксиома A примет вид:
S  L  G W .



Имеем две гипотезы, Г1 : S и Г 2 : G . Заключение теоремы B будет
выглядеть следующим образом: W .
В общем случае имеем аксиомы A1 , A2 , ... An , гипотезы Г1 , Г 2 , ... Г m и
заключение B.
2.3.4. Использование принципа логического следования. Согласно
принципу логического следования, заключение правомерно, если общезначима формула
F  A1  A2 ... An  Г1  Г 2 ... Г m  B.
В рассматриваемом примере
F  S  L  G   W  S  B  W .
Теперь вступает СИВ, доказывая общезначимость формулы F. Для
громоздких формул СИВ неэффективно, в то время как ФИВ предлагает
свой подход, реализуемый методом резолюций.
2.3.5. Обоснование метода резолюций. Для использования метода
резолюций необходимо использовать отрицание F исходной формулы,
представив его в виде КНФ. Тогда
F  F1  F2 ... Fl ,
46
где F1  F2 ... Fl – элементарные дизъюнкции, образующие множество дизъюнктов. Предположим, что F не противоречива, тогда все
дизъюнкты непротиворечивы, следовательно их можно выбрать в качестве аксиом некоторой формальной теории. Исходя из их непротиворечивости, можно выводить теоремы теории, которые также будут являться
непротиворечивыми. Если же в теории удастся получить две формулы: x
и x , то теория будет противоречивой. Противоречивость полученной
теории ведет к противоречивости формулы F и общезначимости исходной теоремы F, что означает ее доказуемость.
2.3.6. Правило резолюций. При построении формальной теории
необходимо использовать правило вывода, не нарушающее общезначимости получаемых формул. В ФИВ таким правилом является MP.
Но теорема дедукции дает возможность создавать тавтологичные
правила вывода из условия, что при использовании тавтологичного правила вывода исходное и получаемое знание связаны импликацией.
Одним из таких правил является правило резолюций. Пусть имеются
две формулы: F1  A  C1 и F2  A  C2 . A и A называют контрарной
парой, C1 и C 2 – произвольные дизъюнкты. Тогда, правило вывода
A  C1 , A  C2  C1  C2
(2.7)
не нарушает истинности формулы F  F1  F2 , для которой F1 и F2 принадлежат множеству её дизъюнктов. Для доказательства по теореме дедукции должно быть  F  (C1  C2 ) . То есть F  (C1  C2 ) должна быть
тавтологией. Докажем ее тавтологичность с помощью эквивалентных преобразований, воспринимая знаки формулы как операции алгебры логики.
F  (C1  C2 )  F  C1  C2  F1  F2  C1  C2  F1  F2  C1  C2 
A  C1  A  C 2  C1  C 2  AC1  A C 2  C1  C 2  AC1  A C 2 
 C1 ( A  A)  C2 ( A  A)  AC1  A C2  C1 A  C1 A  C2 A  C2 A 
( AC1  C1 A)  ( A C2  C2 A)  C1 A  C2 A  A  A  C1 A  C2 A  1 .
То есть F  (C1  C2 ) общезначима, а правило (2.7) является тавтологичным правилом вывода, не нарушающим общезначимости.
Таким образом, если F  F1  F2 непротиворечива, то по правилу ре-
золюций C1  C2 непротиворечив, но тогда его можно присоединить к
множеству дизъюнктов и использовать далее: F1  F2  (C1  C2 ) .
2.3.7. Применение метода резолюций к доказательству теорем. Итак,
если формула F  F1  F2 ... Fn и среди множества ее дизъюнктов нахо47
дится пара, содержащая контрарные атомы, то из такой пары правило резолюций формирует дизъюнкт C1  C2 (резольвенту), который можно
присоединять к множеству дизъюнктов, при этом если F была общезначимой, то она таковой и останется.
Если же, неоднократно применяя к F правило резолюций, удается
получить два дизъюнкта С и С , то, применяя к этой паре правило резолюций, имеем резольвенту 0 , выводимую из множества дизъюнктов. 0
не общезначим, а тождественно ложен. Поэтому теория не общезначима,
а противоречива и F в этом случае противоречива, ведь именно она в
качестве системы аксиом привела пустому дизъюнкту (нулю).
Таким образом, метод резолюций представляет собой метод доказательства теорем от противного. Он позволяет опровергать формулы. Если
в качестве такой формулы избрать отрицание F некоторой теоремы F и
опровергнуть его по методу резолюций, то теорема F будет доказана.
Пример автоматического доказательства теоремы. Пусть отрицание
теоремы выглядит так:
F  A  C  B  C  ( A  B)  C .
Множество дизъюнктов имеет вид:
F1  A  C , F2  B  C , F3  A  B , F4  C .
Докажем его противоречивость:
F2 , F3 F5 , где F5  A  C
F1, F5 F6 , где F6  C  C  C
F6 , F4 0 .
Итак, получен пустой дизъюнкт, система аксиом отрицания теоремы
противоречива. А значит, исходная теорема доказана.
2.3.8. Теорема о полноте метода резолюций. Число новых формул,
получаемых из множества дизъюнктов, конечно из-за того, что ограничено число атомов. И если пустой дизъюнкт не удается получить, то система аксиом формально не противоречива, а исходная теорема недоказуема. Этот вывод является теоремой о полноте метода резолюций.
2.3.9. Класс дедуктивных методов. ФИВ, исчисление методом резолюций и принцип логического следования наталкивают на общий дедуктивный принцип решения задач. Пусть имеется заключение об общезначимости некоторой формулы, алгоритма или знания вообще. Используя
импликацию – логическое следование, получаем новое знание. Это знание сильнее исходного, так как импликация предполагает его соблюдение (общезначимость) на большем или равном множестве объектов, относительно которых сформулировано исходное знание. Много раз при48
менив импликацию, наконец, приходим к выводу, что на каком-либо
конкретном объекте или множестве объектов знание, получаемое импликацией (усиленное знание), является формально абсурдным. То есть тождественно ложным. Тем самым опровергается общезначимость исходного
знания.
2.4. Методика решения типовых задач
2.4.1. Формализация теорем
Для решения задачи формализации теоремы необходимо перевести
фразу на язык логики высказываний. При этом нужно выделить в исходной теореме посылки и заключение. Заключение – это выражение, которое должно следовать из посылок – условий теоремы.
Посылки бывают двух типов: аксиомы и гипотезы.
Аксиомы – это вид посылок, являющихся фактами предметной области. Для каждой предметной области существует конечный набор аксиом
– знаний о предметной области. Обычно они представлены в виде причинно-следственных связей.
Гипотезы – это посылки, отражающие текущее состояние предметной области. И если аксиомы – это нечто постоянное, неопровержимое, то
гипотезы являются предположением, совсем не обязательно истинным.
Следующим этапом на пути формализации теоремы является обнаружение элементарных составляющих – атомов. Определив их, посылки
и заключение записывают на языке формул. После чего посылки связывают конъюнкцией. И выводят импликацию заключения. В итоге формализованная теорема имеет вид:
F  A1  A2 ... An  Г1  Г 2 ... Г m  B.
А ее отрицание:
F  A1  A2 ... An  Г 1  Г 2 ... Г m  B ,
где A1, A2, ... An – аксиомы, Г1, Г2, … Гm – гипотезы, B – заключение.
Рассмотрим пример: «Если Дума проголосует и президента выберут,
то Думу распустят. Если Думу распустят, то правительство уйдет в отставку. Если Дума не проголосует, то Думу распустят. Пусть Думу распустят в том и только в том случае, если президента не выберут. Верно
ли, что Думу распустят и правительство уйдет в отставку?».
В примере заключение B: «Верно ли, что Думу распустят и правительство уйдет в отставку».
Аксиомы A1: «Если Дума проголосует и президента выберут, то думу
распустят»; A2: «Если Думу распустят, то правительство уйдет в отставку»; A3: «Если Дума не проголосует, то Думу распустят».
Гипотеза Г1: «Пусть Думу распустят в том и только в том случае, если президента не выберут».
Далее определимся с атомами:
49
 x: «Дума проголосует»,
 y: «президента выберут»,
 z: «Думу распустят»,
 p: «правительство уйдет в отставку».
Теперь можно записать посылки и заключение на языке формул:
A1  x  y  z , A2  z  p , A3  x  z , Г1  z  y , B  z  p .
В нашем случае окончательно теорема:
F  [ x  y  z]  [ z  p]  [ x  z] [ z  y]  z  p
и ее отрицание:
F  [ x  y  z]  [ z  p]  [ x  z]  [ z  y]  z  p .
Задача формализации теоремы решена.
2.4.2. Доказательство теоремы с использованием метода таблиц истинности. Доказательство теоремы есть отнесение ее к одному из классов
формул. Если теорема F окажется тождественно-истинной формулой, то
она считается доказанной. Если же окажется, что есть хотя бы одна интерпретация атомов, дающая F = 0, то теорема опровергнута данной интерпретацией. Взамен теоремы можно рассматривать ее отрицание. В
этом случае, если отрицание теоремы F окажется тождественно-ложной
формулой, то исходная теорема считается доказанной. Если же окажется,
что есть хотя бы одна интерпретация атомов, дающая F  1 , то теорема
опровергнута данной интерпретацией.
Рассмотрим пример доказательства теоремы, формализованной ранее. Построим таблицу истинности для ее отрицания.
F  [ x  y  z]  [ z  p]  [ x  z]  [ z  y]  z  p .
Отрицание теоремы оказалось тождественно-ложным, сама же теорема – тождественно-истинной. Таким образом, теорема доказана.
Таблица 14
Доказательство теоремы методом таблиц истинности
x
y
z
p
A1
A2
A3
Г1
B
F
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
50
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
0
0
2.4.3. Доказательство теоремы с использованием мультипликативного метода приведения теоремы к ДНФ
Отнести формулу к классу тождественно-истинных формул – значит
доказать, что F  1 . Для этого можно привести формализованную теорему к тупиковой ДНФ. И если окажется, что ДНФ равна константе 1, то
теорема доказуема. Иначе теорема считается опровергнутой. Для получения тупиковой ДНФ сначала приводят теорему к ДНФ, затем, используя
склеивание и поглощение, пытаются получить тупиковую ДНФ, равную
константе 1. Напомним соотношения склеивания: A  B  A  B  A и поглощения A  A  B  A , A  ( A  B)  A .
Рассмотрим пример. Воспользуемся теоремой предыдущего примера:
F  [ x  y  z ]  [ z  p]  [ x  z ]  [ z  y ]  z  p  [ x  y  z ]  [ z  p]  [ x  z ]  [ z  y ]  [ z  y ]  z  p 
 x y z  z p  x  z  z  y  z y  z p .
ДНФ получена. Далее используем склеивание и поглощение. Так как
z  p  z  p  z , склеим второе и шестое слагаемые. Кроме того, пятое
слагаемое поглощается вторым: z  z  y  z . В результате получим:
F  x  y  z  z  x  z  z  y – дальнейшее склеивание и поглощение невозможно. Для продолжения упрощения расклеим третье слагаемое:
x  z  x  z  y  x  z  y . Получим: F  x  y  z  z  x  z  y  x  z  y  z  y . Затем склеим первое и третье слагаемые x  y  z  x  y  z  y  z . Получим:
F  y  z  z  x  z  y  z  y . Далее склеим первое и четвертое слагаемые
y  z  y  z  z . Получим: F  z  z  1 .
В результате эквивалентных преобразований получена константа 1,
следовательно, теорема доказана. В процессе получения тупиковой ДНФ
иногда требуется расклеивать слагаемые ДНФ, что представляет собой
творческий процесс. Заранее нельзя предсказать, какое слагаемое необходимо расклеивать. Наличие творческого процесса делает данный метод
непригодным, хотя использование ЭВМ позволяет перебрать все возможные варианты расклеивания. Но данный подход представляется вычислительно громоздким, поэтому метод приведения к ДНФ не используют на практике.
Для доказательства теорем более приемлемы методы доказательства
теорем от противного, в том числе метод приведения к КНФ и метод резолюций. В обоих методах опровергают отрицание теоремы.
51
2.4.4. Доказательство теорем с использованием мультипликативного
метода приведения отрицания теоремы к КНФ. В этом методе доказательства теорем в отрицании теоремы раскрывают скобки и пытаются как
можно скорее получить тождественно-ложную формулу, т. е. константу 0.
Рассмотрим пример. Докажем теорему предыдущего примера, опровергнув ее отрицание.
F  [ x  y  z]  [ z  p]  [ x  z]  [ z  y]  z  p .
Сначала перейдем в булеву алгебру:
F  [ x  y  z ]  [ z  p]  [ x  z ]  [ z  y  z  y ]  [ z  p] .
Перемножая второй дизъюнкт с четвертым, получим:
F  [ x  y  z ]  [ z  y  p  z  y  p  z  y]  [ x  z ]  [ z  p] .
Перемножая второй дизъюнкт с четвертым, получим:
F  [ x  y  z ]  [ z  y  p  z  y]  [ x  z] .
Перемножая второй дизъюнкт с первым, получим:
F  [ x  z  y  x  p  z  y  x  z  y]  [ x  z]  0 .
Отрицание теоремы – тождественно-ложная формула, значит сама
теорема доказуема.
2.4.5. Доказательство теорем по методу резолюций логики высказываний. Доказательство теоремы по методу резолюций состоит из двух
этапов. На первом этапе отрицание теоремы приводят к КНФ. Для скорейшего получения КНФ рекомендуется использовать соотношение дистрибутивности, позволяющее переходить от участков формулы в виде
ДНФ к виду КНФ без использования двойного отрицания этих участков.
Соотношение дистрибутивности имеет вид:
a  b + c  d = (a + c)  (a + d)  (b + c)  (b + d).
По завершению первого этапа, отрицание теоремы имеет вид:
F  F1  F2  Fn , где F1  F2  Fn – элементарные дизъюнкции.
На втором этапе элементарные дизъюнкции (дизъюнкты) используют как аксиомы формальной теории. Затем осуществляют резолютивный
вывод: среди дизъюнктов производят поиск пары дизъюнктов, содержащих контрарные пары атомов. Допустим, такая пара найдена, то есть
среди дизъюнктов имеются два: Fi  A  x , F j  B  x . В этом случае пара дизъюнктов выводит новый дизъюнкт: Fk  A  B . Этот факт записывают так: Fi , F j  Fk , и Fk добавляют в множество дизъюнктов, образующих отрицание теоремы. Существует два частных случая резолютивного вывода:
1) если Fi  С  A  x и F j  С  B  x , то Fk  С  A  B,
52
2) если Fi  x и F j  x , то Fk  0 .
Резолютивный вывод используют вплоть до появления пустого
дизъюнкта Fk  0 . Если пустой дизъюнкт удается получить, то теорема
считается доказанной.
Рассмотрим пример. Пусть, отрицание теоремы имеет вид:
F  [ x  y  z]  [ z  p]  [ x  z]  [ z  y]  z  p 
 [ x  y  z]  [ z  p]  [ x  z]  [ z  y  z  y]  [ z  p] .
Используем закон дистрибутивности:
F  [ x  y  z ]  [ z  p]  [ x  z ]  [ z  z ]  [ z  y ]  [ y  z ]  [ y  y ]  [ z  p ] ,
F  [ x  y  z ]  [ z  p]  [ x  z ]  [ z  y ]  [ y  z ]  [ z  p ] .
КНФ получена.
Множество дизъюнктов имеет вид:
{ F1  x  y  z F2  z  p , F3  x  z , F4  z  y , F5  y  z , F6  z  p }
Используем резолютивный вывод:
F2 , F6 F7  z ,
F7 , F3 F8  x ,
F1, F8 F9  y  z ,
F9 , F7 F10  y ,
F10 , F4 F11  z ,
F11, F7 F12  0 .
Получен пустой дизъюнкт – теорема доказана.
2.5. Задачи для самостоятельного решения
1. Пользуясь лекционным материалом, дать определения терминов:
53
1) исчисление высказываний,
14) вывод (доказательство),
2) содержательное исчисление вы- 15) гипотеза формальной теории,
сказываний,
16) исчисление высказываний,
3) выполнимая формула,
17) содержательное исчисление вы4) опровержимая формула,
сказываний,
5) тождественно-истинная формула, 18) выполнимая формула,
6) тождественно-ложная формула, 19) опровержимая формула,
7) принцип логического следова- 20) принцип логического следования,
ния,
8) посылки и заключение,
21) посылки и заключение,
9) мультипликативные методы до- 22) мультипликативные методы
казательства теорем,
доказательства теорем,
10) формальные теории,
23) формальные теории,
11) аксиома,
24) аксиома,
12) правило вывода,
25) правило вывода,
13) непосредственно
выводимая 26) непосредственно выводимая
формула,
формула,
27) вывод (доказательство),
36) закон тождества,
28) гипотеза формальной теории,
37) теорема о введении импликации,
29) теорема формальной теории,
38) теорема дедукции,
30) общезначимая аксиома,
39) доказательство по индукции,
31) общезначимая формальная тео- 40) база индукции,
рия,
41) правило резолюций,
32) непротиворечивая формальная 42) контрарная пара,
теория,
43) пустой дизъюнкт,
33) аксиоматизируемое множество, 44) резольвента,
34) разрешимая формальная теория, 45) метод резолюций,
35) Modus ponens (правило отделе46) теорема формальной теории,
ния),
2. Формализовать теоремы:
1) «Известно, что если светит солнце, но сейчас зима, то холодно,
если же сейчас не зима и холодно, то солнце не светит, кроме того, если
не холодно и светит солнце, то сейчас зима. Пусть в настоящее время
светит солнце или сейчас не зима или холодно. Доказать, что в этом случае солнце светит тогда и только тогда, когда зима»;
2) «Известно, что быть умной и отличницей эквивалентно тому,
чтобы быть дочерью директора и не быть умной, кроме того, если быть
умной и не быть отличницей, то будешь дочерью директора. Пусть или
быть умной, или отличницей. Доказать, что в этом случае либо быть отличницей либо, быть умной и быть дочерью директора».
3. Доказать или опровергнуть теоремы из задания 2 по методу таблиц истинности.
54
4. Дополнить аксиомы теоремы из задания 2, чтобы теоремы были
доказуемы.
5. Доказать теоремы из задания 2 по методу приведения к ДНФ.
6. Формализовать отрицания теорем из задания 2.
7. Опровергнуть отрицания теорем из задания 6 по методу приведения к КНФ.
8. Привести к КНФ следующие конструкции:
1) xy  zp ,
2) xy  z  p .
9. Получить множество дизъюнктов для отрицаний теорем из задания 6.
10. Доказать теоремы из задания 2 по методу резолюций.
11. Используя Modus ponens, доказать следующие теоремы ФИВ:
1)
2)
A  A,
A  ( A  B) ,
3)
( B  A)  ( A  B) ,
4)
A  B   A  B .


12. Ответить на следующие вопросы:
1) какой особенностью должны обладать правила вывода формальных теорий?
2) какие классы формул логики высказываний вы знаете?
3) когда лучше пользоваться тем или иным методом доказательства?
4) в чем отличие аксиом от гипотез?
5) объясните принцип работы дедуктивных методов;
6) что можно сказать, если пустой дизъюнкт не удается получить?
7) полезен ли для метода резолюций дизъюнкт C  C ?
8) чем служит множество дизъюнктов для формальной теории?
55
3.
ВАРИАНТЫ ЗАДАНИЙ СЕМЕСТРОВЫХ РАБОТ
Задание 1. Формализовать высказывание:
1. «Гора идет к Магомету тогда и только тогда, когда Магомет не
идет к горе. При этом, если Магомет не идет к горе, то либо гора идет к
Магомету, либо Магомет – не Магомет. Значит, в любом случае верно,
что Магомет не идет к горе или Магомет – Магомет».
2. «Задача не имеет решения, но она дана в качестве экзаменационной, поэтому, если такая задача попадется на экзамене, о стипендии не
мечтаешь, а мечтаешь о службе в рядах вооруженных сил. Кроме того, если мечтаешь выйти замуж, то не мечтаешь о службе в рядах вооруженных
сил. Из всего вышесказанного видно, что либо мечтаешь о службе в вооруженных силах и задача не имеет решения, либо мечтаешь выйти замуж».
3. «Если старик поймал золотую рыбку, а старуха жива, то рыбку
сразу отпускают или съедают, если же старик поймал золотую рыбку, а
старуха не жива, то старику повезло, кроме того, если старик не поймал
золотую рыбку, то невод пуст. Значит, либо невод пуст или старуха жива,
либо старику повезло».
4. «Если гриб красно-белый и гриб съесть, то посинеешь, если же
гриб не красно-белый, то, если гриб съесть, то не посинеешь. Но тогда не
посинеешь, если гриб не красно-белый или гриб не съесть».
5. «Если дискриминант больше нуля, то уравнение имеет два корня,
если же дискриминант не больше нуля, то уравнение не имеет два корня,
а уравнение имеет один корень или не имеет корней. Из всего вышесказанного следует, что уравнение не имеет корней тогда и только тогда, когда дискриминант не больше 0».
6. «Музыку слушают тогда и только тогда, когда музыка звучит,
если же музыку не слушают, то она или звучит или не звучит, если же
музыка не звучит, то музыку не слушают. Отсюда вывод: музыка не звучит или ее не слушают».
7. «Если собака лает, то она не кусает, если же она кусает, то, либо
собака не лает, либо потерпевший глух. Значит, если собака не кусает и
потерпевший не глух, то собака кусает тогда и только тогда, когда она не
лает или потерпевший глух».
8. «Если книга не читается, то либо не надеты очки, либо неизвестен язык или книга перевернута. При этом, если язык известен или надеты очки, то книга не читается тогда и только тогда, когда она перевернута. Значит, либо книга перевернута, либо не надеты очки или, либо книга
не перевернута, либо известен язык».
9. «Война будет, если много голодных или много молодых, если же
не много голодных, но много молодых, значит, будет праздник. Но тогда,
56
либо будет праздник, либо будет война. Кроме того, праздника не будет
тогда и только тогда, когда будет война».
10. «Если оделся тепло, то не замерзнешь, если же замерзнешь, то не
оделся тепло, тогда или не замерзнешь, или не оделся тепло, но не замерзнуть и одеться тепло это не одно и то же, даже если верно, что не
оделся тепло».
11. «Если небо голубое и листья зеленые, то сейчас лето или сейчас
весна. Если же листья не зеленые, то не верно, что сейчас лето или весна,
кроме того, если небо не голубое, то сейчас весна. Из всего вышесказанного следует, что, либо сейчас весна и листья зеленые, либо сейчас лето и
небо голубое».
12. «Если опоздать на поезд, то ехать на автомобиле, если не ехать
на автомобиле, то экономить бензин, если не опоздать на поезд, то тоже
экономить бензин, кроме того, если не ехать на автомобиле, то не опоздать на поезд. Значит, в любом случае экономить бензин».
13. «Если наша команда не проиграет, то их команда либо проиграет, либо сыграет вничью. Если же их команда не проиграет и не сыграет
вничью, то наша команда проиграет. Но тогда их команда проиграет –
это то же самое, что и наша команда не проиграет, и их команда не сыграет вничью».
14. «Если человек вегетарианец, то он либо ест бананы, либо пьет
сок, тогда если человек не ест бананы и не пьет сок, то человек не вегетарианец. Человек ест бананы тогда и только тогда, когда он не пьет сок».
15. «Курица не летает и курица несет яйца, кроме того, куриные яйца вкусные, значит, если курица летает, то либо курица несет яйца и они
невкусные, либо курица не несет яйца и они вкусные или невкусные».
16. «Тело падает тогда и только тогда, когда тело брошено вниз или
вверх, причем, если тело не брошено вниз, то оно брошено вверх, а если
тело брошено вверх, то оно не брошено вниз. Тогда, если тело не падает,
то тело брошено вниз – это то же, что и тело не брошено вверх».
17. «Дом либо построят, либо оставят недостроенным, при этом, если дом построят, то жильцы останутся довольными, если же дом оставят
недостроенным, то дом не построят и жильцы не останутся довольными.
Но тогда не верно, что жильцы не останутся довольными и дом построят
или оставят недостроенным».
18. «Звезды и луна светят, если не светит солнце, солнце светит
только тогда, когда день. Кроме того, луна светит тогда, когда не день.
Все это верно, если звезды светят тогда и только тогда, когда не день».
19. «Если человек старый, то он болеет. Если человек болеет, то он
не играет в хоккей. Если человек играет в хоккей, то он либо не старый,
либо не болеет. Все это то же, что и человек не болеет или не играет в
хоккей».
57
20. «Если корабль утонет, то, если на корабле есть люди, то людей
найдут мертвыми, если же на корабле нет людей, то людей не найдут
мертвыми. При этом корабль утонет тогда и только тогда, когда на корабле есть люди. Поэтому либо корабль не утонет, либо людей найдут
мертвыми».
21. «Если в лесу страшно и если заблудиться, то испуг неизбежен,
но если в лесу не страшно, то не верно, что испуг неизбежен. При этом
если не заблудиться, то не верно, что испуг неизбежен. Тогда испуг неизбежен тогда и только тогда, когда в лесу страшно».
22. «Верно, что если много есть, то поправишься, если иметь предрасположенность к полноте, если же не много есть и иметь предрасположенность к полноте, то тоже поправишься. Все это означает: либо поправишься, либо не иметь предрасположенность к полноте или не много
есть».
23. «Вести здоровый образ жизни и не болеть – не одно и то же, так
как не вести здоровый образ жизни и болеть одновременно – не является
неверным».
24. «Если любить и быть любимым, то будешь счастливым, значит
быть счастливым и любить – это то же самое, что и быть любимым и
быть счастливым, если невероятно любить и не быть любимым. Отсюда
вывод: будешь несчастливым, если либо любить, либо быть любимым».
25. «Если давление понижается, то газ не сжимается, если же газ
сжимается, то взрыва не избежать, при этом либо понижается давление,
либо взрыва не избежать. Кроме того, газ не сжимается и давление не понижается, если взрыв избежать».
26. «Если вырубить леса, то будет мало кислорода, но не будет пожаров и появится свободное место. Если же не будет пожаров, то либо не
будет мало кислорода, либо не появится свободное место. Кроме того,
если не вырубить леса и появится свободное место, то будут пожары или
будет мало кислорода».
27. «Идет дождь и на улице мокро, идет снег и на улице мокро. Это
значит, что если на улице не мокро и не идет дождь, то не верно, что идет
снег или дождь или на улице мокро. Кроме того, если на улице мокро, то
не может быть, что идет дождь и не идет снег».
28. «Если верить слухам, будет новый президент, кроме того, действительно, правда, что будет новый президент. Это значит, что либо верить слухам, либо не верить слухам и нового президента не будет».
29. «Если вода холодная, то скоро зима, кроме того, если скоро зима,
то река замерзнет. Если же река замерзнет, то вода не холодная, а холодный лед. Все это означает, что, если скоро зима, то вода не холодная».
30. «Если огонь горит и дрова сухие, то сейчас темно или холодно.
Если же дрова не сухие, то не верно, что сейчас темно или холодно, кро58
ме того, если огонь не горит, то холодно. Из всего вышесказанного следует, что либо холодно и дрова сухие, либо сейчас темно и огонь горит».
Задание 2. Сопоставить высказывание произвольной природы:
1. x  x  1 .
16.
x yxy .
2. x  x  x .
17.
x  ( x  x  y) .
3. x  x .
18.
x  x  ( x  y) .
4. x  x  0 .
19.
( x  y)  x  y .
5. x  x  1 .
6. x  x  x .
20.
( x  x)  x .
7. x  x .
21.
x  ( x  x  y) .
8. x  x  0 .
22.
x  x  ( x  y) .
9. ( x  x)  x .
23.
x  ( x  y  x  y) .
10. ( x  y)  x  y .
24.
( x  y)  ( x  y) .
11. x  y  x  y .
25.
( x  y)  ( x  y) .
12. x  y  x  y .
26.
x  ( x  y  x  y) .
13. x  y  x  y .
27.
14. x  y  x  y .
28.
29.
30.
15. x  y  x  y .
1.
2.
( x  y )  ( x  y )  ( y  x) .
( x  y )  ( x  y )  ( y  x) .
( z  x  y  x  z  y)  ( z  x  y  x ) .
( z  x  y  x  z  y)  ( z  x  y  x ) .
Задание 3. Получить новое тождество по принципу двойственности:
x  x 1.
16.
x  ( x  y  x  y) .
xx  x .
17.
( x  y )  ( x  y )  ( y  x) .
3.
4.
5.
6.
x  x.
x x 0.
x  x  1.
xx  x.
18.
19.
20.
7.
x y  x  y .
8.
x y  x  y .
21.
22.
9.
x y  xy.
10. x  y  x  y .
11. x  y  x  y .
12. ( x  x)  x .
13. x  ( x  x  y) .
23.
24.
( x  y )  ( x  y )  ( y  x) .
( z  x  y  x  z  y)  ( z  x  y  x ) .
( z  x  y  x  z  y)  ( z  x  y  x ) .
( x  x)  x .
x  y  x y .
x  ( x  x  y) .
x  x  ( x  y) .
26.
27.
( x  y)  x  y .
( x  y)  ( x  y) .
( x  y)  ( x  y) .
28.
xx.
25.
59
29.
xx  0.
14. x  x  ( x  y) .
30.
( x  y)  x  y .
15. x  ( x  y  x  y ) .
Задание 4. Решить задачу анализа для РКС:
1)
2)
3)
4)
5)
6)
7)
8)
60
9)
10)
11)
12)
13)
14)
61
15)
16)
17)
18)
19)
20)
21)
22)
62
23)
25)
24)
26)
27)
28)
29)
30)
Задание 5. Получить таблицу истинности для формулы из задания 4.
63
Задание 6. Получить СДНФ и СКНФ формулы из задания 4 по
таблице истинности.
Задание 7. Получить СДНФ и СКНФ формулы из задания 4, используя эквивалентные преобразования.
Задание 8. Минимизировать функцию, используя метод карт
Карно.
Для вариантов 1, 4, 5, 6, 7, 9, 10, 12, 16, 17, 20, 23, 25, 28 необходимо
использовать таблицу истинности, полученную в результате выполнения
задания 5.
Для вариантов 2, 3, 8, 11, 13, 14, 15, 18, 19, 21, 22, 24, 26, 27 следует
использовать отрицание таблицы истинности, полученной в результате
выполнения задания 5.
Задание 9. Указать возможные пути склеивания по методу кубов.
Для вариантов 1, 4, 5, 6, 7, 9, 10, 12, 16, 17, 20, 23, 25, 28 необходимо
использовать таблицу истинности, полученную в результате выполнения
задания 5.
Для вариантов 2, 3, 8, 11, 13, 14, 15, 18, 19, 21, 22, 24, 26, 27 следует
использовать отрицание функции из таблицы истинности, полученной в
результате выполнения задания 5.
Задание 10. Решить задачу синтеза РКС.
Для вариантов 1, 4, 5, 6, 7, 9, 10, 12, 16, 17, 20, 23, 25, 28 необходимо
синтезировать РКС, используя тупиковую ДНФ варианта, полученную в
результате выполнения задания 8.
Для вариантов 2, 3, 8, 11, 13, 14, 15, 18, 19, 21, 22, 24, 26, 27 следует
использовать СДНФ, полученную в результате выполнения задания 6.
Задание 11. Формализовать теорему:
1. «Гора идет к Магомету тогда и только тогда, когда Магомет не
идет к горе. При этом если Магомет не идет к горе, то, либо гора идет к
Магомету, либо Магомет – не Магомет. Пусть, либо Магомет умер, либо
гора идет к Магомету и Магомет – Магомет. Тогда верно ли, что либо
Магомет умер, либо гора идет к Магомету?»
2. «Если светит луна и листья зеленые, то сейчас лето или светло.
Если же листья не зеленые, то не верно, что сейчас лето или светло, кроме того, если не светит луна, то сейчас светло. Пусть луна не светит или
неверно, что в случае, если сейчас лето, то светло. Верно ли в этом случае, что светло и листья зеленые или лето и светит луна?»
3. «Если в лесу страшно и если заблудиться, то испуг неизбежен,
но, если в лесу не страшно, то не верно, что испуг неизбежен. При этом
если не заблудиться, то не верно, что испуг неизбежен. Пусть, кроме того, в лесу не страшно или испуг неизбежен. Верно ли, что испуг неизбежен тогда и только тогда, когда в лесу страшно?»
64
4. «Война будет, если много голодных или много молодых, если же
не много голодных, но много молодых, значит, будет праздник. Кроме
того, если будет война, то будет много голодных. Пусть верно, что либо
праздник, либо война. Верно ли, что праздника не будет тогда и только
тогда, когда война и много голодных?»
5. «Звезды и луна светят, если не светит солнце. Солнце светит тогда и только тогда, когда день. Кроме того, луна светит, когда не день.
Тогда верно, что если звезды не светят, то день, если светит луна»
6. «Если старик поймал золотую рыбку, а старуха жива, то рыбку
отпускают или съедают, если же старик поймал золотую рыбку, а старуха
не жива, то рыбку не отпускают, кроме того, если старик не поймал золотую рыбку, рыбку не съедают. Пусть, если рыбку не отпускают, то ее
съедают. Верно ли, что старик не поймал рыбку и ее не съедят, или если
рыбку не отпускают, значит старик ее поймал?»
7. «Если оделся тепло, то не замерз, если же замерз, то посинел и
заболел. Если не посинел, то не оделся тепло и замерз. Пусть посинеть
можно в том и только в том случае, если заболеть. Тогда верно ли, что
замерзнешь, посинеешь и заболеешь?»
8. «Если гриб красно-белый и гриб съесть, то посинеешь, если же
гриб не красно-белый, то если гриб съесть, то не посинеешь. Если гриб не
съесть, то похудеешь. Верно ли, что посинеешь и похудеешь или съесть
гриб – это то же самое, что и посинеть?»
9. «Задача не имеет решения, но она дана в качестве экзаменационной, поэтому если такая задача попадется на экзамене, то мечтаешь о
службе в рядах вооруженных сил. Если задача не дана в качестве экзаменационной или задача имеет решение, то не мечтаешь о службе в рядах
вооруженных сил. Пусть задача попалась на экзамене. Верно ли, что либо
не мечтаешь о службе в рядах вооруженных сил, либо задача имеет решение?»
10. «Если дискриминант больше нуля, то уравнение имеет два корня,
если же дискриминант не больше нуля, то уравнение не имеет два корня,
а уравнение имеет один корень или не имеет корней. Пусть уравнение
имеет либо два корня, либо один корень. Из всего вышесказанного следует, что либо дискриминант больше нуля, либо уравнение имеет один
корень»
11. «Музыку слушают тогда и только тогда, когда музыка звучит,
если же музыку не слушают, то музыка не звучит или звучит, но слушатель глух, если же музыка не звучит, то либо слушатель глух, либо запись
испорчена. Если слушатель глух или запись испорчена, то музыка не звучит. Пусть запись испорчена или слушатель глух. Верно ли, что музыка
не звучит и ее не слушают?»
65
12. «Если собака лает или спит, то она не кусает, если же она кусает
и не спит, то либо собака не лает, либо потерпевший глух. Пусть собака
кусает в том и только в том случае, когда потерпевший глух. Верно ли,
что собака кусает и потерпевший глух?»
13. «Если книга не читается, то либо не надеты очки, либо неизвестен язык или книга перевернута. При этом, если язык известен или надеты очки, то книга не читается тогда и только тогда, когда она перевернута. Пусть книга читается или очки надеты, или язык известен. Верно ли,
что очки надеты и книга перевернута или книга читается?»
14. «Если опоздать на поезд, то ехать на автомобиле, если не ехать
на автомобиле, то сидеть на месте и экономить бензин, если не опоздать
на поезд, то не сидеть на месте и экономить бензин, кроме того, если не
ехать на автомобиле, то не опоздать на поезд. Верно ли, что в любом случае ехать на автомобиле?».
15. «Если наша команда проиграет, то их команда выиграет, а наша
команда не выиграет. Если их команда проиграет, то наша команда выиграет, а их команда не выиграет. Наша команда не выиграет и не проиграет в том и только в том случае, когда не проиграет и не выиграет их команда. Пусть либо наша команда выиграла, либо их команда выиграла.
Верно ли, что либо наша команда не проиграла, либо их команда не проиграла?».
16. «Если получена пятерка, то получено больше четырех и не
меньше пяти. Получено больше четырех тогда и только тогда, когда получена пятерка. Если получена четверка, то получено меньше пяти и не
больше четырех. Пусть получена либо четверка, либо пятерка. Верно ли,
что выпало либо больше четырех, либо меньше пяти?».
17. «Если вечер или ночь, то не день и не утро. Если вечер или утро,
то не день и не вечер. Кроме того, если день, то не ночь, если день, то не
утро. Пусть сейчас либо ночь, либо утро. Верно ли, что сейчас не день и
не вечер?».
18. «Если клавиша нажата, то она не отпущена. Если клавиша отпущена, то буква напечатана и слово дописано. Если клавиша не нажата, то
буква не напечатана и слово не дописано. Пусть, если буква не напечатана, то либо клавиша нажата или клавиша не отпущена, либо слово не дописано. Верно ли, что клавиша не отпущена, нажата и буква напечатана
или слово дописано?».
19. «Если тело нагревается, то оно расширяется, а не сужается. Если
же оно не расширяется, то сужается. Кроме того, если тело охлаждается,
то оно не нагревается и сужается. Пусть тело либо сужается, либо расширяется. Верно ли, что если оно нагревается или расширяется, то оно не
сужается и не охлаждается?».
66
20. «Если звенит звонок, то либо кончается урок и наступает перемена, либо заканчивается перемена. Если же заканчивается перемена, то
не кончается урок и не наступает перемена. Если кончается урок, то
наступает перемена и не заканчивается перемена. Пусть звенит звонок
или кончается урок. Верно ли, что либо наступает перемена, либо заканчивается перемена?».
21. «Если человек вегетарианец, то либо человек ест бананы, либо
человек пьет сок. Если человек ест мясо или не пьет сок и не ест бананы,
то он не вегетарианец. Пусть человек ест бананы тогда и только тогда,
когда человек пьет сок и не ест мясо. Верно ли, что не вегетарианец?».
22. «Если вырубить леса, то будет мало кислорода, но не будет пожаров и появится свободное место. Если же не будет пожаров, и если вырубить леса и появится свободное место, то не будет пожара и не будет
мало кислорода. Верно ли, что леса не вырубят?»
23. «Если ручей высох или замерз, то вода не падает и водопад не
шумит. Водопад шумит тогда и только тогда, когда вода падает. Если ручей замерз, то он не высох. Пусть вода падает или ручей высох. Верно ли,
что либо вода падает, либо ручей высох?»
24. «Если будет катастрофа, то будет или землетрясение, или взрыв.
В случае, если не будет землетрясения и взрыва, катастрофы не будет.
Если будет землетрясение или взрыв, дома будут рушиться. Пусть рушатся дома тогда и только тогда, когда катастрофа. Верно ли, что не будет землетрясения и не будет катастрофы?»
25. «Если Смит победит на выборах, он будет доволен, а если он будет доволен и он плохой борец в предвыборной кампании, то он потеряет
доверие партии. Если Смит не победит на выборах, то он не плохой борец в предвыборной кампании, но все же он потеряет доверие партии.
Верно ли, что Смит победит на выборах, будет доволен и потеряет доверие партии или либо Смит победит на выборах, либо потеряет доверие
партии?»
26. «Если ветер дует и не снят парус, то парус расправлен и лодка
плывет быстро. Если парус снят, то парус не расправлен, а лодка идет
медленно. Кроме того, если ветер не дует, то лодка не плывет быстро.
Пусть либо парус не снят, либо лодка плывет быстро. Верно ли, что не
дует ветер, парус не снят и лодка не идет быстро?»
27. «Альбатроса едят тогда и только тогда, когда съели человека и
ужинают. Если не ужинают, значит не покончат жизнь самоубийством и
не едят альбатроса. Если жизнь не покончат самоубийством, то не ели
человека. Пусть съели человека или покончат жизнь самоубийством.
Верно ли, что поужинали и покончат жизнь самоубийством?»
28. «Если преступник в тюрьме, то рецидива нет. Если преступник
не в тюрьме и отпечатки совпадают, то налицо рецидив. Если есть алиби
67
или преступник в тюрьме, то рецидива нет. Пусть отпечатки совпадают
или нет алиби. Верно ли, что преступник не в тюрьме и нет алиби или на
лицо рецидив, или же преступник в тюрьме и рецидива нет?»
29. «Если я поеду автобусом, то пропущу назначенное свидание. Если я пропущу назначенное свидание и начну огорчаться, то мне не следует ехать домой. Если я не поеду автобусом, то я не начну огорчаться и
мне следует поехать домой. Тогда верно ли, что я поеду автобусом, пропущу свидание и поеду домой или либо я поеду автобусом, либо мне следует поехать домой?»
30. «Если Дума проголосует и президента выберут, то Думу не распустят. Если Думу распустят, то правительство уйдет в отставку. Если
Дума не проголосует, то Думу распустят. Пусть Думу распустят в том и
только в том случае, если президента не выберут. Верно ли, что Думу
распустят и правительство уйдет в отставку?»
Задание 12. Доказать или опровергнуть теорему, формализованную в результате выполнения задания 11, используя метод таблиц
истинности.
Задание 13. Доказать или опровергнуть теорему, формализованную в результате выполнения задания 11, используя мультипликативный метод приведения теоремы к ДНФ.
Задание 14. Доказать или опровергнуть теорему, формализованную в результате выполнения задания 11, используя мультипликативный метод приведения отрицания теоремы к КНФ.
Задание 15. Доказать или опровергнуть теорему, формализованную в результате выполнения задания 11, используя метод резолюций логики высказываний.
68
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ
исчисление высказываний – 34
карты Карно – 22
коммутативность – 11
конструктивный элемент – 25
контрарная пара – 47
конъюнктивная нормальная форма – 14
конъюнкция – 7
логика высказываний – 5
логические связки – 6, 41
логическая функция – 5
логическое следствие – 35
метатеорема – 40
метод кубов – 22
метод Квайна – 23
минимизация – 9
мультипликативные методы – 37
независимая система аксиом – 40
непосредственно выводимая формула – 39
непротиворечивая теория – 40
обобщенное склеивание – 13
общезначимая теория – 40
общезначимая аксиома – 39, 40
отрицание – 6
поглощение – 12
полиномом двоичной алгебры логики – 8
полная алгебра – 10, 11
полная теория – 40
полнота метода резолюций – 48
посылка – 35, 39
правила де Моргана – 12
правило вывода – 38
правило введения импликации – 43
правило замены – 12
правило резолюций – 47
тавтологичность – 38
теорема дедукции – 43
теорема – 34, 39
унарная логическая операция – 6
эквиваленция – 7
упрощение формул – 12
69
правило подстановки – 12
правильно построенные формулы – 7
принцип двойственности – 16
принцип логического следования – 35
приоритет – 8
псевдопространство – 22
пустой дизъюнкт – 48
разделитель – 6
разложение по переменным – 9
разрешимая теория – 40
ранг – 8
резольвента – 47
рекурсивное определение – 7
самодвойственная функция – 16
семантика – 5
семантический анализ – 5
сигнатура – 38
синтаксис – 5
склеивание – 13
сложение по модулю 2 – 7
служебные символы – 41
совершенная дизъюнктивная нормальная форма – 10
содержательное исчисление высказываний – 34, 35
сокращенная ДНФ – 21
составные высказывания – 5
стрелка Пирса – 7
структурная функция схемы – 25
субъективный метод – 21
схема аксиом – 38
схема реализации функции – 25
таблица истинности – 6
тавтология – 40
формула – 5, 38
штрих Шеффера – 7
эквивалентность – 12
эквивалентные преобразования – 12
формальная теория – 38
тупиковая ДНФ – 21
элементарная конъюнкция – 13
элементарная дизъюнкция – 14
СПИСОК ИСПОЛЬЗУЕМЫХ СОКРАЩЕНИЙ
БА – булева алгебра,
ДНФ – дизъюнктивная нормальная форма,
КНФ – конъюнктивная нормальная форма,
ЛВ – логика высказываний,
МР – Modus ponens,
ППФ – правильно построенные формулы,
РКС – релейно-контактная схема,
СДНФ – совершенная дизъюнктивная нормальная форма,
СИВ – содержательное исчисление высказываний,
СКНФ – совершенная конъюнктивная нормальная форма,
ФАЛ – функции алгебры логики,
ФИВ – формальное исчисление высказываний.
70
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
1.
2.
3.
4.
5.
6.
7.
Колчин, А. Ф. Введение в математическую логику / А. Ф. Колчин, С. А. Зыкова. – М.:
Изд-во МГТУ, 1998. – 48 с.
Новикова, Н. М. Основы оптимизации. Курс лекций / Н. М. Новикова. – М.: Изд-во
МГТУ, 1998. – 65 с.
Гладкий, А. В. Математическая логика / А. В. Гладкий. – М.: Изд-во РГГУ, 1998. – 497 с.
Набебин, А. А. Логика и пролог в дискретной математике / А. А. Набебин. – М.: Издво МЭИ, 1994. – 480 с.
Москвинова, Г. И. Дискретная математика для менеджера в примерах и задачах: учеб.
пособие / Г. И. Москвинова. – М.: Логос, 2004. – 238 с.
Кузнецов, О. П. Дискретная математика для инженера / О. П. Кузнецов, Г. М. Адельсон-Вельский. – М.: Энергоатомиздат, 1988. – 480 с.
Санжапов, Б. Х. Математическое моделирование технических объектов и технологий в
нечетких ситуациях / Б. Х. Санжапов, В. А. Камаев. – Волгоград: РПК «Политехник»,
1989.
71
Владимир Владимирович Сургутанов
Олег Олегович Привалов
МАТЕМАТИЧЕСКАЯ ЛОГИКА И ТЕОРИЯ АЛГОРИТМОВ
Часть I
Учебное пособие
Редактор Пчелинцева М. А.
Компьютерная верстка Сарафановой Н. М.
Темплан 2009 г., поз. № 14К.
Подписано в печать 21. 12. 2009 г. Формат 60×84 1/16.
Бумага листовая. Печать офсетная.
Усл. печ. л. 4,5. Усл. авт. л. 4,31.
Тираж 100 экз. Заказ №
Волгоградский государственный технический университет
400131, г. Волгоград, просп. им. В. И. Ленина, 28, корп. 1.
Отпечатано в типографии ВолгГТУ
400131, г. Волгоград, пр. Ленина, 28, корп. 7.
72
Download