trait Bool[A] extends Heyting[A] with GenBool[A]

Boolean algebras are Heyting algebras with the additional constraint that the law of the excluded middle is true (equivalently, double-negation is true).

This means that in addition to the laws Heyting algebras obey, boolean algebras also obey the following:

  • (a ∨ ¬a) = 1
  • ¬¬a = a

Boolean algebras generalize classical logic: one is equivalent to "true" and zero is equivalent to "false". Boolean algebras provide additional logical operators such as xor, nand, nor, and nxor which are commonly used.

Every boolean algebras has a dual algebra, which involves reversing true/false as well as and/or.

Self Type
Bool[A]
Source
Bool.scala
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Bool
  2. GenBool
  3. Heyting
  4. BoundedDistributiveLattice
  5. DistributiveLattice
  6. BoundedLattice
  7. BoundedJoinSemilattice
  8. BoundedMeetSemilattice
  9. Lattice
  10. MeetSemilattice
  11. JoinSemilattice
  12. Serializable
  13. Serializable
  14. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def and(a: A, b: A): A
    Definition Classes
    GenBool
  2. abstract def complement(a: A): A
    Definition Classes
    Heyting
  3. abstract def getClass(): Class[_]
    Definition Classes
    Any
  4. abstract def one: A
    Definition Classes
    BoundedMeetSemilattice
  5. abstract def or(a: A, b: A): A
    Definition Classes
    GenBool
  6. abstract def zero: A
    Definition Classes
    BoundedJoinSemilattice

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    Any
  2. final def ##(): Int
    Definition Classes
    Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    Any
  4. def asBoolRing: BoolRing[A]

    Every Boolean algebra is a BoolRing, with multiplication defined as and and addition defined as xor.

    Every Boolean algebra is a BoolRing, with multiplication defined as and and addition defined as xor. Bool does not extend BoolRing because, e.g. we might want a Bool[Int] and CommutativeRing[Int] to refer to different structures, by default.

    Note that the ring returned by this method is not an extension of the Rig returned from BoundedDistributiveLattice.asCommutativeRig.

    Definition Classes
    BoolGenBool
  5. def asCommutativeRig: CommutativeRig[A]

    Return a CommutativeRig using join and meet.

    Return a CommutativeRig using join and meet. Note this must obey the commutative rig laws since meet(a, one) = a, and meet and join are associative, commutative and distributive.

    Definition Classes
    BoundedDistributiveLattice
  6. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  7. def dual: Bool[A]

    This is the lattice with meet and join swapped

    This is the lattice with meet and join swapped

    Definition Classes
    BoolBoundedDistributiveLatticeBoundedLatticeLattice
  8. def equals(arg0: Any): Boolean
    Definition Classes
    Any
  9. def hashCode(): Int
    Definition Classes
    Any
  10. def imp(a: A, b: A): A
    Definition Classes
    BoolHeyting
  11. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  12. def isOne(a: A)(implicit ev: Eq[A]): Boolean
    Definition Classes
    BoundedMeetSemilattice
  13. def isZero(a: A)(implicit ev: Eq[A]): Boolean
    Definition Classes
    BoundedJoinSemilattice
  14. def join(a: A, b: A): A
    Definition Classes
    GenBoolJoinSemilattice
  15. def joinPartialOrder(implicit ev: Eq[A]): PartialOrder[A]
    Definition Classes
    JoinSemilattice
  16. def joinSemilattice: BoundedSemilattice[A]
  17. def meet(a: A, b: A): A
    Definition Classes
    GenBoolMeetSemilattice
  18. def meetPartialOrder(implicit ev: Eq[A]): PartialOrder[A]
    Definition Classes
    MeetSemilattice
  19. def meetSemilattice: BoundedSemilattice[A]
  20. def nand(a: A, b: A): A
    Definition Classes
    Heyting
  21. def nor(a: A, b: A): A
    Definition Classes
    Heyting
  22. def nxor(a: A, b: A): A
    Definition Classes
    Heyting
  23. def toString(): String
    Definition Classes
    Any
  24. def without(a: A, b: A): A

    The operation of relative complement, symbolically often denoted a\b (the symbol for set-theoretic difference, which is the meaning of relative complement in the lattice of sets).

    The operation of relative complement, symbolically often denoted a\b (the symbol for set-theoretic difference, which is the meaning of relative complement in the lattice of sets).

    Definition Classes
    BoolGenBool
  25. def xor(a: A, b: A): A

    Logical exclusive or, set-theoretic symmetric difference.

    Logical exclusive or, set-theoretic symmetric difference. Defined as a\b ∨ b\a.

    Definition Classes
    BoolGenBoolHeyting

Inherited from GenBool[A]

Inherited from Heyting[A]

Inherited from BoundedDistributiveLattice[A]

Inherited from DistributiveLattice[A]

Inherited from BoundedLattice[A]

Inherited from BoundedJoinSemilattice[A]

Inherited from BoundedMeetSemilattice[A]

Inherited from Lattice[A]

Inherited from MeetSemilattice[A]

Inherited from JoinSemilattice[A]

Inherited from Serializable

Inherited from Serializable

Inherited from Any

Ungrouped