mCRL2
|
#include <liblts_branching_bisim_minimal_depth.h>
Classes | |
struct | block |
Public Member Functions | |
branching_bisim_partitioner_minimal_depth (LTS_TYPE &l, const std::size_t init_l2) | |
Creates a branching bisimulation partitioner for an LTS. | |
mcrl2::state_formulas::state_formula | dist_formula_mindepth (size_t s, size_t t) |
Creates a state formula that distinguishes state s from state t. | |
bool | in_same_class (const std::size_t s, const std::size_t t) |
Private Types | |
typedef std::size_t | block_index_type |
typedef std::size_t | level_type |
typedef std::tuple< block_index_type, label_type, block_index_type > | branching_observation_type |
typedef std::set< branching_observation_type > | signature_type |
typedef std::pair< label_type, state_type > | observation |
typedef std::pair< block_index_type, block_index_type > | blockpair_type |
Private Attributes | |
LTS_TYPE & | m_lts |
state_type | initial_l2 |
state_type | max_state_index = 0 |
std::map< state_type, std::set< state_type > > | silent_in |
std::map< state_type, std::set< state_type > > | silent_out |
std::map< state_type, std::vector< observation > > | trans_out |
std::map< state_type, std::size_t > | state2num_touched |
std::map< state_type, block_index_type > | state2block |
std::map< state_type, signature_type > | state2sig |
std::vector< state_type > | bottom_states |
std::map< level_type, std::set< block_index_type > > | level2blocksidx |
std::map< std::pair< block_index_type, block_index_type >, mcrl2::state_formulas::state_formula > | blockpair2formula |
std::map< std::pair< block_index_type, block_index_type >, std::set< block_index_type > > | blockpair2truths |
std::vector< block > | blocks |
Definition at line 34 of file liblts_branching_bisim_minimal_depth.h.
|
private |
Definition at line 121 of file liblts_branching_bisim_minimal_depth.h.
|
private |
Definition at line 127 of file liblts_branching_bisim_minimal_depth.h.
|
private |
Definition at line 124 of file liblts_branching_bisim_minimal_depth.h.
|
private |
Definition at line 122 of file liblts_branching_bisim_minimal_depth.h.
|
private |
Definition at line 126 of file liblts_branching_bisim_minimal_depth.h.
|
private |
Definition at line 125 of file liblts_branching_bisim_minimal_depth.h.
|
inline |
Creates a branching bisimulation partitioner for an LTS.
This partitioner is specifically for creating minimal depth counter-examples for branching bisimulation. It guarantees stability w.r.t. the old partition before considering new splitter blocks. This might cause this implementation to be less efficient than other partitioners.
l | Reference to the LTS. |
init_l2 | reference to the initial state of lts2. |
Definition at line 44 of file liblts_branching_bisim_minimal_depth.h.
|
inlineprivate |
conjunction Creates a conjunction of state formulas
terms | The terms of the conjunction |
Definition at line 265 of file liblts_branching_bisim_minimal_depth.h.
|
inlineprivate |
create_regular_formula Creates a regular formula that represents action a
In case the action comes from an LTS in the lts format.
a | The action for which to create a regular formula |
Definition at line 300 of file liblts_branching_bisim_minimal_depth.h.
|
inlineprivate |
create_regular_formula Creates a regular formula that represents action a
In case the action comes from an LTS in the lts format.
a | The action for which to create a regular formula |
Definition at line 287 of file liblts_branching_bisim_minimal_depth.h.
|
inlineprivate |
Definition at line 401 of file liblts_branching_bisim_minimal_depth.h.
|
inline |
Creates a state formula that distinguishes state s from state t.
The states s and t are non branching bisimilar states. A distinguishign state formula phi is returned, which has the property that s \in \sem{phi} and t \not\in\sem{phi}. Based on the preprint "Minimal Depth Distinguishing Formulas without Until for Branching Bisimulation", 2024 by Jan Martens and Jan Friso Groote.
[in] | s | The state number for which the resulting formula should be true |
[in] | t | The state number for which the resulting formula should be false |
Definition at line 106 of file liblts_branching_bisim_minimal_depth.h.
|
inlineprivate |
Definition at line 373 of file liblts_branching_bisim_minimal_depth.h.
|
inlineprivate |
Definition at line 177 of file liblts_branching_bisim_minimal_depth.h.
|
inline |
Definition at line 114 of file liblts_branching_bisim_minimal_depth.h.
|
inlineprivate |
is_dist overloaded to also maintain the truth values computed at the end.
Definition at line 350 of file liblts_branching_bisim_minimal_depth.h.
|
inlineprivate |
is_dist Checks if a given conjunction correctly exludes a set of blocks.
dist_blockpairs | The blockpairs that were used to generate the conjuncts. |
to_dist | The set of blocks that should be excluded by the conjunction, forall b\in to_dist. b\not\in\sem{phi_dist_blockpairs}. |
Definition at line 335 of file liblts_branching_bisim_minimal_depth.h.
|
inlineprivate |
Definition at line 172 of file liblts_branching_bisim_minimal_depth.h.
|
inlineprivate |
Definition at line 275 of file liblts_branching_bisim_minimal_depth.h.
|
inlineprivate |
Definition at line 249 of file liblts_branching_bisim_minimal_depth.h.
|
inlineprivate |
Definition at line 199 of file liblts_branching_bisim_minimal_depth.h.
|
inlineprivate |
Definition at line 306 of file liblts_branching_bisim_minimal_depth.h.
|
private |
Definition at line 138 of file liblts_branching_bisim_minimal_depth.h.
|
private |
Definition at line 139 of file liblts_branching_bisim_minimal_depth.h.
|
private |
Definition at line 167 of file liblts_branching_bisim_minimal_depth.h.
|
private |
Definition at line 135 of file liblts_branching_bisim_minimal_depth.h.
|
private |
Definition at line 119 of file liblts_branching_bisim_minimal_depth.h.
|
private |
Definition at line 136 of file liblts_branching_bisim_minimal_depth.h.
|
private |
Definition at line 118 of file liblts_branching_bisim_minimal_depth.h.
|
private |
Definition at line 120 of file liblts_branching_bisim_minimal_depth.h.
|
private |
Definition at line 129 of file liblts_branching_bisim_minimal_depth.h.
|
private |
Definition at line 130 of file liblts_branching_bisim_minimal_depth.h.
|
private |
Definition at line 133 of file liblts_branching_bisim_minimal_depth.h.
|
private |
Definition at line 132 of file liblts_branching_bisim_minimal_depth.h.
|
private |
Definition at line 134 of file liblts_branching_bisim_minimal_depth.h.
|
private |
Definition at line 131 of file liblts_branching_bisim_minimal_depth.h.