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

Don't track arbitrary hi/lo reference points and just store the slice width

This commit is contained in:
Jakob Rath 2023-06-15 16:55:26 +02:00
parent 8ce85da881
commit 2a3006cce3
3 changed files with 86 additions and 121 deletions

View file

@ -29,26 +29,24 @@ namespace polysat {
pvar b = s.add_var(6);
std::cout << sl << "\n";
slicing::slice_vector x_7_3;
slicing::slice_idx_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;
slicing::slice_idx_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;
slicing::slice_idx_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;
slicing::slice_idx_vector x_base;
sl.find_base(sl.var2slice(x), x_base);
std::cout << "v" << x << "_base: " << x_base << "\n";
slicing::slice_vector y_base;
slicing::slice_idx_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";
}