
- •Раздел 1. Математическая логика Введение
- •Тема 1. Алгебра высказываний
- •1. Высказывания и операции над ними. Формулы
- •2. Следование, эквивалентность и преобразование формул
- •3. Двойственные формулы
- •4. Булевы функции
- •5. Нормальные формы
- •6. Использование законов логики в доказательстве теорем и построении электронных схем
- •Преобразуем эту формулу, используя соответствующие эквивалентности. Из первой пары скобок вынесем p, из второй – q.
- •7. Полные системы операций и функций. Алгебра Жегалкина
- •8. Выводимость
- •Тема 2. Алгебра предикатов
- •1. Предикат. Операции над предикатами.
- •2. Модель. Формула алгебры предикатов сигнатуры .
- •3. Формулы алгебры предикатов
- •Основные общезначимости алгебры предикатов
- •Тема 3. Логические исчисления
- •1. Определение формального исчисления
- •2. Исчисление высказываний ив.
- •3. Отношение эквивалентности в ив
- •4. Исчисление секвенций ис.
- •Исчисления предикатов ип (ипс).
- •6. Прикладные исчисления предикатов.
- •Исчисление с равенством.
- •Строгий частичный порядок.
- •Формальная арифметика.
- •Автоматическое доказательство теорем
- •Раздел 2. Теория алгоритмов
- •Машины Тьюринга
3. Двойственные формулы
Определение. Формула Ud называется двойственной к приведенной формуле U, если она получена заменой операций конъюнкций на дизъюнкции и наоборот.
Теорема 3.1 (принцип
двойственности).
Пусть U(
)
– приведенная формула, тогда Ud
(
)
=
U(
).
Доказательство. Число логических операций в формуле U называется рангом формулы и обозначается r(U). Проведем доказательство индукцией по k = r(U).
10.
k
= 0. В этом случае U
= Xi
, следовательно, Ud
= Xi
U
(
).
2 0. Предположим, что теорема верна при k m.
3 0. Покажем, что она верна при k = m + 1.
Пусть U1 и U2 – подформулы U. Каждая из них образована посредством не более, чем m операций, и следовательно, для них теорема верна.
Возможны следующие случаи
а) U = U1;
б) U = U1 U2;
в) U = U1 U2.
Случай а) эквивалентен
условию 10
и при нем
теорема верна. В случаях б) и в) заменим
в каждой из Ui
конъюнкцию на дизъюнкцию и наоборот.
По определению двойственности будем
иметь, соответственно, б): Ud
= U
U
и в): Ud=
U
U
.
В силу законов де Моргана и предположения индукции будем иметь в случае б):
Ud
= U
U
= (U1
(
))
(U2
(
))
(U1 ( ) U2 ( )) = U( ).
В случае в) выкладки аналогичны. Теорема доказана.
Следствие. Если U – ТИ-формула, то Ud – ТЛ-формула.
Теорема 3.2. Если U V, то Ud Vd.
Доказательство. Если U V, то (U) (V). Значит, в силу теоремы 2.6, Ud(Х1, …, Хn) = U( ) и Vd(Х1, …, Хn) = V( ).
Отсюда: Ud = (U( )) (V( )) = Vd. В силу транзитивности эквиваленции, получим Ud Vd , что и требовалось доказать.
4. Булевы функции
Любую формулу алгебры логики можно рассматривать как функцию, определенную на множестве B ={1, 0}.
Функцией алгебры логики (логической функцией) или булевой функцией f(x1,x2,...,xn) называется отображение f : B nB, определенное на множестве упорядоченных наборов элементов множества B и принимающее значения из этого множества. Обозначим через Pn – множество булевых функций n переменных.
Логическую функцию n переменных f(x1,x2,...,xn) можно задать таблицей, в левой части которой перечислены все 2n наборов значений переменных, а в правой части – значения функции на этих наборах.
x1 x2 . . . хn-1 xn |
f(x1, x2 , . . . хn-1 , xn) |
0 0 . . . 0 0 0 0 . . . 0 1 0 0 . . . 1 0 . . . . . . . . . . . . . . . . 1 1 . . . 1 0 1 1 . . . 1 1 |
f(0,0, . . . ,0,0) f(0,0, . . . ,0,1) f(0,0, . . . ,1,0) . . . . . . . . f(1,1, . . . ,1,0) f(1,1, . . . ,1,1) |
При любом
фиксированном упорядочении наборов
булева функция n переменных полностью
определяется вектор-столбцом своих
значений, размерность которого равна
числу наборов значений функции, то есть
2n .
Поэтому число различных функций n
переменных равно числу различных
двоичных векторов длины 2n,
то есть
,
т.е. |
|
=
.
Нулем (единицей) булевой функции назовем упорядоченный набор значений переменных, на котором значение функции равно 0 (1).
Пусть F={
}
– некоторое множество булевых функций.
Его можно выбрать в качестве основного
набора, называемого базисом.
Формулой
над базисом F
(обозначается
[F])
называется выражение вида
[F]=
,
где
F,
а
либо переменная, либо формула над F.
Таким образом, всякая формула является
суперпозицией базисных функций, для её
представления обычно применяется форма
записи с логическими операциями
~.
Каждой формуле однозначно соответствует
некоторая булева функция f,
в этом случае говорят, что формула
реализует
функцию f
(обозначается
func
= f
). Как будет
показано ниже, такая реализация не
единственна.
Приведем примеры логических функций одной и двух переменных и их реализаций в виде формул.
Логических функций одной переменной четыре: две нуль-местные (0(х), 3(х)) – константы 0 и 1, значения которых не зависят от значения переменной, и две одноместные функции – тождественная и отрицание.
x |
0 |
1 |
2 |
3 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
Тождественная функция "повторяет" значение х: 1(х)=х. Функция отрицание возвращает значение, противоположное значению х: 2(х)=¬х.
Логических функций двух переменных шестнадцать:
х1 |
x2 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
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 |
Рассмотрим подробнее все эти функции.
0(х1,х2)
0 и 15 (х1,х2) 1.
1(х1,х2) = х1 х2 . Эта функция называется ещё логическим умножением и обозначается, также, х1х2.
2(х1.х2) = (х1х2).
3(х1,х2) = х1.
4(х1.х2) = (х2х1).
5(х1,х2) = х2.
6(х1,х2) = (х1~х2) называются неравнозначностью, разделительной дизъюнкцией или сложением по модулю 2 и обозначается еще как х1 х2.
7(х1.х2) = х1 х2 .
8(х1.х2) = (х1х2) – антидизъюнкция, которая называется, также, стрелка Пирса и обозначается х1х2.
9(х1.х2) = х1~х2 . Эту функцию называют еще равнозначностью и обозначают х1х2 .
10(х1.х2) =
.
11(х1.х2) = х2х1.
12(х1.х2) =
.
13(х1.х2) = х1х2.
14(х1.х2) = (х1х2) – антиконъюнкция, которая называется еще штрих Шеффера и обозначается х1 | х2.
Формулы, реализующие одну и ту же функцию, называются равносильными. Отношение равносильности формул является отношением эквивалентности и обозначается .
Фиктивной переменной (несущественной) функции f(x1, . . . , xn) называется переменная хi, изменение значения которой не меняет значения функции, то есть f(x1, . . . , хi-1, 1, xi+1, . . . , xn) = f(x1, . . . , хi-1, 0, xi+1, . . . , xn).
Например, в функциях 3 и 12 переменная х2 фиктивна, а в функциях 5 и 10 фиктивна переменная х1.
Функция f(x1, . . . , xn), имеющая фиктивную переменную xi, по существу зависит от (n–1)-й переменной, т.е. представляет собой функцию g(x1, . . . , хi-1, xi+1, . . . , xn). В этом случае говорят, что функция g получена из функции f удалением фиктивной переменной, а функция f получена из функции g введением фиктивной переменной, причём эти функции считаются равными.
Пусть f (x1, , xn) Pn – булева функция. Тогда функция f *(x1, , xn), определенная следующим образом
f
*(x1,
,
xn)
=
,
называется двойственной к функции f.
Теорема
(Принцип двойственности). Пусть F={
}.
Тогда, если формула
[F]
реализует функцию f,
то формула
*
над базисом F*={
},
полученная из формулы
заменой функций
fi
на двойственные им функции fi*,
реализуют функцию
f
*.