tgba: move boolean properties from tgba_digraph to tgba
* src/tgba/tgbagraph.hh: Remove the set_bprop/get_bprop interface. * src/tgba/tgba.cc, src/tgba/tgba.hh: Add a new interface for setting/querying/copying the following properties: single_acc_set, state_based_acc, inherently_weak, deterministic. * src/dstarparse/dra2ba.cc, src/dstarparse/nra2nba.cc, src/neverparse/neverclaimparse.yy, src/saba/sabacomplementtgba.cc, src/tgba/tgbagraph.cc, src/tgbaalgos/degen.cc, src/tgbaalgos/dotty.cc, src/tgbaalgos/isdet.cc, src/tgbaalgos/lbtt.cc, src/tgbaalgos/minimize.cc, src/tgbaalgos/neverclaim.cc, src/tgbaalgos/postproc.cc, src/tgbaalgos/sccfilter.cc, src/tgbaalgos/simulation.cc, src/tgbatest/degenlskip.test, src/tgbatest/ltl2tgba.cc: Adjust to the new interface, or use it to bypass some useless work.
This commit is contained in:
parent
e3b5119f25
commit
b43f75e917
19 changed files with 160 additions and 87 deletions
|
|
@ -526,15 +526,6 @@ namespace spot
|
|||
}
|
||||
}
|
||||
|
||||
bool result_is_deterministic() const
|
||||
{
|
||||
assert(stat.states != 0);
|
||||
|
||||
return res_is_deterministic;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Build the minimal resulting automaton.
|
||||
tgba_digraph_ptr build_result()
|
||||
{
|
||||
|
|
@ -550,7 +541,7 @@ namespace spot
|
|||
res->copy_ap_of(a_);
|
||||
res->set_acceptance_conditions(all_acceptance_conditions_);
|
||||
if (Sba)
|
||||
res->set_bprop(tgba_digraph::StateBasedAcc);
|
||||
res->prop_state_based_acc();
|
||||
|
||||
bdd sup_all_acc = bdd_support(all_acceptance_conditions_);
|
||||
// Non atomic propositions variables (= acc and class)
|
||||
|
|
@ -691,7 +682,15 @@ namespace spot
|
|||
}
|
||||
|
||||
delete gb;
|
||||
res_is_deterministic = nb_minato == nb_satoneset;
|
||||
res->prop_copy(original_,
|
||||
false, // state-based acc forced below
|
||||
false, // single acc is set by set_acceptance_conditions
|
||||
true, // weakness preserved,
|
||||
false); // determinism checked and set below
|
||||
if (nb_minato == nb_satoneset)
|
||||
res->prop_deterministic();
|
||||
if (Sba)
|
||||
res->prop_state_based_acc();
|
||||
|
||||
return res;
|
||||
}
|
||||
|
|
@ -779,8 +778,6 @@ namespace spot
|
|||
const_tgba_ptr original_;
|
||||
|
||||
bdd all_acceptance_conditions_;
|
||||
|
||||
bool res_is_deterministic;
|
||||
};
|
||||
|
||||
// For now, we don't try to handle cosimulation.
|
||||
|
|
@ -1267,7 +1264,6 @@ namespace spot
|
|||
{
|
||||
min = tmp;
|
||||
min_size_ = cur_size;
|
||||
res_is_deterministic = dir_sim.result_is_deterministic();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1342,7 +1338,7 @@ namespace spot
|
|||
prev = next;
|
||||
direct_simulation<false, Sba> simul(res ? res : t);
|
||||
res = simul.run();
|
||||
if (simul.result_is_deterministic())
|
||||
if (res->is_deterministic())
|
||||
break;
|
||||
|
||||
direct_simulation<true, Sba> cosimul(res);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue