Commit 2928551f authored by Christian Müller's avatar Christian Müller
Browse files

tactics etc

parent d5e78c71
Workflow
forallmay i,j O(i,j) -> A += (i,j)
forall i,j A(i,j) -> B += (i,j)
forall i,j B(i,j) -> C += (i,j)
Target
C(x,y)
Workflow
forallmay i,j O(i,j) -> A += (i,j)
forall i,j A(i,j) -> B += (i,j)
forall i,j B(i,j) -> C += (i,j)
forall i,j C(i,j) -> D += (i,j)
forall i,j D(i,j) -> E += (i,j)
Target
E(x,y)
Workflow
forallmay i,j O(i,j) -> A += (i,j)
forall i,j A(i,j) -> B += (i,j)
forall i,j B(i,j) -> C += (i,j)
forall i,j C(i,j) -> D += (i,j)
forall i,j D(i,j) -> E += (i,j)
forall i,j E(i,j) -> F += (i,j)
forall i,j F(i,j) -> G += (i,j)
forall i,j G(i,j) -> H += (i,j)
Target
H(x,y)
Workflow
forallmay x,s
O(s) -> R += (x)
Target
R(x)
......@@ -25,7 +25,7 @@ class Z3Test extends FlatSpec with LazyLogging with BeforeAndAfterEach {
var ctx: Context = null
var s: Solver = null
val TIMEOUT = 5000 // in milliseconds
val TIMEOUT = 60000 // in milliseconds
override def beforeEach() = {
val cfg = new HashMap[String, String]()
......@@ -43,8 +43,7 @@ class Z3Test extends FlatSpec with LazyLogging with BeforeAndAfterEach {
this.s = s
}
def checkNonOmittingWF(spec:blocks.Spec) = {
def checkNonOmittingWF(spec: blocks.Spec) = {
logger.info(s"Encoding Spec:\n$spec")
val t1 = "pi1"
val t2 = "pi2"
......@@ -198,14 +197,34 @@ class Z3Test extends FlatSpec with LazyLogging with BeforeAndAfterEach {
check(s, Status.SATISFIABLE)
}
it should "check tests/simpleChoiceNoOracle (nonomitting, stubborn) as LTL prop" in {
it should "check tests/fixedarity3 (nonomitting, stubborn) as LTL prop" in {
val s = checkNonOmittingWF(ExampleWorkflows.parseExample("tests/fixedarity3").get)
check(s, Status.SATISFIABLE)
}
it should "check tests/fixedarity5 (nonomitting, stubborn) as LTL prop" in {
val s = checkNonOmittingWF(ExampleWorkflows.parseExample("tests/fixedarity5").get)
check(s, Status.SATISFIABLE)
}
it should "check tests/fixedarity8 (nonomitting, stubborn) as LTL prop" ignore {
val s = checkNonOmittingWF(ExampleWorkflows.parseExample("tests/fixedarity8").get)
check(s, Status.SATISFIABLE) // takes > 60s
}
it should "check nonomitting/fixedarity10 (nonomitting, stubborn) as LTL prop" ignore {
val s = checkNonOmittingWF(ExampleWorkflows.parseExample("nonomitting/fixedarity10").get)
check(s, Status.SATISFIABLE) // takes > 60s
}
it should "check tests/simpleChoiceNoOracle (nonomitting, stubborn) as LTL prop" ignore {
val s = checkNonOmittingWF(ExampleWorkflows.parseExample("tests/simpleChoiceNoOracle").get)
check(s, Status.UNSATISFIABLE) // takes long
check(s, Status.UNSATISFIABLE) // takes > 60s
}
it should "check tests/loopexample (nonomitting, stubborn) as LTL prop" in {
it should "check tests/loopexample (nonomitting, stubborn) as LTL prop" ignore {
val s = checkNonOmittingWF(ExampleWorkflows.parseExample("tests/loopexample").get)
check(s, Status.SATISFIABLE) // takes long
check(s, Status.SATISFIABLE) // takes > 60s
}
// it should "check FO workflows" in {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment