Алгебра Гейтинга и Bool

Алгебра Гейтинга

Алгебра Гейтинга представляют собой ограниченные решетки, которые также снабжены дополнительной бинарной операцией imp (для импликации, также записываемой как ).

Импликация подчиняется следующим законам:

В алгебрах Гейтинга and эквивалентно meet и or эквивалентно join; доступны оба метода.

Алгебра Гейтинга также определяет операцию дополнения (complement) (иногда записываемую как ¬a). Дополнение к a эквивалентно (a → 0), и выполняются следующие законы:

Однако в алгебрах Гейтинга эта операция является лишь псевдодополнением, поскольку алгебры Гейтинга не обязательно обеспечивают закон исключенного третьего. Это означает, что нет никакой гарантии, что (a ∨ ¬a) = 1.

Алгебры Гейтинга моделируют интуиционистскую логику. Для модели классической логики см. ниже класс типов булевой алгебры, реализованный как Bool.

Heyting[A] - типы, образующие алгебру Гейтинга

Bool

Bool поддерживает булеву алгебру — абстракцию знакомых побитовых логических операторов.

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

Булевы алгебры обобщают классическую логику: единица эквивалентна "истине", а ноль эквивалентен "ложности". Булевы алгебры предоставляют дополнительные часто используемые логические операторы, такие как xor, nand, nor и nxor. У каждой булевой алгебры есть двойственная алгебра, которая включает в себя изменение местами истинное/ложное, а также и/или.

Экземпляры Bool существуют не только для Boolean, но и для Byte, Short, Int, Long, UByte, UShort, UInt и ULong.


Ссылки: