Browse Source

Fixed bug in LTL model checking introduced by last commit.

git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@3512 bbc10eb1-c90d-0410-af57-cb519fbb1720
master
Dave Parker 15 years ago
parent
commit
31c5f239e2
  1. 5
      prism/src/prism/NondetModelChecker.java
  2. 7
      prism/src/prism/ProbModelChecker.java

5
prism/src/prism/NondetModelChecker.java

@ -487,7 +487,9 @@ public class NondetModelChecker extends NonProbModelChecker
// First, filter over DRA start states
// (which we can get from initial states of product model,
// because of the way it is constructed)
startMask = modelProduct.getStart();
startMask = mcLtl.buildStartMask(dra, labelDDs, draDDRowVars);
JDD.Ref(model.getReach());
startMask = JDD.And(model.getReach(), startMask);
probsProduct.filter(startMask);
// Then sum over DD vars for the DRA state
probs = probsProduct.sumOverDDVars(draDDRowVars, model);
@ -499,6 +501,7 @@ public class NondetModelChecker extends NonProbModelChecker
JDD.Deref(labelDDs.get(i));
}
JDD.Deref(acc);
JDD.Deref(startMask);
draDDRowVars.derefAll();
draDDColVars.derefAll();

7
prism/src/prism/ProbModelChecker.java

@ -648,9 +648,9 @@ public class ProbModelChecker extends NonProbModelChecker
// Convert probability vector to original model
// First, filter over DRA start states
// (which we can get from initial states of product model,
// because of the way it is constructed)
startMask = modelProduct.getStart();
startMask = mcLtl.buildStartMask(dra, labelDDs, draDDRowVars);
JDD.Ref(model.getReach());
startMask = JDD.And(model.getReach(), startMask);
probsProduct.filter(startMask);
// Then sum over DD vars for the DRA state
probs = probsProduct.sumOverDDVars(draDDRowVars, model);
@ -662,6 +662,7 @@ public class ProbModelChecker extends NonProbModelChecker
JDD.Deref(labelDDs.get(i));
}
JDD.Deref(acc);
JDD.Deref(startMask);
draDDRowVars.derefAll();
draDDColVars.derefAll();

Loading…
Cancel
Save