This package contains type classes and instances for many Heyting algebras which are in the Haskell eco-system. It is build on top of lattices and free-algebras (to provide combinators for free Heyting algebras). The package also defines a type class for Boolean algebras and comes with a handful of instances.
A note about notation: this package is based on lattices, and both are using notation and names common in lattice theory and logic. Where && becomes ∧ and is called meet and || is denoted by ∨ and is usually called as join. The lattice package provides \/ and /\ operators.
A very good introduction to Heyting algebras can be found at ncatlab. Heyting algebras are the crux of intuitionistic logic, which drops the axiom of excluded middle. From categorical point of view, Heyting algebras are posets (categories with at most one arrow between any objects), which are also Cartesian closed (and finitely (co-)complete). Note that this makes any Heyting algebra a simply typed lambda calculus; hence one more incentive to learn how to use them. For example currying holds in Heyting algebras: `a => (b ⇒ c)` is equal to `(a ∧ b) ⇒ c`.
Heyting Algebras alternatives and related packages
Based on the "Logic" category
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest. Visit our partner's website for more details.
Do you think we are missing an alternative of Heyting Algebras or a related project?
Heyting Algebras RecommendationsThere are no recommendations yet. Be the first to promote Heyting Algebras!
Have you used Heyting Algebras? Share your experience. Write a short recommendation and Heyting Algebras, you and your project will be promoted on Awesome Haskell.
Recommend Heyting Algebras
Recently added Heyting Algebras resources
Be the first to add one!