STORM_LOG_THROW(parsedStructure.count("properties")<=1,storm::exceptions::InvalidJaniException,"At most one list of properties can be given");
STORM_LOG_THROW(parsedStructure.count("properties")<=1,storm::exceptions::InvalidJaniException,"At most one list of properties can be given");
@ -243,14 +243,14 @@ namespace storm {
STORM_LOG_THROW(propertyStructure.count("exp")==1,storm::exceptions::InvalidJaniException,"Expecting operand for operator "<<opstring<<" in "<<scope.description);
STORM_LOG_THROW(propertyStructure.count("exp")==1,storm::exceptions::InvalidJaniException,"Expecting operand for operator "<<opstring<<" in "<<scope.description);
return{parseFormula(model,propertyStructure.at("exp"),formulaContext,scope.refine("Operand of operator "+opstring))};
return{parseFormula(model,propertyStructure.at("exp"),formulaContext,scope.refine("Operand of operator "+opstring))};
STORM_LOG_THROW(propertyStructure.count("left")==1,storm::exceptions::InvalidJaniException,"Expecting left operand for operator "<<opstring<<" in "<<scope.description);
STORM_LOG_THROW(propertyStructure.count("left")==1,storm::exceptions::InvalidJaniException,"Expecting left operand for operator "<<opstring<<" in "<<scope.description);
STORM_LOG_THROW(propertyStructure.count("right")==1,storm::exceptions::InvalidJaniException,"Expecting right operand for operator "<<opstring<<" in "<<scope.description);
STORM_LOG_THROW(propertyStructure.count("right")==1,storm::exceptions::InvalidJaniException,"Expecting right operand for operator "<<opstring<<" in "<<scope.description);
return{parseFormula(model,propertyStructure.at("left"),formulaContext,scope.refine("Operand of operator "+opstring)),parseFormula(model,propertyStructure.at("right"),formulaContext,scope.refine("Operand of operator "+opstring))};
return{parseFormula(model,propertyStructure.at("left"),formulaContext,scope.refine("Operand of operator "+opstring)),parseFormula(model,propertyStructure.at("right"),formulaContext,scope.refine("Operand of operator "+opstring))};
STORM_LOG_THROW(rewExpr.hasNumericalType(),storm::exceptions::InvalidJaniException,"Reward expression '"<<rewExpr<<"' does not have numerical type in "<<scope.description);
STORM_LOG_THROW(rewExpr.hasNumericalType(),storm::exceptions::InvalidJaniException,"Reward expression '"<<rewExpr<<"' does not have numerical type in "<<scope.description);
STORM_LOG_THROW(propertyStructure.count("time-instant")==0,storm::exceptions::NotSupportedException,"Storm does not support to have a step-instant and a time-instant in "+scope.description);
STORM_LOG_THROW(propertyStructure.count("time-instant")==0,storm::exceptions::NotSupportedException,"Storm does not support to have a step-instant and a time-instant in "+scope.description);
STORM_LOG_THROW(false,storm::exceptions::InvalidJaniException,"Looking for operator for formula "<<propertyStructure.dump()<<", but did not find one");
STORM_LOG_THROW(false,storm::exceptions::InvalidJaniException,"Looking for operator for formula "<<propertyStructure.dump()<<", but did not find one");
STORM_LOG_THROW(expressionStructure.count("op")==1,storm::exceptions::InvalidJaniException,"Expression in property must have an operation description");
STORM_LOG_THROW(expressionStructure.count("op")==1,storm::exceptions::InvalidJaniException,"Expression in property must have an operation description");
STORM_LOG_THROW(expressionStructure.at("op")=="filter",storm::exceptions::InvalidJaniException,"Top level operation of a property must be a filter");
STORM_LOG_THROW(expressionStructure.at("op")=="filter",storm::exceptions::InvalidJaniException,"Top level operation of a property must be a filter");
STORM_LOG_THROW(expressionStructure.count("fun")==1,storm::exceptions::InvalidJaniException,"Filter must have a function descritpion");
STORM_LOG_THROW(expressionStructure.count("fun")==1,storm::exceptions::InvalidJaniException,"Filter must have a function descritpion");
@ -641,7 +641,7 @@ namespace storm {
}else{
}else{
STORM_LOG_THROW(false,storm::exceptions::InvalidJaniException,"Unknown filter description "<<funDescr<<" in property named "<<name);
STORM_LOG_THROW(false,storm::exceptions::InvalidJaniException,"Unknown filter description "<<funDescr<<" in property named "<<name);
}
}
STORM_LOG_THROW(expressionStructure.count("states")==1,storm::exceptions::InvalidJaniException,"Filter must have a states description");
STORM_LOG_THROW(expressionStructure.count("states")==1,storm::exceptions::InvalidJaniException,"Filter must have a states description");
definingExpression=parseExpression(constantStructure.at("value"),scope.refine("Value of constant "+name));
definingExpression=parseExpression(constantStructure.at("value"),scope.refine("Value of constant "+name));
assert(definingExpression.isInitialized());
assert(definingExpression.isInitialized());
}
}
STORM_LOG_THROW(constantStructure.count("type")==1,storm::exceptions::InvalidJaniException,"Constant '"+name+"' (scope: "+scope.description+") must have a (single) type-declaration.");
STORM_LOG_THROW(constantStructure.count("type")==1,storm::exceptions::InvalidJaniException,"Constant '"+name+"' (scope: "+scope.description+") must have a (single) type-declaration.");
STORM_LOG_THROW(functionDefinitionStructure.count("name")==1,storm::exceptions::InvalidJaniException,"Function definition (scope: "+scope.description+") must have a name");
STORM_LOG_THROW(functionDefinitionStructure.count("name")==1,storm::exceptions::InvalidJaniException,"Function definition (scope: "+scope.description+") must have a name");
@ -787,7 +787,7 @@ namespace storm {
STORM_LOG_THROW(functionDefinitionStructure.count("type")==1,storm::exceptions::InvalidJaniException,"Function definition '"+functionName+"' (scope: "+scope.description+") must have a (single) type-declaration.");
STORM_LOG_THROW(functionDefinitionStructure.count("type")==1,storm::exceptions::InvalidJaniException,"Function definition '"+functionName+"' (scope: "+scope.description+") must have a (single) type-declaration.");
STORM_LOG_THROW(parameterStructure.count("type")==1,storm::exceptions::InvalidJaniException,"Parameter declaration of parameter "+std::to_string(parameters.size())+" of Function definition '"+functionName+"' (scope: "+scope.description+") must have exactly one type.");
STORM_LOG_THROW(parameterStructure.count("type")==1,storm::exceptions::InvalidJaniException,"Parameter declaration of parameter "+std::to_string(parameters.size())+" of Function definition '"+functionName+"' (scope: "+scope.description+") must have exactly one type.");
parseType(parameterType,parameterStructure.at("type"),parameterName,scope.refine("parameter declaration of parameter "+std::to_string(parameters.size())+" of function definition "+functionName));
parseType(parameterType,parameterStructure.at("type"),parameterName,scope.refine("parameter declaration of parameter "+std::to_string(parameters.size())+" of function definition "+functionName));
STORM_LOG_WARN_COND(!parameterType.bounds.is_initialized(),"Bounds on parameter"+parameterName+" of function definition "+functionName+" will be ignored.");
STORM_LOG_WARN_COND(!parameterType.bounds.is_initialized(),"Bounds on parameter"+parameterName+" of function definition "+functionName+" will be ignored.");
STORM_LOG_THROW(functionDefinitionStructure.count("body")==1,storm::exceptions::InvalidJaniException,"Function definition '"+functionName+"' (scope: "+scope.description+") must have a (single) body.");
STORM_LOG_THROW(functionDefinitionStructure.count("body")==1,storm::exceptions::InvalidJaniException,"Function definition '"+functionName+"' (scope: "+scope.description+") must have a (single) body.");
STORM_LOG_THROW(variableStructure.count("name")==1,storm::exceptions::InvalidJaniException,"Variable (scope: "+scope.description+") must have a name");
STORM_LOG_THROW(variableStructure.count("name")==1,storm::exceptions::InvalidJaniException,"Variable (scope: "+scope.description+") must have a name");
STORM_LOG_THROW(false,storm::exceptions::InvalidJaniException,"Unknown type description, "<<variableStructure.at("type").dump()<<" for variable '"<<name<<"' (scope: "<<scope.description<<").");
STORM_LOG_THROW(false,storm::exceptions::InvalidJaniException,"Unknown type description, "<<variableStructure.at("type").dump()<<" for variable '"<<name<<"' (scope: "<<scope.description<<").");
STORM_LOG_THROW(expr.hasIntegerType(),storm::exceptions::InvalidJaniException,"Operator "<<opstring<<" expects argument "+std::to_string(argNr)+" to be numerical in "<<errorInfo<<".");
STORM_LOG_THROW(expr.hasIntegerType(),storm::exceptions::InvalidJaniException,"Operator "<<opstring<<" expects argument "+std::to_string(argNr)+" to be numerical in "<<errorInfo<<".");
STORM_LOG_THROW(edgeEntry.count("destinations")==1,storm::exceptions::InvalidJaniException,"A single list of destinations must be given in edge from '"<<sourceLoc<<"' in automaton '"<<name<<"'");
STORM_LOG_THROW(edgeEntry.count("destinations")==1,storm::exceptions::InvalidJaniException,"A single list of destinations must be given in edge from '"<<sourceLoc<<"' in automaton '"<<name<<"'");
STORM_LOG_THROW(compositionStructure.count("elements")==1,storm::exceptions::InvalidJaniException,"Elements of a composition must be given, got "<<compositionStructure.dump());
STORM_LOG_THROW(compositionStructure.count("elements")==1,storm::exceptions::InvalidJaniException,"Elements of a composition must be given, got "<<compositionStructure.dump());
STORM_LOG_THROW(compositionStructure.at("elements").back().count("automaton")==1,storm::exceptions::InvalidJaniException,"Automaton must be given in composition");
STORM_LOG_THROW(compositionStructure.at("elements").back().count("automaton")==1,storm::exceptions::InvalidJaniException,"Automaton must be given in composition");
STORM_LOG_WARN_COND(prop.getFilter().isDefault(),"Non-default property filter of property "+prop.getName()+" will be dropped during conversion to multi-objective property.");
STORM_LOG_WARN_COND(prop.getFilter().isDefault(),"Non-default property filter of property "+prop.getName()+" will be dropped during conversion to multi-objective property.");
STORM_LOG_WARN_COND(!prop.isShieldingProperty(),"Shielding of multi-objective property is not possible yet. Dropping expression: '"+prop.getShieldingExpression()->toString()+"'.");
STORM_LOG_THROW(rewardModelName.is_initialized(),storm::exceptions::InvalidPropertyException,"Unable to find transient variable for unique reward model.");
STORM_LOG_THROW(rewardModelName.is_initialized(),storm::exceptions::InvalidPropertyException,"Unable to find transient variable for unique reward model.");