mirror of
https://github.com/c-cube/sidekick.git
synced 2025-12-08 04:05:43 -05:00
details
This commit is contained in:
parent
9024b0f0a9
commit
cf6147c500
2 changed files with 5 additions and 2 deletions
|
|
@ -1376,6 +1376,9 @@ module Make(Plugin : PLUGIN)
|
||||||
| _ -> assert false
|
| _ -> assert false
|
||||||
done;
|
done;
|
||||||
List.iter (fun q -> Var.clear q.var) !seen;
|
List.iter (fun q -> Var.clear q.var) !seen;
|
||||||
|
(* put high-level literals first, so that:
|
||||||
|
- they make adequate watch lits
|
||||||
|
- the first literal is the UIP, if any *)
|
||||||
let l = List.fast_sort (fun p q -> compare q.var.v_level p.var.v_level) !learnt in
|
let l = List.fast_sort (fun p q -> compare q.var.v_level p.var.v_level) !learnt in
|
||||||
let level, is_uip = backtrack_lvl st l in
|
let level, is_uip = backtrack_lvl st l in
|
||||||
{ cr_backtrack_lvl = level;
|
{ cr_backtrack_lvl = level;
|
||||||
|
|
|
||||||
|
|
@ -87,7 +87,7 @@ type ('term, 'formula, 'proof) slice = {
|
||||||
iter_assumptions: (('term,'formula) assumption -> unit) -> unit;
|
iter_assumptions: (('term,'formula) assumption -> unit) -> unit;
|
||||||
(** Traverse the new assumptions on the boolean trail. *)
|
(** Traverse the new assumptions on the boolean trail. *)
|
||||||
|
|
||||||
push : ?keep:bool -> 'formula list -> 'proof -> unit;
|
push: ?keep:bool -> 'formula list -> 'proof -> unit;
|
||||||
(** Add a clause to the solver.
|
(** Add a clause to the solver.
|
||||||
@param keep if true, the clause will be kept by the solver.
|
@param keep if true, the clause will be kept by the solver.
|
||||||
Otherwise the solver is allowed to GC the clause and propose this
|
Otherwise the solver is allowed to GC the clause and propose this
|
||||||
|
|
@ -99,7 +99,7 @@ type ('term, 'formula, 'proof) slice = {
|
||||||
The list of atoms must be a valid theory lemma that is false in the
|
The list of atoms must be a valid theory lemma that is false in the
|
||||||
current trail. *)
|
current trail. *)
|
||||||
|
|
||||||
propagate : 'formula -> ('term, 'formula, 'proof) reason -> unit;
|
propagate: 'formula -> ('term, 'formula, 'proof) reason -> unit;
|
||||||
(** Propagate a formula, i.e. the theory can evaluate the formula to be true
|
(** Propagate a formula, i.e. the theory can evaluate the formula to be true
|
||||||
(see the definition of {!type:eval_res} *)
|
(see the definition of {!type:eval_res} *)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue