satchmo-2.9.9.4: SAT encoding monad
Safe HaskellSafe-Inferred
LanguageHaskell2010

Satchmo.Boolean

Synopsis

Documentation

class (Applicative m, Monad m) => MonadSAT m where Source #

Associated Types

type Decoder m :: * -> * Source #

Methods

fresh :: m Literal Source #

fresh_forall :: m Literal Source #

emit :: Clause -> m () Source #

note :: String -> m () Source #

emit some note (could be printed by the backend)

decode_variable :: Variable -> Decoder m Bool Source #

Instances

Instances details
MonadSAT SAT Source # 
Instance details

Defined in Satchmo.SAT.External

Associated Types

type Decoder SAT :: Type -> Type Source #

MonadSAT SAT Source # 
Instance details

Defined in Satchmo.SAT.Mini

Associated Types

type Decoder SAT :: Type -> Type Source #

MonadSAT SAT Source # 
Instance details

Defined in Satchmo.SAT.Tmpfile

Associated Types

type Decoder SAT :: Type -> Type Source #

(Monad m, MonadSAT m) => MonadSAT (ListT m) Source # 
Instance details

Defined in Satchmo.MonadSAT

Associated Types

type Decoder (ListT m) :: Type -> Type Source #

(Monad m, MonadSAT m) => MonadSAT (ReaderT r m) Source # 
Instance details

Defined in Satchmo.MonadSAT

Associated Types

type Decoder (ReaderT r m) :: Type -> Type Source #

(Monad m, MonadSAT m) => MonadSAT (StateT s m) Source # 
Instance details

Defined in Satchmo.MonadSAT

Associated Types

type Decoder (StateT s m) :: Type -> Type Source #

(Monad m, MonadSAT m) => MonadSAT (StateT s m) Source # 
Instance details

Defined in Satchmo.MonadSAT

Associated Types

type Decoder (StateT s m) :: Type -> Type Source #

(Monad m, MonadSAT m, Monoid w) => MonadSAT (WriterT w m) Source # 
Instance details

Defined in Satchmo.MonadSAT

Associated Types

type Decoder (WriterT w m) :: Type -> Type Source #

(Monad m, MonadSAT m, Monoid w) => MonadSAT (WriterT w m) Source # 
Instance details

Defined in Satchmo.MonadSAT

Associated Types

type Decoder (WriterT w m) :: Type -> Type Source #

(Monad m, MonadSAT m) => MonadSAT (ContT s m) Source # 
Instance details

Defined in Satchmo.MonadSAT

Associated Types

type Decoder (ContT s m) :: Type -> Type Source #

(Monad m, MonadSAT m, Monoid w) => MonadSAT (RWST r w s m) Source # 
Instance details

Defined in Satchmo.MonadSAT

Associated Types

type Decoder (RWST r w s m) :: Type -> Type Source #

Methods

fresh :: RWST r w s m Literal Source #

fresh_forall :: RWST r w s m Literal Source #

emit :: Clause -> RWST r w s m () Source #

note :: String -> RWST r w s m () Source #

decode_variable :: Variable -> Decoder (RWST r w s m) Bool Source #

(Monad m, MonadSAT m, Monoid w) => MonadSAT (RWST r w s m) Source # 
Instance details

Defined in Satchmo.MonadSAT

Associated Types

type Decoder (RWST r w s m) :: Type -> Type Source #

Methods

fresh :: RWST r w s m Literal Source #

fresh_forall :: RWST r w s m Literal Source #

emit :: Clause -> RWST r w s m () Source #

note :: String -> RWST r w s m () Source #

decode_variable :: Variable -> Decoder (RWST r w s m) Bool Source #

data Boolean Source #

Constructors

Boolean 

Fields

Constant 

Fields

Instances

Instances details
Generic Boolean Source # 
Instance details

Defined in Satchmo.Boolean.Data

Associated Types

type Rep Boolean :: Type -> Type #

Methods

from :: Boolean -> Rep Boolean x #

to :: Rep Boolean x -> Boolean #

Show Boolean Source # 
Instance details

Defined in Satchmo.Boolean.Data

Eq Boolean Source # 
Instance details

Defined in Satchmo.Boolean.Data

Methods

(==) :: Boolean -> Boolean -> Bool #

(/=) :: Boolean -> Boolean -> Bool #

Ord Boolean Source # 
Instance details

Defined in Satchmo.Boolean.Data

Hashable Boolean Source # 
Instance details

Defined in Satchmo.Boolean.Data

Methods

hashWithSalt :: Int -> Boolean -> Int #

hash :: Boolean -> Int #

Decode SAT Boolean Bool Source # 
Instance details

Defined in Satchmo.SAT.Mini

Methods

decode :: Boolean -> SAT Bool Source #

Decode (Reader (Array Variable Bool)) Boolean Bool Source # 
Instance details

Defined in Satchmo.SAT.Tmpfile

type Rep Boolean Source # 
Instance details

Defined in Satchmo.Boolean.Data

type Rep Boolean = D1 ('MetaData "Boolean" "Satchmo.Boolean.Data" "satchmo-2.9.9.4-Aqsq65NcGJ9IL95KAH1ZK1" 'False) (C1 ('MetaCons "Boolean" 'PrefixI 'True) (S1 ('MetaSel ('Just "encode") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Literal)) :+: C1 ('MetaCons "Constant" 'PrefixI 'True) (S1 ('MetaSel ('Just "value") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Bool)))

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

assertOr :: MonadSAT m => [Boolean] -> m () Source #

assertAnd :: (Foldable t, MonadSAT m) => t Boolean -> m () Source #

assert :: MonadSAT m => [Boolean] -> m () Source #

fun2 :: MonadSAT m => (Bool -> Bool -> Bool) -> Boolean -> Boolean -> m Boolean Source #

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

fun3 :: MonadSAT m => (Bool -> Bool -> Bool -> Bool) -> Boolean -> Boolean -> Boolean -> m Boolean Source #

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

assert_fun2 :: MonadSAT m => (Bool -> Bool -> Bool) -> Boolean -> Boolean -> m () Source #

assert_fun3 :: MonadSAT m => (Bool -> Bool -> Bool -> Bool) -> Boolean -> Boolean -> Boolean -> m () Source #

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