Browse Source

requiring that multi objective queries have a multi(..) formula at top level.

main
TimQu 8 years ago
parent
commit
9bfb1fedc2
  1. 3
      src/storm/logic/FragmentChecker.cpp
  2. 11
      src/storm/logic/FragmentSpecification.cpp
  3. 4
      src/storm/logic/FragmentSpecification.h

3
src/storm/logic/FragmentChecker.cpp

@ -24,6 +24,9 @@ namespace storm {
if (specification.isOperatorAtTopLevelRequired()) { if (specification.isOperatorAtTopLevelRequired()) {
result &= f.isOperatorFormula(); result &= f.isOperatorFormula();
} }
if (specification.isMultiObjectiveFormulaAtTopLevelRequired()) {
result &= f.isMultiObjectiveFormula();
}
return result; return result;
} }

11
src/storm/logic/FragmentSpecification.cpp

@ -88,6 +88,7 @@ namespace storm {
FragmentSpecification multiObjective = propositional(); FragmentSpecification multiObjective = propositional();
multiObjective.setMultiObjectiveFormulasAllowed(true); multiObjective.setMultiObjectiveFormulasAllowed(true);
multiObjective.setMultiObjectiveFormulaAtTopLevelRequired(true);
multiObjective.setOperatorsAtTopLevelOfMultiObjectiveFormulasRequired(true); multiObjective.setOperatorsAtTopLevelOfMultiObjectiveFormulasRequired(true);
multiObjective.setProbabilityOperatorsAllowed(true); multiObjective.setProbabilityOperatorsAllowed(true);
multiObjective.setUntilFormulasAllowed(true); multiObjective.setUntilFormulasAllowed(true);
@ -148,6 +149,7 @@ namespace storm {
quantitativeOperatorResults = true; quantitativeOperatorResults = true;
operatorAtTopLevelRequired = false; operatorAtTopLevelRequired = false;
multiObjectiveFormulaAtTopLevelRequired = false;
operatorsAtTopLevelOfMultiObjectiveFormulasRequired = false; operatorsAtTopLevelOfMultiObjectiveFormulasRequired = false;
} }
@ -489,6 +491,15 @@ namespace storm {
return *this; return *this;
} }
bool FragmentSpecification::isMultiObjectiveFormulaAtTopLevelRequired() const {
return multiObjectiveFormulaAtTopLevelRequired;
}
FragmentSpecification& FragmentSpecification::setMultiObjectiveFormulaAtTopLevelRequired(bool newValue) {
multiObjectiveFormulaAtTopLevelRequired = newValue;
return *this;
}
bool FragmentSpecification::areOperatorsAtTopLevelOfMultiObjectiveFormulasRequired() const { bool FragmentSpecification::areOperatorsAtTopLevelOfMultiObjectiveFormulasRequired() const {
return operatorsAtTopLevelOfMultiObjectiveFormulasRequired; return operatorsAtTopLevelOfMultiObjectiveFormulasRequired;
} }

4
src/storm/logic/FragmentSpecification.h

@ -118,6 +118,9 @@ namespace storm {
bool isOperatorAtTopLevelRequired() const; bool isOperatorAtTopLevelRequired() const;
FragmentSpecification& setOperatorAtTopLevelRequired(bool newValue); FragmentSpecification& setOperatorAtTopLevelRequired(bool newValue);
bool isMultiObjectiveFormulaAtTopLevelRequired() const;
FragmentSpecification& setMultiObjectiveFormulaAtTopLevelRequired(bool newValue);
bool areOperatorsAtTopLevelOfMultiObjectiveFormulasRequired() const; bool areOperatorsAtTopLevelOfMultiObjectiveFormulasRequired() const;
FragmentSpecification& setOperatorsAtTopLevelOfMultiObjectiveFormulasRequired(bool newValue); FragmentSpecification& setOperatorsAtTopLevelOfMultiObjectiveFormulasRequired(bool newValue);
@ -170,6 +173,7 @@ namespace storm {
bool quantitativeOperatorResults; bool quantitativeOperatorResults;
bool qualitativeOperatorResults; bool qualitativeOperatorResults;
bool operatorAtTopLevelRequired; bool operatorAtTopLevelRequired;
bool multiObjectiveFormulaAtTopLevelRequired;
bool operatorsAtTopLevelOfMultiObjectiveFormulasRequired; bool operatorsAtTopLevelOfMultiObjectiveFormulasRequired;
}; };

|||||||
100:0
Loading…
Cancel
Save