Логическое значение - PullRequest
       41

Логическое значение

27 голосов
/ 01 декабря 2009

Мне нужна помощь с этим логическим значением.

Может кто-нибудь объяснить, как это работает простыми словами:

A означает B = B + A' (если A, то B). Также эквивалентно A >= B

Ответы [ 6 ]

90 голосов
/ 01 декабря 2009

Булева импликация A implies B просто означает «если A истинно, то B должно быть истинно». Это подразумевает (каламбур), что если A не соответствует действительности, то B может быть чем угодно. Таким образом:

False implies False -> True
False implies True  -> True
True  implies False -> False
True  implies True  -> True

Это также можно прочитать как (not A) or B, т. Е. "Либо A ложно, либо B должно быть истиной".

15 голосов
/ 23 сентября 2014

Вот как я об этом думаю:

if(A)
  return B;
else
  return True;

если A истинно, то b является релевантным и должно быть проверено, в противном случае игнорируйте B и верните true.

14 голосов
/ 28 января 2016

Мне кажется, я вижу, откуда Серж, и я постараюсь объяснить разницу. Это слишком долго для комментария, поэтому я опубликую его как ответ.

Серж, похоже, подходит к этому с точки зрения вопроса, применимо ли это предположение. Это похоже на то, как ученый пытается определить связь между двумя событиями. Рассмотрим следующую историю:

Ученый посещает четыре разные страны в четыре разных дня. В каждой стране она хочет определить, подразумевает ли дождь, что люди будут использовать зонтики. Она генерирует следующую таблицу истинности:

Did it rain?  Did people      Does rain => umbrellas?  Comment
              use umbrellas?  
No            No              ??                       It didn't rain, so I didn't get to observe
No            Yes             ??                       People were shielding themselves from the hot sun; I don't know what they would do in the rain
Yes           No              No                       Perhaps the local government banned umbrellas and nobody can use them. There is definitely no implication here.
Yes           Yes             ??                       Perhaps these people use umbrellas no matter what weather it is

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

Точно так же кажется, что Серж пытается проверить, является ли A => B, и может определить это только в одном случае.

Однако, когда мы оцениваем логическую логику, мы заранее знаем отношения и хотим проверить, соблюдаются ли эти отношения. Другая история:

Мать говорит сыну: «Если ты испачкаешься, прими ванну» (грязная => ванна). В четыре отдельных дня, когда мать приходит домой с работы, она проверяет, соблюдалось ли это правило. Она генерирует следующую таблицу истинности:

Get dirty?   Take a bath?   Follow rule?   Comment
No           No             Yes            Son didn't get dirty, so didn't need to take a bath. Give him a cookie.
No           Yes            Yes            Son didn't need to take a bath, but wanted to anyway. Extra clean! Give him a cookie.
Yes          No             No             Son didn't follow the rule. No cookie and no TV tonight.
Yes          Yes            Yes            He took a bath to clean up after getting dirty. Give him a cookie.

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

Когда мы работаем с булевой логикой, мы похожи на мать: мы заранее знаем операторы и хотим работать с оператором в этой форме. Возможно, мы хотим преобразовать утверждение в другую форму (как было в первоначальном вопросе, он или она хотели узнать, эквивалентны ли два утверждения). В компьютерном программировании мы часто хотим вставить набор переменных в оператор и посмотреть, если весь оператор оценивается как true или false.

Дело не в том, чтобы знать, относится ли подразумеваемое, - там бы не было написано, если бы этого не было. Таблицы правды не о том, чтобы определить, применимо ли правило, а о том, было ли соблюдено правило.

9 голосов
/ 05 апреля 2015

Мне нравится использовать пример: если идет дождь, то облачно.

Raining => Cloudy

Вопреки тому, что могут подумать многие начинающие, это никоим образом не предполагает, что дождь вызывает облачность или что облачность вызывает дождь. ( РЕДАКТИРОВАТЬ: Это означает только то, что на данный момент , это не и дождь, и не облачно. здесь . Там я разрабатываю, среди прочего, обоснование обычного «определения» материальной импликации. Читателю потребуется некоторое знакомство с основными методами доказательства, например, прямым доказательством и доказательством от противного.

~[Raining & ~Cloudy]
0 голосов
/ 05 апреля 2015

Лучший вклад в этот вопрос внес Серж Рогач.

Булева логика применяется только в том случае, если результат количественной оценки (или оценки) является истинным или ложным, и связь между булевыми логическими высказываниями основана на этом факте.

Таким образом, между предложениями должна существовать связь или связь.

В логике более высокого порядка взаимосвязь - это не просто случай включения / выключения, 1/0 или + напряжение /-напряжение, оценка сформулированного предложения является более сложной. Если между сформулированными предложениями не существует никакой связи, то значение для сформулированных предложений не эквивалентно булевым логическим предложениям.

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

~ Таблица истинности A V B:

A B Результат / Оценка

1 1 1

1 0 0

0 1 1

0 0 1

Аэрофотоснимок А: Луна сделана из сметаны.
Адресное предложение Б: завтра я выиграю в лото.

A B Результат / Оценка

1? ?

Как видите, в этом случае вы даже не можете определить состояние B, которое будет определять результат. Имеет ли это смысл сейчас?

В этой таблице истинности предложение ~ A всегда оценивается как 1, поэтому последние две строки не применяются. Однако последние две строки всегда применяются в логической логике.

http://thenewcalculus.weebly.com

0 голосов
/ 04 апреля 2015

Судя по таблицам истинности, можно вывести значение a => b только для a = 1 и b = 0. В этом случае значение a => b равно 0. Для остальных значений (a, b) значение a => b не определено: both (a => b) = 0 («a не подразумевает b ") и (a => b) = 1 (" a подразумевает b ") возможны:

a b a=>b comment
0 0  ?   it is not possible to infer whether a implies b because a=0
0 1  ?   --"--
1 0  0   b is 0 when a is 1, so it is possible to conclude
         that a does not imply b
1 1  ?   whether a implies b is undefined because it is not known
         whether b can be 0 when a=1 .

Чтобы a подразумевало b, необходимо и достаточно, чтобы b = 1 всегда, когда a = 1, чтобы не было контрпримеров, когда a = 1 и b = 0. Для строк 1, 2 и 4 в таблице истинности неизвестно, существует ли контрпример: эти строки не противоречат (a => b) = 1, но также не доказывают (a => b) = 1 , В отличие от этого, строка 3 немедленно опровергает (a => b) = 1, поскольку она обеспечивает контрпример, когда a = 1 и b = 0. Я думаю, что я могу шокировать некоторых читателей этими объяснениями, но кажется, что где-то есть серьезные ошибки в основах логики, которой нас учат, и это одна из причин того, что такие проблемы, как булева удовлетворенность, еще не решены.

...