Это у меня получился "внеочередной" пост на тему, по которой я время от времени высказываюсь. Как и многие другие записи на тему логики, он размещается в открытом виде.
Поводом послужил следующий
пост; см. также продолжение
здесь. Содержимое по ссылкам изучать не обязательно, так как я сейчас перескажу сам "сюжет". Речь идёт о логическом парадоксе, который поначалу мне показался не слишком интересным ввиду того, что из него вроде бы не следует ничего особо "поучительного". Однако далее я пришёл к выводу, что кое-какие размышления здесь всё-таки были бы полезны. Сразу хочу предупредить, что я при разговоре о таких вещах стараюсь по возможности избегать формул, излагая мысли словами. Но в данном случае мне показалось более удобным использовать кое-какую символику просто для краткости. Смысл всех выписываемых выражений является в достаточной мере "прозрачным", и поэтому тем, кто не хочет вдумываться в правила преобразования "значков", я рекомендую просто поверить на слово, что все "логические вычисления" проведены по правилам. Тогда можно опустить часть текста, начав читать с того места, где начинается собственно "интрига".
Сам парадокс состоит в следующем. В комнате имеется люстра и два выключателя. Известно, что если включить оба из них, то загорится свет.
Представим эти данные в символьной форме. Обозначим через A1 высказывание о том, что первый выключатель находится во включённом состоянии, а через A2 -- аналогичное высказывание о втором выключателе. Через B обозначим высказывание о том, что свет в комнате горит. Тем самым у нас выполнено следующее условие:
(1) A1 and A2 -> B
которое в переводе на "общепонятный" язык как раз и означает, что если оба выключателя у нас включены, то свет в комнате горит. Преобразуем теперь формулу (1) согласно правилам классической логики. Прежде всего, когда говорится, что из X следует Y, это по своему смыслу в точности означает что либо X не выполняется, либо выполняется Y. В виде формулы, это будет иметь вид "not(X) or Y". Тем самым приходим к условию
(2) not(A1 and A2) or B
и далее применяем так называемое "правило де Моргана": отрицание того, что верны оба условия A1 и A2, есть утверждение того, что хотя бы одно из условий A1, A2 не выполнено, и тем самым справедливо то, что имеет место хотя бы одно из условий not(A1) или not(A2). Запишем это в виде
(3) not(A1) or not(A2) or B
что далее можно представить в виде
(4) not(A1) or B or not(A2) or B
с учётом того, что условия можно менять местами, а "B or B" -- это не что иное как B (это правило есть один из "законов поглощения" для высказываний). Далее от формул вида "not(X) or Y" снова перейдём к X -> Y, применив это правило дважды. Окончательно получим, что
(5) (A1 -> B) or (A2 -> B)
То есть мы переформулировали данные задачи. Условие (5) логически равносильно исходному условию (1). Теперь мы знаем, что у нас истинно хотя бы одно из высказываний: A1 -> B или A2 -> B. В переводе на "общепонятный" язык это означает, что достаточно включить какой-то один из выключателей, и свет будет гореть. В самом деле, что означает A1 -> B? "Если выключатель A1 включён, то свет горит". Это высказывание может не быть истинным, но тогда истинно второе: "Если выключатель A2 включён, то свет горит". Но такой вывод является парадоксальным, так как заведомо бывают случаи, когда требуется включить оба выключателя, без чего свет точно не загорится.
Я решил проанализировать этот парадокс дабы вскрыть одну особенность логических рассуждений, которая хотя и подразумевается неявно, но чаще всего остаётся "в тени", и я поэтому хочу на неё "пролить свет" :)
Прежде всего, когда мы имеем дело с высказываниями, то надо отличать высказывания с "фиксированным" смыслом (типа "2+2=4", всегда означающих как бы одно и то же), от высказываний с "переменным" смыслом -- типа "горит свет". Строго говоря, последняя фраза имеет статус высказывания не сама по себе, а лишь в некой заданной ситуации, и без указания такой ситуации ей нельзя придать никакого истинностного значения. Поэтому в уточнённом виде высказывание имеет вид "горит свет в ситуации S", где S указана. В нашем случае заданием ситуации может служить указание на то, какие из двух выключателей находятся во включённом состоянии, так как этим всё остальное определяется. Понятно, что при смене ситуации истинностное значение высказывания может меняться. Так, если первый выключатель не был включён, то высказывание A1 в той ситуации было ложным, однако при его включении ситуация меняется, и в ней уже высказывание становится истинным.
Теперь посмотрим на условие (5) с этой точки зрения, то есть с учётом "ситуационности" истинности. Было бы точнее записать его в форме
(6) (A1(S) -> B(S)) or (A2(S) -> B(S))
где S есть произвольная ситуация. Хотя бы одно из двух условий заведомо должно быть истинно; допустим, что это условие A1(S) -> B(S). Оно прочитывается нами так, что если первый выключатель включён, то свет горит. Интерес представляет анализ случая, когда ни один из выключателей не включён, и свет, соответственно, не горит -- это и будет наша ситуация S. Мы видим, что свет не горит, и если мы уверены в истинности условия A1(S) -> B(S), то возникает желание включить первый выключатель.
Понятно, что свет загореться не должен (так как второй выключатель всё ещё выключен). В чём же дело? Неужели нас "обманули", сообщив "по секрету", что условие A1(S) -> B(S) истинно? Если мы захотим провести "расследование", то нам скажут, что оба высказывания A1(S) и B(S) были ложными, поэтому условие A1(S) -> B(S) в самом деле было истинным. И даже условие A2(S) -> B(S) было истинным, то есть никакого обмана не было!
В чём же дело? Мы знаем, что A1 стало истинным (сами включали!), но видим, что свет не горит, то есть B ложно. И условие A1 -> B тем самым не выполнено. Объяснение состоит в том, что наше действие по включению первого выключателя изменило ситуацию. То есть от ситуации S мы перешли к ситуации S', в которой первый выключатель включён. Конечно, к ней тоже применим принцип (5), но теперь он выглядит уже по-новому:
(7) (A1(S') -> B(S')) or (A2(S') -> B(S'))
Нам здесь гарантирована истинность хотя бы одного из условий. Предыдущий анализ показывает, что первое условие, то есть A1(S') -> B(S'), нарушается. Значит, должно быть истинно второе! И тогда, обратившись к нему и включив второй выключатель, мы увидим, что свет загорелся, что согласуется с нашими ожиданиями.
На самом деле, даже здесь есть тонкость, потому что если мы не хотим прибегать к практическому знанию, то мы и здесь должны учитывать "ситуационность": ведь после нашего действия ситуация снова сменилась -- мы включили второй из выключателей! Строго говоря, её полагалось бы обозначить через S'' и всё заново подвергнуть "ревизии". Допустим, что по каким-то причинам свет всё-таки не зажёгся. Поскольку второй выключатель теперь у нас включён, то высказывание A2(S'') -> B(S'') стало ложным. Поскольку в принцип (5) мы по-прежнему "свято" верим, это гарантирует нам истинность теперь уже снова первого из высказываний, то есть A1(S'') -> B(S''). Коль скоро свет не горит, мы должны логически прийти к выводу, что A1(S'') стало ложным, то есть первый выключатель отключён. Но ведь мы его сами включали! И если так всё-таки произошло, то единственное, на что можно подумать, это на то, что включение второго из выключателей повлекло за собой отключение первого! Чисто теоретически такое могло бы быть, то есть принцип (5) остаётся истинным, и в этом нас не обманули, но зато подсунули такую "хитрость", что, оказывается, оба выключателя одновременно во включённое положение привести невозможно.
В заключение хотелось бы сказать, что я по-прежнему не вижу никакой необходимости отказываться от "классической" логики в пользу чего-то другого. Конечно, разного рода "нестандартные" логики изучаются и будут изучаться, но это не имеет отношения к вопросу о "замене". Если рассуждать "чисто" и "по-честному", то никаких противоречий появиться просто не может. Главное -- не терять связи с реальным смыслом высказываний. То есть в этом смысле всегда должен гореть какой-то внутренний "свет".