Очевидно. Но неверно. Логика

- -
- 100%
- +
Слово «некоторые» в формальной логике обычно означает «хотя бы один», а не «несколько, но не все». Утверждение «некоторые ключи проверены» совместимо с тем, что проверены все. В обычной речи слушатель иногда достраивает «не все» из разговорного ожидания. Такую добавку нельзя незаметно использовать в строгом выводе.
Как отрицать группу, не переворачивая каждый стул
Отрицание «для всех x выполняется P» — «существует x, для которого P не выполняется». Чтобы опровергнуть «каждая дверь заперта», достаточно одной незапертой. Не нужно открывать остальные специально для полноты доказательства.
Отрицание «существует x с P» — «для всех x не-P». Если неверно, что хотя бы один ключ действителен, значит, действительных ключей нет. Здесь отрицание действительно распространяется на всю область.
Символически: ¬∀x P (x) равносильно ∃x ¬P (x); ¬∃x P (x) равносильно ∀x ¬P (x). Это родственники законов де Моргана. Универсальность ведёт себя как обобщённое «и», существование — как обобщённое «или».
Бытовые ссоры регулярно нуждаются в этом различии. «Ты никогда не слушаешь» опровергается хотя бы одним случаем слушания, если понимать фразу буквально. Но часто говорящий сообщает накопленное недовольство, а не предъявляет формальную статистику. Можно заметить чрезмерность формулировки и всё же обсудить проблему. Логика не обязывает отвечать на боль человека архивной справкой о том, как вы слушали его в прошлом феврале.
Точнее сказать: «В последних двух разговорах я не получил ответа на важный вопрос». Такое утверждение легче проверить и полезнее обсуждать. Оно не требует доказывать вечный характер другого человека. Иногда самый гуманный квантор — правильно выбранный период.
Каждый кому-нибудь и один для всех
В павильоне каждый терминал отправлял отчёты какому-нибудь серверу. Директор заключил, что существует сервер, куда приходят отчёты всех терминалов.
— Не обязательно, — сказала Ирина.
— Но сервер же есть у каждого!
— У каждого человека тоже есть своя чашка. Это не значит, что весь отдел пьёт из одной.
Порядок кванторов меняет смысл. ∀x ∃y R (x,y): для каждого x существует подходящий y, возможно свой. ∃y ∀x R (x,y): существует один y, подходящий всем x. Второе утверждение обычно сильнее первого.
Если у каждого сотрудника есть человек, которому он доверяет, из этого не следует, что в коллективе существует всеобщий доверенный человек. Если для каждой задачи есть решение, не следует, что одно решение подходит для всех задач. Универсальные управленческие рецепты особенно не любят эту страницу логики.
Обратный переход при обычных условиях работает: если есть один сервер для всех терминалов, то для каждого терминала найдётся сервер — этот самый. Но даже здесь важно, что означают отношения и какие объекты входят в область. Символы не заменяют постановку задачи.
Пустая группа без особых заслуг
Представим, что в павильоне нет ни одного терминала модели Z. Верно ли утверждение «Все терминалы модели Z прошли проверку» в стандартной классической записи «для любого x: если x — Z, то x проверен»? Да: нет экземпляра Z, который нарушал бы условие. Это называют истинностью на пустом классе, или вакуозной истинностью.
Но из такого утверждения нельзя вывести, что существует хоть один проверенный терминал Z. Универсальная форма сама по себе существование не гарантирует. Нужна отдельная посылка о наличии объекта.
В отчёте это может выглядеть комично. «Все жалобы устранены», потому что ни одна жалоба не зарегистрирована. Возможно, жалоб действительно не было. А возможно, сломалась форма приёма. Логическая истинность аккуратно сформулированного предложения не гарантирует, что оно отвечает на интересующий нас вопрос о качестве работы.
Нельзя объявить любую пустую группу хитростью. Иногда именно такая семантика удобна и последовательна. Важно не извлекать из неё незаявленное существование и не продавать отсутствие проверяемых случаев как результат испытания.
Если утверждается «некоторые сотрудники — инженеры», существование хотя бы одного сотрудника-инженера входит в содержание. Если говорится «все сотрудники отдела — инженеры», при формальном чтении следует отдельно уточнить, существует ли отдел с людьми. В обычной речи существование часто подразумевают; в строгой модели его нужно отметить.
Ровно один — это два требования
Фраза «есть единственный администратор» состоит из наличия и уникальности. Хотя бы один администратор существует. И любые два объекта, обладающие нужным свойством, на самом деле один и тот же объект.
«Не более одного» не гарантирует наличия. Ноль тоже не больше одного. «Не менее одного» не гарантирует уникальности. Их совместное выполнение даёт «ровно один». В документах это различие способно менять обязанности: «назначить не более одного ответственного» формально допускает никого не назначить. Для организации, которая любит избегать ответственности, это почти подарок.
С выражениями «каждый», «любой» и «один из» тоже нельзя действовать на слух. «Любой сотрудник может открыть дверь» может означать, что каждый имеет полномочие, или что достаточно одного произвольно выбранного сотрудника, или что система не различает сотрудников. Нужно восстановить конкретную структуру.
Отношения требуют ещё большей точности. «Каждый проверил чью-то работу» не означает «чью-то работу проверили все». «Все проверили друг друга» может исключать самопроверку, а может быть понято иначе. В качественном регламенте такие вещи лучше описать, чем потом разыскивать смысл по служебным запискам.
Практикум для любителей слова «никогда»
Утверждение: «Каждый посетитель показал хотя бы один документ». Что достаточно для его опровержения? Один посетитель, который не показал ни одного документа. Не посетитель, у которого отсутствовал паспорт, если он показал иной допустимый документ.
Утверждение: «Существует документ, который показал каждый посетитель». Это другое: один общий документ для всех. Можно представить двух посетителей, один показал паспорт, другой пропуск. Первое утверждение истинно, второе ложно, если общих показанных документов нет.
Утверждение: «Ни один сотрудник не проверил все терминалы». Его отрицание: существует сотрудник, проверивший все терминалы. Не «все сотрудники проверили все терминалы». Отрицание не должно быть более амбициозным, чем необходимо.
Наконец: «Каждый терминал проверил ровно один сотрудник». Из этого не следует, что каждый сотрудник проверил ровно один терминал. Один специалист мог проверить десять, другой ни одного, и исходное правило не нарушилось бы. Распределение по объектам и распределение по людям — разные вопросы.
Ключ, выпавший из области определения
Ирина сопоставила списки. Ключ Дениса был служебным, но его копия в тестовой среде не входила в перечень физических ключей, прошедших испытание. Подрядчик проверял одну область, директор распространял вывод на другую.
— Но копия ведь не настоящий ключ, — сказал подрядчик.
— Она посылала настоящую команду настоящему замку, — ответила Ирина. — Пожалуй, этого достаточно, чтобы включить её в обсуждение.
Марк не стал сразу считать механизм подтверждённым. Он попросил воспроизвести сценарий на изолированном стенде с той же конфигурацией и независимой регистрацией команд. У истории появился следующий шаг, на котором она могла не только понравиться, но и не выдержать проверку.
Директор спросил, сколько ещё будет таких шагов.
— Пока не кончатся существенные вопросы, — ответил Павел.
— Они вообще заканчиваются?
— Иногда. Особенно если не создавать новые вместо ответов на старые.
Глава 9. Силлогизм в пальто подозреваемого
Сходство двух людей иногда доказывает только то, что наблюдатель устал различать.
У всех сотрудников были ключи
В бюро принесли новый аргумент. Все ночные администраторы имеют служебный ключ. Человек, открывший дверь, использовал служебный ключ. Следовательно, он ночной администратор.
Директор был доволен: теперь вывод не называл Дениса прямо и выглядел научнее. Павел предложил аналогию: все велосипедисты умеют держать равновесие; цирковой канатоходец умеет держать равновесие; следовательно, канатоходец — велосипедист.
— Это несерьёзно, — сказал директор.
— Форма у вас одинаковая. Серьёзность лица — дополнительная декорация.
Общий признак не гарантирует принадлежность к одному узкому классу. Служебные ключи могут быть у инженеров, руководителя смены и технической службы. Средний термин — тот, через который связывают два других, — должен соединять их действительно, а не создавать впечатление близости.
Три класса и одна лишняя уверенность
Простой категорический силлогизм связывает три термина через две посылки. «Все контроллеры серии А требуют обновления. Этот прибор — контроллер серии А. Следовательно, этот прибор требует обновления». В более традиционной форме: все M суть P; все S суть M; следовательно, все S суть P.
Удобно представлять вложенные множества. Все S находятся внутри M, а все M — внутри P. Значит, все S внутри P. Никакой психологии и магического слова «дедукция» не требуется. Нужно только, чтобы исходные включения были верны и термины сохраняли значение.
Неверный вариант: все S внутри M; все P внутри M; значит, все S внутри P. Два маленьких круга могут лежать в одном большом и не пересекаться. Все кошки — млекопитающие, все лошади — млекопитающие, но конюшня от этого не превращается в очень большую переноску.
Это классическая ошибка нераспределённого среднего термина: общность с некоторой областью не связывает крайние термины требуемым образом. Термин называется распределённым, когда утверждение относится ко всему обозначаемому им классу. В «все S — P» говорится обо всех S, но не обязательно обо всех P. В «ни одно S не является P» исключается пересечение классов, и оба термина охвачены целиком.
Необязательно заучивать таблицу распределённости до первой чашки чая. Сначала научитесь рисовать отношения классов. Терминология нужна, чтобы кратко обсуждать уже понятную структуру, а не чтобы заменить понимание видом человека, который его достиг.
Четыре стандартные формы
Общеутвердительная: все S — P. Общеотрицательная: ни одно S не является P. Частноутвердительная: некоторые S — P. Частноотрицательная: некоторые S не являются P.
У каждой формы свои возможности. Из «ни один служебный ключ не является гостевым» следует «ни один гостевой ключ не является служебным»: отсутствие пересечения симметрично. Из «некоторые инженеры — преподаватели» следует «некоторые преподаватели — инженеры»: существует общий объект.
Но из «все инженеры отдела — сотрудники организации» не следует «все сотрудники организации — инженеры отдела». Обращение общеутвердительного утверждения в той же универсальной форме обычно неправильно. Оно может стать допустимым при дополнительных условиях равенства классов, но эти условия нельзя взять из уважения к инженерам.
Из «некоторые сотрудники не являются инженерами» не следует «некоторые инженеры не являются сотрудниками». Представьте организацию, в которой есть инженеры и бухгалтер. Все инженеры — сотрудники, бухгалтер тоже сотрудник, но не инженер. Исходное высказывание истинно, обращённое может быть ложным.
Почему существование нельзя получить из пустого воздуха
В традиционных силлогистических схемах и их современных интерпретациях важен вопрос существования классов. Из одних универсальных посылок в стандартной современной логике нельзя автоматически получать утверждение о существовании экземпляра.
«Все единороги павильона имеют пропуск; все обладатели такого пропуска внесены в журнал; следовательно, некоторые единороги внесены в журнал» не годится без посылки, что единорог хотя бы один. Павильон может быть беден мифологией, но богат универсальными инструкциями.
Если добавить «в павильоне есть единорог», существование нужного объекта появится. В учебной модели вывод станет возможным. Действительность единорога — отдельная проблема посылки, которую логика с удовольствием вернёт автору, как плохо заполненную анкету.
Такой же промах встречается без сказочных существ. «Все выявленные дефекты устранены» не означает, что дефекты выявляли или что они существовали. «Каждый участник успешно прошёл курс» не сообщает число участников. Для отчётности это принципиальное различие, а не философская придирка.
Схема Венна и чувство пространства
Для двух классов рисуют два пересекающихся круга. Отмечают, какие области пусты, а где есть хотя бы один объект. «Все S — P» исключает область S вне P. «Некоторые S — P» требует объект в пересечении. «Ни одно S — P» делает пересечение пустым.
В задачах с тремя классами рисунок усложняется, но принцип сохраняется. Нельзя поставить объект туда, где вам удобно, если посылки оставляют несколько возможных областей. Если известно «некоторые сотрудники прошли инструктаж», но ничего не известно об их доступе, объект может лежать как в области имеющих доступ, так и вне неё. Рисунок должен сохранять неопределённость, а не украшать её удобным выбором.
Ирина называла это честностью карандаша. Человек часто понимает, что данных мало, но его схема уже выглядит определённой. Потом он доверяет собственной аккуратной картинке. Чертёж способен обманывать без единой кривой линии.
В сложных случаях полезнее составить маленькую воображаемую модель: два-три объекта с явно указанными свойствами. Если все посылки выполнены, а заключение нет, контрпример найден. Такая модель часто яснее красивой диаграммы, на которую уже страшно посмотреть без линейки.
Пять минут с кадровой ведомостью
Все операторы прошли инструктаж. Некоторые прошедшие инструктаж являются подрядчиками. Следует ли, что некоторые операторы — подрядчики? Нет. Подрядчики могут относиться к другой части множества прошедших инструктаж. Минимальная модель: один оператор Антон и один подрядчик Вера, оба прошли инструктаж, но Антон не подрядчик, Вера не оператор.
Все операторы прошли инструктаж. Ни один прошедший инструктаж не работает без допуска. Следует ли, что ни один оператор не работает без допуска? Да, если обе посылки понимаются как строгие правила об одних и тех же людях и условиях. Операторы входят в класс, для которого исключено свойство работы без допуска.
Некоторые операторы — подрядчики. Все подрядчики подписали обязательство. Следует ли, что некоторые операторы подписали обязательство? Да. Возьмём существующего оператора-подрядчика, о котором сообщает первая посылка. Вторая относит его к подписавшим. Нам не нужно знать его фамилию, чтобы установить существование такого случая.
Ни один оператор не является гостем. Ни один гость не имеет служебного ключа. Следует ли, что все операторы имеют служебный ключ? Нет. Две отрицательные посылки не создают нужного положительного включения. Оператор может не быть гостем и всё равно не иметь ключа. Нельзя получить пропуск простым отсутствием двух чужих ярлыков.
Человек за общим признаком
Марк сверил действующие служебные идентификаторы. Ими пользовались не только ночные администраторы. Тестовый сценарий вообще не представлял человека: он использовал запись с теми же правами.
Директор смотрел на список с тоской. Каждый новый класс расширял круг возможных объяснений. Ему казалось, что расследование движется назад.
— Мы исключили неверное сужение, — сказал Марк. — Это движение вперёд, просто без удобного подозреваемого.
Павел добавил, что логика иногда лишает человека красивой истории раньше, чем даёт правильную. Неприятный промежуток хочется заполнить характером, интуицией или ссылкой на опыт. Лучше заполнить его проверкой.
В следующем журнале обнаружили две команды открытия: первую от тестового сценария, вторую — за сутки до происшествия. Вторая была вполне законной. Но именно на ней система училась. Класс «ключи, которыми открывали дверь» оказался слишком грубым: нужно было различать исходный пример и позднейшее воспроизведение.
Глава 10. Доказательство без фокусов и аплодисментов
Если шаг рассуждения нельзя объяснить, возможно, это прыжок, а не шаг.
«Мы проверили на трёх компьютерах»
Подрядчик сообщил, что исправление безупречно: оно сработало на трёх компьютерах. Ирина спросила, какие сценарии проверяли. Оказалось, на всех трёх запускали один и тот же стандартный вход днём.
— Мы получили три успеха, — сказал подрядчик.
— В одной точке пространства случаев.
— Но на разных компьютерах!
— Если три человека проверят, что один плюс один равно двум, это не проверит условие ночного доступа.
Испытание примеров и доказательство общего утверждения решают разные задачи. Примеры полезны: выявляют дефекты, показывают типичный режим, проверяют взаимодействие с реальной средой. Но конечный набор удачных примеров не доказывает произвольное универсальное утверждение, если не известно, что случаи исчерпаны или что существует общий аргумент.
Прямой путь
Прямое доказательство начинается с принятых посылок и движется по разрешённым правилам к заключению. Например: если активен ночной режим, требуется отдельное разрешение; отдельного разрешения нет; значит, ночной режим не может дать допустимый вход по рассматриваемому правилу. Чтобы изложение было корректным, нужно точно различить состояние режима и факт разрешённого входа: иначе бытовая формулировка опять подменит переменную.
Запишем аккуратнее. P — вход разрешён ночью; Q — отдельное разрешение присутствует. Посылки P → Q и ¬Q. Следует ¬P. Мы не сделали вывода, что ночи нет, что контроллер выключен или что дверь физически не открылась. Мы установили отсутствие разрешённости по правилу. Точность букв заставляет не приписывать выводу лишнее.
В математическом примере проще увидеть сам механизм. Пусть целое число n чётно, то есть n = 2k для некоторого целого k. Тогда n² = 4k² = 2 (2k²), значит, квадрат n чётен. Мы использовали определение и преобразования, верные для любого целого k. Нам не пришлось проверять по отдельности 2, 4, 6 и продолжать до выхода на пенсию.
Строгость не обязана быть многословной. Иногда доказательство коротко именно потому, что найден правильный общий признак. Длинная речь без этого признака напоминает бег вокруг закрытой двери: усилий много, направление не меняется.
Разбор случаев
Если все допустимые случаи покрыты и в каждом получен один и тот же результат, вывод установлен. Число бывает чётным или нечётным. Можно отдельно показать нужное свойство для обеих форм. Но полноту разбиения надо обосновать.
В системе доступа случаи могут задаваться наличием карты, кода и допустимого времени. Восемь сочетаний трёх булевых признаков исчерпывают модель. Однако если реальный контроллер имеет ещё аварийный режим, ручное открывание и неизвестное состояние датчика, ваша модель не исчерпывает реальность только оттого, что таблица закончилась.
Хороший разбор случаев не допускает потери варианта и не обязан требовать непересекающихся случаев во всех доказательствах, хотя непересекающееся разбиение часто удобнее. Главное — покрытие и корректность каждой ветви. Для подсчёта количества объектов пересечения уже нужно учитывать отдельно, иначе один объект может получить два приглашения на собственную свадьбу.
Ирина спросила подрядчика, что происходит при неизвестном времени. Он ответил: «Такого быть не должно». Это не случай в программе, а надежда в предложении. Если часы недоступны, программа всё равно что-то сделает. Лучше узнать что до того, как надежда получит сетевой тайм-аут.
Доказательство от противного
Предполагают отрицание желаемого вывода и показывают, что вместе с принятыми основаниями оно приводит к противоречию. В классической логике это позволяет отвергнуть предположение и принять исходный вывод. Но нужно следить, с чем именно возникло противоречие. Если набор исходных посылок сам конфликтует, результат может быть бесполезным.
Простой пример: не существует наибольшего целого числа. Предположим, существует наибольшее целое N. Тогда N +1 тоже целое и больше N. Это противоречит выбранному свойству N. Следовательно, предположение о наибольшем целом неверно. Доказательство не проверяет большие числа по очереди, а использует общий способ построить ещё большее.
В бытовом споре «от противного» часто подменяют карикатурой. «Если разрешить людям ошибаться, они вообще перестанут думать!» Здесь ещё не построено противоречие. Высказан прогноз, который требует собственного обоснования. Или: «Если я неправ, значит, все двадцать лет делал неправильно». Это может быть неприятным следствием, но неприятность не является логической невозможностью.
Различайте reductio и эмоциональное «не может быть». Мир не обязан соответствовать трудозатратам, вложенным в прежнюю версию. Иногда самый дорогой проект ошибочен. Смета не доказательство.
Контрапозиция как способ доказательства
Чтобы доказать P → Q, бывает удобнее доказать ¬Q → ¬P. Например, чтобы установить: если квадрат целого числа нечётен, то само число нечётно, можно показать контрапозицию: если число чётно, его квадрат чётен. Мы это уже сделали прямым вычислением.
Здесь важно различать утверждение и его доказательство. Одно положение можно обосновать несколькими путями. Выбор пути зависит от того, где определения дают удобную опору. Логика не требует самой длинной дороги. Требует, чтобы дорога действительно соединяла нужные точки.
В инженерной проверке контрапозиция полезна для исключения. Если всякое корректное завершение операции оставляет контрольную запись, то отсутствие записи при гарантированно полном журнале исключает корректное завершение. Но гарантия полноты журнала — существенная посылка. Потеряв её, мы теряем и строгий вывод, хотя фраза продолжает звучать убедительно.
Эквивалентность доказывают в обе стороны
Утверждение «P тогда и только тогда, когда Q» требует двух направлений: из P следует Q и из Q следует P. Нередко доказывают одно, а потом рисуют двустороннюю стрелку так уверенно, будто второе направление уже оплатили.
Допустим, автор заявляет: «Запрос выполнен успешно тогда и только тогда, когда появилось зелёное сообщение». Он показывает, что успешное выполнение вызывает зелёное сообщение. Этого мало. Нужно ещё показать, что зелёное сообщение не появляется при неуспехе. Ошибка в интерфейсе может нарушить именно это направление.
Иногда два направления требуют разных методов проверки. Сначала тестируют правильную обработку нормальных случаев, затем ищут ложные подтверждения на сбоях. Это относится и к диагностическим признакам: высокая частота признака при состоянии и высокая вероятность состояния при признаке — разные вещи. Позже вероятностный расчёт покажет, насколько неожиданно они могут расходиться.
Существование, построение и уникальность
Чтобы доказать существование, можно предъявить объект с нужными свойствами. Например, нужен трёхзначный код, сумма цифр которого равна десяти, а последняя цифра вдвое больше первой. Код 244 подходит: сумма десять, последняя цифра четыре вдвое больше двух. Но мы ещё не доказали, что других кодов нет.
Код 163 тоже имеет сумму десять, но последняя цифра не вдвое больше первой, поэтому не подходит. Код 326 подходит: сумма одиннадцать? Нет, 3 +2 +6 = 11. Эта намеренно неудачная проверка показывает, почему найденный на глаз пример нужно проверить по всем условиям. Уверенный вид цифр не отменяет арифметику.



