Browse Source

added rPATL to FragmentSpecifitcations

main
Stefan Pranger 4 years ago
parent
commit
0d7e763b00
  1. 224
      src/storm/logic/FragmentSpecification.cpp
  2. 38
      src/storm/logic/FragmentSpecification.h

224
src/storm/logic/FragmentSpecification.cpp

@ -5,34 +5,34 @@
namespace storm { namespace storm {
namespace logic { namespace logic {
FragmentSpecification propositional() { FragmentSpecification propositional() {
FragmentSpecification propositional; FragmentSpecification propositional;
propositional.setBooleanLiteralFormulasAllowed(true); propositional.setBooleanLiteralFormulasAllowed(true);
propositional.setBinaryBooleanStateFormulasAllowed(true); propositional.setBinaryBooleanStateFormulasAllowed(true);
propositional.setUnaryBooleanStateFormulasAllowed(true); propositional.setUnaryBooleanStateFormulasAllowed(true);
propositional.setAtomicExpressionFormulasAllowed(true); propositional.setAtomicExpressionFormulasAllowed(true);
propositional.setAtomicLabelFormulasAllowed(true); propositional.setAtomicLabelFormulasAllowed(true);
return propositional; return propositional;
} }
FragmentSpecification reachability() { FragmentSpecification reachability() {
FragmentSpecification reachability = propositional(); FragmentSpecification reachability = propositional();
reachability.setProbabilityOperatorsAllowed(true); reachability.setProbabilityOperatorsAllowed(true);
reachability.setUntilFormulasAllowed(true); reachability.setUntilFormulasAllowed(true);
reachability.setReachabilityProbabilityFormulasAllowed(true); reachability.setReachabilityProbabilityFormulasAllowed(true);
reachability.setOperatorAtTopLevelRequired(true); reachability.setOperatorAtTopLevelRequired(true);
reachability.setNestedOperatorsAllowed(false); reachability.setNestedOperatorsAllowed(false);
return reachability; return reachability;
} }
FragmentSpecification pctl() { FragmentSpecification pctl() {
FragmentSpecification pctl = propositional(); FragmentSpecification pctl = propositional();
pctl.setProbabilityOperatorsAllowed(true); pctl.setProbabilityOperatorsAllowed(true);
pctl.setGloballyFormulasAllowed(true); pctl.setGloballyFormulasAllowed(true);
pctl.setReachabilityProbabilityFormulasAllowed(true); pctl.setReachabilityProbabilityFormulasAllowed(true);
@ -76,34 +76,34 @@ namespace storm {
prctl.setLongRunAverageOperatorsAllowed(true); prctl.setLongRunAverageOperatorsAllowed(true);
prctl.setStepBoundedCumulativeRewardFormulasAllowed(true); prctl.setStepBoundedCumulativeRewardFormulasAllowed(true);
prctl.setTimeBoundedCumulativeRewardFormulasAllowed(true); prctl.setTimeBoundedCumulativeRewardFormulasAllowed(true);
return prctl; return prctl;
} }
FragmentSpecification csl() { FragmentSpecification csl() {
FragmentSpecification csl = pctl(); FragmentSpecification csl = pctl();
csl.setTimeBoundedUntilFormulasAllowed(true); csl.setTimeBoundedUntilFormulasAllowed(true);
return csl; return csl;
} }
FragmentSpecification csrl() { FragmentSpecification csrl() {
FragmentSpecification csrl = csl(); FragmentSpecification csrl = csl();
csrl.setRewardOperatorsAllowed(true); csrl.setRewardOperatorsAllowed(true);
csrl.setCumulativeRewardFormulasAllowed(true); csrl.setCumulativeRewardFormulasAllowed(true);
csrl.setInstantaneousFormulasAllowed(true); csrl.setInstantaneousFormulasAllowed(true);
csrl.setReachabilityRewardFormulasAllowed(true); csrl.setReachabilityRewardFormulasAllowed(true);
csrl.setLongRunAverageOperatorsAllowed(true); csrl.setLongRunAverageOperatorsAllowed(true);
csrl.setTimeBoundedCumulativeRewardFormulasAllowed(true); csrl.setTimeBoundedCumulativeRewardFormulasAllowed(true);
return csrl; return csrl;
} }
FragmentSpecification multiObjective() { FragmentSpecification multiObjective() {
FragmentSpecification multiObjective = propositional(); FragmentSpecification multiObjective = propositional();
multiObjective.setMultiObjectiveFormulasAllowed(true); multiObjective.setMultiObjectiveFormulasAllowed(true);
multiObjective.setMultiObjectiveFormulaAtTopLevelRequired(true); multiObjective.setMultiObjectiveFormulaAtTopLevelRequired(true);
multiObjective.setNestedMultiObjectiveFormulasAllowed(false); multiObjective.setNestedMultiObjectiveFormulasAllowed(false);
@ -125,10 +125,10 @@ namespace storm {
return multiObjective; return multiObjective;
} }
FragmentSpecification quantiles() { FragmentSpecification quantiles() {
FragmentSpecification quantiles = propositional(); FragmentSpecification quantiles = propositional();
quantiles.setQuantileFormulasAllowed(true); quantiles.setQuantileFormulasAllowed(true);
quantiles.setQuantileFormulaAtTopLevelRequired(true); quantiles.setQuantileFormulaAtTopLevelRequired(true);
quantiles.setProbabilityOperatorsAllowed(true); quantiles.setProbabilityOperatorsAllowed(true);
@ -143,44 +143,44 @@ namespace storm {
quantiles.setCumulativeRewardFormulasAllowed(true); quantiles.setCumulativeRewardFormulasAllowed(true);
quantiles.setMultiDimensionalBoundedUntilFormulasAllowed(true); quantiles.setMultiDimensionalBoundedUntilFormulasAllowed(true);
quantiles.setMultiDimensionalCumulativeRewardFormulasAllowed(true); quantiles.setMultiDimensionalCumulativeRewardFormulasAllowed(true);
return quantiles; return quantiles;
} }
FragmentSpecification::FragmentSpecification() { FragmentSpecification::FragmentSpecification() {
probabilityOperator = false; probabilityOperator = false;
rewardOperator = false; rewardOperator = false;
expectedTimeOperator = false; expectedTimeOperator = false;
longRunAverageOperator = false; longRunAverageOperator = false;
multiObjectiveFormula = false; multiObjectiveFormula = false;
quantileFormula = false; quantileFormula = false;
globallyFormula = false; globallyFormula = false;
reachabilityProbabilityFormula = false; reachabilityProbabilityFormula = false;
nextFormula = false; nextFormula = false;
untilFormula = false; untilFormula = false;
boundedUntilFormula = false; boundedUntilFormula = false;
atomicExpressionFormula = false; atomicExpressionFormula = false;
atomicLabelFormula = false; atomicLabelFormula = false;
booleanLiteralFormula = false; booleanLiteralFormula = false;
unaryBooleanStateFormula = false; unaryBooleanStateFormula = false;
binaryBooleanStateFormula = false; binaryBooleanStateFormula = false;
cumulativeRewardFormula = false; cumulativeRewardFormula = false;
instantaneousRewardFormula = false; instantaneousRewardFormula = false;
reachabilityRewardFormula = false; reachabilityRewardFormula = false;
longRunAverageRewardFormula = false; longRunAverageRewardFormula = false;
totalRewardFormula = false; totalRewardFormula = false;
conditionalProbabilityFormula = false; conditionalProbabilityFormula = false;
conditionalRewardFormula = false; conditionalRewardFormula = false;
reachabilityTimeFormula = false; reachabilityTimeFormula = false;
gameFormula = false; gameFormula = false;
nestedOperators = true; nestedOperators = true;
nestedPathFormulas = false; nestedPathFormulas = false;
nestedMultiObjectiveFormulas = false; nestedMultiObjectiveFormulas = false;
@ -195,296 +195,296 @@ namespace storm {
rewardBoundedCumulativeRewardFormulas = false; rewardBoundedCumulativeRewardFormulas = false;
multiDimensionalCumulativeRewardFormulas = false; multiDimensionalCumulativeRewardFormulas = false;
varianceAsMeasureType = false; varianceAsMeasureType = false;
qualitativeOperatorResults = true; qualitativeOperatorResults = true;
quantitativeOperatorResults = true; quantitativeOperatorResults = true;
operatorAtTopLevelRequired = false; operatorAtTopLevelRequired = false;
multiObjectiveFormulaAtTopLevelRequired = false; multiObjectiveFormulaAtTopLevelRequired = false;
operatorsAtTopLevelOfMultiObjectiveFormulasRequired = false; operatorsAtTopLevelOfMultiObjectiveFormulasRequired = false;
quantileFormulaAtTopLevelRequired = false; quantileFormulaAtTopLevelRequired = false;
rewardAccumulation = false; rewardAccumulation = false;
} }
FragmentSpecification FragmentSpecification::copy() const { FragmentSpecification FragmentSpecification::copy() const {
return FragmentSpecification(*this); return FragmentSpecification(*this);
} }
bool FragmentSpecification::areProbabilityOperatorsAllowed() const { bool FragmentSpecification::areProbabilityOperatorsAllowed() const {
return probabilityOperator; return probabilityOperator;
} }
FragmentSpecification& FragmentSpecification::setProbabilityOperatorsAllowed(bool newValue) { FragmentSpecification& FragmentSpecification::setProbabilityOperatorsAllowed(bool newValue) {
this->probabilityOperator = newValue; this->probabilityOperator = newValue;
return *this; return *this;
} }
bool FragmentSpecification::areRewardOperatorsAllowed() const { bool FragmentSpecification::areRewardOperatorsAllowed() const {
return rewardOperator; return rewardOperator;
} }
FragmentSpecification& FragmentSpecification::setRewardOperatorsAllowed(bool newValue) { FragmentSpecification& FragmentSpecification::setRewardOperatorsAllowed(bool newValue) {
this->rewardOperator = newValue; this->rewardOperator = newValue;
return *this; return *this;
} }
bool FragmentSpecification::areTimeOperatorsAllowed() const { bool FragmentSpecification::areTimeOperatorsAllowed() const {
return expectedTimeOperator; return expectedTimeOperator;
} }
FragmentSpecification& FragmentSpecification::setTimeOperatorsAllowed(bool newValue) { FragmentSpecification& FragmentSpecification::setTimeOperatorsAllowed(bool newValue) {
this->expectedTimeOperator = newValue; this->expectedTimeOperator = newValue;
return *this; return *this;
} }
bool FragmentSpecification::areLongRunAverageOperatorsAllowed() const { bool FragmentSpecification::areLongRunAverageOperatorsAllowed() const {
return longRunAverageOperator; return longRunAverageOperator;
} }
FragmentSpecification& FragmentSpecification::setLongRunAverageOperatorsAllowed(bool newValue) { FragmentSpecification& FragmentSpecification::setLongRunAverageOperatorsAllowed(bool newValue) {
this->longRunAverageOperator = newValue; this->longRunAverageOperator = newValue;
return *this; return *this;
} }
bool FragmentSpecification::areMultiObjectiveFormulasAllowed() const { bool FragmentSpecification::areMultiObjectiveFormulasAllowed() const {
return multiObjectiveFormula; return multiObjectiveFormula;
} }
FragmentSpecification& FragmentSpecification::setMultiObjectiveFormulasAllowed( bool newValue) { FragmentSpecification& FragmentSpecification::setMultiObjectiveFormulasAllowed( bool newValue) {
this->multiObjectiveFormula = newValue; this->multiObjectiveFormula = newValue;
return *this; return *this;
} }
bool FragmentSpecification::areQuantileFormulasAllowed() const { bool FragmentSpecification::areQuantileFormulasAllowed() const {
return quantileFormula; return quantileFormula;
} }
FragmentSpecification& FragmentSpecification::setQuantileFormulasAllowed( bool newValue) { FragmentSpecification& FragmentSpecification::setQuantileFormulasAllowed( bool newValue) {
this->quantileFormula = newValue; this->quantileFormula = newValue;
return *this; return *this;
} }
bool FragmentSpecification::areGloballyFormulasAllowed() const { bool FragmentSpecification::areGloballyFormulasAllowed() const {
return globallyFormula; return globallyFormula;
} }
FragmentSpecification& FragmentSpecification::setGloballyFormulasAllowed(bool newValue) { FragmentSpecification& FragmentSpecification::setGloballyFormulasAllowed(bool newValue) {
this->globallyFormula = newValue; this->globallyFormula = newValue;
return *this; return *this;
} }
bool FragmentSpecification::areReachabilityProbabilityFormulasAllowed() const { bool FragmentSpecification::areReachabilityProbabilityFormulasAllowed() const {
return reachabilityProbabilityFormula; return reachabilityProbabilityFormula;
} }
FragmentSpecification& FragmentSpecification::setReachabilityProbabilityFormulasAllowed(bool newValue) { FragmentSpecification& FragmentSpecification::setReachabilityProbabilityFormulasAllowed(bool newValue) {
this->reachabilityProbabilityFormula = newValue; this->reachabilityProbabilityFormula = newValue;
return *this; return *this;
} }
bool FragmentSpecification::areNextFormulasAllowed() const { bool FragmentSpecification::areNextFormulasAllowed() const {
return nextFormula; return nextFormula;
} }
FragmentSpecification& FragmentSpecification::setNextFormulasAllowed(bool newValue) { FragmentSpecification& FragmentSpecification::setNextFormulasAllowed(bool newValue) {
this->nextFormula = newValue; this->nextFormula = newValue;
return *this; return *this;
} }
bool FragmentSpecification::areUntilFormulasAllowed() const { bool FragmentSpecification::areUntilFormulasAllowed() const {
return untilFormula; return untilFormula;
} }
FragmentSpecification& FragmentSpecification::setUntilFormulasAllowed(bool newValue) { FragmentSpecification& FragmentSpecification::setUntilFormulasAllowed(bool newValue) {
this->untilFormula = newValue; this->untilFormula = newValue;
return *this; return *this;
} }
bool FragmentSpecification::areBoundedUntilFormulasAllowed() const { bool FragmentSpecification::areBoundedUntilFormulasAllowed() const {
return boundedUntilFormula; return boundedUntilFormula;
} }
FragmentSpecification& FragmentSpecification::setBoundedUntilFormulasAllowed(bool newValue) { FragmentSpecification& FragmentSpecification::setBoundedUntilFormulasAllowed(bool newValue) {
this->boundedUntilFormula = newValue; this->boundedUntilFormula = newValue;
return *this; return *this;
} }
bool FragmentSpecification::areAtomicExpressionFormulasAllowed() const { bool FragmentSpecification::areAtomicExpressionFormulasAllowed() const {
return atomicExpressionFormula; return atomicExpressionFormula;
} }
FragmentSpecification& FragmentSpecification::setAtomicExpressionFormulasAllowed(bool newValue) { FragmentSpecification& FragmentSpecification::setAtomicExpressionFormulasAllowed(bool newValue) {
this->atomicExpressionFormula = newValue; this->atomicExpressionFormula = newValue;
return *this; return *this;
} }
bool FragmentSpecification::areAtomicLabelFormulasAllowed() const { bool FragmentSpecification::areAtomicLabelFormulasAllowed() const {
return atomicLabelFormula; return atomicLabelFormula;
} }
FragmentSpecification& FragmentSpecification::setAtomicLabelFormulasAllowed(bool newValue) { FragmentSpecification& FragmentSpecification::setAtomicLabelFormulasAllowed(bool newValue) {
this->atomicLabelFormula = newValue; this->atomicLabelFormula = newValue;
return *this; return *this;
} }
bool FragmentSpecification::areBooleanLiteralFormulasAllowed() const { bool FragmentSpecification::areBooleanLiteralFormulasAllowed() const {
return booleanLiteralFormula; return booleanLiteralFormula;
} }
FragmentSpecification& FragmentSpecification::setBooleanLiteralFormulasAllowed(bool newValue) { FragmentSpecification& FragmentSpecification::setBooleanLiteralFormulasAllowed(bool newValue) {
this->booleanLiteralFormula = newValue; this->booleanLiteralFormula = newValue;
return *this; return *this;
} }
bool FragmentSpecification::areUnaryBooleanStateFormulasAllowed() const { bool FragmentSpecification::areUnaryBooleanStateFormulasAllowed() const {
return unaryBooleanStateFormula; return unaryBooleanStateFormula;
} }
FragmentSpecification& FragmentSpecification::setUnaryBooleanStateFormulasAllowed(bool newValue) { FragmentSpecification& FragmentSpecification::setUnaryBooleanStateFormulasAllowed(bool newValue) {
this->unaryBooleanStateFormula = newValue; this->unaryBooleanStateFormula = newValue;
return *this; return *this;
} }
bool FragmentSpecification::areBinaryBooleanStateFormulasAllowed() const { bool FragmentSpecification::areBinaryBooleanStateFormulasAllowed() const {
return binaryBooleanStateFormula; return binaryBooleanStateFormula;
} }
FragmentSpecification& FragmentSpecification::setBinaryBooleanStateFormulasAllowed(bool newValue) { FragmentSpecification& FragmentSpecification::setBinaryBooleanStateFormulasAllowed(bool newValue) {
this->binaryBooleanStateFormula = newValue; this->binaryBooleanStateFormula = newValue;
return *this; return *this;
} }
bool FragmentSpecification::areCumulativeRewardFormulasAllowed() const { bool FragmentSpecification::areCumulativeRewardFormulasAllowed() const {
return cumulativeRewardFormula; return cumulativeRewardFormula;
} }
FragmentSpecification& FragmentSpecification::setCumulativeRewardFormulasAllowed(bool newValue) { FragmentSpecification& FragmentSpecification::setCumulativeRewardFormulasAllowed(bool newValue) {
this->cumulativeRewardFormula = newValue; this->cumulativeRewardFormula = newValue;
return *this; return *this;
} }
bool FragmentSpecification::areInstantaneousRewardFormulasAllowed() const { bool FragmentSpecification::areInstantaneousRewardFormulasAllowed() const {
return instantaneousRewardFormula; return instantaneousRewardFormula;
} }
FragmentSpecification& FragmentSpecification::setInstantaneousFormulasAllowed(bool newValue) { FragmentSpecification& FragmentSpecification::setInstantaneousFormulasAllowed(bool newValue) {
this->instantaneousRewardFormula = newValue; this->instantaneousRewardFormula = newValue;
return *this; return *this;
} }
bool FragmentSpecification::areReachabilityRewardFormulasAllowed() const { bool FragmentSpecification::areReachabilityRewardFormulasAllowed() const {
return reachabilityRewardFormula; return reachabilityRewardFormula;
} }
FragmentSpecification& FragmentSpecification::setReachabilityRewardFormulasAllowed(bool newValue) { FragmentSpecification& FragmentSpecification::setReachabilityRewardFormulasAllowed(bool newValue) {
this->reachabilityRewardFormula = newValue; this->reachabilityRewardFormula = newValue;
return *this; return *this;
} }
bool FragmentSpecification::areLongRunAverageRewardFormulasAllowed() const { bool FragmentSpecification::areLongRunAverageRewardFormulasAllowed() const {
return longRunAverageRewardFormula; return longRunAverageRewardFormula;
} }
FragmentSpecification& FragmentSpecification::setLongRunAverageRewardFormulasAllowed(bool newValue) { FragmentSpecification& FragmentSpecification::setLongRunAverageRewardFormulasAllowed(bool newValue) {
this->longRunAverageRewardFormula = newValue; this->longRunAverageRewardFormula = newValue;
return *this; return *this;
} }
bool FragmentSpecification::areTotalRewardFormulasAllowed() const { bool FragmentSpecification::areTotalRewardFormulasAllowed() const {
return totalRewardFormula; return totalRewardFormula;
} }
FragmentSpecification& FragmentSpecification::setTotalRewardFormulasAllowed(bool newValue) { FragmentSpecification& FragmentSpecification::setTotalRewardFormulasAllowed(bool newValue) {
this->totalRewardFormula = newValue; this->totalRewardFormula = newValue;
return *this; return *this;
} }
bool FragmentSpecification::areConditionalProbabilityFormulasAllowed() const { bool FragmentSpecification::areConditionalProbabilityFormulasAllowed() const {
return conditionalProbabilityFormula; return conditionalProbabilityFormula;
} }
FragmentSpecification& FragmentSpecification::setConditionalProbabilityFormulasAllowed(bool newValue) { FragmentSpecification& FragmentSpecification::setConditionalProbabilityFormulasAllowed(bool newValue) {
this->conditionalProbabilityFormula = newValue; this->conditionalProbabilityFormula = newValue;
return *this; return *this;
} }
bool FragmentSpecification::areConditionalRewardFormulasFormulasAllowed() const { bool FragmentSpecification::areConditionalRewardFormulasFormulasAllowed() const {
return conditionalRewardFormula; return conditionalRewardFormula;
} }
FragmentSpecification& FragmentSpecification::setConditionalRewardFormulasAllowed(bool newValue) { FragmentSpecification& FragmentSpecification::setConditionalRewardFormulasAllowed(bool newValue) {
this->conditionalRewardFormula = newValue; this->conditionalRewardFormula = newValue;
return *this; return *this;
} }
bool FragmentSpecification::areReachbilityTimeFormulasAllowed() const { bool FragmentSpecification::areReachbilityTimeFormulasAllowed() const {
return reachabilityTimeFormula; return reachabilityTimeFormula;
} }
FragmentSpecification& FragmentSpecification::setReachbilityTimeFormulasAllowed(bool newValue) { FragmentSpecification& FragmentSpecification::setReachbilityTimeFormulasAllowed(bool newValue) {
this->reachabilityTimeFormula = newValue; this->reachabilityTimeFormula = newValue;
return *this; return *this;
} }
bool FragmentSpecification::areNestedOperatorsAllowed() const { bool FragmentSpecification::areNestedOperatorsAllowed() const {
return this->nestedOperators; return this->nestedOperators;
} }
FragmentSpecification& FragmentSpecification::setNestedOperatorsAllowed(bool newValue) { FragmentSpecification& FragmentSpecification::setNestedOperatorsAllowed(bool newValue) {
this->nestedOperators = newValue; this->nestedOperators = newValue;
return *this; return *this;
} }
bool FragmentSpecification::areNestedPathFormulasAllowed() const { bool FragmentSpecification::areNestedPathFormulasAllowed() const {
return this->nestedPathFormulas; return this->nestedPathFormulas;
} }
FragmentSpecification& FragmentSpecification::setNestedPathFormulasAllowed(bool newValue) { FragmentSpecification& FragmentSpecification::setNestedPathFormulasAllowed(bool newValue) {
this->nestedPathFormulas = newValue; this->nestedPathFormulas = newValue;
return *this; return *this;
} }
bool FragmentSpecification::areNestedMultiObjectiveFormulasAllowed() const { bool FragmentSpecification::areNestedMultiObjectiveFormulasAllowed() const {
return this->nestedMultiObjectiveFormulas; return this->nestedMultiObjectiveFormulas;
} }
FragmentSpecification& FragmentSpecification::setNestedMultiObjectiveFormulasAllowed(bool newValue) { FragmentSpecification& FragmentSpecification::setNestedMultiObjectiveFormulasAllowed(bool newValue) {
this->nestedMultiObjectiveFormulas = newValue; this->nestedMultiObjectiveFormulas = newValue;
return *this; return *this;
} }
bool FragmentSpecification::areNestedOperatorsInsideMultiObjectiveFormulasAllowed() const { bool FragmentSpecification::areNestedOperatorsInsideMultiObjectiveFormulasAllowed() const {
return this->nestedOperatorsInsideMultiObjectiveFormulas; return this->nestedOperatorsInsideMultiObjectiveFormulas;
} }
FragmentSpecification& FragmentSpecification::setNestedOperatorsInsideMultiObjectiveFormulasAllowed(bool newValue) { FragmentSpecification& FragmentSpecification::setNestedOperatorsInsideMultiObjectiveFormulasAllowed(bool newValue) {
this->nestedOperatorsInsideMultiObjectiveFormulas = newValue; this->nestedOperatorsInsideMultiObjectiveFormulas = newValue;
return *this; return *this;
} }
bool FragmentSpecification::areOnlyEventuallyFormuluasInConditionalFormulasAllowed() const { bool FragmentSpecification::areOnlyEventuallyFormuluasInConditionalFormulasAllowed() const {
return this->onlyEventuallyFormuluasInConditionalFormulas; return this->onlyEventuallyFormuluasInConditionalFormulas;
} }
FragmentSpecification& FragmentSpecification::setOnlyEventuallyFormuluasInConditionalFormulasAllowed(bool newValue) { FragmentSpecification& FragmentSpecification::setOnlyEventuallyFormuluasInConditionalFormulasAllowed(bool newValue) {
this->onlyEventuallyFormuluasInConditionalFormulas = newValue; this->onlyEventuallyFormuluasInConditionalFormulas = newValue;
return *this; return *this;
} }
bool FragmentSpecification::areStepBoundedUntilFormulasAllowed() const { bool FragmentSpecification::areStepBoundedUntilFormulasAllowed() const {
return this->stepBoundedUntilFormulas; return this->stepBoundedUntilFormulas;
} }
FragmentSpecification& FragmentSpecification::setStepBoundedUntilFormulasAllowed(bool newValue) { FragmentSpecification& FragmentSpecification::setStepBoundedUntilFormulasAllowed(bool newValue) {
this->stepBoundedUntilFormulas = newValue; this->stepBoundedUntilFormulas = newValue;
return *this; return *this;
} }
bool FragmentSpecification::areTimeBoundedUntilFormulasAllowed() const { bool FragmentSpecification::areTimeBoundedUntilFormulasAllowed() const {
return this->timeBoundedUntilFormulas; return this->timeBoundedUntilFormulas;
} }
FragmentSpecification& FragmentSpecification::setTimeBoundedUntilFormulasAllowed(bool newValue) { FragmentSpecification& FragmentSpecification::setTimeBoundedUntilFormulasAllowed(bool newValue) {
this->timeBoundedUntilFormulas = newValue; this->timeBoundedUntilFormulas = newValue;
return *this; return *this;
@ -498,7 +498,7 @@ namespace storm {
this->rewardBoundedUntilFormulas = newValue; this->rewardBoundedUntilFormulas = newValue;
return *this; return *this;
} }
bool FragmentSpecification::areMultiDimensionalBoundedUntilFormulasAllowed() const { bool FragmentSpecification::areMultiDimensionalBoundedUntilFormulasAllowed() const {
return this->multiDimensionalBoundedUntilFormulas; return this->multiDimensionalBoundedUntilFormulas;
} }
@ -511,16 +511,16 @@ namespace storm {
bool FragmentSpecification::areStepBoundedCumulativeRewardFormulasAllowed() const { bool FragmentSpecification::areStepBoundedCumulativeRewardFormulasAllowed() const {
return this->stepBoundedCumulativeRewardFormulas; return this->stepBoundedCumulativeRewardFormulas;
} }
FragmentSpecification& FragmentSpecification::setStepBoundedCumulativeRewardFormulasAllowed(bool newValue) { FragmentSpecification& FragmentSpecification::setStepBoundedCumulativeRewardFormulasAllowed(bool newValue) {
this->stepBoundedCumulativeRewardFormulas = newValue; this->stepBoundedCumulativeRewardFormulas = newValue;
return *this; return *this;
} }
bool FragmentSpecification::areTimeBoundedCumulativeRewardFormulasAllowed() const { bool FragmentSpecification::areTimeBoundedCumulativeRewardFormulasAllowed() const {
return this->timeBoundedCumulativeRewardFormulas; return this->timeBoundedCumulativeRewardFormulas;
} }
FragmentSpecification& FragmentSpecification::setTimeBoundedCumulativeRewardFormulasAllowed(bool newValue) { FragmentSpecification& FragmentSpecification::setTimeBoundedCumulativeRewardFormulasAllowed(bool newValue) {
this->timeBoundedCumulativeRewardFormulas = newValue; this->timeBoundedCumulativeRewardFormulas = newValue;
return *this; return *this;
@ -534,7 +534,7 @@ namespace storm {
this->rewardBoundedCumulativeRewardFormulas = newValue; this->rewardBoundedCumulativeRewardFormulas = newValue;
return *this; return *this;
} }
bool FragmentSpecification::areMultiDimensionalCumulativeRewardFormulasAllowed() const { bool FragmentSpecification::areMultiDimensionalCumulativeRewardFormulasAllowed() const {
return this->multiDimensionalCumulativeRewardFormulas; return this->multiDimensionalCumulativeRewardFormulas;
} }
@ -543,7 +543,7 @@ namespace storm {
this->multiDimensionalCumulativeRewardFormulas = newValue; this->multiDimensionalCumulativeRewardFormulas = newValue;
return *this; return *this;
} }
FragmentSpecification& FragmentSpecification::setOperatorsAllowed(bool newValue) { FragmentSpecification& FragmentSpecification::setOperatorsAllowed(bool newValue) {
this->setProbabilityOperatorsAllowed(newValue); this->setProbabilityOperatorsAllowed(newValue);
this->setRewardOperatorsAllowed(newValue); this->setRewardOperatorsAllowed(newValue);
@ -551,40 +551,40 @@ namespace storm {
this->setTimeOperatorsAllowed(newValue); this->setTimeOperatorsAllowed(newValue);
return *this; return *this;
} }
FragmentSpecification& FragmentSpecification::setTimeAllowed(bool newValue) { FragmentSpecification& FragmentSpecification::setTimeAllowed(bool newValue) {
this->setTimeOperatorsAllowed(newValue); this->setTimeOperatorsAllowed(newValue);
this->setReachbilityTimeFormulasAllowed(newValue); this->setReachbilityTimeFormulasAllowed(newValue);
return *this; return *this;
} }
FragmentSpecification& FragmentSpecification::setLongRunAverageProbabilitiesAllowed(bool newValue) { FragmentSpecification& FragmentSpecification::setLongRunAverageProbabilitiesAllowed(bool newValue) {
this->setLongRunAverageOperatorsAllowed(newValue); this->setLongRunAverageOperatorsAllowed(newValue);
return *this; return *this;
} }
bool FragmentSpecification::isVarianceMeasureTypeAllowed() const { bool FragmentSpecification::isVarianceMeasureTypeAllowed() const {
return varianceAsMeasureType; return varianceAsMeasureType;
} }
FragmentSpecification& FragmentSpecification::setVarianceMeasureTypeAllowed(bool newValue) { FragmentSpecification& FragmentSpecification::setVarianceMeasureTypeAllowed(bool newValue) {
this->varianceAsMeasureType = newValue; this->varianceAsMeasureType = newValue;
return *this; return *this;
} }
bool FragmentSpecification::areQuantitativeOperatorResultsAllowed() const { bool FragmentSpecification::areQuantitativeOperatorResultsAllowed() const {
return this->quantitativeOperatorResults; return this->quantitativeOperatorResults;
} }
FragmentSpecification& FragmentSpecification::setQuantitativeOperatorResultsAllowed(bool newValue) { FragmentSpecification& FragmentSpecification::setQuantitativeOperatorResultsAllowed(bool newValue) {
this->quantitativeOperatorResults = newValue; this->quantitativeOperatorResults = newValue;
return *this; return *this;
} }
bool FragmentSpecification::areQualitativeOperatorResultsAllowed() const { bool FragmentSpecification::areQualitativeOperatorResultsAllowed() const {
return this->qualitativeOperatorResults; return this->qualitativeOperatorResults;
} }
FragmentSpecification& FragmentSpecification::setQualitativeOperatorResultsAllowed(bool newValue) { FragmentSpecification& FragmentSpecification::setQualitativeOperatorResultsAllowed(bool newValue) {
this->qualitativeOperatorResults = newValue; this->qualitativeOperatorResults = newValue;
return *this; return *this;
@ -593,7 +593,7 @@ namespace storm {
bool FragmentSpecification::isOperatorAtTopLevelRequired() const { bool FragmentSpecification::isOperatorAtTopLevelRequired() const {
return operatorAtTopLevelRequired; return operatorAtTopLevelRequired;
} }
FragmentSpecification& FragmentSpecification::setOperatorAtTopLevelRequired(bool newValue) { FragmentSpecification& FragmentSpecification::setOperatorAtTopLevelRequired(bool newValue) {
operatorAtTopLevelRequired = newValue; operatorAtTopLevelRequired = newValue;
return *this; return *this;
@ -602,7 +602,7 @@ namespace storm {
bool FragmentSpecification::isMultiObjectiveFormulaAtTopLevelRequired() const { bool FragmentSpecification::isMultiObjectiveFormulaAtTopLevelRequired() const {
return multiObjectiveFormulaAtTopLevelRequired; return multiObjectiveFormulaAtTopLevelRequired;
} }
FragmentSpecification& FragmentSpecification::setMultiObjectiveFormulaAtTopLevelRequired(bool newValue) { FragmentSpecification& FragmentSpecification::setMultiObjectiveFormulaAtTopLevelRequired(bool newValue) {
multiObjectiveFormulaAtTopLevelRequired = newValue; multiObjectiveFormulaAtTopLevelRequired = newValue;
return *this; return *this;
@ -611,7 +611,7 @@ namespace storm {
bool FragmentSpecification::areOperatorsAtTopLevelOfMultiObjectiveFormulasRequired() const { bool FragmentSpecification::areOperatorsAtTopLevelOfMultiObjectiveFormulasRequired() const {
return operatorsAtTopLevelOfMultiObjectiveFormulasRequired; return operatorsAtTopLevelOfMultiObjectiveFormulasRequired;
} }
FragmentSpecification& FragmentSpecification::setOperatorsAtTopLevelOfMultiObjectiveFormulasRequired(bool newValue) { FragmentSpecification& FragmentSpecification::setOperatorsAtTopLevelOfMultiObjectiveFormulasRequired(bool newValue) {
operatorsAtTopLevelOfMultiObjectiveFormulasRequired = newValue; operatorsAtTopLevelOfMultiObjectiveFormulasRequired = newValue;
return *this; return *this;

38
src/storm/logic/FragmentSpecification.h

@ -6,9 +6,9 @@
namespace storm { namespace storm {
namespace logic { namespace logic {
class RewardAccumulation; class RewardAccumulation;
class FragmentSpecification { class FragmentSpecification {
public: public:
FragmentSpecification(); FragmentSpecification();
@ -16,24 +16,24 @@ namespace storm {
FragmentSpecification(FragmentSpecification&& other) = default; FragmentSpecification(FragmentSpecification&& other) = default;
FragmentSpecification& operator=(FragmentSpecification const& other) = default; FragmentSpecification& operator=(FragmentSpecification const& other) = default;
FragmentSpecification& operator=(FragmentSpecification&& other) = default; FragmentSpecification& operator=(FragmentSpecification&& other) = default;
FragmentSpecification copy() const; FragmentSpecification copy() const;
bool areProbabilityOperatorsAllowed() const; bool areProbabilityOperatorsAllowed() const;
FragmentSpecification& setProbabilityOperatorsAllowed(bool newValue); FragmentSpecification& setProbabilityOperatorsAllowed(bool newValue);
bool areRewardOperatorsAllowed() const; bool areRewardOperatorsAllowed() const;
FragmentSpecification& setRewardOperatorsAllowed(bool newValue); FragmentSpecification& setRewardOperatorsAllowed(bool newValue);
bool areTimeOperatorsAllowed() const; bool areTimeOperatorsAllowed() const;
FragmentSpecification& setTimeOperatorsAllowed(bool newValue); FragmentSpecification& setTimeOperatorsAllowed(bool newValue);
bool areLongRunAverageOperatorsAllowed() const; bool areLongRunAverageOperatorsAllowed() const;
FragmentSpecification& setLongRunAverageOperatorsAllowed(bool newValue); FragmentSpecification& setLongRunAverageOperatorsAllowed(bool newValue);
bool areMultiObjectiveFormulasAllowed() const; bool areMultiObjectiveFormulasAllowed() const;
FragmentSpecification& setMultiObjectiveFormulasAllowed( bool newValue); FragmentSpecification& setMultiObjectiveFormulasAllowed( bool newValue);
bool areQuantileFormulasAllowed() const; bool areQuantileFormulasAllowed() const;
FragmentSpecification& setQuantileFormulasAllowed( bool newValue); FragmentSpecification& setQuantileFormulasAllowed( bool newValue);
@ -75,10 +75,10 @@ namespace storm {
bool areReachabilityRewardFormulasAllowed() const; bool areReachabilityRewardFormulasAllowed() const;
FragmentSpecification& setReachabilityRewardFormulasAllowed(bool newValue); FragmentSpecification& setReachabilityRewardFormulasAllowed(bool newValue);
bool areLongRunAverageRewardFormulasAllowed() const; bool areLongRunAverageRewardFormulasAllowed() const;
FragmentSpecification& setLongRunAverageRewardFormulasAllowed(bool newValue); FragmentSpecification& setLongRunAverageRewardFormulasAllowed(bool newValue);
bool areTotalRewardFormulasAllowed() const; bool areTotalRewardFormulasAllowed() const;
FragmentSpecification& setTotalRewardFormulasAllowed(bool newValue); FragmentSpecification& setTotalRewardFormulasAllowed(bool newValue);
@ -156,7 +156,7 @@ namespace storm {
bool areGameFormulasAllowed() const; bool areGameFormulasAllowed() const;
FragmentSpecification& setGameFormulasAllowed(bool newValue); FragmentSpecification& setGameFormulasAllowed(bool newValue);
FragmentSpecification& setOperatorsAllowed(bool newValue); FragmentSpecification& setOperatorsAllowed(bool newValue);
FragmentSpecification& setTimeAllowed(bool newValue); FragmentSpecification& setTimeAllowed(bool newValue);
FragmentSpecification& setLongRunAverageProbabilitiesAllowed(bool newValue); FragmentSpecification& setLongRunAverageProbabilitiesAllowed(bool newValue);
@ -217,16 +217,16 @@ namespace storm {
bool multiObjectiveFormulaAtTopLevelRequired; bool multiObjectiveFormulaAtTopLevelRequired;
bool quantileFormulaAtTopLevelRequired; bool quantileFormulaAtTopLevelRequired;
bool operatorsAtTopLevelOfMultiObjectiveFormulasRequired; bool operatorsAtTopLevelOfMultiObjectiveFormulasRequired;
bool rewardAccumulation; bool rewardAccumulation;
}; };
// Propositional. // Propositional.
FragmentSpecification propositional(); FragmentSpecification propositional();
// Just reachability properties. // Just reachability properties.
FragmentSpecification reachability(); FragmentSpecification reachability();
// Regular PCTL. // Regular PCTL.
FragmentSpecification pctl(); FragmentSpecification pctl();
@ -238,16 +238,16 @@ namespace storm {
// PCTL + cumulative, instantaneous, reachability and long-run rewards. // PCTL + cumulative, instantaneous, reachability and long-run rewards.
FragmentSpecification prctl(); FragmentSpecification prctl();
// Regular CSL. // Regular CSL.
FragmentSpecification csl(); FragmentSpecification csl();
// CSL + cumulative, instantaneous, reachability and long-run rewards. // CSL + cumulative, instantaneous, reachability and long-run rewards.
FragmentSpecification csrl(); FragmentSpecification csrl();
// Multi-Objective formulas. // Multi-Objective formulas.
FragmentSpecification multiObjective(); FragmentSpecification multiObjective();
// Quantile formulas. // Quantile formulas.
FragmentSpecification quantiles(); FragmentSpecification quantiles();

Loading…
Cancel
Save