Trait/Object

algebra.lattice

Bool

Related Docs: object Bool | package lattice

Permalink

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:

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]
Linear Supertypes
Known Subclasses
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

    Permalink
    Definition Classes
    GenBool
  2. abstract def complement(a: A): A

    Permalink
    Definition Classes
    Heyting
  3. abstract def getClass(): Class[_]

    Permalink
    Definition Classes
    Any
  4. abstract def one: A

    Permalink
    Definition Classes
    BoundedMeetSemilattice
  5. abstract def or(a: A, b: A): A

    Permalink
    Definition Classes
    GenBool
  6. abstract def zero: A

    Permalink
    Definition Classes
    BoundedJoinSemilattice

Concrete Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    Any
  4. def asBoolRing: BoolRing[A]

    Permalink

    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]

    Permalink

    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

    Permalink
    Definition Classes
    Any
  7. def dual: Bool[A]

    Permalink

    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

    Permalink
    Definition Classes
    Any
  9. def hashCode(): Int

    Permalink
    Definition Classes
    Any
  10. def imp(a: A, b: A): A

    Permalink
    Definition Classes
    BoolHeyting
  11. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  12. def isOne(a: A)(implicit ev: Eq[A]): Boolean

    Permalink
    Definition Classes
    BoundedMeetSemilattice
  13. def isZero(a: A)(implicit ev: Eq[A]): Boolean

    Permalink
    Definition Classes
    BoundedJoinSemilattice
  14. def join(a: A, b: A): A

    Permalink
    Definition Classes
    GenBoolJoinSemilattice
  15. def joinPartialOrder(implicit ev: Eq[A]): PartialOrder[A]

    Permalink
    Definition Classes
    JoinSemilattice
  16. def joinSemilattice: BoundedSemilattice[A]

    Permalink
  17. def meet(a: A, b: A): A

    Permalink
    Definition Classes
    GenBoolMeetSemilattice
  18. def meetPartialOrder(implicit ev: Eq[A]): PartialOrder[A]

    Permalink
    Definition Classes
    MeetSemilattice
  19. def meetSemilattice: BoundedSemilattice[A]

    Permalink
  20. def nand(a: A, b: A): A

    Permalink
    Definition Classes
    Heyting
  21. def nor(a: A, b: A): A

    Permalink
    Definition Classes
    Heyting
  22. def nxor(a: A, b: A): A

    Permalink
    Definition Classes
    Heyting
  23. def toString(): String

    Permalink
    Definition Classes
    Any
  24. def without(a: A, b: A): A

    Permalink

    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

    Permalink

    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