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`.

Programming language: Haskell
Tags: Algebra     Logic     Mathematics    

Heyting Algebras alternatives and related packages

Based on the "Logic" category

Do you think we are missing an alternative of Heyting Algebras or a related project?

Add another 'Logic' Package

Heyting Algebras Recommendations

There 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

Do you know of a usefull tutorial, book or news relevant to Heyting Algebras?
Be the first to add one!