Add a new form of TA with a Single-pass emptiness check (STA)
* src/ta/ta.cc, src/ta/ta.hh, src/ta/taexplicit.cc, src/ta/taexplicit.hh, src/ta/taproduct.cc,src/ta/taproduct.hh, src/taalgos/dotty.cc, src/taalgos/emptinessta.cc, src/taalgos/emptinessta.hh, src/taalgos/minimize.cc, src/taalgos/reachiter.cc, src/taalgos/sba2ta.cc, src/taalgos/sba2ta.hh, src/tgbatest/ltl2ta.test, src/tgbatest/ltl2tgba.cc: Impacts of the implementation of a new variant of TA, called STA, which involve a Single-pass emptiness check. The new options (-in and -lv) added to build the new variants of TA allow to add two artificial states: 1- an initial artificial state to have an unique initial state (-in) 2- a livelock artificial state which has no successors in order to obtain the new form of TA which requires only a Single-pass emptiness- check: STA (-lv).
This commit is contained in:
parent
310973f88c
commit
782ba0010b
15 changed files with 1224 additions and 711 deletions
|
|
@ -24,7 +24,7 @@
|
|||
#ifndef SPOT_TAALGOS_EMPTINESS_HH
|
||||
# define SPOT_TAALGOS_EMPTINESS_HH
|
||||
|
||||
#include "ta/ta.hh"
|
||||
#include "ta/taproduct.hh"
|
||||
#include "misc/optionmap.hh"
|
||||
#include "tgbaalgos/gtec/nsheap.hh"
|
||||
#include "tgbaalgos/emptiness_stats.hh"
|
||||
|
|
@ -43,13 +43,13 @@ namespace spot
|
|||
class ta_check : public ec_statistics
|
||||
{
|
||||
public:
|
||||
ta_check(const ta* a, option_map o = option_map());
|
||||
ta_check(const ta_product* a, option_map o = option_map());
|
||||
virtual
|
||||
~ta_check();
|
||||
|
||||
/// Check whether the automaton's language is empty.
|
||||
virtual bool
|
||||
check();
|
||||
check(bool disable_second_pass = false);
|
||||
|
||||
virtual bool
|
||||
livelock_detection(const ta* t);
|
||||
|
|
@ -75,7 +75,7 @@ namespace spot
|
|||
heuristic_livelock_detection(const state * stuttering_succ,
|
||||
numbered_state_heap* h, int h_livelock_root, std::set<const state*,
|
||||
state_ptr_less_than> liveset_curr);
|
||||
const ta* a_; ///< The automaton.
|
||||
const ta_product* a_; ///< The automaton.
|
||||
option_map o_; ///< The options
|
||||
|
||||
bool is_full_2_pass_;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue