mirror of
https://github.com/Z3Prover/z3
synced 2025-04-22 16:45:31 +00:00
viable::test3
This commit is contained in:
parent
b7ee4b0d63
commit
5a03d13913
1 changed files with 29 additions and 11 deletions
|
@ -144,19 +144,37 @@ namespace polysat {
|
|||
|
||||
rational const two_to_60 = rational::power_of_two(60);
|
||||
|
||||
s.add_ule(5000, x);
|
||||
VERIFY_EQ(s.check_sat(), l_true);
|
||||
rational lo, hi;
|
||||
std::cout << "find_viable: " << v.find_viable2_new(xv, lo, hi) << "\n";
|
||||
std::cout << " lo: " << lo << "\n";
|
||||
std::cout << " hi: " << hi << "\n";
|
||||
params_ref p;
|
||||
p.set_uint("max_decisions", 1);
|
||||
s.updt_polysat_params(p);
|
||||
|
||||
// 10 < x[3:0]
|
||||
// x >= 5000
|
||||
s.add_ule(5000, x);
|
||||
VERIFY_EQ(s.check_sat(), l_undef);
|
||||
rational lo, hi;
|
||||
VERIFY_EQ(v.find_viable2_new(xv, lo, hi), l_true);
|
||||
std::cout << "lo: " << lo << "\n";
|
||||
std::cout << "hi: " << hi << "\n";
|
||||
|
||||
p.set_uint("max_decisions", 2);
|
||||
s.updt_polysat_params(p);
|
||||
|
||||
// x[3:0] >= 10
|
||||
s.add_ule(10 * two_to_60, x * two_to_60);
|
||||
VERIFY_EQ(s.check_sat(), l_true);
|
||||
std::cout << "find_viable: " << v.find_viable2_new(xv, lo, hi) << "\n";
|
||||
std::cout << " lo: " << lo << "\n";
|
||||
std::cout << " hi: " << hi << "\n";
|
||||
VERIFY_EQ(s.check_sat(), l_undef);
|
||||
VERIFY_EQ(v.find_viable2_new(xv, lo, hi), l_true);
|
||||
std::cout << "lo: " << lo << "\n";
|
||||
std::cout << "hi: " << hi << "\n";
|
||||
|
||||
p.set_uint("max_decisions", 3);
|
||||
s.updt_polysat_params(p);
|
||||
|
||||
// x[3:0] <= 5
|
||||
s.add_ule(x * two_to_60, 5 * two_to_60);
|
||||
VERIFY_EQ(s.check_sat(), l_undef);
|
||||
VERIFY_EQ(v.find_viable2_new(xv, lo, hi), l_false);
|
||||
std::cout << "lo: " << lo << "\n";
|
||||
std::cout << "hi: " << hi << "\n";
|
||||
}
|
||||
|
||||
static void test_univariate() {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue