mirror of
https://github.com/Z3Prover/z3
synced 2025-08-23 03:27:52 +00:00
#4532 - arithmetic using SAT for interpreted atoms such as (< 0 0)
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
e1a0a2e536
commit
ec3066c28a
3 changed files with 16 additions and 6 deletions
|
@ -50,7 +50,7 @@ class sat_tactic : public tactic {
|
|||
obj_map<expr, sat::literal> dep2asm;
|
||||
sat::literal_vector assumptions;
|
||||
m_goal2sat(*g, m_params, *m_solver, map, dep2asm);
|
||||
TRACE("sat_solver_unknown", tout << "interpreted_atoms: " << map.interpreted_atoms() << "\n";
|
||||
TRACE("sat", tout << "interpreted_atoms: " << map.interpreted_atoms() << "\n";
|
||||
for (auto const& kv : map) {
|
||||
if (!is_uninterp_const(kv.m_key))
|
||||
tout << mk_ismt2_pp(kv.m_key, m) << "\n";
|
||||
|
@ -112,8 +112,8 @@ class sat_tactic : public tactic {
|
|||
ref<sat2goal::mc> mc;
|
||||
m_sat2goal(*m_solver, map, m_params, *(g.get()), mc);
|
||||
g->add(mc.get());
|
||||
if (produce_core) {
|
||||
// sat2goal does not preseve assumptions
|
||||
if (produce_core || m_goal2sat.has_interpreted_atoms()) {
|
||||
// sat2goal does not preseve assumptions or assignments to interpreted atoms
|
||||
g->updt_prec(goal::OVER);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue