mirror of
https://github.com/Z3Prover/z3
synced 2025-07-19 10:52:02 +00:00
solver::check_sat_cc : check_sat assuming cube and clause
Extends check_sat with an ability to assume a single clause in addition to assuming a cube of assumptions
This commit is contained in:
parent
4477f7d326
commit
26339119e4
6 changed files with 50 additions and 70 deletions
|
@ -36,19 +36,21 @@ public:
|
|||
|
||||
void assert_expr_core2(expr * t, expr * a) override;
|
||||
// virtual void assert_expr_core(expr * t) = 0;
|
||||
|
||||
|
||||
// Subclasses of solver_na2as should redefine the following *_core methods instead of these ones.
|
||||
lbool check_sat(unsigned num_assumptions, expr * const * assumptions) override;
|
||||
lbool check_sat_cc(const expr_ref_vector &assumptions, const expr_ref_vector &clause) override;
|
||||
void push() override;
|
||||
void pop(unsigned n) override;
|
||||
unsigned get_scope_level() const override;
|
||||
|
||||
|
||||
unsigned get_num_assumptions() const override { return m_assumptions.size(); }
|
||||
expr * get_assumption(unsigned idx) const override { return m_assumptions[idx]; }
|
||||
lbool get_consequences(expr_ref_vector const& asms, expr_ref_vector const& vars, expr_ref_vector& consequences) override;
|
||||
lbool find_mutexes(expr_ref_vector const& vars, vector<expr_ref_vector>& mutexes) override;
|
||||
protected:
|
||||
virtual lbool check_sat_core(unsigned num_assumptions, expr * const * assumptions) = 0;
|
||||
virtual lbool check_sat_cc_core(const expr_ref_vector &assumptions, const expr_ref_vector &clause) {NOT_IMPLEMENTED_YET();}
|
||||
virtual void push_core() = 0;
|
||||
virtual void pop_core(unsigned n) = 0;
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue