mirror of
https://github.com/Z3Prover/z3
synced 2025-08-25 04:26:00 +00:00
Add separate state for deciding on lemmas
This commit is contained in:
parent
aea3545fcc
commit
0a48846add
2 changed files with 43 additions and 16 deletions
|
@ -105,8 +105,9 @@ namespace polysat {
|
|||
vector<signed_constraints> m_pwatch; // watch list datastructure into constraints.
|
||||
#ifndef NDEBUG
|
||||
std::optional<pvar> m_locked_wlist; // restrict watch list modification while it is being propagated
|
||||
#endif
|
||||
bool m_propagating = false; // set to true during propagation
|
||||
#endif
|
||||
ptr_vector<clause> m_lemmas;
|
||||
|
||||
unsigned_vector m_activity;
|
||||
vector<pdd> m_vars;
|
||||
|
@ -155,15 +156,18 @@ namespace polysat {
|
|||
void assign_eval(sat::literal lit);
|
||||
void activate_constraint(signed_constraint c);
|
||||
void deactivate_constraint(signed_constraint c);
|
||||
void decide_bool(clause& lemma);
|
||||
void decide_bool(sat::literal lit, clause* lemma);
|
||||
unsigned level(sat::literal lit, clause const& cl);
|
||||
|
||||
bool can_decide_on_lemma();
|
||||
void decide_on_lemma();
|
||||
void decide_on_lemma(clause& lemma);
|
||||
void enqueue_decision_on_lemma(clause& lemma);
|
||||
void drop_enqueued_lemma();
|
||||
|
||||
void assign_core(pvar v, rational const& val, justification const& j);
|
||||
bool is_assigned(pvar v) const { return !m_justification[v].is_unassigned(); }
|
||||
bool is_decision(search_item const& item) const;
|
||||
|
||||
|
||||
bool should_search();
|
||||
|
||||
void propagate(sat::literal lit);
|
||||
|
@ -369,7 +373,7 @@ namespace polysat {
|
|||
|
||||
void updt_params(params_ref const& p);
|
||||
|
||||
};
|
||||
}; // class solver
|
||||
|
||||
class assignments_pp {
|
||||
solver const& s;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue