org: examples with alternating automata
* doc/org/tut23.org, doc/org/tut24.org, doc/org/tut31.org: New files. * doc/Makefile.am, doc/org/tut.org: Add them. * doc/org/hoa.org, doc/org/concepts.org: Adjust for alternation support. * NEWS: Add links.
This commit is contained in:
parent
f5b261d80e
commit
3d0a971aa8
8 changed files with 715 additions and 18 deletions
|
|
@ -554,6 +554,75 @@ $txt
|
|||
#+RESULTS:
|
||||
[[file:concept-twa1.png]]
|
||||
|
||||
|
||||
* Alternating ω-automata
|
||||
|
||||
Alternating ω-automata are ω-automata in which the destination of an
|
||||
edge can be a group of states. If an edge has more than one
|
||||
destination, it is called a /universal edge/, and its destinations are
|
||||
referred to as its /universal destinations/.
|
||||
|
||||
When an alternating automaton evaluates a word, following a universal
|
||||
edge will have the same effect as forking the automaton to evaluate
|
||||
the rest of the word simultaneously from each universal destination.
|
||||
A run of an alternating automaton can therefore be pictured as a tree.
|
||||
The tree is accepting if all its branches satisfy the acceptance condition.
|
||||
(See the [[http://adl.github.io/hoaf/][Hanoi Omega-Automa format]] for more precise semantics.)
|
||||
|
||||
For instance the following alternating co-Büchi ω-automaton was
|
||||
generated by [[https://sourceforge.net/projects/ltl3ba/][=ltl3ba 1.1.3=]] for the LTL formula =GF(a <-> Xb)=.
|
||||
|
||||
#+NAME: concepts-alt
|
||||
#+BEGIN_SRC sh :results verbatim :exports none
|
||||
autfilt -d.ba <<EOF
|
||||
HOA: v1
|
||||
States: 5
|
||||
Start: 0
|
||||
acc-name: co-Buchi
|
||||
Acceptance: 1 Fin(0)
|
||||
AP: 2 "a" "b"
|
||||
properties: trans-labels explicit-labels state-acc univ-branch very-weak
|
||||
--BODY--
|
||||
State: 0 "GF(a <-> Xb)"
|
||||
[(!0)] 3&0
|
||||
[(0)] 2&0
|
||||
[t] 1&0
|
||||
State: 1 "F(a <-> Xb)" {0}
|
||||
[(!0)] 3
|
||||
[(0)] 2
|
||||
[t] 1
|
||||
State: 2 "b"
|
||||
[(1)] 4
|
||||
State: 3 "!b"
|
||||
[(!1)] 4
|
||||
State: 4 "t"
|
||||
[t] 4
|
||||
--END--
|
||||
EOF
|
||||
#+END_SRC
|
||||
|
||||
#+BEGIN_SRC dot :file concepts-alt.png :cmdline -Tpng :var txt=concepts-alt :exports results
|
||||
$txt
|
||||
#+END_SRC
|
||||
|
||||
#+RESULTS:
|
||||
[[file:concepts-alt.png]]
|
||||
|
||||
In this picture, the universal edges appear as arrows with a white
|
||||
tips going to a small dot, from which additional arrows connect to the
|
||||
universal destinations. Here the three universal edges all leave the
|
||||
initial state, and connect to two universal destinations. Note that
|
||||
non-determinism is allowed between universal edges, for instance upon
|
||||
reading a word starting with "=a=", this automaton should
|
||||
non-deterministically decide to read the rest of the word from states
|
||||
=GF(a<->Xb)= and =F(a<->Xb)= (when taking the universal transition
|
||||
labeled by =1=) or from states =GF(a<->Xb)= and =b= (when taking the
|
||||
universal transition labeled by =a=).
|
||||
|
||||
Alternation support in Spot is currently experimental, please report
|
||||
any issue. The only supported file format able to represent
|
||||
alternating automata is the [[#hoa][HOA format, introduced below]].
|
||||
|
||||
* Never claims
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: neverclaim
|
||||
|
|
@ -770,7 +839,7 @@ $txt
|
|||
|
||||
The [[http://adl.github.io/hoaf/][HOA format]] inherits several features from the [[:dstar][DSTAR format]], but
|
||||
extends it in many ways, including support for non-deterministic
|
||||
automata and for arbitrary acceptance conditions.
|
||||
automata, alternating automata, and for arbitrary acceptance conditions.
|
||||
|
||||
#+BEGIN_SRC sh :results verbatim :exports results
|
||||
ltldo ltl2dstar -f 'FGp0 | GFp1' --name=%f
|
||||
|
|
@ -826,13 +895,10 @@ $txt
|
|||
Since this file format is the only one able to represent the range of
|
||||
ω-automata supported by Spot, and it its default output format.
|
||||
|
||||
However note that Spot does not (yet?) support all automata that can
|
||||
be expressed using the HOA format. For instance it has no support for
|
||||
alternating automata, or for the =Alphabet:=-based automata introduced
|
||||
in v1.1 of HOA (only =AP:=-based automata are supported).
|
||||
|
||||
The present support for the HOA format in Spot, is discussed on [[file:hoa.org][a
|
||||
separate page]].
|
||||
However note that Spot does not support all automata that can be
|
||||
expressed using the HOA format. The present support for the HOA
|
||||
format in Spot, is discussed on [[file:hoa.org][a separate page]], with a section
|
||||
dedicated to the [[file:hoa.org::#restrictions][restrictions]].
|
||||
|
||||
* Linear-time Temporal Logic (LTL)
|
||||
:PROPERTIES:
|
||||
|
|
@ -975,7 +1041,6 @@ program. Blue boxes are Python-related.
|
|||
:CUSTOM_ID: property-flags
|
||||
:END:
|
||||
|
||||
|
||||
The automaton class used by Spot to represent ω-Automata is called
|
||||
=twa= (because we use TωA as a short for Transition-based
|
||||
ω-Automaton). As its names implies, the =twa= class supports only
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue