Help with some weird assertion behavior #1574
-
|
Consider the code in this gist: https://gist.github.com/verus-play/e8994fed9bfc78602c7dc298857b549b First, ignoring the boilerplate, the part of the code in question is from line 53-75. Without explicit proof, Verus can assert that both maps in our states are finite. Now, when trying to assert the expansion of Before If I don't assert them, then even after asserting the expansion of Now, since in line 60, verus is able to assert Any help with why this is happening? |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 3 replies
-
|
When I run your example, I see several recommends failures associated with the failed assertion. For example: This makes sense, as in your which automatically introduces an implicit |
Beta Was this translation helpful? Give feedback.
This appears to be a triggering issue. You used
#![auto], which appears to have chosen poorly when it comes to triggers for the quantifier insystem_only_accepts_one_value. If you manually choose the first two appropriate terms (i.e., those that contain all of the quantified variables), then the proof appears to go through. In this case, I think it helps to choose the terms in the implication's antecedent.