namespace simgrid {
namespace mc {
-extern XBT_PRIVATE xbt_automaton_t property_automaton;
-
struct XBT_PRIVATE Pair {
int num = 0;
bool search_cycle = false;
struct XBT_PRIVATE VisitedPair {
int num = 0;
int other_num = 0; /* Dot output for */
- int acceptance_pair = 0;
std::shared_ptr<simgrid::mc::State> graph_state = nullptr; /* System state included */
xbt_automaton_state_t automaton_state = nullptr;
std::vector<int> atomic_propositions;
void showAcceptanceCycle(std::size_t depth);
void replay();
void removeAcceptancePair(int pair_num);
+ void purgeVisitedPairs();
+ void backtrack();
+ std::shared_ptr<Pair> newPair(Pair* pair, xbt_automaton_state_t state);
public:
+ // A stack of (application_state, automaton_state) pairs for DFS exploration:
+ std::list<std::shared_ptr<Pair>> explorationStack_;
std::list<std::shared_ptr<VisitedPair>> acceptancePairs_;
- std::list<Pair*> livenessStack_;
std::list<std::shared_ptr<VisitedPair>> visitedPairs_;
};