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

Copyright(c) Masahiro Sakai 2014-2015
LicenseBSD-style
Maintainermasahiro.sakai@gmail.com
Stabilityprovisional
Portabilitynon-portable (MultiParamTypeClasses, DeriveDataTypeable, FlexibleContexts, FlexibleInstances)
Safe HaskellNone
LanguageHaskell2010

ToySolver.Data.BoolExpr

Contents

Description

Boolean expression over a given type of atoms

Synopsis

BoolExpr type

data BoolExpr a Source #

Boolean expression over a given type of atoms

Constructors

Atom a 
And [BoolExpr a] 
Or [BoolExpr a] 
Not (BoolExpr a) 
Imply (BoolExpr a) (BoolExpr a) 
Equiv (BoolExpr a) (BoolExpr a) 
ITE (BoolExpr a) (BoolExpr a) (BoolExpr a) 
Instances
Monad BoolExpr Source # 
Instance details

Defined in ToySolver.Data.BoolExpr

Methods

(>>=) :: BoolExpr a -> (a -> BoolExpr b) -> BoolExpr b #

(>>) :: BoolExpr a -> BoolExpr b -> BoolExpr b #

return :: a -> BoolExpr a #

fail :: String -> BoolExpr a #

Functor BoolExpr Source # 
Instance details

Defined in ToySolver.Data.BoolExpr

Methods

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

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

Applicative BoolExpr Source # 
Instance details

Defined in ToySolver.Data.BoolExpr

Methods

pure :: a -> BoolExpr a #

(<*>) :: BoolExpr (a -> b) -> BoolExpr a -> BoolExpr b #

liftA2 :: (a -> b -> c) -> BoolExpr a -> BoolExpr b -> BoolExpr c #

(*>) :: BoolExpr a -> BoolExpr b -> BoolExpr b #

(<*) :: BoolExpr a -> BoolExpr b -> BoolExpr a #

Foldable BoolExpr Source # 
Instance details

Defined in ToySolver.Data.BoolExpr

Methods

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

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

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

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

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

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

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

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

toList :: BoolExpr a -> [a] #

null :: BoolExpr a -> Bool #

length :: BoolExpr a -> Int #

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

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

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

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

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

Traversable BoolExpr Source # 
Instance details

Defined in ToySolver.Data.BoolExpr

Methods

traverse :: Applicative f => (a -> f b) -> BoolExpr a -> f (BoolExpr b) #

sequenceA :: Applicative f => BoolExpr (f a) -> f (BoolExpr a) #

mapM :: Monad m => (a -> m b) -> BoolExpr a -> m (BoolExpr b) #

sequence :: Monad m => BoolExpr (m a) -> m (BoolExpr a) #

Eval m a Bool => Eval m (BoolExpr a) Bool Source # 
Instance details

Defined in ToySolver.Data.BoolExpr

Methods

eval :: m -> BoolExpr a -> Bool Source #

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

Defined in ToySolver.Data.BoolExpr

Methods

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

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

Data a => Data (BoolExpr a) Source # 
Instance details

Defined in ToySolver.Data.BoolExpr

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> BoolExpr a -> c (BoolExpr a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (BoolExpr a) #

toConstr :: BoolExpr a -> Constr #

dataTypeOf :: BoolExpr a -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (BoolExpr a)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (BoolExpr a)) #

gmapT :: (forall b. Data b => b -> b) -> BoolExpr a -> BoolExpr a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> BoolExpr a -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> BoolExpr a -> r #

gmapQ :: (forall d. Data d => d -> u) -> BoolExpr a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> BoolExpr a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> BoolExpr a -> m (BoolExpr a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> BoolExpr a -> m (BoolExpr a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> BoolExpr a -> m (BoolExpr a) #

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

Defined in ToySolver.Data.BoolExpr

Methods

compare :: BoolExpr a -> BoolExpr a -> Ordering #

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

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

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

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

max :: BoolExpr a -> BoolExpr a -> BoolExpr a #

min :: BoolExpr a -> BoolExpr a -> BoolExpr a #

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

Defined in ToySolver.Data.BoolExpr

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

Defined in ToySolver.Data.BoolExpr

Methods

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

show :: BoolExpr a -> String #

showList :: [BoolExpr a] -> ShowS #

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

Defined in ToySolver.Data.BoolExpr

Methods

rnf :: BoolExpr a -> () #

Hashable a => Hashable (BoolExpr a) Source # 
Instance details

Defined in ToySolver.Data.BoolExpr

Methods

hashWithSalt :: Int -> BoolExpr a -> Int #

hash :: BoolExpr a -> Int #

Boolean (BoolExpr a) Source # 
Instance details

Defined in ToySolver.Data.BoolExpr

Complement (BoolExpr a) Source # 
Instance details

Defined in ToySolver.Data.BoolExpr

Methods

notB :: BoolExpr a -> BoolExpr a Source #

MonotoneBoolean (BoolExpr a) Source # 
Instance details

Defined in ToySolver.Data.BoolExpr

Variables a => Variables (BoolExpr a) Source # 
Instance details

Defined in ToySolver.Data.BoolExpr

Methods

vars :: BoolExpr a -> VarSet Source #

IsOrdRel (Expr Integer) QFFormula Source # 
Instance details

Defined in ToySolver.Arith.Cooper.Base

IsEqRel (Expr Integer) QFFormula Source # 
Instance details

Defined in ToySolver.Arith.Cooper.Base

IfThenElse (BoolExpr a) (BoolExpr a) Source # 
Instance details

Defined in ToySolver.Data.BoolExpr

Methods

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

Operations

fold :: Boolean b => (atom -> b) -> BoolExpr atom -> b Source #