
- •Логические основы построения компьютера
- •Основные понятия
- •Примеры
- •Примеры
- •Таблицы истинности
- •Таблицы истинности
- •Понятие булевой функции
- •Понятие булевой функции
- •Понятие булевой функции
- •Понятие булевой функции
- •Формулы для преобразования булевых функций
- •Физическая интерпретация
- •7.5. Упражнения на использование языка логики высказываний
- •Интересно отметить, что и рыцари и лжецы могут произносить фразу "Я - рыцарь".
- •УпроститьПримерыданное выражение:задач
- •Примеры задач
- •Вопросы:

Логические основы построения компьютера
Лекция 7.

Основные понятия
Высказывание - это мысль, выраженная повествовательным предложением и могущая быть истинной или ложной.
Аналитическое высказывание - это высказывание, истинность или ложность которого может быть установлена исключительно на основе анализа его грамматической или логической структуры. Примерами истинных аналитических высказываний являются логические законы.
Логика высказываний - это раздел логики, в котором вопрос об истинности или ложности высказываний рассматривается и решается на основе изучения способа построения высказываний из элементарных (далее не разлагаемых и не анализируемых) высказываний с помощью логических операций конъюнкции ("и"), дизъюнкции ("или"), отрицания ("не"), импликации ("если..., то...") и др.
Логику высказываний, задаваемую системой постулатов (аксиом и правил вывода), называют исчислением высказываний.
Суждение - форма мышления, представляющая собой сочетание понятий, из которых одно (субъект) определяется и раскрывается через другое (предикат).
Логический закон - название законов, образующих основу логической дедукции; схема логической связи высказываний, выражаемая общезначимой формулой логики (аксиомой или теоремой), убедительность которой вытекает из одного только истолкования входящих в нее логических операций и по существу не связана с фактической истинностью "наполняющих" ее высказываний.
Тождественная истинность - свойство сложных высказываний быть истинными в силу своей формально-логической структуры и смысла используемых в них логических операций. Будучи независимыми от содержания входящих в них конкретных высказываний, тождественно-истинные высказывания выступают в качестве логических законов.

Примеры
Высказывание может быть простым или сложным, истинным или ложным.
Высказывание "Идет дождь" - простое, а истинно ли оно зависит от того какая погода за окном. Если льет дождь, то высказывание - истинное, а если палит солнце, то высказывание "Идет дождь" будет ложным.
Возьмем для примера более определенное (в смысле значения истинности) высказывание "Луна - спутник Земли" - простое и истинное. А вот "Солнце - спутник Земли" будет ложным
высказыванием (и простым).
Усложняем задачу: "Луна - спутник Земли и Солнце - спутник Земли". На этот раз высказывание
сложное, т.к. оно состоит из двух простых, и ложное, так устроена логическая (пропозициональная) связка "и" (конъюнкция). Если она объединяет истинные высказывания -
сложное высказывание будет истинным, а во всех остальных случаях - ложным.
А сколько всего случаев? Каждое высказывание может быть истинным или ложным, если рассматривать два высказывания, то получим 4 комбинации:
оба истинные,
оба ложные,
одно истинное, другое ложное,
и наоборот.
Рассмотрим высказывание "Луна - спутник Земли или Солнце - спутник Земли" - сложное и истинное. Связка - "или" (дизъюнкция), принимает ложное значение только когда все входящие
высказывания - ложные, если хотя бы одно истинное, то все высказывание - истинное.
Но мы еще можем превратить высказывание "Луна - спутник Земли" в ложное, а "Солнце - спутник Земли" в истинное, если скажем "Неверно, что Луна - спутник Земли" и "Неверно, что Солнце - спутник Земли". Так действует на высказывания связка "не" (отрицание): истинные
высказывания превращает в ложные, а ложные - в истинные. Теперь высказывание "Луна - спутник Земли и неверно, что Солнце - спутник Земли" - истинное, "Неверно, что Луна - спутник Земли или Солнце - спутник Земли" - ложное.

Примеры
Еще одна связка "если ..., то ..." (импликация).
Рассмотрим высказывание "Если Луна - спутник Земли, то и Солнце - спутник Земли".
Здравый смысл подсказывает, что это высказывание ложное, но истинным будет "Если Луна - спутник Земли, то неверно, что Солнце - спутник Земли".
Высказывание же "Если Солнце - спутник Земли, то и Луна - спутник Земли" - истинное, несмотря на кажущуюся абсурдность.
И высказывание "Если Солнце - спутник Земли, то все что угодно" - тоже истинное.
В таких случаях забавными являются высказывания типа "Если я - балерина, то Луна - зеленая".
Перечислить все возможные комбинации логических значений двух и трех высказываний можно с помощью следующих таблиц:
a |
b |
a |
b |
c |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
|
|
1 |
0 |
0 |
|
|
1 |
0 |
1 |
|
|
1 |
1 |
0 |
|
|
1 |
1 |
1 |
Двум высказываниям соответствуют 4 строчки в таблице.
Для трех различных высказываний - 8 комбинаций,
4-х - 16 и т.д.
n высказываний - 2^n комбинаций.

Таблицы истинности
Для обозначения логических связок используется несколько вариантов обозначений. В этом есть некоторая логика. Будем использовать следующие обозначения:
1.отрицание
"неверно что ...", "не ..."
~a
ā.
2.конъюнкция
"... и ..."
a & b (a, b - конъюнкты).
3.дизъюнкция
"... или ..."
a v b (a, b - дизъюнкты).
4.импликация
"если ..., то ..."
a => b (a - основание, b - следствие).
5.эквивалентность (равнозначность)
"... тогда и только тогда ...", "... если и только если ..."
a <=> b.

