Module
Data.HeytingAlgebra
- Package
- prelude
- Repository
- purerl/purescript-prelude
#HeytingAlgebra Source
class HeytingAlgebra a where
The 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)
HeytingAlgebra (Proxy a)
HeytingAlgebra (Proxy2 a)
HeytingAlgebra (Proxy3 a)
(RowToList row list, HeytingAlgebraRecord list row row) => HeytingAlgebra (Record row)
#HeytingAlgebraRecord Source
class HeytingAlgebraRecord :: RowList Type -> Row Type -> Row Type -> Constraint
class HeytingAlgebraRecord rowlist row subrow | rowlist -> subrow where
A class for records where all fields have HeytingAlgebra
instances, used
to implement the HeytingAlgebra
instance for records.
Members
ffRecord :: forall rlproxy rproxy. rlproxy rowlist -> rproxy row -> Record subrow
ttRecord :: forall rlproxy rproxy. rlproxy rowlist -> rproxy row -> Record subrow
impliesRecord :: forall rlproxy. rlproxy rowlist -> Record row -> Record row -> Record subrow
disjRecord :: forall rlproxy. rlproxy rowlist -> Record row -> Record row -> Record subrow
conjRecord :: forall rlproxy. rlproxy rowlist -> Record row -> Record row -> Record subrow
notRecord :: forall rlproxy. rlproxy rowlist -> Record row -> Record subrow
Instances
HeytingAlgebraRecord Nil row ()
(IsSymbol key, Cons key focus subrowTail subrow, HeytingAlgebraRecord rowlistTail row subrowTail, HeytingAlgebra focus) => HeytingAlgebraRecord (Cons key focus rowlistTail) row subrow
- Modules
- Control.
Applicative - Control.
Apply - Control.
Bind - Control.
Category - Control.
Monad - Control.
Semigroupoid - Data.
Boolean - Data.
BooleanAlgebra - Data.
Bounded - Data.
Bounded. Generic - Data.
CommutativeRing - Data.
DivisionRing - Data.
Eq - Data.
Eq. Generic - Data.
EuclideanRing - Data.
Field - Data.
Function - Data.
Functor - Data.
Generic. Rep - Data.
HeytingAlgebra - Data.
HeytingAlgebra. Generic - Data.
Monoid - Data.
Monoid. Additive - Data.
Monoid. Conj - Data.
Monoid. Disj - Data.
Monoid. Dual - Data.
Monoid. Endo - Data.
Monoid. Generic - Data.
Monoid. Multiplicative - Data.
NaturalTransformation - Data.
Ord - Data.
Ord. Generic - Data.
Ordering - Data.
Ring - Data.
Ring. Generic - Data.
Semigroup - Data.
Semigroup. First - Data.
Semigroup. Generic - Data.
Semigroup. Last - Data.
Semiring - Data.
Semiring. Generic - Data.
Show - Data.
Show. Generic - Data.
Symbol - Data.
Unit - Data.
Void - Prelude
- Record.
Unsafe - Type.
Data. Row - Type.
Data. RowList - Type.
Proxy