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.
163 lines
5.9 KiB
163 lines
5.9 KiB
#ifndef STORM_SETTINGS_MODULES_DFTSETTINGS_H_
|
|
#define STORM_SETTINGS_MODULES_DFTSETTINGS_H_
|
|
|
|
#include "storm-config.h"
|
|
#include "src/settings/modules/ModuleSettings.h"
|
|
#include "src/builder/DftExplorationHeuristic.h"
|
|
|
|
namespace storm {
|
|
namespace settings {
|
|
namespace modules {
|
|
|
|
/*!
|
|
* This class represents the settings for DFT model checking.
|
|
*/
|
|
class DFTSettings : public ModuleSettings {
|
|
public:
|
|
|
|
/*!
|
|
* Creates a new set of DFT settings.
|
|
*/
|
|
DFTSettings();
|
|
|
|
/*!
|
|
* Retrieves whether the dft file option was set.
|
|
*
|
|
* @return True if the dft file option was set.
|
|
*/
|
|
bool isDftFileSet() const;
|
|
|
|
/*!
|
|
* Retrieves the name of the file that contains the dft specification.
|
|
*
|
|
* @return The name of the file that contains the dft specification.
|
|
*/
|
|
std::string getDftFilename() const;
|
|
|
|
/*!
|
|
* Retrieves whether the option to use symmetry reduction is set.
|
|
*
|
|
* @return True iff the option was set.
|
|
*/
|
|
bool useSymmetryReduction() const;
|
|
|
|
/*!
|
|
* Retrieves whether the option to use modularisation is set.
|
|
*
|
|
* @return True iff the option was set.
|
|
*/
|
|
bool useModularisation() const;
|
|
|
|
/*!
|
|
* Retrieves whether the option to disable Dont Care propagation is set.
|
|
*
|
|
* @return True iff the option was set.
|
|
*/
|
|
bool isDisableDC() const;
|
|
|
|
/*!
|
|
* Retrieves whether the option to compute an approximation is set.
|
|
*
|
|
* @return True iff the option was set.
|
|
*/
|
|
bool isApproximationErrorSet() const;
|
|
|
|
/*!
|
|
* Retrieves the error allowed for approximation the model checking result.
|
|
*
|
|
* @return The allowed errorbound.
|
|
*/
|
|
double getApproximationError() const;
|
|
|
|
/*!
|
|
* Retrieves the heuristic used for approximation.
|
|
*
|
|
* @return The heuristic to use.
|
|
*/
|
|
storm::builder::ApproximationHeuristic getApproximationHeuristic() const;
|
|
|
|
/*!
|
|
* Retrieves whether the property expected time should be used.
|
|
*
|
|
* @return True iff the option was set.
|
|
*/
|
|
bool usePropExpectedTime() const;
|
|
|
|
/*!
|
|
* Retrieves whether the property probability should be used.
|
|
*
|
|
* @return True iff the option was set.
|
|
*/
|
|
bool usePropProbability() const;
|
|
|
|
/*!
|
|
* Retrieves whether the property timebound should be used.
|
|
*
|
|
* @return True iff the option was set.
|
|
*/
|
|
bool usePropTimebound() const;
|
|
|
|
/*!
|
|
* Retrieves whether the minimal value should be computed for non-determinism.
|
|
*
|
|
* @return True iff the option was set.
|
|
*/
|
|
bool isComputeMinimalValue() const;
|
|
|
|
/*!
|
|
* Retrieves whether the maximal value should be computed for non-determinism.
|
|
*
|
|
* @return True iff the option was set.
|
|
*/
|
|
bool isComputeMaximalValue() const;
|
|
|
|
/*!
|
|
* Retrieves the timebound for the timebound property.
|
|
*
|
|
* @return The timebound.
|
|
*/
|
|
double getPropTimebound() const;
|
|
|
|
#ifdef STORM_HAVE_Z3
|
|
/*!
|
|
* Retrieves whether the DFT should be checked via SMT.
|
|
*
|
|
* @return True iff the option was set.
|
|
*/
|
|
bool solveWithSMT() const;
|
|
#endif
|
|
|
|
bool check() const override;
|
|
void finalize() override;
|
|
|
|
// The name of the module.
|
|
static const std::string moduleName;
|
|
|
|
private:
|
|
// Define the string names of the options as constants.
|
|
static const std::string dftFileOptionName;
|
|
static const std::string dftFileOptionShortName;
|
|
static const std::string symmetryReductionOptionName;
|
|
static const std::string symmetryReductionOptionShortName;
|
|
static const std::string modularisationOptionName;
|
|
static const std::string disableDCOptionName;
|
|
static const std::string approximationErrorOptionName;
|
|
static const std::string approximationErrorOptionShortName;
|
|
static const std::string approximationHeuristicOptionName;
|
|
static const std::string propExpectedTimeOptionName;
|
|
static const std::string propExpectedTimeOptionShortName;
|
|
static const std::string propProbabilityOptionName;
|
|
static const std::string propTimeBoundOptionName;
|
|
static const std::string minValueOptionName;
|
|
static const std::string maxValueOptionName;
|
|
#ifdef STORM_HAVE_Z3
|
|
static const std::string solveWithSmtOptionName;
|
|
#endif
|
|
|
|
};
|
|
|
|
} // namespace modules
|
|
} // namespace settings
|
|
} // namespace storm
|
|
|
|
#endif /* STORM_SETTINGS_MODULES_DFTSETTINGS_H_ */
|