Splr -- SAT Solver for Propositional Logic in Rust

Features

Install

Just clone me, and cargo install.

Two executables will be installed:

Usage

Splr is a standalone program, taking an CNF file. The result will be saved to a file.

``` $ splr tests/sample.cnf sample.cnf 250,1065 |time: 0.39, Mode: Initial #conflict: 22372, #decision: 25940, #propagate: 1005304 Assignment|#rem: 235, #fix: 1, #elm: 14, prg%: 6.0000 Clause Kind|Remv: 8414, LBD2: 60, Binc: 0, Perm: 1078 Restart|#BLK: 312, #RST: 0, eASG: 0.4327, eLBD: 0.8989 Conflicts|aLBD: 7.92, bjmp: 8.64, cnfl: 10.79 |blkR: 1.4000 Clause DB|#rdc: 5, #sce: 2, #exe: 1 |frcK: 0.6500 SATISFIABLE: sample.cnf. The answer was dumped to .ans_sample.cnf.

$ cat .ans_sample.cnf c An assignment generated by splr-0.1.1 for tests/sample.cnf c c sample.cnf , v: 250, c: 1065, time: 0.39 c #conflict: 22372, #decision: 25940, #propagate: 1005304 c Assignment|#rem: 235, #fix: 1, #elm: 14, prg%: 6.0000 c Clause Kind|Remv: 8414, LBD2: 60, Binc: 0, Perm: 1078 c Restart|#BLK: 312, #RST: 0, eASG: 0.4327, eLBD: 0.8989 c Conflicts|aLBD: 7.92, bjmp: 8.64, cnfl: 10.79 |blkR: 1.4000 c Clause DB|#rdc: 5, #sce: 2, #exe: 1 |frcK: 0.6500 c s SATISFIABLE 1 2 3 4 -5 6 7 -8 -9 10 11 -12 -13 -14 15 16 -17 18 -19 20 -21 -22 23 ... 0

$ dmcr tests/sample.cnf Valid assignment for tests/sample.cnf found in .ans_sample.cnf. ```

Correctness

While Splr comes with ABSOLUTELY NO WARRANTY, Splr version 0.1.0 (splr-0.1.0) was verified with the following problems:


2019, Shuji Narazaki