Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
Documentation
Free Heyting algebra.
Note: Eq
and PartialOrd
instances aren't structural.
>>>
Top == (Var 'x' ==> Var 'x')
True
>>>
Var 'x' == Var 'y'
False
You can test for taulogogies:
>>>
leq Top $ (Var 'A' /\ Var 'B' ==> Var 'C') <=> (Var 'A' ==> Var 'B' ==> Var 'C')
True
>>>
leq Top $ (Var 'A' /\ neg (Var 'A')) <=> Bottom
True
>>>
leq Top $ (Var 'A' \/ neg (Var 'A')) <=> Top
False
Var a | |
Bottom | |
Top | |
(Free a) :/\: (Free a) infixr 6 | |
(Free a) :\/: (Free a) infixr 5 | |
(Free a) :=>: (Free a) infixr 4 |
Instances
retractFree :: Heyting a => Free a -> a Source #