Закон тождества, как и любой закон логики, тавтологичен: X=X (что верно при каждом значении Х)
Отрицание тавтологии - противоречие: not X=X (что ложно при каждом значении Х)
Когда в формальной логике пишут (для значений True, False переменной X): X and not X = False
то это ничто иное, как: False and not False = False
Последняя запись может быть выражена иначе: not (False=False) and (False=False) = False
Или, еще короче, как: not (False=False)=False т.е. (False≠False)=False
Другими словами, False как равно себе, так и не равно.
Причем, возвращаясь к всегда ложной формуле (not X=X), она является необходимой, если требуется выразить "то, чего нет".
Примеры можно найти повсюду. В доказательствах от противного. Или задачах с параметром, например.
Так, (a-2)(a-3)x = a(a-2)
при а=2 решением будет любое действительное число
при а=3 решения нет
при a≠2 и a≠3 решением будет а/(а-3)
Что значит решения нет при а=3? То, что 0*х=3
Чем такая "всегда ложная формула" отличается от формы записи противоречия? Ничем.
Еще раз. Если требуется выразить "то, чего нет", иного способа просто нет.
Выразить ВСЁ только истинно не получится (ох, уж этот Гедель). Нужна еще и ложь!
P.S. О возможности выразить натуральный ряд чисел через только понятия "равно, не" уже писал ранее.
Главное, что эта логика работает в программах
(несмотря на возражение математики, что такого быть не может по ее законам)
Комментарии
У вас символ "=" используется в данной теме 16 раз. И ещё 3 раза - слово "равно". Надо как-то определиться в том, что означает "=" в каждом из контекстов этой темы. Тем более, что она начинается со слов "закон тождества...". Призываю вас не нарушать провозглашаемый вами же "во первых строках вашего письма" этот закон. Знак "=" должен означать одно и то же, или надо делать оговорку, если это не так.
На сайте Полякова есть скрипт для решения систем логических уравнений
https://www.kpolyakov.spb.ru/school/ege/solver23.htm
Так, уравнение x1=x1 (эквиваленция - закон тождества для логических переменных True,False)
дает 2 решения: x1=0, x1=1
Уравнение !(x1=x1) решений не имеет: эта формула всегда ложна (т.е. имеем противоречие)
Уравнение же x1=!(x1=x1) имеет одно решение: False.
Поскольку уравнение x1=!(x1=x1) состоит из уравнения !(x1=x1), то
получается, что уравнение x1=!(x1=x1) имеет решение,
когда одно из его составляющих уравнений решений не имеет!
Аналогичная картина наблюдается и с алгебраическими уравнениями.
Для уравнения (a-2)(a-3)x = a(a-2) при а=3 оно не имеет решения.
Но это также означает, что оно имеет при а=3 ноль решений!
P.S. P.S. Этот же смысл мы видим, когда решаем простые задачки арифметики.
Была птичка, затем улетела. Сколько осталось птичек? Птичек нет, т.е птичек ноль.
птичка-птичка = !(птичка=птичка) = нет птички = птички ноль
А что тут делает восклицательный знак? Ещё интереснее - скобки: одна в левой части уравнения, а другая - в правой. Или у вас знак "=" не связан с понятием уравнение? Если нет, то почему вы называете это уравнением? А если да, то получается, что левая часть уравнения - это !(x1 , а правая часть - это x1).
! Операция отрицания (так на сайте)
Уравнение х=х ничем не отличается от (х=х). Если не верите, подставьте и проверьте.
Скрипт на сайте Полякова - решение логических уравнений
Если пойти по указанной вами ссылке, то получаешь предупреждение:
Ну, у вас там за кордоном не все как у людей :)
Вообще, это сайт ПОЛЯКОВА Константина Юрьевича - доктора технических наук, учителя высшей категории (автора, пожалуй, лучшего учебника по профильной информатике)
Так https://www.kpolyakov.spb.ru тоже не открывается?
Здесь ссылка на скрипт https://www.kpolyakov.spb.ru/school/ege.htm
Эти две ссылки открываются нормально.
Однако запись не (X1 = X1) я никак не могу прочесть как уравнение. Могу интерпретировать это как логическое выражение, результат которого False при любых X1. То есть, и при X1=False, и при X1=True.
Заметьте, знак "=" имеет совершенно разный смысл в ЯКОБЫ уравнении, и в последних двух случаях, когда указаны возможные значения X1. В якобы уравнении знак "=" очевидно следует интерпретировать как знак логической операции "эквиваленция"
Это тоже, что X1 ≠ X1 Или тоже, что X1 = (not X1)
Эквиваленция - частный случай равенства (когда операнды - логические значения)
False эквивалентно False, False равно False. True эквивалентно True, True равно True.
Так, 5=5 эквивалентно 3=3. Но нельзя сказать, что 5 равно 3. Другими словами, сказать то можно, но тогда это False
Эквиваленция - это логическая операция. В арифметике есть, например, операция сложение (знак "+"). Но знак "=" в арфметике не является арифметической операцией.
Знак "=" иногда используют в логических выражениях как знак операции эквиваленция, но тогда надо оговаривать, если этот же знак используется в других целях.
Логическое выражение А=В попробуйте интерпретировать как частный случай уравнения (равенства).
Кстати, интересно - другие логические операции не являются ли частными случаями уравнений? :)
Кажется, в классе 6-7 в школе изучают квадратные уравнения.
Например, x*x -1 = 0. Что значит найти решение? Это значит найти такие х, что пересечение графика (множества значений переменной х) будет равным с осью абсцисс.
Для данного уравнения решением будет -1, +1. Опять таки это означает, что только при этих значения х формула истинна. При других она ложна.
Для x*x +1 = 0 решений вообще нет. Формула всегда ложна.
Повторяю задачу:
Есть логическое выражение А=В. Это когда А и В - логические (булевы) переменные, которые могут принимать значения Ложь или Истина. Знак "=" по договоренности - знак операции эквиваленция.
Теперь интерпретируйте это А=В как частный случай уравнения (равенства).
Уже говорил.
Но можно и так: https://rextester.com/l/cpp_online_compiler_gcc
//g++ 5.4.0
#include <iostream>
int main()
{
std::cout << (true == false); //0
std::cout << (false == false); //1
std::cout << (5 == 5); //1
std::cout << (3 == 5); //0
}
В вашем примере заданы константы true, false 5 и 3.
А в примере логического выражения, кторый вы намеривались интерпретировать как уравнение, были А и В - логические переменные.
Кроме того, каким образом фрагмент программы показывает, что где-то есть уравнение?
Хотя бы так. Задайте формулу с переменной, значением которой будет элемент из множества с одним элементом.
P.S. 5+3 - это выражение.
5+3=х это формула. Но также формулой являются 5+3=8 и 5+3=7. Только первая из этих двух истинная, а вторая ложная
http://philosophystorm.ru/uspenskii-formula-istina-i-lozh
Такие люди как Буль и Морган - великие логики. Аристотель - тоже. А Гегель? Мое мнение - и он в их ряду.
Допустим, есть Х. Потом это Х преобразовалось в Y (стало не иксом). Как такое преобразование выразить? Так:
1 было) X=X
2 стало) Y=Y)
3 преобразование) X=Y
Это X=Y имеет форму противоречия (т.е. всегда ложной формулы).
Вы имеете в виду, что у X два нижних "хвостика" срослись воедино, то есть X преобразовалось таким образом в Y ?
Мне кажется, что лучше начать преобразовывать sin в cos. Легко начать, так как у них общая буква s. Потом отщепнуть немного от n в синусе... а дальше пойдёт по накатанной дороге математических преобразований.
Я имею ввиду предикат равенства Х=Y. Если операнды разные, то он возвращает всегда ложь. В противном случае он возвращает истину.
А "предикат равенства" - это что за зверЪ? То есть знак "=" в течении недолгого времени получил третье объяснение! Это оказывается предикат равенства... который работает с операндами. Так кто преобразовывается??? X в Y ??? Или всё же значение операнда X получает значение операнда Y. Если так, то знак "=" имеет тот же смысл, что и присваивание переменной X значения, допустим, False.
http://philosophystorm.ru/predikat-ravenstva-khy
Передумал...