parseaut: allow the univ-branch diagnostics to be ignored
* spot/parseaut/parseaut.yy: Check the SPOT_HOA_TOLERANT variable. * tests/core/ltl3ba.test, tests/core/parseaut.test: Adjust test cases. * NEWS, bin/man/spot-x.x: Mention SPOT_HOA_TOLERANT.
This commit is contained in:
parent
d3607a7ce3
commit
eb8df6d72c
5 changed files with 33 additions and 5 deletions
5
NEWS
5
NEWS
|
|
@ -181,6 +181,11 @@ New in spot 2.3.5.dev (not yet released)
|
||||||
been adjusted to these new semantics, see "Backward-incompatible
|
been adjusted to these new semantics, see "Backward-incompatible
|
||||||
changes" below.
|
changes" below.
|
||||||
|
|
||||||
|
- The parser for HOA now recognize and verifies correct use of the
|
||||||
|
"univ-branch" property. This is known to be a problem with option
|
||||||
|
-H1 of ltl3ba 1.1.2 and ltl3dra 0.2.3, so the environment variable
|
||||||
|
SPOT_HOA_TOLERANT can be set to disable the diagnostic.
|
||||||
|
|
||||||
Python:
|
Python:
|
||||||
|
|
||||||
- The 'spot.gen' package exports the functions from libspotgen.
|
- The 'spot.gen' package exports the functions from libspotgen.
|
||||||
|
|
|
||||||
|
|
@ -91,6 +91,14 @@ The contents of this variable is added to any dot output, immediately
|
||||||
before the first state is output. This makes it easy to override
|
before the first state is output. This makes it easy to override
|
||||||
global attributes of the graph.
|
global attributes of the graph.
|
||||||
|
|
||||||
|
.TP
|
||||||
|
\fBSPOT_HOA_TOLERANT\fR
|
||||||
|
If this variable is set, a few sanity checks performed by the HOA
|
||||||
|
parser are skipped. The tests in questions correspond to issues
|
||||||
|
in third-party tools that output incorrect HOA (e.g., declaring
|
||||||
|
the automaton with property "univ-branch" when no universal branching
|
||||||
|
is actually used)
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
\fBSPOT_SATLOG\fR
|
\fBSPOT_SATLOG\fR
|
||||||
If set to a filename, the SAT-based minimization routines will append
|
If set to a filename, the SAT-based minimization routines will append
|
||||||
|
|
|
||||||
|
|
@ -1110,18 +1110,25 @@ body: states
|
||||||
error(p.loc, "... despite 'properties: !deterministic'");
|
error(p.loc, "... despite 'properties: !deterministic'");
|
||||||
det_warned = true;
|
det_warned = true;
|
||||||
}
|
}
|
||||||
if (res.universal.is_true() && !det_warned)
|
static bool tolerant = getenv("SPOT_HOA_TOLERANT");
|
||||||
|
if (res.universal.is_true() && !det_warned && !tolerant)
|
||||||
if (auto p = res.prop_is_true("exist-branch"))
|
if (auto p = res.prop_is_true("exist-branch"))
|
||||||
{
|
{
|
||||||
error(@1, "automaton has no existential branching...");
|
error(@1, "automaton has no existential branching...");
|
||||||
error(p.loc, "... despite 'properties: exist-branch'");
|
error(p.loc, "... despite 'properties: exist-branch'\n"
|
||||||
|
"note: If this is an issue you cannot fix, you may disable "
|
||||||
|
"this diagnostic\n by defining the SPOT_HOA_TOLERANT "
|
||||||
|
"environment variable.");
|
||||||
det_warned = true;
|
det_warned = true;
|
||||||
}
|
}
|
||||||
if (res.existential.is_true() && !det_warned)
|
if (res.existential.is_true() && !det_warned && !tolerant)
|
||||||
if (auto p = res.prop_is_true("univ-branch"))
|
if (auto p = res.prop_is_true("univ-branch"))
|
||||||
{
|
{
|
||||||
error(@1, "automaton is has no universal branching...");
|
error(@1, "automaton is has no universal branching...");
|
||||||
error(p.loc, "... despite 'properties: univ-branch'");
|
error(p.loc, "... despite 'properties: univ-branch'\n"
|
||||||
|
"note: If this is an issue you cannot fix, you may disable "
|
||||||
|
"this diagnostic\n by defining the SPOT_HOA_TOLERANT "
|
||||||
|
"environment variable.");
|
||||||
det_warned = true;
|
det_warned = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,11 @@ set -e
|
||||||
(ltl3ba -v) || exit 77
|
(ltl3ba -v) || exit 77
|
||||||
|
|
||||||
# The -H1 option will output alternating automata, so this tests
|
# The -H1 option will output alternating automata, so this tests
|
||||||
# ltlcross's support in this area.
|
# ltlcross's support in this area. However ltl3ba 1.1.3 incorrectly
|
||||||
|
# output "univ-branch" for all automata produced by -H1, causing
|
||||||
|
# error messages from Spot's parser unless SPOT_HOA_TOLERANT is set.
|
||||||
|
SPOT_HOA_TOLERANT=1
|
||||||
|
export SPOT_HOA_TOLERANT
|
||||||
# Using '_x' as first formula makes sure that ltlcross automatically
|
# Using '_x' as first formula makes sure that ltlcross automatically
|
||||||
# relabels the input formula when the atomic propositions are not
|
# relabels the input formula when the atomic propositions are not
|
||||||
# compatible with Spin's syntax.
|
# compatible with Spin's syntax.
|
||||||
|
|
|
||||||
|
|
@ -783,12 +783,16 @@ input:62.1-64.6: automaton has existential branching...
|
||||||
input:57.13-25: ... despite 'properties: !exist-branch'
|
input:57.13-25: ... despite 'properties: !exist-branch'
|
||||||
input:58.9-64.6: automaton is has no universal branching...
|
input:58.9-64.6: automaton is has no universal branching...
|
||||||
input:57.27-37: ... despite 'properties: univ-branch'
|
input:57.27-37: ... despite 'properties: univ-branch'
|
||||||
|
note: If this is an issue you cannot fix, you may disable this diagnostic
|
||||||
|
by defining the SPOT_HOA_TOLERANT environment variable.
|
||||||
input:68.1-10: conjunct initial state despite...
|
input:68.1-10: conjunct initial state despite...
|
||||||
input:71.26-37: ... property: !univ-branch
|
input:71.26-37: ... property: !univ-branch
|
||||||
input:91.6-8: universal branch used despite previous declaration...
|
input:91.6-8: universal branch used despite previous declaration...
|
||||||
input:85.26-37: ... here
|
input:85.26-37: ... here
|
||||||
input:86.9-91.8: automaton has no existential branching...
|
input:86.9-91.8: automaton has no existential branching...
|
||||||
input:85.13-24: ... despite 'properties: exist-branch'
|
input:85.13-24: ... despite 'properties: exist-branch'
|
||||||
|
note: If this is an issue you cannot fix, you may disable this diagnostic
|
||||||
|
by defining the SPOT_HOA_TOLERANT environment variable.
|
||||||
input:106.6-9: we can read HOA v1 but this file uses v1.1; $t
|
input:106.6-9: we can read HOA v1 but this file uses v1.1; $t
|
||||||
input:108.1-10: conjunct initial state despite...
|
input:108.1-10: conjunct initial state despite...
|
||||||
input:111.13-25: ... property: deterministic
|
input:111.13-25: ... property: deterministic
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue