private void Check(AnalysisConfiguration configuration) { var m = new Model(); Probability probabilityOfInvariantViolation; Formula invariantViolated = new SimpleLocalVarIsTrue(0); var finallyInvariantViolated = new UnaryFormula(invariantViolated, UnaryOperator.Finally); var markovChainGenerator = new SimpleMarkovChainFromExecutableModelGenerator(m); markovChainGenerator.Configuration = configuration; markovChainGenerator.AddFormulaToCheck(finallyInvariantViolated); var ltmc = markovChainGenerator.GenerateLabeledMarkovChain(); var modelChecker = new ConfigurationDependentLtmcModelChecker(configuration, ltmc, Output.TextWriterAdapter()); using (modelChecker) { probabilityOfInvariantViolation = modelChecker.CalculateProbability(finallyInvariantViolated); } probabilityOfInvariantViolation.Is(0.01, 0.0001).ShouldBe(true); }
public void Check() { var m = new Model(); Probability probabilityOfInvariantViolation; Formula invariantViolated = new SimpleLocalVarIsTrue(0); var finallyInvariantViolated = new UnaryFormula(invariantViolated, UnaryOperator.Finally); var markovChainGenerator = new SimpleDtmcFromExecutableModelGenerator(m); markovChainGenerator.Configuration.ModelCapacity = ModelCapacityByMemorySize.Small; markovChainGenerator.AddFormulaToCheck(finallyInvariantViolated); var dtmc = markovChainGenerator.GenerateMarkovChain(); var typeOfModelChecker = typeof(BuiltinDtmcModelChecker); var modelChecker = (DtmcModelChecker)Activator.CreateInstance(typeOfModelChecker, dtmc, Output.TextWriterAdapter()); using (modelChecker) { probabilityOfInvariantViolation = modelChecker.CalculateProbability(finallyInvariantViolated); } probabilityOfInvariantViolation.Is(0.01, 0.0001).ShouldBe(true); }