|
|
|
@ -52,6 +52,7 @@ import prism.ModelType; |
|
|
|
import prism.PrismComponent; |
|
|
|
import prism.PrismException; |
|
|
|
import prism.PrismLangException; |
|
|
|
import prism.PrismSettings; |
|
|
|
import prism.PrismNotSupportedException; |
|
|
|
import prism.PrismPaths; |
|
|
|
import prism.PrismUtils; |
|
|
|
@ -760,6 +761,9 @@ public class LTLModelChecker extends PrismComponent |
|
|
|
continue; |
|
|
|
// Compute accepting maximum end components (MECs) in !L_i |
|
|
|
ECComputer ecComputer = ECComputer.createECComputer(this, model); |
|
|
|
if (getSettings().getBoolean(PrismSettings.PRISM_PRE_REL)) { |
|
|
|
ecComputer.setPredecessorRelation(model.getPredecessorRelation(this, true)); |
|
|
|
} |
|
|
|
ecComputer.computeMECStates(statesLi_not, acceptance.get(i).getK()); |
|
|
|
List<BitSet> mecs = ecComputer.getMECStates(); |
|
|
|
// Union MEC states |
|
|
|
@ -789,6 +793,9 @@ public class LTLModelChecker extends PrismComponent |
|
|
|
|
|
|
|
Stack<ECandPairs> todo = new Stack<ECandPairs>(); |
|
|
|
ECComputer ecComputer = ECComputer.createECComputer(this, model); |
|
|
|
if (getSettings().getBoolean(PrismSettings.PRISM_PRE_REL)) { |
|
|
|
ecComputer.setPredecessorRelation(model.getPredecessorRelation(this, true)); |
|
|
|
} |
|
|
|
ecComputer.computeMECStates(); |
|
|
|
for (BitSet mecs : ecComputer.getMECStates()) { |
|
|
|
ECandPairs ecp = new ECandPairs(); |
|
|
|
@ -825,6 +832,9 @@ public class LTLModelChecker extends PrismComponent |
|
|
|
// nothing to do |
|
|
|
} else { |
|
|
|
ecComputer = ECComputer.createECComputer(this, model); |
|
|
|
if (getSettings().getBoolean(PrismSettings.PRISM_PRE_REL)) { |
|
|
|
ecComputer.setPredecessorRelation(model.getPredecessorRelation(this, true)); |
|
|
|
} |
|
|
|
ecComputer.computeMECStates(restrict); |
|
|
|
for (BitSet mecs : ecComputer.getMECStates()) { |
|
|
|
ECandPairs newEcp = new ECandPairs(); |
|
|
|
@ -864,6 +874,9 @@ public class LTLModelChecker extends PrismComponent |
|
|
|
continue; |
|
|
|
// Compute maximum end components (MECs) in !L_i |
|
|
|
ECComputer ecComputer = ECComputer.createECComputer(this, model); |
|
|
|
if (getSettings().getBoolean(PrismSettings.PRISM_PRE_REL)) { |
|
|
|
ecComputer.setPredecessorRelation(model.getPredecessorRelation(this, true)); |
|
|
|
} |
|
|
|
ecComputer.computeMECStates(statesLi_not); |
|
|
|
List<BitSet> mecs = ecComputer.getMECStates(); |
|
|
|
// Check which MECs contain a state from each K_i_j |
|
|
|
|