Skip to content

ProofFrog/examples

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

109 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ProofFrog logo

ProofFrog Examples

ProofFrog is a tool for checking transitions in cryptographic game-hopping proofs. It verifies that each adjacent pair of games in a proof 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 is suitable for introductory level proofs, but is not as expressive for advanced concepts as other verification tools like EasyCrypt.

This repository contains a growing collection of cryptographic definitions and proofs that can be used with ProofFrog.

Getting started

Follow the installation instructions to install ProofFrog (requires Python 3.11+):

pip install proof_frog

Then download the examples:

proof_frog download-examples
# or clone this repository directly:
# git clone https://github.com/ProofFrog/examples

To check a proof:

proof_frog prove joy/Proofs/Ch2/OTPSecure.proof

Contents

This repository contains primitives, schemes, games, and proofs covering:

A detailed catalogue of examples is available at prooffrog.github.io/examples.

Documentation

Full ProofFrog documentation is available at prooffrog.github.io, including a tutorial, language reference, and worked examples.

License

These examples are released under the MIT License.

About

Example files that can be used with ProofFrog

Resources

License

Stars

Watchers

Forks

Contributors