throwstorm::exceptions::IllegalFunctionCallException()<<"Error: getValueAsInteger() was called on Argument \""<<getArgumentName()<<"\" of Type \""<<ArgumentTypeHelper::toString(getArgumentType())<<"\"!";
throwstorm::exceptions::IllegalFunctionCallException()<<"Error: getValueAsUnsignedInteger() was called on Argument \""<<getArgumentName()<<"\" of Type \""<<ArgumentTypeHelper::toString(getArgumentType())<<"\"!";
throwstorm::exceptions::IllegalFunctionCallException()<<"Error: getValueAsDouble() was called on Argument \""<<getArgumentName()<<"\" of Type \""<<ArgumentTypeHelper::toString(getArgumentType())<<"\"!";
throwstorm::exceptions::IllegalFunctionCallException()<<"Error: getValueAsBoolean() was called on Argument \""<<getArgumentName()<<"\" of Type \""<<ArgumentTypeHelper::toString(getArgumentType())<<"\"!";
throwstorm::exceptions::IllegalFunctionCallException()<<"Error: You tried adding a default Value for a \""<<ArgumentTypeHelper::toString(ArgumentType::String)<<"\" Argument, but this Argument is configured to be of Type \""<<ArgumentTypeHelper::toString(this->argumentType)<<"\".";\
throwstorm::exceptions::IllegalFunctionCallException()<<"Error: You tried adding a default Value for a \""<<ArgumentTypeHelper::toString(ArgumentType::String)<<"\" Argument, but the Argument \""<<this->argumentName<<"\" is configured to be of Type \""<<ArgumentTypeHelper::toString(this->argumentType)<<"\".";\
throwstorm::exceptions::IllegalArgumentValueException()<<"Error: You tried adding a default Value for an Argument, but a Validation Function rejected it:\r\n"<<errorMessageTarget;\
throwstorm::exceptions::IllegalArgumentValueException()<<"Error: You tried adding a default Value for the Argument \""<<this->argumentName<<"\", but a Validation Function rejected it:\r\n"<<errorMessageTarget;\
throwstorm::exceptions::IllegalArgumentException()<<"Error: The Argument Vector specified for Option \""<<getLongName()<<"\" is invalid!\nIt contains an argument without a default value, but the containing option is optional and therefor requires all arguments to provide default values.";
}
//throwstorm::exceptions::IllegalArgumentException()<<"Error: The Argument Vector specified for Option \""<<getLongName()<<"\" is invalid!\nIt contains an argument without a default value, but the containing option is optional and therefor requires all arguments to provide default values.";
settings->addOption(storm::settings::OptionBuilder("StoRM Main","prctl","","Evaluates the PRCTL Formulas given in the File").addArgument(storm::settings::ArgumentBuilder::createStringArgument("prctlFileName","The path and name of the File to read PRCTL Formulas from").addValidationFunctionString(storm::settings::ArgumentValidators::existingReadableFileValidator()).build()).build());
settings->addOption(storm::settings::OptionBuilder("StoRM Main","csl","","Evaluates the CSL Formulas given in the File").addArgument(storm::settings::ArgumentBuilder::createStringArgument("cslFileName","The path and name of the File to read CSL Formulas from").addValidationFunctionString(storm::settings::ArgumentValidators::existingReadableFileValidator()).build()).build());
settings->addOption(storm::settings::OptionBuilder("StoRM Main","ltl","","Evaluates the LTL Formulas given in the File").addArgument(storm::settings::ArgumentBuilder::createStringArgument("ltlFileName","The path and name of the File to read LTL Formulas from").addValidationFunctionString(storm::settings::ArgumentValidators::existingReadableFileValidator()).build()).build());
settings->addOption(storm::settings::OptionBuilder("StoRM Main","transitionRewards","","If specified, the model will have these transition rewards").addArgument(storm::settings::ArgumentBuilder::createStringArgument("transitionRewardsFileName","The path and name of the File to read the Transition Rewards from").addValidationFunctionString(storm::settings::ArgumentValidators::existingReadableFileValidator()).setDefaultValueString("").setIsOptional(true).build()).build());
settings->addOption(storm::settings::OptionBuilder("StoRM Main","stateRewards","","If specified, the model will have these state rewards").addArgument(storm::settings::ArgumentBuilder::createStringArgument("stateRewardsFileName","The path and name of the File to read the State Rewards from").addValidationFunctionString(storm::settings::ArgumentValidators::existingReadableFileValidator()).setDefaultValueString("").setIsOptional(true).build()).build());
settings->addOption(storm::settings::OptionBuilder("StoRM Main","transitionRewards","","If specified, the model will have these transition rewards").addArgument(storm::settings::ArgumentBuilder::createStringArgument("transitionRewardsFileName","The path and name of the File to read the Transition Rewards from").addValidationFunctionString(storm::settings::ArgumentValidators::existingReadableFileValidator()).build()).build());
settings->addOption(storm::settings::OptionBuilder("StoRM Main","stateRewards","","If specified, the model will have these state rewards").addArgument(storm::settings::ArgumentBuilder::createStringArgument("stateRewardsFileName","The path and name of the File to read the State Rewards from").addValidationFunctionString(storm::settings::ArgumentValidators::existingReadableFileValidator()).build()).build());
settings->addOption(storm::settings::OptionBuilder("StoRM Main","fixDeadlocks","","Insert Self-Loops for States with no outgoing transitions").build());
std::vector<std::string>matrixLibrarys;
matrixLibrarys.push_back("gmm++");
matrixLibrarys.push_back("native");
settings->addOption(storm::settings::OptionBuilder("StoRM Main","matrixLibrary","m","Which matrix library is to be used in numerical solving").addArgument(storm::settings::ArgumentBuilder::createStringArgument("matrixLibraryName","Name of a buildin Library").addValidationFunctionString(storm::settings::ArgumentValidators::stringInListValidator(matrixLibrarys)).setDefaultValueString("gmm++").build()).build());
settings->addOption(storm::settings::OptionBuilder("StoRM Main","useHeurisiticPresolve","","Sets whether heuristic methods should be applied to get better initial values for value iteration").build());
settings->addOption(storm::settings::OptionBuilder("StoRM Main","useHeuristicPresolve","","Sets whether heuristic methods should be applied to get better initial values for value iteration").build());