Include file:
#include "mcrl2/lps/explorer.h
mcrl2::lps::
explorer
¶mcrl2::lps::explorer::
indexed_set_for_states_type
¶typedef for atermpp::indexed_set< state, atermpp::detail::GlobalThreadSafe >
mcrl2::lps::explorer::
enumerator_element
¶typedef for data::enumerator_list_element_with_substitution<>
mcrl2::lps::explorer::
global_cache
¶mcrl2::lps::explorer::
m_discovered
¶mcrl2::lps::explorer::
m_global_enumerator
¶mcrl2::lps::explorer::
m_global_sigma
¶mcrl2::lps::explorer::
m_initial_distribution
¶mcrl2::lps::explorer::
m_initial_state
¶mcrl2::lps::explorer::
timed_state
¶check_enumerator_solution
(const data::data_expression &p_expression, const explorer_summand &summand, data::mutable_indexed_substitution<> &sigma, data::rewriter &rewr) const¶compute_state
(state &result, const DataExpressionSequence &v, data::mutable_indexed_substitution<> &sigma, data::rewriter &rewr) const¶compute_stochastic_state
(stochastic_state &result, const stochastic_distribution &distribution, const DataExpressionSequence &next_state, data::mutable_indexed_substitution<> &sigma, data::rewriter &rewr, data::enumerator_algorithm<> &enumerator) const¶find_representative
(state &u0, const SummandSequence &summands, data::mutable_indexed_substitution<> &sigma, data::rewriter &rewr, data::enumerator_algorithm<> &enumerator, data::enumerator_identifier_generator &id_generator)¶generate_successors
(const state &s0, const SummandSequence &summands, data::mutable_indexed_substitution<> &sigma, data::rewriter &rewr, data::enumerator_algorithm<> &enumerator, data::enumerator_identifier_generator &id_generator, const SummandSequence &confluent_summands = SummandSequence())¶generate_transitions
(const explorer_summand &summand, const SummandSequence &confluent_summands, data::mutable_indexed_substitution<> &sigma, data::rewriter &rewr, data::data_expression &condition, state_type &s1, atermpp::term_appl<data::data_expression> &key, data::enumerator_algorithm<> &enumerator, data::enumerator_identifier_generator &id_generator, ReportTransition report_transition = ReportTransition())¶is_confluent_tau
(const multi_action &a)¶less_equal
(const data::data_expression &t0, const data::data_expression &t1, data::mutable_indexed_substitution<> &sigma, data::rewriter &rewr) const¶out_edges
(const state &s, const SummandSequence ®ular_summands, const SummandSequence &confluent_summands, data::mutable_indexed_substitution<> &sigma, data::rewriter &rewr, data::enumerator_algorithm<> &enumerator, data::enumerator_identifier_generator &id_generator)¶preprocess
(const Specification &lpsspec)¶abort
() override¶Abort the state space generation.
confluent_summands
() const¶explorer
(const Specification &lpsspec, const explorer_options &options_)¶generate_state_space
(bool recursive, const StateType &s0, const SummandSequence ®ular_summands, const SummandSequence &confluent_summands, indexed_set_for_states_type &discovered, DiscoverState discover_state = DiscoverState(), ExamineTransition examine_transition = ExamineTransition(), StartState start_state = StartState(), FinishState finish_state = FinishState(), DiscoverInitialState discover_initial_state = DiscoverInitialState())¶generate_state_space
(bool recursive, DiscoverState discover_state = DiscoverState(), ExamineTransition examine_transition = ExamineTransition(), StartState start_state = StartState(), FinishState finish_state = FinishState(), DiscoverInitialState discover_initial_state = DiscoverInitialState())¶Generates the state space, and reports all discovered states and transitions by means of callback functions.
Parameters:
generate_state_space_dfs_iterative
(bool recursive, DiscoverState discover_state = DiscoverState(), ExamineTransition examine_transition = ExamineTransition(), TreeEdge tree_edge = TreeEdge(), BackEdge back_edge = BackEdge(), ForwardOrCrossEdge forward_or_cross_edge = ForwardOrCrossEdge(), FinishState finish_state = FinishState())¶generate_state_space_dfs_iterative
(const state &s0, std::unordered_set<state> &discovered, const SummandSequence ®ular_summands, const SummandSequence &confluent_summands, DiscoverState discover_state = DiscoverState(), ExamineTransition examine_transition = ExamineTransition(), TreeEdge tree_edge = TreeEdge(), BackEdge back_edge = BackEdge(), ForwardOrCrossEdge forward_or_cross_edge = ForwardOrCrossEdge(), FinishState finish_state = FinishState())¶generate_state_space_dfs_recursive
(bool recursive, DiscoverState discover_state = DiscoverState(), ExamineTransition examine_transition = ExamineTransition(), TreeEdge tree_edge = TreeEdge(), BackEdge back_edge = BackEdge(), ForwardOrCrossEdge forward_or_cross_edge = ForwardOrCrossEdge(), FinishState finish_state = FinishState())¶generate_state_space_dfs_recursive
(const state &s0, std::unordered_set<state> gray, std::unordered_set<state> &discovered, const SummandSequence ®ular_summands, const SummandSequence &confluent_summands, DiscoverState discover_state = DiscoverState(), ExamineTransition examine_transition = ExamineTransition(), TreeEdge tree_edge = TreeEdge(), BackEdge back_edge = BackEdge(), ForwardOrCrossEdge forward_or_cross_edge = ForwardOrCrossEdge(), FinishState finish_state = FinishState())¶generate_state_space_thread
(std::unique_ptr<todo_set> &todo, const std::size_t thread_index, std::atomic<std::size_t> &number_of_active_processes, std::atomic<std::size_t> &number_of_idle_processes, const SummandSequence ®ular_summands, const SummandSequence &confluent_summands, indexed_set_for_states_type &discovered, DiscoverState discover_state, ExamineTransition examine_transition, StartState start_state, FinishState finish_state, data::rewriter thread_rewr, data::mutable_indexed_substitution<> thread_sigma)¶generate_transitions
(const data::data_expression_list &init, data::mutable_indexed_substitution<> &sigma, data::rewriter &rewr)¶Generates outgoing transitions for a given state.
generate_transitions
(const data::data_expression_list &init, std::size_t i, data::mutable_indexed_substitution<> &sigma, data::rewriter &rewr, data::data_expression &condition, state_type &d0, data::enumerator_algorithm<> &enumerator, data::enumerator_identifier_generator &id_generator)¶Generates outgoing transitions for a given state, reachable via the summand with index i.
generate_transitions
(const state &d0)¶Generates outgoing transitions for a given state, using the global substitution, rewriter, enumerator and id_generator.
This function is not suitable to be used in parallel threads, but can only be used for pre or post processing.
generate_transitions
(const state &d0, data::mutable_indexed_substitution<> &sigma, data::rewriter &rewr, data::enumerator_algorithm<> &enumerator, data::enumerator_identifier_generator &id_generator)¶Generates outgoing transitions for a given state.
make_state
(const stochastic_state &s) const¶process_parameter_values
() const¶Process parameter values for use in a single thread.
process_parameter_values
(data::mutable_indexed_substitution<> &sigma) const¶regular_summands
() const¶set_process_parameter_values
(const data::data_expression_list &values, data::mutable_indexed_substitution<> &sigma)¶state_map
() const¶Returns a mapping containing all discovered states.
~explorer
() = default¶