It is always necessary to define a TE access matrix containing rules about clearance granted to a given security context, or subject's rights over objects according to an authorization scheme.
Type enforcement was introduced in the Secure Ada Target architecture in the late 1980s with a full implementation developed in the Logical Coprocessing Kernel (LOCK) system.
This implementation mechanism was improved by the FLASK architecture, substituting complex structures and implicit relationship.
Also, the original TE access matrix was extended to other structures: lattice-based, history-based, environment-based, policy logic...
It should be considered a weakness of TE original model to specify detailed implementation aspects such as labels and matrix, especially using the terms “domain” and “types” which have other, more generic, widely accepted meanings.