Browse Source
make storm compile when carl is not available
make storm compile when carl is not available
added settings for smt-lib solver
Former-commit-id: 7d1872267a
tempestpy_adaptions
TimQu
10 years ago
7 changed files with 163 additions and 13 deletions
-
9src/modelchecker/reachability/SparseDtmcEliminationModelChecker.cpp
-
9src/modelchecker/reachability/SparseDtmcEliminationModelChecker.h
-
5src/settings/SettingsManager.cpp
-
8src/settings/SettingsManager.h
-
48src/settings/modules/Smt2SmtSolverSettings.cpp
-
65src/settings/modules/Smt2SmtSolverSettings.h
-
32src/solver/Smt2SmtSolver.cpp
@ -0,0 +1,48 @@ |
|||
#include "src/settings/modules/Smt2SmtSolverSettings.h"
|
|||
|
|||
#include "src/settings/SettingsManager.h"
|
|||
|
|||
namespace storm { |
|||
namespace settings { |
|||
namespace modules { |
|||
|
|||
const std::string Smt2SmtSolverSettings::moduleName = "smt2smtsolver"; |
|||
const std::string Smt2SmtSolverSettings::solverCommandOption = "solvercommand"; |
|||
const std::string Smt2SmtSolverSettings::exportSmtLibScriptOption = "exportSmtLibScript"; |
|||
|
|||
Smt2SmtSolverSettings::Smt2SmtSolverSettings(storm::settings::SettingsManager& settingsManager) : ModuleSettings(settingsManager, moduleName) { |
|||
this->addOption(storm::settings::OptionBuilder(moduleName, solverCommandOption, true, "If set, this command is used to call the solver and to let the solver know that it should read SMT-LIBv2 commands from standard input. If not set, only a SMT-LIB script file might be exported.").addArgument(storm::settings::ArgumentBuilder::createStringArgument("command", "path to the solver + command line arguments.").setDefaultValueString("").build()).build()); |
|||
|
|||
this->addOption(storm::settings::OptionBuilder(moduleName, exportSmtLibScriptOption, true, "If set, the SMT-LIBv2 script will be exportet to this file.").addArgument(storm::settings::ArgumentBuilder::createStringArgument("path", "path and filename to the location where the script file should be exportet to").setDefaultValueString("").build()).build()); |
|||
} |
|||
|
|||
bool Smt2SmtSolverSettings::isSolverCommandSet() const{ |
|||
return this->getOption(solverCommandOption).getHasOptionBeenSet(); |
|||
} |
|||
|
|||
std::string Smt2SmtSolverSettings::getSolverCommand() const{ |
|||
return this->getOption(solverCommandOption).getArgumentByName("command").getValueAsString(); |
|||
} |
|||
|
|||
|
|||
bool Smt2SmtSolverSettings::isExportSmtLibScriptSet() const{ |
|||
return this->getOption(exportSmtLibScriptOption).getHasOptionBeenSet(); |
|||
} |
|||
|
|||
|
|||
std::string Smt2SmtSolverSettings::getExportSmtLibScriptPath() const{ |
|||
return this->getOption(solverCommandOption).getArgumentByName("path").getValueAsString(); |
|||
} |
|||
|
|||
|
|||
bool Smt2SmtSolverSettings::check() const { |
|||
if (isSolverCommandSet() || isExportSmtLibScriptSet()) { |
|||
//TODO check if paths are valid
|
|||
|
|||
} |
|||
return true; |
|||
} |
|||
|
|||
} // namespace modules
|
|||
} // namespace settings
|
|||
} // namespace storm
|
@ -0,0 +1,65 @@ |
|||
#ifndef STORM_SETTINGS_MODULES_SMT2SMTSOLVERSETTINGS_H_ |
|||
#define STORM_SETTINGS_MODULES_SMT2SMTSOLVERSETTINGS_H_ |
|||
|
|||
#include "src/settings/modules/ModuleSettings.h" |
|||
|
|||
namespace storm { |
|||
namespace settings { |
|||
namespace modules { |
|||
|
|||
/*! |
|||
* This class represents the settings for interaction with SMT-LIBv2 solvers. |
|||
*/ |
|||
class Smt2SmtSolverSettings : public ModuleSettings { |
|||
public: |
|||
/*! |
|||
* Creates a new set of Smt2SmtSolver settings that is managed by the given manager. |
|||
* |
|||
* @param settingsManager The responsible manager. |
|||
*/ |
|||
Smt2SmtSolverSettings(storm::settings::SettingsManager& settingsManager); |
|||
|
|||
/*! |
|||
* Retrieves whether the solver command has been set. |
|||
* |
|||
* @return True iff the solver command has been set. |
|||
*/ |
|||
bool isSolverCommandSet() const; |
|||
|
|||
/*! |
|||
* Retrieves the solver command i.e. the path and the command line arguments for the solver. |
|||
* |
|||
* @return The solver command to be used |
|||
*/ |
|||
std::string getSolverCommand() const; |
|||
|
|||
/*! |
|||
* Retrieves whether the SMT-LIBv2 script should be exportet to a file. |
|||
* |
|||
* @return True iff the SMT-LIBv2 script should be exportet to a file. |
|||
*/ |
|||
bool isExportSmtLibScriptSet() const; |
|||
|
|||
/*! |
|||
* Retrieves the path where the SMT-LIBv2 script file should be exportet to. |
|||
* |
|||
* @return the path where the SMT-LIBv2 script file should be exportet to. |
|||
*/ |
|||
std::string getExportSmtLibScriptPath() 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 solverCommandOption; |
|||
static const std::string exportSmtLibScriptOption; |
|||
}; |
|||
|
|||
} // namespace modules |
|||
} // namespace settings |
|||
} // namespace storm |
|||
|
|||
#endif /* STORM_SETTINGS_MODULES_SMT2SMTSOLVERSETTINGS_H_ */ |
Write
Preview
Loading…
Cancel
Save
Reference in new issue