Поскольку
(А & А) = True
(А = А) = True
то
(А & А) = (А = А)
Поскольку
(А & не-А) = False
(А = не-А) = False
то
(А & не-А) = (А = не-А)
Это верно для всех А, кроме самого False
(False & не-False) = False
(False = не-False) = False
поскольку
1) False = False
2) но (False = не-False) когда формулируется оно само:
False = (False = не-False)
http://hostingkartinok.com/show-image.php?id=4be33ae4c3db5b9314d1fc7549c128fa
Комментарии
Все подобные фокусы, в том числе известный "парадокс лжеца", основаны на нарушении принципиального требования логики, гласящего, что нет абстрактной истины - истина всегда конкретна!
В самом деле, из того, что 5 =/=-5 и 3 =/=-3 вовсе не следует, что эти неравенства равны друг другу!!!
Именно так: (5 не-равно -5) = (3 не-равно -3), поскольку это вырождается в True=True.
Все языки программирования трактуют эти формулы именно так и никак иначе.
Это верно для всех А, в том числе, и для самого False
(False & не-False) = False
(False = не-False) = False
поскольку
1) Истинно, что (False = False)
2) Ложно, что (False = не-False) , или
False = (False = не-False)
--
(А & А) = True
(А = А) = True
Если вы приравняете (А & А) = (А = А), где А есть False, то получите не-равно
(False & False) не-равно (False = False), поскольку (False & False) = False, (False = False) = True ... (смотрите таблицу истинности)
Неверно. См. табл. истинности:
поскольку:
((False = False) & (False = False)) = True (3)
строка 4:
1 & 1 = 1 (4)
--
В первой строчке таблицы (False & False) = False. Вы же пишите, что это неверно.
bulygin69, 13 Январь, 2017 - 03:42, ссылка
Речь касалась контрпримера, где конъюнкция False дает True, а именно:
поскольку:
((False = False) & (False = False)) = True (3)
строка 4:
1 & 1 = 1 (4)
Вот сей факт и следовало пояснить.
--
Все верно. ((False = False) & (False = False)) = True
Но противоречие в другом. C одной стороны, (False = False)) = True. С другой стороны, (False ≠ False)) = False
Так ложь равна лжи? Или ложь не равна лжи? ... Ложь как равна лжи, так и не равна лжи. Чтобы избежать противоречия (из ложной формулы следует как ложь, так и истина согласно ИМПЛИКАЦИИ), свойства ложной формулы разнесены по разным операциям (эквиваленция, логическое И)
Посмотрите на их разницу: они различны только по отношению к False.
philozan (12 Январь, 2017 - 09:04, ссылка) сразу указал на парадокс лжеца. К сожалению, эту причину Вы оставили без внимания и не ответили на вопрос, что такого в False, что начинается чехарда с истинностными оценками?
--
Потому что надо выражать формулами, а не словесно.
Имеем ложную формулу (А = не-А). Но сохранить смысл ложной формулы можно только в том смысле, если левая часть равенства (А) и правая часть равенства (не-А) должны быть равны себе, т.е. чтобы сказать (А = не-А) необходимо также сказать (А = А), (не-А = не-А).
(Логическое И = логическое эквивалентно) за исключением False. Другими словами:
False равно False, если речь идет об эквиваленции
False не-равно False, если речь идет о логическом И
Из какой области вы набрали эти знаки: '&', '=', 'True' ???
Вопрос ведь у меня совсем детский - на уровне самых начальных аксиом. Вот, к примеру, если знак '&' означает "логическое И" из булевой алгебры, то строчкой ниже знак '=' в выражении (А = А) тоже вроде бы должен означать некую булеву операцию. Интересно, какую?
Кроме того, неужели знак '=' употреблённый в одной и той же строке два раза означает одно и то же?
Впрочем, можно обойтись только первой строкой, если под знаком '&' вы действительно имели в виду "логическое И". Дело в том, что при значении А равным булевому False, мы получим в результате "логического И" не True, а False. Хотя и тут вы можете оказаться правы, если вы под True имели в виду нечто совсем другое, нежели альтернативу False.
И вот так в каждой строчке... Так сказать: в каждой строчке только точки после буквы "л"...
(& ... это логическое И) (= ...это равно), (true ... это истина).
О ложности и истинности формул (по Успенскому): (А=А) формула истинна, (А=не-А) формула ложна.
Но тогда [А & не-А = False], [(А = не-А) = False]
Ликбез: http://pythonicway.com/python-operators
5 == 5 в результате будет True
True == False в результате будет False
"hello" == "hello" в результате будет True
12 != 5 в результате будет True
False != False в результате будет False
"hi" != "Hi" в результате будет True
И т.д.
Ого, вы сразу включили установку "Град".
Был знак '=' а тут сразу добавился знак '=='. Вы хотите сказать, что вам не жалко - можно и тройное равно.
Я никогда не программировал на языке Python, но уверен, что там всё довольно логично построено. Не намного хуже/лучше, чем во многих других языках программирования.
Так что же вы хотите сказать - ваши записи это кусочки из некой программы на языке Python? А я - поц последний - сразу не догнал (в то время как вся туташняя философская общественность моментально всё поняла и схавала). При том, что особо интересно, так это то, что вырезанные автогеном кусочки из программы, не представляют собой каких-либо законченных строк-операторов (фрагментов программы), а являются некими обрывками неких строк.
Короче, старые вопросы остаются. Знак '=' во второй строке у вас употреблён два раза. Он означает одно и то же?
1) знак "==" это "равно" в Python
2) Не имеет значения, какие языки используются. Вот пример из ассемблера Логика та же: (А = А) формула истинна, (А = не-А) формула ложна
Таблица 1. Операторы сравнения
Оператор Значение
eq ИСТИНА, если выражение_1 равно выражение_2
ne ИСТИНА, если выражение_1 не равно выражение_2
здесь eq - эквивалентно, ne - не-экививалентно (поэтому вернет False для А=не-А)
3) В этих формулах сами А являются формулами. Поэтому (А & не-А = False), где А, например, есть ложь ... читается как: ложная формула & не-ложная формула - то же самое, что ложь.
Сомнительное утверждение. Писатели на Delphi не охотно переходят на С, и наоборот, как раз из-за этого "=".
Cсылка Оператор выбора if в языке C
Истинное значение (ИСТИНА) имеет значение отличное от нуля, ЛОЖЬ эквивалентна нулю. При использовании операторов сравнения, оператор будет возвращать единицу, если выражение сравнения — истинно, или — 0, если условное выражение ложно. Например, выражение 3 == 2 вернет значение 0, так как три не равно двум. Выражение 5 == 5 оценивается как истинное и вернет значение 1. Если вам сложно это понять, попробуйте сделать вывод на экран этих выражений, например: printf ( "%d", 7 == 0 );
Оттуда же: 5 == 5 это истина, 3 != 2 и это истина
Да понятно, просто А=А читается как А присвоить А, соответственно оператор А=-А тоже вернёт истину.
Здесь понятие False используется в разных смыслах. В левой части "равенства" False используется в значении А /определенной величины или определенного высказывания/, а в правой части - в значении истинностной оценки всей левой части!
Все подобные фокусы основаны на какой-нибудь подтасовке.
То есть истинность содержания и истинность оценки, это разные вещи? Но как их позиционировать? И вот тут, как мне кажется открывается простор, который в булеву математику не втискивается. Другими словами, всё программирование заканчивается на компиляторе.
Что есть ложь? Ложная формула: (A = не-А) = False или (A ≠ А) = False
Иначе говоря, False - то же самое, что
равенство неравных термов, равенство неравных формул
или
неравенство равных термов, неравенство равных формул
False равна False? Равна, т.е (False = False) = True.
C другой стороны, если подставить False в (A ≠ А),
то получим: (False ≠ False)
Так ложь равна лжи или ложь не-равна лжи?
Чтобы делать истинные выводы относительно False, свойства ложных формул
были разнесены по разным операциям (эквиваленция, логическое И)