Skip to main content

A tool for checking transitions in cryptographic game-hopping proofs

Project description

ProofFrog logo

ProofFrog

Tests PyPI Python License: MIT

A tool for checking transitions in cryptographic game-hopping proofs.

ProofFrog checks the validity of game hops for cryptographic game-hopping proofs in the reduction-based security paradigm: it checks that the starting and ending games match the security definition, and that each adjacent pair of games is either interchangeable (by code equivalence) or justified by a stated assumption. Proofs are written in FrogLang, a small C/Java-style domain-specific language designed to look like a pen-and-paper proof. ProofFrog can be used from the command line, a browser-based editor, or an MCP server for integration with AI coding assistants. ProofFrog is suitable for introductory level proofs, but is not as expressive for advanced concepts as other verification tools like EasyCrypt.

ProofFrog web interface

Installation

Requires Python 3.11+.

From PyPI

python3 -m venv .venv
source .venv/bin/activate
pip install proof_frog

After installing, download the examples repository:

proof_frog download-examples

From source

git clone https://github.com/ProofFrog/ProofFrog
cd ProofFrog
git submodule update --init
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"

Documentation

Full documentation is available at prooffrog.github.io, including:

License

ProofFrog is released under the MIT License.

Acknowledgements

ProofFrog was created by Ross Evans and Douglas Stebila, building on the pygamehop tool created by Douglas Stebila and Matthew McKague. For more information about ProofFrog's design, see Ross Evans' master's thesis and eprint 2025/418.

ProofFrog's syntax and approach to modelling is heavily inspired by Mike Rosulek's excellent book The Joy of Cryptography.

We acknowledge the support of the Natural Sciences and Engineering Research Council of Canada (NSERC).

NSERC logo

Includes icons from the vscode-codicons project.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

proof_frog-0.4.1.tar.gz (1.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

proof_frog-0.4.1-py3-none-any.whl (589.1 kB view details)

Uploaded Python 3

File details

Details for the file proof_frog-0.4.1.tar.gz.

File metadata

  • Download URL: proof_frog-0.4.1.tar.gz
  • Upload date:
  • Size: 1.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for proof_frog-0.4.1.tar.gz
Algorithm Hash digest
SHA256 a42384169c90f6dd0f5a943bccb7615524655de917b4afe40193a90e2a05e00f
MD5 828c6edba6997b4f407bd8e599235a1f
BLAKE2b-256 8c05a9399f64c49c4ea3749649af5e5b252111df1894a90612834726bb05d337

See more details on using hashes here.

File details

Details for the file proof_frog-0.4.1-py3-none-any.whl.

File metadata

  • Download URL: proof_frog-0.4.1-py3-none-any.whl
  • Upload date:
  • Size: 589.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for proof_frog-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 050717970e0b103d13a7673beeb1144792ad382006450ef9fa1c2f15fe115ae9
MD5 4dcbf71d401b5ecabdb0c50dd1ff57ba
BLAKE2b-256 1120ddf3cafa0a4f9444f74dfddb41956fb8f949ae282a426c9c2d60c16d09e6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page