toysolver-0.4.0: Assorted decision procedures for SAT, Max-SAT, PB, MIP, etc

Copyright(c) Masahiro Sakai 2012-2015
LicenseBSD-style
Maintainermasahiro.sakai@gmail.com
Stabilityprovisional
Portabilitynon-portable (MultiParamTypeClasses)
Safe HaskellSafe
LanguageHaskell2010

ToySolver.Data.Boolean

Contents

Description

Type classes for lattices and boolean algebras.

Synopsis

Boolean algebra

class MonotoneBoolean a where Source #

Methods

true, false :: a Source #

(.&&.) :: a -> a -> a infixr 3 Source #

(.||.) :: a -> a -> a infixr 2 Source #

andB :: [a] -> a Source #

orB :: [a] -> a Source #

Instances

MonotoneBoolean Bool Source # 
MonotoneBoolean Expr Source # 
MonotoneBoolean (DNF lit) Source # 

Methods

true :: DNF lit Source #

false :: DNF lit Source #

(.&&.) :: DNF lit -> DNF lit -> DNF lit Source #

(.||.) :: DNF lit -> DNF lit -> DNF lit Source #

andB :: [DNF lit] -> DNF lit Source #

orB :: [DNF lit] -> DNF lit Source #

MonotoneBoolean (Formula c) Source # 
MonotoneBoolean (BoolExpr a) Source # 
MonotoneBoolean (GenFormula a) Source # 
MonotoneBoolean a => MonotoneBoolean (b -> a) Source # 

Methods

true :: b -> a Source #

false :: b -> a Source #

(.&&.) :: (b -> a) -> (b -> a) -> b -> a Source #

(.||.) :: (b -> a) -> (b -> a) -> b -> a Source #

andB :: [b -> a] -> b -> a Source #

orB :: [b -> a] -> b -> a Source #

(MonotoneBoolean a, MonotoneBoolean b) => MonotoneBoolean (a, b) Source # 

Methods

true :: (a, b) Source #

false :: (a, b) Source #

(.&&.) :: (a, b) -> (a, b) -> (a, b) Source #

(.||.) :: (a, b) -> (a, b) -> (a, b) Source #

andB :: [(a, b)] -> (a, b) Source #

orB :: [(a, b)] -> (a, b) Source #

class Complement a where Source #

types that can be negated.

Minimal complete definition

notB

Methods

notB :: a -> a Source #

Instances

Complement Bool Source # 

Methods

notB :: Bool -> Bool Source #

Complement Expr Source # 

Methods

notB :: Expr -> Expr Source #

Complement Lit Source # 

Methods

notB :: Lit -> Lit Source #

Complement lit => Complement (DNF lit) Source # 

Methods

notB :: DNF lit -> DNF lit Source #

Complement (Formula a) Source # 

Methods

notB :: Formula a -> Formula a Source #

Complement (OrdRel c) Source # 

Methods

notB :: OrdRel c -> OrdRel c Source #

Complement (BoolExpr a) Source # 

Methods

notB :: BoolExpr a -> BoolExpr a Source #

Complement (GenFormula a) Source # 

Methods

notB :: GenFormula a -> GenFormula a Source #

Complement (GenLit a) Source # 

Methods

notB :: GenLit a -> GenLit a Source #

Complement a => Complement (b -> a) Source # 

Methods

notB :: (b -> a) -> b -> a Source #

(Complement a, Complement b) => Complement (a, b) Source # 

Methods

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

class IfThenElse b a where Source #

Minimal complete definition

ite

Methods

ite :: b -> a -> a -> a Source #

Instances

IfThenElse Bool Bool Source # 

Methods

ite :: Bool -> Bool -> Bool -> Bool Source #

IfThenElse Expr Expr Source # 

Methods

ite :: Expr -> Expr -> Expr -> Expr Source #

Complement lit => IfThenElse (DNF lit) (DNF lit) Source # 

Methods

ite :: DNF lit -> DNF lit -> DNF lit -> DNF lit Source #

IfThenElse (Formula c) (Formula c) Source # 

Methods

ite :: Formula c -> Formula c -> Formula c -> Formula c Source #

IfThenElse (BoolExpr a) (BoolExpr a) Source # 

Methods

ite :: BoolExpr a -> BoolExpr a -> BoolExpr a -> BoolExpr a Source #

IfThenElse (GenFormula a) (GenFormula a) Source # 
Boolean a => IfThenElse (b -> a) (b -> a) Source # 

Methods

ite :: (b -> a) -> (b -> a) -> (b -> a) -> b -> a Source #

(Boolean a, Boolean b) => IfThenElse (a, b) (a, b) Source # 

Methods

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

iteBoolean :: Boolean a => a -> a -> a -> a Source #

class (MonotoneBoolean a, Complement a, IfThenElse a a) => Boolean a where Source #

types that can be combined with boolean operations.

Methods

(.=>.), (.<=>.) :: a -> a -> a infix 1 .=>., .<=>. Source #

Instances

Boolean Bool Source # 

Methods

(.=>.) :: Bool -> Bool -> Bool Source #

(.<=>.) :: Bool -> Bool -> Bool Source #

Boolean Expr Source # 

Methods

(.=>.) :: Expr -> Expr -> Expr Source #

(.<=>.) :: Expr -> Expr -> Expr Source #

Complement lit => Boolean (DNF lit) Source # 

Methods

(.=>.) :: DNF lit -> DNF lit -> DNF lit Source #

(.<=>.) :: DNF lit -> DNF lit -> DNF lit Source #

Boolean (Formula c) Source # 

Methods

(.=>.) :: Formula c -> Formula c -> Formula c Source #

(.<=>.) :: Formula c -> Formula c -> Formula c Source #

Boolean (BoolExpr a) Source # 
Boolean (GenFormula a) Source # 
Boolean a => Boolean (b -> a) Source # 

Methods

(.=>.) :: (b -> a) -> (b -> a) -> b -> a Source #

(.<=>.) :: (b -> a) -> (b -> a) -> b -> a Source #

(Boolean a, Boolean b) => Boolean (a, b) Source # 

Methods

(.=>.) :: (a, b) -> (a, b) -> (a, b) Source #

(.<=>.) :: (a, b) -> (a, b) -> (a, b) Source #