Interpolants with CHCs and Lists #5093
-
I am trying to get interpolants for a sequence of formulas using the approach outlined in Lazy Abstraction with Interpolants. I had posted a question earlier and was pointed to using the CHC solver, but I'm having some trouble figuring out how, especially since my use case involves both Z3 Lists and Arrays. Based on some issues I've seen, I'm doing something like the following:
Can someone tell me if this the correct boilerplate I should be using? |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 5 replies
-
Hey @basus, hopefully this will help: https://github.com/agurfinkel/spacer-on-jupyter/blob/master/Dagstuhl2019.ipynb Support for ADTs, and the combination of ADTs and Arrays is experimental at best. The current implementation might be sufficient for interpolation, but I think you would be the first user for it. We are working on improving support for ADTs, but the code is not yet in the main z3 repo. If you run into problems, post a more complete example, and hopefully we will be able to help. |
Beta Was this translation helpful? Give feedback.
Hey @basus, hopefully this will help: https://github.com/agurfinkel/spacer-on-jupyter/blob/master/Dagstuhl2019.ipynb
There is an example of how to compute an interpolant. You have to use
spacer
as the engine. Withbmc
, the formula is unrolled and no intermediate solutions (i.e., interpolants) are computed.Support for ADTs, and the combination of ADTs and Arrays is experimental at best. The current implementation might be sufficient for interpolation, but I think you would be the first user for it. We are working on improving support for ADTs, but the code is not yet in the main z3 repo.
If you run into problems, post a more complete example, and hopefully we will be able to help.