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

test and bugfix

This commit is contained in:
Jakob Rath 2023-06-15 16:02:25 +02:00
parent 40f794c5b4
commit 8ce85da881
3 changed files with 81 additions and 10 deletions

View file

@ -16,11 +16,47 @@ namespace polysat {
class test_slicing {
public:
// x[7:3] = a
// y[5:0] = b
// x = y
static void test1() {
std::cout << __func__ << "\n";
scoped_solver_slicing s;
slicing& sl = s.sl();
pvar x = s.add_var(8);
pvar y = s.add_var(8);
pvar a = s.add_var(5);
pvar b = s.add_var(6);
std::cout << sl << "\n";
slicing::slice_vector x_7_3;
sl.mk_slice(sl.var2slice(x), 7, 3, x_7_3);
std::cout << sl << "\n";
slicing::slice_vector a_4_0;
sl.mk_slice(sl.var2slice(a), 4, 0, a_4_0);
std::cout << sl << "\n";
sl.merge(x_7_3, a_4_0);
std::cout << sl << "\n";
slicing::slice_vector y_5_0;
sl.mk_slice(sl.var2slice(y), 5, 0, y_5_0);
sl.merge(y_5_0, sl.var2slice(b));
std::cout << sl << "\n";
slicing::slice_vector x_base;
sl.find_base(sl.var2slice(x), x_base);
std::cout << "v" << x << "_base: " << x_base << "\n";
slicing::slice_vector y_base;
sl.find_base(sl.var2slice(y), y_base);
std::cout << "v" << y << "_base: " << y_base << "\n";
sl.merge(x_base, y_base);
std::cout << sl << "\n";
}
// x[7:3] = a
// x = y
// y[5:0] = b
static void test2() {
}
};