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.

37 lines
1.6 KiB

  1. #ifndef STORM_MODELCHECKER_SPARSEPROPOSITIONALMODELCHECKER_H_
  2. #define STORM_MODELCHECKER_SPARSEPROPOSITIONALMODELCHECKER_H_
  3. #include "src/modelchecker/AbstractModelChecker.h"
  4. namespace storm {
  5. namespace modelchecker {
  6. template<typename SparseModelType>
  7. class SparsePropositionalModelChecker : public AbstractModelChecker {
  8. public:
  9. typedef typename SparseModelType::ValueType ValueType;
  10. typedef typename SparseModelType::RewardModelType RewardModelType;
  11. explicit SparsePropositionalModelChecker(SparseModelType const& model);
  12. // The implemented methods of the AbstractModelChecker interface.
  13. virtual bool canHandle(CheckTask<storm::logic::Formula> const& checkTask) const override;
  14. virtual std::unique_ptr<CheckResult> checkBooleanLiteralFormula(CheckTask<storm::logic::BooleanLiteralFormula> const& checkTask) override;
  15. virtual std::unique_ptr<CheckResult> checkAtomicLabelFormula(CheckTask<storm::logic::AtomicLabelFormula> const& checkTask) override;
  16. protected:
  17. /*!
  18. * Retrieves the model associated with this model checker instance.
  19. *
  20. * @return The model associated with this model checker instance.
  21. */
  22. SparseModelType const& getModel() const;
  23. private:
  24. // The model that is to be analyzed by the model checker.
  25. SparseModelType const& model;
  26. };
  27. }
  28. }
  29. #endif /* STORM_MODELCHECKER_SPARSEPROPOSITIONALMODELCHECKER_H_ */