3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-23 17:15:31 +00:00

Shared features from polysat branch (#6567)

* Allow setting default debug action

* Fix dlist and add iterator

* Add var_queue iterator

* Add some helpers

* rational: machine_div2k and pseudo_inverse

* Basic support for non-copyable types in map

* tbv helpers

* pdd updates

* Remove duplicate functions

gcc doesn't like having both versions
This commit is contained in:
Jakob Rath 2023-02-03 22:08:47 +01:00 committed by GitHub
parent be44ace995
commit d69155b9e9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 456 additions and 62 deletions

View file

@ -571,6 +571,38 @@ public:
}
}
static void subst_get() {
std::cout << "subst_get\n";
pdd_manager m(4, pdd_manager::mod2N_e, 32);
unsigned const va = 0;
unsigned const vb = 1;
unsigned const vc = 2;
unsigned const vd = 3;
rational val;
pdd s = m.one();
std::cout << s << "\n";
VERIFY(!s.subst_get(va, val));
VERIFY(!s.subst_get(vb, val));
VERIFY(!s.subst_get(vc, val));
VERIFY(!s.subst_get(vd, val));
s = s.subst_add(va, rational(5));
std::cout << s << "\n";
VERIFY(s.subst_get(va, val) && val == 5);
VERIFY(!s.subst_get(vb, val));
VERIFY(!s.subst_get(vc, val));
VERIFY(!s.subst_get(vd, val));
s = s.subst_add(vc, rational(7));
std::cout << s << "\n";
VERIFY(s.subst_get(va, val) && val == 5);
VERIFY(!s.subst_get(vb, val));
VERIFY(s.subst_get(vc, val) && val == 7);
VERIFY(!s.subst_get(vd, val));
}
static void univariate() {
std::cout << "univariate\n";
pdd_manager m(4, pdd_manager::mod2N_e, 4);
@ -671,6 +703,7 @@ void tst_pdd() {
dd::test::binary_resolve();
dd::test::pow();
dd::test::subst_val();
dd::test::subst_get();
dd::test::univariate();
dd::test::factors();
}