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);
|
||||
}
|
||||
|
||||
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();
|
||||
bdd res = bddtrue;
|
||||
|
|
@ -79,6 +80,9 @@ namespace spot
|
|||
out &= bdd_ithvar(p.first->second);
|
||||
}
|
||||
res2 |= e.cond & out;
|
||||
|
||||
if (remove_original_edges)
|
||||
e.cond = bddfalse;
|
||||
}
|
||||
|
||||
if (res2 != bddfalse)
|
||||
|
|
|
|||
|
|
@ -53,7 +53,8 @@ namespace spot
|
|||
public:
|
||||
outedge_combiner(const twa_graph_ptr& aut, unsigned sink = -1u);
|
||||
~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;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -355,15 +355,18 @@ namespace spot
|
|||
unsigned new_st = it->second;
|
||||
|
||||
bdd comb = bddtrue;
|
||||
comb &= oe_(new_st, acc_states);
|
||||
comb &= oe_(rhs_init);
|
||||
oe_.new_dests(new_st, comb);
|
||||
comb &= oe_(new_st, acc_states, true);
|
||||
if (comb != bddtrue)
|
||||
{
|
||||
comb &= oe_(rhs_init);
|
||||
oe_.new_dests(new_st, comb);
|
||||
}
|
||||
}
|
||||
|
||||
auto it = old_to_new.find(sere_aut->get_init_state_number());
|
||||
assert(it != old_to_new.end());
|
||||
|
||||
//aut_->merge_edges();
|
||||
aut_->merge_edges();
|
||||
return it->second;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue