boolean-normal-forms-0.0.1.1: Boolean normal form: NNF, DNF & CNF

Copyright© Oleg Grenrus 2014
LicenseMIT
MaintainerOleg Grenrus <oleg.grenrus@iki.fi>
Stabilityexperimental
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell2010

Data.Algebra.Boolean.Negable

Description

 
Synopsis

Documentation

data Neg a Source #

Free Negable.

Constructors

Pos a

Positive value

Neg a

Negative value

Instances
Functor Neg Source # 
Instance details

Defined in Data.Algebra.Boolean.Negable

Methods

fmap :: (a -> b) -> Neg a -> Neg b #

(<$) :: a -> Neg b -> Neg a #

CoBoolean1 Neg Source # 
Instance details

Defined in Data.Algebra.Boolean.Negable

Methods

toBooleanWith :: Boolean c => (a -> c) -> Neg a -> c Source #

Eq a => Eq (Neg a) Source # 
Instance details

Defined in Data.Algebra.Boolean.Negable

Methods

(==) :: Neg a -> Neg a -> Bool #

(/=) :: Neg a -> Neg a -> Bool #

Ord a => Ord (Neg a) Source # 
Instance details

Defined in Data.Algebra.Boolean.Negable

Methods

compare :: Neg a -> Neg a -> Ordering #

(<) :: Neg a -> Neg a -> Bool #

(<=) :: Neg a -> Neg a -> Bool #

(>) :: Neg a -> Neg a -> Bool #

(>=) :: Neg a -> Neg a -> Bool #

max :: Neg a -> Neg a -> Neg a #

min :: Neg a -> Neg a -> Neg a #

Read a => Read (Neg a) Source # 
Instance details

Defined in Data.Algebra.Boolean.Negable

Show a => Show (Neg a) Source # 
Instance details

Defined in Data.Algebra.Boolean.Negable

Methods

showsPrec :: Int -> Neg a -> ShowS #

show :: Neg a -> String #

showList :: [Neg a] -> ShowS #

NFData a => NFData (Neg a) Source # 
Instance details

Defined in Data.Algebra.Boolean.Negable

Methods

rnf :: Neg a -> () #

CoBoolean (Neg a) Source # 
Instance details

Defined in Data.Algebra.Boolean.Negable

Methods

toBoolean :: Boolean b => Neg a -> b Source #

Negable (Neg a) Source # 
Instance details

Defined in Data.Algebra.Boolean.Negable

Methods

not :: Neg a -> Neg a Source #

class Negable x where Source #

Class to represent invertible values.

Must obey the double negation law: not (not x) = x

The negation appears only in leafs of normal forms, and the underlying proposition class might have built-in negation, thus we use Negable.

Methods

not :: x -> x Source #

Invert the value.

Instances
Negable Bool Source # 
Instance details

Defined in Data.Algebra.Boolean.Negable

Methods

not :: Bool -> Bool Source #

Monoid m => Negable (Maybe m) Source # 
Instance details

Defined in Data.Algebra.Boolean.Negable

Methods

not :: Maybe m -> Maybe m Source #

Negable (Neg a) Source # 
Instance details

Defined in Data.Algebra.Boolean.Negable

Methods

not :: Neg a -> Neg a Source #

Negable (FreeBoolean a) Source # 
Instance details

Defined in Data.Algebra.Boolean.FreeBoolean

Negable a => Negable (NNF a) Source # 
Instance details

Defined in Data.Algebra.Boolean.NNF.Tree

Methods

not :: NNF a -> NNF a Source #

(Ord a, Negable a) => Negable (NNF a) Source # 
Instance details

Defined in Data.Algebra.Boolean.NNF.Set

Methods

not :: NNF a -> NNF a Source #

(Ord a, Negable a) => Negable (DNF a) Source # 
Instance details

Defined in Data.Algebra.Boolean.DNF.Set

Methods

not :: DNF a -> DNF a Source #

Negable a => Negable (DNF a) Source # 
Instance details

Defined in Data.Algebra.Boolean.DNF.List

Methods

not :: DNF a -> DNF a Source #

(Ord a, Negable a) => Negable (CNF a) Source # 
Instance details

Defined in Data.Algebra.Boolean.CNF.Set

Methods

not :: CNF a -> CNF a Source #

Negable a => Negable (CNF a) Source # 
Instance details

Defined in Data.Algebra.Boolean.CNF.List

Methods

not :: CNF a -> CNF a Source #

(Negable a, Negable b) => Negable (Either a b) Source # 
Instance details

Defined in Data.Algebra.Boolean.Negable

Methods

not :: Either a b -> Either a b Source #

(Negable a, Negable b) => Negable (a, b) Source # 
Instance details

Defined in Data.Algebra.Boolean.Negable

Methods

not :: (a, b) -> (a, b) Source #