Giter Site home page Giter Site logo

libsmt.rs's People

Contributors

chinmaydd avatar karthiksenthil avatar sushant94 avatar xvilka avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

libsmt.rs's Issues

Extend supported commands

smtlib.rs currently only supports a few of the defined standard command.
According to the SMTLIB2 standard the following functions are to be recognized and implemented for every solver:

  • set-logic
  • define-fun
  • declare-fun
  • declare-sort
  • define-sort
  • assert
  • get-assertions
  • check-sat
  • get-proof
  • get-unsat-core
  • get-value
  • get-assignment
  • push
  • pop
  • get-option
  • set-option
  • get-info
  • set-info
  • exit

We would like to support them all

Implement more logics

The current SMTLIB2 implementation only supports a few bitvector logic.
See here for a complete list of logics defined according to the standard.

Set timeout for read()

The current implementation waits indefinitely to read from the process pipe. It would be nice to have a configurable option to set a timeout for read from the solvers.

[docs] Improve usage examples

  • Add more usage examples to show use of more logics
  • Write blogpost showing various aspects of libsmt2 such as:
    • Implementing a new solver backend
    • Implementing a new custom logic

Cleanup warnings

  • Fix up some enum variants
  • Add lints to allow non_camel_cased_types in places needed
  • Compile with clippy to compile with more lints and fixup

Add re-exports

The current modules level makes it hard to use some common components of the library such as opcodes. For a better developer experience, it is better to re-export these.

Returned output from Z3 not properly captured in Windows

It seems that "unsat" is stored as "u" and "sat" is stored as "s", meaning that in smtlib2.rs::check_sat(), the call to &smt_proc.read() never seems to return "sat\n", and so all results from Z3 are marked as "Unsat".

This same code also doesn't account for an error returned from Z3, which isn't the same as "Unsat". This would be true for any environment.

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.