Bugfix for user lvl push when already unsat

This commit is contained in:
Guillaume Bury 2018-09-11 14:19:22 +02:00
parent 2bba885266
commit 5e57bfc827

View file

@ -1199,8 +1199,11 @@ module Make
(* create a factice decision level for local assumptions *)
let push (): unit =
Log.debugf debug "Pushing a new user level" (fun k -> k);
match env.unsat_conflict with
| Some confl -> raise Unsat
| None ->
cancel_until (base_level ());
Log.debugf debug "@[<v>Status:@,@[<hov 2>trail: %d - %d@,%a@]"
Log.debugf debug "@[<v>Status:@,@[<hov 2>trail: %d - %d@]@,%a@]"
(fun k -> k env.elt_head env.th_head (Vec.print ~sep:"" St.pp) env.elt_queue);
begin match propagate () with
| Some confl ->
@ -1217,7 +1220,7 @@ module Make
(* pop the last factice decision level *)
let pop (): unit =
if base_level () = 0 then
Log.debugf warn "Cannot pop (already at level 0)" (fun k -> k)
Log.debugf warn "Cannot pop (already at user level 0)" (fun k -> k)
else begin
Log.debugf info "Popping user level" (fun k -> k);
assert (base_level () > 0);