Основы математической логики
Высказывания и функции на высказываниях
Математическая логика является разделом дискретной математики, в котором, в частности, формальными методами изучаются высказывания. Широкое применение кроме самой математики этот ее раздел получил при анализе и синтезе логических схем входа и выхода данных в компьютерах и других цифровых устройствах, в частности: связи, видео- и фотоаппаратуры и др.
Определение 4.1. Любое предложение, о смысле которого можно сказать, истинно оно или ложно, называется высказыванием.
Таким образом, согласно определению, предложение «Я иду на занятия» является высказыванием, а предложения «который час?», «сколько это стоит?», «куда ведет эта дорога?» высказываниями не являются. В соответствии с этим же определением высказывание может иметь два значения: «истина» либо «ложь» или «да» — «нет».
Высказывания могут принадлежать любой предметной области: математике, технике, экономике, социологии, административному управлению, спорту и т.д. Например, высказывания «3 > 5» и «5 > 3», первое из которых ложно, а второе истинно, принадлежат области математики. Высказывание «Спартак» победит «Динамо» — из области спорта, истинно оно или ложно, определяется совокупностью многих факторов. Высказывание «документ получен» — из области административного управления, истинно оно или ложно, зависит от того, какой документ, когда и кем получен, т.е. также от совокупности многих факторов.
Определение 4.2. Высказывания, сформулированные в некоторой предметной области, называются первичными высказываниями и именуются атомами.
Таким образом, все приведенные выше высказывания — первичные, т.е. атомы.
Для того, чтобы перейти от первичных высказываний к формальным методам их изучения вводятся логические переменные, которые могут получать два значения: «истина» или «ложь», в зависимости от тех или иных факторов. При этом, от способов получения значений логических переменных абстрагируются.
Пусть, например, переменные х, - а > 0 и х2 - а < 1, где а — действительная переменная. Значения логических переменных х,, х2 истинны или ложны в зависимости от значения а. Так, если а - 3, то х, истинно, а х2 ложно. Если же а - -2, то х, ложно, а х2 истинно. Ограничиваясь только указанными значениями логических переменных, можно перейти от более простых к более сложным высказываниям. Для этого на конечном множестве логических переменных х,, х2, ..., х„, принимающих значения «истина»—«ложь» вводятся различные функции.
Определение 4.3. Функция Р(хх, х2, ..., х„) множества логических переменных х,, х2, ..., х„, принимающая значения только «истина» либо «ложь», называется логической функцией.
Определение 4.4. Логические переменные и функции называются вторичными высказываниями, или молекулами.
Работа с молекулами позволяет исследовать свойства логических функций, выполнять обобщения. А затем, в случае необходимости, возвращаться к первичным высказываниям, т.е. атомарному уровню. Например, высказывание х, = а > 0 истинно только в том случае, когда а принадлежит интервалу (0, °°), а высказывание х2 = а < 0 принимает значение «истина» только тогда, когда принадлежит интервалу (-°° 0). Таким образом, располагая переменными а, можно поставить вопрос о построении функции УГ(Х|, х2), которая принимает значение «истина» тогда и только тогда, когда оба аргумента х,, х2 истинны безотносительно к их первичному смыслу. Построив такую функцию, можно вернуться к первичным высказываниям (атомарному уровню) и поставить вопрос о таком высказывании, которое бы соответствовало данной функции. В нашем случае оно звучит так: «переменная а принадлежит интервалу [0,1]».
Как и любая функция, всякая логическая функция п переменных может быть задана таблицей. В левой части этой таблицы перечисляются все наборы значений логических переменных, а в правой — значения функции на этих наборах. При этом для сокращения записей «истина»—«ложь» эти слова кодируются числами 1,0.
*1 |
ь |
*3 |
У7 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
Таким образом, табличное представление логической функции — это таблица, строки которой состоят из последовательностей нулей и единиц. Пример такой таблицы, задающей функцию трех переменных Г(х{, х2, х3) показан на рис. 4.1.
Следует сказать, что числовые значения таблицы не являются числами в обычно понимаемом смысле. Они не определяют количество и, тем более, не допускают никаких арифметических операций. Они используются лишь для сокращения записей И ЯВЛЯЮТСЯ крат- Рис. 4.1. Табличное пред-чайшим кодом для ввода в ЭВМ, значе- давление логической Функ-
нии «истина»—«ложь». Количество раз- р р
личных наборов значений логических
переменных, т.е. различных комбинаций нулей и единиц, зависит от числа логических переменных, т.е. количества компонент вектора х,, х2,..., хп. В связи с тем, что каждая переменная принимает только два значения, по общему правилу комбинаторики, а именно, правилу произведения, получаем, что общее число комбинаций равно 2". Для каждой комбинации логическая функция Сможет принимать два значения: «истина» либо «ложь». Поэтому по тому же правилу произведения получаем, что общее число значений логической функции У7 при длине вектора аргументов п равно 22'. В зависимости от п это число очень быстро растет. Так, для п - 2 оно равно 16, для /7 = 4— 65 536 и т.д. Поэтому, несмотря на то, что при любом конечном значении п число всех функций У7конечно, работа с ними затруднена уже при /7 = 10. В дальнейшем мы рассмотрим преимущественно функции одной х, и двух х,, х2 переменных, а также некоторые функции трех аргументов.
Любая функция может быть представлена операцией, если все ее значения лежат в области определения этой же функции. В этом смысле все логические функции математической логики могут рассматриваться как операции. На этом основании термины «функция» и «операция», употребляющиеся в тексте, считаются эквивалентными. Кроме этого, табличной форме задания функции часто соотносят термин «таблица истинности», который также будет употребляться в дальнейшем. Наборы значений переменных хх,х2, ..., хп, на которых логическая функция принимает значение 1, т. е. /(х,, х2 ,..., хп) = 1, нередко называют единичными наборами функции, а множество единичных наборов — единичным набором F. Соответственно наборы значений переменных х,, х2, хп, на которых F = 0, называют нулевыми наборами F.
Переменная х, функции /(х,, ..., хм, х,, х/+1,..., хп) называется несущественной (фиктивной), если /(х,, ..., хм, 0, х/+1, ..., х„) = /(х,, ..., x,_j, 1, xJ+1,..., х„)при любых значениях остальных переменных, т. е. если изменение значения х,. в любом наборе значений х,, ..., хп не меняет значения функции. В этом случае функция /(х,, ..., хп) по существу зависит от (п - 1)-й переменной и может быть представлена функцией С(х1? ..., хм, х/+1, ..., хп). Говорят, что функция G получена из функции /’удалением фиктивной переменной, а функция / получена из С введением фиктивной переменной.
Смысл удаления фиктивных переменных очевиден: они просто являются лишними. Однако иногда бывает полезно вводить фиктивные переменные. В частности, число всех логических
функций 22" справедливо именно для того случая, когда учитываются все функции с фиктивными переменными.
Логических функций одной переменной — четыре. Они приведены в таблице на рис. 4.2.
Функции F0 и F3 не зависят от значения х, т. е. х для них фиктивная переменная. Функция /, «повторяет» х, т. е. /3(х) = х. Функция F2 называется отрицанием х или функцией
F0 |
Fy |
F2 |
F2 |
|
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
Рис. 4.2. Таблица истинности логической функции одной переменной
«НЕ», обозначается х и читается «не х». Значение ее противоположно значению х. Если значение х = 1, то х = 0 и наоборот. Все логические функции одной переменной называются унарными операциями на множестве кодов {0, 1}.
Логических функций двух переменных (бинарных операций) — шестнадцать. Они приведены в таблице на рис. 4.3.
X, |
*2 |
^0 |
^3 |
Е4 |
ь |
^0 |
^3 |
^5 |
|||||||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
Рис. 4.3. Таблица истинности логических функций двух переменных
Функции /’о, Р15 не зависят от значений х,, х2, т. е. х,, х2 для них фиктивные переменные. Функция Т7! называется конъюнкцией х, и х2 и обозначается х,&х2 или х, лх2. Она имеет значение «истина» только в одном случае, когда значения х,, х2 истинны, т. е. х, = х2 = 1. Поэтому ее часто называют функцией (операцией) «И». Еще одно ее название — «логическое умножение», поскольку ее таблица истинности совпадает с таблицей умножения чисел 0 и 1. В практических условиях, в частности, при составлении программ для ЭВМ на языках высокого уровня, конъюнкция часто используется, например, в таких выражениях: «если а е X и Ье У, то...».
Рассмотрим высказывание У = х, д х2, где х, = а е А, х2 = -аеВиЛ, В — произвольные множества. По определению конъюнкции это высказывание истинно только тогда, когда оба значения х,, х2 истинны, т. е. х, = 1, х2 = 1. Но это условие выполняется только в том случае, когда элемент а одновременно принадлежит множествам А, В, т.е. их пересечению АГ В. Иными словами, при интерпретации конъюнкции относительно множеств она эквивалентна пересечению этих множеств. Причем это справедливо для х, дх2 л ... л хп = л"=|х,-. Функция называется дизъюнкцией х, и х2 и обозначается х, vx2. Она имеет значение «истина»
в тех случаях, когда хотя бы одна из переменных х,, х2 истинна или истинны обе переменные. Поэтому ее часто называют операцией «или».
Пусть имеется высказывание у - х, vx2, где х, - а е А, х2 = а е В, А, В — произвольные множества. По определению дизъюнкции это высказывание истинно только тогда, когда либо х, = 1 и х2 = 0, либо х, = 0 и х2 = 1, либо х, = 1 и х2 = 1. Но эти условия выполняются в тех случаях, когда элемент а принадлежит либо множеству А, либо множеству В, либо одновременно двум множествам, что равносильно принадлежности а объединению множеств А, 5, т. е. А[]В. Причем это справедливо для
X, = у”=1 X,.
Функция Р6 называется разделительной дизъюнкцией х,, х2, исключающим «ИЛИ» либо сложением по модулю два. Из таблицы истинности (рис. 4.3) видно, что она принимает значение «истина» в двух случаях: когда один операнд х, или другой операнд х2 истинны, но не оба вместе. Отсюда происходит название операции «исключающее или». Она имеет обозначение ©. Интерпретация разделительной дизъюнкции относительно множеств состоит в том, что объединение множеств не включает их пересечения.
Функция Т9 называется эквивалентностью или равнозначностью и обозначается х, ~ х2. Она имеет значение «истина» только
в тех случаях, когда оба ее аргумента истинны либо ложны. В других случаях эта функция имеет значение «ложь».
Функция Р$ называется стрелкой Пирса и обозначается так: 4.
Она принимает значение «истина» только тогда, когда ее операнды х,, х2 ложны. По таблице истинности она инверсна функции
Р7, т.е. противоположна Р7.
Функцию Р1 з толкуют как операцию импликации и обозначают так: —к По отношению к доказательствам эта функция соответствует фразе: «если А..., то В...». Такая фраза ложна только в том случае, когда из «истины» следует «ложь», что и показывает таблица истинности этой функции.
Функция Р,4 — это штрих Шеффера. Она имеет обозначение
х, | х2 и инверсна функции Р,. Ее истинное значение утверждает, что «кто-то лжет». Функция имеет значение «ложь» только в одном случае, когда оба операнда х,, х2 истинны.
Остальные логические функции двух аргументов специальных названий не имеют и легко выражаются через рассмотренные выше функции.
Среди логических функций трех аргументов х1, х2, х3 широко известной является мажоритарная функция, на основе которой в свое время строились комбинационные схемы элементов вычислительной техники. Таблицы истинности мажоритарной функции Рт и инверсной к ней функции У7,,, приведены на
Рис. 4.4. Таблицы истинности мажоритарной /%„ и инверсной Тт к ней функции трех переменных
X, |
ъ |
*3 |
рт |
рт |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
рис. 4.4. Мажоритарная функция Рт задана на восьми наборах (комбинациях) ее аргументов. Она принимает значение «истина» в тех случаях, когда два или три ее аргумента истинны. Иными словами, таблица ее истинности отражает торжество большинства единиц. Отсюда, собственно говоря, и происходит ее название — мажоритарная, т. е. отображающая большинство.