Skip to main content

fm-weck: Run formal methods tools in containerized environments

fm-weck is a command line tool and library that makes the execution of formal methods tools easy. fm-weck downloads the tools and caches them for later use.

DOI

We provide a tutorial on how to use fm-weck here.

Install dependencies

fm-weck requires Python 3.10 or higher. fm-weck relies on an available Podman or Docker installation. To install Podman on Ubuntu, run the following command:

sudo apt install podman

Modes of Operation

There are three modes of operation: run, shell and expert.

  • run: (Recommended) enables plug-and-play execution of formal methods tools: it downloads and unpacks a tool from the fm-tools metadata file into a user-specified cache directory on the host system and then runs the tool in the containerized environment
  • expert: executes a tool in it's containerized environment specified through the corresponding fm-tools YAML file: All arguments are passed verbatim to the tool.
  • shell: enters an interactive shell inside of the container specified by the given tool

Development and Testing

When using any command with the fm-weck <cmd> toolname ... syntax, the tool name is searched in src/fm_weck/resources/fm_tools. During the build process of the .whl file for fm-weck, the fm_tools/data directory is copied to that location. When running or developing fm-weck from the git repository, the user must make sure that the contents of fm_tools/data directory are available in the src/fm_weck/resources/fm_tools directory.

In Linux this can be done by running the following command in the root directory of the project:

ln -s $(pwd)/fm_tools/data $(pwd)/src/fm_weck/resources/fm_tools

Publications

A paper about fm-weck has been accepted at the FM '24 conference.

Metadata

Release files for fm-weck 1.8.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for fm-weck 1.8.1
File Interpreter ABI Platform Actions
fm_weck-1.8.1-py3-none-any.whl Python 3 none any Details for fm_weck-1.8.1-py3-none-any.whl

Release files / fm_weck-1.8.1-py3-none-any.whl

Download URL fm_weck-1.8.1-py3-none-any.whl
Size 980.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
26943497fec8dd4cba32f90bbd83f2da59dea3f9de6d3703f153748ecf57bb5d
BLAKE2b-256 checksum
How to use checksums
e25421411bbb3a8bf7e86ada496ef8cf7c3d1b010a8b029bd1c3e1af344e4c3c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.12.14

Security for fm-weck 1.8.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.8.1 This release

1 release file No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page