From dcdb3aba85ecf1171cd161aed0cd35a9f1d27a70 Mon Sep 17 00:00:00 2001
From: Erwan Jahier <erwan.jahier@univ-grenoble-alpes.fr>
Date: Thu, 23 Jun 2022 10:02:22 +0200
Subject: [PATCH] fix: do not increment the round counter at legit config

---
 lib/sasa/sasaRun.ml                         |  6 +--
 lib/sasacore/round.ml                       | 17 +++---
 src/sasaMain.ml                             | 19 +++----
 test/bfs-spanning-tree/fig51_noinit.rif.exp |  4 +-
 test/dfs-list/4.13.1/g.rif.exp              |  6 +--
 test/dfs/4.13.1/ER.rif.exp                  |  6 +--
 test/dfs/4.13.1/g.rif.exp                   |  6 +--
 test/dijkstra-ring/ring.rif.exp             |  2 +-
 test/k-clustering/4.13.1/fig52_kcl.rif.exp  | 30 +++++++++++
 test/k-clustering/4.14.0/fig52_kcl.rif.exp  | 30 +++++++++++
 test/rsp-tree/4.13.1/ba100.rif.exp          |  6 +--
 test/rsp-tree/4.13.1/er30.rif.exp           |  6 +--
 test/rsp-tree/4.13.1/grid4.rif.exp          |  6 +--
 test/rsp-tree/4.13.1/udg100.rif.exp         |  6 +--
 test/toy-example-a5sf/te.rif.exp            | 59 ++++++++++-----------
 tools/rdbg4sasa/sasa-rdbg-cmds.ml           |  4 +-
 16 files changed, 136 insertions(+), 77 deletions(-)
 create mode 100644 test/k-clustering/4.13.1/fig52_kcl.rif.exp
 create mode 100644 test/k-clustering/4.14.0/fig52_kcl.rif.exp

diff --git a/lib/sasa/sasaRun.ml b/lib/sasa/sasaRun.ml
index 52e8f55c..14d3917b 100644
--- a/lib/sasa/sasaRun.ml
+++ b/lib/sasa/sasaRun.ml
@@ -100,7 +100,7 @@ let (make_do: string array -> 'v SimuState.t -> RdbgPlugin.t) =
           let pot_sl = compute_potentiel st in
           let silent = List.for_all (fun b -> not b) (List.flatten enab_ll) in
           let legit = compute_legitimate silent st in
-          Round.update false enab_ll enab_ll;
+          Round.update legit false enab_ll enab_ll;
           pre_enable_processes_opt := Some(pnall, enab_ll);
           ("silent", Data.B silent)::("legitimate", Data.B legit)::
           ("round", Data.B Round.s.is_round)::("round_nb", Data.I Round.s.cpt)::pot_sl
@@ -124,7 +124,7 @@ let (make_do: string array -> 'v SimuState.t -> RdbgPlugin.t) =
         let pot_sl = compute_potentiel nst in
         let silent = List.for_all (fun b -> not b) (List.flatten enab_ll) in
         let legit = compute_legitimate silent nst in
-        Round.update false activate_val enab_ll;
+        Round.update legit false activate_val enab_ll;
         pre_enable_processes_opt := Some(pnall, enab_ll);
         sasa_config := st.config;    
         ("silent", Data.B silent)::("legitimate", Data.B legit)::
@@ -157,7 +157,7 @@ let (make_do: string array -> 'v SimuState.t -> RdbgPlugin.t) =
             SimuState.neigbors_of_pid st pnall enab_ll
             (get_action_value sl_in) Step.f
         in
-        Round.update true activate_val enab_ll;
+        Round.update legit true activate_val enab_ll;
         (* 3: Do the steps *)
         let nst = Sasacore.Step.f pnal st in
         sasa_config := nst.config;
diff --git a/lib/sasacore/round.ml b/lib/sasacore/round.ml
index 74243cc1..8d1a82d3 100644
--- a/lib/sasacore/round.ml
+++ b/lib/sasacore/round.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 20/06/2022 (at 10:24) by Erwan Jahier> *)
+(* Time-stamp: <modified the 22/06/2022 (at 11:55) by Erwan Jahier> *)
 
 type t = {
   mutable first : bool;
@@ -27,13 +27,14 @@ let bll2str bll =
 let bl2str bl =
   String.concat " " (List.map bool2str bl)
 
-let debug_update lbl =
-  Printf.printf "Round.update: %s mask=%s cpt=%d round=%b\n%!" lbl (bll2str s.round_mask) s.cpt s.is_round
+let debug_update lbl legit =
+  Printf.printf "Round.update: %s mask=%s cpt=%d round=%b legit=%b\n%!" lbl (bll2str s.round_mask) s.cpt s.is_round
+    legit
 
-let (update : bool -> bool list list -> bool list list -> unit) =
-  fun use_pre_trigger curr_acti_ll enab_ll ->
+let (update : bool -> bool -> bool list list -> bool list list -> unit) =
+  fun legit use_pre_trigger curr_acti_ll enab_ll ->
   (* Depending on who calls it (sasaMain, sasaRun), we use the previous value of the trigger or not *)
-  (*   debug_update "debut"; *)
+  (*   debug_update "debut" legit; *)
   if s.first then (
     (*     Printf.printf "First round update\n%!"; *)
     s.first <- false;
@@ -58,7 +59,7 @@ let (update : bool -> bool list list -> bool list list -> unit) =
       let empty mask = all_false mask in
       if empty new_mask then
         (
-          s.cpt <- s.cpt+1;
+          if not legit then s.cpt <- s.cpt+1;
           s.is_round <- true;
           s.round_mask <- enab_ll
         )
@@ -67,7 +68,7 @@ let (update : bool -> bool list list -> bool list list -> unit) =
         s.round_mask <- new_mask
       )
   )
-  (*     debug_update "fin" *)
+(*    ; debug_update "fin" legit *)
 
   
 let (get : unit -> t_save) = fun () ->
diff --git a/src/sasaMain.ml b/src/sasaMain.ml
index 0e68f176..0fee1b84 100644
--- a/src/sasaMain.ml
+++ b/src/sasaMain.ml
@@ -78,19 +78,20 @@ let (simustep: out_channel -> int -> int -> string -> 'v SimuState.t -> 'v SimuS
   let pot = try string_of_float (SimuState.compute_potentiel st) with _ -> "" in
   let pl = st.network in
   if verb then Printf.fprintf log "==> SasaSimuState.simustep: is it legitimate?\n%!";
-  let leg = legitimate st in
+  let silent = List.for_all (fun b -> not b) (List.flatten enab_ll) in
+  let leg = legitimate st || silent in
   let st, all, enab_ll =
     if
       (* not (args.rif) && *)
-        List.for_all (fun b -> not b) (List.flatten enab_ll)
+        silent
     then (
       match Register.get_fault () with
       | None ->
-        Round.update true enab_ll enab_ll;
-        print_step log st n i "t" pot st.sasarg st.config pl activate_val enab_ll;
+        Round.update leg true enab_ll enab_ll;
+        print_step log st n i "t" pot st.sasarg st.config pl (bll2str enab_ll) enab_ll;
         raise (Silent (n-i))
       | Some ff ->
-        print_step log st n i "t" pot st.sasarg st.config pl activate_val enab_ll;
+        print_step log st n i "t" pot st.sasarg st.config pl (bll2str enab_ll) enab_ll;
         let str = if st.sasarg.rif then "#" else "" in
         Printf.fprintf log
           "\n%sThis algo is silent after %i move%s, %i step%s, %i round%s.\n"
@@ -103,7 +104,7 @@ let (simustep: out_channel -> int -> int -> string -> 'v SimuState.t -> 'v SimuS
     else if leg then (
       match Register.get_fault () with
       | None ->
-        Round.update true enab_ll enab_ll;
+        Round.update leg true enab_ll enab_ll;
         print_step log st n i "t" pot st.sasarg st.config pl activate_val enab_ll;
         raise (Legitimate (n-i))
       | Some ff ->
@@ -130,7 +131,7 @@ let (simustep: out_channel -> int -> int -> string -> 'v SimuState.t -> 'v SimuS
       (st.sasarg.verbose >= 1) st.sasarg.daemon st.network SimuState.neigbors_of_pid
       st all enab_ll get_action_value Step.f
   in
-  Round.update true next_activate_val enab_ll;
+  Round.update leg true next_activate_val enab_ll;
   let next_activate_val = bll2str next_activate_val in
   (* 3: Do the steps *)
   if verb then Printf.fprintf log "==> SasaSimuState.simustep : 3: Do the steps\n%!";
@@ -190,9 +191,9 @@ let () =
       List.iteri
         (fun i (enab, trig, leg, pot, conf) ->
            if trig <> [] then
-             Round.update true trig enab
+             Round.update leg true trig enab
            else (* Round.update requires list of the same size *)
-             Round.update true (List.map (fun l -> List.map (fun _ -> false) l) enab) enab;
+             Round.update leg true (List.map (fun l -> List.map (fun _ -> false) l) enab) enab;
            Printf.fprintf oc_rif "#step %d\n#outs %s %s %s %s %s %s %d\n" (i)
              (StringOf.env_rif conf st.network) (bll2str enab) (bll2str trig)
              (sob leg) (string_of_float pot) (bool2str Round.s.is_round) Round.s.cpt;
diff --git a/test/bfs-spanning-tree/fig51_noinit.rif.exp b/test/bfs-spanning-tree/fig51_noinit.rif.exp
index 87952cff..83b8f556 100644
--- a/test/bfs-spanning-tree/fig51_noinit.rif.exp
+++ b/test/bfs-spanning-tree/fig51_noinit.rif.exp
@@ -6,9 +6,9 @@
  0 -1 1 1 2 0 3 0 3 1 2 0 4 1 1 0 f f f f f f f f f f t f t f f t f f f f f f f f f f t f t f f t f  t 3
  0 -1 1 1 2 0 3 0 3 1 4 0 2 1 1 1 f f f f f f f f t f t f f t f f f f f f f f f f t f t f f t f f f  t 4
  0 -1 1 1 2 0 3 0 4 1 3 0 2 2 1 1 f f f f f f f f f f f t f f f f f f f f f f f f f f f t f f f f f  t 5
- 0 -1 1 1 2 0 3 0 4 1 3 1 2 2 1 1 f f f f f f f f f f f f f f f f f f f f f f f f f f f t f f f f t  t 6
+ 0 -1 1 1 2 0 3 0 4 1 3 1 2 2 1 1 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f t  t 5
 
-#This algo is silent after 22 moves, 5 steps, 6 rounds.
+#This algo is silent after 22 moves, 5 steps, 5 rounds.
 
 q
 #quit
diff --git a/test/dfs-list/4.13.1/g.rif.exp b/test/dfs-list/4.13.1/g.rif.exp
index a19674a5..eb8f365b 100644
--- a/test/dfs-list/4.13.1/g.rif.exp
+++ b/test/dfs-list/4.13.1/g.rif.exp
@@ -1,5 +1,5 @@
 # Automatically generated by /home/jahier/.opam/4.13.1/bin/sasa version "v4.6.0" ("169b4f7")
-# on crevetete the 20/6/2022 at 13:28:34
+# on crevetete the 22/6/2022 at 17:23:25
 #sasa g.dot -seed 42
 
 #seed 42
@@ -86,8 +86,8 @@
 #outs -1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 2 -1 -1 -1 -1 -1 -1 -1 0 -1 0 2 2 -1 -1 -1 -1 -1 -1 1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 2 1 -1 -1 -1 -1 -1 -1 -1 0 -1 2 1 1 -1 -1 -1 -1 -1 -1 0 -1 2 1 1 1 -1 -1 -1 -1 -1 0 -1 2 1 1 1 1 -1 -1 -1 -1 0 f f f f f f f f f f f f f f f f f f f t f f f f f f f f f f f f f f f f f f f t f  t 13
 
 #step 26
-#outs -1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 2 -1 -1 -1 -1 -1 -1 -1 0 -1 0 2 2 -1 -1 -1 -1 -1 -1 1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 2 1 -1 -1 -1 -1 -1 -1 -1 0 -1 2 1 1 -1 -1 -1 -1 -1 -1 0 -1 2 1 1 1 -1 -1 -1 -1 -1 0 -1 2 1 1 1 1 -1 -1 -1 -1 1 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f t t  t 14
+#outs -1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 2 -1 -1 -1 -1 -1 -1 -1 0 -1 0 2 2 -1 -1 -1 -1 -1 -1 1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 2 1 -1 -1 -1 -1 -1 -1 -1 0 -1 2 1 1 -1 -1 -1 -1 -1 -1 0 -1 2 1 1 1 -1 -1 -1 -1 -1 0 -1 2 1 1 1 1 -1 -1 -1 -1 1 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f t  t 13
 
-This algo is silent after 63 moves, 26 steps, 14 rounds.
+This algo is silent after 63 moves, 26 steps, 13 rounds.
 
 #quit
diff --git a/test/dfs/4.13.1/ER.rif.exp b/test/dfs/4.13.1/ER.rif.exp
index 3ca8c5b9..5eb58453 100644
--- a/test/dfs/4.13.1/ER.rif.exp
+++ b/test/dfs/4.13.1/ER.rif.exp
@@ -1,5 +1,5 @@
 # Automatically generated by /home/jahier/.opam/4.13.1/bin/sasa version "v4.6.0" ("169b4f7")
-# on crevetete the 20/6/2022 at 13:28:33
+# on crevetete the 22/6/2022 at 17:23:25
 #sasa ER.dot -seed 42
 
 #seed 42
@@ -104,8 +104,8 @@
 #outs -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 1 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 0 1 1 3 1 -1 -1 -1 -1 3 -1 0 1 1 -1 -1 -1 -1 -1 -1 1 -1 0 1 1 3 1 2 -1 -1 -1 2 -1 0 1 1 3 4 -1 -1 -1 -1 4 -1 0 1 1 3 4 3 -1 -1 -1 0 -1 0 1 1 3 4 3 1 -1 -1 0 -1 0 1 1 3 -1 -1 -1 -1 -1 2 f f f f f f f f f f f t f f f f f f f f f f f f f f f f f f f t f f f f f f f f f  t 11
 
 #step 32
-#outs -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 1 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 0 1 1 3 1 -1 -1 -1 -1 3 -1 0 1 1 -1 -1 -1 -1 -1 -1 1 -1 0 1 1 3 1 2 -1 -1 -1 1 -1 0 1 1 3 4 -1 -1 -1 -1 4 -1 0 1 1 3 4 3 -1 -1 -1 0 -1 0 1 1 3 4 3 1 -1 -1 0 -1 0 1 1 3 -1 -1 -1 -1 -1 2 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f t f f f f f f f f t  t 12
+#outs -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 1 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 0 1 1 3 1 -1 -1 -1 -1 3 -1 0 1 1 -1 -1 -1 -1 -1 -1 1 -1 0 1 1 3 1 2 -1 -1 -1 1 -1 0 1 1 3 4 -1 -1 -1 -1 4 -1 0 1 1 3 4 3 -1 -1 -1 0 -1 0 1 1 3 4 3 1 -1 -1 0 -1 0 1 1 3 -1 -1 -1 -1 -1 2 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f t  t 11
 
-This algo is silent after 95 moves, 32 steps, 12 rounds.
+This algo is silent after 95 moves, 32 steps, 11 rounds.
 
 #quit
diff --git a/test/dfs/4.13.1/g.rif.exp b/test/dfs/4.13.1/g.rif.exp
index f10fc03e..eb8f365b 100644
--- a/test/dfs/4.13.1/g.rif.exp
+++ b/test/dfs/4.13.1/g.rif.exp
@@ -1,5 +1,5 @@
 # Automatically generated by /home/jahier/.opam/4.13.1/bin/sasa version "v4.6.0" ("169b4f7")
-# on crevetete the 20/6/2022 at 13:28:33
+# on crevetete the 22/6/2022 at 17:23:25
 #sasa g.dot -seed 42
 
 #seed 42
@@ -86,8 +86,8 @@
 #outs -1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 2 -1 -1 -1 -1 -1 -1 -1 0 -1 0 2 2 -1 -1 -1 -1 -1 -1 1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 2 1 -1 -1 -1 -1 -1 -1 -1 0 -1 2 1 1 -1 -1 -1 -1 -1 -1 0 -1 2 1 1 1 -1 -1 -1 -1 -1 0 -1 2 1 1 1 1 -1 -1 -1 -1 0 f f f f f f f f f f f f f f f f f f f t f f f f f f f f f f f f f f f f f f f t f  t 13
 
 #step 26
-#outs -1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 2 -1 -1 -1 -1 -1 -1 -1 0 -1 0 2 2 -1 -1 -1 -1 -1 -1 1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 2 1 -1 -1 -1 -1 -1 -1 -1 0 -1 2 1 1 -1 -1 -1 -1 -1 -1 0 -1 2 1 1 1 -1 -1 -1 -1 -1 0 -1 2 1 1 1 1 -1 -1 -1 -1 1 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f t t  t 14
+#outs -1 0 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -10 -1 0 2 -1 -1 -1 -1 -1 -1 -1 0 -1 0 2 2 -1 -1 -1 -1 -1 -1 1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 2 1 -1 -1 -1 -1 -1 -1 -1 0 -1 2 1 1 -1 -1 -1 -1 -1 -1 0 -1 2 1 1 1 -1 -1 -1 -1 -1 0 -1 2 1 1 1 1 -1 -1 -1 -1 1 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f t  t 13
 
-This algo is silent after 63 moves, 26 steps, 14 rounds.
+This algo is silent after 63 moves, 26 steps, 13 rounds.
 
 #quit
diff --git a/test/dijkstra-ring/ring.rif.exp b/test/dijkstra-ring/ring.rif.exp
index e8c76bed..530ebc98 100644
--- a/test/dijkstra-ring/ring.rif.exp
+++ b/test/dijkstra-ring/ring.rif.exp
@@ -1,5 +1,5 @@
 # Automatically generated by /home/jahier/.opam/4.13.1/bin/sasa version "v4.6.0" ("169b4f7")
-# on crevetete the 20/6/2022 at 13:28:32
+# on crevetete the 22/6/2022 at 17:23:24
 #sasa ring.dot -seed 42
 
 #seed 42
diff --git a/test/k-clustering/4.13.1/fig52_kcl.rif.exp b/test/k-clustering/4.13.1/fig52_kcl.rif.exp
new file mode 100644
index 00000000..9128cdf1
--- /dev/null
+++ b/test/k-clustering/4.13.1/fig52_kcl.rif.exp
@@ -0,0 +1,30 @@
+# Automatically generated by /home/jahier/.opam/4.13.1/bin/sasa version "v4.6.0" ("169b4f7")
+# on crevetete the 22/6/2022 at 23:23:00
+#sasa fig52_kcl.dot -seed 42
+
+#seed 42
+#inputs 
+#outputs "Root_alpha":int "p2_alpha":int "p3_alpha":int "p4_alpha":int "p5_alpha":int "p6_alpha":int "p7_alpha":int "Enab_Root_change_alpha":bool "Enab_p2_change_alpha":bool "Enab_p3_change_alpha":bool "Enab_p4_change_alpha":bool "Enab_p5_change_alpha":bool "Enab_p6_change_alpha":bool "Enab_p7_change_alpha":bool "Root_change_alpha":bool "p2_change_alpha":bool "p3_change_alpha":bool "p4_change_alpha":bool "p5_change_alpha":bool "p6_change_alpha":bool "p7_change_alpha":bool "legitimate":bool potential:real round:bool round_nb:int
+
+
+#step 0
+#outs 0 0 0 0 0 0 0 t t t t t f f f t f f t f f f 15. f 0
+
+#step 1
+#outs 0 1 0 0 1 0 0 t f t t f f f t f t t f f f f 8. f 1
+
+#step 2
+#outs 2 1 1 2 1 0 0 f t t f f f f f f t f f f f f 5. t 2
+
+#step 3
+#outs 2 1 3 2 1 0 0 f t f f f f f f t f f f f f f 2. f 2
+
+#step 4
+#outs 2 4 3 2 1 0 0 t f f f f f f t f f f f f f f 1. t 3
+
+#step 5
+#outs 0 4 3 2 1 0 0 f f f f f f f f f f f f f f t 0. t 3
+
+This algo is silent after 8 moves, 5 steps, 3 rounds.
+
+#quit
diff --git a/test/k-clustering/4.14.0/fig52_kcl.rif.exp b/test/k-clustering/4.14.0/fig52_kcl.rif.exp
new file mode 100644
index 00000000..9128cdf1
--- /dev/null
+++ b/test/k-clustering/4.14.0/fig52_kcl.rif.exp
@@ -0,0 +1,30 @@
+# Automatically generated by /home/jahier/.opam/4.13.1/bin/sasa version "v4.6.0" ("169b4f7")
+# on crevetete the 22/6/2022 at 23:23:00
+#sasa fig52_kcl.dot -seed 42
+
+#seed 42
+#inputs 
+#outputs "Root_alpha":int "p2_alpha":int "p3_alpha":int "p4_alpha":int "p5_alpha":int "p6_alpha":int "p7_alpha":int "Enab_Root_change_alpha":bool "Enab_p2_change_alpha":bool "Enab_p3_change_alpha":bool "Enab_p4_change_alpha":bool "Enab_p5_change_alpha":bool "Enab_p6_change_alpha":bool "Enab_p7_change_alpha":bool "Root_change_alpha":bool "p2_change_alpha":bool "p3_change_alpha":bool "p4_change_alpha":bool "p5_change_alpha":bool "p6_change_alpha":bool "p7_change_alpha":bool "legitimate":bool potential:real round:bool round_nb:int
+
+
+#step 0
+#outs 0 0 0 0 0 0 0 t t t t t f f f t f f t f f f 15. f 0
+
+#step 1
+#outs 0 1 0 0 1 0 0 t f t t f f f t f t t f f f f 8. f 1
+
+#step 2
+#outs 2 1 1 2 1 0 0 f t t f f f f f f t f f f f f 5. t 2
+
+#step 3
+#outs 2 1 3 2 1 0 0 f t f f f f f f t f f f f f f 2. f 2
+
+#step 4
+#outs 2 4 3 2 1 0 0 t f f f f f f t f f f f f f f 1. t 3
+
+#step 5
+#outs 0 4 3 2 1 0 0 f f f f f f f f f f f f f f t 0. t 3
+
+This algo is silent after 8 moves, 5 steps, 3 rounds.
+
+#quit
diff --git a/test/rsp-tree/4.13.1/ba100.rif.exp b/test/rsp-tree/4.13.1/ba100.rif.exp
index 55647d92..4deb42fa 100644
--- a/test/rsp-tree/4.13.1/ba100.rif.exp
+++ b/test/rsp-tree/4.13.1/ba100.rif.exp
@@ -1,5 +1,5 @@
 # Automatically generated by /home/jahier/.opam/4.13.1/bin/sasa version "v4.6.0" ("169b4f7")
-# on crevetete the 20/6/2022 at 13:28:35
+# on crevetete the 22/6/2022 at 17:23:26
 #sasa ba100.dot -seed 42
 
 #seed 42
@@ -89,8 +89,8 @@
 #outs 1 -1 0 1 0 2 1 0 1 1 0 1 1 2 2 1 0 1 1 0 1 1 0 1 1 0 2 1 0 2 1 2 2 1 8 2 1 0 2 1 0 1 1 0 1 1 0 1 1 0 1 1 1 2 1 0 1 1 2 2 1 0 3 1 5 2 1 1 2 1 0 1 1 0 1 1 0 1 1 1 2 1 2 3 1 2 2 1 0 2 1 0 1 1 2 3 1 4 2 1 0 2 1 0 1 1 0 2 1 2 2 1 3 2 1 2 2 1 0 3 1 1 2 1 1 3 1 0 1 1 1 2 1 0 2 1 0 2 1 0 1 1 0 1 1 0 2 1 0 1 1 0 2 1 0 1 1 0 1 1 0 1 1 0 2 1 0 2 1 0 2 1 1 2 1 1 3 1 0 2 1 0 2 1 0 1 1 0 1 1 1 2 1 1 2 1 0 3 1 0 1 1 0 1 1 0 1 1 0 2 1 1 3 1 1 2 1 0 1 1 0 1 1 1 2 1 0 4 1 0 3 1 1 2 1 1 3 1 1 3 1 1 2 1 1 2 1 0 1 1 0 2 1 0 2 1 1 2 1 1 3 1 2 3 1 0 2 1 0 1 1 0 2 1 0 2 1 0 1 1 0 2 1 1 2 1 1 2 1 1 2 1 0 2 1 0 3 1 1 2 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f t f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f t f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f  t 8
 
 #step 27
-#outs 1 -1 0 1 0 2 1 0 1 1 0 1 1 2 2 1 0 1 1 0 1 1 0 1 1 0 2 1 0 2 1 2 2 1 8 2 1 0 2 1 0 1 1 0 1 1 0 1 1 0 1 1 1 2 1 0 1 1 2 2 1 0 3 1 5 2 1 1 2 1 0 1 1 0 1 1 0 1 1 1 2 1 2 3 1 2 2 1 0 2 1 0 1 1 2 3 1 4 2 1 0 2 1 0 1 1 0 2 1 2 2 1 3 2 1 2 2 1 0 3 1 1 2 1 1 3 1 0 1 1 1 2 1 0 2 1 0 2 1 0 1 1 0 1 1 0 2 1 0 1 1 0 2 1 0 1 1 0 1 1 0 1 1 0 2 1 0 2 1 0 2 1 1 2 1 1 3 1 0 2 1 0 2 1 0 1 1 0 1 1 1 2 1 1 2 1 0 3 1 0 1 1 0 1 1 0 1 1 0 2 1 1 3 1 1 2 1 0 1 1 0 1 1 1 2 1 0 3 1 0 3 1 1 2 1 1 3 1 1 3 1 1 2 1 1 2 1 0 1 1 0 2 1 0 2 1 1 2 1 1 3 1 2 3 1 0 2 1 0 1 1 0 2 1 0 2 1 0 1 1 0 2 1 1 2 1 1 2 1 1 2 1 0 2 1 0 3 1 1 2 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f t f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f t  t 9
+#outs 1 -1 0 1 0 2 1 0 1 1 0 1 1 2 2 1 0 1 1 0 1 1 0 1 1 0 2 1 0 2 1 2 2 1 8 2 1 0 2 1 0 1 1 0 1 1 0 1 1 0 1 1 1 2 1 0 1 1 2 2 1 0 3 1 5 2 1 1 2 1 0 1 1 0 1 1 0 1 1 1 2 1 2 3 1 2 2 1 0 2 1 0 1 1 2 3 1 4 2 1 0 2 1 0 1 1 0 2 1 2 2 1 3 2 1 2 2 1 0 3 1 1 2 1 1 3 1 0 1 1 1 2 1 0 2 1 0 2 1 0 1 1 0 1 1 0 2 1 0 1 1 0 2 1 0 1 1 0 1 1 0 1 1 0 2 1 0 2 1 0 2 1 1 2 1 1 3 1 0 2 1 0 2 1 0 1 1 0 1 1 1 2 1 1 2 1 0 3 1 0 1 1 0 1 1 0 1 1 0 2 1 1 3 1 1 2 1 0 1 1 0 1 1 1 2 1 0 3 1 0 3 1 1 2 1 1 3 1 1 3 1 1 2 1 1 2 1 0 1 1 0 2 1 0 2 1 1 2 1 1 3 1 2 3 1 0 2 1 0 1 1 0 2 1 0 2 1 0 1 1 0 2 1 1 2 1 1 2 1 1 2 1 0 2 1 0 3 1 1 2 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f t  t 8
 
-This algo is silent after 304 moves, 27 steps, 9 rounds.
+This algo is silent after 304 moves, 27 steps, 8 rounds.
 
 #quit
diff --git a/test/rsp-tree/4.13.1/er30.rif.exp b/test/rsp-tree/4.13.1/er30.rif.exp
index 6292a3ac..76187e1e 100644
--- a/test/rsp-tree/4.13.1/er30.rif.exp
+++ b/test/rsp-tree/4.13.1/er30.rif.exp
@@ -1,5 +1,5 @@
 # Automatically generated by /home/jahier/.opam/4.13.1/bin/sasa version "v4.6.0" ("169b4f7")
-# on crevetete the 20/6/2022 at 13:28:34
+# on crevetete the 22/6/2022 at 17:23:25
 #sasa er30.dot -seed 42
 
 #seed 42
@@ -107,8 +107,8 @@
 #outs 1 -1 0 1 1 2 1 2 2 1 0 4 1 1 4 1 0 3 1 0 3 1 1 4 1 0 1 1 1 3 1 0 3 1 2 3 1 3 3 1 2 4 1 1 2 1 1 4 1 1 4 1 0 3 1 0 3 1 0 3 1 0 3 1 0 3 1 0 3 1 0 3 1 0 2 1 2 3 1 3 3 1 0 5 1 1 5 1 0 5 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f t f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f t f f f f f f f f f f  t 9
 
 #step 33
-#outs 1 -1 0 1 1 2 1 2 2 1 0 4 1 1 4 1 0 3 1 0 3 1 1 4 1 0 1 1 1 3 1 0 3 1 2 3 1 3 3 1 2 4 1 1 2 1 1 4 1 1 4 1 0 3 1 0 3 1 0 3 1 0 3 1 0 3 1 0 3 1 0 3 1 0 2 1 2 3 1 3 3 1 0 5 1 1 4 1 0 5 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f t f f f f f f f f f t  t 10
+#outs 1 -1 0 1 1 2 1 2 2 1 0 4 1 1 4 1 0 3 1 0 3 1 1 4 1 0 1 1 1 3 1 0 3 1 2 3 1 3 3 1 2 4 1 1 2 1 1 4 1 1 4 1 0 3 1 0 3 1 0 3 1 0 3 1 0 3 1 0 3 1 0 3 1 0 2 1 2 3 1 3 3 1 0 5 1 1 4 1 0 5 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f t  t 9
 
-This algo is silent after 158 moves, 33 steps, 10 rounds.
+This algo is silent after 158 moves, 33 steps, 9 rounds.
 
 #quit
diff --git a/test/rsp-tree/4.13.1/grid4.rif.exp b/test/rsp-tree/4.13.1/grid4.rif.exp
index 734f3310..fdfdc65c 100644
--- a/test/rsp-tree/4.13.1/grid4.rif.exp
+++ b/test/rsp-tree/4.13.1/grid4.rif.exp
@@ -1,5 +1,5 @@
 # Automatically generated by /home/jahier/.opam/4.13.1/bin/sasa version "v4.6.0" ("169b4f7")
-# on crevetete the 20/6/2022 at 13:28:34
+# on crevetete the 22/6/2022 at 17:23:25
 #sasa grid4.dot -seed 42
 
 #seed 42
@@ -146,8 +146,8 @@
 #outs 1 -1 0 1 0 1 1 0 2 1 0 3 1 0 1 1 1 2 1 1 3 1 1 4 1 0 2 1 1 3 1 1 6 1 0 5 1 0 3 1 1 4 1 1 5 1 1 6 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f t f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f t f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f  t 20
 
 #step 46
-#outs 1 -1 0 1 0 1 1 0 2 1 0 3 1 0 1 1 1 2 1 1 3 1 1 4 1 0 2 1 1 3 1 1 4 1 0 5 1 0 3 1 1 4 1 1 5 1 1 6 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f t f f f f f f f f f f f f f f f f f f f f f f f f f f f f f t  t 21
+#outs 1 -1 0 1 0 1 1 0 2 1 0 3 1 0 1 1 1 2 1 1 3 1 1 4 1 0 2 1 1 3 1 1 4 1 0 5 1 0 3 1 1 4 1 1 5 1 1 6 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f t  t 20
 
-This algo is silent after 101 moves, 46 steps, 21 rounds.
+This algo is silent after 101 moves, 46 steps, 20 rounds.
 
 #quit
diff --git a/test/rsp-tree/4.13.1/udg100.rif.exp b/test/rsp-tree/4.13.1/udg100.rif.exp
index 90c5568f..b8edef73 100644
--- a/test/rsp-tree/4.13.1/udg100.rif.exp
+++ b/test/rsp-tree/4.13.1/udg100.rif.exp
@@ -1,5 +1,5 @@
 # Automatically generated by /home/jahier/.opam/4.13.1/bin/sasa version "v4.6.0" ("169b4f7")
-# on crevetete the 20/6/2022 at 13:28:35
+# on crevetete the 22/6/2022 at 17:23:26
 #sasa udg100.dot -seed 42
 
 #seed 42
@@ -107,8 +107,8 @@
 #outs 1 -1 0 1 0 1 1 5 3 1 5 3 1 17 2 1 12 3 1 0 1 1 20 4 1 0 1 1 21 2 1 0 1 1 0 1 1 0 1 1 21 2 1 5 3 1 0 1 1 12 3 1 16 3 1 17 4 1 19 2 1 18 3 1 21 4 1 20 2 1 22 3 1 25 2 1 8 4 1 0 1 1 12 3 1 16 4 1 9 3 1 20 3 1 16 2 1 5 3 1 15 4 1 7 4 1 13 4 1 17 4 1 8 3 1 12 3 1 20 2 1 22 2 1 19 4 1 14 4 1 21 2 1 18 4 1 14 4 1 19 3 1 20 2 1 0 1 1 15 4 1 24 2 1 17 3 1 12 3 1 0 1 1 0 1 1 12 2 1 21 4 1 12 3 1 17 3 1 18 4 1 16 4 1 21 2 1 0 1 1 21 4 1 19 4 1 11 2 1 15 2 1 0 1 1 19 3 1 0 1 1 9 2 1 0 1 1 14 2 1 7 3 1 0 1 1 3 2 1 15 2 1 18 2 1 14 5 1 20 2 1 0 1 1 0 1 1 0 1 1 17 2 1 0 1 1 12 3 1 0 1 1 0 1 1 18 2 1 0 1 1 7 3 1 9 3 1 9 3 1 14 4 1 19 2 1 20 4 1 15 4 1 0 1 1 0 1 1 15 3 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f t f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f t f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f  t 9
 
 #step 33
-#outs 1 -1 0 1 0 1 1 5 3 1 5 3 1 17 2 1 12 3 1 0 1 1 20 4 1 0 1 1 21 2 1 0 1 1 0 1 1 0 1 1 21 2 1 5 3 1 0 1 1 12 3 1 16 3 1 17 4 1 19 2 1 18 3 1 21 4 1 20 2 1 22 3 1 25 2 1 8 3 1 0 1 1 12 3 1 16 4 1 9 3 1 20 3 1 16 2 1 5 3 1 15 4 1 7 4 1 13 4 1 17 4 1 8 3 1 12 3 1 20 2 1 22 2 1 19 4 1 14 4 1 21 2 1 18 4 1 14 4 1 19 3 1 20 2 1 0 1 1 15 4 1 24 2 1 17 3 1 12 3 1 0 1 1 0 1 1 12 2 1 21 4 1 12 3 1 17 3 1 18 4 1 16 4 1 21 2 1 0 1 1 21 4 1 19 4 1 11 2 1 15 2 1 0 1 1 19 3 1 0 1 1 9 2 1 0 1 1 14 2 1 7 3 1 0 1 1 3 2 1 15 2 1 18 2 1 14 5 1 20 2 1 0 1 1 0 1 1 0 1 1 17 2 1 0 1 1 12 3 1 0 1 1 0 1 1 18 2 1 0 1 1 7 3 1 9 3 1 9 3 1 14 4 1 19 2 1 20 4 1 15 4 1 0 1 1 0 1 1 15 3 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f t f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f t  t 10
+#outs 1 -1 0 1 0 1 1 5 3 1 5 3 1 17 2 1 12 3 1 0 1 1 20 4 1 0 1 1 21 2 1 0 1 1 0 1 1 0 1 1 21 2 1 5 3 1 0 1 1 12 3 1 16 3 1 17 4 1 19 2 1 18 3 1 21 4 1 20 2 1 22 3 1 25 2 1 8 3 1 0 1 1 12 3 1 16 4 1 9 3 1 20 3 1 16 2 1 5 3 1 15 4 1 7 4 1 13 4 1 17 4 1 8 3 1 12 3 1 20 2 1 22 2 1 19 4 1 14 4 1 21 2 1 18 4 1 14 4 1 19 3 1 20 2 1 0 1 1 15 4 1 24 2 1 17 3 1 12 3 1 0 1 1 0 1 1 12 2 1 21 4 1 12 3 1 17 3 1 18 4 1 16 4 1 21 2 1 0 1 1 21 4 1 19 4 1 11 2 1 15 2 1 0 1 1 19 3 1 0 1 1 9 2 1 0 1 1 14 2 1 7 3 1 0 1 1 3 2 1 15 2 1 18 2 1 14 5 1 20 2 1 0 1 1 0 1 1 0 1 1 17 2 1 0 1 1 12 3 1 0 1 1 0 1 1 18 2 1 0 1 1 7 3 1 9 3 1 9 3 1 14 4 1 19 2 1 20 4 1 15 4 1 0 1 1 0 1 1 15 3 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f t  t 9
 
-This algo is silent after 499 moves, 33 steps, 10 rounds.
+This algo is silent after 499 moves, 33 steps, 9 rounds.
 
 #quit
diff --git a/test/toy-example-a5sf/te.rif.exp b/test/toy-example-a5sf/te.rif.exp
index 5b1bd03e..87c880ad 100644
--- a/test/toy-example-a5sf/te.rif.exp
+++ b/test/toy-example-a5sf/te.rif.exp
@@ -1,87 +1,84 @@
 # Automatically generated by /home/jahier/.opam/4.13.1/bin/sasa version "v4.6.0" ("169b4f7")
-# on crevetete the 20/6/2022 at 13:28:36
-#sasa te.dot
+# on crevetete the 22/6/2022 at 17:28:06
+#sasa te.dot -seed 42
 
-#seed 513358919
+#seed 42
 #inputs 
 #outputs "p1_input":int "p1_sub":int "p1_res":int "p2_input":int "p2_sub":int "p2_res":int "p3_input":int "p3_sub":int "p3_res":int "p4_input":int "p4_sub":int "p4_res":int "p5_input":int "p5_sub":int "p5_res":int "p6_input":int "p6_sub":int "p6_res":int "p7_input":int "p7_sub":int "p7_res":int "Enab_p1_S":bool "Enab_p1_RR":bool "Enab_p1_RP":bool "Enab_p2_S":bool "Enab_p2_RR":bool "Enab_p2_RP":bool "Enab_p3_S":bool "Enab_p3_RR":bool "Enab_p3_RP":bool "Enab_p4_S":bool "Enab_p4_RR":bool "Enab_p4_RP":bool "Enab_p5_S":bool "Enab_p5_RR":bool "Enab_p5_RP":bool "Enab_p6_S":bool "Enab_p6_RR":bool "Enab_p6_RP":bool "Enab_p7_S":bool "Enab_p7_RR":bool "Enab_p7_RP":bool "p1_S":bool "p1_RR":bool "p1_RP":bool "p2_S":bool "p2_RR":bool "p2_RP":bool "p3_S":bool "p3_RR":bool "p3_RP":bool "p4_S":bool "p4_RR":bool "p4_RP":bool "p5_S":bool "p5_RR":bool "p5_RP":bool "p6_S":bool "p6_RR":bool "p6_RP":bool "p7_S":bool "p7_RR":bool "p7_RP":bool "legitimate":bool potential:real round:bool round_nb:int
 
 
 #step 0
-#outs 1 2 2 1 1 2 1 0 0 1 2 0 1 0 0 1 4 0 1 0 0 f f f f f f t f f t f f t f f t f f t f f f f f f f f t f f t f f t f f f f f f f f f 240. f 0
+#outs 1 2 2 1 1 2 1 0 0 1 2 0 1 0 0 1 4 0 1 0 0 f f f f f f t f f t f f t f f t f f t f f f f f f f f f f f t f f f f f f f f t f f f 240. f 0
 
 #step 1
-#outs 1 2 2 1 1 2 1 3 0 1 1 0 1 5 0 1 4 0 1 0 0 f f f t f f t f f t f f f f t t f f t f f f f f f f f t f f t f f f f t f f f f f f f 240. f 1
+#outs 1 2 2 1 1 2 1 0 0 1 1 0 1 0 0 1 4 0 1 1 0 f f f f f f t f f f f t t f f t f f f f t f f f f f f t f f f f t f f f f f f f f f f 148. f 1
 
 #step 2
-#outs 1 2 2 1 1 2 1 2 0 1 6 0 1 5 5 1 4 0 1 0 0 f f f t f f t f f f f t f f f t f f t f f f f f t f f f f f f f t f f f t f f t f f f 194. f 1
+#outs 1 2 2 1 1 2 1 2 0 1 1 1 1 0 0 1 4 0 1 1 0 f f f t f f f f t f f f t f f t f f f f t f f f f f f f f f f f f f f f t f f f f t f 148. f 1
 
 #step 3
-#outs 1 2 2 1 3 2 1 2 0 1 6 6 1 5 5 1 1 0 1 1 0 t f f f f t t f f f f f t f f t f f f f t t f f f f t f f f f f f t f f f f f f f t f 194. t 2
+#outs 1 2 2 1 1 2 1 2 0 1 1 1 1 0 0 1 2 0 1 1 1 f f f t f f f f t f f f t f f f f t f f f f f f f f f f f t f f f f f f f f f f f f f 100. f 1
 
 #step 4
-#outs 1 4 2 1 3 3 1 2 0 1 6 6 1 2 5 1 1 0 1 1 1 f t f f f f t f f t f f f f t t f f f f f f t f f f f f f f f f f f f t t f f f f f f 152. f 2
+#outs 1 2 2 1 1 2 1 2 2 1 1 1 1 0 0 1 2 0 1 1 1 f f f t f f f f f f f t t f f f f t f f f f f f t f f f f f f f f t f f f f t f f f f 99. f 1
 
 #step 5
-#outs 1 4 4 1 3 3 1 2 0 1 6 6 1 2 6 1 2 0 1 1 1 f f f f f t t f f t f f t f f f f t f f f f f f f f t f f f t f f f f f f f f f f f f 149. f 2
+#outs 1 2 2 1 3 2 1 2 2 1 1 1 1 3 0 1 2 2 1 1 1 t f f f f t f f f t f f f f t f f f f f t f f f f f f f f f f f f f f f f f f f f t f 101. t 2
 
 #step 6
-#outs 1 4 4 1 3 4 1 2 0 1 3 6 1 2 6 1 2 0 1 1 1 f f f f f f t f f f f t t f f f f t f f f f f f f f f t f f f f t t f f f f f f f f f 100. f 2
+#outs 1 2 2 1 3 2 1 2 2 1 1 1 1 3 0 1 2 2 1 1 2 t f f f f t f f f t f f f f t f f f f f f t f f f f f f f f f f f f f t f f f f f f f 100. f 2
 
 #step 7
-#outs 1 4 4 1 3 4 1 4 0 1 3 3 1 3 6 1 2 0 1 1 1 f f f t f f f f t t f f f f t f f t f f f f f f t f f f f t t f f f f t f f f f f f f 102. t 3
+#outs 1 4 2 1 3 2 1 2 2 1 1 1 1 3 3 1 2 2 1 1 2 f t f f f t f f f t f f f f f f f t f f f f f f f f f f f f t f f f f f f f t f f f f 62. f 2
 
 #step 8
-#outs 1 4 4 1 5 4 1 4 4 1 4 3 1 3 3 1 2 0 1 1 1 t f f f f t t f f f f t f f f f f t f f f t f f f f t f f f f f f f f f f f f f f f f 102. f 3
+#outs 1 4 2 1 3 2 1 2 2 1 4 1 1 3 3 1 2 3 1 1 2 f t f f f t t f f f f t f f f f f f f f t f t f f f f f f f f f t f f f f f f f f f f 64. f 2
 
 #step 9
-#outs 1 6 4 1 5 5 1 4 4 1 4 3 1 3 3 1 2 0 1 1 1 f t f f f f t f f f f t f f f f f t f f f f f f f f f f f f f f t f f f f f t f f f f 59. f 3
+#outs 1 4 4 1 3 2 1 2 2 1 4 4 1 3 3 1 2 3 1 1 2 f f f f f t t f f f f f f f t f f f f f t f f f f f t t f f f f f f f t f f f f f t f 56. f 2
 
 #step 10
-#outs 1 6 4 1 5 5 1 4 4 1 4 4 1 3 3 1 2 3 1 1 1 f t f f f f t f f f f f f f t f f f f f t f t f f f f f f f f f f f f f f f f f f t f 57. t 4
+#outs 1 4 4 1 3 4 1 5 2 1 4 4 1 3 4 1 2 3 1 1 3 f f f t f f f f t f f f f f f f f t f f f f f f t f f f f f f f f f f f f f t f f f f 52. t 3
 
 #step 11
-#outs 1 6 6 1 5 5 1 4 4 1 4 4 1 3 3 1 2 3 1 1 3 f f f f f t t f f f f f f f t f f f f f f f f f f f f f f f f f f f f t f f f f f f f 55. f 4
+#outs 1 4 4 1 6 4 1 5 2 1 4 4 1 3 4 1 2 4 1 1 3 t f f f f t f f t f f f f f f f f f f f t t f f f f t f f t f f f f f f f f f f f f f 56. f 3
 
 #step 12
-#outs 1 6 6 1 5 5 1 4 4 1 4 4 1 3 4 1 2 3 1 1 3 f f f f f t t f f f f f f f f f f t f f f f f f f f t t f f f f f f f f f f f f f f f 54. f 4
+#outs 1 7 4 1 6 6 1 5 5 1 4 4 1 3 4 1 2 4 1 1 3 f t f f f f f f t f f t f f f f f f f f t f t f f f f f f t f f t f f f f f f f f t f 17. t 4
 
 #step 13
-#outs 1 6 6 1 5 6 1 5 4 1 4 4 1 3 4 1 2 3 1 1 3 f f f t f f f f t f f f f f f f f t f f f f f f f f f f f f f f f f f f f f t f f f f 52. t 5
+#outs 1 7 7 1 6 6 1 5 6 1 4 5 1 3 4 1 2 4 1 1 4 f f f f f t f f f f f t f f t f f f f f f f f f f f f f f f f f t f f t f f f f f f f 13. t 5
 
 #step 14
-#outs 1 6 6 1 5 6 1 5 4 1 4 4 1 3 4 1 2 4 1 1 3 f f f t f f f f t f f f f f f f f f f f t f f f t f f f f f f f f f f f f f f f f t f 51. f 5
+#outs 1 7 7 1 6 6 1 5 6 1 4 6 1 3 5 1 2 4 1 1 4 f f f f f t f f f f f f f f t f f t f f f f f f f f t f f f f f f f f f f f t f f f f 11. f 5
 
 #step 15
-#outs 1 6 6 1 6 6 1 5 4 1 4 4 1 3 4 1 2 4 1 1 4 t f f f f f f f t f f f f f f f f f f f f f f f f f f f f t f f f f f f f f f f f f f 49. f 5
+#outs 1 7 7 1 6 7 1 5 6 1 4 6 1 3 5 1 2 5 1 1 4 f f f f f f f f t f f f f f t f f f f f t f f f f f f f f f f f f f f t f f f f f f f 9. t 6
 
 #step 16
-#outs 1 6 6 1 6 6 1 5 6 1 4 4 1 3 4 1 2 4 1 1 4 t f f f f f f f f f f t f f f f f f f f f t f f f f f f f f f f t f f f f f f f f f f 48. t 6
+#outs 1 7 7 1 6 7 1 5 6 1 4 6 1 3 6 1 2 5 1 1 4 f f f f f f f f t f f f f f f f f t f f t f f f f f f f f t f f f f f f f f f f f t f 8. f 6
 
 #step 17
-#outs 1 7 6 1 6 6 1 5 6 1 4 6 1 3 4 1 2 4 1 1 4 f t f f f f f f f f f f f f t f f f f f f f t f f f f f f f f f f f f t f f f f f f f 10. t 7
+#outs 1 7 7 1 6 7 1 5 7 1 4 6 1 3 6 1 2 5 1 1 5 f f f f f f f f f f f t f f f f f t f f f f f f f f f f f f f f t f f f f f f f f f f 6. t 7
 
 #step 18
-#outs 1 7 7 1 6 6 1 5 6 1 4 6 1 3 6 1 2 4 1 1 4 f f f f f t f f f f f f f f f f f t f f f f f f f f t f f f f f f f f f f f t f f f f 8. t 8
+#outs 1 7 7 1 6 7 1 5 7 1 4 7 1 3 6 1 2 5 1 1 5 f f f f f f f f f f f f f f t f f t f f f f f f f f f f f f f f f f f f f f t f f f f 5. f 7
 
 #step 19
-#outs 1 7 7 1 6 7 1 5 6 1 4 6 1 3 6 1 2 6 1 1 4 f f f f f f f f t f f f f f f f f f f f t f f f f f f f f t f f f f f f f f f f f t f 6. t 9
+#outs 1 7 7 1 6 7 1 5 7 1 4 7 1 3 6 1 2 6 1 1 5 f f f f f f f f f f f f f f t f f f f f t f f f f f f f f f f f f f f t f f f f f f f 4. t 8
 
 #step 20
-#outs 1 7 7 1 6 7 1 5 7 1 4 6 1 3 6 1 2 6 1 1 6 f f f f f f f f f f f t f f f f f f f f f f f f f f f f f f f f t f f f f f f f f f f 4. t 10
+#outs 1 7 7 1 6 7 1 5 7 1 4 7 1 3 7 1 2 6 1 1 5 f f f f f f f f f f f f f f f f f t f f t f f f f f f f f f f f f f f f f f f f f t f 3. f 8
 
 #step 21
-#outs 1 7 7 1 6 7 1 5 7 1 4 7 1 3 6 1 2 6 1 1 6 f f f f f f f f f f f f f f t f f f f f f f f f f f f f f f f f f f f t f f f f f f f 3. t 11
+#outs 1 7 7 1 6 7 1 5 7 1 4 7 1 3 7 1 2 6 1 1 6 f f f f f f f f f f f f f f f f f t f f f f f f f f f f f f f f f f f f f f t f f f f 2. t 9
 
 #step 22
-#outs 1 7 7 1 6 7 1 5 7 1 4 7 1 3 7 1 2 6 1 1 6 f f f f f f f f f f f f f f f f f t f f f f f f f f f f f f f f f f f f f f t f f f f 2. t 12
+#outs 1 7 7 1 6 7 1 5 7 1 4 7 1 3 7 1 2 7 1 1 6 f f f f f f f f f f f f f f f f f f f f t f f f f f f f f f f f f f f f f f f f f t f 1. t 10
 
 #step 23
-#outs 1 7 7 1 6 7 1 5 7 1 4 7 1 3 7 1 2 7 1 1 6 f f f f f f f f f f f f f f f f f f f f t f f f f f f f f f f f f f f f f f f f f t f 1. t 13
+#outs 1 7 7 1 6 7 1 5 7 1 4 7 1 3 7 1 2 7 1 1 7 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f t 0. t 10
 
-#step 24
-#outs 1 7 7 1 6 7 1 5 7 1 4 7 1 3 7 1 2 7 1 1 7 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f t t 0. t 14
-
-This algo is silent after 51 moves, 24 steps, 14 rounds.
+This algo is silent after 43 moves, 23 steps, 10 rounds.
 
 #quit
diff --git a/tools/rdbg4sasa/sasa-rdbg-cmds.ml b/tools/rdbg4sasa/sasa-rdbg-cmds.ml
index 44d36818..725460c9 100644
--- a/tools/rdbg4sasa/sasa-rdbg-cmds.ml
+++ b/tools/rdbg4sasa/sasa-rdbg-cmds.ml
@@ -48,7 +48,7 @@ let enabled pl = (* returns the enabled processes *)
 (* called at each event via the time-travel hook *)
 let (round : RdbgEvent.t -> bool) =
   fun e ->
-  if e.kind=Exit && e.name = "sasa" then get_round e (* || is_legitimate e *) else false
+  if e.kind=Exit && e.name = "sasa" then get_round e else false
 
 let sasa_next e =
   let ne = e.next () in
@@ -58,7 +58,7 @@ let sasa_next e =
   ne
 
 let next_round e =
-  next_cond_gen e round sasa_next
+  next_cond_gen e (fun e -> round e || is_legitimate e) sasa_next
 
 
 let back_step e =
-- 
GitLab