ltl2aa: finalize UConcat
This commit is contained in:
parent
e4f00229d7
commit
2e2a3b4544
3 changed files with 14 additions and 6 deletions
|
|
@ -38,7 +38,8 @@ namespace spot
|
||||||
aut_->get_dict()->unregister_all_my_variables(this);
|
aut_->get_dict()->unregister_all_my_variables(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
bdd outedge_combiner::operator()(unsigned st, const std::vector<unsigned>& dst_filter)
|
bdd outedge_combiner::operator()(unsigned st, const std::vector<unsigned>& dst_filter,
|
||||||
|
bool remove_original_edges)
|
||||||
{
|
{
|
||||||
const auto& dict = aut_->get_dict();
|
const auto& dict = aut_->get_dict();
|
||||||
bdd res = bddtrue;
|
bdd res = bddtrue;
|
||||||
|
|
@ -79,6 +80,9 @@ namespace spot
|
||||||
out &= bdd_ithvar(p.first->second);
|
out &= bdd_ithvar(p.first->second);
|
||||||
}
|
}
|
||||||
res2 |= e.cond & out;
|
res2 |= e.cond & out;
|
||||||
|
|
||||||
|
if (remove_original_edges)
|
||||||
|
e.cond = bddfalse;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (res2 != bddfalse)
|
if (res2 != bddfalse)
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,8 @@ namespace spot
|
||||||
public:
|
public:
|
||||||
outedge_combiner(const twa_graph_ptr& aut, unsigned sink = -1u);
|
outedge_combiner(const twa_graph_ptr& aut, unsigned sink = -1u);
|
||||||
~outedge_combiner();
|
~outedge_combiner();
|
||||||
bdd operator()(unsigned st, const std::vector<unsigned>& dst_filter = std::vector<unsigned>());
|
bdd operator()(unsigned st, const std::vector<unsigned>& dst_filter = std::vector<unsigned>(),
|
||||||
|
bool remove_original_edges = false);
|
||||||
void new_dests(unsigned st, bdd out) const;
|
void new_dests(unsigned st, bdd out) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -355,15 +355,18 @@ namespace spot
|
||||||
unsigned new_st = it->second;
|
unsigned new_st = it->second;
|
||||||
|
|
||||||
bdd comb = bddtrue;
|
bdd comb = bddtrue;
|
||||||
comb &= oe_(new_st, acc_states);
|
comb &= oe_(new_st, acc_states, true);
|
||||||
comb &= oe_(rhs_init);
|
if (comb != bddtrue)
|
||||||
oe_.new_dests(new_st, comb);
|
{
|
||||||
|
comb &= oe_(rhs_init);
|
||||||
|
oe_.new_dests(new_st, comb);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
auto it = old_to_new.find(sere_aut->get_init_state_number());
|
auto it = old_to_new.find(sere_aut->get_init_state_number());
|
||||||
assert(it != old_to_new.end());
|
assert(it != old_to_new.end());
|
||||||
|
|
||||||
//aut_->merge_edges();
|
aut_->merge_edges();
|
||||||
return it->second;
|
return it->second;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue