3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-27 19:05:51 +00:00
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2021-08-14 22:33:41 -07:00
parent 1e3c3dc48f
commit 204b417396
3 changed files with 10 additions and 6 deletions

View file

@ -246,10 +246,8 @@ namespace polysat {
unsigned get_num_vars() const { return m_vars.size(); }
void reset();
svector<std::pair<unsigned, unsigned>> stack;
uint_set on_stack;
lbool propagate_ineqs(unsigned idx);
void propagate_eqs();
// void propagate_eqs();
vector<var_eq> const& var_eqs() const { return m_var_eqs; }
void add_row(var_t base, unsigned num_vars, var_t const* vars, numeral const* coeffs);
@ -258,6 +256,10 @@ namespace polysat {
private:
svector<std::pair<unsigned, unsigned>> stack;
uint_set on_stack;
lbool propagate_ineqs(unsigned idx);
std::ostream& display_row(std::ostream& out, row const& r, bool values = true) const;
var_t get_base_var(row const& r) const { return m_rows[r.id()].m_base; }

View file

@ -1054,11 +1054,13 @@ namespace polysat {
*
*/
#if 0
template<typename Ext>
void fixplex<Ext>::propagate_eqs() {
for (unsigned i = 0; i < m_rows.size(); ++i)
get_offset_eqs(row(i));
}
#endif
template<typename Ext>
@ -1105,7 +1107,7 @@ namespace polysat {
numeral cz, cu;
for (auto c : M.col_entries(x)) {
auto r2 = c.get_row();
if (r1.id() >= r2.id())
if (r1.id() == r2.id())
continue;
if (!is_offset_row(r2, cz, z, cu, u))
continue;

View file

@ -114,7 +114,7 @@ namespace polysat {
fp.add_row(z, 3, ys2, coeffs2);
fp.set_bounds(u, 1, 2, 1);
fp.run();
fp.propagate_eqs();
// fp.propagate_eqs();
for (auto e : fp.var_eqs())
std::cout << e.x << " == " << e.y << "\n";