shnarazk / mios

A SAT solver written in Haskell.
https://gitlab.com/satisfiability01/mios/
GNU General Public License v3.0
39 stars 3 forks source link

Binary clause implementation 2017-11 #55

Closed shnarazk closed 6 years ago

shnarazk commented 6 years ago

related: #51

shnarazk commented 6 years ago

cactus-sc17main-510-rio

shnarazk commented 6 years ago

Reimplementation plan

The true order of literals in a conflicting binary clause can be determined with two calls of valueLit. Therefore we don't need to allocate a new clause after each conflict.

That's all.

(2018 Jan after 1.5.1): 2 for 1 encoding

data Clause = ... | BiClause Lit Lit | ...   -  as is

data Solver = Solver {
     biWatches :: Vec        -- extensible chain of (blocker, index) for BiClause
   ...