mios-1.4.0: A Minisat-based SAT solver in Haskell

Safe HaskellTrustworthy
LanguageHaskell2010

SAT.Mios.ClauseManager

Contents

Description

A shrinkable vector of Clause

Synopsis

higher level interface for ClauseVector

Manager with an extra Int (used as sort key or blocking literal)

data ClauseExtManager Source #

Clause + Blocking Literal

Instances

ClauseManager ClauseExtManager Source #

ClauseExtManager is a ClauseManager

StackFamily ClauseExtManager Clause Source #

ClauseExtManager is a StackFamily on clauses.

SingleStorage ClauseExtManager Int Source #

ClauseExtManager is a SingleStorage on the numeber of clauses in it.

VecFamily WatcherList Clause Source #

WatcherList is an Lit-indexed collection of Clause.

VecFamily ClauseExtManager Clause Source #

ClauseExtManager is a collection of Clause

pushClauseWithKey :: ClauseExtManager -> Clause -> Lit -> IO () Source #

O(1) inserter

getKeyVector :: ClauseExtManager -> IO (UVector Int) Source #

returns the associated Int vector, which holds blocking literals.

markClause :: ClauseExtManager -> Clause -> IO () Source #

sets the expire flag to a clause.

WatcherList

newWatcherList :: Int -> Int -> IO WatcherList Source #

n is the number of Var, m is default size of each watcher list. | For n vars, we need [0 .. 2 + 2 * n - 1] slots, namely 2 * (n + 1)-length vector

getNthWatcher :: WatcherList -> Lit -> ClauseExtManager Source #

returns the watcher List for Literal l.