mirror of
https://github.com/c-cube/sidekick.git
synced 2025-12-09 20:55:39 -05:00
wip: resume work on th-cstors
This commit is contained in:
parent
4ab1997b45
commit
94ba04a49e
2 changed files with 6 additions and 6 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue