Логики условных вычислений с ошибками
В компьютерных программах недопустимо игнорировать практически неизбежное наличие ошибок. Как гласит аксиома Шуры-Буры: «Если программа на самом деле абсолютно правильна, она никому не нужна». А в задачах точных вычислений и в суперкомпьютерах возникает необходимость управления вычислениями от исключительных ситуаций. Для описания такого исполнения недостаточно адекватна двузначная и трехзначная логика. Некоторые ошибки, такие как переполнения или деление на ноль, могут быть обработаны и идентифицируются логическим значением u. Но такие, как «синий экран смерти», фатальны: исправлены внутри программы быть не могут. Множество $S$ значений пополняется мягкой ошибкой $u$ и фатальной ошибкой \(\bot\). Здесь рассматривается следующая семантика: $u$ это сигнал, что однозначное решение не найдено и интерпретируется как \(\{\mathfrak{t},\mathfrak{f}\}\) , а \(\bot\) — как логический провал \(\varnothing\). Рассматриваются лишь непрерывные в топологии $S$ \(\bot\) вычисления. Базисом логики принимается условный оператор if $A$ then $B$ else $C$ fi и логические константы \(\{\mathfrak{t},\mathfrak{f}, u, \bot\}\). Исследуются логики, соответствующие различным вариантам организации вычислений данного оператора. Полностью описаны взаимные выразимости этих вариантов. Показано, что различные вариации вычислений порождают, в частности, логики Клини, Лукасевича, Гёделя.
- Ask R Discovery
- Chat PDF
AI summaries and top papers from 250M+ research sources.