Coder Social home page Coder Social logo

amaya-smt-comp's Introduction

Configuration of Amaya for SMT-COMP

Repository for sumbissions of Amaya to SMT-COMP.

I don't know Docker, so it's likely some things are done in a stupid way. Please correct if you find a better way. Many things

Compilation

Installing and running the BenchExec Docker image

$ docker run registry.gitlab.com/sosy-lab/benchmarking/competition-scripts/user:latest
...
$ docker container run --name benchexec -it registry.gitlab.com/sosy-lab/benchmarking/competition-scripts/user

Installing prerequisites

cd /home
apt install git cmake gcc make python3 python3-pip libgmp-dev libhwloc-dev pkg-config

Installing Sylvan

git clone 'https://github.com/trolando/sylvan.git'
cd sylvan
git checkout v1.5.0
sed -i 's/-Werror//g' CMakeLists.txt  # Temporarily disable treating warnings as errors; allows building with newer GCC
mkdir build
cd build
cmake -DBUILD_SHARED_LIBS=ON ..
make
make test
sudo make install

Compiling Amaya's C++ backend

git clone https://github.com/MichalHe/amaya-mtbdd.git
cd amaya-mtbdd
make shared-lib
AMAYA_MTBDD_DIR="$(pwd)"

Installing Amaya's python dependencies and C++ backend's shared object in the right place

git clone 'https://github.com/MichalHe/amaya.git'
cd amaya
pip install -r requirements.txt
cp $AMAYA_MTBDD_DIR/build/amaya-mtbdd.so ./amaya

Running amaya

./run-amaya.py --fast -O all get-sat <formula.smt2>

The --fast option enables the C++ backend and turns on eager minimization. The -O all option enables all formula optimizations, and also allows the solver to use the derivative construction (dubbed internally as "lazy" backend).

Creating an SMT-COMP submission archive

Python dependencies cannot be installed system-wide, and, therefore, one has to set up a virtual environment, and install the dependencies there. Sylvan is also installed system-wide. Therefore, the libsylvan.so object needs to be present in the submitted archive, and LD_LIBRARY_PATH must be set accordingly when Amaya.

amaya-smt-comp's People

Contributors

ondrik avatar michalhe avatar

Watchers

 avatar Lukas Holik avatar Tomas Fiedor avatar  avatar Vojtěch Havlena 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.