Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding STP solver @GSoC 2019 #163

Open
wants to merge 26 commits into
base: master
Choose a base branch
from
Open

Adding STP solver @GSoC 2019 #163

wants to merge 26 commits into from

Conversation

refactormyself
Copy link
Contributor

@refactormyself refactormyself commented Aug 26, 2019

So far this is the progress made on adding STP solver to java-smt:

  • Create a Build Script which can automatically:
    • Clone and Build STP,
    • Generate the java bindings and compile if a Jar (so we a Jar and .so)
    • Copy the Jar and .so files to appropriate folder inside the java-smt
  • Extend the STP's C interface, to support some needed functions like (UNSAT, GetModel, etc)
  • Create SolverContext class
  • Create FormulaManager class
  • Create FormulaCreator class
  • Create classes for supported Formulae/Thoeries and their Managers
  • Create classes for the Theorem Prover (not fully implemented)
  • Create Model class (not fully implemented)

TODO: (I will like to continue with this after GSoC)

  • Complete the extension of STP api to support needed functions
    • UNSAT (the current implementation is a hack)
    • Figure out how to get an array of Models out of STP and not string
    • Maybe a better way to fully merge the C++ interface into the C interface
    • A better error handling
  • Test Array Formula creation
  • Fully implement the glue code for proving SAT/UNSAT
  • Fully Implement the Model Class
  • Documentation

I have added the build paths and STP repo to .gitignore
so I have to do less cleaning before commit

Now in the STP solver package the shared library is
detected - Test passing
Error Handling is not properly done
Tests not written, so fuctions are expected to fail
But it's working
unnecessary classes removed
calling functions adjusted

But now StpSolverTest gives a Segfault
The Segfault is a kind of false negative.
The pointers are mismatching i.e. not consistent as objects move around.
Still debugging this
The Hashcode is done too
Multiple changes done here
@refactormyself refactormyself self-assigned this Aug 26, 2019
STP only print the models to stdout, I will have to rewrite an
extension method to return the collection of models or an iterator.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

2 participants