Copyright | (C) 2019 Oleg Grenrus |
---|---|
License | BSD-3-Clause (see the file LICENSE) |
Maintainer | Oleg Grenrus <oleg.grenrus@iki.fi> |
Safe Haskell | Safe |
Language | Haskell2010 |
Synopsis
- class BoundedLattice a => Heyting a where
Documentation
class BoundedLattice a => Heyting a where Source #
A Heyting algebra is a bounded lattice equipped with a binary operation \(a \to b\) of implication.
Laws
x==>
x ≡top
x/\
(x==>
y) ≡ x/\
y y/\
(x==>
y) ≡ y x==>
(y/\
z) ≡ (x==>
y)/\
(x==>
z)
Instances
Heyting Bool Source # | |
Heyting () Source # | |
Heyting All Source # | |
Heyting Any Source # | |
Heyting ZeroHalfOne Source # | |
Defined in Algebra.Lattice.ZeroHalfOne (==>) :: ZeroHalfOne -> ZeroHalfOne -> ZeroHalfOne Source # neg :: ZeroHalfOne -> ZeroHalfOne Source # (<=>) :: ZeroHalfOne -> ZeroHalfOne -> ZeroHalfOne Source # |
|
Heyting M2 Source # | |
Heyting a => Heyting ( Solo a) Source # |
Since: 2.0.3 |
Heyting a => Heyting ( Identity a) Source # | |
Heyting a => Heyting ( Endo a) Source # | |
( Ord a, Finite a) => Heyting ( Set a) Source # | |
( Eq a, Hashable a, Finite a) => Heyting ( HashSet a) Source # | |
( Ord a, Bounded a) => Heyting ( Ordered a) Source # |
This is interesting logic, as it satisfies both de Morgan laws; but isn't Boolean: i.e. law of exluded middle doesn't hold. |
Heyting ( Free a) Source # | |
Heyting a => Heyting (b -> a) Source # | |
Heyting ( Proxy a) Source # | |
Heyting a => Heyting ( Const a b) Source # | |
Heyting a => Heyting ( Tagged b a) Source # | |