mirror of
https://github.com/c-cube/sidekick.git
synced 2025-12-09 04:35:35 -05:00
Handle new clauses unsat at level >0 && <=base_lvl
This commit is contained in:
parent
6eeaa8513c
commit
5fdffe1f85
1 changed files with 7 additions and 4 deletions
|
|
@ -749,6 +749,13 @@ module Make
|
|||
match atoms with
|
||||
| [] ->
|
||||
report_unsat clause
|
||||
| [a] ->
|
||||
Log.debugf 5 "New unit clause, propagating : %a" (fun k->k St.pp_atom a);
|
||||
cancel_until env.base_level;
|
||||
if a.neg.is_true then begin
|
||||
report_unsat clause
|
||||
end else
|
||||
enqueue_bool a 0 (Bcp clause)
|
||||
| a::b::_ ->
|
||||
if a.neg.is_true then begin
|
||||
(* Atoms need to be sorted in decreasing order of decision level,
|
||||
|
|
@ -766,10 +773,6 @@ module Make
|
|||
enqueue_bool a lvl (Bcp clause)
|
||||
end
|
||||
end
|
||||
| [a] ->
|
||||
Log.debugf 5 "New unit clause, propagating : %a" (fun k->k St.pp_atom a);
|
||||
cancel_until env.base_level;
|
||||
enqueue_bool a 0 (Bcp clause)
|
||||
with Trivial ->
|
||||
Vec.push vec init;
|
||||
Log.debugf 5 "Trivial clause ignored : @[%a@]" (fun k->k St.pp_clause init)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue