feature-specialization

Available in: KerML, SysML

This checks that feature directly or indirectly specialize Base::things.

This is only possible in KerML which allows conjugating other types. Due to rules around implicit specializations and conjugations, conjugation cycles lead broken feature elements.

Specification

A Feature must directly or indirectly specialize Base::things from the Kernel Semantic Library.

Example

feature A ~ B; // error: A Feature must directly or indirectly specialize standard `Base::things`. This is likely due to a conjugation cycle
feature B ~ A; // error: A Feature must directly or indirectly specialize standard `Base::things`. This is likely due to a conjugation cycle

Remove conjugation cycles:

feature A;     // ok
feature B ~ A; // ok