Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Christian Müller
NIWO
Commits
f340a8e3
Commit
f340a8e3
authored
Dec 03, 2018
by
Christian Müller
Browse files
build inspector
parent
e47aefd4
Changes
3
Hide whitespace changes
Inline
Side-by-side
src/main/scala/de/tum/workflows/InvariantInspector.scala
0 → 100644
View file @
f340a8e3
package
de.tum.workflows
import
foltl.FOLTL._
import
blocks.Workflow._
import
Implicits._
import
com.typesafe.scalalogging.LazyLogging
import
de.tum.workflows.ltl.FOTransformers
import
de.tum.workflows.Utils._
import
de.tum.workflows.foltl.Stubborn
import
de.tum.workflows.foltl.Properties
import
java.io.PrintWriter
import
java.io.File
import
de.tum.workflows.blocks.Workflow
import
de.tum.workflows.blocks.Spec
import
de.tum.workflows.foltl.FormulaFunctions
import
de.tum.workflows.toz3.InvariantChecker
import
de.tum.workflows.toz3.InvariantGenerator
import
de.tum.workflows.toz3.InvProperties
object
InvariantInspector
extends
App
with
LazyLogging
{
def
inspect
(
name
:
String
)
{
logger
.
info
(
s
"Generating $name"
)
val
optspec
=
ExampleWorkflows
.
parseExample
(
name
)
if
(!
optspec
.
isDefined
)
{
logger
.
error
(
s
"Not a valid spec: $name"
)
}
val
spec
=
optspec
.
get
logger
.
info
(
s
"Encoding Spec:\n$spec"
)
def
invariant
=
InvariantGenerator
.
invariantNoninterStubbornSingleBS
_
// InvariantGenerator.invariantNoninterStubbornBS _
// InvariantChecker.invariantNoninterStubborn _
// InvariantChecker.invariantAllEqual _
val
(
t
,
(
res
,
dot
))
=
time
{
// InvariantChecker.checkInvariantOnce(spec.w, inv(spec), true)
val
(
result
,
graph
,
afterlabels
,
proven
,
dot
,
time
)
=
InvariantChecker
.
checkInvariantFPLabelling
(
spec
,
invariant
(
spec
),
InvProperties
.
DEFAULT
)
println
(
graph
)
println
(
afterlabels
.
last
)
(
result
,
dot
)
}
val
msg
=
s
"Invariant was ${if (res) "" else "
not
"}proven (took $t ms)\n"
write
(
s
"${name}.inv"
,
msg
)
for
((
s
,
i
)
<-
dot
.
zipWithIndex
)
{
write
(
s
"${name}_${i}.dot"
,
s
)
}
}
inspect
(
"omitting/conference"
)
// generateExample("tests/loopexampleNoOracle")
// generateAllExamples()
}
\ No newline at end of file
src/main/scala/de/tum/workflows/MainInvariants.scala
View file @
f340a8e3
...
...
@@ -54,6 +54,7 @@ object MainInvariants extends App with LazyLogging {
clear
()
// generateExample("nonomitting/conference")
generateExample
(
"tests/loopexampleNoOracle"
)
generateExample
(
"omitting/conference"
)
// generateExample("tests/loopexampleNoOracle")
// generateAllExamples()
}
\ No newline at end of file
src/main/scala/de/tum/workflows/MainLTL.scala
View file @
f340a8e3
...
...
@@ -10,6 +10,7 @@ import de.tum.workflows.foltl.FormulaFunctions
import
de.tum.workflows.owltransformer.OwlTransformer
import
owl.ltl.algorithms.LanguageAnalysis
import
owl.ltl.rewriter.SimplifierFactory
import
de.tum.workflows.ltl.FOTransformers
object
MainLTL
extends
App
with
LazyLogging
{
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment