12 STORM_LOG_ASSERT(this->divergentStates.
size() == this->stepSensitiveStates.size() && this->divergentStates.size() == this->silentStates.size(),
13 "Weak bisimulation data has inconsistent sizes.");
14 STORM_LOG_ASSERT(this->divergentStates.
isSubsetOf(this->silentStates),
"A divergent state cannot leave its block and thus has to be silent.");
32 for (uint64_t
const state : block) {
Represents a partition of a set of consecutive indices.
void forEachBlock(Func const &f) const
Applies the given function on each block in the partition.
std::span< ElementIndex const > Block
A contiguous range of elements that form a (possibly proper super-) block of the partition.
A bit vector that is internally represented as a vector of 64-bit values.
bool isSubsetOf(BitVector const &other) const
Checks whether all bits that are set in the current bit vector are also set in the given bit vector.
size_t size() const
Retrieves the number of bits this bit vector can store.
#define STORM_LOG_ASSERT(cond, message)
WeakBisimulationData(storm::storage::BitVector divergentStates, storm::storage::BitVector stepSensitiveStates, storm::storage::BitVector silentStates)
bool isDivergent(Partition::Block const &block) const
bool isStepSensitive(Partition::Block const &block) const
storm::storage::BitVector const stepSensitiveStates
The states for which the number of steps taken within their own block is observable,...
storm::storage::BitVector silentStates
The states that cannot leave their block in a single step.
storm::storage::BitVector const divergentStates
The states from which no state outside of their own block can be reached.
bool checkBlockHomogeneity(Partition const &partition) const
Checks that every block of the given partition is homogeneous with respect to divergentStates and ste...