GithubHelp home page GithubHelp logo

robblanco / checkers Goto Github PK

View Code? Open in Web Editor NEW

This project forked from proofcert/checkers

0.0 2.0 0.0 8.63 MB

This is not a game.

AMPL 56.88% Standard ML 15.58% Makefile 2.58% TeX 2.64% HTML 8.19% Shell 3.14% OCaml 10.99%

checkers's Introduction

Checkers

Checkers is a λ-prolog implementation of a tool for checking proofs output by theorem provers. It is based on the theory of foundational proof certificates (see, for example, here).

Currently it has support for checking some of the proofs from e-prover. This means we are able to parse the proofs into λ-prolog modules which can than be checked by checkers.

Installation

The proof checking component of checkers is implemented in λ-prolog. The E-prover parser is implemented in OCaml.

  • Checkers depends on the Teyjus implementation of λ-prolog. Teyjus can be found here here. Please install version 2.1 or later.
  • The parser can be found in proofs/tstpparser. Just type make inside this directory and you will obtain an executable tstpparser

Usage

Parser

The executable tstpparser can be run on e-prover's proof evidence resulting on a .mod and a .sig λ-prolog files (proof certificates). For instance, the following set of commands:

cd proofs/tstpparser
make
cd ..
./tstpparser/tstpparser simple.out simple

will generate the simple.mod and simple.sig files in the proofs directory which correspond to the certificate of the proof in simple.out.

Checkers

The script prover.sh can be used to compile and run \checkers\ on given certificates. The argument for Checkers is the name of the .mod and .sig files of the certificate, which must be placed in the src folder. For example, in order to check the proof certificate contained in the files param2.mod and param2.sig, one needs to place them in the src folder and execute the following command:

./prover.sh param2

Checkers was tested under Debian 8 and Fedora 21. The shell scripts are written for bash.

Structure

The program contains the following files and directories.

  • proofs directory which contains utilities and examples for interfacing with E-prover.
  • src directory contains the λ-prolog code of the program, including the FPC for E-prover.
  • README file which contains instructions of how to run the program.
  • prover.sh script for running Checkers on a given certificate name.
  • prover-debug.sh script for running Checkers in debugging mode. This should mainly be used by implementors of FPCs.

Examples

Some certificates for testing can be found in the folder src/tests/resolution. These certificates are already included in the path and can be checked without the need to copy them first to the src folder.

Certificate formats

Checkers currently supports certification of two forms of resolution proofs. Please refer to the system description of Checkers for more information about the two formats. Examples of the two forms can be seen in the problems eprover1 and eprover2 which can be found in the tests directory.

Comments

  • Checkers requires the latest version of Teyjus in order to properly handle paths. It should be noted that the program prover-debug.sh does not require the latest version of Teyjus and can be tried without the intallation of the later.
./prover-debug.sh module_name

checkers's People

Contributors

shaolintl avatar gisellemnr avatar zchihani avatar

Watchers

James Cloos avatar Rob Blanco avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.