@ -176,19 +176,19 @@ public class ProbModelChecker extends NonProbModelChecker
if ( pb ! = null ) {
if ( pb ! = null ) {
if ( ( p = = 0 & & relOp . equals ( ">=" ) ) | | ( p = = 1 & & relOp . equals ( "<=" ) ) ) {
if ( ( p = = 0 & & relOp . equals ( ">=" ) ) | | ( p = = 1 & & relOp . equals ( "<=" ) ) ) {
mainLog . printWarning ( "Checking for probability " + relOp + " " + p
mainLog . printWarning ( "Checking for probability " + relOp + " " + p
+ " - formula trivially satisfies all states\n " ) ;
+ " - formula trivially satisfies all states" ) ;
JDD . Ref ( reach ) ;
JDD . Ref ( reach ) ;
return new StateValuesMTBDD ( reach , model ) ;
return new StateValuesMTBDD ( reach , model ) ;
} else if ( ( p = = 0 & & relOp . equals ( "<" ) ) | | ( p = = 1 & & relOp . equals ( ">" ) ) ) {
} else if ( ( p = = 0 & & relOp . equals ( "<" ) ) | | ( p = = 1 & & relOp . equals ( ">" ) ) ) {
mainLog . printWarning ( "Checking for probability " + relOp + " " + p
mainLog . printWarning ( "Checking for probability " + relOp + " " + p
+ " - formula trivially satisfies no states\n " ) ;
+ " - formula trivially satisfies no states" ) ;
return new StateValuesMTBDD ( JDD . Constant ( 0 ) , model ) ;
return new StateValuesMTBDD ( JDD . Constant ( 0 ) , model ) ;
}
}
}
}
/ / Print a warning if Pmin / Pmax used
/ / Print a warning if Pmin / Pmax used
if ( relOp . equals ( "min=" ) | | relOp . equals ( "max=" ) ) {
if ( relOp . equals ( "min=" ) | | relOp . equals ( "max=" ) ) {
mainLog . printWarning ( "\"Pmin=?\" and \"Pmax=?\" operators are identical to \"P=?\" for DTMCs/CTMCs\n " ) ;
mainLog . printWarning ( "\"Pmin=?\" and \"Pmax=?\" operators are identical to \"P=?\" for DTMCs/CTMCs" ) ;
}
}
/ / Compute probabilities
/ / Compute probabilities
@ -263,19 +263,19 @@ public class ProbModelChecker extends NonProbModelChecker
if ( rb ! = null ) {
if ( rb ! = null ) {
if ( r = = 0 & & relOp . equals ( ">=" ) ) {
if ( r = = 0 & & relOp . equals ( ">=" ) ) {
mainLog . printWarning ( "Checking for reward " + relOp + " " + r
mainLog . printWarning ( "Checking for reward " + relOp + " " + r
+ " - formula trivially satisfies all states\n " ) ;
+ " - formula trivially satisfies all states" ) ;
JDD . Ref ( reach ) ;
JDD . Ref ( reach ) ;
return new StateValuesMTBDD ( reach , model ) ;
return new StateValuesMTBDD ( reach , model ) ;
} else if ( r = = 0 & & relOp . equals ( "<" ) ) {
} else if ( r = = 0 & & relOp . equals ( "<" ) ) {
mainLog . printWarning ( "Checking for reward " + relOp + " " + r
mainLog . printWarning ( "Checking for reward " + relOp + " " + r
+ " - formula trivially satisfies no states\n " ) ;
+ " - formula trivially satisfies no states" ) ;
return new StateValuesMTBDD ( JDD . Constant ( 0 ) , model ) ;
return new StateValuesMTBDD ( JDD . Constant ( 0 ) , model ) ;
}
}
}
}
/ / print a warning if Rmin / Rmax used
/ / print a warning if Rmin / Rmax used
if ( relOp . equals ( "min=" ) | | relOp . equals ( "max=" ) ) {
if ( relOp . equals ( "min=" ) | | relOp . equals ( "max=" ) ) {
mainLog . printWarning ( "\"Rmin=?\" and \"Rmax=?\" operators are identical to \"R=?\" for DTMCs/CTMCs\n " ) ;
mainLog . printWarning ( "\"Rmin=?\" and \"Rmax=?\" operators are identical to \"R=?\" for DTMCs/CTMCs" ) ;
}
}
/ / compute rewards
/ / compute rewards
@ -352,12 +352,12 @@ public class ProbModelChecker extends NonProbModelChecker
if ( pb ! = null ) {
if ( pb ! = null ) {
if ( ( p = = 0 & & relOp . equals ( ">=" ) ) | | ( p = = 1 & & relOp . equals ( "<=" ) ) ) {
if ( ( p = = 0 & & relOp . equals ( ">=" ) ) | | ( p = = 1 & & relOp . equals ( "<=" ) ) ) {
mainLog . printWarning ( "Checking for probability " + relOp + " " + p
mainLog . printWarning ( "Checking for probability " + relOp + " " + p
+ " - formula trivially satisfies all states\n " ) ;
+ " - formula trivially satisfies all states" ) ;
JDD . Ref ( reach ) ;
JDD . Ref ( reach ) ;
return new StateValuesMTBDD ( reach , model ) ;
return new StateValuesMTBDD ( reach , model ) ;
} else if ( ( p = = 0 & & relOp . equals ( "<" ) ) | | ( p = = 1 & & relOp . equals ( ">" ) ) ) {
} else if ( ( p = = 0 & & relOp . equals ( "<" ) ) | | ( p = = 1 & & relOp . equals ( ">" ) ) ) {
mainLog . printWarning ( "Checking for probability " + relOp + " " + p
mainLog . printWarning ( "Checking for probability " + relOp + " " + p
+ " - formula trivially satisfies no states\n " ) ;
+ " - formula trivially satisfies no states" ) ;
return new StateValuesMTBDD ( JDD . Constant ( 0 ) , model ) ;
return new StateValuesMTBDD ( JDD . Constant ( 0 ) , model ) ;
}
}
}
}
@ -802,8 +802,7 @@ public class ProbModelChecker extends NonProbModelChecker
/ / if requested ( i . e . when prob bound is 0 or 1 and precomputation algorithms are enabled ) ,
/ / if requested ( i . e . when prob bound is 0 or 1 and precomputation algorithms are enabled ) ,
/ / compute probabilities qualitatively
/ / compute probabilities qualitatively
if ( qual ) {
if ( qual ) {
mainLog . printWarning ( "Probability bound in formula is"
+ " 0/1 so exact probabilities may not be computed\n" ) ;
mainLog . print ( "\nProbability bound in formula is 0/1 so not computing exact probabilities...\n" ) ;
probs = computeUntilProbsQual ( trans01 , b1 , b2 ) ;
probs = computeUntilProbsQual ( trans01 , b1 , b2 ) ;
}
}
/ / otherwise actually compute probabilities
/ / otherwise actually compute probabilities