psilogic: (ioda)
psilogic ([personal profile] psilogic) wrote2007-10-07 01:28 pm

Проект "логика для чайников". Параграф 37

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

Помимо двух modus-ов, есть еще ряд полезных свойств условных высказываний.


Обращение условия

(X =>> Y) =>> (~Y =>> ~X)

(~X =>> ~Y) =>> (Y =>> X)

Так из одного условного высказывания можно получить другое. Например дано: “если это селедка, то это рыба”. Можно получить: “если это НЕ рыба, то это НЕ селедка”. И наоборот. Метод действует в обе стороны.

Цепочка условий

( (X =>> Y) & (Y =>> Z) ) =>> (X =>> Z)

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

Например, дано: “если это селедка, то это рыба”, “если это рыба, то у нее есть хвост”. Можно получить: “если это селедка, то у нее есть хвост”. Тем же методом можно составить цепочку любой длины и потом взять только ее концы.

Данное свойство называется “транзитивностью”.

Условия для “И”

Операция логического “И” позволяет строить высказывания вида:

(A & B) =>> A
(A & B) =>> B

Высказывание A И B истинно, когда истинны оба: и A, и B. А раз истинны оба, значит и каждое по отдельности (именно об этом приведенные правила). Например: “если шушпанчики рыжие и пушистые, то шушпанчики рыжие”. Если мы можем утверждать сразу две вещи, то можем ограничиться и только одной.

Условия для “ИЛИ”

Операция логического “ИЛИ” позволяет строить высказывания вида:

A => ( A \/ B )
B => ( A \/ B )

Высказывание A ИЛИ B истинно, когда истинны хотя бы одно: A, или B (а можно оба). Правило говорит о том, что для того, чтобы доказать истинность A \/ B, достаточно доказать только истинность A или только истинность B. Например: “если человек украл вещи или человек украл деньги, то он вор”. Можно получить: “если человек украл вещи, то он вор”.

Условия для “XOR”

Операция логического “XOR” позволяет строить высказывания вида:

( ~A & ( A ⊕ B ) ) => B
( ~B & ( A ⊕ B ) ) => A
( A & ( A ⊕ B ) ) => ~B
( B & ( A ⊕ B ) ) => ~A

(если у кого-то не отображается значок "⊕", то там плюс в кружочке)

Высказывание A XOR B истинно, когда истинно только одно: либо A, либо B (но не оба). Правило говорит о том, что если уже доказано, что A XOR B истинно, то можно делать заключения об истинности одной из частей по истинности другой:

Если A ложно (доказано НЕ A), тогда истинно B.
Если B ложно (доказано НЕ B), тогда истинно A.
Если A истинно, тогда ложно B (можно доказать НЕ B).
Если B истинно, тогда ложно A (можно доказать НЕ A).

Например: “Человек может быть либо женского, либо мужского пола. Если человек не женского пола, тогда мужского”.

Обратите внимание, что правила для XOR похожи на modus-ы.

Опровержение условного высказывания

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

( A & ~B ) => ~( A =>> B )

Поясню словами. Чтобы опровергнуть утверждение “ЕСЛИ A, ТО B”, нужно найти случай, когда A истинно, но B ложно. Например: “если это рыба, то это селедка”. Это неправильно, так как, например, лосось – это рыба (истинно A), но не селедка (B ложно).

из "Покаяния" :)

[identity profile] falcao.livejournal.com 2007-10-13 01:51 am (UTC)(link)
> Не обижайтесь, пожалуйста, но "эта идея" называется modus ponens

А чего тут обижаться? Это не модус поненс. Нельзя же путать между собой похожие вещи. В формулировке правила modus ponens импликация A->B считается высказыванием. А я предложил нечто более "революционное" -- просто исключить импликацию из числа логических связок, а просто поднять на несколько другой уровень.

Связь с modus ponens тут только в том, что он при таком подходе будет действовать автоматически.

Предлагаю ещё раз подумать над тем, что я сказал выше.

> утверждал, что конъюнкция - более правильная формализация для "если-то"

Ой, как бы мои студенты этому обрадовались! Они постоянно путают одну с другим. Любимая "весч" у них -- это отождествление импликации с её заключением :) Я по этому поводу всегда иронизировал про себя, что это у них работает принцип "зачем нужна дорога, если она не ведёт к храму" :)

Re: из "Покаяния" :)

[identity profile] psilogic.livejournal.com 2007-10-13 07:40 am (UTC)(link)
[ А я предложил нечто более "революционное" -- просто исключить импликацию из числа логических связок, а просто поднять на несколько другой уровень. ]

Звучит красиво, смысл непонятен. Как лишить A=>>B статуса высказывания, если по крайней мере в ряде случаев о нем вполне определенно можно сказать, что оно истинно или что оно ложно? Что такое исключение из логических связок?

[ Говоря "если A то B" я не утверждаю какой-либо факт вроде "Волга впадает в Каспийское море", а просто говорю: "дорогие товарищи, я вам разрешаю во всех ситуациях, где A истинно, считать B истинным, ссылаясь на эти мои слова" :) ]

Тем самым вы _утверждаете_, что разрешаете (...и далее по тексту...).

Разницы с modus ponens не увидел. modus ponens именно разрешает то, что вы написали.

[ Ой, как бы мои студенты этому обрадовались! ]

Т.е. насчет того, что не только импликация удовлетворяет условиям, возражений не последовало :P

windows (не для "чайнегов" :))

[identity profile] falcao.livejournal.com 2007-10-14 03:26 am (UTC)(link)
"Логические связки" -- это отрицание (одноместная связка), конъюнкция, дизъюнкция, импликация, эквиваленция (двуместные связки). Применяя л.с. к высказываниям, мы строим из них новые высказывания.

Я предложил некую идею, но при этом я не предлагаю применять её везде и всюду. Где-то такой подход может быть уместен. Идея такая: перестать считать импликацию логической связкой, то есть исключить сам значок и запретить формирование высказываний вида "A влечёт B". То, что при этом иногда что-то получается, нас не особо волнует. Мы не рассматриваем, например, штрих Шеффера как отдельную связку, хотя могли бы. Выбор "значков" -- это наше дело.

Сейчас я продолжу, а пока хочу парировать одно Ваше замечание.

> вы _утверждаете_, что разрешаете

Это ненужная "надстройка". Можно продолжать "сказку про белого бычка", "утверждаю, что утверждаю, ..." Ясно, что это ни к чему.

Содержательно мы можем иметь два "списка", два "окна". В одном мы доказываем теоремы, то есть пишем утверждения. Это могут быть теоремы геометрии, например. В других окнах у нас может располагаться нечто другое. Например, правила вывода. Или инструкции, как себя вести, если не будет хватать места. А также в отдельных окнах могут быть аксиомы, определения, сокращённые обозначения -- что угодно. В том числе может быть особое окно для так называемых "разрешений".

Это окно может пополняться в процессе доказательства каких-то теорем. Или все разрешения могут быть даны сразу. Например, в Главном Окне может решаться какая-то задача по стереометрии. Мы при этом проводим сечения, рассматриваем треугольники, вписываем окружности и так далее. А окне Разрешений может присутствовать, скажем, теорема Пифагора. Получив, что некий конкретный треугольник ABC имеет прямой угол C, мы можем воспользоваться этой теоремой, которая теперь уже не имеет вид импликации. Да её обычно так и не формулируют.

В Главном Окне мы пополняем список того, что мы знаем об изучаемом в задаче объекте -- например, какой-то пирамиде. При этом наши утверждения будут конкретными -- типа того, что расстояние AB равно 5.

Modus ponens теперь просто не может быть даже сформулирован -- его формулировка использует понятие импликации, а оно нами элиминировано. Разница ещё и в том, что MP -- правило общее, а здесь каждая теорема -- это отдельное разрешение. Конечно, в содержательном отношении тут разницы нет в том смысле, что вся описываемая мной деятельность может быть описана и в старых терминах. Но это само собой разумеется -- я же не меняю содержательного смысла утверждений из области логики или геометрии.

> возражений не последовало

Я могу добавить, если надо.

Введём обозначение Impl(A,B). Под этим будем понимать то, о чём шла речь выше: "утверждается истинность B в случае истинности A и не утверждается ничего (относительно B), когда A ложно".

Теперь возьмём конъюнкцию Conj(A,B). Здесь утверждается истинность как A, так и B.

Разница между одним и другим очевидна. Ваш аргумент говорит ровно следующее: если конъюнкция истинна, то импликация тоже истинна. Принимая истинность Impl(A,B), Вы делаете некие заключения относительно B в случаях, когда A истинно или ложно. В первом случае Вы приходите к выводу об истинности B; во втором -- никакого вывода не делаете. Если Вы принимате Conj(A,B) за истину, то в случае истинности A Вы, конечно, имеете право сделать вывод об истинности B, так как оно истинно в силу принятого Вами условия. Но второй случай -- случай ложности A, здесь уже просто невозможен (опять-таки по принятому условию). Его формально никто не мешает рассмотреть, но тогда мы придём к противоречию. Это значит, что мы сможем прийти как к выводу об истинности B, так и к выводу о ложности B, что естественно в противоречивой ситуации. Это отличается от того, что было выше, когда у нас не было вообще никаких средств заключить, истинно B или ложно.

Re: windows (не для "чайнегов" :))

[identity profile] psilogic.livejournal.com 2007-10-14 09:57 am (UTC)(link)
[ "Логические связки" -- это отрицание (одноместная связка), конъюнкция, дизъюнкция, импликация, эквиваленция (двуместные связки). Применяя л.с. к высказываниям, мы строим из них новые высказывания ]

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

Я бы сделал иначе. Я бы исключил если-то из списка таких логических операций, для вычисления истинности которых достаточно знать истинность операндов. То есть, для конъюнкции верно:

Tr(X & Y) = Tr(X) & Tr(Y)

А для "если-то" в общем случае неверно:

Tr(X =>> Y) = Tr(X) =>> Tr(Y) [1]

- где Tr - это функция, отображающая тексты на их истинность. Доказывается этот факт просто.

Пусть X = "трава зеленая", Y = "вода мокрая", тогда
Tr(X =>> Y) = false (несвязанные утверждения)
Также по формуле [1]:
Tr(X =>> Y) = Tr(X) =>> Tr(Y) = true =>> true
Отсюда:
true =>> true = false

Теперь пусть X = "трава зеленая", Y = "трава зеленая", тогда
Tr(X =>> Y) = true (простая тавтология)
Также по формуле [1]:
Tr(X =>> Y) = Tr(X) =>> Tr(Y) = true =>> true
Отсюда:
true =>> true = true

Итого получаем,
true =>> true = false
true =>> true = true

То есть истинность =>> не является функцией истинности операндов. Однако она все еще может быть функцией операндов. То есть, для вычисления истинности X =>> Y требуется знать об операндах больше, чем их истинность.

Re: windows (не для "чайнегов" :))

[identity profile] psilogic.livejournal.com 2007-10-14 10:12 am (UTC)(link)
[ > вы _утверждаете_, что разрешаете

Это ненужная "надстройка". Можно продолжать "сказку про белого бычка", "утверждаю, что утверждаю, ..." Ясно, что это ни к чему. ]

Я просто подчеркнул, что все-таки у вас получилось высказывание. "Утверждение", "высказывание" - синонимы.

Про "окна" - этот подход удаляет нас от решения конечной задачи - формализации если-то. В естественном языке если-то сплошь и рядом рассматривается как высказывание, ему приписывается истинность или ложность, никто не отделяет его "в отдельное окно" для каких-то "неприкасаемых" текстов. То есть, исчисление такое построить можно, но оно не будет описывать если-то.

[ Ваш аргумент говорит ровно следующее: если конъюнкция истинна, то импликация тоже истинна. ]

Да, с этим возражением согласен.


шаблоны

[identity profile] falcao.livejournal.com 2007-10-14 11:42 am (UTC)(link)
Если Вы говорите, что знание истинностных значений операндов недостаточно для знания истинностного значения импликации, то это и есть то, к чему я клоню. То есть к тому, что импликацию можно не считать обычной логической операцией типа конъюнкции, а считать чем-то более сложным. Я это и подразумевал под исключением одной из логических связок.

Можно было для краткости не приводить длинного куска текста про траву и воду. Достаточно было указать, что Вы не считаете само импликативное высказывание истинным из-за отстутствия связи между посылкой и заключением.

> у вас получилось высказывание

Нет, я с этим не согласен. Разрешение имеет иной статус. Это более чем принципиально. У Вас внимание направлено в основном на то, что имеет истинностные значения. Я давно пришёл к выводу, что это ограничение слишком сильное, и именно оно порождает многие парадоксы и несоответствия.

Если Вы стремитесь к "ревизии" толкования каких-то "классических" вещей, то само стремление я всецело поддерживаю, причём считаю, что этими вещами нужно заниматься. Я при этом с горечью констатирую, что значение такого рода "ревизий" не понимает практически никто. "А зачем это нужно?" или "а что это даст?" -- только это и приходится слышать.

Поскольку Вы явно имеете как вкус к этой проблематике, так и чутьё, то я очень рекомендовал бы Вам подходить к этому вопросу ещё более свободно. В частности, не сводить всё к "утверждениям", поскольку кроме них есть ещё очень много всего. Правила, разрешения -- это вещи совсем иной природы.

То же самое касается формализации "если ... то". Я не исключаю, что удовлетворительное разрешение этого вопроса может заключаться (и даже, скорее всего, заключается) в чём-то ином. Например, в придании условным суждениям иного статуса. Именно такая идея у меня и возникла.

В любом случае, я считаю полезным отходить от "шаблонов" и "стандартов". Или хотя бы допускать такую возможность.

Re: шаблоны

[identity profile] psilogic.livejournal.com 2007-10-14 12:19 pm (UTC)(link)
[ Можно было для краткости не приводить длинного куска текста про траву и воду. ]

Ну надо же было доказать, что если-то - не функция истинности операндов.

[ У Вас внимание направлено в основном на то, что имеет истинностные значения. ]

Скажем так: любой текст, который имеет единственное истинностное значение, я называю (по определению) высказыванием (синином: утверждением). Если вы хотите придать высказыванию какой-то дополнительный статус, чтобы отличить его от других высказываний, это на здоровье. Получится, что некоторые высказывания будут правилами, разрешениями и т.п. - ну и пускай.

"А что это даст?" - именно! И я тоже сразу буду долбить вас таким вопросом, я же злостный прикладник ;)))) Ревизии должны быть чем-то оправданы. Просто перефразировка известного? Зачем? Чтобы создать иллюзию новизны на пустом месте? Такничесна! Обязательно должен быть хоть какой-то "бонус". Вот как у вас в изложении исчисления высказываний. Не надо доказывать метатеорему дедукции - это большой бонус. Замена интуитивно малопонятных аксиом более понятными правилами - это тоже бонус. А вот переименование правил вывода в правила рассуждения - нет, извиняйте, это уже подозрительно напоминает перефразировку. "Значение ревизий не понимает никто" - так назовите это значение - тогда и поймут! :) Просто перефразировка заменяет привычные слова на непривычные, заставляет отвлекаться не на суть проблемы, а на перевод с непривычного языка на привычный типа... а вот он называет ... то, что я называю...