boolean-normal-forms-0.0.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.DNF.Set

Description

 

Synopsis

Documentation

newtype DNF a Source #

Boolean formula in Disjunction Normal Form

Constructors

DNF 

Fields

Instances

Foldable DNF Source # 

Methods

fold :: Monoid m => DNF m -> m #

foldMap :: Monoid m => (a -> m) -> DNF a -> m #

foldr :: (a -> b -> b) -> b -> DNF a -> b #

foldr' :: (a -> b -> b) -> b -> DNF a -> b #

foldl :: (b -> a -> b) -> b -> DNF a -> b #

foldl' :: (b -> a -> b) -> b -> DNF a -> b #

foldr1 :: (a -> a -> a) -> DNF a -> a #

foldl1 :: (a -> a -> a) -> DNF a -> a #

toList :: DNF a -> [a] #

null :: DNF a -> Bool #

length :: DNF a -> Int #

elem :: Eq a => a -> DNF a -> Bool #

maximum :: Ord a => DNF a -> a #

minimum :: Ord a => DNF a -> a #

sum :: Num a => DNF a -> a #

product :: Num a => DNF a -> a #

CoBoolean1 DNF Source # 

Methods

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

NormalForm DNF Source # 

Associated Types

type NFConstraint (DNF :: * -> *) a :: Constraint Source #

Eq a => Eq (DNF a) Source # 

Methods

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

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

Ord a => Ord (DNF a) Source # 

Methods

compare :: DNF a -> DNF a -> Ordering #

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

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

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

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

max :: DNF a -> DNF a -> DNF a #

min :: DNF a -> DNF a -> DNF a #

(Ord a, Read a) => Read (DNF a) Source # 
Show a => Show (DNF a) Source # 

Methods

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

show :: DNF a -> String #

showList :: [DNF a] -> ShowS #

(Ord a, Negable a) => Boolean (DNF a) Source # 

Methods

true :: DNF a #

false :: DNF a #

not :: DNF a -> DNF a #

(&&) :: DNF a -> DNF a -> DNF a #

(||) :: DNF a -> DNF a -> DNF a #

xor :: DNF a -> DNF a -> DNF a #

(-->) :: DNF a -> DNF a -> DNF a #

(<-->) :: DNF a -> DNF a -> DNF a #

and :: Foldable t => t (DNF a) -> DNF a #

or :: Foldable t => t (DNF a) -> DNF a #

nand :: Foldable t => t (DNF a) -> DNF a #

all :: Foldable t => (a -> DNF a) -> t a -> DNF a #

any :: Foldable t => (a -> DNF a) -> t a -> DNF a #

nor :: Foldable t => t (DNF a) -> DNF a #

NFData a => NFData (DNF a) Source # 

Methods

rnf :: DNF a -> () #

CoBoolean a => CoBoolean (DNF a) Source # 

Methods

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

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

Methods

not :: DNF a -> DNF a Source #

type NFConstraint DNF a Source # 
type NFConstraint DNF a = (Negable a, Ord a)

fromDoubleList :: Ord a => [[a]] -> DNF a Source #

toDoubleList :: DNF a -> [[a]] Source #

fromNNF :: (Ord a, Negable a) => NNF a -> DNF a Source #