#sat-solver #sat #build

kissat

对 Kissat SAT 求解器的简单封装

1 个不稳定版本

0.1.0 2021年10月10日

#28#sat

MIT 许可证

695KB
25K SLoC

C 25K SLoC // 0.0% comments Rust 243 SLoC // 0.0% comments

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"),
    }
}

无运行时依赖