mirror of
https://github.com/c-cube/sidekick.git
synced 2025-12-06 11:15:43 -05:00
fix(sat): base-level = 1 under assumptions
This commit is contained in:
parent
080cde778e
commit
5e380464ce
1 changed files with 5 additions and 4 deletions
|
|
@ -728,16 +728,17 @@ module Make (Th : Theory_intf.S) = struct
|
||||||
end
|
end
|
||||||
|
|
||||||
let[@inline] theory st = Lazy.force st.th
|
let[@inline] theory st = Lazy.force st.th
|
||||||
|
|
||||||
|
let[@inline] nb_clauses st = Vec.size st.clauses
|
||||||
|
let[@inline] decision_level st = Vec.size st.elt_levels
|
||||||
|
let[@inline] base_level st = if decision_level st > 0 then 1 else 0 (* first level=assumptions *)
|
||||||
|
|
||||||
let[@inline] at_level_0 st : bool = Vec.is_empty st.backtrack_levels
|
let[@inline] at_level_0 st : bool = Vec.is_empty st.backtrack_levels
|
||||||
let[@inline] on_backtrack st f : unit =
|
let[@inline] on_backtrack st f : unit =
|
||||||
if not (at_level_0 st) then (
|
if not (at_level_0 st) then (
|
||||||
Vec.push st.backtrack f
|
Vec.push st.backtrack f
|
||||||
)
|
)
|
||||||
|
|
||||||
let[@inline] nb_clauses st = Vec.size st.clauses
|
|
||||||
let[@inline] decision_level st = Vec.size st.elt_levels
|
|
||||||
let[@inline] base_level _st = 0
|
|
||||||
|
|
||||||
(* [redo_down_to_level_0 f ~undo] performs [f] now. Upon backtracking
|
(* [redo_down_to_level_0 f ~undo] performs [f] now. Upon backtracking
|
||||||
before current level, some undo actions scheduled by [f]
|
before current level, some undo actions scheduled by [f]
|
||||||
might run;
|
might run;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue