-
Notifications
You must be signed in to change notification settings - Fork 54
Add CVC5 Parsing Support #540
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
base: master
Are you sure you want to change the base?
Conversation
…erm, as it creates new distinct terms when parsing
…d precondition about named terms (as they are currently not handled)
…code more readable
… to register their free counterparts
…as not every solver can do that!) for int and bv arrays
…nor modifications from 0d463c8
|
The last remaining problem is that MathSAT5 output can't be parsed in general, as MathSAT5 splits up the query and uses a We should ask the CVC5 devs to allow this, and or add a re-substitution procedure. |
…char when defining expressions and re-substitute the terms later on (only works for Mathsat most likely, but no other solver returns something like this!)
I've now added a re-substitution for MathSAT5s output. Still, we should look into either modifying the output of MathSAT, ask the MathSAT devs to change this, use the alternative dump function of MathSAT, or ask the CVC5 devs to allow this. |
…check this error + improve dumping by properly using function return and input types for our smtlib2 output
…needed (UFs fail for double declaration, variables actually work) and only declare UFs once, even if used multiple times, when dumping
…ables and UFs are not allowed to be defined twice)
…-const before adding them to the input if known already
…ntry as checkstyle thinks WRONGLY that we use only the keys
daniel-raffler
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good so far! Some of the preprocessing could be simplified by using the Tokenizer as was done in #474
…rom internal output before adding to the input
…allows symbols to be parsed multiple times
…re lenient parsing, reuse symbols etc. and remove all imprecise SMTLIB2 insertions and now unneeded methods
|
I started some experiments to see how well MathSAT and Bitwuzla output works with CVC5. I can also start Z3 once we know how that went. |
Results show only a few parsing related errors (but not all that much has been parsed): The main problem is the missing Commandline to trigger: Triggering SMTLIB2: Another problem is that some symbols are still parsed multiple times: SMTLIB2: |
|
Note: the second parsing problem is a Bitwuzla problem ;D Seems like the parser works besides the FP to IEEE BV issue. We can tackle that later, as we might have to contact the devs for this. I opened a issue for this. @kfriedberger this is now ready for review. |
baierd
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note: this has PR 539 already merged in. It makes sense to review PR 539 first.
This PR adds support for parsing to CVC5.
Should only be merged after PR539.