mirror of
https://github.com/Z3Prover/z3
synced 2026-02-28 10:51:28 +00:00
Polysat: conflict resolution wip (#5529)
* conflict_core doesn't need gc() anymore * update comments, ensure_bvar for new constraints * Make sure constraints can only be created through constraint_manager * fix constraint::display if no boolean variable is assigned * Move clause into separate file * Add conflict_core binary resolution * conflict_core additions * reactivate conflict resolution outer loop * wip * seems commented includes break CI build
This commit is contained in:
parent
8b374c3745
commit
dc547510db
16 changed files with 423 additions and 335 deletions
|
|
@ -53,6 +53,7 @@ namespace polysat {
|
|||
friend class ule_constraint;
|
||||
friend class clause;
|
||||
friend class clause_builder;
|
||||
friend class conflict_core;
|
||||
friend class conflict_explainer;
|
||||
friend class forbidden_intervals;
|
||||
friend class linear_solver;
|
||||
|
|
@ -191,8 +192,6 @@ namespace polysat {
|
|||
|
||||
unsigned m_conflict_level { 0 };
|
||||
|
||||
clause_ref resolve_bool(sat::literal lit);
|
||||
|
||||
bool can_decide() const { return !m_free_vars.empty(); }
|
||||
void decide();
|
||||
void decide(pvar v);
|
||||
|
|
@ -211,10 +210,13 @@ namespace polysat {
|
|||
unsigned base_level() const;
|
||||
|
||||
void resolve_conflict();
|
||||
void backtrack(unsigned i, clause_ref lemma);
|
||||
bool resolve_value(pvar v);
|
||||
void resolve_bool(sat::literal lit);
|
||||
void resolve_bailout(unsigned i);
|
||||
void revert_decision(pvar v);
|
||||
void revert_bool_decision(sat::literal lit);
|
||||
|
||||
void report_unsat();
|
||||
void revert_decision(pvar v, clause_ref reason);
|
||||
void revert_bool_decision(sat::literal lit, clause_ref reason);
|
||||
void learn_lemma(pvar v, clause_ref lemma);
|
||||
void backjump(unsigned new_level);
|
||||
void add_lemma(clause_ref lemma);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue