Stochastic models are well-suited to studying systems in emerging fields such as nanotechnology, computational chemistry, and synthetic biology. However, the kinds of stochastic models which arise in these emerging fields tend to have infinite state space which cannot be analyzed by most existing tools. It is therefore prudent that tools be developed to verify infinite state space stochastic models. Likewise, there does not exist a collection of case studies for analyzing the performance of infinite state space stochastic model checking tools. Here, such a collection is developed and presented. The collection includes case studies from nanotechnology, computational chemistry, and synthetic biology which vary in complexity from toy models to practical designs encoded in the PRISM language. The models can be used in PRISM, STORM, or STAMINA or any other tool that uses the PRISM language. The case-study repository presented here is intended to be a living document, so community contributions and recommendations are welcome.
Benchmarks play a critical role in accessing various systems in computer engineering and science. They ensure a reliable, systematic test to evaluate a computer system's accuracy and performance. The benchmarks of this work includes two different sets of benchmarks.
Chemical reaction networks are systems including some number of chemical species reacting through some number of defined reaction channels. Because chemical reaction networks underlie all biomolecular processes, their modeling, and analysis are relevant to the design and analysis of biological systems with applications to medicine, biomanufacturing, and biofuels. Stochastic model checking is particularly relevant in these systems because biochemical systems may have low molecule counts, so traditional chemical kinetics are insufficient. This section describes five such examples.
Genetic circuits are part of synthetic biology, a research field combining engineering principles with biology. Researchers build circuits out of defined biological parts adding desired functionalities to biological systems. Automation in the design process allows scientists to model and analyze their genetic circuits \emph{in silico} to test the system before implementation. Stochastic model checking has been used to analyze genetic circuits before, which have an infinite state space and therefore suit the case studies presented here.
This guide explains how to pull, configure, and run the ifndefjosh/sstamina tool using Docker on an Apple Silicon (M-series) Mac. It includes the specific configurations needed to bypass architecture mismatches, map local files, and call the exact internal binary path.
- Docker Desktop installed and running on Mac.
- Model files (e.g.,
.smand.props) saved together in a dedicated project directory.
Before starting, ensure the terminal is inside the folder containing the model files. Docker uses the active folder to share files with the container.
cd /path/to/your/StaminaDocker(Verify your files are visible in this directory by running ls before proceeding).
Pull the verified v3.0_2025 build from Docker Hub:
docker pull ifndefjosh/sstamina:v3.0_2025Because this container is built for Intel processors (amd64) and the internal tool path is not configured in the system $PATH, the tool must be executed using the absolute path while enabling Mac architecture emulation.
Run the following command directly from the terminal (replace your_model.prism and your_properties.csl with the actual filenames):
docker run --rm \
--platform linux/amd64 \
-v "\$(pwd)":/data \
ifndefjosh/sstamina:v3.0_2025 \
/opt/stamina-storm/build/sstamina /data/your_model.prism /data/your_properties.cslIf you are running the tool on Windows instead of macOS, you do not need the --platform flag, but you must adjust the folder mounting syntax depending on the shell environment:
docker run --rm \
-v "\${PWD}:/data" \
ifndefjosh/sstamina:v3.0_2025 \
/opt/stamina-storm/build/sstamina /data/your_model.prism /data/your_properties.csldocker run --rm \
-v "%cd%:/data" \
ifndefjosh/sstamina:v3.0_2025 \
/opt/stamina-storm/build/sstamina /data/your_model.prism /data/your_properties.csl--rm: Automatically deletes the temporary container instance as soon as the calculation finishes to keep your system clean.--platform linux/amd64: Forces the Apple Silicon Mac to use its internal translation layer (Rosetta/QEMU) to execute the Intel-based container code.-v "$(pwd)":/data: Creates a live link between the current Mac folder ($(pwd)) and a virtual folder named/datainside the container./opt/stamina-storm/build/sstamina: Specifies the exact location of the compiled binary discovered inside this container version./data/...: Directs the tool to read the files from the shared virtual directory.
If the tool reports that it cannot find the files, an interactive terminal can be opened directly inside the container to inspect the directories:
docker run --rm -it --platform linux/amd64 -v "\$(pwd)":/data ifndefjosh/sstamina:v3.0_2025 bashOnce inside the container terminal, these diagnostic checks can be run:
- Check files: Type
ls /datato confirm the Mac files are passing through successfully. - Check the binary: Type
ls /opt/stamina-storm/buildto verify thesstaminacompilation file exists. - Exit: Type
exitto return to the normal Mac terminal prompt.