-
Notifications
You must be signed in to change notification settings - Fork 23
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
Printing CHCs after they have been simplified in Eldarica #40
Comments
Hi Sepideh,
yes, you can get the simplified clauses using the option -logSimplified
Philipp
|
Great, thanks! |
Thanks @pruemmer! Is there an option to print the simplified clauses in smt2 format, not prolog? |
If it is possible to use the latest committed version, the simplified clauses can now be printed in SMT-LIB format using the option -logSimplifiedSMT. |
Thanks @zafer-esen, I used the latest nightly build, very helpful! Would be great if this option appears in the official release as well. |
Thanks @zafer-esen and another followup feature request on this! It'd be great if the simplified clauses in SMT-LIB format are printed in a way that they are parsable & solvable by Eldarica. When printing the simplified clauses, is it possible to print/dump simplified CHCs with their declarations in SMT-LIB format? |
Thanks for the feedback @sepideha! -logSimplifiedSMT option should now produce a complete SMT-LIB output (including the declarations). We are planning to include this option in the official release as well, but for now you can probably use it again through the nightly build. If you are building from source you will also need to update Princess to the latest nightly version (sbt clean & sbt update). |
Cool! thank for the quick action on it @zafer-esen! |
Hi, [...] This datatype only exists internally, it should not be printed. Philipp |
Thanks for the update! I also have one question in the encoding:
and here is the simplified clause that Eldarica prints: Clauses after preprocessing:
I think the Sepideh |
This was an issue coming from the SMT lineariser in Princess, should be fixed now. |
@sepideha Could you share the encoding of the Java program (in SMT) you passed to Eldarica for simplification? |
I am sharing all the original 5 SMT encodings generated by JayHorn, and also the simplified SMT encoding by Eldarica. |
Yes there seems to be a bug somewhere, but I am not sure if this is a problem coming from the original encoding in JayHorn or a bug during simplification in Eldarica. It is a bit difficult for me to debug due to the size of the clauses in the original encoding, which might already be containing this bug. Does JayHorn return sat/safe if you would use the stronger assertion b == 6? Could you send me the original encoding with this assertion? I can check if it is satisfiable without some of the preprocessors. |
The stronger assert is reported safe by jayHorn as in the attachment. |
Thanks! I had a look now, and I actually get the correct encoding (i.e., I tried it with both |
Thanks @zafer-esen for checking that. Now I got the latest version and the encoding seems correct, thanks so much!
Although I see room for further simplification, for instance Also a minor point: the use of |
@sepideha Glad to see that worked out! There is some ongoing work in the constraint simplifier, which should also reduce the number of duplicate conjuncts. |
I ran CHCs of a small java program using Eldarica. With
-log
option I noticed that in preprocessing phase initial 96 clauses were simplified to 9 clauses and then solved. I am wondering if there is a way in Eldarica to print CHCs after they have been simplified, i.e, to print only 9 clauses?#Question
The text was updated successfully, but these errors were encountered: