Coder Social home page Coder Social logo

expresso's Introduction

Usage

java -jar JARFILE CONSTRAINT [STRATEGY]

  • CONSTRAINT は .smt2 ファイル
  • STRATEGY は preimage または jssst
    • jssst は JSSST2021大会予稿で示したアルゴリズム(デフォルト)
    • preimage は OSTRICH 風の逆像計算によるアルゴリズム

インストール

Docker を使う場合

docker pull kamasaki/expresso:jssst2021

使い方

docker run --rm -i -v $(pwd):/workdir kamasaki/expresso:jssst2021 CONSTRAINT [STRATEGY]

手動ビルド

Ubuntu 20.04 LTS と macOS Big Sur でのビルドをサポートする. なお,Windows では WSL2 により Ubuntu を利用できる.

必要なもの

  • OpenJDK 11
  • sbt
  • Z3 4.8.8
  • scala-smtlib

セットアップスクリプト (./setup.sh) は以下の依存性を準備してビルドし, 成果物が実行できるか確認する(JDK と sbt は事前に準備すること). スクリプトは最初の一回だけ使えば良い. あとは通常通り sbt を使える.

プログラムは Z3 バージョン 4.8.8 の Java API を利用しているため, ビルド時と実行時にそれぞれライブラリが必要. ここから 環境に応じた Zip ファイルをダウンロードする.

  • Z3 の bin ディレクトリから共有ライブラリを適切な場所にコピーする.
    • Ubuntu の場合.libz3.solibz3java.so/usr/local/lib などに配置
    • macOS Big Sur の場合.libz3.dyliblibz3java.dylib を, java -jarを実行するのと同じディレクトリに配置(/usr/local/lib などに配置すると System Integrity Protection により読み込みがブロッ クされる)
  • Z3 の bin/com.microsoft.z3.jar を,ビルドディレクトリの lib/ に 配置する.

Scala 2.13 対応のバイナリは自動で解決されないので,自分でビルドしたものを lib/ 以下に配置する (ビルド方法).

制約

./constraints 以下に制約例がある. ./constraints/bench の例 (の多く) は ParikhSolverTest クラスから実行される. JSSST2021大会予稿に例として取り上げた制約は以下:

expresso's People

Contributors

kmn4 avatar

Forkers

jj1uzh kmn4

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.