* iface/gspn/ltlgspn.cc: We call tgba_emptiness_check before

counter_example. And we print the prefix and the periode of
counter_example's result.

* src/tgbatest/emptinesscheckexplicit.cc (main):
We call tgba_emptiness_check before counter_example.
* src/tgbatest/emptinesscheck.cc (main):
We call tgba_emptiness_check before counter_example.

* src/tgbaalgos/emptinesscheck.hh (spot):
(spot::print_result): New methode to print the prefix and the
periode of counter_example's result.

* src/tgbaalgos/emptinesscheck.cc (spot): counter_example doesn't
call tgba_emptiness_check. counter_example must be executed after
calling tgba_emptiness_check.  Remove tgba_emptiness_check calls.
(print_result): New methode to print the prefix and the
periode of counter_example's result.  Remove most of all std::cout
during execution of emptiness_check's methodes.
This commit is contained in:
rebiha 2003-10-07 12:13:30 +00:00
parent 9828bf9800
commit 6920a1c30f
6 changed files with 105 additions and 123 deletions

View file

@ -11,10 +11,12 @@
#include <list>
#include <vector>
#include <set>
#include <utility>
#include <ostream>
/// \brief Emptiness check on spot::tgba
namespace spot
{
/// \brief Emptiness check on spot::tgba
class connected_component
{
@ -64,10 +66,10 @@ virtual
/// this function remove all accessible state from a given
/// state. In other words, it removes the strongly connected
/// component that contents this state.
/// \brief Emptiness check on spot::tgba
void
remove_component(const tgba& aut, seen& state_map, const spot::state* start_delete);
/// \brief Emptiness check on spot::tgba
/// This is based on the following papers.
/// \verbatim
/// @InProceedings{ couvreur.00.lacim,
@ -112,6 +114,10 @@ virtual
void
counter_example(const spot::tgba* aut_counter);
std::ostream&
print_result(std::ostream& os, const spot::tgba* aut, const tgba* restrict = 0) const;
std::stack <bdd> arc_accepting;
std::stack <connected_component> root_component;
seen seen_state_num;
@ -120,7 +126,6 @@ virtual
private:
std::stack <pair_state_iter> todo;
std::vector<state_sequence> vec_sequence;
/// This function is called by counter_example to find a path
/// which contents all accepting conditions in the accepted SCC (get all the
/// accepting conditions).
@ -134,6 +139,8 @@ virtual
//of the counter example. Append a sequence to the path given by accepting_path.
void
complete_cycle(const spot::tgba* aut_counter, const connected_component& comp_path, const state* from_state,const state* to_state);
};
}
#endif // SPOT_EMPTINESS_CHECK_HH