org: simplify babel blocks using #+PROPERTY: header-args

This feature is in Org 9, which is already required.

* doc/org/autcross.org, doc/org/autfilt.org, doc/org/compile.org,
doc/org/concepts.org, doc/org/csv.org, doc/org/dstar2tgba.org,
doc/org/genaut.org, doc/org/genltl.org, doc/org/hierarchy.org,
doc/org/hoa.org, doc/org/ioltl.org, doc/org/ltl2tgba.org,
doc/org/ltl2tgta.org, doc/org/ltlcross.org, doc/org/ltldo.org,
doc/org/ltlfilt.org, doc/org/ltlgrind.org, doc/org/ltlsynt.org,
doc/org/oaut.org, doc/org/randaut.org, doc/org/randltl.org,
doc/org/satmin.org, doc/org/setup.org, doc/org/tools.org,
doc/org/tut01.org, doc/org/tut02.org, doc/org/tut03.org,
doc/org/tut04.org, doc/org/tut10.org, doc/org/tut11.org,
doc/org/tut12.org, doc/org/tut20.org, doc/org/tut21.org,
doc/org/tut22.org, doc/org/tut23.org, doc/org/tut24.org,
doc/org/tut30.org, doc/org/tut31.org, doc/org/tut50.org,
doc/org/upgrade2.org: Simplify SRC block setups for sh, python and
C++.  Also fix a few typos and examples along the way.
This commit is contained in:
Alexandre Duret-Lutz 2019-04-16 21:03:13 +02:00
parent 0c8e6a38a8
commit 8a96828d85
40 changed files with 2193 additions and 2281 deletions

View file

@ -3,6 +3,9 @@
#+DESCRIPTION: Code example for iterating over ω-automata in Spot
#+INCLUDE: setup.org
#+HTML_LINK_UP: tut.html
#+PROPERTY: header-args:sh :results verbatim :exports both
#+PROPERTY: header-args:python :results output :exports both
#+PROPERTY: header-args:C+++ :results verbatim :exports both
This example demonstrates how to iterate over an automaton in C++ and
Python. This case uses automata stored entirely in memory as a graph:
@ -26,14 +29,14 @@ First let's create an example automaton in HOA format. We use =-U= to
request unambiguous automata, as this allows us to demonstrate how
property bits are used.
#+BEGIN_SRC sh :results verbatim :exports both :wrap SRC hoa
#+BEGIN_SRC sh :wrap SRC hoa
ltl2tgba -U 'Fa | G(Fb&Fc)' | tee tut21.hoa
#+END_SRC
#+RESULTS:
#+BEGIN_SRC hoa
#+begin_SRC hoa
HOA: v1
name: "Fa | G(Fb & Fc)"
States: 4
name: "F(a | G(Fb & Fc))"
States: 17
Start: 0
AP: 3 "a" "b" "c"
acc-name: generalized-Buchi 2
@ -44,19 +47,102 @@ properties: stutter-invariant
State: 0
[0] 1
[!0] 2
[!0] 3
[!0&1&2] 3
[!0&!1&2] 4
[!0&!2] 5
[!0&!2] 6
State: 1
[t] 1 {0 1}
State: 2
[0] 1
[!0] 2
[!1&!2] 2
[!1&2] 2 {1}
[1&!2] 2 {0}
[1&2] 2 {0 1}
State: 3
[!0&1&2] 3 {0 1}
[!0&!1&2] 3 {1}
[!0&1&!2] 3 {0}
[!0&!1&!2] 3
[!0&1&2] 3
[!0&!1&2] 4
[!0&!2] 5
[!0&!2] 6
[0&!2] 7
[0&!1&2] 8
[0&1&2] 9
[0&!1&2] 10
[0&1&!2] 11
[0&!1&!2] 12
[0&!1&!2] 13
State: 4
[!0&1&2] 3
[!0&!1&2] 4
[!0&!2] 5
[!0&1&!2] 6
[0&1&!2] 7
[0&!1] 8
[0&1&2] 9
[0&!1&2] 10
[0&1&!2] 11
[0&!1&!2] 12
[0&!1&!2] 14
[!0&!1&!2] 15
State: 5
[!0&1&2] 3
[!0&!1&2] 4
[!0&!2] 5
[0&!1&2] 8
[0&1&2] 9
[0&!1&2] 10
[0&1&!2] 11
[0&!1&!2] 12
[0&!1&!2] 13
State: 6
[!0&!2] 6
[0&!2] 7
State: 7
[!2] 7 {0 1}
State: 8
[!1] 8 {0 1}
State: 9
[!2] 7
[!1&2] 8
[1&2] 9
[!1&2] 10
[1&!2] 11
[!1&!2] 12
[!1&!2] 13
State: 10
[1&!2] 7
[1&2] 9
[!1&2] 10
[1&!2] 11
[!1&!2] 12
[!1&!2] 14
State: 11
[!1&2] 8
[1&2] 9
[!1&2] 10
[1&!2] 11
[!1&!2] 12
[!1&!2] 13
State: 12
[1&2] 9
[!1&2] 10
[1&!2] 11
[!1&!2] 12
State: 13
[!1&2] 8
[!1&!2] 13
State: 14
[1&!2] 7
[!1&!2] 14
State: 15
[!0&1&!2] 6
[0&1&!2] 7
[0&!1&!2] 14
[!0&!1&!2] 15
[0&!1&!2] 16
State: 16
[!1&!2] 16 {0 1}
--END--
#+END_SRC
#+end_SRC
* C++
@ -76,7 +162,7 @@ into a BDD, use the =bdd_dict::varnum()= method to obtain the
corresponding BDD variable number, and then use for instance
=bdd_ithvar()= to convert this BDD variable number into an actual BDD.
#+BEGIN_SRC C++ :results verbatim :exports both
#+BEGIN_SRC C++
#include <string>
#include <iostream>
#include <spot/parseaut/public.hh>
@ -163,12 +249,286 @@ corresponding BDD variable number, and then use for instance
#+END_SRC
#+RESULTS:
#+begin_example
Acceptance: Inf(0)&Inf(1)
Number of sets: 2
Number of states: 17
Number of edges: 80
Initial state: 0
Atomic propositions: a (=0) b (=1) c (=2)
Name: F(a | G(Fb & Fc))
Complete: no
Deterministic: no
Unambiguous: yes
State-Based Acc: maybe
Terminal: maybe
Weak: maybe
Inherently Weak: maybe
Stutter Invariant: yes
State 0:
edge(0 -> 1)
label = a
acc sets = {}
edge(0 -> 2)
label = !a
acc sets = {}
edge(0 -> 3)
label = !a & b & c
acc sets = {}
edge(0 -> 4)
label = !a & !b & c
acc sets = {}
edge(0 -> 5)
label = !a & !c
acc sets = {}
edge(0 -> 6)
label = !a & !c
acc sets = {}
State 1:
edge(1 -> 1)
label = 1
acc sets = {0,1}
State 2:
edge(2 -> 2)
label = !b & !c
acc sets = {}
edge(2 -> 2)
label = !b & c
acc sets = {1}
edge(2 -> 2)
label = b & !c
acc sets = {0}
edge(2 -> 2)
label = b & c
acc sets = {0,1}
State 3:
edge(3 -> 3)
label = !a & b & c
acc sets = {}
edge(3 -> 4)
label = !a & !b & c
acc sets = {}
edge(3 -> 5)
label = !a & !c
acc sets = {}
edge(3 -> 6)
label = !a & !c
acc sets = {}
edge(3 -> 7)
label = a & !c
acc sets = {}
edge(3 -> 8)
label = a & !b & c
acc sets = {}
edge(3 -> 9)
label = a & b & c
acc sets = {}
edge(3 -> 10)
label = a & !b & c
acc sets = {}
edge(3 -> 11)
label = a & b & !c
acc sets = {}
edge(3 -> 12)
label = a & !b & !c
acc sets = {}
edge(3 -> 13)
label = a & !b & !c
acc sets = {}
State 4:
edge(4 -> 3)
label = !a & b & c
acc sets = {}
edge(4 -> 4)
label = !a & !b & c
acc sets = {}
edge(4 -> 5)
label = !a & !c
acc sets = {}
edge(4 -> 6)
label = !a & b & !c
acc sets = {}
edge(4 -> 7)
label = a & b & !c
acc sets = {}
edge(4 -> 8)
label = a & !b
acc sets = {}
edge(4 -> 9)
label = a & b & c
acc sets = {}
edge(4 -> 10)
label = a & !b & c
acc sets = {}
edge(4 -> 11)
label = a & b & !c
acc sets = {}
edge(4 -> 12)
label = a & !b & !c
acc sets = {}
edge(4 -> 14)
label = a & !b & !c
acc sets = {}
edge(4 -> 15)
label = !a & !b & !c
acc sets = {}
State 5:
edge(5 -> 3)
label = !a & b & c
acc sets = {}
edge(5 -> 4)
label = !a & !b & c
acc sets = {}
edge(5 -> 5)
label = !a & !c
acc sets = {}
edge(5 -> 8)
label = a & !b & c
acc sets = {}
edge(5 -> 9)
label = a & b & c
acc sets = {}
edge(5 -> 10)
label = a & !b & c
acc sets = {}
edge(5 -> 11)
label = a & b & !c
acc sets = {}
edge(5 -> 12)
label = a & !b & !c
acc sets = {}
edge(5 -> 13)
label = a & !b & !c
acc sets = {}
State 6:
edge(6 -> 6)
label = !a & !c
acc sets = {}
edge(6 -> 7)
label = a & !c
acc sets = {}
State 7:
edge(7 -> 7)
label = !c
acc sets = {0,1}
State 8:
edge(8 -> 8)
label = !b
acc sets = {0,1}
State 9:
edge(9 -> 7)
label = !c
acc sets = {}
edge(9 -> 8)
label = !b & c
acc sets = {}
edge(9 -> 9)
label = b & c
acc sets = {}
edge(9 -> 10)
label = !b & c
acc sets = {}
edge(9 -> 11)
label = b & !c
acc sets = {}
edge(9 -> 12)
label = !b & !c
acc sets = {}
edge(9 -> 13)
label = !b & !c
acc sets = {}
State 10:
edge(10 -> 7)
label = b & !c
acc sets = {}
edge(10 -> 9)
label = b & c
acc sets = {}
edge(10 -> 10)
label = !b & c
acc sets = {}
edge(10 -> 11)
label = b & !c
acc sets = {}
edge(10 -> 12)
label = !b & !c
acc sets = {}
edge(10 -> 14)
label = !b & !c
acc sets = {}
State 11:
edge(11 -> 8)
label = !b & c
acc sets = {}
edge(11 -> 9)
label = b & c
acc sets = {}
edge(11 -> 10)
label = !b & c
acc sets = {}
edge(11 -> 11)
label = b & !c
acc sets = {}
edge(11 -> 12)
label = !b & !c
acc sets = {}
edge(11 -> 13)
label = !b & !c
acc sets = {}
State 12:
edge(12 -> 9)
label = b & c
acc sets = {}
edge(12 -> 10)
label = !b & c
acc sets = {}
edge(12 -> 11)
label = b & !c
acc sets = {}
edge(12 -> 12)
label = !b & !c
acc sets = {}
State 13:
edge(13 -> 8)
label = !b & c
acc sets = {}
edge(13 -> 13)
label = !b & !c
acc sets = {}
State 14:
edge(14 -> 7)
label = b & !c
acc sets = {}
edge(14 -> 14)
label = !b & !c
acc sets = {}
State 15:
edge(15 -> 6)
label = !a & b & !c
acc sets = {}
edge(15 -> 7)
label = a & b & !c
acc sets = {}
edge(15 -> 14)
label = a & !b & !c
acc sets = {}
edge(15 -> 15)
label = !a & !b & !c
acc sets = {}
edge(15 -> 16)
label = a & !b & !c
acc sets = {}
State 16:
edge(16 -> 16)
label = !b & !c
acc sets = {0,1}
#+end_example
* Python
Here is the very same example, but written in Python:
#+BEGIN_SRC python :results output :exports both
#+BEGIN_SRC python
import spot
@ -215,12 +575,12 @@ Here is the very same example, but written in Python:
#+begin_example
Acceptance: Inf(0)&Inf(1)
Number of sets: 2
Number of states: 4
Number of states: 17
Initial states: 0
Atomic propositions: a (=0) b (=1) c (=2)
Name: Fa | G(Fb & Fc)
Name: F(a | G(Fb & Fc))
Deterministic: no
Unambiguous: maybe
Unambiguous: yes
State-Based Acc: maybe
Terminal: maybe
Weak: maybe
@ -234,35 +594,257 @@ State 0:
label = !a
acc sets = {}
edge(0 -> 3)
label = !a
label = !a & b & c
acc sets = {}
edge(0 -> 4)
label = !a & !b & c
acc sets = {}
edge(0 -> 5)
label = !a & !c
acc sets = {}
edge(0 -> 6)
label = !a & !c
acc sets = {}
State 1:
edge(1 -> 1)
label = 1
acc sets = {0,1}
State 2:
edge(2 -> 1)
label = a
edge(2 -> 2)
label = !b & !c
acc sets = {}
edge(2 -> 2)
label = !a
acc sets = {}
label = !b & c
acc sets = {1}
edge(2 -> 2)
label = b & !c
acc sets = {0}
edge(2 -> 2)
label = b & c
acc sets = {0,1}
State 3:
edge(3 -> 3)
label = !a & b & c
acc sets = {0,1}
edge(3 -> 3)
acc sets = {}
edge(3 -> 4)
label = !a & !b & c
acc sets = {1}
edge(3 -> 3)
acc sets = {}
edge(3 -> 5)
label = !a & !c
acc sets = {}
edge(3 -> 6)
label = !a & !c
acc sets = {}
edge(3 -> 7)
label = a & !c
acc sets = {}
edge(3 -> 8)
label = a & !b & c
acc sets = {}
edge(3 -> 9)
label = a & b & c
acc sets = {}
edge(3 -> 10)
label = a & !b & c
acc sets = {}
edge(3 -> 11)
label = a & b & !c
acc sets = {}
edge(3 -> 12)
label = a & !b & !c
acc sets = {}
edge(3 -> 13)
label = a & !b & !c
acc sets = {}
State 4:
edge(4 -> 3)
label = !a & b & c
acc sets = {}
edge(4 -> 4)
label = !a & !b & c
acc sets = {}
edge(4 -> 5)
label = !a & !c
acc sets = {}
edge(4 -> 6)
label = !a & b & !c
acc sets = {0}
edge(3 -> 3)
acc sets = {}
edge(4 -> 7)
label = a & b & !c
acc sets = {}
edge(4 -> 8)
label = a & !b
acc sets = {}
edge(4 -> 9)
label = a & b & c
acc sets = {}
edge(4 -> 10)
label = a & !b & c
acc sets = {}
edge(4 -> 11)
label = a & b & !c
acc sets = {}
edge(4 -> 12)
label = a & !b & !c
acc sets = {}
edge(4 -> 14)
label = a & !b & !c
acc sets = {}
edge(4 -> 15)
label = !a & !b & !c
acc sets = {}
State 5:
edge(5 -> 3)
label = !a & b & c
acc sets = {}
edge(5 -> 4)
label = !a & !b & c
acc sets = {}
edge(5 -> 5)
label = !a & !c
acc sets = {}
edge(5 -> 8)
label = a & !b & c
acc sets = {}
edge(5 -> 9)
label = a & b & c
acc sets = {}
edge(5 -> 10)
label = a & !b & c
acc sets = {}
edge(5 -> 11)
label = a & b & !c
acc sets = {}
edge(5 -> 12)
label = a & !b & !c
acc sets = {}
edge(5 -> 13)
label = a & !b & !c
acc sets = {}
State 6:
edge(6 -> 6)
label = !a & !c
acc sets = {}
edge(6 -> 7)
label = a & !c
acc sets = {}
State 7:
edge(7 -> 7)
label = !c
acc sets = {0,1}
State 8:
edge(8 -> 8)
label = !b
acc sets = {0,1}
State 9:
edge(9 -> 7)
label = !c
acc sets = {}
edge(9 -> 8)
label = !b & c
acc sets = {}
edge(9 -> 9)
label = b & c
acc sets = {}
edge(9 -> 10)
label = !b & c
acc sets = {}
edge(9 -> 11)
label = b & !c
acc sets = {}
edge(9 -> 12)
label = !b & !c
acc sets = {}
edge(9 -> 13)
label = !b & !c
acc sets = {}
State 10:
edge(10 -> 7)
label = b & !c
acc sets = {}
edge(10 -> 9)
label = b & c
acc sets = {}
edge(10 -> 10)
label = !b & c
acc sets = {}
edge(10 -> 11)
label = b & !c
acc sets = {}
edge(10 -> 12)
label = !b & !c
acc sets = {}
edge(10 -> 14)
label = !b & !c
acc sets = {}
State 11:
edge(11 -> 8)
label = !b & c
acc sets = {}
edge(11 -> 9)
label = b & c
acc sets = {}
edge(11 -> 10)
label = !b & c
acc sets = {}
edge(11 -> 11)
label = b & !c
acc sets = {}
edge(11 -> 12)
label = !b & !c
acc sets = {}
edge(11 -> 13)
label = !b & !c
acc sets = {}
State 12:
edge(12 -> 9)
label = b & c
acc sets = {}
edge(12 -> 10)
label = !b & c
acc sets = {}
edge(12 -> 11)
label = b & !c
acc sets = {}
edge(12 -> 12)
label = !b & !c
acc sets = {}
State 13:
edge(13 -> 8)
label = !b & c
acc sets = {}
edge(13 -> 13)
label = !b & !c
acc sets = {}
State 14:
edge(14 -> 7)
label = b & !c
acc sets = {}
edge(14 -> 14)
label = !b & !c
acc sets = {}
State 15:
edge(15 -> 6)
label = !a & b & !c
acc sets = {}
edge(15 -> 7)
label = a & b & !c
acc sets = {}
edge(15 -> 14)
label = a & !b & !c
acc sets = {}
edge(15 -> 15)
label = !a & !b & !c
acc sets = {}
edge(15 -> 16)
label = a & !b & !c
acc sets = {}
State 16:
edge(16 -> 16)
label = !b & !c
acc sets = {0,1}
#+end_example
#+BEGIN_SRC sh :results silent :exports results
rm -f tut21.hoa
#+END_SRC