Weight of Select/Store axioms #385
Replies: 1 comment 2 replies
-
The reason for having a weight of 0 for these is so the SMT solver will not be hindered in applying the axioms. Consider a program with a very long chain of assignments to a map variable (e.g., assignments like The reason for having a non-0 weight is to try to say "if the SMT solver is going crazy with instantiations of this axiom, then it's probably barking up the wrong tree". From the way select/store are used, this seems unlike to ever apply to them. In conclusion, I think it's a really good idea to set the weight of the select/store axioms to 0, also in the monomorphic path. |
Beta Was this translation helpful? Give feedback.
-
I noticed a discrepancy between weight supplied for Boogie-generated Select/Store axioms in TypeDeclCollector.cs and in the code that performs type erasure. The former kicks in when the Boogie code is monomorphic and the latter kicks in when the Boogie code is polymorphic. The former does not supply a weight and the latter supplies a weight of 0. Is there a reason for this discrepancy? If it is an oversight, should the monomorphic path also supply weight of 0?
@RustanLeino : Please speak because I don't imagine anybody else has context on my question.
Beta Was this translation helpful? Give feedback.
All reactions