Browse Source

Push some log output into Prism (+ autoformat).

git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@4600 bbc10eb1-c90d-0410-af57-cb519fbb1720
master
Dave Parker 14 years ago
parent
commit
58c1803f32
  1. 21
      prism/src/prism/Prism.java
  2. 16
      prism/src/prism/PrismCL.java
  3. 7
      prism/src/userinterface/properties/GUIExperiment.java

21
prism/src/prism/Prism.java

@ -2374,6 +2374,7 @@ public class Prism implements PrismSettingsListener
{ {
Object res = null; Object res = null;
// Print info
mainLog.printSeparator(); mainLog.printSeparator();
mainLog.println("\nSimulating: " + expr); mainLog.println("\nSimulating: " + expr);
if (currentDefinedMFConstants != null && currentDefinedMFConstants.getNumValues() > 0) if (currentDefinedMFConstants != null && currentDefinedMFConstants.getNumValues() > 0)
@ -2384,7 +2385,7 @@ public class Prism implements PrismSettingsListener
// Check that property is valid for this model type // Check that property is valid for this model type
expr.checkValid(currentModelType); expr.checkValid(currentModelType);
// Do model checking
// Do simulation
res = getSimulator().modelCheckSingleProperty(currentModulesFile, propertiesFile, expr, initialState, maxPathLength, simMethod); res = getSimulator().modelCheckSingleProperty(currentModulesFile, propertiesFile, expr, initialState, maxPathLength, simMethod);
return new Result(res); return new Result(res);
@ -2409,6 +2410,7 @@ public class Prism implements PrismSettingsListener
{ {
Object[] res = null; Object[] res = null;
// Print info
mainLog.printSeparator(); mainLog.printSeparator();
mainLog.print("\nSimulating"); mainLog.print("\nSimulating");
if (exprs.size() == 1) { if (exprs.size() == 1) {
@ -2428,7 +2430,7 @@ public class Prism implements PrismSettingsListener
for (Expression expr : exprs) for (Expression expr : exprs)
expr.checkValid(currentModelType); expr.checkValid(currentModelType);
// Do model checking
// Do simulation
res = getSimulator().modelCheckMultipleProperties(currentModulesFile, propertiesFile, exprs, initialState, maxPathLength, simMethod); res = getSimulator().modelCheckMultipleProperties(currentModulesFile, propertiesFile, exprs, initialState, maxPathLength, simMethod);
Result[] resArray = new Result[res.length]; Result[] resArray = new Result[res.length];
@ -2456,11 +2458,18 @@ public class Prism implements PrismSettingsListener
* @throws PrismException if something goes wrong with the sampling algorithm * @throws PrismException if something goes wrong with the sampling algorithm
* @throws InterruptedException if the thread is interrupted * @throws InterruptedException if the thread is interrupted
*/ */
public void modelCheckSimulatorExperiment(PropertiesFile propertiesFile, UndefinedConstants undefinedConstants, ResultsCollection results,
Expression propertyToCheck, State initialState, int pathLength, SimulationMethod simMethod) throws PrismException, InterruptedException
public void modelCheckSimulatorExperiment(PropertiesFile propertiesFile, UndefinedConstants undefinedConstants, ResultsCollection results, Expression expr,
State initialState, int pathLength, SimulationMethod simMethod) throws PrismException, InterruptedException
{ {
getSimulator().modelCheckExperiment(currentModulesFile, propertiesFile, undefinedConstants, results, propertyToCheck, initialState, pathLength,
simMethod);
// Print info
mainLog.printSeparator();
mainLog.println("\nSimulating: " + expr);
if (currentDefinedMFConstants != null && currentDefinedMFConstants.getNumValues() > 0)
mainLog.println("Model constants: " + currentDefinedMFConstants);
mainLog.println("Property constants: " + undefinedConstants.getPFDefinedConstantsString());
// Do simulation
getSimulator().modelCheckExperiment(currentModulesFile, propertiesFile, undefinedConstants, results, expr, initialState, pathLength, simMethod);
} }
/** /**

16
prism/src/prism/PrismCL.java

@ -258,13 +258,6 @@ public class PrismCL implements PrismModelListener
// for simulation we can do multiple values of property constants simultaneously // for simulation we can do multiple values of property constants simultaneously
if (simulate && undefinedConstants[j].getNumPropertyIterations() > 1) { if (simulate && undefinedConstants[j].getNumPropertyIterations() > 1) {
try { try {
// TODO: remove output
mainLog.printSeparator();
mainLog.println("\nSimulating: " + propertiesToCheck.get(j));
if (definedMFConstants != null)
if (definedMFConstants.getNumValues() > 0)
mainLog.println("Model constants: " + definedMFConstants);
mainLog.println("Property constants: " + undefinedConstants[j].getPFDefinedConstantsString());
simMethod = processSimulationOptions(propertiesToCheck.get(j).getExpression()); simMethod = processSimulationOptions(propertiesToCheck.get(j).getExpression());
prism.modelCheckSimulatorExperiment(propertiesFile, undefinedConstants[j], results[j], propertiesToCheck.get(j).getExpression(), null, prism.modelCheckSimulatorExperiment(propertiesFile, undefinedConstants[j], results[j], propertiesToCheck.get(j).getExpression(), null,
simMaxPath, simMethod); simMaxPath, simMethod);
@ -294,7 +287,8 @@ public class PrismCL implements PrismModelListener
// Approximate (simulation-based) model checking // Approximate (simulation-based) model checking
else { else {
simMethod = processSimulationOptions(propertiesToCheck.get(j).getExpression()); simMethod = processSimulationOptions(propertiesToCheck.get(j).getExpression());
res = prism.modelCheckSimulator(propertiesFile, propertiesToCheck.get(j).getExpression(), definedPFConstants, null, simMaxPath, simMethod);
res = prism.modelCheckSimulator(propertiesFile, propertiesToCheck.get(j).getExpression(), definedPFConstants, null, simMaxPath,
simMethod);
simMethod.reset(); simMethod.reset();
} }
} catch (PrismException e) { } catch (PrismException e) {
@ -1397,11 +1391,9 @@ public class PrismCL implements PrismModelListener
// MDP solution method // MDP solution method
else if (sw.equals("valiter")) { else if (sw.equals("valiter")) {
prism.setMDPSolnMethod(Prism.MDP_VALITER); prism.setMDPSolnMethod(Prism.MDP_VALITER);
}
else if (sw.equals("politer")) {
} else if (sw.equals("politer")) {
prism.setMDPSolnMethod(Prism.MDP_POLITER); prism.setMDPSolnMethod(Prism.MDP_POLITER);
}
else if (sw.equals("modpoliter")) {
} else if (sw.equals("modpoliter")) {
prism.setMDPSolnMethod(Prism.MDP_MODPOLITER); prism.setMDPSolnMethod(Prism.MDP_MODPOLITER);
} }
// explicit-state model construction // explicit-state model construction

7
prism/src/userinterface/properties/GUIExperiment.java

@ -270,13 +270,6 @@ public class GUIExperiment
if (useSimulation && prism.getSettings().getBoolean(PrismSettings.SIMULATOR_SIMULTANEOUS) if (useSimulation && prism.getSettings().getBoolean(PrismSettings.SIMULATOR_SIMULTANEOUS)
&& undefinedConstants.getNumPropertyIterations() > 1) { && undefinedConstants.getNumPropertyIterations() > 1) {
try { try {
// TODO
logSeparator();
logln("\nSimulating: " + propertyToCheck);
if (definedMFConstants != null)
if (definedMFConstants.getNumValues() > 0)
logln("Model constants: " + definedMFConstants);
logln("Property constants: " + undefinedConstants.getPFDefinedConstantsString());
// convert initial Values -> State // convert initial Values -> State
// (remember: null means use default or pick randomly) // (remember: null means use default or pick randomly)
parser.State initialState; parser.State initialState;

Loading…
Cancel
Save