You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Verus disallows user-chosen triggers on tuple constructors (e.g. #[trigger] (a, b)) but automatically selected triggers sometimes do involve tuples. E.g. the following example has no valid user-selectable triggers but Verus automatically picks a trigger involving the tuple constructor.
use vstd::prelude::*;verus!{structFoo{ s:(usize,usize)}
proof fn f()
ensures forall|f:Foo, a:usize, b:usize| f.s == (a, b) ==> true{}}
I vaguely remember there being a discussion about triggering on tuples being important for some particular use case (maybe at the Verus retreat?) so I'm wondering if this is intentional or not. It is certainly surprising behavior.
The text was updated successfully, but these errors were encountered:
Verus disallows user-chosen triggers on tuple constructors (e.g.
#[trigger] (a, b)
) but automatically selected triggers sometimes do involve tuples. E.g. the following example has no valid user-selectable triggers but Verus automatically picks a trigger involving the tuple constructor.This generates the following AIR for the ensures:
I vaguely remember there being a discussion about triggering on tuples being important for some particular use case (maybe at the Verus retreat?) so I'm wondering if this is intentional or not. It is certainly surprising behavior.
The text was updated successfully, but these errors were encountered: