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 ложно).

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 требуется знать об операндах больше, чем их истинность.