-exec-
>ваш артефакт UNDEF, поданный на вход вашего автомата, переводит все "задетые" его регистры и выходы в состояние UNDEF.
Поясните, плз. насчет 'все'. Он действительно переводит полный результат во многих случаях в UNDEF, но ведь не необратимо же. Я ведь указал, в каких ситуациях определенность снова может возникнуть. И что? Я сам так думаю, по другому пока не умею.
Если вы уже про железо говорите, то тут undef - просто другой, нежели у true и false, уровень напряжения, например. А правила проведения операций я прямо сейчас выдумываю, чтобы в железе жестко реализовать.
>состояние, вообще говоря, бесполезное, потому, что ваш UNDEF ни к чему нельзя применить, потому, что всё, что вступало с ним во взаимодействие, превращается и превратится в UNDEF.
Выдаете желаемое за действительное?
Почему сразу 'всё'? undef на каком-то входе говорит, что данных об этой конкретной характеристике нет.
>(кроме операторов true() и false(), которые сами по себе вряд и полезны:
Не понял.
Если в рассуждениях попадутся такие выражения:
or(TRUE,A) => TRUE, то есть эквивалентен true(A)
and(FALSE,A) => FALSE, то есть эквивалентен false(A))
то все ОК. Вывод не будет расходиться с реальностью. Что значит, вряд ли полезны? Такие выражения могут возникнуть при решении нашим будущим троичным девайсом какой-то логической задачи.
>а поскольку автомат после подачи на него UNDEF ничего больше определённого выполнить не сможет, то он целиком становится бесполезным. можно сказать выведенным из строя.
Что значит, не может? Если вы о том, чтобы из неопределенных данных, из ничего, получить нечто однозначное, cделать точный вывод - с этим не ко мне.
И тем не менее, приведенные выше примеры показывают, что присутствие в рассуждениях undef не обязательно херит определенность конечного вывода.
>подача на вход UNDEF становится атакой Denial of Service - DoS атакой; а возможность, с помощью которой можно провести атаку на машину является дырой в безопасности, Security Hole.
Простите, undef - просто некоторое третье значение. Двоичные машины на него не рассчитаны, они не умеют с ним работать. А троичные могут. Если машина выдаст undef - это означает, что решение не найдено. Данных для однозначного вывода не хватило. Есть задачи, к-рые для решения требуют полной определенности всех исходных данных. А могут быть и такие, которые этого не требуют - если при их решении такие данные попадают в ловушки типа or(true,undef). Бинарная машина, способная решить такие задачи будет много сложнее(как вариант, тормозить будет сильнее при прочих равных), чем та, к-рая сделана на тритах. Поскольку придется писать эмулятор, дабы ей undef скормить. Из ничего же бывает только ничего.
Если на входе принципиально не хватает данных - разрядность не поможет.
ИМХО.
>незакрываемой дырой, кстати - потому, что детектировать присутствие UNDEF на входах и в вашем автомате невозможно - детекторы выходят из строя один за другим.
Хватит вам, -exec-, мне уже страшно... :о
>интерпретировать их состояние невозможно, так как мы не можем проверить тождественность ни с чем.
Для троичных машин, правила логики которым мы сейчас изобретаем, это будет одно из предусмотренных 'паспортных' значений. Пусть false - 2В, undef - 4В, true - 6В, машина сгорела - 0В.
Ну, погрешность пусть будет ± 0.5В - нам хватает, и железо дешевое выйдет. Дык вот, берем напряжОметр и тыкаем им в выход. Глядим - 4В. Увы и ах, каменный цветок не вышел. Данных для однозначного решения заданной задачи оказалось недостаточно. Всего лишь.
>таким образом ваш автомат остаётся двоичным, пока не сломается (возможность сломаться предусмотрена архитектурой).
Таким образом подача на вход
двоичной логической машины неопределенного сигнала(непредусмотренного напряжения) действительно сможет похерить сей девайс.
Ибо нефиг.
В лучшем случае исходные данные установятся случайным образом, но машина будет считать их определенными. Т.е. воспримет либо true, либо false. Только к реальности ее решение может не иметь значения.
Я вижу, что к обсуждению подключился ув. Mishka. Чему я очень рад, т.к. Mishka натаскан, в частности, и в области работы с бесконечностью. Mishka, пожалуйста прокомментируйте следующее:
-exec- написал:
>по мне хотя бы (cos(∞) eqv cos(∞)) = TRUE.
Для меня это слишком круто. Записаны косинусы, конечно, идентично, это да. А вот как смысл утверждения доказать? Бесконечность ± конечное число - уже другая бесконечность? Если да, то как их, эти бесконечности отличать? Если нет, бесконечность та же самая, то см. ниже.
Пример маразма
cos(alpha-Pi/2)=sin(alpha)(глядя на единичную окружность, мне так кажется
)
сos(беск.-Pi/2)=сos(беск)
сos(беск.-Pi/2)=sin(беск)
Следовательно cos(беск)=sin(беск). (Вспоминаем, когда это может быть - когда сos(беск)=sin(беск)=1/sqrt(2) или -1/sqrt(2).
)
Следующая затяжка.
По той же причине
cos(alpha+Pi/2)=-sin(alpha)
сos(беск.+Pi/2)=сos(беск)
сos(беск.+Pi/2)=-sin(беск)
Следовательно cos(беск)=-sin(беск).
Что имеем? cos(беск)=sin(беск), cos(беск)=-sin(беск)
:o
Это что же, сos(беск)=sin(беск)=0? А такие углы существуют? Чтоб и синус и косинус был нулем одновременно. Поскольку маразм, то высказывание
((cos(∞) eqv cos(∞)) = =TRUE)=false
ИМХО, поскольку мы не можем отличать одну бесконечность от другой(а если можем, только я лично не могу - научите меня,ув Mishka), то и
((cos(∞) eqv cos(∞)) = =false)=false
И остается только одно: операция сравнения косинусов от бесконечностей неопределена. В противном случае требуется указать метод различения бесконечностей.
((cos(∞) eqv cos(∞)) ==undef)=TRUE
Как трава?