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
The package algorithm used by Carbon computes a footprint for a wand that may conditions on facts that are not framed by the wand's footprint, which is unsound, as the example below (which is verified by Carbon) illustrates:
The footprint computed by Carbon for the wand acc(x.f) && (x.f ? acc(a.f, 1/2) : acc(b.f, 1/2)) --* acc(a.f, 1/2) && acc(b.f, 1/2) is x.f ? acc(b.f, 1/2) : acc(a.f, 1/2), which is not a theoretically valid footprint, since it conditions on the value of x.f, even though it holds no permission to it.
The package algorithm used by Carbon computes a footprint for a wand that may conditions on facts that are not framed by the wand's footprint, which is unsound, as the example below (which is verified by Carbon) illustrates:
The footprint computed by Carbon for the wand
acc(x.f) && (x.f ? acc(a.f, 1/2) : acc(b.f, 1/2)) --* acc(a.f, 1/2) && acc(b.f, 1/2)
isx.f ? acc(b.f, 1/2) : acc(a.f, 1/2)
, which is not a theoretically valid footprint, since it conditions on the value of x.f, even though it holds no permission to it.Note that Silicon suffers from the same issue.
The text was updated successfully, but these errors were encountered: