t

# Bool 

### Companion object Bool

#### 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
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
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)
Definition Classes
Any
2. final def ##(): Int
Definition Classes
Any
3. final def ==(arg0: Any)
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)
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]
Definition Classes
Any
12. def isOne(a: A)(implicit ev: Eq[A])
Definition Classes
BoundedMeetSemilattice
13. def isZero(a: A)(implicit ev: Eq[A])
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
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
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