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
Pulse treats pure (...) in asserts in an opaque way. As an example, Pulse is not able to verify a statement like assert_ (pure (5 = 5));. It fails with the following error message:
(Error) Failed to prove the following goals:
... Steel.ST.Util.pure (Prims.op_Equality 5 5)
The remaining conjuncts in the separation logic context available for use are:...
This behavior also happens with with ... assert ..., as shown by the following example (that Pulse fails to verify for the same reason):
fn test_with_assert_pure(r: R.ref nat)
requires R.pts_to r full_perm 5
ensures R.pts_to r full_perm 5
{
with v. assert (R.pts_to r full_perm v ** pure (v = 5));
()
}
The text was updated successfully, but these errors were encountered:
fn test_with_assert_pure(r: R.ref nat)
requires R.pts_to r full_perm 5
ensures R.pts_to r full_perm 5
{
with v. assert (R.pts_to r full_perm v ** pure (v = 5));
()
}
Pulse treats
pure (...)
in asserts in an opaque way. As an example, Pulse is not able to verify a statement likeassert_ (pure (5 = 5));
. It fails with the following error message:This behavior also happens with
with ... assert ...
, as shown by the following example (that Pulse fails to verify for the same reason):The text was updated successfully, but these errors were encountered: