Coder Social home page Coder Social logo

Polya about coq-smt-check HOT 6 OPEN

gmalecha avatar gmalecha commented on May 29, 2024
Polya

from coq-smt-check.

Comments (6)

gmalecha avatar gmalecha commented on May 29, 2024

We'd love to do this. What is the input format for these tools? Right now we are generating SMT 2 format, if those follow that format, then porting should be pretty easy.

from coq-smt-check.

spitters avatar spitters commented on May 29, 2024

This is the conversion tool.
https://github.com/rlewis1988/smtlib2polya

from coq-smt-check.

gmalecha avatar gmalecha commented on May 29, 2024

Great. I'll take a look at it.

from coq-smt-check.

robertylewis avatar robertylewis commented on May 29, 2024

Yes, this would be a great connection to make!

We can take SMT2 input, using the tool @spitters points out. We don't support all features of the format, and I suspect the conversion isn't entirely bug-free, but I'd be happy to take a look at anything that seems suspicious. I haven't worked on the conversion tool recently, but there are a bunch of additions on my to-do list that I'm hoping to get to over the next few weeks.

from coq-smt-check.

gmalecha avatar gmalecha commented on May 29, 2024

I refactored the implementation a bit in the split-solvers branch. This should make it pretty easy to write a new prover and plug it into the system. I took a brief look at the installation instructions but it seems a bit complex to install right now. Is it reasonable to have a program that acts in a similar way to the cvc4 or z3 executables where I can simply write a problem out and get a result? In particular the src/z3solve.ml file contains the code to invoke z3.

from coq-smt-check.

robertylewis avatar robertylewis commented on May 29, 2024

Yes, you can generate an executable similar to the one for z3. In the main directory of https://github.com/rlewis1988/smtlib2polya, there's an executable polya generated on Kubuntu -- I'm not sure how cross-platform it is, though. To generate your own:

Run this by giving it a .smt2 file: ./polya file_name.smt2 I don't think that you need to keep the polya directory in your python path for the executable to work. The output is 1 if unsat, -1 if Polya fails, and 0 if there is an error. (Polya is not a decision procedure, so you should interpret -1 as "possibly sat." 0 could mean a timeout, a feature of the SMT spec we don't support, or a bug in my code.)

If you'd prefer to call python directly, python single_translate.py file_name.smt2 will have the same output as the executable. You may need to be careful with the python path, though, or put the Polya directory in the smtlib2polya directory. (The two are released separately for licensing reasons, sorry for the complication.)

from coq-smt-check.

Related Issues (4)

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.