mirror of
https://github.com/Z3Prover/z3
synced 2025-04-12 12:08:18 +00:00
sketch of internal propagation
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
7207f0ff9c
commit
65e59e3ec4
|
@ -298,19 +298,21 @@ namespace nla {
|
||||||
|
|
||||||
u_dependency* monomial_bounds::explain_fixed(monic const& m, rational const& k) {
|
u_dependency* monomial_bounds::explain_fixed(monic const& m, rational const& k) {
|
||||||
u_dependency* dep = nullptr;
|
u_dependency* dep = nullptr;
|
||||||
for (auto j : m.vars()) {
|
auto update_dep = [&](unsigned j) {
|
||||||
if (k == 0) {
|
dep = c().lra.dep_manager().mk_join(dep, c().lra.get_column_lower_bound_witness(j));
|
||||||
if (c().var_is_fixed_to_zero(j)) {
|
dep = c().lra.dep_manager().mk_join(dep, c().lra.get_column_upper_bound_witness(j));
|
||||||
dep = c().lra.dep_manager().mk_join(dep, c().lra.get_column_lower_bound_witness(j));
|
return dep;
|
||||||
dep = c().lra.dep_manager().mk_join(dep, c().lra.get_column_upper_bound_witness(j));
|
};
|
||||||
return dep;
|
|
||||||
}
|
if (k == 0) {
|
||||||
continue;
|
for (auto j : m.vars())
|
||||||
}
|
if (c().var_is_fixed_to_zero(j))
|
||||||
if (c().var_is_fixed(j)) {
|
return update_dep(j);
|
||||||
dep = c().lra.dep_manager().mk_join(dep, c().lra.get_column_lower_bound_witness(j));
|
}
|
||||||
dep = c().lra.dep_manager().mk_join(dep, c().lra.get_column_upper_bound_witness(j));
|
else {
|
||||||
}
|
for (auto j : m.vars())
|
||||||
|
if (c().var_is_fixed(j))
|
||||||
|
update_dep(j);
|
||||||
}
|
}
|
||||||
return dep;
|
return dep;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue