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
A type can carry its own set of constraints. Example:
type ordered_pair = (int,int) : lt(*._0, *._1);
Implicitly, after every initialization of a slot s of type ordered_pair, there
should be a "check lt(s._0, s._1);", and after every copy statement there
should be a "prove lt(s._0, s._1)" statement, so that the implied constraints
become enforced at initialization time and preserved during writes.
This doesn't literally require adding statements -- though that's one approach
-- but it needs to mimic the effect one way or another. Currently such
constraints are simply ignored.