ltl2aa: share dict between sere and final aut
This commit is contained in:
parent
7e13cb18e8
commit
aba8c9d4fc
3 changed files with 18 additions and 8 deletions
|
|
@ -203,9 +203,9 @@ namespace spot
|
|||
}
|
||||
|
||||
twa_graph_ptr
|
||||
derive_finite_automaton_with_first(formula f, bool deterministic)
|
||||
derive_finite_automaton_with_first(formula f, bdd_dict_ptr bdd_dict,
|
||||
bool deterministic)
|
||||
{
|
||||
auto bdd_dict = make_bdd_dict();
|
||||
auto aut = make_twa_graph(bdd_dict);
|
||||
|
||||
aut->prop_state_acc(true);
|
||||
|
|
@ -403,9 +403,11 @@ namespace spot
|
|||
}
|
||||
|
||||
twa_graph_ptr
|
||||
derive_automaton_with_first(formula f, bool deterministic)
|
||||
derive_automaton_with_first(formula f, bdd_dict_ptr bdd_dict,
|
||||
bool deterministic)
|
||||
{
|
||||
auto finite = derive_finite_automaton_with_first(f, deterministic);
|
||||
auto finite = derive_finite_automaton_with_first(f, bdd_dict,
|
||||
deterministic);
|
||||
|
||||
return from_finite(finite);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,13 +39,15 @@ namespace spot
|
|||
derive_automaton(formula f, bool deterministic = true);
|
||||
|
||||
SPOT_API twa_graph_ptr
|
||||
derive_automaton_with_first(formula f, bool deterministic = true);
|
||||
derive_automaton_with_first(formula f, bdd_dict_ptr bdd_dict,
|
||||
bool deterministic = true);
|
||||
|
||||
SPOT_API twa_graph_ptr
|
||||
derive_finite_automaton(formula f, bool deterministic = true);
|
||||
|
||||
SPOT_API twa_graph_ptr
|
||||
derive_finite_automaton_with_first(formula f, bool deterministic = true);
|
||||
derive_finite_automaton_with_first(formula f, bdd_dict_ptr bdd_dict,
|
||||
bool deterministic = true);
|
||||
|
||||
SPOT_API formula
|
||||
rewrite_and_nlm(formula f);
|
||||
|
|
|
|||
|
|
@ -39,6 +39,11 @@ namespace spot
|
|||
{
|
||||
}
|
||||
|
||||
~ltl_to_aa_builder()
|
||||
{
|
||||
aut_->get_dict()->unregister_all_my_variables(this);
|
||||
}
|
||||
|
||||
twa_graph_ptr aut_;
|
||||
unsigned accepting_sink_;
|
||||
internal::univ_dest_mapper<twa_graph::graph_t> uniq_;
|
||||
|
|
@ -241,9 +246,9 @@ namespace spot
|
|||
{
|
||||
// FIXME: combine out edges with rhs !
|
||||
//unsigned rhs_init = recurse(f[1]);
|
||||
twa_graph_ptr sere_aut = derive_finite_automaton_with_first(f[0]);
|
||||
const auto& dict = aut_->get_dict();
|
||||
twa_graph_ptr sere_aut = derive_finite_automaton_with_first(f[0], dict);
|
||||
|
||||
const auto& dict = sere_aut->get_dict();
|
||||
|
||||
std::map<unsigned, unsigned> old_to_new;
|
||||
std::map<unsigned, int> state_to_var;
|
||||
|
|
@ -271,6 +276,7 @@ namespace spot
|
|||
return p.first->second;
|
||||
};
|
||||
|
||||
aut_->copy_ap_of(sere_aut);
|
||||
unsigned ns = sere_aut->num_states();
|
||||
for (unsigned st = 0; st < ns; ++st)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue