R38 - modelint/types GitHub Wiki

R38 / Generalization

Bank Level is a Top Bank Level, Middle Bank Level or Bottom Bank Level


The constraint that a Bottom Floor can only call Cabins going up and that a Top Floor can only call Cabins going down while Middle Floors can call either direction is enforced by this specialization of Bank Level.

For a given Floor, the top, middle, bottom status is determined for each Bank membership. The highest Floor included in a Bank will be a Top Bank Level, the lowest a Bottom Bank Level and all others will be Middle Bank Levels.

We can imagine a case, for example, where the 20th floor is simultaneously the Top Bank Level in Bank 1 and the Bottom Bank Level of Bank 2.

Formalization

<subclass>.(Bank, Floor) -> Bank Level.(Bank, Floor)
⚠️ **GitHub.com Fallback** ⚠️