GithubHelp home page GithubHelp logo

4txj7f / cvc5 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cvc5/cvc5

2.0 2.0 5.0 194.29 MB

CVC4 is an efficient open-source automatic theorem prover for satisfiability modulo theories (SMT) problems.

License: Other

Shell 0.55% C++ 25.03% Perl 0.01% Emacs Lisp 0.05% C 0.02% Python 0.52% Java 0.69% GAP 0.22% SMT 71.32% OpenEdge ABL 0.73% CMake 0.60% Dockerfile 0.01% Cython 0.26%

cvc5's People

Contributors

4txj7f avatar abdoo8080 avatar ajreynol avatar alex-ozdemir avatar aniemetz avatar aytey avatar ayveejay avatar barrettcw avatar bobot avatar cdonovick avatar clconway avatar dddejan avatar fabianwolff avatar guykatzz avatar hanielb avatar kbansal avatar lachnitt avatar makaimann avatar martin-cs avatar mdeters avatar mpreiner avatar mudathirmahgoub avatar nafur avatar ouyancheng avatar paulmeng avatar ptroja avatar tiliang avatar timothy-king avatar ying1123 avatar yoni206 avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

cvc5's Issues

Investigate Portfolio failure

Check why the portfolio build has issues. This might not be worth fixing right now if it is due to multiple copies of the SMTEngine coexisting.

Remove initInternal

It seems like initInternal is not really useful anymore (at least not for the pull request). Remove initInternal and the private variables from the preprocessing passes. Instead get the necessary variables at the beginning of applyInternal from the API.

Decide on API

For each variable in init, we need to decide about one of the following things:

  • Move it to the API class (probably reserved for read only access)
  • Move it to the assertion pipeline (probably for objects that are modified by multiple passes)
  • Have them owned by a pass (the object gets created and destroyed with the pass)

Poster

Random comments on the poster (will add more to the issue as time goes by):

  • Mention how many different preprocessing passes there are
  • Maybe include two or so examples of preprocessing passes
  • API -> Context
  • Maybe have a list of classes that you implemented (PreprocessingPass, PreprocessingPassContext, PreprocessingPassRegistry) with a 1-2 sentence description of their purpose.
  • Drawing is missing PreprocessingPassRegistry

Use enum for PassResult

Currently the PassResult is a struct but we should use an enum with CONFLICT and NO_CONFLICT.

Make accesses to NodeManager consistent

For all PreprocessingPasses, make sure that accesses to the NodeManager happen through the thread_local variable, i.e. NodeManager::currentNM() and not through the SMT engine.

Create API class

There should be an API class that all PreprocessingPasses have access to. Probably the easiest thing to do the following:

[ ] Create a PreprocessingPassAPI class that takes all variables that are currently passed into init
[ ] Create an instance of such a class at the beginning of ProcessAssertions
[ ] Remove all arguments from init() and instead have a single argument that is a pointer to the API
[ ] Change accesses to API variables to go through the API
[ ] Add methods to the API to avoid accesses to the variables in the API

We will have to move some variables out of the API but it seems like the easiest would be to get something working first.

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.