diff --git a/src/storage/jani/OrderedAssignments.cpp b/src/storage/jani/OrderedAssignments.cpp index 2b7ee613f..9d71174f4 100644 --- a/src/storage/jani/OrderedAssignments.cpp +++ b/src/storage/jani/OrderedAssignments.cpp @@ -65,6 +65,19 @@ namespace storm { return true; } + bool OrderedAssignments::hasMultipleLevels() const { + if(allAssignments.empty()) { + return false; + } + uint64_t firstLevel = allAssignments.front()->getLevel(); + for(auto const& assignment : allAssignments) { + if(assignment->getLevel() != firstLevel) { + return true; + } + } + return false; + } + bool OrderedAssignments::contains(Assignment const& assignment) const { auto it = lowerBound(assignment, allAssignments); if (it != allAssignments.end() && assignment == **it) { diff --git a/src/storage/jani/OrderedAssignments.h b/src/storage/jani/OrderedAssignments.h index c9e07a34d..496912b0e 100644 --- a/src/storage/jani/OrderedAssignments.h +++ b/src/storage/jani/OrderedAssignments.h @@ -32,7 +32,14 @@ namespace storm { * @return True if the assignment was found and removed. */ bool remove(Assignment const& assignment); - + + /*! + * Checks whether the assignments have several levels. + * + * @return True if more than one level occurs in the assignment set. + */ + bool hasMultipleLevels() const; + /*! * Retrieves whether the given assignment is contained in this set of assignments. */