mirror of
https://github.com/Z3Prover/z3
synced 2025-04-23 17:15:31 +00:00
update to use incremental substitution
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
6f689c3c1f
commit
cbbf1381f7
19 changed files with 167 additions and 89 deletions
|
@ -309,10 +309,10 @@ public :
|
|||
sub1.push_back(std::make_pair(va, rational(1)));
|
||||
sub2.push_back(std::make_pair(va, rational(2)));
|
||||
sub3.push_back(std::make_pair(va, rational(3)));
|
||||
std::cout << "sub 0 " << p.subst_val(sub0) << "\n";
|
||||
std::cout << "sub 1 " << p.subst_val(sub1) << "\n";
|
||||
std::cout << "sub 2 " << p.subst_val(sub2) << "\n";
|
||||
std::cout << "sub 3 " << p.subst_val(sub3) << "\n";
|
||||
std::cout << "sub 0 " << p.subst_val0(sub0) << "\n";
|
||||
std::cout << "sub 1 " << p.subst_val0(sub1) << "\n";
|
||||
std::cout << "sub 2 " << p.subst_val0(sub2) << "\n";
|
||||
std::cout << "sub 3 " << p.subst_val0(sub3) << "\n";
|
||||
|
||||
std::cout << "expect 1 " << (2*a + 1).is_never_zero() << "\n";
|
||||
std::cout << "expect 1 " << (2*a*b + 2*b + 1).is_never_zero() << "\n";
|
||||
|
@ -538,7 +538,7 @@ public :
|
|||
pdd const p = 2*a + b + 1;
|
||||
SASSERT(p.subst_val(va, rational(0)) == b + 1);
|
||||
}
|
||||
|
||||
|
||||
{
|
||||
pdd const p = a + 2*b;
|
||||
SASSERT(p.subst_val(va, rational(0)) == 2*b);
|
||||
|
@ -555,7 +555,7 @@ public :
|
|||
vector<std::pair<unsigned, rational>> sub;
|
||||
sub.push_back({vb, rational(2)});
|
||||
sub.push_back({vc, rational(3)});
|
||||
SASSERT(p.subst_val(sub) == a + d + 1);
|
||||
SASSERT(p.subst_val0(sub) == a + d + 1);
|
||||
}
|
||||
|
||||
{
|
||||
|
@ -563,10 +563,10 @@ public :
|
|||
vector<std::pair<unsigned, rational>> sub;
|
||||
sub.push_back({vb, rational(2)});
|
||||
sub.push_back({vc, rational(3)});
|
||||
SASSERT(p.subst_val(sub) == (a + 2) * (d + 3));
|
||||
SASSERT(p.subst_val0(sub) == (a + 2) * (d + 3));
|
||||
sub.push_back({va, rational(3)});
|
||||
sub.push_back({vd, rational(2)});
|
||||
SASSERT(p.subst_val(sub) == m.one());
|
||||
SASSERT(p.subst_val0(sub) == m.one());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -85,8 +85,8 @@ namespace polysat {
|
|||
LOG(m_name << ": " << m_last_result << "\n");
|
||||
statistics st;
|
||||
collect_statistics(st);
|
||||
// LOG(st << "\n" << *this << "\n");
|
||||
std::cout << st << "\n" << *this << "\n";
|
||||
LOG(st << "\n" << *this << "\n");
|
||||
std::cout << st << "\n";
|
||||
}
|
||||
|
||||
void expect_unsat() {
|
||||
|
@ -1321,17 +1321,16 @@ public:
|
|||
void tst_polysat() {
|
||||
using namespace polysat;
|
||||
|
||||
test_fi::exhaustive();
|
||||
test_fi::randomized();
|
||||
return;
|
||||
test_polysat::test_l2();
|
||||
|
||||
#if 0
|
||||
// looks like a fishy conflict lemma?
|
||||
test_polysat::test_monot_bounds();
|
||||
return;
|
||||
return;
|
||||
|
||||
test_polysat::test_quot_rem_incomplete();
|
||||
test_polysat::test_quot_rem_fixed();
|
||||
return;
|
||||
//return;
|
||||
|
||||
test_polysat::test_band();
|
||||
return;
|
||||
|
@ -1347,6 +1346,8 @@ void tst_polysat() {
|
|||
test_polysat::test_ineq_axiom6();
|
||||
return;
|
||||
|
||||
#endif
|
||||
|
||||
test_polysat::test_ineq_basic4();
|
||||
//return;
|
||||
|
||||
|
@ -1390,6 +1391,11 @@ void tst_polysat() {
|
|||
test_polysat::test_ineq_axiom4();
|
||||
test_polysat::test_ineq_axiom5();
|
||||
test_polysat::test_ineq_axiom6();
|
||||
|
||||
test_fi::exhaustive();
|
||||
test_fi::randomized();
|
||||
return;
|
||||
|
||||
#if 0
|
||||
test_polysat::test_ineq_non_axiom4(32, 5);
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue