https://github.com/ProtocolConvergence/protocon
Designing stabilizing protocols is hard, therefore Protocon exists to automate this task.
It performs a backtracking search to choose actions that finite-state processes should follow in order to converge to a set of legitimate states.
We call this shadow/puppet synthesis, where the legitimate states and behavior can be specified indirectly using shadow variables.
Because the problem is hard, one can leverage multiple cores/nodes for parallel search with OpenMP (via the -parallel
flag) or MPI (via the protocon-mpi
executable).
-->
Tutorial <--
Just type make
from the top-level directory to build object files in bld/
and place the main executables there.
make
mkdir tmp
./bld/protocon -x examplespec/ColorRing.prot -o tmp/solution.prot
# Get the code.
git clone https://github.com/ProtocolConvergence/protocon.git protocon
cd protocon
# Build with CMake.
mkdir -p bld
cd bld
cmake ..
cmake --build . --config Release
cd ..
# Synthesize 3-coloring protocol.
mkdir tmp
./bld/protocon -x examplespec/ColorRing.prot -o tmp/solution.prot
If you’re on a Mac, read on.
Was CMake not found?
If so, make sure it’s installed and launch its GUI.
Specify its source directory as /path/to/protocon/src/
and the build directory as /path/to/protocon/bld/
.
Hit the Generate
button.
Now there should be a makefile in bld/
, so in the terminal type make
.
All essential dependencies are automatically downloaded during compilation.