* iface/gspn/eesrg.cc, iface/gspn/eesrg.hh, iface/gspn/gspn.cc,
iface/gspn/gspn.hh, src/tgba/bdddict.cc, src/tgba/bdddict.hh, src/tgba/bddprint.hh, src/tgba/succiter.hh, src/tgba/succiterconcrete.cc, src/tgba/succiterconcrete.hh, src/tgba/tgba.hh, src/tgba/tgbabddconcrete.cc, src/tgba/tgbabddconcrete.hh, src/tgba/tgbabddconcretefactory.cc, src/tgba/tgbabddconcretefactory.hh, src/tgba/tgbabddcoredata.cc, src/tgba/tgbabddcoredata.hh, src/tgba/tgbaexplicit.cc, src/tgba/tgbaexplicit.hh, src/tgba/tgbaproduct.cc, src/tgba/tgbaproduct.hh, src/tgba/tgbatba.cc, src/tgba/tgbatba.hh, src/tgbaalgos/dotty.cc, src/tgbaalgos/dupexp.cc, src/tgbaalgos/emptinesscheck.cc, src/tgbaalgos/emptinesscheck.hh, src/tgbaalgos/lbtt.cc, src/tgbaalgos/lbtt.hh, src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/ltl2tgba_lacim.cc, src/tgbaalgos/save.cc, src/tgbatest/explicit.cc, src/tgbatest/ltl2tgba.cc, src/tgbaparse/tgbaparse.yy, wrap/python/tests/ltl2tgba.py: Rewrite `accepting condition' as `acceptance condition'. The symbols which have been renamed are: tgba::all_accepting_conditions tgba::neg_accepting_conditions succ_iterator::current_accepting_conditions bdd_dict::register_accepting_variable bdd_dict::register_accepting_variables bdd_dict::is_registered_accepting_variable tgba_bdd_concrete_factory::declare_accepting_condition tgba_bdd_core_data::accepting_conditions tgba_bdd_core_data::all_accepting_conditions tgba_explicit::declare_accepting_condition tgba_explicit::complement_all_accepting_conditions tgba_explicit::has_accepting_condition tgba_explicit::get_accepting_condition tgba_explicit::add_accepting_condition tgba_explicit::all_accepting_conditions tgba_explicit::neg_accepting_conditions state_tba_proxy::acceptance_cond accepting_cond_splitter
This commit is contained in:
parent
334ae6e757
commit
e341cc9ab6
37 changed files with 312 additions and 272 deletions
|
|
@ -63,7 +63,7 @@ namespace spot
|
|||
bdd_print_formula(os_, automata_->get_dict(),
|
||||
si->current_condition()) << "\\n";
|
||||
bdd_print_accset(os_, automata_->get_dict(),
|
||||
si->current_accepting_conditions()) << "\"]"
|
||||
si->current_acceptance_conditions()) << "\"]"
|
||||
<< std::endl;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -84,7 +84,7 @@ namespace spot {
|
|||
tgba_explicit::transition* t =
|
||||
out_->create_transition(name_[in], name_[out]);
|
||||
out_->add_conditions(t, si->current_condition());
|
||||
out_->add_accepting_conditions(t, si->current_accepting_conditions());
|
||||
out_->add_acceptance_conditions(t, si->current_acceptance_conditions());
|
||||
}
|
||||
|
||||
private:
|
||||
|
|
|
|||
|
|
@ -181,7 +181,7 @@ namespace spot
|
|||
// (destination state, acceptance conditions of the arc)
|
||||
// we are interested in...
|
||||
const state* dest = succ->current_state();
|
||||
bdd acc = succ->current_accepting_conditions();
|
||||
bdd acc = succ->current_acceptance_conditions();
|
||||
// ... and point the iterator to the next successor, for
|
||||
// the next iteration.
|
||||
succ->next();
|
||||
|
|
@ -242,7 +242,7 @@ namespace spot
|
|||
// Accumulate all acceptance conditions into the merged SCC.
|
||||
root.top().condition |= acc;
|
||||
|
||||
if (root.top().condition == aut_->all_accepting_conditions())
|
||||
if (root.top().condition == aut_->all_acceptance_conditions())
|
||||
{
|
||||
// We have found an accepting SCC.
|
||||
// Release all iterators in TODO.
|
||||
|
|
@ -559,7 +559,7 @@ namespace spot
|
|||
}
|
||||
|
||||
dest = h_filt(dest);
|
||||
bdd acc = iter->current_accepting_conditions() | todo.top().acc;
|
||||
bdd acc = iter->current_acceptance_conditions() | todo.top().acc;
|
||||
path.push_back(state_proposition(dest, iter->current_condition()));
|
||||
|
||||
// Advance iterator for next step.
|
||||
|
|
@ -604,7 +604,7 @@ namespace spot
|
|||
// acceptance conditions of acc_restrict.
|
||||
//
|
||||
// FIXME: It would be better to count the number
|
||||
// of accepting conditions.
|
||||
// of acceptance conditions.
|
||||
if (bddtrue != (best_acc_restrict >> acc_restrict))
|
||||
continue;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -80,7 +80,7 @@ namespace spot
|
|||
connected_component(int index = -1);
|
||||
|
||||
int index;
|
||||
/// The bdd condition is the union of all accepting condition of
|
||||
/// The bdd condition is the union of all acceptance conditions of
|
||||
/// transitions which connect the states of the connected component.
|
||||
bdd condition;
|
||||
};
|
||||
|
|
@ -121,7 +121,7 @@ namespace spot
|
|||
void remove_component(const state* start_delete);
|
||||
|
||||
/// Called by counter_example to find a path which traverses all
|
||||
/// accepting conditions in the accepted SCC.
|
||||
/// acceptance conditions in the accepted SCC.
|
||||
void accepting_path (const connected_component_set& scc,
|
||||
const state* start, bdd acc_to_traverse);
|
||||
|
||||
|
|
|
|||
|
|
@ -34,14 +34,14 @@
|
|||
|
||||
namespace spot
|
||||
{
|
||||
// At some point we'll need to print an accepting set into LBTT's
|
||||
// format. LBTT expects numbered accepting sets, so first we'll
|
||||
// number each accepting condition, and latter when we have to print
|
||||
// At some point we'll need to print an acceptance set into LBTT's
|
||||
// format. LBTT expects numbered acceptance sets, so first we'll
|
||||
// number each acceptance condition, and latter when we have to print
|
||||
// them we'll just have to look up each of them.
|
||||
class accepting_cond_splitter
|
||||
class acceptance_cond_splitter
|
||||
{
|
||||
public:
|
||||
accepting_cond_splitter(bdd all_acc)
|
||||
acceptance_cond_splitter(bdd all_acc)
|
||||
{
|
||||
unsigned count = 0;
|
||||
while (all_acc != bddfalse)
|
||||
|
|
@ -105,7 +105,7 @@ namespace spot
|
|||
}
|
||||
|
||||
// Each state in the produced automata corresponds to
|
||||
// a (state, accepting set) pair for the source automata.
|
||||
// a (state, acceptance set) pair for the source automata.
|
||||
|
||||
typedef std::pair<state*, bdd> state_acc_pair;
|
||||
|
||||
|
|
@ -128,7 +128,7 @@ namespace spot
|
|||
bool
|
||||
operator()(const state_acc_pair& that) const
|
||||
{
|
||||
// We assume there will be far more states than accepting conditions.
|
||||
// We assume there will be far more states than acceptance conditions.
|
||||
// Hence we keep only 8 bits for the latter.
|
||||
return (that.first->hash() << 8) + (that.second.id() & 0xFF);
|
||||
}
|
||||
|
|
@ -173,18 +173,18 @@ namespace spot
|
|||
return;
|
||||
}
|
||||
|
||||
// Browse the successors of STATE to gather accepting
|
||||
// Browse the successors of STATE to gather acceptance
|
||||
// conditions of outgoing transitions.
|
||||
bdd_set acc_seen;
|
||||
tgba_succ_iterator* si = g->succ_iter(state);
|
||||
for (si->first(); !si->done(); si->next())
|
||||
{
|
||||
acc_seen.insert(si->current_accepting_conditions());
|
||||
acc_seen.insert(si->current_acceptance_conditions());
|
||||
}
|
||||
|
||||
// Order the creation of the supplementary initial state if needed.
|
||||
// Use bddtrue as accepting condition because it cannot conflict
|
||||
// with other (state, accepting cond) pairs in the maps.
|
||||
// Use bddtrue as acceptance condition because it cannot conflict
|
||||
// with other (state, acceptance cond) pairs in the maps.
|
||||
if (init && acc_seen.size() > 1)
|
||||
{
|
||||
state_acc_pair p(state, bddtrue);
|
||||
|
|
@ -219,7 +219,7 @@ namespace spot
|
|||
|
||||
fill_todo(todo, seen, acp_seen,
|
||||
g->get_init_state(), g, mmp, state_number, true);
|
||||
accepting_cond_splitter acs(g->all_accepting_conditions());
|
||||
acceptance_cond_splitter acs(g->all_acceptance_conditions());
|
||||
|
||||
while(! todo.empty())
|
||||
{
|
||||
|
|
@ -227,12 +227,12 @@ namespace spot
|
|||
todo.erase(todo.begin());
|
||||
unsigned number = acp_seen[sap];
|
||||
|
||||
// number == 0 is the initial state. bddtrue as an accepting
|
||||
// number == 0 is the initial state. bddtrue as an acceptance
|
||||
// conditions indicates a "fake" initial state introduced
|
||||
// because the original initial state was split into many
|
||||
// states (with different accepting conditions).
|
||||
// states (with different acceptance conditions).
|
||||
// As this "fake" state has no input transitions, there is
|
||||
// no point in computing any accepting conditions.
|
||||
// no point in computing any acceptance conditions.
|
||||
body << number << (number ? " 0 " : " 1 ");
|
||||
if (sap.second != bddtrue)
|
||||
acs.split(body, sap.second);
|
||||
|
|
@ -241,12 +241,12 @@ namespace spot
|
|||
tgba_succ_iterator* si = g->succ_iter(sap.first);
|
||||
for (si->first(); !si->done(); si->next())
|
||||
{
|
||||
// We have put the accepting conditions on the state,
|
||||
// so draw only outgoing transition with these accepting
|
||||
// We have put the acceptance conditions on the state,
|
||||
// so draw only outgoing transition with these acceptance
|
||||
// conditions.
|
||||
|
||||
if (sap.second != bddtrue
|
||||
&& si->current_accepting_conditions() != sap.second)
|
||||
&& si->current_acceptance_conditions() != sap.second)
|
||||
continue;
|
||||
|
||||
minmax_pair destrange;
|
||||
|
|
|
|||
|
|
@ -31,17 +31,17 @@ namespace spot
|
|||
///
|
||||
/// Note that LBTT expects an automaton with transition
|
||||
/// labeled by propositional formulae, and generalized
|
||||
/// Büchi accepting conditions on \b states. This
|
||||
/// Büchi acceptance conditions on \b states. This
|
||||
/// is unlike our spot::tgba automata which put
|
||||
/// both generalized accepting conditions and propositional
|
||||
/// both generalized acceptance conditions and propositional
|
||||
/// formulae) on \b transitions.
|
||||
///
|
||||
/// This algorithm will therefore produce an automata where
|
||||
/// accepting conditions have been moved from each transition to
|
||||
/// acceptance conditions have been moved from each transition to
|
||||
/// previous state. In the worst case, doing so will multiply the
|
||||
/// number of states and transitions of the automata by
|
||||
/// <code>2^|Acc|</code>. where <code>|Acc|</code> is the number of
|
||||
/// accepting conditions used by the automata. (It can be a bit
|
||||
/// acceptance conditions used by the automata. (It can be a bit
|
||||
/// more because LBTT allows only for one initial state:
|
||||
/// lbtt_reachable() may also have to create an additional state in
|
||||
/// case the source initial state had to be split.) You have been
|
||||
|
|
|
|||
|
|
@ -112,7 +112,7 @@ namespace spot
|
|||
register_a_variable(const formula* f)
|
||||
{
|
||||
int num;
|
||||
// Do not build an accepting variable that already exists.
|
||||
// Do not build an acceptance variable that already exists.
|
||||
fv_map::iterator sii = a_map.find(f);
|
||||
if (sii != a_map.end())
|
||||
{
|
||||
|
|
@ -243,16 +243,16 @@ namespace spot
|
|||
bdd high = bdd_high(b);
|
||||
if (high == bddfalse)
|
||||
{
|
||||
// Simply ignore negated accepting variables.
|
||||
// Simply ignore negated acceptance variables.
|
||||
b = bdd_low(b);
|
||||
}
|
||||
else
|
||||
{
|
||||
formula* ac = var_to_formula(var);
|
||||
|
||||
if (! a->has_accepting_condition(ac))
|
||||
a->declare_accepting_condition(clone(ac));
|
||||
a->add_accepting_condition(t, ac);
|
||||
if (! a->has_acceptance_condition(ac))
|
||||
a->declare_acceptance_condition(clone(ac));
|
||||
a->add_acceptance_condition(t, ac);
|
||||
|
||||
atomic_prop::instance_count();
|
||||
b = high;
|
||||
|
|
@ -501,8 +501,8 @@ namespace spot
|
|||
i != formulae_seen.end(); ++i)
|
||||
destroy(*i);
|
||||
|
||||
// Turn all promises into real accepting conditions.
|
||||
a->complement_all_accepting_conditions();
|
||||
// Turn all promises into real acceptance conditions.
|
||||
a->complement_all_acceptance_conditions();
|
||||
return a;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -98,12 +98,12 @@ namespace spot
|
|||
/*
|
||||
`x | next', doesn't actually encode the fact that x
|
||||
should be fulfilled eventually. We ensure this by
|
||||
creating a new generalized Büchi accepting set, Acc[x],
|
||||
creating a new generalized Büchi acceptance set, Acc[x],
|
||||
and leave out of this set any transition going off NOW
|
||||
without checking X. Such accepting conditions are
|
||||
without checking X. Such acceptance conditions are
|
||||
checked for during the emptiness check.
|
||||
*/
|
||||
fact_.declare_accepting_condition(x | !now, node->child());
|
||||
fact_.declare_acceptance_condition(x | !now, node->child());
|
||||
res_ = now;
|
||||
return;
|
||||
}
|
||||
|
|
@ -181,10 +181,10 @@ namespace spot
|
|||
/*
|
||||
The rightmost conjunction, f1 & next, doesn't actually
|
||||
encode the fact that f2 should be fulfilled eventually.
|
||||
We declare an accepting condition for this purpose (see
|
||||
We declare an acceptance condition for this purpose (see
|
||||
the comment in the unop::F case).
|
||||
*/
|
||||
fact_.declare_accepting_condition(f2 | !now, node->second());
|
||||
fact_.declare_acceptance_condition(f2 | !now, node->second());
|
||||
res_ = now;
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ namespace spot
|
|||
const bdd_dict* d = automata_->get_dict();
|
||||
os_ << "acc =";
|
||||
|
||||
bdd acc = automata_->all_accepting_conditions();
|
||||
bdd acc = automata_->all_acceptance_conditions();
|
||||
while (acc != bddfalse)
|
||||
{
|
||||
bdd cube = bdd_satone(acc);
|
||||
|
|
@ -79,7 +79,7 @@ namespace spot
|
|||
os_ << "\"" << cur << "\", \""
|
||||
<< automata_->format_state(dest) << "\", \"";
|
||||
bdd_print_formula(os_, d, si->current_condition()) << "\",";
|
||||
bdd_print_acc(os_, d, si->current_accepting_conditions());
|
||||
bdd_print_acc(os_, d, si->current_acceptance_conditions());
|
||||
os_ << ";" << std::endl;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue