3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-29 20:05:51 +00:00

add ddnf tests, add facility to solve QF_NRA + QF_UF(and other theories) in joint solver to allow broader use of QF_NRA core

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2015-05-09 19:40:34 -07:00
parent 9377779e58
commit 839e3fbb7c
20 changed files with 1158 additions and 8 deletions

View file

@ -99,6 +99,20 @@ tbv* tbv_manager::allocate(tbv const& bv, unsigned const* permutation) {
}
return r;
}
tbv* tbv_manager::allocate(char const* bv) {
tbv* result = allocateX();
unsigned i = 0, sz = num_tbits();
while(*bv && i < sz) {
if (*bv == '0') set(*result, i++, tbit::BIT_0);
else if (*bv == '1') set(*result, i++, tbit::BIT_1);
else if (*bv == '*') i++;
else if (i == 0 && (*bv == ' ' || *bv == '\t')) ;
else break;
++bv;
}
return result;
}
tbv* tbv_manager::project(bit_vector const& to_delete, tbv const& src) {
tbv* r = allocate();
unsigned i, j;

View file

@ -55,6 +55,7 @@ public:
tbv* allocate(rational const& r);
tbv* allocate(uint64 n, unsigned hi, unsigned lo);
tbv* allocate(tbv const& bv, unsigned const* permutation);
tbv* allocate(char const* bv);
void deallocate(tbv* bv);