From fa4a4063b82df214b6b30ac2103262c2b603b85d Mon Sep 17 00:00:00 2001
From: Erwan Jahier <erwan.jahier@univ-grenoble-alpes.fr>
Date: Wed, 16 Feb 2022 18:28:01 +0100
Subject: [PATCH] docs: fix the html generatd doc (org-mode html block syntax
 changed)

---
 guides/users/README.md  | 258 +++++++++++++++++++---------------------
 guides/users/README.org |  42 +++----
 test/skeleton/ring.dot  |  14 +--
 3 files changed, 154 insertions(+), 160 deletions(-)

diff --git a/guides/users/README.md b/guides/users/README.md
index 269c0ca5..6c8d300b 100644
--- a/guides/users/README.md
+++ b/guides/users/README.md
@@ -1,42 +1,42 @@
-- [TL;DR](#org03fdb32)
-- [Topology](#org6bce3a3)
-- [Algorithms](#org4ebc979)
-- [Examples](#orgbc8bb97)
-- [Batch mode](#org5e2df1b)
-  - [Running batch simulations](#orgb1110c6)
-  - [Running batch simulations with Built-in daemons](#orgdaa4528)
-  - [Running batch simulations with manual (a.k.a. custom) daemons](#org0600fb4)
-  - [Running batch simulations with `lurette`](#orgc2124a4)
-  - [Viewing Results](#org352ec48)
-  - [The `sasa` CLI](#org065842a)
-- [Interactive mode](#org8cabb77)
-  - [Example: use `rdbg` from the `test/alea-coloring/` directory](#org940a545)
-  - [The examples of test directory](#orga8bb93c)
-  - [Running interactive sessions with `rdbg`](#orgc1677b8)
-  - [Getting `rdbg` on-line help](#org45312ba)
-  - [A `rdbg`  `sasa` GUI](#orgc050bc9)
-  - [Useful Modules](#org68ddece)
-- [Install](#org870ae55)
-  - [TL;DR](#org6a2be30)
-  - [Not strictly mandatory, but useful, third-party software](#orgc778fb2)
-  - [Install `sasa` via opam (version >= 2.\*)](#orge389556)
-  - [Install `sasa` via `git`](#org375da8e)
-  - [Use `sasa` via docker](#org8634d7f)
-  - [Use `sasa` via a Virtual Machine](#orgfca4398)
-- [Screencasts](#org1965004)
-- [More](#orgb10647d)
-- [FAQ](#org45ee1b0)
-  - [Is there a FAQ?](#orgcdd1fda)
-  - [I have a compilation error that I don't understand](#org1a4026e)
-  - [I have the error `Invalid_argument("compare: functional value")`](#org59935ae)
-
-
-
-<a id="org03fdb32"></a>
+- [TL;DR](#orgd842cf1)
+- [Topology](#org013f7d9)
+- [Algorithms](#org00acbb9)
+- [Examples](#orgcbc8f9d)
+- [Batch mode](#orgfce0cfa)
+  - [Running batch simulations](#orgefdd641)
+  - [Running batch simulations with Built-in daemons](#orgcdd669a)
+  - [Running batch simulations with manual (a.k.a. custom) daemons](#org508336c)
+  - [Running batch simulations with `lurette`](#org2921f22)
+  - [Viewing Results](#org92dde13)
+  - [The `sasa` CLI](#orga655121)
+- [Interactive mode](#orgc55e3b2)
+  - [Example: use `rdbg` from the `test/alea-coloring/` directory](#orgfd393c7)
+  - [The examples of test directory](#org60174ca)
+  - [Running interactive sessions with `rdbg`](#org40701f8)
+  - [Getting `rdbg` on-line help](#org7cba82c)
+  - [A `rdbg`  `sasa` GUI](#org03720eb)
+  - [Useful Modules](#org8ba9131)
+- [Install](#orga6d731f)
+  - [TL;DR](#orgfba63eb)
+  - [Not strictly mandatory, but useful, third-party software](#org098a975)
+  - [Install `sasa` via opam (version >= 2.\*)](#org9f8288d)
+  - [Install `sasa` via `git`](#org5be5e9a)
+  - [Use `sasa` via docker](#orge0e40fa)
+  - [Use `sasa` via a Virtual Machine](#org8ce945a)
+- [Screencasts](#org80ebfc9)
+- [More](#org88a3873)
+- [FAQ](#orgb5cf2ac)
+  - [Is there a FAQ?](#org68c28f9)
+  - [I have a compilation error that I don't understand](#orgb59289c)
+  - [I have the error `Invalid_argument("compare: functional value")`](#org0616b5b)
+
+
+
+<a id="orgd842cf1"></a>
 
 # TL;DR
 
-<a id="org7b6382e"></a> SASA is a **Self-stabilizing Algorithms SimulAtor**, based on the so-called **Atomic State model** (ASM) introduced by <span class="underline">Dijkstra</span> in its seminal article on [Self-stabilizing distributed algorithms](http://www.cs.utexas.edu/~EWD/ewd04xx/EWD426.PDF). This model is also sometimes named "locally shared memory model with composite atomicity"
+<a id="org9814741"></a> SASA is a **Self-stabilizing Algorithms SimulAtor**, based on the so-called **Atomic State model** (ASM) introduced by <span class="underline">Dijkstra</span> in its seminal article on [Self-stabilizing distributed algorithms](http://www.cs.utexas.edu/~EWD/ewd04xx/EWD426.PDF). This model is also sometimes named "locally shared memory model with composite atomicity"
 
 Basically, one needs to provide:
 
@@ -61,11 +61,11 @@ sasa ring.dot -l 4      # run a batch simulation for 4 steps
 [![img](poster.png)](http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/sasa/poster.pdf)
 
 
-<a id="org6bce3a3"></a>
+<a id="org013f7d9"></a>
 
 # Topology
 
-<a id="org965f693"></a> <a id="orged45ab6"></a> The topology is given via `.dot` files, that should
+<a id="orgdf6755c"></a> <a id="orgefa7a35"></a> The topology is given via `.dot` files, that should
 
 1.  follow the [graphviz/dot format](https://en.wikipedia.org/wiki/DOT_(graph_description_language))
 2.  have nodes **labeled** by the `algo` field
@@ -121,24 +121,26 @@ graph ring {
 
 Such parameters can be retrieved in algorithms using the `Algo.get_graph_attribute : string -> string` function. For example, if you know the graph diameter, you can define it as a graph attribute (a `Algo.diameter: unit -> int` function is provided, but it can be expensive to use for large graphs).
 
-Some tools are provided in the `sasa` [distributions](#org5572cc7) to generate such kinds of `dot` graphs: <https://verimag.gricad-pages.univ-grenoble-alpes.fr/vtt/articles/sasa-gg/>
+Some tools are provided in the `sasa` [distributions](#org1fb2b30) to generate such kinds of `dot` graphs: <https://verimag.gricad-pages.univ-grenoble-alpes.fr/vtt/articles/sasa-gg/>
 
 
-<a id="org4ebc979"></a>
+<a id="org00acbb9"></a>
 
 # Algorithms
 
-<a id="org0148ed7"></a>
+<a id="org2f38aa6"></a>
 
 The following has been generated from [algo.mli](https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/blob/master/lib/algo/algo.mli)
 
-<div class="html">
-<iframe title="The Algo API" name="algo-api" width="700" height="700" src="<https://verimag.gricad-pages.univ-grenoble-alpes.fr/synchrone/sasa/_html/algo/Algo/index.html>" alt="<sub>html</sub>/algo/Algo/index.html";> </iframe>
+<iframe title="The Algo API" name="algo-api"
+    width="700"
+    height="700"
+    src="https://verimag.gricad-pages.univ-grenoble-alpes.fr/synchrone/sasa/_html/algo/Algo/index.html"
+    alt="_html/algo/Algo/index.html";>
+</iframe>
 
-</div>
 
-
-<a id="orgbc8bb97"></a>
+<a id="orgcbc8f9d"></a>
 
 # Examples
 
@@ -178,14 +180,14 @@ The `test` directory also contains sub-directories which gathers programs shared
 -   `test/*/my-rdbg-tuning.ml`: includes `test/my-rdbg-tuning.ml` and defines commands specific to the example of the directory. Indeed, `rdbg`, once launched, first tries to read the content of the file name `my-rdbg-tuning.ml` (if it exists).
 
 
-<a id="org5e2df1b"></a>
+<a id="orgfce0cfa"></a>
 
 # Batch mode
 
 ![img](./sasabatch.svg)
 
 
-<a id="orgb1110c6"></a>
+<a id="orgefdd641"></a>
 
 ## Running batch simulations
 
@@ -221,38 +223,15 @@ sasa ring.dot
 All the CLI commands above can be run automatically using a `make` rule contained in [test/Makefile.inc](https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/tree/master/test/Makefile.inc). Hence, by including this file the `Makefile` of the current directory (cf [test/coloring/Makefile](https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/tree/master/test/coloring/Makefile)), one can generate the `ring.cmxs` file straightforwardly:
 
 ```sh
-cd test/coloring # from the sasa git repository
-make ring.cmxs   # compile what's need to be compiled
-sasa ring.dot    # launch the simulation
+ cd test/coloring # from the sasa git repository
+ make ring.cmxs   # compile what's need to be compiled
+ sasa ring.dot    # launch the simulation
 ```
 
-    make: 'ring.cmxs' is up to date.
-    # Automatically generated by /home/jahier/.opam/4.10.0/bin/sasa version "4.3.5" ("a6897fa")
-    # on crevetete the 2/11/2020 at 15:28:50
-    #sasa ring.dot
-    
-    #seed 852602967
-    #inputs 
-    #outputs "p1_c":int "p2_c":int "p3_c":int "p4_c":int "p5_c":int "p6_c":int "p7_c":int "Enab_p1_conflict":bool "Enab_p2_conflict":bool "Enab_p3_conflict":bool "Enab_p4_conflict":bool "Enab_p5_conflict":bool "Enab_p6_conflict":bool "Enab_p7_conflict":bool "p1_conflict":bool "p2_conflict":bool "p3_conflict":bool "p4_conflict":bool "p5_conflict":bool "p6_conflict":bool "p7_conflict":bool potential:real
-    
-    
-    #step 0
-    #outs 0 1 0 1 1 0 0 t f f t t t t f f f f t t t 14.
-    
-    #step 1
-    #outs 0 1 0 1 2 2 1 f f f f t t f f f f f t f f 2.
-    
-    #step 2
-    #outs 0 1 0 1 0 2 1 f f f f f f f f f f f t f f 0.
-    
-    This algo is silent after 4 moves, 2 steps, 2 rounds.
-    
-    #quit
-
 nb: the simulation output (in the green frame) follows the [RIF](http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v6/#outline-container-orga43b00b) conventions.
 
 
-<a id="orgdaa4528"></a>
+<a id="orgcdd669a"></a>
 
 ## Running batch simulations with Built-in daemons
 
@@ -271,7 +250,7 @@ sasa -h | grep "\-daemon"
     --greedy-daemon, -gd
 
 
-<a id="org0600fb4"></a>
+<a id="org508336c"></a>
 
 ## Running batch simulations with manual (a.k.a. custom) daemons
 
@@ -303,22 +282,22 @@ The daemon can thus be played by users that read and enter Boolean values. In th
 In order to enter such input more easily, one can use (requires [the lustre V4 tool box](http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v4/distrib/index.html)): [`luciole-rif`](http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v6/#outline-container-orgc145c58)
 
 ```sh
-luciole-rif sasa ring.dot --custom-daemon
+ luciole-rif sasa ring.dot --custom-daemon
 ```
 
 Daemons can also by simulated by [`lutin`](http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v6/#outline-container-sec-4) programs via the use of [`lurette`](http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v6/#outline-container-sec-9) (for batch executions) or [`rdbg`](http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v6/#outline-container-sec-10) (for interactive sessions).
 
 
-<a id="orgc2124a4"></a>
+<a id="org2921f22"></a>
 
 ## Running batch simulations with `lurette`
 
 If one wants to use a test oracle to check at runtime some algorithms properties, one can use `lurette` as follows:
 
 ```sh
-cd test/coloring
-make ring.cmxs
-lurette -sut "sasa ring.dot" -oracle "lv6 ring_oracle.lus -n oracle -exec"
+ cd test/coloring
+ make ring.cmxs
+ lurette -sut "sasa ring.dot" -oracle "lv6 ring_oracle.lus -n oracle -exec"
 ```
 
 Here the oracle is specified in Lustre V6. For more information on this topic: <https://verimag.gricad-pages.univ-grenoble-alpes.fr/vtt/articles/sasa-oracles/>
@@ -326,7 +305,7 @@ Here the oracle is specified in Lustre V6. For more information on this topic: <
 `lurette` can also be used to perform simulations with programmed daemons. For instance, in order to simulate an algorithm defined in `ring.dot` (cf [test/coloring](https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/tree/master/test/coloring)) using a Lutin daemon defined in `ring.lut`, you can launch the following:
 
 ```sh
-lurette -env "sasa ring.dot -custd" -sut "lutin ring.lut -n distributed"
+ lurette -env "sasa ring.dot -custd" -sut "lutin ring.lut -n distributed"
 ```
 
 Note that for `lurette`, the role of the SUT (System Under Test) and the one of the environment is dual: the outputs of the SUT are the inputs of the environment, and vice-versa. The only difference is that the environment plays first. But `sasa` needs to play first, to be able to state which actions are enabled at the very first step. Hence `sasa` is used as a `lurette` environment, and the daemon program is used a `lurette` SUT.
@@ -334,19 +313,19 @@ Note that for `lurette`, the role of the SUT (System Under Test) and the one of
 For more information on this topic: <https://verimag.gricad-pages.univ-grenoble-alpes.fr/vtt/articles/sasa-daemons/>
 
 
-<a id="org352ec48"></a>
+<a id="org92dde13"></a>
 
 ## Viewing Results
 
 `sasa -rif` and `lurette` generates `.rif` files that can be viewed with `gnuplot-rif` or `sim2chro`; cf <http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/reactive-toolbox/>
 
 
-<a id="org065842a"></a>
+<a id="orga655121"></a>
 
 ## The `sasa` CLI
 
 ```sh
-sasa --help
+  sasa --help
 ```
 
     usage: sasa [<option>]* <topology>.dot 
@@ -370,7 +349,13 @@ sasa --help
     --greedy-daemon, -gd
                 Use the daemon that maximizes the potential function
                 for the next step (greedy). Performs 2^|enabled| trials) 
-    --seed, -seed
+    --init-search, -is <int>
+                Use local search algorithms to find an initial configuration that pessimize 
+                the step number. The argument is the maximum number of trials to do the search. 
+                Require the state_to_nums Algo.to_register field to be defined.
+    --cores-nb, -cn
+                Number of cores to use during the simulation (default is 1)
+    --seed, -seed <int>
                 Set the pseudo-random generator seed of build-in daemons (wins over --replay)
     --replay, -replay
                 Use the last generated seed to replay the last run
@@ -390,7 +375,7 @@ sasa --help
 More `sasa` options:
 
 ```sh
-sasa --more
+  sasa --more
 ```
 
     --rif, -rif Display only outputs on stdout (i.e., behave as a rif input file)
@@ -405,17 +390,16 @@ sasa --more
     --dummy-input
                 Add a dummy input to sasa so that built-in daemon can be used from rdbg
     --ignore-first-inputs, -ifi
-                Ignore first inputs (necessary to use luciole via 
-                lurette/rdbg/luciole-rif)
+                [Deprecated] make sasa ignore its first input vector
     --ocaml-version
                 Display the version ocaml version sasa was compiled with and exit.
 
 
-<a id="org8cabb77"></a>
+<a id="orgc55e3b2"></a>
 
 # Interactive mode
 
-<a id="orga7c8b81"></a> If you want to perform step-by-step simulations, you can use the `-custd` option. But if you want to perform step-by-step simulations without the burden of playing the role of the daemon, you can launch `sasa` under the control of [rdbg](http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/rdbg/).
+<a id="orgfe5a862"></a> If you want to perform step-by-step simulations, you can use the `-custd` option. But if you want to perform step-by-step simulations without the burden of playing the role of the daemon, you can launch `sasa` under the control of [rdbg](http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/rdbg/).
 
 Another advantage of [rdbg](http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/rdbg/) is its ability to display a graphical view of the current configuration during the simulation, to move step by step, or round by round, forward or backwards.
 
@@ -424,7 +408,7 @@ cf <https://verimag.gricad-pages.univ-grenoble-alpes.fr/vtt/articles/rdbg-sasa/>
 Before reading this section, please read at least the [Basic usage Section if the rdbg documentation](http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/rdbg/README.html#outline-container-sec-3).
 
 
-<a id="org940a545"></a>
+<a id="orgfd393c7"></a>
 
 ## Example: use `rdbg` from the `test/alea-coloring/` directory
 
@@ -467,7 +451,7 @@ rdbg
      [q] quit
 
 
-<a id="orga8bb93c"></a>
+<a id="org60174ca"></a>
 
 ## The examples of test directory
 
@@ -478,7 +462,7 @@ The [test](https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/t
 -   `test/*/my-rdbg-tuning.ml`: includes `test/my-rdbg-tuning.ml` and defines commands specific to the example of the directory. Indeed, `rdbg`, once launched, first tries to read the content of the file name `my-rdbg-tuning.ml` (it it exists).
 
 
-<a id="orgc1677b8"></a>
+<a id="org40701f8"></a>
 
 ## Running interactive sessions with `rdbg`
 
@@ -495,7 +479,7 @@ The [test](https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/t
 All those commands are defined in (the common) [test/my-rdbg-tuning.ml](https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/tree/master/test/my-rdbg-tuning.ml) that is included in (locals) `test/*/my-rdbg-tuning.ml` that are included in (generated) `test/*/rdbg-session.ml` files. `my-rdbg-tuning.ml` contains straigthforward `ocaml` code that defines various `rdbg` shortcuts to ease the simulation of `sasa` systems. Feel free to tailor those command to yours needs by modyfying the local `my-rdbg-tuning.ml`!
 
 
-<a id="org45312ba"></a>
+<a id="org7cba82c"></a>
 
 ## Getting `rdbg` on-line help
 
@@ -591,7 +575,7 @@ Here are 2 useful entry-points to rdbg on-line help:
     (rdbg) 
 
 
-<a id="orgc050bc9"></a>
+<a id="org03720eb"></a>
 
 ## A `rdbg`  `sasa` GUI
 
@@ -605,41 +589,49 @@ opam install -y rdbgui4ocaml
 To use it: <https://verimag.gricad-pages.univ-grenoble-alpes.fr/vtt/articles/rdbgui4sasa/>
 
 
-<a id="org68ddece"></a>
+<a id="org8ba9131"></a>
 
 ## Useful Modules
 
 Some modules, used by the sasa core engine, can be useful from `rdbg`.
 
-<div class="html">
-<iframe title="The Topology API" name="topology-api" width="700" height="500" src="<https://verimag.gricad-pages.univ-grenoble-alpes.fr/synchrone/sasa/_html/sasacore/Sasacore/Topology/index.html>" alt="<./_html/sasacore/Sasacore/Topology/index.html>";> </iframe>
-
-</div>
-
-<div class="html">
-<iframe title="The Diameter API" name="diameter-api" width="700" height="300" src="<https://verimag.gricad-pages.univ-grenoble-alpes.fr/synchrone/sasa/_html/sasacore/Sasacore/Diameter/index.html>" alt="<./_html/sasacore/Sasacore/Diameter/index.html>";> </iframe>
-
-</div>
-
-<div class="html">
-<iframe title="The Process API" width="700" height="300" src="<https://verimag.gricad-pages.univ-grenoble-alpes.fr/synchrone/sasa/_html/sasacore/Sasacore/Process/index.html>" alt="<./_html/sasacore/Sasacore/Process/index.html>";> </iframe>
-
-</div>
-
-<div class="html">
-<iframe title="The StringOf API" width="700" height="300" src="<https://verimag.gricad-pages.univ-grenoble-alpes.fr/synchrone/sasa/_html/sasacore/Sasacore/StringOf/index.html>" alt="<./_html/sasacore/Sasacore/StringOf/index.html>";> </iframe>
-
-</div>
-
-
-<a id="org870ae55"></a>
+<iframe title="The Topology API" name="topology-api"
+    width="700"
+    height="500"
+    src="https://verimag.gricad-pages.univ-grenoble-alpes.fr/synchrone/sasa/_html/sasacore/Sasacore/Topology/index.html"
+    alt="file:./_html/sasacore/Sasacore/Topology/index.html";>
+</iframe>
+
+<iframe title="The Diameter API"  name="diameter-api"
+    width="700"
+    height="300"
+    src="https://verimag.gricad-pages.univ-grenoble-alpes.fr/synchrone/sasa/_html/sasacore/Sasacore/Diameter/index.html"
+    alt="file:./_html/sasacore/Sasacore/Diameter/index.html";>
+</iframe>
+
+<iframe title="The Process API"
+    width="700"
+    height="300"
+    src="https://verimag.gricad-pages.univ-grenoble-alpes.fr/synchrone/sasa/_html/sasacore/Sasacore/Process/index.html"
+    alt="file:./_html/sasacore/Sasacore/Process/index.html";>
+</iframe>
+
+<iframe title="The StringOf API"
+    width="700"
+    height="300"
+    src="https://verimag.gricad-pages.univ-grenoble-alpes.fr/synchrone/sasa/_html/sasacore/Sasacore/StringOf/index.html"
+    alt="file:./_html/sasacore/Sasacore/StringOf/index.html";>
+</iframe>
+
+
+<a id="orga6d731f"></a>
 
 # Install
 
-<a id="org5572cc7"></a> <a id="org29e3b1b"></a>
+<a id="org1fb2b30"></a> <a id="org4d6432b"></a>
 
 
-<a id="org6a2be30"></a>
+<a id="orgfba63eb"></a>
 
 ## TL;DR
 
@@ -693,7 +685,7 @@ git clone https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa.gi
 ```
 
 
-<a id="orgc778fb2"></a>
+<a id="org098a975"></a>
 
 ## Not strictly mandatory, but useful, third-party software
 
@@ -736,7 +728,7 @@ sudo apt install -y wish
 Otherwise: <http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v4/distrib/index.html>
 
 
-<a id="orge389556"></a>
+<a id="org9f8288d"></a>
 
 ## Install `sasa` via opam (version >= 2.\*)
 
@@ -770,7 +762,7 @@ opam upgrade
 ```
 
 
-<a id="org375da8e"></a>
+<a id="org5be5e9a"></a>
 
 ## Install `sasa` via `git`
 
@@ -814,14 +806,14 @@ make test
 One can also mimic the content of the `test` job in the project [.gitlab-ci.yml Gitlab CI script](https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/tree/master/.gitlab-ci.yml).
 
 
-<a id="org8634d7f"></a>
+<a id="orge0e40fa"></a>
 
 ## Use `sasa` via docker
 
 cf the Docker Install section of the [Synchrone Reactive Tool Box](http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v6/#docker). This docker image contains all the tools mentioned in this section (`sasa`, `lustre`, `opam`, `ocaml`, emacs, graphviz, etc.).
 
 
-<a id="orgfca4398"></a>
+<a id="org8ce945a"></a>
 
 ## Use `sasa` via a Virtual Machine
 
@@ -831,7 +823,7 @@ cf the Docker Install section of the [Synchrone Reactive Tool Box](http://www-ve
 -   passwd:sasa
 
 
-<a id="org1965004"></a>
+<a id="org80ebfc9"></a>
 
 # Screencasts
 
@@ -841,13 +833,13 @@ cf the Docker Install section of the [Synchrone Reactive Tool Box](http://www-ve
     -   Create a xubuntu 20.4 VM: [2 minutes video (20 min of real time)](http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/sasa/screencasts/vbox-x2.avi)
     -   Clone that VM and install sasa via opam [2:39 minutes video (37 min of real time)](http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/sasa/screencasts/sasa-install-x2.avi)
 -   Sasa demos (done on the VM build above, which is [available here](https://cloud.univ-grenoble-alpes.fr/index.php/s/ekAbtizPFNYPSaf):
-    -   demo 1: write and execute an algo (Dijkstra ring) [[<http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/sasa/screencasts/first-demo.avi>][first-demo.avi]
+    -   demo 1: write and execute an algo (Dijkstra ring) [first-demo.avi](http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/sasa/screencasts/first-demo.avi)
     -   demo 2: re-define what a legitimate configuration is (Dijkstra ring) [legitimate-demo.avi](http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/sasa/screencasts/legitimate-demo.avi)
 
 cf <http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/sasa/screencasts/>
 
 
-<a id="orgb10647d"></a>
+<a id="org88a3873"></a>
 
 # More
 
@@ -856,12 +848,12 @@ cf <http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/sasa/screencasts/>
 -   Tutorials: <https://verimag.gricad-pages.univ-grenoble-alpes.fr/vtt//tags/sasa/>
 
 
-<a id="org45ee1b0"></a>
+<a id="orgb5cf2ac"></a>
 
 # FAQ
 
 
-<a id="orgcdd1fda"></a>
+<a id="org68c28f9"></a>
 
 ## Is there a FAQ?
 
@@ -870,7 +862,7 @@ Yes.
 Beside, some tutorials are also available here: <https://verimag.gricad-pages.univ-grenoble-alpes.fr/vtt/tags/sasa/>
 
 
-<a id="org1a4026e"></a>
+<a id="orgb59289c"></a>
 
 ## I have a compilation error that I don't understand
 
@@ -880,7 +872,7 @@ Beside, some tutorials are also available here: <https://verimag.gricad-pages.un
 -   If the message is totally useless, please feel free to add an issue here <https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/issues>
 
 
-<a id="org59935ae"></a>
+<a id="org0616b5b"></a>
 
 ## I have the error `Invalid_argument("compare: functional value")`
 
diff --git a/guides/users/README.org b/guides/users/README.org
index b679f2db..17fc6a38 100644
--- a/guides/users/README.org
+++ b/guides/users/README.org
@@ -58,33 +58,34 @@ sasa ring.dot -l 4      # run a batch simulation for 4 steps
 #+RESULTS[13cc60a20b534115483ffd7ae0f22f6bcc52a8dd]:
 #+begin_example
 sasa -reg ring.dot
-ocamlfind ocamlopt -package algo -shared state.ml p.ml config.ml ring.ml -o ring.cmxs
-# Automatically generated by /home/jahier/.opam/4.10.0/bin/sasa version "4.3.5" ("a6897fa")
-# on crevetete the 4/11/2020 at 8:28:38
+ocamlfind ocamlopt -bin-annot -package algo -shared state.ml p.ml config.ml ring.ml -o ring.cmxs
+# Automatically generated by /home/jahier/.opam/4.13.1/bin/sasa version "v4.5.7" ("733695a")
+# on crevetete the 16/2/2022 at 18:26:44
 #sasa ring.dot -l 4
 
-#seed 194528744
+#seed 178073955
 #inputs 
-#outputs "p1_i":int "p2_i":int "p3_i":int "p4_i":int "p5_i":int "p6_i":int "p7_i":int "Enab_p1_action2":bool "Enab_p1_action1":bool "Enab_p2_action2":bool "Enab_p2_action1":bool "Enab_p3_action2":bool "Enab_p3_action1":bool "Enab_p4_action2":bool "Enab_p4_action1":bool "Enab_p5_action2":bool "Enab_p5_action1":bool "Enab_p6_action2":bool "Enab_p6_action1":bool "Enab_p7_action2":bool "Enab_p7_action1":bool "p1_action2":bool "p1_action1":bool "p2_action2":bool "p2_action1":bool "p3_action2":bool "p3_action1":bool "p4_action2":bool "p4_action1":bool "p5_action2":bool "p5_action1":bool "p6_action2":bool "p6_action1":bool "p7_action2":bool "p7_action1":bool 
+#outputs "p1_v0":int "p2_v0":int "p3_v0":int "p4_v0":int "p5_v0":int "p6_v0":int "p7_v0":int "Enab_p1_action1":bool "Enab_p1_action2":bool "Enab_p2_action1":bool "Enab_p2_action2":bool "Enab_p3_action1":bool "Enab_p3_action2":bool "Enab_p4_action1":bool "Enab_p4_action2":bool "Enab_p5_action1":bool "Enab_p5_action2":bool "Enab_p6_action1":bool "Enab_p6_action2":bool "Enab_p7_action1":bool "Enab_p7_action2":bool "p1_action1":bool "p1_action2":bool "p2_action1":bool "p2_action2":bool "p3_action1":bool "p3_action2":bool "p4_action1":bool "p4_action2":bool "p5_action1":bool "p5_action2":bool "p6_action1":bool "p6_action2":bool "p7_action1":bool "p7_action2":bool "legitimate":bool 
 
 
 #step 0
-#outs 4 5 2 1 9 0 4 t f t f f f t f f t t f t f f f f f f f t f f t t f f f 
+#outs 9 2 8 5 5 4 8 t f t f t f t f t f t f t f t f t f t f t f f f t f f f f 
 
 #step 1
-#outs 4 5 2 0 1 0 4 t f t f f t f f f t t f t f f f t f f t f f f f t f t f 
+#outs 0 0 0 0 5 0 8 t f f t f t t f f t t f f t f f f f f t t f f f f f f t f 
 
 #step 2
-#outs 4 0 1 0 1 0 0 f t f f f t f f f t f t t f f f f f f t f f f f f f t f 
+#outs 0 0 1 0 5 0 1 f f f f f t t f f t f f f t f f f f f f t f f t f f f f f 
 
 #step 3
-#outs 4 0 1 0 1 0 0 f t f f f t f f f t f t t f f t f f f f f f f f f f f f 
+#outs 0 0 1 0 1 0 1 f f f f f t f f f t f f f t f f f f f t f f f f f f f f f 
 
 #step 4
-#outs 1 0 1 0 1 0 0 f t f f f t f f f t f t f f f f f f f t f f f t f t f f 
+#outs 0 0 1 0 1 0 1 f f f f f t f f f t f f f t f f f f f f f f f f f f f t f 
 #q
 #+end_example
 
+
 + [[https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa][SASA source code]]
 + [[https://verimag.gricad-pages.univ-grenoble-alpes.fr/vtt/tags/sasa/][Some Online Tutorials]]
 + [[https://hal.archives-ouvertes.fr/hal-02521149][TAP 2020 article pre-print]]
@@ -175,14 +176,15 @@ https://verimag.gricad-pages.univ-grenoble-alpes.fr/vtt/articles/sasa-gg/
 
 The following has been generated from [[https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/blob/master/lib/algo/algo.mli][algo.mli]]
 
-#+begin_html
+
+#+begin_export html
 <iframe title="The Algo API" name="algo-api"
     width="700"
     height="700"
     src="https://verimag.gricad-pages.univ-grenoble-alpes.fr/synchrone/sasa/_html/algo/Algo/index.html"
     alt="_html/algo/Algo/index.html";>
 </iframe>
-#+end_html
+#+end_export
 
 * Examples
 
@@ -738,38 +740,38 @@ To use it:  https://verimag.gricad-pages.univ-grenoble-alpes.fr/vtt/articles/rdb
 
 Some modules, used by the sasa core engine, can be useful from =rdbg=.
 
-#+begin_html
+#+begin_export html
 <iframe title="The Topology API" name="topology-api"
     width="700"
     height="500"
     src="https://verimag.gricad-pages.univ-grenoble-alpes.fr/synchrone/sasa/_html/sasacore/Sasacore/Topology/index.html"
     alt="file:./_html/sasacore/Sasacore/Topology/index.html";>
 </iframe>
-#+end_html
-#+begin_html
+#+end_export
+#+begin_export html
 <iframe title="The Diameter API"  name="diameter-api"
     width="700"
     height="300"
     src="https://verimag.gricad-pages.univ-grenoble-alpes.fr/synchrone/sasa/_html/sasacore/Sasacore/Diameter/index.html"
     alt="file:./_html/sasacore/Sasacore/Diameter/index.html";>
 </iframe>
-#+end_html
-#+begin_html
+#+end_export
+#+begin_export html
 <iframe title="The Process API"
     width="700"
     height="300"
     src="https://verimag.gricad-pages.univ-grenoble-alpes.fr/synchrone/sasa/_html/sasacore/Sasacore/Process/index.html"
     alt="file:./_html/sasacore/Sasacore/Process/index.html";>
 </iframe>
-#+end_html
-#+begin_html
+#+end_export
+#+begin_export html
 <iframe title="The StringOf API"
     width="700"
     height="300"
     src="https://verimag.gricad-pages.univ-grenoble-alpes.fr/synchrone/sasa/_html/sasacore/Sasacore/StringOf/index.html"
     alt="file:./_html/sasacore/Sasacore/StringOf/index.html";>
 </iframe>
-#+end_html
+#+end_export
 
 * Install
 <<distributions>>
diff --git a/test/skeleton/ring.dot b/test/skeleton/ring.dot
index 80cff9f1..bacf56c5 100644
--- a/test/skeleton/ring.dot
+++ b/test/skeleton/ring.dot
@@ -1,11 +1,11 @@
 graph ring {
- p1 [algo="some_algo.ml"]
- p2 [algo="some_algo.ml"]
- p3 [algo="some_algo.ml"]
- p4 [algo="some_algo.ml"]
- p5 [algo="some_algo.ml"]
- p6 [algo="some_algo.ml"]
- p7 [algo="some_algo.ml"]
+ p1 [algo="p.ml"]
+ p2 [algo="p.ml"]
+ p3 [algo="p.ml"]
+ p4 [algo="p.ml"]
+ p5 [algo="p.ml"]
+ p6 [algo="p.ml"]
+ p7 [algo="p.ml"]
 
  p1 -- p2 -- p3 -- p4 -- p5 -- p6 -- p7 -- p1 
 }
-- 
GitLab