There is a special construct ISO-DECL for introducing subsort cycles, which has the effect that all mentioned sorts are made isomorphic. There is a methodological argument in favour of forbidding the implicit introduction of such cycles, by writing for example
Since the user has the chance to specify the cycle explicitly with an ISO-DECL, an implicit cycle probably is caused by a name clash in extension or a union. Thus it should be forbidden. Note that it is still allowed to made to previously-related sorts isomorphic with an ISO-DECL.Sorts s < s' s' < s
The check for implicit cycles has to be done at the following places:
These checks are currently done in the semantics (although there seems to be no strong argument why they shouldn't be treated in the same way as the checks of the previous section).