toysolver-0.0.2: src/SAT/TheorySolver.hs
module SAT.TheorySolver
( TheorySolver (..)
, emptyTheory
) where
import SAT.Types
data TheorySolver =
TheorySolver
{ thAssertLit :: (Lit -> IO Bool) -> Lit -> IO Bool
, thCheck :: (Lit -> IO Bool) -> IO Bool
, thExplain :: IO [Lit]
, thPushBacktrackPoint :: IO ()
, thPopBacktrackPoint :: IO ()
}
emptyTheory :: TheorySolver
emptyTheory =
TheorySolver
{ thAssertLit = \propagate lit -> return True
, thCheck = \propagate -> return True
, thExplain = error "should not happen"
, thPushBacktrackPoint = return ()
, thPopBacktrackPoint = return ()
}