fix: compute model even if (potentially) new interface eqns are produced

close #19
This commit is contained in:
Simon Cruanes 2023-06-23 10:44:12 -04:00
parent 3ebc532486
commit da5cd7fbc2
No known key found for this signature in database
GPG key ID: EBFFF6F283F3A2B4

View file

@ -460,7 +460,8 @@ let assert_lits_ ~final (self : t) (acts : theory_actions) (lits : Lit.t Iter.t)
if new_intf_eqns <> [] then ( if new_intf_eqns <> [] then (
let (module A) = acts in let (module A) = acts in
List.iter (fun lit -> A.add_lit ~default_pol:false lit) new_intf_eqns List.iter (fun lit -> A.add_lit ~default_pol:false lit) new_intf_eqns
) else if not (has_delayed_actions self) then ( );
if not (has_delayed_actions self) then (
(* if theory combination didn't add new clauses, compute a model *) (* if theory combination didn't add new clauses, compute a model *)
let m = mk_model_ self lits in let m = mk_model_ self lits in
self.last_model <- Some m self.last_model <- Some m