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
In order for the properties proven against an act spec to be sound, it is important that the updates to elements in storage mappings cannot collide or overlap.
As an example, the following spec is invalid as it is possible for usr and CALLER to have the same value:
We can define an automated analysis backed by an SMT solver that will detect these issues. First we need to extract every pair of storagelocations that refer to the same mapping. For each of these pairs we then ask the solver to find a satisfying assignment of values so that each pair of elements at each index position are equal.
In the case of the example above this would look something like the following smt (we should of course also assert any preconditions in the behaviour):
In order for the properties proven against an act spec to be sound, it is important that the updates to elements in storage mappings cannot collide or overlap.
As an example, the following spec is invalid as it is possible for
usr
andCALLER
to have the same value:We can define an automated analysis backed by an SMT solver that will detect these issues. First we need to extract every pair of storagelocations that refer to the same mapping. For each of these pairs we then ask the solver to find a satisfying assignment of values so that each pair of elements at each index position are equal.
In the case of the example above this would look something like the following smt (we should of course also assert any preconditions in the behaviour):
A result of
unsat
constitutes a proof that each of the locations is disjoint in all possible states.The text was updated successfully, but these errors were encountered: