mirror of
https://github.com/Z3Prover/z3
synced 2025-08-25 12:35:59 +00:00
Connect conflict2
This commit is contained in:
parent
a978604a7e
commit
b43971bb4a
9 changed files with 420 additions and 293 deletions
|
@ -22,7 +22,6 @@ Author:
|
|||
#include "util/params.h"
|
||||
#include "math/polysat/boolean.h"
|
||||
#include "math/polysat/conflict.h"
|
||||
#include "math/polysat/conflict2.h"
|
||||
#include "math/polysat/constraint.h"
|
||||
#include "math/polysat/clause_builder.h"
|
||||
#include "math/polysat/simplify_clause.h"
|
||||
|
@ -37,8 +36,6 @@ Author:
|
|||
#include "math/polysat/viable.h"
|
||||
#include "math/polysat/log.h"
|
||||
|
||||
|
||||
|
||||
namespace polysat {
|
||||
|
||||
struct config {
|
||||
|
@ -70,14 +67,12 @@ namespace polysat {
|
|||
friend class clause;
|
||||
friend class clause_builder;
|
||||
friend class conflict;
|
||||
friend class conflict2;
|
||||
friend class conflict_explainer;
|
||||
friend class simplify_clause;
|
||||
friend class simplify;
|
||||
friend class restart;
|
||||
friend class explainer;
|
||||
friend class inference_engine;
|
||||
friend class old_inference_logger;
|
||||
friend class file_inference_logger;
|
||||
friend class forbidden_intervals;
|
||||
friend class linear_solver;
|
||||
|
@ -94,7 +89,6 @@ namespace polysat {
|
|||
friend class scoped_solverv;
|
||||
friend class test_polysat;
|
||||
friend class test_fi;
|
||||
friend struct inference_resolve_with_assignment;
|
||||
friend struct inf_resolve_with_assignment;
|
||||
|
||||
reslimit& m_lim;
|
||||
|
@ -105,7 +99,6 @@ namespace polysat {
|
|||
viable_fallback m_viable_fallback; // fallback for viable, using bitblasting over univariate constraints
|
||||
linear_solver m_linear_solver;
|
||||
conflict m_conflict;
|
||||
conflict2 m_conflict2;
|
||||
simplify_clause m_simplify_clause;
|
||||
simplify m_simplify;
|
||||
restart m_restart;
|
||||
|
@ -192,9 +185,9 @@ namespace polysat {
|
|||
void erase_pwatch(pvar v, constraint* c);
|
||||
void erase_pwatch(constraint* c);
|
||||
|
||||
void set_conflict(signed_constraint c) { m_conflict.set(c); }
|
||||
void set_conflict(clause& cl) { m_conflict.set(cl); }
|
||||
void set_conflict(pvar v) { m_conflict.set(v); }
|
||||
void set_conflict(signed_constraint c) { m_conflict.init(c); }
|
||||
void set_conflict(clause& cl) { m_conflict.init(cl); }
|
||||
void set_conflict(pvar v, bool by_viable_fallback) { m_conflict.init(v, by_viable_fallback); }
|
||||
|
||||
bool can_decide() const { return !m_free_pvars.empty(); }
|
||||
void decide();
|
||||
|
@ -202,14 +195,12 @@ namespace polysat {
|
|||
|
||||
void linear_propagate();
|
||||
|
||||
|
||||
bool is_conflict() const { return !m_conflict.empty(); }
|
||||
bool at_base_level() const;
|
||||
unsigned base_level() const;
|
||||
|
||||
void resolve_conflict();
|
||||
void backtrack_fi();
|
||||
void backtrack_lemma();
|
||||
void backjump_lemma();
|
||||
void revert_decision(pvar v);
|
||||
void revert_bool_decision(sat::literal lit);
|
||||
|
||||
|
@ -461,7 +452,4 @@ namespace polysat {
|
|||
|
||||
inline std::ostream& operator<<(std::ostream& out, assignments_pp const& a) { return a.display(out); }
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue