fix(smt): perform CC check after theory actions

This commit is contained in:
Simon Cruanes 2022-08-20 22:07:21 -04:00
parent e0faf6ba72
commit ca1abd8134
No known key found for this signature in database
GPG key ID: EBFFF6F283F3A2B4

View file

@ -489,7 +489,10 @@ let assert_lits_ ~final (self : t) (acts : theory_actions) (lits : Lit.t Iter.t)
if not final then CC.assert_lits cc lits;
(* transmit to theories. *)
check_cc_with_acts_ self acts;
if final then (
Perform_delayed_th.top self acts;
List.iter (fun f -> f self acts lits) self.on_final_check;
check_cc_with_acts_ self acts;
@ -536,6 +539,8 @@ let assert_lits_ ~final (self : t) (acts : theory_actions) (lits : Lit.t Iter.t)
Perform_delayed_th.top self acts
) else (
List.iter (fun f -> f self acts lits) self.on_partial_check;
(* re-check CC after theory actions, which might have merged classes *)
check_cc_with_acts_ self acts;
Perform_delayed_th.top self acts
);
()