You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

36 lines
1.1 KiB

  1. #pragma once
  2. #include <cstdint>
  3. #include <vector>
  4. #include <boost/optional.hpp>
  5. #include "storm/storage/expressions/Expression.h"
  6. namespace storm {
  7. namespace abstraction {
  8. class RefinementCommand {
  9. public:
  10. /*!
  11. * Creates a new refinement command for the given player 1 choice.
  12. */
  13. RefinementCommand(uint64_t referencedPlayer1Choice, std::vector<storm::expressions::Expression> const& predicates);
  14. /*!
  15. * Creates a new refinement command for all player 1 choices.
  16. */
  17. RefinementCommand(std::vector<storm::expressions::Expression> const& predicates);
  18. /// Access to the details of this refinement commands.
  19. bool refersToPlayer1Choice() const;
  20. uint64_t getReferencedPlayer1Choice() const;
  21. std::vector<storm::expressions::Expression> const& getPredicates() const;
  22. private:
  23. boost::optional<uint64_t> referencedPlayer1Choice;
  24. std::vector<storm::expressions::Expression> predicates;
  25. };
  26. }
  27. }