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.
 
 
 
 

75 lines
3.1 KiB

#ifndef STORM_SETTINGS_MODULES_COUNTEREXAMPLEGENERATORSETTINGS_H_
#define STORM_SETTINGS_MODULES_COUNTEREXAMPLEGENERATORSETTINGS_H_
#include "storm/settings/modules/ModuleSettings.h"
namespace storm {
namespace settings {
namespace modules {
/*!
* This class represents the settings for counterexample generation.
*/
class CounterexampleGeneratorSettings : public ModuleSettings {
public:
/*!
* Creates a new set of counterexample settings.
*/
CounterexampleGeneratorSettings();
/*!
* Retrieves whether the option to generate a minimal command set was set.
*
* @return True iff a minimal command set counterexample is to be generated.
*/
bool isMinimalCommandSetGenerationSet() const;
/*!
* Retrieves whether the MILP-based technique is to be used to generate a minimal command set
* counterexample.
*
* @return True iff the MILP-based technique is to be used.
*/
bool isUseMilpBasedMinimalCommandSetGenerationSet() const;
/*!
* Retrieves whether the MAXSAT-based technique is to be used to generate a minimal command set
* counterexample.
*
* @return True iff the MAXSAT-based technique is to be used.
*/
bool isUseMaxSatBasedMinimalCommandSetGenerationSet() const;
/*!
* Retrieves whether reachability of a target state is to be encoded if the MAXSAT-based technique is
* used to generate a minimal command set counterexample.
*
* @return True iff reachability of a target state is to be encoded.
*/
bool isEncodeReachabilitySet() const;
/*!
* Retrieves whether scheduler cuts are to be used if the MAXSAT-based technique is used to generate a
* minimal command set counterexample.
*
* @return True iff scheduler cuts are to be used.
*/
bool isUseSchedulerCutsSet() const;
bool check() const 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 minimalCommandSetOptionName;
static const std::string encodeReachabilityOptionName;
static const std::string schedulerCutsOptionName;
};
} // namespace modules
} // namespace settings
} // namespace storm
#endif /* STORM_SETTINGS_MODULES_COUNTEREXAMPLEGENERATORSETTINGS_H_ */