- •Алгебра логики высказываний Основные понятия
- •Законы алгебры логики
- •Функции алгебры логики
- •Представление произвольной логической функции в виде формулы алгебры логики
- •Дизъюнктивная нормальная форма и совершенная дизъюнктивная нормальная форма
- •Конъюнктивная нормальная форма и совершенная конъюнктивная нормальная форма
- •Минимизация булевых функций. Карты Карно
- •Решение логических задач средствами алгебры логики
- •Исчисление высказываний
- •Классическое исчисление высказываний
- •Натуральное исчисление высказываний
- •Понятие выводимости
- •Примеры
- •Логика предикатов
- •Объектные константы
- •Объектные переменные
- •Функции
- •Предикатный символ
- •Кванторы
- •Равенство
- •Аксиомы, теоремы, факты и цели
- •Переход от естественного языка к языку логики предикатов
- •Предваренная нормальная форма
- •Примеры
- •Исчисление предикатов
Переход от естественного языка к языку логики предикатов
Рассмотрим пример. Предположим, что наши знания о птицах выражены в виде следующих предложений:
Если существо имеет крылья, то это существо – птица.
Если существо летает и несет яйца, то это существо – птица.
Для представления знаний на языке логики предикатов следует выполнить следующие шаги:
Выявить, что во фразе является объектом, который необходимо сопоставить с константой или переменной. Если речь идет о конкретном объекте, то вводится константа, если же упоминается целый класс объектов, то используют переменную.
Определить свойства объектов. Сопоставить свойствам предикатные символы.
С помощью логических связок сформировать формулы констант, переменных и предикатов, соответствующих объектам и их свойствам.
Таким образом, на языке логики предикатов эти знания могут быть выражены в виде формул:
имеет_крылья(существо) птица(существо)
летает(существо) несет_яйца(существо) птица(существо)
В данном примере использованы одноместные предикаты, имеющие по одному аргументу. Но предикаты могут быть также и многоместными, то есть иметь несколько аргументов. В случае многоместных предикатов предикатный символ может рассматриваться как некоторое общее свойство объектов, соответствующих аргументам, либо как отношение, в котором эти объекты находятся.
Предваренная нормальная форма
Формула логики предикатов имеет нормальную форму, если она содержит только операции конъюнкции, дизъюнкции и кванторы, а операция отрицания отнесена к элементарным отрицаниям. Очевидно, что, используя равносильные преобразования, можно каждую формулу логики предикатов привести к нормальной форме.
Среди нормальных форм особо важное значение имеет так называемая предваренная нормальная форма. В такой форме кванторы либо отсутствуют, либо они используются после всех операций алгебры логики и записываются перед формулой, то есть эта форма имеет вид:
(x1) (x2) … (xn) A(x1, x2, …, xm), n m,
где под символом понимается один из кванторов: или .
Существует теорема утверждающая, что любая формула логики предикатов может быть приведена к предваренной нормальной форме.
Примеры
Одной из задач логики предикатов является поиск областей истинности предикатов – множества значений аргументов, на которых предикат принимает истинные значения. Пусть, к примеру, даны предикаты: P(x): «x – четное число» и Q(x): «x кратно 3», определенные на множестве натуральных чисел N. Областями истинности P(x) и Q(x) соответственно являются IP = {2, 4, 6, …, 2n…}, IQ = {3, 6, 9, …, 3n…}. Найдем области истинности для следующих предикатов:
P(x) Q(x): множеством истинности конъюнкции будет пересечение множеств истинности конъюнктов – IPQ = IP IQ = {6, 12, …, 6n…}
P(x) Q(x): множеством истинности дизъюнкции будет объединение множеств истинности дизъюнктов – IPQ = IP IQ = {2, 3, 4, 6, …, 2n , 3n…}
P(x): множеством истинности отрицания будет исключение множества истинности предиката из множества его определения – IP = N \ IP = {1, 3, 5, …, 2n - 1,…}
P(x) Q(x): множеством истинности импликации (логического следствия) будет объединение множества истинности отрицания первого дизъюнкта и множества истинности второго дизъюнкта (так как a b = a b) – IPQ = IP IQ = {1, 3, 5, …, 2n - 1,…} {3, 6, 9, …, 3n…}
Следующий пример показывает, как с помощью логики предикатов можно отыскать утверждение, противоположное заданному, или, иначе говоря, отрицание заданной формулы. Найдем отрицание формулы (x) (y) R(x, y) L(x, y):
((x) (y) R(x, y) L(x, y)) = (x) ((y) R(x, y) L(x, y)) =
= (x) (y) (R(x, y) L(x, y)) = (x) (y) (R(x, y) L(x, y)) =
= (x) (y) (R(x, y) L(x, y)).
Следующий пример относится к доказательству общезначимости, выполнимости или невыполнимости утверждений.
Докажем общезначимость формулы A = (x) (P(x) Q(x)) (x) (P(x) (x) Q(x)).
Считая, что формула A определена на любой области определения проведем равносильные преобразования:
A = (x) (P(x) Q(x)) (x) (P(x) (x) Q(x)) =
во второй части импликации изменяем квантор
в соответствии с законами взаимосвязи между кванторами
= (x) (P(x) Q(x)) (x) (P(x) (x) Q(x)) =
переносим квантор общности в начало формулы,
т.к. квантор одинаково связывает обе части импликации
= (x) [(P(x) Q(x)) (P(x) (x) Q(x))] =
на основании закона x y = x y
= (x) [ (P(x) Q(x)) (P(x) (x) Q(x))] =
= (x) [ ( P(x) Q(x)) (P(x) (x) Q(x))] =
вносим отрицание «под скобки»,
применяя законы Де Моргана
= (x) [(P(x) Q(x)) P(x) (x) Q(x)] =
= (x) [(P(x) Q(x)) P(x) (x) Q(x)] =
применяем дистрибутивный закон
и закон x x = 1
= (x) [(P(x) P(x)) (Q(x) P(x)) (x) Q(x)] =
= (x) [(1 (Q(x) P(x))) (x) Q(x)] =
на основании закона x 1 = x
= (x) [Q(x) P(x) (x) Q(x)] =
= (x) [Q(x) (x) Q(x) P(x)] =
= (x) [(x) (Q(x) Q(x)) P(x)] =
наконец, по закону x 1 = 1, имеем
= (x) [1 P(x)] = 1.
