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
[ERROR] Viper has crashed: java.lang.RuntimeException: Unexpected expression acc(x(), write) cannot be symbolically evaluated
A similar program in viper also gives the error that you cannot have an impure expression in an unfolding expression. VerCors should probably disallow this and prevent it in the typechecking phase. Alternatively we can ask the viper team if this is a bug or if it can be extended to allow resources inside unfolding.
The text was updated successfully, but these errors were encountered:
Seems to me there are reasonable cases where you would want this:
class C2 {
resource p() = Perm(x, write) ** Perm(y, write);
int x;
int y;
}
class C1 {
resource p() = Perm(x, write) ** Perm(y, write) ** Perm(z, write);
int x;
int y;
C2 z;
//@ requires p() ** \unfolding p() \in z.p();
void test();
}
Although in this case sensible alternatives might be making the predicates inline, or making C1 own C2 by including z.p() in C1.p. If you were thinking of different scenarios please include them.
The following code:
Gives the following error on the ast branch:
A similar program in viper also gives the error that you cannot have an impure expression in an unfolding expression. VerCors should probably disallow this and prevent it in the typechecking phase. Alternatively we can ask the viper team if this is a bug or if it can be extended to allow resources inside unfolding.
The text was updated successfully, but these errors were encountered: