https://github.com/fm4se/fm-playground
A Formal Method playground for limboole, Z3, nuXmv, Alloy, Spectra, Dafny, and more...
https://github.com/fm4se/fm-playground
alloy alloy-analyzer dafny dafny-language formal-methods limboole nuxmv sat-solver smt-solver smt2 smv spectra spectra-synthesizer syntech z3
Last synced: 3 months ago
JSON representation
A Formal Method playground for limboole, Z3, nuXmv, Alloy, Spectra, Dafny, and more...
- Host: GitHub
- URL: https://github.com/fm4se/fm-playground
- Owner: fm4se
- License: mit
- Created: 2023-08-31T11:45:25.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2026-02-11T17:58:12.000Z (4 months ago)
- Last Synced: 2026-02-12T01:54:56.411Z (4 months ago)
- Topics: alloy, alloy-analyzer, dafny, dafny-language, formal-methods, limboole, nuxmv, sat-solver, smt-solver, smt2, smv, spectra, spectra-synthesizer, syntech, z3
- Language: TypeScript
- Homepage: https://play.formal-methods.net/
- Size: 135 MB
- Stars: 19
- Watchers: 2
- Forks: 8
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
A web-based platform for formal methods tools, providing an easy-to-use interface for model checking, formal verification, and synthesis. Currently, Limboole, Z3, nuXmv, Alloy, dafny, and Spectra are integrated into the platform. Due to the modular architecture, more tools can be added easily.
## Overview and Examples
We started a small overview of the features of the FM Playground and how to use it. The video playlist is available on [YouTube](https://www.youtube.com/playlist?list=PLGyeoukah9NYq9ULsIuADG2r2QjX530nf)
[](https://www.youtube.com/playlist?list=PLGyeoukah9NYq9ULsIuADG2r2QjX530nf)
For more updates, examples, and tutorials, please visit the [formal-methods.net](https://formal-methods.net) website.
## Development
### Requirements
- Python >= 3.10.0
- Node >= 20.0.0
- PostgreSQL >= 15.0 (optional) - use sqlite3 for development
- Docker >= 20.10.0 (optional)
- Docker Compose >= 1.27.0 (optional)
### Installation
- [TODO]
### Development Server
For local development, you can use the following script to start the development server:
- Unix-based systems (Linux, macOS): `./start_dev.sh`
- Windows: `start_dev.ps1`
It will ask you which services you want to start (frontend, backend, tools). You can select multiple services by separating them with commas.
NOTE: In windows, you might experience issues with the script execution policy.
### Docker
- [TODO]
### Docker Compose
- Copy the `.env.example` file to `.env` and update the environment variables as needed:
```bash
cp .env.example .env
```
- Run the following command:
```bash
docker compose up -d
```
## Contributing
TODO: Create a contributing guide
## License
This project is licensed under the [MIT License](LICENSE).
### Third-Party Licenses
- Limboole - https://github.com/maximaximal/limboole/blob/master/LICENSE
- Z3 - https://github.com/Z3Prover/z3/blob/master/LICENSE.txt
- nuXmv - https://nuxmv.fbk.eu/downloads/LICENSE.txt
- Alloy - https://github.com/AlloyTools/org.alloytools.alloy/blob/master/LICENSE
- Dafny - https://github.com/dafny-lang/dafny/blob/master/LICENSE.txt
- Spectra - https://github.com/SpectraSynthesizer/spectra-synt/blob/master/LICENSE