mirror of
https://github.com/c-cube/sidekick.git
synced 2025-12-10 21:24:06 -05:00
Replaced maps by hashtbl for mcsat
This commit is contained in:
parent
c9657cc795
commit
5067274b4c
1 changed files with 8 additions and 8 deletions
|
|
@ -103,11 +103,11 @@ module Make (E : Expr_intf.S)(Th : Plugin_intf.S with
|
||||||
dummy_atom.watched <- Vec.make_empty dummy_clause
|
dummy_atom.watched <- Vec.make_empty dummy_clause
|
||||||
|
|
||||||
(* Constructors *)
|
(* Constructors *)
|
||||||
module MF = Map.Make(E.Formula)
|
module MF = Hashtbl.Make(E.Formula)
|
||||||
module MT = Map.Make(E.Term)
|
module MT = Hashtbl.Make(E.Term)
|
||||||
|
|
||||||
let f_map = ref MF.empty
|
let f_map = MF.create 1007
|
||||||
let t_map = ref MT.empty
|
let t_map = MT.create 1007
|
||||||
|
|
||||||
let vars = Vec.make 107 (Either.mk_right dummy_var)
|
let vars = Vec.make 107 (Either.mk_right dummy_var)
|
||||||
let nb_vars () = Vec.size vars
|
let nb_vars () = Vec.size vars
|
||||||
|
|
@ -117,7 +117,7 @@ module Make (E : Expr_intf.S)(Th : Plugin_intf.S with
|
||||||
let cpt_mk_var = ref 0
|
let cpt_mk_var = ref 0
|
||||||
|
|
||||||
let make_semantic_var t =
|
let make_semantic_var t =
|
||||||
try MT.find t !t_map
|
try MT.find t_map t
|
||||||
with Not_found ->
|
with Not_found ->
|
||||||
let res = {
|
let res = {
|
||||||
vid = !cpt_mk_var;
|
vid = !cpt_mk_var;
|
||||||
|
|
@ -128,14 +128,14 @@ module Make (E : Expr_intf.S)(Th : Plugin_intf.S with
|
||||||
assigned = None; };
|
assigned = None; };
|
||||||
} in
|
} in
|
||||||
incr cpt_mk_var;
|
incr cpt_mk_var;
|
||||||
t_map := MT.add t res !t_map;
|
MT.add t_map t res;
|
||||||
Vec.push vars (Either.mk_left res);
|
Vec.push vars (Either.mk_left res);
|
||||||
res
|
res
|
||||||
|
|
||||||
let make_boolean_var =
|
let make_boolean_var =
|
||||||
fun lit ->
|
fun lit ->
|
||||||
let lit, negated = E.norm lit in
|
let lit, negated = E.norm lit in
|
||||||
try MF.find lit !f_map, negated
|
try MF.find f_map lit, negated
|
||||||
with Not_found ->
|
with Not_found ->
|
||||||
let cpt_fois_2 = !cpt_mk_var lsl 1 in
|
let cpt_fois_2 = !cpt_mk_var lsl 1 in
|
||||||
let rec var =
|
let rec var =
|
||||||
|
|
@ -163,7 +163,7 @@ module Make (E : Expr_intf.S)(Th : Plugin_intf.S with
|
||||||
neg = pa;
|
neg = pa;
|
||||||
is_true = false;
|
is_true = false;
|
||||||
aid = cpt_fois_2 + 1 (* aid = vid*2+1 *) } in
|
aid = cpt_fois_2 + 1 (* aid = vid*2+1 *) } in
|
||||||
f_map := MF.add lit var !f_map;
|
MF.add f_map lit var;
|
||||||
incr cpt_mk_var;
|
incr cpt_mk_var;
|
||||||
Vec.push vars (Either.mk_right var);
|
Vec.push vars (Either.mk_right var);
|
||||||
Th.iter_assignable (fun t -> ignore (make_semantic_var t)) lit;
|
Th.iter_assignable (fun t -> ignore (make_semantic_var t)) lit;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue