Математическая логика

Тут есть теория математической логики. Но сначала покажем интересную вещь!

Построение логических таблиц

Отдельная страница

Правила написания логических формул в символьном формате:

Логика высказываний

Высказывание — это законченная мысль или утверждение, которое можно объективно оценить как истинное или ложное.
Высказывательная форма (пропозициональная форма) — это предложение с переменными, которое становится истинным или ложным после подстановки значений.
Из высказывательной формы можно получить высказывание двумя способами:
  1. Подставить значения всех переменных
  2. Использовать кванторы ∃ (существует), ∀ (все)

Составление высказываний

Из двух высказываний можно составить новое с помощью связок:

P.S. Логические таблицы операций доступны здесь.

Формула логического высказывания

Определения формулы Л.В.:

  1. Любая логическая переменная — формула
  2. 0, 1 (Ложь, Истина) — формулы
  3. Если F — формула, то ¬F — формула
  4. Если F₁, F₂ — формулы, то F₁ ∧ F₂; F₁ v F₂; F₁ -> F₂; F₁ <-> F₂ — формулы

Алфавит Л.В.:

  1. X, Y, Z, Xi, Yi, Zi — символы для логических переменных
  2. ¬, ∧, v, ->, <-> — логические символы (приоритет операций убывает сверху вниз)
  3. 0, 1 — логические константы

Тождественно истинные/ложные высказывания

Тавтология — формула, принимающая значение 1 при любых значениях переменных.

Тождественно ложная формула — принимает 0 при любых значениях переменных.

Логическое равносилие

Формулы F₁, F₂ равносильны, если они принимают одинаковые значения при всех наборах значений переменных.

Следствие: таблицы истинности совпадают. Обозначение: F₁ = F₂

Свойства:

  1. Рефлексивность: F = F
  2. Симметричность: F₁ = F₂ ⇒ F₂ = F₁
  3. Транзитивность: F₁ = F₂ и F₂ = F₃ ⇒ F₁ = F₃

Законы логики

Основные законы и равносильности

  1. Тождество:
    X = X
  2. Противоречие:
    X * ¬X = 0
  3. Исключённый третий:
    X + ¬X = 1
  4. Идемпотентность:
    X * X = X; X + X = X
  5. Двойное отрицание:
    ¬¬X = X
  6. Коммутативность:
    XY = YX; X + Y = Y + X
  7. Дистрибутивность:
    X * (Y + Z) = XY + XZ;
    X + YZ = (X + Y) * (X + Z)
  8. Ассоциативность:
    X * (Y * Z) = (X * Y) * Z;
    X + (Y + Z) = (X + Y) + Z
  9. Законы де Моргана:
    ¬(X + Y) = ¬X¬Y;
    ¬(XY) = ¬X + ¬Y
  10. X * 1 = X; X + 0 = X
  11. X * 0 = 0; X + 1 = 1
  12. Поглощение:
    X(X + Y) = X; X + XY = X
  13. Склеивание:
    (X + Y) * (¬X + Y) = Y;
    XY + ¬XY = Y
  14. X + ¬X * Y = X + Y;
    ¬X + XY = ¬X + Y
  15. Импликация:
    X -> Y = ¬X + Y = ¬(X + ¬Y)
  16. Эквиваленция:
    X <-> Y = (X -> Y) * (Y -> X) = (¬X + Y) * (¬Y + X) =
    = XY + ¬X¬Y
  17. Отрицание эквиваленции:
    ¬(X <-> Y) = X*¬Y + ¬X*Y

Обратные и противоположные предложения

Теорема — предложение, истинность которого доказывается на основе аксиом или ранее доказанных теорем.

Для A -> B можно составить:

ABA -> B
Исходное
B -> A
Обратное
¬A -> ¬B
Противоположное
¬B -> ¬A
Обратно-противоположное
001111
011001
100110
111111

Замечание: Исходное = Обратно-противоположное, Обратное = Противоположное

  1. Обратное: истинность исходного не гарантирует истинность обратного
  2. Противоположное: истинность обратного гарантирует истинность противоположного
  3. Обратно-противоположное: метод от противного

Достаточные и необходимые условия:

Достаточное условие: выполнение гарантирует событие, но не обязательно единственная причина

Необходимое условие: без него событие невозможно, но выполнение не гарантирует наступление

Если A -> B, то A — достаточное, B — необходимое условие

Если A <-> B, то A и B — взаимно необходимые и достаточные условия

Логическое следование

Логическое следование — это отношение между высказываниями, при котором истинность одного высказывания гарантирует истинность другого.

Если A и B — высказывания, то записывается как A -> B, что читается «A логически следует из B» или «B является логическим следствием A».

Свойства логического следования

  1. Рефлексивность: любое высказывание логически следует само из себя.

    Формально: A -> A

    Пример: «Если идёт дождь, то идёт дождь» — всегда истинно.

  2. Транзитивность: если A -> B и B -> C, то A -> C

    Пример: «Если идёт дождь, то земля мокрая» (A -> B), «Если земля мокрая, то лужи образуются» (B -> C), тогда «Если идёт дождь, то образуются лужи» (A -> C).

  3. Симметричность (для эквивалентности): если A -> B и B -> A, то A и B логически эквивалентны, обозначается A ↔ B

    Пример: «x > 2» эквивалентно «не x ≤ 2».

Применение в рассуждениях

Эти свойства используются для построения доказательств, упрощения высказываний и анализа логических связей между условиями.

Примеры использования:

Аргументы в логике

Аргумент — это рассуждение, состоящее из посылок и вывода, где вывод логически следует из посылок.

Аргумент считается правильным, если невозможно, чтобы все посылки были истинны, а вывод — ложен.

Примеры аргументов

Название Пример (по левому краю)
Modus Ponens | Если идёт дождь, то земля мокрая
| Идёт дождь
----
| Земля мокрая
Modus Ponens (пример 2) | Если число чётное, то делится на 2
| Число 8 чётное
----
| Число 8 делится на 2
Modus Tollens | Если идёт дождь, то земля мокрая
| Земля не мокрая
----
| Дождя нет
Syllogismus Disiunctivus | Сегодня идёт дождь или светит солнце
| Сегодня не идёт дождь
----
| Светит солнце
Hypothetical Syllogism | Если идёт дождь, то земля мокрая
| Если земля мокрая, то образуются лужи
----
| Если идёт дождь, то образуются лужи
Прямой аргумент (равносильное преобразование) | Все птицы умеют летать
| Воробей — птица
----
| Воробей умеет летать

4 способа проверки аргумента

Способ Описание Пример
Таблица истинности Составляем таблицу всех возможных значений посылок и проверяем, что вывод истинный, когда все посылки истинны. | P1: Если A, то B
| P2: A
----
| Вывод: B — аргумент правильный
Контрпример Ищем случай, где все посылки истинны, а вывод ложен. Если такой есть — аргумент неверен. | P1: Если идёт дождь, то земля мокрая
| P2: Идёт дождь
----
| Вывод: земля сухая — контрпример не существует → аргумент верен
Равносильное преобразование Логически выводим заключение из посылок, используя равносильные преобразования (например, Modus Ponens, Modus Tollens). | P1: Если число чётное, то делится на 2
| P2: Число 8 чётное
----
| Вывод: 8 делится на 2
Найти по стандартной схеме

Стандартные схемы аргументов

Верные аргументы
Схема Пример
X -> Y и X следует Y (Modus Ponens) | Если идёт дождь, то земля мокрая
| Идёт дождь
----
| Земля мокрая
X -> Y и ¬Y следует ¬X (Modus Tollens) | Если идёт дождь, то земля мокрая
| Земля не мокрая
----
| Дождя нет
Неверные аргументы
Схема Пример
X -> Y и Y следует X (Обратное) | Если идёт дождь, то земля мокрая
| Земля мокрая
----
| Дождь идёт — неверно
X -> Y и ¬X следует ¬Y (Противоположное) | Если идёт дождь, то земля мокрая
| Дождя нет
----
| Земля не мокрая — неверно

Нормальные формы логических функций

Нормальная форма логической функции — это стандартизированное представление булевой функции в виде структурированной формулы с использованием конъюнкций (И), дизъюнкций (ИЛИ) и отрицаний (НЕ) переменных.

Виды нормальных форм

СДНФ и СКНФ из таблицы истинности

X Y Z F(X,Y,Z)
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 0
1 1 1 1

СДНФ:

СДНФ = (¬X¬YZ) + ¬XY¬Z + X¬Y¬Z + XYZ

СКНФ:

СКНФ = (X ∨ Y ∨ Z) & (X ∨ ¬Y ∨ ¬Z) & (¬X ∨ Y ∨ ¬Z) & (¬X ∨ ¬Y ∨ Z)

Алгоритм получения СДНФ из обычной формулы

  1. Избавиться от импликаций и эквиваленций (X -> Y = ¬X + Y; X <-> Y = XY + ¬X¬Y)
  2. Убрать одинаковые члены дизъюнкции
  3. Если конъюнкция не содержит всех переменных, умножаем на (X ∨ ¬X) = 1 для недостающих переменных
  4. Раскрыть скобки, объединить одинаковые члены → получаем СДНФ

