- class (Functor m, Monad m) => MonadSAT m where
- data Boolean = Constant Bool
- type Booleans = [Boolean]
- encode :: Boolean -> Literal
- boolean :: MonadSAT m => m Boolean
- exists :: MonadSAT m => m Boolean
- forall :: MonadSAT m => m Boolean
- constant :: MonadSAT m => Bool -> m Boolean
- not :: Boolean -> Boolean
- assert :: MonadSAT m => [Boolean] -> m ()
- assertW :: MonadSAT m => Weight -> [Boolean] -> m ()
- monadic :: Monad m => ([a] -> m b) -> [m a] -> m b
- constant :: MonadSAT m => Bool -> m Boolean
- and :: MonadSAT m => [Boolean] -> m Boolean
- or :: MonadSAT m => [Boolean] -> m Boolean
- xor :: MonadSAT m => [Boolean] -> m Boolean
- fun2 :: MonadSAT m => (Bool -> Bool -> Bool) -> Boolean -> Boolean -> m Boolean
- fun3 :: MonadSAT m => (Bool -> Bool -> Bool -> Bool) -> Boolean -> Boolean -> Boolean -> m Boolean
- monadic :: Monad m => ([a] -> m b) -> [m a] -> m b
Documentation
class (Functor m, Monad m) => MonadSAT m whereSource
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) |
fun2 :: MonadSAT m => (Bool -> Bool -> Bool) -> Boolean -> Boolean -> m BooleanSource
implement the function by giving a full CNF that determines the outcome