Таблицы истинности
Обычно логические значения результатов применения связок записываются в виде таблиц - таблиц истинности. Но представление этих таблиц широко варьируется. Для обозначения высказываний, логических значений и связок
используют как прописные, так и строчные буквы. Для обозначения истинности и ложности используют, соответственно, "1" и "0", "И" и "Л", "t" (true) и "f"(false) и т.п. Кому-то удобнее сначала выписывать "0", а потом "1", а кому-то - наоборот.
Ниже представлены различные способы изображения таблицы истинности на примере дизъюнкции.
a |
V |
b |
a |
b |
a V b |
A |
V |
B |
a |
b |
a или b |
p |
OR |
q |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
и и |
и |
F |
F |
F |
|
1 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
и л |
и |
F T |
T |
||
0 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
л и |
и |
T T |
F |
||
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
л |
л |
л |
T T |
T |

Понятие булевой функции
В курсе математического анализа изучаются функции, определённые на числовой
прямой или на отрезке числовой прямой или на (гипер-) плоскости и т.п. Так или иначе, область определения - непрерывное множество. В курсе дискретной математики изучаться должны функции, область определения которых - дискретное множество. Простейшим (но нетривиальным) таким множеством является множество, состоящее из двух элементов. Так мы и приходим к понятию булевой функции.^^
Определение (Булева функция). Булевой функцией от n аргументов называется функция f из n-ой степени множества {0, 1} в множество {0, 1}.
Иначе говоря, булева функция - это функция, и аргументы и значение которой
принадлежит множеству {0, 1}. Множество {0, 1} мы будем в дальнейшем обозначать через B.
Булеву функцию от n аргументов можно рассматривать как n-местную алгебраическую операцию на множестве B. При этом алгебра <B;W>, где W – множество всевозможных булевых функций, называется алгеброй логики.
Конечность области определения функции имеет важное преимущество - такие
функции можно задавать перечислением значений при различных значениях аргументов. Для того, чтобы задать значение функции от n переменных, надо определить значения для каждого из 2^n наборов.

Понятие булевой функции
Эти значения записывают в таблицу в порядке соответствующих двоичных чисел. В результате получается таблица следующего вида:
Раз у нас есть стандартный порядок записывания наборов, то для того, чтобы задать функцию, нам
достаточно выписать значения f(0,0,...,0,0), f(0,0,...,0,1), f(0,0,...,1,0), f(0,0,...,1,1),..., f(1,1,...,0,0), f(1,1,...,0,1), f(1,1,...,1,0), f(1,1,...,1,1).
Этот набор называют вектором значений функции.
Таким образом, различных функций n переменных столько, сколько
различных двоичных наборов длины 2^n. А их 2 в степени 2^n.
Множество B содержит два элемента - их можно рассматривать как булевы функции от нуля (пустого
множества) переменных -
константу 0 и константу 1.
x1 |
x2 ... |
xn-1 |
xn |
f |
0 |
0 ... |
0 |
0 |
f(0,0,...,0,0) |
0 |
0 ... |
0 |
1 |
f(0,0,...,0,1) |
0 |
0 ... |
1 |
0 |
f(0,0,...,1,0) |
0 |
0 ... |
1 |
1 |
f(0,0,...,1,1) |
... ... ... |
... |
... ... |
||
1 |
1 ... |
0 |
0 |
f(1,1,...,0,0) |
1 |
1 ... |
0 |
1 |
f(1,1,...,0,1) |
1 |
1 ... |
1 |
0 |
f(1,1,...,1,0) |
1 |
1 ... |
1 |
1 |
f(1,1,...,1,1) |

Понятие булевой функции
Функций от одной переменной четыре:
это константа 0,
константа 1,
тождественная функция, т.е. функция, значение которой совпадает с аргументом
и так называемая функция ''отрицание''.
Отрицание будем обозначать символом ~ как унарную операцию. Приведём таблицы этих четырёх функций:
x |
0 |
x |
~x |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
Функций от двух аргументов шестнадцать. Наиболее часто из этих функций используются те, которые приводятся в следующей таблице:
x1 |
x2 |
x1 & x2 |
x1 v x2 |
x1 => x2 |
x1 <=> x2 |
x1 x2 |
x1 | x2 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
Эти функции записываются как бинарные операции в инфиксной нотации. x1 & x2 называется
конъюнкцией, x1 v x2 - дизъюнкцией, x1 => x2 - импликацией, x1 <=> x2 - эквивалентностью, x1 x2 - суммой по модулю 2, x1 | x2 - штрихом Шеффера.

Понятие булевой функции
Значения 0 и 1 часто интерпретируют как ''ложь'' и ''истину''.
Тогда понятным становится название функции ''отрицание'' - она меняет ''ложь'' на ``истину'', а ''истину'' на ''ложь''.
Отрицание читается как ''не''.
Конъюнкция читается обычно как ''и'' - действительно, конъюнкция равна 1
тогда и только тогда, когда равны 1 и первая и вторая переменная. Кроме x1& x2 часто используют обозначение x1 x2 или x1x2 или min(x1,x2).
Дизъюнкция читается ''или'' - дизъюнкция равна 1 тогда и только тогда, когда равны 1 первая или вторая переменная.
Импликация выражает факт, что из x1 следует x2.
Как видим, функции от некоторого числа переменных можно рассматривать как функции от большего числа переменных. При этом значения функции не меняется при изменении этих ''добавочных'' переменных.
Такие переменные называются фиктивными, в отличие от остальных -
существенных.
Определение (Фиктивные и существенные переменные).
Переменная xi называется фиктивной (несущественной) переменной функции f(x1,···,xn),
если f(x1,···,xi-1,0,xi+1,···,xn) = f(x1,···,xi-1,1,xi+1,···,xn) для любых значений x1,···,xi-1, xi+1,···,xn. Иначе переменная xi называется существенной.