Abstract Value Members
-
abstract
def
and(a: A, b: A): A
-
abstract
def
complement(a: A): A
-
abstract
def
getClass(): Class[_]
-
abstract
def
imp(a: A, b: A): A
-
abstract
def
one: A
-
abstract
def
or(a: A, b: A): A
-
abstract
def
zero: A
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
-
final
def
##(): Int
-
final
def
==(arg0: Any): Boolean
-
-
final
def
asInstanceOf[T0]: T0
-
-
def
equals(arg0: Any): Boolean
-
def
hashCode(): Int
-
final
def
isInstanceOf[T0]: Boolean
-
def
isOne(a: A)(implicit ev: Eq[A]): Boolean
-
def
isZero(a: A)(implicit ev: Eq[A]): Boolean
-
def
join(a: A, b: A): A
-
def
joinPartialOrder(implicit ev: Eq[A]): PartialOrder[A]
-
-
def
meet(a: A, b: A): A
-
def
meetPartialOrder(implicit ev: Eq[A]): PartialOrder[A]
-
-
def
nand(a: A, b: A): A
-
def
nor(a: A, b: A): A
-
def
nxor(a: A, b: A): A
-
def
toString(): String
-
def
xor(a: A, b: A): A
Inherited from Serializable
Inherited from Any
Heyting algebras are bounded lattices that are also equipped with an additional binary operation
imp
(for impliciation, also written as →).Implication obeys the following laws:
In heyting algebras,
and
is equivalent tomeet
andor
is equivalent tojoin
; both methods are available.Heyting algebra also define
complement
operation (sometimes written as ¬a). The complement ofa
is equivalent to(a → 0)
, and the following laws hold:However, in Heyting algebras this operation is only a pseudo-complement, since Heyting algebras do not necessarily provide the law of the excluded middle. This means that there is no guarantee that (a ∨ ¬a) = 1.
Heyting algebras model intuitionistic logic. For a model of classical logic, see the boolean algebra type class implemented as
Bool
.