mirror of
https://github.com/Z3Prover/z3
synced 2025-11-02 12:37:52 +00:00
Implement iuc_solver::check_sat_cc
This commit is contained in:
parent
26339119e4
commit
1343b272e7
2 changed files with 23 additions and 0 deletions
|
|
@ -127,6 +127,28 @@ lbool iuc_solver::check_sat (unsigned num_assumptions, expr * const *assumptions
|
|||
return res;
|
||||
}
|
||||
|
||||
lbool iuc_solver::check_sat_cc(const expr_ref_vector &cube,
|
||||
const expr_ref_vector &clause) {
|
||||
if (clause.empty()) {return check_sat(cube.size(), cube.c_ptr());}
|
||||
|
||||
// -- remove any old assumptions
|
||||
if (m_assumptions.size() > m_first_assumption)
|
||||
{ m_assumptions.shrink(m_first_assumption); }
|
||||
|
||||
// -- replace theory literals in background assumptions with proxies
|
||||
mk_proxies(m_assumptions);
|
||||
// -- in case mk_proxies added new literals, they are all background
|
||||
m_first_assumption = m_assumptions.size();
|
||||
|
||||
m_assumptions.append(cube);
|
||||
m_is_proxied = mk_proxies(m_assumptions, m_first_assumption);
|
||||
|
||||
lbool res;
|
||||
res = m_solver.check_sat_cc(m_assumptions, clause);
|
||||
set_status (res);
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
app* iuc_solver::def_manager::mk_proxy (expr *v)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue