Академический и инженерный разбор
У Челпанова суждение — мысль, в которой что-то утверждается или отрицается;
выраженное словами, оно становится предложением. Одно суждение можно выразить
разными предложениями:
Ни один запрос без токена не авторизован.
Все авторизованные запросы имеют токен.
Если запрос авторизован, у него есть токен.
В выбранной модели эти фразы могут передавать близкое отношение, хотя
грамматика различается.
Классическая форма:
S — субъект, P — предикат, связка соединяет или разделяет их.
2. Количество и качество
Категорические суждения классифицируют по:
- количеству: общее или частное;
- качеству: утвердительное или отрицательное.
Отсюда четыре формы:
| Имя |
Форма |
Пример |
Современная запись |
| A |
Все S суть P |
Все администраторы имеют MFA |
∀x(Sx → Px) |
| E |
Ни одно S не есть P |
Ни один plaintext-пароль не безопасен |
∀x(Sx → ¬Px) |
| I |
Некоторые S суть P |
Некоторые задачи заблокированы |
∃x(Sx ∧ Px) |
| O |
Некоторые S не суть P |
Некоторые события не доставлены |
∃x(Sx ∧ ¬Px) |
Буквы происходят из латинских affirmo и nego.
3. «Некоторые» в логике
В классической логике некоторые S суть P означает как минимум один.
Утверждение не исключает, что P принадлежат все S.
В разговорной речи:
Некоторые тесты упали.
часто намекает «не все». Это прагматическая импликатура, а не логическое
содержание. В спецификации лучше писать явно:
Как минимум один тест упал.
Не все тесты упали.
Ровно 17 тестов упали.
4. Распределённость термина
Термин распределён, если суждение говорит обо всём его объёме.
| Форма |
Субъект S |
Предикат P |
Почему |
| A: все S есть P |
распределён |
не распределён |
сказано обо всех S, но не обо всех P |
| E: ни одно S не P |
распределён |
распределён |
классы полностью разведены |
| I: некоторые S есть P |
не распределён |
не распределён |
речь только о пересечении |
| O: некоторые S не P |
не распределён |
распределён |
выбранные S исключены из всего P |
Это таблица, из которой позже выводятся правила силлогизма.
Пример A:
Мы говорим обо всех SRE, но не утверждаем, что все инженеры — SRE.
Следовательно, SRE распределён, инженеры — нет.
5. Квадрат оппозиции
Противоречие
- A и O: «все S есть P» / «некоторые S не P»;
- E и I: «ни одно S не P» / «некоторые S есть P».
Противоречащие суждения не могут быть одновременно истинными и не могут быть
одновременно ложными.
Противоположность
A и E не могут быть одновременно истинными, но могут быть одновременно
ложными:
Все задачи автоматизированы. — ложно
Ни одна задача не автоматизирована. — тоже ложно
Часть задач автоматизирована, часть нет.
Подпротивоположность
I и O в традиционном квадрате не могут быть одновременно ложными, если класс
S непуст.
Подчинение
Традиционно от A переходили к I, от E к O. Это требует существования S.
6. Современная оговорка о пустых классах
Пусть единорогов нет:
Все единороги имеют MFA. ∀x(Ux → Mx)
Ни один единорог не имеет MFA. ∀x(Ux → ¬Mx)
Обе универсальные формулы истинны вакуумно: нет объекта, нарушающего ни одну.
Поэтому в современной предикатной логике традиционные отношения
противоположности и подчинения без экзистенциальной предпосылки не работают.
Надёжная запись:
∃x Ux класс U непуст
∀x(Ux → Mx) все U есть M
──────────────────
∃x(Ux ∧ Mx) некоторые U есть M
Историческую схему не надо выбрасывать; надо помнить её модель.
7. Обверсия, обращение и противопоставление
7.1. Обверсия
Меняем качество и заменяем предикат дополнением:
Все S есть P.
Ни одно S не есть не-P.
Обверсия корректна для A, E, I и O.
7.2. Обращение
Меняем местами субъект и предикат.
Ни одно S не P → Ни одно P не S. E, корректно
Некоторые S есть P → Некоторые P есть S. I, корректно
Простое обращение A некорректно:
Все кошки — животные.
Следовательно, все животные — кошки.
Традиционное обращение A «с ограничением» к Некоторые P есть S требует
существования S.
7.3. Противопоставление предикату
Для A:
Все S есть P.
Все не-P не есть S.
В современной записи это контрапозиция:
∀x(Sx → Px) ⟺ ∀x(¬Px → ¬Sx)
Но обратное утверждение P → S не появляется.
8. Условные суждения
Материальная импликация ложна только при истинном P и ложном Q.
| P |
Q |
P → Q |
| 0 |
0 |
1 |
| 0 |
1 |
1 |
| 1 |
0 |
0 |
| 1 |
1 |
1 |
Достаточное и необходимое
В P → Q:
- P достаточно для Q;
- Q необходимо для P.
Если запрос успешно авторизован, его токен валиден.
Валидный токен необходим в этой модели, но может быть недостаточен: аккаунт
заблокирован, scope не подходит.
«Только если» и «если»
P, только если Q = P → Q
P, если Q = Q → P
P тогда и только тогда, когда Q = P ↔ Q
Слово «только» меняет направление. Это источник огромного числа ошибок в
требованиях.
9. Разделительные суждения
Современная дизъюнкция обычно не исключающая:
истинна и при двух истинных частях. «Либо чай, либо кофе» в меню часто
исключает совместный выбор, но логическое «или» этого не обязано делать.
Перед использованием разделительного силлогизма уточните:
- варианты исчерпывающи?
- варианты несовместимы?
- «или» включающее или исключающее?
10. Модальность
Челпанов различает:
- проблематическое: возможно P;
- ассерторическое: фактически P;
- аподиктическое: необходимо P.
Современная запись:
◇P возможно P
□P необходимо P
Типовая ошибка:
P возможно.
Следовательно, P фактически.
И обратная:
P фактически.
Следовательно, P необходимо.
То, что система сейчас выдержала нагрузку, не доказывает, что она обязана
выдерживать её при всех допустимых состояниях.
11. Область действия отрицания
Сравните:
Не все запросы успешны.
Некоторые запросы не успешны.
Ни один запрос не успешен.
Первые две формулы эквивалентны при непустом домене:
¬∀x Success(x) ⟺ ∃x ¬Success(x)
Третья гораздо сильнее:
Порядок кванторов
Для каждого PR есть какой-то reviewer.
Есть один человек, ревьюящий каждый PR.
Перестановка кванторов превращает распределённую ответственность в
единственную точку отказа.
12. Законы мышления
В традиционном изложении:
Закон тождества
Термин должен сохранять значение в пределах рассуждения.
Закон непротиворечия
Нельзя одновременно утверждать P и ¬P в одном отношении, времени и смысле.
Статусы «задача готова для разработки» и «задача не готова для production» не
противоречат друг другу: отношения разные.
Закон исключённого третьего
Для точно заданного утверждения в классической логике третьего значения нет.
Это не означает, что нам известно, какая сторона истинна, и не превращает
любую бытовую пару в исчерпывающую дилемму.
Закон достаточного основания
Его часто добавляют к трём формальным законам: утверждение должно иметь
основание. Это методологический принцип, а не тавтология классического
исчисления.
13. Типичные ошибки уровня суждения
| Ошибка |
Пример |
Исправление |
| Инверсия условия |
«без MFA нельзя войти» → «с MFA всегда можно войти» |
разделите необходимое и достаточное |
| Подмена противоречия противоположностью |
«не быстро» → «медленно» |
допустите промежуточные значения |
| Смещение квантора |
«у каждого есть reviewer» → «есть общий reviewer» |
выпишите порядок ∀/∃ |
| Неверное отрицание |
¬∀ читают как ∀¬ |
протолкните отрицание по де Моргану |
| Экзистенциальный импорт |
от «все S есть P» сразу к «некоторые S есть P» |
докажите ∃S |
| Неясная дизъюнкция |
«или A, или B» |
уточните полноту и исключительность |
| Модальный скачок |
«произошло» → «неизбежно» |
отделите P, ◇P, □P |
14. Инженерный пример: политика доступа
Требование:
Только администраторы с MFA могут экспортировать данные.
Возможны чтения:
Export(x) → Admin(x) ∧ MFA(x)
Администратор и MFA необходимы для экспорта.
Но неверно:
Admin(x) ∧ MFA(x) → Export(x)
Для права могут требоваться роль в конкретном tenant, рабочее устройство,
отсутствие блокировки и отдельное согласование.
Тесты должны проверять исходное направление, а не случайно усиленную
эквивалентность.
15. Чек-лист
- Утверждение вообще имеет истинностное значение?
- Количество задано: все, некоторые, ровно, большинство?
- «Некоторые» означает хотя бы один или «не все»?
- Класс субъекта существует?
- Необходимое условие не выдано за достаточное?
- Направление «если» и «только если» сохранено?
- Дизъюнкция полна и правильно понимает совместимость вариантов?
- Отрицание имеет ясную область действия?
- Порядок кванторов не изменён?
- Фактическое, возможное и необходимое не смешаны?
- Термины распределены корректно?
16. Задания
- Формализуйте «каждая задача имеет владельца» и «есть владелец всех задач».
- Отрицайте без двусмысленности: «все тесты прошли».
- Определите, что необходимо и достаточно во фразе «доступ выдаётся только
сотрудникам после обучения».
- Можно ли обратить «все критические инциденты требуют postmortem»?
- Проверьте традиционный квадрат для класса «вечные двигатели».
Источники
Что дальше
Теперь четыре формы A/E/I/O можно соединить в дедукцию. Следующая глава
разбирает термины силлогизма, фигуры, модусы, распределённость и способ
проверки через диаграммы.
Категорические силлогизмы