Giter VIP home page Giter VIP logo

clever's Introduction

Client-Specific Equivalence Checking

Installing

# 0. Prepare
pip3 install virtualenv
mkdir clever
virtualenv clever
cd clever
source bin/activate 

# 1. Clone repo
git clone https://github.com/Client-Specific-Equivalence-Checker/CLEVER.git
cd CLEVER

# 2. Install PySMT
cd deps/pysmt
# (may need) sudo apt-get install python3-setuptools
python3 setup.py install
cd ../..

# 3. Install Z3 with Python bindings
pysmt-install --z3
# 4. Obtain a string to update your PYTHONPATH and then update it 
# (you can just paste the string into your shell)
pysmt-install --env
# 5. Check that z3 was correctly installed
pysmt-install --check
# It should show
# z3        True (4.5.1)
# If you see
# "z3       False (None)"
# then step 3 failed. Follow the isntructions at https://github.com/Z3Prover/z3 to install z3 with python3 bindings
# If you see "Not in Python's path!" then step 4 was not completed correctly

# 6. Install PyExZ3
cd deps/PyExZ3
python3 setup.py install
cd ../..

# 7. Install CLEVER
cd src
python3 setup.py install
cd ..

# 8. Use. See below.

# 9. Deactiviate Virtualenv
deactivate

Usage

CLEVER <V1_FILE> <V2_FILE> --client <NAME_OF_CLIENT> --library <NAME_OF_LIBRARY> <RETURN_TYPE> [<ARG_TYPES>]

Example

CLEVER loopmult20.py loopmult20_1.py --client loopmult20 --library lib int [int,int]

Attempting to Prove:
(((18 <= x) ? ((x < 22) ? ((... + ...) + x) : 0) : 0) = ((18 <= x) ? ((x < 22) ? ((... < ...) ? (... ? ... : ...) : Unknown) : 0) : 0))

CSE Proven by Assertion!
Execution time: 0.130 seconds

clever's People

Contributors

federicoaureliano avatar liyistc avatar nickf0211 avatar

Watchers

 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.