* src/tgba/succiterconcrete.hh (next_succ_set_): Rename as ...

(succ_set_left_): ... this.
(current_base_, current_base_left_): New variables.
* src/tgba/succiterconcrete.cc (tgba_succ_iterator_concrete::first):
Reset current_.
(tgba_succ_iterator_concrete::next): Rewrite.
(tgba_succ_iterator_concrete::current_state): Simplify.
(tgba_succ_iterator_concrete::current_accepting_conditions): Remove
atomic proposition with universal quantification.
* src/tgba/ltl2tgba.cc (ltl_to_tgba): Normalize the formula.
* src/tgba/tgbabddconcrete.cc (tgba_bdd_concrete::set_init_state):
Complete the initial state.
(tgba_bdd_concrete::succ_iter): Do not remove Now variable
from the BDD passed to the iterator.
* tgba/tgbabddcoredata.hh (notnow_set, var_set): New variables.
* tgba/tgbabddcoredata.cc, tgba/tgbabddtranslatefactory.cc: Adjust
to update notnow_set and var_set.
This commit is contained in:
Alexandre Duret-Lutz 2003-06-25 15:15:30 +00:00
parent 35be07c472
commit 6d0546c317
8 changed files with 216 additions and 32 deletions

View file

@ -13,12 +13,14 @@ namespace spot
public:
/// \brief Build a spot::tgba_succ_iterator_concrete.
///
/// \param successors The set of successors with ingoing conditions
/// and promises, represented as a BDD. The job of this iterator
/// will be to enumerate the satisfactions of that BDD and split
/// them into destination state, conditions, and promises.
/// \param d The core data of the automata. These contains
/// sets of variables useful to split a BDD.
/// \param successors The set of successors with ingoing
/// conditions and accepting conditions, represented as a BDD.
/// The job of this iterator will be to enumerate the
/// satisfactions of that BDD and split them into destination
/// states and conditions, and compute accepting conditions.
/// \param d The core data of the automata.
/// These contains sets of variables useful to split a BDD, and
/// compute accepting conditions.
tgba_succ_iterator_concrete(const tgba_bdd_core_data& d, bdd successors);
virtual ~tgba_succ_iterator_concrete();
@ -33,10 +35,17 @@ namespace spot
bdd current_accepting_conditions();
private:
const tgba_bdd_core_data& data_; ///< Core data of the automata.
const tgba_bdd_core_data& data_; ///< Core data of the automaton.
bdd succ_set_; ///< The set of successors.
bdd next_succ_set_; ///< Unexplored successors (including current_).
bdd current_; ///< Current successor.
bdd succ_set_left_; ///< Unexplored successors (including current_).
bdd current_; ///< Current successor, as a conjunction of
/// atomic proposition and Next variables.
bdd current_state_; ///< Current successor, as a
/// conjunction of Now variables.
bdd current_base_; ///< Current successor base.
bdd current_base_left_; ///< Used to lists all possible full satisfaction
/// current_base_ which haven't been explored.
};
}