Backend-neutral SAT modeling with temporary assumptions and explainable minimal conflict cores for MoonBit.
let builder = @sat.CnfBuilder::new()
let local = builder.new_var("local")
let distributed = builder.new_var("distributed")
let strict = builder.new_var("strict")
builder.exactly_one([local, distributed])
builder.implies(strict, distributed)
let report = @sat.minimal_unsat_core(
builder.cnf(),
[@sat.Lit::pos(strict), @sat.Lit::pos(local)],
)fn CnfBuilder::at_most_k_sequential(self : CnfBuilder, vars : Array[Var], k : Int, prefix? : String) -> UnitBackend-neutral SAT modeling with temporary assumptions and explainable minimal conflict cores for MoonBit.