In your specification, the variables permissions and restrictions hold functions (actually, records), not sets. Perhaps you are used to how functions are represented in the Z or B methods, but in TLA+, functions are primitive values, not sets of pairs. Therefore set operations cannot be used with functions. Perhaps you want to check the invariant \A u \in Users : permissions[u] \cap restrictions[u] = {} Regards, Stephan
|