Specification of Trace Semantics
...
Trace semantics is given as facts in Alloy. Facts are constraints that are assumed to always hold. They are used as axioms in constructing examples and counterexamples. The Refines, Requires and Contains trace types are defined irreflexive and antisymmetric (see Lines 26 and 27). In addition, Contains is injective (Line 25). As part of the semantics, we define how trace types are related to each other (Lines 30-49). For instance, according to the fact in Lines 30-33 where a, b and c are artifact elements, if a refines, requires or contains b, while b conflicts with c, then a also conflicts with c.