Entry tags:
Проект "логика для чайников". Параграф 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 ложно).
Помимо двух 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 (не для "чайнегов" :))
Ну тогда если-то является по определению логической связкой , т.к. применяя его к высказываниям мы получаем новые составные высказывания. Исключить если-то из списка логических связок не получается.
Я бы сделал иначе. Я бы исключил если-то из списка таких логических операций, для вычисления истинности которых достаточно знать истинность операндов. То есть, для конъюнкции верно:
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 требуется знать об операндах больше, чем их истинность.