///|
fn main {
let builder = @sat.CnfBuilder::new()
let variables : Array[@sat.Var] = []
for index = 0; index < 24; index = index + 1 {
variables.push(builder.new_var("feature_\{index}"))
}
builder.at_most_one_pairwise(variables)
let choices : Array[@sat.Lit] = []
for variable in variables {
choices.push(@sat.Lit::pos(variable))
}
let cnf = builder.cnf()
let report = @sat.minimal_unsat_core(cnf, choices)
println("MoonSatKit deterministic workload")
println(cnf.stats().to_json())
println(
"{\"assumptions\":\{choices.length()},\"core_size\":\{report.core.length()},\"solver_calls\":\{report.solver_calls}}",
)
}