-
Notifications
You must be signed in to change notification settings - Fork 44
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
INTERPOLANT_ACCEPTANCE_THRESHOLD not defined for each MultiTrackTraceAbstractionRefinementStrategy individually #226
Comments
I must admit that I did not know this. I can implement it (maybe at the weekend) if you want. |
To be more precise: there is a variable that controls after how many imperfect sequences we don't try to find new ones and just go with it. The variable is currently set to 1. And separately, if we get one perfect sequence, we also go with that. For benchmarking, it would be nice to have a slightly different implementation: One setting for all strategies that sets the variable. This is obviously not nice from the user's point of view, but its easier to benchmark. |
This would be the current implementation, right? |
No, the current implementation makes it a variable. It should be a setting, where the default value is the current one. |
No, please not another setting! The strategy should define the threshold. |
I will remove the setting after benchmarking. |
Alternative: I duplicate the stategies. |
I would prefer the duplication of the strategies. |
Ok. Then I would say for, e.g., Camel there will be
All other strategies analogously up to the maximal setting that makes sense. |
Please do whatever you think is appropriate for your evaluation. |
* 🐧 also has a commented line to use MATHSAT_FPBP initially.
|
I implemented the version with inheritance. @Heizmann: Please check if this is what you wanted. |
…t a strategy is actually doing), keep interpolant threshold handling in super class
@schillic: I forgot to push a commit from Friday (31d7526) and screwed up while combining with your commits. I still need to duplicate the strategies for benchmarking; I will get to it next week. |
@danieldietsch: Alright... basically my change was super simple, so I let you handle it. |
What Christian implemented exactly the what I wanted to have. @danieldietsch I am fine with any other implementation but it should have the same effect and it should be flexible enough for changes that we want to make in the future. (this includes e.g., different solver orders or different solver settings like timeouts). |
…nd make the interpolant threshold more prominent
Currently, all refinement strategies give up after the first sequence of interpolants was computed. Whether the sequence is perfect or not is irrelevant.
I would prefer that this threshold is defined by each MultiTrackTraceAbstractionRefinementStrategy individually.
PENGUIN and WALRUS should aim for finding loop invariants and have a high threshold (maybe infinity).
CAMEL and WOLF should aim for good overall performance in e.g., the SV-COMP and should not risk getting timeouts in additonal interpolant computations.
By the way, it would be great if someone could find out why we are so often successful with non-perfect interpolant sequences.
The text was updated successfully, but these errors were encountered: