mirror of
https://github.com/Z3Prover/z3
synced 2025-10-07 08:21:56 +00:00
working on adding basic cores to efficient SAT solver
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
96dc933c99
commit
e98acf4ece
8 changed files with 203 additions and 30 deletions
|
@ -118,6 +118,9 @@ namespace sat {
|
|||
stopwatch m_stopwatch;
|
||||
params_ref m_params;
|
||||
scoped_ptr<solver> m_clone; // for debugging purposes
|
||||
literal_vector m_assumptions;
|
||||
literal_set m_assumption_set;
|
||||
literal_vector m_core;
|
||||
|
||||
void del_clauses(clause * const * begin, clause * const * end);
|
||||
|
||||
|
@ -250,8 +253,9 @@ namespace sat {
|
|||
//
|
||||
// -----------------------
|
||||
public:
|
||||
lbool check();
|
||||
lbool check(unsigned num_lits = 0, literal const* lits = 0);
|
||||
model const & get_model() const { return m_model; }
|
||||
literal_vector const& get_core() const { return m_core; }
|
||||
model_converter const & get_model_converter() const { return m_mc; }
|
||||
|
||||
protected:
|
||||
|
@ -267,6 +271,11 @@ namespace sat {
|
|||
bool_var next_var();
|
||||
lbool bounded_search();
|
||||
void init_search();
|
||||
void init_assumptions(unsigned num_lits, literal const* lits);
|
||||
void reinit_assumptions();
|
||||
bool tracking_assumptions() const;
|
||||
bool is_assumption(literal l) const;
|
||||
void mk_unsat_core();
|
||||
void simplify_problem();
|
||||
void mk_model();
|
||||
bool check_model(model const & m) const;
|
||||
|
@ -311,9 +320,9 @@ namespace sat {
|
|||
literal_vector m_lemma;
|
||||
literal_vector m_ext_antecedents;
|
||||
bool resolve_conflict();
|
||||
bool resolve_conflict_core();
|
||||
bool resolve_conflict_core(bool generate_core);
|
||||
unsigned get_max_lvl(literal consequent, justification js);
|
||||
void process_antecedent(literal antecedent, unsigned & num_marks);
|
||||
void process_antecedent(bool generate_coe, literal antecedent, unsigned & num_marks);
|
||||
void fill_ext_antecedents(literal consequent, justification js);
|
||||
unsigned skip_literals_above_conflict_level();
|
||||
void forget_phase_of_vars(unsigned from_lvl);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue