- Benchmarks and updates to documentation
- Prefer new syntax over
Nat % Nsyntax
- Add dining cryptographers, dining philosophers, and stop-and-wait examples
- Allow actions that are not self-disabling when a self-disabling version violates safety
- Make synthesis feasible for synchronous systems
- Fix crash when optimizing using MPI
- Fix
-=>operator when used with random write variables, and change it to automatically randomize unassigned ones - Fix
-=>operator to not affect the guard for pure shadow variables - New
random read:access to variables for probabilistic stabilization - New
(future & closed)keyword for stabilization without enforcing a specific protocol behavior
- New
random write:access to variables for probabilistic stabilization - New
(future & future silent)and(future & future shadow)keywords for convergence to any subset of the invariant - Daisy chain orientation example
- Can implicitly remove self-loops by using
-=>in place of--> - New
min(a,b)andmax(a,b)functions
- Introduce
active shadowwhich can be substituted forshadowto prevent shadow self-loops - Change
permit:semantics to make more intuitive sense - More examples and documentation
- New support for
shadowvariables - Use .prot file extension
- MPI version now supports protocol optimization via the
-optimizeflag - When using puppet variables, enforce a silent protocol with
future silent;line
- New
permit:keyword to complementforbid: - New
(assume & closed)keyword to restrict initial states - New
-optimizeflag for finding an optimal protocol (in interleaved steps) - New
(future & silent)or(future & shadow)syntax for invariants (see examples) - Putting a
-defbefore (but not after)-xin the argument list affects the initial file read and candidate actions - More examples!
- Substantially more quality control and testing, associated bug fixes
- File reorganization
- Preserve locally-conjunctive invariants
- Serial search is now the default mode
- Improved packaging
- Improved file reading, still much room to improve
- Verification in GUI
- Symmetry can be enforced across sets of variables.
- GUI gets a state exploration mode.
- Can now mark actions as forbidden. Synthesis cannot use them for recovery.
- Improve Promela model output.
- More testing and bug fixes.
- Fix output format when multiple variables are used.
- Add ring orientation example