|
|
@ -91,6 +91,7 @@ import parser.type.TypeInt; |
|
|
import parser.type.TypePathBool; |
|
|
import parser.type.TypePathBool; |
|
|
import parser.type.TypePathDouble; |
|
|
import parser.type.TypePathDouble; |
|
|
import prism.ModelType; |
|
|
import prism.ModelType; |
|
|
|
|
|
import prism.OpRelOpBound; |
|
|
import prism.PrismComponent; |
|
|
import prism.PrismComponent; |
|
|
import prism.PrismException; |
|
|
import prism.PrismException; |
|
|
import prism.PrismSettings; |
|
|
import prism.PrismSettings; |
|
|
@ -918,7 +919,9 @@ final public class ParamModelChecker extends PrismComponent |
|
|
if (p.compareTo(0) == -1 || p.compareTo(1) == 1) |
|
|
if (p.compareTo(0) == -1 || p.compareTo(1) == 1) |
|
|
throw new PrismException("Invalid probability bound " + p + " in P operator"); |
|
|
throw new PrismException("Invalid probability bound " + p + " in P operator"); |
|
|
} |
|
|
} |
|
|
min = relOp.isLowerBound() || relOp.isMin(); |
|
|
|
|
|
|
|
|
// Get info from P operator |
|
|
|
|
|
OpRelOpBound opInfo = expr.getRelopBoundInfo(constantValues); |
|
|
|
|
|
min = opInfo.getMinMax(modelType).isMin(); |
|
|
|
|
|
|
|
|
// Compute probabilities |
|
|
// Compute probabilities |
|
|
if (!expr.getExpression().isSimplePathFormula()) { |
|
|
if (!expr.getExpression().isSimplePathFormula()) { |
|
|
@ -1029,7 +1032,9 @@ final public class ParamModelChecker extends PrismComponent |
|
|
if (r.compareTo(0) == -1) |
|
|
if (r.compareTo(0) == -1) |
|
|
throw new PrismException("Invalid reward bound " + r + " in R[] formula"); |
|
|
throw new PrismException("Invalid reward bound " + r + " in R[] formula"); |
|
|
} |
|
|
} |
|
|
min = relOp.isLowerBound() || relOp.isMin(); |
|
|
|
|
|
|
|
|
// Get info from R operator |
|
|
|
|
|
OpRelOpBound opInfo = expr.getRelopBoundInfo(constantValues); |
|
|
|
|
|
min = opInfo.getMinMax(model.getModelType()).isMin(); |
|
|
|
|
|
|
|
|
ParamRewardStruct rew = constructRewards(model, rewStruct, constantValues); |
|
|
ParamRewardStruct rew = constructRewards(model, rewStruct, constantValues); |
|
|
mainLog.println("Building reward structure..."); |
|
|
mainLog.println("Building reward structure..."); |
|
|
@ -1186,7 +1191,9 @@ final public class ParamModelChecker extends PrismComponent |
|
|
if (p.compareTo(0) == -1 || p.compareTo(1) == 1) |
|
|
if (p.compareTo(0) == -1 || p.compareTo(1) == 1) |
|
|
throw new PrismException("Invalid probability bound " + p + " in P operator"); |
|
|
throw new PrismException("Invalid probability bound " + p + " in P operator"); |
|
|
} |
|
|
} |
|
|
min = relOp.isLowerBound() || relOp.isMin(); |
|
|
|
|
|
|
|
|
// Get info from SS operator |
|
|
|
|
|
OpRelOpBound opInfo = expr.getRelopBoundInfo(constantValues); |
|
|
|
|
|
min = opInfo.getMinMax(modelType).isMin(); |
|
|
|
|
|
|
|
|
// Compute probabilities |
|
|
// Compute probabilities |
|
|
probs = checkProbSteadyState(model, expr.getExpression(), min, needStates); |
|
|
probs = checkProbSteadyState(model, expr.getExpression(), min, needStates); |
|
|
|