Safe Haskell | None |
---|---|
Language | Haskell2010 |
- data Assignment s
- data Literal s
- data PropagateInit s
- data PropagateCtrl s
- data IOPropagator s = IOPropagator {
- propagatorInit :: Maybe (PropagateInit s -> IO ())
- propagatorPropagate :: Maybe (PropagateCtrl s -> [Literal s] -> IO ())
- propagatorUndo :: Maybe (PropagateCtrl s -> [Literal s] -> IO ())
- propagatorCheck :: Maybe (PropagateCtrl s -> IO ())
- data PropagationStop
- data TruthValue
- pattern TruthFree :: TruthValue
- pattern TruthFalse :: TruthValue
- pattern TruthTrue :: TruthValue
- decisionLevel :: MonadIO m => Assignment s -> m Natural
- hasConflict :: MonadIO m => Assignment s -> m Bool
- hasLiteral :: MonadIO m => Assignment s -> Literal s -> m Bool
- levelOf :: (MonadIO m, MonadThrow m) => Assignment s -> Literal s -> m Natural
- decision :: (MonadIO m, MonadThrow m) => Assignment s -> Natural -> m (Literal s)
- isFixed :: (MonadIO m, MonadThrow m) => Assignment s -> Literal s -> m Bool
- truthValue :: (MonadIO m, MonadThrow m) => Assignment s -> Literal s -> m TruthValue
- data Clause s = Clause [Literal s] ClauseType
- data ClauseType
- assignment :: MonadIO m => PropagateCtrl s -> m (Assignment s)
- addClause :: (MonadIO m, MonadThrow m) => PropagateCtrl s -> Clause s -> m PropagationStop
- addLiteral :: (MonadIO m, MonadThrow m) => PropagateCtrl s -> m (Literal s)
- addWatch :: (MonadIO m, MonadThrow m) => PropagateCtrl s -> Literal s -> m ()
- hasWatch :: MonadIO m => PropagateCtrl s -> Literal s -> m Bool
- removeWatch :: MonadIO m => PropagateCtrl s -> Literal s -> m ()
- propagate :: (MonadIO m, MonadThrow m) => PropagateCtrl s -> m PropagationStop
- getThreadId :: MonadIO m => PropagateCtrl s -> m Integer
- initAddWatch :: (MonadIO m, MonadThrow m) => PropagateInit s -> Literal s -> m ()
- countThreads :: MonadIO m => PropagateInit s -> m Integer
- solverLiteral :: (MonadIO m, MonadThrow m) => PropagateInit s -> AspifLiteral s -> m (Literal s)
- symbolicAtoms :: (MonadIO m, MonadThrow m) => PropagateInit s -> m (SymbolicAtoms s)
- theoryAtoms :: (MonadIO m, MonadThrow m) => PropagateInit s -> m (TheoryAtoms s)
Documentation
data Assignment s Source #
Propagation Handles and Types
data PropagateInit s Source #
MonadReader (PropagateInit s) (Propagation Init s) # | |
data PropagateCtrl s Source #
MonadReader (PropagateCtrl s) (Propagation Solving s) # | |
data IOPropagator s Source #
IOPropagator | |
|
data PropagationStop Source #
Truth values
pattern TruthFree :: TruthValue Source #
pattern TruthFalse :: TruthValue Source #
pattern TruthTrue :: TruthValue Source #
Assignment
decisionLevel :: MonadIO m => Assignment s -> m Natural Source #
Get the current decision level.
hasConflict :: MonadIO m => Assignment s -> m Bool Source #
Determine whether assignment has a conflict.
hasLiteral :: MonadIO m => Assignment s -> Literal s -> m Bool Source #
Determine whether a literal is part of an assignment.
levelOf :: (MonadIO m, MonadThrow m) => Assignment s -> Literal s -> m Natural Source #
Find the decision level of a given literal in an assignment.
decision :: (MonadIO m, MonadThrow m) => Assignment s -> Natural -> m (Literal s) Source #
Determine the decision literal given a decision level.
isFixed :: (MonadIO m, MonadThrow m) => Assignment s -> Literal s -> m Bool Source #
Check if a literal has a fixed truth value.
truthValue :: (MonadIO m, MonadThrow m) => Assignment s -> Literal s -> m TruthValue Source #
Obtain the truth value of a literal
Clauses
data ClauseType Source #
ClauseLearnt | |
ClauseVolatile Bool | Bool determines static |
ClauseStatic |
Propagation
assignment :: MonadIO m => PropagateCtrl s -> m (Assignment s) Source #
addClause :: (MonadIO m, MonadThrow m) => PropagateCtrl s -> Clause s -> m PropagationStop Source #
addLiteral :: (MonadIO m, MonadThrow m) => PropagateCtrl s -> m (Literal s) Source #
addWatch :: (MonadIO m, MonadThrow m) => PropagateCtrl s -> Literal s -> m () Source #
removeWatch :: MonadIO m => PropagateCtrl s -> Literal s -> m () Source #
propagate :: (MonadIO m, MonadThrow m) => PropagateCtrl s -> m PropagationStop Source #
getThreadId :: MonadIO m => PropagateCtrl s -> m Integer Source #
Initialization
initAddWatch :: (MonadIO m, MonadThrow m) => PropagateInit s -> Literal s -> m () Source #
countThreads :: MonadIO m => PropagateInit s -> m Integer Source #
solverLiteral :: (MonadIO m, MonadThrow m) => PropagateInit s -> AspifLiteral s -> m (Literal s) Source #
symbolicAtoms :: (MonadIO m, MonadThrow m) => PropagateInit s -> m (SymbolicAtoms s) Source #
theoryAtoms :: (MonadIO m, MonadThrow m) => PropagateInit s -> m (TheoryAtoms s) Source #