satchmo-1.9.1: SAT encoding monad

Satchmo.Boolean

Synopsis

Documentation

class (Functor m, Monad m) => MonadSAT m whereSource

Methods

fresh :: m LiteralSource

fresh_forall :: m LiteralSource

emit :: Clause -> m ()Source

emitW :: Weight -> Clause -> m ()Source

note :: String -> m ()Source

emit some note (could be printed by the backend)

Instances

MonadSAT SAT 
MonadSAT SAT 
MonadSAT SAT 
MonadSAT SAT 
MonadSAT SAT 
(Monad m, MonadSAT m) => MonadSAT (ListT m) 
(Monad m, MonadSAT m) => MonadSAT (ContT s m) 
(Monad m, MonadSAT m) => MonadSAT (ReaderT r m) 
(Monad m, MonadSAT m) => MonadSAT (StateT s m) 
(Monad m, MonadSAT m) => MonadSAT (StateT s m) 
(Monad m, MonadSAT m, Monoid w) => MonadSAT (WriterT w m) 
(Monad m, MonadSAT m, Monoid w) => MonadSAT (WriterT w m) 
(Monad m, MonadSAT m, Monoid w) => MonadSAT (RWST r w s m) 
(Monad m, MonadSAT m, Monoid w) => MonadSAT (RWST r w s m) 

data Boolean Source

Constructors

Constant !Bool 

Instances

monadic :: Monad m => ([a] -> m b) -> [m a] -> m bSource

fun2 :: MonadSAT m => (Bool -> Bool -> Bool) -> Boolean -> Boolean -> m BooleanSource

implement the function by giving a full CNF that determines the outcome

fun3 :: MonadSAT m => (Bool -> Bool -> Bool -> Bool) -> Boolean -> Boolean -> Boolean -> m BooleanSource

implement the function by giving a full CNF that determines the outcome

monadic :: Monad m => ([a] -> m b) -> [m a] -> m bSource