1 个不稳定版本
0.1.0 | 2021年10月10日 |
---|
#28 在 #sat
695KB
25K SLoC
Kissat SAT 求解器
对 Kissat SAT 求解器的简单封装。
Kissat 是由 Armin Biere 和其他人开发的一种最先进的 SAT 求解器。它用 C 语言编写,而不是 C++,与它所基于的 CaDiCaL(以及像 minisat 和 glucose 这样的旧求解器)不同。这使得它在 Rust 中嵌入特别方便。
此包构建了 Kissat 的整个源代码,并提供了一个安全接口。
此版本目前与提交给 sc2021 的 kissat 版本相关联。
lib.rs
:
对 Kissat SAT 求解器的简单封装。
Kissat 是由 Armin Biere 和其他人开发的一种最先进的 SAT 求解器。它用 C 语言编写,而不是 C++,与它所基于的 CaDiCaL(以及像 minisat 和 glucose 这样的旧求解器)不同。这使得它在 Rust 中嵌入特别方便。
此包构建了 Kissat 的整个源代码,并提供了一个安全接口。
extern crate kissat;
fn main() {
let mut solver = kissat::Solver::new();
let a = solver.var();
let b = solver.var();
solver.add2(a, !b);
solver.add1(b);
match solver.sat() {
Some(solution) => println!("SAT: {:?} {:?}", solution.get(a), solution.get(b)),
None => println!("UNSAT"),
}
}