wip: resume work on th-cstors

This commit is contained in:
Simon Cruanes 2019-10-29 14:32:31 -05:00
parent 4ab1997b45
commit 94ba04a49e
2 changed files with 6 additions and 6 deletions

View file

@ -20,9 +20,9 @@ module Make(A : ARG) : S with module A = A = struct
module A = A module A = A
module SI = A.S.Solver_internal module SI = A.S.Solver_internal
module T = A.S.A.Term module T = A.S.A.Term
module N = SI.N module N = SI.CC.N
module Fun = A.S.A.Fun module Fun = A.S.A.Fun
module Expl = SI.Expl module Expl = SI.CC.Expl
type cstor_repr = { type cstor_repr = {
t: T.t; t: T.t;
@ -40,7 +40,7 @@ module Make(A : ARG) : S with module A = A = struct
(* TODO: also allocate a bit in CC to filter out quickly classes without cstors *) (* TODO: also allocate a bit in CC to filter out quickly classes without cstors *)
} }
let on_pre_merge (solver:SI.t) n1 tc1 n2 tc2 e_n1_n2 : unit = let on_pre_merge (solver:SI.t) _cc acts n1 tc1 n2 tc2 e_n1_n2 : unit =
Log.debugf 5 Log.debugf 5
(fun k->k "(@[th-cstor.on_pre_merge@ @[:c1 %a@ (term %a)@]@ @[:c2 %a@ (term %a)@]@])" (fun k->k "(@[th-cstor.on_pre_merge@ @[:c1 %a@ (term %a)@]@ @[:c2 %a@ (term %a)@]@])"
N.pp n1 T.pp tc1.t N.pp n2 T.pp tc2.t); N.pp n1 T.pp tc1.t N.pp n2 T.pp tc2.t);
@ -52,11 +52,11 @@ module Make(A : ARG) : S with module A = A = struct
(* same function: injectivity *) (* same function: injectivity *)
assert (List.length l1 = List.length l2); assert (List.length l1 = List.length l2);
List.iter2 List.iter2
(fun u1 u2 -> SI.cc_merge_t solver u1 u2 expl) (fun u1 u2 -> SI.cc_merge_t solver acts u1 u2 expl)
l1 l2 l1 l2
) else ( ) else (
(* different function: disjointness *) (* different function: disjointness *)
SI.cc_raise_conflict solver expl SI.cc_raise_conflict_expl solver acts expl
) )
| _ -> assert false | _ -> assert false
@ -71,7 +71,7 @@ module Make(A : ARG) : S with module A = A = struct
cstors=N_tbl.create 32; cstors=N_tbl.create 32;
} in } in
(* TODO (* TODO
SI.on_cc_pre_merge solver on_pre_merge; SI.on_cc_pre_merge solver (on_pre_merge solver);
SI.on_cc_new_term solver on_new_term; SI.on_cc_new_term solver on_new_term;
*) *)
self self