Section 25 of 51
79. Type System
Stable section ID: S05-CON-008-SECTION-25 · 20 content blocks
The System05 Compiler Type System defines the categories, properties, relationships, and permitted operations applicable to engineering information.
The Type System may include:
scalar and textual types;
Boolean and logical types;
identity and reference types;
numerical and dimensional quantity types;
geometric types;
temporal types;
lifecycle-state types;
component and interface types;
material types;
evidence and authority types;
collections;
optional, unknown, and alternative types;
domain-specific engineering types.
Nominal typing should be used where identity and declared engineering meaning are essential. Structural similarity alone shall not make two safety-significant types interchangeable.
The Type System shall support inheritance, composition, parameterization, constrained subtypes, and governed extensions without allowing extensions to weaken mandatory base-type requirements.
Conversions shall be explicit where information, precision, authority, or engineering meaning could be lost.
Unknown, incomplete, conflicting, and not-applicable values shall have formal representations rather than being treated as ordinary null values.
The Type System shall prevent invalid operations such as adding incompatible quantities, connecting incompatible interfaces, assigning a proposed state to an active-state field, or treating unverified evidence as certification.