(***********************************************************************)
(*
- Time-stamp: <Last modified on 2013-04-22 17:22:38 CEST by Kim Nguyen>
+ Time-stamp: <Last modified on 2013-04-24 18:10:13 CEST by Kim Nguyen>
*)
INCLUDE "utils.ml"
unsat : StateSet.t;
todo : TransList.t;
summary : node_summary;
+ (** optimization infos,
+ not taken into account during hashconsing *)
+ mutable round : int;
+ mutable unstable_subtree : bool;
}
module Config = Hcons.Make(struct
let dummy_config = Config.make { sat = StateSet.empty;
unsat = StateSet.empty;
todo = TransList.nil;
- summary = dummy_summary
+ summary = dummy_summary;
+ round = 0;
+ unstable_subtree = true;
}
|| ((not pos) && StateSet.mem q config.sat) then SFormula.false_
else atom
-
let eval_form phi fcs nss ps ss summary =
let rec loop phi =
begin match SFormula.expr phi with
let unsat = StateSet.union unsat (StateSet.diff removed kept) in
(* States that were found once to be satisfiable remain so *)
let unsat = StateSet.diff unsat sat in
- let new_config = Config.make { sat; unsat; todo ; summary = old_summary } in
+ let new_config = Config.make { old_config.Config.node with sat; unsat; todo; } in
Cache.N4.add auto.cache4 oid fcsid nssid psid new_config;
new_config
in