Module
Data.BooleanAlgebra 
- Package
- purescript-prelude
- Repository
- purescript/purescript-prelude
#BooleanAlgebra Source
class (HeytingAlgebra a) <= BooleanAlgebra a The BooleanAlgebra type class represents types that behave like boolean
values.
Instances should satisfy the following laws in addition to the
HeytingAlgebra law:
- Excluded middle:
- a || not a = tt
 
Instances
- BooleanAlgebra Boolean
- BooleanAlgebra Unit
- (BooleanAlgebra b) => BooleanAlgebra (a -> b)
Re-exports from Data.HeytingAlgebra 
#HeytingAlgebra Source
class HeytingAlgebra a  whereThe HeytingAlgebra type class represents types that are bounded lattices with
an implication operator such that the following laws hold:
- Associativity:
- a || (b || c) = (a || b) || c
- a && (b && c) = (a && b) && c
 
- Commutativity:
- a || b = b || a
- a && b = b && a
 
- Absorption:
- a || (a && b) = a
- a && (a || b) = a
 
- Idempotent:
- a || a = a
- a && a = a
 
- Identity:
- a || ff = a
- a && tt = a
 
- Implication:
- a `implies` a = tt
- a && (a `implies` b) = a && b
- b && (a `implies` b) = b
- a `implies` (b && c) = (a `implies` b) && (a `implies` c)
 
- Complemented:
- not a = a `implies` ff
 
Members
Instances
- HeytingAlgebra Boolean
- HeytingAlgebra Unit
- (HeytingAlgebra b) => HeytingAlgebra (a -> b)
- Modules
- Control.Applicative 
- Control.Apply 
- Control.Bind 
- Control.Category 
- Control.Monad 
- Control.Semigroupoid 
- Data.Boolean 
- Data.BooleanAlgebra 
- Data.Bounded 
- Data.CommutativeRing 
- Data.DivisionRing 
- Data.Eq 
- Data.EuclideanRing 
- Data.Field 
- Data.Function 
- Data.Functor 
- Data.HeytingAlgebra 
- Data.NaturalTransformation 
- Data.Ord 
- Data.Ord. Unsafe 
- Data.Ordering 
- Data.Ring 
- Data.Semigroup 
- Data.Semiring 
- Data.Show 
- Data.Unit 
- Data.Void 
- Prelude