numbered_state_heap, numbered_state_heap_hash_map): New classes.
* tgbaalgos/emptinesscheck.cc
(numbered_state_heap_hash_map_const_iterator): New class.
(numbered_state_heap_hash_map): Implement it.
(explicit_connected_component_factory,
connected_component_hash_set_factory): New classes.
(counter_example::counter_example): Take an
explicit_connected_component_factory factory argument.
* src/tgbaalgos/emptinesscheck.cc: Adjust.
New class.
(counter_example::connected_component_set): Rename as ...
(connected_component_hash_set): ... this, and inherit from
explicit_connected_component.
(counter_example::accepting_path, counter_example::complete_cycle):
into ...
(emptiness_check_shy): This new subclass of emptiness_check.
* src/tgbaalgos/emptinesscheck.cc, src/tgbatest/ltl2tgba.cc,
iface/gspn/ltlgspn.cc: Adjust.
emptiness_check::~emptiness_check) New methods.
(emptiness_check::check): Release all iterators in todo on exit.
(emptiness_check::counter_example): Rewrite the BFS logic.
* src/tgbaalgos/emptinesscheck.hh (emptiness_check::h_filt,
emptiness_check::~emptiness_check): New methods.
Simplify, reorganize, and comment.
* src/tgbaalgos/emptinesscheck.hh (emptiness_check::root_component):
Rename as ...
(emptiness_check::root): ... this, to follow the paper.
Rename as ...
(connected_component::set_type): ... this, and define as a hash_set.
(connected_component::has_state): New method.
* src/tgbaalgos/emptinesscheck.cc (connected_component::has_state):
New method.
(emptiness_check::counter_example, emptiness_check::complete_cycle,
emptiness_check::accepting_path): Simplify using has_state().
Rename as ...
(emptiness_check::h): ... this, and define as a hash_map.
(emptiness_check::remove_component): Remove superfluous state_map
argument.
* src/tgbaalgos/emptinesscheck.cc: Adjust.
New, take the automaton to work on, and store it ...
(emptiness_check::aut_): ... in this new attribute.
(emptiness_check::tgba_emptiness_check): Rename as ...
(emptiness_check::check): ... this, and remove the automata
argument.
(emptiness_check::counter_example, emptiness_check::print_result,
emptiness_check::remove_component, emptiness_check::accepting_path,
emptiness_check::complete_cycle): Remove the automata argument.
* src/tgbaalgos/emptinesscheck.cc, src/tgbatest/ltl2tgba.cc,
iface/gspn/ltlgspn.cc: Adjust.
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.
* src/tgbatest/emptinesscheckexplicit.cc (main): New file.
* src/tgbatest/emptinesscheck.test: New file.
* src/tgbatest/emptinesscheck.cc (main): New file.
* src/tgbaalgos/emptinesscheck.cc (spot): New method.
* src/tgbaalgos/emptinesscheck.hh: New interface.