mirror of
https://github.com/Z3Prover/z3
synced 2025-07-19 10:52:02 +00:00
include information whether rule is reachable in del_rule model converter for simpler model presentation #1241
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
2cab1cccc9
commit
2c97eb1393
3 changed files with 21 additions and 16 deletions
|
@ -277,16 +277,21 @@ namespace datalog {
|
|||
return get_max_var(has_var);
|
||||
}
|
||||
|
||||
void del_rule(horn_subsume_model_converter* mc, rule& r) {
|
||||
void del_rule(horn_subsume_model_converter* mc, rule& r, bool unreachable) {
|
||||
if (mc) {
|
||||
ast_manager& m = mc->get_manager();
|
||||
expr_ref_vector body(m);
|
||||
for (unsigned i = 0; i < r.get_tail_size(); ++i) {
|
||||
if (r.is_neg_tail(i)) {
|
||||
body.push_back(m.mk_not(r.get_tail(i)));
|
||||
}
|
||||
else {
|
||||
body.push_back(r.get_tail(i));
|
||||
if (unreachable) {
|
||||
body.push_back(m.mk_false());
|
||||
}
|
||||
else {
|
||||
for (unsigned i = 0; i < r.get_tail_size(); ++i) {
|
||||
if (r.is_neg_tail(i)) {
|
||||
body.push_back(m.mk_not(r.get_tail(i)));
|
||||
}
|
||||
else {
|
||||
body.push_back(r.get_tail(i));
|
||||
}
|
||||
}
|
||||
}
|
||||
TRACE("dl_dr",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue