Commit 663f1e49 authored by Christian Müller's avatar Christian Müller
Browse files

newer sbt

parent 6dbc2d68
No preview for this file type
G ((n0() → X n1()) ∧
(n1() → X n1())) ∧
n0() ∧
¬ n1() ∧
G ¬ (n0() ∧
n1()) ∧
∀ x:T,s:T. ¬ R(t1)(x,s) ∧
G (((n0() ∧
X n1()) → ∀ x:T,s:T. (X R(t1)(x,s) ↔ (R(t1)(x,s) ∨
(O(t1)(s) ∧
choice0(x,s))))) ∧
((n1() ∧
X n1()) → ∀ x:T,s:T. (X R(t1)(x,s) ↔ R(t1)(x,s)))) ∧
∀ x:T,s:T. ¬ R(t2)(x,s) ∧
G (((n0() ∧
X n1()) → ∀ x:T,s:T. (X R(t2)(x,s) ↔ (R(t2)(x,s) ∨
(O(t2)(s) ∧
choice0(x,s))))) ∧
((n1() ∧
X n1()) → ∀ x:T,s:T. (X R(t2)(x,s) ↔ R(t2)(x,s)))) ∧
∃ x:T,s:T. (True ∧
F ¬ (R(t1)(x,s) ↔ eq()))
\ No newline at end of file
G ((n0 → X n1) ∧ (n1 → X n1)) ∧ n0 ∧ ¬ n1 ∧ G ¬ (n0 ∧ n1) ∧ ¬ R#t1_x#T_x#T ∧ ¬ R#t1_x#T_s#T ∧ ¬ R#t1_s#T_x#T ∧ ¬ R#t1_s#T_s#T ∧ G (((n0 ∧ X n1) → ((X R#t1_x#T_x#T ↔ (R#t1_x#T_x#T ∨ (O#t1_x#T ∧ choice0_x#T_x#T))) ∧ (X R#t1_x#T_s#T ↔ (R#t1_x#T_s#T ∨ (O#t1_s#T ∧ choice0_x#T_s#T))) ∧ (X R#t1_s#T_x#T ↔ (R#t1_s#T_x#T ∨ (O#t1_x#T ∧ choice0_s#T_x#T))) ∧ (X R#t1_s#T_s#T ↔ (R#t1_s#T_s#T ∨ (O#t1_s#T ∧ choice0_s#T_s#T))))) ∧ ((n1 ∧ X n1) → ((X R#t1_x#T_x#T ↔ R#t1_x#T_x#T) ∧ (X R#t1_x#T_s#T ↔ R#t1_x#T_s#T) ∧ (X R#t1_s#T_x#T ↔ R#t1_s#T_x#T) ∧ (X R#t1_s#T_s#T ↔ R#t1_s#T_s#T)))) ∧ ¬ R#t2_x#T_x#T ∧ ¬ R#t2_x#T_s#T ∧ ¬ R#t2_s#T_x#T ∧ ¬ R#t2_s#T_s#T ∧ G (((n0 ∧ X n1) → ((X R#t2_x#T_x#T ↔ (R#t2_x#T_x#T ∨ (O#t2_x#T ∧ choice0_x#T_x#T))) ∧ (X R#t2_x#T_s#T ↔ (R#t2_x#T_s#T ∨ (O#t2_s#T ∧ choice0_x#T_s#T))) ∧ (X R#t2_s#T_x#T ↔ (R#t2_s#T_x#T ∨ (O#t2_x#T ∧ choice0_s#T_x#T))) ∧ (X R#t2_s#T_s#T ↔ (R#t2_s#T_s#T ∨ (O#t2_s#T ∧ choice0_s#T_s#T))))) ∧ ((n1 ∧ X n1) → ((X R#t2_x#T_x#T ↔ R#t2_x#T_x#T) ∧ (X R#t2_x#T_s#T ↔ R#t2_x#T_s#T) ∧ (X R#t2_s#T_x#T ↔ R#t2_s#T_x#T) ∧ (X R#t2_s#T_s#T ↔ R#t2_s#T_s#T)))) ∧ True ∧ F ¬ (R#t1_x#T_s#T ↔ R#t2_x#T_s#T)
\ No newline at end of file
simplechoice_stubborn.foltl: 92
simplechoice_stubborn.ltl: 187
Universe: x:T, s:T
Satisfiable: true
Owl runtime: 156107 ms
(G(X!p4|!p9|((((!p1|!p11)&!p8&X!p8)|(Xp8&(p8|(p1&p11))))&((!p3&X!p3&(!p2|!p11))|((p3|(p2&p11))&Xp3))&(((p15|(p6&p14))&Xp15)|(!p15&X!p15&(!p6|!p14)))&((X!p17&!p17&(!p5|!p14))|(Xp17&(p17|(p5&p14))))))&G(X!p4|!p9|(((X!p0&(!p1|!p10)&!p0)|(Xp0&(p0|(p1&p10))))&(((!p2|!p10)&!p13&X!p13)|(Xp13&((p2&p10)|p13)))&(((p16|(p6&p7))&Xp16)|((!p6|!p7)&X!p16&!p16))&(((!p5|!p7)&X!p12&!p12)|(Xp12&(p12|(p5&p7))))))&!p17&!p16&G(!p4|!p9)&p9&!p8&!p15&!p13&!p12&!p3&!p0&G(!p4|Xp4)&G(X!p4|!p4|(((X!p8&!p8)|(Xp8&p8))&((!p17&X!p17)|(p17&Xp17))&((p3&Xp3)|(!p3&X!p3))&((p15&Xp15)|(X!p15&!p15))))&!p4&F((!p17|!p12)&(p17|p12))&G(X!p4|!p4|(((!p0&X!p0)|(p0&Xp0))&((Xp12&p12)|(X!p12&!p12))&((Xp13&p13)|(X!p13&!p13))&((!p16&X!p16)|(p16&Xp16))))&G(!p9|Xp4))
\ No newline at end of file
G ((n0 → X n1) ∧
(n1 → X n1)) ∧
n0 ∧
¬ n1 ∧
G ¬ (n0 ∧
n1) ∧
¬ R#t1_x#T_x#T ∧
¬ R#t1_x#T_s#T ∧
¬ R#t1_s#T_x#T ∧
¬ R#t1_s#T_s#T ∧
G (((n0 ∧
X n1) → ((X R#t1_x#T_x#T ↔ (R#t1_x#T_x#T ∨
(O#t1_x#T ∧
choice0_x#T_x#T))) ∧
(X R#t1_x#T_s#T ↔ (R#t1_x#T_s#T ∨
(O#t1_s#T ∧
choice0_x#T_s#T))) ∧
(X R#t1_s#T_x#T ↔ (R#t1_s#T_x#T ∨
(O#t1_x#T ∧
choice0_s#T_x#T))) ∧
(X R#t1_s#T_s#T ↔ (R#t1_s#T_s#T ∨
(O#t1_s#T ∧
choice0_s#T_s#T))))) ∧
((n1 ∧
X n1) → ((X R#t1_x#T_x#T ↔ R#t1_x#T_x#T) ∧
(X R#t1_x#T_s#T ↔ R#t1_x#T_s#T) ∧
(X R#t1_s#T_x#T ↔ R#t1_s#T_x#T) ∧
(X R#t1_s#T_s#T ↔ R#t1_s#T_s#T)))) ∧
¬ R#t2_x#T_x#T ∧
¬ R#t2_x#T_s#T ∧
¬ R#t2_s#T_x#T ∧
¬ R#t2_s#T_s#T ∧
G (((n0 ∧
X n1) → ((X R#t2_x#T_x#T ↔ (R#t2_x#T_x#T ∨
(O#t2_x#T ∧
choice0_x#T_x#T))) ∧
(X R#t2_x#T_s#T ↔ (R#t2_x#T_s#T ∨
(O#t2_s#T ∧
choice0_x#T_s#T))) ∧
(X R#t2_s#T_x#T ↔ (R#t2_s#T_x#T ∨
(O#t2_x#T ∧
choice0_s#T_x#T))) ∧
(X R#t2_s#T_s#T ↔ (R#t2_s#T_s#T ∨
(O#t2_s#T ∧
choice0_s#T_s#T))))) ∧
((n1 ∧
X n1) → ((X R#t2_x#T_x#T ↔ R#t2_x#T_x#T) ∧
(X R#t2_x#T_s#T ↔ R#t2_x#T_s#T) ∧
(X R#t2_s#T_x#T ↔ R#t2_s#T_x#T) ∧
(X R#t2_s#T_s#T ↔ R#t2_s#T_s#T)))) ∧
True ∧
F ¬ (R#t1_x#T_s#T ↔ R#t2_x#T_s#T)
\ No newline at end of file
G ((n0() → X n1()) ∧
(n1() → X n1())) ∧
n0() ∧
¬ n1() ∧
G ¬ (n0() ∧
n1()) ∧
∀ x:T,s:T. ¬ R(t1)(x,s) ∧
G (((n0() ∧
X n1()) → ∀ x:T,s:T. (X R(t1)(x,s) ↔ (R(t1)(x,s) ∨
(O(t1)(s) ∧
choice0(x,s))))) ∧
((n1() ∧
X n1()) → ∀ x:T,s:T. (X R(t1)(x,s) ↔ R(t1)(x,s)))) ∧
∀ x:T,s:T. ¬ R(t2)(x,s) ∧
G (((n0() ∧
X n1()) → ∀ x:T,s:T. (X R(t2)(x,s) ↔ (R(t2)(x,s) ∨
(O(t2)(s) ∧
choice0(x,s))))) ∧
((n1() ∧
X n1()) → ∀ x:T,s:T. (X R(t2)(x,s) ↔ R(t2)(x,s)))) ∧
∃ x:T,s:T. (True ∧
F ¬ (R(t1)(x,s) ↔ eq()))
\ No newline at end of file
G ((n0 → X n1) ∧ (n1 → X n1)) ∧ n0 ∧ ¬ n1 ∧ G ¬ (n0 ∧ n1) ∧ ¬ R#t1_x#T_x#T ∧ ¬ R#t1_x#T_s#T ∧ ¬ R#t1_s#T_x#T ∧ ¬ R#t1_s#T_s#T ∧ G (((n0 ∧ X n1) → ((X R#t1_x#T_x#T ↔ (R#t1_x#T_x#T ∨ (O#t1_x#T ∧ choice0_x#T_x#T))) ∧ (X R#t1_x#T_s#T ↔ (R#t1_x#T_s#T ∨ (O#t1_s#T ∧ choice0_x#T_s#T))) ∧ (X R#t1_s#T_x#T ↔ (R#t1_s#T_x#T ∨ (O#t1_x#T ∧ choice0_s#T_x#T))) ∧ (X R#t1_s#T_s#T ↔ (R#t1_s#T_s#T ∨ (O#t1_s#T ∧ choice0_s#T_s#T))))) ∧ ((n1 ∧ X n1) → ((X R#t1_x#T_x#T ↔ R#t1_x#T_x#T) ∧ (X R#t1_x#T_s#T ↔ R#t1_x#T_s#T) ∧ (X R#t1_s#T_x#T ↔ R#t1_s#T_x#T) ∧ (X R#t1_s#T_s#T ↔ R#t1_s#T_s#T)))) ∧ ¬ R#t2_x#T_x#T ∧ ¬ R#t2_x#T_s#T ∧ ¬ R#t2_s#T_x#T ∧ ¬ R#t2_s#T_s#T ∧ G (((n0 ∧ X n1) → ((X R#t2_x#T_x#T ↔ (R#t2_x#T_x#T ∨ (O#t2_x#T ∧ choice0_x#T_x#T))) ∧ (X R#t2_x#T_s#T ↔ (R#t2_x#T_s#T ∨ (O#t2_s#T ∧ choice0_x#T_s#T))) ∧ (X R#t2_s#T_x#T ↔ (R#t2_s#T_x#T ∨ (O#t2_x#T ∧ choice0_s#T_x#T))) ∧ (X R#t2_s#T_s#T ↔ (R#t2_s#T_s#T ∨ (O#t2_s#T ∧ choice0_s#T_s#T))))) ∧ ((n1 ∧ X n1) → ((X R#t2_x#T_x#T ↔ R#t2_x#T_x#T) ∧ (X R#t2_x#T_s#T ↔ R#t2_x#T_s#T) ∧ (X R#t2_s#T_x#T ↔ R#t2_s#T_x#T) ∧ (X R#t2_s#T_s#T ↔ R#t2_s#T_s#T)))) ∧ True ∧ F ¬ (R#t1_x#T_s#T ↔ R#t2_x#T_s#T)
\ No newline at end of file
simplechoice_stubborn.foltl: 92
simplechoice_stubborn.ltl: 187
Universe: x:T, s:T
Satisfiable: true
Owl runtime: 90339 ms
(G(!p4|Xp4)&G(!p9|Xp4)&F((p17|p12)&(!p17|!p12))&G((((!p17&X!p17)|(p17&Xp17))&((p3&Xp3)|(!p3&X!p3))&((Xp8&p8)|(X!p8&!p8))&((p15&Xp15)|(X!p15&!p15)))|X!p4|!p4)&G(!p4|!p9)&G((((Xp12&p12)|(X!p12&!p12))&((Xp13&p13)|(X!p13&!p13))&((p0&Xp0)|(!p0&X!p0))&((p16&Xp16)|(!p16&X!p16)))|X!p4|!p4)&!p16&p9&!p17&!p8&G(X!p4|((((p0|(p1&p10))&Xp0)|(!p0&(!p1|!p10)&X!p0))&(((!p2|!p10)&X!p13&!p13)|((p13|(p2&p10))&Xp13))&(((p16|(p6&p7))&Xp16)|((!p6|!p7)&!p16&X!p16))&(((!p5|!p7)&X!p12&!p12)|((p12|(p5&p7))&Xp12)))|!p9)&G(X!p4|(((Xp8&(p8|(p1&p11)))|((!p1|!p11)&X!p8&!p8))&(((p3|(p2&p11))&Xp3)|((!p2|!p11)&X!p3&!p3))&((Xp15&(p15|(p6&p14)))|(!p15&X!p15&(!p6|!p14)))&((X!p17&(!p5|!p14)&!p17)|(Xp17&(p17|(p5&p14)))))|!p9)&!p15&!p12&!p13&!p3&!p0&!p4)
\ No newline at end of file
G ((n0 → X n1) ∧
(n1 → X n1)) ∧
n0 ∧
¬ n1 ∧
G ¬ (n0 ∧
n1) ∧
¬ R#t1_x#T_x#T ∧
¬ R#t1_x#T_s#T ∧
¬ R#t1_s#T_x#T ∧
¬ R#t1_s#T_s#T ∧
G (((n0 ∧
X n1) → ((X R#t1_x#T_x#T ↔ (R#t1_x#T_x#T ∨
(O#t1_x#T ∧
choice0_x#T_x#T))) ∧
(X R#t1_x#T_s#T ↔ (R#t1_x#T_s#T ∨
(O#t1_s#T ∧
choice0_x#T_s#T))) ∧
(X R#t1_s#T_x#T ↔ (R#t1_s#T_x#T ∨
(O#t1_x#T ∧
choice0_s#T_x#T))) ∧
(X R#t1_s#T_s#T ↔ (R#t1_s#T_s#T ∨
(O#t1_s#T ∧
choice0_s#T_s#T))))) ∧
((n1 ∧
X n1) → ((X R#t1_x#T_x#T ↔ R#t1_x#T_x#T) ∧
(X R#t1_x#T_s#T ↔ R#t1_x#T_s#T) ∧
(X R#t1_s#T_x#T ↔ R#t1_s#T_x#T) ∧
(X R#t1_s#T_s#T ↔ R#t1_s#T_s#T)))) ∧
¬ R#t2_x#T_x#T ∧
¬ R#t2_x#T_s#T ∧
¬ R#t2_s#T_x#T ∧
¬ R#t2_s#T_s#T ∧
G (((n0 ∧
X n1) → ((X R#t2_x#T_x#T ↔ (R#t2_x#T_x#T ∨
(O#t2_x#T ∧
choice0_x#T_x#T))) ∧
(X R#t2_x#T_s#T ↔ (R#t2_x#T_s#T ∨
(O#t2_s#T ∧
choice0_x#T_s#T))) ∧
(X R#t2_s#T_x#T ↔ (R#t2_s#T_x#T ∨
(O#t2_x#T ∧
choice0_s#T_x#T))) ∧
(X R#t2_s#T_s#T ↔ (R#t2_s#T_s#T ∨
(O#t2_s#T ∧
choice0_s#T_s#T))))) ∧
((n1 ∧
X n1) → ((X R#t2_x#T_x#T ↔ R#t2_x#T_x#T) ∧
(X R#t2_x#T_s#T ↔ R#t2_x#T_s#T) ∧
(X R#t2_s#T_x#T ↔ R#t2_s#T_x#T) ∧
(X R#t2_s#T_s#T ↔ R#t2_s#T_s#T)))) ∧
True ∧
F ¬ (R#t1_x#T_s#T ↔ R#t2_x#T_s#T)
\ No newline at end of file
......@@ -16,6 +16,13 @@ libraryDependencies ++= Seq(
"org.scala-lang.modules" %% "scala-parser-combinators" % "1.0.5"
)
assemblyJarName in assembly := "invariants.jar"
test in assembly := {}
mainClass in assembly := Some("de.tum.workflows.InvariantCLI")
Compile / unmanagedJars ++= {
val base = baseDirectory.value
val baseDirectories = (base / "lib") +++ (base / "lib" / "owl")
val customJars = (baseDirectories ** "*.jar") +++ (base / "d" / "my.jar")
customJars.classpath
}
//assemblyJarName in assembly := "invariants.jar"
//test in assembly := {}
//mainClass in assembly := Some("de.tum.workflows.InvariantCLI")
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.6")
// addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.6")
sbt.version=0.13.15
sbt.version=1.1.2
addSbtPlugin("com.artima.supersafe" % "sbtplugin" % "1.1.2")
import owl.ltl.BooleanConstant;
import owl.ltl.algorithms.LanguageAnalysis;
import java.io.FileDescriptor;
import java.io.FileOutputStream;
import java.io.PrintStream;
class Test {
public static void main(String[] args) {
System.out.println("Test");
var owlform = BooleanConstant.FALSE;
var checksat = LanguageAnalysis.isSatisfiable(owlform);
System.out.println(checksat);
}
}
\ No newline at end of file
......@@ -75,7 +75,8 @@ object Encoding extends LazyLogging {
def toGraph(w: Workflow): WorkflowGraph = {
var n1 = 0;
var n1 = 0
def newnode() = {
n1 = n1 + 1
n1
......@@ -92,7 +93,7 @@ object Encoding extends LazyLogging {
makeblock(step, n1, newnode(), newnode, makeid)
}
}).flatten
var nodes = (0 until n1).toList
val nodes = (0 until n1).toList
Graph.from(nodes, edges)
}
......
......@@ -48,29 +48,29 @@ object ExampleWorkflows extends LazyLogging {
}
def parsedExamples(prefix:String, folder:File):Map[String, Spec] = {
val map = (for ((name, f) <- examples) yield {
val map = for ((name, f) <- examples) yield {
val s = Source.fromFile(f).mkString
val spec = WorkflowParser.parseSpec(s)
logger.info(s"Parsing file $f")
if (!spec.successful) {
logger.error(s"Parsing of $f unsuccessful: $spec")
name -> None
logger.error(s"Parsing of $f unsuccessful: $spec")
name -> None
} else {
if (!spec.get.checkSanity()) {
logger.error(s"Sanity check of $f failed. Skipping file.")
name -> None
name -> None
} else {
name -> Some(spec.get)
name -> Some(spec.get)
}
}
}) toMap
}
// filter out all empty specs and those that are not sane
(for ((k, v) <- map if (v.isDefined)) yield {
for ((k, v) <- map if (v.isDefined)) yield {
(k, v.get)
}) toMap
}
}
val examples = listExamples("", FOLDER)
......
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