|
@ -93,105 +93,110 @@ namespace storm { |
|
|
|
|
|
|
|
|
bool areNestedOperatorsAllowed() const; |
|
|
bool areNestedOperatorsAllowed() const; |
|
|
FragmentSpecification& setNestedOperatorsAllowed(bool newValue); |
|
|
FragmentSpecification& setNestedOperatorsAllowed(bool newValue); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool areNestedPathFormulasAllowed() const; |
|
|
bool areNestedPathFormulasAllowed() const; |
|
|
FragmentSpecification& setNestedPathFormulasAllowed(bool newValue); |
|
|
FragmentSpecification& setNestedPathFormulasAllowed(bool newValue); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool areNestedMultiObjectiveFormulasAllowed() const; |
|
|
bool areNestedMultiObjectiveFormulasAllowed() const; |
|
|
FragmentSpecification& setNestedMultiObjectiveFormulasAllowed(bool newValue); |
|
|
FragmentSpecification& setNestedMultiObjectiveFormulasAllowed(bool newValue); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool areNestedOperatorsInsideMultiObjectiveFormulasAllowed() const; |
|
|
bool areNestedOperatorsInsideMultiObjectiveFormulasAllowed() const; |
|
|
FragmentSpecification& setNestedOperatorsInsideMultiObjectiveFormulasAllowed(bool newValue); |
|
|
FragmentSpecification& setNestedOperatorsInsideMultiObjectiveFormulasAllowed(bool newValue); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool areOnlyEventuallyFormuluasInConditionalFormulasAllowed() const; |
|
|
bool areOnlyEventuallyFormuluasInConditionalFormulasAllowed() const; |
|
|
FragmentSpecification& setOnlyEventuallyFormuluasInConditionalFormulasAllowed(bool newValue); |
|
|
FragmentSpecification& setOnlyEventuallyFormuluasInConditionalFormulasAllowed(bool newValue); |
|
|
|
|
|
|
|
|
bool areStepBoundedUntilFormulasAllowed() const; |
|
|
bool areStepBoundedUntilFormulasAllowed() const; |
|
|
FragmentSpecification& setStepBoundedUntilFormulasAllowed(bool newValue); |
|
|
FragmentSpecification& setStepBoundedUntilFormulasAllowed(bool newValue); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool areTimeBoundedUntilFormulasAllowed() const; |
|
|
bool areTimeBoundedUntilFormulasAllowed() const; |
|
|
FragmentSpecification& setTimeBoundedUntilFormulasAllowed(bool newValue); |
|
|
FragmentSpecification& setTimeBoundedUntilFormulasAllowed(bool newValue); |
|
|
|
|
|
|
|
|
bool areRewardBoundedUntilFormulasAllowed() const; |
|
|
bool areRewardBoundedUntilFormulasAllowed() const; |
|
|
FragmentSpecification& setRewardBoundedUntilFormulasAllowed(bool newValue); |
|
|
FragmentSpecification& setRewardBoundedUntilFormulasAllowed(bool newValue); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool areMultiDimensionalBoundedUntilFormulasAllowed() const; |
|
|
bool areMultiDimensionalBoundedUntilFormulasAllowed() const; |
|
|
FragmentSpecification& setMultiDimensionalBoundedUntilFormulasAllowed(bool newValue); |
|
|
FragmentSpecification& setMultiDimensionalBoundedUntilFormulasAllowed(bool newValue); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool areStepBoundedCumulativeRewardFormulasAllowed() const; |
|
|
bool areStepBoundedCumulativeRewardFormulasAllowed() const; |
|
|
FragmentSpecification& setStepBoundedCumulativeRewardFormulasAllowed(bool newValue); |
|
|
FragmentSpecification& setStepBoundedCumulativeRewardFormulasAllowed(bool newValue); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool areTimeBoundedCumulativeRewardFormulasAllowed() const; |
|
|
bool areTimeBoundedCumulativeRewardFormulasAllowed() const; |
|
|
FragmentSpecification& setTimeBoundedCumulativeRewardFormulasAllowed(bool newValue); |
|
|
FragmentSpecification& setTimeBoundedCumulativeRewardFormulasAllowed(bool newValue); |
|
|
|
|
|
|
|
|
bool areRewardBoundedCumulativeRewardFormulasAllowed() const; |
|
|
bool areRewardBoundedCumulativeRewardFormulasAllowed() const; |
|
|
FragmentSpecification& setRewardBoundedCumulativeRewardFormulasAllowed(bool newValue); |
|
|
FragmentSpecification& setRewardBoundedCumulativeRewardFormulasAllowed(bool newValue); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool areMultiDimensionalCumulativeRewardFormulasAllowed() const; |
|
|
bool areMultiDimensionalCumulativeRewardFormulasAllowed() const; |
|
|
FragmentSpecification& setMultiDimensionalCumulativeRewardFormulasAllowed(bool newValue); |
|
|
FragmentSpecification& setMultiDimensionalCumulativeRewardFormulasAllowed(bool newValue); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool isVarianceMeasureTypeAllowed() const; |
|
|
bool isVarianceMeasureTypeAllowed() const; |
|
|
FragmentSpecification& setVarianceMeasureTypeAllowed(bool newValue); |
|
|
FragmentSpecification& setVarianceMeasureTypeAllowed(bool newValue); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool areQuantitativeOperatorResultsAllowed() const; |
|
|
bool areQuantitativeOperatorResultsAllowed() const; |
|
|
FragmentSpecification& setQuantitativeOperatorResultsAllowed(bool newValue); |
|
|
FragmentSpecification& setQuantitativeOperatorResultsAllowed(bool newValue); |
|
|
|
|
|
|
|
|
bool areQualitativeOperatorResultsAllowed() const; |
|
|
bool areQualitativeOperatorResultsAllowed() const; |
|
|
FragmentSpecification& setQualitativeOperatorResultsAllowed(bool newValue); |
|
|
FragmentSpecification& setQualitativeOperatorResultsAllowed(bool newValue); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool isOperatorAtTopLevelRequired() const; |
|
|
bool isOperatorAtTopLevelRequired() const; |
|
|
FragmentSpecification& setOperatorAtTopLevelRequired(bool newValue); |
|
|
FragmentSpecification& setOperatorAtTopLevelRequired(bool newValue); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool isMultiObjectiveFormulaAtTopLevelRequired() const; |
|
|
bool isMultiObjectiveFormulaAtTopLevelRequired() const; |
|
|
FragmentSpecification& setMultiObjectiveFormulaAtTopLevelRequired(bool newValue); |
|
|
FragmentSpecification& setMultiObjectiveFormulaAtTopLevelRequired(bool newValue); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool areOperatorsAtTopLevelOfMultiObjectiveFormulasRequired() const; |
|
|
bool areOperatorsAtTopLevelOfMultiObjectiveFormulasRequired() const; |
|
|
FragmentSpecification& setOperatorsAtTopLevelOfMultiObjectiveFormulasRequired(bool newValue); |
|
|
FragmentSpecification& setOperatorsAtTopLevelOfMultiObjectiveFormulasRequired(bool newValue); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool isQuantileFormulaAtTopLevelRequired() const; |
|
|
bool isQuantileFormulaAtTopLevelRequired() const; |
|
|
FragmentSpecification& setQuantileFormulaAtTopLevelRequired(bool newValue); |
|
|
FragmentSpecification& setQuantileFormulaAtTopLevelRequired(bool newValue); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool isRewardAccumulationAllowed() const; |
|
|
bool isRewardAccumulationAllowed() const; |
|
|
FragmentSpecification& setRewardAccumulationAllowed(bool newValue); |
|
|
FragmentSpecification& setRewardAccumulationAllowed(bool newValue); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool areCoalitionOperatorsAllowed() const; |
|
|
|
|
|
FragmentSpecification& setCoalitionOperatorsAllowed(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); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private: |
|
|
private: |
|
|
// Flags that indicate whether it is legal to see such a formula. |
|
|
// Flags that indicate whether it is legal to see such a formula. |
|
|
bool probabilityOperator; |
|
|
bool probabilityOperator; |
|
|
bool rewardOperator; |
|
|
bool rewardOperator; |
|
|
bool expectedTimeOperator; |
|
|
bool expectedTimeOperator; |
|
|
bool longRunAverageOperator; |
|
|
bool longRunAverageOperator; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool multiObjectiveFormula; |
|
|
bool multiObjectiveFormula; |
|
|
bool quantileFormula; |
|
|
bool quantileFormula; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool globallyFormula; |
|
|
bool globallyFormula; |
|
|
bool reachabilityProbabilityFormula; |
|
|
bool reachabilityProbabilityFormula; |
|
|
bool nextFormula; |
|
|
bool nextFormula; |
|
|
bool untilFormula; |
|
|
bool untilFormula; |
|
|
bool boundedUntilFormula; |
|
|
bool boundedUntilFormula; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool atomicExpressionFormula; |
|
|
bool atomicExpressionFormula; |
|
|
bool atomicLabelFormula; |
|
|
bool atomicLabelFormula; |
|
|
bool booleanLiteralFormula; |
|
|
bool booleanLiteralFormula; |
|
|
bool unaryBooleanStateFormula; |
|
|
bool unaryBooleanStateFormula; |
|
|
bool binaryBooleanStateFormula; |
|
|
bool binaryBooleanStateFormula; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool cumulativeRewardFormula; |
|
|
bool cumulativeRewardFormula; |
|
|
bool instantaneousRewardFormula; |
|
|
bool instantaneousRewardFormula; |
|
|
bool reachabilityRewardFormula; |
|
|
bool reachabilityRewardFormula; |
|
|
bool longRunAverageRewardFormula; |
|
|
bool longRunAverageRewardFormula; |
|
|
bool totalRewardFormula; |
|
|
bool totalRewardFormula; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool conditionalProbabilityFormula; |
|
|
bool conditionalProbabilityFormula; |
|
|
bool conditionalRewardFormula; |
|
|
bool conditionalRewardFormula; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool reachabilityTimeFormula; |
|
|
bool reachabilityTimeFormula; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool coalitionOperator; |
|
|
|
|
|
|
|
|
// Members that indicate certain restrictions. |
|
|
// Members that indicate certain restrictions. |
|
|
bool nestedOperators; |
|
|
bool nestedOperators; |
|
|
bool nestedPathFormulas; |
|
|
bool nestedPathFormulas; |
|
@ -228,7 +233,10 @@ namespace storm { |
|
|
|
|
|
|
|
|
// Flat PCTL. |
|
|
// Flat PCTL. |
|
|
FragmentSpecification flatPctl(); |
|
|
FragmentSpecification flatPctl(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// rPATL for SMGs |
|
|
|
|
|
FragmentSpecification rpatl(); |
|
|
|
|
|
|
|
|
// PCTL + cumulative, instantaneous, reachability and long-run rewards. |
|
|
// PCTL + cumulative, instantaneous, reachability and long-run rewards. |
|
|
FragmentSpecification prctl(); |
|
|
FragmentSpecification prctl(); |
|
|
|
|
|
|
|
|