mirror of
https://github.com/Z3Prover/z3
synced 2025-04-22 00:26:38 +00:00
update mk_project
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
57d3abbf64
commit
89d6f1c191
3 changed files with 4 additions and 43 deletions
|
@ -17,6 +17,7 @@ z3_add_component(polysat
|
|||
simplify.cpp
|
||||
op_constraint.cpp
|
||||
solver.cpp
|
||||
solve_explain.cpp
|
||||
ule_constraint.cpp
|
||||
viable.cpp
|
||||
variable_elimination.cpp
|
||||
|
|
|
@ -26,6 +26,7 @@ Notes:
|
|||
#include "math/polysat/log.h"
|
||||
#include "math/polysat/log_helper.h"
|
||||
#include "math/polysat/explain.h"
|
||||
#include "math/polysat/solve_explain.h"
|
||||
#include "math/polysat/forbidden_intervals.h"
|
||||
#include "math/polysat/saturation.h"
|
||||
#include "math/polysat/variable_elimination.h"
|
||||
|
@ -35,6 +36,7 @@ namespace polysat {
|
|||
|
||||
conflict::conflict(solver& s):s(s) {
|
||||
ex_engines.push_back(alloc(ex_polynomial_superposition, s));
|
||||
ex_engines.push_back(alloc(solve_explain, s));
|
||||
ve_engines.push_back(alloc(ve_reduction));
|
||||
inf_engines.push_back(alloc(inf_saturate, s));
|
||||
}
|
||||
|
|
|
@ -28,7 +28,7 @@ namespace polysat {
|
|||
public:
|
||||
explainer(solver& s) :s(s) {}
|
||||
virtual ~explainer() {}
|
||||
virtual bool try_explain(pvar v, /* vector<signed_constraint> const& cjust_v, */ conflict& core) = 0;
|
||||
virtual bool try_explain(pvar v, conflict& core) = 0;
|
||||
};
|
||||
|
||||
class ex_polynomial_superposition : public explainer {
|
||||
|
@ -43,46 +43,4 @@ namespace polysat {
|
|||
bool try_explain(pvar v, conflict& core) override;
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#if 0
|
||||
class conflict_explainer {
|
||||
solver& m_solver;
|
||||
|
||||
// conflict m_conflict;
|
||||
vector<constraint> m_new_assertions; // to be inserted into Gamma (conclusions from saturation)
|
||||
|
||||
scoped_ptr_vector<inference_engine> inference_engines;
|
||||
|
||||
bool push_omega_mul(clause_builder& clause, unsigned level, unsigned p, pdd const& x, pdd const& y);
|
||||
|
||||
// Gamma
|
||||
// search_state& search() { return m_solver.m_search; }
|
||||
// Core
|
||||
// conflict& conflict() { return m_solver.m_conflict; }
|
||||
public:
|
||||
/** Create empty conflict */
|
||||
conflict_explainer(solver& s);
|
||||
|
||||
/** Perform one step of core saturation, if possible.
|
||||
* Core saturation derives new constraints according applicable inference rules.
|
||||
*/
|
||||
bool saturate();
|
||||
|
||||
/** resolve conflict state against assignment to v */
|
||||
void resolve(pvar v, ptr_vector<constraint> const& cjust_v);
|
||||
void resolve(sat::literal lit);
|
||||
|
||||
// TODO: move conflict resolution from solver into this class.
|
||||
// we have a single public method as entry point to conflict resolution.
|
||||
// what do we need to return?
|
||||
|
||||
/** conflict resolution until first (relevant) decision */
|
||||
void resolve();
|
||||
};
|
||||
#endif
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue