hoa: add option to output version 1.1
* spot/twaalgos/hoa.cc: Implement the option. * bin/common_aoutput.cc, doc/org/hoa.org, doc/org/oaut.org, spot/twaalgos/hoa.hh, NEWS: Document it. * tests/core/strength.test: Test that.
This commit is contained in:
parent
fd33eedf4b
commit
7144efabb9
7 changed files with 484 additions and 5 deletions
|
|
@ -21,6 +21,13 @@ some information that are useful to better understand the behavior
|
|||
of the tools distributed by Spot, and it also look at some lower-level,
|
||||
discussing details that are interesting when programming with Spot.
|
||||
|
||||
Spot can read files written using either version 1 or version 1.1 of
|
||||
the HOA format. It currently outputs version 1 by default, but
|
||||
version 1.1 can be requested from the command-line using option
|
||||
=-H1.1=. Future version of Spot are likely to switch to version 1.1
|
||||
of HOA by default, so version 1 can already be requested explicitly
|
||||
using =-H1=.
|
||||
|
||||
* Format, files, and TωA
|
||||
|
||||
Some note about the abbreviation first. We usually write "HOA format"
|
||||
|
|
@ -48,6 +55,9 @@ the HOA format, the output may not be exactly the same as the input.
|
|||
deterministic" or "deterministic") automata are currently supported
|
||||
by Spot.
|
||||
|
||||
- Automata using explicit alphabet (introduced in version 1.1 of the format
|
||||
via =Alphabet:=) are not supported.
|
||||
|
||||
- The maximum number of acceptance sets used is (currently) limited
|
||||
to 32.
|
||||
|
||||
|
|
@ -672,6 +682,14 @@ particular:
|
|||
| =inherently-weak= | trusted | yes | as stored if (=-Hv= or not =weak=) | can be checked with =--check=strength= |
|
||||
| =colored= | ignored | no | checked | |
|
||||
|
||||
The above table is for version 1 of the format. When version 1.1 is
|
||||
selected (using =-H1.1=), some negated properties may be output. In
|
||||
particular, =stutter-sensitive= is replaced by =!stutter-invariant=.
|
||||
The logic of not cluttering the output with all of =!terminal=,
|
||||
=!weak=, and =!inhenrently-weak= is similar to the positive versions:
|
||||
=!inherently-weak= implies =!weak= which in turn implies =!terminal=,
|
||||
so only one of those is emitted unless =-Hv= is used.
|
||||
|
||||
** Named properties
|
||||
|
||||
In addition to the bit properties discussed above, a TωA can carry
|
||||
|
|
|
|||
|
|
@ -391,6 +391,53 @@ HOA: v1 name: "a U b" States: 2 Start: 1 AP: 2 "a" "b" acc-name: Buchi Acceptanc
|
|||
HOA: v1 name: "(Gb | F!a) W c" States: 5 Start: 1 AP: 3 "b" "a" "c" acc-name: Buchi Acceptance: 1 Inf(0) properties: trans-labels explicit-labels trans-acc stutter-invariant --BODY-- State: 0 [0] 0 {0} State: 1 [0&1&!2] 0 [!1&!2] 1 {0} [1&!2] 2 [2] 3 State: 2 [!1&!2] 1 {0} [1&!2] 2 [!1&2] 3 [1&2] 4 State: 3 [t] 3 {0} State: 4 [!1] 3 [1] 4 --END--
|
||||
#+END_SRC
|
||||
|
||||
Finally, version 1.1 of the HOA format can be specified using the
|
||||
=-H1.1= option. Version 1, which is currently the default, can also
|
||||
be requested explicitly using =-H1=. The main advantage of version
|
||||
1.1, as far as Spot is concerned, is that some of negated properties
|
||||
can be transmitted. For instance, compare
|
||||
|
||||
#+BEGIN_SRC sh :results verbatim :exports both :wrap SRC hoa
|
||||
ltl2tgba -f GFa -f FGa -H1 --check | grep -E '^(HOA|properties|name):'
|
||||
#+END_SRC
|
||||
|
||||
#+RESULTS:
|
||||
#+BEGIN_SRC hoa
|
||||
HOA: v1
|
||||
name: "GFa"
|
||||
properties: trans-labels explicit-labels trans-acc complete
|
||||
properties: deterministic stutter-invariant
|
||||
HOA: v1
|
||||
name: "FGa"
|
||||
properties: trans-labels explicit-labels state-acc stutter-invariant
|
||||
properties: weak
|
||||
#+END_SRC
|
||||
|
||||
versus
|
||||
|
||||
#+BEGIN_SRC sh :results verbatim :exports both :wrap SRC hoa
|
||||
ltl2tgba -f GFa -f FGa -H1.1 --check | grep -E '^(HOA|properties|name):'
|
||||
#+END_SRC
|
||||
|
||||
#+RESULTS:
|
||||
#+BEGIN_SRC hoa
|
||||
HOA: v1.1
|
||||
name: "GFa"
|
||||
properties: trans-labels explicit-labels trans-acc complete
|
||||
properties: deterministic stutter-invariant !inherently-weak
|
||||
HOA: v1.1
|
||||
name: "FGa"
|
||||
properties: trans-labels explicit-labels state-acc !complete
|
||||
properties: !deterministic !unambiguous stutter-invariant weak
|
||||
properties: !terminal
|
||||
#+END_SRC
|
||||
|
||||
The =--check= option inspects the automata for additional properties
|
||||
such that their strength or whether they are stutter-invariant and
|
||||
unambiguous. You can see in this example that version 1.1 of the
|
||||
format carries additional negated properties that could not be
|
||||
represented in the first version.
|
||||
|
||||
* LBTT output
|
||||
|
||||
The [[http://www.tcs.hut.fi/Software/lbtt/doc/html/Format-for-automata.html][LBTT]] output has two flavors: state-based (which is used to output
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue