From 42f54ec896664a3e2b961e08af32cee7e3b659bd Mon Sep 17 00:00:00 2001
From: Hans-Peter Deifel <hpd@hpdeifel.de>
Date: Wed, 17 Apr 2019 13:57:05 +0200
Subject: [PATCH] Place tombstone for repo

---
 .gitignore                      |   13 -
 README.md                       |   10 +-
 artefakt_rebuttal.org           |  397 --------
 cabal.project.freeze            |  147 ---
 dfa/bench.py                    |  248 -----
 dfa/benchmark.org               |  749 ---------------
 dfa/results1.png                |  Bin 39560 -> 0 bytes
 dfa/results1000.png             |  Bin 34262 -> 0 bytes
 dfa/results10000.png            |  Bin 28671 -> 0 bytes
 dfa/results2.png                |  Bin 39837 -> 0 bytes
 dfa/results2f.png               |  Bin 41000 -> 0 bytes
 optimizations/optimizations.org |  123 ---
 prism/bench.py                  |   54 --
 prism/benchmark.org             | 1554 ------------------------------
 prism/valmari-extract-sort1.hs  |   55 --
 valmari_fig4/bench.py           |   60 --
 valmari_fig4/benchmark.org      |  130 ---
 valmari_fig4/generate.py        |   47 -
 wta/README.md                   |   11 -
 wta/bench.py                    |  392 --------
 wta/benchmarks.org              | 1561 -------------------------------
 21 files changed, 1 insertion(+), 5550 deletions(-)
 delete mode 100644 .gitignore
 delete mode 100644 artefakt_rebuttal.org
 delete mode 100644 cabal.project.freeze
 delete mode 100755 dfa/bench.py
 delete mode 100644 dfa/benchmark.org
 delete mode 100644 dfa/results1.png
 delete mode 100644 dfa/results1000.png
 delete mode 100644 dfa/results10000.png
 delete mode 100644 dfa/results2.png
 delete mode 100644 dfa/results2f.png
 delete mode 100644 optimizations/optimizations.org
 delete mode 100755 prism/bench.py
 delete mode 100644 prism/benchmark.org
 delete mode 100644 prism/valmari-extract-sort1.hs
 delete mode 100755 valmari_fig4/bench.py
 delete mode 100644 valmari_fig4/benchmark.org
 delete mode 100755 valmari_fig4/generate.py
 delete mode 100644 wta/README.md
 delete mode 100755 wta/bench.py
 delete mode 100644 wta/benchmarks.org

diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 6ba9fa5..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,13 +0,0 @@
-auto/
-ltximg/
-
-valmari_fig4/benchmark.pdf
-valmari_fig4/benchmark.tex
-valmari_fig4/benchmark.tmp
-valmari_fig4/benchmarks.png
-prism/bench/
-dfa/bench/
-*.pdf
-*.tex
-/dfa/bench
-/wta/bench
diff --git a/README.md b/README.md
index d26e0bc..886bfa3 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,2 @@
 # Benchmarks for CoPaR
-
-This repository contains tooling and raw results from benchmarking
-[CoPaR](https://git8.cs.fau.de/software/copar).
-
-This repo contains benchmarks for:
-
-- Deterministic Finite Automata in `dfa/`
-- Adaptions of the benchmark suite of the PRISM model checker in `prism/`
-- Weighted Tree Automata in `wta/`
+### This repo has moved to https://gitlab.cs.fau.de/hpd/copar-benchmarks
diff --git a/artefakt_rebuttal.org b/artefakt_rebuttal.org
deleted file mode 100644
index 4897d28..0000000
--- a/artefakt_rebuttal.org
+++ /dev/null
@@ -1,397 +0,0 @@
-#+TITLE: Messungen zum Artifact-Rebuttal
-#+DATE: <2018-12-07 Fr>
-#+AUTHOR: Hans-Peter Deifel
-
-Alle Messungen bis auf das Paper wurden mit dem Artefakt-Binary durchgeführt auf
-den im Artefakt mitgelieferten Dateien.
-
-* Ergebnisse im Paper
-** DFA 10^3
-
-   #+NAME: paper_dfa_1000
-   |    N | t_p (s) | t_i (s) | t_r (s) | t_v (s) |
-   |------+---------+---------+---------+---------|
-   | 1000 |     2.4 |    0.76 |    0.36 |    1.03 |
-   | 2000 |    4.96 |    1.58 |    0.74 |    2.52 |
-   | 3000 |    7.39 |    2.11 |     1.4 |    4.33 |
-   | 4000 |    10.2 |     3.2 |    1.67 |    5.74 |
-   | 5000 |   13.06 |    4.05 |     2.1 |    7.45 |
-
-** DFA 10^4
-
-   #+NAME: paper_dfa_10000
-   |    N | t_p (s) | t_i (s) | t_r (s) | t_v (s) |
-   |------+---------+---------+---------+---------|
-   |  600 |   44.75 |    1.82 |    2.88 |    7.84 |
-   |  700 |   50.93 |    4.29 |    3.18 |    9.42 |
-   |  800 |   60.78 |    2.54 |    4.16 |   11.04 |
-   |  900 |   68.34 |    2.76 |     4.6 |   12.71 |
-   | 1000 |   75.79 |    3.05 |    5.21 |   14.32 |
-
-** PRISM
-
-   #+NAME: paper_prism
-   |   | t_p(s) | t_i(s) | t_r(s) | t_v(s) |
-   |---+--------+--------+--------+--------|
-   | 1 |   2.39 |   0.66 |   1.09 |   1.19 |
-   | 1 |   9.66 |   2.83 |   5.43 |   5.58 |
-   | 2 |   0.47 |   0.28 |   0.57 |   0.12 |
-   | 3 |   4.89 |   3.01 |   5.45 |   0.91 |
-   | 3 |  12.59 |   6.17 |  15.12 |   2.45 |
-
-* Ergebnisse am Desktop
-
-  Desktop hat 16GB RAM. Ausgabe von =lscpu=:
-
-  #+BEGIN_EXAMPLE
-  Architecture:        x86_64
-  CPU op-mode(s):      32-bit, 64-bit
-  Byte Order:          Little Endian
-  Address sizes:       39 bits physical, 48 bits virtual
-  CPU(s):              4
-  On-line CPU(s) list: 0-3
-  Thread(s) per core:  1
-  Core(s) per socket:  4
-  Socket(s):           1
-  NUMA node(s):        1
-  Vendor ID:           GenuineIntel
-  CPU family:          6
-  Model:               94
-  Model name:          Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz
-  Stepping:            3
-  CPU MHz:             3203.065
-  CPU max MHz:         3600,0000
-  CPU min MHz:         800,0000
-  BogoMIPS:            6386.00
-  Virtualization:      VT-x
-  L1d cache:           32K
-  L1i cache:           32K
-  L2 cache:            256K
-  L3 cache:            6144K
-  NUMA node0 CPU(s):   0-3
-  Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp flush_l1d
-  #+END_EXAMPLE
-  
-** DFA 10^3
-
-   #+NAME: desktop_dfa_1000
-   |    N |    tp |   ti |   tr |   tv |
-   |------+-------+------+------+------|
-   | 1000 |  2.56 | 0.82 | 0.37 | 1.06 |
-   | 2000 |  5.29 | 1.67 | 0.80 | 2.65 |
-   | 3000 |  7.83 | 2.32 | 1.52 | 4.24 |
-   | 4000 | 10.68 | 3.40 | 1.74 | 6.54 |
-   | 5000 | 13.66 | 4.28 | 2.22 | 7.73 |
-
-** DFA 10^4
-
-   #+NAME: desktop_dfa_10000
-   |    N |    tp |   ti |   tr |    tv |
-   |------+-------+------+------+-------|
-   |  600 | 46.42 | 1.86 | 3.02 |  8.64 |
-   |  700 | 52.50 | 4.55 | 3.32 | 10.25 |
-   |  800 | 62.34 | 2.52 | 4.36 | 11.53 |
-   |  900 | 70.08 | 2.78 | 4.92 | 13.85 |
-   | 1000 | 78.11 | 3.14 | 5.49 | 14.64 |
-
-** PRISM
-
-   #+NAME: desktop_prism
-   |    |    tp |   ti |    tr |   tv |
-   |----+-------+------+-------+------|
-   | 1. |  2.54 | 0.70 |  1.11 | 1.19 |
-   | 1. | 10.26 | 3.00 |  5.61 | 6.09 |
-   | 2. |  0.51 | 0.29 |  0.60 | 0.08 |
-   | 3. |  5.33 | 3.09 |  5.78 | 0.78 |
-   | 3. | 13.75 | 6.36 | 16.05 | 2.78 |
-
-* Ergebnisse am Laptop
-
-  Der Laptop hat 8GB und folgendes =lscpu=:
-
-  #+BEGIN_EXAMPLE
-  Architecture:        x86_64
-  CPU op-mode(s):      32-bit, 64-bit
-  Byte Order:          Little Endian
-  Address sizes:       39 bits physical, 48 bits virtual
-  CPU(s):              4
-  On-line CPU(s) list: 0-3
-  Thread(s) per core:  1
-  Core(s) per socket:  4
-  Socket(s):           1
-  NUMA node(s):        1
-  Vendor ID:           GenuineIntel
-  CPU family:          6
-  Model:               94
-  Model name:          Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz
-  Stepping:            3
-  CPU MHz:             2763.879
-  CPU max MHz:         3600.0000
-  CPU min MHz:         800.0000
-  BogoMIPS:            6386.00
-  Virtualization:      VT-x
-  L1d cache:           32K
-  L1i cache:           32K
-  L2 cache:            256K
-  L3 cache:            6144K
-  NUMA node0 CPU(s):   0-3
-  Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp flush_l1d
-  #+END_EXAMPLE
-  
-** DFA 10^3
-
- #+NAME: laptop_dfa_1000
- |    N | t_p (s) | t_i (s) | t_r (s) | t_v (s) |
- |------+---------+---------+---------+---------|
- | 1000 |    3.78 |    1.17 |    0.49 |    1.49 |
- | 2000 |    7.95 |    2.44 |    1.03 |    3.42 |
- | 3000 |   11.84 |    3.27 |    1.91 |    5.36 |
- | 4000 |   16.33 |    5.04 |    2.22 |    7.43 |
- | 5000 |   20.70 |    6.37 |    2.80 |    9.44 |
-
-** DFA 10^4
-
- #+NAME: laptop_dfa_10000
- |   N | t_p (s) | t_i (s) | t_r (s) | t_v (s) |
- |-----+---------+---------+---------+---------|
- | 600 |   67.28 |    3.02 |    4.52 |   10.43 |
- | 700 |   80.67 |    7.68 |    5.12 |   12.65 |
-
- Rest ging nicht wegen RAM
-
-** PRISM
-
- #+NAME: laptop_prism
- | File | t_p (s) | t_i (s) | t_r (s) | t_v (s) |
- |------+---------+---------+---------+---------|
- |    1 |    4.20 |    1.11 |    1.80 |    2.18 |
- |    1 |   19.13 |    4.74 |    9.42 |    8.20 |
- |    2 |    1.09 |    0.46 |    1.17 |    0.12 |
- |    3 |    9.86 |    4.54 |    9.96 |    1.23 |
- |    3 |   28.01 |    9.91 |   27.27 |    3.42 |
-
-** Faktor zw Laptop und Desktop
-*** DFA 10^3
-
-    #+CALL: factor(a=desktop_dfa_1000, b=laptop_dfa_1000)
-
-    #+RESULTS:
-    |    N | t_p (s) | t_i (s) | t_r (s) | t_v (s) |
-    |------+---------+---------+---------+---------|
-    | 1000 |    1.48 |    1.43 |    1.32 |    1.41 |
-    | 2000 |     1.5 |    1.46 |    1.29 |    1.29 |
-    | 3000 |    1.51 |    1.41 |    1.26 |    1.26 |
-    | 4000 |    1.53 |    1.48 |    1.28 |    1.14 |
-    | 5000 |    1.52 |    1.49 |    1.26 |    1.22 |
-
-*** DFA 10^4
-
-    #+CALL: factor(a=desktop_dfa_10000, b=laptop_dfa_10000)
-
-    #+RESULTS:
-    |   N | t_p (s) | t_i (s) | t_r (s) | t_v (s) |
-    |-----+---------+---------+---------+---------|
-    | 600 |    1.45 |    1.62 |     1.5 |    1.21 |
-    | 700 |    1.54 |    1.69 |    1.54 |    1.23 |
-
-*** PRISM
-
-    #+CALL: factor(a=desktop_prism, b=laptop_prism)
-
-    #+RESULTS:
-    | File | t_p (s) | t_i (s) | t_r (s) | t_v (s) |
-    |------+---------+---------+---------+---------|
-    |    1 |    1.65 |    1.59 |    1.62 |    1.83 |
-    |    1 |    1.86 |    1.58 |    1.68 |    1.35 |
-    |    2 |    2.14 |    1.59 |    1.95 |     1.5 |
-    |    3 |    1.85 |    1.47 |    1.72 |    1.58 |
-    |    3 |    2.04 |    1.56 |     1.7 |    1.23 |
-
-* Ergebnisse in VM am Desktop
-
-  VM hatte 8 von 16 GB RAM des Hostsystems
-
-** DFA 10^3
-
-   #+NAME: vm_dfa_1000
-   |    N |    tp |   ti |   tr |   tv |
-   |------+-------+------+------+------|
-   | 1000 |  3.33 | 0.82 | 0.39 | 1.25 |
-   | 2000 |  6.65 | 1.69 | 0.83 | 3.55 |
-   | 3000 | 10.20 | 2.29 | 1.62 | 4.97 |
-   | 4000 | 13.89 | 3.48 | 1.90 | 6.77 |
-   | 5000 | 17.31 | 4.31 | 2.34 | 9.20 |
-
-** DFA 10^4
-
-   #+NAME: vm_dfa_10000
-   |   N |    tp |   ti |   tr |    tv |
-   |-----+-------+------+------+-------|
-   | 600 | 82.08 | 1.94 | 3.24 |  9.65 |
-   | 700 | 93.74 | 4.58 | 3.55 | 11.13 |
-
-   Mehr ging nicht wegen RAM
-
-** PRISM
-
-   #+NAME: vm_prism
-   |    |    tp |   ti |    tr |   tv |
-   |----+-------+------+-------+------|
-   | 1. |  2.63 | 0.74 |  1.21 | 1.41 |
-   | 1. | 10.98 | 3.20 |  6.17 | 6.34 |
-   | 2. |  0.55 | 0.31 |  0.65 | 0.11 |
-   | 3. |  5.59 | 3.22 |  6.08 | 0.86 |
-   | 3. | 14.46 | 6.55 | 17.19 | 2.95 |
-
-** Faktor zu Desktop
-*** DFA 10^3
-
-    #+CALL: factor(a=desktop_dfa_1000, b=vm_dfa_1000)
-
-    #+RESULTS:
-    |    N |   tp |   ti |   tr |   tv |
-    |------+------+------+------+------|
-    | 1000 |  1.3 |  1.0 | 1.05 | 1.18 |
-    | 2000 | 1.26 | 1.01 | 1.04 | 1.34 |
-    | 3000 |  1.3 | 0.99 | 1.07 | 1.17 |
-    | 4000 |  1.3 | 1.02 | 1.09 | 1.04 |
-    | 5000 | 1.27 | 1.01 | 1.05 | 1.19 |
-    
-*** DFA 10^4
-
-    #+CALL: factor(a=desktop_dfa_10000, b=vm_dfa_10000)
-
-    #+RESULTS:
-    |   N |   tp |   ti |   tr |   tv |
-    |-----+------+------+------+------|
-    | 600 | 1.77 | 1.04 | 1.07 | 1.12 |
-    | 700 | 1.79 | 1.01 | 1.07 | 1.09 |
-
-*** PRISM
-
-    #+CALL: factor(a=desktop_prism, b=vm_prism)
-
-    #+RESULTS:
-    |   |   tp |   ti |   tr |   tv |
-    |---+------+------+------+------|
-    | 1 | 1.04 | 1.06 | 1.09 | 1.18 |
-    | 1 | 1.07 | 1.07 |  1.1 | 1.04 |
-    | 2 | 1.08 | 1.07 | 1.08 | 1.38 |
-    | 3 | 1.05 | 1.04 | 1.05 |  1.1 |
-    | 3 | 1.05 | 1.03 | 1.07 | 1.06 |
-
-* Ergebnisse auf Thorstens Rechner
-
-  Der Rechner hat theoretisch 16GB, allerdings kann mein Account davon nicht
-  alle Nutzen (vll ca 10?). Ausgabe von =lscpu=:
-
-  #+BEGIN_EXAMPLE
-  processor	: 0
-  vendor_id	: GenuineIntel
-  cpu family	: 6
-  model		: 60
-  model name	: Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz
-  stepping	: 3
-  microcode	: 0x1c
-  cpu MHz		: 3979.623
-  cache size	: 8192 KB
-  physical id	: 0
-  siblings	: 8
-  core id		: 0
-  cpu cores	: 4
-  apicid		: 0
-  initial apicid	: 0
-  fpu		: yes
-  fpu_exception	: yes
-  cpuid level	: 13
-  wp		: yes
-  flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand lahf_lm abm cpuid_fault epb invpcid_single pti tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt dtherm ida arat pln pts
-  bugs		: cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf
-  bogomips	: 7186.95
-  clflush size	: 64
-  cache_alignment	: 64
-  address sizes	: 39 bits physical, 48 bits virtual
-  power management:
-  #+END_EXAMPLE
-  
-** DFA 10^3
-
-   |    N | t_p(s) | t_i(s) | t_r(s) | t_v(s) |
-   |------+--------+--------+--------+--------|
-   | 1000 |   2.43 |   0.81 |   0.37 |   1.02 |
-   | 2000 |   4.99 |   1.69 |   0.78 |   2.62 |
-   | 3000 |   7.36 |   2.16 |   1.42 |   4.26 |
-   | 4000 |  10.12 |   3.45 |   1.71 |   6.16 |
-   | 5000 |  12.95 |   4.42 |   2.18 |   7.77 |
-
-** DFA 10^4
-
-   |   N | t_p(s) | t_i(s) | t_r(s) | t_v(s) |
-   |-----+--------+--------+--------+--------|
-   | 600 |  47.32 |   1.84 |   3.17 |   7.87 |
-   | 700 |  53.92 |   4.39 |   3.26 |   9.26 |
-
-** PRISM
-
-   | File | t_p(s) | t_i(s) | t_r(s) | t_v(s) |
-   |------+--------+--------+--------+--------|
-   |    1 |   2.39 |   0.70 |   1.13 |   1.17 |
-   |    1 |   9.74 |   3.00 |   5.73 |   5.60 |
-   |    2 |   0.49 |   0.31 |   0.62 |   0.09 |
-   |    3 |   5.18 |   3.39 |   6.20 |   0.76 |
-   |    3 |  13.27 |   7.01 |  17.29 |   2.21 |
-
-* Faktoren von VM zu Thorsten
-** DFA 10^3
-
- |    N |        tp |         ti |        tr |        tv |
- |------+-----------+------------+-----------+-----------|
- | 1000 | 1.3703704 |  1.0123457 | 1.0540541 | 1.2254902 |
- | 2000 | 1.3326653 |         1. | 1.0641026 | 1.3549618 |
- | 3000 | 1.4166667 |  1.0601852 | 1.1408451 | 1.1666667 |
- | 4000 | 1.3725296 |  1.0086957 | 1.1111111 | 1.0990260 |
- | 5000 | 1.3366795 | 0.97511312 | 1.0733945 | 1.1840412 |
- #+TBLFM: @2$2=3.33/2.43::@2$3=0.82/0.81::@2$4=0.39/0.37::@2$5=1.25/1.02::@3$2=6.65/4.99::@3$3=1.69/1.69::@3$4=0.83/0.78::@3$5=3.55/2.62::@4$2=10.20/7.20::@4$3=2.29/2.16::@4$4=1.62/1.42::@4$5=4.97/4.26::@5$2=13.89/10.12::@5$3=3.48/3.45::@5$4=1.9/1.71::@5$5=6.77/6.16::@6$2=17.31/12.95::@6$3=4.31/4.42::@6$4=2.34/2.18::@6$5=9.20/7.77
-
- D.h faktor so um 1-1.1, außer beim parsen, da konsistent 1.3. (Valmari
- hat schwankend zw. 1 und 2)
-
-** DFA 10^4
-
- |   N |        tp |        ti |        tr |        tv |
- |-----+-----------+-----------+-----------+-----------|
- | 600 | 1.7345731 | 1.0543478 | 1.0220820 | 1.2261753 |
- | 700 | 1.7385015 | 1.0432802 | 1.0889571 | 1.2019438 |
- #+TBLFM: @2$2=82.08/47.32::@2$3=1.94/1.84::@2$4=3.24/3.17::@2$5=9.65/7.87::@3$2=93.74/53.92::@3$3=4.58/4.39::@3$4=3.55/3.26::@3$5=11.13/9.26
-
- D.h bei ti und rt ein faktor von ca 1.05, bei tv ein faktor von 1.2
- und bei tp ein faktor von 1.7
-
-** PRISM
-
- |    |        tp |         ti |         tr |        tv |
- |----+-----------+------------+------------+-----------|
- |    |           |          x |          x |         x |
- | 1. | 1.1004184 |  1.0571429 |  1.0707965 | 1.2051282 |
- | 1. | 1.1273101 |  1.0666667 |  1.0767888 | 1.1321429 |
- | 2. | 1.1224490 |         1. |  1.0483871 | 1.2222222 |
- | 3. | 1.0791506 | 0.94985251 | 0.98064516 | 1.1315789 |
- | 3. | 1.0896760 | 0.93437946 | 0.99421631 | 1.3348416 |
- #+TBLFM: @2$2=2.63/2.39::@3$2=10.98/9.74::@3$3=0.74/0.7::@3$4=1.21/1.13::@3$5=1.41/1.17::@4$2=0.55/0.49::@4$3=3.20/3.0::@4$4=6.17/5.73::@4$5=6.34/5.6::@5$2=5.59/5.18::@5$3=0.31/0.31::@5$4=0.65/0.62::@5$5=0.11/0.09::@6$2=14.46/13.27::@6$3=3.22/3.39::@6$4=6.08/6.2::@6$5=0.86/0.76::@7$3=6.55/7.01::@7$4=17.19/17.29::@7$5=2.95/2.21
-
- D.h alle Faktoren eigentlich so um 1-1.1 manchmal sogar ein wenig
- schneller. Valmari eher bso bei 1.2.
-
-* Code
-** Faktor ausrechnen
-
-  #+NAME: factor
-  #+BEGIN_SRC python :var a=[] :var b=[] :colnames yes :rownames yes
-  table = []
-  for i in range(min(len(a), len(b))):
-      row = []
-      for j in range(min(len(a[i]), len(b[i]))):
-          row.append(round(b[i][j] / a[i][j], 2))
-      table.append(row)
-  return table
-  #+END_SRC
diff --git a/cabal.project.freeze b/cabal.project.freeze
deleted file mode 100644
index ef2054c..0000000
--- a/cabal.project.freeze
+++ /dev/null
@@ -1,147 +0,0 @@
-constraints: any.Cabal ==2.2.0.1,
-             any.Glob ==0.10.0,
-             any.HUnit ==1.6.0.0,
-             any.Only ==0.1,
-             any.QuickCheck ==2.12.6.1,
-             QuickCheck +templatehaskell,
-             any.StateVar ==1.1.1.1,
-             any.abstract-deque ==0.3,
-             abstract-deque -usecas,
-             any.abstract-par ==0.3.3,
-             any.aeson ==1.4.2.0,
-             aeson -bytestring-builder -cffi -developer -fast,
-             any.ansi-terminal ==0.8.2,
-             ansi-terminal -example,
-             any.ansi-wl-pprint ==0.6.8.2,
-             ansi-wl-pprint -example,
-             any.array ==0.5.2.0,
-             any.attoparsec ==0.13.2.2,
-             attoparsec -developer,
-             any.base ==4.11.1.0,
-             any.base-compat ==0.10.5,
-             any.base-compat-batteries ==0.10.5,
-             any.base-orphans ==0.8,
-             any.binary ==0.8.5.1,
-             any.bytestring ==0.10.8.2,
-             any.cabal-doctest ==1.0.6,
-             any.call-stack ==0.1.0,
-             any.case-insensitive ==1.2.0.11,
-             any.cassava ==0.5.1.0,
-             cassava -bytestring--lt-0_10_4,
-             any.cereal ==0.5.7.0,
-             cereal -bytestring-builder,
-             any.clock ==0.7.2,
-             clock -llvm,
-             any.code-page ==0.2,
-             any.colour ==2.3.4,
-             any.containers ==0.5.11.0,
-             any.contravariant ==1.5,
-             contravariant -safe +semigroups +statevar +tagged,
-             copar -release,
-             any.criterion ==1.5.3.0,
-             criterion -embed-data-files -fast,
-             any.criterion-measurement ==0.1.1.0,
-             criterion-measurement -fast,
-             any.data-default-class ==0.1.2.0,
-             any.deepseq ==1.4.3.0,
-             any.dense-linear-algebra ==0.1.0.0,
-             any.deriving-compat ==0.5.2,
-             deriving-compat +base-4-9 +new-functor-classes +template-haskell-2-11,
-             any.directory ==1.3.1.5,
-             any.dlist ==0.8.0.5,
-             any.doctest ==0.16.0.1,
-             any.erf ==2.0.0.0,
-             any.exceptions ==0.10.0,
-             any.extra ==1.6.14,
-             any.filepath ==1.4.2,
-             any.ghc ==8.4.4,
-             any.ghc-boot ==8.4.4,
-             any.ghc-boot-th ==8.4.4,
-             any.ghc-paths ==0.1.0.9,
-             any.ghc-prim ==0.5.2.0,
-             any.ghci ==8.4.4,
-             any.happy ==1.19.9,
-             happy +small_base,
-             any.hashable ==1.2.7.0,
-             hashable -examples +integer-gmp +sse2 -sse41,
-             any.haskell-lexer ==1.0.2,
-             any.hpc ==0.6.0.3,
-             any.hsc2hs ==0.68.3,
-             hsc2hs -in-ghc-tree,
-             any.hspec ==2.6.0,
-             any.hspec-core ==2.6.0,
-             any.hspec-discover ==2.6.0,
-             any.hspec-expectations ==0.8.2,
-             any.hspec-megaparsec ==2.0.0,
-             hspec-megaparsec -dev,
-             any.ieee754 ==0.8.0,
-             any.integer-gmp ==1.0.2.0,
-             any.integer-logarithms ==1.0.2.2,
-             integer-logarithms -check-bounds +integer-gmp,
-             any.js-flot ==0.8.3,
-             any.js-jquery ==3.3.1,
-             any.json ==0.9.3,
-             json -generic -mapdict -parsec -pretty +split-base,
-             any.math-functions ==0.3.1.0,
-             math-functions -system-expm1,
-             any.megaparsec ==7.0.4,
-             megaparsec -dev,
-             any.microlens ==0.4.10,
-             any.microlens-ghc ==0.4.10,
-             any.microlens-mtl ==0.1.11.1,
-             any.microlens-platform ==0.3.11,
-             any.microlens-th ==0.4.2.3,
-             microlens-th +inlining,
-             any.microstache ==1.0.1.1,
-             any.monad-par ==0.3.4.8,
-             monad-par -chaselev -newgeneric,
-             any.monad-par-extras ==0.3.3,
-             any.mtl ==2.2.2,
-             any.mwc-random ==0.14.0.0,
-             any.optparse-applicative ==0.14.3.0,
-             any.parallel ==3.2.2.0,
-             any.parsec ==3.1.13.0,
-             any.parser-combinators ==1.0.0,
-             parser-combinators -dev,
-             any.pretty ==1.1.3.6,
-             any.pretty-show ==1.9.5,
-             any.prettyprinter ==1.2.1,
-             prettyprinter -buildreadme,
-             any.prettyprinter-ansi-terminal ==1.1.1.2,
-             any.prettyprinter-convert-ansi-wl-pprint ==1.1,
-             any.primitive ==0.6.4.0,
-             any.process ==1.6.3.0,
-             any.quickcheck-io ==0.2.0,
-             any.random ==1.1,
-             any.rts ==1.0,
-             any.scientific ==0.3.6.2,
-             scientific -bytestring-builder -integer-simple,
-             any.setenv ==0.1.1.3,
-             any.statistics ==0.15.0.0,
-             any.stm ==2.4.5.1,
-             any.syb ==0.7,
-             any.tagged ==0.8.6,
-             tagged +deepseq +transformers,
-             any.template-haskell ==2.13.0.0,
-             any.terminfo ==0.4.1.1,
-             any.text ==1.2.3.1,
-             any.text-short ==0.1.2,
-             text-short -asserts,
-             any.tf-random ==0.5,
-             any.th-abstraction ==0.2.10.0,
-             any.time ==1.8.0.2,
-             any.time-locale-compat ==0.1.1.5,
-             time-locale-compat -old-locale,
-             any.transformers ==0.5.5.0,
-             any.transformers-compat ==0.6.2,
-             transformers-compat -five +five-three -four +generic-deriving +mtl -three -two,
-             any.unix ==2.7.2.2,
-             any.unordered-containers ==0.2.9.0,
-             unordered-containers -debug,
-             any.uuid-types ==1.0.3,
-             any.vector ==0.12.0.2,
-             vector +boundschecks -internalchecks -unsafechecks -wall,
-             any.vector-algorithms ==0.8.0.1,
-             vector-algorithms +bench +boundschecks -internalchecks -llvm +properties -unsafechecks,
-             any.vector-binary-instances ==0.2.5.1,
-             any.vector-th-unbox ==0.2.1.6
diff --git a/dfa/bench.py b/dfa/bench.py
deleted file mode 100755
index daf6651..0000000
--- a/dfa/bench.py
+++ /dev/null
@@ -1,248 +0,0 @@
-#!/usr/bin/env python
-
-import sys
-import json
-import subprocess
-import os
-import re
-import numpy as np
-import scipy.stats as st
-import argparse
-
-samples = 10
-
-
-def usage(msg):
-    print("Usage: %s %s" % (sys.argv[0], msg))
-    sys.exit(1)
-
-
-def filename(ext, n, m, i, f):
-    if f is None:
-        return "bench/dfa_%d_%d_%d.%s" % (n, m, i, ext)
-    else:
-        return "bench/dfa_%d_%d_%d_f%d.%s" % (n, m, i, f, ext)
-
-
-def coalg_file(n, m, i, f):
-    return filename("coalgebra", n, m, i, f)
-
-
-def valmari_file(n, m, i, f):
-    return filename("valmari", n, m, i, f)
-
-
-def dot_file(n, m, i, f):
-    return filename("dot", n, m, i, f)
-
-
-def generate(args):
-    generator = args.generator
-    n = args.n
-    m = args.m
-    dot = args.dot
-    final = args.final
-
-    os.makedirs("bench", exist_ok=True)
-
-    for i in range(0, samples):
-        if os.path.exists(coalg_file(n, m, i, final)):
-            continue
-        cmd = [generator, str(n), str(m),
-               ("copar:%s" % coalg_file(n, m, i, final)),
-               ("valmari:%s" % valmari_file(n, m, i, final))]
-        if dot:
-            cmd.append("dot:%s" % dot_file(n, m, i, final))
-        if final is not None:
-            cmd.append("--final")
-            cmd.append(str(final))
-        subprocess.run(cmd)
-
-
-def run_one(copar, valmari, n, m, i, final, noopt, nofunctrans):
-    # Run copar on it
-    copar_args = [copar, 'refine', '--stats-json', coalg_file(n, m, i, final)]
-
-    if noopt:
-        copar_args.append("--disable-optimizations")
-
-    if nofunctrans:
-        copar_args.append("--no-functor-transforms")
-
-    out = subprocess.run(copar_args,
-                         stdout=subprocess.DEVNULL,
-                         stderr=subprocess.PIPE)
-    stats = json.loads(out.stderr.decode('utf-8'))
-
-    # Run valmari on it
-    valmari_open_file = open(valmari_file(n, m, i, final))
-    out = subprocess.run(['perf', 'stat', valmari],
-                         stdin=valmari_open_file,
-                         stdout=subprocess.PIPE,
-                         stderr=subprocess.PIPE,
-                         env={'LC_ALL': 'C'})
-    valmari_time = re.search(r'(\d+.\d+)\W+seconds time elapsed',
-                             out.stderr.decode('utf-8'))[1]
-    valmari_states = re.search(r'\d+', out.stdout.decode('utf-8'))[0]
-
-    stats['n'] = int(n)
-    stats['m'] = int(m)
-    stats['i'] = int(i)
-    stats['valmari-time'] = valmari_time
-    stats['valmari-states'] = valmari_states
-
-    return stats
-
-
-def confidence(vals):
-    """Compute the 95% confidence intervall (CI) for the mean with the student
-distribution.
-
-Returns a tuple of (mean, lower, upper), where lower and upper are the bounds
-of the CI"""
-
-    # For a larger sample size (> 30), we could also use the normal
-    # distribution.
-    #
-    # This code is taken from
-    # https://stackoverflow.com/questions/15033511/compute-a-confidence-interval-from-sample-data/34474255#34474255
-
-    mean = np.mean(vals)
-    ci = st.t.interval(0.95, len(vals)-1, loc=np.mean(vals),
-                       scale=st.sem(vals))
-
-    return (mean, ci[0], ci[1])
-
-
-def stddev(vals):
-    """Compute the mean and standard deviation intervall on a sample.
-
-This uses the corrected sample standard deviation."""
-
-    # see also:
-    # https://en.wikipedia.org/wiki/Standard_deviation#Corrected_sample_standard_deviation
-    mean = np.mean(vals)
-    std = np.std(vals, ddof=1)
-
-    return (mean, std)
-
-
-def print_row(d, stddev):
-    values = [
-        d['n'],
-        d['m'],
-        d['i'],
-        d['states'],
-        d['edges'],
-        d['initial-partition-size'],
-        d['final-partition-size'],
-        d['explicit-final-partition-size'],
-        d['size1-skipped']
-    ]
-
-    for k in ['overall-duration', 'parse-duration', 'algorithm-duration',
-              'initialize-duration', 'refine-duration', 'valmari-time']:
-        values.append(d[k])
-        if stddev:
-            values.append(d[k + '-stddev'])
-
-    values.append(d['valmari-states'])
-
-    print('\t'.join(str(x) for x in values))
-
-
-def run(args):
-    copar = args.copar
-    valmari = args.valmari
-    n = args.n
-    m = args.m
-    final = args.final
-    noopt = args.noopt
-    nofunctrans = args.nofunctrans
-    sample_count = samples if args.samples is None else args.samples
-
-    results = [run_one(copar, valmari, n, m, i, final, noopt, nofunctrans)
-               for i in range(0, sample_count)]
-
-    # Do some sanity checks on the samles
-    if len(results) != sample_count:
-        pass
-
-    def allequal(lst, key):
-        return all(x[key] == lst[0][key] for x in lst)
-
-    equal_keys = ['n', 'm', 'states', 'edges', 'initial-partition-size']
-
-    for k in equal_keys:
-        if not allequal(results, k):
-            raise(Exception("Samples don't match for key '%s'" % k))
-
-    def confidencekey(vals, k):
-        return confidence(list(float(x[k]) for x in vals))
-
-    def stddevkey(vals, k):
-        return stddev(list(float(x[k]) for x in vals))
-
-    combined = results[0].copy()
-    combined['i'] = sample_count
-
-    for k in ['overall-duration', 'parse-duration', 'initialize-duration',
-              'refine-duration', 'algorithm-duration', 'valmari-time']:
-        ci = stddevkey(results, k)
-        combined[k] = str(ci[0])
-        combined[k + '-stddev'] = str(ci[1])
-
-    if args.indiv:
-        for res in results:
-            print_row(res, stddev=False)
-    else:
-        print_row(combined, stddev=args.stddev)
-
-
-if __name__ == "__main__":
-    parser = argparse.ArgumentParser()
-    subparsers = parser.add_subparsers(required=True)
-
-    gen_parser = subparsers.add_parser('generate')
-    gen_parser.add_argument('generator')
-    gen_parser.add_argument('n', type=int)
-    gen_parser.add_argument('m', type=int)
-    gen_parser.add_argument('--dot', action='store_true')
-    gen_parser.add_argument('--final', type=int,
-                            help="Percentage of final states",
-                            metavar="PERCENT")
-    gen_parser.set_defaults(func=generate)
-
-    run_parser = subparsers.add_parser('run')
-    run_parser.add_argument('copar')
-    run_parser.add_argument('valmari')
-    run_parser.add_argument('n', type=int)
-    run_parser.add_argument('m', type=int)
-    run_parser.add_argument('--indiv', action='store_true',
-                            help="report individual samples")
-    run_parser.add_argument('--stddev', action='store_true',
-                            help="report stddev for timings")
-    run_parser.add_argument('--final', type=int,
-                            help="Percentage of final states",
-                            metavar="PERCENT")
-    run_parser.add_argument('--noopt', action='store_true',
-                            help="run copar without --disable-optimizations")
-    run_parser.add_argument('--nofunctrans', action='store_true',
-                            help="run copar without --no-functor-transforms")
-    run_parser.add_argument('--samples', type=int,
-                            help="number of samples to run")
-    run_parser.set_defaults(func=run)
-
-    args = parser.parse_args()
-    args.func(args)
-
-    # if len(sys.argv) < 2:
-    #     usage("generate|run ARGUMENTS..")
-    #     sys.exit(1)
-
-    # if sys.argv[1] == "generate":
-    #     generate(sys.argv[2:])
-    # elif sys.argv[1] == "run":
-    #     run(sys.argv[2:])
-    # else:
-    #     usage("generate|run ARGUMENTS..")
diff --git a/dfa/benchmark.org b/dfa/benchmark.org
deleted file mode 100644
index 10f9f65..0000000
--- a/dfa/benchmark.org
+++ /dev/null
@@ -1,749 +0,0 @@
-#+TITLE: Random DFAs
-#+LATEX_HEADER: \usepackage[a4paper,margin=1in,landscape]{geometry}
-
-* Generating the benchmarks
-
-  Our generator accepts two parameters:
-
-  - n :: Number of states
-  - m :: Size of the input alphabet
-
-  Generating the output file for n=10000 and m=10000 already almost eats up all
-  16GB of RAM, so we can't go any higher than that.
-
-  #+BEGIN_SRC sh :results output silent
-  for n in 10 20 30 40 50 60 70 80 90 100 200 300 400 500 600 700 800 900 1000 2000 3000 4000 5000 10000; do
-      for m in 10 100 1000 10000; do
-          python bench.py generate ../../copar/bin/random-dfa $n $m
-      done
-  done
-  #+END_SRC
-
-* Executing the benchmarks
-
-The fields in the following table are:
-
-- N :: Number of states of the automaton
-- M :: Size of the input alphabet of the automaton
-- i :: Number of sample for individual benchmark or sample count for aggregated
-       values.
-- States :: Number of states of the coalgebra
-- Edges :: Number of edges in the coalgebra
-- I :: Size of initial partition
-- Q :: Size of final partition
-- Qs1 :: Size of final partition restricted to sort 1
-- t :: Overall time for CoPaR in seconds
-- tp :: Time to parse the input in seconds
-- ta :: Overall time to execute the refinement algorithm
-- ti :: Time for the initialization procedure
-- tr :: Time for the actual partition refinement
-- tv :: Overall time for Valmari in seconds
-- Qv :: Size of final partition that valmari's tool computes
-
-For aggregated benchmarks, each timing result also has an additional column with
-the standard derivation of the samples
-
-Important correctness checks are:
-
-- The number of states should be the same in the coalgebra and automaton
-- The number of edges in the coalgebra should be $n*m$
-- The size of the initial partition must be 2
-- The size of the final partition should be the same as for valmari
-
-** Plotting Code
-
-The following python code can plot the tables below and produce an inline image
-into this document.
-
-
-#+NAME: plot
-#+BEGIN_SRC python :results file :exports results :var data="" :var filename=""
-import matplotlib.pyplot as plt
-
-'''Turn the table data into x and y data'''
-x = [a[0] for a in data]
-t = [a[9] for a in data]
-t_s = [a[10] for a in data]
-tp = [a[11] for a in data]
-tp_s = [a[12] for a in data]
-ta = [a[13] for a in data]
-ta_s = [a[14] for a in data]
-ti = [a[15] for a in data]
-ti_s = [a[16] for a in data]
-tr = [a[17] for a in data]
-tr_s = [a[18] for a in data]
-tv = [a[19] for a in data]
-tv_s = [a[20] for a in data]
-
-''' Plot the x and y data'''
-plt.errorbar(x, t, yerr=t_s, label="t")
-plt.errorbar(x, tp, yerr=tp_s, label="tp")
-plt.errorbar(x, ta, yerr=ta_s, label="ta")
-plt.errorbar(x, tr, yerr=tr_s, label="tr")
-plt.errorbar(x, ti, yerr=ti_s, label="ti")
-plt.errorbar(x, tv, yerr=tv_s, label="tv")
-
-''' Set the x and y labels on the graph '''
-plt.xlabel("Number of states")
-plt.ylabel("Seconds")
-
-''' Create the legend '''
-plt.legend(loc="upper left")
-
-''' Save the PNG file '''
-plt.savefig(filename)
-
-''' Return the PNG file path to OrgMode '''
-return(filename)
-#+END_SRC
-
-** TODO Test
-
-#+begin_src sh :hlines yes :colnames '("N" "M" "i" "States" "Edges" "I" "Q" "Qs1" "Opt" "t (s)"  "tp (s)"  "ta (s)"  "ti (s)"  "tr (s)"  "tv (s)"  "Qv")
-python bench.py run ../../copar/bin/copar ../../valmari_cpp/mdpmin 10 10 --indiv
-#+end_src
-
-#+RESULTS:
-|  N |  M | i | States | Edges | I |  Q | Qs1 | Opt |       t (s) |     tp (s) |     ta (s) |    ti (s) |    tr (s) |     tv (s) | Qv |
-|----+----+---+--------+-------+---+----+------+-----+-------------+-------------+-------------+------------+------------+-------------+-----|
-| 10 | 10 | 0 |     10 |   100 | 2 | 10 |   10 |  83 | 0.001046352 |  0.00092647 |   8.813e-05 | 2.5603e-05 | 4.8467e-05 |   0.0013978 |  10 |
-| 10 | 10 | 1 |     10 |   100 | 2 | 10 |   10 |  81 | 0.001332556 |  0.00117165 | 0.000121423 |  4.205e-05 | 6.1448e-05 | 0.001185295 |  10 |
-| 10 | 10 | 2 |     10 |   100 | 2 | 10 |   10 |  86 | 0.001131453 | 0.001002346 |  9.7326e-05 | 2.4585e-05 | 5.9035e-05 | 0.001117232 |  10 |
-| 10 | 10 | 3 |     10 |   100 | 2 | 10 |   10 |  76 | 0.001090468 | 0.000967138 |  9.1729e-05 | 2.4952e-05 | 5.2869e-05 | 0.001147177 |  10 |
-| 10 | 10 | 4 |     10 |   100 | 2 | 10 |   10 |  70 | 0.001085314 | 0.000961097 |  9.1407e-05 | 2.6115e-05 | 5.0625e-05 | 0.001228354 |  10 |
-| 10 | 10 | 5 |     10 |   100 | 2 | 10 |   10 |  77 | 0.001098224 | 0.000950174 |   9.715e-05 | 2.6022e-05 | 5.0376e-05 | 0.001149149 |  10 |
-| 10 | 10 | 6 |     10 |   100 | 2 | 10 |   10 |  75 | 0.001075821 | 0.000940202 | 0.000101156 | 2.7531e-05 | 5.9542e-05 | 0.001141678 |  10 |
-| 10 | 10 | 7 |     10 |   100 | 2 | 10 |   10 |  81 | 0.001051644 | 0.000930808 |  8.7346e-05 | 2.6147e-05 | 4.7219e-05 | 0.001227956 |  10 |
-| 10 | 10 | 8 |     10 |   100 | 2 | 10 |   10 |  78 | 0.001059422 | 0.000935757 |  9.0775e-05 | 2.6297e-05 |  4.999e-05 | 0.001297999 |  10 |
-| 10 | 10 | 9 |     10 |   100 | 2 | 10 |   10 |  79 | 0.001121328 | 0.000993801 |  9.2128e-05 | 2.6818e-05 | 5.0163e-05 | 0.001188937 |  10 |
-
-** For m = 1:
-*** Generating some benchmarks
-
-#+begin_src sh :results output silent
-for n in 100000 110000 120000 130000 140000 150000 160000 170000 180000 190000 200000 200000 210000 220000 230000 240000 250000 260000 270000 280000 290000 300000; do
-    python bench.py generate ../../copar/bin/random-dfa $n 1
-done
-#+end_src
-
-*** And running them
-
-#+begin_src sh :hlines yes :colnames '("N" "M" "i" "States" "Edges" "I" "Q" "Qs1" "Opts" "t (s)" "sdt" "tp (s)" "sdtp" "ta (s)" "sdta"  "ti (s)" "sdti"  "tr (s)" "sdtr"  "tv (s)" "sdtv"  "Qv")
-for n in 100000 110000 120000 130000 140000 150000 160000 170000 180000 190000 200000 210000 220000 230000 240000 250000 260000 270000 280000 290000 300000; do
-    python bench.py run ../../copar/bin/copar ../../valmari_cpp/mdpmin $n 1 --stddev --nofunctrans
-done
-#+end_src
-
-#+RESULTS:
-|      N | M |  i | States |  Edges | I |      Q |    Qs1 |  Opts |              t (s) |                 sdt |             tp (s) |                 sdtp |             ta (s) |                sdta |              ti (s) |                  sdti |             tr (s) |                sdtr |              tv (s) |                  sdtv |     Qv |
-|--------+---+----+--------+--------+---+--------+--------+-------+--------------------+---------------------+--------------------+----------------------+--------------------+---------------------+---------------------+-----------------------+--------------------+---------------------+---------------------+-----------------------+--------|
-| 100000 | 1 | 10 | 100000 | 100000 | 2 |  65489 |  65489 |  8071 | 3.9017160891999993 | 0.05725542243446023 | 1.7041072878999999 | 0.007666172923625777 |       1.9023876757 | 0.06490987848505304 |        0.2628267297 |  0.003272320490714361 |       1.5989905591 |  0.0658406983383148 | 0.13759999169999998 | 0.0065012827508490615 |  65489 |
-| 110000 | 1 | 10 | 110000 | 110000 | 2 |  72513 |  72513 |  9297 |  4.313956430299999 |  0.0763833477465056 |        1.949160167 | 0.009027583663742882 |       2.1389264483 | 0.08096080778904134 | 0.30003091430000006 |   0.00510612940724545 | 1.7878511580999998 | 0.08900092769490782 |        0.1531381338 |  0.006417484978214387 |  72513 |
-| 120000 | 1 | 10 | 120000 | 120000 | 2 |  78444 |  78444 |  9790 |       4.8029536083 | 0.11912637839624582 | 2.1499455626999997 | 0.015364837081170035 |       2.3896450291 | 0.12655058491231658 |        0.3351564949 |  0.005116840454431979 | 1.9936482227999999 | 0.12438977802181102 |        0.1976445005 |   0.06662102777240582 |  78444 |
-| 130000 | 1 | 10 | 130000 | 130000 | 2 |  85315 |  85315 | 10567 | 5.2303333725000005 | 0.14216674785304523 | 2.3350624718999997 | 0.015434810994377981 |       2.5886367938 |  0.1231368250495237 |        0.3720805978 |  0.004435277321512478 | 2.1608228643000005 | 0.12243514299040262 | 0.20366009489999998 |  0.009002729886375587 |  85315 |
-| 140000 | 1 | 10 | 140000 | 140000 | 2 |  91961 |  91961 | 11636 |       5.7241506135 | 0.18089497938779125 | 2.5227946168999997 |  0.04041226205771596 |       2.8734782348 | 0.19157855600495133 | 0.37903946050000004 | 0.0055335089050379035 | 2.4276934805000003 |   0.194103518528028 |        0.2238437406 |  0.009396875043746323 |  91961 |
-| 150000 | 1 | 10 | 150000 | 150000 | 2 |  98627 |  98627 | 11706 |  6.187801929800001 | 0.14064425090177476 |       2.6582514965 | 0.009003423452304189 | 3.1697628569000003 | 0.13611337872223803 |        0.2999485256 |  0.004355764391675269 | 2.6839304120999996 |  0.1374033748576153 |        0.2515853332 |  0.014174216184394798 |  98627 |
-| 160000 | 1 | 10 | 160000 | 160000 | 2 | 104809 | 104809 | 12764 |       6.7382136996 | 0.15245636348209132 |       2.8366039933 | 0.015161039687297094 | 3.3935111766000006 | 0.15093821038539926 | 0.46547556329999995 |  0.006831967314617837 | 2.8632204123999996 |  0.1490646566678644 |        0.2813251122 |  0.011347243669986634 | 104809 |
-| 170000 | 1 | 10 | 170000 | 170000 | 2 | 111232 | 111232 | 14138 |       7.2908625285 | 0.10604295432427215 |         3.09530805 |  0.03603531460563363 |       3.7597713653 | 0.12118258888916565 |        0.5004929244 |  0.006790266960715258 | 3.1806287245999996 | 0.10781123989114733 |        0.3073801929 |  0.013086131717466363 | 111232 |
-| 180000 | 1 | 10 | 180000 | 180000 | 2 | 118197 | 118197 | 14269 |       7.7940563974 |  0.2543156188997473 |       3.2715667038 | 0.009360892657020248 |  4.092677974399999 |  0.2619800187273766 |         0.525093342 |  0.007190986044884863 | 3.4845772176000005 |  0.2651429743565608 |        0.3501228732 |  0.016837178135142662 | 118197 |
-| 190000 | 1 | 10 | 190000 | 190000 | 2 | 123893 | 123893 | 14728 |  8.269414321400001 | 0.19220873052742554 |       3.4378605475 | 0.020742001772012533 |       4.3756709237 |  0.1867233205842528 |  0.5445772935000001 |   0.02997447405159672 |       3.7418600049 | 0.16409710010971268 |        0.3724915993 |  0.016211865333268422 | 123893 |
-| 200000 | 1 | 10 | 200000 | 200000 | 2 | 131252 | 131252 | 16562 |       8.7204120381 |   0.260072753804474 |       3.6344360476 | 0.016315930797572084 | 4.6021848058999995 | 0.24376077112686112 |        0.5754112171 |   0.00753933981008275 |       3.9305835423 |  0.2554540636025266 |        0.4100586315 |  0.018201735614278045 | 131252 |
-| 210000 | 1 | 10 | 210000 | 210000 | 2 | 137501 | 137501 | 17008 |       9.2838852824 |  0.2636020019857964 | 3.8083384965000002 |  0.00953027592476456 |       4.9315308102 | 0.24319350760405056 |  0.5869515222999999 |  0.005476529581826432 |       4.2464882237 | 0.24324445568951442 |         0.441084476 |  0.023085429113395166 | 137501 |
-| 220000 | 1 | 10 | 220000 | 220000 | 2 | 144061 | 144061 | 17847 |  9.770356903799998 |  0.3423008046584935 |       4.0041314226 |  0.01303346631043801 |       5.2126720673 |  0.3285456949555346 |  0.6358050346999999 |  0.003022973889400297 |  4.469972052800001 |  0.3372079781421167 |         0.466137511 |   0.02001933439908453 | 144061 |
-| 230000 | 1 | 10 | 230000 | 230000 | 2 | 150310 | 150310 | 17731 | 10.437322718299999 | 0.22941617352716984 |       4.2013492154 |  0.05899131321541619 |  5.627988751199999 |  0.2635210887153482 |        0.6455574729 |  0.007678134687488006 |  4.868182401100001 | 0.25893084670217076 |        0.5156026173 |  0.022520583055545204 | 150310 |
-| 240000 | 1 | 10 | 240000 | 240000 | 2 | 157139 | 157139 | 18612 | 11.053093357799998 | 0.33411355973433937 |       4.3785478234 | 0.025313675755905325 |  6.043547060300001 |  0.3334691533111559 |        0.6885990058 |  0.004772154958912903 |  5.235913457100001 |  0.3284099648007952 |        0.5510596194 |  0.024897984793143372 | 157139 |
-| 250000 | 1 | 10 | 250000 | 250000 | 2 | 164155 | 164155 | 20499 |      11.5662374633 |  0.2625704687079291 |       4.5883679078 | 0.014908850614635781 |       6.3090031014 | 0.25471836122993463 |  0.7311154823999999 |   0.00533183466125695 |  5.459369843300001 |  0.2558493631410093 |        0.6040049302 |  0.009586109716559724 | 164155 |
-| 260000 | 1 | 10 | 260000 | 260000 | 2 | 170681 | 170681 | 20415 |      11.6456015015 |   0.511989377271459 |       4.7059698737 |  0.12513626926548418 |       6.2599540109 |  0.4130910662631789 |        0.6555105109 |   0.10337670349981325 |       5.4029216802 |  0.3887658337407677 |        0.6083744114 |  0.034852307242699845 | 170681 |
-| 270000 | 1 | 10 | 270000 | 270000 | 2 | 177419 | 177419 | 22189 | 12.120666825499999 |  0.3737239336482957 |       4.8034746198 |  0.01835509221979868 |  6.633201435299999 | 0.35387444814978264 |        0.7363434314 | 0.0031265120905228346 |  5.767584987699999 | 0.34512662981485487 |        0.6364424622 |  0.027411122932964365 | 177419 |
-| 280000 | 1 | 10 | 280000 | 280000 | 2 | 183598 | 183598 | 23254 | 12.940827799400001 |  0.3948481113814338 |  4.965828097099999 |  0.02554346533283756 |  7.025901951100001 | 0.37191392383248734 |  0.8191934889999999 |  0.007455230101518104 |       6.0883975169 |  0.3627755680944626 |        0.6621498792 |  0.033948444495518634 | 183598 |
-| 290000 | 1 | 10 | 290000 | 290000 | 2 | 190044 | 190044 | 22976 |      13.3304674734 | 0.36445051870292144 |       5.1312368327 | 0.013064971257863454 |       7.2310452817 | 0.36289207727580786 |  0.8502582112999999 | 0.0037351564859896816 |       6.2581376613 |  0.3563549113115732 |        0.7004045213 |  0.024056932759703036 | 190044 |
-| 300000 | 1 | 10 | 300000 | 300000 | 2 | 197133 | 197133 | 23844 | 14.146797660499999 | 0.31595827791135156 |       5.2838587488 | 0.018411110755737675 |  7.897829865599999 |  0.3353595236408498 |  0.8807967731999999 |  0.002439527016899235 |       6.8851801584 | 0.34025879458180663 |        0.7427352719 |  0.030209104626308197 | 197133 |
-
-
-#+begin_src sh :hlines yes :colnames '("N" "M" "i" "States" "Edges" "I" "Q" "Qs1" "Opts" "t (s)" "sdt" "tp (s)" "sdtp" "ta (s)" "sdta"  "ti (s)" "sdti"  "tr (s)" "sdtr"  "tv (s)" "sdtv"  "Qv")
-for n in 100000 110000 120000 130000 140000 150000 160000 170000 180000 190000 200000 210000 220000 230000 240000 250000 260000 270000 280000 290000 300000; do
-    python bench.py run ../../copar/bin/copar ../../valmari_cpp/mdpmin $n 1 --stddev
-done
-#+end_src
-
-#+NAME: results1
-#+RESULTS:
-|      N | M |  i | States |  Edges | I |      Q |    Qs1 |  Opts |              t (s) |                 sdt |             tp (s) |                  sdtp |             ta (s) |                 sdta |              ti (s) |                  sdti |             tr (s) |                sdtr |              tv (s) |                  sdtv |     Qv |
-|--------+---+----+--------+--------+---+--------+--------+-------+--------------------+---------------------+--------------------+-----------------------+--------------------+----------------------+---------------------+-----------------------+--------------------+---------------------+---------------------+-----------------------+--------|
-| 100000 | 1 | 10 | 100000 | 100000 | 2 |  65489 |  65489 |  8071 |       3.1723742583 | 0.06415135633353668 |       1.0352353053 |  0.008941562892079086 |       1.9350310748 | 0.059410960798478435 | 0.32343377709999993 |  0.006503732380012458 |       1.4825559133 | 0.06182975711003514 | 0.13457228840000002 | 0.0061834340026262645 |  65489 |
-| 110000 | 1 | 10 | 110000 | 110000 | 2 |  72513 |  72513 |  9297 | 3.6060606505000004 | 0.07120835312896302 |       1.1337366444 | 0.0066497616379870466 |       2.1326008449 |  0.06899518842479228 | 0.37291921390000005 |  0.009062006583398122 | 1.7116194235999997 | 0.07486105411993155 |        0.1531423643 |  0.009425071171266949 |  72513 |
-| 120000 | 1 | 10 | 120000 | 120000 | 2 |  78444 |  78444 |  9790 | 3.9819581869000005 | 0.08295924676715061 |       1.2491448927 |  0.008382980979176068 |       2.3497672478 |  0.08960022035531837 |        0.4194873646 |  0.008112127594262736 | 1.8800125135999999 | 0.09098119072406534 |        0.1770516467 |  0.007224653623244186 |  78444 |
-| 130000 | 1 | 10 | 130000 | 130000 | 2 |  85315 |  85315 | 10567 |       4.4078494884 | 0.11759337156384515 | 1.3737832236999998 |  0.009853487052357706 | 2.5904541815999997 |  0.12985226650810058 |        0.4653538676 |  0.009431514691067346 | 2.0676565862000005 | 0.12518907212331976 |        0.1988111277 |  0.004361050542692717 |  85315 |
-| 140000 | 1 | 10 | 140000 | 140000 | 2 |  91961 |  91961 | 11636 |       4.8345211587 | 0.18598447828239828 | 1.4702093769999998 |   0.00526703848044785 | 2.8969718773000004 |  0.18768478695801893 |         0.522174264 |     0.046844514809917 | 2.3171949742000004 |   0.231287985327397 | 0.22347404060000003 |   0.01314437739599008 |  91961 |
-| 150000 | 1 | 10 | 150000 | 150000 | 2 |  98627 |  98627 | 11706 |       5.1577071244 | 0.10743990008037858 |       1.6936769373 |   0.03179318810342249 |       3.1119092698 |  0.11610573189464778 |  0.5696047548000001 |  0.010090814422831586 |       2.4752281476 | 0.11124271004914135 | 0.24985176729999997 |  0.012456361594495972 |  98627 |
-| 160000 | 1 | 10 | 160000 | 160000 | 2 | 104809 | 104809 | 12764 |       5.4344598328 | 0.14671501495323758 |       1.7836474614 |  0.009964746328457117 | 3.2475654382999997 |  0.13978295339543426 |        0.5652916232 |  0.002392113968621664 |        2.609053951 |  0.1398729333907138 |        0.2762560884 |  0.006841057884760942 | 104809 |
-| 170000 | 1 | 10 | 170000 | 170000 | 2 | 111232 | 111232 | 14138 |  6.245343322000001 | 0.12009578467332085 | 1.8606334966999998 |   0.02741443041452057 |       3.7771725017 |  0.11137133528898206 |  0.6416360163999999 |   0.01595195544619899 |       3.0529216406 | 0.11120009895874813 |        0.3069283973 |  0.010424249298240946 | 111232 |
-| 180000 | 1 | 10 | 180000 | 180000 | 2 | 118197 | 118197 | 14269 |       6.6310759754 |  0.2253434734039179 |       1.9310191868 |   0.01289471358647633 |       4.0831294374 |  0.23827453971489956 |        0.6716207292 |  0.016394009117171423 | 3.3307862904000003 | 0.24442357796736197 |        0.3474492079 |  0.013999878438761125 | 118197 |
-| 190000 | 1 | 10 | 190000 | 190000 | 2 | 123893 | 123893 | 14728 |       7.0231597877 | 0.09399855550806477 |       2.2149782845 |  0.013126799196048424 |  4.356570219499999 |  0.09521435695870631 |        0.7373797438 |    0.0575174924076721 | 3.5380053205000004 | 0.10378347745460388 | 0.37080809929999997 |   0.01290979756291998 | 123893 |
-| 200000 | 1 | 10 | 200000 | 200000 | 2 | 131252 | 131252 | 16562 |        7.522432313 |  0.2633420321550606 |       2.3628339816 |  0.039989943606690156 |       4.6675009988 |   0.2132461130121612 |        0.7622307122 |  0.009604337545853697 |       3.8178427712 | 0.21696400809832647 |        0.4085155762 |  0.017721784682142964 | 131252 |
-| 210000 | 1 | 10 | 210000 | 210000 | 2 | 137501 | 137501 | 17008 |       7.9078188707 | 0.22101361497446462 | 2.4432533651999995 |  0.015650174443881663 |       4.9470993974 |  0.22727214564348047 |  0.9518358890000002 |  0.015518576165034272 | 3.9050474077000006 | 0.22542975036092622 | 0.44033106270000005 |   0.01727193852812063 | 137501 |
-| 220000 | 1 | 10 | 220000 | 220000 | 2 | 144061 | 144061 | 17847 |       8.4310485219 |  0.2898905581083682 |       2.5987084524 |  0.009502650210868985 | 5.2729674842000005 |  0.27919121144959574 |        0.8455970423 |   0.01824497086380857 |  4.327157211800001 | 0.28910724973041124 | 0.46449658029999996 |   0.01736415985291904 | 144061 |
-| 230000 | 1 | 10 | 230000 | 230000 | 2 | 150310 | 150310 | 17731 |       8.6320747989 | 0.33668340920034806 | 2.6197801442000004 |   0.05256162205418141 |       5.4315238363 |   0.2747458205147567 |        0.9960376444 |  0.028735197336432615 |  4.336221116799999 | 0.25835249305193325 |        0.5015617587 |  0.021268906232720087 | 150310 |
-| 240000 | 1 | 10 | 240000 | 240000 | 2 | 157139 | 157139 | 18612 |  9.009050490400002 |  0.3128766363819569 |       2.7155297847 |  0.023178125088956805 |  5.700408186600001 |   0.2879543985300683 |  1.0367297358000003 |  0.013734694710037488 |       4.5622825022 |  0.2876871470532377 |  0.5279500610000001 |   0.02206413574130229 | 157139 |
-| 250000 | 1 | 10 | 250000 | 250000 | 2 | 164155 | 164155 | 20499 |       9.4270514669 | 0.23225929149256214 |       2.8463226528 |   0.01506100528301562 |  5.951184781199999 |   0.2039882530457369 |  0.9299208275999999 |  0.057306714844376085 |       4.9170371191 | 0.18694913347225156 |        0.5725323586 |  0.012914493862261942 | 164155 |
-| 260000 | 1 | 10 | 260000 | 260000 | 2 | 170681 | 170681 | 20415 |       9.6284610064 | 0.27863865455263176 |       2.9354543054 |  0.011552204060273432 |  6.042820605099999 |  0.26088610696446574 |  1.0819876318000001 |  0.013253391610787106 |       4.8494240756 |  0.2592568608766787 |        0.5946690359 |   0.03364498517483961 | 170681 |
-| 270000 | 1 | 10 | 270000 | 270000 | 2 | 177419 | 177419 | 22189 |      10.3441837675 | 0.34038473596017615 |       3.0790200003 |   0.04722014457879415 | 6.5974961401000005 |  0.30192774188595645 |  1.1574601788999999 |  0.014557294361249015 |       5.3245052121 | 0.30141106044101496 |  0.6368050635000001 |  0.028727929151588963 | 177419 |
-| 280000 | 1 | 10 | 280000 | 280000 | 2 | 183598 | 183598 | 23254 | 10.591835607099998 | 0.35271658898500896 |       3.1467475046 |   0.02026936342148749 |       6.7210618943 |   0.3420285354390056 |        1.0249986697 |  0.005550453719610728 |  5.566262730699999 |  0.3325643977911153 |  0.6547289464999999 |  0.034210139168846056 | 183598 |
-| 290000 | 1 | 10 | 290000 | 290000 | 2 | 190044 | 190044 | 22976 |      10.8875411057 |  0.3231777853754279 |       3.2379748348 |  0.015718810790019754 |       6.9012326078 |   0.3570489487250581 |        1.0157828841 | 0.0067663978067151525 |  5.745269477999999 | 0.34550046535345835 |        0.6994596174 |  0.020991553070787917 | 190044 |
-| 300000 | 1 | 10 | 300000 | 300000 | 2 | 197133 | 197133 | 23844 |      11.6383832293 | 0.32088026618713805 |       3.3229065135 |  0.028968215816625995 |       7.5626338512 |   0.2829614452296093 |        0.9824864115 |   0.13146291683857875 |       6.3761597855 |  0.2835986824686698 |          0.74688904 |  0.030483611878687856 | 197133 |
-
-
-**** How many of those models are minimal
-
-Thorsten asks how many of those models are already minimal, because the thesis
-currently reads "very few".
-
-#+begin_src sh :hlines yes :colnames '("N" "M" "i" "States" "Edges" "I" "Q" "Qs1" "Opts" "t (s)" "tp (s)" "ta (s)" "ti (s)"  "tr (s)"  "tv (s)"  "Qv")
-for n in 100000 110000 120000 130000 140000 150000 160000 170000 180000 190000 200000 210000 220000 230000 240000 250000 260000 270000 280000 290000 300000; do
-    python bench.py run ../../copar/bin/copar ../../valmari_cpp/mdpmin $n 1 --indiv
-done
-#+end_src
-
-#+NAME: results1indiv
-#+RESULTS:
-|      N | M | i | States |  Edges | I |      Q |    Qs1 |  Opts |        t (s) |      tp (s) |      ta (s) |      ti (s) |      tr (s) |      tv (s) |     Qv |
-|--------+---+---+--------+--------+---+--------+--------+-------+--------------+-------------+-------------+-------------+-------------+-------------+--------|
-| 100000 | 1 | 0 | 100000 | 100000 | 2 |  65489 |  65489 |  8071 |  3.090418942 | 1.029257521 | 1.861948383 | 0.328673706 | 1.392791488 | 0.134144684 |  65489 |
-| 100000 | 1 | 1 | 100000 | 100000 | 2 |  65912 |  65912 |  8413 |  3.108938053 | 1.010879236 | 1.898772498 | 0.324852464 | 1.448839488 | 0.128740365 |  65912 |
-| 100000 | 1 | 2 | 100000 | 100000 | 2 |  65551 |  65551 |  8087 |  3.226284016 | 1.002811598 | 2.024931788 | 0.332001372 | 1.567582393 | 0.131146099 |  65551 |
-| 100000 | 1 | 3 | 100000 | 100000 | 2 |  65473 |  65473 |  7919 |  3.051887477 | 1.009408854 | 1.845523985 | 0.323038515 | 1.381551998 | 0.135409477 |  65473 |
-| 100000 | 1 | 4 | 100000 | 100000 | 2 |  65668 |  65668 |  8130 |  3.131196133 | 1.004897268 |  1.92738016 | 0.321685576 | 1.482568015 | 0.136392373 |  65668 |
-| 100000 | 1 | 5 | 100000 | 100000 | 2 |  65857 |  65857 |  8264 |  3.138151577 | 1.019564955 | 1.917969114 | 0.330225925 | 1.463897169 | 0.133613369 |  65857 |
-| 100000 | 1 | 6 | 100000 | 100000 | 2 |  65709 |  65709 |  8190 |  3.125807861 | 1.012800151 | 1.914870332 |  0.32505943 | 1.464654751 | 0.134245446 |  65709 |
-| 100000 | 1 | 7 | 100000 | 100000 | 2 |  65777 |  65777 |  8199 |  3.103733509 | 1.006876374 | 1.898138763 | 0.322296575 | 1.452699306 | 0.136855992 |  65777 |
-| 100000 | 1 | 8 | 100000 | 100000 | 2 |  65443 |  65443 |  7867 |  3.089412709 | 1.003632113 | 1.887783014 | 0.331641437 | 1.430431613 | 0.134312071 |  65443 |
-| 100000 | 1 | 9 | 100000 | 100000 | 2 |  65551 |  65551 |  8353 |  3.175007591 | 1.007407203 | 1.966208791 | 0.323649855 | 1.519172145 | 0.133161502 |  65551 |
-| 110000 | 1 | 0 | 110000 | 110000 | 2 |  72513 |  72513 |  9297 |  3.583623638 | 1.115609103 | 2.135438479 | 0.382718716 | 1.709379538 | 0.156874112 |  72513 |
-| 110000 | 1 | 1 | 110000 | 110000 | 2 |  72154 |  72154 |  9232 |  3.627570506 | 1.103570537 | 2.189885346 |  0.36544056 | 1.781507161 | 0.144085569 |  72154 |
-| 110000 | 1 | 2 | 110000 | 110000 | 2 |  71771 |  71771 |  9054 |  3.562237099 | 1.105080032 | 2.123648638 | 0.364379437 | 1.716464571 | 0.154521312 |  71771 |
-| 110000 | 1 | 3 | 110000 | 110000 | 2 |  72036 |  72036 |  9000 |  3.465402602 | 1.104175201 | 2.028329005 | 0.382252627 | 1.582947338 | 0.148894505 |  72036 |
-| 110000 | 1 | 4 | 110000 | 110000 | 2 |  71937 |  71937 |  8951 |  3.558752008 | 1.105804525 | 2.120581865 |  0.37868275 | 1.698635252 | 0.144977146 |  71937 |
-| 110000 | 1 | 5 | 110000 | 110000 | 2 |  71792 |  71792 |  9055 |  3.603305467 | 1.103168135 | 2.161728608 | 0.366633907 | 1.751642064 | 0.153111461 |  71792 |
-| 110000 | 1 | 6 | 110000 | 110000 | 2 |  71770 |  71770 |  8890 |  3.600811378 | 1.109044686 | 2.157865917 | 0.382314179 | 1.732870663 |  0.14781034 |  71770 |
-| 110000 | 1 | 7 | 110000 | 110000 | 2 |  71872 |  71872 |  9105 |  3.526468424 | 1.115787775 | 2.078221198 |  0.38139662 | 1.654133087 | 0.143199962 |  71872 |
-| 110000 | 1 | 8 | 110000 | 110000 | 2 |  71821 |  71821 |  9209 |  3.554558287 | 1.106931016 | 2.101587211 | 0.380784721 | 1.677697086 | 0.156406139 |  71821 |
-| 110000 | 1 | 9 | 110000 | 110000 | 2 |  71886 |  71886 |  8496 |    3.4223644 | 1.113231918 | 1.978985167 | 0.374148003 | 1.540877846 | 0.150616037 |  71886 |
-| 120000 | 1 | 0 | 120000 | 120000 | 2 |  78444 |  78444 |  9790 |  4.044083052 |  1.22089555 |  2.44686854 | 0.424892606 | 1.975084357 | 0.173854233 |  78444 |
-| 120000 | 1 | 1 | 120000 | 120000 | 2 |  79064 |  79064 |  9263 |  3.710149224 | 1.214804905 | 2.097213639 |  0.40627247 | 1.643010328 |  0.16670665 |  79064 |
-| 120000 | 1 | 2 | 120000 | 120000 | 2 |  78524 |  78524 |  9654 |  3.938946788 | 1.217641276 | 2.346316501 | 0.425755958 |  1.87338334 |  0.17600581 |  78524 |
-| 120000 | 1 | 3 | 120000 | 120000 | 2 |  78399 |  78399 |  9588 |  3.971771578 | 1.228776231 | 2.369599418 | 0.407793587 |  1.91415154 | 0.173603882 |  78399 |
-| 120000 | 1 | 4 | 120000 | 120000 | 2 |  78746 |  78746 |  9978 |  3.988636977 | 1.229441895 | 2.375189285 | 0.428107565 | 1.899082552 | 0.169995152 |  78746 |
-| 120000 | 1 | 5 | 120000 | 120000 | 2 |  78615 |  78615 |  9663 |  3.938008292 | 1.232103189 | 2.328706998 | 0.428644184 | 1.852547968 | 0.169057935 |  78615 |
-| 120000 | 1 | 6 | 120000 | 120000 | 2 |  78527 |  78527 |  9645 |  3.970203162 |  1.22990592 | 2.361789463 | 0.428056652 | 1.886277794 | 0.175214768 |  78527 |
-| 120000 | 1 | 7 | 120000 | 120000 | 2 |  78774 |  78774 |  9675 |  3.953384523 | 1.229521193 | 2.346187673 | 0.427421114 |  1.87109108 | 0.174559227 |  78774 |
-| 120000 | 1 | 8 | 120000 | 120000 | 2 |  78247 |  78247 |  9857 |  3.981651613 | 1.233029007 | 2.372190025 | 0.426377975 | 1.898751486 | 0.181812051 |  78247 |
-| 120000 | 1 | 9 | 120000 | 120000 | 2 |  78928 |  78928 |  9693 |  3.829601322 | 1.218223075 | 2.234109856 | 0.424610468 | 1.739492118 | 0.163196799 |  78928 |
-| 130000 | 1 | 0 | 130000 | 130000 | 2 |  85315 |  85315 | 10567 |  4.496630254 | 1.350185864 | 2.725690284 | 0.463947662 | 2.209744665 | 0.197830476 |  85315 |
-| 130000 | 1 | 1 | 130000 | 130000 | 2 |  85142 |  85142 | 10403 |  4.342937024 | 1.337201086 | 2.560209662 |  0.46648121 | 2.041729717 | 0.188478467 |  85142 |
-| 130000 | 1 | 2 | 130000 | 130000 | 2 |  84925 |  84925 | 10388 |  4.340346355 | 1.343248689 | 2.549159688 | 0.470840552 | 2.026643502 | 0.196708577 |  84925 |
-| 130000 | 1 | 3 | 130000 | 130000 | 2 |  85122 |  85122 | 10224 |  4.325072141 | 1.346636564 | 2.532176279 | 0.465016216 | 2.015463288 | 0.192874629 |  85122 |
-| 130000 | 1 | 4 | 130000 | 130000 | 2 |  84972 |  84972 | 10050 |  4.157620772 | 1.345743388 | 2.364910478 | 0.468773206 | 1.844103122 | 0.200949646 |  84972 |
-| 130000 | 1 | 5 | 130000 | 130000 | 2 |  84995 |  84995 | 10729 |  4.445922674 | 1.341322827 | 2.681902811 | 0.468660831 | 2.140002118 | 0.226240593 |  84995 |
-| 130000 | 1 | 6 | 130000 | 130000 | 2 |  85356 |  85356 |  9815 |   4.14208991 |  1.34305509 | 2.354709522 | 0.470155475 | 1.832324281 | 0.196692155 |  85356 |
-| 130000 | 1 | 7 | 130000 | 130000 | 2 |  84961 |  84961 | 10513 |  4.406610962 | 1.328715031 | 2.649823902 | 0.465283683 | 2.108863585 | 0.195631672 |  84961 |
-| 130000 | 1 | 8 | 130000 | 130000 | 2 |  85019 |  85019 | 10795 |   4.34992193 | 1.351010514 | 2.553603859 | 0.468264295 | 2.033701538 | 0.190065701 |  85019 |
-| 130000 | 1 | 9 | 130000 | 130000 | 2 |  85572 |  85572 | 10741 |  4.341899661 |  1.34878337 | 2.545454159 | 0.467400417 | 2.026376139 | 0.197790981 |  85572 |
-| 140000 | 1 | 0 | 140000 | 140000 | 2 |  91961 |  91961 | 11636 |  4.785633961 | 1.429755155 | 2.908650967 | 0.508993845 | 2.344014886 | 0.224317586 |  91961 |
-| 140000 | 1 | 1 | 140000 | 140000 | 2 |  92261 |  92261 | 11446 |  4.869175696 | 1.440850625 | 2.969629031 | 0.490015676 | 2.423266125 | 0.214010397 |  92261 |
-| 140000 | 1 | 2 | 140000 | 140000 | 2 |  91700 |  91700 | 10883 |  4.525186491 | 1.429946253 | 2.623965743 | 0.589262975 | 1.979096417 |  0.21107713 |  91700 |
-| 140000 | 1 | 3 | 140000 | 140000 | 2 |  91529 |  91529 | 10873 |  4.763031452 |  1.43469886 | 2.867981765 | 0.488977323 | 2.322682854 |  0.21543578 |  91529 |
-| 140000 | 1 | 4 | 140000 | 140000 | 2 |  91629 |  91629 | 11305 |  4.786165978 | 1.427493488 | 2.900078154 |  0.57321664 | 2.245201199 |  0.23427863 |  91629 |
-| 140000 | 1 | 5 | 140000 | 140000 | 2 |  91880 |  91880 | 11470 |   4.83428426 | 1.429748273 | 2.944194491 |  0.49067493 | 2.397151544 | 0.220462138 |  91880 |
-| 140000 | 1 | 6 | 140000 | 140000 | 2 |  91604 |  91604 | 11166 |  4.638033401 |  1.43262339 | 2.717577346 | 0.565435414 | 2.095427687 | 0.219351165 |  91604 |
-| 140000 | 1 | 7 | 140000 | 140000 | 2 |  91511 |  91511 | 10132 |  4.494097405 | 1.436518961 | 2.586711282 | 0.612464606 | 1.916895669 | 0.228088975 |  91511 |
-| 140000 | 1 | 8 | 140000 | 140000 | 2 |  92066 |  92066 | 11696 |  5.005829102 | 1.515282813 | 3.040166054 | 0.519872847 | 2.463503272 | 0.221593645 |  92066 |
-| 140000 | 1 | 9 | 140000 | 140000 | 2 |  91879 |  91879 | 11445 |  4.873020022 | 1.432733643 | 2.977947848 | 0.488562877 | 2.432931357 | 0.225284717 |  91879 |
-| 150000 | 1 | 0 | 150000 | 150000 | 2 |  98627 |  98627 | 11706 |   4.87874908 |   1.6648079 | 2.871211159 | 0.557953727 | 2.246941746 | 0.232801971 |  98627 |
-| 150000 | 1 | 1 | 150000 | 150000 | 2 |  98261 |  98261 | 11998 |  5.053498174 | 1.638635224 | 3.073569116 | 0.566411168 | 2.441170162 | 0.260842737 |  98261 |
-| 150000 | 1 | 2 | 150000 | 150000 | 2 |  98235 |  98235 | 12071 |  5.020194853 | 1.652143113 | 3.024943915 | 0.564898091 | 2.394127067 | 0.249948478 |  98235 |
-| 150000 | 1 | 3 | 150000 | 150000 | 2 |  98312 |  98312 | 11705 |  4.993322009 | 1.639803476 | 3.005850198 | 0.559600904 | 2.381452894 | 0.250668565 |  98312 |
-| 150000 | 1 | 4 | 150000 | 150000 | 2 |  98743 |  98743 | 12062 |  5.027550332 | 1.634849775 | 3.048277529 | 0.560757771 |  2.42163756 | 0.244345537 |  98743 |
-| 150000 | 1 | 5 | 150000 | 150000 | 2 |  98223 |  98223 | 12114 |  5.122875915 | 1.643787445 | 3.137857417 | 0.563333104 | 2.508676615 | 0.235187336 |  98223 |
-| 150000 | 1 | 6 | 150000 | 150000 | 2 |  98058 |  98058 | 12112 |  5.029908619 | 1.641798555 | 3.048464151 | 0.566356261 | 2.415904032 | 0.251638182 |  98058 |
-| 150000 | 1 | 7 | 150000 | 150000 | 2 |  98210 |  98210 | 11960 |  5.082807396 | 1.623055534 | 3.118177094 | 0.563246208 | 2.488820486 | 0.244642605 |  98210 |
-| 150000 | 1 | 8 | 150000 | 150000 | 2 |  97960 |  97960 | 11597 |  4.832574492 | 1.634116768 | 2.859206384 | 0.563952597 | 2.228513891 | 0.245505624 |  97960 |
-| 150000 | 1 | 9 | 150000 | 150000 | 2 |  98422 |  98422 | 12311 |  5.254205812 | 1.641570462 | 3.241477264 | 0.561048378 | 2.614893926 |  0.25921745 |  98422 |
-| 160000 | 1 | 0 | 160000 | 160000 | 2 | 104809 | 104809 | 12764 |  5.440070645 | 1.738349582 |  3.29496342 | 0.573287414 | 2.650413678 | 0.272580126 | 104809 |
-| 160000 | 1 | 1 | 160000 | 160000 | 2 | 104736 | 104736 | 12041 |  5.164445291 | 1.740211137 | 3.046503543 | 0.554132548 | 2.420454444 | 0.270962312 | 104736 |
-| 160000 | 1 | 2 | 160000 | 160000 | 2 | 105357 | 105357 | 13124 |  5.419971635 | 1.745238982 | 3.263228991 | 0.556133519 | 2.634783843 | 0.274127138 | 105357 |
-| 160000 | 1 | 3 | 160000 | 160000 | 2 | 105082 | 105082 | 12438 |  5.229333287 | 1.747621002 | 3.107000357 | 0.558363145 |  2.47616425 | 0.263994342 | 105082 |
-| 160000 | 1 | 4 | 160000 | 160000 | 2 | 105268 | 105268 | 12063 |  5.082048681 |  1.74809226 | 2.960825826 | 0.555949584 | 2.331742656 | 0.263435602 | 105268 |
-| 160000 | 1 | 5 | 160000 | 160000 | 2 | 104256 | 104256 | 12487 |  5.422671634 | 1.746827086 | 3.271733078 | 0.557495636 | 2.643176684 | 0.267293552 | 104256 |
-| 160000 | 1 | 6 | 160000 | 160000 | 2 | 104686 | 104686 | 12465 |   5.23858361 | 1.735106293 |  3.08249264 | 0.558101199 | 2.453024637 | 0.271405331 | 104686 |
-| 160000 | 1 | 7 | 160000 | 160000 | 2 | 105070 | 105070 | 12893 |  5.425021324 |  1.74997715 | 3.271989538 |  0.55255752 | 2.647834339 | 0.286615979 | 105070 |
-| 160000 | 1 | 8 | 160000 | 160000 | 2 | 104067 | 104067 | 12612 |  5.466025941 |  1.72077701 | 3.344051429 | 0.552210851 | 2.719644446 | 0.278253136 | 104067 |
-| 160000 | 1 | 9 | 160000 | 160000 | 2 | 104683 | 104683 | 12955 |  5.445543346 | 1.736855611 | 3.302319902 | 0.552927518 | 2.678168574 |  0.27573911 | 104683 |
-| 170000 | 1 | 0 | 170000 | 170000 | 2 | 111232 | 111232 | 14138 |  6.168860346 | 1.794201456 |  3.79426348 | 0.646182461 | 3.050866849 | 0.316425533 | 111232 |
-| 170000 | 1 | 1 | 170000 | 170000 | 2 | 111515 | 111515 | 14069 |  6.291022894 | 1.806047037 | 3.901511142 | 0.649299151 | 3.184940069 | 0.312489109 | 111515 |
-| 170000 | 1 | 2 | 170000 | 170000 | 2 | 111410 | 111410 | 13322 |  6.065010338 | 1.820236643 | 3.625553865 | 0.646420322 |  2.91112181 | 0.286363926 | 111410 |
-| 170000 | 1 | 3 | 170000 | 170000 | 2 | 111530 | 111530 | 13559 |  6.083466882 |  1.79696291 | 3.702714542 | 0.650556016 | 2.953389729 | 0.315408512 | 111530 |
-| 170000 | 1 | 4 | 170000 | 170000 | 2 | 111153 | 111153 | 13532 |  6.034167436 | 1.799491065 | 3.622846207 | 0.629077068 | 2.926017228 | 0.313858897 | 111153 |
-| 170000 | 1 | 5 | 170000 | 170000 | 2 | 111203 | 111203 | 13432 |  6.016587597 | 1.799698199 | 3.602595388 | 0.649027157 | 2.885823847 |  0.29558384 | 111203 |
-| 170000 | 1 | 6 | 170000 | 170000 | 2 | 111830 | 111830 | 13548 |  6.081547831 | 1.803101912 | 3.692775572 | 0.647747248 | 2.947152311 | 0.306056469 | 111830 |
-| 170000 | 1 | 7 | 170000 | 170000 | 2 | 111722 | 111722 | 14225 |  6.118880544 | 1.801466529 | 3.731702997 | 0.650617257 | 2.981227424 | 0.302745422 | 111722 |
-| 170000 | 1 | 8 | 170000 | 170000 | 2 | 111333 | 111333 | 13460 |  5.951473301 | 1.798359163 | 3.536319187 | 0.626822294 | 2.841167646 | 0.293359484 | 111333 |
-| 170000 | 1 | 9 | 170000 | 170000 | 2 | 111104 | 111104 | 14024 |  6.322780834 | 1.803281674 | 3.937282214 | 0.648205194 | 3.221344806 | 0.308468407 | 111104 |
-| 180000 | 1 | 0 | 180000 | 180000 | 2 | 118197 | 118197 | 14269 |  6.399882746 | 1.887676568 | 3.909145115 | 0.688854581 | 3.115447653 | 0.337145292 | 118197 |
-| 180000 | 1 | 1 | 180000 | 180000 | 2 | 117899 | 117899 | 15008 |   6.59193564 | 1.904407536 |  4.08653053 | 0.665274738 | 3.346812896 | 0.371029427 | 117899 |
-| 180000 | 1 | 2 | 180000 | 180000 | 2 | 117666 | 117666 | 13561 |  6.180263714 | 1.885404815 | 3.646186864 | 0.654902445 | 2.917396039 | 0.322655201 | 117666 |
-| 180000 | 1 | 3 | 180000 | 180000 | 2 | 118429 | 118429 | 14730 |  6.683809119 | 1.887848416 | 4.181829556 |  0.65788037 | 3.450755587 |  0.33928549 | 118429 |
-| 180000 | 1 | 4 | 180000 | 180000 | 2 | 117919 | 117919 | 14765 |  6.645367305 | 1.883886051 | 4.160680592 | 0.691621936 | 3.396849828 | 0.330699572 | 117919 |
-| 180000 | 1 | 5 | 180000 | 180000 | 2 | 117831 | 117831 | 14368 |  6.570270358 | 1.899077345 |  4.07657936 | 0.688312904 | 3.316043289 | 0.362467943 | 117831 |
-| 180000 | 1 | 6 | 180000 | 180000 | 2 | 118164 | 118164 | 14146 |  6.253575237 | 1.880088227 | 3.760370092 | 0.662409327 | 2.991572834 | 0.334099838 | 118164 |
-| 180000 | 1 | 7 | 180000 | 180000 | 2 | 118052 | 118052 | 14371 |  6.445557412 | 1.878072219 | 3.955840363 | 0.687813284 | 3.196005552 | 0.347213376 | 118052 |
-| 180000 | 1 | 8 | 180000 | 180000 | 2 | 118236 | 118236 | 14815 |  6.889289486 | 1.907757451 | 4.385984832 | 0.679527108 | 3.633801247 | 0.349703641 | 118236 |
-| 180000 | 1 | 9 | 180000 | 180000 | 2 | 118382 | 118382 | 14925 |  6.736632409 | 1.891914072 | 4.247302756 |  0.68559706 | 3.489265896 | 0.334848585 | 118382 |
-| 190000 | 1 | 0 | 190000 | 190000 | 2 | 123893 | 123893 | 14728 |  6.900986764 | 2.161582434 | 4.286226596 | 0.734762604 | 3.472067038 | 0.353948463 | 123893 |
-| 190000 | 1 | 1 | 190000 | 190000 | 2 | 124576 | 124576 | 15159 |  6.898488004 | 2.174624047 |  4.27912098 | 0.700296369 | 3.498568863 |  0.35830138 | 124576 |
-| 190000 | 1 | 2 | 190000 | 190000 | 2 | 125003 | 125003 | 15028 |  6.710198557 | 2.160130688 | 4.099515534 | 0.730724067 | 3.290501527 |  0.34505851 | 125003 |
-| 190000 | 1 | 3 | 190000 | 190000 | 2 | 124525 | 124525 | 15349 |  7.034451859 |  2.17570743 |   4.4134223 | 0.714822027 | 3.618546002 | 0.351501335 | 124525 |
-| 190000 | 1 | 4 | 190000 | 190000 | 2 | 124747 | 124747 | 15192 |  7.002408049 | 2.172273501 | 4.385477998 | 0.716428478 | 3.590030986 | 0.349493967 | 124747 |
-| 190000 | 1 | 5 | 190000 | 190000 | 2 | 124560 | 124560 | 15457 |   7.05067543 | 2.157656357 | 4.436947595 | 0.847961622 | 3.506773273 | 0.371769263 | 124560 |
-| 190000 | 1 | 6 | 190000 | 190000 | 2 | 124538 | 124538 | 15810 |  6.994375326 | 2.178560202 |  4.37305179 | 0.833612472 | 3.459327275 | 0.374734634 | 124538 |
-| 190000 | 1 | 7 | 190000 | 190000 | 2 | 124769 | 124769 | 15347 |  6.859897755 | 2.172018642 | 4.242157485 | 0.715965149 | 3.445706969 | 0.385739932 | 124769 |
-| 190000 | 1 | 8 | 190000 | 190000 | 2 | 124494 | 124494 | 15160 |  6.925273713 |  2.15971988 | 4.322267457 | 0.716420296 | 3.526599735 | 0.384269638 | 124494 |
-| 190000 | 1 | 9 | 190000 | 190000 | 2 | 124557 | 124557 | 15285 |  6.897091465 |  2.18135559 | 4.271128314 | 0.718135681 | 3.472719135 |  0.35732001 | 124557 |
-| 200000 | 1 | 0 | 200000 | 200000 | 2 | 131252 | 131252 | 16562 |  7.501766674 | 2.290347737 | 4.733828831 | 0.777096111 |  3.87381184 | 0.424507374 | 131252 |
-| 200000 | 1 | 1 | 200000 | 200000 | 2 | 130414 | 130414 | 15929 |  7.314470042 | 2.300023248 | 4.546142615 |  0.74427866 | 3.719243714 | 0.428758608 | 130414 |
-| 200000 | 1 | 2 | 200000 | 200000 | 2 | 130472 | 130472 | 15645 |  7.532480312 | 2.412615713 |   4.6471952 | 0.793080252 | 3.769570721 | 0.411414107 | 130472 |
-| 200000 | 1 | 3 | 200000 | 200000 | 2 | 131201 | 131201 | 16704 |  7.921693365 |  2.28837716 | 5.120909431 | 0.763193167 | 4.274570419 | 0.379625197 | 131201 |
-| 200000 | 1 | 4 | 200000 | 200000 | 2 | 130338 | 130338 | 16019 |  7.333021768 | 2.302058129 | 4.547763537 | 0.777164588 | 3.689658429 | 0.401041409 | 130338 |
-| 200000 | 1 | 5 | 200000 | 200000 | 2 | 131308 | 131308 | 16144 |  7.461368238 | 2.329180847 | 4.645205799 | 0.777043676 | 3.785984536 | 0.434666287 | 131308 |
-| 200000 | 1 | 6 | 200000 | 200000 | 2 | 130142 | 130142 | 15625 |  7.263421771 | 2.297130478 | 4.488145182 | 0.775779486 | 3.630773898 | 0.385860234 | 130142 |
-| 200000 | 1 | 7 | 200000 | 200000 | 2 | 130897 | 130897 | 15694 |  7.089368287 | 2.294700687 | 4.323368884 | 0.761099811 | 3.442399339 | 0.402031887 | 130897 |
-| 200000 | 1 | 8 | 200000 | 200000 | 2 | 131111 | 131111 | 15630 |  7.153170481 | 2.296633907 | 4.375205575 | 0.758395281 | 3.536094842 | 0.406151482 | 131111 |
-| 200000 | 1 | 9 | 200000 | 200000 | 2 | 131658 | 131658 | 15813 |  7.345773525 | 2.290669569 | 4.585029803 | 0.761367922 | 3.740556123 | 0.384697184 | 131658 |
-| 210000 | 1 | 0 | 210000 | 210000 | 2 | 137501 | 137501 | 17008 |  8.041410976 | 2.403339336 | 5.123146016 | 0.942056976 | 4.091394929 | 0.409698156 | 137501 |
-| 210000 | 1 | 1 | 210000 | 210000 | 2 | 137135 | 137135 | 15957 |  7.741675231 | 2.396214712 | 4.837474255 | 0.943700366 | 3.803742428 | 0.421952086 | 137135 |
-| 210000 | 1 | 2 | 210000 | 210000 | 2 | 137287 | 137287 | 15418 |  7.212113427 | 2.377236587 | 4.291066239 | 0.940134423 | 3.261723983 | 0.424028043 | 137287 |
-| 210000 | 1 | 3 | 210000 | 210000 | 2 | 137678 | 137678 | 16996 |  7.852423325 | 2.400356141 | 4.948782914 | 0.944696767 | 3.914108096 | 0.435767402 | 137678 |
-| 210000 | 1 | 4 | 210000 | 210000 | 2 | 137689 | 137689 | 16467 |  7.706523853 | 2.408438126 | 4.788697876 | 0.948561505 | 3.749344946 | 0.414052643 | 137689 |
-| 210000 | 1 | 5 | 210000 | 210000 | 2 | 137048 | 137048 | 16582 |  7.944378905 | 2.402098191 |  5.03439182 | 0.951142524 | 3.995750467 | 0.426074004 | 137048 |
-| 210000 | 1 | 6 | 210000 | 210000 | 2 | 137675 | 137675 | 17013 |  7.872924876 | 2.393076388 |  4.97605133 | 0.947243336 | 3.939171511 | 0.456742565 | 137675 |
-| 210000 | 1 | 7 | 210000 | 210000 | 2 | 137782 | 137782 | 17222 |  7.851843478 | 2.386854521 | 4.953363162 | 0.942257674 | 3.922594883 | 0.472598536 | 137782 |
-| 210000 | 1 | 8 | 210000 | 210000 | 2 | 137457 | 137457 | 17269 |  7.941092926 | 2.400592639 | 5.019741544 |  0.96243323 | 3.969171412 | 0.456810118 | 137457 |
-| 210000 | 1 | 9 | 210000 | 210000 | 2 | 137666 | 137666 | 16679 |   7.65857879 | 2.381422353 | 4.777175065 | 0.940556494 | 3.748671504 | 0.421552087 | 137666 |
-| 220000 | 1 | 0 | 220000 | 220000 | 2 | 144061 | 144061 | 17847 |  8.669095907 | 2.545385024 | 5.537661442 | 0.861795041 | 4.581711535 | 0.434233353 | 144061 |
-| 220000 | 1 | 1 | 220000 | 220000 | 2 | 143962 | 143962 | 17924 |  8.318288059 | 2.512176282 | 5.279486794 | 0.841207079 | 4.343627504 | 0.478695353 | 143962 |
-| 220000 | 1 | 2 | 220000 | 220000 | 2 | 144022 | 144022 | 17751 |  8.578085453 | 2.518105343 | 5.476536271 | 0.858895534 | 4.525636131 | 0.453601706 | 144022 |
-| 220000 | 1 | 3 | 220000 | 220000 | 2 | 143831 | 143831 | 16007 |  7.698838517 | 2.524429064 | 4.629894943 | 0.858350426 |  3.63611909 | 0.457531583 | 143831 |
-| 220000 | 1 | 4 | 220000 | 220000 | 2 | 144524 | 144524 | 17382 |  8.273610384 | 2.527772666 | 5.206568723 | 0.858430052 | 4.254333768 | 0.446028672 | 144524 |
-| 220000 | 1 | 5 | 220000 | 220000 | 2 | 144219 | 144219 | 16792 |  8.064943676 | 2.535638022 | 4.988759882 | 0.864193856 | 4.030824969 | 0.465423993 | 144219 |
-| 220000 | 1 | 6 | 220000 | 220000 | 2 | 144053 | 144053 | 17449 |  8.342951384 | 2.528450286 | 5.273498833 | 0.863906134 | 4.315790117 | 0.458714232 | 144053 |
-| 220000 | 1 | 7 | 220000 | 220000 | 2 | 143664 | 143664 | 17853 |  8.604525287 |  2.54432029 | 5.478018839 | 0.863750754 | 4.519996727 | 0.489311152 | 143664 |
-| 220000 | 1 | 8 | 220000 | 220000 | 2 | 144603 | 144603 | 17247 |  8.038770401 | 2.531384236 | 4.969336395 | 0.859721024 | 4.016490586 | 0.438631087 | 144603 |
-| 220000 | 1 | 9 | 220000 | 220000 | 2 | 144014 | 144014 | 17534 |  8.253180489 | 2.533094252 | 5.189130014 | 0.845358612 | 4.248644903 | 0.450726977 | 144014 |
-| 230000 | 1 | 0 | 230000 | 230000 | 2 | 150310 | 150310 | 17731 |  8.310385661 | 2.627288746 | 5.126576882 | 1.012838289 | 4.012415445 | 0.472023176 | 150310 |
-| 230000 | 1 | 1 | 230000 | 230000 | 2 | 150614 | 150614 | 18286 |  8.850914286 | 2.653181854 | 5.555712184 | 1.032394359 | 4.424215084 | 0.534918245 | 150614 |
-| 230000 | 1 | 2 | 230000 | 230000 | 2 | 150045 | 150045 | 18470 |  8.901776764 | 2.651087917 | 5.642981332 | 1.018398605 | 4.523348677 | 0.480107241 | 150045 |
-| 230000 | 1 | 3 | 230000 | 230000 | 2 | 151151 | 151151 | 19032 |  9.161537892 | 2.624767484 | 5.925766944 | 1.026628763 |  4.79818448 | 0.492935426 | 151151 |
-| 230000 | 1 | 4 | 230000 | 230000 | 2 | 150433 | 150433 | 19473 |  8.893856489 | 2.639158704 | 5.644482115 | 1.021033059 | 4.522405807 | 0.519523569 | 150433 |
-| 230000 | 1 | 5 | 230000 | 230000 | 2 | 151042 | 151042 | 19176 |  8.874304794 | 2.615782409 | 5.642420608 | 1.027906535 | 4.515114968 | 0.499868164 | 151042 |
-| 230000 | 1 | 6 | 230000 | 230000 | 2 | 150671 | 150671 | 17738 |  8.430467737 | 2.616624791 | 5.258739268 | 1.017196006 | 4.139772202 | 0.513665986 | 150671 |
-| 230000 | 1 | 7 | 230000 | 230000 | 2 | 150828 | 150828 | 18530 |  8.680881471 | 2.624730177 | 5.495091539 | 1.055239464 | 4.339090618 | 0.525135532 | 150828 |
-| 230000 | 1 | 8 | 230000 | 230000 | 2 | 150549 | 150549 | 18563 |  8.976734652 |   2.6574307 | 5.692591009 | 1.028878404 | 4.563868735 | 0.498219728 | 150549 |
-| 230000 | 1 | 9 | 230000 | 230000 | 2 | 151016 | 151016 | 18035 |  8.559480359 | 2.616094984 | 5.383410728 | 1.019994484 | 4.261937361 |   0.5079374 | 151016 |
-| 240000 | 1 | 0 | 240000 | 240000 | 2 | 157139 | 157139 | 18612 |  8.815972912 |  2.74773998 |  5.48311889 | 1.087140152 | 4.292111659 |  0.57189365 | 157139 |
-| 240000 | 1 | 1 | 240000 | 240000 | 2 | 157608 | 157608 | 19252 |  9.157400044 | 2.771516517 | 5.792792991 | 1.104238642 | 4.585645223 | 0.540382115 | 157608 |
-| 240000 | 1 | 2 | 240000 | 240000 | 2 | 157646 | 157646 | 20024 |  9.781766985 | 2.770280889 | 6.365296777 | 1.103147254 | 5.156231439 | 0.531953967 | 157646 |
-| 240000 | 1 | 3 | 240000 | 240000 | 2 | 156622 | 156622 | 19369 |  9.367733297 | 2.758797231 | 6.017452665 | 1.094654537 | 4.817963485 | 0.549178664 | 156622 |
-| 240000 | 1 | 4 | 240000 | 240000 | 2 | 157345 | 157345 | 19699 |  9.758490449 | 2.770374206 | 6.338868771 | 1.120063219 | 5.115686793 | 0.522267916 | 157345 |
-| 240000 | 1 | 5 | 240000 | 240000 | 2 | 157221 | 157221 | 19449 |   9.15696264 | 2.770948598 | 5.783570148 | 1.110696326 | 4.569368463 | 0.553962177 | 157221 |
-| 240000 | 1 | 6 | 240000 | 240000 | 2 | 156929 | 156929 | 19481 |   9.33711475 | 2.758312879 | 5.992392294 | 1.085176846 | 4.802884048 | 0.561701544 | 156929 |
-| 240000 | 1 | 7 | 240000 | 240000 | 2 | 157431 | 157431 | 19737 |  9.480237235 | 2.740959893 | 6.092215797 | 1.084837778 | 4.902966712 | 0.502511967 | 157431 |
-| 240000 | 1 | 8 | 240000 | 240000 | 2 | 157398 | 157398 | 19422 |  9.343251503 | 2.725190387 | 6.000660595 | 1.073390483 | 4.825764661 | 0.532866407 | 157398 |
-| 240000 | 1 | 9 | 240000 | 240000 | 2 | 157057 | 157057 | 18490 |  8.582717593 | 2.703775099 | 5.302892817 | 1.056925038 | 4.144808802 | 0.536938491 | 157057 |
-| 250000 | 1 | 0 | 250000 | 250000 | 2 | 164155 | 164155 | 20499 |   9.60557815 | 2.822196904 | 6.136753035 | 0.934586401 | 5.096747938 | 0.570337366 | 164155 |
-| 250000 | 1 | 1 | 250000 | 250000 | 2 | 163799 | 163799 | 20090 |  9.765207872 | 2.822791811 |  6.28078652 |   0.9555997 | 5.221866039 |   0.5819578 | 163799 |
-| 250000 | 1 | 2 | 250000 | 250000 | 2 | 163795 | 163795 | 19435 |  9.122273726 | 2.817267273 | 5.690582319 | 0.955516537 | 4.630858254 | 0.574494614 | 163795 |
-| 250000 | 1 | 3 | 250000 | 250000 | 2 | 163882 | 163882 | 20565 |  9.733671852 |  2.83933094 | 6.230632543 | 1.104118097 | 5.022094244 | 0.546038473 | 163882 |
-| 250000 | 1 | 4 | 250000 | 250000 | 2 | 163488 | 163488 | 19736 |   9.42577444 | 2.827970226 | 6.003941266 | 0.950475659 | 4.946863585 | 0.579136603 | 163488 |
-| 250000 | 1 | 5 | 250000 | 250000 | 2 | 163040 | 163040 | 20113 |  9.585754001 | 2.825224281 | 6.101184877 | 0.949185342 | 5.048083201 | 0.573078765 | 163040 |
-| 250000 | 1 | 6 | 250000 | 250000 | 2 | 164270 | 164270 | 19386 |   9.19282763 | 2.840616946 | 5.751106153 | 0.942298045 | 4.702955477 | 0.572438797 | 164270 |
-| 250000 | 1 | 7 | 250000 | 250000 | 2 | 163551 | 163551 | 19810 |  9.267103056 | 2.833960096 | 5.830650066 | 0.948962675 | 4.778918365 | 0.549960572 | 163551 |
-| 250000 | 1 | 8 | 250000 | 250000 | 2 | 163657 | 163657 | 20139 |  9.437199933 | 2.807412327 |  5.96740992 | 0.929643275 | 4.933262311 |  0.58148418 | 163657 |
-| 250000 | 1 | 9 | 250000 | 250000 | 2 | 164412 | 164412 | 20005 |  9.573767442 | 2.835445074 | 6.092619835 | 0.929378761 | 5.057647231 | 0.571809639 | 164412 |
-| 260000 | 1 | 0 | 260000 | 260000 | 2 | 170681 | 170681 | 20415 |    9.4548144 | 2.930642649 | 5.889017916 | 1.105724873 | 4.671796122 | 0.550283763 | 170681 |
-| 260000 | 1 | 1 | 260000 | 260000 | 2 | 169673 | 169673 | 20584 |  9.590741172 | 2.915821966 | 6.051150871 | 1.078916389 | 4.858871158 | 0.606429393 | 169673 |
-| 260000 | 1 | 2 | 260000 | 260000 | 2 | 169714 | 169714 | 20638 |  9.866056656 | 2.910540007 | 6.279885217 | 1.092830522 | 5.074247433 | 0.617775182 | 169714 |
-| 260000 | 1 | 3 | 260000 | 260000 | 2 | 170275 | 170275 | 20738 |   9.97812243 | 2.915090305 | 6.389943714 | 1.094404504 | 5.182674507 |  0.55613254 | 170275 |
-| 260000 | 1 | 4 | 260000 | 260000 | 2 | 170569 | 170569 | 20990 |  9.789765173 | 2.911049224 | 6.195948999 | 1.086773541 | 4.996391502 | 0.641643796 | 170569 |
-| 260000 | 1 | 5 | 260000 | 260000 | 2 | 170612 | 170612 | 19707 |  9.111092709 | 2.911439929 | 5.577325876 | 1.076905109 | 4.388617693 | 0.562255785 | 170612 |
-| 260000 | 1 | 6 | 260000 | 260000 | 2 | 170532 | 170532 | 21402 |  9.908742138 |  2.90222627 | 6.324748882 | 1.102120351 | 5.112509739 | 0.597304417 | 170532 |
-| 260000 | 1 | 7 | 260000 | 260000 | 2 | 170002 | 170002 | 19791 |  9.437899396 | 2.910546682 | 5.894809996 | 1.101619829 | 4.681988044 | 0.626214093 | 170002 |
-| 260000 | 1 | 8 | 260000 | 260000 | 2 | 170169 | 170169 | 20431 |  9.857592193 | 2.906946936 |  6.27132285 |  1.09868213 | 5.061145086 | 0.586025964 | 170169 |
-| 260000 | 1 | 9 | 260000 | 260000 | 2 | 170493 | 170493 | 20194 |  9.385833214 | 2.908785965 | 5.846454599 |  1.10610514 | 4.629300513 | 0.581113361 | 170493 |
-| 270000 | 1 | 0 | 270000 | 270000 | 2 | 177419 | 177419 | 22189 | 10.689381872 | 3.080717335 |  6.89093731 | 1.194186556 | 5.580800268 |  0.59785875 | 177419 |
-| 270000 | 1 | 1 | 270000 | 270000 | 2 | 176846 | 176846 | 21447 | 10.299967542 | 3.019579518 | 6.634314668 | 1.167149517 | 5.352308427 | 0.644087616 | 176846 |
-| 270000 | 1 | 2 | 270000 | 270000 | 2 | 177200 | 177200 | 21096 |  9.852972777 | 3.037923152 | 6.166210003 | 1.173188819 | 4.876581258 | 0.592539765 | 177200 |
-| 270000 | 1 | 3 | 270000 | 270000 | 2 | 176612 | 176612 | 21777 | 10.282605222 | 3.041046279 | 6.591089515 |  1.14796408 | 5.327337908 | 0.612531435 | 176612 |
-| 270000 | 1 | 4 | 270000 | 270000 | 2 | 177296 | 177296 | 20837 |  9.776640558 | 3.038335321 | 6.087881823 |  1.17535362 | 4.795954983 | 0.638223713 | 177296 |
-| 270000 | 1 | 5 | 270000 | 270000 | 2 | 176611 | 176611 | 21444 | 10.500645576 | 3.053852266 | 6.740246334 | 1.146873701 | 5.477494592 |  0.63675463 | 176611 |
-| 270000 | 1 | 6 | 270000 | 270000 | 2 | 176888 | 176888 | 22016 | 10.538372465 | 3.070766221 | 6.815931971 | 1.210888556 | 5.481491521 | 0.640227132 | 176888 |
-| 270000 | 1 | 7 | 270000 | 270000 | 2 | 176571 | 176571 | 21891 | 10.765028727 | 3.033038125 | 7.032778841 | 1.189691099 | 5.726028081 | 0.628098181 | 176571 |
-| 270000 | 1 | 8 | 270000 | 270000 | 2 | 176523 | 176523 | 22648 | 10.795500125 | 3.035613661 | 7.061060684 | 1.165833564 | 5.780602599 | 0.671489039 | 176523 |
-| 270000 | 1 | 9 | 270000 | 270000 | 2 | 176549 | 176549 | 21041 | 10.198250889 | 3.030090479 | 6.522306993 |  1.16941795 | 5.238104309 | 0.651520711 | 176549 |
-| 280000 | 1 | 0 | 280000 | 280000 | 2 | 183598 | 183598 | 23254 | 10.707345637 |  3.12594362 | 6.846144329 | 1.042242054 | 5.676629961 | 0.678939611 | 183598 |
-| 280000 | 1 | 1 | 280000 | 280000 | 2 | 183411 | 183411 | 22220 | 10.565084738 | 3.109234517 | 6.717684789 | 1.029231563 | 5.564469962 | 0.693535243 | 183411 |
-| 280000 | 1 | 2 | 280000 | 280000 | 2 | 184056 | 184056 | 23451 | 11.091024335 | 3.096977688 | 7.312582168 | 1.037470722 | 6.102368581 | 0.613608554 | 184056 |
-| 280000 | 1 | 3 | 280000 | 280000 | 2 | 183148 | 183148 | 22543 | 10.541255626 | 3.101419148 | 6.695550284 | 1.020266867 | 5.549581829 | 0.688000785 | 183148 |
-| 280000 | 1 | 4 | 280000 | 280000 | 2 | 183020 | 183020 | 22790 | 10.563007126 | 3.103572056 | 6.725438094 |  1.02641916 | 5.572920965 | 0.659520079 | 183020 |
-| 280000 | 1 | 5 | 280000 | 280000 | 2 | 183175 | 183175 | 22252 |  10.74211594 | 3.127961086 | 6.869822513 | 1.032502365 | 5.711579782 |  0.61829214 | 183175 |
-| 280000 | 1 | 6 | 280000 | 280000 | 2 | 183674 | 183674 | 22445 | 10.846812933 | 3.130509433 | 6.966774772 |  1.03071281 | 5.813079371 | 0.643883661 | 183674 |
-| 280000 | 1 | 7 | 280000 | 280000 | 2 | 183458 | 183458 | 22356 | 10.558548553 | 3.099913925 | 6.726646702 | 1.035148717 | 5.565872566 | 0.614459156 | 183458 |
-| 280000 | 1 | 8 | 280000 | 280000 | 2 | 183022 | 183022 | 20824 |  9.800448926 | 3.122052285 |  5.98520867 | 1.040402131 | 4.820086203 | 0.626547431 | 183022 |
-| 280000 | 1 | 9 | 280000 | 280000 | 2 | 183171 | 183171 | 22565 | 10.545346725 | 3.131769483 |  6.66417774 | 1.041565284 | 5.497697244 |  0.68598763 | 183171 |
-| 290000 | 1 | 0 | 290000 | 290000 | 2 | 190044 | 190044 | 22976 |  10.92077822 | 3.214080215 | 6.934844505 | 1.014736808 |    5.790384 | 0.691925568 | 190044 |
-| 290000 | 1 | 1 | 290000 | 290000 | 2 | 189806 | 189806 | 23292 | 10.843386214 | 3.215425947 | 6.852131514 | 1.021619776 | 5.697462828 | 0.703619281 | 189806 |
-| 290000 | 1 | 2 | 290000 | 290000 | 2 | 190197 | 190197 | 22354 | 10.397205167 | 3.226330292 | 6.393833166 | 1.012785386 | 5.251509419 | 0.733568292 | 190197 |
-| 290000 | 1 | 3 | 290000 | 290000 | 2 | 190324 | 190324 | 23564 | 11.441253374 | 3.220414777 | 7.508093618 | 1.027947969 | 6.347256823 | 0.664929487 | 190324 |
-| 290000 | 1 | 4 | 290000 | 290000 | 2 | 190272 | 190272 | 22463 | 10.536742866 | 3.218774317 | 6.551271321 | 1.028759609 | 5.390552493 | 0.700022212 | 190272 |
-| 290000 | 1 | 5 | 290000 | 290000 | 2 | 190136 | 190136 | 23381 | 11.236277163 | 3.206357594 |  7.31621001 | 1.024936209 | 6.111820107 | 0.691577028 | 190136 |
-| 290000 | 1 | 6 | 290000 | 290000 | 2 | 190678 | 190678 | 23072 |   10.9148769 | 3.223648571 | 6.924738285 | 1.030530888 | 5.761589518 | 0.711657323 | 190678 |
-| 290000 | 1 | 7 | 290000 | 290000 | 2 | 190946 | 190946 | 22889 |  10.56511376 | 3.227557879 | 6.560143815 | 1.021750427 |    5.407384 | 0.690981759 | 190946 |
-| 290000 | 1 | 8 | 290000 | 290000 | 2 | 190053 | 190053 | 23433 | 10.908398565 | 3.209551958 | 6.929929038 |  1.01080225 | 5.787722801 | 0.707466444 | 190053 |
-| 290000 | 1 | 9 | 290000 | 290000 | 2 | 189700 | 189700 | 23564 | 11.167754785 | 3.198865208 | 7.264370827 | 1.024548376 | 6.059374361 | 0.658562025 | 189700 |
-| 300000 | 1 | 0 | 300000 | 300000 | 2 | 197133 | 197133 | 23844 | 11.290930841 | 3.292479571 | 7.254842007 | 0.739282109 | 6.051628224 | 0.684718157 | 197133 |
-| 300000 | 1 | 1 | 300000 | 300000 | 2 | 196650 | 196650 | 24747 | 11.747530758 | 3.266119091 | 7.742190827 | 1.050865719 | 6.551144967 | 0.728950319 | 196650 |
-| 300000 | 1 | 2 | 300000 | 300000 | 2 | 196403 | 196403 | 24759 | 12.062785334 | 3.295742322 | 7.946142871 | 0.738346077 | 6.751236901 |  0.74227076 | 196403 |
-| 300000 | 1 | 3 | 300000 | 300000 | 2 | 196270 | 196270 | 24044 | 11.276732836 | 3.303501308 | 7.234669539 | 1.049454402 | 6.043991894 |  0.74733691 | 196270 |
-| 300000 | 1 | 4 | 300000 | 300000 | 2 | 196354 | 196354 | 24166 | 11.519037176 | 3.292506598 | 7.472094511 | 1.049057767 | 6.282284293 | 0.781757696 | 196354 |
-| 300000 | 1 | 5 | 300000 | 300000 | 2 | 196996 | 196996 | 24758 | 11.517524274 | 3.285781745 | 7.486309733 |  1.05492982 | 6.289337414 |  0.76825964 | 196996 |
-| 300000 | 1 | 6 | 300000 | 300000 | 2 | 197385 | 197385 | 24911 | 12.271921845 | 3.408291823 | 8.101506133 | 1.096258241 | 6.864540233 | 0.727420201 | 197385 |
-| 300000 | 1 | 7 | 300000 | 300000 | 2 | 196983 | 196983 | 24370 | 11.700670367 | 3.284961744 | 7.659590979 | 1.046525693 | 6.472569943 | 0.710060576 | 196983 |
-| 300000 | 1 | 8 | 300000 | 300000 | 2 | 196764 | 196764 | 23885 | 11.355408019 |  3.28628696 | 7.327721993 | 1.052316196 | 6.135234582 | 0.773097422 | 196764 |
-| 300000 | 1 | 9 | 300000 | 300000 | 2 | 196322 | 196322 | 24157 | 11.656118582 | 3.275123115 | 7.642015947 |  1.04603912 | 6.454546005 | 0.724228232 | 196322 |
-
-#+begin_src python :var data=results1indiv
-return (all(x[3] != x[6] for x in data), data[0][3], data[0][6])
-#+end_src
-
-#+RESULTS:
-| True | 100000 | 65489 |
-
-=> /no/ model was minimal
-
-*** And plotting
-
-#+CALL: plot(results1, "results1.png")
-
-#+RESULTS:
-[[file:results1.png]]
-
-** For m = 2
-*** Generating some benchmarks
-
-#+begin_src sh :results output silent
-for n in 100000 110000 120000 130000 140000 150000 160000 170000 180000 190000; do
-    python bench.py generate ../../copar/bin/random-dfa $n 2
-done
-#+end_src
-
-*** And running them
-
-#+begin_src sh :hlines yes :colnames '("N" "M" "i" "States" "Edges" "I" "Q" "Qs1" "Opts" "t (s)" "σ" "tp (s)" "σ" "ta (s)" "σ"  "ti (s)" "σ"  "tr (s)" "σ"  "tv (s)" "σ"  "Qv")
-for n in 100000 110000 120000 130000 140000 150000 160000 170000 180000 190000; do
-    python bench.py run ../../copar/bin/copar ../../valmari_cpp/mdpmin $n 2 --stddev
-done
-#+end_src
-
-#+NAME: results2
-#+RESULTS:
-|      N | M |  i | States |  Edges | I |      Q |    Qs1 |   Opts |              t (s) |                    σ |             tp (s) |                    σ |             ta (s) |                    σ |              ti (s) |                    σ |             tr (s) |                   σ |              tv (s) |                    σ |     Qv |
-|--------+---+----+--------+--------+---+--------+--------+--------+--------------------+----------------------+--------------------+----------------------+--------------------+----------------------+---------------------+----------------------+--------------------+---------------------+---------------------+----------------------+--------|
-| 100000 | 2 | 10 | 100000 | 200000 | 2 | 100000 | 100000 | 176835 |       3.4030988053 | 0.047125905819625266 | 1.4113720969999999 | 0.020157652579552755 | 1.7480437949999998 | 0.030617105080139137 |        0.4651039364 | 0.004331701728800437 |       1.2271866079 | 0.02960202148844354 |        0.2616005265 | 0.004401878111343841 | 100000 |
-| 110000 | 2 | 10 | 110000 | 220000 | 2 | 110000 | 110000 | 198390 | 3.9692688889000003 |   0.0370434112058736 |       1.5157029322 |  0.02116665725333869 | 2.0486332889999996 | 0.040191720781762134 |        0.4946425016 | 0.013523587264140786 | 1.4991156887000003 | 0.03442819266484039 | 0.30168761980000003 | 0.007153435060528811 | 110000 |
-| 120000 | 2 | 10 | 120000 | 240000 | 2 | 119999 | 119999 | 211802 |       4.3143812377 | 0.028623553516576524 |       1.7607175563 |  0.01395808199964705 |       2.2709801406 | 0.019540291251429913 |  0.6559281311999998 | 0.016807148943218927 | 1.5497294746999999 |  0.0211686298572404 |        0.3521036861 | 0.010123212916930498 | 119999 |
-| 130000 | 2 | 10 | 130000 | 260000 | 2 | 130000 | 130000 | 233351 |  4.711098789299999 |  0.07164931362575287 |       1.8374207242 | 0.015974690038318053 |       2.5580884159 |  0.07464571058990088 | 0.45663371779999995 |  0.06532202237008912 |       1.8270874564 | 0.05325031657468783 |        0.3873578492 |  0.00808873090733974 | 130000 |
-| 140000 | 2 | 10 | 140000 | 280000 | 2 | 140000 | 140000 | 255450 |  5.126386760700001 |  0.07043815136254557 |       1.9956747868 | 0.018427064561353488 |       2.7867161994 |    0.073077457235916 | 0.49504377580000003 |   0.0638811650849501 |       1.9893636328 | 0.06274443335469422 |  0.4376762827999999 |   0.0092923256658709 | 140000 |
-| 150000 | 2 | 10 | 150000 | 300000 | 2 | 149999 | 149999 | 268773 |  5.552826151500001 |  0.06095217378481222 |       2.1609233121 | 0.026029046999351532 |       3.0173265741 |  0.05415723778561011 |        0.5094614781 | 0.007915398330318239 | 2.1829203786999996 |  0.0632789354781126 | 0.48105161770000004 | 0.004698776514825223 | 149999 |
-| 160000 | 2 | 10 | 160000 | 320000 | 2 | 160000 | 160000 | 287497 | 6.0156567696000005 |   0.1014958200025798 |       2.3278508021 | 0.030676236665497392 |       3.2862890981 |  0.08842134639178673 |        0.5667389131 | 0.061818697661962456 |       2.3874675003 | 0.06963184602365943 |         0.530804924 | 0.008374295955608495 | 160000 |
-| 170000 | 2 | 10 | 170000 | 340000 | 2 | 170000 | 170000 | 305026 | 6.4638692547000005 |  0.06069976545804155 |       2.4802088854 |  0.01090849282529911 |       3.5534037927 |  0.05792099698647397 |  0.5959597545000002 | 0.008029045672763618 |       2.5980215775 | 0.05470590971316728 |        0.5807772137 | 0.008923135110179324 | 170000 |
-| 180000 | 2 | 10 | 180000 | 360000 | 2 | 180000 | 180000 | 318552 |       7.0769255199 |  0.06648812882039208 |       2.6026580344 | 0.021088489126152892 | 3.8877335147000003 |  0.13692635138399228 |  0.8762553760999999 | 0.019006836766069967 |       2.8003821182 | 0.06175237500886775 |        0.6318085971 | 0.008747586811742026 | 180000 |
-| 190000 | 2 | 10 | 190000 | 380000 | 2 | 190000 | 190000 | 336100 |  7.471944982100001 |   0.1193043264263505 |       2.7358027763 | 0.030596172663756225 |  4.172442589299999 |  0.14609929644360664 |        0.9283796991 | 0.021647195894253953 | 2.9708602129999995 | 0.09071021481473823 |        0.6796285844 | 0.014169458167688257 | 190000 |
-
-*** Plot
-
-#+CALL: plot(results2, "results2.png")
-
-#+RESULTS:
-[[file:results2.png]]
-
-** For m = 2 and 10% finality
-*** Generating some benchmarks
-
-#+begin_src sh :results output silent
-for n in 100000 110000 120000 130000 140000 150000 160000 170000 180000 190000; do
-    python bench.py generate --final 10 ../../copar/bin/random-dfa $n 2
-done
-#+end_src
-
-*** And running them
-
-#+begin_src sh :hlines yes :colnames '("N" "M" "i" "States" "Edges" "I" "Q" "Qs1" "Opts" "t (s)" "sdt" "tp (s)" "sdtp" "ta (s)" "sdta"  "ti (s)" "sdti"  "tr (s)" "sdtr"  "tv (s)" "sdtv"  "Qv")
-for n in 100000 110000 120000 130000 140000 150000 160000 170000 180000 190000; do
-    python bench.py run ../../copar/bin/copar ../../valmari_cpp/mdpmin $n 2 --stddev --final 10
-done
-#+end_src
-
-#+NAME: results2f
-#+RESULTS:
-|      N | M |  i | States |  Edges | I |      Q |    Qs1 |   Opts |              t (s) |                  sdt |             tp (s) |                 sdtp |             ta (s) |                 sdta |              ti (s) |                 sdti |             tr (s) |                 sdtr |              tv (s) |                  sdtv |     Qv |
-|--------+---+----+--------+--------+---+--------+--------+--------+--------------------+----------------------+--------------------+----------------------+--------------------+----------------------+---------------------+----------------------+--------------------+----------------------+---------------------+-----------------------+--------|
-| 100000 | 2 | 10 | 100000 | 200000 | 2 | 100000 | 100000 | 160352 |       3.0936953513 | 0.015467818313428423 |       1.4124696133 | 0.005943672222068957 | 1.4574320088000001 | 0.017000822749439697 | 0.42203191440000004 | 0.004520660260577265 | 0.9797939001000001 | 0.018105061634433976 |        0.2695312297 | 0.0069361300204224706 | 100000 |
-| 110000 | 2 | 10 | 110000 | 220000 | 2 | 109999 | 109999 | 176657 |       3.5784416617 |  0.01508095774483378 |       1.5098241521 | 0.004227983506536663 |       1.6316288086 | 0.012239722621501683 |        0.4385282887 | 0.006495824492836184 |       1.1376198136 | 0.014767401631046848 | 0.31170653470000004 |  0.006848544046025738 | 109999 |
-| 120000 | 2 | 10 | 120000 | 240000 | 2 | 119999 | 119999 | 191218 | 3.9010189149000007 | 0.021209169527059025 |       1.7667944406 | 0.008668441762979982 |       1.8386231196 |  0.02984760040605402 |        0.5990321109 | 0.014804404733360246 |       1.1508279068 | 0.021326970463733233 |        0.3524312471 |  0.004316307776005543 | 119999 |
-| 130000 | 2 | 10 | 130000 | 260000 | 2 | 130000 | 130000 | 208170 |       4.2108411467 | 0.030429870784823763 | 1.8758927709999997 | 0.014720813295526257 |       2.0216873166 |  0.02944166619615172 |  0.5635494682000001 | 0.006692369051929955 | 1.3816380033999998 | 0.029729760194715515 |        0.3983277031 | 0.0024183986266932186 | 130000 |
-| 140000 | 2 | 10 | 140000 | 280000 | 2 | 139999 | 139999 | 225471 |       4.6525796292 |  0.08226665976530252 |       2.0223978788 |  0.02782859024824926 |       2.2457517173 |  0.06419042143691525 | 0.43292923410000006 |  0.07437008468651318 | 1.5179340291999999 | 0.028571780925593183 |        0.4464015892 |  0.008337702174814625 | 139999 |
-| 150000 | 2 | 10 | 150000 | 300000 | 2 | 150000 | 150000 | 240331 |       4.9966277785 |  0.05561432863860171 | 2.1685035476999994 | 0.011273739740092388 |       2.4161792503 |  0.05218254165871221 |        0.4491742889 |  0.04435758243758258 | 1.6487869333999998 |  0.03158639366001329 |        0.4903136348 | 0.0035377975274226065 | 150000 |
-| 160000 | 2 | 10 | 160000 | 320000 | 2 | 159999 | 159999 | 256952 |  5.355174741499999 |  0.01181544267095224 | 2.3217772239000003 | 0.009423441961012942 |       2.5912845906 | 0.009615174702699738 |  0.4742331759000001 |  0.00567499301007789 |        1.774249567 |  0.00497004110981295 |        0.5373223992 |  0.006688940145895668 | 159999 |
-| 170000 | 2 | 10 | 170000 | 340000 | 2 | 169999 | 169999 | 273299 |  5.757032531199999 |  0.02661150144562761 | 2.4794814604999997 | 0.012372017151358293 |       2.8041343125 | 0.015352615509927985 |        0.5093437867 | 0.005037497584885556 | 1.9293367177999996 | 0.009725668899383278 |          0.58678976 |  0.006087850747350132 | 169999 |
-| 180000 | 2 | 10 | 180000 | 360000 | 2 | 180000 | 180000 | 289908 |       6.1609400376 |  0.03188833978682093 | 2.6309119938999994 |  0.00791867193670523 | 3.0293672266000002 | 0.035760581136465915 |        0.5431468218 | 0.006141095107119764 | 2.0932277568999997 |   0.0332985663387355 |  0.6429327362999999 |  0.007674756785721323 | 180000 |
-| 190000 | 2 | 10 | 190000 | 380000 | 2 | 190000 | 190000 | 307527 |        6.778789601 |  0.06991943979616976 | 2.7624881334999998 | 0.010831227316887074 | 3.3906752104999995 |   0.1397668131349721 |        0.8261375824 |  0.00893049817644368 |       2.2897163365 | 0.043731496282112814 |  0.6881156208999999 |  0.012255461536873485 | 190000 |
-
-*** And plotting them
-
-#+CALL: plot(results2f, "results2f.png")
-
-#+RESULTS:
-[[file:results2f.png]]
-
-** For m = 2 and 0% finality
-*** Generating some benchmarks
-
-#+begin_src sh :results output silent
-for n in 100000 110000 120000 130000 140000 150000 160000 170000 180000 190000; do
-    python bench.py generate --final 0 ../../copar/bin/random-dfa $n 2
-done
-#+end_src
-
-*** And running them
-
-#+begin_src sh :hlines yes :colnames '("N" "M" "i" "States" "Edges" "I" "Q" "Qs1" "Opts" "t (s)" "sdt" "tp (s)" "sdtp" "ta (s)" "sdta"  "ti (s)" "sdti"  "tr (s)" "sdtr"  "tv (s)" "sdtv"  "Qv")
-for n in 100000 110000 120000 130000 140000 150000 160000 170000 180000 190000; do
-    python bench.py run ../../copar/bin/copar ../../valmari_cpp/mdpmin $n 2 --stddev --final 0
-done
-#+end_src
-
-#+RESULTS:
-|      N | M |  i | States |  Edges | I | Q | Qs1 | Opts |              t (s) |                  sdt |             tp (s) |                 sdtp |             ta (s) |                  sdta |              ti (s) |                  sdti |                 tr (s) |                   sdtr |              tv (s) |                  sdtv | Qv |
-|--------+---+----+--------+--------+---+---+-----+------+--------------------+----------------------+--------------------+----------------------+--------------------+-----------------------+---------------------+-----------------------+------------------------+------------------------+---------------------+-----------------------+----|
-| 100000 | 2 | 10 | 100000 | 200000 | 1 | 1 |   1 |    0 |       1.9286943634 |  0.00878107688302739 |       1.3837160297 | 0.008180649292894082 |       0.4171904952 |  0.003120493919147368 |        0.3641316149 | 0.0032160904550749985 | 1.0225800000000001e-05 | 2.1150455734517354e-07 |        0.1024724376 |  0.006073081115665208 |  1 |
-| 110000 | 2 | 10 | 110000 | 220000 | 1 | 1 |   1 |    0 | 2.2182804934999996 |  0.01412802800557772 |       1.4834582776 |  0.00738948570673236 |       0.4289651487 | 0.0055944857852055704 |        0.3764284657 |  0.005279970052798764 |            1.19171e-05 | 3.2553220851058316e-06 | 0.11168206160000001 | 0.0021092801129365952 |  1 |
-| 120000 | 2 | 10 | 120000 | 240000 | 1 | 1 |   1 |    0 |       2.4764642443 | 0.012935219317291618 |       1.7297758319 | 0.006418203929536284 |       0.5863125886 |  0.009762956606817539 |        0.5235213498 |   0.01025042704825142 | 1.0723899999999999e-05 | 2.6905367081267974e-07 |        0.1266497688 |   0.00756630532110257 |  1 |
-| 130000 | 2 | 10 | 130000 | 260000 | 1 | 1 |   1 |    0 |       2.5684661536 | 0.006060926053458022 |       1.8325813717 | 0.004199590188170929 |       0.5551686706 | 0.0026852027358281088 |        0.4815377142 | 0.0030480000798772133 | 1.0317600000000001e-05 | 3.9572190010438157e-07 |        0.1354930515 |  0.003756031590903835 |  1 |
-| 140000 | 2 | 10 | 140000 | 280000 | 1 | 1 |   1 |    0 | 2.8226806149000003 |  0.04107118493117886 |       1.9613554895 |  0.00623230387960241 | 0.6217279724999999 |   0.03774254529931291 | 0.33219782079999993 |   0.05402562365110335 |            1.21055e-05 | 3.7677216590401157e-06 |        0.1476372001 | 0.0057871447980288974 |  1 |
-| 150000 | 2 | 10 | 150000 | 300000 | 1 | 1 |   1 |    0 |       3.0114131203 |  0.02544552047477694 | 2.1203642880999998 | 0.008153746807082824 |       0.6600289866 |  0.006795559380887498 |         0.347185776 |  0.006751335332853107 | 1.1084300000000002e-05 | 2.0330387245587713e-06 |        0.1582478537 |  0.004157373435323506 |  1 |
-| 160000 | 2 | 10 | 160000 | 320000 | 1 | 1 |   1 |    0 | 3.2158140727999998 | 0.015839540316263775 | 2.2723906333999997 | 0.006996337136486422 | 0.7061300778999999 |  0.003739872502854762 |         0.373723791 |  0.004235039390227649 |            1.15646e-05 | 3.6649735848676696e-06 | 0.16917011399999998 | 0.0026638888864231733 |  1 |
-| 170000 | 2 | 10 | 170000 | 340000 | 1 | 1 |   1 |    0 | 3.4702468513999998 |   0.0509720428289049 |       2.4451624861 | 0.029551826817010306 | 0.7609187292999999 |  0.013753158673689668 |         0.404949446 |  0.004671610869945024 |            1.05429e-05 |  2.703024848819066e-07 |        0.1830823594 |  0.006077950328655399 |  1 |
-| 180000 | 2 | 10 | 180000 | 360000 | 1 | 1 |   1 |    0 |        3.650301588 | 0.014122237424641738 |       2.5787219889 | 0.011997897515023564 | 0.8084984614999999 |   0.00382175626616949 |        0.4325368038 |  0.001311000193778083 |            1.02732e-05 |  4.443144031976556e-07 | 0.19291228479999997 |   0.00398230081639267 |  1 |
-| 190000 | 2 | 10 | 190000 | 380000 | 1 | 1 |   1 |    0 |       4.0598550992 |  0.03655234344413544 | 2.7205397726999996 | 0.015378199595674087 |       0.9662325937 |   0.10889493389502679 |        0.7044185453 |  0.008811645674713221 | 1.0971300000000001e-05 |  3.923952230992513e-07 | 0.20248723759999998 | 0.0030261990594331093 |  1 |
-
-** For m = 1000:
-
-#+BEGIN_SRC sh :results output silent
-for n in 1000 1100 1200 1300 1400 1500 1600 1700 1800 1900 2000 2000 2100 2200 2300 2400 2500 2600 2700 2800 2900 3000; do
-    python bench.py generate ../../copar/bin/random-dfa $n 1000
-done
-#+END_SRC
-
-#+begin_src sh :hlines yes :colnames '("N" "M" "i" "States" "Edges" "I" "Q" "Qs1" "Opts" "t (s)" "sdt" "tp (s)" "sdtp" "ta (s)" "sdta"  "ti (s)" "sdti"  "tr (s)" "sdtr"  "tv (s)" "sdtv"  "Qv")
-for n in 1000 1100 1200 1300 1400 1500 1600 1700 1800 1900 2000; do
-    python bench.py run ../../copar/bin/copar ../../valmari_cpp/mdpmin $n 1000 --stddev --nofunctrans
-done
-#+end_src
-
-#+RESULTS:
-|    N |    M |  i | States |   Edges | I |    Q |  Qs1 |    Opts |             t (s) |                  sdt |             tp (s) |                 sdtp |             ta (s) |                 sdta |       ti (s) |                  sdti |              tr (s) |                  sdtr |             tv (s) |                 sdtv |   Qv |
-|------+------+----+--------+---------+---+------+------+---------+-------------------+----------------------+--------------------+----------------------+--------------------+----------------------+--------------+-----------------------+---------------------+-----------------------+--------------------+----------------------+------|
-| 1000 | 1000 | 10 |   1000 | 1000000 | 2 | 1000 | 1000 |  997998 |      3.9533156947 | 0.011002913439092422 |       3.1950151519 | 0.012356134887847729 |       0.7512120445 | 0.011239427555034565 | 0.3620109859 |  0.006701712453569692 |        0.3155020266 |  0.006691475865527507 | 1.0712054533999997 |  0.01653342562226392 | 1000 |
-| 1100 | 1000 | 10 |   1100 | 1100000 | 2 | 1100 | 1100 | 1097961 |      4.3701553551 | 0.015494278323821673 |       3.5279982033 | 0.009613643482103808 |       0.8343428652 | 0.011940829640151796 | 0.3988682328 |  0.006982419022379785 |        0.3525587549 |  0.006717777060771679 | 1.2101320207000001 |  0.02285978749012452 | 1100 |
-| 1200 | 1000 | 10 |   1200 | 1200000 | 2 | 1200 | 1200 | 1198002 |      4.7980000412 | 0.025899568868215973 | 3.8535088401000004 | 0.023463041540423543 |       0.9359110436 | 0.009696634861305436 | 0.4516177406 |   0.00894257321455952 |        0.3941434675 | 0.0032382300431677185 |       1.3848342052 |  0.03178452275534523 | 1200 |
-| 1300 | 1000 | 10 |   1300 | 1300000 | 2 | 1300 | 1300 | 1297980 | 5.174526376099999 | 0.015473966022638494 |       4.1554920699 | 0.010599095389132018 | 1.0095937982999998 | 0.011678465689753345 | 0.4864740198 |  0.006749029917787903 | 0.42563662580000006 |  0.007148089005487441 |       1.5224950211 | 0.019849208114581882 | 1300 |
-| 1400 | 1000 | 10 |   1400 | 1400000 | 2 | 1400 | 1400 | 1397912 |      5.5841241614 | 0.017194308572012134 |         4.48448128 | 0.012257064605230078 |        1.089672036 | 0.012331696297551112 | 0.5215628853 |  0.004909497714163821 |        0.4615644913 |  0.010132308836309516 |       1.6689043449 | 0.016312588975287756 | 1400 |
-| 1500 | 1000 | 10 |   1500 | 1500000 | 2 | 1500 | 1500 | 1497965 |      5.9623769231 | 0.046782942319537155 |       4.7854645485 | 0.028274372855761787 |       1.1664068236 | 0.020009936157051142 |  0.544806253 |   0.01972441506278639 |  0.5086029899000001 |  0.004057096938679593 | 1.8024757562000002 | 0.025080828008935546 | 1500 |
-| 1600 | 1000 | 10 |   1600 | 1600000 | 2 | 1600 | 1600 | 1597977 |      6.3001005989 | 0.021079788043247123 |       5.0446699955 | 0.011706946966419577 | 1.2439826050999998 | 0.012902023532078491 | 0.5636539833 |  0.010026688550342238 |        0.4158968506 |  0.009316903495588802 | 1.9512469113000002 | 0.015498110040682259 | 1600 |
-| 1700 | 1000 | 10 |   1700 | 1700000 | 2 | 1700 | 1700 | 1697999 |      6.8181373291 |  0.04768740025244082 |       5.3489446795 | 0.050821897845646204 | 1.4569464741999998 | 0.011898390779945658 | 0.6821315177 | 0.0066429662291499015 |        0.4497148234 |   0.01179709122261191 | 2.1008681020999997 | 0.017493430063319576 | 1700 |
-| 1800 | 1000 | 10 |   1800 | 1800000 | 2 | 1800 | 1800 | 1797969 |      7.2023435628 |  0.06276683614308662 |  5.769271290400001 |  0.02040555043753859 |       1.4207522051 |  0.04471515856236278 | 0.7175096355 |  0.020056793607776843 |        0.5715630545 |  0.021527475799908602 |       2.2076871809 |  0.03296824675743875 | 1800 |
-| 1900 | 1000 | 10 |   1900 | 1900000 | 2 | 1900 | 1900 | 1898012 |      7.5665405717 |  0.06220257139169582 |  6.060004332899999 | 0.022453768686637596 | 1.4931699382999999 | 0.041532090749656074 | 0.7137491964 |  0.021448931504701424 |        0.6389280077 |  0.019773789498324538 |       2.4230123612 |  0.06387080178483137 | 1900 |
-| 2000 | 1000 | 10 |   2000 | 2000000 | 2 | 2000 | 2000 | 1997904 |      8.0639794634 |  0.08248153745537908 |       6.4399256459 |  0.07693042641425599 |        1.609800233 | 0.012785432616659714 | 0.7680619713 |  0.013815734340735344 |  0.6888247968999999 |   0.00989100877264004 | 2.5814963057999996 |  0.02307845851893694 | 2000 |
-
-#+begin_src sh :hlines yes :colnames '("N" "M" "i" "States" "Edges" "I" "Q" "Qs1" "Opts" "t (s)" "sdt" "tp (s)" "sdtp" "ta (s)" "sdta"  "ti (s)" "sdti"  "tr (s)" "sdtr"  "tv (s)" "sdtv"  "Qv")
-for n in 1000 1100 1200 1300 1400 1500 1600 1700 1800 1900 2000; do
-    python bench.py run ../../copar/bin/copar ../../valmari_cpp/mdpmin $n 1000 --stddev
-done
-#+end_src
-
-#+NAME: results1000
-#+RESULTS:
-|    N |    M |  i | States |   Edges | I |    Q |  Qs1 |    Opts |              t (s) |                   sdt |             tp (s) |                 sdtp |             ta (s) |                 sdta |              ti (s) |                  sdti |              tr (s) |                  sdtr |             tv (s) |                 sdtv |   Qv |
-|------+------+----+--------+---------+---+------+------+---------+--------------------+-----------------------+--------------------+----------------------+--------------------+----------------------+---------------------+-----------------------+---------------------+-----------------------+--------------------+----------------------+------|
-| 1000 | 1000 | 10 |   1000 | 1000000 | 2 | 1000 | 1000 |  997998 | 3.4170901261000006 | 0.0067332911363214626 |       2.4400518157 | 0.012751085512302314 | 0.9700435225999999 |  0.00970206397709066 | 0.41540584669999997 |   0.00506517945359832 |        0.4819094799 | 0.0066852566220028985 |       1.0732738749 | 0.032397918884447534 | 1000 |
-| 1100 | 1000 | 10 |   1100 | 1100000 | 2 | 1100 | 1100 | 1097961 | 3.7839400801999994 |   0.02054243005075528 |       2.6923810361 |  0.01430132872516138 |       1.0838880011 | 0.012209366463486233 | 0.45925104040000003 |  0.006389879793225777 |  0.5437107408000001 |  0.007094074865848301 |       1.2343653796 | 0.046358644222388744 | 1100 |
-| 1200 | 1000 | 10 |   1200 | 1200000 | 2 | 1200 | 1200 | 1198002 |       3.9745562989 |   0.02849241548298448 |        2.719424793 |  0.01675680154232307 |        1.246594623 | 0.015534617230713086 | 0.49883183249999996 |   0.00924928186737593 |        0.4107449004 |  0.009692795378012436 |       1.3924885328 | 0.045409804321302843 | 1200 |
-| 1300 | 1000 | 10 |   1300 | 1300000 | 2 | 1300 | 1300 | 1297980 | 4.4492492853000005 |  0.019011021239560805 |        2.935811995 |  0.01336577945727504 |       1.4779213829 |  0.08254178277905756 |  0.5365245862000001 |  0.007709042658200236 |        0.6079340167 |  0.008997140674001144 | 1.4928702701999998 | 0.022580296655694658 | 1300 |
-| 1400 | 1000 | 10 |   1400 | 1400000 | 2 | 1400 | 1400 | 1397912 |  4.753583547100002 |   0.01964103887049429 | 3.4506703865999997 | 0.017531483434986516 | 1.2932429607999998 | 0.015339050721789663 |        0.5846364146 |  0.010854382347369648 |        0.6054716699 |   0.01145623639581948 |       1.6770205635 |   0.0292648210010643 | 1400 |
-| 1500 | 1000 | 10 |   1500 | 1500000 | 2 | 1500 | 1500 | 1497965 |       5.2460979974 |   0.06296848781374169 |       3.6766706373 |  0.06038250665653121 | 1.5588874043999998 |  0.01104492509639117 |  1.0406573998000002 |  0.010493977730771424 | 0.40563505910000003 |  0.006857974236933447 | 1.8193636309000003 |  0.04728729571439115 | 1500 |
-| 1600 | 1000 | 10 |   1600 | 1600000 | 2 | 1600 | 1600 | 1597977 |       5.5934895831 |  0.020471690649198758 |       3.8378448388 |  0.01405062980592564 | 1.7442780326999998 | 0.016801329216519365 |  1.1766017755000002 |  0.010817165560994954 | 0.44630750559999993 |  0.010926126526067979 | 1.9773537042999998 | 0.021751180636291764 | 1600 |
-| 1700 | 1000 | 10 |   1700 | 1700000 | 2 | 1700 | 1700 | 1697999 |       5.8844434041 |  0.025355074221741828 |       4.0209844924 |  0.01936016953688846 | 1.8514450776000004 |  0.01098843935670959 |  1.1342198513999997 | 0.0066834373252539206 |        0.5865765241 |  0.010631404738858001 |       2.1336306657 |   0.0248035664484013 | 1700 |
-| 1800 | 1000 | 10 |   1800 | 1800000 | 2 | 1800 | 1800 | 1797969 |       6.0798966787 |   0.03714316285262671 |       4.1842880729 | 0.016958763574648844 |       1.8828436436 |  0.03186802850868568 |        0.7512876949 |  0.012112711545569563 |  0.6483303171999999 |  0.020828759639626687 | 2.2825130664999995 |  0.03591125038883075 | 1800 |
-| 1900 | 1000 | 10 |   1900 | 1900000 | 2 | 1900 | 1900 | 1898012 |  6.310596887999999 |   0.09207001119016445 |  4.323571235299999 |  0.04513265558681511 | 1.9738281792999999 | 0.051358992309827774 |        0.7882479636 |  0.017551971166439598 |        0.6708881243 |  0.021509786422262756 |       2.4061289706 | 0.049279654362565456 | 1900 |
-| 2000 | 1000 | 10 |   2000 | 2000000 | 2 | 2000 | 2000 | 1997904 |  6.793026988199999 |    0.0405905959258501 |  4.606611127900001 | 0.018356435490485965 |       2.1718201212 |  0.02686927001218402 |        0.8559822423 |  0.012914019713495746 |  0.7510526754999999 |   0.01756542404255711 | 2.6220723597999998 |  0.05447934428571054 | 2000 |
-
-
-#+CALL: plot(results1000, "results1000.png")
-
-#+RESULTS:
-[[file:results1000.png]]
-
-*** Quantifying the effect of the one-block optimization
-
-Let's test the timings with and without optimizations on one single DFA.
-
-**** With all optimizations
-:PROPERTIES:
-:ID:       c21020da-1d9c-4553-bffe-478b4e35aa90
-:END:
-
-#+begin_src sh :hlines yes :colnames '("N" "M" "i" "States" "Edges" "I" "Q" "Qs1" "Opts" "t (s)" "tp (s)" "ta (s)" "ti (s)" "tr (s)" "tv (s)" "Qv")
-python bench.py run ../../copar/bin/copar ../../valmari_cpp/mdpmin 1000 1000 --indiv --samples 1
-python bench.py run ../../copar/bin/copar ../../valmari_cpp/mdpmin 1000 1000 --indiv --samples 1
-python bench.py run ../../copar/bin/copar ../../valmari_cpp/mdpmin 1000 1000 --indiv --samples 1
-#+end_src
-
-#+RESULTS:
-|    N |    M | i | States |   Edges | I |    Q |  Qs1 |   Opts |       t (s) |      tp (s) |      ta (s) |      ti (s) |      tr (s) |      tv (s) |   Qv |
-|------+------+---+--------+---------+---+------+------+--------+-------------+-------------+-------------+-------------+-------------+-------------+------|
-| 1000 | 1000 | 0 |   1000 | 1000000 | 2 | 1000 | 1000 | 997998 | 3.380971816 | 2.406927892 | 0.967057876 | 0.421992475 |  0.47148897 | 1.011007518 | 1000 |
-| 1000 | 1000 | 0 |   1000 | 1000000 | 2 | 1000 | 1000 | 997998 | 3.371089411 | 2.388749696 | 0.975496846 | 0.415187236 | 0.489191121 | 1.040577816 | 1000 |
-| 1000 | 1000 | 0 |   1000 | 1000000 | 2 | 1000 | 1000 | 997998 | 3.389716249 | 2.409769645 | 0.973066032 | 0.408821936 | 0.493088452 |   1.0411288 | 1000 |
-
-**** Without any optimization
-:PROPERTIES:
-:ID:       849f9d1f-1106-4bee-8270-7b46a09f709a
-:END:
-
-#+begin_src sh :hlines yes :colnames '("N" "M" "i" "States" "Edges" "I" "Q" "Qs1" "Opts" "t (s)" "tp (s)" "ta (s)" "ti (s)" "tr (s)" "tv (s)" "Qv")
-python bench.py run ../../copar/bin/copar ../../valmari_cpp/mdpmin 1000 1000 --indiv --samples 1 --noopt --nofunctrans
-python bench.py run ../../copar/bin/copar ../../valmari_cpp/mdpmin 1000 1000 --indiv --samples 1 --noopt --nofunctrans
-python bench.py run ../../copar/bin/copar ../../valmari_cpp/mdpmin 1000 1000 --indiv --samples 1 --noopt --nofunctrans
-#+end_src
-
-#+RESULTS:
-|    N |    M | i | States |   Edges | I |    Q |  Qs1 | Opts |        t (s) |      tp (s) |       ta (s) |      ti (s) |       tr (s) |      tv (s) |   Qv |
-|------+------+---+--------+---------+---+------+------+------+--------------+-------------+--------------+-------------+--------------+-------------+------|
-| 1000 | 1000 | 0 |   1000 | 1000000 | 2 | 1000 | 1000 |    0 | 22.870625628 |  3.26410958 | 19.599263489 | 0.384769247 | 19.137524603 | 1.038918053 | 1000 |
-| 1000 | 1000 | 0 |   1000 | 1000000 | 2 | 1000 | 1000 |    0 | 22.738491632 | 3.160893761 | 19.570250212 | 0.364611475 | 19.130150657 | 1.033282541 | 1000 |
-| 1000 | 1000 | 0 |   1000 | 1000000 | 2 | 1000 | 1000 |    0 | 22.679763636 | 3.160448145 | 19.511865875 | 0.354412205 | 19.082196797 | 1.036891031 | 1000 |
-
-**** With just the functor rewrite
-:PROPERTIES:
-:ID:       d2559cc7-c179-48cf-aaab-c7f17a29ea1a
-:END:
-
-#+begin_src sh :hlines yes :colnames '("N" "M" "i" "States" "Edges" "I" "Q" "Qs1" "Opts" "t (s)" "tp (s)" "ta (s)" "ti (s)" "tr (s)" "tv (s)" "Qv")
-python bench.py run ../../copar/bin/copar ../../valmari_cpp/mdpmin 1000 1000 --indiv --samples 1 --noopt
-python bench.py run ../../copar/bin/copar ../../valmari_cpp/mdpmin 1000 1000 --indiv --samples 1 --noopt
-python bench.py run ../../copar/bin/copar ../../valmari_cpp/mdpmin 1000 1000 --indiv --samples 1 --noopt
-#+end_src
-
-#+RESULTS:
-|    N |    M | i | States |   Edges | I |    Q |  Qs1 | Opts |        t (s) |      tp (s) |       ta (s) |      ti (s) |       tr (s) |      tv (s) |   Qv |
-|------+------+---+--------+---------+---+------+------+------+--------------+-------------+--------------+-------------+--------------+-------------+------|
-| 1000 | 1000 | 0 |   1000 | 1000000 | 2 | 1000 | 1000 |    0 |   46.8651896 | 2.412941424 |  44.44513298 | 0.424391142 |  43.94959211 | 1.026554102 | 1000 |
-| 1000 | 1000 | 0 |   1000 | 1000000 | 2 | 1000 | 1000 |    0 | 46.922508866 | 2.421724742 | 44.493428228 |  0.42204586 | 43.997902631 | 1.045297534 | 1000 |
-| 1000 | 1000 | 0 |   1000 | 1000000 | 2 | 1000 | 1000 |    0 | 46.938332303 |  2.40965665 | 44.521220406 | 0.423164636 | 44.024494492 | 1.057795996 | 1000 |
-
-**** With just the 1-elem optimization
-:PROPERTIES:
-:ID:       d17f77cb-9a07-4c9f-8366-533e07075e6b
-:END:
-
-#+begin_src sh :hlines yes :colnames '("N" "M" "i" "States" "Edges" "I" "Q" "Qs1" "Opts" "t (s)" "tp (s)" "ta (s)" "ti (s)" "tr (s)" "tv (s)" "Qv")
-python bench.py run ../../copar/bin/copar ../../valmari_cpp/mdpmin 1000 1000 --indiv --samples 1 --nofunctrans
-python bench.py run ../../copar/bin/copar ../../valmari_cpp/mdpmin 1000 1000 --indiv --samples 1 --nofunctrans
-python bench.py run ../../copar/bin/copar ../../valmari_cpp/mdpmin 1000 1000 --indiv --samples 1 --nofunctrans
-#+end_src
-
-#+RESULTS:
-|    N |    M | i | States |   Edges | I |    Q |  Qs1 |   Opts |       t (s) |      tp (s) |      ta (s) |      ti (s) |      tr (s) |      tv (s) |   Qv |
-|------+------+---+--------+---------+---+------+------+--------+-------------+-------------+-------------+-------------+-------------+-------------+------|
-| 1000 | 1000 | 0 |   1000 | 1000000 | 2 | 1000 | 1000 | 997998 | 3.890574258 | 3.151214053 | 0.732321905 |  0.35274363 | 0.307295302 | 1.012714586 | 1000 |
-| 1000 | 1000 | 0 |   1000 | 1000000 | 2 | 1000 | 1000 | 997998 | 3.886333612 | 3.152135172 | 0.727229289 | 0.350018448 | 0.305030783 | 1.045386717 | 1000 |
-| 1000 | 1000 | 0 |   1000 | 1000000 | 2 | 1000 | 1000 | 997998 | 3.886510967 | 3.146301307 | 0.733262327 | 0.354048267 | 0.306785068 | 1.033495542 | 1000 |
-
-
-** For m = 10000
-
-  #+BEGIN_SRC sh :hlines yes :colnames '("N" "M" "States" "Edges" "I" "Q" "Qs1" "t (s)" "tp (s)" "ta (s)" "ti (s)" "tr (s)" "tv (s)" "Qv")
-  python bench.py run ../../copar/bin/copar ../../valmari_cpp/mdpmin 500  10000
-  python bench.py run ../../copar/bin/copar ../../valmari_cpp/mdpmin 600  10000
-  python bench.py run ../../copar/bin/copar ../../valmari_cpp/mdpmin 700  10000
-  python bench.py run ../../copar/bin/copar ../../valmari_cpp/mdpmin 800  10000
-  python bench.py run ../../copar/bin/copar ../../valmari_cpp/mdpmin 900  10000
-  python bench.py run ../../copar/bin/copar ../../valmari_cpp/mdpmin 1000 10000
-  #+END_SRC
-
-
-  #+NAME: results10000
-  #+RESULTS:
-  |    N |     M | States |    Edges | I |    Q | Qs1 |        t (s) |      tp (s) |     ta (s) |     ti (s) |     tr (s) |      tv (s) |  Qv |
-  |------+-------+--------+----------+---+------+------+--------------+--------------+-------------+-------------+-------------+--------------+------|
-  |  500 | 10000 |    500 |  5000000 | 2 |  500 |  500 | 42.104668963 | 37.582293662 | 4.493314329 | 1.518858584 | 2.386916363 |  6.366641481 |  500 |
-  |  600 | 10000 |    600 |  6000000 | 2 |  600 |  600 | 50.191903227 | 44.747513385 |  5.40920263 | 1.820207355 |  2.88154887 |  7.835340678 |  600 |
-  |  700 | 10000 |    700 |  7000000 | 2 |  700 |  700 | 59.318446986 | 50.925788701 | 8.350924719 |  4.28553676 | 3.176143156 |  9.419061177 |  700 |
-  |  800 | 10000 |    800 |  8000000 | 2 |  800 |  800 | 68.472073706 | 60.783380535 | 7.642012395 | 2.535035704 | 4.159210276 | 11.039647443 |  800 |
-  |  900 | 10000 |    900 |  9000000 | 2 |  900 |  900 | 76.874599881 | 68.344624307 | 8.477049112 | 2.759185939 | 4.596666911 | 12.712082944 |  900 |
-  | 1000 | 10000 |   1000 | 10000000 | 2 | 1000 | 1000 | 85.269853921 | 75.788964993 | 9.422514059 | 3.052157078 | 5.207201202 | 14.320693046 | 1000 |
-
-  #+BEGIN_SRC python :results file :exports results :var data=results10000
-
-  import matplotlib.pyplot as plt
-
-  '''Turn the table data into x and y data'''
-  x = [a[0] for a in data]
-  t = [a[7] for a in data]
-  tp = [a[8] for a in data]
-  tr = [a[9] for a in data]
-  tv = [a[10] for a in data]
-
-  ''' Plot the x and y data'''
-  a, = plt.plot(x, t, label="t", marker='v')
-  b, = plt.plot(x, tp, label="tp", marker='o')
-  c, = plt.plot(x, tr, label="tr", marker='x')
-  d, = plt.plot(x, tv, label="tv", marker='s')
-
-  ''' Set the x and y labels on the graph '''
-  plt.xlabel("Number of states")
-  plt.ylabel("Seconds")
-
-  ''' Create the legend '''
-  plt.legend(handles=[a,b,c,d],loc="upper left")
-
-  ''' Save the PNG file '''
-  filename = "results10000.png"
-  plt.savefig(filename)
-
-  ''' Return the PNG file path to OrgMode '''
-  return(filename)
-  #+END_SRC
-
-  #+RESULTS:
-  [[file:results10000.png]]
-
- 
-* Colophone
-
-#+begin_src elisp
-(require 'ob-shell)
-(require 'ob-python)
-#+end_src
-
-#+RESULTS:
-: ob-shell
-
diff --git a/dfa/results1.png b/dfa/results1.png
deleted file mode 100644
index 6bbcbe38a2bd9e0c5b0b2a3400ef4e9eb5a788e1..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 39560
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

diff --git a/dfa/results1000.png b/dfa/results1000.png
deleted file mode 100644
index fe3f84a7e9c378cab81335ea7c583dc86bd459bb..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 34262
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

diff --git a/dfa/results10000.png b/dfa/results10000.png
deleted file mode 100644
index e8c339f63393314724beba86501cd8e66de7a7f2..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 28671
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
X^W5_dJN24@fq}u()z4*}Q$iB}rAr-I

diff --git a/dfa/results2.png b/dfa/results2.png
deleted file mode 100644
index caf12c1a037683507788f6921fce50841d998965..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 39837
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
Vs$tW*0}Kod44$rjF6*2UngHmhh)e(g

diff --git a/dfa/results2f.png b/dfa/results2f.png
deleted file mode 100644
index dcf910186ff16bf53dc4e344e1d2188d74261d74..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 41000
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

diff --git a/optimizations/optimizations.org b/optimizations/optimizations.org
deleted file mode 100644
index 73c77e9..0000000
--- a/optimizations/optimizations.org
+++ /dev/null
@@ -1,123 +0,0 @@
-#+TITLE: Meassuring the Impact of Optimizations
-
-* The Data
-
-#+NAME: the-data
-| Benchmark     |     Time1 |     Time2 |     Time3 |      Mean |        Error |
-|---------------+-----------+-----------+-----------+-----------+--------------|
-| wlan both opt | 39.363733 | 39.464646 | 39.064738 | 39.297706 |   0.12007124 |
-| wlan no opt   | 62.803240 | 62.809634 | 62.884818 | 62.832564 |  0.026192118 |
-| wlan func     | 40.482061 | 40.554590 | 40.829683 | 40.622111 |   0.10587668 |
-| wlan 1elem    | 62.322413 | 62.416543 | 62.852129 | 62.530362 |   0.16316227 |
-|---------------+-----------+-----------+-----------+-----------+--------------|
-| fms both opt  | 21.111599 | 20.959398 | 20.955570 | 21.008856 |  0.051383551 |
-| fms no opt    | 35.451870 | 35.385039 | 35.830079 | 35.555663 |   0.13855786 |
-| fms func      | 35.379264 | 35.544466 | 35.531165 | 35.484965 |  0.052989795 |
-| fms 1elem     | 21.331782 | 21.307057 | 21.295322 | 21.311387 |  0.010745458 |
-|---------------+-----------+-----------+-----------+-----------+--------------|
-| dfa both opt  | 3.3809203 | 3.3856634 | 3.3604341 | 3.3756726 | 7.7412997e-3 |
-| dfa no opt    | 22.870626 | 22.738492 | 22.679764 | 22.762961 |  0.056439090 |
-| dfa func      | 46.865190 | 46.922509 | 46.938332 | 46.908677 |  0.022218095 |
-| dfa 1elem     | 3.8905743 | 3.8863336 | 3.8865110 | 3.8878063 | 1.3849471e-3 |
-#+TBLFM: $5=vmean($2..$4)::$6=vsdev($2..$4)/sqrt(3)::@2$2..@2$4=remote(d39b3290-297b-4063-8464-a011a048eff4, @$#$11)::@4$2..@4$4=remote(eb6cd726-026c-49ec-974a-1b6285d0fabb, @$#$11)::@6$2..@6$4=remote(cdef09e0-b92a-46db-9ed5-be0cde788441, @$#$11)::@8$2..@8$4=remote(966b0dc7-cf00-4594-88ae-80332696166e, @$#$11)::@10$2..@10$4=remote(c21020da-1d9c-4553-bffe-478b4e35aa90, @$#$10)::@12$2..@12$4=remote(d2559cc7-c179-48cf-aaab-c7f17a29ea1a, @$#$10)::@3$2..@3$4=remote(408056f6-53de-4920-ba53-9308bb2fbf15, @$#$11)::@5$2..@5$4=remote(74566779-0749-4bbd-9556-80f857144793, @$#$11)::@7$2..@7$4=remote(8850d72d-8f23-495e-b3af-a06deb25be53, @$#$11)::@9$2..@9$4=remote(7e19eb5e-4009-4bc1-89a3-4e4e5c7f643e, @$#$11)::@11$2..@11$4=remote(849f9d1f-1106-4bee-8270-7b46a09f709a, @$#$10)::@13$2..@13$4=remote(d17f77cb-9a07-4c9f-8366-533e07075e6b, @$#$10)
-
-* Individual Tables
-
-These are the input for pgfplots.
-
-All confidence intervals are the standard error times 10.
-
-** No Optimizations
-
-| Benchmark |      Time |         CI |
-|-----------+-----------+------------|
-| wlan      | 62.832564 | 0.26192118 |
-| fms       | 35.555663 |  1.3855786 |
-| dfa       | 22.762961 |  0.5643909 |
-#+TBLFM: @2$2=remote(the-data, @3$5)::@2$3=10*remote(the-data, @3$6)::@3$2=remote(the-data, @7$5)::@3$3=10*remote(the-data, @7$6)::@4$2=remote(the-data, @11$5)::@4$3=10*remote(the-data, @11$6)
-
-** Just Functor Rewrite
-
-| Benchmark |      Time |         CI |
-|-----------+-----------+------------|
-| wlan      | 40.622111 |  1.0587668 |
-| fms       | 35.484965 | 0.52989795 |
-| dfa       | 46.908677 | 0.22218095 |
-#+TBLFM: @2$2=remote(the-data, @4$5)::@2$3=10*remote(the-data, @4$6)::@3$2=remote(the-data, @8$5)::@3$3=10*remote(the-data, @8$6)::@4$2=remote(the-data, @12$5)::@4$3=10*remote(the-data, @12$6)
-
-** Just one-element blocks
-
-| Benchmark |      Time |          CI |
-|-----------+-----------+-------------|
-| wlan      | 62.530362 |   1.6316227 |
-| fms       | 21.311387 |  0.10745458 |
-| dfa       | 3.8878063 | 0.013849471 |
-#+TBLFM: @2$2=remote(the-data, @5$5)::@2$3=10*remote(the-data, @5$6)::@3$2=remote(the-data, @9$5)::@3$3=10*remote(the-data, @9$6)::@4$2=remote(the-data, @13$5)::@4$3=10*remote(the-data, @13$6)
-
-** Both optimizations
-
-| Benchmark |      Time |          CI |
-|-----------+-----------+-------------|
-| wlan      | 39.297706 |   1.2007124 |
-| fms       | 21.008856 |  0.51383551 |
-| dfa       | 3.3756726 | 0.077412997 |
-#+TBLFM: @2$2=remote(the-data, @2$5)::@2$3=10*remote(the-data, @2$6)::@3$2=remote(the-data, @6$5)::@3$3=10*remote(the-data, @6$6)::@4$2=remote(the-data, @10$5)::@4$3=10*remote(the-data, @10$6)
-
-* Old stuff                                                         :ARCHIVE:
-** The "skip one-element blocks" Optimization
-*** The Data
-
-#+NAME: one-elem-data
-| Benchmark  |     Time1 |     Time2 |     Time3 |      Mean |        Error |
-|------------+-----------+-----------+-----------+-----------+--------------|
-| wlan opt   | 39.976493 | 39.832630 | 39.784828 | 39.864650 |  0.057598739 |
-| wlan noopt | 40.482061 | 40.554590 | 40.829683 | 40.622111 |   0.10587668 |
-|------------+-----------+-----------+-----------+-----------+--------------|
-| fms  opt   | 21.126185 | 20.870302 | 20.996653 | 20.997713 |  0.073868962 |
-| fms  noopt | 35.581014 | 36.222743 | 36.020706 | 35.941488 |   0.18943837 |
-|------------+-----------+-----------+-----------+-----------+--------------|
-| dfa  opt   | 3.8669068 | 3.8483511 | 3.8465348 | 3.8539309 | 6.5091019e-3 |
-| dfa  noopt | 47.182955 | 47.271392 | 47.166293 |  47.20688 |  0.032612647 |
-#+TBLFM: $6=vsdev($2..$4)/sqrt(3)::@2$2..@2$4=remote(d39b3290-297b-4063-8464-a011a048eff4, @$#$11)::@3$2..@3$4=remote(eb6cd726-026c-49ec-974a-1b6285d0fabb, @$#$11)::@4$2..@4$4=remote(cdef09e0-b92a-46db-9ed5-be0cde788441, @$#$11)::@5$2..@5$4=remote(966b0dc7-cf00-4594-88ae-80332696166e, @$#$11)::@6$2..@6$4=remote(c21020da-1d9c-4553-bffe-478b4e35aa90, @$#$10)::@7$2..@7$4=remote(d2559cc7-c179-48cf-aaab-c7f17a29ea1a, @$#$10)
-
-*** Making the data easier for pgfplot
-**** Opt
-
-| Benchmark |      Time |          CI |
-|-----------+-----------+-------------|
-| wlan      |  39.86465 |  0.57598739 |
-| fms       | 20.997713 |  0.73868962 |
-| dfa       | 3.8539309 | 0.065091019 |
-#+TBLFM: @2$2=remote(one-elem-data, @2$5)::@2$3=10*remote(one-elem-data, @2$6)::@3$2=remote(one-elem-data, @4$5)::@3$3=10*remote(one-elem-data, @4$6)::@4$2=remote(one-elem-data, @6$5)::@4$3=10*remote(one-elem-data, @6$6)
-
-**** Noopt
-
-| Benchmark |      Time |         CI |
-|-----------+-----------+------------|
-| wlan      | 40.622111 |  1.0587668 |
-| fms       | 35.941488 |  1.8943837 |
-| dfa       |  47.20688 | 0.32612647 |
-#+TBLFM: @2$2=remote(one-elem-data, @3$5)::@2$3=10*remote(one-elem-data, @3$6)::@3$2=remote(one-elem-data, @5$5)::@3$3=10*remote(one-elem-data, @5$6)::@4$2=remote(one-elem-data, @7$5)::@4$3=10*remote(one-elem-data, @7$6)
-
-** Functor expression rewriting
-*** The Data
-
-#+NAME: func-rewrite-data
-| Benchmark  |     Time1 |     Time2 |     Time3 |      Mean |        Error |
-|------------+-----------+-----------+-----------+-----------+--------------|
-| wlan noopt | 62.322413 | 62.416543 | 62.852129 | 62.530362 |   0.16316227 |
-|------------+-----------+-----------+-----------+-----------+--------------|
-| fms noopt  | 21.331782 | 21.307057 | 21.295322 | 21.311387 |  0.010745458 |
-|------------+-----------+-----------+-----------+-----------+--------------|
-| dfa noopt  | 3.6995118 | 3.6943322 | 3.6743715 | 3.6894052 | 7.6641028e-3 |
-#+TBLFM: $5=vmean($2..$4)::$6=vsdev($2..$4)/sqrt(3)::@2$2..@2$4=remote(74566779-0749-4bbd-9556-80f857144793, @$#$11)::@3$2..@3$4=remote(7e19eb5e-4009-4bc1-89a3-4e4e5c7f643e, @$#$11)::@4$2..@4$4=remote(d17f77cb-9a07-4c9f-8366-533e07075e6b, @$#$10)
-
-*** Making the data easier for pgfplot
-*** Noopt
-
-| Benchmark |      Time |          CI |
-|-----------+-----------+-------------|
-| wlan      | 62.530362 |   1.6316227 |
-| fms       | 21.311387 |  0.10745458 |
-| dfa       | 3.6894052 | 0.076641028 |
-#+TBLFM: $2=remote(func-rewrite-data, @@#$5)::$3=10*remote(func-rewrite-data, @@#$6)
diff --git a/prism/bench.py b/prism/bench.py
deleted file mode 100755
index e903a49..0000000
--- a/prism/bench.py
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/usr/bin/python
-
-import subprocess
-import os
-import sys
-import re
-
-
-def extract_time(perf_output):
-    "returns the measured time from the perf output in seconds"
-    m = re.search(r'(\d+.\d+)\W+seconds time elapsed', str(perf_output))
-    return m[1]
-
-
-def run_copar(copar, input_file):
-    process = subprocess.run(
-        ['perf', 'stat', copar],
-        stdin=input_file,
-        stdout=subprocess.DEVNULL,
-        stderr=subprocess.PIPE,
-        env={'LC_ALL': 'C'})
-
-    try:
-        process.check_returncode()
-    except subprocess.CalledProcessError as e:
-        err = os.fdopen(sys.stderr.fileno(), 'wb')
-        err.write(process.stderr)
-        err.flush()
-        raise e
-
-    return extract_time(process.stderr)
-
-
-def run_bench(copar, name, filename):
-    with open(filename) as model_file:
-        time = run_copar(copar, model_file)
-
-        print("%s" % time)
-
-
-def main(args):
-    if len(args) != 4:
-        print("Usage: %s EXECUTABLE MODEL_NAME MODEL_FILE" % args[0])
-        sys.exit(1)
-
-    copar_binary = args[1]
-    model_name = args[2]
-    model_file = args[3]
-
-    run_bench(copar_binary, model_name, model_file)
-
-
-if __name__ == "__main__":
-    main(sys.argv)
diff --git a/prism/benchmark.org b/prism/benchmark.org
deleted file mode 100644
index b625476..0000000
--- a/prism/benchmark.org
+++ /dev/null
@@ -1,1554 +0,0 @@
-#+TITLE: PRISM Benchmarks
-#+LATEX_HEADER: \usepackage[a4paper,margin=1in,landscape]{geometry}
-
-* Introduction
-
-  This uses the extensive bechmark-suite of [[https://www.prismmodelchecker.org/][PRISM]] to test correctness and
-  performance of our implementation. In the following, we exclusively use PRISM
-  version ~4.4~, available [[https://github.com/prismmodelchecker/prism/archive/v4.4.tar.gz][from github]].
-
-** PRISM
-
-   PRISM supports the following model types:
-
-   - mdp :: Markov Decision Process
-   - dtmc :: Discrete-time Markov chain
-   - ctmc :: Continuous-time Markov chain
-   - pta :: Extension to MDPs with real-time behaviour
-
-   We can translate those into category theoretic functors:
-
-   | Model type | Functor |
-   |------------+---------|
-   | mdp        | $P(DX)$ |
-   | ctmc       | $DX$    |
-   | dtmc       | $R^X$   |
-   | pta        | TODO    |
-
-   An initial partition $I$ can be represented by pairing the functor with $I$:
-   $I\times FX$.
-
-   PRISM has a directory called ~prism-examples~, from which we can extract
-   quite a few models for our benchmarks.
-
-** Models
-
-   From the examples shipped with PRISM, we can use the following models.
-   Columns in this tables are defined as follows:
-
-   - Name :: Descriptive name
-   - Model file :: PRISM model file, relative to the ~prism-examples~ directory.
-   - Model type :: Model type, as defined above
-   - Constants :: Constant that need to be defined in the model. These can be
-                  used to parameterise benchmarks.
-
-   #+NAME: models
-   | Name                   | Model file                                 | Model type | Constants                   |
-   |------------------------+--------------------------------------------+------------+-----------------------------|
-   | [[Bounded Retransmission Protocol][brp]]                    | brp/brp.pm                                 | dtmc       | N, MAX                      |
-   | [[Cell in Wireless Communication Network][cell]]                   | cell/cell.sm                               | ctmc       | N                           |
-   | [[Dependable Cluster][cluster]]                | cluster/cluster.sm                         | ctmc       | N, T                        |
-   | [[Shared coin protocol][coin]]                   | consensus/coinN.nm                         | mdp        | N, K, k                     |
-   | [[IEEE 802.3 CSMA/CD][csma]]                   | csma/csmaN_K.nm                            | mdp        | N, K, k                     |
-   | [[Dice][dice]]                   | dice/dice.pm                               | dtmc       |                             |
-   | [[Dice][two_dice_knuth]]         | dice/two_dice_knuth.pm                     | dtmc       |                             |
-   | [[Dice][two_dice]]               | dice/two_dice.nm                           | mdp        |                             |
-   | [[Dining cryptographers][dining_crypt]]           | dining_crypt/dining_cryptN.nm              | mdp        | N, k                        |
-   | [[Embedded Control System][embedded]]               | embedded/embedded.sm                       | ctmc       | MAX_COUNT, T                |
-   | [[Firewire][firewire_abst_firewire]] | firewire/abst/firewire.nm                  | mdp        | delay, fast                 |
-   | [[Firewire][firewire_abst_deadline]] | firewire/abst/deadline.nm                  | mdp        | deadline, delay, fast       |
-   | [[Firewire][firewire_impl_firewire]] | firewire/impl/firewire.nm                  | mdp        | delay, fast                 |
-   | [[Firewire][firewire_impl_deadline]] | firewire/impl/deadline.nm                  | mdp        | deadline, delay, fast       |
-   | [[Flexible Manufacturing System][fms]]                    | fms/fms.sm                                 | ctmc       | n                           |
-   | [[Kanban][kanban]]                 | kanban/kanban.sm                           | ctmc       | t                           |
-   | [[id:fcc30abf-3473-429b-ade2-0900e6825042][leader_sync]]            | leader/synchronous/leaderN_K.pm            | dtmc       | L                           |
-   | [[id:e6b7cd19-fdf8-4c34-8a16-5429102fe2b6][leader_async]]           | leader/asynchronous/leaderN.nm             | mdp        | N, K                        |
-   | [[id:2fc0e60e-721b-47b7-9606-dfb32118fe47][nacl]]                   | molecules/nacl.sm                          | ctmc       | N1, N2, T, i                |
-   | [[id:2fc0e60e-721b-47b7-9606-dfb32118fe47][knacl]]                  | molecules/knacl.sm                         | ctmc       | N1, N2, N3, T, i            |
-   | [[id:2fc0e60e-721b-47b7-9606-dfb32118fe47][mc]]                     | molecules/mc.sm                            | ctmc       | N1, N2, T, i                |
-   | [[id:e8ac9d4d-0ed9-4cc2-85ea-359a5261442c][mutual]]                 | mutual/mutualN.nm                          | mdp        | N                           |
-   | [[id:8f53a247-e80e-4b29-b0e9-34bd29aa91ff][peer2peer]]              | peer2peer/peer2peerN_K.sm                  | ctmc       | N, K, T                     |
-   | [[id:eb035abb-aa5a-4edd-a193-605fbfb386d5][phil_original]]          | phil/original/philN.nm                     | mdp        | N                           |
-   | [[id:2d736b3d-a5c8-4485-9065-0724cd79efcd][phil_nofair]]            | phil/nofair/phil-nofairN.nm                | mdp        | K                           |
-   | [[id:7e4f230d-5ee9-4d00-84bd-1b2a936e2fee][poll]]                   | polling/pollN.sm                           | ctmc       | T                           |
-   | [[id:754e893c-474b-4a3b-a870-7bb69d4c4a0b][rabin]]                  | rabin/rabinN.nm                            | mdp        | N                           |
-   | [[id:94785b23-df89-4daa-a615-ba97a16661a0][beauquier]]              | self-stabilisation/beauquier/beauquierN.nm | mdp        | N, K, k                     |
-   | [[id:ab8fc607-28eb-4618-9369-20353be3b7ec][herman]]                 | self-stabilisation/herman/hermanN.pm       | dtmc       | N, K, k                     |
-   | [[id:c6c91d7d-0c6e-41ff-8610-7f1cd020393d][israeli-jalfon]]         | self-stabilisation/israeli-jalfon/ijN.nm   | mdp        | N, K, k                     |
-   | [[id:f4d75ba1-5bd9-427f-846a-c233037887d8][tandem]]                 | tandem/tandem.sm                           | ctmc       | T, c                        |
-   | [[id:c808971a-8c52-41c3-8de0-42aebe332be5][wlan]]                   | wlan/wlanK.nm                              | mdp        | TRANS_TIME_MAX, k, K        |
-   | [[id:c808971a-8c52-41c3-8de0-42aebe332be5][wlan_collide]]           | wlan/wlanK_collide.nm                      | mdp        | COL, TRANS_TIME_MAX, k, K   |
-   | [[id:c808971a-8c52-41c3-8de0-42aebe332be5][wlan_time_bounded]]      | wlan/wlanK_time_bounded.nm                 | mdp        | TRANS_TIME_MAX, DEADLINE, K |
-   | [[id:e8a80143-4f49-4109-8f58-950514ada685][zeroconf]]               | zeroconf/zeroconf.nm                       | mdp        | N, K, err, reset            |
-   | [[id:e8a80143-4f49-4109-8f58-950514ada685][zeroconf_time_bounded]]  | zeroconf/zeroconf_time_bounded.nm          | mdp        | N, K, T, bound, reset       |
-
-   We have to import this table into python for later reference:
-
-   #+BEGIN_SRC python :session :var models_table=models :results value silent
-   import re
-   models = []
-   for t in models_table:
-       models.append({'name': re.sub(r"\[\[.*\]\[(.*)\]\]", r"\1", t[0]), 'path': t[1], 'type': t[2], 'constants': t[3]})
-   #+END_SRC
-
-** Tooling
-
-   We will use python to translate models and generate benchmark results.
-
-   #+BEGIN_SRC python :session :results output silent :eval never-export
-   import os
-   import subprocess
-   import json
-   import re
-   #+END_SRC
-
-   The following environment definitions probably need to be adapted for
-   different systems:
-
-   #+BEGIN_SRC python :session :results value silent :eval never-export
-   config = {'prism_cmd': '../../prism-4.4/prism/bin/prism',
-             'prism_examples':  '../../prism-4.4/prism-examples',
-             'copar_cmd':  '../../copar/bin/copar',
-             'prism_converter_cmd':  '../../copar/bin/prism-converter',
-             }
-   #+END_SRC
-
-   We need to define a few python functions and variables to use later:
-
-   #+BEGIN_SRC python :session :results output silent :eval never-export
-   def const_assignment_to_dict(const_assignment):
-       clist = const_assignment.strip().split(',')
-       if '' in clist:
-           clist.remove('')
-       d = {}
-       for assignment in clist:
-           x = assignment.split('=', 1)
-           d[x[0]] = x[1]
-       return d
-
-   def replace_consts_in_path(path, const_assignment):
-       "returns the unassigned constants"
-       const_dict = const_assignment_to_dict(const_assignment)
-       new_const_assignment = ""
-       for key, value in const_dict.items():
-           upkey = key.upper()
-           if upkey in path:
-               path = path.replace(upkey, value, 1)
-           else:
-               new_const_assignment += "%s=%s," % (key,value)
-       return (path, new_const_assignment.rstrip(','))
-
-   def const_base_path(path, const_assignments):
-       return "bench/%s_%s" % (path, const_assignments) \
-           if const_assignments else ("bench/%s" % path)
-
-   def export_model_impl(path, const_assignments):
-       path_with_consts = const_base_path(path, const_assignments)
-       tra_file = "%s.tra" % path_with_consts
-       sta_file = "%s.sta" % path_with_consts
-       if os.path.isfile(tra_file):
-           return
-       os.makedirs(os.path.dirname(tra_file), exist_ok=True)
-       model_path = "%s/%s" % (config['prism_examples'], path)
-       subprocess.run([config['prism_cmd'],
-                       '-exporttrans', tra_file,
-                       '-exportstates', sta_file,
-                       '-const', const_assignments,
-                       model_path])
-
-   def find_model(name):
-       for m in models:
-           if m['name'] == name:
-               return m
-       raise Exception("Model %s not found" % name)
-
-   def export_model(name, const_assignments):
-       m = find_model(name)
-       path, const_assignments = replace_consts_in_path(m['path'], const_assignments)
-       return export_model_impl(path, const_assignments)
-
-   def convert_model(name, const_assignments, initial_partition):
-       model = find_model(name)
-       path, const_assignments = replace_consts_in_path(model['path'], const_assignments)
-       path_with_consts = const_base_path(path, const_assignments)
-       tra_file = "%s.tra" % path_with_consts
-       sta_file = "%s.sta" % path_with_consts
-       coalgebra_file = path_with_consts + ".coalgebra"
-       if os.path.isfile(coalgebra_file):
-           return
-       if initial_partition:
-           subprocess.run([config['prism_converter_cmd'], '--model-type',
-                           model['type'], '--states-file', sta_file,
-                           "--partition-on-variables", initial_partition,
-                           tra_file, coalgebra_file])
-       else:
-           subprocess.run([config['prism_converter_cmd'], '--model-type',
-                           model['type'], '--states-file', sta_file,
-                           tra_file, coalgebra_file])
-
-   def partition_model(name, const_assignments, disableopts, nofunctrans):
-       model = find_model(name)
-       path, const_assignments = replace_consts_in_path(model['path'], const_assignments)
-       path_with_consts = const_base_path(path, const_assignments)
-       coalgebra_file = path_with_consts + ".coalgebra"
-       cmd = [config['copar_cmd'], 'refine', '--stats-json', coalgebra_file]
-       if disableopts:
-           cmd.append('--disable-optimizations')
-       if nofunctrans:
-           cmd.append('--no-functor-transforms')
-       out = subprocess.run(cmd, stdout=subprocess.DEVNULL, stderr=subprocess.PIPE)
-       print(out.stderr.decode('utf-8'))
-       return json.loads(out.stderr.decode('utf-8'))
-
-   def run_all(model, const_assignments, initial_partition, disableopts, nofunctrans):
-       export_model(model, const_assignments)
-       convert_model(model, const_assignments, initial_partition)
-       return partition_model(model, const_assignments, disableopts, nofunctrans)
-   #+END_SRC
-
-** Valmari's Implementation
-
-   We also compare the running time of our implementation against a direct
-   implementation of markov chain lumping that also supports MDPs. This is
-   expected to be a lot faster since it's written in hand optimized C++ and
-   specialized for its use case instead of being generic like ours.
-
-   First, we need to define where the executable for this implementation is:
-
-   #+BEGIN_SRC python :session :eval never-export :results output silent
-   config['valmari_cmd'] = '../../valmari_cpp/mdpmin'
-   #+END_SRC
-
-   And then some python to generate input files and run it.
-
-   #+BEGIN_SRC python :session :eval never-export :results output silent
-   def convert_model_valmari(name, const_assignments, initial_partition):
-       model = find_model(name)
-       path, const_assignments = replace_consts_in_path(model['path'], const_assignments)
-       path_with_consts = const_base_path(path, const_assignments)
-       tra_file = "%s.tra" % path_with_consts
-       sta_file = "%s.sta" % path_with_consts
-       output_file = path_with_consts + ".valmari"
-       if os.path.isfile(output_file):
-           return
-       if initial_partition:
-           subprocess.run([config['prism_converter_cmd'],
-                           '--model-type', model['type'],
-                           '--output-format', 'valmari',
-                           '--states-file', sta_file,
-                           "--partition-on-variables", initial_partition,
-                           tra_file, output_file])
-       else:
-           subprocess.run([config['prism_converter_cmd'],
-                           '--model-type', model['type'],
-                           '--output-format', 'valmari',
-                           '--states-file', sta_file,
-                           tra_file, output_file])
-
-   def run_valmari(name, const_assignments):
-       model = find_model(name)
-       path, const_assignments = replace_consts_in_path(model['path'], const_assignments)
-       path_with_consts = const_base_path(path, const_assignments)
-       valmari_file = open(path_with_consts + ".valmari")
-       perf = subprocess.Popen(['perf', 'stat', config['valmari_cmd']],
-                               stdin=valmari_file, stdout=subprocess.PIPE,
-                               stderr=subprocess.PIPE, env={'LC_ALL': 'C'})
-       sort1 = subprocess.run(['runhaskell', 'valmari-extract-sort1.hs', model['type']],
-                              stdin=perf.stdout, stdout=subprocess.PIPE)
-       (_, out) = perf.communicate()
-       m = re.search(r'(\d+.\d+)\W+seconds time elapsed', out.decode('utf-8'))
-       return (m[1], sort1.stdout.decode('utf-8').strip())
-
-   def run_all_valmari(name, const_assignments, initial_partition):
-       convert_model_valmari(name, const_assignments, initial_partition)
-       return run_valmari(name, const_assignments)
-   #+END_SRC
-
-** Running Benchmarks
-
-#+BEGIN_SRC python :session :eval never-export :results output silent :exports none
-def run_benchmark(model, const_assignments, initial_partition, disableopts, nofunctrans):
-    stats = run_all(model, const_assignments, initial_partition, disableopts, nofunctrans)
-    valmari = run_all_valmari(model, const_assignments, initial_partition)
-    return [model, const_assignments, initial_partition,
-            stats['states'],
-            stats['edges'],
-            stats['explicit-states'],
-            stats['initial-partition-size'],
-            stats['final-partition-size'],
-            stats['explicit-final-partition-size'],
-            stats['size1-skipped'],
-            stats['overall-duration'],
-            stats['parse-duration'],
-            stats['initialize-duration'],
-            stats['refine-duration'],
-            stats['algorithm-duration'],
-            valmari[0],
-            valmari[1]]
-#+END_SRC
-
-#+NAME: bench
-#+BEGIN_SRC python :session :eval no-export :var table="" :colnames no :hlines yes
-   [['Model', 'Consts', 'Partition', "States", "Edges", "Sort 0", "I", "Q", 'Q_0', 'Opts', 't(s)', 't_p(s)', 't_i(s)', 't_r(s)', 't_a(s)', 't_valmari(s)', 'Q_0v'], None] + \
-       list(map(lambda t: run_benchmark(t[0], t[1], t[2], False, False), table[2:]))
-#+END_SRC
-
-#+NAME: bench_noopt
-#+BEGIN_SRC python :session :eval no-export :var table="" :colnames no :hlines yes
-   [['Model', 'Consts', 'Partition', "States", "Edges", "Sort 0", "I", "Q", 'Q_0', 'Opts', 't(s)', 't_p(s)', 't_i(s)', 't_r(s)', 't_a(s)', 't_valmari(s)', 'Q_0v'], None] + \
-       list(map(lambda t: run_benchmark(t[0], t[1], t[2], True, False), table[2:]))
-#+END_SRC
-
-#+NAME: bench_nofunctrans
-#+BEGIN_SRC python :session :eval no-export :var table="" :colnames no :hlines yes
-   [['Model', 'Consts', 'Partition', "States", "Edges", "Sort 0", "I", "Q", 'Q_0', 'Opts', 't(s)', 't_p(s)', 't_i(s)', 't_r(s)', 't_a(s)', 't_valmari(s)', 'Q_0v'], None] + \
-       list(map(lambda t: run_benchmark(t[0], t[1], t[2], False, True), table[2:]))
-#+END_SRC
-
-#+NAME: bench_sloooow
-#+BEGIN_SRC python :session :eval no-export :var table="" :colnames no :hlines yes
-   [['Model', 'Consts', 'Partition', "States", "Edges", "Sort 0", "I", "Q", 'Q_0', 'Opts', 't(s)', 't_p(s)', 't_i(s)', 't_r(s)', 't_a(s)', 't_valmari(s)', 'Q_0v'], None] + \
-       list(map(lambda t: run_benchmark(t[0], t[1], t[2], True, True), table[2:]))
-#+END_SRC
-
-* Benchmarks
-** Bounded Retransmission Protocol
-
-   #+BEGIN_QUOTE
-   This case study is based on the bounded retransmission protocol (BRP) [HSV94], a variant of the alternating bit protocol.
-
-   Its parameters are:
-
-     N = number of chunks in a file
-     MAX = maximum number of retransmissions
-
-   For more information, see: http://www.prismmodelchecker.org/casestudies/brp.php
-   #+END_QUOTE
-
-   Benchmarks:
-
-   #+NAME: brp_benchmarks
-   | Model | Constants  | Partition |
-   |-------+------------+-----------|
-   | brp   | N=16,MAX=2 | s         |
-   | brp   | N=16,MAX=3 | s         |
-   | brp   | N=16,MAX=4 | s         |
-   | brp   | N=16,MAX=5 | s         |
-   | brp   | N=32,MAX=2 | s         |
-   | brp   | N=32,MAX=3 | s         |
-   | brp   | N=32,MAX=4 | s         |
-   | brp   | N=32,MAX=5 | s         |
-   | brp   | N=64,MAX=2 | s         |
-   | brp   | N=64,MAX=3 | s         |
-   | brp   | N=64,MAX=4 | s         |
-   | brp   | N=64,MAX=5 | s         |
-
-   Results:
-
-   #+CALL: bench(brp_benchmarks)
-
-   #+RESULTS:
-   | Model | Consts     | Partition | States | Edges | Sort 0 | I |    Q |  Q_0 | Opts |         t(s) |       t_p(s) |       t_i(s) |       t_r(s) |       t_a(s) | t_valmari(s) | Q_0v |
-   |-------+------------+-----------+--------+-------+--------+---+------+------+------+--------------+--------------+--------------+--------------+--------------+--------------+------|
-   | brp   | N=16,MAX=2 | s         |    677 |   867 |    677 | 7 |  329 |  329 |   52 | 0.0096711520 | 0.0055319890 | 0.0013735710 | 0.0018519030 | 0.0033773790 |  0.002082710 | NA   |
-   | brp   | N=16,MAX=3 | s         |    886 |  1155 |    886 | 7 |  442 |  442 |   88 | 0.0116424020 | 0.0063141920 | 0.0018566350 | 0.0022196060 | 0.0044309990 |  0.002534837 | NA   |
-   | brp   | N=16,MAX=4 | s         |   1095 |  1443 |   1095 | 7 |  555 |  555 |  120 | 0.0156490230 | 0.0087450750 | 0.0019053060 | 0.0034745740 | 0.0057855190 |  0.002608192 | NA   |
-   | brp   | N=16,MAX=5 | s         |   1304 |  1731 |   1304 | 7 |  668 |  668 |  152 | 0.0187181940 | 0.0099388020 | 0.0030763620 | 0.0035504570 | 0.0071181880 |  0.002846267 | NA   |
-   | brp   | N=32,MAX=2 | s         |   1349 |  1731 |   1349 | 7 |  649 |  649 |  100 | 0.0187313390 | 0.0102275120 | 0.0032966890 | 0.0031392650 | 0.0066961280 |  0.002826721 | NA   |
-   | brp   | N=32,MAX=3 | s         |   1766 |  2307 |   1766 | 7 |  874 |  874 |  167 | 0.0253537910 | 0.0125933750 | 0.0034613680 | 0.0057390080 | 0.0095412560 |  0.003196347 | NA   |
-   | brp   | N=32,MAX=4 | s         |   2183 |  2883 |   2183 | 7 | 1099 | 1099 |  233 | 0.0329036780 | 0.0169290770 | 0.0044749150 | 0.0082289000 | 0.0133349350 |  0.003782915 | NA   |
-   | brp   | N=32,MAX=5 | s         |   2600 |  3459 |   2600 | 7 | 1324 | 1324 |  295 | 0.0408756860 | 0.0207791250 | 0.0071231710 | 0.0096075050 | 0.0175274810 |  0.004091965 | NA   |
-   | brp   | N=64,MAX=2 | s         |   2693 |  3459 |   2693 | 7 | 1289 | 1289 |  196 | 0.0379403510 | 0.0196948050 | 0.0067873590 | 0.0079025110 | 0.0157109670 |  0.004156036 | NA   |
-   | brp   | N=64,MAX=3 | s         |   3526 |  4611 |   3526 | 7 | 1738 | 1738 |  328 | 0.0551088630 | 0.0282033910 | 0.0077104360 | 0.0135217460 | 0.0224298520 |  0.004877520 | NA   |
-   | brp   | N=64,MAX=4 | s         |   4359 |  5763 |   4359 | 7 | 2187 | 2187 |  456 | 0.0679899860 | 0.0338266070 | 0.0121471660 | 0.0163239430 | 0.0298915000 |  0.005788835 | NA   |
-   | brp   | N=64,MAX=5 | s         |   5192 |  6915 |   5192 | 7 | 2636 | 2636 |  583 | 0.0840906920 | 0.0399630440 | 0.0158103130 | 0.0209396970 | 0.0387673500 |  0.116052312 | NA   |
-
-** Cell in Wireless Communication Network
-
-   #+BEGIN_QUOTE
-   This case study is based on a single cell in a wireless communication network. It is taken from [HMPT00].
-
-   For more information, see: http://www.prismmodelchecker.org/casestudies/cell.php
-   #+END_QUOTE
-
-   Benchmarks:
-
-   There is only a single state variable ~s~. If we base our initial partition
-   on that, we distinguish all states immediately.
-
-   #+NAME: cell_benchmarks
-   | Model | Constants   | Partition |
-   |-------+-------------+-----------|
-   | cell  | N=50,T=0.5  |           |
-   | cell  | N=100,T=0.5 |           |
-   | cell  | N=200,T=0.5 |           |
-   | cell  | N=300,T=0.5 |           |
-   | cell  | N=400,T=0.5 |           |
-   | cell  | N=500,T=0.5 |           |
-
-   Results:
-
-   #+CALL: bench(cell_benchmarks)
-
-   #+RESULTS:
-   | Model | Consts      | Partition | States | Edges | Sort 0 |   I |   Q | Q_0 | Opts |         t(s) |       t_p(s) |       t_i(s) |       t_r(s) |       t_a(s) | t_valmari(s) | Q_0v |
-   |-------+-------------+-----------+--------+-------+--------+-----+-----+-----+------+--------------+--------------+--------------+--------------+--------------+--------------+------|
-   | cell  | N=50,T=0.5  |           |     51 |   100 |     51 |  50 |  51 |  51 |   98 | 0.0011218680 | 0.0009294180 | 0.0000494130 | 0.0000435180 | 0.0001277970 |  0.001563127 | NA   |
-   | cell  | N=100,T=0.5 |           |    101 |   200 |    101 |  80 | 101 | 101 |  178 | 0.0015188440 | 0.0010590700 | 0.0003003410 | 0.0000425270 | 0.0003747630 |  0.001673470 | NA   |
-   | cell  | N=200,T=0.5 |           |    201 |   400 |    201 | 160 | 201 | 201 |  358 | 0.0021876160 | 0.0016676340 | 0.0002400200 | 0.0000813670 | 0.0003676030 |  0.001733180 | NA   |
-   | cell  | N=300,T=0.5 |           |    301 |   600 |    301 | 251 | 301 | 301 |  549 | 0.0029263770 | 0.0021101180 | 0.0003710050 | 0.0000992930 | 0.0005347260 |  0.002071309 | NA   |
-   | cell  | N=400,T=0.5 |           |    401 |   800 |    401 | 351 | 401 | 401 |  749 | 0.0042151170 | 0.0030344660 | 0.0005944010 | 0.0001019410 | 0.0008068710 |  0.002196061 | NA   |
-   | cell  | N=500,T=0.5 |           |    501 |  1000 |    501 | 451 | 501 | 501 |  949 | 0.0043326070 | 0.0029545140 | 0.0007268790 | 0.0001279380 | 0.0009650510 |  0.002397520 | NA   |
-
-** Dependable Cluster
-
-   #+BEGIN_QUOTE
-   This case study is based on a dependable cluster of workstations, taken from [HHK00].
-
-   For more information, see: http://www.prismmodelchecker.org/casestudies/cluster.php
-   #+END_QUOTE
-
-   Benchmarks:
-
-   #+NAME: cluster_benchmarks
-   | Model   | Constants | Partition |
-   |---------+-----------+-----------|
-   | cluster | N=4,T=10  |           |
-   | cluster | N=8,T=10  |           |
-   | cluster | N=16,T=10 |           |
-   | cluster | N=32,T=10 |           |
-
-   Results:
-
-   #+CALL: bench(cluster_benchmarks)
-
-   #+RESULTS:
-   | Model   | Consts    | Partition | States |  Edges | Sort 0 |    I |     Q |   Q_0 |  Opts |         t(s) |       t_p(s) |       t_i(s) |       t_r(s) |       t_a(s) | t_valmari(s) | Q_0v |
-   |---------+-----------+-----------+--------+--------+--------+------+-------+-------+-------+--------------+--------------+--------------+--------------+--------------+--------------+------|
-   | cluster | N=4,T=10  |           |    820 |   3616 |    820 |  227 |   565 |   565 |  1058 | 0.0133275730 | 0.0077306660 | 0.0021054550 | 0.0023376670 | 0.0046840240 |  0.003796554 | NA   |
-   | cluster | N=8,T=10  |           |   2772 |  12832 |   2772 |  453 |  1917 |  1917 |  3867 | 0.0482514870 | 0.0252573650 | 0.0067393290 | 0.0122252760 | 0.0203239000 |  0.008798572 | NA   |
-   | cluster | N=16,T=10 |           |  10132 |  48160 |  10132 |  953 |  7021 |  7021 | 15796 | 0.2476780700 | 0.1366680710 | 0.0286580230 | 0.0623478880 | 0.0968610530 |  0.163654355 | NA   |
-   | cluster | N=32,T=10 |           |  38676 | 186400 |  38676 | 2062 | 26829 | 26829 | 66228 | 0.9490274650 | 0.4146188670 | 0.1122056580 | 0.3070002710 | 0.4420124300 |  0.157405829 | NA   |
-
-** Shared coin protocol
-
-   #+BEGIN_QUOTE
-   This case study is based on the shared coin protocol from the randomised consensus algorithm of Aspnes and Herlihy [AH90].
-   For more information, see: http://www.prismmodelchecker.org/casestudies/consensus_prism.php
-   #+END_QUOTE
-
-   We could only test up to coin4, as coin6 already uses all available RAM to
-   convert the model.
-
-   Benchmarks:
-
-   #+NAME: consensus_benchmarks
-   | Model | Constants    | Partition       |
-   |-------+--------------+-----------------|
-   | coin  | N=2,K=2,k=10 | pc1,pc2         |
-   | coin  | N=2,K=4,k=10 | pc1,pc2         |
-   | coin  | N=4,K=2,k=10 | pc1,pc2,pc3,pc4 |
-   | coin  | N=4,K=4,k=10 | pc1,pc2,pc3,pc4 |
-
-   Results:
-
-   #+CALL: bench(consensus_benchmarks)
-
-   #+RESULTS:
-   | Model | Consts       | Partition       | States |  Edges | Sort 0 |   I |     Q |   Q_0 | Opts |         t(s) |       t_p(s) |       t_i(s) |       t_r(s) |       t_a(s) | t_valmari(s) |  Q_0v |
-   |-------+--------------+-----------------+--------+--------+--------+-----+-------+-------+------+--------------+--------------+--------------+--------------+--------------+--------------+-------|
-   | coin  | N=2,K=2,k=10 | pc1,pc2         |    672 |    892 |    272 |  18 |   231 |    95 |    4 | 0.0087244350 | 0.0045174220 | 0.0013927310 | 0.0020353580 | 0.0035664660 |  0.001915857 |    95 |
-   | coin  | N=2,K=4,k=10 | pc1,pc2         |   1312 |   1756 |    528 |  18 |   439 |   183 |    4 | 0.0168299880 | 0.0088780660 | 0.0027004320 | 0.0039363490 | 0.0071328000 |  0.002738838 |   183 |
-   | coin  | N=4,K=2,k=10 | pc1,pc2,pc3,pc4 |  83200 | 135776 |  22656 | 260 | 18522 |  5392 |   48 | 1.9382094360 | 0.6608932970 | 0.5348946720 | 0.5962997930 | 1.1876570350 |  0.113754275 |  5392 |
-   | coin  | N=4,K=4,k=10 | pc1,pc2,pc3,pc4 | 158976 | 260192 |  43136 | 260 | 35482 | 10352 |   48 | 3.8120987810 | 1.2882729670 | 0.9272679960 | 1.3343738850 | 2.3771375450 |  0.200260367 | 10352 |
-
-** IEEE 802.3 CSMA/CD
-
-   #+BEGIN_QUOTE
-   This case study concerns the IEEE 802.3 CSMA/CD (Carrier Sense, Multiple Access with Collision Detection) protocol
-
-   model files csmaN_K.nm
-   property file: csma.pctl
-
-   where N is the number of stations and K is the maximum backoff
-
-   For more information on the probabilistic timed automata see: http://www.prismmodelchecker.org/casestudies/csma.php
-
-   The PRISM model uses the integer semantics given in [KNPS06].
-   #+END_QUOTE
-
-   Benchmarks:
-
-   We partition on the state of the bus ~b~.
-
-   #+NAME: csma_benchmarks
-   | Model | Constants   | Partition |
-   |-------+-------------+-----------|
-   | csma  | N=2,K=2,k=1 | b         |
-   | csma  | N=2,K=4,k=1 | b         |
-   | csma  | N=2,K=6,k=1 | b         |
-   | csma  | N=3,K=2,k=1 | b         |
-   | csma  | N=4,K=2,k=1 | b         |
-
-   Results:
-
-   #+CALL: bench(csma_benchmarks)
-
-   #+RESULTS:
-   | Model | Consts      | Partition |  States |   Edges | Sort 0 | I |     Q |  Q_0 | Opts |          t(s) |        t_p(s) |       t_i(s) |        t_r(s) |        t_a(s) | t_valmari(s) | Q_0v |
-   |-------+-------------+-----------+---------+---------+--------+---+-------+------+------+---------------+---------------+--------------+---------------+---------------+--------------+------|
-   | csma  | N=2,K=2,k=1 | b         |    2092 |    2336 |   1038 | 5 |   470 |  233 |   19 |  0.0271229570 |  0.0134353980 | 0.0055199520 |  0.0059881320 |  0.0120362210 |  0.003081025 |  233 |
-   | csma  | N=2,K=4,k=1 | b         |   15946 |   18582 |   7958 | 5 |  1992 |  997 |  109 |  0.2394990420 |  0.1079331770 | 0.0432150540 |  0.0709119940 |  0.1202429350 |  0.013782941 |  997 |
-   | csma  | N=2,K=6,k=1 | b         |  133506 |  159860 |  66718 | 5 | 14829 | 7436 |  487 |  2.9227050260 |  0.9680199220 | 0.5949931450 |  0.9674891040 |  1.6568496520 |  0.128931912 | 7436 |
-   | csma  | N=3,K=2,k=1 | b         |   75306 |   94318 |  36850 | 6 |  4686 | 2281 |   20 |  1.3873632270 |  0.5463126360 | 0.2537259070 |  0.4778206100 |  0.7738012150 |  0.090490568 | 2281 |
-   | csma  | N=4,K=2,k=1 | b         | 1587466 | 2152572 | 761962 | 7 | 21024 | 9830 |   27 | 50.1628253620 | 16.9687094990 | 7.5975967340 | 21.3369999780 | 31.0321613660 |  2.081963159 | 9830 |
-
-** Dice
-
-   This models a 6-sided dice using fair coins. Partitioning on ~s~ (internal
-   model state) collapses final dice results and distinguishes all other states.
-   Partitioning on ~d~ (the dice result) distinguishes all states, which just
-   shows that no internal state is redundant.
-
-   Benchmarks:
-
-   #+NAME: dice_benchmarks
-   | Model          | Constants | Partition |
-   |----------------+-----------+-----------|
-   | dice           |           | s         |
-   | two_dice_knuth |           | s         |
-   | two_dice       |           | s1,s2     |
-
-   Results:
-
-   #+CALL: bench(dice_benchmarks)
-
-   #+RESULTS:
-   | Model          | Consts | Partition | States | Edges | Sort 0 |  I |   Q | Q_0 | Opts |         t(s) |       t_p(s) |       t_i(s) |       t_r(s) |       t_a(s) | t_valmari(s) | Q_0v |
-   |----------------+--------+-----------+--------+-------+--------+----+-----+-----+------+--------------+--------------+--------------+--------------+--------------+--------------+------|
-   | dice           |        | s         |     13 |    20 |     13 |  8 |   8 |   8 |    8 | 0.0006871810 | 0.0005694540 | 0.0000342090 | 0.0000119660 | 0.0000621000 |  0.001404938 | NA   |
-   | two_dice_knuth |        | s         |     45 |    79 |     45 | 35 |  35 |  35 |   35 | 0.0011354970 | 0.0009655350 | 0.0000685430 | 0.0000131480 | 0.0000985090 |  0.001483642 | NA   |
-   | two_dice       |        | s1,s2     |    423 |   690 |    169 | 66 | 160 |  64 |  203 | 0.0050796840 | 0.0033219290 | 0.0006923820 | 0.0005149300 | 0.0014069710 |  0.001946452 | 64   |
-
-** Dining cryptographers
-
-   #+BEGIN_QUOTE
-   This case study is based on the well known dining cryptographers problem [Cha88].
-
-   For more information, see: http://www.prismmodelchecker.org/casestudies/dining_crypt.php
-   #+END_QUOTE
-
-   Benchmarks:
-
-   #+NAME: dining_crypt_benchmarks
-   | Model        | Constants | Partition |
-   |--------------+-----------+-----------|
-   | dining_crypt | N=3       | pay       |
-   | dining_crypt | N=4       | pay       |
-   | dining_crypt | N=5       | pay       |
-   | dining_crypt | N=6       | pay       |
-   | dining_crypt | N=7       | pay       |
-
-   Results:
-
-   #+CALL: bench(dining_crypt_benchmarks)
-
-   #+RESULTS:
-   | Model        | Consts | Partition |  States |   Edges | Sort 0 |  I |    Q |  Q_0 | Opts |          t(s) |        t_p(s) |        t_i(s) |        t_r(s) |        t_a(s) | t_valmari(s) | Q_0v |
-   |--------------+--------+-----------+---------+---------+--------+----+------+------+------+---------------+---------------+---------------+---------------+---------------+--------------+------|
-   | dining_crypt | N=3    | pay       |    1000 |    1396 |    380 |  7 |   96 |   36 |   16 |  0.0115788870 |  0.0065676890 |  0.0026811490 |  0.0015388800 |  0.0044264420 |  0.002342207 |   36 |
-   | dining_crypt | N=4    | pay       |    6705 |   10260 |   2165 |  9 |  335 |  115 |   55 |  0.0942949780 |  0.0439388580 |  0.0230355970 |  0.0213027110 |  0.0471209270 |  0.006517673 |  115 |
-   | dining_crypt | N=5    | pay       |   42552 |   69474 |  11850 | 11 | 1014 |  318 |   84 |  0.8393567260 |  0.3363783460 |  0.2121007970 |  0.2415892790 |  0.4793911600 |  0.040772024 |  318 |
-   | dining_crypt | N=6    | pay       |  258349 |  442106 |  63063 | 13 | 2842 |  805 |  119 |  5.7126363640 |  2.0802571770 |  1.1695632410 |  1.7726151170 |  3.4571072280 |  0.260343728 |  805 |
-   | dining_crypt | N=7    | pay       | 1514800 | 2685512 | 328760 | 15 | 7536 | 1928 |  160 | 42.2796849430 | 14.7078751920 | 11.5979644660 | 12.3266122930 | 26.0055200610 |  1.656931802 | 1928 |
-
-** Embedded Control System
-
-   #+BEGIN_QUOTE
-   This case study models a simple embedded system, as described in [KNP04c].
-   It is closely based on the example of [MCT94].
-
-   For more information, see: http://www.prismmodelchecker.org/casestudies/embedded.php
-   #+END_QUOTE
-
-   This uses the model [[/embedded.sm/]]
-
-   Benchmarks:
-
-   #+NAME: embedded_benchmarks
-   | Model    | Constants          | Partition |
-   |----------+--------------------+-----------|
-   | embedded | MAX_COUNT=2,T=12   | i,a,m     |
-   | embedded | MAX_COUNT=2,T=14   | i,a,m     |
-   | embedded | MAX_COUNT=2,T=0    | i,a,m     |
-   | embedded | MAX_COUNT=60,T=0   | i,a,m     |
-   | embedded | MAX_COUNT=70,T=0   | i,a,m     |
-   | embedded | MAX_COUNT=100,T=0  | i,a,m     |
-   | embedded | MAX_COUNT=500,T=0  | i,a,m     |
-   | embedded | MAX_COUNT=1000,T=0 | i,a,m     |
-
-   Results:
-
-   #+CALL: bench(embedded_benchmarks)
-
-   #+RESULTS:
-   | Model    | Consts             | Partition | States |   Edges | Sort 0 |   I |     Q |   Q_0 |   Opts |          t(s) |        t_p(s) |       t_i(s) |        t_r(s) |        t_a(s) | t_valmari(s) | Q_0v |
-   |----------+--------------------+-----------+--------+---------+--------+-----+-------+-------+--------+---------------+---------------+--------------+---------------+---------------+--------------+------|
-   | embedded | MAX_COUNT=2,T=12   | i,a,m     |   3478 |   14639 |   3478 | 157 |   568 |   568 |    725 |  0.1000065050 |  0.0548361140 | 0.0136441340 |  0.0261467390 |  0.0421925780 |  0.013208914 | NA   |
-   | embedded | MAX_COUNT=2,T=14   | i,a,m     |   3478 |   14639 |   3478 | 157 |   568 |   568 |    725 |  0.0972915520 |  0.0517521910 | 0.0137723260 |  0.0263733620 |  0.0425782980 |  0.013174102 | NA   |
-   | embedded | MAX_COUNT=2,T=0    | i,a,m     |   3478 |   14639 |   3478 | 157 |   568 |   568 |    725 |  0.0966324330 |  0.0512371760 | 0.0136189920 |  0.0262566010 |  0.0423206290 |  0.013252364 | NA   |
-   | embedded | MAX_COUNT=60,T=0   | i,a,m     |  52488 |  221525 |  52488 | 157 |  5556 |  5556 |   9948 |  1.8095733020 |  0.8240218270 | 0.3609584160 |  0.4951166810 |  0.9139563520 |  0.197722292 | NA   |
-   | embedded | MAX_COUNT=70,T=0   | i,a,m     |  60938 |  257195 |  60938 | 157 |  6416 |  6416 |  11548 |  2.1071708480 |  0.9535734410 | 0.4265075780 |  0.5761428870 |  1.0710210680 |  0.220429190 | NA   |
-   | embedded | MAX_COUNT=100,T=0  | i,a,m     |  86288 |  364205 |  86288 | 157 |  8996 |  8996 |  16348 |  3.0536448800 |  1.3787377890 | 0.4321661420 |  0.8209543500 |  1.5314433370 |  0.311546032 | NA   |
-   | embedded | MAX_COUNT=500,T=0  | i,a,m     | 424288 | 1791005 | 424288 | 157 | 43396 | 43396 |  80348 | 18.8280785360 |  7.4157094000 | 3.7931441200 |  5.0072190250 |  9.4383797080 |  1.605090640 | NA   |
-   | embedded | MAX_COUNT=1000,T=0 | i,a,m     | 846788 | 3574505 | 846788 | 157 | 86396 | 86396 | 160348 | 39.3540056840 | 17.4606916590 | 7.9101838110 | 10.6530826300 | 20.0306799400 |  3.271844717 | NA   |
-
-
-   The same results without 1-elem-optimization:
-
-   #+CALL: bench_noopt(embedded_benchmarks)
-
-   #+RESULTS:
-   | Model    | Consts             | Partition | States |   Edges | Sort 0 |   I |     Q |   Q_0 | Opts |          t(s) |        t_p(s) |       t_i(s) |        t_r(s) |        t_a(s) | t_valmari(s) | Q_0v |
-   |----------+--------------------+-----------+--------+---------+--------+-----+-------+-------+------+---------------+---------------+--------------+---------------+---------------+--------------+------|
-   | embedded | MAX_COUNT=2,T=12   | i,a,m     |   3478 |   14639 |   3478 | 157 |   568 |   568 |    0 |  0.1001943700 |  0.0524606130 | 0.0135043360 |  0.0274145950 |  0.0432767850 |  0.013087436 | NA   |
-   | embedded | MAX_COUNT=2,T=14   | i,a,m     |   3478 |   14639 |   3478 | 157 |   568 |   568 |    0 |  0.0996656840 |  0.0515371400 | 0.0137546470 |  0.0275381250 |  0.0436520370 |  0.013195463 | NA   |
-   | embedded | MAX_COUNT=2,T=0    | i,a,m     |   3478 |   14639 |   3478 | 157 |   568 |   568 |    0 |  0.0994936990 |  0.0515434150 | 0.0137538940 |  0.0273789150 |  0.0434910870 |  0.013170084 | NA   |
-   | embedded | MAX_COUNT=60,T=0   | i,a,m     |  52488 |  221525 |  52488 | 157 |  5556 |  5556 |    0 |  1.8221398340 |  0.8219622070 | 0.3597875990 |  0.5115648390 |  0.9292901920 |  0.190747923 | NA   |
-   | embedded | MAX_COUNT=70,T=0   | i,a,m     |  60938 |  257195 |  60938 | 157 |  6416 |  6416 |    0 |  2.1222394910 |  0.9547011360 | 0.4222102910 |  0.5932027720 |  1.0840538490 |  0.227079494 | NA   |
-   | embedded | MAX_COUNT=100,T=0  | i,a,m     |  86288 |  364205 |  86288 | 157 |  8996 |  8996 |    0 |  3.0582449950 |  1.3704334160 | 0.4266735130 |  0.8404935300 |  1.5447937590 |  0.310357914 | NA   |
-   | embedded | MAX_COUNT=500,T=0  | i,a,m     | 424288 | 1791005 | 424288 | 157 | 43396 | 43396 |    0 | 18.8984776070 |  7.3305746790 | 3.7833043010 |  5.1593155550 |  9.5775605760 |  1.609142877 | NA   |
-   | embedded | MAX_COUNT=1000,T=0 | i,a,m     | 846788 | 3574505 | 846788 | 157 | 86396 | 86396 |    0 | 39.2988154120 | 17.3241690020 | 7.8508650210 | 10.8467155700 | 20.1387386290 |  3.390845831 | NA   |
-
-** Firewire
-
-   #+BEGIN_QUOTE
-   This case study concerns the Tree Identify Protocol of the IEEE 1394 High Performance Serial Bus (called ``FireWire'').
-
-   These are MDP models, manually constructed from probabilistic timed automaton (PTA) models,
-   using the "digital clocks" semantics [KNPS06]. You can also find the PTA models, in the directory ../pta/firewire.
-
-   We consider the following probabilistic timed automata models of the root contention part of the
-   tree identify protocol, which are based on probabilistic I/O automata models presented in [SV99].
-
-   impl: which consists of the parallel composition of two nodes (Node1 and Node2),
-         and two communication channels (Wire12 for messages from Node1 to Node2,
-         and Wire21 for messages from Node2 to Node1) and corresponds to the
-         system Impl of [SV99].
-
-   abst: which is represented by a single probabilistic timed automaton and is an abstraction of Impl
-         based on the the probabilistic I/O automaton I1 of [SV99].
-
-   For more information, see: http://www.prismmodelchecker.org/casestudies/firewire.php
-   #+END_QUOTE
-
-   Benchmarks:
-
-   For the "abst" benchmarks, we partition on the local state state of the
-   protocol ~s~. For the "impl" benchmarks we partition on the local state of
-   wire 12 ~w12~.
-
-   #+NAME: firewire_benchmarks
-   | Model                  | Constants                      | Partition |
-   |------------------------+--------------------------------+-----------|
-   | firewire_abst_firewire | delay=36,fast=0.5              | s         |
-   | firewire_abst_firewire | delay=3,fast=0.2:0.1:0.8       | s         |
-   | firewire_abst_firewire | delay=36,fast=0.2:0.1:0.8      | s         |
-   | firewire_abst_deadline | deadline=200,delay=36,fast=0.5 | s         |
-   | firewire_abst_deadline | deadline=300,delay=36,fast=0.5 | s         |
-   | firewire_abst_deadline | deadline=400,delay=36,fast=0.5 | s         |
-   | firewire_abst_deadline | deadline=500,delay=36,fast=0.5 | s         |
-   | firewire_abst_deadline | deadline=600,delay=36,fast=0.5 | s         |
-   | firewire_impl_firewire | delay=36,fast=0.5              | w12       |
-   | firewire_impl_firewire | delay=3,fast=0.2:0.1:0.8       | w12       |
-   | firewire_impl_firewire | delay=36,fast=0.2:0.1:0.8      | w12       |
-   | firewire_impl_deadline | deadline=200,delay=3,fast=0.5  | w12       |
-   | firewire_impl_deadline | deadline=300,delay=3,fast=0.5  | w12       |
-   | firewire_impl_deadline | deadline=400,delay=3,fast=0.5  | w12       |
-
-   Results:
-
-   #+CALL: bench(firewire_benchmarks)
-
-   #+RESULTS:
-   | Model                  | Consts                         | Partition |  States |   Edges | Sort 0 |  I |      Q |    Q_0 |   Opts |          t(s) |       t_p(s) |       t_i(s) |        t_r(s) |        t_a(s) | t_valmari(s) |   Q_0v |
-   |------------------------+--------------------------------+-----------+---------+---------+--------+----+--------+--------+--------+---------------+--------------+--------------+---------------+---------------+--------------+--------|
-   | firewire_abst_firewire | delay=36,fast=0.5              | s         |    1965 |    2600 |    776 | 13 |   1623 |    776 |    183 |  0.0252118430 | 0.0121053230 | 0.0057877890 |  0.0053013720 |  0.0119495800 |  0.003340243 |    776 |
-   | firewire_abst_firewire | delay=3,fast=0.2:0.1:0.8       | s         |    1305 |    1412 |    611 | 13 |   1227 |    611 |     50 |  0.0151854790 | 0.0077784750 | 0.0025718150 |  0.0036091760 |  0.0065828230 |  0.002662910 |    611 |
-   | firewire_abst_firewire | delay=36,fast=0.2:0.1:0.8      | s         |    1965 |    2600 |    776 | 13 |   1623 |    776 |    183 |  0.0241420600 | 0.0113885000 | 0.0054158060 |  0.0052211330 |  0.0116302240 |  0.003275894 |    776 |
-   | firewire_abst_deadline | deadline=200,delay=36,fast=0.5 | s         |  163757 |  209250 |  67901 | 15 |  35260 |  15848 |   5929 |  3.8682574500 | 1.3507531240 | 1.0458554720 |  1.1846375430 |  2.3532160650 |  0.176546731 |  15848 |
-   | firewire_abst_deadline | deadline=300,delay=36,fast=0.5 | s         |  351965 |  458048 | 142810 | 15 | 136910 |  63708 |  25835 |  9.1705285110 | 2.9618801350 | 2.0662920860 |  3.3795052140 |  5.7368827450 |  0.492995413 |  63708 |
-   | firewire_abst_deadline | deadline=400,delay=36,fast=0.5 | s         |  548465 |  718048 | 220410 | 15 | 231876 | 107370 |  63243 | 14.5446419200 | 4.6610660740 | 3.1752422440 |  5.4435062210 |  9.0879450400 |  0.816190931 | 107370 |
-   | firewire_abst_deadline | deadline=500,delay=36,fast=0.5 | s         |  744965 |  978048 | 298010 | 15 | 327376 | 151270 |  94043 | 19.9813400310 | 6.4153091910 | 4.2919166960 |  7.5645346800 | 12.4521966490 |  1.263053838 | 151270 |
-   | firewire_abst_deadline | deadline=600,delay=36,fast=0.5 | s         |  941465 | 1238048 | 375610 | 15 | 422876 | 195170 | 124843 | 27.0856920960 | 8.6422967040 | 5.7980549930 | 10.2229868990 | 16.8033036870 |  1.517745482 | 195170 |
-   | firewire_impl_firewire | delay=36,fast=0.5              | w12       |  691024 |  960548 | 212268 |  8 | 131382 |  62836 |  29632 | 20.3819706330 | 5.7341866800 | 3.7580567140 |  9.4194338870 | 13.8074737560 |  0.968866380 |  62836 |
-   | firewire_impl_firewire | delay=3,fast=0.2:0.1:0.8       | w12       |    9612 |   11104 |   4093 |  8 |   7362 |   3631 |    553 |  0.1694758160 | 0.0870325480 | 0.0294502430 |  0.0417651470 |  0.0745785150 |  0.123132247 |   3631 |
-   | firewire_impl_firewire | delay=36,fast=0.2:0.1:0.8      | w12       |  691024 |  960548 | 212268 |  8 | 131382 |  62836 |  29633 | 20.3538908920 | 5.7030014760 | 3.7557613730 |  9.4185034920 | 13.8091226960 |  0.965448462 |  62836 |
-   | firewire_impl_deadline | deadline=200,delay=3,fast=0.5  | w12       |  192016 |  224278 |  80980 |  8 |   4021 |   1967 |    264 |  3.4042976910 | 1.5151843100 | 0.9815302800 |  0.6092578520 |  1.7277678430 |  0.151578484 |   1967 |
-   | firewire_impl_deadline | deadline=300,delay=3,fast=0.5  | w12       |  497567 |  572016 | 213805 |  8 |  10432 |   5133 |    100 |  9.8533852310 | 4.2797769220 | 2.3338217920 |  2.4103991290 |  5.0971449630 |  0.407009032 |   5133 |
-   | firewire_impl_deadline | deadline=400,delay=3,fast=0.5  | w12       | 1020411 | 1180934 | 434364 |  8 | 240169 | 118151 |  16363 | 22.1560649610 | 8.7138424910 | 4.8081857930 |  6.3958608920 | 12.0307396340 |  1.105685453 | 118151 |
-
-** Flexible Manufacturing System
-
-   #+BEGIN_QUOTE
-   This case study is based on the flexible manufacturing system of [CT93].
-
-   For more information, see: http://www.prismmodelchecker.org/casestudies/fms.php
-   #+END_QUOTE
-
-   Bechmarks:
-
-   We don't need an explicit initial partition, because the instrinsic partition
-   of the coalgebra already leads to a maximally fine final partition.
-
-   #+NAME: fms_benchmarks
-   | Model | Constants | Partition |
-   |-------+-----------+-----------|
-   | fms   | n=1       |           |
-   | fms   | n=2       |           |
-   | fms   | n=3       |           |
-   | fms   | n=4       |           |
-   | fms   | n=5       |           |
-   | fms   | n=6       |           |
-
-   Results:
-
-   #+CALL: bench(fms_benchmarks)
-
-   #+RESULTS:
-   | Model | Consts | Partition | States |   Edges | Sort 0 |    I |      Q |    Q_0 |    Opts |          t(s) |       t_p(s) |       t_i(s) |       t_r(s) |       t_a(s) | t_valmari(s) | Q_0v |
-   |-------+--------+-----------+--------+---------+--------+------+--------+--------+---------+---------------+--------------+--------------+--------------+--------------+--------------+------|
-   | fms   | n=1    |           |     54 |     155 |     54 |   27 |     54 |     54 |     144 |  0.0011190190 | 0.0009196850 | 0.0000526740 | 0.0000540440 | 0.0001321580 |  0.001270014 | NA   |
-   | fms   | n=2    |           |    810 |    3699 |    810 |  129 |    810 |    810 |    3607 |  0.0114879660 | 0.0074573830 | 0.0018583150 | 0.0011231400 | 0.0032124940 |  0.004057395 | NA   |
-   | fms   | n=3    |           |   6520 |   37394 |   6520 |  376 |   6520 |   6520 |   38537 |  0.1230228560 | 0.0727707760 | 0.0205872780 | 0.0166235890 | 0.0409569130 |  0.163422677 | NA   |
-   | fms   | n=4    |           |  35910 |  237120 |  35910 |  815 |  35910 |  35910 |  248896 |  0.8787897430 | 0.4779690720 | 0.1196028640 | 0.1624789370 | 0.3375174170 |  0.213602261 | NA   |
-   | fms   | n=5    |           | 152712 | 1111482 | 152712 | 1299 | 152712 | 152712 | 1163734 |  4.9372687240 | 2.4584752490 | 0.6822492420 | 1.1002566890 | 2.0805720360 |  1.214758409 | NA   |
-   | fms   | n=6    |           | 537768 | 4205670 | 537768 | 1766 | 537768 | 537768 | 4369694 | 21.3837698990 | 9.9432312680 | 2.9128952850 | 5.5583560150 | 9.6761859970 |  5.843124489 | NA   |
-
-
-*** Comparing with and without optimization
-
-We run a single benchmark multiple times. Once with and once without optimizations.
-
-#+NAME: fms_benchmark_single
-| Model | Constants | Partition |
-|-------+-----------+-----------|
-| fms   | n=6       |           |
-| fms   | n=6       |           |
-| fms   | n=6       |           |
-
-**** With both optimizations
-:PROPERTIES:
-:ID:       cdef09e0-b92a-46db-9ed5-be0cde788441
-:END:
-
-#+CALL: bench(fms_benchmark_single)
-
-#+RESULTS:
-| Model | Consts | Partition | States |   Edges | Sort 0 |    I |      Q |    Q_0 |    Opts |          t(s) |       t_p(s) |       t_i(s) |       t_r(s) |       t_a(s) | t_valmari(s) | Q_0v |
-|-------+--------+-----------+--------+---------+--------+------+--------+--------+---------+---------------+--------------+--------------+--------------+--------------+--------------+------|
-| fms   | n=6    |           | 537768 | 4205670 | 537768 | 1766 | 537768 | 537768 | 4369694 | 21.1115990510 | 9.8550286160 | 2.8687953810 | 5.4316401000 | 9.5064537000 |  5.708263962 | NA   |
-| fms   | n=6    |           | 537768 | 4205670 | 537768 | 1766 | 537768 | 537768 | 4369694 | 20.9593982310 | 9.7634182720 | 2.8666464320 | 5.4096516480 | 9.4901079220 |  5.613742001 | NA   |
-| fms   | n=6    |           | 537768 | 4205670 | 537768 | 1766 | 537768 | 537768 | 4369694 | 20.9555704890 | 9.7799698680 | 2.8857570390 | 5.4510723400 | 9.5017096000 |  5.685050507 | NA   |
-
-**** Without any optimization
-:PROPERTIES:
-:ID:       8850d72d-8f23-495e-b3af-a06deb25be53
-:END:
-
-#+CALL: bench_sloooow(fms_benchmark_single)
-
-#+RESULTS:
-| Model | Consts | Partition | States |   Edges | Sort 0 |    I |      Q |    Q_0 | Opts |          t(s) |       t_p(s) |       t_i(s) |        t_r(s) |        t_a(s) | t_valmari(s) | Q_0v |
-|-------+--------+-----------+--------+---------+--------+------+--------+--------+------+---------------+--------------+--------------+---------------+---------------+--------------+------|
-| fms   | n=6    |           | 537768 | 4205670 | 537768 | 1766 | 537768 | 537768 |    0 | 35.4518703620 | 9.9894868350 | 2.9299455570 | 19.7603050700 | 23.8772346850 |  5.701320777 | NA   |
-| fms   | n=6    |           | 537768 | 4205670 | 537768 | 1766 | 537768 | 537768 |    0 | 35.3850394920 | 9.8971921010 | 2.9127417480 | 19.7676467020 | 23.8871916030 |  5.798974060 | NA   |
-| fms   | n=6    |           | 537768 | 4205670 | 537768 | 1766 | 537768 | 537768 |    0 | 35.8300788970 | 9.9196566430 | 2.9461043890 | 20.1929301170 | 24.3299005100 |  5.656880994 | NA   |
-
-**** With just functor rewrites
-:PROPERTIES:
-:ID:       966b0dc7-cf00-4594-88ae-80332696166e
-:END:
-
-#+CALL: bench_noopt(fms_benchmark_single)
-
-#+RESULTS:
-| Model | Consts | Partition | States |   Edges | Sort 0 |    I |      Q |    Q_0 | Opts |          t(s) |       t_p(s) |       t_i(s) |        t_r(s) |        t_a(s) | t_valmari(s) | Q_0v |
-|-------+--------+-----------+--------+---------+--------+------+--------+--------+------+---------------+--------------+--------------+---------------+---------------+--------------+------|
-| fms   | n=6    |           | 537768 | 4205670 | 537768 | 1766 | 537768 | 537768 |    0 | 35.3792636600 | 9.8840455080 | 2.9389656800 | 19.7589163770 | 23.9099881210 |  5.741194174 | NA   |
-| fms   | n=6    |           | 537768 | 4205670 | 537768 | 1766 | 537768 | 537768 |    0 | 35.5444664040 | 9.9008855000 | 2.9221486960 | 19.9320237960 | 24.0572613560 |  5.697179509 | NA   |
-| fms   | n=6    |           | 537768 | 4205670 | 537768 | 1766 | 537768 | 537768 |    0 | 35.5311650510 | 9.9824189200 | 2.9167611140 | 19.8211857990 | 23.9367806740 |  5.675679034 | NA   |
-
-**** With just 1-elem optimization
-:PROPERTIES:
-:ID:       7e19eb5e-4009-4bc1-89a3-4e4e5c7f643e
-:END:
-
-#+CALL: bench_nofunctrans(fms_benchmark_single)
-
-#+RESULTS:
-| Model | Consts | Partition | States |   Edges | Sort 0 |    I |      Q |    Q_0 |    Opts |          t(s) |       t_p(s) |       t_i(s) |       t_r(s) |       t_a(s) | t_valmari(s) | Q_0v |
-|-------+--------+-----------+--------+---------+--------+------+--------+--------+---------+---------------+--------------+--------------+--------------+--------------+--------------+------|
-| fms   | n=6    |           | 537768 | 4205670 | 537768 | 1766 | 537768 | 537768 | 4369694 | 21.3317819830 | 9.9422740590 | 2.9165776070 | 5.5338563370 | 9.6616926620 |  5.676567183 | NA   |
-| fms   | n=6    |           | 537768 | 4205670 | 537768 | 1766 | 537768 | 537768 | 4369694 | 21.3070570780 | 9.9521240360 | 2.9318476720 | 5.5074560910 | 9.6391451150 |  5.714505330 | NA   |
-| fms   | n=6    |           | 537768 | 4205670 | 537768 | 1766 | 537768 | 537768 | 4369694 | 21.2953219580 | 9.9278855310 | 2.8900129830 | 5.5345639560 | 9.6430584370 |  5.873457181 | NA   |
-
-** Kanban
-
-   #+BEGIN_QUOTE
-   This case study is based on the Kanban flexible manufacturing system of [CT96].
-
-   For more information, see: http://www.prismmodelchecker.org/casestudies/kanban.php
-   #+END_QUOTE
-
-   Benchmarks:
-
-   No need for an explicit partition, the coalgebra itself partitions pretty well.
-
-   #+NAME: kanban_benchmarks
-   | Model  | Constants | Partition |
-   |--------+-----------+-----------|
-   | kanban | t=1       |           |
-   | kanban | t=2       |           |
-   | kanban | t=3       |           |
-   | kanban | t=4       |           |
-
-   Results:
-
-   #+CALL: bench(kanban_benchmarks)
-
-   #+RESULTS:
-   | Model  | Consts | Partition | States |   Edges | Sort 0 |   I |      Q |    Q_0 |    Opts |          t(s) |       t_p(s) |       t_i(s) |       t_r(s) |        t_a(s) | t_valmari(s) | Q_0v |
-   |--------+--------+-----------+--------+---------+--------+-----+--------+--------+---------+---------------+--------------+--------------+--------------+---------------+--------------+------|
-   | kanban | t=1    |           |    160 |     616 |    160 |  63 |    160 |    160 |     584 |  0.0035293670 | 0.0027577500 | 0.0002127660 | 0.0002967780 |  0.0005807870 |  0.001957585 | NA   |
-   | kanban | t=2    |           |   4600 |   28120 |   4600 | 138 |   4600 |   4600 |   31996 |  0.0845046560 | 0.0525366560 | 0.0133163970 | 0.0102044590 |  0.0263515370 |  0.151409559 | NA   |
-   | kanban | t=3    |           |  58400 |  446400 |  58400 | 188 |  58400 |  58400 |  484533 |  1.8091822700 | 0.8656578580 | 0.2273689800 | 0.4913825500 |  0.8316374780 |  0.379954446 | NA   |
-   | kanban | t=4    |           | 454475 | 3979850 | 454475 | 205 | 454475 | 454475 | 4145639 | 20.6806881570 | 9.0696400970 | 2.5312314400 | 7.1832748850 | 10.2826909110 |  5.079570712 | NA   |
-
-** Leader Election Protocol
-*** Synchronous
-:PROPERTIES:
-:ID:       fcc30abf-3473-429b-ade2-0900e6825042
-:END:
-
-    #+BEGIN_QUOTE
-    This case study is based on the synchronous leader election protocol of Itai & Rodeh [IR90].
-
-    For more information, see: http://www.prismmodelchecker.org/casestudies/synchronous_leader.php
-    #+END_QUOTE
-
-    Benchmarks:
-
-    We initially partition on the respective local states of all processes.
-
-    #+NAME: leader_sync_benchmarks
-    | Model       | Constants   | Partition      |
-    |-------------+-------------+----------------|
-    | leader_sync | N=3,K=2,L=1 | s1,s2,s3       |
-    | leader_sync | N=3,K=3,L=1 | s1,s2,s3       |
-    | leader_sync | N=3,K=4,L=1 | s1,s2,s3       |
-    | leader_sync | N=4,K=2,L=1 | s1,s2,s3,s4    |
-    | leader_sync | N=4,K=3,L=1 | s1,s2,s3,s4    |
-    | leader_sync | N=4,K=4,L=1 | s1,s2,s3,s4    |
-    | leader_sync | N=5,K=2,L=1 | s1,s2,s3,s4,s5 |
-    | leader_sync | N=5,K=3,L=1 | s1,s2,s3,s4,s5 |
-    | leader_sync | N=5,K=4,L=1 | s1,s2,s3,s4,s5 |
-
-    Results:
-
-    #+CALL: bench(leader_sync_benchmarks)
-
-    #+RESULTS:
-    | Model       | Consts      | Partition      | States | Edges | Sort 0 | I |  Q | Q_0 | Opts |         t(s) |       t_p(s) |       t_i(s) |       t_r(s) |       t_a(s) | t_valmari(s) | Q_0v |
-    |-------------+-------------+----------------+--------+-------+--------+---+----+-----+------+--------------+--------------+--------------+--------------+--------------+--------------+------|
-    | leader_sync | N=3,K=2,L=1 | s1,s2,s3       |     26 |    33 |     26 | 4 |  8 |   8 |    3 | 0.0011261370 | 0.0008873720 | 0.0000668850 | 0.0000975260 | 0.0001830760 |  0.001425685 | NA   |
-    | leader_sync | N=3,K=3,L=1 | s1,s2,s3       |     69 |    95 |     69 | 4 |  8 |   8 |    4 | 0.0015097720 | 0.0010825010 | 0.0000699380 | 0.0000615120 | 0.0001584650 |  0.001376350 | NA   |
-    | leader_sync | N=3,K=4,L=1 | s1,s2,s3       |    147 |   210 |    147 | 4 |  8 |   8 |    5 | 0.0022074270 | 0.0018903660 | 0.0001109040 | 0.0000890860 | 0.0002318850 |  0.001483183 | NA   |
-    | leader_sync | N=4,K=2,L=1 | s1,s2,s3,s4    |     61 |    76 |     61 | 4 | 10 |  10 |    9 | 0.0012056580 | 0.0010085850 | 0.0000633110 | 0.0000579530 | 0.0001401530 |  0.001605176 | NA   |
-    | leader_sync | N=4,K=3,L=1 | s1,s2,s3,s4    |    274 |   354 |    274 | 4 | 10 |  10 |   22 | 0.0031891820 | 0.0024679180 | 0.0003274110 | 0.0001492080 | 0.0005299830 |  0.001830196 | NA   |
-    | leader_sync | N=4,K=4,L=1 | s1,s2,s3,s4    |    812 |  1067 |    812 | 4 | 10 |  10 |   41 | 0.0086410250 | 0.0058045520 | 0.0011613200 | 0.0005618120 | 0.0021124430 |  0.002080188 | NA   |
-    | leader_sync | N=5,K=2,L=1 | s1,s2,s3,s4,s5 |    141 |   172 |    141 | 4 | 12 |  12 |   11 | 0.0020531090 | 0.0016603120 | 0.0001839930 | 0.0000896080 | 0.0003088410 |  0.001703827 | NA   |
-    | leader_sync | N=5,K=3,L=1 | s1,s2,s3,s4,s5 |   1050 |  1292 |   1050 | 4 | 12 |  12 |   64 | 0.0118074260 | 0.0079930730 | 0.0012989110 | 0.0007590220 | 0.0027172380 |  0.002489031 | NA   |
-    | leader_sync | N=5,K=4,L=1 | s1,s2,s3,s4,s5 |   4244 |  5267 |   4244 | 4 | 12 |  12 |  125 | 0.0492064960 | 0.0303649000 | 0.0077673220 | 0.0064060210 | 0.0154437500 |  0.004702621 | NA   |
-
-*** Asynchronous
-:PROPERTIES:
-:ID:       e6b7cd19-fdf8-4c34-8a16-5429102fe2b6
-:END:
-
-    #+BEGIN_QUOTE
-    This case study is based on the asynchronous leader election protocol of Itai & Rodeh [IR90].
-
-    For more information, see: http://www.prismmodelchecker.org/casestudies/asynchronous_leader.php
-    #+END_QUOTE
-
-    Benchmarks:
-
-    We initially partition on the respective local states of all processes.
-
-    #+NAME: leader_async_benchmarks
-    | Model        | Constants | Partition      |
-    |--------------+-----------+----------------|
-    | leader_async | N=3,K=1   | s1,s2,s3       |
-    | leader_async | N=4,K=1   | s1,s2,s3,s4    |
-    | leader_async | N=5,K=1   | s1,s2,s3,s4,s5 |
-
-    Results:
-
-    #+CALL: bench(leader_async_benchmarks)
-
-    #+RESULTS:
-    | Model        | Consts  | Partition      | States |  Edges | Sort 0 |   I |     Q |  Q_0 | Opts |         t(s) |       t_p(s) |       t_i(s) |       t_r(s) |       t_a(s) | t_valmari(s) | Q_0v |
-    |--------------+---------+----------------+--------+--------+--------+-----+-------+------+------+--------------+--------------+--------------+--------------+--------------+--------------+------|
-    | leader_async | N=3,K=1 | s1,s2,s3       |    937 |   1227 |    364 |  57 |   385 |  171 |  100 | 0.0114401660 | 0.0059803830 | 0.0026568900 | 0.0018486450 | 0.0047440420 |  0.002268829 |  171 |
-    | leader_async | N=4,K=1 | s1,s2,s3,s4    |   9424 |  13396 |   3172 | 221 |  2974 | 1169 |  724 | 0.1549121930 | 0.0635229990 | 0.0411555370 | 0.0399712740 | 0.0853628400 |  0.009218520 | 1169 |
-    | leader_async | N=5,K=1 | s1,s2,s3,s4,s5 |  92284 | 139350 |  27299 | 868 | 22626 | 7948 | 5064 | 1.9666992650 | 0.7098582570 | 0.5072619060 | 0.5892218320 | 1.1746346370 |  0.121196583 | 7948 |
-
-** Molecules
-:PROPERTIES:
-:ID:       2fc0e60e-721b-47b7-9606-dfb32118fe47
-:END:
-
-   #+BEGIN_QUOTE
-   This case study models several simple molecular reactions:
-
-    - Na + Cl <-> Na+ + Cl-
-    - K + Na + 2Cl <-> K+ + Na- + 2Cl-
-    - Mg + 2Cl <-> Mg+2 + 2Cl-
-
-   These are taken from Ehud Shapiro's lecture notes on Biomolecular Processes as Concurrent Computation [Sha].
-
-   For more information, see: http://www.prismmodelchecker.org/casestudies/molecules.php
-   #+END_QUOTE
-
-   Benchmarks:
-
-   We partition on the current number of ~Na~ or ~Mg~ atoms at the current
-   state.
-
-   #+NAME: molecules_benchmarks
-   | Model | Constants                             | Partition |
-   |-------+---------------------------------------+-----------|
-   | nacl  | N1=10,N2=10,T=0:0.001:0.006,i=4       | na        |
-   | nacl  | N1=10,N2=10,T=0:0.001:0.006,i=0       | na        |
-   | nacl  | N1=10,N2=10,T=0,i=0                   | na        |
-   | knacl | N1=10,N2=10,N3=10,T=0:0.001:0.006,i=4 | na        |
-   | knacl | N1=10,N2=10,N3=10,T=0:0.001:0.006,i=0 | na        |
-   | knacl | N1=10,N2=10,N3=10,T=0,i=0             | na        |
-   | mc    | N1=10,N2=10,T=0:0.001:0.006,i=4       | mg        |
-   | mc    | N1=10,N2=10,T=0:0.001:0.006,i=0       | mg        |
-   | mc    | N1=10,N2=10,T=0i=0                    | mg        |
-
-   Results:
-
-   #+CALL: bench(molecules_benchmarks)
-
-   #+RESULTS:
-   | Model | Consts                                | Partition | States | Edges | Sort 0 |  I |  Q | Q_0 | Opts |         t(s) |       t_p(s) |       t_i(s) |       t_r(s) |       t_a(s) | t_valmari(s) | Q_0v |
-   |-------+---------------------------------------+-----------+--------+-------+--------+----+----+-----+------+--------------+--------------+--------------+--------------+--------------+--------------+------|
-   | nacl  | N1=10,N2=10,T=0:0.001:0.006,i=4       | na        |     11 |    20 |     11 | 11 | 11 |  11 |   19 | 0.0006936910 | 0.0005806090 | 0.0000383150 | 0.0000131620 | 0.0000692840 |  0.001467669 | NA   |
-   | nacl  | N1=10,N2=10,T=0:0.001:0.006,i=0       | na        |     11 |    20 |     11 | 11 | 11 |  11 |   19 | 0.0007232610 | 0.0006209010 | 0.0000312240 | 0.0000126100 | 0.0000607890 |  0.001385457 | NA   |
-   | nacl  | N1=10,N2=10,T=0,i=0                   | na        |     11 |    20 |     11 | 11 | 11 |  11 |   19 | 0.0008047070 | 0.0006996310 | 0.0000318730 | 0.0000132890 | 0.0000628290 |  0.001539412 | NA   |
-   | knacl | N1=10,N2=10,N3=10,T=0:0.001:0.006,i=4 | na        |     66 |   220 |     66 | 66 | 66 |  66 |  218 | 0.0018716320 | 0.0016524530 | 0.0000806560 | 0.0000363960 | 0.0001412880 |  0.001596522 | NA   |
-   | knacl | N1=10,N2=10,N3=10,T=0:0.001:0.006,i=0 | na        |     66 |   220 |     66 | 66 | 66 |  66 |  218 | 0.0024822640 | 0.0022006060 | 0.0001195270 | 0.0000290760 | 0.0001879910 |  0.001583101 | NA   |
-   | knacl | N1=10,N2=10,N3=10,T=0,i=0             | na        |     66 |   220 |     66 | 66 | 66 |  66 |  218 | 0.0018328980 | 0.0016366420 | 0.0000831910 | 0.0000205740 | 0.0001278490 |  0.001707427 | NA   |
-   | mc    | N1=10,N2=10,T=0:0.001:0.006,i=4       | mg        |     36 |   110 |     36 | 36 | 36 |  36 |  109 | 0.0011844780 | 0.0010416150 | 0.0000503610 | 0.0000144850 | 0.0000809270 |  0.001584403 | NA   |
-   | mc    | N1=10,N2=10,T=0:0.001:0.006,i=0       | mg        |     36 |   110 |     36 | 36 | 36 |  36 |  109 | 0.0011972170 | 0.0010458730 | 0.0000496930 | 0.0000144850 | 0.0000803150 |  0.001653878 | NA   |
-   | mc    | N1=10,N2=10,T=0i=0                    | mg        |     36 |   110 |     36 | 36 | 36 |  36 |  109 | 0.0011372140 | 0.0009994990 | 0.0000512750 | 0.0000140010 | 0.0000815090 |  0.001643996 | NA   |
-
-** Mutual Exclusion
-:PROPERTIES:
-:ID:       e8ac9d4d-0ed9-4cc2-85ea-359a5261442c
-:END:
-
-   #+BEGIN_QUOTE
-   This case study is based on Pnueli and Zuck's [PZ86] probabilistic symmetric
-   solution to the n-process mutual exclusion problem.
-
-   For reference, these are the local states of each process:
-   | No: | No: | Description:             | State:       |
-   |-----+-----+--------------------------+--------------|
-   |   0 |   0 | idle                     | uninterested |
-   |   1 |   1 | trying                   | uninterested |
-   |   2 |   2 | trying                   | enter        |
-   |   3 |   3 | trying                   | enter        |
-   |   4 |   7 | trying                   | high         |
-   |   5 |   8 | trying                   | high         |
-   |   6 |   9 | trying                   | tie          |
-   |   7 |  10 | trying                   | low          |
-   |   8 |  11 | trying                   | low          |
-   |   9 |  12 | trying                   | tie          |
-   |  10 |  13 | in critical section      | high         |
-   |  11 |  14 | in critical section      | high         |
-   |  12 |  15 | in critical section      | high         |
-   |  13 |  17 | in critical section      | high         |
-   |  14 |  18 | leaving critical section | admit        |
-   |  15 |  19 | leaving critical section | admit        |
-
-   For more information, see: http://www.prismmodelchecker.org/casestudies/mutual.php
-   #+END_QUOTE
-
-   I don't include ~mutual8~ and ~mutual10~ here, since ~mutual8~ already
-   produced an 11 GB transaction file, which my computer doesn't have the memory
-   to even convert to CoPaR's input format.
-
-   We partition on the state of the first process.
-
-   Benchmarks:
-
-   #+NAME: mutual_benchmarks
-   | Model  | Constants | Partition |
-   |--------+-----------+-----------|
-   | mutual | N=3       | p1        |
-   | mutual | N=4       | p1        |
-   | mutual | N=5       | p1        |
-
-   Results:
-
-   #+CALL: bench(mutual_benchmarks)
-
-   #+RESULTS:
-   | Model  | Consts | Partition |  States |   Edges | Sort 0 |  I |       Q |    Q_0 |    Opts |          t(s) |        t_p(s) |        t_i(s) |        t_r(s) |        t_a(s) | t_valmari(s) |   Q_0v |
-   |--------+--------+-----------+---------+---------+--------+----+---------+--------+---------+---------------+---------------+---------------+---------------+---------------+--------------+--------|
-   | mutual | N=3    | p1        |   10636 |   16992 |   2368 | 22 |    7978 |   2220 |    5921 |  0.2019455650 |  0.0703412350 |  0.0424574750 |  0.0769162890 |  0.1238906080 |  0.113024788 |   2220 |
-   | mutual | N=4    | p1        |  157184 |  266576 |  27600 | 24 |  118224 |  26682 |  103462 |  4.3537811680 |  1.1411224410 |  0.7291466170 |  2.0216322970 |  3.0423430190 |  0.278805850 |  26682 |
-   | mutual | N=5    | p1        | 2130240 | 3751600 | 308800 | 26 | 1604356 | 303608 | 1483271 | 85.9962595640 | 19.3640643730 | 16.7449184410 | 42.2897042540 | 62.1227017060 |  4.923615233 | 303608 |
-
-** Peer-to-Peer Protocol
-:PROPERTIES:
-:ID:       8f53a247-e80e-4b29-b0e9-34bd29aa91ff
-:END:
-
-   #+BEGIN_QUOTE
-   This case study models a very simple peer-to-peer protocol, loosely based on BitTorrent.
-
-   For more information, see: http://www.prismmodelchecker.org/casestudies/peer2peer.php
-   #+END_QUOTE
-
-   Benchmarks:
-
-   The initial partition is derived from the current download process of client1.
-
-   #+NAME: peer2peer_benchmarks
-   | Model     | Constants     | Partition       |
-   |-----------+---------------+-----------------|
-   | peer2peer | N=4,K=4,T=1.1 | b11,b12,b13,b14 |
-   | peer2peer | N=5,K=4,T=1.1 | b11,b12,b13,b14 |
-
-   Results:
-
-   #+CALL: bench(peer2peer_benchmarks)
-
-   #+RESULTS:
-   | Model     | Consts        | Partition       |  States |    Edges |  Sort 0 |   I |    Q |  Q_0 | Opts |          t(s) |        t_p(s) |        t_i(s) |        t_r(s) |        t_a(s) | t_valmari(s) | Q_0v |
-   |-----------+---------------+-----------------+---------+----------+---------+-----+------+------+------+---------------+---------------+---------------+---------------+---------------+--------------+------|
-   | peer2peer | N=4,K=4,T=1.1 | b11,b12,b13,b14 |   65536 |   524289 |   65536 | 143 | 2595 | 2595 | 1423 |  3.7316735590 |  1.6372802810 |  0.6629852480 |  1.1867859750 |  1.9638201450 |  0.261887081 | NA   |
-   | peer2peer | N=5,K=4,T=1.1 | b11,b12,b13,b14 | 1048576 | 10485761 | 1048576 | 416 | 4575 | 4575 | 1738 | 89.1275273410 | 37.1055019560 | 16.3894437490 | 30.2417840130 | 49.5512363070 |  5.953450908 | NA   |
-
-** PEPA
-
-   #+BEGIN_QUOTE
-   These examples are adapted from those on the PEPA webpage:
-
-   http://www.dcs.ed.ac.uk/pepa/examples.html
-   #+END_QUOTE
-
-   We can't use this currently, as the model isn't in the normal PRISM language
-   and requires the special flag ~-importpepa~ to use it. Our python currenlty
-   doesn't support that.
-
-** Dining Philosophers
-*** Original
-:PROPERTIES:
-:ID:       eb035abb-aa5a-4edd-a193-605fbfb386d5
-:END:
-
-    #+BEGIN_QUOTE
-    This case study is based on Lehmann and Rabin's solution to the well known dining philosophers problem [LR81].
-
-    For more information, see: http://www.prismmodelchecker.org/casestudies/phil.php
-    #+END_QUOTE
-
-    Benchmarks:
-
-    For the initial partition, we differentiate on the current state of the first
-    philosopher.
-
-    Although the ~auto~ file goes to ~N=9~, the memory usage of CoPaR on ~N=6~ is
-    already over the limit of my system (16GB).
-
-    #+NAME: phil_original_benchmarks
-    | Model         | Constants | Partition |
-    |---------------+-----------+-----------|
-    | phil_original | N=3       | p1        |
-    | phil_original | N=4       | p1        |
-    | phil_original | N=5       | p1        |
-
-    Results:
-
-    #+CALL: bench(phil_original_benchmarks)
-
-    #+RESULTS:
-    | Model         | Consts | Partition | States |   Edges | Sort 0 |  I |      Q |   Q_0 |   Opts |          t(s) |       t_p(s) |       t_i(s) |        t_r(s) |        t_a(s) | t_valmari(s) |  Q_0v |
-    |---------------+--------+-----------+--------+---------+--------+----+--------+-------+--------+---------------+--------------+--------------+---------------+---------------+--------------+-------|
-    | phil_original | N=3    | p1        |   4298 |    7038 |    956 | 18 |   3476 |   956 |   2918 |  0.0850968110 | 0.0385582620 | 0.0139462220 |  0.0284026650 |  0.0442237230 |  0.006178703 |   956 |
-    | phil_original | N=4    | p1        |  53440 |   92656 |   9440 | 20 |  42227 |  9440 |  40917 |  1.3897395050 | 0.3895630360 | 0.3158503200 |  0.5947657080 |  0.9424930210 |  0.141154620 |  9440 |
-    | phil_original | N=5    | p1        | 635298 | 1141830 |  93068 | 22 | 494654 | 93068 | 528298 | 23.2253278090 | 5.6642915180 | 4.6927226990 | 11.3302278460 | 16.7053319470 |  1.346441694 | 93068 |
-
-*** No Fair
-:PROPERTIES:
-:ID:       2d736b3d-a5c8-4485-9065-0724cd79efcd
-:END:
-
-    #+BEGIN_QUOTE
-    This case study is based on Lehmann and Rabin's solution to the well known
-    dining philosophers problem [LR81]. It considers the version presented in
-    [DFP04] which removes the need to consider 'fairness' assumptions on the
-    scheduling mechanism.
-
-    For more information, see: http://www.prismmodelchecker.org/casestudies/phil.php
-    #+END_QUOTE
-
-    As above, the initial partition is determined by the state of the first
-    philosopher.
-
-    Benchmarks:
-
-   #+NAME: phil_nofair_benchmarks
-   | Model       | Constants | Partition |
-   |-------------+-----------+-----------|
-   | phil_nofair | N=3,K=1   | p1        |
-   | phil_nofair | N=4,K=1   | p1        |
-
-   Results:
-
-   #+CALL: bench(phil_nofair_benchmarks)
-
-   #+RESULTS:
-   | Model       | Consts  | Partition | States | Edges | Sort 0 |  I |     Q |  Q_0 |  Opts |         t(s) |       t_p(s) |       t_i(s) |       t_r(s) |       t_a(s) | t_valmari(s) | Q_0v |
-   |-------------+---------+-----------+--------+-------+--------+----+-------+------+-------+--------------+--------------+--------------+--------------+--------------+--------------+------|
-   | phil_nofair | N=3,K=1 | p1        |   3650 |  5742 |    956 | 16 |  3023 |  956 |  2683 | 0.0592746560 | 0.0248430880 | 0.0122072230 | 0.0180669160 | 0.0312848240 |  0.005367682 |  956 |
-   | phil_nofair | N=4,K=1 | p1        |  44904 | 75584 |   9440 | 18 | 36509 | 9440 | 38332 | 1.1399154410 | 0.3453988980 | 0.2401662920 | 0.4899106610 | 0.7572538220 |  0.113009046 | 9440 |
-
-** Cyclic Server Polling
-:PROPERTIES:
-:ID:       7e4f230d-5ee9-4d00-84bd-1b2a936e2fee
-:END:
-
-   #+BEGIN_QUOTE
-   This case study is based on a cyclic server polling system, taken from [IT90].
-
-   For more information, see: http://www.prismmodelchecker.org/casestudies/polling.php
-   #+END_QUOTE
-
-   Benchmarks:
-
-   The initial partition is determined by the current station.
-
-   #+NAME: poll_benchmarks
-   | Model | Constants | Partition |
-   |-------+-----------+-----------|
-   | poll  | N=2,T=50  | s         |
-   | poll  | N=3,T=50  | s         |
-   | poll  | N=4,T=50  | s         |
-   | poll  | N=5,T=50  | s         |
-   | poll  | N=6,T=50  | s         |
-   | poll  | N=7,T=50  | s         |
-   | poll  | N=8,T=50  | s         |
-   | poll  | N=9,T=50  | s         |
-
-   Results:
-
-   #+CALL: bench(poll_benchmarks)
-
-   #+RESULTS:
-   | Model | Consts   | Partition | States | Edges | Sort 0 |   I |    Q |  Q_0 |  Opts |         t(s) |       t_p(s) |       t_i(s) |       t_r(s) |       t_a(s) | t_valmari(s) | Q_0v |
-   |-------+----------+-----------+--------+-------+--------+-----+------+------+-------+--------------+--------------+--------------+--------------+--------------+--------------+------|
-   | poll  | N=2,T=50 | s         |     12 |    22 |     12 |  10 |   12 |   12 |    18 | 0.0008483950 | 0.0006841860 | 0.0000355220 | 0.0000492120 | 0.0001176020 |  0.001614123 | NA   |
-   | poll  | N=3,T=50 | s         |     36 |    84 |     36 |  21 |   36 |   36 |    59 | 0.0011711260 | 0.0009708210 | 0.0000515500 | 0.0000792950 | 0.0001463870 |  0.001475102 | NA   |
-   | poll  | N=4,T=50 | s         |     96 |   272 |     96 |  36 |   96 |   96 |   189 | 0.0022220210 | 0.0017541980 | 0.0002040780 | 0.0001504100 | 0.0003847900 |  0.001608076 | NA   |
-   | poll  | N=5,T=50 | s         |    240 |   800 |    240 |  69 |  240 |  240 |   636 | 0.0050187920 | 0.0034426060 | 0.0005370600 | 0.0006597340 | 0.0012748220 |  0.002082991 | NA   |
-   | poll  | N=6,T=50 | s         |    576 |  2208 |    576 |  78 |  576 |  576 |  1427 | 0.0134682950 | 0.0085022040 | 0.0014425170 | 0.0023570030 | 0.0044400710 |  0.003906478 | NA   |
-   | poll  | N=7,T=50 | s         |   1344 |  5824 |   1344 | 117 | 1344 | 1344 |  4380 | 0.0438199740 | 0.0261821490 | 0.0060602420 | 0.0088203580 | 0.0156700730 |  0.146802595 | NA   |
-   | poll  | N=8,T=50 | s         |   3072 | 14848 |   3072 | 136 | 3072 | 3072 | 10300 | 0.0971086310 | 0.0464659790 | 0.0170125600 | 0.0280937530 | 0.0469848680 |  0.149056317 | NA   |
-   | poll  | N=9,T=50 | s         |   6912 | 36864 |   6912 | 171 | 6912 | 6912 | 26212 | 0.2728167060 | 0.1187546460 | 0.0438468550 | 0.0901830570 | 0.1413547160 |  0.174681553 | NA   |
-
-** Mutual Exclusion à la Rabin
-:PROPERTIES:
-:ID:       754e893c-474b-4a3b-a870-7bb69d4c4a0b
-:END:
-
-   #+BEGIN_QUOTE
-   This case study is based on Rabin's solution to the well known mutual exclusion problem [Rab82].
-
-   For more information, see: http://www.prismmodelchecker.org/casestudies/rabin.php
-   #+END_QUOTE
-
-   Benchmarks:
-
-   We partition on the state of the first process initially.
-
-   Unfortunately, we can only test N upto 4, since the size of the transaction
-   file for N=5 is already 5 GB.
-
-   #+NAME: rabin_benchmarks
-   | Model | Constants | Partition |
-   |-------+-----------+-----------|
-   | rabin | N=3       | p1        |
-   | rabin | N=4       | p1        |
-
-   #+CALL: bench(rabin_benchmarks)
-
-   #+RESULTS:
-   | Model | Consts | Partition |  States |   Edges | Sort 0 | I |      Q |    Q_0 | Opts |          t(s) |        t_p(s) |        t_i(s) |        t_r(s) |        t_a(s) | t_valmari(s) |   Q_0v |
-   |-------+--------+-----------+---------+---------+--------+---+--------+--------+------+---------------+---------------+---------------+---------------+---------------+--------------+--------|
-   | rabin | N=3    | p1        |   73402 |  183438 |  27766 | 6 |  11348 |   6389 |    0 |  2.2583024290 |  0.7124565070 |  0.3522928110 |  1.0694487250 |  1.4813627410 |  0.130309093 |   6389 |
-   | rabin | N=4    | p1        | 1839572 | 4808224 | 668836 | 7 | 240744 | 126402 |    0 | 90.3695585910 | 25.3093680120 | 11.9820889700 | 46.3475014590 | 61.5265400030 |  4.535178263 | 126402 |
-
-** Self Stabilisation
-*** Beauquier
-:PROPERTIES:
-:ID:       94785b23-df89-4daa-a615-ba97a16661a0
-:END:
-
-    #+BEGIN_QUOTE
-    This case study is based on Beauquier, Gradinariu and Johnen's self-stabilising algorithm [BGJ99].
-
-    For more information, see: http://www.prismmodelchecker.org/casestudies/self-stabilisation.php
-    #+END_QUOTE
-
-    Benchmarks:
-
-    We partition on the state of the first process.
-
-    #+NAME: beauquier_benchmarks
-    | Model     | Constants         | Partition |
-    |-----------+-------------------+-----------|
-    | beauquier | N=3,K=0,k=0       | d1,p1     |
-    | beauquier | N=3,K=0,k=1:2:3   | d1,p1     |
-    | beauquier | N=3,K=1:1:100,k=3 | d1,p1     |
-
-    Results:
-
-    #+CALL: bench(beauquier_benchmarks)
-
-    #+RESULTS:
-    | Model     | Consts            | Partition | States | Edges | Sort 0 | I |   Q | Q_0 | Opts |         t(s) |       t_p(s) |       t_i(s) |       t_r(s) |       t_a(s) | t_valmari(s) | Q_0v |
-    |-----------+-------------------+-----------+--------+-------+--------+---+-----+-----+------+--------------+--------------+--------------+--------------+--------------+--------------+------|
-    | beauquier | N=3,K=0,k=0       | d1,p1     |    160 |   240 |     64 | 7 | 156 |  64 |   70 | 0.0054042780 | 0.0043894410 | 0.0003494090 | 0.0004709010 | 0.0008911640 |  0.001732362 |   64 |
-    | beauquier | N=3,K=0,k=1:2:3   | d1,p1     |    160 |   240 |     64 | 7 | 156 |  64 |   70 | 0.0026586000 | 0.0018153220 | 0.0002680470 | 0.0004496140 | 0.0007550450 |  0.001701858 |   64 |
-    | beauquier | N=3,K=1:1:100,k=3 | d1,p1     |    160 |   240 |     64 | 7 | 156 |  64 |   70 | 0.0026884210 | 0.0018925630 | 0.0002718390 | 0.0004044380 | 0.0007133480 |  0.001542218 |   64 |
-
-*** Herman
-:PROPERTIES:
-:ID:       ab8fc607-28eb-4618-9369-20353be3b7ec
-:END:
-
-    #+BEGIN_QUOTE
-    This case study is based on Herman's self-stabilising algorithm [Her90].
-
-    For more information, see: http://www.prismmodelchecker.org/casestudies/self-stabilisation.php
-    #+END_QUOTE
-
-    Benchmarks:
-
-    We partition on the state of the first process.
-
-    #+NAME: herman_benchmarks
-    | Model  | Constants          | Partition |
-    |--------+--------------------+-----------|
-    | herman | N=11,K=0,k=0       | x1        |
-    | herman | N=13,K=0,k=0       | x1        |
-    | herman | N=15,K=0,k=0       | x1        |
-
-    Results:
-
-    #+CALL: bench(herman_benchmarks)
-
-    #+RESULTS:
-    | Model  | Consts       | Partition | States |    Edges | Sort 0 | I |     Q |   Q_0 |     Opts |          t(s) |        t_p(s) |       t_i(s) |        t_r(s) |        t_a(s) | t_valmari(s) | Q_0v |
-    |--------+--------------+-----------+--------+----------+--------+---+-------+-------+----------+---------------+---------------+--------------+---------------+---------------+--------------+------|
-    | herman | N=11,K=0,k=0 | x1        |   2048 |   177148 |   2048 | 4 |  2048 |  2048 |   271341 |  0.5366140250 |  0.3206644650 | 0.0822131960 |  0.1083287110 |  0.2124922160 |  0.159943487 | NA   |
-    | herman | N=13,K=0,k=0 | x1        |   8192 |  1594324 |   8192 | 4 |  8192 |  8192 |  2146545 |  4.8963375250 |  2.7911046460 | 0.3606212620 |  1.1401700670 |  2.0782951680 |  1.317832894 | NA   |
-    | herman | N=15,K=0,k=0 | x1        |  32768 | 14348908 |  32768 | 4 | 32768 | 32768 | 24579335 | 49.8407456710 | 32.0083210790 | 3.4641624420 | 12.3775878660 | 17.6873562750 | 15.226739963 | NA   |
-
-*** Israeli and Jalfon
-:PROPERTIES:
-:ID:       c6c91d7d-0c6e-41ff-8610-7f1cd020393d
-:END:
-
-    #+BEGIN_QUOTE
-    This case study is based on Israeli and Jalfon's self-stabilising algorithm [IJ90].
-
-    For more information, see: http://www.prismmodelchecker.org/casestudies/self-stabilisation.php
-    #+END_QUOTE
-
-    Benchmarks:
-
-    We partition on the state of the first process:
-
-    #+NAME: ij_benchmarks
-    | Model          | Constants         | Partition |
-    |----------------+-------------------+-----------|
-    | israeli-jalfon | N=3,K=0,k=0       | q1        |
-    | israeli-jalfon | N=3,K=0,k=1:1:3   | q1        |
-    | israeli-jalfon | N=3,K=1:1:100,k=0 | q1        |
-
-    Results:
-
-    #+CALL: bench(ij_benchmarks)
-
-    #+RESULTS:
-    | Model          | Consts            | Partition | States | Edges | Sort 0 | I |  Q | Q_0 | Opts |         t(s) |       t_p(s) |       t_i(s) |       t_r(s) |       t_a(s) | t_valmari(s) | Q_0v |
-    |----------------+-------------------+-----------+--------+-------+--------+---+----+-----+------+--------------+--------------+--------------+--------------+--------------+--------------+------|
-    | israeli-jalfon | N=3,K=0,k=0       | q1        |     19 |    33 |      7 | 5 | 14 |   5 |    9 | 0.0012083740 | 0.0010020590 | 0.0000514580 | 0.0000869100 | 0.0001614120 |  0.001514328 |    5 |
-    | israeli-jalfon | N=3,K=0,k=1:1:3   | q1        |     19 |    33 |      7 | 5 | 14 |   5 |    9 | 0.0009209260 | 0.0007316150 | 0.0000577930 | 0.0000717430 | 0.0001501250 |  0.001682336 |    5 |
-    | israeli-jalfon | N=3,K=1:1:100,k=0 | q1        |     19 |    33 |      7 | 5 | 14 |   5 |    9 | 0.0009256730 | 0.0007310420 | 0.0000577220 | 0.0000682320 | 0.0001451640 |  0.001568259 |    5 |
-
-** Tandem Queueing Network
-:PROPERTIES:
-:ID:       f4d75ba1-5bd9-427f-846a-c233037887d8
-:END:
-
-   #+BEGIN_QUOTE
-   This case study is based on a simple tandem queueing network, taken from [HMKS99].
-
-   For more information, see: http://www.prismmodelchecker.org/casestudies/tandem.php
-   #+END_QUOTE
-
-   Benchmarks:
-
-   We partition on the current utilization of the first queue.
-
-   #+NAME: tandem_benchmarks
-   | Model  | Constants | Partition |
-   |--------+-----------+-----------|
-   | tandem | T=1,c=3   | sc        |
-   | tandem | T=1,c=7   | sc        |
-   | tandem | T=1,c=15  | sc        |
-   | tandem | T=1,c=31  | sc        |
-   | tandem | T=1,c=63  | sc        |
-   | tandem | T=1,c=127 | sc        |
-   | tandem | T=1,c=255 | sc        |
-
-   Results:
-
-   #+CALL: bench(tandem_benchmarks)
-
-   #+RESULTS:
-   | Model  | Consts    | Partition | States |  Edges | Sort 0 |    I |      Q |    Q_0 |   Opts |         t(s) |       t_p(s) |       t_i(s) |       t_r(s) |       t_a(s) | t_valmari(s) | Q_0v |
-   |--------+-----------+-----------+--------+--------+--------+------+--------+--------+--------+--------------+--------------+--------------+--------------+--------------+--------------+------|
-   | tandem | T=1,c=3   | sc        |     28 |     71 |     28 |   14 |     28 |     28 |     67 | 0.0012204660 | 0.0010410840 | 0.0000436570 | 0.0000566860 | 0.0001147310 |  0.001533843 | NA   |
-   | tandem | T=1,c=7   | sc        |    120 |    363 |    120 |   30 |    120 |    120 |    306 | 0.0028063490 | 0.0021379790 | 0.0002532330 | 0.0002302300 | 0.0005184930 |  0.002015983 | NA   |
-   | tandem | T=1,c=15  | sc        |    496 |   1619 |    496 |   62 |    496 |    496 |   1331 | 0.0098958290 | 0.0055752370 | 0.0018006410 | 0.0017059840 | 0.0038092730 |  0.003074152 | NA   |
-   | tandem | T=1,c=31  | sc        |   2016 |   6819 |   2016 |  126 |   2016 |   2016 |   5251 | 0.0469872290 | 0.0229718530 | 0.0080544630 | 0.0129506950 | 0.0220459930 |  0.153096167 | NA   |
-   | tandem | T=1,c=63  | sc        |   8128 |  27971 |   8128 |  254 |   8128 |   8128 |  20771 | 0.2275481120 | 0.1098518430 | 0.0420433780 | 0.0568686420 | 0.1060195480 |  0.157777373 | NA   |
-   | tandem | T=1,c=127 | sc        |  32640 | 113283 |  32640 |  510 |  32640 |  32640 |  82531 | 0.9978470040 | 0.4330151870 | 0.1334547820 | 0.2972327800 | 0.5115283170 |  0.161372538 | NA   |
-   | tandem | T=1,c=255 | sc        | 130816 | 455939 | 130816 | 1022 | 130816 | 130816 | 328931 | 4.8591040570 | 2.0670770960 | 0.9269812650 | 1.3728879970 | 2.4489077610 |  0.444020561 | NA   |
-
-** WLAN
-:PROPERTIES:
-:ID:       c808971a-8c52-41c3-8de0-42aebe332be5
-:END:
-
-   #+BEGIN_QUOTE
-   This case study concerns the IEEE 802.11 Wireless LAN
-
-   We consider the scenario where two stations trying to send packets simultaneously.
-
-   The PRISM model is taken from [KNS02a] using the integer semantics given in [KNS06]. In the model one time unit
-   corresponds to 50\mu s and to ensure integer bounds, where neccessary, scaling lower bound constraints down and
-   upper bound constraints up to sensure a sound abstraction.
-
-   For more information on the probabilistic timed automata see: http://www.prismmodelchecker.org/casestudies/wlan.php
-   #+END_QUOTE
-
-   Benchmarks:
-
-   We initially partition on the state of the medium: Are messages being sent
-   and are they transmitted correctly or garbled.
-
-   #+NAME: wlan_benchmarks
-   | Model             | Constants                          | Partition |
-   |-------------------+------------------------------------+-----------|
-   | wlan              | TRANS_TIME_MAX=10,k=2,K=0          | c1,c2     |
-   | wlan              | TRANS_TIME_MAX=10,k=2,K=1          | c1,c2     |
-   | wlan              | TRANS_TIME_MAX=10,k=2,K=2          | c1,c2     |
-   | wlan_collide      | COL=2,TRANS_TIME_MAX=10,k=2,K=0    | c1,c2     |
-   | wlan_collide      | COL=2,TRANS_TIME_MAX=10,k=2,K=2    | c1,c2     |
-   | wlan_collide      | COL=2,TRANS_TIME_MAX=10,k=2,K=3    | c1,c2     |
-   | wlan_time_bounded | TRANS_TIME_MAX=10,DEADLINE=100,K=0 | c1,c2     |
-   | wlan_time_bounded | TRANS_TIME_MAX=10,DEADLINE=100,K=1 | c1,c2     |
-
-   Results:
-
-   #+CALL: bench(wlan_benchmarks)
-
-   #+RESULTS:
-   | Model             | Consts                             | Partition |  States |   Edges | Sort 0 | I |      Q |    Q_0 |   Opts |          t(s) |        t_p(s) |       t_i(s) |        t_r(s) |        t_a(s) | t_valmari(s) |   Q_0v |
-   |-------------------+------------------------------------+-----------+---------+---------+--------+---+--------+--------+--------+---------------+---------------+--------------+---------------+---------------+--------------+--------|
-   | wlan              | TRANS_TIME_MAX=10,k=2,K=0          | c1,c2     |   65462 |   94146 |  28480 | 9 |  49602 |  21869 |  24891 |  1.4907680020 |  0.5026076160 | 0.2945986770 |  0.5831547880 |  0.9162903700 |  0.163609992 |  21869 |
-   | wlan              | TRANS_TIME_MAX=10,k=2,K=1          | c1,c2     |   65462 |   94146 |  28480 | 9 |  49602 |  21869 |  24891 |  1.4916662260 |  0.5080859340 | 0.2890311160 |  0.5838870710 |  0.9118207740 |  0.126401342 |  21869 |
-   | wlan              | TRANS_TIME_MAX=10,k=2,K=2          | c1,c2     |   65462 |   94146 |  28480 | 9 |  49602 |  21869 |  24891 |  1.4926573050 |  0.5059405690 | 0.2887227640 |  0.5868386100 |  0.9145294070 |  0.142771426 |  21869 |
-   | wlan_collide      | COL=2,TRANS_TIME_MAX=10,k=2,K=0    | c1,c2     |   65718 |   94452 |  28598 | 9 |  49602 |  21869 |  24886 |  1.5141671190 |  0.5187767530 | 0.2933001550 |  0.5922487230 |  0.9221007800 |  0.152518883 |  21869 |
-   | wlan_collide      | COL=2,TRANS_TIME_MAX=10,k=2,K=2    | c1,c2     |   65718 |   94452 |  28598 | 9 |  49602 |  21869 |  24886 |  1.4856360770 |  0.5008109760 | 0.2896682780 |  0.5805601160 |  0.9068050890 |  0.141182039 |  21869 |
-   | wlan_collide      | COL=2,TRANS_TIME_MAX=10,k=2,K=3    | c1,c2     |   65718 |   94452 |  28598 | 9 |  49602 |  21869 |  24886 |  1.4843975830 |  0.4955192090 | 0.2967677220 |  0.5828330410 |  0.9159187970 |  0.154033264 |  21869 |
-   | wlan_time_bounded | TRANS_TIME_MAX=10,DEADLINE=100,K=0 | c1,c2     |  582327 |  771088 | 248503 | 9 | 236170 | 107865 | 103088 | 15.3710302540 |  5.1540280990 | 3.1144350580 |  5.6189957580 |  9.2669057860 |  0.937634369 | 107865 |
-    | wlan_time_bounded | TRANS_TIME_MAX=10,DEADLINE=100,K=1 | c1,c2     | 1408676 | 1963522 | 607727 | 9 | 543056 | 243325 | 271999 | 39.7515383150 | 13.3537814010 | 6.1222019780 | 16.2128002410 | 23.8991977920 |  2.543385720 | 243325 |
-
-*** Comparing the 1-elem optimization
-
-We run a single benchmark multiple times. Once with and once without optimizations.
-
-#+NAME: wlan_benchmark_single
-| Model             | Constants                          | Partition |
-|-------------------+------------------------------------+-----------|
-| wlan_time_bounded | TRANS_TIME_MAX=10,DEADLINE=100,K=0 | c1,c2     |
-| wlan_time_bounded | TRANS_TIME_MAX=10,DEADLINE=100,K=0 | c1,c2     |
-| wlan_time_bounded | TRANS_TIME_MAX=10,DEADLINE=100,K=0 | c1,c2     |
-
-
-**** With optimizations
-:PROPERTIES:
-:ID:       a61de2c3-45be-4184-b947-7ddcc41d451f
-:END:
-
-#+CALL: bench(wlan_benchmark_single)
-
-#+RESULTS:
-| Model             | Consts                             | Partition | States |  Edges | Sort 0 | I |      Q |    Q_0 |   Opts |          t(s) |       t_p(s) |       t_i(s) |       t_r(s) |       t_a(s) | t_valmari(s) |   Q_0v |
-|-------------------+------------------------------------+-----------+--------+--------+--------+---+--------+--------+--------+---------------+--------------+--------------+--------------+--------------+--------------+--------|
-| wlan_time_bounded | TRANS_TIME_MAX=10,DEADLINE=100,K=0 | c1,c2     | 582327 | 771088 | 248503 | 9 | 236170 | 107865 | 103088 | 15.0906499200 | 5.1550493690 | 2.9967487970 | 5.4691189410 | 8.9839650110 |  0.906231199 | 107865 |
-| wlan_time_bounded | TRANS_TIME_MAX=10,DEADLINE=100,K=0 | c1,c2     | 582327 | 771088 | 248503 | 9 | 236170 | 107865 | 103088 | 15.0476778900 | 5.1313616310 | 3.0210706480 | 5.4530511170 | 8.9922491330 |  0.921986645 | 107865 |
-| wlan_time_bounded | TRANS_TIME_MAX=10,DEADLINE=100,K=0 | c1,c2     | 582327 | 771088 | 248503 | 9 | 236170 | 107865 | 103088 | 15.1975878580 | 5.1788464490 | 3.0373609690 | 5.5238989600 | 9.0837889770 |  0.913164837 | 107865 |
-
-**** Without optimizations
-:PROPERTIES:
-:ID:       82a6bf0c-547c-4e84-baa1-98c53379d7f3
-:END:
-
-#+CALL: bench_noopt(wlan_benchmark_single)
-
-#+RESULTS:
-| Model             | Consts                             | Partition | States |  Edges | Sort 0 | I |      Q |    Q_0 | Opts |          t(s) |       t_p(s) |       t_i(s) |       t_r(s) |       t_a(s) | t_valmari(s) |   Q_0v |
-|-------------------+------------------------------------+-----------+--------+--------+--------+---+--------+--------+------+---------------+--------------+--------------+--------------+--------------+--------------+--------|
-| wlan_time_bounded | TRANS_TIME_MAX=10,DEADLINE=100,K=0 | c1,c2     | 582327 | 771088 | 248503 | 9 | 236170 | 107865 |    0 | 15.3893624460 | 5.1767105960 | 3.0413877800 | 5.7070144040 | 9.2869304960 |  0.919612983 | 107865 |
-| wlan_time_bounded | TRANS_TIME_MAX=10,DEADLINE=100,K=0 | c1,c2     | 582327 | 771088 | 248503 | 9 | 236170 | 107865 |    0 | 15.3638788430 | 5.1630418130 | 3.0081672330 | 5.7031240120 | 9.2438828940 |  0.895646868 | 107865 |
-| wlan_time_bounded | TRANS_TIME_MAX=10,DEADLINE=100,K=0 | c1,c2     | 582327 | 771088 | 248503 | 9 | 236170 | 107865 |    0 | 15.2745021350 | 5.1306704560 | 3.0418000640 | 5.6621348040 | 9.2231714690 |  0.988643949 | 107865 |
-
-*** Comparing the optimizations
-
-This time with a different benchmark
-
-#+NAME: wlan_benchmark_single2
-| Model             | Constants                          | Partition |
-|-------------------+------------------------------------+-----------|
-| wlan_time_bounded | TRANS_TIME_MAX=10,DEADLINE=100,K=1 | c1,c2     |
-| wlan_time_bounded | TRANS_TIME_MAX=10,DEADLINE=100,K=1 | c1,c2     |
-| wlan_time_bounded | TRANS_TIME_MAX=10,DEADLINE=100,K=1 | c1,c2     |
-
-
-**** With both optimizations
-:PROPERTIES:
-:ID:       d39b3290-297b-4063-8464-a011a048eff4
-:END:
-
-#+CALL: bench(wlan_benchmark_single2)
-
-#+RESULTS:
-| Model             | Consts                             | Partition |  States |   Edges | Sort 0 | I |      Q |    Q_0 |   Opts |          t(s) |        t_p(s) |       t_i(s) |        t_r(s) |        t_a(s) | t_valmari(s) |   Q_0v |
-|-------------------+------------------------------------+-----------+---------+---------+--------+---+--------+--------+--------+---------------+---------------+--------------+---------------+---------------+--------------+--------|
-| wlan_time_bounded | TRANS_TIME_MAX=10,DEADLINE=100,K=1 | c1,c2     | 1408676 | 1963522 | 607727 | 9 | 543056 | 243325 | 271999 | 39.3637329540 | 13.2453896050 | 6.0643303750 | 16.0121625480 | 23.5999972580 |  2.532994467 | 243325 |
-| wlan_time_bounded | TRANS_TIME_MAX=10,DEADLINE=100,K=1 | c1,c2     | 1408676 | 1963522 | 607727 | 9 | 543056 | 243325 | 271999 | 39.4646461980 | 13.0936489980 | 6.0869881880 | 16.2522690080 | 23.8950358450 |  2.475905320 | 243325 |
-| wlan_time_bounded | TRANS_TIME_MAX=10,DEADLINE=100,K=1 | c1,c2     | 1408676 | 1963522 | 607727 | 9 | 543056 | 243325 | 271999 | 39.0647377280 | 13.0970151140 | 6.0643634280 | 15.9493142430 | 23.5259992150 |  2.651193004 | 243325 |
-
-**** Without any optimization
-:PROPERTIES:
-:ID:       408056f6-53de-4920-ba53-9308bb2fbf15
-:END:
-
-#+CALL: bench_sloooow(wlan_benchmark_single2)
-
-#+RESULTS:
-| Model             | Consts                             | Partition |  States |   Edges | Sort 0 |  I |       Q |    Q_0 | Opts |          t(s) |        t_p(s) |       t_i(s) |        t_r(s) |        t_a(s) | t_valmari(s) |   Q_0v |
-|-------------------+------------------------------------+-----------+---------+---------+--------+----+---------+--------+------+---------------+---------------+--------------+---------------+---------------+--------------+--------|
-| wlan_time_bounded | TRANS_TIME_MAX=10,DEADLINE=100,K=1 | c1,c2     | 2817352 | 3372198 | 607727 | 11 | 1038591 | 243325 |    0 | 62.8032399420 | 24.0298961220 | 8.0328573550 | 23.0904043580 | 33.8712151930 |  2.533598832 | 243325 |
-| wlan_time_bounded | TRANS_TIME_MAX=10,DEADLINE=100,K=1 | c1,c2     | 2817352 | 3372198 | 607727 | 11 | 1038591 | 243325 |    0 | 62.8096335930 | 23.9130181410 | 8.0323240210 | 23.1153711080 | 33.9856103020 |  2.672804745 | 243325 |
-| wlan_time_bounded | TRANS_TIME_MAX=10,DEADLINE=100,K=1 | c1,c2     | 2817352 | 3372198 | 607727 | 11 | 1038591 | 243325 |    0 | 62.8848181530 | 24.0303139130 | 8.0121181690 | 23.1079646660 | 33.9319790150 |  2.528242842 | 243325 |
-
-**** With only functor rewrite
-:PROPERTIES:
-:ID:       eb6cd726-026c-49ec-974a-1b6285d0fabb
-:END:
-
-#+CALL: bench_noopt(wlan_benchmark_single2)
-
-#+RESULTS:
-| Model             | Consts                             | Partition |  States |   Edges | Sort 0 | I |      Q |    Q_0 | Opts |          t(s) |        t_p(s) |       t_i(s) |        t_r(s) |        t_a(s) | t_valmari(s) |   Q_0v |
-|-------------------+------------------------------------+-----------+---------+---------+--------+---+--------+--------+------+---------------+---------------+--------------+---------------+---------------+--------------+--------|
-| wlan_time_bounded | TRANS_TIME_MAX=10,DEADLINE=100,K=1 | c1,c2     | 1408676 | 1963522 | 607727 | 9 | 543056 | 243325 |    0 | 40.4820614570 | 13.3353128550 | 6.1625531160 | 16.9365448810 | 24.6478678180 |  2.697483848 | 243325 |
-| wlan_time_bounded | TRANS_TIME_MAX=10,DEADLINE=100,K=1 | c1,c2     | 1408676 | 1963522 | 607727 | 9 | 543056 | 243325 |    0 | 40.5545896510 | 13.4405492660 | 6.1304969200 | 16.8959012700 | 24.5962440200 |  2.516830279 | 243325 |
-| wlan_time_bounded | TRANS_TIME_MAX=10,DEADLINE=100,K=1 | c1,c2     | 1408676 | 1963522 | 607727 | 9 | 543056 | 243325 |    0 | 40.8296828650 | 13.4560628920 | 6.1831625030 | 17.1048950840 | 24.8651696430 |  2.539904578 | 243325 |
-
-**** With only 1-elem optimization
-:PROPERTIES:
-:ID:       74566779-0749-4bbd-9556-80f857144793
-:END:
-
-#+CALL: bench_nofunctrans(wlan_benchmark_single2)
-
-#+RESULTS:
-| Model             | Consts                             | Partition |  States |   Edges | Sort 0 |  I |       Q |    Q_0 |   Opts |          t(s) |        t_p(s) |       t_i(s) |        t_r(s) |        t_a(s) | t_valmari(s) |   Q_0v |
-|-------------------+------------------------------------+-----------+---------+---------+--------+----+---------+--------+--------+---------------+---------------+--------------+---------------+---------------+--------------+--------|
-| wlan_time_bounded | TRANS_TIME_MAX=10,DEADLINE=100,K=1 | c1,c2     | 2817352 | 3372198 | 607727 | 11 | 1038591 | 243325 | 272066 | 62.3224133500 | 24.0014545030 | 8.0163584000 | 22.5763681410 | 33.3185527870 |  2.538228830 | 243325 |
-| wlan_time_bounded | TRANS_TIME_MAX=10,DEADLINE=100,K=1 | c1,c2     | 2817352 | 3372198 | 607727 | 11 | 1038591 | 243325 | 272066 | 62.4165430840 | 23.9578211250 | 8.0180667980 | 22.6588742730 | 33.4171848350 |  2.526273353 | 243325 |
-| wlan_time_bounded | TRANS_TIME_MAX=10,DEADLINE=100,K=1 | c1,c2     | 2817352 | 3372198 | 607727 | 11 | 1038591 | 243325 | 272066 | 62.8521293030 | 23.9960135000 | 8.1913510000 | 22.7039631120 | 33.7983183080 |  2.539817679 | 243325 |
-
-** Zeroconf
-:PROPERTIES:
-:ID:       e8a80143-4f49-4109-8f58-950514ada685
-:END:
-
-   #+BEGIN_QUOTE
-   This case study concerns the IPv4 Zeroconf Protocol [CAG02]
-
-   We consider the probabilistic timed automata models presented in [KNPS06] using
-   the integer semantics also presented in the paper.
-
-   For more information, see: http://www.prismmodelchecker.org/casestudies/zeroconf.php
-
-   =====================================================================================
-
-   PARAMETERS
-
-   - reset :: reset is true/false dependent on whether the reset/norest model is to be analysed
-   - loss :: probability of message (0.1, 0.01, 0.001 and 0)
-   - K :: number of probes (4 in standard) 1:1:8
-   - N :: number of concrete hosts, e.g. 20 or 1000 for small/large network
-   - err :: error cost from 1e+6 to 1e+12
-   - bound :: time bound from 0:50 (then set T to be 1+maximum value of bound in experiment)
-   #+END_QUOTE
-
-   Benchmarks:
-
-   We partition on part of the current state of the environment.
-
-   #+NAME: zeroconf_benchmarks
-   | Model                 | Constants                            | Partition |
-   |-----------------------+--------------------------------------+-----------|
-   | zeroconf              | N=1000,K=4,err=0,reset=true          | n,n0,n1,b |
-   | zeroconf              | N=1000,K=4,err=0,reset=false         | n,n0,n1,b |
-   | zeroconf_time_bounded | N=1000,K=1,T=11,bound=10,reset=true  | n,n0,n1,b |
-   | zeroconf_time_bounded | N=1000,K=1,T=11,bound=10,reset=false | n,n0,n1,b |
-
-   Results:
-
-   #+CALL: bench(zeroconf_benchmarks)
-
-   #+RESULTS:
-   | Model                 | Consts                               | Partition | States |   Edges | Sort 0 |    I |      Q |    Q_0 |   Opts |          t(s) |       t_p(s) |       t_i(s) |       t_r(s) |        t_a(s) | t_valmari(s) |   Q_0v |
-   |-----------------------+--------------------------------------+-----------+--------+---------+--------+------+--------+--------+--------+---------------+--------------+--------------+--------------+---------------+--------------+--------|
-   | zeroconf              | N=1000,K=4,err=0,reset=true          | n,n0,n1,b |   2443 |    2968 |   1088 |   16 |   1206 |    580 |    179 |  0.0358108630 | 0.0167680330 | 0.0057826350 | 0.0103080610 |  0.0170235500 |  0.003827381 |    578 |
-   | zeroconf              | N=1000,K=4,err=0,reset=false         | n,n0,n1,b | 876995 | 1281359 | 307768 | 1722 | 435509 | 194292 | 195033 | 23.5491846280 | 7.4090193180 | 4.6009392190 | 8.3819097560 | 14.8418591750 |  1.670716063 | 194290 |
-   | zeroconf_time_bounded | N=1000,K=1,T=11,bound=10,reset=true  | n,n0,n1,b |   9523 |   11992 |   4214 |   17 |   4375 |   2102 |   1140 |  0.1552350690 | 0.0627752380 | 0.0336032210 | 0.0461910700 |  0.0833916190 |  0.125739644 |   2102 |
-   | zeroconf_time_bounded | N=1000,K=1,T=11,bound=10,reset=false | n,n0,n1,b |  37160 |   51852 |  14834 |   59 |  16412 |   7525 |   6791 |  0.8208913870 | 0.2498574720 | 0.1718957150 | 0.3022022560 |  0.4914674350 |  0.122138130 |   7525 |
diff --git a/prism/valmari-extract-sort1.hs b/prism/valmari-extract-sort1.hs
deleted file mode 100644
index c12caeb..0000000
--- a/prism/valmari-extract-sort1.hs
+++ /dev/null
@@ -1,55 +0,0 @@
--- Usage:
---
---   mdpmin < input.valmari | runhaskell valmari-extract-sort1.hs mdp
---
--- This is a small script that extracts the size of sort 1 from the output of
--- the valmari tool for MDPs.
-
-
--- This exploits the fact that the valmari implementation prints a list of final
--- blocks that are descendants of a corresponding initial block. Since all
--- states that are _not_ in sort 1 share one block initially, we just have to
--- count the final blocks that origin form all other initial blocks.
---
--- This is particularly easy, since valmari omits the first block from the in-
--- and output. Since the first block is the block of non-sort-1 states in our
--- input, we just have to count all the states in all blocks printed in the
--- outpu.
-
-
-module Main where
-
-import           System.Environment
-
--- | Expects the output of valmaris tool, already tokenized on whitespace and
--- returns the number of final blocks that are in sort 1.
---
---
--- The input format is essentially:
---
--- MC              ::= <sizes> <l_transitions> <w_transitions> <blocks>
--- <sizes>         ::= num_states num_choices num_l_trans num_w_trans num_blocks
--- <l_transitions> ::= <l_transition>*
--- <l_transition>  ::= source choice target
--- <w_transitions> ::= <w_transition>*
--- <w_transition>  ::= source weight target
--- <blocks>        ::= <block>*
--- <block>         ::= state* 0
-
-extractSort1 :: [String] -> Int
-extractSort1 (_ : _ : numLTrans' : numWTrans' : _ : rest) =
-  let numTrans = read numLTrans' + read numWTrans'
-      blocks   = drop (numTrans * 3) rest -- Drop all the 'from' 'label' 'to' triples
-  in  length (filter (/= "0") blocks)
-
-
-main :: IO ()
-main = do
-  args <- getArgs
-  case args of
-    ["mdp"] -> do
-      sort1 <- (extractSort1 . words) <$> getContents
-      print sort1
-    _ -> do
-      _ <- getContents -- Ignore input if not an mdp
-      putStrLn "NA"
diff --git a/valmari_fig4/bench.py b/valmari_fig4/bench.py
deleted file mode 100755
index 75d8402..0000000
--- a/valmari_fig4/bench.py
+++ /dev/null
@@ -1,60 +0,0 @@
-#!/usr/bin/python
-
-import sys
-import tempfile
-import subprocess
-import re
-import os
-
-
-def generate_model(output_file, h):
-    subprocess.run(["./generate.py", str(h)], stdout=output_file)
-
-
-def extract_time(perf_output):
-    "returns the measured time from the perf output in seconds"
-    m = re.search(r'(\d+.\d+)\W+seconds time elapsed', str(perf_output))
-    return m[1]
-
-
-def run_copar(copar, input_file):
-    process = subprocess.run(
-        ['perf', 'stat', copar],
-        stdin=input_file,
-        stdout=subprocess.DEVNULL,
-        stderr=subprocess.PIPE,
-        env={'LC_ALL': 'C'})
-
-    try:
-        process.check_returncode()
-    except subprocess.CalledProcessError as e:
-        err = os.fdopen(sys.stderr.fileno(), 'wb')
-        err.write(process.stderr)
-        err.flush()
-        raise e
-
-    return extract_time(process.stderr)
-
-
-def run_bench(copar, h):
-    model_file = tempfile.TemporaryFile()
-    generate_model(model_file, h)
-    model_file.seek(0)
-    time = run_copar(copar, model_file)
-
-    print("%d %s" % (h, time))
-
-
-def main(args):
-    if len(args) != 3:
-        print("Usage: %s EXECUTABLE h" % args[0])
-        sys.exit(1)
-
-    copar_binary = args[1]
-    h = int(args[2])
-
-    run_bench(copar_binary, h)
-
-
-if __name__ == "__main__":
-    main(sys.argv)
diff --git a/valmari_fig4/benchmark.org b/valmari_fig4/benchmark.org
deleted file mode 100644
index b644a3d..0000000
--- a/valmari_fig4/benchmark.org
+++ /dev/null
@@ -1,130 +0,0 @@
-#+TITLE: Figure 4 from Valmari & Franceschinis
-
-* Introduction
-
-  This benchmark implements figure 4 from [fn:1]. It is intended to show that
-  the runtime complexity is indeed $O(m \log n)$ and not $O(m \log^2 n)$.
-
-* Benchmarking
-
-  First, we generate the model from figure 4 for each $h$ and measure the time
-  to partition it.
-
-  Replace ~../../copar/bin/copar~ by the path to the tested program and Beware:
-  evaluating the following snippet can take a while.
-
-  #+BEGIN_SRC sh :exports both :eval no-export
-  echo h "time(s)"
-  for h in {4..20}; do
-    ./bench.py ../../copar/bin/copar $h
-  done
-  #+END_SRC
-
-  #+NAME: benchresults
-  #+RESULTS:
-  |  h |       time(s) |
-  |  4 |   0.002862292 |
-  |  5 |    0.00316286 |
-  |  6 |   0.004661828 |
-  |  7 |   0.007075351 |
-  |  8 |   0.013313165 |
-  |  9 |   0.025658629 |
-  | 10 |   0.055067783 |
-  | 11 |   0.117350064 |
-  | 12 |    0.24884803 |
-  | 13 |   0.541005227 |
-  | 14 |   1.120708321 |
-  | 15 |   2.469870281 |
-  | 16 |   5.183162128 |
-  | 17 |  10.774933357 |
-  | 18 |  22.683064288 |
-  | 19 |  49.498858156 |
-  | 20 | 109.218546203 |
-
-* Interpretation
-
-  We now try to fit the data onto possible curves using the Python library
-  /SciPy/.
-
-  We first need to import a few python modules.
-  
-  #+BEGIN_SRC python :session :results none
-  import numpy as np
-  import matplotlib.pyplot as plt
-  from scipy.optimize import curve_fit
-  #+END_SRC
-
-** Possible functions to fit
-
-   Here are the functions that our data could fit. As mentioned above, the
-   complexity should be $n \log n$ and not $n \log^2 n$.
-
-   - The good function, implementing $n \log n$:
-   
-     #+BEGIN_SRC python :session :results none
-     def func_good(x, a, b):
-         return a * x * np.log(x) + b
-     #+END_SRC
-
-   - The bad function, implementing $n \log^2 n$:
-
-     #+BEGIN_SRC python :session :results none
-     def func_bad(x, a, b):
-         return a * x * (np.log(x)**2) + b
-     #+END_SRC
-
-** Trying to fit the data
-
-   Let's first import the data we generated earlier into python. A model for $h$
-   has $n = 2^h$ states one transition per state.
-
-   #+BEGIN_SRC python :session :var data=benchresults :results none
-   xdata = np.array([2**a[0] for a in data[1:]])
-   ydata = np.array([a[1] for a in data[1:]])
-   #+END_SRC
-
-   And let SciPy do its magic to calculate the fitting coefficients with the
-   ~curve_fit~ function for both ~func_good~ and ~func_bad~.
-   
-   #+BEGIN_SRC python :session :exports both
-   popt_good, pcov_good = curve_fit(func_good, xdata, ydata)
-   popt_bad, pcov_bad = curve_fit(func_bad, xdata, ydata)
-   [("", "a", "b"),
-    ("good", popt_good[0], popt_good[1]),
-    ("bad", popt_bad[0], popt_bad[1])
-   ]
-   #+END_SRC
-
-   #+RESULTS:
-   |      |                      a |                    b |
-   | good | 7.4470666850016445e-06 | -0.21839458264866904 |
-   | bad  |  5.417012783955984e-07 |   0.2258533257706899 |
-
-** Plot
-
-   Finally, plot the real data and the fitted curves:
-
-   #+BEGIN_SRC python :session :results file :exports both
-   plt.clf()
-   plt.xlabel("n")
-   plt.ylabel("time(s)")
-
-   plt.plot(xdata, func_good(xdata, *popt_good), label='good')
-   plt.plot(xdata, func_bad(xdata, *popt_bad), label='bad')
-   plt.plot(xdata, ydata, 'o', label='measurement', fillstyle='none')
-
-   plt.legend()
-
-   #plt.show()
-   filename = "benchmarks.png"
-   plt.savefig(filename, dpi=150)
-   filename
-   #+END_SRC
-
-   #+RESULTS:
-   [[file:benchmarks.png]]
-
-  
-* Footnotes
-
-[fn:1] Valmari and Franceschinis: Simple O(m log n) Time Markov Chain Lumping
diff --git a/valmari_fig4/generate.py b/valmari_fig4/generate.py
deleted file mode 100755
index ea1f2bd..0000000
--- a/valmari_fig4/generate.py
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/usr/bin/env python
-
-import sys
-
-
-def gen_functor():
-    print("3x(PX)\n")
-
-
-def gen_state(block, column, row):
-    print("s_%d_%d: (%s, {s_%d_0})" % (column, row, block, column+1))
-
-
-def gen_final_state(h):
-    print("s_%d_0: (2, {s_%d_0})" % (h+1, h+1))
-
-
-def gen_n_states(block, column, n):
-    for row in range(0, n):
-        gen_state(block, column, row)
-
-
-def gen_column(h, column):
-    if column == 0:
-        gen_n_states("0", column, 2**h)
-    else:
-        gen_n_states("1", column, 2**(column-1))
-
-
-def gen_all(h):
-    gen_functor()
-    gen_final_state(h)
-    for column in reversed(range(0, h+1)):
-        gen_column(h, column)
-
-
-def main(args):
-    if len(args) != 2:
-        print("Usage: %s h" % args[0])
-        sys.exit(1)
-
-    h = int(args[1])
-    gen_all(h)
-
-
-if __name__ == "__main__":
-    main(sys.argv)
diff --git a/wta/README.md b/wta/README.md
deleted file mode 100644
index 9f79db9..0000000
--- a/wta/README.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# Benchmarks for Weighted Tree Automata
-
-The benchmarks in this directory are contained in an interactive Emacs org-mode
-file `benchmarks.org` that contains the commands used to generated the results
-as well as the results themselves.
-
-Unfortunately, Gitlab's rendering of org-mode markup is poor and hides the
-actual results, so this file is best viewed in a text editor (e.g. Emacs) or
-[pre-rendered as PDF][1].
-
-[1]: https://git8.cs.fau.de/software/copar-benchmarks/wikis/uploads/053845133bb13efa9bef4e6cc96743ba/benchmarks.pdf
diff --git a/wta/bench.py b/wta/bench.py
deleted file mode 100755
index 2060322..0000000
--- a/wta/bench.py
+++ /dev/null
@@ -1,392 +0,0 @@
-#!/usr/bin/env python3
-
-import argparse
-import os
-import sys
-import subprocess
-import json
-import numpy as np
-import scipy.stats as st
-
-samples = 5
-
-
-def from_maybe(default, x):
-    return default if x is None else x
-
-
-# Edge Spec should be ("transitions", str) or ("zero-frequency", str)
-def coalg_file(states, monoid, symbols, edge_spec, different_values, i):
-    if edge_spec[0] == "transitions":
-        return "bench/wta_%s_%s_t%s_%s_%s_%d" % (monoid, symbols, edge_spec[1],
-                                         from_maybe("", different_values), states, i)
-    else:
-        return "bench/wta_%s_%s_%s_%s_%s_%d" % (monoid, symbols, edge_spec[1],
-                                         from_maybe("", different_values), states, i)
-
-
-def check_zerotrans(args):
-    if args.zero_frequency:
-        edge_spec = ("zero-frequency", args.zero_frequency)
-    elif args.transitions:
-        edge_spec = ("transitions", args.transitions)
-    elif args.out_degree:
-        edge_spec = ("transitions", args.out_degree) # HACK
-    else:
-        print("One of --zero-frequency and --transitions must be provided")
-        sys.exit(1)
-
-    args.edge_spec = edge_spec
-
-
-def generate(args):
-    check_zerotrans(args)
-
-    if args.out_degree:
-        args.edge_spec = ("transitions", str(int(args.out_degree)*int(args.states)))
-
-    generator = args.generator
-    states = args.states
-    monoid = args.monoid
-    symbols = args.symbols
-    different_values = args.different_values
-    edge_spec = args.edge_spec
-
-    os.makedirs("bench", exist_ok=True)
-
-    for i in range(0, samples):
-        f = coalg_file(states, monoid, symbols, edge_spec, different_values,
-                       i) + ".coalgebra"
-
-        if os.path.exists(f):
-            continue
-
-        cmd = [generator, "--states", states, "--monoid", monoid, "--symbols", symbols]
-        cmd += ["--" + edge_spec[0], edge_spec[1]]
-        if not (different_values is None):
-            cmd += ["--different-values", different_values]
-
-        subprocess.run(cmd, stdout=open(f, "w+"))
-
-
-def run_one(args, i):
-    copar = args.copar
-    states = args.states
-    monoid = args.monoid
-    symbols = args.symbols
-    different_values = args.different_values
-    edge_spec = args.edge_spec
-
-    f = coalg_file(states, monoid, symbols, edge_spec, different_values, i) + ".coalgebra"
-
-    copar_args = [copar, 'refine', '--stats-json', f]
-
-    try:
-        out = subprocess.run(
-            copar_args,
-            stdout=subprocess.DEVNULL,
-            stderr=subprocess.PIPE,
-            check=True)
-    except subprocess.CalledProcessError as e:
-        print("error: %s" % e.stderr.decode('utf-8'))
-        raise
-
-    stats = json.loads(out.stderr.decode('utf-8'))
-
-    stats['monoid'] = monoid
-    stats['symbols'] = symbols
-    stats['edge-spec'] = str(edge_spec)
-    stats['mon-values'] = from_maybe("", different_values)
-    stats['i'] = i
-
-    return stats
-
-
-def run_one_simple(args, i):
-    copar = args.copar
-    states = args.states
-    monoid = args.monoid
-    symbols = args.symbols
-    edge_spec = args.edge_spec
-    different_values= args.different_values
-
-    f = coalg_file(states, monoid, symbols, edge_spec, different_values, i) + ".coalgebra"
-
-    copar_args = [copar, 'refine', f]
-
-    subprocess.run(
-        copar_args,
-        stdout=subprocess.DEVNULL,
-        check=True)
-
-
-def confidence(vals):
-    """Compute the 95% confidence intervall (CI) for the mean with the student
-distribution.
-
-Returns a tuple of (mean, lower, upper), where lower and upper are the bounds
-of the CI"""
-
-    # For a larger sample size (> 30), we could also use the normal
-    # distribution.
-    #
-    # This code is taken from
-    # https://stackoverflow.com/questions/15033511/compute-a-confidence-interval-from-sample-data/34474255#34474255
-
-    mean = np.mean(vals)
-    ci = st.t.interval(
-        0.95, len(vals) - 1, loc=np.mean(vals), scale=st.sem(vals))
-
-    return (mean, ci[0], ci[1])
-
-
-def stddev(vals):
-    """Compute the mean and standard deviation intervall on a sample.
-
-This uses the corrected sample standard deviation."""
-
-    # see also:
-    # https://en.wikipedia.org/wiki/Standard_deviation#Corrected_sample_standard_deviation
-    mean = np.mean(vals)
-    std = np.std(vals, ddof=1)
-
-    return (mean, std)
-
-
-def print_row(d, header, stddev):
-    keys = [
-        'i', 'states', 'edges', 'initial-partition-size',
-        'final-partition-size', 'explicit-final-partition-size',
-        'size1-skipped'
-    ]
-
-    for k in [
-            'overall-duration', 'parse-duration', 'algorithm-duration',
-            'initialize-duration', 'refine-duration'
-    ]:
-        keys.append(k)
-        if stddev:
-            keys.append(k + '-stddev')
-
-    values = [d[k] for k in keys]
-
-    if header:
-        print('\t'.join(keys))
-    else:
-        print('\t'.join(str(x) for x in values))
-
-
-def run(args):
-    check_zerotrans(args)
-    if args.out_degree:
-        args.edge_spec = ("transitions", str(int(args.out_degree)*int(args.states)))
-
-    results = [run_one(args, i) for i in range(0, samples)]
-
-    def confidencekey(vals, k):
-        return confidence(list(float(x[k]) for x in vals))
-
-    def stddevkey(vals, k):
-        return stddev(list(float(x[k]) for x in vals))
-
-    combined = results[0].copy()
-    combined['i'] = samples
-
-    for k in [
-            'overall-duration', 'parse-duration', 'initialize-duration',
-            'refine-duration', 'algorithm-duration'
-    ]:
-        ci = stddevkey(results, k)
-        combined[k] = str(ci[0])
-        combined[k + '-stddev'] = str(ci[1])
-
-    if args.indiv:
-        if args.header:
-            print_row(combined, True, stddev=False)
-        for res in results:
-            print_row(res, False, stddev=False)
-    else:
-        if args.header:
-            print_row(combined, True, stddev=args.stddev)
-        print_row(combined, False, stddev=args.stddev)
-
-
-def test(args, states):
-    print("Trying %d..." % states)
-
-    args.states = str(states)
-    if args.out_degree:
-        args.transitions = str(states * int(args.out_degree))
-
-    generate(args)
-
-    for i in range(0, samples):
-        try:
-            run_one_simple(args, i)
-        except subprocess.CalledProcessError:
-            return False
-
-    return True
-
-
-def find_bad(args, good):
-    states = good*2
-
-    if test(args, states):
-        return find_bad(args, states)
-    else:
-        return (good, states)
-
-
-def bisect_states(args):
-    check_zerotrans(args)
-
-    global samples
-    samples = 1
-
-    states = args.start_states
-
-    good = args.good or 0
-    bad = args.bad
-
-    if bad is None:
-        if good and states < good:
-            states = good+1
-
-        if test(args, states):
-            (good, bad) = find_bad(args, states)
-        else:
-            bad = states
-
-    while good+1 < bad:
-        states = good + (bad-good)//2
-        if test(args, states):
-            good = states
-        else:
-            bad = states
-
-    print("First bad state count: %d" % bad)
-
-
-def test_trans(args, transitions):
-    print("Trying %d..." % transitions)
-
-    args.transitions = str(transitions)
-
-    generate(args)
-
-    for i in range(0, samples):
-        try:
-            run_one_simple(args, i)
-        except subprocess.CalledProcessError:
-            return False
-
-    return True
-
-
-def find_bad_trans(args, good):
-    transitions = good*2
-
-    if test_trans(args, transitions):
-        return find_bad(args, transitions)
-    else:
-        return (good, transitions)
-
-
-def bisect_trans(args):
-    # Hacks and hacks and hacks
-    args.zero_frequency = None
-    args.out_degree = None
-
-    transitions = args.start_transitions
-
-    global samples
-    samples = 1
-
-    good = args.good or 0
-    bad = args.bad
-
-    if bad is None:
-        if good and transitions < good:
-            transitions = good+1
-
-        if test_trans(args, transitions):
-            (good, bad) = find_bad_trans(args, transitions)
-        else:
-            bad = transitions
-
-    while good+1 < bad:
-        transitions = good + (bad-good)//2
-        if test_trans(args, transitions):
-            good = transitions
-        else:
-            bad = transitions
-
-    print("First bad transition count: %d" % bad)
-
-
-def main():
-    parser = argparse.ArgumentParser()
-    subparsers = parser.add_subparsers(required=True)
-
-    gen_parser = subparsers.add_parser('generate')
-    gen_parser.add_argument('generator')
-    gen_parser.add_argument('--states', required=True)
-    gen_parser.add_argument('--monoid', required=True)
-    gen_parser.add_argument('--symbols', required=True)
-    gen_parser.add_argument('--zero-frequency')
-    gen_parser.add_argument('--transitions')
-    gen_parser.add_argument('--out-degree')
-    gen_parser.add_argument('--different-values')
-    gen_parser.set_defaults(func=generate)
-
-    run_parser = subparsers.add_parser('run')
-    run_parser.add_argument('copar')
-    run_parser.add_argument('--states', required=True)
-    run_parser.add_argument('--monoid', required=True)
-    run_parser.add_argument('--symbols', required=True)
-    run_parser.add_argument('--zero-frequency')
-    run_parser.add_argument('--transitions')
-    run_parser.add_argument('--out-degree')
-    run_parser.add_argument('--different-values')
-    run_parser.add_argument(
-        '--stddev', action='store_true', help="report stddev for timings")
-    run_parser.add_argument(
-        '--indiv', action='store_true', help="report individual samples")
-    run_parser.add_argument(
-        '--header', action='store_true', help="Print header row for table")
-    run_parser.set_defaults(func=run)
-
-    bisect_parser = subparsers.add_parser('bisect')
-    bisect_parser.add_argument('generator')
-    bisect_parser.add_argument('copar')
-    bisect_parser.add_argument('--monoid', required=True)
-    bisect_parser.add_argument('--symbols', required=True)
-    bisect_parser.add_argument('--zero-frequency')
-    bisect_parser.add_argument('--transitions')
-    bisect_parser.add_argument('--out-degree')
-    bisect_parser.add_argument('--different-values')
-    bisect_parser.add_argument('--start-states', type=int, default=50)
-    bisect_parser.add_argument('--good', type=int)
-    bisect_parser.add_argument('--bad', type=int)
-
-    bisect_parser.set_defaults(func=bisect_states)
-
-    bisect_trans_parser = subparsers.add_parser('bisect-trans')
-    bisect_trans_parser.add_argument('generator')
-    bisect_trans_parser.add_argument('copar')
-    bisect_trans_parser.add_argument('--monoid', required=True)
-    bisect_trans_parser.add_argument('--symbols', required=True)
-    bisect_trans_parser.add_argument('--different-values')
-    bisect_trans_parser.add_argument('--states', required=True)
-    bisect_trans_parser.add_argument('--start-transitions', type=int, default=100)
-    bisect_trans_parser.add_argument('--good', type=int)
-    bisect_trans_parser.add_argument('--bad', type=int)
-    bisect_trans_parser.set_defaults(func=bisect_trans)
-
-    args = parser.parse_args()
-    args.func(args)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/wta/benchmarks.org b/wta/benchmarks.org
deleted file mode 100644
index a72b8a1..0000000
--- a/wta/benchmarks.org
+++ /dev/null
@@ -1,1561 +0,0 @@
-#+TITLE: Benchmarks for Weighted Tree Automata
-#+PROPERTY: header-args  :exports both :eval never-export
-#+LATEX_HEADER: \usepackage[paperheight=30cm,paperwidth=40cm,margin=0.5cm]{geometry}
-
-* What fits in 16GB RAM
-
-Finding the number of states that copar can solve in 16GB RAM for a few
-different types of WTAs.
-
-** Powerset
-*** GHC 8.6.4 with symbols 0,8 and zero-freq 0.7
-
-#+BEGIN_SRC sh
-./bench.py bisect ../../copar/bin/{random-wta,copar} --monoid powerset --symbols 0,8 --zero-frequency 0.7 --good 1400 --bad 1600 --start-states 1500
-#+END_SRC
-
-#+RESULTS:
-: Trying 1500...
-: Trying 1450...
-: Trying 1475...
-: Trying 1487...
-: Trying 1481...
-: Trying 1478...
-: Trying 1479...
-: First bad state count: 1479
-
-**** File Size
-
-#+BEGIN_SRC sh :results output
-ls -sh bench/wta_powerset_0,8_0.7_1478*
-#+END_SRC
-
-#+RESULTS:
-: 82M bench/wta_powerset_0,8_0.7_1478_0.coalgebra
-: 82M bench/wta_powerset_0,8_0.7_1478_1.coalgebra
-: 82M bench/wta_powerset_0,8_0.7_1478_2.coalgebra
-: 82M bench/wta_powerset_0,8_0.7_1478_3.coalgebra
-: 82M bench/wta_powerset_0,8_0.7_1478_4.coalgebra
-
-*** GHC 8.4.4 with symbols 0,8 and zero-freq 0.7
-
-#+BEGIN_SRC sh
-./bench.py bisect ../../copar/bin/{random-wta,copar} --monoid powerset --symbols 0,8 --zero-frequency 0.7 --start-states 1000
-#+END_SRC
-
-#+RESULTS:
-: Trying 1000...
-: Trying 2000...
-: Trying 1500...
-: Trying 1250...
-: Trying 1375...
-: Trying 1437...
-: Trying 1468...
-: Trying 1484...
-: Trying 1476...
-: Trying 1480...
-: Trying 1478...
-: Trying 1479...
-: First bad state count: 1479
-
-**** File Size
-
-#+BEGIN_SRC sh :results output
-ls -sh bench/wta_powerset_0,8_0.7_1478*
-#+END_SRC
-
-#+RESULTS:
-: 82M bench/wta_powerset_0,8_0.7_1478_0.coalgebra
-: 82M bench/wta_powerset_0,8_0.7_1478_1.coalgebra
-: 82M bench/wta_powerset_0,8_0.7_1478_2.coalgebra
-: 82M bench/wta_powerset_0,8_0.7_1478_3.coalgebra
-: 82M bench/wta_powerset_0,8_0.7_1478_4.coalgebra
-
-**** Automaton size
-
-#+begin_src sh :hlines yes
-python bench.py generate ../../copar/bin/random-wta --monoid powerset --symbols 0,8 --zero-frequency 0.7 --states 1478
-python bench.py run ../../copar/bin/copar --monoid powerset --symbols 0,8 --zero-frequency 0.7 --states 1478 --indiv --header
-#+end_src
-
-#+RESULTS:
-| i |  states |    edges | initial-partition-size | final-partition-size | explicit-final-partition-size | size1-skipped | overall-duration | parse-duration | algorithm-duration | initialize-duration | refine-duration |
-| 0 | 5243856 | 10484756 |                     10 |                   18 |                             2 |             0 |    115.339077581 |   34.439478263 |       79.458232767 |        27.712258503 |    37.668249537 |
-| 1 | 5245405 | 10487854 |                     10 |                   18 |                             2 |             0 |    114.001430765 |   34.477874858 |        78.07613373 |        27.764347556 |    37.074617863 |
-| 2 | 5243549 | 10484142 |                     10 |                   18 |                             2 |             0 |    114.862812706 |   34.668409012 |       78.756016051 |        27.741448159 |     37.09480403 |
-| 3 | 5241660 | 10480364 |                     10 |                   18 |                             2 |             0 |    114.228588077 |   34.362576104 |       78.424601434 |        27.648526393 |    37.043127108 |
-| 4 | 5243032 | 10483108 |                     10 |                   18 |                             2 |             0 |    114.692551901 |   34.827430372 |       78.414037199 |        27.723198479 |    38.276163878 |
-
-*** GHC 8.4.4 with symbols 1,0,4 and zero-freq 0.7
-
-#+BEGIN_SRC sh
-./bench.py bisect ../../copar/bin/{random-wta,copar} --monoid powerset --symbols 1,0,4 --zero-frequency 0.7
-#+END_SRC
-
-#+RESULTS:
-: Trying 50...
-: Trying 100...
-: Trying 200...
-: Trying 150...
-: Trying 175...
-: Trying 162...
-: Trying 156...
-: Trying 153...
-: Trying 151...
-: Trying 152...
-: First bad state count: 152
-
-**** File Size
-
-#+BEGIN_SRC sh :results output
-ls -sh bench/wta_powerset_1,0,4_0.7_152*
-#+END_SRC
-
-#+RESULTS:
-: 83M bench/wta_powerset_1,0,4_0.7_152_0.coalgebra
-: 83M bench/wta_powerset_1,0,4_0.7_152_1.coalgebra
-: 83M bench/wta_powerset_1,0,4_0.7_152_2.coalgebra
-: 83M bench/wta_powerset_1,0,4_0.7_152_3.coalgebra
-: 83M bench/wta_powerset_1,0,4_0.7_152_4.coalgebra
-
-**** Automaton Size
-
-#+begin_src sh :hlines yes
-python bench.py generate ../../copar/bin/random-wta --monoid powerset --symbols 1,0,4 --zero-frequency 0.7 --states 151
-python bench.py run ../../copar/bin/copar --monoid powerset --symbols 1,0,4 --zero-frequency 0.7 --states 151 --indiv --header
-#+end_src
-
-#+RESULTS:
-| i |  states |    edges | initial-partition-size | final-partition-size | explicit-final-partition-size | size1-skipped | overall-duration | parse-duration | algorithm-duration | initialize-duration | refine-duration |
-| 0 | 4131380 | 12393591 |                      7 |                   69 |                             4 |             0 |     92.530296805 |   32.925871573 |       58.292789973 |        13.413784138 |     32.25285307 |
-| 1 | 4131667 | 12394466 |                      7 |                   69 |                             4 |             0 |    104.072447103 |     32.6810851 |       70.054731043 |        22.601698388 |    34.657530397 |
-| 2 | 4130798 | 12391837 |                      7 |                   69 |                             4 |             0 |     104.65358267 |   32.641475967 |       70.686110886 |        22.881971907 |    34.580390995 |
-| 3 | 4131273 | 12393268 |                      7 |                   69 |                             4 |             0 |    104.436764929 |   33.010643372 |       70.097279338 |        22.722527765 |    34.948100296 |
-| 4 | 4131755 | 12394730 |                      7 |                   69 |                             4 |             0 |    103.940596569 |   32.874641172 |       69.748179673 |        22.561661198 |    34.530464508 |
-
-*** GHC 8.4.4 with symbols 4,3,2 and zero-freq 0.7
-
-#+BEGIN_SRC sh
-./bench.py bisect ../../copar/bin/{random-wta,copar} --monoid powerset --symbols 4,3,2 --zero-frequency 0.7
-#+END_SRC
-
-#+RESULTS:
-: Trying 50...
-: Trying 100...
-: Trying 200...
-: Trying 150...
-: Trying 175...
-: Trying 187...
-: Trying 193...
-: Trying 190...
-: Trying 191...
-: First bad state count: 191
-
-**** File Size
-
-#+BEGIN_SRC sh :results output
-ls -sh bench/wta_powerset_4,3,2_0.7_190*
-#+END_SRC
-
-#+RESULTS:
-: 83M bench/wta_powerset_4,3,2_0.7_190_0.coalgebra
-: 83M bench/wta_powerset_4,3,2_0.7_190_1.coalgebra
-: 83M bench/wta_powerset_4,3,2_0.7_190_2.coalgebra
-: 83M bench/wta_powerset_4,3,2_0.7_190_3.coalgebra
-: 83M bench/wta_powerset_4,3,2_0.7_190_4.coalgebra
-
-**** Automaton Size
-
-#+begin_src sh :hlines yes
-python bench.py generate ../../copar/bin/random-wta --monoid powerset --symbols 4,3,2 --zero-frequency 0.7 --states 190
-python bench.py run ../../copar/bin/copar --monoid powerset --symbols 4,3,2 --zero-frequency 0.7 --states 190 --indiv --header
-#+end_src
-
-#+RESULTS:
-| i |  states |    edges | initial-partition-size | final-partition-size | explicit-final-partition-size | size1-skipped | overall-duration | parse-duration | algorithm-duration | initialize-duration | refine-duration |
-| 0 | 4150153 | 12416791 |                     11 |                72964 |                           190 |       7474719 |    141.894074912 |    32.94816078 |      104.894412823 |         19.27142335 |    73.292672481 |
-| 1 | 4149881 | 12415853 |                     11 |                72964 |                           190 |       7374059 |    143.936708293 |   32.959668876 |      106.847647981 |        19.335579933 |    74.389142529 |
-| 2 | 4147912 | 12410153 |                     11 |                72964 |                           190 |       7530637 |    143.039477927 |   32.922891848 |      106.049882108 |        19.238034371 |    73.786648681 |
-| 3 | 4149832 | 12415896 |                     11 |                72964 |                           190 |       7400820 |    141.899762867 |   32.763790399 |       105.08945468 |        19.081253852 |    73.103108932 |
-| 4 | 4147931 | 12410198 |                     11 |                72964 |                           190 |       7356721 |    142.277553489 |   33.004372363 |      105.135364747 |        19.217062907 |     72.82642293 |
-
-*** GHC 8.4.4 with symbols 0,0,0,0,0,3 and zero-freq 0.7
-
-#+BEGIN_SRC sh
-./bench.py bisect ../../copar/bin/{random-wta,copar} --monoid powerset --symbols 0,0,0,0,0,3 --zero-frequency 0.7 --start-states 2
-#+END_SRC
-
-#+RESULTS:
-: Trying 2...
-: Trying 4...
-: Trying 8...
-: Trying 16...
-: Trying 12...
-: Trying 10...
-: Trying 11...
-: First bad state count: 12
-
-**** File Size
-
-#+BEGIN_SRC sh :results output
-ls -sh bench/wta_powerset_0,0,0,0,0,3_0.7_11*
-#+END_SRC
-
-#+RESULTS:
-: 47M bench/wta_powerset_0,0,0,0,0,3_0.7_11_0.coalgebra
-: 47M bench/wta_powerset_0,0,0,0,0,3_0.7_11_1.coalgebra
-: 47M bench/wta_powerset_0,0,0,0,0,3_0.7_11_2.coalgebra
-: 47M bench/wta_powerset_0,0,0,0,0,3_0.7_11_3.coalgebra
-: 47M bench/wta_powerset_0,0,0,0,0,3_0.7_11_4.coalgebra
-
-**** Automaton Size
-
-#+begin_src sh :hlines yes
-python bench.py generate ../../copar/bin/random-wta --monoid powerset --symbols 0,0,0,0,0,3 --zero-frequency 0.7 --states 11
-python bench.py run ../../copar/bin/copar --monoid powerset --symbols 0,0,0,0,0,3 --zero-frequency 0.7 --states 11 --indiv --header
-#+end_src
-
-#+RESULTS:
-| i |  states |   edges | initial-partition-size | final-partition-size | explicit-final-partition-size | size1-skipped | overall-duration | parse-duration | algorithm-duration | initialize-duration | refine-duration |
-| 0 | 1593503 | 9560952 |                      5 |                   98 |                             2 |             0 |     44.433319213 |   19.470309466 |       24.352231629 |         11.34834025 |    10.606600771 |
-| 1 | 1594688 | 9568062 |                      5 |                   98 |                             2 |             0 |      44.35660646 |   19.503070403 |       24.284648797 |        11.546398372 |    10.351405421 |
-| 2 | 1595746 | 9574410 |                      5 |                   98 |                             2 |             0 |     44.979436845 |   19.622696684 |       24.756055326 |        11.448256352 |    10.958179969 |
-| 3 | 1594811 | 9568800 |                      5 |                   98 |                             2 |             0 |     44.518512407 |   19.486959131 |       24.465812029 |        11.501689163 |     10.63837111 |
-| 4 | 1595187 | 9571056 |                      5 |                   98 |                             2 |             0 |     44.449440224 |   19.537019031 |       24.300846734 |        11.389487771 |      10.5363747 |
-
-** Z,max
-*** GHC 8.4.4 with symbols 0,8 and zero-freq 0.7
-
-#+BEGIN_SRC sh
-./bench.py bisect ../../copar/bin/{random-wta,copar} --monoid 'Z,max' --symbols 0,8 --zero-frequency 0.7
-#+END_SRC
-
-#+RESULTS:
-: Trying 50...
-: Trying 100...
-: Trying 200...
-: Trying 400...
-: Trying 800...
-: Trying 1600...
-: Trying 1200...
-: Trying 1400...
-: Trying 1500...
-: Trying 1450...
-: Trying 1475...
-: Trying 1462...
-: Trying 1456...
-: Trying 1453...
-: Trying 1451...
-: First bad state count: 1451
-
-**** File Size
-
-#+BEGIN_SRC sh :results output
-ls -sh bench/wta_Z,max_0,8_0.7_1450*
-#+END_SRC
-
-#+RESULTS:
-: 182M bench/wta_Z,max_0,8_0.7_1450_0.coalgebra
-: 182M bench/wta_Z,max_0,8_0.7_1450_1.coalgebra
-: 182M bench/wta_Z,max_0,8_0.7_1450_2.coalgebra
-: 182M bench/wta_Z,max_0,8_0.7_1450_3.coalgebra
-: 182M bench/wta_Z,max_0,8_0.7_1450_4.coalgebra
-
-**** Automaton Size
-
-#+BEGIN_SRC sh
-python bench.py generate ../../copar/bin/random-wta --monoid 'Z,max' --symbols 0,8 --zero-frequency 0.7 --states 1450
-python bench.py run ../../copar/bin/copar --monoid 'Z,max' --symbols 0,8 --zero-frequency 0.7 --states 1450 --indiv --header
-#+END_SRC
-
-#+RESULTS:
-| i |  states |    edges | initial-partition-size | final-partition-size | explicit-final-partition-size | size1-skipped | overall-duration | parse-duration | algorithm-duration | initialize-duration | refine-duration |
-| 0 | 5047826 | 10092752 |                   1458 |                13050 |                          1450 |       9457197 |    127.724360284 |   43.258927035 |       81.171137974 |        26.874901612 |    40.422676395 |
-| 1 | 5047514 | 10092128 |                   1458 |                13050 |                          1450 |       9456756 |    125.832804664 |   42.853972016 |       79.686342664 |        26.577174808 |    39.966384527 |
-| 2 | 5049772 | 10096644 |                   1458 |                13050 |                          1450 |       9460968 |    126.336593045 |    42.68312591 |       80.349875424 |        26.745235991 |    40.031230363 |
-| 3 | 5046916 | 10090932 |                   1458 |                13050 |                          1450 |       9455805 |     125.95962352 |   42.526542018 |       80.176310943 |        26.550162046 |    40.227319833 |
-| 4 | 5049229 | 10095558 |                   1458 |                13050 |                          1450 |       9460347 |    126.718920083 |   42.559013501 |       80.863052096 |        26.756405734 |    40.145229524 |
-
-*** GHC 8.4.4 with symbols 1,0,4 and zero-freq 0.7
-
-#+BEGIN_SRC sh
-./bench.py bisect ../../copar/bin/{random-wta,copar} --monoid 'Z,max' --symbols 1,0,4 --zero-frequency 0.7
-#+END_SRC
-
-#+RESULTS:
-: Trying 50...
-: Trying 100...
-: Trying 200...
-: Trying 150...
-: Trying 175...
-: Trying 162...
-: Trying 156...
-: Trying 153...
-: Trying 151...
-: First bad state count: 151
-
-#+BEGIN_SRC sh :results output
-ls -sh bench/wta_Z,max_1,0,4_0.7_150*
-#+END_SRC
-
-**** File Size
-
-#+RESULTS:
-: 162M bench/wta_Z,max_1,0,4_0.7_150_0.coalgebra
-: 162M bench/wta_Z,max_1,0,4_0.7_150_1.coalgebra
-: 162M bench/wta_Z,max_1,0,4_0.7_150_2.coalgebra
-: 162M bench/wta_Z,max_1,0,4_0.7_150_3.coalgebra
-: 162M bench/wta_Z,max_1,0,4_0.7_150_4.coalgebra
-
-**** Automaton Size
-
-#+BEGIN_SRC sh
-python bench.py generate ../../copar/bin/random-wta --monoid 'Z,max' --symbols 1,0,4 --zero-frequency 0.7 --states 150
-python bench.py run ../../copar/bin/copar --monoid 'Z,max' --symbols 1,0,4 --zero-frequency 0.7 --states 150 --indiv --header
-#+END_SRC
-
-#+RESULTS:
-| i |  states |    edges | initial-partition-size | final-partition-size | explicit-final-partition-size | size1-skipped | overall-duration | parse-duration | algorithm-duration | initialize-duration | refine-duration |
-| 0 | 4051480 | 12153896 |                    155 |                90151 |                           150 |       7087519 |    120.395749162 |   40.871788157 |        74.90886142 |        22.238988672 |     39.72932804 |
-| 1 | 4050707 | 12151583 |                    155 |                90151 |                           150 |       7087488 |    120.463605814 |    40.81720097 |       75.096220332 |         22.78192433 |    39.512466086 |
-| 2 | 4048842 | 12145992 |                    155 |                90151 |                           150 |       7083654 |    120.367574362 |   40.847872293 |       74.879748499 |        22.174812232 |    39.882652278 |
-| 3 | 4052208 | 12156090 |                    155 |                90151 |                           150 |       7090069 |    120.237306821 |   40.747046417 |       74.945644255 |        22.185753095 |    39.520022235 |
-| 4 | 4048823 | 12145929 |                    155 |                90151 |                           150 |       7084229 |    121.046334089 |   41.206127141 |       75.236966807 |        22.108849249 |    39.746848148 |
-
-*** GHC 8.4.4 with symbols 4,3,2 and zero-freq 0.7
-
-#+BEGIN_SRC sh
-./bench.py bisect ../../copar/bin/{random-wta,copar} --monoid 'Z,max' --symbols 4,3,2 --zero-frequency 0.7 --start-states 100
-#+END_SRC
-
-#+RESULTS:
-: Trying 100...
-: Trying 200...
-: Trying 150...
-: Trying 175...
-: Trying 187...
-: Trying 193...
-: Trying 190...
-: Trying 188...
-: Trying 189...
-: First bad state count: 189
-
-**** File Size
-
-#+BEGIN_SRC sh :results output
-ls -sh bench/wta_Z,max_4,3,2_0.7_188*
-#+END_SRC
-
-#+RESULTS:
-: 162M bench/wta_Z,max_4,3,2_0.7_188_0.coalgebra
-: 162M bench/wta_Z,max_4,3,2_0.7_188_1.coalgebra
-: 162M bench/wta_Z,max_4,3,2_0.7_188_2.coalgebra
-: 162M bench/wta_Z,max_4,3,2_0.7_188_3.coalgebra
-: 162M bench/wta_Z,max_4,3,2_0.7_188_4.coalgebra
-
-**** Automaton Size
-
-#+BEGIN_SRC sh
-python bench.py generate ../../copar/bin/random-wta --monoid 'Z,max' --symbols 4,3,2 --zero-frequency 0.7 --states 188
-python bench.py run ../../copar/bin/copar --monoid 'Z,max' --symbols 4,3,2 --zero-frequency 0.7 --states 188 --indiv --header
-#+END_SRC
-
-#+RESULTS:
-| i |  states |    edges | initial-partition-size | final-partition-size | explicit-final-partition-size | size1-skipped | overall-duration | parse-duration | algorithm-duration | initialize-duration | refine-duration |
-| 0 | 4020872 | 12029832 |                    197 |                71444 |                           188 |       6045852 |    115.942447016 |    40.75075879 |       71.271681594 |        18.625916768 |     39.91853539 |
-| 1 | 4017121 | 12018620 |                    197 |                71444 |                           188 |       6040501 |    113.960683621 |   40.210261362 |       69.908854506 |        18.715510494 |    39.429755908 |
-| 2 | 4017092 | 12018743 |                    197 |                71444 |                           188 |       6040038 |    114.417975118 |   40.056454421 |       70.449543532 |        18.443439893 |    39.714702929 |
-| 3 | 4013171 | 12006729 |                    197 |                71444 |                           188 |       6034912 |    104.421419394 |   40.426583126 |       60.116296609 |        10.279226244 |    37.258447268 |
-| 4 | 4018149 | 12021895 |                    197 |                71444 |                           188 |       6042204 |    104.595285757 |   40.484957759 |        60.29935373 |        10.313693438 |    37.315322541 |
-
-*** GHC 8.4.4 with symbols 0,0,0,0,0,3 and zero-freq 0.7
-
-#+BEGIN_SRC sh
-./bench.py bisect ../../copar/bin/{random-wta,copar} --monoid 'Z,max' --symbols 0,0,0,0,0,3 --zero-frequency 0.7 --start-states 6
-#+END_SRC
-
-#+RESULTS:
-: Trying 6...
-: Trying 12...
-: Trying 9...
-: Trying 10...
-: Trying 11...
-: First bad state count: 12
-
-**** File Size
-
-#+BEGIN_SRC sh :results output
-ls -sh bench/wta_Z,max_0,0,0,0,0,3_0.7_11*
-#+END_SRC
-
-#+RESULTS:
-: 79M bench/wta_Z,max_0,0,0,0,0,3_0.7_11_0.coalgebra
-: 79M bench/wta_Z,max_0,0,0,0,0,3_0.7_11_1.coalgebra
-: 79M bench/wta_Z,max_0,0,0,0,0,3_0.7_11_2.coalgebra
-: 79M bench/wta_Z,max_0,0,0,0,0,3_0.7_11_3.coalgebra
-: 79M bench/wta_Z,max_0,0,0,0,0,3_0.7_11_4.coalgebra
-
-**** Automaton Size
-
-#+BEGIN_SRC sh
-python bench.py generate ../../copar/bin/random-wta --monoid 'Z,max' --symbols 0,0,0,0,0,3 --zero-frequency 0.7 --states 11
-python bench.py run ../../copar/bin/copar --monoid 'Z,max' --symbols 0,0,0,0,0,3 --zero-frequency 0.7 --states 11 --indiv --header
-#+END_SRC
-
-#+RESULTS:
-| i |  states |   edges | initial-partition-size | final-partition-size | explicit-final-partition-size | size1-skipped | overall-duration | parse-duration | algorithm-duration | initialize-duration | refine-duration |
-| 0 | 1595450 | 9572634 |                     14 |               473731 |                            11 |       2679440 |     59.567674089 |   22.815217966 |       34.656233896 |        10.712862563 |    21.527223791 |
-| 1 | 1596274 | 9577578 |                     14 |               473599 |                            11 |       2680789 |     59.667949978 |   22.964709813 |       34.595654672 |        10.671440318 |    21.504327033 |
-| 2 | 1593533 | 9561132 |                     14 |               473725 |                            11 |       2676188 |      59.60896951 |   22.965296594 |       34.468009878 |        10.694780509 |    21.357284246 |
-| 3 | 1593597 | 9561516 |                     14 |               473516 |                            11 |       2675256 |     59.618517937 |   22.900218752 |       34.517770264 |        10.699678956 |    21.404437124 |
-| 4 | 1595682 | 9574026 |                     14 |               473759 |                            11 |       2679419 |     59.829033166 |    22.84743033 |       34.719394797 |        10.690592405 |    21.632768706 |
-
-** Word,or
-*** GHC 8.4.4 with symbols 0,8 and zero-freq 0.7
-
-#+BEGIN_SRC sh
-./bench.py bisect ../../copar/bin/{random-wta,copar} --monoid 'Word,or' --symbols 0,8 --zero-frequency 0.7 --start-states 1000
-#+END_SRC
-
-#+RESULTS:
-: Trying 1000...
-: Trying 2000...
-: Trying 1500...
-: Trying 1250...
-: Trying 1375...
-: Trying 1437...
-: Trying 1406...
-: Trying 1421...
-: Trying 1413...
-: Trying 1409...
-: Trying 1407...
-: Trying 1408...
-: First bad state count: 1409
-
-**** File Size
-
-#+BEGIN_SRC sh :results output
-ls -sh bench/wta_Word,or_0,8_0.7_1408*
-#+END_SRC
-
-#+RESULTS:
-: 164M bench/wta_Word,or_0,8_0.7_1408_0.coalgebra
-: 164M bench/wta_Word,or_0,8_0.7_1408_1.coalgebra
-: 165M bench/wta_Word,or_0,8_0.7_1408_2.coalgebra
-: 165M bench/wta_Word,or_0,8_0.7_1408_3.coalgebra
-: 165M bench/wta_Word,or_0,8_0.7_1408_4.coalgebra
-
-**** Automaton Size
-
-#+BEGIN_SRC sh
-python bench.py generate ../../copar/bin/random-wta --monoid 'Word,or' --symbols 0,8 --zero-frequency 0.7 --states 1408
-python bench.py run ../../copar/bin/copar --monoid 'Word,or' --symbols 0,8 --zero-frequency 0.7 --states 1408 --indiv --header
-#+END_SRC
-
-#+RESULTS:
-| i |  states |   edges | initial-partition-size | final-partition-size | explicit-final-partition-size | size1-skipped | overall-duration | parse-duration | algorithm-duration | initialize-duration | refine-duration |
-| 0 | 4757493 | 9512170 |                   1416 |                12672 |                          1408 |       8913294 |    122.529064018 |   49.673619826 |       69.872621378 |        24.487186873 |    37.636595831 |
-| 1 | 4757305 | 9511794 |                   1416 |                12672 |                          1408 |       8912679 |    121.871882143 |   49.468009438 |       69.396700752 |        24.548033181 |    37.526833514 |
-| 2 | 4760364 | 9517912 |                   1416 |                12672 |                          1408 |       8918643 |    122.195401637 |   49.367139075 |       69.859922188 |        24.551202679 |    37.745627532 |
-| 3 | 4760232 | 9517648 |                   1416 |                12672 |                          1408 |       8918564 |    121.744240716 |   49.628682967 |       69.111452032 |        24.573090085 |    37.819264634 |
-| 4 | 4759753 | 9516690 |                   1416 |                12672 |                          1408 |       8917624 |    118.671354206 |   49.213411686 |       66.440058464 |        25.139216435 |    33.058420248 |
-
-*** GHC 8.4.4 with symbols 1,0,4 and zero-freq 0.7
-
-#+BEGIN_SRC sh
-./bench.py bisect ../../copar/bin/{random-wta,copar} --monoid 'Word,or' --symbols 1,0,4 --zero-frequency 0.7 --start-states 120
-#+END_SRC
-
-#+RESULTS:
-: Trying 120...
-: Trying 240...
-: Trying 180...
-: Trying 150...
-: Trying 135...
-: Trying 142...
-: Trying 146...
-: Trying 148...
-: Trying 149...
-: First bad state count: 149
-
-**** File Size
-
-#+BEGIN_SRC sh :results output
-ls -sh bench/wta_Word,or_1,0,4_0.7_148*
-#+END_SRC
-
-#+RESULTS:
-: 151M bench/wta_Word,or_1,0,4_0.7_148_0.coalgebra
-: 151M bench/wta_Word,or_1,0,4_0.7_148_1.coalgebra
-: 151M bench/wta_Word,or_1,0,4_0.7_148_2.coalgebra
-: 151M bench/wta_Word,or_1,0,4_0.7_148_3.coalgebra
-: 151M bench/wta_Word,or_1,0,4_0.7_148_4.coalgebra
-
-**** Automaton Size
-
-#+BEGIN_SRC sh
-python bench.py generate ../../copar/bin/random-wta --monoid 'Word,or' --symbols 1,0,4 --zero-frequency 0.7 --states 148
-python bench.py run ../../copar/bin/copar --monoid 'Word,or' --symbols 1,0,4 --zero-frequency 0.7 --states 148 --indiv --header
-#+END_SRC
-
-#+RESULTS:
-| i |  states |    edges | initial-partition-size | final-partition-size | explicit-final-partition-size | size1-skipped | overall-duration | parse-duration | algorithm-duration | initialize-duration | refine-duration |
-| 0 | 3889583 | 11668189 |                    153 |                87765 |                           148 |       6805177 |    117.573809962 |   44.159477335 |       69.176479615 |         20.97881901 |     36.97313268 |
-| 1 | 3891836 | 11675004 |                    153 |                87765 |                           148 |       6809318 |    118.060187599 |   44.059742822 |       69.709799716 |        20.986764025 |    37.089169403 |
-| 2 | 3889498 | 11667962 |                    153 |                87765 |                           148 |       6805428 |    117.680086041 |   43.801892931 |       69.639925802 |        20.888711457 |    36.894495934 |
-| 3 | 3890675 | 11671481 |                    153 |                87765 |                           148 |       6807190 |    118.213230214 |   44.026034118 |       69.934017821 |        20.807216331 |    36.920223682 |
-| 4 | 3889335 | 11667465 |                    153 |                87765 |                           148 |       6804884 |    118.020940476 |   44.097067581 |       69.813347698 |        20.923033139 |    36.907214948 |
-
-*** GHC 8.4.4 with symbols 4,3,2 and zero-freq 0.7
-
-#+BEGIN_SRC sh
-./bench.py bisect ../../copar/bin/{random-wta,copar} --monoid 'Word,or' --symbols 4,3,2 --zero-frequency 0.7
-#+END_SRC
-
-#+RESULTS:
-: Trying 50...
-: Trying 100...
-: Trying 200...
-: Trying 150...
-: Trying 175...
-: Trying 187...
-: Trying 181...
-: Trying 184...
-: Trying 185...
-: Trying 186...
-: First bad state count: 187
-
-**** File Size
-
-#+BEGIN_SRC sh :results output
-ls -sh bench/wta_Word,or_4,3,2_0.7_186*
-#+END_SRC
-
-#+RESULTS:
-: 152M bench/wta_Word,or_4,3,2_0.7_186_0.coalgebra
-: 152M bench/wta_Word,or_4,3,2_0.7_186_1.coalgebra
-: 152M bench/wta_Word,or_4,3,2_0.7_186_2.coalgebra
-: 152M bench/wta_Word,or_4,3,2_0.7_186_3.coalgebra
-: 152M bench/wta_Word,or_4,3,2_0.7_186_4.coalgebra
-
-**** Automaton Size
-
-#+BEGIN_SRC sh
-python bench.py generate ../../copar/bin/random-wta --monoid 'Word,or' --symbols 4,3,2 --zero-frequency 0.7 --states 186
-python bench.py run ../../copar/bin/copar --monoid 'Word,or' --symbols 4,3,2 --zero-frequency 0.7 --states 186 --indiv --header
-#+END_SRC
-
-#+RESULTS:
-| i |  states |    edges | initial-partition-size | final-partition-size | explicit-final-partition-size | size1-skipped | overall-duration | parse-duration | algorithm-duration | initialize-duration | refine-duration |
-| 0 | 3890269 | 11638838 |                    195 |                69940 |                           186 |       5848699 |    114.733470175 |   43.499787726 |         67.5948969 |        17.660572753 |    37.835620352 |
-| 1 | 3893818 | 11649123 |                    195 |                69940 |                           186 |       5854005 |    114.756947419 |   43.702682275 |       67.505722972 |        17.675712966 |    37.818639736 |
-| 2 | 3893265 | 11647592 |                    195 |                69940 |                           186 |       5854134 |    115.418354168 |   43.606980048 |       68.133828807 |        17.837028275 |    37.992011256 |
-| 3 | 3892206 | 11644421 |                    195 |                69940 |                           186 |       5852423 |    113.998060941 |   43.769845642 |       66.618120946 |        17.720427448 |    37.714434677 |
-| 4 | 3892036 | 11643814 |                    195 |                69940 |                           186 |       5851296 |    115.965290499 |   44.138476758 |       68.234040288 |        17.763408679 |    38.356640369 |
-
-*** GHC 8.4.4 with symbols 0,0,0,0,0,3 and zero-freq 0.7 
-#+BEGIN_SRC sh
-./bench.py bisect ../../copar/bin/{random-wta,copar} --monoid 'Word,or' --symbols 0,0,0,0,0,3 --zero-frequency 0.7 --start-states 6                                                                            
-#+END_SRC
-
-#+RESULTS:
-: Trying 6...                          
-: Trying 12...
-: Trying 9...
-: Trying 10...
-: Trying 11...
-: First bad state count: 12
-
-**** File Size
-
-#+BEGIN_SRC sh :results output
-ls -sh bench/wta_Word,or_0,0,0,0,0,3_0.7_11*
-#+END_SRC
-
-#+RESULTS:
-: 77M bench/wta_Word,or_0,0,0,0,0,3_0.7_11_0.coalgebra
-: 77M bench/wta_Word,or_0,0,0,0,0,3_0.7_11_1.coalgebra
-: 77M bench/wta_Word,or_0,0,0,0,0,3_0.7_11_2.coalgebra
-: 77M bench/wta_Word,or_0,0,0,0,0,3_0.7_11_3.coalgebra
-: 77M bench/wta_Word,or_0,0,0,0,0,3_0.7_11_4.coalgebra
-
-**** Automaton Size
-
-#+BEGIN_SRC sh
-python bench.py generate ../../copar/bin/random-wta --monoid 'Word,or' --symbols 0,0,0,0,0,3 --zero-frequency 0.7 --states 11
-python bench.py run ../../copar/bin/copar --monoid 'Word,or' --symbols 0,0,0,0,0,3 --zero-frequency 0.7 --states 11 --indiv --header
-#+END_SRC
-
-#+RESULTS:
-| i |  states |   edges | initial-partition-size | final-partition-size | explicit-final-partition-size | size1-skipped | overall-duration | parse-duration | algorithm-duration | initialize-duration | refine-duration |
-| 0 | 1594413 | 9566412 |                     14 |               473587 |                            11 |       2676959 |      61.53939505 |    24.79942316 |       34.477272309 |        10.822832613 |    21.313535924 |
-| 1 | 1596360 | 9578094 |                     14 |               473404 |                            11 |       2681034 |     61.147599248 |   24.824030133 |       34.101896988 |           10.793184 |    20.989457877 |
-| 2 | 1595591 | 9573480 |                     14 |               473700 |                            11 |       2679546 |     61.459443653 |   24.801616514 |       34.389540062 |        10.893824596 |    21.133849133 |
-| 3 | 1593825 | 9562884 |                     14 |               473580 |                            11 |       2676789 |     61.147557505 |    24.98879381 |       33.942496577 |        10.818043846 |    20.839884809 |
-| 4 | 1596528 | 9579102 |                     14 |               473600 |                            11 |       2681048 |     61.864094058 |   24.884111862 |       34.762990208 |        10.893522867 |    21.485077775 |
-* Same Question, but with limited transition count
-** Powerset
-*** GHC 8.4.4 with symbols 0,8 and transitions 500
-
-#+BEGIN_SRC sh
-./bench.py bisect ../../copar/bin/{random-wta,copar} --monoid powerset --symbols 0,8 --transitions 5000
-#+END_SRC
-
-#+RESULTS:
-: Trying 1000...
-: Trying 2000...
-: Trying 1500...
-: Trying 1250...
-: Trying 1375...
-: Trying 1437...
-: Trying 1468...
-: Trying 1484...
-: Trying 1476...
-: Trying 1480...
-: Trying 1478...
-: Trying 1479...
-: First bad state count: 1479
-
-**** File Size
-
-#+BEGIN_SRC sh :results output
-ls -sh bench/wta_powerset_0,8_0.7_1478*
-#+END_SRC
-
-#+RESULTS:
-: 82M bench/wta_powerset_0,8_0.7_1478_0.coalgebra
-: 82M bench/wta_powerset_0,8_0.7_1478_1.coalgebra
-: 82M bench/wta_powerset_0,8_0.7_1478_2.coalgebra
-: 82M bench/wta_powerset_0,8_0.7_1478_3.coalgebra
-: 82M bench/wta_powerset_0,8_0.7_1478_4.coalgebra
-
-**** Automaton size
-
-#+begin_src sh :hlines yes
-python bench.py generate ../../copar/bin/random-wta --monoid powerset --symbols 0,8 --zero-frequency 0.7 --states 1478
-python bench.py run ../../copar/bin/copar --monoid powerset --symbols 0,8 --zero-frequency 0.7 --states 1478 --indiv --header
-#+end_src
-
-#+RESULTS:
-| i |  states |    edges | initial-partition-size | final-partition-size | explicit-final-partition-size | size1-skipped | overall-duration | parse-duration | algorithm-duration | initialize-duration | refine-duration |
-| 0 | 5243856 | 10484756 |                     10 |                   18 |                             2 |             0 |    115.339077581 |   34.439478263 |       79.458232767 |        27.712258503 |    37.668249537 |
-| 1 | 5245405 | 10487854 |                     10 |                   18 |                             2 |             0 |    114.001430765 |   34.477874858 |        78.07613373 |        27.764347556 |    37.074617863 |
-| 2 | 5243549 | 10484142 |                     10 |                   18 |                             2 |             0 |    114.862812706 |   34.668409012 |       78.756016051 |        27.741448159 |     37.09480403 |
-| 3 | 5241660 | 10480364 |                     10 |                   18 |                             2 |             0 |    114.228588077 |   34.362576104 |       78.424601434 |        27.648526393 |    37.043127108 |
-| 4 | 5243032 | 10483108 |                     10 |                   18 |                             2 |             0 |    114.692551901 |   34.827430372 |       78.414037199 |        27.723198479 |    38.276163878 |
-
-*** GHC 8.4.4 with symbols 0,8 and out-degree 1000
-
-#+BEGIN_SRC sh
-./bench.py bisect ../../copar/bin/random-wta ../../copar/bin/copar --monoid powerset --symbols 0,8 --out-degree 1000 --good 1000
-#+END_SRC
-
-#+RESULTS:
-: Trying 1001...
-: Trying 2002...
-: Trying 4004...
-: Trying 8008...
-: Trying 6006...
-: Trying 7007...
-: Trying 7507...
-: Trying 7257...
-: Trying 7382...
-: Trying 7444...
-: Trying 7413...
-: Trying 7428...
-: Trying 7420...
-: Trying 7416...
-: Trying 7414...
-: Trying 7415...
-: First bad state count: 7416
-
-**** File Size
-
-#+BEGIN_SRC sh :results output
-ls -sh bench/wta_powerset_0,8_t7415000__7415*
-#+END_SRC
-
-#+RESULTS:
-: 120M bench/wta_powerset_0,8_t7415000__7415_0.coalgebra
-: 120M bench/wta_powerset_0,8_t7415000__7415_1.coalgebra
-: 120M bench/wta_powerset_0,8_t7415000__7415_2.coalgebra
-: 120M bench/wta_powerset_0,8_t7415000__7415_3.coalgebra
-: 120M bench/wta_powerset_0,8_t7415000__7415_4.coalgebra
-
-**** Automaton Size
-
-#+begin_src sh :hlines yes
-python bench.py generate ../../copar/bin/random-wta --monoid powerset --symbols 0,8 --transitions 7415000 --states 7415
-python bench.py run ../../copar/bin/copar --monoid powerset --symbols 0,8 --transitions 7415000 --states 7415 --indiv --header
-#+end_src
-
-#+RESULTS:
-| i |  states |    edges | initial-partition-size | final-partition-size | explicit-final-partition-size | size1-skipped | overall-duration | parse-duration | algorithm-duration | initialize-duration | refine-duration |
-| 0 | 7422415 | 14830000 |                     10 |                   18 |                             2 |             0 |    157.872966092 |   51.221314999 |      104.615248956 |          33.7012898 |    58.664739269 |
-| 1 | 7422415 | 14830000 |                     10 |                   18 |                             2 |             0 |    157.428380106 |   51.433510926 |      103.926494829 |        33.216537153 |    58.775334589 |
-| 2 | 7422415 | 14830000 |                     10 |                   18 |                             2 |             0 |    156.808413994 |   51.343226544 |       103.40051371 |        32.969125294 |    58.865798525 |
-| 3 | 7422415 | 14830000 |                     10 |                   18 |                             2 |             0 |    157.791363724 |   51.873644617 |      103.855838314 |         33.05713406 |    58.931293578 |
-| 4 | 7422415 | 14830000 |                     10 |                   18 |                             2 |             0 |    157.126256596 |   51.400301031 |      103.666329167 |        32.976280595 |    58.830566981 |
-
-* Next Try
-
-We now use the following parameters:
-
-- Signature :: 4×X^k k ∈ { 0, ..., 5 }
-- GHC :: 8.4.4
-
-** Powerset
-*** 4xX mit out-degree 500
-
-#+BEGIN_SRC shell
-./bench.py bisect ../../copar/bin/random-wta ../../copar/bin/copar --monoid powerset --symbols 0,4 --out-degree 500 --good 8000 --start-states 12000 --bad 16000
-#+END_SRC
-
-#+RESULTS:
-: Trying 12000...
-: Trying 14000...
-: Trying 15000...
-: Trying 14500...
-: Trying 14250...
-: Trying 14375...
-: Trying 14312...
-: Trying 14281...
-: Trying 14296...
-: Trying 14288...
-: Trying 14284...
-: Trying 14282...
-: First bad state count: 14282
-
-**** File Size
-
-#+BEGIN_SRC sh :results output table
-ls -sh bench/wta_powerset_0,4_*__14281_* | tr " ," ",."
-#+END_SRC
-
-#+NAME: power_1_500_file
-#+RESULTS:
-| 118M | bench/wta_powerset_0.4_t7140500__14281_0.coalgebra |
-| 118M | bench/wta_powerset_0.4_t7140500__14281_1.coalgebra |
-| 118M | bench/wta_powerset_0.4_t7140500__14281_2.coalgebra |
-| 118M | bench/wta_powerset_0.4_t7140500__14281_3.coalgebra |
-| 118M | bench/wta_powerset_0.4_t7140500__14281_4.coalgebra |
-
-**** Automaton Size
-
-#+BEGIN_SRC shell
-./bench.py generate ../../copar/bin/random-wta --monoid powerset --symbols 0,4 --out-degree 500 --states 14281
-./bench.py run ../../copar/bin/copar --monoid powerset --symbols 0,4 --out-degree 500 --states 14281 --indiv --header
-#+END_SRC
-
-#+NAME: power_1_500
-#+RESULTS:
-| i |  states |    edges | initial-partition-size | final-partition-size | explicit-final-partition-size | size1-skipped | overall-duration | parse-duration | algorithm-duration | initialize-duration | refine-duration |
-| 0 | 7154781 | 14281000 |                      6 |                   10 |                             2 |             0 |    155.635043092 |   50.511676534 |      103.239235361 |        30.135940008 |    61.445316625 |
-| 1 | 7154781 | 14281000 |                      6 |                   10 |                             2 |             0 |    155.345664537 |   50.391815858 |      103.046448356 |         29.52881681 |    61.823502784 |
-| 2 | 7154781 | 14281000 |                      6 |                   10 |                             2 |             0 |    154.746389702 |   50.356318464 |      102.487287332 |        29.561887582 |    61.245616512 |
-| 3 | 7154781 | 14281000 |                      6 |                   10 |                             2 |             0 |    156.681042711 |   50.477922803 |      104.306181251 |        30.132009036 |    62.231759233 |
-| 4 | 7154781 | 14281000 |                      6 |                   10 |                             2 |             0 |    156.206931801 |   50.552217812 |      103.775304876 |        30.106012782 |    61.793692847 |
-
-*** 4xX mit out-degree 20
-
-#+BEGIN_SRC shell
-./bench.py bisect ../../copar/bin/random-wta ../../copar/bin/copar --monoid powerset --symbols 0,4 --out-degree 20 --good 8000 --start-states 14281
-#+END_SRC
-
-#+RESULTS:
-: Trying 14281...
-: Trying 28562...
-: Trying 57124...
-: Trying 114248...
-: Trying 228496...
-: Trying 456992...
-: Trying 342744...
-: Trying 399868...
-: Trying 371306...
-: Trying 357025...
-: Trying 349884...
-: Trying 353454...
-: Trying 355239...
-: Trying 356132...
-: Trying 355685...
-: Trying 355462...
-: Trying 355573...
-: Trying 355629...
-: Trying 355657...
-: Trying 355671...
-: Trying 355678...
-: Trying 355681...
-: Trying 355683...
-: Trying 355684...
-: First bad state count: 355685
-
-**** File Size
-
-
-**** Automaton Size
-
-#+BEGIN_SRC shell
-./bench.py generate ../../copar/bin/random-wta --monoid powerset --symbols 0,4 --out-degree 20 --states 355684
-./bench.py run ../../copar/bin/copar --monoid powerset --symbols 0,4 --out-degree 20 --states 355684 --indiv --header
-#+END_SRC
-
-#+NAME: power_1_20
-#+RESULTS:
-| i |  states |    edges | initial-partition-size | final-partition-size | explicit-final-partition-size | size1-skipped | overall-duration | parse-duration | algorithm-duration | initialize-duration | refine-duration |
-| 0 | 7469364 | 14227360 |                      6 |              1768728 |                        355684 |      10883373 |    344.399732107 |   61.942569869 |      262.572157652 |        32.047148894 |   209.333188906 |
-| 1 | 7469364 | 14227360 |                      6 |              1768935 |                        355684 |      10883077 |    340.732038227 |   60.912573518 |      260.176273796 |        31.928906963 |   208.837646082 |
-| 2 | 7469364 | 14227360 |                      6 |              1768908 |                        355684 |      10885631 |    340.838739608 |   61.120402905 |      260.008098908 |        31.951679391 |   208.775189688 |
-| 3 | 7469364 | 14227360 |                      6 |              1768880 |                        355684 |      10880372 |    340.237713603 |   61.448840572 |      259.027481579 |        31.936433445 |   207.318948419 |
-| 4 | 7469364 | 14227360 |                      6 |              1768875 |                        355684 |      10886155 |    342.792217839 |   61.487509806 |      261.434824046 |        32.045849362 |   209.995181997 |
-
-*** 4xX mit out-degree 50
-
-#+BEGIN_SRC shell
-./bench.py bisect ../../copar/bin/random-wta ../../copar/bin/copar --monoid powerset --symbols 0,4 --out-degree 50 --good 130000 --bad 140000
-#+END_SRC
-
-#+RESULTS:
-: Trying 135000...
-: Trying 132500...
-: Trying 131250...
-: Trying 131875...
-: Trying 132187...
-: Trying 132031...
-: Trying 132109...
-: Trying 132148...
-: Trying 132167...
-: Trying 132177...
-: Trying 132182...
-: Trying 132179...
-: Trying 132178...
-: First bad state count: 132179
-
-**** File Size
-
-#+BEGIN_SRC sh :results output table
-ls -sh bench/wta_powerset_0,4_*_132178_* | tr " ," ",."
-#+END_SRC
-
-#+NAME: power_1_file
-#+RESULTS:
-| 117M | bench/wta_powerset_0.4_t6608900__132178_0.coalgebra |
-| 117M | bench/wta_powerset_0.4_t6608900__132178_1.coalgebra |
-| 117M | bench/wta_powerset_0.4_t6608900__132178_2.coalgebra |
-| 117M | bench/wta_powerset_0.4_t6608900__132178_3.coalgebra |
-| 117M | bench/wta_powerset_0.4_t6608900__132178_4.coalgebra |
-
-**** Automaton Size
-
-#+BEGIN_SRC shell
-./bench.py generate ../../copar/bin/random-wta --monoid powerset --symbols 0,4 --out-degree 50 --states 132177
-./bench.py run ../../copar/bin/copar --monoid powerset --symbols 0,4 --out-degree 50 --states 132177 --indiv --header
-#+END_SRC
-
-#+NAME: power_1
-#+RESULTS:
-| i |  states |    edges | initial-partition-size | final-partition-size | explicit-final-partition-size | size1-skipped | overall-duration | parse-duration | algorithm-duration | initialize-duration | refine-duration |
-| 0 | 6741027 | 13217700 |                      6 |               660882 |                        132177 |       9323005 |    265.849947508 |   53.024255888 |      200.012469965 |        32.711091055 |   156.049078211 |
-| 1 | 6741027 | 13217700 |                      6 |               660884 |                        132177 |       9336757 |    266.027492928 |   53.656205959 |      199.630533624 |        33.784156055 |    154.30670604 |
-| 2 | 6741027 | 13217700 |                      6 |               660885 |                        132177 |       9295860 |    266.131064164 |   53.031692734 |      200.333990554 |        33.839128343 |   154.752397766 |
-| 3 | 6741027 | 13217700 |                      6 |               660882 |                        132177 |       9287608 |     266.57863175 |   53.338030998 |      200.492577153 |        33.341400299 |   155.694877544 |
-| 4 | 6741027 | 13217700 |                      6 |               660884 |                        132177 |       9347998 |     265.39360727 |   52.816564437 |      199.812521066 |         33.25935421 |   155.166041015 |
-
-*** 4xX^2 mit out-degree 50
-
-#+BEGIN_SRC shell
-./bench.py bisect ../../copar/bin/random-wta ../../copar/bin/copar --monoid powerset --symbols 0,0,4 --out-degree 50 --start-states 80000
-#+END_SRC
-
-#+RESULTS:
-: Trying 80000...
-: Trying 160000...
-: Trying 120000...
-: Trying 100000...
-: Trying 90000...
-: Trying 95000...
-: Trying 97500...
-: Trying 98750...
-: Trying 98125...
-: Trying 98437...
-: Trying 98593...
-: Trying 98671...
-: Trying 98632...
-: Trying 98651...
-: Trying 98661...
-: Trying 98666...
-: Trying 98668...
-: Trying 98669...
-: Trying 98670...
-: First bad state count: 98671
-
-**** File Size 
-
-#+BEGIN_SRC sh :results output table
-ls -sh bench/wta_powerset_0,0,4_*_98670_* | tr " ," ",."
-#+END_SRC
-
-#+NAME: power_2_file
-#+RESULTS:
-| 123M | bench/wta_powerset_0.0.4_t4933500__98670_0.coalgebra |
-| 123M | bench/wta_powerset_0.0.4_t4933500__98670_1.coalgebra |
-| 123M | bench/wta_powerset_0.0.4_t4933500__98670_2.coalgebra |
-| 123M | bench/wta_powerset_0.0.4_t4933500__98670_3.coalgebra |
-| 123M | bench/wta_powerset_0.0.4_t4933500__98670_4.coalgebra |
-
-**** Automaton Size
-
-#+BEGIN_SRC shell
-./bench.py generate ../../copar/bin/random-wta --monoid powerset --symbols 0,0,4 --out-degree 50 --states 98670
-./bench.py run ../../copar/bin/copar --monoid powerset --symbols 0,0,4 --out-degree 50 --states 98670 --indiv --header
-#+END_SRC
-
-#+NAME: power_2
-#+RESULTS:
-| i |  states |    edges | initial-partition-size | final-partition-size | explicit-final-partition-size | size1-skipped | overall-duration | parse-duration | algorithm-duration | initialize-duration | refine-duration |
-| 0 | 5032170 | 14800500 |                      6 |              5031861 |                         98670 |      11563672 |     318.18771425 |   46.231443471 |      259.512847417 |        31.400595851 |   212.323222545 |
-| 1 | 5032170 | 14800500 |                      6 |              5031879 |                         98670 |      11565958 |    318.887658897 |   46.483533968 |      259.856085361 |        31.407316023 |    212.38857748 |
-| 2 | 5032170 | 14800500 |                      6 |              5031848 |                         98670 |      11565284 |    318.529242826 |   46.499900763 |      259.501330137 |        31.347128979 |   210.955648567 |
-| 3 | 5032170 | 14800500 |                      6 |              5031845 |                         98670 |      11558234 |    317.809993575 |   46.522121526 |      258.840719384 |        31.371523591 |   211.925301877 |
-| 4 | 5032170 | 14800500 |                      6 |              5031882 |                         98670 |      11551538 |    316.309936896 |   46.212332602 |      257.508264904 |        31.362333309 |   210.039264838 |
-
-*** 4xX^3 mit out-degree 50
-
-#+BEGIN_SRC shell
-./bench.py bisect ../../copar/bin/random-wta ../../copar/bin/copar --monoid powerset --symbols 0,0,0,4 --out-degree 50 --start-states 60000
-#+END_SRC
-
-#+RESULTS:
-: Trying 60000...
-: Trying 120000...
-: Trying 90000...
-: Trying 75000...
-: Trying 82500...
-: Trying 86250...
-: Trying 84375...
-: Trying 85312...
-: Trying 84843...
-: Trying 85077...
-: Trying 84960...
-: Trying 85018...
-: Trying 84989...
-: Trying 85003...
-: Trying 85010...
-: Trying 85014...
-: Trying 85016...
-: Trying 85017...
-: First bad state count: 85018
-
-**** File Size 
-
-#+BEGIN_SRC sh :results output table
-ls -sh bench/wta_powerset_0,0,0,4_*_85017_* | tr " ," ",."
-#+END_SRC
-
-#+NAME: power_3_file
-#+RESULTS:
-| 138M | bench/wta_powerset_0.0.0.4_t4250850__85017_0.coalgebra |
-
-**** Automaton Size 
-
-#+BEGIN_SRC shell
-./bench.py generate ../../copar/bin/random-wta --monoid powerset --symbols 0,0,0,4 --out-degree 50 --states 85016
-./bench.py run ../../copar/bin/copar --monoid powerset --symbols 0,0,0,4 --out-degree 50 --states 85016 --indiv --header
-#+END_SRC
-
-#+NAME: power_3
-#+RESULTS:
-| i |  states |    edges | initial-partition-size | final-partition-size | explicit-final-partition-size | size1-skipped | overall-duration | parse-duration | algorithm-duration | initialize-duration | refine-duration |
-| 0 | 4335816 | 17003200 |                      6 |              4335816 |                         85016 |      11932210 |    261.096600392 |   47.614392976 |      203.643561011 |        20.446586332 |   167.587154416 |
-
-*** 4xX^4 mit out-degree 50
-
-#+BEGIN_SRC shell
-./bench.py bisect ../../copar/bin/random-wta ../../copar/bin/copar --monoid powerset --symbols 0,0,0,0,4 --out-degree 50 --start-states 48000
-#+END_SRC
-
-#+RESULTS:
-: Trying 48000...
-: Trying 96000...
-: Trying 72000...
-: Trying 60000...
-: Trying 54000...
-: Trying 57000...
-: Trying 58500...
-: Trying 59250...
-: Trying 59625...
-: Trying 59437...
-: Trying 59531...
-: Trying 59578...
-: Trying 59601...
-: Trying 59589...
-: Trying 59595...
-: Trying 59598...
-: Trying 59596...
-: First bad state count: 59596
-
-**** File Size
-
-#+BEGIN_SRC sh :results output table
-ls -sh bench/wta_powerset_0,0,0,0,4_*_59596_* | tr " ," ",."
-#+END_SRC
-
-#+NAME: power_4_file
-#+RESULTS:
-| 119M | bench/wta_powerset_0.0.0.0.4_t2979800__59596_0.coalgebra |
-
-**** Automaton Size
-
-#+BEGIN_SRC shell
-./bench.py generate ../../copar/bin/random-wta --monoid powerset --symbols 0,0,0,0,4 --out-degree 50 --states 59596
-./bench.py run ../../copar/bin/copar --monoid powerset --symbols 0,0,0,0,4 --out-degree 50 --states 59596 --indiv --header
-#+END_SRC
-
-#+NAME: power_4
-#+RESULTS:
-| i |  states |    edges | initial-partition-size | final-partition-size | explicit-final-partition-size | size1-skipped | overall-duration | parse-duration | algorithm-duration | initialize-duration | refine-duration |
-| 0 | 3039396 | 14899000 |                      6 |              3039396 |                         59596 |      13024716 |    200.034099951 |   41.065064963 |      152.485306449 |        25.383501709 |   121.316305478 |
-
-*** 4xX^5 mit out-degree 50
-
-#+BEGIN_SRC shell
-./bench.py bisect ../../copar/bin/random-wta ../../copar/bin/copar --monoid powerset --symbols 0,0,0,0,0,4 --out-degree 50 --start-states 40000
-#+END_SRC
-
-#+RESULTS:
-: Trying 40000...
-: Trying 80000...
-: Trying 60000...
-: Trying 50000...
-: Trying 45000...
-: Trying 47500...
-: Trying 48750...
-: Trying 49375...
-: Trying 49687...
-: Trying 49531...
-: Trying 49453...
-: Trying 49414...
-: Trying 49394...
-: Trying 49384...
-: Trying 49379...
-: Trying 49377...
-: Trying 49376...
-: First bad state count: 49376
-
-**** File Size
-
-#+BEGIN_SRC sh :results output table
-ls -sh bench/wta_powerset_0,0,0,0,0,4_*_49375_* | tr " ," ",."
-#+END_SRC
-
-#+NAME: power_5_file
-#+RESULTS:
-| 116M | bench/wta_powerset_0.0.0.0.0.4_t2468750__49375_0.coalgebra |
-
-**** Automaton Size 
-
-#+BEGIN_SRC shell
-./bench.py generate ../../copar/bin/random-wta --monoid powerset --symbols 0,0,0,0,0,4 --out-degree 50 --states 49375
-./bench.py run ../../copar/bin/copar --monoid powerset --symbols 0,0,0,0,0,4 --out-degree 50 --states 49375 --indiv --header
-#+END_SRC
-
-#+NAME: power_5
-#+RESULTS:
-| i |  states |    edges | initial-partition-size | final-partition-size | explicit-final-partition-size | size1-skipped | overall-duration | parse-duration | algorithm-duration | initialize-duration | refine-duration |
-| 0 | 2518125 | 14812500 |                      6 |              2518125 |                         49375 |      13940781 |    164.986249384 |   38.769441334 |      119.843574846 |        24.415685672 |    90.703821725 |
-
-** Z,max
-*** 4xX mit out-degree 50 und different-values 50
-
-#+BEGIN_SRC shell
-./bench.py bisect ../../copar/bin/random-wta ../../copar/bin/copar --monoid Z,max --symbols 0,4 --out-degree 50 --good 100000 --bad 130000 --different-values 50
-#+END_SRC
-
-#+RESULTS:
-: Trying 115000...
-: Trying 107500...
-: Trying 111250...
-: Trying 113125...
-: Trying 114062...
-: Trying 114531...
-: Trying 114765...
-: Trying 114882...
-: Trying 114941...
-: Trying 114911...
-: Trying 114896...
-: Trying 114889...
-: Trying 114885...
-: Trying 114887...
-: Trying 114888...
-: First bad state count: 114889
-
-**** File Size
-
-#+BEGIN_SRC sh :results output table
-ls -sh bench/wta_Z,max_0,4_*_114888_* | tr " ," ",."
-#+END_SRC
-
-#+NAME: zmax_1_file
-#+RESULTS:
-| 122M | bench/wta_Z.max_0.4_t5744400_50_114888_0.coalgebra |
-
-**** Automaton Size
-
-#+BEGIN_SRC shell
-./bench.py generate ../../copar/bin/random-wta --monoid Z,max --symbols 0,4 --out-degree 50 --different-values 50 --states 114888
-./bench.py run ../../copar/bin/copar --monoid Z,max --symbols 0,4 --out-degree 50 --different-values 50 --states 114888 --indiv --header
-#+END_SRC
-
-#+NAME: zmax_1
-#+RESULTS:
-| i |  states |    edges | initial-partition-size | final-partition-size | explicit-final-partition-size | size1-skipped | overall-duration | parse-duration | algorithm-duration | initialize-duration | refine-duration |
-| 0 | 5859288 | 11488800 |                    416 |               574439 |                        114888 |       6911761 |    181.011843864 |   58.957254337 |      111.080014285 |        34.573326846 |    66.278452727 |
-
-*** 4xX^2 mit out-degree 50 und different-values 50
-
-#+BEGIN_SRC shell
-./bench.py bisect ../../copar/bin/random-wta ../../copar/bin/copar --monoid Z,max --symbols 0,0,4 --out-degree 50 --good 50000 --bad 100000 --different-values 50
-#+END_SRC
-
-#+RESULTS:
-: Trying 75000...
-: Trying 87500...
-: Trying 93750...
-: Trying 96875...
-: Trying 95312...
-: Trying 94531...
-: Trying 94921...
-: Trying 95116...
-: Trying 95214...
-: Trying 95263...
-: Trying 95287...
-: Trying 95299...
-: Trying 95293...
-: Trying 95290...
-: Trying 95288...
-: First bad state count: 95288
-
-**** File Size
-
-#+BEGIN_SRC sh :results output table
-ls -sh bench/wta_Z,max_0,0,4_*_95287_* | tr " ," ",."
-#+END_SRC
-
-#+NAME: zmax_2_file
-#+RESULTS:
-| 136M | bench/wta_Z.max_0.0.4_t4764350_50_95287_0.coalgebra |
-
-**** Automaton Size
-
-#+BEGIN_SRC shell
-./bench.py generate ../../copar/bin/random-wta --monoid Z,max --symbols 0,0,4 --out-degree 50 --different-values 50 --states 95287
-./bench.py run  ../../copar/bin/copar          --monoid Z,max --symbols 0,0,4 --out-degree 50 --different-values 50 --states 95287 --indiv --header
-#+END_SRC
-
-#+NAME: zmax_2
-#+RESULTS:
-| i |  states |    edges | initial-partition-size | final-partition-size | explicit-final-partition-size | size1-skipped | overall-duration | parse-duration | algorithm-duration | initialize-duration | refine-duration |
-| 0 | 4859637 | 14293050 |                    404 |              4859343 |                         95287 |       7100778 |    222.092892824 |   54.223932252 |      154.676164911 |        30.811423501 |   108.364036654 |
-
-*** 4xX^3 mit out-degree und different-values 50
-
-#+BEGIN_SRC shell
-./bench.py bisect ../../copar/bin/random-wta ../../copar/bin/copar --monoid Z,max --symbols 0,0,0,4 --out-degree 50 --good 58471 --bad 73000 --different-values 50
-#+END_SRC
-
-#+RESULTS:
-: Trying 65735...
-: Trying 69367...
-: Trying 71183...
-: Trying 70275...
-: Trying 70729...
-: Trying 70502...
-: Trying 70615...
-: Trying 70672...
-: Trying 70643...
-: Trying 70657...
-: Trying 70664...
-: Trying 70660...
-: Trying 70662...
-: Trying 70661...
-: First bad state count: 70661
-
-**** File Size 
-
-#+BEGIN_SRC sh :results output table
-ls -sh bench/wta_Z,max_0,0,0,4_*_70660_* | tr " ," ",."
-#+END_SRC
-
-#+NAME: zmax_3_file
-#+RESULTS:
-| 127M | bench/wta_Z.max_0.0.0.4_t3533000_50_70660_0.coalgebra |
-
-**** Automaton Size
-
-#+BEGIN_SRC shell
-./bench.py generate ../../copar/bin/random-wta --monoid Z,max --symbols 0,0,0,4 --out-degree 50 --different-values 50 --states 70660
-./bench.py run ../../copar/bin/copar           --monoid Z,max --symbols 0,0,0,4 --out-degree 50 --different-values 50 --states 70660 --indiv --header
-#+END_SRC
-
-#+NAME: zmax_3
-#+RESULTS:
-| i |  states |    edges | initial-partition-size | final-partition-size | explicit-final-partition-size | size1-skipped | overall-duration | parse-duration | algorithm-duration | initialize-duration | refine-duration |
-| 0 | 3603660 | 14132000 |                    397 |              3603660 |                         70660 |       9226293 |    172.420794076 |      49.287429 |      115.080725376 |         25.88631871 |    82.245759651 |
-
-*** 4xX^4 mit out-degree und different-values 50
-
-#+BEGIN_SRC shell
-./bench.py bisect ../../copar/bin/random-wta ../../copar/bin/copar --monoid Z,max --symbols 0,0,0,0,4 --out-degree 50 --good 55181 --bad 73000 --different-values 50
-#+END_SRC
-
-#+RESULTS:
-: Trying 64090...
-: Trying 59635...
-: Trying 61862...
-: Trying 62976...
-: Trying 62419...
-: Trying 62697...
-: Trying 62558...
-: Trying 62627...
-: Trying 62662...
-: Trying 62679...
-: Trying 62670...
-: Trying 62666...
-: Trying 62664...
-: Trying 62665...
-: First bad state count: 62666
-
-**** File Size 
-
-#+BEGIN_SRC sh :results output table
-ls -sh bench/wta_Z,max_0,0,0,0,4_*_62665_* | tr " ," ",."
-#+END_SRC
-
-#+NAME: zmax_4_file
-#+RESULTS:
-| 136M | bench/wta_Z.max_0.0.0.0.4_t3133250_50_62665_0.coalgebra |
-
-**** Automaton Size
-
-#+BEGIN_SRC shell
-./bench.py generate ../../copar/bin/random-wta --monoid Z,max --symbols 0,0,0,0,4 --out-degree 50 --different-values 50 --states 62665
-./bench.py run ../../copar/bin/copar           --monoid Z,max --symbols 0,0,0,0,4 --out-degree 50 --different-values 50 --states 62665 --indiv --header
-#+END_SRC
-
-#+NAME: zmax_4
-#+RESULTS:
-| i |  states |    edges | initial-partition-size | final-partition-size | explicit-final-partition-size | size1-skipped | overall-duration | parse-duration | algorithm-duration | initialize-duration | refine-duration |
-| 0 | 3195915 | 15666250 |                    397 |              3195915 |                         62665 |      11627719 |     154.99753875 |      48.473165 |       98.758726744 |          26.2347205 |    66.312403669 |
-
-*** 4xX^5 mit out-degree und different-values 50
-
-#+BEGIN_SRC shell
-./bench.py bisect ../../copar/bin/random-wta ../../copar/bin/copar --monoid Z,max --symbols 0,0,0,0,0,4 --out-degree 50 --good 31000 --bad 55000 --different-values 50
-#+END_SRC
-
-#+RESULTS:
-: Trying 43000...
-: Trying 49000...
-: Trying 52000...
-: Trying 50500...
-: Trying 49750...
-: Trying 50125...
-: Trying 49937...
-: Trying 49843...
-: Trying 49890...
-: Trying 49913...
-: Trying 49925...
-: Trying 49931...
-: Trying 49928...
-: Trying 49926...
-: Trying 49927...
-: First bad state count: 49927
-
-**** File Size 
-
-#+BEGIN_SRC sh :results output table
-ls -sh bench/wta_Z,max_0,0,0,0,0,4_*_49926_* | tr " ," ",."
-#+END_SRC
-
-#+NAME: zmax_5_file
-#+RESULTS:
-| 127M | bench/wta_Z.max_0.0.0.0.0.4_t2496300_50_49926_0.coalgebra |
-
-**** Automaton Size
-
-#+BEGIN_SRC shell
-./bench.py generate ../../copar/bin/random-wta --monoid Z,max --symbols 0,0,0,0,0,4 --out-degree 50 --different-values 50 --states 49926
-./bench.py run ../../copar/bin/copar           --monoid Z,max --symbols 0,0,0,0,0,4 --out-degree 50 --different-values 50 --states 49926 --indiv --header
-#+END_SRC
-
-#+NAME: zmax_5
-#+RESULTS:
-| i |  states |    edges | initial-partition-size | final-partition-size | explicit-final-partition-size | size1-skipped | overall-duration | parse-duration | algorithm-duration | initialize-duration | refine-duration |
-| 0 | 2546226 | 14977800 |                    376 |              2546226 |                         49926 |      11841832 |     129.05925319 |   44.887706321 |       78.246885415 |        20.851582498 |     52.50648174 |
-
-** Word,or
-*** 4xX mit out-degree und different-values 50
-
-#+BEGIN_SRC shell
-./bench.py bisect ../../copar/bin/random-wta ../../copar/bin/copar --monoid Word,or --symbols 0,4 --out-degree 50 --good 100000 --bad 130000 --different-values 50
-#+END_SRC
-
-#+RESULTS:
-: Trying 115000...
-: Trying 107500...
-: Trying 111250...
-: Trying 113125...
-: Trying 114062...
-: Trying 113593...
-: Trying 113827...
-: Trying 113944...
-: Trying 114003...
-: Trying 113973...
-: Trying 113958...
-: Trying 113951...
-: Trying 113954...
-: Trying 113956...
-: Trying 113957...
-: First bad state count: 113958
-
-**** File Size 
-
-#+BEGIN_SRC sh :results output table
-ls -sh bench/wta_Word,or_0,4_*_113957_* | tr " ," ",."
-#+END_SRC
-
-#+NAME: wordor_1_file
-#+RESULTS:
-| 131M | bench/wta_Word.or_0.4_t5697850_50_113957_0.coalgebra |
-
-**** Automaton Size
-
-#+BEGIN_SRC shell
-./bench.py generate ../../copar/bin/random-wta --monoid Word,or --symbols 0,4 --out-degree 50 --different-values 50 --states 113957
-./bench.py run ../../copar/bin/copar           --monoid Word,or --symbols 0,4 --out-degree 50 --different-values 50 --states 113957 --indiv --header
-#+END_SRC
-
-#+NAME: wordor_1
-#+RESULTS:
-| i |  states |    edges | initial-partition-size | final-partition-size | explicit-final-partition-size | size1-skipped | overall-duration | parse-duration | algorithm-duration | initialize-duration | refine-duration |
-| 0 | 5811807 | 11395700 |                     54 |               569783 |                        113957 |      11076343 |    223.763784071 |   61.587433127 |      152.359932717 |        32.126284469 |   109.721586786 |
-
-*** 4xX^2 mit out-degree und different-values 50
-
-#+BEGIN_SRC shell
-./bench.py bisect ../../copar/bin/random-wta ../../copar/bin/copar --monoid Word,or --symbols 0,0,4 --out-degree 50 --bad 93001 --good 80000 --different-values 50
-#+END_SRC
-
-#+RESULTS:
-: Trying 86500...
-: Trying 89750...
-: Trying 91375...
-: Trying 92188...
-: Trying 92594...
-: Trying 92391...
-: Trying 92492...
-: Trying 92441...
-: Trying 92416...
-: Trying 92428...
-: Trying 92434...
-: Trying 92437...
-: Trying 92435...
-: First bad state count: 92435
-
-**** File Size 
-
-#+BEGIN_SRC sh :results output table
-ls -sh bench/wta_Word,or_0,0,4_*_92434_* | tr " ," ",."
-#+END_SRC
-
-#+NAME: wordor_2_file
-#+RESULTS:
-| 141M | bench/wta_Word.or_0.0.4_t4621700_50_92434_0.coalgebra |
-
-**** Automaton Size
-
-#+BEGIN_SRC shell
-./bench.py generate ../../copar/bin/random-wta --monoid Word,or --symbols 0,0,4 --out-degree 50 --different-values 50 --states 92434
-./bench.py run ../../copar/bin/copar           --monoid Word,or --symbols 0,0,4 --out-degree 50 --different-values 50 --states 92434 --indiv --header
-#+END_SRC
-
-#+NAME: wordor_2
-#+RESULTS:
-| i |  states |    edges | initial-partition-size | final-partition-size | explicit-final-partition-size | size1-skipped | overall-duration | parse-duration | algorithm-duration | initialize-duration | refine-duration |
-| 0 | 4714134 | 13865100 |                     54 |              4713833 |                         92434 |      13286924 |    258.308924373 |   55.730150301 |       184.86496102 |         31.15297126 |   144.089898137 |
-
-*** 4xX^3 mit out-degree und different-values 50
-
-#+BEGIN_SRC shell
-./bench.py bisect ../../copar/bin/random-wta ../../copar/bin/copar --monoid Word,or --symbols 0,0,0,4 --out-degree 50 --good 67000 --bad 73000 --different-values 50
-#+END_SRC
-
-#+RESULTS:
-: Trying 70000...
-: Trying 68500...
-: Trying 69250...
-: Trying 69625...
-: Trying 69437...
-: Trying 69531...
-: Trying 69578...
-: Trying 69601...
-: Trying 69613...
-: Trying 69619...
-: Trying 69622...
-: Trying 69623...
-: Trying 69624...
-: First bad state count: 69624
-
-**** File Size 
-
-#+BEGIN_SRC sh :results output table
-ls -sh bench/wta_Word,or_0,0,0,4_*_69623_* | tr " ," ",."
-#+END_SRC
-
-#+NAME: wordor_3_file
-#+RESULTS:
-| 132M | bench/wta_Word.or_0.0.0.4_t3481150_50_69623_0.coalgebra |
-
-**** Automaton Size
-
-#+BEGIN_SRC shell
-./bench.py generate ../../copar/bin/random-wta --monoid Word,or --symbols 0,0,0,4 --out-degree 50 --different-values 50 --states 69623
-./bench.py run ../../copar/bin/copar           --monoid Word,or --symbols 0,0,0,4 --out-degree 50 --different-values 50 --states 69623 --indiv --header
-#+END_SRC
-
-#+NAME: wordor_3
-#+RESULTS:
-| i |  states |    edges | initial-partition-size | final-partition-size | explicit-final-partition-size | size1-skipped | overall-duration | parse-duration | algorithm-duration | initialize-duration | refine-duration |
-| 0 | 3550773 | 13924600 |                     54 |              3550773 |                         69623 |      13715478 |    217.684389256 |   49.986173123 |      159.050504019 |        25.229488197 |   127.060520493 |
-
-*** 4xX^4 mit out-degree und different-values 50
-
-#+BEGIN_SRC shell
-./bench.py bisect ../../copar/bin/random-wta ../../copar/bin/copar --monoid Word,or --symbols 0,0,0,0,4 --out-degree 50 --bad 60001 --good 55000 --different-values 50
-#+END_SRC
-
-#+RESULTS:
-: Trying 57500...
-: Trying 56250...
-: Trying 56875...
-: Trying 57187...
-: Trying 57343...
-: Trying 57265...
-: Trying 57304...
-: Trying 57323...
-: Trying 57313...
-: Trying 57318...
-: Trying 57320...
-: Trying 57319...
-: First bad state count: 57320
-
-**** File Size 
-
-#+BEGIN_SRC sh :results output table
-ls -sh bench/wta_Word,or_0,0,0,0,4_*_57319_* | tr " ," ",."
-#+END_SRC
-
-#+NAME: wordor_4_file
-#+RESULTS:
-| 130M | bench/wta_Word.or_0.0.0.0.4_t2865950_50_57319_0.coalgebra |
-
-**** Automaton Size
-
-#+BEGIN_SRC shell
-./bench.py generate ../../copar/bin/random-wta --monoid Word,or --symbols 0,0,0,0,4 --out-degree 50 --different-values 50 --states 57319
-./bench.py run ../../copar/bin/copar           --monoid Word,or --symbols 0,0,0,0,4 --out-degree 50 --different-values 50 --states 57319 --indiv --header
-#+END_SRC
-
-#+NAME: wordor_4
-#+RESULTS:
-| i |  states |    edges | initial-partition-size | final-partition-size | explicit-final-partition-size | size1-skipped | overall-duration | parse-duration | algorithm-duration | initialize-duration | refine-duration |
-| 0 | 2923269 | 14329750 |                     54 |              2923269 |                         57319 |      15469967 |    199.956928585 |   47.318311842 |      146.418279061 |        25.807646931 |   115.015762137 |
-
-*** 4xX^5 mit out-degree und different-values 50
-
-#+BEGIN_SRC shell
-./bench.py bisect ../../copar/bin/random-wta ../../copar/bin/copar --monoid Word,or --symbols 0,0,0,0,0,4 --out-degree 50 --good 48000 --bad 52000 --different-values 50
-#+END_SRC
-
-#+RESULTS:
-: Trying 50000...
-: Trying 49000...
-: Trying 48500...
-: Trying 48750...
-: Trying 48875...
-: Trying 48937...
-: Trying 48968...
-: Trying 48952...
-: Trying 48960...
-: Trying 48964...
-: Trying 48962...
-: Trying 48963...
-: First bad state count: 48964
-
-**** File Size 
-
-#+BEGIN_SRC sh :results output table
-ls -sh bench/wta_Word,or_0,0,0,0,0,4_*_48963_* | tr " ," ",."
-#+END_SRC
-
-#+NAME: wordor_5_file
-#+RESULTS:
-| 129M | bench/wta_Word.or_0.0.0.0.0.4_t2448150_50_48963_0.coalgebra |
-
-**** Automaton Size
-
-Aus irgendeinem Grund läuft jetzt 48963 auch schon ins memory limit, deswegen 48962
-
-#+BEGIN_SRC shell
-./bench.py generate ../../copar/bin/random-wta --monoid Word,or --symbols 0,0,0,0,0,4 --out-degree 50 --different-values 50 --states 48962
-./bench.py run ../../copar/bin/copar           --monoid Word,or --symbols 0,0,0,0,0,4 --out-degree 50 --different-values 50 --states 48962 --indiv --header
-#+END_SRC
-
-#+NAME: wordor_5
-#+RESULTS:
-| i |  states |    edges | initial-partition-size | final-partition-size | explicit-final-partition-size | size1-skipped | overall-duration | parse-duration | algorithm-duration | initialize-duration | refine-duration |
-| 0 | 2497062 | 14688600 |                     54 |              2497062 |                         48962 |      18284567 |    167.692238761 |   45.179623229 |      117.531354091 |        20.079035336 |    92.723851956 |
-** Summary
-*** 4xX
-
-| Monoid   | States | States+Interm. |    Edges | File Size | init part | final part |       t_p |       t_i |       t_r |
-|----------+--------+----------------+----------+-----------+-----------+------------+-----------+-----------+-----------|
-| powerset | 132177 |        6741027 | 13217700 | 117 M     |         6 |     132177 | 53.024256 | 32.711091 | 156.04908 |
-| Z,max    | 114888 |        5859288 | 11488800 | 122 M     |       416 |     114888 | 58.957254 | 34.573327 | 66.278453 |
-| Word,or  | 113957 |        5811807 | 11395700 | 131 M     |        54 |     113957 | 61.587433 | 32.126284 | 109.72159 |
-#+TBLFM: $2=$3/51::@2$3=remote(power_1,@2$2)::@2$4=remote(power_1,@2$3)::@2$5=remote(power_1_file,@1$1)::@2$6=remote(power_1, @2$4)::@2$7=remote(power_1, @2$6)::@2$8=remote(power_1,@2$9)::@2$9=remote(power_1,@2$11)::@2$10=remote(power_1,@2$12)::@3$3=remote(zmax_1,@2$2)::@3$4=remote(zmax_1,@2$3)::@3$5=remote(zmax_1_file,@1$1)::@3$6=remote(zmax_1, @2$4)::@3$7=remote(zmax_1, @2$6)::@3$8=remote(zmax_1,@2$9)::@3$9=remote(zmax_1,@2$11)::@3$10=remote(zmax_1,@2$12)::@4$3=remote(wordor_1,@2$2)::@4$4=remote(wordor_1,@2$3)::@4$5=remote(wordor_1_file,@1$1)::@4$6=remote(wordor_1, @2$4)::@4$7=remote(wordor_1, @2$6)::@4$8=remote(wordor_1,@2$9)::@4$9=remote(wordor_1,@2$11)::@4$10=remote(wordor_1,@2$12)
-
-*** 4xX^2
-
-| Monoid   | States | States+Interm. |    Edges | File Size | init part | final part |       t_p |       t_i |       t_r |
-|----------+--------+----------------+----------+-----------+-----------+------------+-----------+-----------+-----------|
-| powerset |  98670 |        5032170 | 14800500 | 123 M     |         6 |      98670 | 46.231443 | 31.400596 | 212.32322 |
-| Z,max    |  95287 |        4859637 | 14293050 | 136 M     |       404 |      95287 | 54.223932 | 30.811424 | 108.36404 |
-| Word,or  |  92434 |        4714134 | 13865100 | 141 M     |        54 |      92434 | 55.730150 | 31.152971 | 144.08990 |
-#+TBLFM: $2=$3/51::@2$3=remote(power_2,@2$2)::@2$4=remote(power_2,@2$3)::@2$5=remote(power_2_file,@1$1)::@2$6=remote(power_2, @2$4)::@2$7=remote(power_2, @2$6)::@2$8=remote(power_2,@2$9)::@2$9=remote(power_2,@2$11)::@2$10=remote(power_2,@2$12)::@3$3=remote(zmax_2,@2$2)::@3$4=remote(zmax_2,@2$3)::@3$5=remote(zmax_2_file,@1$1)::@3$6=remote(zmax_2, @2$4)::@3$7=remote(zmax_2, @2$6)::@3$8=remote(zmax_2,@2$9)::@3$9=remote(zmax_2,@2$11)::@3$10=remote(zmax_2,@2$12)::@4$3=remote(wordor_2,@2$2)::@4$4=remote(wordor_2,@2$3)::@4$5=remote(wordor_2_file,@1$1)::@4$6=remote(wordor_2, @2$4)::@4$7=remote(wordor_2, @2$6)::@4$8=remote(wordor_2,@2$9)::@4$9=remote(wordor_2,@2$11)::@4$10=remote(wordor_2,@2$12)
-
-*** 4xx^3
-
-| Monoid   | States | States+Interm. |    Edges | File Size | init part | final part |       t_p |       t_i |       t_r |
-|----------+--------+----------------+----------+-----------+-----------+------------+-----------+-----------+-----------|
-| powerset |  85016 |        4335816 | 17003200 | 138 M     |         6 |      85016 | 47.614393 | 20.446586 | 167.58715 |
-| Z,max    |  70660 |        3603660 | 14132000 | 127 M     |       397 |      70660 | 49.287429 | 25.886319 | 82.245760 |
-| Word,or  |  69623 |        3550773 | 13924600 | 132 M     |        54 |      69623 | 49.986173 | 25.229488 | 127.06052 |
-#+TBLFM: $2=$3/51::@2$3=remote(power_3,@2$2)::@2$4=remote(power_3,@2$3)::@2$5=remote(power_3_file,@1$1)::@2$6=remote(power_3, @2$4)::@2$7=remote(power_3, @2$6)::@2$8=remote(power_3,@2$9)::@2$9=remote(power_3,@2$11)::@2$10=remote(power_3,@2$12)::@3$3=remote(zmax_3,@2$2)::@3$4=remote(zmax_3,@2$3)::@3$5=remote(zmax_3_file,@1$1)::@3$6=remote(zmax_3, @2$4)::@3$7=remote(zmax_3, @2$6)::@3$8=remote(zmax_3,@2$9)::@3$9=remote(zmax_3,@2$11)::@3$10=remote(zmax_3,@2$12)::@4$3=remote(wordor_3,@2$2)::@4$4=remote(wordor_3,@2$3)::@4$5=remote(wordor_3_file,@1$1)::@4$6=remote(wordor_3, @2$4)::@4$7=remote(wordor_3, @2$6)::@4$8=remote(wordor_3,@2$9)::@4$9=remote(wordor_3,@2$11)::@4$10=remote(wordor_3,@2$12)
-
-*** 4xx^4
-
-| Monoid   | States | States+Interm. |    Edges | File Size | init part | final part |       t_p |       t_i |       t_r |
-|----------+--------+----------------+----------+-----------+-----------+------------+-----------+-----------+-----------|
-| powerset |  59596 |        3039396 | 14899000 | 119 M     |         6 |      59596 | 41.065065 | 25.383502 | 121.31631 |
-| Z,max    |  62665 |        3195915 | 15666250 | 136 M     |       397 |      62665 | 48.473165 | 26.234721 | 66.312404 |
-| Word,or  |  57319 |        2923269 | 14329750 | 130 M     |        54 |      57319 | 47.318312 | 25.807647 | 115.01576 |
-#+TBLFM: $2=$3/51::@2$3=remote(power_4,@2$2)::@2$4=remote(power_4,@2$3)::@2$5=remote(power_4_file,@1$1)::@2$6=remote(power_4, @2$4)::@2$7=remote(power_4, @2$6)::@2$8=remote(power_4,@2$9)::@2$9=remote(power_4,@2$11)::@2$10=remote(power_4,@2$12)::@3$3=remote(zmax_4,@2$2)::@3$4=remote(zmax_4,@2$3)::@3$5=remote(zmax_4_file,@1$1)::@3$6=remote(zmax_4, @2$4)::@3$7=remote(zmax_4, @2$6)::@3$8=remote(zmax_4,@2$9)::@3$9=remote(zmax_4,@2$11)::@3$10=remote(zmax_4,@2$12)::@4$3=remote(wordor_4,@2$2)::@4$4=remote(wordor_4,@2$3)::@4$5=remote(wordor_4_file,@1$1)::@4$6=remote(wordor_4, @2$4)::@4$7=remote(wordor_4, @2$6)::@4$8=remote(wordor_4,@2$9)::@4$9=remote(wordor_4,@2$11)::@4$10=remote(wordor_4,@2$12)
-
-*** 4xx^5
-
-| Monoid   | States | States+Interm. |    Edges | File Size | init part | final part |       t_p |       t_i |       t_r |
-|----------+--------+----------------+----------+-----------+-----------+------------+-----------+-----------+-----------|
-| powerset |  49375 |        2518125 | 14812500 | 116 M     |         6 |      49375 | 38.769441 | 24.415686 | 90.703822 |
-| Z,max    |  49926 |        2546226 | 14977800 | 127 M     |       376 |      49926 | 44.887706 | 20.851582 | 52.506482 |
-| Word,or  |  48962 |        2497062 | 14688600 | 129 M     |        54 |      48962 | 45.179623 | 20.079035 | 92.723852 |
-#+TBLFM: $2=$3/51::@2$3=remote(power_5,@2$2)::@2$4=remote(power_5,@2$3)::@2$5=remote(power_5_file,@1$1)::@2$6=remote(power_5, @2$4)::@2$7=remote(power_5, @2$6)::@2$8=remote(power_5,@2$9)::@2$9=remote(power_5,@2$11)::@2$10=remote(power_5,@2$12)::@3$3=remote(zmax_5,@2$2)::@3$4=remote(zmax_5,@2$3)::@3$5=remote(zmax_5_file,@1$1)::@3$6=remote(zmax_5, @2$4)::@3$7=remote(zmax_5, @2$6)::@3$8=remote(zmax_5,@2$9)::@3$9=remote(zmax_5,@2$11)::@3$10=remote(zmax_5,@2$12)::@4$3=remote(wordor_5,@2$2)::@4$4=remote(wordor_5,@2$3)::@4$5=remote(wordor_5_file,@1$1)::@4$6=remote(wordor_5, @2$4)::@4$7=remote(wordor_5, @2$6)::@4$8=remote(wordor_5,@2$9)::@4$9=remote(wordor_5,@2$11)::@4$10=remote(wordor_5,@2$12)
-- 
GitLab