15 std::map<storm::expressions::Variable, storm::expressions::Expression>
const& substitution) {
16 std::vector<storm::jani::Property> preprocessedProperties;
17 for (
auto const& property : properties) {
18 preprocessedProperties.emplace_back(property.substitute(substitution));
20 return preprocessedProperties;
31std::vector<storm::jani::Property>
filterProperties(std::vector<storm::jani::Property>
const& properties,
32 boost::optional<std::set<std::string>>
const& propertyFilter) {
34 std::set<std::string>
const& propertyNameSet = propertyFilter.get();
35 std::vector<storm::jani::Property> result;
36 std::set<std::string> reducedPropertyNames;
38 if (propertyNameSet.empty()) {
42 for (
auto const& property : properties) {
43 if (propertyNameSet.find(property.getName()) != propertyNameSet.end()) {
44 result.push_back(property);
45 reducedPropertyNames.insert(property.getName());
49 if (reducedPropertyNames.size() < propertyNameSet.size()) {
50 std::set<std::string> missingProperties;
51 std::set_difference(propertyNameSet.begin(), propertyNameSet.end(), reducedPropertyNames.begin(), reducedPropertyNames.end(),
52 std::inserter(missingProperties, missingProperties.begin()));
53 STORM_LOG_WARN(
"Filtering unknown properties " << boost::join(missingProperties,
", ") <<
".");
71 std::set<storm::expressions::Variable> undefConstants;
72 std::string name =
"";
73 std::string comment =
"";
74 for (
auto const& prop : properties) {
75 undefConstants.insert(prop.getUndefinedConstants().begin(), prop.getUndefinedConstants().end());
76 name += prop.getName();
77 comment += prop.getComment();
79 "Non-default property filter of property " + prop.getName() +
" will be dropped during conversion to multi-objective property.");
81 auto multiFormula = std::make_shared<storm::logic::MultiObjectiveFormula>(
std::pair< storm::jani::Model, std::vector< storm::jani::Property > > filterProperties(std::pair< storm::jani::Model, std::vector< storm::jani::Property > > &modelAndFormulae, boost::optional< std::vector< std::string > > const &propertyFilter)