Алгоритм получения СКНФ из обычной формулы

  1. Избавляемся от импликаций и эквиваленций
  2. Убираем одинаковые члены конъюнкции
  3. Если дизъюнкция не содержит всех переменных, добавляем (X ∨ ¬X) для недостающих
  4. Раскрываем скобки → получаем СКНФ

Алгоритм получения всех логических следствий из данных посылок (через СКНФ)

Исходные данные

Дано множество посылок: Γ = {A₁, A₂, …, Aₙ}

Требуется получить все высказывания B, такие что Γ ⊨ B.

Идея метода

Все логические следствия — это формулы, истинные при всех наборах значений, при которых истинна конъюнкция посылок.

Для этого используется совершенная конъюнктивная нормальная форма (СКНФ).

Алгоритм

  1. Построить конъюнкцию посылок

    Записать формулу: F = A₁ ∧ A₂ ∧ … ∧ Aₙ

  2. Построить таблицу истинности для F

    Рассмотреть все возможные наборы значений переменных.

  3. Выделить ложные наборы

    Отметить все строки таблицы, в которых F = 0.

  4. Построить СКНФ формулы F

    Для каждого ложного набора построить дизъюнкцию литералов:
    переменная берётся без отрицания, если в наборе она равна 0,
    и с отрицанием, если равна 1.

    СКНФ — конъюнкция всех полученных дизъюнкций.

  5. Получить все логические следствия

    Каждая дизъюнкция, входящая в СКНФ, является логическим следствием Γ.

    Любая формула, логически следующая из каждой дизъюнкции СКНФ, также является логическим следствием Γ.

Критерий следования

Высказывание B является логическим следствием Γ тогда и только тогда, когда формула F → B является тавтологией.

Пример

Исходная формула:

F = x ∧ (x ↔ y)

СКНФ формулы:

F = (x + y)(x + ¬y)(¬x + y)

Логические следствия:

Каждая дизъюнкция, входящая в СКНФ, является логическим следствием формулы F. Также логическими следствиями являются все конъюнкции любых подмножеств этих дизъюнкций.

Все логические следствия (7):

  1. x + y
  2. x + ¬y
  3. ¬x + y
  4. (x + y)(x + ¬y)
  5. (x + y)(¬x + y)
  6. (x + ¬y)(¬x + y)
  7. (x + y)(x + ¬y)(¬x + y)

Общее число следствий равно 2³ − 1 = 7, где 3 — количество дизъюнкций в СКНФ.

Получение логических следствий, содержащих заданные переменные

Постановка задачи

Дано множество посылок Γ и множество переменных V. Требуется получить все логические следствия, содержащие только переменные из множества V.

Идея метода

Следствия, содержащие только заданные переменные, получаются путём исключения остальных переменных из СКНФ конъюнкции посылок.

Алгоритм

  1. Построить конъюнкцию посылок

    F = A₁ ∧ A₂ ∧ … ∧ Aₙ

  2. Построить СКНФ формулы F

    СКНФ представляет все минимальные логические следствия.

  3. Выбрать заданное множество переменных

    Зафиксировать множество V, которое должно входить в следствия.

  4. Исключить лишние переменные

    В каждой дизъюнкции СКНФ удалить литералы, содержащие переменные, не принадлежащие множеству V.

  5. Удалить тривиальные дизъюнкции

    Если дизъюнкция стала тавтологией — удалить её.
    Если дизъюнкция стала пустой — следствий с такими переменными не существует.

  6. Получить все следствия

    Все непустые конъюнкции полученных дизъюнкций являются логическими следствиями, содержащими только переменные из V.

Критерий корректности

Высказывание B, содержащее только переменные из V, является логическим следствием Γ тогда и только тогда, когда формула F → B является тавтологией.

Пример

Посылки:

¬x → y;
¬z → ¬y

Конъюнкция посылок:

F = (¬x → y) ∧ (¬z → ¬y)

Таблица истинности посылок

x y z (¬x) → y (¬z) → (¬y)
00001
00101
01010
01111
10011
10111
11010
11111

СКНФ конъюнкции:

F = (x + y + z)(x + y + ¬z)(x + ¬y + z)(¬x + ¬y + z)

Следствия, содержащие заданные переменные:

Для любого заданного множества переменных выбираются дизъюнкции СКНФ с последующим удалением литералов по алгоритму.

NAND, NOR

Есть специальные элементы: NAND или штрих Шейфера; NOR или стрелка Пирса

NAND - инверсия И (Not AND); NOR - инверсия ИЛИ (Not OR)

Эти две операции способны заменить все остальные:

NOR:

NAND: