Invariants #
SE.Transformation.Invariants
Finite regression guards for the transformation taxonomy.
operatorFamily and familyKind are total functions, so "every operator has
exactly one family" holds by construction and is not restated here. The
statements below can fail when the taxonomy is edited:
- the reference lists are duplicate-free and complete;
- no family and no kind is empty;
- the derived queries
operatorsInFamily,operatorsInKindandfamiliesInKindagree with their membership specifications.
referenceOperators has no duplicates.
referenceFamilies has no duplicates.
referenceKinds has no duplicates.
Every operator code occurs in referenceOperators.
Every transformation family occurs in referenceFamilies.
Every transformation kind occurs in referenceKinds.
Membership in operatorsInFamily is exactly family membership.
Membership in operatorsInKind is exactly kind membership.
Membership in familiesInKind is exactly the familyKind assignment.
Every family has at least one operator.
Every kind has at least one family.
Every kind has at least one operator.